Якого просвітництва я повинен досягти після вивчення кінцевих автоматів?


247

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

  1. Вивчити, що вони є, а що не здатні, тобто обмеження
    • Чому?
  2. Оскільки вони є основними моделями теоретичного обчислення і могли б закласти основу інших більш спроможних моделей обчислень.
    • Що робить їх «основними»? Це що вони мають лише один біт зберігання та переходи стану?
  3. Гаразд, і що? Як все це сприяє відповіді на питання про обчислюваність? Мабуть, машини Тьюрінга допомагають зрозуміти це дуже добре, і є "менші" моделі обчислень, такі як КПК, DFA / NFA / Regexes і т. Д. Але якщо хтось не знав ФА, то що їм не вистачає?

Тож хоч я певною мірою я це розумію, я не в змозі відповісти на це питання сам? Як краще пояснити "чому вивчати Д / Н-ФА"? На яке питання вони прагнуть відповісти? Як це допомагає і чому це перше, що викладається в теорії автоматів?

PS: Мені відомі різні лексикографічні програми та відповідники зразків, які можна реалізувати як такі. Однак я не хочу знати, для чого це можна практично використовувати, але в чому полягала їхня причина / винахід / дизайн під час кульмінації вивчення теорії обчислень. Історично кажучи, що спонукало почати з цього і до чого це повинно призвести розуміння "ага"? Якщо ви пояснювали їхню важливість студентам CS, які тільки починають вивчати теорію автоматів, як би ви це зробили?


10
Отже, це питання рівня дослідження в TCS?
Гендрик Ян

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

6
Кандидат наук: Ваше запитання дало дуже хороші відповіді, тому я вам за це дякую. Ви були чесними у своїх висловлюваннях, і це було не моїм наміром дискваліфікувати вас чи ваше питання. Насправді це зовсім навпаки, що підказує мій коментар: я бачив деякі інші питання, які занадто легко були відхилені, використовуючи цю цитату з файлу. Ви праві Суреш: це не місце для початку дискусій. Вибачте.
Гендрик Ян

1
@HendrikJan - О, не хвилюйся! Текст приховує тон. Я ніколи цього не мав на увазі. Я думав, ти запитуєш мене, чи це питання дослідження з мого боку.
Кандидат

16
Кудо доктора та Хендріка за рівень ввічливості я рідко зустрічаю на публічних форумах.
Лукас

Відповіді:


342

Мені особисто сподобалося кілька Ага! моменти вивчення базової теорії автоматів. NFA і DFA утворюють мікрокосм для теоретичної інформатики в цілому.

  1. Чи недетермінізм призводить до ефективності? Є стандартні приклади, коли мінімальний детермінований автомат для мови експоненціально більший, ніж мінімальний недетермінований автомат. Розуміння цієї різниці для машин Тьюрінга лежить в основі (теоретичної) інформатики. NFAs та DFAs - це найпростіший приклад, я знаю, де можна чітко бачити суворий розрив між детермінізмом та недетермінізмом.
  2. Обчислюваність! = Складність. NFAS і ДКА обидва представляють собою регулярні мови і еквівалентні в те , що вони обчислюють. Вони відрізняються тим, як здійснюють обчислення.
  3. Машини вдосконалюють мови. Це різне сприйняття того, що ми обчислюємо та як ми проводимо обчислення. Ви можете вважати обчислювані мови (і функції) як визначення класу еквівалентності автоматів. Це фундаментальна зміна точки зору в TCS, де ми орієнтуємося не лише на те, що, а як на обчислення і намагаємося вибрати правильне "як" при розробці алгоритму або розуміємо простір різних, як це вивчає класи складності.
  4. Значення канонічного представлення. DFA - це найважливіший приклад структури даних, що допускає канонічне подання. Кожна звичайна мова має унікальний мінімальний DFA. Це означає, що за умови мінімального DFA важливі операції, такі як включення мови, доповнення та перевірка прийняття слова, стають тривіальними. Розробка та використання канонічних уявлень - корисна хитрість при розробці алгоритмів.
  5. Відсутність канонічних уявлень. Не існує добре прийнятого канонічного зображення регулярних виразів або NFA. Отже, незважаючи на вищезазначений пункт, канонічні уявлення не завжди існують. Ви побачите цю точку в багатьох різних областях інформатики. (наприклад, логічні формули пропозицій також не мають канонічних уявлень, в той час як це роблять ROBDD).
  6. Вартість канонічного представництва. Ви навіть можете зрозуміти різницю між NFA та DFA як алгоритмічну теорему без вільного обіду . Якщо ми хочемо перевірити включення мови між NFA або доповнити його, ви можете визначити та мінімізувати його та продовжити звідти. Однак ця операція "скорочення" приходить дорожче. Ви побачите приклади канонізації за ціною в кількох інших сферах інформатики.
  7. Нескінченний! = Невизначений. Поширене неправильне уявлення про те, що проблеми інфінітарного характеру за своєю суттю не вирішені. Звичайні мови містять нескінченно багато рядків і все ж мають декілька властивостей, що визначаються. Теорія регулярних мов показує вам, що лише нескінченність не є джерелом нерозбірливості.
  8. Тримайте нескінченність у долоні вашого Автомати. Ви можете розглядати кінцевий автомат виключно як структуру даних для представлення нескінченних множин. ROBDD - це структура даних для представлення булевих функцій, яку ви можете зрозуміти як представлення кінцевих наборів. Кінцевий автомат - це природне, інфінітарне розширення ROBDD.
  9. Процесор Humble. У сучасному процесорі багато в ньому, але ви можете зрозуміти це як скінченний автомат. Саме ця реалізація зробила архітектуру комп’ютера та дизайн процесорів набагато менш страшними для мене. Це також показує, що на практиці, якщо ви ретельно структуруєте і маніпулюєте своїми штатами, ви можете дуже далеко отримати кінцеві автомати.
  10. Алгебраїчна перспектива. Регулярні мови утворюють синтаксичний моноїд і їх можна вивчити з цього погляду. Більш загально, ви можете в наступних дослідженнях також запитати, яка правильна алгебраїчна структура відповідає якійсь обчислювальній задачі.
  11. Комбінаторна перспектива. Кінцевий автомат - це мічений графік. Перевірка, чи прийнято слово, зводиться до пошуку шляху в позначеному графіку. Алгоритми автоматів складають перетворення графіків. Розуміння структури автоматів для різних підсімей регулярних мов є активною дослідницькою сферою.
  12. Алгебра-мова-комбінаторика любовного трикутника. Теорема Міхілла-Нерода дозволяє починати з мови та генерувати автомат чи синтаксичний моноїд. Математично ми отримуємо переклад між дуже різними типами математичних об'єктів. Корисно пам’ятати про такі переклади і шукати їх в інших областях інформатики та пересуватись між ними залежно від вашої програми.
  13. Математика - це мова великих зображень. Регулярні мови можуть характеризуватися NFA (графіками), регулярними виразами (формальна граматика), машинами Тюрінга (машина), доступними лише для читання, синтаксичними моноїдами (алгебра), алгебрами Клінова (алгебра), монадійною логікою другого порядку тощо. Більш загальною Явище полягає в тому, що важливі, стійкі поняття мають багато різних математичних характеристик, кожна з яких вносить різні смаки в наше розуміння ідеї.
  14. Леми для працюючого математика. «Накачана лема» - чудовий приклад теоретичного інструменту, який можна використовувати для вирішення різних проблем. Робота з леммами є хорошою практикою для спроб спиратися на існуючі результати.
  15. Необхідно! = Достатньо. Теорема Міхіл-Нерода дає вам необхідні та достатні умови, щоб мова була регулярною. Насосна лема дає нам необхідні умови. Порівнювання двох та використання їх у різних ситуаціях допомогло мені зрозуміти різницю між необхідними та достатніми умовами в математичній практиці. Я також дізнався, що необхідна та достатня умова для багаторазового використання - це розкіш.
  16. Перспектива мови програмування. Регулярні вирази - простий і красивий приклад мови програмування. У зв'язку з цим у вас є аналог послідовного складу, а в зірці Кліне, у вас є аналог ітерації. Визначаючи синтаксис та семантику регулярних виразів, ви робите немовляти кроком у напрямку теорії мови програмування, бачачи індуктивні визначення та композиційну семантику.
  17. Перспектива компілятора. Переклад від регулярного виразу до кінцевого автомата - це також простий, теоретичний компілятор. Ви можете побачити різницю між розбором, генерацією проміжного коду та оптимізаціями компілятора через різницю в читанні регулярного виразу, генерації автомата, а потім мінімізації / визначення автомата.
  18. Сила ітерації. Бачачи, що ви можете робити в кінцевому автоматі з циклом і без нього, ви можете оцінити силу ітерації. Це може допомогти зрозуміти відмінності між схемами та машинами або між класичною логікою та логікою з фіксованою точкою.
  19. Алгебра та коалгебра. Регулярні мови утворюють синтаксичний моноїд, який є алгебраїчною структурою. Кінцеві автомати утворюють те, що мовою теорії категорій називається вуглегебра. У випадку детермінованого автомата ми можемо легко переходити між алгебраїчним і вуглегебраїчним поданням, але у випадку НФА це не так просто.
  20. Арифметична перспектива. Існує глибокий зв’язок між обчисленням і теорією чисел. Ви можете зрозуміти це як твердження про силу теорії чисел та / або універсальність обчислення. Зазвичай ви знаєте, що кінцеві автомати можуть розпізнати парну кількість символів, і що вони не можуть підрахувати достатньо, щоб відповідати дужкам. Але на скільки вони здатні до арифметики? Кінцеві автомати можуть вирішувати арифметичні формули Пресбургера. Найпростіша процедура, яку я знаю для арифметики Пресбургера, зводить формулу до автомата. Це один погляд, з якого можна перейти до десятої проблеми Гільберта, і її вирішення призвело до виявлення зв’язку між рівняннями Діофантіна та машинами Тюрінга.
  21. Логічна перспектива. Обчислення можна зрозуміти з чисто логічної точки зору. Кінцеві автомати можуть характеризуватися слабкою монадичною логікою другого порядку над кінцевими словами. Це мій улюблений, нетривіальний приклад логічної характеристики обчислювального пристрою. Описова теорія складності показує, що багато класів складності теж мають суто логічні характеристики.
  22. Кінцеві автомати ховаються в місцях, які ти ніколи не уявляв. (Хет-наконечник до коментаря Мартіна Бергера щодо зв'язку з теорією кодування) Нобелівська премія з хімії за 2011 рік була присуджена за відкриття квазікристалів. Математика, що стоїть за квазікристалами, пов'язана з аперіодичними накладками. Однією специфічною аперіодичною плиткою площини називають картушну плитку, яка складається з форми змія та форми краватки-бабочки. Ви можете кодувати ці фігури через 0s та 1s, а потім вивчити властивості цих послідовностей, які кодують послідовності шаблонів. Насправді, якщо ви будете картографувати 0 до 01 та 1 до 0 і багаторазово застосовувати цю карту до цифри 0, ви отримаєте 0, 01, 010, 01001 тощо. Зауважте, що довжини цих рядків відповідають послідовності Фібоначчі. Слова, утворені таким чином, називаються словами Фібоначчі. Окремі послідовності форм, що спостерігаються в обшивці Пенроуза, можна кодувати як слова Фібоначчі. Такі слова були вивчені з автоматико-теоретичної точки зору, і здогадуйтесь, що, деякі сімейства слів приймаються кінцевими автоматами і навіть надають приклади поведінки в гіршому випадку для стандартних алгоритмів, таких як алгоритм мінімізації Хопкрофта. Скажіть, будь ласка, запаморочення.

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

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


27
Прекрасний список. Я хотів би додати, що автомати пропонують цікаву перспективу теорії кодування, яку створив Schuetzenberger. Крім того, сучасна теорія одночасності та теорія процесів - це узагальнення теорії автоматів, де автомати можуть складатись паралельно та синхронізуватись за своїми діями.
Мартін Бергер

6
Ого. (+ 0,5 за останнє речення. :-)
LarsH

6
Щойно приєднайтесь до TCS.SE виключно для того, щоб поставити це +1.
Тинам

5
Незважаючи на те, що знаю майже все в цьому списку, все одно я якось відчуваю себе освіченим за те, що прочитав його. (Крім того, (І далі) * змусив мене посміхатися.)
CA McCann

2
Чесно кажучи, я ніколи не замислювався над більшістю цього матеріалу (а також про деякі теореми, про які я ніколи не чув), і я взяв курс теорії обчислень. Чи потрібно мати особливо хорошого вчителя чи навчальну програму, щоб вказати на ці одкровення?
Кен Блум

33

Існує багато вагомих теоретичних причин для вивчення N / DFA. Два, які відразу приходять на думку, це:

  1. Машини Тьюрінга (на нашу думку) фіксують все, що можна обчислити. Однак ми можемо запитати: Які деталі машини Тьюрінга є "необхідними"? Що відбувається, коли обмежувати машину Тьюрінга різними способами? DFA - це дуже суворе і природне обмеження (забирає пам'ять). КПК є менш суворим обмеженням і т. Д. Теоретично цікаво бачити, що дає пам’ять і що відбувається, коли ти йдеш без неї. Мені це здається дуже природним і базовим питанням.

  2. Машинам Тьюрінгу потрібна нескінченна стрічка. Наш Всесвіт обмежений, тому в деякому сенсі кожен обчислювальний пристрій є DFA. Здається, важлива і знову природна тема для вивчення.

Питання, чому слід вивчати ДФА, схоже на запитання, чому слід вивчити теорему про повноту Годеля, коли справжня цікава річ - теорема його незавершеності .

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


2
№1 має сенс, і я думаю, що бачу причину. Але як би ви пояснили причину "руху вперед" від ФА? Ті, хто щось знає про ToC, можуть відкликатись в ретроспективі і обмірковувати її. Як найкраще пояснити "чому" студентам, які починають вивчати теорію автоматів і знають лише ФА? Ми просто констатуємо, що ми починаємо з однобітних машин, оскільки вони є основними - чому? Як найкраще відповісти на "це", чому? Буду вдячний, коли б відповіли на це питання для загальних нообів для ToC :)
PhD

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

31

Додайте ще одну перспективу до решти відповідей: адже ви можете насправді робити речі з обмеженими автоматами, на відміну від машин Тьюрінга.

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

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

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


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

27

Держава. вам потрібно дізнатися, що можна моделювати світ (для певних проблем) як кінцевий простір стану, і можна думати про обчислення в цих налаштуваннях. Це просте розуміння, але надзвичайно корисно, якщо ви займаєтесь будь-яким програмуванням - ви будете стикатися зі станом знову і знову і знову, і ФА дасть вам можливість подумати над ними. Я вважаю це достатнім приводом для викладання повного класу. Звичайно, стан може бути детермінованим або недетермінованим. Таким чином DFA та NFA, але ви можете конвертувати між ними і т.д.

Друге, що потрібно вивчити - це теорема Халтінга. Що пов'язано з теоремою про незавершеність Годеля. (Ви не можете побудувати машину, яка зможе обчислити все. Є математичні твердження, що ви не можете ні доводити, ні спростувати, і як такі їх потрібно сприймати як аксіоми. Тобто ми живемо у світі, який не має обмеженого опису чи реального оракули - ви для нас!)

Тепер я зробив свою магістерську програму з математики, і ти звикаєш до того, що ти вивчаєш речі, у яких ти не маєш поняття, чому ти вчишся (теорія груп, теорія вимірювань, теорія множин, проміжки Гільберта, тощо, і т. Д., І т. Д. І т. Д. [Все добре , BTW]). Що можна сказати про те, як навчитися - наступного разу, коли ти маєш навчитися якоїсь химерної математики (тому що її потрібно використовувати для того, щоб зробити щось там у реальному світі), що виглядає дуже дивно, якщо ти поступаєшся з кроком. Зокрема, третє, що потрібно вивчити - це математична зрілість - вміти ретельно сперечатися про речі, знати, коли докази правильні чи ні, записувати докази і т. Д. Якщо ти вже маєш цей курс, то цей курс простий, і тебе теж не хвилюють багато чому ви це вивчаєте.

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


21

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

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


18

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

Ось перші два абзаци:

Машини Тьюрінга вважаються абстрактним прототипом цифрових комп'ютерів; Однак працівники на місцях все більше відчувають, що поняття машини Тьюрінга є занадто загальним, щоб слугувати точною моделлю фактичних комп'ютерів. Добре відомо, що навіть для простих обчислень неможливо дати апріорну верхню межу обсягу стрічки, яка потрібна машині Тьюрінга для будь-яких обчислень. Саме ця особливість робить концепцію Тьюрінга нереальною.

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

Коротше кажучи, вони були розроблені як модель реальних комп'ютерів, які мають обмежені ресурси.


16

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


10

Ознайомтеся з грою "Жива бінарна гадюка" тут: http://courstltc.blogspot.com/2012/12/living-binary-adder-game.html Я використовував цю гру для своїх учнів у своїх перших розділах про DFA / NFA. Він ілюструє дві важливі речі в теорії автоматів:

  1. Як перетворити розумовий процес на простий механічний
  2. Що насправді означає абстракцію. Два стану, як C і Z вище, можуть бути будь-якими: транзистори в комп'ютері, гідравлічний механізм або два людські плеєри!

Це, іноді, підносить «ага» момент моїм учням.


9

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

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


Звучить дуже сильно, але ви можете пояснити трохи більше? він є важко уявити собі мережевий протокол в якості державної машини. спасибі.
hkoosha

3

Власне, мої студенти іноді запитують саме це - провівши великий шматок семестру на кінцевих автоматах і нарешті приїхавши до машин Тьюрінга. Навіщо витрачати стільки часу на слабший формалізм, коли є більш сильний? Тому я пояснюю властиву компромісність у виразній силі та аналітичній складності. Багатіші моделі, як правило, важче проаналізувати. Дихотомія DFA vs. TM надзвичайна, оскільки проблема членства є тривіальною для одного, а для іншої - неприйнятною. Менш крайнім прикладом може бути DFA проти КПК. Проблема членства для останнього виявляється ефективно вирішуваною, але рішення зовсім не банальне. Ми зустрічаємо цю зустріч у багатьох галузях математики та науки: вивчіть просту модель, щоб отримати максимально повне розуміння, що, як правило, призводить до розуміння і більш складних моделей.


-4

Я бачу кілька відповідей, які називають ФМ "меншими", ніж машини Тьюрінга.

Основна увага, яку я взяла в післядипломному класі, полягала в їх еквівалентності, а не розрізненнях. Для кожної моделі FSM, яку ми вивчали, ми повинні були довести їх еквівалентність машинам Тьюрінга. Це робиться шляхом впровадження машини Тьюрінга в УБП. IIRC, ми також вивчали деякі інші обчислювальні моделі, в яких холодно не реалізовано TM, але я забуваю, що це було. Справа в тому, що якщо ви можете реалізувати TM, ви можете запустити будь-яку програму TM на моделі, враховуючи досить великий аналог стрічки для запущеної проблеми.

Відповідь на питання була основна: TM - це основна модель обчислюваності, але не дуже практична, коли справа стосується побудови корисних машин. Звідси моделі FSM.

Це було принесено до мене візуально додому, коли приблизно в той же час (1984) я відкрив мову FORTH. Цей двигун виконання побудований на основі чистої реалізації КПК Dual Stack. Заглиблюючись, я захоплюю цей же двигун під компіляторами виразів

Хоча для мене справжнім впливом FSM було відкриття книги «Теорія кінцевих автоматів» Трахтенброта та Коржинського (?), Коли мені було 18 років, відкриття, яке по суті дало мені кар’єру.


1
Я припускаю, що ви не довели еквівалентність між недетермінованими кінцевими автоматами та машинами Тюрінга. Саме цей конкретний об'єкт запитував ОП, а решта нас називають "меншими".
Vijay D

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