Hallo,
ich beschäftige mich gerade ein bisschen mit Automatentheorie und
formalen Sprachen. Dabei habe ich zu Übungszwecken einen
deterministischen finiten Automaten (=DFA) zum Erkennen von
geradzahlig vielen Nullen und Einsen entwickelt, siehe
http://www.bitschmied.de/abbildungen/dfa-fuer_geradz…
Wie man sieht, hat der Automat 9 Zustände. Aber wie leite ich nun aus
diesem Automat den zugehörigen regulären Ausdruck ab?
Wenn ich die 6 kürzesten Pfade (unter Berücksichtigung der Schleifen
per *) in diesem Automatengraphen mit der Länge 4 per ODER verknüpfe
komme ich nur auf eine Teilmenge der Möglichkeiten:
Pfad | regulärer Ausdruck
------------------------------------------------------
[P1] 1-2, 2-3, 3-6, 6-9 | 11(11)\*00(00)\*
[P2] 1-2, 2-5, 5-6, 6-9 | 101(11)\*0(00)\*
[P3] 1-2, 2-5, 5-8, 8-9 | 100(00)\*1(11)\*
[P4] 1-4, 4-7, 7-8, 8-9 | 00(00)\*11(11)\*
[P5] 1-4, 4-5, 5-8, 8-9 | 010(00)\*1(11)\*
[P6] 1-4, 4-5, 5-6, 6-9 | 011(11)\*0(00)\*
Z.B. beschreibe ich mit den obigen Ausdrücken nicht die gültige
Eingabe „101101“.
Wie müsste der vollständige reguläre Ausdruck lauten
und wie kann man ihn systematisch aus dem DFA herleiten?
Hat jemand Literatur- oder Linkempfehlungen zum Thema?
Gruß,
-Andreas.