1 / 49

A* and AO* Search Algorithm

A* and AO* Search Algorithm. Hananel Hazan Based on Prof. Larry Manevitz’s slides. דמקה Draughts (or checkers). In the 1950s, Arthur Samuel created one of the first board game-playing programs of any kind

asha
Download Presentation

A* and AO* Search Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A* and AO* Search Algorithm HananelHazan Based on Prof. Larry Manevitz’s slides

  2. דמקה Draughts (or checkers) • In the 1950s, Arthur Samuel created one of the first board game-playing programs of any kind • in 2007 scientists at the University of Alberta[13] evolved their "Chinook" program up to the point where it is unbeatable. A brute force approach that took hundreds of computers working nearly 2 decades was used to solve the game,[14] showing that a game of draughts will always end in a stalemate if neither player makes a mistake.[15][16] https://en.wikipedia.org/wiki/Freeciv https://en.wikipedia.org/wiki/Draughts

  3. RPG situation

  4. RPG situation

  5. RPG situation • שימו לב שניתן למצוא שביל עובד גם בין העציץ לקיר, מכיוון שהרשת הנקודות היא צפופה מספיק כדי לספק לנו פתרון מעבר • זה מעולה כאשר יש לנו מרחק קטן לעבור, אבל אם יש לנו מרחק גדול יותר לעבור צפיפות הרשת הופכת להיות בעיה חישובית למחשבים ביתיים. • הפתרון הגדלת הרזולוציה של הרשת.

  6. RPG situation

  7. What is A* Search Good For? • אם קיים פתרון לבעיה, ופונקציה היוריסטית היא אופטימית, מובטח שהאלגוריתם ימצא אותה מכיוון שהאלגוריתם עובר על כל הדרכים האפשריות ומקבל הערכות לגבי המשך הדרך. • האלגוריתם A* דומה לאלגוריתם Best – First החמדני בצורת החיפוש, הוא יותר טוב ממנו בגלל שA* לא חוזר על צמתים שהוא כבר ביקר בהם.

  8. מבוא • כדי להסביר את A* אנו צרכים להבין את : • אלגDijkstra's • אלגBest-First search • אלגHill Climbing

  9. Dijkstra's algorithm • דוגמה להרצת אלגוריתם דייקסטרה • מסמנים את הקודקוד הנוכחי. באיטרציה הראשונה זהו נקודת התחלה כקודקוד שביקרו בו. • עבור כל קודקוד Y שהוא שכן של X וגם לא ביקרנו בו: • Y מעודכן, כך שמרחקו יהיה שווה לערך המינימלי בין שני ערכים: מרחקו הנוכחי, ומשקל הקשת המחברת בין X לבין Y בתוספת המרחק בין S ל-X. • בוחרים קודקודX חדש בתור הקודקוד שמרחקו בשלב הזה מצומת המקור S הוא הקצר ביותר מבין כל הקודקודים בגרף שטרם ביקרנו בהם. • האלגוריתם מסתיים כאשר ביקרנו בכלהקודקודים. https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm

  10. אלגBest-First searchאלגHill Climbing • Hill Climbing • אנו נבחר לעבור לצומת הראשונה שהיא גבוה/נמוכה יותר מהנוכחית. • אלגוריתם נכשל / מסתיים כאשר אין גבוה/נמוך יותר (הגענו למקסימום / מינימום מקומי) • Best-First search • אנו נעבור על כל הילדים של אותה צומת וניבחר את הגבוה/נמוך ביותר שמצאנו

  11. A* vs (Best-First, Hill Climbing) • ב Best-First, Hill Climbing הפונקציה היוריסטית היא הערכת המרחק מנקודה הנוכחית למטרה. • A* לוקח בחשבון את המרחק שהאלגוריתם ביצע עד כה g(x). • האלגוריתם קביל (מחזיר פתרון בעל מחיר מינימלי) בתנאי ש-h קבילה. • הוכחת אי עצירה: • האפשרות היחידה לאי עצירה היא מעגל, אולם זה לא יכול לקרות כי נגיע שוב לצומת וניתן לה לכאורה מחיר גבוה יותר ממה שכבר היה לה.

  12. A* • האלגי מחזיק 2 רשימות, רשימה פתוחה ורשימה סגורה. • ברשימה הסגורה נמצאים הצמתים שהם מבוי סתום או שכבר ביקר בהם. • ברשימה הפתוחה נמצאים צמתים שלא הגיע אליהם עם הערך ה ( F(x. • רשימה פתוחה: • הצמתים עם הערך F(x) הנמוך היותר מקבלים את העדיפות הגבוהה ביותר. • בכל צעד האלג לוקח את הצומת הראשונה ברשימה הפתוחה שהיא בעלת הערך F(x) הנמוך ביותר ונותן ערך לכל הבנים של הצומת, הבנים מוכנסים לרשימה הפתוחה, והצומת נכנסת לרשימה הסגורה.

  13. A* • האלגוריתם ממשיך לפתוח צמתים עד ש-הרשימה הפתוחה ריקה או שהוא מקבל ערך שהוא נמוך ביותר מכל הרשימה הפתוחה. • האלגוריתם ימשיך לפתוח צמתים מהרשימה הפתוחה עד שהרשימה תסתיים והתוצאה תהיה המסלול הקצר ביותר למטרה. • חשוב לציין:שהאלגוריתם A* יכול לעבור כמה פעמים את הצומת מטרה מכיוון שיתכן שיש דרך קצרה יותר להגיע למטרה

  14. בעיה לדוגמא http://www.policyalmanac.org/games/aStarTutorial.htm barrier • בוקר טוב עולם Start Point Destination

  15. בעיה לדוגמא Open List • רשימת קניות - מה האפשרויות שלי? • רשימה מקושרת אשר ההורה הוא נקודת התחלה • רשימת מלאי - מה לא צריך לבדוק • ברשימה הזאת יהיו כל הנקודות שנמצאות בהישג יד אבל לא ברי השגה כמו קיר / מחסום / נקודת מוצא Close List Open List Close List

  16. בעיה לדוגמא • שלב הבא הוא שלב הניקוד: • יש לנו את נקודת ההתחלה ונקודת המטרה. • מה שנותר לעשות זה לתת ציון לכל דרך אפשרית שנמצאת ברשימה הפתוחה. סה"כ עלות F = G + H  כמה עולה לצעוד מהנקודה ההתחלה לנקודת הנוכחית? כמה אתה מעריך שיעלה לצעוד מהנקודה החדשה לנקודת המטרה?

  17. בעיה לדוגמא • כל הריבוע שמסומן בירוק נכנס לרשימה הפתוחה. • בוחרים את A בגלל שיש לו את הערך הקטן ביותר. B A C A Close List Open List

  18. בעיה לדוגמא • הצעדים האפשריים מA נכנסים לרשימה הפתוחה ומעורכים. • כל המשבצות של הקיר נכנסים לרשימה הסגורה מכיוון שאי אפשר לעבור דרכם. • B ו C נכנסים לרשימה הפתוחה כאפשרויות המשך. • בוחרים אקראית מכיוון ששני הערכים שווים B Aa Ac A Ab Ab Aa C Ac B C A D Close List Open List

  19. בעיה לדוגמא • בחרנו את C ואנו נעריך את כל השכנים של C • יש לנו שני מעומדים D ו F אבל אי אפשר להגיע לF ישירות בגלל הקיר אזי D נבחר (חוקים*) B C Aa D Ac A Ab F Ab B E C Ac Aa E F G D A G Close List Open List

  20. בעיה לדוגמא • אחרי שבחרנו את D והכנסנו את השכנים לרשימה בפתוחה • נימצא שהכרך של F יותר קטן מהשאר (MLO) B Aa A D Ab F C J B K E C Ac Ab E Aa Ac F H| I G D A G Close List Open List M L O

  21. בעיה לדוגמא • עברנו לF ו גם פה אי אפשר לקצר ע"י מעבר ל J ולכן H נבחר B Aa H F A J D Ab C J B K E C Ac Ab E Aa Ac F H I G D A G Close List Open List M L O

  22. בעיה לדוגמא • הפעם ב H אנו יכולים לקצר ע"י מעבר לK שהוא הערך הנמוך יותר • מפה הדרך למטרה היא צעד אחד ברור K B H Aa I F A J D Ab C J B K E C Ac Ab E Aa Ac F H I G D A G Close List Open List M L O

  23. בעיה לדוגמא • אחרי שמצאנו את המטרה אנו בודקים את הנתיבים שנשארו ברשימה הפתוחה • נגלה שההופכי לדרך שעשינו יניב לנו אותו ניקוד לכן נשארנו עם מה שמצאנו

  24. Unbiased A* • מצב שבו פונקציית h מנחשת באופן "נאיבי" כל מצב שיוצג לה הוא טוב בשבילה

  25. A* Heuristics • פונקציה יוריסטית שמעריכה באופן רציף • פונקציה יוריסטית שמעריכה באופן שהוא מוגזם overestimate • זה מה שהינו רוצים להגיע

  26. algorithm A* • דוגמה להרצת אלגוריתם A* כאשר פונקציית היוריסטיקהמעריכה את המרחק למטרה כמוגזם מידי לכן האלג מפתח את צמתים שלא היה צריך ללכת אליהם בדומה ל best-first https://en.wikipedia.org/wiki/A*_search_algorithm

  27. דוגמה לריצה של A* • כאשר אלגוריתם A* רץ עם פונקציה יוריסטית שמעריכה נכון ובצורה אופטימית את המרחק למטרה

  28. AO* (star) ??

  29. What are difference betweenA and AO algorithm? • The main difference between the A*(A star) and AO*(AO star) algorithms is that A* algorithm is a OR graph algorithm and AO* is a AND-OR graph algorithm. • In OR graph algorithm it just find only one solution (i.e. either OR solution means this OR this OR this). • But in the AND-OR graph algorithm it find more than one solution by ANDing two or more branches.

  30. AND Connector OR Connector L. Manevitz Lecture 3

  31. הנחות עבודה • Data Structure • Graph • Marked Connectors (down; unlike A*) • Costs q() maintained on nodes • SOLVED markings • Note: We’ll discuss on acyclic graphs.

  32. AND/OR Graph L. Manevitz Lecture 3

  33. Solution Subgraph L. Manevitz Lecture 3

  34. Solution Subgraph L. Manevitz Lecture 3

  35. Heuristic Values:estimated cost to solution set 0 2 4 1 4 1 2 0 0 L. Manevitz Lecture 3

  36. Basic Idea of A/O* • First top-down graph growing picks out best available partial solution sub-graph from explicit graph. • One leaf node of this graph is expanded • Second, bottom-up cost-revising, connector-marking, SOLVE-labeling. L. Manevitz Lecture 3

  37. AO* Algorithm • Create G = <s> ; q(s) = h (s) If s eTERM mark s SOLVED • Until s labeled SOLVED do: • Compute G’ partial solution subgraph of G by tracing down marked connectors in G from s. • Select n in G’, n not in TERM, n a leaf. • Expand n , place successors in G, for each successor not already in G let q(successor)=h (successor). Label SOLVED all successors in TERM. (If no successors, reset q(n) := infinity ). L. Manevitz Lecture 3

  38. AO* Algorithm cont. • Let S := {n}. • Until S = f do : • Remove a node, m, from S which has no descendent in G also in S (minimal node). • Revise cost for m, (check each connector from m) q(m)=min [c +q(n1)+…+q(nk)]. Mark chosen connector.If all successors their connectors are SOLVED then mark m SOLVED. • If m SOLVED or changed q(m) then add to S all “preferred” parents of m. • End. • End. L. Manevitz Lecture 3

  39. Montone Restriction • h(n) <= c + h(n1) + h(n2) + … h(nk) Where c is cost of connector between n and set of n1, … , nk. This guarantees that h(n) <= h*(n). L. Manevitz Lecture 3

  40. Cost (q(n) ) Values • If n has no successors then q(n) = h (n) • Otherwise working from bottom, • q(n) = connector cost + sum of q(successors) Pick smallest of above; and mark direction. If that direction has all successors SOLVED then n is marked SOLVED. L. Manevitz Lecture 3

  41. AO* weighted Example (Refered From Artificial Intelligence TMH) http://artificialintelligence-notes.blogspot.co.il/2010/07/problem-reduction-with-ao-algorithm.html

  42. Tracing the Algorithm 1 2 1 1 L. Manevitz Lecture 3

  43. Tracing the Algorithm 3 2 1 1 L. Manevitz Lecture 3

  44. Tracing the Algorithm 4 5 1 4 4 1 L. Manevitz Lecture 3

  45. Tracing the Algorithm 4 5 1 4 4 2 2 0 0 L. Manevitz Lecture 3

  46. Tracing the Algorithm 5 5 1 4 4 2 2 0 0 L. Manevitz Lecture 3

  47. Tracing the Algorithm 5 5 1 4 2 0 0 L. Manevitz Lecture 3

  48. Tracing the Algorithm 5 5 1 4 2 0 0 L. Manevitz Lecture 3

  49. שו"ת???

More Related