S. Even, "Graph Algorithms", Computer Science Press, 1979 קומבינטוריקה למדעי-המחשב Graph theory – תורת הגרפים Chapter 1: PATHS IN GRAPHS – 1.מסלולים בגרפים מבוסס על הספר: S. Even, "Graph Algorithms", Computer Science Press, 1979 שקפים, ספר וחומר רלוונטי נוסף באתר הקורס: Slides, book and other related material at: http://webcourse.cs.technion.ac.il/234141 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
1.1 INTRODUCTION TO GRAPH THEORY Figure 1.1 e4 e1 v2 e2 v5 v1 e5 v3 e3 v4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Set of vertices V קבוצת צמתים V = {v1, v2, v3, v4, v5} Figure 1.1 e4 e1 v2 e2 v5 v1 e5 v3 e3 v4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Set of edges E קבוצת קשתות E = {e1, e2, e3, e4 , e5} v2 e2 v5 v1 e5 v3 e3 v4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Graph G(V, E) (or G = (V, E)) גרף R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
דוגמא לגרף לא-סופי: Finite Graph גרף סופי כמעט תמיד (אלא אם יצוין אחרת) גם V וגם E יהיו קבוצות סופיות. במקרה זה נאמר שהגרף G=(V,E) הוא גרף סופי דוגמא לגרף לא-סופי: G = (N, {(i, j) : i = 2*j}) R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
self loops parallel edges וחוגים עצמיים קשתות מקבילות v2 e2 חוג עצמי קשתות מקבילות v5 v1 e5 v3 e3 v4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
e u v edge (arc, link …) קשת כל קשת מקושרת ( incident) לשני צמתים U ו-V (לא בהכרך שונים!) קבוצת הצמתים המקושרת לקשת היא זוג לא סדור {V,U} נאמר גם: ש-U ו-V הם הקצוות (endpoints) של הקשת e וגם ש-e מחברת את U ו-V וגם כי U ו-V הם שכנים או סמוכים (adjacent) סימון: u_e_v e u v R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
דרגה (Degree) של צומת d(v) = מספר הפעמים ש-v הינה קצה של קשת d(v3) = 0 Isolated (מבודד) e3 v4 d(v4) = 1 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
סכום דרגות בגרף סופי d(v1)+d(v2)+d(v3)+d(v4)+d(v5)=4+3+0+1+2=10=2|E| R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
סכום הדרגות בגרף סופי משפט: יהי G=(V,E) גרף סופי. אזי הוכחה: נדמיין רשימה e1,e2,…e|E| של כל הקשתות ולכל קשת נרשום את שני הקצוות שלה e1, e2, e|E| {u1,v1},{u2,v2},…{u|E|, v|E|} R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
סכום הדרגות בגרף סופי (2) סכום הדרגות בגרף סופי (2) e1 e4 לדוגמא: e2 v2 v5 v1 e5 v3 e3 v4 e1 e2 e3 e4 e5 v1 v1 v1 v2 v1 v4 v2 v5 v2 v5 הרשימה: R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
סכום הדרגות בגרף סופי (3) סכום הדרגות בגרף סופי (3) הרשימה: {u1,v1},{u2,v2},…{u|E|, v|E|} מצד אחד: הדרגה של צומת v היא מספר הפעמים ש-v מופיע ברשימה. לכן מספר האיברים ברשימה = סכום הדרגות מצד שני: יש בדיוק 2|E| איברים (צמתים) ברשימה R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
הוכחה נוספת: אם כל קשת "תשלם" לכל אחד משני קצותיה 1$ סכום דרגות בגרף סופי הוכחה נוספת: אם כל קשת "תשלם" לכל אחד משני קצותיה 1$ 2 דולרים ·| Eסה"כ תשלומים = | דולריםd(v) מגיעים בסה"כ vל- $↔$ $↔$ $↔$ v2 $↔$ v5 v1 $↔$ R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
זוגיות הדרגות בגרף סופי זוגיות הדרגות בגרף סופי מהמשפט נובע: מספר הצמתים בעלי דרגה אי-זוגית הוא זוגי (למה 1.1 בספר של אבן) הוכחה: 2|E| הוא זוגי ולכן גם . נפחית את סכום הדרגות הזוגיות ונקבל מספר זוגי. R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
דוגמא אורך המסלול : Path מסלול d e2 e3 e1 c b a e4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Circuit מעגל דוגמא אורך המעגל : d e2 e3 e1 c b a e4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
מסלול ומעגל פשוט מסלול נקרא פשוט אם אין בו צומת המופיע בו יותר מפעם אחת מעגל נקרא פשוט אם אין בו אף צומת המופיע יותר מפעם אחת, חוץ מצומת ההתחלה/סיום. כמו כן נדרוש שצומת ההתחלה/סיום לא יופיע בשום מקום אחר במסלול. למרות האמור לעיל המעגל אינו נחשב פשוט R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Connected graphs גרפים קשירים גרף יקרא קשיר (connected) אם לכל שני צמתים u ו- v קיים מסלול אשר נקודת ההתחלה שלו היא u ונקודת הסיום היא v. a b c d e4 e3 e2 e1 y x e5 דוגמא לגרף לא קשיר: R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Cut חתך חתך (cut) בגרף G=(V,E) הוא תת-קבוצה S של קבוצת הצמתים V. נאמר שקשת e חוצה (crosses) את החתך S אם קצה אחד של e נמצא ב-S, והקצה השני מחוץ ל-S. חתך d קשתות חוצות דוגמא לחתך: קשת לא-חוצה c a b R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
חתכים בגרפים קשירים החתך לא נחצה טענה: גרף קשיר אם"ם לכל חתך לא ריק יש לפחות קשת חוצה אחת כלומר: d y e2 החתך לא נחצה e5 e1 e3 c a b x e4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
גרף פשוט גרף לא-מכוון יקרא פשוט אם אין בו חוגים עצמיים וקשתות מקבילות גרף כללי (לא פשוט) נקרא לעיתים: multi-graph בגרף G=(V,E) פשוט: E µ V£ V תרגיל רשות: בגרף פשוט R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Digraph גרף מכוון e4 e1 v2 e2 v5 v1 e5 v3 e3 v4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Set of vertices V קבוצת צמתים V = {v1, v2, v3, v4, v5} R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Set of edges E קבוצת קשתות E = {e1, e2, e3, e4 , e5} v2 e2 e1 v5 v1 e5 v3 e3 v4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
DiGraph G(V, E) גרף מכוון R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Finite Graph גרף מכוון סופי כמעט תמיד (אלא אם יצוין אחרת) גם V וגם E יהיו קבוצות סופיות. במקרה זה נאמר שהגרף G=(V,E) הוא גרף סופי דוגמא לגרף לא-סופי: G = (N, {(i j) : j = 2*i}) R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
self loops untiparallel and parallel edges חוגים עצמיים ואנטי-מקבילות קשתות מקבילות v2 חוג עצמי קשתות מקבילות קשתות אנטי-מקבילות v5 v1 e6 e5 v3 e3 v4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
כמו כן נאמר שהקשת מכוונת (directed) מ-u ל-v. קשת בגרף מכוון בגרף מכוון: צמתי הקצה של קשת מהווים זוג סדור (u,v). הצומת u נקרא צומת ההתחלה (start-vertex) של הקשת והצומת v נקרא צומת הסיום (end-vertex). כמו כן נאמר שהקשת מכוונת (directed) מ-u ל-v. u v e R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
דרגת היציאה (out-degree) של צומת v, dout(v), היא מספר הפעמים ש-v הינו צומת-התחלה של קשת R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
דרגת הכניסה (in-degree) של צומת v, din(v), היא מספר הפעמים ש-v הינו צומת-סיום של קשת din(v3)=dout(v3) = 0 Isolated (מבודד) e3 v4 din(v4) = 1 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
טענה: בגרף סופי סכום דרגות הכניסה = מספר הקשתות סכום דרגות בגרף סופי טענה: בגרף סופי סכום דרגות הכניסה = מספר הקשתות הוכחה: אם כל קשת "תשלם" לצומת הסיום שלה 1$ 1 דולרים·| Eסה"כ תשלומים = | דולריםdin(v) מגיעים בסה"כ vל- השוויון השני - אנלוגי $ $ v2 $ v5 v1 $ $ R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Directed path מכוון מסלול דוגמא אורך המסלול : d e2 e3 e1 c a b e4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Directed cycle מכוון מעגל דוגמא אורך המעגל : d e5 e2 e3 e1 c a b e4 R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
מסלול ומעגל פשוט – באופן דומה... מסלול נקרא פשוט אם אין בו צומת המופיע בו יותר מפעם אחת מעגל נקרא פשוט אם אין בו אף צומת המופיע יותר מפעם אחת, חוץ מצומת ההתחלה/סיום. כמו כן נדרוש שצומת ההתחלה/סיום לא יופיע בשום מקום אחר במסלול. R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
Strongly connected graphs גרפים קשירים היטב גרף מכוון יקרא קשיר-היטב (strongly connected) אם לכל זוג צמתים u ו-v, קיים מסלול מכוון שנקודת ההתחלה שלו היא u ונקודת הסיום שלו היא v. a b c d y x דוגמא לגרף לא קשיר היטב: R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141
The underline graph of digraph גרף התשתית של גרף מכוון = הגרף הלא מכוון המתקבל מ"מחיקת" הכוונים דוגמא לגרף מכוון לא קשיר-היטב אבל גרף התשתית שלו קשיר d x y x x x x c a b x x x R. Bar-Yehuda © www.cs.technion.ac.il/~cs234141