Download presentation
Presentation is loading. Please wait.
1
חיפוש לוקלי Local Search
2
מה שונה בחיפוש לוקלי? *IDA ו *A מחפשים מסלול הכי זול אל המטרה
לפעמים בעיית החיפוש היא אחרת: נתון תיאור של המטרה עלינו למצוא מצב שמתאים לתיאור זה המסלולים שאנחנו רואים בתהליך החיפוש אינם חשובים במקרים אלו ניתן להשתמש בחיפוש לוקלי דוגמה: איך לחבר לוח זמנים במכון לב, כך שלא תהיינה סתירות תיאור של מטרה: לכל הרצאה\מעבדה יש חדר ומועד בכל נקודת זמן יש לכל היותר הרצאה\מעבדה אחת בכל חדר אף מרצה\מתרגל\סטודנט לא יכול להיות בשני חדרים בו-זמנית מצב: השמה של חדר ומועד לכל ההרצאות ולכל המעבדות שימו לב שלא מעניין אותנו המסלול (כלומר, כיצד הגענו למטרה)
3
כיצד חיפוש לוקלי פועל חיפוש לוקלי פועל באופן הבא:
מתחילים ממצב כלשהוא מנסים לשפר את המצב כדי שהוא יהיה יותר דומה למצב המטרה השיפורים האלו הם "תיקונים מקומיים" יתרונות של חיפוש לוקלי: חסכוני בזיכרון לפעמים אפשר לפתור מהר מאד בעיות ש *IDA ו *A היו דורשים זמן רב לפתור
4
מה נלמד על חיפוש לוקלי היום נלמד שני אלגוריתמים לחיפוש לוקלי:
Hill-Climbing (טיפוס גבעה) Simulated Annealing
5
Hill-Climbing Search
6
הרעיון של חיפוש Hill-Climbing
נדמיין לעצמנו שהמטרה שלנו היא לטפס לראש הגבעה רק יש בעיה אחת: יש ערפל סמיך ואי אפשר לראות מאומה הדבר היחיד שאנחנו יכולים לעשות זה לגעת בקרקע סביבנו כדי להבין באיזה כיוון יש עליה ובאיזה כיוון יש ירידה
7
חיפוש Hill-Climbing – אלגוריתם בסיסי
8
דוגמה: בעיית שמונה מלכות
יש למקם שמונה מלכות שחמט על לוח שחמט כך שאף אחת מהן לא תאיים על חברותיה אפשר לנסות לפתור את הבעיה לבד:
9
הפעלת Hill-Climbing עבור בעיית שמונה מלכות
מצב התחלתי: נשים כל מלכה בעמודה שונה כל פעם ננסה להזיז מלכה אחת לשורה אחרת באותה עמודה כמה מהלכים כאלו קיימים? יוריסטיקה: כמה זוגות מלכות מאיימות זו על זו דוגמה של היוריסטיקה והמהלכים: יוריסטיקה בדוגמה זאת מציגה מרחק מהגובה של ראש הגבעה h=17
10
הפעלת Hill-Climbing עבור בעיית שמונה מלכות
בתמונות הבאות נראה פתרון של בעיית ארבע מלכות עד הסוף
11
האם Hill-Climbing בסיסי תמיד פותר?
לא! אחת הבעיות היא שלפעמים מגיעים למצב כזה: אין אפשרות לשפר מצב זה מצב כזה נקרא מקסימום לוקלי (local maximum) h=1
12
חסרונות של חיפוש Hill-Climbing
הוסבר בהרצאה: בנוסף, לפעמים מספר המהלכים (פקטור הסתעפות, זוכרים?) הוא גדול מדי ואין אפשרות למצוא כיוון לעליה מהירה ביותר לכן מחקר רב הוקדש לפיתוח גרסאות יותר מתוחכמות של Hill-Climbing עכשיו נראה מספר פתרונות לחסרונות הנ"ל
13
מקסימום לוקלי וכתף אפשר לנסות מהלכים שאינם מעלים אותנו
לדוגמה, בבעיית שמונה מלכות, אפשר לנסות מהלכים שלא גורמים ליוריסטיקה להיות קטנה יותר מהלכים כאלו נקראים אופקיים זה פותר את בעיית הכתף, אבל לא תמיד Hill-Climbing with Random Restart כל פעם כשלא יכולים לשפר את המצב, מתחילים מחדש ממצב אקראי אפשר גם לאתחל אחרי זמן מסוים (כלומר, אחרי שניסינו מספר מסוים של מהלכים אופקיים) אלגוריתם זה הוא פתרון מצוין עבור בעיית המלכות אפילו את בעיית 3,000,000-מלכות אפשר לפתור בפחות מדקה אבל עדיין אין גרסה שתתאים לכל הבעיות
14
פקטור הסתעפות גבוה First Choice Hill-Climbing הנו אפקטיבי כשיש הרבה מהלכים (פקטור הסתעפות גדול) ואין אפשרות למצוא את המהלך המשפר את המצב בצורה הגדולה ביותר אז אפשר לייצר מהלכים באופן אקראי אנחנו בוחרים במהלך הראשון שמביא למצב טוב יותר מהמצב הנוכחי אפשר גם למצוא מספר מהלכים כאלו ואז לבחור את הטוב ביותר מביניהם
15
Simulated Annealing Search
16
חיפוש Simulated Annealing
האלגוריתם מנסה גם את המהלכים ה"גרועים" אבל ההסתברות של מהלך כזה תקטן עם הזמן מכנים את ההסתברות (כאן אנו מפשטים) חום (המושג בא מתחום ממטלורגיה)
17
הערות סיכום על Simulated Annealing
חיבור לו"ז של טיסות תכנון VLSI (איך לשים אלפי רכיבים וביניהם חיבורים בשבב אחד) חשוב להבין ש Simulated Annealing לא מבטיח שנמצא מקסימום גלובלי
18
Constraint-Satisfaction Problems (CSP)
בעיות סיפוק אילוצים Constraint-Satisfaction Problems (CSP)
19
CSP בכלליות *IDA ו *A פתרו בעיות על ידי ייצור מצבים (בסדר מסוים) ובדיקה האם המצב הנוכחי הוא המטרה אלגוריתמים אלו לא התייחסו למבנה פנימי של כל מצב כל מה שעניין את האלגוריתם היה מחיר של המצב בבעיות סיפוק אילוצים (Constraint Satisfaction Problems, CSP) אנו משתמשים בייצוג סטנדרטי של מצבים זה מאפשר לאלגוריתם הפותר CSP (CSP solver) להשתמש במידע על מצבים כדי לחתוך ענפים גדולים של עץ החיפוש
20
הגדרה של CSP בעיית CSP מורכבת משלושה מרכיבים:
קבוצת המשתנים X=(X1,X2,…,Xn) לכל משתנה Xi יש תחום Di – קבוצה של ערכים שהמשתנה יכול לקבל רשימת אילוצים אילוצים יכולים להיות עבור אחד, שניים או יותר משתנים דוגמאות: X1≥5 X2+10≠X10 X1+X2≤X3
21
דוגמת CSP: בעיית coloring
נתונה מפה של אוסטרליה עם שבע הטריטוריות שלה הבעיה היא לשים אחד משלושה צבעים: אדום, ירוק וכחול לכל טריטוריה, כך ששתי טריטוריות שכנות תמיד יקבלו צבעים שונים
22
דוגמת CSP: בעיית coloring
קבוצת המשתנים: 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}
23
מה אנחנו מרוויחים\מפסידים כשמשתמשים ב CSP
יתרונות: אלגוריתם הפותר CSP הנו כללי כלומר, אנחנו צריכים לייצג את הבעיה שלנו במושגים של CSP (משתנים עם תחומים, אילוצים) אין צורך במימוש תוכנה עבור הבעיה הספציפית אלגוריתם הפותר CSP יכול להיות מהיר יותר מאלגוריתם חיפוש אחר דוגמה: אם אלגוריתם הפותר CSP מנסה צבע כחול עבור SA, אז הוא לא ינסה כחול עבור השכנות שלו. עבורם יישארו 25=32 קומבינציות לנסות במקום 35=243 מפסידים: שימוש ביוריסטיקות עבור הבעיה הספציפית
24
The Backtracking Search Algorithm
25
(גישוש נסוג)Backtracking Search
26
דוגמתBacktracking
27
דוגמתBacktracking
28
דוגמתBacktracking
29
דוגמתBacktracking
30
Backtracking Search
31
משפרי ביצוע בחיפוש Backtracking
VARIABLE_UNUSIGNED_SELECT – לאיזה משתנה לשים ערך דרך טובה אחת היא Minimum remaining values (MRV) – לבחור משתנה בעל תחום נוכחי קטן ביותר שני משתנים שקולים כולם שקולים בחירה ברורה
32
(גישוש נסוג)Backtracking Search
33
משפרי ביצוע בחיפוש Backtracking
VALUES_DOMAIN_ORDER – באיזה סדר לנסות את הערכים עבור המשתנה שבחרנו דרך אחת טובה היא Least Constrained Value (LCV) – לבחור ערך שגורם למספר אילוצים הקטן ביותר עבור המשתנים הנשארים קיימת בחירה אחד עבור SA אין שום בחירה עבור SA
34
(גישוש נסוג)Backtracking Search
35
משפרי ביצוע בחיפוש Backtracking
כנראה שזה צריך להיות משתנה שתרם לבעיה
36
Constraint Propagation
העברת אילוצים
37
העברת אילוצים נתבונן בדוגמה: אם SA מקבלת "כחול", אזי השכנות שלה יכולות לקבל רק אדום וירוק כלומר, התחומים שלהם נהיו קטנים יותר העברת אילוצים (Constraint Propagation, CP) הנה טכניקת הקטנת התחומים של המשתנים בעזרת שימוש באילוצים הקיימים CP מייצרת בעיית CSP קלה יותר לפתור בעלת משתנים ופתרונות כמו בבעיה המקורית נלמד כמה סוגים של CP
38
גרף האילוצים השקופית הזו והשקופית הבאה הן הכנה ללמוד על CP
גרף האילוצים הנו ייצוג גרפי של משתנים ואילוצים של אחד או של שני משתנים קדקודים מקבילים למשתנים וקשתות מקבילות לאילוצים: יש קשת בין שני קדקודים עם יש אילוץ עבור קדקודים אלו דוגמה:
39
תכונה של CSP לגבי אילוצים של שני משתנים
כל בעיית CSP אפשר לתרגם לבעיית CSP אחרת (יכולה להיות קבוצת משתנים אחרת), כך ש: בבעיית CSP החדשה יש רק אילוצים של אחד או שני משתנים בהינתן פתרון לבעיית CSP החדשה, קל לחשב פתרון לבעיית CSP המקורית
40
CP: עקביות קדקודים עקביות קדקודים (node consistency) הנו טכניקת CP שפועלת באופן הבא: עבור כל אילוץ של משתנה אחד, יש להקטין את תחום המשתנה כך שיישארו רק ערכים שמתאימים לאילוץ דוגמה: אם אנשים ב SA לא אוהבים צבע אדום, אזי קיים אילוץ {SA≠red} אנחנו יכולים להקטין את תחום SA: DSA={green, blue}
41
CP: עקביות קשתות עקביות קשתות (arc consistency) הנו טכניקת CP שפועלת באופן הבא: עבור כל אילוץ של שני משתנים, יש להקטין את תחום שניהם, כך שעבור כל ערך של משתנה אחד יהיה לפחות ערך אחד אפשרי (עקבי עם האילוץ) של המשתנה השני דוגמה: קיימים משתנים X ו Y עם אותו התחום {0, 1, 2, …, 10} קיים אילוץ Y=X2 בעזרת arc consistency נוכל להקטין את תחומי המשתנים: DX={0,1,2,3} DY={0,1,4,9}
42
מתי מבצעים CP? קיימות שתי אפשרויות לגבי נקודת הביצוע של CP:
לפני תחילת החיפוש (בעזרת האלגוריתם שנראה בשקופית הבאה) לפעמים הבעיה נפתרת בצורה זו ואין צורך בחיפוש כלומר, לכל משתנה אפשר לשים כל ערך מהתחום שלו המוקטן על ידי ביצוע CP והשמה זאת תהיה עקבית עם כל האילוצים במקביל לחיפוש Backtracking מיד אחרי השורה:
43
סיכום על CSP CSP הנו סוג בעיית חיפוש:
מגדירים קבוצת משתנים עם תחום עבור כל משתנה מגדירים רשימת אילוצים בעיית CSP ניתן לפתור בעזרת חיפוש Backtracking או בעזרת חיפוש לוקלי עם משתמשים ב Backtracking, אזי CSPמאפשר constraint propagation ועוד כמה שיפורים בעלי עוצמה
44
Example: Job-Shop Scheduling
45
דוגמה נוספת של CSP: בעיית Job-Shop Scheduling
תרגום של job shop ב morfix.co.il: מערך ייצור המתמחה במוצרים ייעודיים, לפי דרישות ספציפיות של לקוחות בעיית תכנון של מתלות. נראה דוגמה: הרכבת מכונית (חלק קטן) הבעיה: יש להרכיב גלגלים של רכב חדש: צירים (10 דק' x 2), כל ציר לוקח 10 דקות להרכיב גלגלים (1 דק' x 4), אומים (2 דק' x 4) (תחת הנחה שכל אומים של גלגל אחד עושים בבת אחת) צלחות (1 דק' x 4) בקורת (3 דק' x 1) צריך לגמור הרכבה תוך 30 דקות יש 4 עובדים המרכיבים את הצירים, אבל הם משתמשים בכלי אחד
46
המשך דוגמה בעיית Job-Shop Scheduling
משתנים: זמן התחלה של כל שלב הרכבה. תחומים: לכל המשתנים יש אותו תחום: אילוצים: ציר לפני גלגלים: כלי אחד עבור הרכבת הצירים: גלגל לפני אומים, אומים לפני צלחות: ביקורת אחרון: עבור כל שלב X שדורש dX דק'
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.