\documentclass{bschlangaul-aufgabe}
\bLadePakete{petri}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 2: Modellierung},
  Thematik = {Modellierung},
  Referenz = SOSY.Projektplanung.Petri-Netze.Modellierung,
  RelativerPfad = Module/40_SOSY/03_Projektplanung/10_Petri-Netze/Aufgabe_Modellierung.tex,
  ZitatSchluessel = sosy:ab:4,
  ZitatBeschreibung = {Seite 2},
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Petri-Netz},
}

Modellieren Sie folgendes Szenario als Petri-Netz:

\bigskip

\noindent
Ein Modul gilt als bestanden, wenn beide Prüfungen $P_1$ und $P_2$
bestanden sind. Beide Prüfungen dürfen bei Nicht-Bestehen jeweils
maximal zwei mal wiederholt werden. Die Prüfungen dürfen nicht
gleichzeitig geschrieben werden. Erst wenn eine von beiden bestanden
wurde, darf die nächste begonnen werden. Wurde eine der beiden Prüfungen
insgesamt drei mal nicht bestanden, so gilt das gesamte Modul als nicht
bestanden.\index{Petri-Netz}
\footcite[Seite 2]{sosy:ab:4}

\begin{bAntwort}
Man beachte die sog. Inhibitorkanten Linien mit Punkt am Ende). Z. B.
kann t 7 nur schalten, wenn die Stelle „Wdh. Versuche P1“ keine
Markierung enthält.

\begin{center}
\begin{tikzpicture}[li petri,font=\scriptsize,scale=0.8,transform shape]
\node[place,tokens=1,label=north:Prüfung 1] at (-3,0) (p1) {};
\node[place,tokens=1,label=north:Semaphore] at (0,0) (s) {};
\node[place,tokens=1,label=north:Prüfung 2] at (3,0) (p2) {};

\node[place,tokens=0,label=west:P1 geschrieben] at (-3,-3) (p1-geschrieben) {};
\node[place,tokens=0,label=east:P2 geschrieben] at (3,-3) (p2-geschrieben) {};

\node[place,tokens=2,label=west:P1 Versuche] at (-5,-6) (p1-versuche) {};
\node[place,tokens=0,label=north:P1 nicht bestanden] at (-3,-6) (p1-nicht-bestanden) {};
\node[place,tokens=0,label=north:P1 bestanden] at (-1,-6) (p1-bestanden) {};
\node[place,tokens=0,label=north:P2 bestanden] at (1,-6) (p2-bestanden) {};
\node[place,tokens=0,label=north:P2 nicht bestanden] at (3,-6) (p2-nicht-bestanden) {};
\node[place,tokens=2,label=east:P2 Versuche] at (5,-6) (p2-versuche) {};

\node[place,tokens=0,label=south:Modul nicht bestanden] at (-3,-9) (modul-nicht-bestanden) {};
\node[place,tokens=0,label=south:Modul bestanden] at (3,-9) (modul-bestanden) {};

\node[transition] at (-3,-1.5) (t0) {}
  edge[pre] (p1) edge[pre] (s) edge[post] (p1-geschrieben);

\node[transition] at (3,-1.5) (t1) {}
  edge[pre] (p2) edge[pre] (s) edge[post] (p2-geschrieben);

\node[transition] at (-4,-4.5) (t2) {}
  edge[pre] (p1-geschrieben) edge[post] (p1-nicht-bestanden);
\node[transition] at (-2,-4.5) (t3) {}
  edge[pre] (p1-geschrieben) edge[post] (s) edge[post] (p1-bestanden);
\node[transition] at (2,-4.5) (t4) {}
  edge[pre] (p2-geschrieben) edge[post] (s) edge[post] (p2-bestanden);
\node[transition] at (4,-4.5) (t5) {}
  edge[pre] (p2-geschrieben) edge[post] (p2-nicht-bestanden);

\node[transition] at (-3,-7.5) (t7) {}
  edge[inhibitor] (p1-versuche) edge[pre] (p1-nicht-bestanden)  edge[post] (modul-nicht-bestanden);
\node[transition] at (0,-7.5) (t6) {}
  edge[pre] (p1-bestanden) edge[pre] (p2-bestanden) edge[post] (modul-bestanden);
\node[transition] at (3,-7.5) (t8) {}
  edge[inhibitor] (p2-versuche) edge[pre] (p2-nicht-bestanden)  edge[post] (modul-nicht-bestanden);

\node[transition] at (-6,-4.5) (t9) {}
  edge[pre] (p1-versuche) edge[pre] (p1-nicht-bestanden) edge[post] (p1-geschrieben);
\node[transition] at (6,-4.5) (t10) {}
  edge[pre] (p2-versuche) edge[pre] (p2-nicht-bestanden) edge[post] (p2-geschrieben);
\end{tikzpicture}
\end{center}
\end{bAntwort}

\end{document}
