"Відгадайте" автоматичні автоматичні "віджимання" - що це означає?


14

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

Все-таки я не розумію, як саме їх "вибирають". Наприклад, для паліндормів, наприклад, кожне знайдене нами джерело просто каже, що автомат "здогадується" середину слова. Що це означає?

Я можу придумати кілька можливих значень:

  1. Він переходить в один стан випадковим чином, тому може не прийняти слова, яке насправді є мовою

  2. Це якимось чином йде "всіма можливими способами", тож якщо перший неправильний, він перевіряє, чи може бути хтось із інших

  3. Є якийсь механізм, про який я не знаю, який вибирає середину слова і тому не є випадковим, але автомат завжди знаходить правильну середину.

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


Пов’язано: наш довідковий питання пояснює різницю між рандомізованими та недетермінованими алгоритмами.
Рафаель

Відповіді:


8

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

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

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

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

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


5

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

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

Потім це призводить до думки про автоматичне «здогадування», якщо слово прийняте недетермінованим автоматом, то ми схильні думати про автомат як автоматично, що робить правильний вибір, щоб (один із) прийнятих шляхів (-ів) прийняття дотримується, коли це слово подається як вхідне.

Що означає це для паліндромів, це те, що PDA, по суті, матиме два режими: режим натискання, коли він виштовхує поточні літери на стеку, і режим, коли він вискакує ці літери та співставляє їх проти введення. Ця машина матиме порожній перехід із стану натискання у стан, що вискакує, за яким він зможе дотримуватися в будь-якій точці слова. Однак машина спорожнить свій стек лише тоді, коли він прочитає паліндром і дотримується порожнього переходу в середині паліндром. Оскільки нам потрібно лише існування прийнятого шляху, ми можемо сказати, що автомат "здогадується", де знаходиться середина слова.


5

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

Це означає, що він «вирішує», який крок зробити в цих неоднозначних ситуаціях. Один із способів поговорити про це - сказати, що він магічно вибирає завжди «правильний» наступний крок (або один, якщо є кілька «правильних» кроків). Ще один спосіб бачити, що в таких ситуаціях обчислення автомата розбивається на кілька примірників, кожна з яких проходить один шлях.

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


Я не думаю, що зворотний трек - це гарна ідея. Ваше дерево може бути не кінцевим. Мені відомо, що він використовується в деяких реалізаціях недетермінізму, наприклад, Prolog, і я думаю, що це було занадто на ранній роботі Роберта Флойда. Але це було призначене під наглядом програміста, і я б не вважав це теорією автомати. Насправді, навіть у Prolog є інша реалізація для обліку проблеми.
бабу

@babou, це один із способів зробити це на практиці. Я не кажу , що це рішення
vonbrand

2

"Відгадування" безпосередньо пов'язане з нашою екзистенційною інтерпретацією недетермінізму

Коротше кажучи: ця ідея про те, що недетермінований автомат може здогадатися (або йому може допомогти оракул) безпосередньо пов'язана з нашою екзистенційною інтерпретацією недетермінізму. Можлива й інша інтерпретація (можливо, інші), де «здогадуватися» не було б сенсу.

Не детермінізм дивний. У нас є один спосіб його тлумачення в теорії автоматів, але це не апріорі очевидно, як нам це робити.

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

Існує багато способів поєднання того, що вже відомо, з правилами висновку, щоб отримати нові результати. І ситуація, як правило, така ж, якщо ми спробуємо відтворити доказ назад від результату.

Намагаючись вирішити таку проблему, ми намагаємось « відгадати » шлях у певній перехідній системі.

Власне, ми не здогадуємось, але будуємо в своєму розумі деяку структуру, яка організовує та / або спрощує лабіринт можливостей, щоб ми могли бачити наш шлях через нього. У деяких випадках питання йде за визначеною схемою, для якої у нас є стандартний спосіб (іноді? Зазвичай? Завжди?) Знайти рішення, і ми називаємо це алгоритмом.

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

Це доопрацьовано обчислення DС імітує всі можливі обчислення оригінального автомата А, але не говорить нам, як це слід тлумачити. Він може просто сказати нам, чи може А колись зупинитися з прийняттям або відхиленням, і, можливо, що він завжди зупиниться. Але це не може більшеА Сам, скажи нам це А ніколи не зупиняється і ніколи не зупиняється з прийняттям.

Насправді, можуть бути різні способи інтерпретації недетермінованих обчислень . Афаїк вони всі послідовні, але не між собою.

Що стосується розпізнавача мови Rнаприклад NPDA, яка може або не зупинятися, або зупинятися з прийняттям або відхиленням, як вважається, розпізнавальник приймає вхідшЯкщо є один розрахунок, який зупиняє та приймає . Це відповідає нашому власному погляду на недетермінований процес доказування, який вважається успішним, якщо він може визначити одне дерево доказів для теореми, яка повинна бути доведена.

Ідея здогадуватися для розпізнавача - це просто зображення, зроблене з нашого власного способу "здогадуватися", як знайти це дерево доказів. Але велика різниця в тому, що наші мізки не є КПК. Вони набагато складніші пристрої з можливістю досліджувати та картографувати приблизно перехідні структури, щоб ми могли знайти свій шлях через них, які ми іноді сприймаємо як здогадки.

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

Однак можна також інтерпретувати недетермінізм універсальним способом як: кажуть, що розпізнавач (універсально) приймає вхід "w", якщо всі можливі обчислення зупиняються і приймають дані. Це універсальне прийняття відповідає концепції універсальної зупинки, запровадженої в одній відповіді.

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

Якщо нам доведеться розпізнати паліндром, ми можемо здогадуватися, вимірюючи довжину і шукаючи середину. КПК не може. Але оскільки нас цікавить лише одне рішення, ми завжди можемо зробити вигляд, що воно може… якщо це допоможе. Або ми можемо вважати, що в ньому є оракули, надані більш розумними машинами (нам?), Щоб допомогти йому. Або ви навіть можете назвати це магією, і вважаєте, що це (адже екзистенційний кількісний показник - це якась магічна паличка). Якщо це може допомогти, воно буде. Якщо немає прийняття обчислень, жодна допомога не буде корисною.

Зауважте, що ця ідея здогадуватися була б безглуздою в універсальній інтерпретації прийняття.

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