Grundlagen der Theoretischen Informatik

Aus Hochschule Darmstadt - Fachschaft Informatik Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Graph endlicher Automaten erstellen)
Zeile 34: Zeile 34:
 
dot -T$format -o$outfile $infile
 
dot -T$format -o$outfile $infile
 
</source>
 
</source>
für $format kann svg, svgz, png oder gif (und noch einige mehr) verwendet werden. $infile beschreibt die Eingabedatei (z.B.: fsm.vz). $outfile beschreibt die Ausgabedatei (z.B.: fsm.png).
+
$format kann svg, svgz, png oder gif (und noch einige mehr) verwendet werden<br />
Für die Ausgabe der Datei "fsm.vz" als PNG in die Datei "fsm.png" würde der Auffruf also
+
$infile beschreibt die Eingabedatei (z.B.: fsm.vz)<br />
 +
$outfile beschreibt die Ausgabedatei (z.B.: fsm.png)<br />
 +
 
 +
Für die Ausgabe der Datei "fsm.vz" als PNG in die Datei "fsm.png" würde der Aufruf also
 
<source lang="bash">
 
<source lang="bash">
 
dot -Tpng -ofsm.png fsm.vz
 
dot -Tpng -ofsm.png fsm.vz
 
</source>
 
</source>
 
lauten. Weitere Informationen kann man der [http://www.graphviz.org/Documentation.php Dokumentation] entnehmen.
 
lauten. Weitere Informationen kann man der [http://www.graphviz.org/Documentation.php Dokumentation] entnehmen.

Version vom 27. März 2009, 19:26 Uhr

Graph endlicher Automaten erstellen

Mit Graphviz können Graphen sehr einfach erzeugt werden.

Beispiel:

Fsm.png

Zugehöriger Quellcode:

digraph finite_state_machine {
	rankdir=LR;
	size="8,5"
	node [shape = doublecircle]; LR_0 LR_3 LR_4 LR_8;
	node [shape = circle];
	LR_0 -> LR_2 [ label = "SS(B)" ];
	LR_0 -> LR_1 [ label = "SS(S)" ];
	LR_1 -> LR_3 [ label = "S($end)" ];
	LR_2 -> LR_6 [ label = "SS(b)" ];
	LR_2 -> LR_5 [ label = "SS(a)" ];
	LR_2 -> LR_4 [ label = "S(A)" ];
	LR_5 -> LR_7 [ label = "S(b)" ];
	LR_5 -> LR_5 [ label = "S(a)" ];
	LR_6 -> LR_6 [ label = "S(b)" ];
	LR_6 -> LR_5 [ label = "S(a)" ];
	LR_7 -> LR_8 [ label = "S(b)" ];
	LR_7 -> LR_5 [ label = "S(a)" ];
	LR_8 -> LR_6 [ label = "S(b)" ];
	LR_8 -> LR_5 [ label = "S(a)" ];
}

Erstellt werden kann der Graph sehr einfach über die Shell:

dot -T$format -o$outfile $infile

$format kann svg, svgz, png oder gif (und noch einige mehr) verwendet werden
$infile beschreibt die Eingabedatei (z.B.: fsm.vz)
$outfile beschreibt die Ausgabedatei (z.B.: fsm.png)

Für die Ausgabe der Datei "fsm.vz" als PNG in die Datei "fsm.png" würde der Aufruf also

dot -Tpng -ofsm.png fsm.vz

lauten. Weitere Informationen kann man der Dokumentation entnehmen.

Meine Werkzeuge