יסודות מתמטיים של אלגורית אלגורית Dijkstra אופטימיזציה

האלגוריתמים A* ו- Dijkstra הם היסוד ב- Pathfinding ו-Gem traversal.הם בשימוש נרחב במערכות ניווט, רובוטיקה, ורשת routing.הבנת היסודות המתמטיים שלהם מסייע בקידוד הביצועים והיישומים שלהם.

ייצוג

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

עלויות ועתידנים

הליבה של אלגוריתמים אלה כרוכה חישוב העלות כדי להגיע לכל אלגוריתם Dijkstrastra משתמש העלות המצטברת מן ההתחלה Node, בעוד A * מוסיף הערכה היסטרית של העלות שנותרה למטרה.הההייסט חייב להיות סחיר, כלומר הוא לעולם לא overestimates את העלות האמיתית.

פורמולציה מתמטית

תן G = (V, E) להיות גרף עם vertices V ו הקצוות E. כל קצה (u, v) יש משקל w(u, v. המטרה היא למצוא את הנתיב הקצר ביותר מהתחל node s כדי לא לכוון tde t.

האלגוריתם של דייקסטרה מעדכן את המרחק d(v) עבור כל vertex v, ממוחזר כמו d(s) = 0 ו d(v) = ⁇ עבור v ⁇ s.It זה באופן רציונאלי בוחר את ה- vertex עם ה- D(v), ואז מרגיע את הקצוות השכנות שלו.

A * משנה זאת על ידי שילוב של h(v) heistimating את העלות מ v ל t. הפונקציה העדיפות הופכת f(v) = d(v) + h(v) האלגוריתם מרחיב נקודות על בסיס ה f(v).

אלגוריתאם יעילות

היעילות תלויה במבנים הנתונים המשמשים.אלגוריתם של דייקסטרה יש מורכבות זמן של O(E. +. | V. .) עם תור עדיפות. A * יכול להיות מהיר יותר אם הוא עתיד מעוצב היטב, צמצום מספר הצמתים הורחב.