Transcript Python

Slide 1

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 2

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 3

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 4

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 5

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 6

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 7

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 8

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 9

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 10

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 11

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 12

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 13

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 14

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 15

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 16

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 17

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 18

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 19

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 20

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 21

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 22

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬


Slide 23

‫מרחבי חיפוש‬
‫מבוא לבינה מלאכותית (‪)236501‬‬
‫מדעי המחשב‪ ,‬טכניון‬
‫עומר גייגר‬
‫חורף ‪2012‬‬

‫מרחב חיפוש ‪ -‬הגדרה‬
‫רביעייה )𝐺‪ .(𝑆,𝑂,𝐼,‬כאשר‪:‬‬
‫• 𝑺 קבוצת המצבים במרחב‪.‬‬
‫• 𝑶 קבוצת אופרטורים‪/‬פעולות ממצב למצב עוקב‪,‬‬
‫}‪.𝑜𝑖 ∶ 𝑆 → 𝑆 ∪ {ϕ‬‬
‫• 𝑆 ∈ 𝑰 מצב ההתחלתי‪.‬‬
‫• 𝑆 ⊆ 𝑮 קבוצת המצבים הסופים‪.‬‬
‫– יתכן ש‪ 𝐺 -‬יוגדר ע"י פרדיקט }𝑒𝑠𝑙𝑎𝐹‪𝑃𝐺 : 𝑆 → {𝑇𝑟𝑢𝑒,‬‬
‫ואז }𝑒𝑢𝑟𝑇 = ‪𝐺 ≡ {s|PG s‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מרחב חיפוש – הגדרות עזר נוספות‬
‫• 𝑺 𝑷 → 𝑺 ‪ S𝒖𝒄𝒄:‬פונקציית עוקב ממצב לקבוצת המצבים העוקבים‬
‫• 𝑂 ∈ 𝑜‪.𝑠𝑢𝑐𝑐 𝑠 ≡ {𝑠 ′ |𝑜 𝑠 = 𝑠 ′ ,𝑠 ′ ≠ 𝜙,‬‬

‫• )𝑺(𝑷 → 𝑶 ‪ 𝑫𝒐𝒎𝒂𝒊𝒏:‬פונקציית תחום המתאימה לכל אופרטור‬
‫את קבוצת המצבים שעליהם ניתן להפעיל את אותו‪.‬‬
‫• 𝟐𝑺 ⊆ 𝑬 קשתות הגרף ‪E ≡ {< 𝑠1 ,𝑠2 > |∃𝑜 ∈ 𝑂 𝑠.𝑡. 𝑠1‬‬
‫}) ‪∈ 𝐷𝑜𝑚𝑎𝑖𝑛 𝑜 ∧ 𝑠2 = 𝑜(𝑠1‬‬
‫כך מקבלים ש‪ (𝑆,𝐸)-‬הינו גרף המצבים‪.‬‬

‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫גרף חיפוש לעומת גרף מצבים‬
‫גרף החיפוש וגרף המצבים דומים אך שונים! מדוע?‪...‬‬
‫גרף החיפוש הינו ) ‪ (𝑉,𝐸 ′‬כאשר ‪ 𝑉~𝑆,𝐸~𝐸 ′‬דומים אבל שונים מהותית!‬
‫• מצב ‪ 𝑠 ∈ S‬הינו צומת בגרף המצבים‪ ,‬קונפיגורציה מסוימת אליה ניתן‬
‫אולי להגיע בחיפוש כלשהו‪.‬‬
‫• צומת 𝑉 ∈ 𝑣 בגרף חיפוש מסוים מייצג מצב בתוספת הקשר (המיקום‬
‫ביחס לצמתים אחרים) במהלך ריצת חיפוש ספציפית‪.‬‬
‫דוגמה לגרף מצבים (חלקי)‪:‬‬
‫בגרף החיפוש יתכנו כמה‬
‫מופעים של כל מצב‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫מה מחפשים במרחב חיפוש?‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מצב סופי 𝐺 ∈ 𝑔𝑠 (מצב העומד בקריטריון מסוים)‪.‬‬
‫או‬
‫‪ .2‬מסלול שלם ממצב ההתחלה למצב סופי‪:‬‬

‫ייצוג למקרה ‪:2‬‬
‫‪.I‬‬
‫‪.II‬‬

‫𝑛𝑖𝑠 → ⋯ → ‪si0 → si1 → 𝑠𝑖2‬‬
‫𝐺 ∈ 𝑛𝑖𝑠 ‪si0 = 𝐼,‬‬
‫) 𝑘𝑖𝑠(𝑜 = ‪∃𝑜 𝑠. 𝑡. 𝑠𝑖𝑘+1‬‬

‫וקטור המצבים > 𝑛𝑖𝑠‪.< si0 ,si1 ,𝑠𝑖2 ,..,‬‬
‫או‬
‫וקטור האופרטורים שהופעלו במעברים‪.‬‬
‫מבוא לבינה מלאכותית (‪ )236501‬מדעי המחשב‪ -‬טכניון‪.‬‬
‫עומר גייגר חורף ‪2013‬‬

‫שאלה לדיון‬
‫למה זה מעניין אותנו להגדיר מרחבי מצבים?‬
‫רעיונות? ‪...‬‬
‫• ניתן להגדיר מרחבי מצבים לבעיות אמיתיות‪.‬‬
‫• יותר קל לשכנע\להוכיח טענות לגבי מרחב הבעיה‬
‫כאשר הוא מוגדר היטב‪.‬‬
‫• יותר קל לכתוב אלגוריתמים גנריים (בלתי תלויים‬
‫בפלטפורמה ובמימוש) ברמת הפשטה גבוהה‬
‫כשהבעיה מוגדרת היטב‪.‬‬

‫מרחבי חיפוש (‪ )AI‬לעומת גרפים (‪)Algo 1‬‬
‫בדרך כלל‪:‬‬
‫‪ .1‬מרחב המצבים עצום‪ ,‬אקספוננציאלי בקלט או יותר‪ ,‬אולי אפילו‬
‫אינסופי‪.‬‬
‫‪ .2‬לא נשמור את כל הגרף בזיכרון אלא נבנה חלקים ממנו‬
‫בהדרגה‪.‬‬
‫‪ .3‬במימוש‪ ,‬נבנה מנגנון לייצור מצבים עוקבים לפי האופרטורים‪.‬‬
‫‪ .4‬נעדיף לסייר במרחב בצורה חכמה‪ ,‬ע"י שימוש בהיוריסטיקות‬
‫(כללי אצבע)‪.‬‬
‫– זהו חיפוש מיודע‪ ,‬בניגוד לחיפושים עיוורים‪ ,‬שאינם מיודעים‪ .‬חיפוש‬
‫מיודע הינו חיפוש שמשתמש בידע נוסף על העולם או ידע ספציפי על‬
‫מרחב הבעיה‪.‬‬

‫• הבדלים נוספים?‪...‬‬

‫הערכת אלגוריתם חיפוש במרחב‬
‫בהינתן מרחב מצבים ואלגוריתם חיפוש נרצה להעריך‬
‫את האלגוריתם לפי שתי קבוצות מדדים מרכזיות‪.‬‬
‫משאבי חיפוש יכולים להימדד ע"י‪:‬‬
‫• זמן אבסולוטי\ אסימפטותי‪.‬‬
‫• מספר צמתים שפותחו‪.‬‬
‫• מספר צמתים שנוצרו‪.‬‬
‫• מספר קריאות לפונקציות‪.‬‬
‫• צריכת זיכרון אבסולוטי\אסימפטותי‪.‬‬

‫רעיונות נוספים? ‪...‬‬

‫טיב הפתרון יכול להימדד ע"י‪:‬‬
‫• אורך מסלול‪.‬‬
‫• סך מחירי האופרטורים‪.‬‬
‫• ערך תועלת לפי פונקציה‪.‬‬

‫מהו אלגוריתם אופטימלי?‬
‫הגישה בקורס זה ובתחום של בינה מלאכותית בכלל‪,‬‬
‫שונה מהמקובל בתחומים התיאורטיים של מדעי‬
‫המחשב!‬
‫ לא נחפש אלגוריתם אופטימלי במובן אבסולוטי כי‪...‬‬‫(א) לרוב לא נוכל לדעת כלל אם קיים כזה‪.‬‬
‫(ב) אין מדד אחד לאיכות אלגוריתם‪.‬‬
‫לפיכך‪ ,‬נאלץ למצוא פשרה מסוימת בין המשאבים‬
‫המוקצים לאלגוריתם לבין טיב הפתרונות שהוא מניב‪.‬‬

‫דוגמה להמחשה‬
‫ביחס לבעיית המבוך ‪ :‬בהינתן ‪ grid‬עם חסימות כלשהן בחלק מהמעברים‪ ,‬נקודת‬
‫התחלה ונקודת סיום‪ ,‬יש למצוא מסלול מצומת ההתחלה לצומת הסיום‪.‬‬
‫ניתן למדוד את‪...‬‬
‫– טיב הפתרון‪:‬‬
‫לפי אורך המסלול‪.‬‬
‫– יעילות האלג'‪:‬‬
‫לפי מספר הצמתים שפותחו\נוצרו‪.‬‬

‫לפי הגדרות אלו‪:‬‬
‫ אלג' אופטימלי הוא כזה שמבטיח פלט של מסלול קצר ביותר‪.‬‬‫ אלג' יעיל הוא כזה שמפתח "מעט" צמתים‪:‬‬‫• ביחס לחסמים אבסולוטיים\אסימפטותיים‪.‬‬
‫• ביחס לאלגוריתמים אחרים על פני בעיות ‪.Benchmark‬‬
‫• סטטיסטית ביחס לקלטים אקראיים מהתפלגות מסוימת‪.‬‬

‫ווריאציות להגדרת מרחבי חיפוש‬
‫רעיונות?‬
‫• הוספת פונקציית עלות (בעיות תכנון)‬
‫‪.𝐶𝑜𝑠𝑡: < 𝑠1 ,𝑠2 > 𝑠1 ∈ 𝑆,𝑠2 ∈ 𝑆𝑢𝑐𝑐 𝑠1 → R‬‬
‫• חלק או כל הקבוצות 𝐺‪ 𝑆,𝑂,‬אינסופיות‪.‬‬
‫• מצב סופי יחיד או רבים‪.‬‬
‫• הגדרת קבוצת מצבים התחלתיים אפשריים מהם נבחר‪:‬‬
‫– באקראי עפ"י התפלגות ידועה\לא ידועה‪.‬‬
‫– ע"י אלגוריתם החיפוש‪.‬‬
‫– ע"י יריב (‪.)adversary, rival‬‬

‫• פונקציית מעברים המעבירה למספר מצבים‪ ,‬מהם נבחר למשל‬
‫באחת מ‪ 3-‬הדרכים שבשקף הקודם‪.‬‬

‫ווריאציות נוספות‬
‫• במקום "מצבים סופיים"‪ ,‬נגדיר פונקציית ערך ונחפש‬
‫מצב (או מסלול למצב) בעל ערך אופטימלי‪ ,‬אלה הן‬
‫בעיות אופטימיזציה‪ .‬בהן‪ ,‬ניתן‪:‬‬
‫א‪ -‬להגדיר ערך סף שכל ערך טוב ממנו ייחשב מצב סופי‪.‬‬
‫ב‪ -‬להגדיר אלגוריתם חיפוש ‪ anytime‬שמשפר את‬
‫הפתרונות שהוא מוצא כאשר מאפשרים לו לרוץ יותר זמן‪.‬‬

‫• בעיות בהן מחפשים מספר מצבים\מסלולים‪ ,‬לפי‬
‫דרישות שונות\זהות‪ ,‬עם\ללא דרישה לסדר מסוים‪.‬‬

‫דוגמאות למרחבי חיפוש‬
)‫(תזכורת מההרצאה‬
.http://en.wikipedia.org/wiki/Missionaries_and_cannibals_problem ,‫בעיית הקניבלים‬
.http://en.wikipedia.org/wiki/Fifteen_puzzle ,15-puzzle ‫חידת‬
.http://en.wikipedia.org/wiki/Knight%27s_tour ,‫חידת מסלול הפרש‬
,)"‫חידת המכלים (מהסרט "מת לחיות‬
http://geekexplains.blogspot.co.il/2008/05/3-litres-and-5-litres-containers-puzzle.html
http://www.highiqpro.com/iq-brainteasers-puzzles-iq-tests/3-jugs-problem
.‫חיפוש ברשת האינטרנט‬
.GPS ‫ניווט עירוני עם‬









‫פעילות על הלוח‪...‬‬

‫תודה רבה! שאלות?‬
‫התרגול מבוסס על חומרים באדיבותם של‪:‬‬
‫– פרופ' שאול מרקוביץ'‬
‫– מר' עומר לוי‬
‫– ד"ר סאהר אסמיר‬
‫– גב' נלה גורביץ‬