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


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


וגם נתון BDD
עבור
(שמייצג
), אזי נחזיר את ה-BDD
המתקבלת מהפעלת פעולת
על
.
וגם נתון BDD
עבור
(שמייצג
).
:![plot:$f\left( {\bar v} \right) = \exists \bar
v'\left[ {{f_1}\left( {\bar v'} \right) \wedge R\left( {\bar v,\bar v'}
\right)} \right]$](/documentResources/326/plot_1677.png)
.
. האופרטור יוגדר כך:
. מביא את כל האבות של מצבים המקיימים
.
וכן אופרטורים אחרים באותו הרעיון.
. הטיפול במקרה זה יהיה
באופן הבא: מתחילים מקבוצת המצבים שבמרחק 0 ממצבים שמספקים את
. באופן איטרטיבי עולים כל פעם רמה למעלה, בתחילה אל מצבים
במרחק 1 ממצבים המספקים את
וכך הלאה, עד ליצירת כל קבוצת המצבים המבוקשת.
בכל פעם נאסוף את כל האבות בהם אנו נתקלים בדרך.
:
על BDD נותנת איחוד של קבוצות.
היא נקודת שבת של פונקציה
אם
. במקרה שלנו אנחנו מתחילים
מקבוצת ממצבים ומוסיפים מצבים עד שלא ניתן להוסיף יותר. מאפיין חשוב של נקודת השבת
הקטנה ביותר: מתחילים מקבוצה ריקה ומוסיפים איברים עד אשר אי אפשר להוסיף יותר.
כשאי אפשר להוסיף איברים הגענו לנקודת השבת.
.
:![plot:\[\begin{gathered}
Q: = \emptyset \hfill \\
Q': = {f_2}\left( {\bar v} \right) \hfill \\
{\text{while }}Q \ne Q'{\text{ do}} \hfill \\
& Q: = Q' \hfill \\
& Q'\left( {\bar v} \right) = Q\left( {\bar v} \right) \vee \left(
{EXQ\left( {\bar v} \right) \wedge {f_1}\left( {\bar v} \right)} \right)
\hfill \\
{\text{end while}} \hfill \\
f\left( {\bar v} \right) = Q\left( {\bar v} \right) \hfill \\
\end{gathered} \]](/documentResources/326/plot_221.png)
![plot:\[Q'\left(
{\bar v} \right) = Q\left( {\bar v} \right) \vee \left( {EXQ\left( {\bar v}
\right) \wedge {f_1}\left( {\bar v} \right)} \right)\]](/documentResources/326/plot_222.png)
זוהי קבוצת המצבים שחושבו עד
כה.
זוהי קבוצת המצבים שיש להם בן בקבוצה
והם עצמם מספקים את
.
(נתונים על ידי
). נזרוק צמתים שכל הבנים שלו מספקים את
ואז בסריקה אחורנית נזרוק צמתים שזרקנו בן שלהם.![plot:\[\begin{gathered}
Q: = S\left( {\bar v} \right) \hfill \\
Q': = {f_1}\left( {\bar v} \right) \hfill \\
{\text{while }}Q \ne Q'{\text{ do}} \hfill \\
& Q: = Q' \hfill \\
& Q' = EXQ \wedge Q \hfill \\
{\text{end while}} \hfill \\
f\left( {\bar v} \right) = Q\left( {\bar v} \right) \hfill \\
\end{gathered} \]](/documentResources/326/plot_227.png)
.
נשאר בקבוצה בסוף התהליך.
ושל 



