ברוכים הבאים ליחידת הלימוד "מבוא לתורת הגרפים" במסגרת הקורס "מתמטיקה בדידה". תורת הגרפים היא ענף מרתק ומרכזי במתמטיקה בדידה, המספק כלים רבי עוצמה לתיאור וניתוח מערכות יחסים וקשרים בין אובייקטים. היא מהווה בסיס למגוון רחב של יישומים במדעי המחשב, החל מרשתות תקשורת ורשתות חברתיות, דרך אלגוריתמים לחיפוש וניתוב, ועד לפתרון בעיות אופטימיזציה. ביחידה זו נכיר את מושגי היסוד של גרפים, סוגיהם השונים ותכונותיהם הבסיסיות, תוך דגש על הבנה מעמיקה שתסייע לכם להתמודד עם שאלות בחינה.
מושגי יסוד בגרפים
הגדרת גרף
גרף הוא מבנה מתמטי פשוט ואלגנטי, המורכב משני סוגי אובייקטים: קודקודים וצלעות.
סוגי גרפים
קיימים מספר סיווגים עיקריים לגרפים, המשפיעים על אופן הניתוח והשימוש בהם:
גרף לא מכוון (Undirected Graph)
בגרף לא מכוון, צלע מייצגת קשר סימטרי בין שני קודקודים. אם קודקוד $u$ מחובר ל-$v$, אז גם $v$ מחובר ל-$u$. הצלעות הן קבוצות של שני קודקודים {u,v}.
גרף מכוון (Directed Graph / Digraph)
בגרף מכוון, צלע מייצגת קשר אסימטרי בעל כיוון. אם קודקוד $u$ מחובר ל-$v$, אין זה אומר בהכרח ש-$v$ מחובר ל-$u$. הצלעות הן זוגות סדורים (u,v).
גרף פשוט (Simple Graph)
גרף שאינו מכיל לולאות (צלע המחברת קודקוד לעצמו) ואינו מכיל קשתות מקבילות (יותר מצלע אחת המחברת את אותם שני קודקודים).
גרף מרובה (Multi-graph)
גרף שיכול להכיל לולאות ו/או קשתות מקבילות. במקרים מסוימים, גם גרף פשוט נחשב למקרה פרטי של גרף מרובה.
דרגה וקשרים
מסלולים, מעגלים וקשירות
מסלולים ומעגלים
מושגים אלו מתארים את אופן התנועה או הקשרים בתוך הגרף.
מהלך (Walk)
סדרה של קודקודים וצלעות, שבה קודקודים וצלעות יכולים לחזור על עצמם.
שביל (Trail)
מהלך שבו כל הצלעות שונות (אך קודקודים יכולים לחזור על עצמם).
מסלול (Path)
שביל שבו כל הקודקודים שונים (ולכן גם כל הצלעות שונות).
מעגל (Cycle)
מסלול שבו הקודקוד ההתחלתי והסופי זהים, וכל שאר הקודקודים שונים.
מסלול סגור (Circuit)
שביל שבו הקודקוד ההתחלתי והסופי זהים (כלומר, מעגל שבו צלעות לא חוזרות על עצמן, אך קודקודים פנימיים יכולים לחזור על עצמם).
קשירות
קשירות מתארת את מידת החיבוריות בגרף.
גרפים מיוחדים
דוגמאות נפוצות
היכרות עם גרפים מיוחדים אלו חיונית להבנת תכונות גרפים כלליות ולפתרון בעיות.
שאלות לדיון
- הסבירו את ההבדל העיקרי בין גרף מכוון לגרף לא מכוון, ותנו דוגמה לשימוש מתאים לכל אחד מהם.
- מהו ההבדל בין מסלול למעגל? האם כל מעגל הוא גם מסלול? נמקו.
- בהינתן גרף לא מכוון עם 7 קודקודים ו-10 צלעות, האם ייתכן שכל הקודקודים בגרף יהיו בעלי דרגה זוגית? נמקו באמצעות משפט לחיצות הידיים.
- כיצד ניתן לזהות האם גרף נתון הוא גרף דו-צדדי? (רמז: חשבו על מעגלים).
נקודות לתשובת מודל
- הבדל בין גרפים מכוונים ללא מכוונים: כיווניות הצלעות. בגרף מכוון הקשר אסימטרי (לדוגמה: עקוב אחרי בטוויטר), בלא מכוון הקשר סימטרי (לדוגמה: חברות בפייסבוק).
- הבדל בין מסלול למעגל: מסלול הוא סדרה של קודקודים שונים (למעט אולי קצוות), מעגל הוא מסלול שבו הקודקוד ההתחלתי והסופי זהים. לא כל מעגל הוא מסלול (במובן שקודקודי הקצה זהים, אך בדרך כלל "מסלול" מתייחס לקודקודים שונים). כל מעגל מכיל מסלול.
- דרגות זוגיות: לפי משפט לחיצות הידיים, סכום הדרגות הוא $2|E| = 2 \times 10 = 20$. אם כל הדרגות זוגיות, סכומן יהיה זוגי, מה שמתקיים. לכן, כן, ייתכן שכל הקודקודים יהיו בעלי דרגה זוגית.
- זיהוי גרף דו-צדדי: גרף הוא דו-צדדי אם ורק אם אין בו מעגלים באורך אי-זוגי. ניתן לזהות זאת באמצעות אלגוריתם כמו BFS או DFS, תוך צביעת הקודקודים לסירוגין בשני צבעים. אם נתקלים בצלע המחברת שני קודקודים מאותו צבע, הגרף אינו דו-צדדי.