eltacoasado.com

  

Beste Artikel:

  
Main / Wie finde ich einen Epsilon-Verschluss?

So finden Sie einen Epsilon-Verschluss

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie, Datenschutzrichtlinie und unsere Nutzungsbedingungen gelesen und verstanden haben. Dazu muss ich den Epsilon-Abschluss jedes Staates in der NFA berechnen, der einen Epsilon-Übergang hat. Ich habe bereits einen Weg gefunden, dies zu tun, aber ich gehe immer davon aus, dass das erste, woran ich denke, normalerweise der am wenigsten effiziente Weg ist, etwas zu tun.

Dies ist offensichtlich ein sehr einfaches Beispiel. Ich müsste in der Lage sein, eine beliebige Anzahl von Epsilon-Übergängen aus einer beliebigen Anzahl von Zuständen zu berechnen. Zu diesem Zweck ist meine Lösung eine rekursive Funktion, die den Epsilon-Abschluss für den gegebenen Zustand berechnet, indem sie den Zustand betrachtet, in den es einen Epsilon-Übergang hat. Wenn dieser Zustand einen Epsilon-Übergang s hat, wird die Funktion innerhalb einer for-Schleife für so viele Epsilon-Übergänge wie möglich rekursiv aufgerufen.

Dies wird die Arbeit erledigen, ist aber wahrscheinlich nicht der schnellste Weg. Meine Frage lautet also: JFLAP macht das. Sie können ihre Quelle sehen - speziell ClosureTaker. Tiefensuche oder Breitensuche - spielt in der Grafik, deren Kanten Ihre Epilson-Übergänge sind, keine Rolle. Mit anderen Worten, Ihre Lösung ist optimal, vorausgesetzt, Sie verfolgen effizient, welche Zustände Sie bereits zum Abschluss hinzugefügt haben. Haben Sie in ein Algorithmusbuch geschaut? Aber ich bezweifle, dass Sie einen wesentlich besseren Ansatz finden werden.

Die tatsächliche Leistung dieses Algorithmus kann jedoch sehr wohl von der konkreten Datenstruktur abhängen, die Sie zur Implementierung Ihres Diagramms verwenden. Und Sie können die Arbeit teilen, abhängig von der Reihenfolge, in der Sie Ihr Diagramm vereinfachen.

Denken Sie an Untergraphen, die mit Epsilon verbunden sind und von zwei verschiedenen Knoten referenziert werden. Ich bin mir nicht sicher, ob dies optimal möglich ist oder ob Sie auf einige Heuristiken zurückgreifen müssen.

Was ist der schnellste Weg, um einen Epsilon-Verschluss zu berechnen? Frage stellen. Hier ist ein Beispiel, wie ich einen einfachen Epsilon-Verschluss berechnen würde: Eingabezeichenfolgen für die Übergangsfunktion: Darkhydro Darkhydro 1.170 4 4 Goldabzeichen 19 19 Silberabzeichen 37 37 Bronzeabzeichen. Nur zur Verdeutlichung: Es wird auf einen Zustand angewendet, der 1 oder mehr Epsilon-Übergänge zu anderen Zuständen aufweist und einen einzelnen Zustand zurückgibt.

Darkhydro, du kannst nicht einfach alle Epsilon-erreichbaren Zustände zusammenbrechen lassen. Wenn Sie s2 und s3 in einen einzigen Zustand reduzieren, akzeptieren Sie die Zeichenfolge bc, die vom ursprünglichen NDFA nicht akzeptiert wird. Peter, ich verstehe deinen Standpunkt. Ich untersuche das. Peter wird es eigentlich nicht akzeptieren b.

Status 1 wechselt bei Eingabe b weiterhin zu 3, nicht zu 23. Durch Erstellen von Status 23 wird Status 3 nicht gelöscht. Xodarap Xodarap 7.802 6 6 Goldabzeichen 45 45 Silberabzeichen 82 82 Bronzeabzeichen. Sehr explizit, weil ich mir den Quellcode ansehen kann.

Peter Taylor Peter Taylor 3.757 1 1 Goldabzeichen 27 27 Silberabzeichen 50 50 Bronzeabzeichen. Peter sucht nicht genau das, was ich will. Dies ist eher eine bedingte Durchquerung. Mein Muster ist jedoch der Tiefensuche sehr ähnlich. Darkhydro, wie ich das Problem verstehe, suchen Sie nach allen Zuständen, die von einem bestimmten Zustand aus erreichbar sind.

Peter, das ist eine vernünftige Sichtweise. Wenn eine Suche jedoch nur einen Status zurückgibt, müsste ich mehrmals suchen, um alle Status zu erhalten. Dies wäre langsamer als meine Implementierung, da jede Suche erneut am Anfang beginnt. Darkhydro, ich habe den Eindruck, dass Sie es nützlich finden würden, eine Einführung in Datenstrukturen und Algorithmen in die Hände zu bekommen und sich über die erste Tiefensuche zu informieren. Peter Vielleicht sehe ich das falsch.

Ich habe meine eigene Algorithmusliteratur und werde die Tiefensuche auffrischen. Die Art und Weise, wie ich es verstanden habe, ergab nur 1 Ergebnis. Scannen Sie die Literatur zu Algorithmen. Ich bin damit einverstanden, dass die Leistung auf der von mir verwendeten Datenstruktur basiert. Wenn Sie eine optimale Datenstruktur und einen Durchquerungsalgorithmus vorschlagen könnten, wäre dies der beste Weg, um die beste Antwort zu erhalten.

Registrieren oder anmelden Melden Sie sich mit Google an. Melde dich über Facebook an. Melden Sie sich mit E-Mail und Passwort an. Als Gast posten Name. E-Mail erforderlich, aber nie angezeigt.

Knowledge Engineering: Wird auf Meta vorgestellt. Tag-Synonym-Dashboard 2. Wir testen Werbung im gesamten Netzwerk. Besuchen Sie den Chat. Verwandte 1913. Hot Network Fragen. Fragen-Feed. Der Stapelüberlauf funktioniert am besten mit aktiviertem JavaScript.

(с) 2019 eltacoasado.com