Smart-World Surf

יחידה 8: עצים וגרפים מיוחדים

חקירת תכונות של עצים וגרפים בעלי מבנה מיוחד.

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

עצים: הגדרות ותכונות יסוד

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

עץ (Tree): גרף לא מכוון, קשיר וחסר מעגלים (acyclic).
יער (Forest): גרף לא מכוון חסר מעגלים. כל רכיב קשירות ביער הוא עץ.

תכונות מפתח של עצים:

  • בכל עץ עם $n$ צמתים, יש בדיוק $n-1$ קשתות.
  • בין כל שני צמתים בעץ קיים מסלול יחיד.
  • הוספת קשת כלשהי לעץ יוצרת מעגל יחיד.
  • הסרת קשת כלשהי מעץ מנתקת אותו לשני רכיבי קשירות.
  • עץ הוא גרף מינימלי קשיר (הסרת קשת כלשהי תנתק אותו) וגרף מקסימלי חסר מעגלים (הוספת קשת כלשהי תיצור מעגל).

סוגי עצים מיוחדים:

עץ פורש (Spanning Tree)

עץ פורש של גרף קשיר $G=(V,E)$ הוא תת-גרף $T=(V,E')$ של $G$ שהוא עץ ומכיל את כל הצמתים של $G$. לכל גרף קשיר קיים לפחות עץ פורש אחד.

עץ פורש מינימלי (Minimum Spanning Tree - MST)

עבור גרף קשיר וממושקל, עץ פורש מינימלי הוא עץ פורש שסכום משקלי הקשתות שלו הוא מינימלי. אלגוריתמים ידועים למציאתו הם אלגוריתם פריים (Prim) ואלגוריתם קרוסקל (Kruskal).

עץ מושרש (Rooted Tree)

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

עץ בינארי (Binary Tree)

עץ מושרש שבו לכל צומת יש לכל היותר שני בנים (בן שמאלי ובן ימני). נפוץ מאוד במבני נתונים.

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

גרפים מיוחדים נוספים

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

גרף שלם (Complete Graph - $K_n$): גרף לא מכוון שבו כל זוג צמתים שונים מחובר בקשת יחידה. לגרף שלם עם $n$ צמתים יש $\binom{n}{2}$ קשתות.
גרף דו-צדדי (Bipartite Graph): גרף שבו ניתן לחלק את קבוצת הצמתים לשתי קבוצות זרות $V_1, V_2$ כך שכל קשת מחברת צומת מ-$V_1$ לצומת מ-$V_2$. אין קשתות בתוך $V_1$ או בתוך $V_2$.
גרף דו-צדדי שלם (Complete Bipartite Graph - $K_{m,n}$): גרף דו-צדדי שבו כל צומת בקבוצה $V_1$ מחובר לכל צומת בקבוצה $V_2$. אם $|V_1|=m$ ו-$|V_2|=n$, יש $m \cdot n$ קשתות.
גרף מישורי (Planar Graph): גרף שניתן לצייר אותו במישור כך שאף שתי קשתות אינן מצטלבות (חוץ אולי בקצותיהן).

תכונות ומשפטים חשובים:

  • משפט אוילר לגרפים מישוריים: עבור גרף קשיר מישורי עם $v$ צמתים, $e$ קשתות ו-$f$ פאות (אזורים), מתקיים: $v - e + f = 2$.
  • תנאי לגרף דו-צדדי: גרף הוא דו-צדדי אם ורק אם אין בו מעגלים באורך אי-זוגי.
  • משפט קורטובסקי (Kuratowski's Theorem): גרף הוא מישורי אם ורק אם אינו מכיל תת-גרף שהוא חלוקה של $K_5$ או $K_{3,3}$.

יישומים וחשיבות

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

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

שאלות לדיון

  • הסבירו מדוע כל עץ עם $n$ צמתים חייב להכיל בדיוק $n-1$ קשתות. נסחו הוכחה באינדוקציה.
  • תארו את ההבדלים העיקריים בין אלגוריתם פריים לאלגוריתם קרוסקל למציאת עץ פורש מינימלי. באילו מצבים עדיף להשתמש בכל אחד מהם?
  • האם גרף שלם $K_n$ יכול להיות דו-צדדי? אם כן, עבור אילו ערכים של $n$? אם לא, הסבירו מדוע.
  • האם כל עץ הוא גרף מישורי? נמקו את תשובתכם.

נקודות לתשובת מודל

לשאלה: "הסבירו מדוע כל עץ עם $n$ צמתים חייב להכיל בדיוק $n-1$ קשתות. נסחו הוכחה באינדוקציה."

  • בסיס אינדוקציה: עבור $n=1$, עץ הוא צומת בודד ללא קשתות, ולכן $1-1=0$ קשתות. עבור $n=2$, עץ הוא שני צמתים המחוברים בקשת אחת, ולכן $2-1=1$ קשת. הטענה נכונה.
  • הנחת אינדוקציה: נניח שהטענה נכונה עבור כל עץ עם $k$ צמתים, כלומר יש לו $k-1$ קשתות.
  • שלב אינדוקציה: נתבונן בעץ $T$ עם $k+1$ צמתים.
    • בעץ, קיים תמיד עלה (צומת מדרגה 1). נסיר עלה זה ואת הקשת היחידה המחוברת אליו.
    • הגרף החדש שנוצר הוא עדיין עץ (הוא נשאר קשיר וחסר מעגלים) וכולל $k$ צמתים.
    • לפי הנחת האינדוקציה, לעץ החדש יש $k-1$ קשתות.
    • הוספנו בחזרה את העלה והקשת שהסרנו, ולכן לעץ המקורי $T$ יש $(k-1) + 1 = k$ קשתות.
    • מכיוון ש-$k = (k+1)-1$, הוכחנו שהטענה נכונה עבור $k+1$ צמתים.
  • מסקנה: לכן, באינדוקציה, לכל עץ עם $n$ צמתים יש בדיוק $n-1$ קשתות.
מצאתם טעות או שחסר משהו?
→ הקודמת
מבוא לתורת הגרפים
הבאה ←
צביעת גרפים ומישוריות