הרצאה 5
Transcription
הרצאה 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דק'