480 likes | 805 Views
רשתות פטרי. עדי מור 18/12/13. מערך. רקע והיסטוריה הגדרות דוגמאות ושימושים השוואה למודל אחר סיכום. רקע והיסטוריה. רקע והיסטוריה הגדרות דוגמאות ושימושים השוואה למודל אחר סיכום. רקע: חישוב מבוזר.
E N D
רשתות פטרי עדי מור 18/12/13
מערך • רקע והיסטוריה • הגדרות • דוגמאות ושימושים • השוואה למודל אחר • סיכום
רקע והיסטוריה • רקע והיסטוריה • הגדרות • דוגמאות ושימושים • השוואה למודל אחר • סיכום
רקע:חישוב מבוזר • שיטה שבמסגרתה חלקים שונים של משימת חישוב כלשהי המוטלת על תוכנית מחשב מתבצעת במחשבים נפרדים המקושרים ביניהם באמצעות רשת • לניהול המשימה חשיבות רבה, משום שנדרש תיאום בין המחשבים השונים המבצעים את החישוב המבוזר
פרופ' קרל אדם פטרי(1926-2010) • ביקש ליצור בסיס תיאורטי לטכנולוגיית המחשב שלא תלוי בטכנולוגיה הנוכחית על מנת להניח את היסודות, פרסם מאמר ובו הטענות הבאות: • תיאוריית החישוביות כיום מתבססת על מכונת טיורינג עם אוטומט וסרט אינסופי • ניתן לממש אוטומט ע"י מחשב, אך לא ניתן לממש סרט אינסופי • על מנת לא לסתור את חוקי הפיסיקה, עלינו להחליף את הסרט בשני אוגרי הזזה • לכל אוגר יהיה מספר התחלתי של תאים ובקצה מפעל המייצר עוד תאים לאוגר • בפתרון זה, כל תא יכול לתקשר רק עם שני שכניו כל מעבר באוטומט משפיע רק על שכניו.. • לכן תיאוריה חישובית מוגבלת לתקשורת בין השכנים המיידיים
פרופ' קרל אדם פטרי(1926-2010) • תיאוריה חישובית מוגבלת לתקשורת בין השכנים המיידיים • לכן יהיה קשה למדל את הטכנולוגיות אליהן העולם מתקדם (חישוב מבוזר והאינטרנט) בעזרת מכונת טיורינג בעלת ראש קורא/כותב בודד • בגיל 13 (!) חשב על רעיון הרשתות כדי לתאר תהליכים כימיים • יותר מאוחרהחליט ליישם את הרעיון מילדותו יחד עם סיגנלים וביטים וליצור מודל חישובי • בדוקטורט הציע את מודל רשתות הפטרי והיווה את תחילת המחקר בחישוב מבוזר ועיבוד מקבילי • תחילה התמקד בתאוריה ועם השנים התווספו למודל כלים ואפליקציות *אין קשר לממציא צלחת הפטרי (ביולוגיה)
הגדרות • רקע והיסטוריה • הגדרות • דוגמאות ושימושים • השוואה למודל אחר • סיכום
תזכורת - גרף דו-צדדי מכוון • גרף שבו ניתן לחלק את הקודקודים לשתי קבוצות זרות • כך שלא קיימת קשת בין שני קודקודים השייכים לאותה הקבוצה
קשת קשת מקום מקום הגדרה - רשת • גרף דו-צדדי מכוון (net) : • קבוצת המקומות (places) • קבוצת המעברים (transitions) • קבוצת הקשתות (flow relations) זרות
קשת קשת הגדרה – רשת – סוגי מקום ומעבר מקום מקום • גרף דו"צ מכוון (net) : • קבוצת המקומות (places) • קבוצת המעברים (transitions) • הקשתות (flow relations) הוא מודל עבור רכיב אקטיבי-מעבר מיוצג גרפית ע"י מלבן יכול לייצר, לצרוך, להעביר או לשנות אסימונים הוא מודל עבור רכיב פסיבי-מקום מיוצג גרפית ע"י מעגל יכול להכיל, לצבור או להראות אסימונים יש הפרדה בין רכיבים פסיביים ואקטיביים- מקום לא יכול להיות גם מעבר ולהיפך זרות
קשת קשת הגדרה – רשת – סוגי קשתות מקום מקום • גרף דו"צ מכוון (net) : • קבוצת המקומות (places) • קבוצת המעברים (transitions) • הקשתות (flow relations) -קשת בין מקום למעבר מייצגת קלט עבור המעבר קח תפוח.. קח תפוח.. זרות -קשת בין מעבר למקום מייצגת פלט שנוצר לאחר הפעלת המעבר תן בננה! -אין קשתות בין מקום למקום או בין מעבר למעבר גרף דו-צדדי כי
הגדרה – רשת אלמנטרית קונפיגורציה • רשת מהצורה (elementary net) : • היא רשת • היא קונפיגורציה התחלתית – המקומות בהם יש אסימון • ברשת אלמנטרית, בכל מקום ניתן לשים רק אסימון שחור אחד ולא עצמים מסוגים שונים
הגדרה – רב-קבוצה • כדי להרחיב את מושג הרשת לרשת פטרי, נצטרך להגדיר רב-קבוצה: • יהי יקום של טיפוסים • רב-קבוצה היא מיפוי שממפה כל אל מס' ההופעות שלו ב- • ניתן לחבר, לחסר או להשוות בין רב-קבוצות H [ , , , , ] [ , , ] [ , , , , , , , ] = [ ] =[ , ]
קשת קשת הגדרה – רשת פטרי מקום מקום • רשת מהצורה : • היא רשת • סימון המקומות (marking) הממפה לכל מקום רב-קבוצה של האיברים בו Z) היא קבוצת כל רבי-הקבוצות האפשריים עבור הטיפוסים ביקום) • ריבוי הקשתות (multiplicity) הממפה לכל קשת רב-קבוצהשל איברי הקלט/פלט נסמן לקשת את הריבוי בתור
קשת קשת הפעלת מעברים ברשת פטרי מקום מקום • נאמר כי סימון Mמאפשר הפעלה של מעבר t אם ורק אם: • לאחר הפעלה של מעבר t, נקבל את הסימון המעודכן : עצמים הנתונים במקום הקלט עצמים הנתונים במקום הקלט לפני המעבר עצמים הנדרשים בקשת הקלט עצמים הנלקחים בקשת הקלט עצמים המתקבלים בקשת הפלט
הפעלת מעברים עם משתנים ברשת פטרי מסומנת • ברשת פטרי מסומנת נוסיף את פונקציית שנותנת תווית לכל קשת ופונקציית שנותנת למעבר תנאי • כאשר הקשתות סביב מעבר מכילות משתנים , נסמן מצב של המעבר • וכעת סימון Mמאפשר הפעלה של מעבר אם ורק אם: • בדוגמא עבור המצב- שני התנאים מתקיימים- ולכן פירוש התנאי פירוש התווית
הרחבה – רשת פטרי צבעונית • מאפשר שימוש של רשת פטרי יחד עם שפת תכנות • ניתן להצמיד לכל אסימון מידע שנקרא צבע ולכל מקום יש כעת חבילת צבעים(color set). • באופן פורמלי:רשת צבעונית היאכאשר • היא רשת פטרי • Σ היא קבוצת כל חבילות הצבעים המוגדרות ברשת • היא פונקציית הצביעה הממפה לכל מקום חבילת צבעים (color function) • בכדי לאפשר מספר קשתות בין אותו מקום ומעבר עם ביטויים שונים: • היא פונקציה הממפה לכל קשת מקום ומעבר (node function) • היא פונקציה הממפה לכל קשת ביטוי ספיציפי (expression label function)
הרחבה – רשת פטרי צבעונית רשת צבעונית היא • היא פונקציה הממפה לכל מעבר תנאי הגנה, הביטוי אמור להתפרש לערך בוליאני – האם ניתן להפעיל את המעבר (guard condition function) • I היא פונקציה הממפה לכל מקום ביטוי התחלתי, הביטוי אמור להתפרש לרב-קבוצה של אסימונים עם צבע מתאים (initialization function)
רקע והיסטוריה • הגדרות • דוגמאות ושימושים • השוואה למודל אחר • סיכום דוגמאות ושימושים NOW FOR SOME COOL STUFF!
מכונת העוגיות • נרצה לבנות מודל עבור מכונה אוטומטית • המכונה תקבל אסימון – מטבע של יורו אחד • ובתמורה תוציא חבילת עוגיות
מכונת העוגיות – שלב 1 • מודל עבור מכונה אוטומטית שמקבל אסימון ומוציאה חבילת עוגיות • שלב 1: מצב יציב
מכונת העוגיות – שלב 2 • נוסיף תא אחסון לעוגיות ותא אחסון לכסף
מכונת העוגיות – שלב 3 • נוסיף ממשק להכנסת מטבע ולהוצאת קופסא (מעברים קרים)
מכונת העוגיות – שלב 4 • נוסיף אופציה להחזרת המטבע
מכונת העוגיות – שלב 5 ואחרון • בתא האחסון יש מספר מוגבל של עוגיות • לכן נגביל את מספר הקניות האפשריות בעזרת מונה
מכונת העוגיות - סיכום • המחשה של רכיבים מציאותיים: • תא מטבעות, תא אחסון לעוגיות בתור מקומות • מטבעות וחפיסות עוגיות בתור אסימונים • פתרון באמצעות רכיבים טכניים: • מונה של מספר טבעיים • סינגל המיוצג ע"י אסימון שחור • מידול פעולות על המכונה: • מעברים חיצוניים של הכנסת מטבע או לקיחת חפיסה • מעברים פנימיים המשפיעים על התנהגות המכונה
בעיית הפילוסופים הסועדים • חמישה פילוסופים מבלים את חייהם סביב שולחן עגול בחשיבה על החיים ובאכילת סושי. • במרכז השולחן ישנה קערת סושי גדולה, ולכל אחד מהפילוסופים יש צלחת. • הפרנסה לא מאירה פנים לפילוסופים, על כן לפילוסופים חמישה מקלות צ'ופסטיקס בלבד. • בין כל שתי צלחות מונח צ'ופסטיק בודד. • כל פילוסוף יכול להרים רק את שני המקלות הקרובים אליו (מימינו ומשמאלו). • על מנת לאכול סושי, כל פילוסוף זקוק לשני צ'ופסטיקס. פתחו סושייה בגילמן!!!
הפילוסופים הסועדים – קיפאון (Deadlock) • קיפאון מתרחש כאשר כל הפילוסופים נתקעים במצב כלשהו ממנו אינם יכולים לצאת. • למשל, אם הכלל שעל פיו הפילוסופים פועלים אומר כי כאשר הם רוצים לאכול עליהם להרים את המקל שמימינם ולחכות עד שהמקל משמאלם יתפנה • אם כל הפילוסופים ירצו לאכול בו-זמנית - כולם ירימו את המקל שמימינם ולאחר מכן יחכו לנצח למקל שמצד שמאל (שכן מקל זה מוחזק בידי פילוסוף אחר, שגם הוא מחכה שיתפנה המקל משמאלו, וכן הלאה בצורה מעגלית).
הפילוסופים הסועדים – הרעבה (Starvation) • מצב של הרעבה מתרחש כאשר אחד או יותר מהפילוסופים אף פעם אינו מצליח לאכול. • למשל, אם דרך הפעולה של הפילוסופים היא להרים את המקל שמצד ימין, לחכות חמש דקות למקל שמצד שמאל, ואם הוא טרם התפנה - להניח את המקל שבצד ימין ולחכות עוד חמש דקות לפני הנסיון הבא, אף פילוסוף אינו מצליח לאכול. • לא מדובר בקיפאון כי הפילוסופים לא נתקעים במצב בודד (מורידים ומרימים את המקלות)
הפילוסופים הסועדים – הרעבה (Starvation) • בד"כ כאשר מחליטים לפעול על פי עדיפות עלולה להיווצר הרעבה. • לדוגמא, אם כאשר הם רוצים לאכול עליהם להרים את המקל שמימינם ולחכות עד שהמקל משמאלם יתפנה. ונחליט כי פילוסוף ישחרר את המקל שבידו אם שכנו מבוגר ממנו וגם הוא מחזיק מקל. ייתכן כי הפילוסוף הצעיר ביותר אינו מספיק אף פעם לאכול, בעוד הפילוסופים משני צדדיו אוכלים לסרוגין. NO SUSHI FOR YOU HAHA!
הפילוסופים הסועדים – רשת פטרי צבעונית
הפילוסופים הסועדים – פתרון המלצר • פילוסוף חייב לבקש רשות מהמלצר להרים מקל. • פילוסוף ירים קודם את מקל ימין ולאחר מכן את מקל שמאל. • כאשר 4 מקלות בשימוש, המלצר לא ייתן רשות עד שמקל כלשהו יתפנה. • המלצר משמש כסמפור (semaphore– מנגנון סנכרון) ומונע מצב של קיפאון. • כמו כן, המלצר הוגן ולכן מונע הרעבה.
הפילוסופים הסועדים - סיכום • המחשה לבעיות תזמון ותיאום בהקשר של עיבוד מקבילי • מספר תהליכים (פילוסופים) שרצים במקביל אך חולקים משאבים משותפים (צ'ופסטיקס).
אלגוריתם ה-Crosstalk • שני סוכנים מתקשרים על אותו ערוץ • הערוץ יציב כל עוד עוברת בו הודעה יחידה • כאשר שני הסוכנים מדברים בו זמנית – נוצר crosstalk (זליגה מקו לקו) • בכל תור סוכן אחד שולח הודעה לסוכן שני או שמזהים crosstalk
CROSSTALK – שלב 1 • הודעה מסוכן שמאל (L) אל סוכן ימין (R)
CROSSTALK – שלב 2 • תמיכה בהודעות בשני הצדדים • אם שני הסוכנים מנסים לשלוח הודעה בו זמנית – נוצר קיפאון
CROSSTALK – שלב 3 • אם שני הסוכנים מנסים לשלוח הודעה בו זמנית – נוצר קיפאון • נוסיף מעבר crosstalk עבור מצב זה • בעיה – ייתכן מצב בו מזוהה crosstalk באופן שגוי
CROSSTALK – פתרון • נוסיף מקום finished וכך נוודא כי כל סיבוב מסתיים בהתאמה בין שני הסוכנים
אלגוריתם ה-Crosstalk - סיכום • רשת אלמנטרית לתיאור תקשורת טורית בין שני רכיבים • האלגוריתם יודע לזהות התנגשות בתקשורת • אם נזהה מצב זה, הסוכנים יוכלו למשל לחזור על המסר כל אחד בתורו
רקע והיסטוריה • הגדרות • דוגמאות ושימושים • השוואה למודל אחר • סיכום השוואה מול מודל אחר
פטרי מול UML • שפת ה-UML (Unified Model Language) היא שפת מפרט להנדסת תכנה • מספקת תיאור גרפי מופשט של מערכת תכנה מונחית עצמים • בין השאר, מספקת דיאגרמת פעילות ששואבת אלמנטים מרשת פטרי • יתרון – מאפשר תיאור ויזואלי יעיל של תהליך עבודה • חסרון – סמנטיקה לא פורמלית לחלוטין • פתרון – עיצוב דיאגרמת UML ובדיקת נכונות ע"י המרה לרשת פטרי
רקע והיסטוריה • הגדרות • דוגמאות ושימושים • השוואה למודל אחר • סיכום סיכום
מודל רשת פטרי נותן לנו • הגדרה מתמטית מדויקת • סימון גרפי לתהליכים הכוללים • בחירה • איטרציות • פעולות מקבילות • תקשורת וסנכרון • תיאוריה מפותחת לניתוח תוצאות חישוב • Reachability Graph • ניתוח ביצועים • איתור בעיות