Petrinet

(a) Een petrinet

Petrinetten of P/T-netten zijn een wiskundige modelleertaal die in de informatica wordt gebruikt om gedistribueerde of anderszins parallelle processen te modelleren. Petrinetten zijn grafen die meestal als diagram worden getekend; ze zijn te beschouwen als een alternatief voor activiteitendiagrammen.

Ze zijn voor het eerst beschreven in het proefschrift van Carl Adam Petri (1962).

Eindigetoestandsautomaten (die geen parallelliteit ondersteunen) kunnen als beperkte, specifieke vormen van petrinetten worden opgevat.

Een petrinet bestaat uit plaatsen en transities verbonden met pijlen, met in elke plaats 0 of meer tokens (het Nederlandse woord daarvoor, fiche wordt zelden gebruikt). Plaatsen worden meestal getekend als cirkels, transities als balkjes of vierkanten, tokens als de ogen van een dobbelsteen. In de meeste standaardpetrinetten verbinden pijlen uitsluitend plaatsen en transities, nooit plaatsen met plaatsen of transities met transities.

Een transitie stelt een mogelijke toestandsovergang voor; de plaatsen geven toestanden of voorzieningen aan die voor de uitvoering van transities nodig kunnen zijn of door de uitvoering kunnen worden vervuld / vrijgegeven. De pijlen geven aan welke plaatsen pre- dan wel postcondities voor welke transities zijn. De plaatsen waarmee een transitie via inkomende pijlen verbonden is, worden de invoerplaatsen van de transitie genoemd; de uitvoerplaatsen zijn de plaatsen waar (uitgaande) pijlen heenlopen vanuit de transitie.

De toestand van het petrinet is een markering, die aan elke plaats een niet-negatief getal toekent, voorstellende het aantal beschikbare exemplaren van de desbetreffende voorziening. In het diagram wordt dat getekend door het desbetreffende aantal puntjes (tokens) in de plaats te tekenen. Het optreden van een transitie wordt vuren genoemd; het is alleen mogelijk als in elk van de invoerplaatsen van de transitie ten minste een token ligt, en heeft als effect dat uit elk van die plaatsen een token verdwijnt (wordt geconsumeerd), terwijl op elk van de uitvoerplaatsen een token wordt toegevoegd (geproduceerd). De uitvoering van een petrinet wordt ook wel het token game genoemd.

Is er nooit meer dan een token in een plaats, dan kan die plaats opgevat worden als een voorwaarde die al dan niet vervuld is. Geldt dit voor alle plaatsen, dan wordt het petrinet veilig genoemd.

Een incorrecte oplossing voor het filosofenprobleem
Zie de categorie Petri nets van Wikimedia Commons voor mediabestanden over dit onderwerp.