6.4.1. הבעיה והאלגוריתםבדיקת מודל מפורשת (Explicit model checking) היא אלגוריתם המבצע בדיקת מודל, העובד ישירות על הגרף - מבנה קריפקה. המודל M נתון באופן מפורש כייצוג של הגרף – וממומש לרוב כמטריצת סמיכויות או כרשימת בנים. האלגוריתם המפורש הוא קל להבנה, אך
בעייתי למימוש עקב "בעיית התפוצצות המצבים": במערכת בה כדי לפתור את בעיה זו נציג בהמשך 2 אלגוריתמים אחרים שהם אלגוריתמים סימבוליים – אנו נציג קידוד של המבנה M וגם של תוצאות הביניים המאפשר שימוש בפחות זכרון. האלגוריתם לבדיקת מודל CTL מטפל בנוסחאות מהצורה: תיאור כללי של האלגוריתם: נצרף לכל מצב
האלגוריתם עובד באיטרציות על תתי
הקבוצות של דוגמא לסדר הטיפול: עבור הנוסחה הבאה
בעמודים הבאים נציג מה הפירוש של
"טיפול בתת נוסחה בכל איטרציה האלגוריתם לסימון: צעד 0: נוסחאות אטומיות לכל סיבוכיות:
צעד
זה הוא היחיד שלא קשור לנוסחה נסמן כל מצב בנוסחאות האטומיות המספקות אותו. צעד 1: סימון
ב- לכל
סיבוכיות: סימון
ב- לכל סיבוכיות: סימון
ב- לכל מצב
פירוש: קיימת קשת מצומת האב לצומת אחר,
וגם מתקיים סיבוכיות האלגוריתם לסימון
ניסוח חלופי לאלגוריתם צעד-צעד להבהרת הפעולה:
האלגוריתם
מסתמך על השקילות הבאה: סיבוכיות האלגוריתם: הערות על האלגוריתם:
דוגמא: שלב ראשון: מסומנים
ב- שלב שני: האבות
שלהם: אנחנו לא מסמנים את שלב שלישי: האבות
של האבות: אנו לא מסמנים ולא מטפלים שוב במצבים
שכבר סומנו ( ולבסוף: מתקבל בסוף:
האלגוריתם
לסימון הגדרות: רכיב קשיר היטב: (SCC) – Strongly Connected Component הינו תת גרף C, שבו מכל צומת יש מסלול לכל צומת ב-C, דרך צמתים ב-C.
דוגמא:
האלגוריתם של Tarjan
מוצא את כל הרכיבים המקסימאליים בסיבוכיות נגדיר את המבנה המצומצם הבא: בהינתן
נסתמך על המשפט הבא: משפט:
המשפט מבטיח לנו שקיים מסלול אינסופי בו
מסתפק האלגוריתם עצמו:
אין תגובות!
|
תוכן העניינים:
קישורים רלוונטיים:שיתוף: |