automaten zeichnen < LaTeX < Mathe-Software < Mathe < Vorhilfe
|
Ich möchte gerne Automaten in latex zeichnen.
also Knoten mit Nummern drin und beschrifte Kanten.
Ich möchte dazu allerding keine Grafiken einbinden.
|
|
| |
|
| Status: |
(Antwort) fertig | | Datum: | 13:53 Do 26.06.2008 | | Autor: | koepper |
Hallo Patrick,
hier ein kleines Beispiel, es erklärt sich praktisch von selbst.
Gruß
Will
| 1: |
| | 2: | \setlength{\unitlength}{1cm}
| | 3: | \begin{center}
| | 4: | \fontsize{11pt}{12pt}
| | 5: | \selectfont
| | 6: | \begin{picture}(12,13)
| | 7: |
| | 8: | %\graphpaper[2](0,0)(12,13)
| | 9: |
| | 10: | \put(0,11.5){\framebox(12, 1){\parbox[t][1cm][c]{11.5cm}{
| | 11: | \begin{center}
| | 12: | Erzeuge zu jedem Knoten $v \in V \setminus \{v_0\}$ ein Label $L = (v, \infty, v_0, \text{true})$ und zum Knoten $v_0$ das Label $L = (v_0, 0, v_0, \text{false})$.
| | 13: | \end{center}
| | 14: | }}}
| | 15: |
| | 16: | \put(2,10){\framebox(8, 1){\parbox[t][1cm][c]{7.8cm}{
| | 17: | \begin{center}
| | 18: | Ermittle eine (weitere) Kante $\{v_1, v_2 \} \in E$ mit $o(L(v_1)) =$ false und $o(L(v_2)) =$ true.
| | 19: | \end{center}
| | 20: | }}}
| | 21: |
| | 22: | \put(6,9){\oval(6, 1)}
| | 23: | \put(4,8.5){\makebox(4, 1){\parbox[t][1cm][c]{6cm}{
| | 24: | \begin{center}
| | 25: | $c(L(v_2)) \leq c(L(v_1)) + c(\{v_1, v_2\})$?
| | 26: | \end{center}
| | 27: | }}}
| | 28: |
| | 29: | \put(3,6.4){\framebox(6, 1.6){\parbox[t][1.5cm][c]{5.8cm}{
| | 30: | \begin{align} &\text{Aktualisiere $L(v_2)$} \notag \\ c(L(v_2)) &:= c(L(v_1)) + c(\{v_1, v_2\}) \notag \\ v_p(L(v_2)) &:= v_1 \notag \end{align}
| | 31: | }}}
| | 32: |
| | 33: | \put(6,5.5){\oval(8, 1)}
| | 34: | \put(2,5){\makebox(8, 1){\parbox[t][1cm][c]{7.8cm}{
| | 35: | \begin{center}
| | 36: | Gibt es eine weitere Kante $\{v_1, v_2 \} \in E$ mit $o(L(v_1)) =$ false und $o(L(v_2)) =$ true?
| | 37: | \end{center}
| | 38: | }}}
| | 39: |
| | 40: | \put(2,3.5){\framebox(8, 1){\parbox[t][1cm][c]{7.8cm}{
| | 41: | \begin{center}
| | 42: | Ermittle $k = \min \{c(L) \mid o(L) = \text{true} \}$ und setze $o(L) =$ false für alle $L$ mit $c(L) = k$.
| | 43: | \end{center}
| | 44: | }}}
| | 45: |
| | 46: | \put(6,2.5){\oval(5, 1)}
| | 47: | \put(3.5,2){\makebox(5, 1){\parbox[t][1cm][c]{4.8cm}{
| | 48: | \begin{center}
| | 49: | Existiert noch ein Label $L$ mit $o(L) =$ true?
| | 50: | \end{center}
| | 51: | }}}
| | 52: |
| | 53: | \put(3,0){\framebox(6, 1.5){\parbox[t][1.5cm][c]{5.8cm}{
| | 54: | \begin{center}
| | 55: | Fertig: Zu jedem Knoten $v \in V$ repräsentiert das Label $L(v)$ den kürzesten Weg von $v_0$ zu $v$.
| | 56: | \end{center}
| | 57: | }}}
| | 58: |
| | 59: | %\thicklines
| | 60: |
| | 61: | % Pfeile abwärts in der Mitte
| | 62: | \put(6,11.5){\vector(0, -1){0.5}}
| | 63: | \put(6,10.0){\vector(0, -1){0.5}}
| | 64: | \put(6, 8.5){\vector(0, -1){0.5}}
| | 65: | \put(6, 6.4){\vector(0, -1){0.4}}
| | 66: | \put(6, 5.0){\vector(0, -1){0.5}}
| | 67: | \put(6, 3.5){\vector(0, -1){0.5}}
| | 68: | \put(6, 2.0){\vector(0, -1){0.5}}
| | 69: |
| | 70: | % Pfeil rechts von Oval 5 zurück zu Kasten 2
| | 71: | \put(10, 5.5){\line(1, 0){1}} \put(11, 5.5){\line(0, 1){5}} \put(11, 10.5){\vector(-1, 0){1}}
| | 72: |
| | 73: | % Pfeil links von Oval 3 zu Oval 5
| | 74: | \put(3, 9){\line(-1, 0){1.5}} \put(1.5, 9){\line(0, -1){3.5}} \put(1.5, 5.5){\vector(1, 0){0.5}}
| | 75: |
| | 76: | % Pfeil links von Oval 7 zu Kasten 2
| | 77: | \put(3.5, 2.5){\line(-1, 0){2.5}} \put(1, 2.5){\line(0, 1){8}} \put(1, 10.5){\vector(1, 0){1}}
| | 78: |
| | 79: | \put(2.5, 9){\makebox(0, 0.4){ja}}
| | 80: | \put(6.2, 8){\makebox(0.6, 0.6){nein}}
| | 81: | \put(10.4,5.5){\makebox(0, 0.4){ja}}
| | 82: | \put(6.2, 4.5){\makebox(0.6, 0.6){nein}}
| | 83: | \put(3, 2.5){\makebox(0, 0.4){ja}}
| | 84: | \put(6.2, 1.5){\makebox(0.6, 0.6){nein}}
| | 85: |
| | 86: | \end{picture}
| | 87: | \end{center}
|
|
|
|
|