כיצד להשתמש באלגוריתם ההונגרי?

מהו האלגוריתם לכסות את האלמנטים האפסיים עם מספר השורות המינימלי
מהו האלגוריתם לכסות את האלמנטים האפסיים עם מספר השורות המינימלי?

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

צעדים

  1. 1
    סדרו את המידע שלכם במטריצה עם ה"אנשים "משמאל ו"הפעילות" לאורך החלק העליון, עם ה"עלות "לכל זוג באמצע.
  2. 2
    ודא שהמטריצה מרובעת על ידי הוספת שורות / עמודות דמה במידת הצורך. באופן מקובל, כל אלמנט בשורה / העמודה הדמה זהה למספר הגדול ביותר במטריצה.
  3. 3
    צמצמו את השורות על ידי הפחתת הערך המינימלי של כל שורה מאותה שורה.
  4. 4
    אם יש עמודות ללא אפס, הפחת את העמודות על ידי הפחתת הערך המינימלי של כל עמודה מאותה עמודה.
  5. 5
    מכסים את האלמנטים האפסיים במספר השורות המינימלי שאפשר לכסות עליהם. (אם מספר השורות שווה למספר השורות, עבור לשלב 9)
    אתה יכול להשתמש באלגוריתם של פלויד-ורשל כדי לחשב את הנתיב הקצר ביותר מכל צומת לכל צומת
    אתה יכול להשתמש באלגוריתם של פלויד-ורשל כדי לחשב את הנתיב הקצר ביותר מכל צומת לכל צומת.
  6. 6
    הוסף את האלמנט המינימלי שלא נחשף לכל אלמנט מכוסה. אם אלמנט מכוסה פעמיים, הוסף אליו את האלמנט המינימלי פעמיים.
  7. 7
    מחסרים את האלמנט המינימלי מכל אלמנט במטריצה.
  8. 8
    מכסים את אפס האלמנטים שוב. אם מספר השורות המכסות את רכיבי האפס אינו שווה למספר השורות, חזור לשלב 6.
  9. 9
    בחר התאמה על ידי בחירה בקבוצת אפסים כך שכל שורה או עמודה יבחרו רק אחת.
  10. 10
    החל את ההתאמה על המטריצה המקורית, תוך התעלמות משורות הדמה. זה מראה מי צריך לעשות איזו פעילות, והוספת העלויות תתן את העלות המינימלית הכוללת.

טיפים

  • אם ברצונך למצוא התאמה מקסימאלית ולא מינימלית, הכפל כל מספר ב -1 בשלב 1, ולאחר מכן בצע את השלבים ככתוב.
  • תובנה מרכזית כאן היא שהוספת אותו מספר לכל הערכים בשורה אחת או בעמודה של המטריצה מייצרת מטריצה חדשה עם אותו פתרון אופטימלי. זה מה שמאפשר לנו לברוח מהפחתת המטריצה בשלב 6.

דברים שתזדקק להם

  • עיתון
  • עט עפרון

שאלות ותשובות

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

FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail