Чи обов'язково визначати переходи на кожному можливому алфавіті в детермінованих кінцевих автоматах?


13

Завтра - моя презентація, і я хочу прояснити свої концепції ...

Я прочитав, що в DFA "Для кожного стану слід визначити перехід усіх можливих символів (алфавіту)".

Чи обов'язкове для кожної держави визначення переходу на всі можливі символи в DFA? Якщо її немає, то, будь ласка, наведіть будь-які приклади?


1
Ласкаво просимо на CS.SE! Ми вважаємо за краще, щоб ви задавали лише одне запитання за повідомлення. Це виглядає як два окремих питання. Було б краще розмістити другий (про НФА) окремо. Також ви ретельно провели пошук на цьому веб-сайті та перевірили формальне визначення у своєму підручнику? Якщо ні, то слід зробити це, перш ніж запитати; і ви повинні показати нам у запитанні, що ви знайшли, коли це робили.
DW

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

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

9
У всякому разі, це, мабуть, охоплюється cs.stackexchange.com/q/12587/755 . Громади громади, будь ласка: це дублікат?
DW

1
Я не дуже розумію ваше запитання. Здається, "я читав, що визначення X. Чи є визначення X?"
Девід Річербі

Відповіді:


12

DFA визначається такими даними:

  • Алфавіт .Σ
  • Безліч станів .Q
  • Початковий стан .q0Q
  • Безліч кінцевих станів .FQ
  • Функція переходу .δ:Q×ΣQ

Як видно з підпису , він визначає перехід у кожному стані для кожного символу.δ


7
За винятком того, що DFA іноді визначаються функцією часткового переходу.
Жил "ТАК - перестань бути злим"

6
Ви маєте рацію, немає жодного "офіційного" визначення DFA. Але читання ОП зраджує вплив саме цього визначення.
Yuval Filmus

Слід чітко сказати, що функція переходу є тотальною.
Райан

24

Припустимо, у DFA було допущено відсутні переходи. Що станеться, якщо ви зіткнетесь із символом, для якого не визначений перехід? Результат невизначений. Це могло б порушити "детерміновану" характеристику DFA.

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

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


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

1
@Darkhogg, я не обов'язково погоджуюся, але чи не визначив би детермінізм неповного DFA залежним від того, яким чином конкретна реалізація обробляє ці невизначені / відсутніх переходи? І чи не буде така реалізація неявно завершити DFA?
Натан Девіс

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

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

5

ΣQρQ×Σ×Qδ:(Q×Σ)2Q|δ(q,σ)|1qQσΣδ(q,σ)qQσΣ

Слово приймається NFA, якщо воно має приймальний цикл. Детермінований автомат має максимум один пробіг. Повний автомат має щонайменше один пробіг.

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

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