שאלה על גרף טורניר
גרף (G=(V,E נקרא גרף טורניר אם הוא מתקבל ע"י מתן כיוון (אחד מתוך שניים אפשריים) לכל קשת בגרף מלא, לא מכוון, עם אותה קבוצת קדקדים.
מסלול המילטוני בגרף, הוא מסלול העובר בכל קדקדי הגרף תוך שהוא מבקר בכל קדקד בדיוק עם אחת.
אני צריך לכתוב אלגוריתם יעיל שמחזיר מסלול המילטוני ב"גרף טורניר" הנתון כקלט.
ראשית, יש טענה שאומרת שלכל "גרף טורניר" יש מסלול המילטוני.
ההוכחה מופיעה כאן (ויקיפדיה), ויש לי כמה שאלות לגביה:
http://he.wikipedia.org/wiki/גרף_תחרות
שאלה 1:
T גג הוא גרף תחרות מהסיבה שלאחר השמטת הקדקד v, נשארים עם גרף שבו בין כל 2 קדקדים ישנה קשת עם כיוון?
שאלה 2:
למה מכך שיש מסלול המילטון, ניתן לסדר את כל הקדקדים v0,v1,v2,..,vn-1, כך שכל אחד יופיע פעם אחת והשורה מהווה מסלול מ-v0 ל-vn-1? מי מבטיח שהמסלול ההמילטוני יעבור בין הקדקדים בסדר הזה? v0 אחריו v1 אחריו v2...עד vn-1?
אולי הוא יתחיל ב-v3 אחריו v2 אחריו v5 וכו'..עד vn-1, כשל קדקד מופיע פעם אחת בדיוק?
שאלה 3:
כש"מוסיפים חזרה את v שהשמטנו", חייבים להוסיף אותו בדיוק עם אותן הקשתות שחלו בו בגרף המקורי, ועם אותם שכנים שהיו לו בגרף המקורי?
שאלה 4:
למה מובטח ש-vi-1 מצביע ל-v? הרי ל-v לא בהכרח יש קשתות נכנסות. הניחו בהתחלה שיש לו דרגת יציאה גדולה מאפס, אבל לא הניחו דבר לגבי דרגת הכניסה שלו.
שאלה 5:
אילו vi-1 לא היה מצביע ל-v. כיצד זה סותר את המינימליות של i?
שאלה 6:
כעת לגבי האלגוריתם שמחזיר מסלול המילטוני בגרף טורניר הנתון כקלט.
האם אפשר להשמיט קדקד עם דרגת יציאה גדולה מ-0, לקרוא לפונקציה שמוצאת מסלול המילטוני בגרף שמתקבל, ואז להחזיר את הקדקד לגרף?
כלומר ממש לפי ההוכחה מויקיפדיה?
או שזה קשקוש מוחלט מה שכתבתי? מה עושה פונקציה שמוצאת מסלול המילטוני? איך היא עושה את זה.
המון תודה לעונים
גרף (G=(V,E נקרא גרף טורניר אם הוא מתקבל ע"י מתן כיוון (אחד מתוך שניים אפשריים) לכל קשת בגרף מלא, לא מכוון, עם אותה קבוצת קדקדים.
מסלול המילטוני בגרף, הוא מסלול העובר בכל קדקדי הגרף תוך שהוא מבקר בכל קדקד בדיוק עם אחת.
אני צריך לכתוב אלגוריתם יעיל שמחזיר מסלול המילטוני ב"גרף טורניר" הנתון כקלט.
ראשית, יש טענה שאומרת שלכל "גרף טורניר" יש מסלול המילטוני.
ההוכחה מופיעה כאן (ויקיפדיה), ויש לי כמה שאלות לגביה:
http://he.wikipedia.org/wiki/גרף_תחרות
שאלה 1:
T גג הוא גרף תחרות מהסיבה שלאחר השמטת הקדקד v, נשארים עם גרף שבו בין כל 2 קדקדים ישנה קשת עם כיוון?
שאלה 2:
למה מכך שיש מסלול המילטון, ניתן לסדר את כל הקדקדים v0,v1,v2,..,vn-1, כך שכל אחד יופיע פעם אחת והשורה מהווה מסלול מ-v0 ל-vn-1? מי מבטיח שהמסלול ההמילטוני יעבור בין הקדקדים בסדר הזה? v0 אחריו v1 אחריו v2...עד vn-1?
אולי הוא יתחיל ב-v3 אחריו v2 אחריו v5 וכו'..עד vn-1, כשל קדקד מופיע פעם אחת בדיוק?
שאלה 3:
כש"מוסיפים חזרה את v שהשמטנו", חייבים להוסיף אותו בדיוק עם אותן הקשתות שחלו בו בגרף המקורי, ועם אותם שכנים שהיו לו בגרף המקורי?
שאלה 4:
למה מובטח ש-vi-1 מצביע ל-v? הרי ל-v לא בהכרח יש קשתות נכנסות. הניחו בהתחלה שיש לו דרגת יציאה גדולה מאפס, אבל לא הניחו דבר לגבי דרגת הכניסה שלו.
שאלה 5:
אילו vi-1 לא היה מצביע ל-v. כיצד זה סותר את המינימליות של i?
שאלה 6:
כעת לגבי האלגוריתם שמחזיר מסלול המילטוני בגרף טורניר הנתון כקלט.
האם אפשר להשמיט קדקד עם דרגת יציאה גדולה מ-0, לקרוא לפונקציה שמוצאת מסלול המילטוני בגרף שמתקבל, ואז להחזיר את הקדקד לגרף?
כלומר ממש לפי ההוכחה מויקיפדיה?
או שזה קשקוש מוחלט מה שכתבתי? מה עושה פונקציה שמוצאת מסלול המילטוני? איך היא עושה את זה.
המון תודה לעונים