עץ פורש מינימלי
עץ פורש מינימלי (אנגלית: Minimum spanning tree) הוא עץ המורכב מתת-קבוצה של קשתות בגרף נתון ומקיים את התכונות:
- פורש את הגרף – כלומר, כולל את כל הצמתים בגרף.
- מינימלי (או: מזערי) בסכום משקלי הקשתות שלו, שהוא הקטן ביותר האפשרי מכל העצים הפורשים של הגרף.
בכתיב פורמלי: אם משקל הקשת הוא ועבור עץ יהי משקלו , העץ הפורש המינימלי הוא זה בעל הקטן ביותר.
המחשה
חברת טלוויזיה בכבלים מניחה תשתית כבלים בשכונה כלשהי. אם החברה מוגבלת בכך שעליה להניח את הכבלים אך ורק לאורך מסלולים מסוימים, אזי יהיה גרף אשר מייצג את הנקודות המחוברות במסלולים אלו. חלק מן הקווים יכולים להיות יקרים יותר, מכיוון שהמרחק גדול יותר, או שיש צורך לקבור את הכבל עמוק יותר באזור זה.
עץ פורש בשביל גרף זה הוא קבוצה חלקית הכוללת רק את המסלולים שאינם סגורים במעגל, ועדיין כל בית יהיה מחובר. לכל גרף (שאינו עץ) יש עצים פורשים רבים: ראו נוסחת קיילי ומשפט קירכהוף. עץ פורש מזערי הוא עץ פורש בעל משקל כולל נמוך ביותר. יכולים להיות כמה עצים פורשים מזעריים.
התפתחות האלגוריתם
האלגוריתם הראשון למציאת עץ פורש מזערי בגרף לא־מכוון הומצא בידי המדען הצ'כי אוטקר בוהרובקה ב־1926. מטרתו הייתה מציאת כיסוי חשמלי יעיל של חבל מוראביה. כיום משתמשים בשני אלגוריתמים ידועים לגרף לא מכוון: האלגוריתם של פרים והאלגוריתם של קרוסקל. שניהם אלגוריתמים חמדניים. שניהם רצים בזמן פולינומי, כך שמציאת פתרונות לבעיות כאלו, הם בתחום הסיבוכיות של P. זמן הריצה המדויק שלהם תלוי במבני הנתונים בהם משתמשים (למשל ערימת פיבונאצ'י).
הניסיון למצוא את האלגוריתם המהיר ביותר לפתרון בעיה זו הוא מהוותיקים ביותר בתחום מדעי המחשב. אם משקלי הקשתות הם מספרים שלמים המוגבלים במספר הביטים המייצגים אותם, אזי ידועים אלגוריתמים מוחלטים (דטרמיניסטיים – שאינם פועלים באקראיות) עם זמן ריצה לינארי . עבור משקלים כלליים, ידועים אלגוריתמים אקראיים הרצים בזמן שתוחלתו לינארית במספר הקשתות.
האלגוריתם המהיר ביותר עד היום, לעץ פורש מינימלי, פותח על ידי ברנרד שאזל, ומבוסס על האלגוריתם של בוהרובקה. זמן הריצה שלו הוא: כאשר מספר הקשתות, מספר הצמתים ו־ פונקציית אקרמן ההפוכה. קיומו של אלגוריתם דטרמיניסטי למשקלים כלליים, בעל זמן ריצה לינארי עדיין נותר בגדר שאלה פתוחה.
ראו גם
קישורים חיצוניים
- Otakar Boruvka on Minimum Spanning Tree Problem (translation of the both 1926 papers, comments, history) (2000) Jaroslav Nesetril, Eva Milková, Helena Nesetrilová (section 7 gives his algorithm, which looks like a cross between Prim's and Kruskal's)
- A Minimum Spanning Tree Algorithm with Inverse-Ackermann Type Complexity, Bernard Chazelle, 1999
מיזמי קרן ויקימדיה |
---|
ספר לימוד בוויקיספר: עצים |
תמונות ומדיה בוויקישיתוף: עץ פורש מינימלי |