Upload
rhonda-cook
View
37
Download
4
Embed Size (px)
DESCRIPTION
סמינר באלגוריתמים / גרפים מישוריים. המאמר: A SEPARATOR THEOREM FOR PLANAR GRAPHS \ by Richard J. Lipton and Robert E. Tarjan. שראל כהן נובמבר 2009. להרצאה יהיו שני חלקים. אינטואיציה + תובנות עיקריות ( insights ) פיתוח האלגוריתם "בשלבים". הצגת התובנות העיקריות שבאלגוריתם. - PowerPoint PPT Presentation
Citation preview
גרפים / באלגוריתמים סמינרמישוריים
כהן שראל2009נובמבר
המאמר:A SEPARATOR THEOREM FOR PLANAR GRAPHS \
by Richard J. Lipton and Robert E. Tarjan
חלקים שני יהיו להרצאה
עיקריות + )1. תובנות (insightsאינטואיציה.I." בשלבים " האלגוריתם פיתוח
.II. שבאלגוריתם העיקריות התובנות הצגת
.2. האלגוריתם של מסודרת הצגההאלגוריתם.1..2. נכונות הוכחת.3. סיבוכיות ניתוח
הבעיה הגדרת
הפרדה )• קבוצת :O(√n)בגודל( Separatorמציאתמכוון בלתי מישורי גרף של, G(V,E)נתון חלוקה למצוא יש
: קבוצות לשלושה הגרף :A, B, Cצמתי ש, כךמהקבוצות – אחת בכל הצמתים היותר Bו Aמספר לכל n*2/3הואשבקבוצה – הצמתים בין קשתות שבקבוצה Aאין הצמתים .Bלביןבקבוצה – הצמתים .O(√n)הוא Cמספר ההפרדה, קבוצת זו
• , אפילו כלליים בגרפים כזו הפרדה קבוצת קיימת לא. בקשתות דלילים הם אם
המשך - הבעיה הגדרת
בעיה • נפתור :קצתלמעשה יותר מורכבתמכוון • בלתי מישורי גרף משקל , G(V,E)נתון ופונקצית
היותר ) לכל הוא הצמתים כל שמשקל כך הצמתים עללשלושה (,1 הגרף צמתי של חלוקה למצוא יש
:A, B, Cקבוצות: ש, כךמהקבוצות משקל– אחת בכל היותר Bו Aהצמתים לכל הוא
2/3שבקבוצה – הצמתים בין קשתות שבקבוצה Aאין הצמתים לבין
B.בקבוצה – הצמתים .O(√n)הוא Cמספר ההפרדה, קבוצת זו
? טוב זה מה בשביל
•." ומשול" הפרדעד – בעיה תת כל . 2/3גודל המקורית הבעיה מגודלקבוצת – – גודל הבעיות תת של הפתרונות של יעיל חיבור
הוא .O(√n)ההפרדה
הוא: 1תובנה מישורי בגרף פשוט מעגלחלוקה
•: , חלוקה מגדיר פשוט מעגל כל מישורי בגרף–A. המעגל: שבתוך הצמתים–B. למעגל: שמחוץ הצמתים–C. המעגל: שעל הצמתים
• . מישוריים לא גרפים עבור קיימת לא זו תכונה , האלגוריתם של המסגרת את בונה זו תכונה
. " האלגוריתם " לב היא ולכן
1אלגוריתם – 1תובנה מתובנה • כבר אלגוריתם לבנות ניתן :1למעשה•( - הפרדה- קבוצת ( :Gמצא
.Cיהי 1. שרירותי פשוט מעגל
עוד 2. הצמתים Cכל משקל שבה חלוקה מגדירלמעגל מחוץ הצמתים משקל או המעגל בתוך
- מ :2/3גדול.I / : כך למעגל פאה הסר הוסף המעגל את שפר
- מ יותר הגדול החלק .2/3שמשקל ייקטן •: הכלליות הגבלת בלי להניח ניתן
– , , . נוסיף האלגוריתם בתחילת אחרת משולש היא המישורי בגרף פאה כל. , משולש תהיה פאה שכל כך פאה בכל קשתות
– - מ ממש קטן הוא צומת כל : 1/3משקל , פשוט. פתרון יש תהיה Cאחרתלפחות שמשקלה הצומת עם שאר A, 1/3הקבוצה כל קבוצת תהיה
- ו .Bהצמתים הריקה הקבוצה
"1אלגוריתם נכונות – " הוכחת
מחוץ • הצמתים שמשקל הכלליות הגבלת בלי נניח - מ ממש גדול .2/3למעגל
מחוץ • הצמתים משקל את תקטין איטרציה כלהיותר בלכל .1/3למעגל
יהיה • לא מחוץ הצמתים שמשקל הראשונה בפעם - מ . 2/3יותר כנדרש, הפרדה קבוצת יהיה המעגל
בעיה• - ב ליניארי גם להיות יכול המעגל .nגודל
) חדש ) שקף ביניים הערות
הורדה: 1הערה • או אחד בקודקוד להרחבתו גורם המעגל שיפור. מהמעגל אחד קודקוד של
(: 2הערה • ההפרדה ) קבוצת ( Cחידוד השלם ) באלגוריתם שנמצאבאורך ) פשוט מעגל צמתים( + O(√n)תהיה כמה של תוספת
. בהמשך עליהם שאסביר
הצמתים: )3הערה • אחד משקל - vאם מ( יותר פתרון 1/3הוא יש אז.C={v}, A=V\{v}, B=Фפשוט:
ממשקל: 4הערה • גדול המעגל בתוך הצמתים שמשקל להניח ניתן , – . נבקע כדור על הגרף את נלביש אחרת למעגל שמחוץ הצמתים
" . , " תוך" במישור המתקבל המעגל את ונפרוש המעגל בתוך חור . " " - שמשקל" תמיד נניח לכן צד החליפו המעגל חוץ ו המעגל
. למעגל מחוץ הצמתים ממשקל יותר גדול המעגל בתוך הצמתים
*CA
B
2תובנה
: 2תובנה • שאינה: קשת כל עצים של תכונהקשתות עם ויחיד אחד מעגל מגדירה בעץ
העץ.• : היותר לכל המעגל זה rכאשר r+1*2אורך
. העץ גובה•: טוב יותר קצת אלגוריתם מקבלים אנו ומכאן
2אלגוריתם – 2תובנה :2מתובנה • השני האלגוריתם את בונים אנו•( - הפרדה- קבוצת ( :Gמצא
פורש 1. עץ שגובהו Tמצא .rלגרף
, eתהי 2. ויהי עץ קשת שאינה שרירותית C(e)קשתהקשת ידי על שנוצר היחיד .eהמעגל הפורש והעץ
עוד 3. בתוך C(e)כל הצמתים משקל שבה חלוקה מגדיר - מ גדול למעגל מחוץ הצמתים משקל או :2/3המעגל
.I " : הקשת החלפת י ע המעגל את לה eשפר סמוכה בקשת - ,) מ) יותר הגדול החלק שמשקל כך עץ קשת 2/3שאינה
ייקטן.
היותר: • לכל הוא המפרידה הקבוצה גודל יתרון2*r+1
" 2אלגוריתם החלפת – י ע המעגל שיפורהמעגל את שיוצרת הקשת
•: הבא באופן מתבצעת המעגל את שתשפר בעץ שאינה הקשת בחירת• - מ) יותר ששוקל זה הוא המעגל שבתוך שהחלק נניח הכלליות הגבלת ונסמן. 2/3בלי
הקשת עם למשולש ששייך המעגל בתוך הצומת . (Yהוא e=(V,W)אתעץ( V,Y): 1מקרה - )V,Y): 2מקרה קשת עץ( W,Yו( קשתות אינן
V e
Y
We`
באדום- עץ קשתות
את - eהחלף ’.eב
V e
Y
We`2
באדום- עץ קשתות
e`1
Z
C(e`2) C(e`1)
Path(Y,Z)
Cost( C(e) ) = Cost(C(e`1)) + Cost(C(e`2)) + Cost(Path(Y,Z))" Path(Y,Z)מציאת " " למעלה קשתות ה אחר מעקב י ע
מצומת החל מצומת Yבעץ גם צורך יש .Wואם
את - eהחלף המעגל e’2או e’1ב חצי את שמגדירההכבד.
ריצה – 2אלגוריתם זמןמקרה" • המסלול" 2ב משקל את מחשבים תחילה
Path(Y,Z) " חצאי. משני אחד כל משקל את כ אח" C(e`1), C(e`2)המעגלים שבתוכן הקשתות סריקת י עייצוג ) לסירוגין ( doubly-connected-edges-listבעזרת
, ואז נסרקו המעגלים באחד הקשתות שכל עדהמעגל משקל מחיסור מתקבל השני המעגל משקל
. הכולל המעגל ממשקל המסלול ומשקל הראשון• : " ריצה, זמן כ סה מחשבנים O(n)לכן קשת לכל כי
של .O(1)עלות
הבעיה:להיות יכול פורש עץ להיות O(n)גובה יכול עדיין המפרידה הקבוצה גודל ננסה. O(n)ולכן
. העץ גובה את להקטין
בעץ - 3תובנה רמה היא BFSכלהפרדה קבוצת
הפרש – • מכוון בלתי בגרף חוצות קשתותלכל הוא הקשת של הקודקודים שני בין הרמות
.1היותר •. מכוון בלתי גרף לכל נכון
T
root
L
קיימות L0, L1, L2הרמות– 4תובנה , 3תובנה • : היותר: לכל שגובהו או עץ לכל עצים על תובנה
√n √ היותר לכל שגובהה בעץ רמה שיש ומספר nאו √ היותר לכל הוא גם בה . nהצמתים
היו: • אחרת מהן n√סיבה אחת בכל הצמתים שמספר רמות - מ שיש n√יותר לכך .nבסתירה צמתים
•: בתובנה שלנו השימוש
T
root
L1
L0
L2
√k√k
משקל k<=1/2
(√n-k)
(√n-k)
פחות מ
2/3 –פשוט.
הרמה • את הצמתים L1נמצא שמשקל , - ) ( ½ מ קטן אותה כולל לא מעליה
אותה כולל שמעליה הצמתים ומשקל , מספר את נסמן ½ לפחות הוא
ברמות - L1עד 0הצמתים נמצא. kב הרמות כך L2>=L1ואת L0<=L1את
בין - L0שהמרחק היותר L1ל לכל הוא√k ברמה הצמתים לכל L0ומספר הוא
√ תובנה ) kהיותר לפי באופן(. 3קייםרמה נמצא מ L2סימטרי L1שמרחקה
( √ היותר לכל( n-kלכל בה יש וגם( √ .n-kהיותר צמתים(
המשך - 4תובנה
רמות: • קיימות . L0, L1, L2ראינו• : ברמות הצמתים חלקים שלושה על ברמות, L0-1עד 0נתבונן עד L0+1הצמתים
L1-1 ,ברמות . rכאשר rעד L2+1והצמתים המקסימאלית הרמה זוהיותר • לכל הוא האמצעי בחלק הצמתים משקל : 2/3אם פשוטה חלוקה קיימת
A , החלקים שלושת מבין הכבד החלק - Bיהיה ו האחרים החלקים שני Cיהיהברמות הצמים קבוצת - L0תהיה :L1ו אחרת. מעל הצמתים את ( L0כווץ ( ,) וכולל ) מתחת הצמתים את מחק .L2וכולל
2 √k + 2 √(n-k) <= 2 √(n/2) = 2 √2 √n √ .Xכי קמורה פונקציה
שברמות, • הצמתים את נכווץ ברמות L0עד 0אחרת הצמתים את עד L2ונמחקr .√ שגובהו עץ באלגוריתם. k + √(n-k) <= √2 * √nקיבלנו העץ 2נשתמעש עם
לקבוצות" שלו הצמתים של חלוקה למצוא כדי ל שמשקל* A*, B*, Cהנ כךמהקבוצות אחת בכל - Aהצמתים היותר* Bו* לכל של. 2/3הוא שהגודל נקבל
C+ *העץ גובה פעמיים היותר היותר, 1לכל לכל . n +1√ 2√* 2כלומראת • מבין Aנקבע יותר הגדול שמשקלה הצמתים קבוצת נקבע*, A*, Bלהיות
ברמות* Cלהיות Cאת הצמתים את, L1, L2וגם שאר Bונקבע כל להיותשל. הגודל לכן היותר Cהצמתים אחת, n√ 2√* 4לכל כל של והמשקל
- Aמהקבוצות היותר Bו .2/3לכל המבוקש, הפלט וזה
3אלגוריתם – 4תובנה :3מתובנה • השלישי האלגוריתם את בונים אנו•( - הפרדה- קבוצת ( :Gמצא
עץ 1. - BFSמצא ב אותו הרמות. Tנסמן את העץ L0<=L1<=L2מצא .Tשל
ברמות 2. הצמתים משקל היותר L1+1…L2-1אם את 2/3לכל קבוצת Aקבע להיותברמות הצמתים מבין ביותר הגדול שמשקלה , L0-1, L1+1…L2-1, L2+1…r…0הצמתים
את ברמות Cקבע הצמתים את L1, L2להיות .Bוקבע בגרף הצמתים שאר כל להיותברמות, 3. הצמתים את כווץ ברמות, L0…0אחרת הצמתים את הגרף L2...rומחק את סמן
- ב - Gהמתקבל ב* המתקבל העץ *.Tואתחלוקה ש* Gעבור* A*, B*, Cמצא :Cכך , הבא* באופן הפרדה קבוצת
- eתהי 4. ב שרירותית לעץ* Gקשת שייכת על C(e)ויהי*, Tשאינה שנוצר היחיד המעגלהקשת הפורש eידי *.Tוהעץ
עוד 5. מחוץ C(e)כל הצמתים משקל או המעגל בתוך הצמתים משקל שבה חלוקה מגדיר - מ גדול :2/3למעגל
.I " : הקשת החלפת י ע המעגל את (, eשפר שמשקל ) כך עץ קשת שאינה לה סמוכה אחרת בקשת - מ יותר הגדול .2/3החלק ייקטן
: ב סמן המעגל את שתשפר הקשת בקשת v,wבחירת שנוגעים הצמתים הצומת yיהי. eאת - ב שנוגעת בפאה - eהשלישי מ הכבד , )w,yאו( )v,yאם. )2/3מצידו את( בחר עץ או( w,yקשת
(v,y " " " , . , העץ( מעלה בכיוון עץ קשתות אחר מעקב י ע אחרת בהתאמה השיפור קשת בתורמהצומת מהצומת ) Yהחל גם החל הצורך הצומת(, wובמידת את המעגל Zמצא על הראשונה
- ש בעץ yzכך פשוט למסלול*. Tמסלול שמשמאל הקשתות את לסירוגין y,zסרוק לו ומימין . אחד את לסרוק שסיימנו ברגע כזה מעגל חצי כל בתוך הצמתים משקל את לחשב במטרה
, , מבין השיפור קשת בתור בחר המעגל מחצאי אחד כל משקל את יודעים אנו המעגל מחצאי(v,y( ,),w y . יותר( הכבד המעגל חצי את שיוצרת זו את
קשירים ברכיבים טיפול
' ב חלק
האלגוריתם של מסודרת הצגה
האלגוריתם
מכוון: • בלתי מישורי גרף , G=(V,E)קלט - היותר לכל המשקלים וסכום שלילי אי ממשי משקל יש צומת שלכל .1כךשל: • חלוקה צמתים Vפלט קבוצות של A, B, Cלשלוש הצמתים בין קשתות שאין של Aכך - Bוהצמתים ב, וגם Aגם
היותר Bב- לכל הצמתים הקבוצה, 2/3משקל היותר Cוגודל .n√ 2√* 4לכל ( - הפרדה- קבוצת ( :Gמצאשל 1. שיכון - Gמצא " ה ) י ע ייוצג השיכון הקודם בשיעור הציג שגיא האלגוריתם פי על -doublyבעזרת overlayבמישור
connected-edges-list .) .2. , : משולשים הם הפאות כל המתקבל שבגרף כך קשתות הוסף פאה בכל הגרף של טריאנגולציה בצעעץ 3. - BFSמצא , ב העץ את נסמן המתקבל . Tלגרףהרמות 4. את העץ L0<=L1<=L2מצא .Tשל
רמה: 1. לכל במשתנה iהסבר ברמה הצמתים מספר את הרמה. L(i)חשב את עד L1מצא הצמתים שמשקל כך, L1-1רמה - רמה עד הצמתים ומשקל ½ מ לפחות L1קטן את. 1/2הוא רמה = kמצא עד הצמתים L1מספר
.) (√ מבין מצא שמעל kכולל הרמה l1הרמות √ L0את היותר לכל הוא בה הצמתים )kשמספר √ מבין -nומצאk - ל( שמתחת הרמה L1הרמות )L2את √ היותר לכל הוא בה הצמתים (.n-kשמספר
ברמות 5. הצמתים משקל היותר L1+1…L2-1אם את 2/3לכל ביותר Aקבע הגדול שמשקלה הצמתים קבוצת להיות : ברמות הצמתים החלקים שלושת את, L0-1, L1+1…L2-1, L2+1…r…0מבין ברמות Cקבע הצמתים וקבע L1, L2להיות
: Bאת . החזר בגרף הצמתים שאר כל .A, B, Cלהיותברמות, 6. הצמתים את כווץ ברמות, L0…0אחרת הצמתים את - L2...rומחק ב המתקבל הגרף את העץ* Gסמן ואת
- ב *.Tהמתקבלחלוקה ש* Gעבור* A*, B*, Cמצא :Cכך , הבא* באופן הפרדה קבוצת
- eתהי 7. ב שרירותית לעץ* Gקשת שייכת הקשת C(e)ויהי*, Tשאינה ידי על שנוצר היחיד הפורש eהמעגל *.Tוהעץ
עוד 8. - C(e)כל מ גדול למעגל מחוץ הצמתים משקל או המעגל בתוך הצמתים משקל שבה חלוקה :2/3מגדיר.I " : הקשת החלפת י ע המעגל את (, eשפר הגדול ) החלק שמשקל כך עץ קשת שאינה לה סמוכה אחרת בקשת
- מ .2/3יותר ייקטן : ב סמן המעגל את שתשפר הקשת בקשת v,wבחירת שנוגעים הצמתים בפאה yיהי. eאת השלישי הצומת
- ב - eשנוגעת מ הכבד , )w,yאו( )v,yאם. )2/3מצידו את( בחר עץ , v,yאו( )w,yקשת השיפור( קשת בתור " " " , מהצומת. החל העץ מעלה בכיוון עץ קשתות אחר מעקב י ע אחרת גם ) Yבהתאמה החל הצורך ובמידת
הצומת(, wמהצומת את - Zמצא ש כך המעגל על בעץ yzהראשונה פשוט הקשתות*. Tמסלול את סרוקלמסלול . y,zשמשמאל ברגע כזה מעגל חצי כל בתוך הצמתים משקל את לחשב במטרה לסירוגין לו ומימין
, , קשת בתור בחר המעגל מחצאי אחד כל משקל את יודעים אנו המעגל מחצאי אחד את לסרוק שסיימנומבין ) v,y( ,),wהשיפור y . יותר( הכבד המעגל חצי את שיוצרת זו את
.9 - ב - Cסמן , ב* המעגל על הצמתים - Aאת , ) ( " וב* " המעגל של הכבד בחלקו בתוך הצמתים קבוצת* Bאת את . " " את תגדיר למעגל מחוץ ש - Cהצמתים שב הצמתים שברמה* Cלהיות הצמתים קבוצת עם . L2וברמה L1איחוד
את את*. Aלהיות Aתגדיר . Bתגדיר הצמתים שאר כל להיות.A, B, Cפלט: 10.
נכונות הוכחת•. ראינו כבר הנכונות הוכחת עיקר אתהרמות • בין הצמתים משקל היותר L0+1,…, L2-1אם כי ) 2/3לכל נכונה החלוקה אז
עם ביחד הכבד לפחות Cהחלק היותר 1/3הוא לכל שנשאר מה (.2/3ולכןשרירותית • קשת בוחרים העץ eאחרת עם מעגל שבכל Tשמגדירה ללולאה ונכנסים
הקשת את מחליפה . eאיטרציה האלגוריתם לפיהקשת • את שמחליפים פעם שבכל להראות שבתוך eיש או למעגל שמחוץ החלק משקל
- ל, מעל היה ואשר . 2/3המעגל , שהאלגוריתם ברור ייקטן הקודמת באיטרציה - " מ" כבד יותר שהוא הצד לכיוון הזמן כל המעגל את מרחיבים אנחנו כי , 2/3מתכנס
היותר לכל יהיו .nולכן איטרציות " , מקרה ב כי יורד הכבד החלק משקל ( 1ואכן צומת" ) מורידים קודמים שקפים ראו
" , מקרה וב המעגל של הכבד , 2מהצד ומורידים" יותר הכבד המעגל חצי את בוחריםלפחות ) .2חתיכה ) המעגל של הכבד החלק שהיה ממה צמתים
היותר • לכל משקל מקבל כבד שהיה החלק שכאשר להראות האלגוריתם ) 2/3יש ואז - . ב( נסמן כנדרש היא שבפלט החלוקה אזי בסוף* Cעוצר שמתקבל המעגל את
- ב, ונסמן : Aבלולאה שבתוך* הצמתים קבוצת מבין יותר הכבדה הצמתים קבוצת את ) המעגל) על ( Cולא המעגל* ) על ולא שמחוץ הצמתים - Cוקבוצת ב*, את* Bונסמן
. הקודמת באיטרציה הצמתים שאר כל קבוצת A* U C* U B* > 2/3 ולכןA* U C* >= 1/3 ,ולכןB היותר של. 2/3לכל המשקל כן כמו
A=A *היותר - 2/3לכל . ב הצמתים ומספר הסתיימה הלולאה היותר Cכי n√ 2√* 4לכלהעץ גובה √* Tכי היותר - n√ 2לכל ב הצמתים מספר היותר* Cולכן , n√ 2√* 2לכל
ברמות הצמתים היותר L1, L2ומספר לכל √ ) n√ 2√* 2ביחד k + √(n-k) <= √2* √nכי.) קמורה השורש שפונקצית בגלל
•Q.E.D.
סיבוכיות ניתוחהיותר: • לכל מישורי בגרף הקשתות מספר = O(n+m)לכן. 3n-6תזכורת
O(n).של • שיכון : Gמציאת .O(n)במישור הקודמת ההרצאה לפי• " " , : משלמים פאה ובכל פאה כל על עוברים טריאנגולציה ביצוע
(accounting " , כ( סה בגרף קשת לכל אחת .O(n)יחידה- Tחישוב • ה .G: O(n)של BFSעץ• . , רמה בכל הצמתים משקלי וסכום רמה בכל הצמתים מספר . O(n)חישובהרמות • וסכום L0<=L1<=L2מציאת רמה בכל הצמתים מספר בעזרת
: רמה בכל הצמתים .O(n)משקלישמעל • הצמתים שמתחת L0כיווץ הצמתים .L2: O(n)ומחיקתבלולאה:•
הנוכחית – שהקשת הפאה : eמציאת ) לה ) שייכת עץ קשת לנו O(1)שאינה יש כיoverlay.
אז – עץ קשת שהיא סמוכה קשת לה יש .O(1)אם איטרציה לאותה. Oאחרת, – " " המעגל)( תוך מ שמורידים הצמתים מספר של
משלמים • הלולאה בכל , O(1)ולכן לוקחת הלולאה כל ואז צומת .O(n)לכל• : כ" .O(n)סה
שאלות?
Thank You!