פרק 2:

‫‪ ‬‬
‫‪ ‬‬
‫פרק ‪ :6‬מסילות המילטון‬
‫דוגמה של מעגל המילטוני בגרף‪-‬מסילה סגורה הכוללת כל קודקוד פעם אחת בדיוק‪ ,‬ומסתיימת בקודקוד ההתחלה‪.‬‬
‫מבוא לפרק‪:‬‬
‫בפרק ‪ 5‬התעסקנו בשאלה עבור איזה גרפים ניתן לעבור על כל צלעות הגרף בדיוק פעם‬
‫אחת‪.‬‬
‫דרך משפט ‪ 5.1‬הבאנו אפיון של כל אותם הגרפים‪.‬‬
‫בפרק זה‪ ,‬וכן בפרק הבא‪ ,‬נדון במסלול מסוג אחר‪ ,‬ונשאל‪ :‬עבור איזה גרפים ניתן לעבור על‬
‫כל קודקוד בדיוק פעם אחת?‬
‫בניגוד לשאלת הצלעות‪ ,‬אין אפיון של גרפים אלה‪ .‬אין אפילו אלגוריתם למציאת מסלולים‬
‫בגרף כללי עליו ידוע שקיים מסלול כזה )!( ‪) ,‬כדוגמת האלגוריתם של ‪ Fleury‬מ פרק ‪.(5‬‬
‫דרך כמעט יחידה להכריע האם קיים מעגל המילטוני בגרף וכן למצוא כמה כאלה יש‪ ,‬היא על‬
‫ידי חיפוש!‬
‫נעבור לגוף הפרק‪ ,‬ונלמד מה ניתן להסיק בכיוון‪ .‬לאורך הדיון‪ ,‬נתייחס ליישומים שונים‬
‫למיניהם‪ ,‬ברוח דומה לנעשה בפרק ‪.5‬‬
‫הגדרה‪:‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪1‬‬
‫יהא > ‪ G =< V , E‬גרף‪.‬‬
‫•‬
‫מסלול המילטוני הוא מסלול העובר בכל קודקוד של ‪ G‬בדיוק פעם אחת‪ .‬גרף שיש לו‬
‫מסלול המילטוני יקרא המילטוני למחצה‪.‬‬
‫•‬
‫מעגל המילטוני הוא מסלול סגור העובר בכל קודקוד )פרט לקודקוד הראשון שהוא גם‬
‫האחרון( של ‪ G‬בדיוק פעם אחת‪.‬‬
‫תרגיל‪:‬‬
‫האם גרף יכול להיות המילטוני וגם המילטוני למחצה? השווי עם אוילרי לעומת אוילרי‬
‫למחצה‪.‬‬
‫המונח קרוי על שמו של ויליאם רואן המילטון‪ ,‬מתמטיקאי ואסטרונום אירי‪.‬‬
‫כפי שהזכרנו‪ ,‬השאלה הבאה נותרה שאלה פתוחה בתורת הגרפים‪:‬‬
‫"תני תנאים הכרחיים ומספיקים לכך שגרף הוא המילטוני"‪.‬‬
‫עם כל הנאמר‪ ,‬ברצונינו לחקור איפיונים אפשריים של המילטוניות או‪ ,‬לחילופין‪ ,‬לזהות עדויות לכך‬
‫שגרף לא יכול להיות המילטוני‪ .‬ננסה להחכים דרך הדוגמאות הבאות‪:‬‬
‫דוגמאות‪:‬‬
‫‪ C n .1‬המילטוני לכל ‪- n ≥ 3‬הגרף ‪ C n‬עצמו מהווה מעגל המילטוני‪.‬‬
‫‪.2‬‬
‫‪ K n‬המילטוני לכל ‪ , n ≥ 3‬שכן‪ ,‬למשל ‪,‬תת הגרף שלו ‪ C n‬הוא מעגל המילטוני בו‪.‬‬
‫דוגמאות ‪ ,1,2‬מצביעות על הבדל אחד גדול בין גרפים אוילריים לבין גרפים המילטוניים‪ .‬בעוד‬
‫שמעגל אוילרי חייב לעבור דרך כל צלע‪ ,‬מעגל המילטוני בגרף מסדר ‪" n‬מנצל" רק ‪ n‬מצלעותיו‪-‬‬
‫ראי למשל באיור הבא של מעגל המילטוני ב‪ K 8 -‬להמחשת העניין‪:‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪2‬‬
‫מעגל המילטוני בגרף ‪ K 8‬מאויר על ידי הצלעות האדומות‪.‬‬
‫נשים לב שמעגל המילטוני עובר דרך ‪ 8‬צלעות בלבד מבין ‪ 28‬צלעותיו!‬
‫‪ .3‬כדי לחזק את התובנה בדבר קיום או אי קיום מעגלי המילטון ‪ ,‬תוכלי להתאמן ביישומון‬
‫‪. Hamilton circuits‬‬
‫‪ .4‬פאונים משוכללים‪ :‬כל ‪ 5‬הפאונים משוכללים הם המילטוניים‪ .‬נתאר אותם‪ ,‬ולאחר מכן‬
‫נצביע על מעגל המילטוני בכל אחד מהם‪:‬‬
‫פאונים משוכללים‪:‬‬
‫בגאומטריה של המרחב‪ ,‬פאון משוכלל הוא גוף קמור המוגבל על ידי מצולעים משוכללים‪ ,‬כך שבכל‬
‫קודקוד שלו נפגש מספר שווה של מקצועות ולכל פאה מספר שווה של פאות הצמודות לה‪ .‬בשלושה‬
‫מימדים‪ ,‬קיימים חמשה פאונים משוכללים בלבד‪ -‬בספרו "יסודות"‪ ,‬הראה אוקלידס איך לבנות את‬
‫הגופים האלה והוכיח שאלה הפאונים המשוכללים היחידים בשלושה מימדים‪ .‬לחצי כאן לאנימציה‬
‫המאפשרת ראייה מכל כיוון של כל אחד מהם על ידי לחיצת העכבר בתוך התמונה המתאימה‪,‬‬
‫ולאחר מכן‪ ,‬גרירה בעזרת הלחצן השמאלי לכל כיוון ‪ .‬להלן תיאור של כל אחד מהפאונים‪,‬‬
‫ובעקבותיהם איוריים מתאימים‪.‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪3‬‬
‫‪ .1‬גרף מסדר ‪ 4‬הנקרא ארבעון )טטרהדרון( ‪ -‬פאון משוכלל בעל ‪ 4‬פאות שכל אחת מהן היא‬
‫משולש שווה צלעות‪.‬‬
‫‪ .2‬גרף מסדר ‪ 8‬הנקרא קובייה )הקסהדרון( ‪ -‬פאון משוכלל בעל ‪ 6‬פאות שכל אחת מהן היא‬
‫ריבוע‪) .‬אותו ראינו כבר ב פרק ‪(2‬‬
‫‪ .3‬גרף מסדר ‪ 6‬הנקרא תמניון )אוקטהדרון( ‪ -‬פאון משוכלל בעל ‪ 8‬פאות שכל אחת מהן היא‬
‫משולש שווה צלעות; מורכב משתי פירמידות ריבועיות‪ ,‬המחוברות בבסיסן‪.‬‬
‫‪ .4‬גרף מסדר ‪ 20‬הנקרא תריסרון )דודקהדרון( ‪ -‬פאון משוכלל בעל ‪ 12‬פאות‪ ,‬שכל אחת מהן‬
‫היא מחומש שווה צלעות‪.‬‬
‫‪ .5‬גרף מסדר ‪ 12‬הנקרא עשרימון )איקוסהדרון( ‪ -‬פאון בעל ‪ 20‬פאות שכל אחת מהן היא‬
‫משולש שווה צלעות‪.‬‬
‫איקוסהדרון‬
‫‪ ‬דודקהדרון‬
‫אוקטהדרון‬
‫הקסהדרון‬
‫‪ ‬טטרהדרון‬
‫להלן ייצוגים גרפיים של כל פאון משוכלל ‪ ,‬ובכתום‪ ,‬מסומנים מעגלי המילטון מתאימים ‪.‬‬
‫‪icosahedron‬‬
‫‪dodecahedron ‬‬
‫‪octahedron‬‬
‫‪cube‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪4‬‬
‫‪Tetrahedron‬‬
‫טכניקות לשלילת המילטוניות‪:‬‬
‫נפתח בדוגמה מאלפת‪.‬‬
‫נצא מהאוקטהדרון ‪-‬לו ‪ 8‬פאות‪ ,‬ו‪ 6-‬קודקודים ‪ ABCDEF‬המסומנים באדום באיור השמאלי‪ .‬בכל פאה‬
‫נוסיף קודקוד –אלה המסומנים בהתאמה בכחול על ידי‪ α , β , γ , δ , ε ,η , κ ,τ ,‬באיור הימני‪ .‬בכל פאה‪,‬‬
‫נחבר את הקודקוד החדש לכל אחד משלשת הקודקודים שבפאה שלו‪-‬צלעות אלו סומנות בירוק באיור‬
‫הימני‪ .‬כך נוצר גרף מסדר ‪ , 14‬שם ‪ 6‬הקודקודים המקוריים מסומנים באדום ‪ 8 ,‬הקודקודים החדשים‬
‫בכחול‪ ,‬והחיבורים החדשים בירוק‪-‬כאשר רק חלק מהם נראים באיור‪.‬‬
‫השאלה‪ :‬האם יש לגרף זה‪ ,‬הגרף הימני‪ ,‬מעגל המילטון? נראה שלא קיים מעגל או מסילת המילטון‬
‫לגרף זה‪.‬‬
‫נניח בשלילה שקיים מעגל המילטון‪ .‬אם כך‪ ,‬המעגל עובר דרך כל ‪ 14‬הקודקודים פעם אחת בדיוק‪,‬‬
‫ונסגר‪.‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪5‬‬
‫נעיין בשכנים של הקודקודים ‪) α , β , γ , δ , ε ,η , κ ,τ‬הכחולים( בגרף‪ .‬לכל קודקוד כזה יש רק שכנים‬
‫אדומים בגרף‪ .‬לכן‪ ,‬בכל מעגל המילטוני שניצור‪ ,‬חייב להיות שמבין כל ‪ 2‬קודקודים כחולים יש קודקוד‬
‫אדום‪ .‬אך אין מספיק קודקודים אדומים )יש רק ‪ 6‬מהם!(‬
‫המסקנה‪ :‬הגרף הנ"ל אינו המילטוני!‬
‫תרגיל‪:‬‬
‫האם הגרף המילטוני למחצה?‬
‫אמנם הגרף בדוגמה הקודמת אינה זוגית )למה?(‪ ,‬אין צלעות המחברות בין שני קודקודים כחולים‪,‬‬
‫ולכן הוא "מזכיר" תכונות של גרפים זוגיים‪.‬‬
‫נפנה אם כן‪ ,‬לשאלה הבאה‪:‬‬
‫שאלה‪:‬‬
‫איזה גרפים זוגיים הם המילטוניים?‬
‫המשפט הבא יענה חלקית על השאלה‪.‬‬
‫משפט ‪6.1‬‬
‫יהא > ‪ G =< V , E‬גרף זוגי המילטוני‪ .‬אזי לשתי קבוצות החלוקה שלו יש אותו מספר איברים‪.‬‬
‫הוכחת משפט ‪:6.1‬‬
‫נניח ש > ‪ G =< V , E‬גרף זוגי המילטוני מסדר ‪ . n‬עלינו להראות שקבוצת קודקודיו‪ , V ,‬מחולקת על ידי‬
‫חלוקה לשתי קבוצות בנות אותו מספר איברים כל אחת‪ .‬יהא > ‪ < v1 , v 2 ,.., v n , v1‬מעגל המילטוני ב‪-‬‬
‫‪ . G‬מצד אחד‪ ,‬נזכור שמעגל המילטוני מכיל את כל קודקודי ‪ . G‬מצד שני‪ ,‬על פי משפט ‪ n ,Kőnig‬הוא‬
‫זוגי‪ ,‬והאיברים ‪v1 , v 2 ,.., v n‬‬
‫הם לסירוגין באברי חלוקה שונים‪ .‬התוצאה נובעת‪■ .‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪6‬‬
‫תרגיל‪:‬‬
‫‪ .1‬תני תנאי הכרחי לכך שגרף זוגי הוא המילטוני למחצה‪.‬‬
‫)"אם ‪ G‬גרף זוגי למחצה‪ ,‬אזי______________"(‬
‫‪ .2‬הוכיחי או הפריכי‪ :‬יהא > ‪ G =< V , E‬גרף זוגי אשר לשתי קבוצות החלוקה שלו יש אותו‬
‫מספר איברים‪ .‬אזי ‪ G‬המילטוני‪.‬‬
‫כעת‪ ,‬אולי האינטואיציה שלנו מספיק "מפותחת" כדי לשער שתנאי הכרחי להמילטוניות זה שיהיה‬
‫"מספיק" צלעות בגרף‪ .‬נראה על ידי הדוגמה הבאה ‪ ,‬איך העדר צלעות יכול לשלול המילטוניות‪.‬‬
‫דוגמה‪:‬‬
‫נעיין בדוגמה באיור ‪ .‬נשים לב שהגרף הוא זוגי‪ ,‬כמצוין על ידי צביעה חוקית של הקודקודים‬
‫‪ ABCDEFG‬באדום והקודקודים ‪ abcdefghi‬בסגול‪ .‬היות ומדובר בגרף מסדר ‪ ,16‬ואברי חלוקה‬
‫מגודל ‪ 9‬ו‪ ,7-‬אזי ממשפט ‪ 6.1‬אנו יודעים שגרף זה אינו המילטוני‪.‬‬
‫כעת נראה זאת גם בדרך אחרת‪.‬‬
‫נעיין בקודקודים הסגולים‪ .‬העיקרון הוא כדלהלן‪:‬‬
‫נניח בשלילה שיש מעגל המילטוני‪ .‬נבצע את השלבים הבאים‪:‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪7‬‬
‫א‪ .‬ספירת הצלעות שלא יכולות להיות במעגל‪:‬‬
‫היות וכל קודקוד מופיע אך ורק פעם אחת במעגל‪ ,‬כתוצאה מכך‪ ,‬כל קודקוד תורם רק ‪ 2‬צלעות‬
‫למעגל! שאר הצלעות שיוצאות ממנו אינן במעגל‪.‬‬
‫אי לכך‪ ,‬נערוך טבלה של הקודקודים הסגולים ‪ ,ABCDEFG‬והערכיות של כל אחד‪ ,‬לעומת מספר‬
‫הצלעות שיוצאות ממנו שאינם במעגל‪:‬‬
‫קודקוד ערכיות מספר הצלעות שאינם במעגל‬
‫‪A‬‬
‫‪3‬‬
‫‪) 1‬שכן רק ‪ 2‬מ‪ 3-‬הצלעות שיוצאות מ‪ A-‬יכולת להיות במעגל(‬
‫‪B‬‬
‫‪5‬‬
‫‪3‬‬
‫‪C‬‬
‫‪5‬‬
‫‪3‬‬
‫‪D‬‬
‫‪5‬‬
‫‪3‬‬
‫‪E‬‬
‫‪3‬‬
‫‪1‬‬
‫‪F‬‬
‫‪3‬‬
‫‪1‬‬
‫‪G‬‬
‫‪3‬‬
‫‪1‬‬
‫סה"כ‬
‫‪13‬‬
‫נסכם את מימצאינו עד כה‪ :‬אם יש מעגל המילטוני בגרף‪ ,‬יש ‪ 13‬צלעות שבוודאי לא תהיינה בו‪.‬‬
‫ב‪ .‬ספירת הצלעות שחייבות להיות במעגל‪:‬‬
‫היות ומדובר במעגל המילטוני בגרף מסדר ‪ ,16‬מספר זה שווה בהכרח ל‪.16-‬‬
‫ג‪ .‬ספירת צלעות הגרף‪ ,‬והשוואה‪:‬‬
‫משלבים א' ו‪-‬ב‪ ,‬לומדים שמספר הצלעות בגרף חייב למנות לפחות ‪ ,(13+16) 29‬אך בגרף זה ‪27‬‬
‫צלעות בלבד!‬
‫מכאן‪ ,‬שאין מעגל המילטון בגרף!‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪8‬‬
‫הערה‪:‬‬
‫‪ .1‬הגרף גם לא המילטוני למחצה! שכן למסילת המילטון דרושים ‪ 15‬צלעות‪ ,‬אך עדיין מתקיים‪:‬‬
‫‪. 15 + 13 > 27‬‬
‫‪ .2‬בסעיף א'‪ ,‬ספרנו רק את הצלעות העודפות היוצאות מהקודקודים הסגולים‪ ,‬וזה כדי לוודא‬
‫שלא ספרנו צלעות עודפות יותר מפעם אחת‪ .‬בדקי שאם היינו חוזרים על אותו שיקול לגבי‬
‫הקודקודים האדומים במקום הסגולים ‪,‬לא היינו יוצרים סתירה‪) .‬וזה למרות שכבר ידוע לנו‬
‫דרך שתי הוכחות שאין מעגל המילטוני בגרף!(‪ .‬ככלל‪ ,‬זוהי טכניקה שלא מובטחת ל"עבוד"‪.‬‬
‫הפרש‪:‬‬
‫יישום מעניין‪ :‬סיור ַ‬
‫בעיית סיור הפרש‪ ,‬או‪ ,‬כפי שמכונה באנגלית‪,‬‬
‫‪ The Knight's tour problem‬היא עוד דוגמה של חידת שחמט‪.‬‬
‫הבעיה‪:‬‬
‫בהנתן לוח שחמט מגודל ‪ , r × s‬מצאי ערכי ‪ r, s‬עבורם קיימת מסילה‪/‬מעגל של תנועות הפרש‬
‫בלוח‪ ,‬בו הוא מבקר בכל משבצת פעם אחת בדיוק‪ .‬נכנה טיולים מסוגים כאלה בהתאמה על ידי‬
‫מסילת פרש‪/‬מעגל פרש ‪.‬‬
‫הערה‪ :‬תנועה של פרש‬
‫הוא מעבר לכל אחת מהמשבצות‬
‫‪8‬‬
‫‪7‬‬
‫‪6‬‬
‫‪5‬‬
‫‪4‬‬
‫‪3‬‬
‫‪2‬‬
‫‪1‬‬
‫א ב ג ד ה ו ז ח‬
‫הדגמת אפשרויות תנועה של פרש‪.‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪9‬‬
‫כמסומן באיור למטה‪.‬‬
‫ניסוח מתמטי‪:‬‬
‫במילים אחרות‪ ,‬השאלה היא‪ :‬בהנתן גרף מסדר ‪) rs‬כאשר הקודקודים מתאימים למשבצות הלוח‪,‬‬
‫וקודקודים הם שכנים אם ורק אם מרחק המשבצות אחת לשניה מתאים לתנועה חוקית של הפרש‬
‫ביניהן( ‪ ,‬עבור איזה ‪ r, s‬הגרף הוא המילטוני או המילטוני למחצה?‬
‫ישנן בעיות דומות נוספות רבות‪.‬‬
‫מביניהן‪ :‬אם לוח כזה הוא המילטוני‪ ,‬כמה מסילות שונות כאלה קיימות? ב פרק ‪ 7‬נדון בשאלה‬
‫דומה לזה בהקשר של גרפים שלמים‪.‬‬
‫הערה‪:‬‬
‫בניגוד לשאלה הפתוחה שהזכרנו בראשית הפרק‪ ,‬בעיית הפרש היא פתורה‪-‬שימי לב לתאריך‬
‫המשפט‪" -‬היסטוריה בימינו"! המשפט מהווה אפיון של כל לוחות השחמט בעלי מעגל פרש‪.‬‬
‫משפט ‪:(1991) Schwenk‬‬
‫משפט ‪ – 6.2‬משפט ‪: Schwenk‬‬
‫לכל לוח שחמט מגודל ‪ , r × s‬כאשר ‪ , r ≤ s‬קיים מעגל פרש פרט לכל אחד מהמקרים הבאים‪:‬‬
‫‪ r, s .1‬שניהם אי זוגיים ‪,‬שונים מ‪1-‬‬
‫‪r = 1, s > 1 .2‬‬
‫‪r = 2 .3‬‬
‫‪r = 4 .4‬‬
‫‪⎧4‬‬
‫⎪‬
‫‪r = 3 ∧ s = ⎨6 .5‬‬
‫‪⎪8‬‬
‫⎩‬
‫לא נוכיח את המשפט כולו‪ ,‬אלא רק נראה שבחלק מחמשת המקרים המצוינים אין מעגל פרש‪.‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪10‬‬
‫הוכחה חלקית של משפט ‪:6.2‬‬
‫הוכחת מקרה ‪r = 4 :4‬‬
‫נניח ‪ , r = 4‬ונוכיח כי אין מעגל המילטון‪.‬‬
‫במילים אחרות הלוח שלנו נראה כמו באיור למטה‪.‬‬
‫נניח בשלילה שיש מעגל כזה‪ ,‬ונגיע לסתירה‪.‬‬
‫שימי לב לשני חוקי "צביעה" הבאים ‪ ,‬כאשר צירופם יחד יוביל לסתירה המבוקשת‪:‬‬
‫א‪ .‬בכל תנועה של הפרש‪ ,‬הפרש עובר ממשבצת שחורה למשצבת לבנה או להפך‪.‬‬
‫ב‪ .‬מצד שני‪ ,‬בהתייחס לצביעת הלוח בסגול וירוק באויר הבא‪ ,‬יש מספר שווה של משבצות סגולות‬
‫וירוקות‪ .‬נשים לב שממשבצת ירוקה הפרש חייב לעבור למשבצת סגולה‪ ,‬וממשבצת סגולה‪,‬‬
‫למרות שיש לו אופציה לעבור למשבצת מכל אחד מהצבעים‪ ,‬היות ויש מספר שווה של משבצות‬
‫משני הצבעים‪ ,‬כדי ליצור מעגל המילטוני הוא חייב לעבור למשבצת ירוקה‪) .‬כי אחרת לא יהיו‬
‫מספיק משבצות סגולות בכדי לסיים את המעגל(‪.‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪11‬‬
‫כעת‪ ,‬נניח ללא הגבלת הכלליות שהוא התחיל את המעגל במשבצת שחורה ‪-‬ירוקה )שחורה ביחס‬
‫לצביעה "הרגילה" של הלוח בצבעי שחור‪/‬לבן‪ ,‬וירוקה ביחס לצביעה של הלוח בצבעי ירוק‪/‬סגול( ‪.‬‬
‫ניתן להניח כך‪ ,‬כי אם המשבצת ההתחלתית צבועה בצירוף אחר של צבעים‪ ,‬ניתן לשנות את הטיעון‬
‫הבא בהתאם‪.‬‬
‫על פי האמור‪ ,‬בכל מעבר הוא חייב לשנות את הצבע שניתן מצביעה א'‪ ,‬וגם לשנות את הצבע שניתן‬
‫מצביעה ב'‪ .‬לכן‪ ,‬הוא חייב לעבור למשבצת לבנה סגולה‪ ,‬וממנה לשחורה ירוקה וכו' עד לסיום‬
‫המעגל‪ ,‬כאשר עבר דרך כל משבצות הלוח‪ .‬מה שיוצא הוא שכל המשבצות הירוקות הם שחורות‪,‬‬
‫וכל המשבצות הלבנות הם סגולות ‪ -‬דבר שהוא לא נכון!‬
‫מסקנה‪ :‬אין מעגלי פרש בלוחות מגודל ‪ , 4 × s‬עבור ‪4 ≤ s‬‬
‫‪■.‬‬
‫תרגיל‪ :‬הוכיחי שהגרפים שבמקרים ‪ 1,2,3‬המוזכרים במשפט אינם המילטוניים‪.‬‬
‫שאלה‪:‬‬
‫האם בלוח שחמט מגודל ‪ , 4 ≤ s , 4 × s‬קיימת מסילת פרש?‬
‫מסתבר שהתשובה היא חיובית‪ ,‬פרט למקרה ‪ . 4 × 4‬המעוניינים מוזמנים לפנות לדף זה הכולל‬
‫מידע וכן קישורים מקיפים בנושא סיורי פרש‪.‬‬
‫תנאים מספיקים לקיום מעגל המילטוני‪:‬‬
‫נחזור כעת לנושא המרכזי של הפרק‪ ,‬ונביא תנאי מספיק לכך שגרף הוא המילטוני‪ .‬יש הרבה תנאים‬
‫מספיקים אחרים‪ ,‬חלק מהם נראה בתרגיל ‪.6‬‬
‫משפט ‪ - 6.3‬משפט ‪:(1952) Dirac‬‬
‫‪n‬‬
‫יהא > ‪ G =< V , E‬גרף מסדר ‪ n ≥ 3‬ו‪-‬‬
‫‪2‬‬
‫≥ ) ‪ . δ (G‬אזי ‪ G‬המילטוני‪.‬‬
‫שימי לב‪ :‬גם האמירה במשפט ‪ 6.3‬מבטאת את הרעיון שאם יש מספר גדול "מספיק"של צלעות‬
‫בגרף ‪ ,‬אזי הוא המילטוני‪.‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪12‬‬
‫הוכחת משפט ‪6.3‬‬
‫‪n‬‬
‫נניח בשלילה‪ ,‬זאת אומרת ‪ ,‬נניח שקיים גרף ‪ G‬מסדר ‪ n ≥ 3‬ו‪-‬‬
‫‪2‬‬
‫≥ ) ‪ , δ (G‬שהוא לא המילטוני‪.‬‬
‫מקרה א'‪:‬‬
‫נניח ש ‪ G‬הוא "קריטי" ביחס ל"חוסר המילטוניות"‪ .‬פירוש הדבר‪ ,‬שאם מוסיפים לו צלע נוספת אחת‪ ,‬ולו‬
‫רק צלע אחת‪ ,‬הגרף המתקבל הוא המילטוני‪.‬‬
‫הערה חשובה‪ :‬הגרף מסדר ‪ n‬עם כל הצלעות‪ K n ,‬הוא המילטוני כפי שראינו‪ ,‬ולכן קיימים גרפים‬
‫קריטיים ביחס לחוסר המילטוניות‪.‬‬
‫תרגיל‪ :‬מצאי גרף קריטי ביחס להמילטוניות מסדר ‪.5‬‬
‫יהיו ‪ 2 u , v‬קודקודים שאינם שכנים‪.‬‬
‫נשים לב שקיימים כאלה‪) ,‬למה?!(‪ .‬כעת‪ ,‬הגרף ‪ , G' = G + uv‬דהיינו הגרף המתקבל מ‪ G -‬על ידי‬
‫הוספת הצלע ‪ ( uv‬הוא גרף המילטוני‪ ,‬כי הוא התקבל מהגרף הקריטי ‪ G‬על ידי הוספת צלע‪ .‬לכן קיים‬
‫מעגל בגרף ' ‪ G‬המכיל את כל קודקודי ‪ . V‬נוריד ממנו את הצלע ‪ , uv‬וקיבלנו מסילת המילטון ב‪G -‬‬
‫שקצותיו ‪. u, v‬‬
‫נסמן את קדוקודי ‪ V‬על פי סדר הופעתם במסילה‪. < u = v1 , v 2 ,.., v n = v > :‬‬
‫נביט בשכני הקודקוד ‪. u‬‬
‫טענה‪ :‬אם ‪ , deg G u = k‬אזי יש לפחות ‪ k‬קודקודים שאינם שכנים של ‪. v‬‬
‫הוכחת הטענה‪:‬‬
‫נזכור שהאוסף }‪ {u = v1 , v 2 ,.., v n = v‬מהווה רשימה שלמה של כל קודקודי ‪. G‬‬
‫נשים לב שאם שאחד משכני ‪ u‬הוא ‪ ,( 1 ≤ i ≤ n − 1 ) vi +1‬אזי ‪ vi‬אינו שכן של ‪. v‬‬
‫כי אחרת‪ ,‬קיים מעגל המילטון > ‪ < vi +1 , v1 , v 2 ,..vi , v n , v n −1 , v n − 2 ,...vi + 2 , vi +1‬בגרף )כפי שמודגם באיור‬
‫הבא( ‪ ,‬דבר שלא ייתכן‪.‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪13‬‬
‫התוצאה נובעת על ידי הפעלה חוזרת של השיקול הנ"ל עבור כל שכני ‪. u‬‬
‫בפרט‪ ,‬מהטענה‪ ,‬נוכל להסיק‪) . deg G v ≤ n − 1 − k ⇐ deg G u = k :‬הקודקוד ‪ v‬לא יכול להיות שכן‪ ,‬לא‬
‫לעצמו ‪ ,‬ולא לעוד ‪ k‬קודקודים אחרים(‪.‬‬
‫‪n‬‬
‫אך מצד שני‬
‫‪2‬‬
‫≥ ) ‪ . δ (G‬ניעזר בהנחה זו ונקבל סתירה‪:‬‬
‫‪n n‬‬
‫‪+‬‬
‫‪≤ deg G u + deg G v‬‬
‫≤‬
‫‪k{ + n1‬‬
‫‪−2‬‬
‫‪14‬‬
‫‪+3k = n − 1‬‬
‫‪4‬‬
‫‪degG v≤ n −1+ k deg u‬‬
‫‪2 2 δ ( G )≥ n‬‬
‫‪deg‬‬
‫‪v‬‬
‫מקסימום‬
‫‪G‬‬
‫‪G‬‬
‫=‪. n‬‬
‫‪2‬‬
‫סתירה זו מוכיחה את המשפט עבור גרפים קריטיים‪.‬‬
‫מקרה ב'‪:‬‬
‫‪n‬‬
‫נניח ש‪ G =< V , E > -‬גרף מסדר ‪ n ≥ 3‬ו‪-‬‬
‫‪2‬‬
‫≥ ) ‪ δ (G‬שהוא לא המילטוני וגם לא גרף קריטי ביחס‬
‫להמילטוניות‪ .‬נדון בשני קודקודים ‪ x, y‬כל שהם ב‪ G -‬שאינם שכנים ב‪). G -‬למה קיימים כאלה?( ‪.‬אם‬
‫הגרף ‪ G ' = G + xy‬אינו המילטוני‪ ,‬אזי ' ‪ G‬גם מקיים את הנחותינו ‪-‬הוא גרף מאותו סדר כמו ‪G ' , G‬‬
‫‪n‬‬
‫מקיים‬
‫‪2‬‬
‫‪n‬‬
‫‪2‬‬
‫≥ ) ' ‪) δ (G‬שכן היות והשוני היחיד בין ‪ G‬לבין '‪ G‬היא הוספת צלע‪ ,‬מתקיים‬
‫≥ ) ‪ ,( δ (G ' ) ≥ δ (G‬ו‪ G ' -‬אינו המילטוני‪ .‬נחליף את ‪ G‬ב‪ . G ' -‬נחזור על תהליך זה של הוספת צלעות‬
‫לגרף‪ ,‬עד אשר לא נוכל להמשיך להוסיף עוד צלעות מבלי שהגרף הנוצר נהיה המילטוני‪ .‬בשלב ההוא‬
‫קיבלנו גרף קריטי‪ ,‬וחזרנו למקרה א'‪■ .‬‬
‫בעיית הסוכן הנוסע‪:‬‬
‫בהקשר גרפים המילטוניים‪ ,‬נזכיר יישום מפורסם ‪,‬הנקרא "בעיית הסוכן הנוסע" והידוע גם בקיצור‬
‫בשם ‪ TSP‬או )‪ .( Travelling Salesman Problem‬הבעיה עוסקת בסוכן נוסע‪ ,‬שבמסגרת‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪14‬‬
‫ניסוח מתמטי לבעייה‪:‬‬
‫למצוא בגרף ממושקל מסלול המילטוני שמשקלו הוא הקטן ביותר‪.‬‬
‫לאור הנאמר בפתח הפרק‪ ,‬העובדה שין אלגוריתם למציאת פתרון לבעיית ‪ TSP‬בגרף ממושקל‬
‫אינה מפתיעה‪ .‬עם זאת‪ ,‬קיים אלגוריתם של קירוב לבעיית הסוכן הנוסע‪ .‬לא נחקור אותו במסגרת‬
‫קורס זה‪.‬‬
‫נסיים פרק זה בחקירת קיום מעגלים המילטונייים בגרפים מכוונים‪:‬‬
‫המילטוניות בגרפים מכוונים‪:‬‬
‫ראינו‪) -‬בלי הרבה מאמץ☺( ‪ ,‬שגרף שלם לא מכוון מסדר ‪ n‬הוא המילטוני‪ .‬מה עם גרף שלם‬
‫מכוון? כאן השאלה היא אחרת‪ ,‬שכן כל הצלעות כעת נהיו "רחובות חד סטריים"!‬
‫תרגיל‪ :‬הראי על ידי דוגמה נגדית שלא כל גרף מכוון שלם מסדר ‪ n‬הוא המילטוני‪.‬‬
‫הדרכה‪ :‬נחשוב על ‪ n‬הקודקודים כעל ‪ n‬אנשים‪ ,‬אשר בין כל שניים מתקיים משחק שחייב‬
‫להסתיים ב"מנצח" ו"מפסיד"‪.‬נכוון את הצלע בין ‪ 2‬הקודקודים המתאימים בגרף מהמפסיד אל‬
‫המנצח‪ .‬איזה גרף יתקבל אם יש אדם שהוא "לוּזר" –דהיינו שהוא מפסיד בכל אחד מ ‪n − 1‬‬
‫המשחקים שהוא משחק?‬
‫המילטוניות למחצה בגרפים מכוונים שלמים ‪:‬‬
‫שאלות‪:‬‬
‫⎞‪⎛n‬‬
‫‪ (1‬כמה גרפים מכוונים שלמים )לא איזומורפיים( קיימים מסדר ‪ ? n‬הוכיחי שהתשובה היא ⎟⎟ ⎜⎜ ‪.‬‬
‫⎠‪⎝2‬‬
‫‪ (2‬האם קיימת מסילה המילטונית בגרף שלם מכוון מסדר ‪? n‬‬
‫‪ (3‬ואם כן‪ ,‬האם קיום או אי קיום של מסילה המילטונית תלוי בכיוונים של הצלעות בגרף השלם‬
‫המכוון מסדר ‪? n‬‬
‫מסתבר שקיימת מסילה המילטונית לכל גרף שלם מכוון מסדר ‪ !! n‬הנה המשפט‪:‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪15‬‬
‫משפט ‪6.4‬‬
‫יהי > ‪ G =< V , E‬גרף שלם מכוון מסדר ‪ . n ≥ 2‬אזי ‪ G‬המילטוני למחצה‪.‬‬
‫הוכחת משפט ‪6.4‬‬
‫באינדוקציה על ‪ , n‬סדר הגרף‪.‬‬
‫™ עבור ‪ , n = 2‬הצלע היחידה היא מכוּונת‪ ,‬והמסילה בהתאם‪.‬‬
‫™ נניח נכונות עבור ‪ , n‬ונדון בגרף שלם מכוון ‪ H‬מסדר ‪ . n + 1‬נבחר קודקוד ‪ v‬בו ונדון בגרף‬
‫}‪) . H \ {v‬ניזכור‪ -‬זה הגרף המתקבל מ ‪ H‬על ידי הורדת הקודקוד ‪ v‬יחד עם כל אחת מ ‪n‬‬
‫הצלעות המכוונות בין ‪ v‬לבין הקודקודים האחרים (‪ .‬אם כך‪ H \ {v} ,‬הוא גרף שלם מכוון‬
‫מסדר ‪ , n‬ולכן‪ ,‬על פי הנחת האינדוקציה‪ ,‬יש לו מסילת המילטון‪ .‬נסמן את המסילה ואת‬
‫קודקודיה על ידי > ‪ . < v1 , v 2 ,.., v n‬שימי לב שמשתמע מתוך המספור הזה‪ ,‬שהצלע בין‬
‫הקודקודים ‪ v1 ,v2‬מכוונת מ‪ v1 -‬ל‪ , v 2 -‬אך לא להפך‪ .‬הוא הדין לכל שאר הצלעות במסילה(‪.‬‬
‫בגרף ‪ , H‬חלק מהצלעות בין ‪ v‬לבין שאר הקודקודים פונות מ‪ v -‬אליהם‪ ,‬וחלק בכיוון ההפוך‪ .‬אם הצלע‬
‫בין ‪ v‬ל‪ v1 -‬היא ‪ , vv1‬אזי > ‪ < v, v1 , v 2 ,.., v n‬היא מסילת המילטון ב‪ H -‬כמבוקש‪ .‬אם לא‪ ,‬אזי בהכרח‬
‫הצלע בין ‪ v‬ל‪ v1 -‬היא ‪ . v1v‬יהא ‪ 1 ≤ i ≤ n , i‬האינדקס המקסימלי עבורו הצלע בין ‪ v‬ל‪ vi -‬היא ‪. v i v‬‬
‫אם ‪ , i = n‬אזי כל הצלעות פונות אל ‪ , v‬ו‪ < v1 , v 2 ,.., v n , v > -‬היא מסילת המילטון ב‪ H -‬כמבוקש‪ .‬אם‬
‫‪ , i < n‬זה אומר שהצלע בין ‪ v‬ל‪ vi -‬היא ‪ v i v‬אך הצלע בין ‪ v‬ל‪ vi +1 -‬היא ‪ . vvi +1‬במקרה זה‪,‬‬
‫> ‪ < v1 , v 2 ,...vi , v, vi +1 ...., v n‬היא מסילת המילטון ב‪H -‬‬
‫כמבוקש‪■ .‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪16‬‬
‫סיכום נושאים ומונחים מפרק ‪:6‬‬
‫•‬
‫גרף המילטוני‬
‫•‬
‫גרף המילטוני למחצה‬
‫•‬
‫זיהוי גרפים לא המילטוניים‬
‫•‬
‫גרפים זוגיים המילטוניים‬
‫•‬
‫משפט ‪Schwenk‬‬
‫•‬
‫משפט ‪Dirac‬‬
‫•‬
‫איזכור של בעיית הסוכן הנוסע‬
‫•‬
‫המילטוניות בגרפים מכוונים‪.‬‬
‫‪ ‬‬
‫‪ ‬‬
‫‪ ‬פרק ‪ - 6‬עמוד ‪17‬‬