» «

TSP

בעיית הסוכן הנוסע
מהי בעיית הסוכן הנוסע והאם קיים אלגוריתם לפתרונה?



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

המשימה הלכאורה פשוטה הזו היא אחת הבעיות המסובכות בעולם המדעי. היא זכתה לשם "בעיית הסוכן הנוסע" (Travelling Salesman Problem) ומטרתה היא אכן למצוא אלגוריתם שימצא את המסלול הקצר ביותר שיחבר כמה נקודות גאוגרפיות עד החזרה לנקודה שממנה מתחילים.

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

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


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

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

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

דרכים אחרות? - בטח לא דרך ידנית.

רק שנבין כמה הבעיה מורכבת - פתרון בניסוי וטעייה הוא בלתי אפשרי כאן, כי אם יש לנו 10 נקודות בלבד, יש לה !N אפשרויות, N עצרת!, כלומר נצטרך להשוות
את המרחקים בלא פחות מ-3,628,800 אפשרויות או מסלולים אפשריים.

יותר מקומות? - זה רק יגדל. כדי שמחשב מהיר יעבור על כל האפשרויות שיש ל-100 יעדים, זה ייקח לו זמן בלתי סביר של 40 מיליון שנה עד שיגיע לתשובה.


#תולדות הבעיה
במאה ה-19 היו ראשונים שניסחו את בעיית הסוכן הנוסע, שבראשי תיבות מכונה TSP, המתמטיקאים ויליאם המילטון מאירלנד והמתמטיקאי הבריטי תומאס קירקמן (Thomas Kirkman).

ב-1857 המילטון אף פיתח את "משחק איקוסיאן" (Icosian game) שהמטרה בו הייתה למצוא את "המסלול ההמילטוני" שהוא הפתרון הקצר ביותר.

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

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

בשנת 2006 הצליחו לחקור ולוודא מסלול אופטימלי שעבר ב-85,900 נקודות. הוא מתוחזק ומאפשר מאז כלי בדיקה לאלגוריתמים שמציעים חוקרים לפתרון הבעיה.


#אז מה עושים?
השיטה הפשוטה היא הגרידית (Greedy). השיטה היא מכל נקודה ללכת אל הכי קרובה אליה.

שיטות אחרות בסרטונים שלמטה. הן לא מבטיחות את המסלול הקצר ביותר כמובן.


הנה אלגוריתם הסוכן הנוסע (עברית):

https://youtu.be/IUYaqz2hxN8


דוגמה להתמודדות עם חוט:

https://youtu.be/xi5dWND499g


כמה אסטרטגיות למסלול:

https://youtu.be/SC5CX8drAtU


בתכנות:

https://youtu.be/hvDx7q6vcWM


הסוכן הנוסע ובעיית ייעול המסלול (עברית):

https://youtu.be/MMt3I2P1j3I


ועוד הסבר על אלגוריתם קירוב ויעילותו (עברית):

https://youtu.be/9Uwp8NPdti0


אֵאוּרִיקַה - האנציקלופדיה של הסקרנות!

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

אלפי נושאים, תמונות וסרטונים, מפתיעים, מסקרנים וממוקדים.

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

בואו לגלות, לחקור, ולקבל השראה!

אֵאוּרִיקַה - האנציקלופדיה של הסקרנות!

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