Download presentation
Presentation is loading. Please wait.
Published byΧρύσηίς Μιαούλης Modified over 6 years ago
1
אלגוריתמים המבצעים שיפור איטרטיבי Hill climbing Simulated annealing
2
אלגוריתמים המבצעים שיפור איטרטיבי
עבור בעיות בהן המטרה לא ידועה. יודעים רק איך להשוות בין שני מצבים ולומר מי מהם יותר טוב. דוגמאות: להרוויח כמה שיותר כסף לארוז בכמה שפחות נפח לשבץ עם כמה שפחות קונפליקטים.
3
אלגוריתמים המבצעים שיפור איטרטיבי
מתחילים במצב ומנסים לשפר אותו. לא מבטיח למצוא את המצב האופטימלי. נותן את המצב הטוב ביותר עד עכשיו. מתאים לבעיות אופטימיזציה.
4
אסטרטגית "טיפוס הרים" - Hill climbing
מפעיל את הפעולה שמגדילה את הערך של המצב הנוכחי באופן מירבי states f-value f-value = evaluation(state) while f-value(state) <= f-value(next-best(state)) state := next-best(state)
5
אלגוריתם Hill climbing
עוצר במקסימום (מינימום) מקומי, ללא שום רמז איך להתקדם. אם ערך השכן הטוב ביותר שווה לערך הנוכחי - בוחר אותו. אם יש מספר שכנים שערכם שווה - בוחר אחד באופן אקראי. נדרשת אסטרטגיה על-מנת להימלט ממקסימום מקומי. אסטרטגיות: קפיצות אקראיות, נסיגה בחיפוש. מישור בגרף עלול לגרום להתרוצצות של האלגוריתם ללא התקדמות.
6
אלגוריתם Hill climbing
function Hill-Climbing(problem) returns a solution state current Make-Node(Initial-State[problem]) loop do next a highest-valued successor of current if Value[next] < Value[current] then return current current next end
7
אלגוריתם Random restart hill climbing
אם הפתרון שמצאת טוב יותר מהפתרון הטוב ביותר שנמצא עד כה – שמור אותו. חזור ל-1. מתי נסיים? – לאחר מספר קבוע של איטרציות. – לאחר מספר קבוע של איטרציות שבהן לא נמצא שיפור לפתרון הטוב ביותר שנמצא עד כה.
8
Random restart hill climbing
states f-value f-value = evaluation(state)
9
אלגוריתם Simulated annealing
במקום להתחיל בכל פעם מחדש, נאפשר ירידה ממצב השיא אליו הגענו. התהליך דומה לטיפוס הרים אבל בכל שלב בוחרים צעד אקראי . אם הצעד משפר את ערך- f נבצע אותו. אחרת, נבצע אותו בהסתברות מסוימת. פונקצית ההסתברות יורדת בצורה חזקתית כל עוד לא מוצאים פתרון .
10
אלגוריתם Simulated annealing
פונקצית ההסתברות: eE/T T פונקציה של מספר הצעדים - E כמות הגידול בכל צעד, הפרש ערכי f.
11
אלגוריתם Simulated annealing
function Simulated-Annealing(problem, schedule) returns solution state current Make-Node(Initial-State[problem]) for t 1 to infinity T schedule[t] if T = 0 then return current next Random-Successor(current) E f-Value[next] - f-Value[current] if E > 0 then current next else current next with probability eE/T end
12
f-value = evaluation(state)
Simulated annealing states f-value f-value = evaluation(state)
13
האנלוגיה לתהליך הפיזיקלי
תהליך של קירור נוזל עד להקפאתו E – אנרגיה, T – טמפרטורה. - Schedule קצב הנמכת הטמפרטורה. מעברים בודדים מתאימים לתנועות אקראיות שנגרמות ע"י רעש תרמי. ניתן להוכיח שאם קצב הנמכת הטמפרטורה איטית אז החומר יגיע למצב של אנרגיה מינימלית (מקסימום מקומי).
14
בעיות עם תנאים לסיפוק Constraint Satisfaction Problems
15
CSP - Constraint Satisfaction Problems
הגדרות ודוגמאות תכונות של בעיות CS היוריסטיקות אלגוריתם איטרטיבי עבור בעיות CS
16
CSP - Constraint Satisfaction Problems
בעיות הניתנות לניסוח האופן הבא: מצא פתרון (יתכן אופטימלי) שמספק מספר אילוצים. דוגמאות: - בנה מערכת שעות עם כמה שפחות סתירות. - שבץ טייסים לטיסות כך שלא יעברו מכסת שעות טיסה, הפסקה סבירה בין הטיסות, ועוד. - מצא השמת ערכי אמת לסיפוק נוסחה לוגית. - בעית 8 המלכות. - בעית תרגיל מוצפן.
17
ניסוח פורמלי של בעיית CS
מצבים: - קבוצה של משתנים:x1, x2, …,xn - תחומי המשתנים: D1, D2 …Dn - וקטור מצב : (x1, c2, x3, c4,… ,cn) - וקטור של משתנים וערכים מוצבים. מבחן מטרה: אילוצים על המשתנים. דוגמא: xi xj מצב התחלתי: וקטור של משתנים ללא ערכים. מצב מטרה: וקטור של ערכים בלבד שמספקים את כל האילוצים.
18
ניסוח פורמלי של בעיית CS - דוגמאות
בעיית תרגיל מוצפן S E N D M O R E M O N E Y + משתנים D, E, M, N, O, R, S, Y : תחומים: לכולם {0,1,2,3,4,5,6,7,8,9{ אילוצים: M 0, S D R , D N , D M , D E Y = D+E או Y = D+E10 , . . .
19
ניסוח פורמלי של בעיית CS - דוגמאות
בעיית 4 המלכות נניח שבמצב ההתחלתי כל מלכה ממוקמת בעמודה נפרדת. יש למצוא באיזו שורה למקם כל מלכה. משתניםQ1 , Q2 ,Q3 ,Q4 : תחומים: לכולם {1,2,3,4} אילוצים : Qi Qj (לא באותה שורה) ) Qi Qj i j לא באותו אלכסון)
20
ניסוח פורמלי של בעיית CS - דוגמאות
בעיית צביעת מפה יש לצבוע את המשטחים כך שכל שני משטחים נושקים יהיו בצבעים שונים C4 C2 C1 C6 C5 C3 C4 C2 C1 C6 C5 C3 משתנים:C1 , C2 ,C3 ,C4 , C5 ,C6 תחומים: לכולם }אדום, כחול, צהוב{ אילוצים : C1 C3 ,C1 C2 C1 C5, . . .
21
חיפוש עבור בעיית CS אסטרטגית החיפוש: 1. בחר משתנה, בחר ערך מתוך התחום שלו, בדוק אם כל האילוצים מסופקים. 2. אם האילוצים מסופקים המשך באופן רקורסיבי. 3. אחרת, חזור אחורה לבחירה האחרונה ובצע בחירה אחרת. גודל עץ החיפוש:bd מספר המשתנים - d=n בכל שלב בוחרים רק משתנה אחד - b=maxDi ניתן לפתור n-מלכות עבור n15
22
חיפוש עבור בעיית CS S E N D + M O R E M O N E Y S 3 2 D 1 0 R 3 +
S E N D M O R E M O N E Y + C1 C2 C3 C4 M = 1 O = 0 O = 3 O = 2 N = 2 סתירה לאילוץ S 3 2 D 1 0 R 3 Y + E = 3
23
בעיית CS - הערות מקרה פרטי של בעיית חיפוש.
התחומים יכולים להיות בדידים או רציפים. אין חשיבות לסדר האילוצים. מבחן המטרה בא לידי ביטוי ע"י האילוצים. אם קבוצת משתנים בלתי תלויה (אין אילוצים ביניהם) ואם לתתי קבוצות של משתנים יש קבוצות אילוצים נפרדות ניתן לפרק את הבעיה לתתי בעיות בהתאם, ולפתור כל אחת בנפרד.
24
תכונות של בעיית CS - המשך
במהלך החיפוש, אם אילוץ סופק או אם נוצרת סתירה בתנאי החיפוש ממשיך בכל מקרה, ויגלה את הבעיה רק בהמשך. סדר בחירת הערכים למשתנים משפיע על זמן החיפוש. מצריך שיטה לבדיקת סיפוק האילוצים.
25
היוריסטיקה 1 עבור בעיית CS
בדיקה קדימה: כאשר מתבצעת השמת ערך למשתנה, בטל את הערכים שלא ייתכנו עבור משתנים אחרים. כאשר תחום מתרוקן - אין פתרון עם השמה זו. לרוב יותר יעיל מ-backtracking פשוט.
26
היוריסטיקה עבור בעיית CS - דוגמא
צביעת מפה - בדיקה קדימה C3 C2 C5 C4 C1 אדום כחול ירוק C1 C5 C3 C2 C4 C1 C2 C4 C3 ניתן לפתור n-מלכות עבור n 30
27
היוריסטיקה 2 עבור בעיית CS
השמה עקבית: לכל משתנה יש ערך בתחום שלו שאם נציב אותו המצב לא יגרום לסתירה באילוצים. (אם אין כזה לא ממשיכים)
28
היוריסטיקה עבור בעיית CS - דוגמא
השמה עיקבית S E N D M O R E M O N E Y + C1 C2 C3 C4 M = 1 C1 = 1 C2 + S + 1 = O O = 0 O = 3 O = 2 C2 + S + 1 = 0 C3 + E + 0 = N C4 + N + R = E N = 2 . S ? 2 D 1 0 R ? 1 0 2 ? Y + לא קיימת השמה עיקבית
29
היוריסטיקה 3 עבור בעיית CS
מי המשתנה הבא להשמה? המשתנה המאולץ: בחר במשתנה שהתחום שלו קטן ושמופיע בהכי הרבה תנאים. איזו השמה לבחור? הערך המאלץ המינימלי: בחר עבור המשתנה את הערך שיגרום לכמה שפחות אילוצים.
30
היוריסטיקה עבור בעיית CS - דוגמא
צביעת מפה: - בחירת המשתנה הבא להשמה (מאולץ ביותר) בחירת ערך למשתנה (מאלץ מינימלי) C4 C6 C2 C5 C1 C3 C6 C2 C5 C1 C3 בהינתן אדוםC1=, ירוקC2= . מי המשתנה הבא ?? C3 ?? בהינתן אדוםC1=, ירוקC2 = . בחר ?? = C3 C5 ירוק = C3 ניתן לפתור n-מלכות עבור n1000
31
אלגוריתמים איטרטיבים לבעיות CS
כדי ליישם את האלגוריתמים Hill climbing ו- Simulated annealing עבור בעיות CS נבצע את השינויים: בכל מצב יש השמה לכל המשתנים (גם במצב ההתחלתי). מרשים מצבים עם תנאים לא מסופקים (כלומר, השמות הגורמות לסתירות בתנאים). הפעולות: שינוי ערך למשתנה. בחר באופן אקראי איזשהו משתנה הגורם לסתירה.
32
היוריסטיקה עבור בעיית CS
מינימום סתירות באילוצים: בחר בערך שיגרום להכי מעט סתירות באילוצים. Hill climbing עם h(n) =מספר הסתירות ניתן לפתור n-מלכות עבור n בזמן כמעט קבוע עם הסתברות גבוהה.
33
היוריסטיקה - מינימום סתירות - דוגמא
בעיית 4 המלכות פונקצית הערכה:h(n) = מספר המלכות המאוימות מצבים: 4 מלכות ב-4 עמודות פעולות: הזזת מלכה בעמודה מבחן מטרה: אין מלכות מאוימות h(n)=5 h(n)=2 מצב מטרה
34
דוגמא: בעית 8 המלכות 1 3 2 2 3 3
35
Motivation: Significant progress in SAT
From 100 variables, 200 constraints (early 90’s) to 1,000,000 vars. and 5,000,000 clauses. Applications: Hardware and Software Verification, Planning, Scheduling, Optimal Control, Protocol Design, Routing, Multi-agent systems, E-Commerce (E-auctions and electronic trading agents), etc.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.