Also habe ich lange versucht, dies zu knacken und habe fast das Gefühl, dass ich mich über diese Frage in Schleifen befinde.
Angesichts der folgenden NFA:
Verwenden Sie den GNFA-Algorithmus, um den regulären Ausdruck zu erhalten.
Ich verstehe, dass Sie für den ersten Schritt (Hinzufügen leerer Zustände) Folgendes haben würden:
Der nächste Schritt wäre das Entfernen des Status [q1], den ich erhalten würde:
Schließlich würde das Entfernen von [q2] Folgendes ergeben:
Die Antworten, die andere haben, sind jedoch: Was keinen Sinn ergibt, wie ich bekam, ? Ein GNFA (verallgemeinerter nichtdeterministischer endlicher Automat) wird wie folgt beschrieben:
Ein GNFA ähnelt einem NFA, muss jedoch bestimmte Regeln einhalten:
- Es hat nur einen Akzeptanzzustand
- In den Ausgangszustand treten keine Übergänge ein
- Der Akzeptanzzustand hat keine Übergänge
- Ein Übergang kann einen beliebigen regulären Ausdruck und nicht nur ein Symbol aus dem Alphabet bezeichnen. Beachten Sie, dass ein Symbol eine Art regulärer Ausdruck ist.
Darüber hinaus können wir eine NFA wie folgt in eine GNFA umwandeln:
- Fügen Sie einen neuen Startzustand mit einem ε-Übergang zum alten Startzustand hinzu
- Fügen Sie einen neuen Akzeptanzzustand mit ε-Übergängen von den alten Akzeptanzzuständen hinzu
- Wenn Pfeile mehrere Beschriftungen haben oder wenn zwischen zwei Zuständen mehrere Pfeile liegen, ersetzen Sie sie durch die Vereinigung (oder) dieser Beschriftungen