Клас мов, розпізнаваний односкладовими 3-державними ТМ


9

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

Для зручності зателефонуйте до класу мов, розпізнаваних такими ТМ . У мене є кілька запитань щодо цього класу:C3

  1. Чи раніше ?C3
  2. Чи відомо, що дорівнює будь-яким іншим цікавим класам складності / обчислюваності?C3
  3. Чи надійний клас до змін у моделі. Наприклад, якщо використовуваним ТМ дозволено залишатися на місці під час одного переходу (на відміну від того, щоб завжди рухатися ліворуч або праворуч) або якщо стрічка зроблена нескінченною в обох напрямках, а не праворуч, чи робить клас мови, розпізнавані за допомогою 3-х державних 1-стрічкових ТМ?C3
  4. Як ставиться до класу регулярних мов, ? (Зокрема, чи є кожна регулярна мова в ?)C3RegularC3

Пошук (досить короткий) підняв лише цей пост cs.stackexchange, який є релевантним, але не відповідає на мої запитання, і цей документ , який я не прочитав досить детально, щоб бути впевненим, що стосується саме класуC3 а не подібний, але різний клас (стаття стверджує, що доводить, що (1) кожна мова в C3 рішуче і (2) що C3 і Regular- це окремі класи з не порожнім перетином). Як зазначається в коментарях до повідомлення cs.stackexchange, такі види ТМ можна вважати дуже специфічними стільниковими автоматизаторами, тому, можливо, хтось, хто знає літературу з теорії стільникового автомата, може допомогти.


1
Якщо у вас є лише один неперервний стан і одна стрічка (вхідна стрічка), то ваша машина не може запам'ятати нічого, що вона прочитала. Отже, він може приймати або відхиляти саме такі входи, які містять певні символи (символи) з вхідного алфавіту.
David G

4
Машина не може запам'ятати, що вона прочитала, але вона може переписати те, що вона прочитала, чимось іншим. Тому я не розумію, чому дана характеристика була б правильною. (тобто я можу придумати просту машину, яка приймає01 і відкидає 011; тут поведінка не визначається повністю, якими символами є вхідні дані).
Михайло Рудой

1
Ви маєте рацію, моя інтуїція помилилася.
David G

Відповіді:


7

Звір надзвичайно потужний , наприклад, ми можемо створити ТМM яка приймає кожен рядок форми

LY={r0n1mAmn}

і відхиляє кожен рядок форми

LN={r0n1mAm>n}

Ідея полягає в перетворенні першої r в Rа потім дозвольте голові досягти середини струни, тоді зробіть зигзаг "без стану"; якщо вона досягнеA раніше R то вона приймає.

Неофіційний опис:

  • на r писати R і рухайтеся праворуч (підготуйтеся до відхилення)
  • на 0 писати c і рухайтеся праворуч (рухаючись до центру)
  • на 1 писати > і рухайтеся ліворуч (позначте a 1, підготуйтеся до наступного переходу зліва направо і рухайтеся ліворуч)
  • на c писати < і рухайтеся праворуч (позначте a 0, підготуйтеся до наступного переходу праворуч наліво та рухайтесь праворуч)
  • на < писати > і йти вліво (перехід зліва направо, підготуйся до наступного справа наліво)
  • на > писати < і рухайтеся праворуч (переправа направо наліво, готуйтеся до наступного зліва направо)
  • на A прийняти, на R відкинути
  • на бланку b відкинути

Приклад:

  :r 0 0 0 1 1 A
   R:0 0 0 1 1 A
   R c:0 0 1 1 A
   R c c:0 1 1 A
   R c c c:1 1 A
   R c c:c > 1 A
   R c c <:> 1 A
   R c c < <:1 A
   R c c <:< > A
   R c c:< > > A
   R c:c > > > A
   R c <:> > > A
   ...
   R c < < < <:A ACCEPT

Ця методика зигзагу застосовується у найменшій двошаровій універсальній машині Тюрінга (вона має 18 символів), побудованій Рогожином (Рогожин 1996. ТКС, 168 (2): 215–240)).

Щоб довести це, слід приділити деяку увагу M зупинки на всіх входах (лише зауважте, що він відхиляє пусте введення, а всі символи, що не зупиняються, "сходяться" на < або > що не може призвести до нескінченного циклу).

Як коментує DavidG, мова L(M) визнано M є надмножиною LY (тобто LYL(M)), але він не містить жодного рядка з LN (тобто L(M)LN=) і - як коментує МихайлоРудой - цього достатньо, щоб довести це L(M) не є регулярним.

Дійсно, якщо L(M) регулярно також L(M){r01A}=LY={r0n1mAmn}було б регулярним (що не є простим застосуванням накачувальної леми); що веде до суперечності.

Тому L(M) не є регулярним .

... Але, як і всі супергерої C3 має п'яту Ахілла: він навіть не може розпізнати звичайний:

L={12n}

Неофіційно він може використовувати лише крайній лівий b1... (b символ порожнього) або правоміст 1b...як гачок і «розширюється» в інший бік; але остаточне Прийняття або Відхилення не може бути на порожньому символі протилежної сторони, тому це може бути зроблено лише на внутрішній частині1s, і, починаючи з досить довгого вводу, його можна "підробити", розтягнувши його.

Нарешті - прочитавши документ - я можу підтвердити, що описана в ньому однодержавна ТМ відповідає вашому C3 клас ... (тому нічого нового тут немає :-) ... і мов, використаний автором для підтвердження того, що він містить нерегулярні мови, дуже схожий на мій.


1
Мені дуже подобається відповідь (+1). Однак описаний ТМ приймає іншу мову. Наприклад, він приймає також рядки rrrrr00011AAAA, r000000r0000r0000r00011A, r00011A11111111 (після A це може бути що-небудь замість них) ...
David G

@DavidG: Ти маєш рацію! Я не надто думав про це ... Я намагаюся це виправити.
Марціо Де Біасі

4
Власне, навіть наскрізь L не є мовою, визнаною описаною ТМ, ця мова, безумовно, не є регулярною: якщо це ТМ M, тоді L(M)r01A=L тому короткий доказ протиріччям (якщо L(M) регулярно тоді L(M)r01A=Lтакож будуть регулярними; протиріччя) може показати цеL(M)не є регулярним.
Михайло Рудой

3
@MikhailRudoy: так! У мене була така ж ідея. Я відкрив категорію, щоб відредагувати відповідь, і побачив ваш коментар. Давайте подивимось, чи можу я переписати відповідь, враховуючи ваш коментар ...
Marzio De Biasi

5

Я недооцінив силу Росії C3... насправді це не занадто далеко від гіперкомп'ютації !

(Я публікую це як окрему відповідь для кращої ясності)

Ми можемо побудувати єдину державну машину Тьюрінга M який приймає рядки форми:

LY={a0n1mRm2n}

і відхиляє рядки форми:

LN={a0n1mRm<2n}

Ідея та побудова схожа на ту, що була в попередній відповіді: перетворити першу a в A, нехай голова досягне середини струни, потім зроби зигзаг "без стану", але переходи "реалізують" "двійковий лічильник" на першій половині таким чином: Z(Нуль) відхилити голову назад вправо і перетворитиZ в а S (Один) наступного разу, коли голова досягне S, перетворіть його на a )і нехай голова рухається вліво; коли голова досягає) перетворити його на а Z. Друга половина струни веде себе як унарний лічильник.

Переходи:

  • на r писати R і рухайтеся праворуч (підготуйтеся до відхилення)
  • на 0 писати Z і рухайтеся праворуч (рухаючись до центру, встановіть двійковий лічильник на 0 ..)
  • на 1 писати > і рухайтеся ліворуч (позначте a 1 і декрементуйте одинарний лічильник, підготуйтеся до наступного переходу зліва направо і повертайтеся до двійкового лічильника)
  • на > писати < і йдіть праворуч (переправа праворуч наліво другої половини струни, підготуйтеся до наступного зліва направо)
  • на < писати > і йдіть ліворуч (перехід ліворуч праворуч другої половини струни, підготуйтеся до наступного справа наліво)
  • на Z писати S і рухайтеся праворуч (перетворіть цифру в одну і відскочіть праворуч у напрямку одинарного лічильника)
  • на S писати ) і рухайтеся ліворуч (очистіть цифру, і голова нехай рухається ліворуч, як «перенос», підготуйтеся до наступної зліва направо першої частини)
  • на ) писати Z і рухайтеся праворуч (встановіть нуль, який спричинить відскок, і голова нехай рухається вправо)
  • на A прийняти, на R відкинути
  • на бланку b відкинути

Приклад:

 :a 0 0 0 1 1 1 1 1 1 1 1 R
  A:0 0 0 1 1 1 1 1 1 1 1 R
  A Z:0 0 1 1 1 1 1 1 1 1 R
  ...
  A Z Z Z:1 1 1 1 1 1 1 1 R
  A Z Z:Z > 1 1 1 1 1 1 1 R
  A Z Z S:> 1 1 1 1 1 1 1 R
  A Z Z S <:1 1 1 1 1 1 1 R
  A Z Z S:< > 1 1 1 1 1 1 R
  A Z Z:S > > 1 1 1 1 1 1 R
  A Z:Z ) > > 1 1 1 1 1 1 R
  A Z S:) > > 1 1 1 1 1 1 R
  A Z S Z:> > 1 1 1 1 1 1 R
  ...
  A Z S:Z > > > 1 1 1 1 1 R
  ...
  A Z S S < < <:1 1 1 1 1 R
  ...
  A S:) ) > > > > 1 1 1 1 R
  ...
 :A ) ) ) > > > > > > > > R ---> ACCEPT

Щоб довести це, слід приділити деяку увагу M зупинки на всіх входах (просто зауважте, що він відхиляє пусте введення, а всі символи, що не зупиняються, "проходять" (,S,Z або <,> що не може призвести до нескінченного циклу).

Мова L(M) є надмножиною LY (LYL(M)) і не містить рядків з LN (L(M)LN=).

Припустимо, що L(M)є безтекстовим , то - за допомогою властивостей закриття CFL, перетинаючи його із звичайною мовою{r01A} виробляти мову CF:

L(M){r01A}={a0n1mRm2n}=LY

Але простим застосуванням леми Огдена для CFL ми можемо це довестиLYCFL: просто вибрати досить довго sLY і позначте всі 0s; принаймні один нуль можна перекачувати і незалежно від кількості1s у насосній струні експоненціальне зростання 2n веде до струни LY).

Тому L(M) не є контекстом .

... зараз мені цікаво, чи це ще одна відповідь на "винахід колеса", чи це новий (невеликий) результат.


Ну, мова тут обчислюється в такому ж низькому класі, як coNLOGTIME, тому вона точно не вимагає гіперкомп'ютації. (Фактично,LY і LNможна відокремити навіть у DLOGTIME.)
Еміль Єржабек

@ EmilJeřábek: Я сказав "не надто далеко" ... не задушуй амбіції цього крихітного класу ... :-)
Marzio De Biasi

2

У цій відповіді передбачається, що машини Тьюрінга мають нескінченні стрічки в обидві сторони. Претензії не стосуються однобічних нескінченних стрічок.

Дозвольте спершу визначити клас мов C3як клас усіх мов, який можна вирішити односмуговими машинами Тьюрінга з 3 станами (C3визначався як клас мов, розпізнаваний односмуговими машинами Тьюрінга з 3 станами). Я представив класC3 бо у своїй оригінальній відповіді я несвідомо поміняв місцями заняття C3 і C3 (Я вважав лише клас C3).

Ця відповідь є доповненням до відповідей @MarzioDeBiasi. Він показав, що заняттяC3 і C3не містяться в CFL і тому містять досить цікаві мови. Однак, як я покажу в цій публікації, кожна моваL в C3 має властивість, що множина {1n;nN{0}} є або в L або в його доповнення LC. Таким чиномC3також є дуже обмежуючим, наприклад. він містить лише тривіальні одинарні мови{}, {ε}, {1n;nN} і {1n;nN{0}}. КласC3містить трохи більше одинарних мов. Однак він вважає, що якщоLC3 і 1nL для n1, тоді 1mL для усіх mn. Простий наслідок полягає в тому, що не всі звичайні мови єC3 ні в C3. Також мова{1} не в C3 ні в C3.


За позовом (жирним шрифтом) о C3, достатньо довести, що односмугова машина Тюрінга M з 3 станами, які завжди зупиняють або приймає, або відхиляє всі рядки з {1n;nN{0}}. Припустимо, що рядок форми1n, nN{0}, надається M. Є три випадки:

1) КолиM читає 1, він приймає або відхиляє.

2) КолиMчитає 1, він рухає головою вліво. Якщо ми хочемоMщоб зупинити цей вхід, він повинен прийняти, відхилити або переміститися праворуч на порожньому символі. Отже, він ніколи не відвідує клітинку праворуч від початкової комірки стрічки. Якби це було, він би працював назавжди на вході 1.

3) КолиMчитає 1, він рухає головою вправо. Звідси випливає, що післяn кроки, вміст стрічки є An де A є деяким символом із стрічки алфавіту та голови M знаходиться в крайньому лівому порожньому символі праворуч від останнього A. Якщо ми хочемоMщоб зупинити цей вхід, він повинен прийняти, відхилити або перейти ліворуч на порожній символ. Як і у випадку 2), голова оM тепер ніколи не відвідуватиме келію прямо зліва направо A. Якщо так, тоM працюватиме назавжди на вході 1.

Зрозуміло, що у всіх трьох випадках M приймає всі рядки з набору {1n;nN{0}} або він відкидає їх усіх.


Доказом позову (жирним шрифтом) о C3слідує тій же лінії, що і вище. Беремо односмугову 3-державну машину ТюрінгаM що приймає рядок 1n для деяких n1. ПрипустимоM дається вхід 1m для mn. Ми повинні це довестиMприймає цей вхід. У нас є 3 випадки:

1) КолиM читає 1, він приймає.

2) КолиM reads 1, it moves the head to the left. Because M accepts the input 1n, it has to accept or move to the right on the blank symbol. Hence, it never visits the nth cell to the right of the initial cell. If it would, it would run forever on input 1n.

3) When M reads 1, it moves the head to the right. It follows that after m steps, the content of the tape is Am where A is some symbol from the tape alphabet and the head of M is on the leftmost blank symbol to the right of the last A. Because M accepts the input 1n, it must accept or move to the left on the blank symbol. As in case 2), the head of M will now never visit the nth cell to the left of the rightmost A. This is because on the input 1n, M does not visit the cell directly left of the initial cell, because it contains the blank symbol and if it would read it, it would run forever.

It is clear that in all three cases M accepts all strings from the set {1m;mn}.


First of all, nowhere in the question does it say that M must halt on all inputs, so that screws up some of the logic in this answer. Beyond that, the logic in several of the cases doesn't make sense to me. For example, in case 3, if M moves left on both blank and A, then M will visit the cell directly left of the rightmost A (in direct contrast to the claim from the answer.)
Mikhail Rudoy

Nice; another way to state it is: if Σ={1} (unary languages) then k s.t. 1kL(M)L(M)={1nn>0} ...
Marzio De Biasi

@MikhailRudoy, to first clarify the case 3: if the head moves left on both A and blank symbol, then it will move left forever and will not halt. If it ever (say after 100 steps) visits the cell directly left of the rightmost A, then in the case of input 1 it never halts (in this case the cell directly left of the rightmost A will contain the blank symbol).
David G

@MikhailRudoy, it is true that I assumed that a Turing machine has to halt. I will edit the answer to include also the possibility that it runs forever. The result is similar.
David G

3
@MikhailRudoy: BTW the hatling problem is decidable for 1 state Turing machines; see Gabor T. Herman, The uniform halting problem for generalized one-state turing machines. The model described there is a little bit different from yours: the TM accepts if it ends in a mortal configuration (there is no Accept/Reject); but the result also applies to your model (just Halt the TM on the symbols that lead to your extra Accept/Reject states).
Marzio De Biasi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.