Які можливі набори довжин слів у звичайній мові?


15

Давши мову L , визначте набір довжини L як набір довжин слів у L :

LS(L)={|u|∣u∈L}

Які набори цілих чисел можуть бути набором довжин звичайної мови?

Відповіді:


14

По-перше, спостереження, яке не є вирішальним, але зручним: набір S множин цілих чисел, які є LS(L) для деякої регулярної мови L на не порожньому алфавіті A , не залежить від вибору алфавіту. Щоб побачити це, розглянемо скінченний автомат, який розпізнає L ; довжини слів, що знаходяться в L - це довжини шляхів на автоматі, розглядаються як маркований графік від стартового стану до будь-якого прийнятого стану. Зокрема, ви можете відновити кожну стрілку до a і отримати звичайну мову з однаковою довжиною, встановленою за алфавітом {a} . І навпаки, якщоL - це звичайна мова над одноелементним алфавітом, її можна тривіально вводити в більший алфавіт, а результат - звичайна мова.

Тому ми шукаємо можливі набори довжини для слів над однотонним алфавітом. На однотонному алфавіті мова - це довжина, задана одинаково: LS(L)={n∈N∣an∈L} . Такі мови називаються одинарними.

Нехай L регулярний мову, і розглянемо детермінований кінцевий автомат (ДКА) , який розпізнає L . Набір довжин слів L - це набір довжин шляхів у DFA, що розглядається як спрямований графік, який починається у стартовому стані та закінчується в одному із станів прийняття. DFA на одноелементному алфавіті досить приборканий (NFA будуть дикішими): це або кінцевий список, або круговий список. Якщо список є кінцевим, нумеруйте штати від 0 до h слідуючи порядку списку; якщо він круговий, пронумеруйте штати від 0 до h слідуючи за заголовком списку, і h до h+r вздовж циклу.

списоподібні автомати

Нехай F - сукупність показників станів прийняття до h , а G - множина індексів станів прийняття від h до h+r . Потім

LS(L)=F∪{kr+x∣x∈G,k∈N}

І навпаки, нехай h і r - два цілі числа, а F і G - два кінцевих множини цілих чисел, таких що ∀x∈F,x≤h і ∀х∈Г,год≤х≤год+r . Тоді множина LЖ,Г,r={акr+х∣х∈Г,к∈N}є звичайною мовою: це мова, визнана DFA, описаною вище. Регулярний вираз, що описує цю мову є F | G ( г ) * .аЖ∣аГ(аr)∗

Підсумовуючи англійською мовою, набори довжин звичайних мов - це набори цілих чисел, які періодично¹ вище певного значення .

¹ Щоб повісити на усталене поняття , періодично означає характерну функцію множини (яка є функцією N→{fалсе,тrуе} яку ми піднімаємо до функції Z→{fалсе,тrуе} ) періодичний. Періодичне вище певного значення означає, що функція обмежена [год,+∞[ може бути продовжено в періодичну функцію.


Ваше спостереження щодо невідповідності алфавіту говорить про те, що теорему Париха можна застосувати. Зокрема, ви показуєте, що LS (L) = LS (L '), де в L' всі букви зібрані на один алфавіт. Але LS (L ') - паричне відображення мови L, яка, як відомо, є напівлінійною для будь-якої звичайної мови.
— Суреш

Гарний підхід! 1) Я думаю, що перший абзац можна замінити зазначенням того, що звичайні мови закриті проти рядкових гомоморфізмів. 2) Для наочності слід розглянути надання другої частини як { h + k r + ( x - h ) ∣ … } , по модулю помилок один за одним. 3) Що таке "періодичний" набір цілих чисел? LS(L){год+кr+(х-год)∣…}
— Рафаель

1
@ Суреш, Рафаель (1): Я вважаю за краще викладати докази елементарно, ні гомоморфізми, ні картографії Париха не згадувалися в моєму класі CS 102.
— Жил "ТАК - перестань бути злим"

@Raphael (2) Якщо ви починаєте з індексації не має значення, я можу зняти умову h ≤ G , оскільки F може поглинати стільки дрібних елементів, скільки ми хочемо. (3) Набір, який періодично перевищує певне значення, є тим, який можна поставити у відображену форму вище. Ггод≤ГЖ
— Жил "ТАК - перестань бути злим"

5

Будь-яке кінцеве підмножина може бути довгою множиною звичайної мови L , оскільки ви можете взяти одинарний алфавіт { 0 } і визначити L як { 0 ℓ 1 , … , 0 ℓ n } (сюди входить порожня мова та { ε } ).{ℓ1,…,ℓн}⊂NL{0}L{0ℓ1,…,0ℓn}{ε}

Тепер про нескінченні множини. Я дам короткий аналіз, хоча остаточна відповідь може бути недостатньо явною. Я не буду деталізувати, якщо ви не попросите мене, тому що я думаю, що це інтуїтивно і тому, що зараз у мене мало часу.

Нехай - регулярні вирази, що породжують мови L 1 і L 2 відповідно. Це (свого роду) легко це побачитиr1,r2L1L2

  • .LS(L(r1+r2))=LS(L1∪L2)=LS(L1)∪LS(L2)
  • . Це позначається L S ( L 1 ) + L S ( LLS(L(r1r2))=LS(L1L2)={ℓ1+ℓ2:ℓ1∈LS(L1),ℓ2∈LS(L2)} .LS(L1)+LS(L2)
  • LS(L(r1∗))={0}∪⋃n≥1{∑i=1nℓi:(ℓ1,…,ℓn)∈(LS(L1))n}.

Таким чином, можливими наборами цілих чисел, які можуть бути набором довжин у звичайній мові, є ті, які є кінцевими підмножинами або які можуть бути побудовані, беручи кінцеві підмножини S 1 , S 2 з N і використовуючи попередні формули скінченними кількість разів.NS1,S2N

Тут ми використовуємо, що регулярні мови будуються за визначенням, застосовуючи правила побудови регулярного виразу в кінцевій кількості разів. Зауважимо, що ми можемо починати з будь-якого кінцевого підмножини , навіть якщо в регулярних виразах ми починаємо зі слів довжиною 0 і 1 лише як базовий регістр. Це легко виправдати тим, що всі (кінцеві) слова є (кінцевими) конкатекаціями символів алфавіту.N


Я не бачу жодної остаточної відповіді. (Ви мали намір закінчити свою відповідь пізніше?) Я сподівався на простий опис можливих наборів та зв’язок з автоматами.
— Жил "ТАК - перестань бути злим"

Остаточна відповідь є: "Таким чином, можливі набори цілих чисел ...". Це дійсно простий опис, хоча і пов'язаний з регулярними виразами, а не автоматизацією.
— Янома

Існує простіший опис, який не передбачає встановлення точної точки. Можливо, це питання не таке елементарне, як я думав!
— Жил "ТАК - перестань бути злим"

Я не думаю, що ви можете уникнути останнього правила, оскільки саме зірковий оператор може створювати нескінченні набори довжини, так само як він створює нескінченні мови.
— Янома

@Gilles Отже, ви хочете закриту форму найменшої точки фіксації індуктивного рішення, яку забезпечує Janoma?
— Рафаель

2

Згідно з накачаною лемою для звичайних мов, існує такий, що рядок x довжиною принаймні рівним n може бути записаний у такому вигляді: x =nxn Якщо мають місце наступні три умови: | u v | < n | v | > 0 u v k w ∈ L

x=uvw
|uv|<n
|v|>0
uvkw∈L

Це дає нам один тест для множин: набір не може бути набором довжини звичайної мови, якщо всі його елементи не можуть бути виражені у вигляді довільного набору цілих чисел, не більше фіксованого , плюс деякого кратного невизначеного значення m (довжина з v ), плюс деякий довільне кінцеве значення.nmv

Іншими словами, схоже, що можливі набори довжин мови для звичайних мов - це закриття відносно встановленого об'єднання (як обговорювалося під EDIT та EDIT2, завдяки коментаторам) наборів, описаних таким чином: Для фіксованих a , b ∈ N та всіх кінцевих множин S за допомогою накачувальної леми для звичайних мов (дякую Гіллю, що вказав на дурну помилку в моїй оригінальній версії, завдяки якій я визначав множину N ).

{a+bn|n∈N}∪S
a,b∈NSN

EDIT: Ще трохи дискусії. Безумовно, всі кінцеві множини цілих чисел є множинами довжин. Також об'єднання двох наборів довжин також повинно бути набором довжини, як і доповненням будь-якого набору довжин (отже, перетин, отже, різниця). Причиною цього є те, що звичайні мови закриваються під час цих операцій. Тому відповідь, яку я даю вище, (можливо) неповна; насправді будь-який союз таких множин - це також набір довжини якоїсь регулярної мови (зауважте, що я відмовився, вимагаючи перетину, доповнення, різниці тощо), оскільки вони охоплені тим, що регулярні мови закриваються під цими властивостями, як обговорюється в EDIT3; Я думаю, що насправді потрібен лише союз, навіть якщо інші мають рацію, що може бути не так).

EDIT2: Ще більше обговорення. Відповідь, яку я даю, в основному ви б там, де ви опинилися б трохи далі, якби відповіли Яномі; частина приходить від зірки Кліні, то походить від конкатенації, і обговорення об'єднання, перетину, різниці і доповнень приходять від + регулярних виразів (а також інших закривають властивостей регулярних мов) доказово , починаючи з автоматів) .bna

EDIT3: У світлі коментаря Janoma, забудьмо властивості закриття наборів довжини мови, про які я обговорював у першій EDIT. Оскільки регулярні мови мають ці властивості закриття, і оскільки кожна звичайна мова має DFA, то випливає, що лемма накачування для звичайних мов застосовується до всіх союзів, перехресть, доповнень та відмінностей звичайних мов, і ми це залишимо ; не потрібно навіть розглядати будь-яке з них, окрім союзу, який, я все ще думаю, може бути необхідним, щоб зробити свій оригінал (модифікований, завдяки внесенню від Gilles) правильним. Отже, моя остаточна відповідь така: те, що я говорю в оригінальній версії, плюс закриття мовної довжини наборів щодо об'єднання набору.


1
знаходиться на правильному шляху, але ви отримали квантор неправильно дето, ви генеруєте N . {a+bn∣a,b,n∈N}∪SN
— Жил "ТАК - перестань бути злим"

1
Аналіз доповнення набору довжини може бути делікатним. Якщо над алфавітом Σ = { a , b } , то набір довжин L дорівнює N, а набір довжин ¯ L - N + , і вони не є доповненням один одного. L=L(a∗)Σ={a,b}LNL¯N+
— Янома

@Gilles Але набір усіх натуральних чисел - це дійсна довжина, правда? Я не генерую всі підмножини натуральних чисел, правда? Я згоден, що це було б проблематично. Редагувати: чекайте, я бачу, що ви говорите. Так, ви праві. Виправить, коли повертається за комп’ютером.
— Patrick87

@Janoma Відмінний момент, потрібно буде подумати, як це може змінити набір речей, які я визначаю ...
— Patrick87
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.