以下のWebサイトの「補足資料 (5)」に沿ってDFAを正規表現に変換するC#のメソッドを書こうとしているところ。
www.nue.ie.niigata-u.ac.jp
2ページ目の「GNFAの等価変換」は、さらっとななめ読みしただけだと分からなかったので、例2を自分で解いてみた。
まずは変換前のDFA と、変換後のGNFA
を削除することに決める
これから除去される部分を赤色にしているよ!んで、その他の辺のラベルが更新されるよ!
からへの辺を更新する
を黄色、を緑、を紫、を赤で描いてるよ。つまり、で更新されるよ。
からへの辺を更新する
同様に色分けしているよ。結果、で更新されるよ。
からへの辺を更新する
結果、で更新されるよ。*1
からへの辺を更新する
結果、で更新されるよ。
変換後のGNFA
で更新したラベルを簡略化してるよ。にはまだ除去可能な状態があるので、に対して「GNFAの等価変換」をもう一回やるよ!
を削除することに決める
これから除去される部分を赤色にしているよ!んで、その他の辺のラベルが更新されるよ!
からへの辺を更新する
結果、で更新されるよ。