Это DFA правильно? - PullRequest
       0

Это DFA правильно?

1 голос
/ 22 февраля 2011

Я должен создать DFA, который принимает

{w |w - это слово, кроме «aa» и «aaa»}

Это правильное решение ?Предполагается, что состояние линии толщиной является конечным.

РЕДАКТИРОВАТЬ

Извините, как-то смешаны два разных упражнения.Исправлено.

РЕДАКТИРОВАТЬ 2

Вот исправленное решение (?)!

1 Ответ

1 голос
/ 22 февраля 2011

Я оставлю ответ без изменений, поскольку он полезен в контексте.

С вашим обновлением вопроса и вашим дальнейшим обновлением предложенного решения мне кажется, что оно будет действительным. Молодец!

========= Старый пост в исторических целях ===========

Важное примечание: aa является подстрокой aaa. Таким образом, исключая аа, вы автоматически исключаете ааа, аааа и ааааа. Это означает, что вы можете иметь только 1 a подряд.

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

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

S обозначает начальное состояние + на углу обозначает состояние принятия Х в углу означает не принимать состояние

 B  +-+  A   +-+  A   X-X  A | B
+---|S| ---> |1| ---> |2| ------+
|   +-+      +-+      X-X       |
+___^ ^___B___|       ^________+

"" - ends on start - okay 
"B" - ends on start - okay 
"A" - ends on 1 - okay 
"AA" - ends on 2 - not accepted 
"BAA" - Stats on S, goes to S, goes to 1, goes to 2 - not accepted.

A - перемещает вас по линии к провалу. Б - сбрасывает вас. два как подряд и у тебя не получается: (

...