רשת פטרי

**רשת פטרי** היא גרף דו-צדדי המשמש למידול מתמטי של מערכות מבוזרות. הרשת היא גרף מכוון, שבו צמתים מייצגים מעברים (כלומר אירועים שעלולים להתרחש, מסומנים כפסים) ומקומות (כלומר תנאים, מסומנים כעיגולים). הקשתות המכוונות מתארות אילו מקומות הם תנאי קדם של אילו תנאים מאוחרים (מסומנות כחצים). יש הטוענים כי רשתות פטרי הומצאו באוגוסט 1939 על ידי קארל אדם פטרי - בגיל 13 - על מנת לתאר תהליכים כימיים.

בדומה לסטנדרטים המקובלים בתעשייה כגון UML, BPMN ו-EPC, רשתות פטרי מציעות סימון גרפי לתהליכים הכוללים בחירה, איטרציות, ביצוע פעולות מקבילות, תקשורת וסנכרון. שלא כמו סטנדרטים אלו, לרשתות פטרי ישנה הגדרה מתמטית מדויקת של סמנטיקת הביצוע, עם תאוריה מתמטית מפותחת לניתוח תהליכים (גרף נגישות, ניתוח ביצועים, איתור בעיות).

ממוזער|(א) דוגמה למסלול ברשת פטרי
## יסודות רשת פטרי

רשת פטרי מורכבת מ*מקומות* (places), *מעברים* (transitions), ו''קשתות'' (arcs). קשתות מחברות בין מקום למעבר או להפך, לעולם לא בין מקומות או בין מעברים. מקומות מהם יוצאת קשת למעבר נקראים *מקומות הקלט* של המעבר; מקומות שאליהם נכנסות קשתות ממעבר נקראים *מקומות הפלט* של המעבר.

מבחינה גרפית, מקומות ברשת פטרי עשויים להכיל מספר בדיד של סימנים הנקראים *אסימונים* (tokens). כל חלוקה של אסימונים בין המקומות מייצגת תצורה של הרשת הנקראת *סימון* (marking). באופן מופשט, מעבר של רשת פטרי עשוי *לפעול* אם הוא *מאופשר* (enabled), כלומר יש מספיק אסימונים בכל מקומות הקלט שלו; כאשר המעבר מופעל, הוא צורך את אסימוני הקלט הנדרשים, ויוצר אסימונים במקומות הפלט שלו. הפעלה (firing) היא אטומי, כלומר, צעד שאינו בר-הפרעה.

כל עוד אין *מדיניות ביצוע* מוגדרת, הביצוע של רשתות פטרי לא דטרמיניסטי: כאשר מספר מעברים מאופשרים באותו הזמן, כל אחד מהם עשוי לפעול.

מאחר שההפעלה לא דטרמיניסטית, ואסימונים עשויים להופיע בכל מקום ברשת (אפילו באותו המקום), רשתות פטרי מתאימות לתיאור התנהגות מקבילית של מערכות מבוזרות.

## הגדרה פורמלית וניסוח בסיסי

רשתות פטרי הן מערכות לתיאור מעברים בין מצבים המיישמות רשתות הנקראות רשתות אלמנטריות.

**הגדרה 1.** *רשת* היא גרף דו-צדדי. מקובל לתאר את הרשת כשלשה סדורה N = (P, T, F) כאשר:
# P וגם T הן קבוצות סופיות זרות שאבריהן נקראים *מקומות* ו*מעברים*, בהתאמה.
# F \subset (P \times T) \cup (T \times P) היא קבוצה של *קשתות* (או קשרי זרימה).

**הגדרה 2.** בהינתן רשת N = (P, T, F), כל תת-קבוצה C של P נקראת *תצורה* (configuration).

ממוזער|רשת פטרי עם מעבר מאופשר.
ממוזער|רשת הפטרי שמתקבלת לאחר שהמעבר מופעל (רשת הפטרי התחלתית למעלה).
**הגדרה 3.** *רשת אלמנטרית* היא זוג סדור (*EN* = (*N*, *C* כאשר:
# (*N* = (*P*, *T*, *F* היא רשת.
# *C* ⊆ *P* היא תצורה.

**הגדרה 4.** *רשת פטרי* היא רשת מסוג (*PN* = (*N*, *M*, *W*, המיישמת רשת אלמנטרית כך ש:
# (*N* = (*P*, *T*, *F* היא רשת.
# *M* : *P* → *Z* היא מולטי קבוצה של מקומות, כאשר *Z* היא קבוצה בת מנייה. *M* מיישמת את מושג ה*תצורה* ובדרך כלל מתוארת בתרשימי רשת פטרי כ*סימון*.
# *W* : *F* → *Z* היא מולטי קבוצה של קשתות, כך שמשקל כל קשת הוא מדד של *ריבוי* הקשתות.

אם רשת פטרי שקולה לרשת אלמנטרית, אזי *Z* יכולה להיות קבוצה בת מנייה {0,1} ואלמנטים אלו ב-P הממופים ל-1 תחת *M* יוצרים תצורה. באופן דומה, אם רשת פטרי אינה רשת אלמנטרית, אז מולטי הקבוצה *M* יכולה להתפרש כמייצגת קבוצה של תצורות שאינה סינגלטון. במובן זה, *M* מיישמת את מושג התצורה של רשתות אלמנטריות ברשתות פטרי.

בתרשים של רשת פטרי (ראה תרשים למעלה מימין), מקומות מתוארים בדרך כלל כעיגולים, מעברים כמלבנים צרים וארוכים וקשתות כחצים בכיוון אחד המראים קשרים של מקומות למעברים או מעברים למקומות. אם התרשים היה של רשת אלמנטרית, אז אותם מקומות בתצורה היו מסומנים כעיגולים, כאשר כל עיגול מקיף נקודה אחת הנקראת *אסימון*. בתרשים הנתון של רשת פטרי (ראה מימין), עיגולי המקומות יכולים להכיל אסימון אחד או יותר כדי להראות את מספר הפעמים שהמקום מופיע בתצורה. התצורה של האסימונים המפוזרים על פני תרשים רשת פטרי כל נקרא *סימון*.

באיור העליון, המקום *p<sub>1</sub>* הוא מקום קלט של מעבר *t*; ואילו המקום *p<sub>2</sub>* הוא מקום הפלט של אותו מעבר. תהי *PN<sub>0</sub>* (איור למעלה) רשת פטרי עם סימון המוגדרת *M<sub>0</sub>* ותהי *PN<sub>1</sub>* (איור למטה) רשת פטרי עם סימון המוגדרת *M<sub>1</sub>*. התצורה של *PN<sub>0</sub>* *מאפשרת* את מעבר t בשל התכונה כי כל מקומות הקלט בעלי מספר מספיק של אסימונים (מוצגים באיורים כנקודות) ה"שווה או גדול" לריבוי הקשתות המתאימות שלהם ל-*t*. אם ורק אם המעבר מאופשר, המעבר יופעל. בדוגמה זו, ה*הפעלה* של מעבר *t* יוצר מפה בעלת סימון המוגדרת *M<sub>1</sub>* בדמות של *M<sub>0</sub>* הנוצרת ברשת פטרי *PN<sub>1</sub>* כפי שניתן לראות באיור למטה. ניתן לתאר את חוק ההפעלה של מעבר, כמתואר בתרשים, כחיסור מספר האסימונים ממקומות הקלט שלו השווה לריבוי קשתות הקלט בהתאמה, והוספת מספר חדש של אסימונים במקומות הפלט השווה לריבוי קשתות הפלט המתאימות.

**הערה 1.** המשמעות המדויקת של "שווה ל- או גדול מ-" תלויה בתכונות האלגבריות המדויקות של הוספה המיושמת על *Z* בחוק ההפעלה, כאשר שינויים קלים בתכונות האלגבריות יכולים להוביל לסוגים אחרים של רשתות פטרי; לדוגמה, רשתות פטרי אלגבריות.

ההגדרה להלן מבוססת באופן רופף על . ישנן הגדרות חלופיות רבות.

### תחביר

**גרף רשת פטרי** (מכונה לעיתים *רשת פטרי*, ראו למטה) הוא שלשה (S,T,W)\!, כאשר:
* *S* היא קבוצה סופית של *מקומות*
* *T* היא קבוצה סופית של *מעברים*
* *S* ו-*T* הן קבוצות זרות, כלומר פריט לא יכול להיות גם מקום וגם מעבר.
* W: (S \times T) \cup (T \times S) \to \mathbb{N} היא מולטי קבוצה של קשתות, כלומר היא מקצה לכל קשת מספר שלם אי-שלילי הנקרא *ריבוי הקשת* (או משקל); שים לב כי קשת לא יכולה לקשר שני מקומות או שני מעברים.

*רלציית הזרימות* היא קבוצת הקשתות:  F = \{ (x,y) \mid W(x,y) > 0 \}. בספרי לימוד רבים, קשתות יכולות להיות בעלות ריבוי 1. ספרים אלו בדרך כלל מגדירים רשתות פטרי על ידי *F* במקום *W*. כשמשתמשים במוסכמה הזו, גרף רשת פטרי הוא מולטיגרף מכוון (S \cup T, F) עם מחיצות הצמתים *S* ו-*T*.

*קבוצת הקלט* של מעבר *t* הוא קבוצת *מקומות הקלט* שלו: {}^{\bullet}t = \{ s \in S \mid W(s,t) > 0 \};
*קבוצת הפלט* שלו הוא קבוצת המקומות t^{\bullet} = \{ s \in S \mid W(t,s) > 0 \}. ההגדרות של קבוצות הקלט והפלט של מקומות הן מקבילות.

*סימון* של רשת פטרי (גרף) הוא מולטי קבוצה של המקומות שלה, למשל המיפוי M: S \to \mathbb{N}. אנו אומרים כי הסימון מקצה לכל מקום מספר של *אסימונים*.

**רשת פטרי** (יש המכנים אותה *רשת פטרי מסומנת*, ראה למעלה) היא 4-יה (S,T,W,M_0)\!, כאשר
* (S,T,W) הוא גרף רשת פטרי;
* M_0 הוא *הסימון ההתחלתי*, סימון של גרף רשת פטרי.

### סמנטיקת ביצוע

מילולית:
* הפעלת מעבר *t* בסימון *M* צורך W(s,t) אסימונים מכל אחד ממקומות הקלט שלו *s*, ומייצר W(t,s) אסימונים בכל אחד ממקומות הפלט שלו *s*
* מעבר *מאופשר* (מסוגל *לפעול*) ב-*M* אם ישנם מספיק אסימונים במקומות הקלט שלו על מנת שהצריכה תהיה אפשרית, כלומר אם ורק אם \forall s: M(s) \geq W(s,t).

אנו בדרך כלל מתעניינים במה שעשוי לקרות כאשר מעברים עלולים לפעול ברציפות באופן שרירותי.

אנו אומרים כי סימון M' הוא *נגיש* מסימון *M* בצעד אחד אם M \to_G M'; אנו אומרים כי הוא *נגיש מ-*M* אם <math>M {\to_G}^* M'</math> כאשר: <math>{\to_G}^*</math> הוא [[סגירות (אלגברה)|הסגור הטרנזיטיבי]] של <math>\to_G</math>; כלומר, אם הוא נגיש ב-0 צעדים או יותר.

עבור רשת פטרי (מסומנת) <math>N=(S,T,W,M_0)\!</math>, אנו מתעניינים בהפעלות שעשויות להתרחש החל מהסימון ההתחלתי <math>M_0</math>. קבוצת *הסימונים הנגישים* שלו היא הקבוצה <math>R(N) \ \stackrel{D}{=}\ \{ M' \mid M_0 {\to_{(S,T,W)}}^* M' \} </math>.

*גרף הנגישות* (reachability graph) של *N* הוא רלציית המעברים ([[מכפלה קרטזית]] של קבוצת המעברים בעצמה) <math>\to_G</math> המוגבל על ידי הסימונים הנגישים שלו <math>R(N)</math>. זהו מרחב המצבים של הרשת.

*רצף ההפעלות* (firing sequence) של רשת פטרי עם גרף *G* וסימון התחלתי <math>M_0</math> הוא רצף של מעברים <math>\vec \sigma = \langle t_{i_1} \ldots t_{i_n} \rangle</math> כך ש-<math>M_0 \to_{G,t_{i_1}} M_1 \wedge \ldots \wedge M_{n-1} \to_{G,t_{i_n}} M_n</math>. קבוצת רצפי ההפעלות מסומנת <math>L(N)</math>.

==הגדרות חלופיות==

כפי שצוין לעיל, הגדרה חלופית נפוצה היא איסור ריבוי קשתות (משקל כל קשת תמיד 1) והחלפת מולטי הקבוצה של קשתות *W* בקבוצה פשוטה, המכונה *רלציית הזרימה*, <math>F \subseteq (S \times T) \cup (T \times S)</math>.
זה לא מגביל את כוח ההבעה של רשת הפטרי היות ששתי השיטות מסוגלות לייצג זו את זו.
חלופה נפוצה נוספת, למשל, ב-Desel and Juhás (2001), מאפשרת לסמן *קיבולות* של מקומות. נושא זה נדון תחת *הרחבות* בהמשך.

==ניסוח במונחים של וקטורים ומטריצות==

הסימונים של רשת פטרי <math>(S,T,W,M_0)\!</math> יכולים להיחשב כ[[מרחב וקטורי|ווקטור]]ים של מספרים שלמים אי-שליליים באורך <math>|S|</math>.

רלציית המעברים שלה יכולה להיות מתוארת כזוג [[מטריצה|מטריצות]] <math>|S|</math> על <math>|T|</math>:
* <math>W^-</math> המוגדרת <math>\forall s,t: W^-[s,t] = W(s,t)</math> (מטריצת הקשתות מקום-מעבר).
* <math>W^+</math> המוגדרת <math>\forall s,t: W^+[s,t] = W(t,s)</math> (מטריצת הקשתות מעבר-מקום).

ואז ההפרש ביניהן
* <math> W^T = W^+ - W^-</math> יכול לשמש לתיאור הסימונים הנגישים במונחים של כפל מטריצות, כדלהלן. עבור כל רצף מעברים *w*, כתוב <math>o(w)</math> עבור הווקטור הממפה כל מעבר למספר המופעים שלו ב-*w*. ואז נקבל
* <math>R(N) = \{ M \mid \exists w: M = M_0 + W^T \cdot o(w) \wedge w \!</math> הוא רצף הפעלות של <math>N \}\!</math>.

שים לב שחובה כי * W * יהיה רצף הפעלות; אם ברשת מתאפשרים רצפים אקראיים של מעברים, בדרך כלל תיווצר קבוצה גדולה יותר.

[[קובץ:detailed petri net.png|frame|(ב) דוגמה לרשת פטרי]] <math>W^{+}=\begin{bmatrix} * & t1 & t2 \\ p1 & 0 & 1 \\ p2 & 1 & 0 \\ p3 & 1& 0 \\ p4 & 0 & 1 \end{bmatrix} </math>

<math> W^{-}=\begin{bmatrix} * & t1 & t2 \\ p1 & 1 & 0 \\ p2 & 0 & 1 \\ p3 & 0 & 1 \\ p4 & 0 & 0 \end{bmatrix} </math>

<math>W^T=\begin{bmatrix} * & t1 & t2 \\ p1 & -1 & 1 \\ p2 & 1 & -1 \\ p3 & 1 & -1 \\ p4 & 0 & 1 \end{bmatrix}</math>

<math>M_{0}=\begin{bmatrix} 1 & 0 & 2 & 1 \end{bmatrix}</math>

==תכונות מתמטיות של רשתות פטרי==

אחד הגורמים לכך שרשתות פטרי הן מעניינות הוא שהן מספקות איזון בין כוח המידול ויכולת ניתוח: ניתן לקבוע באופן אוטומטי דברים רבים על מערכות מקביליות ברשתות פטרי, אף על פי שחלק מהדברים הללו "יקר" מאוד לקביעה במקרה הכללי. מספר תת-קבוצות של רשתות פטרי אשר נחקרו מסוגלות למדל קבוצות מעניינות של מערכות מקביליות, ולהקל על בעיות אלה.

ניתן למצוא סקירה על [[קבלת החלטות|בעיות החלטה]] כאלו, עם תוצאות [[כריעות]] ו[[סיבוכיות]] של רשתות פטרי ושל מספר תתי-קבוצות, ניתן למצוא ב־Esparza and Nielsen (1995).
Esparza ונילסן (1995)

===נגישות===
[[בעיית הנגישות]] (reachability) של רשתות פטרי היא להכריע, בהינתן רשת הפטרי *N* והסימון *M*, האם <math>M \in R(N)</math>, האם ניתן להגיע לסימון *M* על ידי רצף כלשהו של מעברים.

ברור כי זהו עניין של הליכה בגרף הנגישות המוגדר לעיל, עד שנגיע לסימון המבוקש או עד שנדע כי כבר לא ניתן להגיע אליו, אולם זה יותר קשה ממה שזה נראה בהתחלה: גרף הנגישות הוא בדרך כלל אינסופי, וזה לא קל לקבוע מתי זה ניתן לעצור.

למעשה, בעיה זו הוצגה כבעלת קושי [[EXSPACE]] שנים לפני שהיא הוצגה בכלל כ[[כריעות|כריעה]] (Mayr, 1981). עדיין מתפרסמים מחקרים על כיצד ניתן לבצע זאת ביעילות.

אמנם נדמה כי נגישות היא כלי טוב למציאת מצבים שגויים, אך בדרך כלל הגרף מכיל יותר מדי מצבים מכדי לחשב. על מנת להקל על בעיה זו, משתמשים בדרך כלל ב[[לוגיקה עיתית ליניארית]] (Linear Temporal Logic) בשילוב עם שיטת [[התמונה האנליטית]] כדי להוכיח שלא ניתן להגיע למצבים כאלו. LTL משתמש ב[[טכניקת ההחלטה למחיצה]] כדי למצוא האם אכן ניתן להגיע למצב, על ידי מציאת קבוצת תנאים הכרחיים על מנת להגיע אליו, ואז מוכיח כי תנאים אלו אינם מספקים.

===חיות===

[[קובץ:liveness-levels.gif|ממוזער|left|רשת פטרי שבה <math>t_0</math> הוא מת, בעוד עבור כל <math>j>0,</math> <math>t_j</math> הוא בעל חיות <math>L_j</math>]]

ניתן לתאר רשת פטרי כבעלת דרגות חיות שונות של חיות (liveness)<math>L_1 - L_4</math>. רשת פטרי <math>(N, M_0)</math> נקראת בעלת חיות <math>L_k</math> אם ורק אם כל המעברים שלה הם בעלי חיות <math>L_k</math>, כאשר מעבר הוא
* *מת* או [[קיפאון (מדעי המחשב)|*קפוא*]] (deadlocked), אם הוא לעולם לא יוכל לפעול, כלומר הוא לא באף רצף הפעלות ב-<math>L(N,M_0)</math>.
* בעל חיות <math>L_1</math> (*בעל סיכוי לפעול*), אם ורק אם הוא עשוי לפעול, כלומר הוא ברצף הפעלות ב-<math>L(N,M_0)</math>.
* בעל חיות <math>L_2</math> אם ורק אם הוא מסוגל לראות באופן שרירותי, כלומר אם עבור כל מספר שלם וחיובי k, הוא קורה לפחות k פעמים ברצף הפעלות כלשהו ב-<math>L(N,M_0)</math>
* בעל חיות <math>L_3</math> אם ורק אם הוא יכול לפעול אינסוף פעמים, כלומר עבור כל מספר שלם וחיובי k, הוא קורה לפחות k פעמים ב*V*, עבור מספר קבוצות סגורות-קידומת של רצפי הפעלות <math>{}_{V \subseteq L(N,M_0)}</math>.
* בעל חיות <math>L_4</math> (*חי*) אם ורק אם הוא תמיד יופעל, כלומר הוא בעל חיות <math>L_1</math> בכל סימון נגיש ב-<math>R(N,M_0)</math>.

שימו לב כי הדרשות מחמירות בסדר עולה: חיות <math>L_{j+1}</math> מרמזת חיות <math>L_j</math> עבור <math>{}_{j \in {1,2,3}}</math>.

הגדרות אלו הן בהתאם לסקירה של Murata, אשר משתמש ב*חיות* <math>L_0</math> כמונח עבור *מת*.

===חסימות===
[[קובץ:Reachability graph for petri net.png|left|מסגרת|width=50px|גרף הנגישות של *N2*.]]

מקום ברשת פטרי נקרא *חסום-k* אם הוא לא מכיל יותר מ-*k* אסימונים בכל הסימונים הנגישים, כולל הסימון ההתחלתי; הוא נחשב כ*שמור* (safe) אם הוא *חסום-1*; הוא *קבוצה חסומה k* אם הוא *חסום-k* עבור *k* כלשהו.

ישנן מספר הגדרות חסימות של רשת פטרי
* רשת פטרי (מסומנת) נקראת *חסומה* (bounded) אם מספר האסימונים ברשת לעולם סופי.
* רשת פטרי נקראת *חסומה-k* אם מספר האסימונים חסום על ידי על k.
* רשת פטרי (גרף) נקראת *חסומה מבנית* אם היא חסומה עבור כל סימון התחלתי אפשרי.
* רשת פטרי נקראת *קונסרבטיבית* אם מספר האסימונים ברשת קבוע.
* רשת פטרי נקראת *שמורה* אם מספר האסימונים המרבי ברשת הוא 1.

שים לב כי רשת היא חסומה אם ורק אם גרף הנגישות שלה הוא סופי.

חסימות היא כריעה על ידי בחינת [[הכיסוי|בעיות כיסוי]], על ידי בניית עץ [[ריצ'רד קארפ|קארפ]]-מילר.

כפיית חסימות באופן מפורש על מקומות ברשת נתונה עשויה להיות שימושית. זה יכול לשמש מידול של משאבים מוגבלים.

הגדרות מסוימות של רשתות פטרי מתירות זאת באופן מפורש כתכונה תחבירית.
באופן רשמי, *רשתות פטרי עם קיבולת מקומות* יכולות להיות מוגדרות כ-n-יות <math>(S,T,W,C,M_0)</math>, כאשר <math>(S,T,W,M_0)</math> היא רשת פטרי, <math>C: P \rightarrow\!\!\!\shortmid I\!N</math> הקצאה של קיבולות לחלק או כל המקומות, ורלציית המעברים היא זה שבדרך כלל מוגבל לסימונים כאשר כל מקום עם קיבולת יש לכל היות מספר אסימונים כזה.

[[קובץ:Two-boundedness-ub.png|left|מסגרת|רשת פטרי לא חסומה, N.]]

למשל אם ברשת *N*, מוקצה הקיבולת 2 לשני מקומות, נקבל רשת פטרי עם קיבולות מקום, נניח *N2*; גרף הנגישות שלה מוצג בצד ימין.

[[קובץ:Two-boundedness-cb.png|left|מסגרת|רשת פטרי חסומה-2, המתקבלת על ידי הרחבת *N* ב"מקומות-נגד".]]

לחלופין, ניתן לחסום מקומות על ידי הרחבת הרשת. ליתר דיוק, מקום יכול להיות חסום-*k* על ידי הוספת "מקום-נגד" עם זרימה הפוכה אליו, והוספת אסימונים כך שסך האסימונים במקומות-הנגד יהיה *k*.

==רשתות פטרי בדידות, רציפות והיברידיות==

כמו גם לאירועים בדידים, יש רשתות פטרי לתהליכים רציפים ובדידים-רציפים היברידיים, שהם שימושיים ב[[תאוריית בקרה|תורת הבקרה]] בדידה, רציפה ושליטה, וקשורה ל[[אוטומטים|תורת האוטומטים]] בדידים, רציפים והיברידיים.

==הרחבות==
ישנן הרחבות רבות לרשתות פטרי. חלקן בעלות תאימות מלאה לאחור (למשל רשתות פטרי צבעוניות) עם רשת הפטרי המקורית. ישנם המוסיפים תכונות שלא ניתנות למידול בפורמליזם של רשת הפטרי המקורית (למשל רשתות פטרי מתוזמנות). אף על פי שמודלים בעלי [[תאימות לאחור]] אינם מיישמים את כוח החישוב של רשתות פטרי, ייתכן שיש להם ייצוגים תמציתיים והם עשויים להיות יותר נוחים למידול. לעיתים הרחבות שלא ניתן לייצג כרשת פטרי מקורית הן מאוד חזקות, אך בדרך כלל חסרות את המגוון הרחב של כלים מתמטיים הזמינים לניתוח ברשתות פטרי רגילות.

המונח רשת פטרי ברמת-על (high-level petri net) משמש פורמליזם של רשתות פטרי המיישמות את הפורמליזם של אשת פטרי מקורית; זה כולל רשתות פטרי צבעוניות, רשתות פטרי היררכיות כגון רשתות בתוך רשתות, וכל שאר ההרחבות הנידונות בפרק זה. המונח גם משמש במיוחד את רשתות הפטרי הצבעוניות הנתמכות על ידי [[CPN tools]].

רשימה קצרה של הרחבות אפשריות:
*סוגים נוספים של קשתות; שני סוגים נפוצים הם:
** *קשת איפוס* (reset arc) אינה מהווה תנאי מקדים של הפעלה, ומרוקנת את המקום כשהמעבר מופעל; זה גורם לנגישות להיות בלתי כריעה, בעוד שתכונות אחרות, כגון סיום, כריעות;
** *קשת בולמת* (inhibitor arc) גורמת לכך שמעבר יכול לפעול רק אם המקום של התנאי המקדים ריק; זה מאפשר לבטא חישובים אקראיים על מספר אסימונים, מה שהופך את הפורמליזם ל[[שלם-טיורינג]]) ומרמז על קיומה של רשת אוניברסלית.
* ברשתות פטרי סטנדרטיות, לא קיימת הבחנה בין סוגים שונים של אסימונים. ברשת פטרי צבעונית, לכל אסימון יש ערך. בכלים פופולריים לרשתות פטרי צבעוניות כגון CPN, הערכים של האסימונים מוקלדים, וניתן לבדוק אותם באמצעות *תנאי הגנה* (guard expressions) ולבצע עליהם מניפולציות באמצעות שפת תכנות פונקציונלית. תת-סוג של רשתות פטרי צבעוניות הוא רשתות פטרי בנויות היטב (well-formed), בהן הקשת ותנאי ההגנה, מוגבלים להקל על ניתוח הרשת.
* הרחבה נוספת של רשתות פטרי היא היררכיה. רשת זו בצורה שונות של מבט תומכת ברמות שונות של מורכבות והפשטה נחקרה על ידי Fehling. צורה שונה של היררכיה נמצאת במה שמכונה רשתות פטרי עצמים (object petri nets) או מערכות עצמים, בהן רשת פטרי יכולה להכיל רשתות פטרי כאסימונים לרבות היררכיה של רשתות פטרי מקוננות שמתקשרות על ידי סנכרון מעברים ברמות שונות. ראה להצגה בלתי-פורמלית של רשתות פטרי עצמים.
* [[vector addition system|מערכת הוספת וקטורים עם מצבים (VASS)]] (ר"ת של Vector Addition System with States) היא פורמליזם שקול לרשתות פטרי. עם זאת, באופן שטחי ניתן לראות בה כהכללה של רשתות פטרי. חשוב על [[אוטומט סופי]] כאשר כל מעבר מסומן על ידי מעבר מרשת פטרי. רשת הפטרי אם כן מסונכרנת עם האוטומט הסופי, כלומר מעבר באוטומט מתבצע באותו זמן עם המעבר המקביל ברשת הפטרי. ניתן לבצע מעבר באוטומט רק אם המעבר המקביל ברשת הפטרי מאופשר, ומעבר יכול לפעול ברשת הפטרי אם קיים מעבר מהמצב הנוכחי באוטומט המסומן לפיו. (ההגדרה של VASS בדרך כלל מנוסחת באופן מעט שונה.)
* [[רשת פטרי מתועדפת|רשתות פטרי מתעuדפות]] (Prioritised Petri nets) מוסיפות תכונות למעברים, לפיהן מעבר אינו יכול לפעול אם מעבר בעל עדיפות גבוהה יותר מאופשר (כלומר יכול לפעול). לפיכך, מעברים נמצאים בקבוצות עדיפויות, ולמשל מעברים בקבוצת עדיפות 3 מסוגלים לפעול אם כל המעברים בקבוצות 1 ו-2 כבויים. בתוך קבוצת עדיפות, ההפעלה *עודנה* לא דטרמיניסטית.
* תכונת אי-הדטרמיניסטיות הייתה יקרת-ערך, משום שהיא מאפשרת למשתמש לפשט מספר רב של תכונות (בהתאם לתכלתית הרשת). במקרים מסוימים, לעומת זאת, הצורך נוצר כדי למדל תזמון, ולא רק את מבנה המודל. למילוי צרכים אלו, התפתחו [[רשת פטרי מתוזמנת|רשתות פטרי מתוזמנות]], בהן ישנם מעברים מתוזמנים, וייתכנו גם מעברים שאינם מתוזמנים (במידה ויש, מעברים שאינם מתוזמנים בעלי עדיפות כבוהה יותר מאלו שכן). תת-קבוצה של רשתות פטרי מתוזמנות היא [[רשת פטרי סטוכסטית|רשתות פטרי סטוכסטיות]] המוסיפות זמן [[אוטומט סופי לא דטרמיניסטי|לא דטרמיניסטי]] על ידי אקראיות המעברים הניתנת להתאמה. [[התפלגות מעריכית|ההתפלגות המעריכית]] בדרך כלל משמשת "לתזמון" הרשתות הללו. במקרה זה, גרף הנגישות של הרשת יכול לשמש כ[[שרשרת מרקוב]].
* [[רשת פטרי דואליסטית]] (dP-Nets) היא הרחבה של רשת פטרי שפותחה על ידי E. Dawis, et al. על מנת לייצג באופן טוב יותר תהליך בעולם האמיתי. רשתות פטרי דואליסטיות מאזנות את הדואליות של שינוי/חוסר שינוי, אקטיביות/פסיביות, (טרנספורמציה) זמן/מקום, וכו', ומבחינות בין רשתות פטרי המייצגות טרנספורמציה של זמן לכאלו המייצגות טרנספורמציה של מקום. רעיון זה מעניק לרשת פטרי דואליסטית את המאפיין הייחודי שהוא *סימון טרנספורמציה*, כלומר כשהטרנספורמציה "פועלת" היא מסומנת. זה מאפשר לטרנספורמציה לפעול (או להיות מסומנת) מספר פעמים וכך מתאפשר ייצוג של התנהגות תפוקה של תהליך. סימון הטרנספורמציה מניח כי זמן טרנספורמציה מוכרח להיות גדול מאפס. זמן טרנספורמציה באורך אפס המשמש רשתות פטרי רבות, אמנם מזמין מבחינה מתמטית, אך אינו שימושי בייצוג של תהליכים בעולם האמיתי. רשתות פטרי דואליסטיות גם מנצלות את האבסטרקציה של רשתות פטרי היררכיות, על מנת לתאר [[ארכיטקטורת תהליך]]. מערכות תהליכים מורכבות ממודלות כסדרה של רשתות פטרי פשוטות יותר המקושרות ביניהן באמצעות רמות שונות של הפשטה. ארכיטקטורת התהליך של [[מתג (רשתות מחשבים)|מתג]] מודגמת ב, שבו דרישות פיתוח מאורגנות סביב מבנה המערכת המתוכננת. רשתות פטרי דואליות מאפשרות למדל, לחקור ולשפר כל תהליך בעולם האמיתי, כגון מערכות מחשוב, תהליכים עסקיים, תעבורה, זרימה, וכו'.

ישנן עוד הרחבות רבות לרשתות פטרי. עם זאת, חשוב לזכור כי ככל שמורכבות הרשת עולה במובנים של תכונות מורחבות, קשה יותר להשתמש בכלים סטנדרטים על מנת להעריך תכונות מסוימות של הרשת. בשל כך, מומלץ להשתמש בסוג הרשת הכי פשוט שאפשר עבור משימת המידול.

==הגבלות==
[[קובץ:petri net types.svg|ממוזער|המחשה גרפית של סוגי רשתות פטרי]]

במקום להרחיב את הפורמליזם של רשת פטרי, אנו יכולים גם להתבונן על הגבלתו, ולהתבונן בסוגים מסוימים של רשתות פטרי, שהושגו על ידי הגבלת התחביר באופן מסוים. רשתות פטרי רגילות הן הרשתות בהן כל משקולות הקשתות הן 1. בדרך כלל נעשה שימוש ומחקר של הגבלות נוספות של רשתות פטרי רגילות:
# ב[[אוטומט סופי]] (SM - state machine), כל מעבר יש קשת נכנסת אחת וקשת יוצאת אחת, וכל הסימונים בעלי אסימון אחד בדיוק. כתוצאה מכך, *לא יכולה להיות מקביליות*, אך יכול להיוותר *קונפליקט* (כלומר אי-דטרמיניזם). מתמטית: <math>\forall t\in T: |t^\bullet|=|{}^\bullet t|=1</math>
#ב[[גרף מסומן]] (MG - marked graph), לכל מקום יש קשת נכנסת אחת וקשת יוצאת אחת. דהינו, *לא יכול להיווצר קונפליקט*, אך יכולה להיות *מקביליות*. מתמטית: <math>\forall s\in S: |s^\bullet|=|{}^\bullet s|=1</math>
# ברשת *בחירה חופשית* (FC - free choice), - כל קשת ממקום למעבר היא הקשת היחידה ממקום זה או הקשת היחידה למעבר זה. כלומר יכולים להתקיים *הן מקביליות והן קונפליקט, אך לא באותו הזמן*. מתמטית: <math>\forall s\in S: (|s^\bullet|\leq 1) \vee ({}^\bullet (s^\bullet)=\{s\})</math>
# בחירה חופשית מורחבת (EFC - extended FC) - רשת פטרי שיכולה *להפוך ל-FC*.
# ברשת *בחירה אסימטרית* (AC - Asymmetric choice), מקביליות וקונפליקט (בסיכום, *בלבול*) יכולים לקרות, אך *לא באופן סימטרי*. מתמטית: <math>\forall s_1,s_2\in S: (s_1{}^\bullet \cap s_2{}^\bullet\neq \emptyset) \to [(s_1{}^\bullet\subseteq s_2{}^\bullet) \vee (s_2{}^\bullet\subseteq s_1{}^\bullet)]</math>

==רשתות זרימה==
[[רשת זרימה|רשתות זרימה]] (Workflow nets או בקיצור WF-nets) הן תת-קבוצה של רשתות פטרי שמטרתן למדל את זרימת פעילויות התהליך. המעברים ברשת זרימה מוקצים עבור משימות או פעילויות, ומקומות מוקצים לתנאי קדם או תנאים אוחרים. לרשתות הזרימה ישנן דרישות מבניות ופעולה נוספות, בעיקר התוספת של מקום קלט יחיד (מקור - source) ללא מעברים קודמים, ומקום פלט (בור - sink) ללא מעברים עוקבים. בהתאם לכך, ניתן להגדיר סימוני התחלה וסוף המייצגים את סטטוס התהליך.

רשתות זרימה הן בעלות תכונת ה*'נאותות**, המציינת כי תהליך עם סימון התחלתי של k אסימונים במקור, מסוגל להגיע לסימון הסופי שלו עם k אסימונים בבור (מוגדר כרשת זרימה נאותה-K). בנוסף, כל המעברים בתהליך יכולים לפעול (כלומר עבור כל מעבר ישנו מצב נגיש בו המעבר מאופשר). רשת זרימה נאותה-גנרית (נאותה-G) מוגדרת נאותה-K עבור כל k>0.

[[מסלול (תורת הגרפים)|**מסלול**]] מכוון ברשת פטרי מוגדר כרצף צמתים (מקומות ומעברים) המקושרים באמצעות קשתות מכוונות. **מסלול אלמנטרי** מכיל כל צומת ברצף פעם אחת בלבד.

רשת פטרי **מתוחזקת היטב** (well-handled) היא רשת שבה אין מסלולים אלמנטריים שונים-לגמרי בין מקום ומעבר (או מעבר ומקום), כלומר אם ישנם שני מסלולים בין זוג הצמתים, אזי המסלולים הללו חולקים צומת. רשת זרימה מתוחזקת-היטב מעגלית היא נאותה (נאותה-G).

רשת זרימה מורחבת היא רשת פטרי המורכבת מרשת זרימה עם מעבר נוסף t (מעבר משוב). מקום הבור מקושר כמקום הקלט של מעבר t והמקור כמקום הפלט שלו. הפעלה של מעבר זה גורמת לאיטרציה של התהליך (שים לב: רשת זרימה מורחבת אינה רשת זרימה).

רשת זרימה מתוחזקת היטב עם איטרציה רגילה (WRI - well-handled with regular iteration) היא רשת זרימה מורחבת לא מעגלית. רשת זרימה WRI יכולה להיבנות כצירוף של רשתות, כלומר החלפת מעבר ברשת זרימה WRI בתת-רשת זרימה WRI. התוצאה תהיה גם רשת רשת זרימה WRI. רשתות זרימה WRI הן גם נאותות-G, לכן על ידי שימוש באבני בניין מסוג רשת זרימה WRI בלבד, ניתן להשיג רשתות זרימה שהן נאותות-G לפי המבנה.

[[מטריצת מבנה העיצוב (DSM)]] (ר"ת של design structure matrix) יכולה למדל יחסי תהליך, ולשמש לתכנון תהליכים. **רשתות DSM''' הן מימושן של תוכניות מבוססות DSM לתהליכי זרימה על ידי רשתות פטרי, ושקולות לרשתות WRI-WF. תהליך בניית רשת ה-DSM מבטיח את תכונת הנאותות של הרשת המתקבלת.

## מודלים אחרים של מקביליות
הוצעו דרכים אחרות למידול חישוב במקבילי, כולל אלגברת תהליך, מודל השחקן ותיאורית העקבות. דגמים שונים מספקים פשרות של מושגים כמו קומפוזיציונליות, מודולריות, ולוקליות.

גישה לקישור חלק מהמודלים לעיל מוצע בפרק על ידי ווינסקל ונילסן.

## תחומי יישום
* Business Process Management
* ניתוח מידע
* סימולציה
* עיצוב תוכנה

## ראו גם
* אוטומט סופי

## לקריאה נוספת

*
*
*
*
*
*

*
*
*
*
*
*


## קישורים חיצוניים


*
*
*

## הערות שוליים

קטגוריה:אינפוגרפיקה