אלגוריתם חמדן – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
ArieRavad (שיחה | תרומות)
ArieRavad (שיחה | תרומות)
שורה 13:
==דוגמאות==
[[בעיית הסוכן הנוסע]]: סוכן מכירות רוצה לעבור במספר יישובים כדי למכור את הסחורה שלו. המטרה היא למצוא את המסלול הקצר ביותר שיעבור דרך כל היישובים. על פי שיטת האלגוריתם החמדן, הסוכן הנוסע צריך להסתכל בכל פעם במפה ולנסוע ליישוב הקרוב ביותר בו לא ביקר עדיין.
 
בעיית בחירת פעילויות: יש לבחור פעילויות מתוך רשימה כך שלוח הזמנים יתמלא בכמה שיותר זמן פעילות.
האלגוריתם יבחר בכל פעם את הפעילות הקרובה הארוכה ביותר, ישמור את שעת הסיום שלה ויחפש את הפעילות הבאה הארוכה אשר ביותר אשר מתחילה לאחר השעה השמורה.
 
במקרה זה שיטת האלגוריתם החמדן לא תיתן בהכרח את הפתרון הטוב ביותר. כפי שניתן לראות באיור, יכול להיות מצב בו הסוכן ידלג על יישוב מסוים משום שישנו יישוב אחר קרוב יותר, כך שיאלץ לחזור ליישוב עליו דילג בסוף המסלול ולעשות דרך ארוכה יותר.
 
[[בעיית בחירת פעילויות]]: יש לבחור פעילויות מתוך רשימה כך שלוח הזמנים יתמלא בכמה שיותר זמן פעילות.
האלגוריתם יבחר בכל פעם את הפעילות הקרובה הארוכה ביותר, ישמור את שעת הסיום שלה ויחפש את הפעילות הבאה הארוכה אשר ביותר אשר מתחילה לאחר השעה השמורה.
 
[[בעיית תרמיל הגב]]: יש לבחור את מספר המטבעות הנמוך ביותר הנדרש כדי להגיע לסכום של 36 אגורות, כאשר ערכי המטבעות הם: 20, 10, 5 ו-1. על פי שיטת האלגוריתם החמדן, בכל שלב נבחר המטבע שערכו הוא הגבוה ביותר, אך עדיין נמוך משארית הסכום שעדיין לא חושבה, עד להשלמת הסכום.