חיפוש לעומק איטרטיבי מעמיק – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
קישור פנימי
תגיות: עריכה ממכשיר נייד עריכה דרך האתר הנייד
סקריפט החלפות (ליניארי), החלפה (הוא)
שורה 2:
 
==חיפוש לעומק וחיפוש לרוחב==
 
===חיפוש לעומק===
 
{{ערך מורחב|חיפוש לעומק}}
 
חיפוש לעומק הוא אלגוריתם המתחיל את החיפוש משורש בגרף ומתקדם לאורך הגרף עד אשר הוא נתקע, לאחר מכן הוא חוזר על עקבותיו עד שהוא יכול לבחור להתקדם לצומת אליו טרם הגיע. אחד מיתרונותיו הוא בכך שסיבוכיות הזיכרון בו הוא משתמש לינאריתליניארית ביחס לעומק המסלול אותו הוא בודק באותו שלב, כי הוא רק נדרש לזכור איך הגיע לכל צומת ואילו בנים של כל צומת סרק כבר. חסרונותיו הם שאף אם קיים פתרון במרחק קטן יותר מהקדקוד, אם האלגוריתם לא פנה לכיוונו בהתחלה יכול לעבור הרבה זמן אם העץ מאוד עמוק עד שהוא יימצא, ואף לא לעצור אם העומק אינסופי. כמו כן המסלול הראשון אותו מוצא האלגוריתם לעבר פתרון לא מובטח שהינושהוא המסלול הקצר ביותר אל פתרון.
 
===חיפוש לרוחב===
שורה 19 ⟵ 18:
האלגוריתם עובד באיטרציות בכל איטרציה i מריצים את אלגוריתם חיפוש לעומק שיסרוק את כל העץ עד לעומק i, אם הפתרון נמצא הוא יחזיר אותו, אם לא נשארה עוד רמה לפתח מחזיר שאין פתרון, אחרת עובר לאיטרציה i+1.
 
האלגוריתם מבטיח שאם הפתרון בעומק המינימלי נמצא בעומק k הוא יימצא באיטרציה k מאחר שעד לאיטרציה זו האלגוריתם לא סורק בעומקים k ומעלה ובעומק k הצומת עם הפתרון תיסרק ותוחזר. סיבוכיות הזיכרון באיטרציה i לינאריתליניארית ב i כי מריצים חיפוש לעומק עד עומק i. סיבוכיות הזמן פולינומית בכמות הצמתים עד עומק k.
 
[[קטגוריה : אלגוריתמי חיפוש]]