השוואה בין אלגוריתמים של ניווט רובוט דרך מכשולים

Slides:



Advertisements
Similar presentations
ממיבחניםC שאלות ++.
Advertisements

1 Formal Specifications for Complex Systems (236368) Tutorial #4 Refinement in Z: data refinement; operations refinement; their combinations.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב'
תמחיר תהליך. מערכת תמחיר תהליך מערכת זו נועדה לספק מידע, כמו מערכת תמחיר הזמנה, על עלות המוצרים שיוצרו בתקופה ועל עלות המוצרים שבתהליך הייצור בסוף התקופה.
רקורסיות נושאי השיעור פתרון משוואות רקורסיביות שיטת ההצבה
משטר דינמי המשך – © Dima Elenbogen :55 חידה שכדאי לעבור עליה: 2011/ho/WCFiles/%D7%97%D7%99%D7%93%D7%94%20%D7%A2%D7%9D%20%D7%91%D7%95%D7%A0%D7%95%D7%A1.doc.
Inverse kinematics (Craig ch.4) ב"ה. Pieper’s solution נתבונן ברובוט עם 6 מפרקי סיבוב כאשר שלושת הצירים של המפרקים האחרונים נחתכים. נקודת החיתוך נתונה.
חורף - תשס " ג DBMS, Design1 שימור תלויות אינטואיציה : כל תלות פונקציונלית שהתקיימה בסכמה המקורית מתקיימת גם בסכמה המפורקת. מטרה : כאשר מעדכנים.
תכנות תרגול 6 שבוע : חישוב e זוהי הנוסחא לחישוב e נראה כיצד לתרגם אותה לפונקציה n n.
תרגול 5 רקורסיות. רקורסיה קריאה של פונקציה לעצמה –באופן ישיר או באופן עקיף היתרון : תכנות של דברים מסובכים נעשה ברור ונוח יותר, מכיוון שזו למעשה צורת.
שאלות חזרה לבחינה. שאלה דיסקים אופטיים מסוג WORM (write-once-read-many) משמשים חברות לצורך איחסון כמויות גדולות של מידע באופן קבוע ומבלי שניתן לשנותו.
Power Consumption Awareness by using a Pedometer המעבדה לרשתות מחשבים המעבדה לרשתות מחשבים סמסטר אביב תשס " ח סמסטר אביב תשס " ח מנחים: איתי דברן – המעבדה.
אוטומט מחסנית הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 11.
חורף - תשס " ג DBMS, צורות נורמליות 1 צורה נורמלית שלישית - 3NF הגדרה : תהי R סכמה רלציונית ותהי F קבוצת תלויות פונקציונליות מעל R. R היא ב -3NF.
1 Formal Specifications for Complex Systems (236368) Tutorial #5 Refinement in Z: data refinement; operations refinement; their combinations.
בהסתברות לפחות למצא בעיה במודל PAC עבור בהסתברות ε הפונקציה f טועה מודל ONLINE 1. אחרי כל טעות הפונקציה משתפרת 2. מספר הטעיות קטן.
ממשק המשתמש שימושיות או בעצם תכליפאניות?. ISO9241 Web usability is the extent to which a web site enables users, in a given context of use, to achieve.
א " ב, מילים, ושפות הפקולטה למדעי המחשב אוטומטים ושפות פורמליות ( ) תרגיל מספר 1.
Formal Specifications for Complex Systems (236368) Tutorial #6 appendix Statecharts vs. Raphsody 7 (theory vs. practice)
תכנות תרגול 6 שבוע : תרגיל שורש של מספר מחושב לפי הסדרה הבאה : root 0 = 1 root n = root n-1 + a / root n-1 2 כאשר האיבר ה n של הסדרה הוא קירוב.
Tangent Bug יישום תומר באום Based on ch. 2 in “Principles of robot motion” By Choset et al. ב"הב"ה.
Hunting A Cooperative Hunting Behavior by Mobile-robot Troops (by Hiroaki Yamaguchy) מוגש ע " י רועי ואורן.
מערכות הפעלה ( אביב 2009) חגית עטיה ©1 מערכת קבצים log-structured  ה log הוא העותק היחיד של הנתונים  כאשר משנים בלוק (data, header) פשוט כותבים את הבלוק.
01/01/01 אמיר ווינשטוק עירן חוף שקופית מס ’ 1 מימוש ובדיקת אלגוריתם ללמידה ע"י חיזוקים עבור רובוט המשחק הוקי - אויר : מגישים עירן חוף אמיר ווינשטוק : מנחה.
Motion planning via potential fields תומר באום Based on ch. 4 in “Principles of robot motion” By Choset et al. ב"הב"ה.
איתור ותפיסת כדור לזריקה תוך שיתוף שתי זרועות רובוטיות הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל המעבדה לבקרה ורובוטיקה תופאחה חיסאוי יגאל סיגל.
ערכים עצמיים בשיטות נומריות. משוואה אופינית X מציין וקטור עצמי מציינת ערך עצמי תואם לוקטור.
מבני בקרה לולאות. שאלה #1 שאלה ב' – תכתוב תוכנה הכותבת את תפריט הבאה Type 1 to find the area of a circle Type 2 to find the circumference of a circle.
Galileo Navigation System Software Systems lab Software Systems lab סמסטר חורף תשס " ט סמסטר חורף תשס " ט מנחה: ולדימיר זדורנוב משה חיות מבצעים: גליה סימנובסקי.
Data Structures, CS, TAU, Perfect Hashing 1 Perfect Hashing בעיה : נתונה קבוצה S של n מפתחות מתחום U השוואה ל - Hash : * טבלה קבועה (Hash רגיל - דינאמי.
תכנות תרגול 5 שבוע : הגדרת פונקציות return-value-type function-name(parameter1, parameter2, …) הגדרת סוג הערכים שהפונקציה מחזירה שם הפונקציהרשימת.
Remember Remember The 5 th of November. תרגול 2 קובץ סדרתי.
1 Data Structures, CS, TAU, Perfect Hashing בעיה: נתונה קבוצה S של n מפתחות מתחום U השוואה ל- Hash : * טבלה קבועה (Hash רגיל - דינאמי) * רוצים זמן קבוע.
משטר דינמי – © Dima Elenbogen :14. הגדרת cd ו -pd cd - הזמן שעובר בין הרגע שראשון אותות הכניסה יוצא מתחום לוגי עד אשר אות המוצא יוצא מתחום.
מודל הלמידה מדוגמאות Learning from Examples קלט: אוסף של דוגמאות פלט: קונסיסטנטי עם פונקציה f ב- C ז"א קונסיסטנטי עם S ז"א מודל הלמידה מדוגמאות Learning.
עקרון ההכלה וההדחה.
יחס סדר חלקי.
תכנות מונחה עצמים Object Oriented Programming (OOP) אתגר מחזור ב' Templates תבניות.
מבוא למדעי המחשב תרגול 3 שעת קבלה : יום שני 11:00-12:00 דוא " ל :
Markov Decision Processes (MDP) תומר באום Based on ch. 14 in “Probabilistic Robotics” By Thrun et al. ב"הב"ה.
מתמטיקה בדידה תרגול 2.
1 מבוא למדעי המחשב סיבוכיות. 2 סיבוכיות - מוטיבציה סידרת פיבונאצ'י: long fibonacci (int n) { if (n == 1 || n == 2) return 1; else return (fibonacci(n-1)
ניתוח בחינת הבגרות במכניקה ומעבר..... מכניקה – שאלה 3.
Safari On-line books. מה זה ספארי ספארי זו ספריה וירטואלית בנושא מחשבים היא כוללת יותר מ כותרים כל הספרים הם בטקסט מלא ניתן לחפש ספר בנושא מסוים.
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם.
Text to speech In Mobile Phones איתי לוי. הקדמה שימוש בהודעות טקסט על המכשירים הסלולארים היא דרך תקשורת מאוד פופולארית בימינו אשר משתמשים בה למטרות רבות,
11 Introduction to Programming in C - Fall 2010 – Erez Sharvit, Amir Menczel 1 Introduction to Programming in C תרגול
Interpolation Functions in Matlab By Dmitriy Katsif.
1 מבוא למדעי המחשב רקורסיה. 2 רקורסיה היא שיטה לפתרון בעיות המבוססת על העיקרון העומד ביסוד אינדוקציה מתמטית: אם ידועה הדרך לפתור בעיה עבור המקרים הבסיסיים.
תרגול מס ' 1: מבני נתונים – מבוא. כללי מבנה נתונים – דרך לארגן נתונים במחשב ולגשת אליהם. בקורס זה נלמד על מבני נתונים שונים אשר משמשים לבניית אלגוריתמים.
פיתוח מערכות מידע Class diagrams Aggregation, Composition and Generalization.
Practice session 3 תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי ) שיטות חישוב : Applicative & Normal Evaluation Partial Evaluation.
תכנות אסינכרוני, תקשורת ופיתוח אפליקציות ל- Windows 8.1 ואפליקציות ל- Windows Phone 8 Control (Part II)
Practice session 3.  תחביר ממשי ( קונקרטי ) ותחביר מופשט ( אבסטרקטי )  שיטות חישוב : Applicative & Normal Evaluation.
Costs and Filters Dr. Avi Rosenfeld Department of Industrial Engineering Jerusalem College of Technology
דוח אמצע סמסטר אביב תשס"ב 2002 שם הפרויקט :סביבת בדיקה ל PCIX PCIX environment מנחה : איתי אדר מגישים : שמיל ניסימוב גוילי יואב הטכניון.
קשר לוגי : סיבה ותוצאה. במשפט – דוגמות קלות בגלל הגשם החלטנו לא לנסוע לטיול לחיפה. הרצון שלי להצליח הניע אותי להשקיע בלימודים. ציפורים נודדות בין יבשות.
Java Reflection הוכן על-ידי אחמד ג'בארה
מספרים אקראיים ניתן לייצר מספרים אקראיים ע"י הפונקציה int rand(void);
מבוא למדעי המחשב סיבוכיות.
SQL בסיסי – הגדרה אינדוקטיבית
חיפוש לוקלי Local Search.
פרוקטוז, C6H12O6 , חד-סוכר מיוחד
מבוא ל Maven אליהו חלסצ'י תכנות מתקדם תרגול מספר 3
ממשקים - interfaces איך לאפשר "הורשה מרובה".
הויגנס נגד פרמה וחוק סנל- סיבתיות מול אופטימיזציה בטבע - האם יש מקום בתוכנית הלימודים בפיזיקה? חזי יצחק תיכון לחינוך סביבתי, המחלקה.
תרגול 8 תחומי הכרה פונקציות
תוכנה 1 תרגול 13 – סיכום.
A* and AO* Search Algorithm
NG Interpolation: Divided Differences
Presentation transcript:

השוואה בין אלגוריתמים של ניווט רובוט דרך מכשולים הטכניון - מכון טכנולוגי לישראל TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY הפקולטה להנדסת חשמל המעבדה לבקרה ורובוטיקה השוואה בין אלגוריתמים של ניווט רובוט דרך מכשולים מגישים: מיכאל פיטרמן ערן אליהו מנחה: קובי כוחיי סמסטר: אביב תשס"ד

הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה הקדמה הפרויקט הזה הוא מעין פרויקט המשך לפרויקט שעסק בפיתוח אלגוריתם של רובוט נייד להגעה למטרה באמצעות הימנעות ממכשולים. בפרויקט הזה, החלטנו לעסוק בהשוואה של אלגוריתמים קיימים להימנעות ממכשולים והגעה למטרה והשוואתם לאלגוריתם שמוצא את המסלול האידיאלי, כאשר המכשולים הינם נייחים, ומיקום המכשולים אינו ידוע לרובוט מראש. הפיתוח כולו נעשה בסביבת Microsoft Visual Studio .NET בשפת С++, בניגוד לאלגוריתם הקודם שנכתב בשפת C. בפרויקט הזה השתמשנו בשני אלגוריתמים עיקריים. האלגוריתם הראשון הוא האלגוריתם שבו השתמשנו בפרויקט הראשון, אשר מתבסס על מפת הפוטנציאלים הסטאטית והדינאמית. האלגוריתם השני הוא אלגוריתם שמשתמש בשיטת ה – VFF ( Virtual Force Field), כשהרעיון הוא שכל מכשול מפעיל כוח וירטואלי על הרובוט והמטרה מפעילה כוח, אך בכיוון ההפוך. האלגוריתם השלישי בו השתמשנו הוא אלגוריתם שמוצא את הדרך האופטימאלית למטרה, כאשר המידע שהוא מקבל על המפה, הוא מידע מלא על המכשולים. האלגוריתם הזה נועד בעיקר בשביל השוואה ובדיקת היעילות של שני האלגוריתמים האחרים.

תיאור הבעיה הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה תיאור הבעיה נתונה סביבה מוגדרת, שבתוכה מכשולים נייחים. כמו כן נתונה נקודת ההתחלה של הרובוט ונקודת היעד שלו. מטרת הרובוט היא להגיע לנקודת היעד בלי להתנגש במכשולים. הרובוט מאויש בחיישנים אשר מסוגלים להבחין במכשול במרחק מסוים מהרובוט. הרובוט לא יודע מראש על מיקום המכשולים. המטרה של הרובוט היא להגיע לנקודת היעד מנקודת ההתחלה בצורה האופטימאלית. אנו נממש את שני האלגוריתמים בתכנות מונחה עצמים ונפעיל אותם על הרובוט במספר מכשולים שונים ופרמטרים שונים של האלגוריתמים, ואחר כך נציג את התוצאות של הבדיקות וננסה לנתחן. הניווט של הרובוט יעשה בשני שלבים: ההכנה ההתחלתית של המסלול, כאשר לרובוט ידוע גודל המפה, ונקודת הסוף, אך לא מיקום המכשולים. בעצם זוהי הכנת מפה על "עוור". 2. ניתוח זמן אמת של המידע מהחיישנים של הרובוט ועקיפת המכשולים או הפעלת מנגנון הצלה ברגע שהרובוט נתקע.

מבנה התכנית הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה מבנה התכנית התכנית כתובה בשיטת תכנות מונחה עצמים, כאשר כל פרט בהדמיה, מיוצג ע"י מחלקה בתכנית. בתכנית שלנו קיימות 4 מחלקת ראשיות: רובוט אלגוריתם 1 אלגוריתם 2 האלגוריתם האופטימאלי קיימות, כמו כן, מספר מחלקות עזר: מפה הדרך שעבר הרובוט כוח המופעל על הרובוט המחלקות מחולקות למספר קבצים בפרויקט בשביל נוחות העבודה: Robcpp.cpp – קובץ המכיל את הפקודות להרצה של התכנית, את המכשול ואת יצירת האובייקטים הראשוניים. Misc.cpp – קובץ אחראי לקביעת הפרמטרים של הריצה, למבני העזר ולמחלקות העזר. Algorythm1.cpp – קובץ המכיל את המחלקה של האלגוריתם הראשון. Algorythm2.cpp – קובץ המכיל את המחלקה של האלגוריתם השני. Optimal.cpp – קובץ המכיל את המחלקה של האלגוריתם האופטימאלי.

מבנה התכנית הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה מחלקת Rob: הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה מבנה התכנית מחלקת Rob: המחלקה הזו בעצם אחראית לאובייקט הרובוט עצמו. היא מטפלת בפונקציות העיקריות של הרובוט: יצירת רובוט חדש – הגדרת נקודת היעד, נקודת ההתחלה, הכיוון ההתחלתי. הזזת הרובוט בכיוון שהוא פונה אליו. סיבוב הרובוט סביב צירו. חישוב קואורדינאטות המכשולים אשר הרובוט רואה בעזרת החיישנים שלו. החזרת ערכים שונים של הרובוט, כגון נקודות יעד ומיקום עכשיו, מיקום המכשולים וכו'. מחלקת Algo1 ו – Algo2: המחלקות של האלגוריתמים אחראיות למציאת הצעד הבא של הרובוט. האובייקט של האלגוריתם, מקבל את הנתונים של הרובוט מהרובוט עצמו ולפי הנתונים האלה, הוא מחליט לאיזה כיוון הרובוט צריך לנוע ונותן את הפקודה המתאימה בעזרת המתודה המתאימה של אובייקט הרובוט. מחלקת Optimal: המחלקה של האלגוריתם האופטימאלי פועלת בצורה שונה משני האלגוריתמים האחרים. המחלקה הזו נועדה רק בשביל הבדיקה ולכן היא לא צריכה להזיז את האובייקט של הרובוט. היא פשוט מקבלת את כל נתוני המוצא של התנועה – נקודת ההתחלה ונקודת הסוף ואת מפת המכשולים הכללית (לא זאת שהרובוט רואה, אלא את המפה של כל המכשולים שלא ידועה לרובוט), ולפי המפה הזו, האלגוריתם מחשב את הדרך האופטימאלית למטרה. מחלקת Map: המחלקה הזו מטפלת בכל מה שקשור לעיבוד מפות, כאשר מפה היא פשוט מטריצה בגודל שנקבע בפרמטרים, כאשר לכל נקודה של המטריצה קיים ערך מסוים כדי לתת משמעות לכל נקודה – נקודה ריקה, מכשול וכו'. במשך התכנית, אנו משתמשים בכמה מפות, כאשר החשובה ביניהן זו המפה הכללית בה מסומנים המכשולים. המחלקה יודעת להציב ערך לנקודה, להחזיר ערך של נקודה, להעתיק מפה למפה אחרת, להדפיס מפה על המסך.

הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה אלגוריתם 1 באלגוריתם הזה נשתמש במושג "מפת פוטנציאל". הכוונה במושג הזה היא שאנו מחלקים את המרחב לרשת (מטריצה) שכל תא בה מיוצג ע"י ערך כלשהו, האלגוריתם מחליט לאן ינוע הרובוט לפי הערך של התא בו הוא נמצא והערך של התאים ליד. האלגוריתם שלנו, בעצם מורכב משתי מפות עזר – קיימות שתי מפות פוטנציאל: מפת הפוטנציאל הסטטי – המפה הזו מחושבת מנקודת היעד, ובכל נקודה של המפה, ערך הנקודה הוא, כפי שאמרנו, המרחק המינימאלי מנקודת היעד, עם התחשבות במכשולים הידועים לנו מראש (בתחילת הריצה, אין מכשולים ידועים מראש). מפת הפוטנציאל הדינאמי – המפה הזו היא מפה יותר קטנה מהמפה הקודמת, והיא מחושבת כל צעד מחדש, ע"י מידע המגיע ממערך החיישנים של הרובוט. בכל מקום שקיים מכשול, שלא ידענו עליו מראש, נוצרת גבעת פוטנציאל. בכל צעד, כאשר מחושב הפוטנציאל הדינאמי באזור, אנו מחברים (חיבור בין תאים) את הפוטנציאל הדינאמי באזור ואת הפוטנציאל הסטטי באזור מסביב לרובוט (לא כל המפה, אלא רק האזור בקרבת הרובוט) ולפי המפה הנוצרת, הרובוט מחליט על כיוון הצעד הבא שלו.

אלגוריתם 2 Ftotal = ∑Fr + Ft הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה אלגוריתם 2 האלגוריתם הזה מבוסס על שיטה הנקראת VFF – Virtual Force Field. האלגוריתם הזה משתמש בשדה וירטואלי על מנת לכוון את הרובוט כלפי מטרתו. העיקרון הוא פשוט: המטרה מפעילה כוח מסוים על הרובוט, והמכשולים שהרובוט רואה מפעילים עליו כוח בכיוון הנגדי, וע"י כך דוחים את הרובוט. כאשר אנו מוצאים את השקול של כל הכוחות הפועלים על הרובוט, אנו קובעים את כיוון תנועתו לפי הכיוון של הווקטור השקול של הכוחות אשר מצאנו. אם נסמן בתור Fr את הכוח הדוחה של כל מכשול, ובתור Ft את הכוח המושך של המטרה, אז הנוסחא לווקטור הכללי היא כלהלן: Ftotal = ∑Fr + Ft הנוסחא שלפיה אנו מחשבים את הכוח המושך של המטרה היא:

אלגוריתם 2 הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה אלגוריתם 2 הנוסחא לחישוב הכוח הדוחה של מכשול מסוים היא: הנוסחא הסופית היא:

הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה האלגוריתם האופטימלי המטרה של האלגוריתם האופטימאלי היא למצוא את המסלול הכי מהיר (עם המספר המינימאלי של צעדים והמספר המינימאלי של פניות) לנקודת היעד. שני הקריטריונים מתקיימים בצורה הבאה: החישוב הראשון שנעשה הוא חישוב מפת פוטנציאל סטטית– אנו מחשבים את המפה עם המכשולים, ולא את המפה הריקה כמו שעשינו באלגוריתם הראשון. אם נבחן את האלגוריתם שבו זה נעשה, כאשר אנו פשוט מוסיפים אחד לערך של הנקודה של כל שכן של הנקודה שאנו עובדים עליה, ונזכור שיש לנו רק ארבעה כיווני תנועה אפשריים, אנו נראה שערך נקודת ההתחלה (נקודת היעד היא 0) הוא בדיוק מספר הצעדים המינימאלי שלוקח לרובוט להגיע לנקודת היעד. לכן, אם רק נסתכל על הערך של נקודת ההתחלה, ידוע לנו מספר הצעדים המינימאלי שלוקח לרובוט להגיע לנקודת היעד. כעת, כל מה שנשאר לנו, זה פשוט להריץ את הרובוט על כל המסלולים האפשריים שכוללים מספר צעדים מינימאלי ולקחת את המסלול עם מספר הפניות הקטן ביותר. זה נעשה ע"י פונקציה רקורסיבית פשוטה אשר בנויה בצורה הבאה:

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

השוואות הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה השוואות ריכזנו את כל התוצאות שקיבלנו מהרצת האלגוריתמים השונים על שלושה מכשולים שונים בנקודות ההתחלה וסוף שונות. רב המסלולים ניתנים לפי קואורדינאטות, אך לחלק מהמסלולים מצורפת מפה המראה את תנועת הרובוט. ניתן לראות בצבע אדום את המכשול עצמו, בצבע כחול את התנועה של הרובוט ובצבע ירוק את הנקודות בהן הרובוט נכנס למנגנון הצלה. המסלול הראשון שאנו רואים בכל נקודה, הוא המסלול האופטימאלי, והוא מראה את הדרך האידיאלית למטרה. אפשר להשתמש במפה שלו בשביל להשוות לתוצאות באלגוריתמים האחרים. לשם השוואה בין שני האלגוריתמים, הרצנו הרבה ניסויים עם פרמטרים שונים ועם נקודות התחלה וסוף שונות על שלושה מכשולים שונים.על כל נקודה, הרצנו את האלגוריתם הראשון עם גודל מפה דינאמית שונה (ז"א טווח חיישנים שונה) ופרמטרים של EXTENT ו – SLOPE שונים. באלגוריתם השני, גם השתמשנו בגדלים שונים של מפות ושינינו את פרמטר ה – RATIO שזה היחס בין הכוחות הפועלים על הרובוט. כדי להשוות בין ביצועי שני האלגוריתמים בצורה יותר מדויקת, החלטנו להשתמש בקריטריון אשר בודק את יעילות האלגוריתם בכל ניסוי. צריך לזכור שהאינדיקאטורים שאנו משתמשים בהם, הם מספר הצעדים של הרובוט עד שהוא מגיע ליעד שלו ומספר הפעמים שהוא פנה. הקריטריון החשוב יותר הוא מספר הצעדים כי במציאות, זה הזמן שלוקח לרובוט להגיע. מספר הפניות מאט את הקצב רק קלות, בגלל הזמן שמבוזבז על פניות וההאטה לפני הפניה. הציונים הם בטווח של 0 – 1, כאשר 0 זה ציון לניסוי בו הרובוט לא הצליח להגיע למטרה בכלל ו - 1 זה הציון של האלגוריתם האופטימאלי. הניסוי עם מספר הצעדים המקסימאלי ומספר הפניות המקסימאלי קיבל את הציון 0.5, ולכן הנוסחא בה השתמשנו לחישוב הציון היא :

הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה גרפים

הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה גרפים

גרפים

סיכום באופן כללי, אנו יכולים להבחין בכמה הבדלים בין שני האלגוריתמים: הטכניון – מכון טכנולוגי לישראל מעבדה לבקרה סיכום באופן כללי, אנו יכולים להבחין בכמה הבדלים בין שני האלגוריתמים: בתנועה של האלגוריתם הראשון קיימות הרבה מאוד חזרות לאותה נקודה. הסיבה לכך היא שבאלגוריתם הזה, לרובוט יש אפשרות לחזור לאותה נקודה. באלגוריתם השני, לרובוט כמעט אין מצבים בהם הוא חוזר לאותה נקודה. באלגוריתם השני אנו רואים מסלולים מאוד ארוכים ולא הכרחיים.זה נובע בד"כ מבעיות במנגנון ההצלה. הבעיה היא שבגלל שהרובוט יכול לנוע רק בארבעה כיוונים, והמנגנון לא תמיד מצליח לזהות את המצב בו הרובוט אמור לחזור למצב הרגיל. היתרון של האלגוריתם הראשון מול השני הוא, שאם קיימת דרך להגיע לנקודת הסוף, הוא יביא את הרובוט לנקודה הזו ב – 100% מהמקרים, לעומת האלגוריתם השני אשר אחוז ההצלחה שלו יותר נמוך. לפי התוצאות שראינו, קשה להגיד איזה מהאלגוריתמים יותר יעיל. למרות שהאלגוריתם הראשון קיבל ציונים גבוהים יותר בסך הכל, קשה להגיד שהוא יותר טוב, מכיוון שהוא איטי יחסית לאלגוריתם השני. מצד שני, היתרון הבולט של האלגוריתם הראשון הוא היכולת למצוא את הדרך, אם היא קיימת, ב – 100% מהמקרים. ז"א שנוצרת לנו פה החלטה של בטחון הגעה כנגד יעילות הגעה, וההחלטה הזו תלויה מאוד בסוג המפה בה אנו משתמשים.