Чи відрізняється недетермінізм у недетермінованій машині тюрінгу від кінцевих автоматів та автоматичних тиску?


9

Нехай рядок введення задається як . Тоді якщо NFA в даний час знаходиться в стані (і прочитав вхідний алфавіт w_i ), то перед читанням наступного символу введення NFA розбивається на два NFA, один перебуває в стані r, а інший знаходиться в s , якщо є перехід тип r \ xrightarrow {\ epsilon} s . Якщо є цикл типу r \ xrightarrow {\ epsilon} s \ xrightarrow {\ epsilon} q_1 .... \ xrightarrow {\ epsilon} q_k \ xrightarrow {\ epsilon} r , де q_i - деякі стани NFA, тоді не потрібно згадувати інший NFA у стані r до точки, де вхід читався до алфавіту w_iw1w2...wnrwirsrϵsrϵsϵq1....ϵqkϵrqirwi.

Якщо КПК (недетермінований) знаходиться у стані r (а вхід читається до wi ) і існує цикл rϵ,ϵasϵ,ϵaq1....ϵ,ϵaqkϵ,ϵar (де перехід ϵ,ϵa означає, що нічого після wi зчитується з введення, нічого не вискакується або не читається зі стека, а алфавіт a висувається на стек), тоді перед читанням наступного алфавіту вводу wi+1 буде нескінченний КПК у станах r,s,q1,...qk тому що, на відміну від NFA, хоча стани є кінцевими стеками, вміст може бути різним (нескінченні можливості), якщо я не помиляюся.

Як і у випадку з NFA та PDA, сила недетермінізму походить від переходів ϵ . Тож я припускаю, що недетермінований апарат Тьюрінга також отримує це недетермінізм від ϵ переходів, таких як NFA та PDA (більше схожий на PDA). Я знаю, що детермінований апарат Тьюрінга може імітувати недетермінований (я знаю доказ, який використовує пошук перших хлібів). Але зараз я сумніваюся, як це можливо. Тому що якщо цикл типу в PDA вище існує в діаграмі стану недетермінованої машини Тьюрінга, то перед читанням наступного символу wi+1детермінована машина Тьюрінга навіть при моделюванні конфігурації в деякій гілці недетермінованої машини Тьюрінга (тоді як bfs) повинна була б відслідковувати нескінченну машину Тюрінга (знову ж таки стани кінцеві, але символи на стрічці мають безмежні можливості).
То як саме визначається недетермінізм у випадках Тьюрінга? Хіба я нерозумію щось тривіальне? Чи використовують недетерміновані машини Тьюрінга ϵ переходи?


Мені шкода за мої банальні сумніви. Якщо щось невірно, я можу оновити своє запитання.


2
Що стосується заголовного питання, то формальних визначень немає великої різниці. що стосується енергії, що виникає, так це має багато різних наслідків для кожної моделі машини. що стосується решти запитань, важко розібратися. :(
vzn

1
Ви перевірили Вікіпедію? en.wikipedia.org/wiki/Non-deterministic_Turing_machine
Yuval Filmus

@YuvalFilmus так у мене є. Визначення функції переходу включає в себе набір потужності, який я розумію. Але річ щодо переходів у машинах Тьюрінга для мене ще незрозуміла. epsilon
сашас

@vzn Я так думав. Мені справді шкода. Я погано висуваю свої сумніви. Але я можу вдосконалитись, якщо ви дасте пропозиції.
sashas

Відповіді:


8

Недетермінізм - це одне і те ж поняття у всіх контекстах - машині дозволено декілька варіантів, щоб продовжити в будь-який момент. Однак семантика дещо відрізняється, оскільки DFA / NFA та PDA завжди визначають загальні функції, тоді як машини Тьюрінга (детерміновані або недетерміновані) загалом визначають часткові функції.

Часткова функція - це визначена лише на частині домену. Якщо не визначено на то пишемо . (Отже, - це дійсно тотальна функція, але в діапазоні є спеціальний елемент, що означає, що вихід не визначений.) Детермінована машина Тьюрінга визначає часткову функцію так: якщо зупиняється на тоді є вміст стрічки, коли зупиняється на ; і в іншому випадку .fxf(x)=fMMxM(x)MxM(x)=

Детермінована машина Тьюринга Вирішальний мають два види зупиночних станів, прийняття і відмова, і визначає часткову функцію наступним чином : якщо зупиняється на на допускающем стані, то ; якщо він зупиняється в стані відхилення, то ; якщо це не зупиняється, тоді . Якщо завжди зупиняється, ми говоримо, що він приймає мову .MxM(x)=1M(x)=0M(x)=ML={x:M(x)=1}

Недетермінованій машині Тьюрінга (яка завжди є рішучою) дозволяється "розгалужуватися" (мати кілька можливих варіантів у будь-який момент часу) і має таку семантику:

  • M(x)=1 якщо на вході машина зупиняється на всіх гілках, зупиняючись у приймальному стані принаймні для однієї гілки.xM
  • M(x)=0 якщо на вході машина зупиняється на всіх гілках, завжди зупиняючись у стані відхилення.xM
  • M(x)= якщо на вході існує гілка, на якій не зупиняється.xM

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


Що з -рухом? Вони створюють проблеми в тому, що відповідний автомат ніколи не може зупинитися. Для кінцевих автоматів (NFA та PDA) ми мовчки ігноруємо обчислення, що не зупиняються. Наша причина цього полягає в тому, що отримані мови завжди піддаються обчислюванню, навіть якщо наївний алгоритм їх моделювання детерміновано (моделювання всіх контурів обчислень) не дуже працює. Це не так вже й складно для NFA, які можна перетворити на DFA. Однак детерміновані КПК суворо слабкіші, ніж недетерміновані КПК. Тим не менш, ви можете показати, що кожен КПК еквівалентний одиниці без -переходів (хоча доказ може пройти через без контекстних граматик).ϵϵ

Ви можете імітувати -moves у машинах Тьюрінга, але ви повинні бути обережними, щоб не було циклів, які викликають обчислення, що не зупиняються. Однак у деяких випадках ми можемо використовувати той самий трюк, що і вище. Наприклад, припустимо, що ваша машина Тьюрінга обмежена простором: ми знаємо верхню межу простору, який він використовує (залежно від довжини введення). У такому випадку кожне обчислення, що не зупиняється, обов'язково циклічно (оскільки машина Тьюрінга має безліч станів, включаючи вміст стрічки), і тому, якщо ми "ігноруємо" обчислення, що не зупиняються, як описано вище, отримана модель обчислення все ще обчислюється. Загалом, це працює до тих пір, поки ми гарантуємося, що кожен цикл обчислення, що не зупиняється. (Це стосується НФА, але не для КПК.)ϵ


Дякую. У мене було останнє сумніви. У PDA з переходом , якщо КПК перебуває у стані то він розділиться лише у випадку, якщо ( - алфавіт, прочитаний із вхідної стрічки, - алфавіт, що вискочив із стека та натискається на стек) - це незалежно від того, що таке і ( або звичайні алфавіти стека). Чи правий я ? rb,casrbbcaϵacϵ
Сашас

@sasha Виконання "розбивається", коли є кілька варіантів для продовження.
Yuval Filmus

Як мені довести, що КПК з переходами може бути перетворений в один без них? Я знаю, що я завжди можу довести, що мова, прийнята будь-яким КПК, визначається, перетворивши її на свою CFG у звичайній формі Хомського. Але все ще не можна перетворити на КПК без переходів epsilon. Я дуже вдячний за будь-яку підказку. ϵ
сашас

1
@sasha Безконтекстну граматику в нормальній формі Грейбаха можна перетворити в КПК без переходів (принаймні згідно Вікіпедії). ϵ
Yuval Filmus

1
@YuvalFilmus недетермінований конструкція з GNF по суті рекурсивний спуск: Для виробництва , якщо знаходиться на вершині стека, на вході замінити на в стеці . Ні видно. Досі нетермінові (може бути кілька -продукцій, які запускають ). AaB1B2BnAaAB1BnϵAa
vonbrand
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.