Сколько слов длины

9

ИЗМЕНЕНО ДЛЯ ДОБАВЛЕНИЯ : На этот вопрос теперь по существу дан ответ; пожалуйста, смотрите эту запись в блоге для более подробной информации. Спасибо всем, кто разместил комментарии и ответы здесь.


ОРИГИНАЛЬНЫЙ ВОПРОС

Это, надеюсь, более умная и информированная версия вопроса, который я задал на MathOverflow. Когда я задал этот вопрос, я даже не знал названия области математики, в которой находилась моя проблема. Теперь я почти уверен, что она лежит в «Алгоритмической комбинаторике с частичными словами». (Недавняя книга на эту тему здесь .)

Я хочу составить список слов по букв. Каждое слово имеет длину ровно . Дело в том, что если находится в списке, где - это подстановочный знак / символ безразличия, то больше никогда не появится в списке. (То же самое верно, если или если и, следовательно, запрещенное подслово - .)lkajbajba=bj=0ab

Пример, где и :k=4l=5

abcd
bdce
dcba <- запрещено, потому что появился в строке над <- запрещено, потому появился в первой строкеdc
aeedad

Литература по «частичным словам, которых можно избежать», которые я нашел, была бесконечной - в конце концов, некоторый шаблон слов неизбежен, если размер слова достаточно велик. Я хотел бы найти окончательные версии таких теорем. Итак, вопрос:

При условии, что в алфавите из букв есть частичное слово формы , сколько слов длины его избегают и могут ли они быть явно созданы за полиномиальное время?ajblk

Я не ожидаю, что вышеупомянутый вопрос будет трудным, и, если нет тонкости, которую я пропускаю, я мог бы вычислить это сам. Настоящая причина, по которой я размещаю информацию на этом сайте, заключается в том, что мне нужно знать гораздо больше о свойствах таких списков слов для моего приложения, поэтому я надеюсь, что кто-то может ответить на следующий вопрос:

Это было изучено в целом? Какие документы рассматривают не только то, является ли частичное слово неизбежным, но и «сколько времени это займет», прежде чем оно станет неизбежным?

Спасибо.

Аарон Стерлинг
источник
(1) Я не могу понять соответствие между вашим первым вопросом и приведенным выше примером. Какой вклад в вашем примере? (2) В первом вопросе вы используете k для двух разных целей?
Цуёси Ито
Что касается (2), да, я сделал ошибку, теперь отредактирован, спасибо.
Аарон Стерлинг
Что касается (1), я хотел бы знать, «сколько места у меня осталось», когда появится частичное слово. Но да, реальный вопрос в том, как создать списки, подобные тому, который показан в примере (без запрещенных частичных слов). Таким образом, входные данные будут значенияk а также lи желаемое количество слов для создания в списке, у каждого из которых было свойство «избежать появления ранее частичных слов».
Аарон Стерлинг
2
@ Аарон, я не знаю, каково ваше конечное применение, но последовательности Давенпорта-Шинцеля (и обобщения) спрашивают о максимальной длине строки, которая не содержит определенного повторяющегося шаблона. Это родственное понятие.
Суреш Венкат
1
Сет Петти также изучал некоторые изящные обобщения на запрещенные подматрицы.
Суреш Венкат

Ответы:

4

Вот особый случай: количество двоичных слов длины k таким образом, что два не появляются последовательно F(k+3), где F(n) это nth Число Фибоначчи (начиная с F(1)=1,F(2)=1). Доказательство - через представительство Zeckendorf .

РЕДАКТИРОВАТЬ: Мы можем расширить этот начальный частный случай в немного больший частный случай a0a, Рассмотрим строки длиныk по алфавиту размера l+1 такое что письмо aне появляется дважды подряд. Позволятьf(k)быть количеством таких строк (которые мы будем называть «действительными»). Мы утверждаем, что:

f(k)=lf(k1)+lf(k2)
f(0)=1,f(1)=l+1
Интуиция заключается в том, что мы можем построить правильную строку длины k либо: а) примыкает к любому из l буквы, которые не являются a допустимая строка длины k1или б) к письму a а затем любое другое письмо, кроме a допустимая строка длины k2,

Вы можете убедиться, что следующее является закрытой формой для вышеуказанного повторения:

f(k)=i=0k(k+1ii)lki
где мы понимаем (ni)=0 когда i>n,

РЕДАКТИРОВАТЬ № 2: Давайте выберем еще один случай - 0b,ab, Мы будем называть строки болееlэлемент, который не содержит подстроки ab, "действительный" и пусть Sk обозначим множество допустимых строк длины k, Далее давайте определимсяTk быть подмножеством Sk состоящий из строк, начинающихся с b а также Uk быть теми, кто не начинается с b, Наконец, пустьf(k)=|Sk|, g(k)=|Tk|, h(k)=|Uk|,

Мы наблюдаем, что g(0)=0,h(0)=1,f(0)=1 а также g(1)=1,h(1)=l1,f(1)=l, Далее мы выводим следующие рецидивы:

g(k+1)=f(k)h(k+1)=(l1)h(k)+(l2)g(k)
Первое связано с тем, что добавление b к началу любого элемента Sk производит элемент Tk+1, Второе происходит из наблюдения, что мы можем построить элементUk+1 добавив любой символ, но b к передней части любого элемента Uk или добавив любой символ, кроме a или b к передней части любого элемента в Tk,

Далее мы переставляем рекуррентные уравнения для получения:

f(k+1)=g(k+1)+h(k+1)=f(k)+(l1)h(k)+(l2)g(k)=f(k)+(l1)f(k)g(k)=lf(k)f(k1)

Мы можем получить довольно непрозрачное решение в этой замкнутой форме для этого повторения, немного покопавшись в генерируемой функции или, если нам лень, направиться прямо к Wolfram Alpha . Однако, немного погуглив и поглядывая в OEIS , мы обнаруживаем, что на самом деле имеем:

f(k)=Uk(l/2)
где Uk это kth Чебышевский многочлен второго рода (!).
mhum
источник
Это очень интересно, спасибо.
Аарон Стерлинг
2

Совершенно другой подход к первому вопросу повторно использует ответы на недавний вопрос о генерации слов на обычном языке : достаточно применить эти алгоритмы для длиныk на обычном языке ΣaΣjbΣ где Σ is the alphabet.

Сильвен
источник
Спасибо. Мне было интересно, может ли быть какая-то связь, и ваш ответ здесь дал мне толчок, который мне нужен, чтобы посмотреть на документы, на которые там ссылаются, и одна из них определенно решает часть одной из проблем, которые я рассматриваю.
Аарон Стерлинг
0

Обновлено: этот ответ неверен :

при условии, Jисправлено, мы можем посчитать количество способов паттернаaJб могут быть сопоставлены: первый a символ может быть сопоставлен в некоторой позиции 1яК-J-1, и у нас есть Lя-1 возможности до этого момента, LJ между a а также б, а также LК-J-я-1 для оставшейся части строки, таким образом, в общей сложности

Σязнак равно1К-J-1Lя-1LJLК-J-я-1знак равно(К-J-1)LК-2
случаев. Как отметил Цуёси Ито в комментариях, это количество не совпадает с количеством разных словaJбпоскольку одно слово может соответствовать одному и тому же шаблону по-разному. Напримерaa соответствует три раза в aaaa, aб два раза в abab, а также ab два раза в aabb, Мы можем попытаться подсчитать количество способов сопоставления с образцами несколько раз и показать выражение «включение-исключение», но способы, которыми может перекрываться шаблон, делают это слишком длинным.

По первому вопросу, при том понимании, что j не фиксируется, то есть мы хотим избежать встраивания слова ab:

  • или a первый символ никогда не появляется, что составляет (l1)k возможные слова,
  • или a появляется первым в некоторой позиции 1ikтогда мы не можем использовать b в оставшейся части слова: есть (l1)i1 выбор фактора до a, а также (l1)ki выбор для остатка, давая в общей сложности i=1k(l1)i1(l1)ki=k(l1)k1возможные слова Будь тоa=b не имеет значения.

По второму вопросу мне нечего предложить; Существует связь с встраиванием слов, но результаты, которые я знаю о плохих последовательностях для леммы Хигмана, применяются не сразу.

Сильвен
источник
Большое спасибо, Сильвен, хотя я не думаю, что это правильно. Мы можем использоватьb позже в слове, если aпоявляется. Мы просто не можем использоватьb если есть именно j буквы между a а также b, если ajbпоявился раньше. Возможно, я неправильно понимаю ваш аргумент, хотя.
Аарон Стерлинг
Извините, я не был уверен jбыло исправлено или нет. Я отредактировал ответ с фиксированнымjтакже.
Сильвен
1
Я не думаю, что случай с фиксированным j верен. Например, если k = 4 и j = 1, слово aabb вычитается дважды. Я не читал нефиксированный случай j.
Цуёси Ито
@ Tsuyoshi Ito: вы правы, в этом случае уникального совпадения нет.
Сильвен
Пожалуйста, пометьте неправильный ответ как таковой.
Цуёси Ито