עץ פורש – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
MerlIwBot (שיחה | תרומות)
מ בוט מסיר: ka:დამფარავი ხე (deleted)
מ בוט החלפות
שורה 1: שורה 1:
[[Image:4x4 grid spanning tree.svg|thumb|עץ פורש (הקשתות הכחולות) של גרף הגריד]]
[[קובץ:4x4 grid spanning tree.svg|ממוזער|עץ פורש (הקשתות הכחולות) של גרף הגריד]]
ב[[תורת הגרפים]], '''עץ פורש''' של [[תורת הגרפים|גרף]] [[גרף קשיר|קשיר]] G הוא [[תת גרף]] קשיר של G, המכיל את כל צומתי G, ואין לו מעגלים. תת-גרף כזה הוא [[עץ (תורת הגרפים)|עץ]].
ב[[תורת הגרפים]], '''עץ פורש''' של [[תורת הגרפים|גרף]] [[גרף קשיר|קשיר]] G הוא [[תת גרף]] קשיר של G, המכיל את כל צומתי G, ואין לו מעגלים. תת-גרף כזה הוא [[עץ (תורת הגרפים)|עץ]].


אפשר לקבל עץ פורש על ידי הסרת קשתות מן הגרף, בזו אחר זו, כל עוד הקשירות לא נפגעת. אם הגרף כולל מעגל (כלומר, סדרה של קודקודים <math>\ v_0,v_1,\dots,v_n</math> שבה כל זוג קודקודים סמוכים, וכן הזוג <math>\ v_0,v_n</math>, מחוברים בקשת), נוכל להסיר את אחת מקשתות המעגל בלי לפגוע בקשירות. על תהליך זה אפשר לחזור עד שבגרף אין מעגלים, והתוצאה היא עץ פורש. מכיוון שמספר הקשתות בעץ תלוי רק במספר הקודקודים שלו, לכל העצים הפורשים של אותו גרף יש אותו מספר קשתות (<math> \displaystyle n-1 </math>). דרכים יעילות יותר למציאת עץ פורש הם באמצעות [[אלגוריתם חיפוש לעומק]] או [[אלגוריתם חיפוש לרוחב]]. אלגוריתמים אלו ירוצו ב[[סיבוכיות|זמן]] ליניארי במספר הקשתות בגרף.
אפשר לקבל עץ פורש על ידי הסרת קשתות מן הגרף, בזו אחר זו, כל עוד הקשירות לא נפגעת. אם הגרף כולל מעגל (כלומר, סדרה של קודקודים <math>\ v_0,v_1,\dots,v_n</math> שבה כל זוג קודקודים סמוכים, וכן הזוג <math>\ v_0,v_n</math>, מחוברים בקשת), נוכל להסיר את אחת מקשתות המעגל בלי לפגוע בקשירות. על תהליך זה אפשר לחזור עד שבגרף אין מעגלים, והתוצאה היא עץ פורש. מכיוון שמספר הקשתות בעץ תלוי רק במספר הקודקודים שלו, לכל העצים הפורשים של אותו גרף יש אותו מספר קשתות (<math> \displaystyle n-1 </math>). דרכים יעילות יותר למציאת עץ פורש הם באמצעות [[אלגוריתם חיפוש לעומק]] או [[אלגוריתם חיפוש לרוחב]]. אלגוריתמים אלו ירוצו ב[[סיבוכיות|זמן]] לינארי במספר הקשתות בגרף.


==ספירת מספר העצים הפורשים==
==ספירת מספר העצים הפורשים==

גרסה מ־20:43, 4 ביולי 2012

עץ פורש (הקשתות הכחולות) של גרף הגריד

בתורת הגרפים, עץ פורש של גרף קשיר G הוא תת גרף קשיר של G, המכיל את כל צומתי G, ואין לו מעגלים. תת-גרף כזה הוא עץ.

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

ספירת מספר העצים הפורשים

את מספר העצים הפורשים של גרף אפשר לקבל ממשפט קירכהוף: אם A היא מטריצת השכנויות של הגרף ו- D המטריצה האלכסונית שרכיבי האלכסון שלה הם הדרגות של הקודקודים, אז המטריצה אינה הפיכה (שכן שורותיה מסתכמות לאפס). עם זאת, מכפלת הערכים העצמיים השונים מאפס שווה למספר העצים הפורשים, כפול במספר הקודקודים (זהו מספר העצים הפורשים, כשסופרים עצים עם שורש).

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

עץ פורש מינימלי

ערך מורחב – עץ פורש מינימלי
עץ פורש מינימלי

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