• 締切済み

正規表現と状態遷移図

こんにちわ、お世話になっています。 それで正規表現を状態遷移図に直し方がうまくいかないのです。 たとえば(0+1)*のような正規表現があるとして状態遷移図は 状態数1つで初期状態と最終状態が同じになり1または0の値が入力?されると 矢印が自分自身に戻ってくるような感じでいいのでしょうか?(状態数2つ使うような気もするのですが@@;) 機械的にできるようなのですが参考書に書かれていないようなので@@; それともう1つ、1*(00)*の正規表現は初期状態と最終状態をq0とし2つの状態q1とq2からなる3つの状態数ので作ってみたのですがあっているでしょうか?図はのせられないので状態遷移表を書きます。 ちなみにDFAで状態数最小となるようにやってみました。   | 0 | 1 q0 | q1 | q0 q1 | q0 | q2 q2 | q2 | q2 ちなみにq0は0でq1、1でq0に遷移するという感じです。 みにくいかもしれませんがよろしくお願いします。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

DFA の定義を確認してもらいたいんですが, 「状態遷移関数で未定義のままにしてもよい」なら 3個の状態でいけるかな. 「全ての状態と全ての入力に対して定義しなければならない」だと, 4状態必要かもしれません.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

前半は OK ですが後半はアウト. q0 にいるときに入力 0 で q1 に移るのはいいのですが, q1 で入力 0 に対し q0 に戻っちゃダメです. 001 が受理できてしまいます.

ruruka777
質問者

お礼

よく考えてみると又違っているみたいですね@@; 前回同じ質問をさせてもらった時は状態数3つでできるようなことを言われて いたと思われますが3つでできるのでしょうか? なんか4つになってしまったのですが。。。。。

ruruka777
質問者

補足

返信遅くなりました、回答ありがとうございます! それで指摘があった所を直してみたのですがこのような感じで いいのでしょうか? 1*(00)*の状態遷移表 qoは初期状態 q0とq2は最終状態    | 0 | 1 q0 | q1| q0 q1 | q2| q1 q2 | q1| q1 のような感じでいいのでしょうか?

関連するQ&A