Transcript הרצאה 5
Local Search
1
מה שונה בחיפוש לוקלי?
IDA* ו * Aמחפשים מסלול הכי זול אל המטרה
לפעמים בעיית החיפוש היא אחרת:
נתון תיאור של המטרה
עלינו למצוא מצב שמתאים לתיאור זה
המסלולים שאנחנו רואים בתהליך החיפוש אינם חשובים
במקרים אלו ניתן להשתמש בחיפוש לוקלי
דוגמה:
איך לחבר לוח זמנים במכון לב ,כך שלא תהיינה סתירות
תיאור של מטרה:
לכל הרצאה\מעבדה יש חדר ומועד
בכל נקודת זמן יש לכל היותר הרצאה\מעבדה אחת בכל חדר
אף מרצה\מתרגל\סטודנט לא יכול להיות בשני חדרים בו-זמנית
מצב :השמה של חדר ומועד לכל ההרצאות ולכל המעבדות
שימו לב שלא מעניין אותנו המסלול (כלומר ,כיצד הגענו למטרה)
2
כיצד חיפוש לוקלי פועל
חיפוש לוקלי פועל באופן הבא:
מתחילים ממצב כלשהוא
מנסים לשפר את המצב כדי שהוא יהיה יותר דומה למצב המטרה
השיפורים האלו הם "תיקונים מקומיים"
יתרונות של חיפוש לוקלי:
חסכוני בזיכרון
לפעמים אפשר לפתור מהר מאד בעיות ש * IDAו * Aהיו דורשים
זמן רב לפתור
3
מה נלמד על חיפוש לוקלי
היום נלמד שני אלגוריתמים לחיפוש לוקלי:
( Hill-Climbing טיפוס גבעה)
Simulated Annealing
4
5
הרעיון של חיפוש Hill-Climbing
נדמיין לעצמנו שהמטרה שלנו היא לטפס לראש הגבעה
רק יש בעיה אחת :יש ערפל סמיך ואי אפשר לראות מאומה
הדבר היחיד שאנחנו יכולים לעשות זה לגעת בקרקע סביבנו כדי
להבין באיזה כיוון יש עליה ובאיזה כיוון יש ירידה
6
חיפוש – Hill-Climbingאלגוריתם בסיסי
7
דוגמה :בעיית שמונה מלכות
יש למקם שמונה מלכות שחמט על לוח שחמט כך שאף אחת
מהן לא תאיים על חברותיה
8אפשר לנסות לפתור את הבעיה לבד:
http://www.brainmetrix.com/8-queens/
הפעלת Hill-Climbingעבור בעיית שמונה מלכות
מצב התחלתי :נשים כל מלכה בעמודה שונה
כל פעם ננסה להזיז מלכה אחת לשורה אחרת באותה עמודה
כמה מהלכים כאלו קיימים?
יוריסטיקה :כמה זוגות מלכות מאיימות זו על זו
דוגמה של היוריסטיקה והמהלכים:
יוריסטיקה בדוגמה זאת מציגה מרחק מהגובה של ראש הגבעה
h=17
9
הפעלת Hill-Climbingעבור בעיית שמונה מלכות
בתמונות הבאות נראה פתרון של בעיית ארבע מלכות עד הסוף
10
האם Hill-Climbingבסיסי תמיד פותר?
האם חיפוש Hill-Climbingבסיסי תמיד פותר את הבעיה?
לא!
אחת הבעיות היא שלפעמים מגיעים למצב כזה:
h=1
אין אפשרות לשפר מצב זה
11מצב כזה נקרא מקסימום לוקלי ()local maximum
חסרונות של חיפוש Hill-Climbing
הוסבר בהרצאה:
בנוסף ,לפעמים מספר המהלכים (פקטור הסתעפות ,זוכרים?)
הוא גדול מדי ואין אפשרות למצוא כיוון לעליה מהירה ביותר
לכן מחקר רב הוקדש לפיתוח גרסאות יותר מתוחכמות של
Hill-Climbing
עכשיו נראה מספר פתרונות לחסרונות הנ"ל
12
מקסימום לוקלי וכתף
אפשר לנסות מהלכים שאינם מעלים אותנו
לדוגמה ,בבעיית שמונה מלכות ,אפשר לנסות מהלכים שלא גורמים
ליוריסטיקה להיות קטנה יותר
מהלכים כאלו נקראים אופקיים
זה פותר את בעיית הכתף ,אבל לא תמיד
Hill-Climbing with Random Restart
כל פעם כשלא יכולים לשפר את המצב ,מתחילים מחדש ממצב אקראי
אפשר גם לאתחל אחרי זמן מסוים (כלומר ,אחרי שניסינו מספר מסוים
של מהלכים אופקיים)
אלגוריתם זה הוא פתרון מצוין עבור בעיית המלכות
אפילו את בעיית -3,000,000מלכות אפשר לפתור בפחות מדקה
אבל עדיין אין גרסה שתתאים לכל הבעיות
13
פקטור הסתעפות גבוה
First Choice Hill-Climbing הנו אפקטיבי כשיש הרבה
מהלכים (פקטור הסתעפות גדול) ואין אפשרות למצוא את
המהלך המשפר את המצב בצורה הגדולה ביותר
אז אפשר לייצר מהלכים באופן אקראי
אנחנו בוחרים במהלך הראשון שמביא למצב טוב יותר מהמצב
הנוכחי
אפשר גם למצוא מספר מהלכים כאלו ואז לבחור את הטוב ביותר
מביניהם
14
15
חיפוש Simulated Annealing
האלגוריתם מנסה גם את המהלכים ה"גרועים"
אבל ההסתברות של מהלך כזה תקטן עם הזמן
מכנים את
16
ההסתברות (כאן אנו מפשטים) חום (המושג בא מתחום ממטלורגיה)
הערות סיכום על Simulated Annealing
Simulated Annealing הנו אלגוריתם מצוין שהשתמשו בו
בהצלחה לצורכי:
חיבור לו"ז של טיסות
תכנון ( VLSIאיך לשים אלפי רכיבים וביניהם חיבורים בשבב אחד)
חשוב להבין ש Simulated Annealingלא מבטיח שנמצא
מקסימום גלובלי
17
Constraint-Satisfaction Problems (CSP)
18
CSPבכלליות
IDA* ו * Aפתרו בעיות על ידי ייצור מצבים (בסדר מסוים)
ובדיקה האם המצב הנוכחי הוא המטרה
אלגוריתמים אלו לא התייחסו למבנה פנימי של כל מצב
כל מה שעניין את האלגוריתם היה מחיר של המצב
בבעיות סיפוק אילוצים ( Constraint Satisfaction
)Problems, CSPאנו משתמשים בייצוג סטנדרטי של מצבים
זה מאפשר לאלגוריתם הפותר )CSP solver( CSPלהשתמש
במידע על מצבים כדי לחתוך ענפים גדולים של עץ החיפוש
19
הגדרה של CSP
בעיית CSPמורכבת משלושה מרכיבים:
קבוצת המשתנים )X=(X1,X2,…,Xn
לכל משתנה Xiיש תחום – Diקבוצה של ערכים שהמשתנה
יכול לקבל
רשימת אילוצים
אילוצים יכולים להיות עבור אחד ,שניים או יותר משתנים
דוגמאות:
20
X1≥5
X2+10≠X10
X1+X2≤X3
דוגמת :CSPבעיית coloring
נתונה מפה של אוסטרליה עם שבע הטריטוריות שלה
הבעיה היא לשים אחד משלושה צבעים :אדום ,ירוק וכחול לכל
טריטוריה ,כך ששתי טריטוריות שכנות תמיד יקבלו צבעים
שונים
21
coloring בעיית:CSP דוגמת
X={WA, NT, Q, NSW, V, SA, T} : קבוצת המשתנים
{red, green, blue} לכל משתנה יש תחום
C={SA≠WA, SA ≠NT, SA ≠Q, SA ≠NSW, : אילוצים
SA ≠V, WA ≠NT, NT ≠Q, Q ≠NSW, NSW ≠V}
22
מה אנחנו מרוויחים\מפסידים כשמשתמשים ב CSP
יתרונות:
אלגוריתם הפותר CSPהנו כללי
כלומר ,אנחנו צריכים לייצג את הבעיה שלנו במושגים של ( CSPמשתנים עם
תחומים ,אילוצים)
אין צורך במימוש תוכנה עבור הבעיה הספציפית
אלגוריתם הפותר CSPיכול להיות מהיר יותר מאלגוריתם חיפוש אחר
דוגמה :אם אלגוריתם הפותר CSPמנסה צבע כחול עבור ,SAאז הוא לא
ינסה כחול עבור השכנות שלו .עבורם יישארו 25=32קומבינציות לנסות
במקום 35=243
מפסידים:
שימוש ביוריסטיקות עבור הבעיה הספציפית
23
24
) (גישוש נסוגBacktracking Search
25
Backtracking דוגמת
26
Backtracking דוגמת
27
Backtracking דוגמת
28
Backtracking דוגמת
29
Backtracking Search
30
משפרי ביצוע בחיפוש Backtracking
משפרי ביצוע בחיפוש Backtrackingקשורות לשאלה:
מה הוא האופן לבצע שלוש דברים באלגוריתם כדי למצוא
פתרון מהיר עד כמה שניתן:
– SELECT_UNUSIGNED_VARIABLE .1לאיזה משתנה
לשים ערך
דרך טובה אחת היא )– Minimum remaining values (MRV
לבחור משתנה בעל תחום נוכחי קטן ביותר
בחירה
ברורה
31
שני
משתנים
שקולים
כולם
שקולים
) (גישוש נסוגBacktracking Search
32
משפרי ביצוע בחיפוש Backtracking
משפרי ביצוע בחיפוש Backtrackingקשורות לשאלה:
מה הוא האופן לבצע שלוש דברים באלגוריתם כדי למצוא
פתרון מהיר עד כמה שניתן:
– ORDER_DOMAIN_VALUES .2באיזה סדר לנסות את
הערכים עבור המשתנה שבחרנו
דרך אחת טובה היא ) – Least Constrained Value (LCVלבחור
ערך שגורם למספר אילוצים הקטן ביותר עבור המשתנים הנשארים
קיימת בחירה אחד
עבור SA
אין שום בחירה
עבור SA
33
) (גישוש נסוגBacktracking Search
34
משפרי ביצוע בחיפוש Backtracking
משפרי ביצוע בחיפוש Backtrackingקשורות לשאלה:
מה הוא האופן לבצע שלוש דברים באלגוריתם כדי למצוא
פתרון מהיר עד כמה שניתן:
– BACKTRACK .3ערך של איזה משתנה לשנות?
35
כנראה שזה צריך להיות משתנה שתרם לבעיה
העברת אילוצים
36
העברת אילוצים
נתבונן בדוגמה :אם SAמקבלת
"כחול" ,אזי השכנות שלה יכולות
לקבל רק אדום וירוק
כלומר ,התחומים שלהם נהיו קטנים יותר
העברת אילוצים (Constraint
)Propagation, CPהנה טכניקת
הקטנת התחומים של המשתנים בעזרת
שימוש באילוצים הקיימים
CP מייצרת בעיית CSPקלה יותר
לפתור בעלת משתנים ופתרונות כמו
בבעיה המקורית
נלמד כמה סוגים של CP
37
גרף האילוצים
השקופית הזו והשקופית הבאה הן הכנה ללמוד על CP
גרף האילוצים הנו ייצוג גרפי של משתנים ואילוצים של אחד או
של שני משתנים
קדקודים מקבילים למשתנים וקשתות מקבילות לאילוצים :יש
קשת בין שני קדקודים עם יש אילוץ עבור קדקודים אלו
דוגמה:
38
תכונה של CSPלגבי אילוצים של שני משתנים
כל בעיית CSPאפשר לתרגם לבעיית CSPאחרת
(יכולה להיות קבוצת משתנים אחרת) ,כך ש:
בבעיית CSPהחדשה יש רק אילוצים של אחד או שני
משתנים
בהינתן פתרון לבעיית CSPהחדשה ,קל לחשב פתרון
לבעיית CSPהמקורית
39
:CPעקביות קדקודים
עקביות קדקודים ( )node consistencyהנו
טכניקת CPשפועלת באופן הבא:
40
עבור כל אילוץ של משתנה אחד ,יש להקטין את תחום המשתנה
כך שיישארו רק ערכים שמתאימים לאילוץ
דוגמה :אם אנשים ב SAלא אוהבים צבע אדום ,אזי קיים
אילוץ }{SA≠red
אנחנו יכולים להקטין את תחום :SA
}DSA={green, blue
:CPעקביות קשתות
עקביות קשתות ( )arc consistencyהנו טכניקת
CPשפועלת באופן הבא:
עבור כל אילוץ של שני משתנים ,יש להקטין את תחום שניהם ,כך
שעבור כל ערך של משתנה אחד יהיה לפחות ערך אחד אפשרי
(עקבי עם האילוץ) של המשתנה השני
דוגמה:
41
קיימים משתנים Xו Yעם אותו התחום }{0, 1, 2, …, 10
קיים אילוץ Y=X2
בעזרת arc consistencyנוכל להקטין את תחומי המשתנים:
}DX={0,1,2,3
}DY={0,1,4,9
מתי מבצעים ?CP
קיימות שתי אפשרויות לגבי נקודת הביצוע של
:CP
לפני תחילת החיפוש (בעזרת האלגוריתם שנראה
בשקופית הבאה)
לפעמים הבעיה נפתרת בצורה זו ואין צורך בחיפוש
כלומר ,לכל משתנה אפשר לשים כל ערך מהתחום שלו
המוקטן על ידי ביצוע CPוהשמה זאת תהיה עקבית עם כל
האילוצים
במקביל לחיפוש Backtracking
42
מיד אחרי השורה:
סיכום על CSP
CSP הנו סוג בעיית חיפוש:
מגדירים קבוצת משתנים עם תחום עבור כל משתנה
מגדירים רשימת אילוצים
בעיית CSPניתן לפתור בעזרת חיפוש Backtrackingאו
בעזרת חיפוש לוקלי
עם משתמשים ב ,Backtrackingאזי CSPמאפשר
constraint propagationועוד כמה שיפורים בעלי
עוצמה
43
44
דוגמה נוספת של :CSPבעיית Job-Shop Scheduling
תרגום של job shopב :morfix.co.il
מערך ייצור המתמחה במוצרים ייעודיים ,לפי דרישות ספציפיות של
לקוחות
בעיית תכנון של מתלות .נראה דוגמה :הרכבת מכונית (חלק קטן)
הבעיה:
יש להרכיב גלגלים של רכב חדש:
45
צירים ( 10דק' ,)2 xכל ציר לוקח 10דקות להרכיב
גלגלים ( 1דק' ,)4 x
אומים ( 2דק' ( )4 xתחת הנחה שכל אומים של גלגל אחד עושים בבת אחת)
צלחות ( 1דק' )4 x
בקורת ( 3דק' )1 x
צריך לגמור הרכבה תוך 30דקות
יש 4עובדים המרכיבים את הצירים ,אבל הם משתמשים בכלי אחד
המשך דוגמה בעיית Job-Shop Scheduling
משתנים :זמן התחלה של כל שלב הרכבה.
תחומים:
לכל המשתנים יש אותו תחום:
אילוצים:
ציר לפני גלגלים:
כלי אחד עבור הרכבת הצירים:
גלגל לפני אומים ,אומים לפני צלחות:
46
ביקורת אחרון:
עבור כל שלב Xשדורש dXדק'