חיפוש לוקלי Local Search.

Slides:



Advertisements
Similar presentations
Completeness and Expressiveness. תזכורת למערכת ההוכחה של לוגיקה מסדר ראשון : אקסיומות 1. ) ) (( 2. )) ) (( )) ( ) ((( 3. ))) F( F( ( 4. ) v) ( ) v ((
Advertisements

מבוא למדעי המחשב לתעשייה וניהול
חיפוש בינה מלאכותית אבי רוזנפלד. סוכנים פותרי בעיות Reflex agents לא יכולים לתכנן קדימה כדי לחפש, יש צורך לייצר מודל לחפש בו !
(Paradigm=Example) Artist unknown A group of scientists placed 5 monkeys in a cage and in the middle, a ladder with bananas on the top. קבוצת מדענים.
פונקציונל פונקציה מספר פונקציונל דוגמאות לא פונקציונל פונקציונל.
Presentation by Dudu Yanay and Elior Malul 1.  מה משותף לכל אלגוריתם המשתמש ב -Bucket Elimination: ◦ נתון מודל הסתברותי ורשת ביסיאנית מתאימה. ◦ נתונה.
מתמטיקה בדידה תרגול 3.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
Inverse kinematics (Craig ch.4) ב"ה. Pieper’s solution נתבונן ברובוט עם 6 מפרקי סיבוב כאשר שלושת הצירים של המפרקים האחרונים נחתכים. נקודת החיתוך נתונה.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
מה החומר למבחן ? כל החומר שנלמד בהרצאות ובתרגולים. לגבי backtracking: לא תידרשו לממש אלגוריתם, אך כן להבין או להשלים מימוש נתון. אחת משאלות המבחן מבוססת.
רקורסיות נושאי השיעור מהן רקורסיות פתרון רקורסיות : שיטת ההצבה שיטת איטרציות שיטת המסטר 14 יוני יוני יוני 1514 יוני יוני יוני 1514.
עבודה סמינריונית Prelude to Ukkonen algorithm ON-LINE CONSTRUCTION OF SUFFIX TREES מגישים : עיד מוחמד טיבי פיראס.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Data Structures, CS, TAU, Splay Tree Splay Tree  מימוש של עץ חיפוש בינארי  מטרה לדאוג ל- Amortized Time  פעולה בודדת יכולה לקחת O(N)  אבל כל רצף.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
מסדי נתונים תשס " ג 1 תכנון סכמות – אלגוריתם פירוק לתבניות בצורת BCNF מסדי נתונים.
עיבוד תמונות ואותות במחשב אלכסנדר ברנגולץ דואר אלקטרוני : שיטות קידוד שיטות קידוד אורך מלת קוד ואנטרופיה אורך מלת קוד ואנטרופיה קידוד.
Data Structures, CS, TAU, Splay Tree 1 Splay Tree - עץ חיפוש בינארי - מטרה לדאוג ל - Amortized Time - פעולה בודדת יכולה לקחת O(N) - אבל כל רצף M פעולות.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
משטר סטטי שערים לוגיים Wired Drives – © Dima Elenbogen 2009, Moshe Malka :29.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תורת הקבוצות חלק ב'. קבוצה בת מניה הגדרה: קבוצה אינסופית X היא ניתנת למניה אם יש התאמה חד-חד ערכית בין X לבין .
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
בעיות חיפוש – informed search בינה מלאכותית יעל נצר.
Questions are the Answer Penick&all H ISTORY R ELATIOINSHIPS A PPLICATION S PECULATION E XPLANATION.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
קורס תכנות – סימסטר ב ' תשס " ח שיעור שישי: מערכים
שאלה 1 נתון כביש ישר עם תחנות דלק בנקודות , בנקודת המוצא נתונה מכונית עם תא דלק שמספיק ל-100 ק"מ. מחיר מילוי תא הדלק בתחנה.
הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353)
The Cyclic Multi-peg Tower of Hanoi מעגלי חד-כווני סבוכיות הפתרון בגרסאות עם יותר מ-3 עמודים.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
מערכים עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר עד היום כדי לייצג 20 סטודנטים נאלצנו להגדיר int grade1, grade2, …, grade20; int grade1, grade2, …, grade20;
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Data Structures, CS, TAU, RB-Tree 1 עץ אדום-שחור - עץ חיפוש בינארי - בכל צומת ביט אינפורמציה נוסף - צבע « עץ “ כמעט מאוזן ” « (O(log n במקרה גרוע ביותר.
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
עצים בינאריים - תזכורת דרגת צומת שורש עלה צומת פנימי מרחק בין 2 צמתים
מתמטיקה בדידה תרגול 2.
A. Frank File Organization Hardware Size Parameters.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
1 מבוא למדעי המחשב backtracking. 2 מוטיבציה בעיית n המלכות: נתון: לוח שחמט בגודל. המטרה: לסדר על הלוח n מלכות כך שאף אחת לא תאיים על השנייה. דוגמא: עבור.
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
תכנון ובעיות " קשות " בינה מלאכותית אבי רוזנפלד. יש בעיות שכנראה המחשב לא יכול לפתור P NP NP-Complete.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
מבוא למדעי המחשב לתעשייה וניהול הרצאה 7. סברוטינות subroutines.
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
Costs and Filters Dr. Avi Rosenfeld Department of Industrial Engineering Jerusalem College of Technology
Data Structures Hanoch Levi and Uri Zwick March 2011 Lecture 3 Dynamic Sets / Dictionaries Binary Search Trees.
1 Formal Specifications for Complex Systems (236368) Tutorial #1 Course site:
בגיל 9 למדתי שהמורה שלי שאלה אותי רק כאשר לא ידעתי את התשובהבגיל 9 למדתי שהמורה שלי שאלה אותי רק כאשר לא ידעתי את התשובה בגיל 10 למדתי שאפשר להיות מאוהב.
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
Tirgul 12 Trees 1.
Formal Specifications for Complex Systems (236368) Tutorial #1
מבוא למדעי המחשב סיבוכיות.
SQL בסיסי – הגדרה אינדוקטיבית
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
תיאוריית תכנון סכמות למסדי נתונים יחסיים חלק 4
Data Structures, CS, TAU, Splay Tree
בעיות נוספות ב-NPC.
Marina Kogan Sadetsky –
תרגול 11 NP complete.
תוכנה 1 תרגול 13 – סיכום.
Presentation transcript:

חיפוש לוקלי Local Search

מה שונה בחיפוש לוקלי? *IDA ו *A מחפשים מסלול הכי זול אל המטרה לפעמים בעיית החיפוש היא אחרת: נתון תיאור של המטרה עלינו למצוא מצב שמתאים לתיאור זה המסלולים שאנחנו רואים בתהליך החיפוש אינם חשובים במקרים אלו ניתן להשתמש בחיפוש לוקלי דוגמה: איך לחבר לוח זמנים במכון לב, כך שלא תהיינה סתירות תיאור של מטרה: לכל הרצאה\מעבדה יש חדר ומועד בכל נקודת זמן יש לכל היותר הרצאה\מעבדה אחת בכל חדר אף מרצה\מתרגל\סטודנט לא יכול להיות בשני חדרים בו-זמנית מצב: השמה של חדר ומועד לכל ההרצאות ולכל המעבדות שימו לב שלא מעניין אותנו המסלול (כלומר, כיצד הגענו למטרה)

כיצד חיפוש לוקלי פועל חיפוש לוקלי פועל באופן הבא: מתחילים ממצב כלשהוא מנסים לשפר את המצב כדי שהוא יהיה יותר דומה למצב המטרה השיפורים האלו הם "תיקונים מקומיים" יתרונות של חיפוש לוקלי: חסכוני בזיכרון לפעמים אפשר לפתור מהר מאד בעיות ש *IDA ו *A היו דורשים זמן רב לפתור

מה נלמד על חיפוש לוקלי היום נלמד שני אלגוריתמים לחיפוש לוקלי: Hill-Climbing (טיפוס גבעה) Simulated Annealing

Hill-Climbing Search

הרעיון של חיפוש Hill-Climbing נדמיין לעצמנו שהמטרה שלנו היא לטפס לראש הגבעה רק יש בעיה אחת: יש ערפל סמיך ואי אפשר לראות מאומה הדבר היחיד שאנחנו יכולים לעשות זה לגעת בקרקע סביבנו כדי להבין באיזה כיוון יש עליה ובאיזה כיוון יש ירידה

חיפוש Hill-Climbing – אלגוריתם בסיסי

דוגמה: בעיית שמונה מלכות יש למקם שמונה מלכות שחמט על לוח שחמט כך שאף אחת מהן לא תאיים על חברותיה אפשר לנסות לפתור את הבעיה לבד: http://www.brainmetrix.com/8-queens/

הפעלת Hill-Climbing עבור בעיית שמונה מלכות מצב התחלתי: נשים כל מלכה בעמודה שונה כל פעם ננסה להזיז מלכה אחת לשורה אחרת באותה עמודה כמה מהלכים כאלו קיימים? יוריסטיקה: כמה זוגות מלכות מאיימות זו על זו דוגמה של היוריסטיקה והמהלכים: יוריסטיקה בדוגמה זאת מציגה מרחק מהגובה של ראש הגבעה h=17

הפעלת Hill-Climbing עבור בעיית שמונה מלכות בתמונות הבאות נראה פתרון של בעיית ארבע מלכות עד הסוף

האם Hill-Climbing בסיסי תמיד פותר? לא!  אחת הבעיות היא שלפעמים מגיעים למצב כזה: אין אפשרות לשפר מצב זה מצב כזה נקרא מקסימום לוקלי (local maximum) h=1

חסרונות של חיפוש Hill-Climbing הוסבר בהרצאה: בנוסף, לפעמים מספר המהלכים (פקטור הסתעפות, זוכרים?) הוא גדול מדי ואין אפשרות למצוא כיוון לעליה מהירה ביותר לכן מחקר רב הוקדש לפיתוח גרסאות יותר מתוחכמות של Hill-Climbing עכשיו נראה מספר פתרונות לחסרונות הנ"ל

מקסימום לוקלי וכתף אפשר לנסות מהלכים שאינם מעלים אותנו לדוגמה, בבעיית שמונה מלכות, אפשר לנסות מהלכים שלא גורמים ליוריסטיקה להיות קטנה יותר מהלכים כאלו נקראים אופקיים זה פותר את בעיית הכתף, אבל לא תמיד Hill-Climbing with Random Restart כל פעם כשלא יכולים לשפר את המצב, מתחילים מחדש ממצב אקראי אפשר גם לאתחל אחרי זמן מסוים (כלומר, אחרי שניסינו מספר מסוים של מהלכים אופקיים) אלגוריתם זה הוא פתרון מצוין עבור בעיית המלכות אפילו את בעיית 3,000,000-מלכות אפשר לפתור בפחות מדקה אבל עדיין אין גרסה שתתאים לכל הבעיות

פקטור הסתעפות גבוה First Choice Hill-Climbing הנו אפקטיבי כשיש הרבה מהלכים (פקטור הסתעפות גדול) ואין אפשרות למצוא את המהלך המשפר את המצב בצורה הגדולה ביותר אז אפשר לייצר מהלכים באופן אקראי אנחנו בוחרים במהלך הראשון שמביא למצב טוב יותר מהמצב הנוכחי אפשר גם למצוא מספר מהלכים כאלו ואז לבחור את הטוב ביותר מביניהם

Simulated Annealing Search

חיפוש Simulated Annealing האלגוריתם מנסה גם את המהלכים ה"גרועים" אבל ההסתברות של מהלך כזה תקטן עם הזמן מכנים את ההסתברות (כאן אנו מפשטים) חום (המושג בא מתחום ממטלורגיה)

הערות סיכום על Simulated Annealing חיבור לו"ז של טיסות תכנון VLSI (איך לשים אלפי רכיבים וביניהם חיבורים בשבב אחד) חשוב להבין ש Simulated Annealing לא מבטיח שנמצא מקסימום גלובלי

Constraint-Satisfaction Problems (CSP) בעיות סיפוק אילוצים Constraint-Satisfaction Problems (CSP)

CSP בכלליות *IDA ו *A פתרו בעיות על ידי ייצור מצבים (בסדר מסוים) ובדיקה האם המצב הנוכחי הוא המטרה אלגוריתמים אלו לא התייחסו למבנה פנימי של כל מצב כל מה שעניין את האלגוריתם היה מחיר של המצב בבעיות סיפוק אילוצים (Constraint Satisfaction Problems, CSP) אנו משתמשים בייצוג סטנדרטי של מצבים זה מאפשר לאלגוריתם הפותר CSP (CSP solver) להשתמש במידע על מצבים כדי לחתוך ענפים גדולים של עץ החיפוש

הגדרה של CSP בעיית CSP מורכבת משלושה מרכיבים: קבוצת המשתנים X=(X1,X2,…,Xn) לכל משתנה Xi יש תחום Di – קבוצה של ערכים שהמשתנה יכול לקבל רשימת אילוצים אילוצים יכולים להיות עבור אחד, שניים או יותר משתנים דוגמאות: X1≥5 X2+10≠X10 X1+X2≤X3

דוגמת CSP: בעיית coloring נתונה מפה של אוסטרליה עם שבע הטריטוריות שלה הבעיה היא לשים אחד משלושה צבעים: אדום, ירוק וכחול לכל טריטוריה, כך ששתי טריטוריות שכנות תמיד יקבלו צבעים שונים

דוגמת 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}

מה אנחנו מרוויחים\מפסידים כשמשתמשים ב CSP יתרונות: אלגוריתם הפותר CSP הנו כללי כלומר, אנחנו צריכים לייצג את הבעיה שלנו במושגים של CSP (משתנים עם תחומים, אילוצים) אין צורך במימוש תוכנה עבור הבעיה הספציפית אלגוריתם הפותר CSP יכול להיות מהיר יותר מאלגוריתם חיפוש אחר דוגמה: אם אלגוריתם הפותר CSP מנסה צבע כחול עבור SA, אז הוא לא ינסה כחול עבור השכנות שלו. עבורם יישארו 25=32 קומבינציות לנסות במקום 35=243 מפסידים: שימוש ביוריסטיקות עבור הבעיה הספציפית

The Backtracking Search Algorithm

(גישוש נסוג)Backtracking Search

דוגמתBacktracking

דוגמתBacktracking

דוגמתBacktracking

דוגמתBacktracking

Backtracking Search

משפרי ביצוע בחיפוש Backtracking VARIABLE_UNUSIGNED_SELECT – לאיזה משתנה לשים ערך דרך טובה אחת היא Minimum remaining values (MRV) – לבחור משתנה בעל תחום נוכחי קטן ביותר שני משתנים שקולים כולם שקולים בחירה ברורה

(גישוש נסוג)Backtracking Search

משפרי ביצוע בחיפוש Backtracking VALUES_DOMAIN_ORDER – באיזה סדר לנסות את הערכים עבור המשתנה שבחרנו דרך אחת טובה היא Least Constrained Value (LCV) – לבחור ערך שגורם למספר אילוצים הקטן ביותר עבור המשתנים הנשארים קיימת בחירה אחד עבור SA אין שום בחירה עבור SA

(גישוש נסוג)Backtracking Search

משפרי ביצוע בחיפוש Backtracking כנראה שזה צריך להיות משתנה שתרם לבעיה

Constraint Propagation העברת אילוצים

העברת אילוצים נתבונן בדוגמה: אם SA מקבלת "כחול", אזי השכנות שלה יכולות לקבל רק אדום וירוק כלומר, התחומים שלהם נהיו קטנים יותר העברת אילוצים (Constraint Propagation, CP) הנה טכניקת הקטנת התחומים של המשתנים בעזרת שימוש באילוצים הקיימים CP מייצרת בעיית CSP קלה יותר לפתור בעלת משתנים ופתרונות כמו בבעיה המקורית נלמד כמה סוגים של CP

גרף האילוצים השקופית הזו והשקופית הבאה הן הכנה ללמוד על CP גרף האילוצים הנו ייצוג גרפי של משתנים ואילוצים של אחד או של שני משתנים קדקודים מקבילים למשתנים וקשתות מקבילות לאילוצים: יש קשת בין שני קדקודים עם יש אילוץ עבור קדקודים אלו דוגמה:

תכונה של CSP לגבי אילוצים של שני משתנים כל בעיית CSP אפשר לתרגם לבעיית CSP אחרת (יכולה להיות קבוצת משתנים אחרת), כך ש: בבעיית CSP החדשה יש רק אילוצים של אחד או שני משתנים בהינתן פתרון לבעיית CSP החדשה, קל לחשב פתרון לבעיית CSP המקורית

CP: עקביות קדקודים עקביות קדקודים (node consistency) הנו טכניקת CP שפועלת באופן הבא: עבור כל אילוץ של משתנה אחד, יש להקטין את תחום המשתנה כך שיישארו רק ערכים שמתאימים לאילוץ דוגמה: אם אנשים ב SA לא אוהבים צבע אדום, אזי קיים אילוץ {SA≠red} אנחנו יכולים להקטין את תחום SA: DSA={green, blue}

CP: עקביות קשתות עקביות קשתות (arc consistency) הנו טכניקת CP שפועלת באופן הבא: עבור כל אילוץ של שני משתנים, יש להקטין את תחום שניהם, כך שעבור כל ערך של משתנה אחד יהיה לפחות ערך אחד אפשרי (עקבי עם האילוץ) של המשתנה השני דוגמה: קיימים משתנים X ו Y עם אותו התחום {0, 1, 2, …, 10} קיים אילוץ Y=X2 בעזרת arc consistency נוכל להקטין את תחומי המשתנים: DX={0,1,2,3} DY={0,1,4,9}

מתי מבצעים CP? קיימות שתי אפשרויות לגבי נקודת הביצוע של CP: לפני תחילת החיפוש (בעזרת האלגוריתם שנראה בשקופית הבאה) לפעמים הבעיה נפתרת בצורה זו ואין צורך בחיפוש כלומר, לכל משתנה אפשר לשים כל ערך מהתחום שלו המוקטן על ידי ביצוע CP והשמה זאת תהיה עקבית עם כל האילוצים במקביל לחיפוש Backtracking מיד אחרי השורה:

סיכום על CSP CSP הנו סוג בעיית חיפוש: מגדירים קבוצת משתנים עם תחום עבור כל משתנה מגדירים רשימת אילוצים בעיית CSP ניתן לפתור בעזרת חיפוש Backtracking או בעזרת חיפוש לוקלי עם משתמשים ב Backtracking, אזי CSPמאפשר constraint propagation ועוד כמה שיפורים בעלי עוצמה

Example: Job-Shop Scheduling

דוגמה נוספת של 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 עובדים המרכיבים את הצירים, אבל הם משתמשים בכלי אחד

המשך דוגמה בעיית Job-Shop Scheduling משתנים: זמן התחלה של כל שלב הרכבה. תחומים: לכל המשתנים יש אותו תחום: אילוצים: ציר לפני גלגלים: כלי אחד עבור הרכבת הצירים: גלגל לפני אומים, אומים לפני צלחות: ביקורת אחרון: עבור כל שלב X שדורש dX דק'