Обязательно ли определять переходы для каждого возможного алфавита в детерминированных конечных автоматах?

13

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

Я прочитал это в DFA: «Для каждого состояния должен быть определен переход на все возможные символы (алфавит)».

Является ли для каждого состояния определение перехода по всем возможным символам обязательным в DFA? Если нет, то приведите, пожалуйста, какие-нибудь примеры?

HQuser
источник
1
Добро пожаловать в CS.SE! Мы предпочитаем, чтобы вы задавали только один вопрос на пост. Это похоже на два отдельных вопроса. Было бы лучше опубликовать второй (о NFA) отдельно. Кроме того, вы тщательно провели поиск на этом сайте и проверили формальное определение в вашем учебнике? Если нет, вы должны сделать это, прежде чем спрашивать; и вы должны показать нам в вопросе, что вы нашли, когда сделали это.
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. Но чтение ОП выдает влияние этого конкретного определения.
Юваль Фильмус
Следует прямо сказать, что функция перехода является тотальной.
Райан
24

Предположим, что DFA было разрешено иметь пропущенные переходы. Что произойдет, если вы встретите символ, для которого не определен переход? Результат не определен. Казалось бы, это нарушает «детерминистическую» характеристику DFA.

Тем не менее, легко превратить такой неполный DFA в полный DFA. Просто добавьте новое состояние illegalи отобразите любые неопределенные переходы в это illegalсостояние. Наконец, добавьте переходы для каждого символа из illegalсостояния обратно в себя. Это illegalсостояние часто называют состоянием приемника , потому что как только данные попадают в приемник, выходить из него невозможно.

Таким образом, с практической точки зрения это спорный вопрос, если у вас есть четко определенный способ обработки пропущенных переходов.

Натан Дэвис
источник
10
Осторожно: переход, являющийся неопределенным, не делает автомат недетерминированным, просто незавершенным. Существуют некоторые определения DFA, которые допускают такие неопределенные переходы именно потому, что их систематическое выполнение тривиально.
Darkhogg
1
@ Darkhogg, я не обязательно не согласен, но разве детерминизм неполного DFA не будет зависеть от того, как конкретная реализация обрабатывает эти неопределенные / отсутствующие переходы? И не будет ли такая реализация неявно завершать DFA?
Натан Дэвис
1
Нет, это не зависит от реализации, это зависит от определения. Если вы определяете DFA как имеющие функцию полного перехода, а затем используете частичную функцию, то вы будете иметь неопределенное поведение и в конечном итоге можете получить недетерминизм, но это не само собой разумеющееся . Тем не менее, DFA иногда явно определяются для использования частичной функции, и при обнаружении неопределенного перехода поведение «не принимается», точка. Никакой недетерминированности или чего-то необычного для любой реализации, потому что результат определяется, даже если переход не является.
Даркхогг
Кстати, вы также можете сделать обратное преобразование. Возьмите «тотальный автомат» и удалите состояние приемника, чтобы получить «неполный автомат». В конце концов, единственное отличие состоит в том, что тотальный автомат всегда может прочитать слово до конца, и после этого он решает, принимает ли он слово или нет, в то время как частичный автомат может отклонить некоторые слова, прежде чем прочитать все их слова. персонажи.
Бакуриу
5

DFA часто определяется как ограниченный тип NFA. ЕслиΣ это входной алфавит и Q является набором состояний, структура перехода NFA указывается как отношение ρQ×Σ×Qили как функция δ:(Q×Σ)2Q, Если мы примем последнее определение, то мы можем сказать, что NFA является детерминированным, если|δ(Q,σ)|1 для всех QQ и σΣи завершить, еслиδ(Q,σ)опять же для всех QQ и σΣ,

Слово принимается NFA, если оно имеет прогон принятия. Детерминированный автомат имеет не более одного запуска. У полного автомата есть хотя бы один прогон.

Некоторые авторы определяют автоматы обрезки как автоматы, в которых каждое состояние находится на некотором пути от начального состояния до конечного состояния. Для некоторых языков у вас не может быть автоматов, которые были бы аккуратными и полными. В этих случаях удобно исключать требование полноты из определения детерминированного автомата.

Фабио Сомензи
источник