有限オートマトンから正規表現を作成しようとしていますが、自分自身がこれに完全に固執していることに気づきました。使用する正規表現は次のようになります。
?=0または1
*=0以上
+=1以上
| =または
_=空の文字列
@=空のセット
()=括弧
私が理解しているように、文字列は「b*」で終わる「a*」または「a+ bb +」で終わる必要があります。
私が今持っているのは((b*(a+(bb))*)*)
、「a」で終わる文字列を考慮していません。
言ったように、私はこれに100%立ち往生していて、これをどのように扱うべきかについて頭を悩ませることはできません。
画像: http: //img593.imageshack.us/img593/2563/28438387.jpg
コード:
オートマトン
FA のタイプ
状態
q1q2q3
q4
_
_
アルファベット
ab
_
初期状態
q3
最終
状態
q3q4
遷移
q1aq2
q1 b q3
q2 a q2
q2 b q2
q3 a q4
q3 b q3
q4 a q4
q4 b q1
解決策やヒントをいただければ幸いです。