2012-04-28 14 views
5

Ich will einen Automaten mit Kanten und circulaire Staaten ziehen, so etwas wie diese http://pop-art.inrialpes.fr/~girault/Cours/Automates/td5.html, hat u ein Beispiel für diewie Automaten in Java ziehen

+0

ich dies auf Englisch übersetzt und das zweite Glied der „Set von Kugeln“ .. – DanRedux

+0

, was ich tun möchte ist ein Automaten wie diese http ziehen: // www .google.com/imgres hl = en & biw = 1280 & bih = 643 & TBM = isch & tbnid = q62yfBg-2QjZ5M: & imgrefurl = http: //pop-art.inrialpes.fr/~girault/Cours/Automates/td5.html&docid=6Ro8kL90vJ_XYM&imgurl=http: //pop-art.inrialpes.fr/~girault/Cours/Automates/determine-solution.gif&w=404&h=317&ei=nDmbT634GunH0QX_2_SYDw&zoom=1&iact=hc&vpx=190&vpy=148&dur=321&hovh=199&hovw=254&tx=151&ty=114&sig=100406407692710228905&page=1&tbnh = 137 & tbnw = 175 & start = 0 & ndsp = 16 & ved = 1t: 429, r: 0, s: 0, i: 68 –

+1

@DanRedux: so? Ich übersetzte es ins Deutsche, und es war "Kugelspiel", das ist der gebräuchliche Name für diese Art von Automaten. –

Antwort

6

JGraph ist eine Bibliothek, die Sie, dass stammt aus Java verwenden können und ziemlich einfach zu bedienen, oder Sie können eine .dot Datei erstellen und GraphViz kümmert sich darum für Sie.

2

Wenn Sie nicht für Dinge wie die Darstellung des Graphen in einer korrekten Art tragen möchten, so versuchen Sie nicht, die Linien zu überqueren, oder nicht zwei oder mehr Knoten an der gleichen Stelle haben, dann empfehle ich Ihnen grail graph Bibliothek damit Sie das Diagramm sehen können, das yed verwendet (ich kann Ihnen ein Beispiel dafür geben, schreiben Sie einfach den regulären Ausdruck, den Sie in den Kommentar schreiben), oder wenn Sie das Diagramm selbst zeichnen wollen, dann ist es wahrscheinlich gut, sich mit dem Zeichnen von Ebenengrafiken zu beschäftigen: http://en.wikipedia.org/wiki/Layered_graph_drawing und Coffman Graham Algorithmus http://en.wikipedia.org/wiki/Coffman%E2%80%93Graham_algorithm

+0

danke für Ihre Antwort, in der Tat, ich versuche, eine XMl-Datei zu analysieren, und danach muss ich den regulären Ausdruck für die XML-Datei generieren, nachdem ich die Automaten zeichnen muss, gibt es ein Beispiel in diesem Post http : //stackoverflow.com/questions/10395825/create-a-regular-expression-using-data-extracted-from-an-xml-file –

+1

Aha, ich denke, du hast hier viel zu tun. Ich habe auf diese Weise so etwas gemacht: Zuerst habe ich eine ANTLR-Spezifikationsgrammatik für gültige reguläre Ausdrücke und auch die AST erstellt. Dann benutze ich den Parser und den Lexer, den ich von antlr bekommen habe. Ich habe einen spezifischen CommonTree für jeden regulären Ausdruck, ich habe diesen Baum durchquert und zuerst den NFA gebaut (mit dem Thompson-Algorithmus). Wenn Sie NFA verwenden, können Sie mithilfe des Subset-Konstruktionsalgorithmus das DFA-Diagramm erstellen. – sm13294