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


15

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

LS(L)={|u|uL}

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

Відповіді:


14

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

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

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

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

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

LS(L)=F{kr+xxG,kN}

І навпаки, нехай h і r - два цілі числа, а F і G - два кінцевих множини цілих чисел, таких що xF,xh і хГ,годхгод+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{01,,0n}{ε}

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

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

  • .LS(L(r1+r2))=LS(L1L2)=LS(L1)LS(L2)
  • . Це позначається L S ( L 1 ) + L S ( LLS(L(r1r2))=LS(L1L2)={1+2:1LS(L1),2LS(L2)} .LS(L1)+LS(L2)
  • LS(L(r1))={0}n1{i=1ni:(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
uvkwL

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

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

{a+bn|nN}S
a,bNSN

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

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

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


1
знаходиться на правильному шляху, але ви отримали квантор неправильно дето, ви генеруєте N . {a+bna,b,nN}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.