Унарні мови розпізнаються за двосторонніми детермінованими лічильниками автомати


17

2dca (двосторонні детерміновані одноконтрастні автомати) (Petersen, 1994) може розпізнати таку одинарну мову:

ПОWЕR={02нн0}.

Чи є інша нетривіальна одинарна мова, визнана 2dca?

Зауважте, що досі невідомо, чи можуть 2dca розпізнати ?SQUАRЕ={0н2н0}


ВИЗНАЧЕННЯ: 2dca - це двосторонній детермінований кінцевий автомат із лічильником. 2dca може перевірити, чи є значення лічильника нульовим чи ні, і збільшувати чи зменшувати значення лічильника на 1 на кожному кроці.


3
Чи можете ви додати посилання на визначення 2DCA?
Суреш Венкат

3
@SureshVenkat: Я додав посилання, а також визначення.
Abuzer Yakaryilmaz

1
@AbuzerYakaryilmaz: для кожного фіксованого він може розпізнати { 0 k n : n 0 }к{0кн:н0}
Marzio De Biasi

@MarzioDeBiasi: Алгоритм можна легко узагальнити до P O W E R k = { 0 k nn 0 } , де k 3 . Тому ці мови для мене досить тривіальні. ПОWЕRПОWЕRк={0кнн0}к3
Abuzer Yakaryilmaz

1
Гм, насправді я думаю, що таким чином я просто закінчуюсь тим самим спостереженням, що вже зробив Марціо, тому нічого нового в тому, що я сказав. Мені все ж цікаво, чи потрібно нам читати кінцевий маркер більше, ніж обмежену кількість разів.
domotorp

Відповіді:


6

Це лише ідея, яка мені прийшла в голову під час читання Марвіна Л. Мінського «Рекурсивна нерозв'язність проблеми тегів Поста та інших тем з теорії машин Тюрінга»; зокрема відома теорема Ia:

Теорема Ia: Ми можемо представити будь-яку часткову рекурсивну функцію програмою, що працює на двох цілих числах S 1 і S 2, використовуючи інструкції I j форм: (i) ADD 1 to S j , і перейти до I j 1 ( ii) ПІДПРИЄМСТВО 1 з S j , якщо S j0 і переходимо до I j 1 , інакше переходимо до I j 2 Тобто ми можемо побудувати таку програму, яка починається з S 1f(н)S1S2Яj
SjЯj1
SjSj0Яj1Яj2
і S 2 = 0 і врешті-решт зупиняється на S 1 = 2 f ( n ) і S 2 = 0S1=2нS2=0S1=2f(н)S2=0

Якщо у вас двосторонній DFA з одним лічильником над (напів) нескінченною стрічкою, де введення подано унарі: тоді DFA може:$12н000 ...

  1. прочитати одинарний вхід (і зберегти його у лічильнику);
  2. працюйте над частиною стрічки і використовуйте відстань від 1 с як другу лічильник.01

тож він може імітувати повну машину з двох лічильників Тюрінга.

Тепер, якщо у вас є рекурсивна функція яка працює в часі T ( n ) на стандартній машині Тьюрінга, двосторонній DFA з одним лічильником, який запускається на кінцевій стрічці $ 1 млн $f(н)Т(н) $1м$(де і T ' ( n ) T ( n ) ) можуть:м=2н3Т'(н)Т'(н)Т(н)

  1. прочитати одинарний вхід (і зберегти його у лічильнику);
  2. повернення до крайнього лівого символу;
  3. розділіть лічильник на 3, поки лічильник не містить таким чином: перейдіть направо циклу від станів q z 0 , q z 1 , q z 2 і віднімаючи 1; якщо лічильник досягає 0 у стані q z 0, перейдіть до символу вліво, додаючи +1, і продовжуйте цикл поділу, інакше додайте 1 (якщо у стані q z 1 ) або 2 (якщо у стані q z 2 ) та перейдіть до крайнього лівого символу додаючи + 3 (тобто відновити попереднє значення лічильника, не ділиться на 3), і перейти до кроку 4;2нqz0,qz1,qz2qz0qz1qz2
  4. в цей момент лічильник містить ;2н
  5. обчисліть використовуючи простір T ( n ), доступний праворуч у якості другого лічильника (значення другого лічильника - відстань від крайнього лівого символу $ ).2f(н)Т'(н)$

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

Якщо підхід правильний, було б цікаво міркувати про те, як вибрати або коли достатньо вибрати великий непарний k 2 і кодувати вхід як 1 м , m = 2 n k nТ'(н)Т(н)к21мм=2нкн


-1

Під нетривіальним, я припускаю, що ви маєте на увазі мову L, яку не можна прийняти 1dca. Ось, здається, така мова:

ЦЕНТР = {w | w більше {0,1} * і w = x1y для деякого x, y таке, що | x | = | y |}

Ця мова не може бути прийнята 1dca, але МОЖНА прийняти 1nca. Це може бути прийнято 2dca. Деталі залишаються як вправи.


2
ОП просить одинарних мов (вхід подається як )$1н$
Marzio De Biasi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.