Ist dieser Schnittpunkt von DFAs korrekt?

7

Ich bin eine Konstruktion deterministischen endlichen Automaten für eine Sprache aller Strings (DFA) definiert über , deren Länge auch für die Anzahl der s ungerade ist . Ich habe jedes DFA separat erstellt und dann kombiniert:{0,1}1

dfas und ihre Vereinigung

  • Ist das angegebene Verfahren zum Kombinieren von DFAs korrekt?
    EDIT: Ursprünglich schrieb Union; tatsächlich die Kreuzung nehmen.
  • Würde jemand Material zum Erstellen von DFAs vorschlagen,
    wenn die Länge und Anzahl von s oder s begrenzt sind?01

Laut Link von Merbs habe ich diesen FA entwickelt. Geben Sie hier die Bildbeschreibung ein
Dieser FA akzeptiert keine Sprache gleicher Länge.

Rafay Zia Mir
quelle
1
Ihr Ansatz scheint korrekt zu sein, aber Sie sollten den Schnittpunkt und nicht die Vereinigung der beiden DFAs verwenden.
A.Schulz
Ich habe nur 3 Methoden gelernt, wie die Vereinigung von FAs, die Verkettung von FAs und das Schließen von FAs. Ich suche, kann aber den Schnittpunkt von FAs nicht finden. Können Sie mich auf einen nützlichen Link verweisen?
Rafay Zia Mir
1
Aus einer Google-Suche: Diese Website ist gut, aber das Wesentliche ist, dass Sie den Schnittpunkt der akzeptierenden Zustände nehmen.
Merbs
Ich habe diesen Link besucht, aber dies ist ein spezifisches Beispiel, keine Regel. Wenn wir auf eine schwierige FA stoßen, ist es schwierig, eine Kreuzung zu konstruieren.
Rafay Zia Mir
Gegeben seien zwei DFAs mit und Zuständen, die Konstruktion eines mit DFA Zuständen (mit jedem Zustand ein Paar von Zuständen in den ursprünglichen DFAs darstellt) wird die Regel; und dann können Sie den resultierenden DFA durch eine Reihe von (meist heuristischen?) Prozeduren minimieren. mnmn
Merbs

Antworten:

8

Ja, dies wird als Produktkonstruktion bezeichnet. Wenn die DFAs und , können wir konstruieren :M1M2M=M1×M2

  • M besteht aus Zustandspaaren aus seinen konstituierenden DFAs. Wenn also die ursprünglichen DFAs die Zustände und , wäre das Produkt .A,B,Cx,y,z{Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz}
  • Die Übergangsfunktion wird so aktualisiert, dass, wenn in einem bestimmten Schritt eine Zeichenfolge dazu führen würde, dass von Zustand nach und von nach , das Produkt von nachM1ABM2xyAxBy
  • Der Anfangszustand ist das Paar, das aus den Anfangszuständen der konstituierenden DFAs (dh ) besteht.Ax
  • Wenn wir den DFA konstruieren, der bestimmt, ob beide konstituierenden DFAs die Zeichenfolge akzeptieren würden, dann sind die Akzeptanzzustände von der Schnittpunkt (diese Paare, die aus Akzeptanzzuständen von beiden bestehen). Wenn wir die DFA konstruieren , die feststellt , ob entweder DFAs der beiden konstituierenden würde die Zeichenfolge akzeptieren, dann akzeptieren die Zustände von die ist Vereinigung (die Paare , bestehend aus akzeptieren Staaten von entweder). In Ihrem Beispiel sind und die Akzeptanzzustände von und . Die Kreuzung wäreM
    M
    x1y0M1M2{x1y0}während die Vereinigung .{x1y0,x1y1,x0y0}

Ich habe einige andere DFAs bezüglich Längenbeschränkungen als Referenz beigefügt.

Beispiel dfas

Merbs
quelle
in Fällen der Vereinigung die Menge der akzeptierenden Zustände nicht ? (Nicht dass irgendjemand diese Konstruktion für die Vereinigung verwenden würde; in diesen Fällen genügen Zustände im Gegensatz zu diese Konstruktion ergibt. Zumindest wenn wir über NFA sprechen.)M1Q2Q1M2|Q1|+|Q2|+1|Q1||Q2|
Raphael
@ Raphael, Ihr Kommentar war zwar korrekt, aber so kompliziert, dass ich ihn nicht ohne weitere Überlegungen verstand, also habe ich versucht, ihn zu "laienhaft" zu machen. Wenn Sie meine Antwort bearbeiten möchten, um eine Diskussion über NFAs aufzunehmen, können Sie sie zu einem Community-Wiki machen (oder Ihre eigene Antwort hinzufügen).
Merbs
@Merbs, danke für deine Hilfe und Antwort. Entschuldigung für die späte Antwort, aber ich habe diese Methode bei anderen FAs ausprobiert und dies war erfolgreich.
Rafay Zia Mir
1

OK, ein bisschen "laienhaft". Nehmen Sie die DFAs und . Betrachten Sie den DFA , wobei definiert ist durch: Die Idee ist, dass der Zustand von die Zustände aufzeichnet, in denen und wären, wenn sie den String separat verarbeiten würden. akzeptiert nur, wenn beide dies tun.M1=(Q1,Σ,δ1,q1,F1)M2=(Q2,Σ,δ2,q2,F2)M=(Q1×Q2,Σ,δ,(q1,q2),F1×F2)δ

δ((q,q),a)=(δ1(q,a),δ2(q,a))
MM1M2M
vonbrand
quelle
1
Ich bin mir nicht sicher, auf welche Weise dies "laienhaft" ist. Dies ist die (richtige) formale Definition für die Produktkonstruktion. Sie sollten erwähnen, wie die Zustandsmenge von in vielen Fällen reduziert werden kann; niemand will den ganzen Mist zeichnen. M
Raphael