====== Barvené a hierarchické Petriho Sítě ====== Jde o rozšíření P/T sítí. ===== Hierarchické sítě ===== Při modelování systémů je nepraktické modelovat celý systém jako jednu velkou síť, obzvlášť pokud se některé kusy opakují. Hierarchické sítě toto řeší pomocí několika mechanismů: - nahrazení místa * substituce sítě do místa * je nutné specifikovat, jak se preset a poset tohoto místa napojí na minimální a maximální přechodový řez substituované sítě - nahrazení přechodu * substituce sítě do přechodu * podobná specifikace jako u místa, akorát jde o S-řezy v substituované síti - invokace sítě v přechodu * podobný mechanismus jako vyvolání metody s parametry * invokovaná síť má svou šablonu, dle které je vytvořena instance sítě s nějakým počátečním značením * opět se navazují hodnoty presetu přechodu do míst invokované sítě * speciální místo RETURN, které při naplnění způsobí zrušení sítě a navázání hodnot z některých míst na výstup přechodu, který síť invokoval ==== Fúze míst ==== Sloučení dvou míst sjednocením vstupních a výstupních hran. Při kombinaci fúze a substituce lze rozlišit tři typy fúze: - lokální fúze v rámci jedné sítě - fúze napříč všemi instancemi dané sítě (něco jako třídní proměnná) - fúze napříč všemi instancemi všech sítí (něco jako globální proměnná) ===== Barvené sítě ===== Specifikují u značek i jejich datový typ - **colorset**, značky pak nabývají hodnot z daného coloresetu - **colors**. Je zaveden **inskripční jazyk**, kterým lze specifikovat: * typy proměnných * typy míst a počáteční značení * strážní podmínky u přechodů (test na obsah proměnných) * transformaci značek v přechodech * atd. ==== Multimnožiny ==== Místo může obsahovat určitý počet prvků několika různých datových typů. Počáteční značení a požadovaný počet a typ značek na přechodech se značí pomocí multimnožinového operátoru, např.: 1`a + 3`b + 2`c Formálně je multimnožina nad množinou S funkce m: S -> **N**, která každému prvku přiřazuje přirozené číslo. Pokud m(s) > 0, tak prvek s do náleží do multimnožiny.