SlideShare a Scribd company logo
1 of 45
תנאי נכונות ,[object Object],[object Object],[object Object],[object Object]
נכונות כל הרצפים רצף סיפוקים של הספציפיקציה ביצועים של התוכנית
אי - נכונות כל הרצפים רצף סיפוקים של הספציפיקציה ביצועים של התוכנית Counter Examples
אימות אוטומטי ( בספר :  פרק מס ' 6)
כיצד אנו יכולים לבדוק את המודל ? ,[object Object],[object Object],[object Object]
אילו תכונות אנו יכולים לבדוק ? ,[object Object],[object Object],[object Object]
כיצד לבצע את הבדיקה ? ,[object Object],[object Object],[object Object]
אם זה כל כך טוב ,  למה ללמוד שיטות אימות דדוקטיביות ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
התפוצצות מרחב המצבים ,[object Object],[object Object],[object Object],[object Object],[object Object]
אם זה כל כך מוגבל ,  האם יש בזה שימוש ? ,[object Object],[object Object],[object Object],[object Object]
Depth First Search ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
התחל ממצב התחלתי q 3 q 4 q 2 q 1 q 5 q 1 q 1 המחסנית : טבלת  HASH:
המשך עם הבא אחריו q 3 q 4 q 2 q 1 q 5 q 1   q 2 q 1 q 2 טבלת  HASH: המחסנית :
המשך עם הבן של  q 2. q 3 q 4 q 2 q 1 q 5 q 1   q 2  q 4 q 1 q 2 q 4 טבלת  HASH: המחסנית :
כיוון שאין בנים ל  q 4  ,  חזור חזרה ל   q 2. q 3 q 4 q 2 q 1 q 5 q 1   q 2   q 4 q 1 q 2 טבלת  HASH: המחסנית :
חזור חזרה ל  q 1 q 3 q 4 q 2 q 1 q 5 q 1   q 2   q 4 q 1 טבלת  HASH: המחסנית :
לך לבן השני של  q 1 q 3 q 4 q 2 q 1 q 5 q 1   q 2   q 4   q 3 q 1 q 3 טבלת  HASH: המחסנית :
חזור חזרה שוב ל  q 1 q 3 q 4 q 2 q 1 q 5 q 1   q 2   q 4   q 3 q 1 טבלת  HASH: המחסנית :
כיצד אנו יכולים לבדוק תכונות בעזרת  DFS? ,[object Object],[object Object],[object Object]
גרף המצבים :  יחס של ירושה בין מצבים . Turn=0 L0,L1 Turn=0 L0,NC1 Turn=0 NC0,L1 Turn=0 CR0,NC1 Turn=0 NC0,NC1 Turn=0 CR0,L1 Turn=1 L0,CR1 Turn=1 NC0,CR1 Turn=1 L0,NC1 Turn=1 NC0,NC1 Turn=1 NC0,L1 Turn=1 L0,L1
¬ ( PC0=CR0/C1=CR1) הוא  Invariant! Turn=0 L0,L1 Turn=0 L0,NC1 Turn=0 NC0,L1 Turn=0 CR0,NC1 Turn=0 NC0,NC1 Turn=0 CR0,L1 Turn=1 L0,CR1 Turn=1 NC0,CR1 Turn=1 L0,NC1 Turn=1 NC0,NC1 Turn=1 NC0,L1 Turn=1 L0,L1
רוצה לעשות עוד ! ,[object Object],[object Object],[object Object],[object Object]
[]( Turn=0    <> Turn=1 ) Turn=0 L0,L1 Turn=0 L0,NC1 Turn=0 NC0,L1 Turn=0 CR0,NC1 Turn=0 NC0,NC1 Turn=0 CR0,L1 Turn=1 L0,CR1 Turn=1 NC0,CR1 Turn=1 L0,NC1 Turn=1 NC0,NC1 Turn=1 NC0,L1 Turn=1 L0,L1
Turn=0 L0,L1 Turn=1 L0,L1 ,[object Object],[object Object],Turn=1 L0,L1 Turn=0 L0,L1 init
תנאי נכונות ,[object Object],[object Object],[object Object],[object Object]
נכונות כל הרצפים רצף סיפוקים של הספציפיקציה ביצועים של התוכנית
איך נוכיח נכונות ? ,[object Object],[object Object],[object Object],[object Object]
מה אנו צריכים לדעת ? ,[object Object],[object Object],[object Object]
חיתוך   M 1 =(S 1 ,  ,T 1 ,I 1 ,A 1 )  ו   M 2 =(S 2 ,  ,T 2 ,I 2 ,S 2 )  ,[object Object],[object Object],[object Object],[object Object],[object Object]
דוגמה  ( כל המצבים של האוטומט השני מקבלים !) a b c t 0 t 1 a a b,c b,c s 0 s 1 מצבים :  (s 0 ,t 0 ), (s 0 ,t 1 ), (s 1 ,t 0 ), (s 1 ,t 1 ) מקבלים :  (s 0 ,t 0 ), (s 0 ,t 1 )  התחלתי :  (s 0 ,t 0 )
a b c t 0 t 1 a a b,c b,c s 0 s 1 s 0 ,t 0 s 0 ,t 1 s 1 ,t 1 s 1 ,t 0 b b a c a c
מורכב יותר כאשר  A 2  S 2 a b c t 0 t 1 a a b,c b,c s 0 s 1 האם אמורה להיות לנו קבלה כאשר שני הרכיבים מקבלים ?  לדוגמה  {(s 0 ,t 1 )}  ? לא ,  ניקח  (ba)    הוא אמור לקבל ,  אך לעולם לא עובר למצב המקבל . s 0 ,t 0 s 0 ,t 1 s 1 ,t 1 b a c a c
מורכב יותר כאשר  A 2  S 2 a b c t 0 t 1 a a b,c b,c s 0 s 1 האם אמורה להיות לנו קבלה כאשר לפחות רכיב אחד מקבל ?  לדוגמה ,  {(s 0 ,t 0 ),(s 0 ,t 1 ),(s 1 ,t 1 )}  ? לא ,  ניקח  b c  הוא לא אמור לקבל ,  אך במקרה זה יבצע לולאה על  (s 1 ,t 1 ) s 0 ,t 0 s 0 ,t 1 s 1 ,t 1 b c a c a
חיתוך – מקרה כללי q 0 q 2 q 3 q 1 a a, c c c, b b c c b a q 0 ,q3 q 1 ,q 3 q 1 , q 2
גירסה  0:  לתפוס את  q 0 גירסה  1:  לתפוס את  q 1 q 0 ,q 3 q 1 ,q 3 q 1 , q 2 q 0 ,q 3 q 1 ,q 3 q 1 ,q 2 עובר כאשר רואה קבלה של השמאלי  ( q 0 ) עובר כאשר רואה קבלה של הימני  ( q 2 ) גירסה  0 גירסה  1 c c c c b a b a
גירסה  0:  לתפוס את  q 0 גירסה  1:  לתפוס את  q 1 q 0 ,q 3 q 1 ,q 3 q 1 , q 2 q 0 ,q 3 q 1 ,q 3 q 1 ,q 2 עובר כאשר רואה קבלה של השמאלי  ( q 0 ) עובר כאשר רואה קבלה של הימני  ( q 2 ) גירסה  0 גירסה  1 c c c c b a b a
צור מצב מקבל באחת הגירסאות על פי מצב מקבל של הרכיב q 0 ,q 3 ,0 q 1 ,q 3 ,0 q 1 ,q 2 ,0 q 0 ,q 3 ,1 q 1 ,q 3  ,1 q 1 ,q 2  ,1 c c c c b a b a גירסה  0 גירסה  1
כיצד נבדוק ריקנות  ( emptiness )? s 0 ,t 0 s 0 ,t 1 s 1 ,t 1 b a c a c
ריקנות  ( emptiness )... ,[object Object]
רכיב קשיר חזק  (SCC) ,[object Object],ניתן להשתמש באלג '  DFS   של  Tarjan   כדי למצוא את ה  SCC   המקסימלי .
מציאת ריצות מקבלות ,[object Object],[object Object],[object Object],[object Object]
בשקילות… ,[object Object]
כיצד להשלים ? ,[object Object],[object Object],[object Object],[object Object],[object Object]
בדיקת מודל תחת הוגנות ,[object Object],[object Object],Fair ( φ ) Bad (¬ ψ ) Program דוגמה נגדית
בדיקת מודל תחת הוגנות ,[object Object],[object Object],[object Object]

More Related Content

Similar to Lecture5 Slides

סיכום הקורס בחישוביות ומורכבות החישובים
סיכום הקורס בחישוביות ומורכבות החישוביםסיכום הקורס בחישוביות ומורכבות החישובים
סיכום הקורס בחישוביות ומורכבות החישוביםcsnotes
 
סיכום הקורס בחישוביות
סיכום הקורס בחישוביותסיכום הקורס בחישוביות
סיכום הקורס בחישוביותcsnotes
 
גרפים מקריים רגולריים
גרפים מקריים רגולרייםגרפים מקריים רגולריים
גרפים מקריים רגולרייםDalya Gartzman
 
צביעה של גרפים מקריים
צביעה של גרפים מקרייםצביעה של גרפים מקריים
צביעה של גרפים מקרייםDalya Gartzman
 

Similar to Lecture5 Slides (6)

סיכום הקורס בחישוביות ומורכבות החישובים
סיכום הקורס בחישוביות ומורכבות החישוביםסיכום הקורס בחישוביות ומורכבות החישובים
סיכום הקורס בחישוביות ומורכבות החישובים
 
סיכום הקורס בחישוביות
סיכום הקורס בחישוביותסיכום הקורס בחישוביות
סיכום הקורס בחישוביות
 
Recitation01.pptx
Recitation01.pptxRecitation01.pptx
Recitation01.pptx
 
גרפים מקריים רגולריים
גרפים מקריים רגולרייםגרפים מקריים רגולריים
גרפים מקריים רגולריים
 
צביעה של גרפים מקריים
צביעה של גרפים מקרייםצביעה של גרפים מקריים
צביעה של גרפים מקריים
 
ההה מבחן
ההה   מבחןההה   מבחן
ההה מבחן
 

Lecture5 Slides

  • 1.
  • 2. נכונות כל הרצפים רצף סיפוקים של הספציפיקציה ביצועים של התוכנית
  • 3. אי - נכונות כל הרצפים רצף סיפוקים של הספציפיקציה ביצועים של התוכנית Counter Examples
  • 4. אימות אוטומטי ( בספר : פרק מס ' 6)
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12. התחל ממצב התחלתי q 3 q 4 q 2 q 1 q 5 q 1 q 1 המחסנית : טבלת HASH:
  • 13. המשך עם הבא אחריו q 3 q 4 q 2 q 1 q 5 q 1 q 2 q 1 q 2 טבלת HASH: המחסנית :
  • 14. המשך עם הבן של q 2. q 3 q 4 q 2 q 1 q 5 q 1 q 2 q 4 q 1 q 2 q 4 טבלת HASH: המחסנית :
  • 15. כיוון שאין בנים ל q 4 , חזור חזרה ל q 2. q 3 q 4 q 2 q 1 q 5 q 1 q 2 q 4 q 1 q 2 טבלת HASH: המחסנית :
  • 16. חזור חזרה ל q 1 q 3 q 4 q 2 q 1 q 5 q 1 q 2 q 4 q 1 טבלת HASH: המחסנית :
  • 17. לך לבן השני של q 1 q 3 q 4 q 2 q 1 q 5 q 1 q 2 q 4 q 3 q 1 q 3 טבלת HASH: המחסנית :
  • 18. חזור חזרה שוב ל q 1 q 3 q 4 q 2 q 1 q 5 q 1 q 2 q 4 q 3 q 1 טבלת HASH: המחסנית :
  • 19.
  • 20. גרף המצבים : יחס של ירושה בין מצבים . Turn=0 L0,L1 Turn=0 L0,NC1 Turn=0 NC0,L1 Turn=0 CR0,NC1 Turn=0 NC0,NC1 Turn=0 CR0,L1 Turn=1 L0,CR1 Turn=1 NC0,CR1 Turn=1 L0,NC1 Turn=1 NC0,NC1 Turn=1 NC0,L1 Turn=1 L0,L1
  • 21. ¬ ( PC0=CR0/C1=CR1) הוא Invariant! Turn=0 L0,L1 Turn=0 L0,NC1 Turn=0 NC0,L1 Turn=0 CR0,NC1 Turn=0 NC0,NC1 Turn=0 CR0,L1 Turn=1 L0,CR1 Turn=1 NC0,CR1 Turn=1 L0,NC1 Turn=1 NC0,NC1 Turn=1 NC0,L1 Turn=1 L0,L1
  • 22.
  • 23. []( Turn=0  <> Turn=1 ) Turn=0 L0,L1 Turn=0 L0,NC1 Turn=0 NC0,L1 Turn=0 CR0,NC1 Turn=0 NC0,NC1 Turn=0 CR0,L1 Turn=1 L0,CR1 Turn=1 NC0,CR1 Turn=1 L0,NC1 Turn=1 NC0,NC1 Turn=1 NC0,L1 Turn=1 L0,L1
  • 24.
  • 25.
  • 26. נכונות כל הרצפים רצף סיפוקים של הספציפיקציה ביצועים של התוכנית
  • 27.
  • 28.
  • 29.
  • 30. דוגמה ( כל המצבים של האוטומט השני מקבלים !) a b c t 0 t 1 a a b,c b,c s 0 s 1 מצבים : (s 0 ,t 0 ), (s 0 ,t 1 ), (s 1 ,t 0 ), (s 1 ,t 1 ) מקבלים : (s 0 ,t 0 ), (s 0 ,t 1 ) התחלתי : (s 0 ,t 0 )
  • 31. a b c t 0 t 1 a a b,c b,c s 0 s 1 s 0 ,t 0 s 0 ,t 1 s 1 ,t 1 s 1 ,t 0 b b a c a c
  • 32. מורכב יותר כאשר A 2  S 2 a b c t 0 t 1 a a b,c b,c s 0 s 1 האם אמורה להיות לנו קבלה כאשר שני הרכיבים מקבלים ? לדוגמה {(s 0 ,t 1 )} ? לא , ניקח (ba)  הוא אמור לקבל , אך לעולם לא עובר למצב המקבל . s 0 ,t 0 s 0 ,t 1 s 1 ,t 1 b a c a c
  • 33. מורכב יותר כאשר A 2  S 2 a b c t 0 t 1 a a b,c b,c s 0 s 1 האם אמורה להיות לנו קבלה כאשר לפחות רכיב אחד מקבל ? לדוגמה , {(s 0 ,t 0 ),(s 0 ,t 1 ),(s 1 ,t 1 )} ? לא , ניקח b c  הוא לא אמור לקבל , אך במקרה זה יבצע לולאה על (s 1 ,t 1 ) s 0 ,t 0 s 0 ,t 1 s 1 ,t 1 b c a c a
  • 34. חיתוך – מקרה כללי q 0 q 2 q 3 q 1 a a, c c c, b b c c b a q 0 ,q3 q 1 ,q 3 q 1 , q 2
  • 35. גירסה 0: לתפוס את q 0 גירסה 1: לתפוס את q 1 q 0 ,q 3 q 1 ,q 3 q 1 , q 2 q 0 ,q 3 q 1 ,q 3 q 1 ,q 2 עובר כאשר רואה קבלה של השמאלי ( q 0 ) עובר כאשר רואה קבלה של הימני ( q 2 ) גירסה 0 גירסה 1 c c c c b a b a
  • 36. גירסה 0: לתפוס את q 0 גירסה 1: לתפוס את q 1 q 0 ,q 3 q 1 ,q 3 q 1 , q 2 q 0 ,q 3 q 1 ,q 3 q 1 ,q 2 עובר כאשר רואה קבלה של השמאלי ( q 0 ) עובר כאשר רואה קבלה של הימני ( q 2 ) גירסה 0 גירסה 1 c c c c b a b a
  • 37. צור מצב מקבל באחת הגירסאות על פי מצב מקבל של הרכיב q 0 ,q 3 ,0 q 1 ,q 3 ,0 q 1 ,q 2 ,0 q 0 ,q 3 ,1 q 1 ,q 3 ,1 q 1 ,q 2 ,1 c c c c b a b a גירסה 0 גירסה 1
  • 38. כיצד נבדוק ריקנות ( emptiness )? s 0 ,t 0 s 0 ,t 1 s 1 ,t 1 b a c a c
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.

Editor's Notes

  1. 21