דיאגרמת וורונוי

Download Report

Transcript דיאגרמת וורונוי

‫ערן אבנור‬
‫‪26.12.012‬‬
‫‪1‬‬
‫הבנה‪/‬ריכוז‬
‫אני פה!‬
‫איטי מידי‬
‫נרדמים‬
‫מהר מידי‬
‫לא מבינים‬
‫קצב דיבור‬
‫‪2‬‬
‫מוטיבציה‬
‫‪ ‬עד עכשיו התעסקנו בקמור או בשילוש של קבוצת נקודות כלשהו‬
‫במרחב או במישור‪.‬‬
‫‪ ‬עכשיו נרצה לברר בהינתן קבוצת נקודות במישור ‪ ,S‬ובהינתן‬
‫נקודה כלשהי שלא ב‪ ,S-‬איזה נקודה ב‪ S-‬הכי קרובה אליה‪.‬‬
‫‪ ‬נניח שאוסף הנקודות ‪ S‬שלנו מייצג את רשת דואר ישראל‪ .‬כל‬
‫סניף מיוצג על ידי נקודה במישור‪ .‬נרצה לשייך כל אזור בארץ‬
‫לסניף דואר‪ ,‬סביר להניח על פי קירבה לסניף‪.‬‬
‫הערה‪ :‬זאת הרצאת מבוא‪ .‬לא נדבר פה על מבני‪-‬נתונים או לשאלה היותר‬
‫מתבקשת‪ ,‬איך מוצאים לאיזה איזור שייכת נקודה כלשהי‪.‬‬
‫‪3‬‬
‫גיאומטרית וורונוי ‪ -‬הגדרות‬
‫‪ ‬במהלך הרצאה‪ ,‬כאשר אדבר על קבוצת נקודות ‪ ,S‬הכוונה היא‬
‫לקבוצה סופית של נקודות במישור‪.‬‬
‫‪ ‬לאיבר ב‪( S-‬נקודה) נקרא "אתר" (‪)Site‬‬
‫‪ ‬אזור וורונוי (‪ )Voronoi Region‬של אתר ‪ - p‬יסומן כ‪- Vor(p)-‬‬
‫הוא‬
‫}𝑆 ∈ 𝑞 ‪𝑥 − 𝑝 ≤ 𝑥 − 𝑞 ,‬‬
‫‪V𝑜𝑟 𝑝 = 𝑥 ∈ ℝ2‬‬
‫כלומר קבוצת הנקודות במישור שהאתר ‪ p‬הוא הכי קרוב אליהן‬
‫(משאר האתרים ב‪.)S-‬‬
‫‪ ‬דיאגרמת וורונוי היא חלוקה סופית של המישור לאזורי וורונוי‪.‬‬
‫עבור קבוצה ‪ ,S‬נסמן ב‪ Vor(S)-‬את קבוצת הנק' שנמצאות ביותר‬
‫מאזור וורונוי אחד (נמצאות על גבולות האזורים)‪ .‬אוסף הנקודות‬
‫הזה מגדיר לנו קשתות וקודקודים‪.‬‬
‫‪4‬‬
‫גיאומטרית וורונוי – הגדרות (המשך)‬
‫‪ ‬אבחנה‪ :‬דיאגרמת וורונוי היא חלוקה סופית של המישור‪ ,‬לכן‬
‫חייבים להיות גם אזורי וורונוי שהם לא חסומים‪.‬‬
‫‪ ‬קשתות וורונוי הן הגבולות בין אזורי וורנוי‪.‬‬
‫‪ ‬קודקודי וורונוי הם נקודות החיבור של קשתות וורונוי‪.‬‬
‫‪5‬‬
‫הדגמה‬
‫‪Voro‬‬
‫‪Glide‬‬
‫גיאומטרית וורונוי – אזורי וורונוי‬
‫‪ ‬טענה‪ :‬כל אזורי וורונוי הם קמורים‪.‬‬
‫‪ ‬הוכחה‪:‬‬
‫נוכיח ‪ 2‬משפטי עזר‪.‬‬
‫טענה (‪ :)1‬חיתוך (לא בהכרח סופי) של אזורים קמורים הוא קמור‪.‬‬
‫הוכחה‪ :‬אזור הוא קמור אמ"מ כל ‪ 2‬נק' באזור רואות זו את זו‬
‫(הישר המחבר ביניהן נמצא כולו באזור)‪.‬‬
‫נסמן ב‪ A-‬את החיתוך‪ ,‬אז‪:‬‬
‫עבור ‪ 2‬נק' ב‪ A-‬מתקיים‪:‬‬
‫לכן הקטע ‪ ab‬נמצא כולו בכל ‪) Si‬כי ‪ Si‬קמור) ולכן גם ב‪.A-‬‬
‫‪6‬‬
‫גיאומטרית וורונוי – אזורי וורונוי‬
‫‪ ‬טענה‪ :‬כל אזורי וורונוי הם קמורים‪.‬‬
‫‪ ‬הוכחה ‪ -‬המשך‪:‬‬
‫עבור שני אתרים ‪ p, q‬נסמן ב‪ H(p,q)-‬את חצי המישור הקרוב ל‪-‬‬
‫‪ p‬שנפרש ע"י אנך אמצעי בין ‪ p‬ל‪:q-‬‬
‫} 𝑞‪𝑥−𝑝 ≤ 𝑥−‬‬
‫‪7‬‬
‫‪𝐻 𝑝, 𝑞 = 𝑥 ∈ ℝ2‬‬
‫גיאומטרית וורונוי – אזורי וורונוי‬
‫‪ ‬טענה‪ :‬כל אזורי וורונוי הם קמורים‪.‬‬
‫‪ ‬הוכחה ‪ -‬המשך‪:‬‬
‫טענה (‪ )2‬אזור וורונוי של אתר ‪ p‬הוא חיתוך של כל חצאי‬
‫המישורים בין ‪ p‬לבין שאר האתרים‪.‬‬
‫הוכחה‪ :‬נסתכל על חצי המישור של אתר ‪ p‬מול שאר האתרים‪:‬‬
‫‪8‬‬
‫גיאומטרית וורונוי – אזורי וורונוי‬
‫‪ ‬טענה‪ :‬כל אזורי וורונוי הם קמורים‪.‬‬
‫‪ ‬הוכחה ‪ -‬המשך‪:‬‬
‫‪ ‬לפי משפט עזר (‪ (2‬אזור וורונוי הוא חיתוך סופי של חצאי‬
‫מישורים‪ .‬נשים לב שחצי מישור הוא איזור קמור‪ ,‬ולכן לפי משפט‬
‫עזר (‪ ,)1‬חיתוך של אזורים קמורים הוא קמור‪ ,‬ולכן אזור וורונוי‬
‫הוא קמור‪.‬‬
‫‪9‬‬
‫גיאומטרית וורונוי – קודקודי וורונוי‬
‫‪ ‬תכונה של קודקודים‪:‬‬
‫בהינתן ‪ 3‬נקודות במישור‪ ,‬לא על קו ישר‪ ,‬מתקיים ששלושת‬
‫האנכים האמצעיים יפגשו בנקודה יחידה ונקודה זאת היא מרכז‬
‫המעגל החוסם את המשולש הנוצר ע"י ‪ 3‬הנקודות (משפט של‬
‫אוקלידס)‬
‫‪ ‬שאלה‪ :‬איפה נמצאת נקודת המפגש ביחס למשולש?‬
‫‪10‬‬
‫גיאומטרית וורונוי – קודקודי וורונוי‬
‫‪ ‬כאשר ‪ 4‬אתרים נמצאים על אותו מעגל נקבל מקרה מנוון‬
‫לכן כעת נגדיר "נקודות במיקום כללי" כקבוצת נקודות שכל ‪4‬‬
‫נקודות בה לא נמצאות על מעגל משותף (כבר ראינו בעבר)‪.‬‬
‫‪11‬‬
‫גיאומטרית וורונוי – קודקודי וורונוי‬
‫‪ ‬לצומת וורונוי של קבוצת נקודות במיקום כללי יש בדיוק דרגה ‪.3‬‬
‫(נבין למה מיד אחרי המשפט הבא שתיכף נוכיח)‬
‫‪ ‬כל צומת וורונוי הוא נקודת מפגש של אנכים אמצעים‪ ,‬אבל להפך‬
‫לא בהכרח‪.‬‬
‫‪12‬‬
‫גיאומטרית וורונוי – קודקודי וורונוי‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות ו‪ Vor(S)-‬דיאגרמת וורונוי שלה‪.‬‬
‫נקודה ‪ v‬היא קודקוד וורונוי של )‪ Vor(S‬אמ"מ קיים מעגל‬
‫שמרכזו ב‪ v-‬שעל היקפו לפחות ‪ 3‬אתרים והפנים שלו ריק‬
‫(מאתרים)‪.‬‬
‫‪ ‬דוגמא‪:‬‬
‫‪13‬‬
‫גיאומטרית וורונוי – קודקודי וורונוי‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות ו‪ Vor(S)-‬דיאגרמת וורונוי שלה‪.‬‬
‫נקודה ‪ v‬היא קודקוד וורונוי של )‪ Vor(S‬אמ"מ קיים מעגל‬
‫שמרכזו ב‪ v-‬שעל היקפו לפחות ‪ 3‬אתרים והפנים שלו ריק‬
‫(מאתרים)‪.‬‬
‫‪ ‬הוכחה‪ >= :‬אם ‪ v‬הוא קודקוד וורונוי אז הוא חייב להיות סמוך‬
‫לפחות‪ 3-‬אזורי וורונוי‪ .Vor(p), Vor(q), Vor(r) :‬לכן ‪ v‬נמצא‬
‫במרחק שווה מ‪ p,q-‬ו‪( r-‬למה?)‪ .‬לכן קיים מעגל ש‪ v-‬הוא המרכז‪,‬‬
‫ו‪ p,q,r-‬על היקפו‪ .‬אם קיים אתר אחר בתוך המעגל אז הוא קרוב‬
‫יותר ל‪ v-‬בסתירה לכך שהאזורים )‪Vor(p), Vor(q), Vor(r‬‬
‫נפגשים ב‪.v-‬‬
‫‪14‬‬
‫גיאומטרית וורונוי – קודקודי וורונוי‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות ו‪ Vor(S)-‬דיאגרמת וורונוי שלה‪.‬‬
‫נקודה ‪ v‬היא קודקוד וורונוי של )‪ Vor(S‬אמ"מ קיים מעגל‬
‫שמרכזו ב‪ v-‬שעל היקפו לפחות ‪ 3‬אתרים והפנים שלו ריק‬
‫(מאתרים)‪.‬‬
‫‪ =< ‬נניח שקיים מעגל שמרכזו ב‪ v-‬ו‪ 3-‬אתרים ‪ p,q,r‬על היקפו‪.‬‬
‫בגלל שפנים המעגל ריק‪ ,‬אז ‪ v‬נמצא בקצה האזורים‪Vor(p), :‬‬
‫)‪( Vor(q), Vor(r‬במרחק שווה) ולכן הוא נקודת מפגש של‬
‫הקצוות שלהם ולכן הוא אכן קודקוד וורונוי‪.‬‬
‫‪15‬‬
‫גיאומטרית וורונוי – קודקודי וורונוי‬
‫‪ ‬תרגיל‪ :‬עבור ‪ ,n≥3‬האם אפשר למצוא קבוצת נקודות ‪ S‬בעלת ‪n‬‬
‫אתרים שמקיימת‪:‬‬
‫א) אין אף קודקוד וורונוי?‬
‫ב) יש בדיוק קודקוד וורונוי אחד?‬
‫‪ ‬פתרון‪:‬‬
‫‪16‬‬
‫גיאומטרית וורונוי – קשתות וורונוי‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות ו‪ Vor(S)-‬דיאגרמת וורונוי שלה‪.‬‬
‫תהא ‪ e‬תת קבוצה קשירה של האנך האמצעי בין האתרים ‪ p‬ו‪.q-‬‬
‫‪ e‬היא קשת וורונוי אמ"מ לכל נקודה ‪ x‬ב‪ e-‬קיים מעגל שמרכזו‬
‫ב‪ x-‬ועל היקפו רק האתרים ‪ p‬ו‪ q-‬והפנים שלו ריק‪ .‬בנוסף ‪e‬‬
‫מקסימלית עם תכונה זו‪.‬‬
‫‪ ‬דוגמא‪:‬‬
‫‪17‬‬
‫גיאומטרית וורונוי – קשתות וורונוי‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות ו‪ Vor(S)-‬דיאגרמת וורונוי שלה‪.‬‬
‫תהא ‪ e‬תת קבוצה קשירה של האנך האמצעי בין האתרים ‪ p‬ו‪.q-‬‬
‫‪ e‬היא קשת וורונוי אמ"מ לכל נקודה ‪ x‬ב‪ e-‬קיים מעגל שמרכזו‬
‫ב‪ x-‬ועל היקפו רק האתרים ‪ p‬ו‪ q-‬והפנים שלו ריק‪ .‬בנוסף ‪e‬‬
‫מקסימלית עם תכונה זו‪.‬‬
‫‪ ‬הוכחה‪ >= :‬נניח ש‪ x-‬נקודה על קשת וורונוי ‪ e‬בין הצמתים ‪ p‬ו‪.q-‬‬
‫לכן ‪ p‬ו‪ q-‬במרחק שווה מ‪ .x-‬אם המעגל שמרכזו ב‪ x-‬ונוגע ב‪ p-‬ו‪-‬‬
‫‪ q‬מכיל עוד אתר ‪( r‬בפנים) אז ‪ x‬תהיה שייכת רק ל‪ .Vor(r)-‬אם‬
‫על היקף המעגל יש עוד אתר ‪ r‬אז נקבל סתירה לכך ש‪ x-‬על קשת‬
‫וורונוי ולכן יכולה להיות שייכת רק ל‪ 2-‬האזורים הסמוכים‬
‫לקשת‪.‬‬
‫‪18‬‬
‫גיאומטרית וורונוי – קשתות וורונוי‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות ו‪ Vor(S)-‬דיאגרמת וורונוי שלה‪.‬‬
‫תהא ‪ e‬תת קבוצה קשירה של האנך האמצעי בין האתרים ‪ p‬ו‪.q-‬‬
‫‪ e‬היא קשת וורונוי אמ"מ לכל נקודה ‪ x‬ב‪ e-‬קיים מעגל שמרכזו‬
‫ב‪ x-‬ועל היקפו רק האתרים ‪ p‬ו‪ q-‬והפנים שלו ריק‪ .‬בנוסף ‪e‬‬
‫מקסימלית עם תכונה זו‪.‬‬
‫‪ =< ‬נניח שקיים מעגל ריק שהיקפו נוגע רק ב‪ p-‬ו‪ q-‬ומרכזו‬
‫וכן לכל אתר ‪ r‬אחר‪:‬‬
‫בנקודה ‪ x‬כזו‪ .‬מתקיים‪:‬‬
‫(אחרת המעגל לא ריק)‪ .‬לכן ‪ x‬חייבת להיות או‬
‫על קשת או צומת וורונוי‪ .‬לפי המשפט הקודם‪ x ,‬לא יכולה להיות‬
‫צומת וורונוי (צריך ‪ 3‬אתרים על ההיקף)‪ .‬לכן ‪ x‬על קשת וורונוי‪.‬‬
‫‪19‬‬
‫גיאומטרית וורונוי – קשתות וורונוי‬
‫‪ ‬איפיון של הקשתות‪ :‬קשת וורונוי יכולה להיות אחת מ‪:3-‬‬
‫‪ ‬קטע סופי (עם ‪ 2‬קצוות)‬
‫‪ ‬קרן (קצה אחד‪ ,‬ראינו בציור)‬
‫‪ ‬ישר אינסופי‬
‫‪ ‬ננסה לאפיין מתי קשת תהיה ישר אינסופי‪.‬‬
‫‪20‬‬
‫גיאומטרית וורונוי – קשתות וורונוי‬
‫‪ ‬משפט‪ :‬ל‪ Vor(S)-‬יש קשתות שהן ישרים אינסופיים אמ"מ כל‬
‫האתרים ב‪ S-‬נמצאים על אותו קו ישר‪.‬‬
‫‪ ‬הוכחה‪ =< :‬אם כל האתרים על אותו ישר‪ ,‬קל לראות שהקשתות‬
‫הן קווים מקבילים ולכן לא יפגשו לעולם (ראינו)‪.‬‬
‫‪ >= ‬נניח כעת שלא כל הנקודות על אותו הישר‪ .‬נניח שב‪Vor(S)-‬‬
‫קשת אינסופית ‪ L‬שמפרידה בין האזורים )‪ Vor(p‬ו‪ .Vor(q)-‬יהי ‪r‬‬
‫אתר ב‪ S-‬שלא נמצא על אותו ישר יחד עם ‪ p‬ו‪ .q-‬בה"כ נניח גם ש‪-‬‬
‫‪ r 21‬ב‪( H(p,q)-‬קרוב יותר ל‪.)p-‬‬
‫גיאומטרית וורונוי – קשתות וורונוי‬
‫‪ ‬משפט‪ :‬ל‪ Vor(S)-‬יש קשתות שהן ישרים אינסופיים אמ"מ כל‬
‫האתרים ב‪ S-‬נמצאים על אותו קו ישר‪.‬‬
‫‪ ‬המשך הוכחה‪ >= :‬נסתכל על‬
‫האנך האמצעי ל‪ .pr-‬הוא חייב‬
‫לחתוך את ‪( L‬כי הם לא‬
‫לא שייכת‬
‫מקבילים)‪ .‬בנוסף הקרן‬
‫ל‪ Vor(S)-‬כי הקרן קרובה יותר‬
‫ל‪ r-‬ולכן כולה ב‪.Vor(r)-‬‬
‫ולכן ‪ L‬לא כולו ב‪( Vor(S)-‬ולא‬
‫אינסופי משני הכיוונים)‪.‬‬
‫‪22‬‬
‫גיאומטרית וורונוי – קשתות וורונוי‬
‫‪ ‬מסקנה‪ Vor(S) :‬היא לא קשירה אמ"מ כל האתרים ב‪ S-‬הם על‬
‫אותו ישר‪.‬‬
‫‪ ‬רעיון הוכחה‪ >= :‬אם )‪ Vor(S‬לא קשירה‪ ,‬אז חייב להיות אזור‬
‫וורונוי )‪( Vor(p‬אינסופי) שמפריד את המישור לשני חלקים זרים‪.‬‬
‫בגלל ש‪ Vor(p)-‬הוא קמור ומחלק את המישור לשני חלקים זרים‬
‫אז הגבולות שלו חייבים להיות ‪ 2‬קווים מקבילים‪ .‬לפי המשפט‬
‫הקודם‪ ,‬כל האתרים ב‪ S-‬חייבים להיות על אותו ישר‪.‬‬
‫‪ =< ‬בדיוק מה שהוכחנו במשפט הקודם – קשתות וורונוי מקבילות‬
‫אחת לשניה‪ ,‬ולכן ה‪ Vor(S)-‬לא קשירה‪.‬‬
‫‪23‬‬
‫גיאומטרית וורונוי ‪ -‬סיבוכיות‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות בעלת ‪ n ≥ 3‬אתרים‪ .‬ל‪ Vor(S)-‬יש‬
‫לכל היותר ‪ 2n-5‬קודקודים ולכל היותר ‪ 3n-6‬קשתות‪( .‬הסיבוכיות‬
‫הקומבינטורית של )‪ Vor(S‬היא לינארית במספר האתרים)‪.‬‬
‫‪ ‬הוכחה‪ :‬ראשית ניקח את כל הקשתות שהן קרנים ו"נכופף" אותן‬
‫לנק' חדשה שנמצאת באחד האזורים הלא חסומים (למה חייב‬
‫להיות אחד כזה?)‪.‬‬
‫‪24‬‬
‫גיאומטרית וורונוי ‪ -‬סיבוכיות‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות בעלת ‪ n ≥ 3‬אתרים‪ .‬ל‪ Vor(S)-‬יש‬
‫לכל היותר ‪ 2n-5‬קודקודים ולכל היותר ‪ 3n-6‬קשתות‪( .‬הסיבוכיות‬
‫הקומבינטורית של )‪ Vor(S‬היא לינארית במספר האתרים)‪.‬‬
‫‪ ‬המשך הוכחה‪ :‬נשים לב שקיבלנו גרף מישורי קשיר ‪ G‬שבו יש‬
‫התאמה בין פאה לאתר ‪ -‬האזור וורונוי שלו‪ .‬נסמן את מספר הפאות‬
‫ב‪ G-‬ב‪( n-‬מספר האתרים)‪ .‬מתקיים‪ :‬ל‪ G-‬ו‪ Vor(S)-‬אותו מספר‬
‫קשתות – ‪ .e‬ל‪Vor(S)-‬‬
‫יש ‪ v‬קודקודים‬
‫(האתרים לא נחשבים)‬
‫ולכן ל‪ G-‬יש ‪v+1‬‬
‫קודקודים‪.‬‬
‫‪25‬‬
‫גיאומטרית וורונוי ‪ -‬סיבוכיות‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות בעלת ‪ n ≥ 3‬אתרים‪ .‬ל‪ Vor(S)-‬יש‬
‫לכל היותר ‪ 2n-5‬קודקודים ולכל היותר ‪ 3n-6‬קשתות‪( .‬הסיבוכיות‬
‫הקומבינטורית של )‪ Vor(S‬היא לינארית במספר האתרים)‪.‬‬
‫‪ ‬המשך הוכחה‪ G :‬גרף מישורי קשיר‪ ,‬לכן מקיים את נוסחת אוילר‪:‬‬
‫‪.V-E+F=2‬‬
‫נציב‪ F=n, E=e, V=v+1 :‬ולכן‪.(v+1)-e+n=2 :‬‬
‫לכל קודקוד דרגה לפחות ‪ 3‬לכן‪( 3(v+1)≤2e :‬למה?)‬
‫נציב באי‪-‬שוויון את נוסחת אוילר (‪ )v+1=2+e-n‬ונקבל‪:‬‬
‫‪3(v+1)≤2e  3(2+e-n) ≤ 2e  6+3e-3n ≤ 2e e ≤ 3n-6‬‬
‫‪26‬‬
‫גיאומטרית וורונוי ‪ -‬סיבוכיות‬
‫‪ ‬משפט‪ :‬תהא ‪ S‬קבוצת נקודות בעלת ‪ n ≥ 3‬אתרים‪ .‬ל‪ Vor(S)-‬יש‬
‫לכל היותר ‪ 2n-5‬קודקודים ולכל היותר ‪ 3n-6‬קשתות‪( .‬המורכבות‬
‫הקומבינטורית של )‪ Vor(S‬היא לינארית במספר האתרים)‪.‬‬
‫‪ ‬המשך הוכחה‪ :‬באותו אופן שוב נציב באי‪-‬שוויון ( ‪ ) 3(v+1)≤2e‬את‬
‫נוסחת אוילר (‪ )e=v+1-2+n‬ונקבל‪:‬‬
‫‪3(v+1)≤2(v+1-2+n)  3v+3 ≤ 2v+2n-2  v ≤ 2n-5‬‬
‫‪27‬‬
‫גיאומטרית וורונוי ‪ -‬סיבוכיות‬
‫‪ ‬תרגיל‪ :‬מתי מתקבל שוויון? (החסמים הדוקים)‬
‫‪ ‬בקבוצת נקודות ‪ S‬במצב כללי שיש בדיוק ‪ 3‬קרנים‪ ,‬אז דרגת כל‬
‫צומת בגרף ‪ G‬היא ‪ 3‬ולכן‪.3(v+1)=2e :‬‬
‫‪28‬‬
‫גיאומטרית וורונוי ‪ -‬סיבוכיות‬
‫‪ ‬תרגיל‪ :‬הוכיחו שלכל קבוצת נקודות ‪ S‬במיקום כללי‪ ,‬המספר‬
‫הממוצע של קודקודי וורונוי לאזור וורונוי קטן מ‪.6-‬‬
‫‪ ‬הוכחה‪ :‬תהא ‪ S‬קבוצת נקודת במיקום כללי בגודל ‪ .n‬עבור ‪n≤3‬‬
‫יש לכל היותר קודקוד אחד‪ .‬אחרת‪:‬‬
‫לפי המשפט הקודם ל‪ Vor(S)-‬יש לכל היותר ‪ 2n-5‬קודקודים‪ .‬אם‬
‫נספור את כל הקודקודים שרואים כל האזורים נקבל לכל היותר‬
‫)‪ – 3(2n-5‬כי כל קודקוד שייך בדיוק ל‪ 3-‬אזורים‪ .‬לכן הממוצע‬
‫לכל אזור וורונוי הוא )‪ 6-(15/n‬קודקודים (כי יש ‪ n‬אזורים)‪ .‬עבור‬
‫‪ n‬גדול מאוד החסם שואף ל‪( 6-‬מלמטה)‪.‬‬
‫‪29‬‬
‫גיאומטרית וורונוי ‪ -‬סיבוכיות‬
‫‪ ‬טענה‪ :‬עבור )‪ Vor(S‬ונק' ‪ Vor(p) ,p‬הוא לא חסום אמ"מ ‪p‬‬
‫נמצאת על הקמור של ‪.S‬‬
‫‪ ‬הוכחה‪ =< :‬תהי ‪ p‬נקודה בקמור‪ .‬אז קיים קו דרך ‪ p‬שמשיק‬
‫לקמור של ‪ S‬ומחלק את המישור ל‪ 2-‬חלקים שבאחד כל ‪ .S‬נעביר‬
‫אנך מ‪ p-‬לקו המשיק הזה‪.‬‬
‫נוכיח שהוא מוכל ב‪.Vor(p)-‬‬
‫תהי ‪ a‬נקודה על הקרן הזאת‪.‬‬
‫תהי ‪ q‬נקודה כלשהי בקמור‪.‬‬
‫נסתכל על הקו ‪ ,aq‬הוא חייב‬
‫לחצות את המשיק בנקודה כלשהי‬
‫‪ .r‬מתקיים ‪( ar>ap‬יתר במשולש‬
‫ישר זווית)‪ .‬בפרט ‪.aq>ar>ap‬‬
‫ולכן )‪.a∈Vor(p‬‬
‫‪30‬‬
‫גיאומטרית וורונוי ‪ -‬סיבוכיות‬
‫‪ ‬טענה‪ :‬עבור )‪ Vor(S‬ונק' ‪ Vor(p) ,p‬הוא לא חסום אמ"מ ‪p‬‬
‫נמצאת על הקמור של ‪.S‬‬
‫‪ ‬הוכחה‪ >= :‬יהי )‪ Vor(p‬אזור וורונוי לא חסום‪ .‬אז קיימת קרן‬
‫שיוצאת מ‪ p-‬שמוכלת בו‪ .‬נעביר אנך לקרן דרך ‪ .p‬נראה שהוא‬
‫מחלק את המישור לשני חלקי‬
‫שבאחד מהם ‪ .S‬תהי ‪ a‬נקודה על‬
‫הקרן‪ .‬בגלל שהיא באזור )‪Vor(p‬‬
‫היא קרובה יותר ל‪ p-‬מאשר לכל‬
‫אתר אחר ‪ .q‬נניח בשלילה שקיים‬
‫אתר ‪ q‬מ"ימין" למשיק‪ .‬אזי‬
‫קיימת ‪ a‬כזו על הקרן שלא שייכת‬
‫ל‪( Vor(p)-‬לפי פיתגורס)‬
‫בסתירה לכך שיש קרן אינסופית‬
‫‪ 31‬ב‪.Vor(p)-‬‬
‫אלגוריתמים לדיאגרמת וורונוי‬
‫‪ ‬האלגוריתם הטריוויאלי‪ :‬נמצא כל אזור ע"י חיתוך של ‪ n-1‬חצאי‬
‫מישורים‪ .‬זמן ריצה‪.O(n2logn) :‬‬
‫‪ ‬שיפורים‪:‬‬
‫‪ ‬ב‪ Shamos and Hoey 75-‬המציאו אלג' רקורסיבי (‪divide-and-‬‬
‫‪ )conquer‬שזמן ריצתו )‪ .O(nlogn‬האלג' קשה למימוש ודורש‬
‫תשומת לב זהירה למבני הנתונים‪.‬‬
‫‪ ‬ב‪ Fortune 85-‬פיתח אלג' נוסף באותו זמן ריצה‪ ,‬שמתבסס על‬
‫שיטת סריקת המישור (‪ .)plane sweep‬הרעיון‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪32‬‬
‫סריקת המישור משמאל לימין ע"י קו אנכי (מייצג מעין אתר נע)‪.‬‬
‫בניה של הדיאגרמה תוך כדי התקדמות הקו (בעת מפגש עם אתרים)‪.‬‬
‫בכל רגע נתון משמאל לקו (לפני ה"חזית הפרבולית") קיימת דיאגרמת‬
‫וורונוי (לא מלאה) – מיד דוגמא‪.‬‬
‫אלגוריתמים לדיאגרמת וורונוי‬
‫‪ ‬הרצה של אלגוריתם ה‪-‬‬
‫‪sweep-line‬‬
‫‪ ‬הקו האדום מתנהג כאתר‪,‬‬
‫כלומר בכל רגע נתון‬
‫משמאל לקו קיים אזור‬
‫וורונוי (הנק' על שפתו‬
‫במרחק שווה מהקו‬
‫ומאיזשהו אתר שמאלי)‪.‬‬
‫‪http://en.wikipedia.org/wiki/Sweep_line_algorithm‬‬
‫‪33‬‬
‫אלגוריתמים לדיאגרמת וורונוי‬
‫‪ ‬ב‪ Green and Sibson 77-‬פיתחו אלגוריתם תוספתי‬
‫(‪ )incremental‬פשוט ואלגנטי שעדין מאוד פופלרי למרות זמן‬
‫ריצה לא מדהים של )‪.O(n2‬‬
‫‪ ‬תיאור האלגוריתם‪:‬‬
‫‪ ‬נניח שכבר יש בידינו דיאגרמת וורונוי עם ‪ k‬אתרים‪ .‬כעת נוסיף אתר‬
‫חדש ‪ p‬ונתקן את הדיאגרמה בהתאם‪.‬‬
‫‪34‬‬
‫אלגוריתמים לדיאגרמת וורונוי‬
‫‪ ‬הקלות‪:‬‬
‫‪ ‬הנק' החדשה נמצאת ממש בתוך אזור וורונוי קיים ולא על קצה שלו‪.‬‬
‫‪ ‬אזורי וורוני שמשתתפים בצעד האלג' הם חסומים‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪35‬‬
‫עבור נקודה ‪ ,p‬נמצא את האזור אליו היא שייכת (חייב להיות‬
‫אחד כזה)‪ .‬נגיד )‪.Vor(p1‬‬
‫נסתכל על האנך האמצעי לקטע ‪.p1p‬‬
‫בגלל ש‪ Vor(p1)-‬קמור וחסום הוא חותך‬
‫את השפה שלו בדיוק ב‪ 2-‬נקודות‪.‬‬
‫נסמן את נק' החיתוך ‪ x1,x2‬כך שהמשולש‬
‫‪ px1x2‬הוא נגד כיוון השעון‪.‬‬
‫הקטע ‪ x1x2‬חותך את )‪ Vor(p1‬לשני‬
‫חלקים שאחד מהם שייך ל‪.Vor(p)-‬‬
‫אלגוריתמים לדיאגרמת וורונוי‬
‫‪ ‬הנקודה ‪ x2‬נמצאת על קשת וורונוי‪ ,‬כלומר בין שני אזורים‬
‫)‪ Vor(p1‬ו‪.Vor(p2)-‬‬
‫‪ ‬נסתכל על האנך האמצעי לקטע ‪.p2p‬‬
‫‪ ‬האנך חותך את )‪ Vor(p2‬בדיוק ב‪-‬‬
‫‪ x2‬ובעוד נקודה ‪.x3‬‬
‫‪ ‬באותו אופן הקטע ‪ x2x3‬חותך את‬
‫)‪ Vor(p2‬לשני חלקים שאחד מהם שייך‬
‫ל‪.Vor(p)-‬‬
‫‪ ‬נמשיך בתהליך עד שנגיע בחזרה ל‪x1-‬‬
‫‪ ‬שנסיים נזרוק הקודקודים הישנים‬
‫וחלקי הקשתות שהוסרו‪.‬‬
‫‪36‬‬
‫אלגוריתמים לדיאגרמת וורונוי‬
‫‪ ‬טיפול ב"הקלות"‬
‫‪ ‬אם הנק' החדשה נמצאת על קצה אזור וורונוי – נוסיף להגדרה של‬
‫מצב כללי‪ ,‬שהמקרה הזה לא יקרה‪.‬‬
‫‪ ‬אם אזור וורוני לא חסום‪ :‬נשנה את כיוון האלגוריתם‪ .‬מתקיים‬
‫שהאנך האמצעי חותך לפחות פעם אחת את האזור (אלא אם כל‬
‫האתרים על ישר אחד)‪ .‬נמשיך את צעד האלגוריתם מנקודה זו‪ ,‬ולא‬
‫מהנקודה הרגילה‪ .‬נעצור כשנגיע שוב לקשת וורונוי לא חסומה‪.‬‬
‫‪37‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪38‬‬
‫בדיאגרמת וורונוי מייצגים קירבה של נקודות לאתרים‪.‬‬
‫נרצה להסתכל אולי על קרבה של אתרים זה לזה‪.‬‬
‫הגדרה‪ :‬הגרף הדואלי של )‪ Vor(S‬הוא גרף שקודקודיו הם‬
‫האתרים ב‪ S-‬ושני קודקודים מחוברים בקשת אמ"מ הם חולקים‬
‫אותה קשת וורונוי (סמוכים זה לזה)‪.‬‬
‫מתקיים‪ :‬הגרף הדואלי של )‪ Vor(S‬הוא גרף מישורי (הוכחה‬
‫בהמשך)‪.‬‬
‫תזכורת‪ :‬גרף מישורי הוא גרף שאפשר לצייר אותו כך שאף קשת‬
‫לא תחתוך קשת אחרת – כלומר מספיק להראות דרך ציור אחת‬
‫כזאת‪.‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬בשחור – קשתות וורונוי‪ .‬באדום‪ :‬קשתות הגרף הדואלי‪.‬‬
‫(קודקודי וורונוי‪ ,‬בשחור‪ ,‬לא שייכים לגרף הדואלי)‪.‬‬
‫‪39‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬שאלה קיומית‪ :‬מה יקרה לגרף הדואלי אם ניישר את הקשתות?‬
‫(כלומר נרשה שהן יהיו קווים ישרים בלבד)‬
‫‪ ‬תשובה קיומית‪ :‬כתוב בכותרת‪ .‬עכשיו נוכיח‪.‬‬
‫‪40‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬למה‪ :‬יהיו ‪ B,A‬שני עיגולים עם ‪ 2‬מיתרים שחותכים זה את זה‪.‬‬
‫אז מתקיים שלפחות נקודת קצה אחת של אחד המיתרים בעיגול‬
‫אחד נמצאת ממש בתוך העיגול השני‪.‬‬
‫‪ ‬הוכחה‪ :‬אם אחד העיגולים מוכל בשני‪ ,‬סיימנו‪.‬‬
‫אחרת‪ ,‬נסובב את המישור כך שהנקודה השמאלית ביותר של ‪A‬‬
‫נמצאת משמאל לנקודה השמאלית ביותר של ‪.B‬‬
‫‪ ‬נסמן ב‪ a1a2-‬את המיתר של ‪ A‬כך ש‪a1≤xa2‬‬
‫‪ ‬נסמן ב‪ b1b2‬את המיתר של ‪ B‬כך ש‪b1≤xb2‬‬
‫‪ ‬נסמן ב‪ L-‬את המיתר הנמתח בין נקודות‬
‫החיתוך של העיגולים (הקו השחור)‪.‬‬
‫‪41‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬למה‪ :‬יהיו ‪ B,A‬שני עיגולים עם ‪ 2‬מיתרים שחותכים זה את זה‪.‬‬
‫אז מתקיים שלפחות נקודת קצה אחת של אחד המיתרים בעיגול‬
‫אחד נמצאת ממש בתוך העיגול השני‪.‬‬
‫‪ ‬אם ‪ a1,a2<xL‬וגם ‪ b1,b2>xL‬אז מתקיים ציור שמאל‪ .‬ולכן‬
‫המיתרים לא יכולים להיחתך בסתירה להנחה‪.‬‬
‫) או‬
‫‪ ‬לכן בהכרח )‪ a1‬או ‪ a2‬ב‪-‬‬
‫)‬
‫)‪ b1‬או ‪ b2‬ב‪-‬‬
‫‪ ‬בכל מקרה קצה של מיתר אחד חייב‬
‫להיות בעיגול השני‪.‬‬
‫‪42‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬משפט‪ :‬בגרף הדואלי של )‪ Vor(S‬עם קשתות קווים ישרים אין‬
‫קשתות חוצות (נסמנו ‪.)G‬‬
‫‪ ‬הוכחה‪ :‬נניח בשלילה שקיימות שתי קשתות ‪ a1a2‬ו‪ b1b2-‬ב‪G-‬‬
‫שחוצות זו את זה (‪ a1,a2,b1,b2‬אתרים)‪ .‬לפי המשפט שהוכחנו‬
‫קודם – קיימת נקודה ‪ x‬על קשת‬
‫וורונוי בין ‪ a1‬ל‪ a2-‬כך שקיים עיגול ‪A‬‬
‫ש‪ x-‬היא מרכזו‪ ,‬ורק האתרים‬
‫‪ a1‬ו‪ a2-‬נמצאים בהיקפו והפנים ריק‪.‬‬
‫באותו אופן קיימת נקודה ‪ y‬ועיגול ‪B‬‬
‫כך שהאתרים ‪ b1‬ו‪ b2-‬על היקפו בלבד‪.‬‬
‫‪43‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬משפט‪ :‬בגרף הדואלי של )‪ Vor(S‬עם קשתות קווים ישרים אין‬
‫קשתות חוצות (נסמנו ‪.)G‬‬
‫‪ ‬הוכחה – המשך‪ :‬אבל לפי הלמה הקודמת‪ ,‬חייב להתקיים שקצה‬
‫אחד (אתר) של הקטעים נמצא ממש בעיגול השני‪ .‬בסתירה למשפט‬
‫שהעיגולים חייבים להיות‬
‫ריקים‪.‬‬
‫לכן אף קשת לא חותכת קשת אחרת‪.‬‬
‫(למשל בציור‪ a2 ,‬בתוך המעגל ‪)B‬‬
‫‪44‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬מסקנה‪ :‬עבור קבוצת נקודות ‪ S‬במיקום כללי (אין ‪ 4‬אתרים על‬
‫אותו היקף מעגל) מתקיים שהגרף הדואלי עם קשתות קווים‬
‫ישרים של )‪ )G( Vor(s‬הוא שילוש של ‪.S‬‬
‫‪ ‬הוכחה‪ :‬מתקיים שדרגת כל קודקוד וורונוי היא בדיוק ‪ ,3‬לכן‬
‫מתאים בדיוק למשולש ב‪ .G-‬נשים לב שב‪ G-‬אף קשת לא חוצה‬
‫קשת אחרת‪ .‬ולכן קיבלנו שילוש חוקי‪.‬‬
‫‪45‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬הגדרה‪ :‬הגרף הדואלי של )‪ Vor(S‬עם קשתות קווים ישרים נקרא‬
‫השילוש הדואלי של דיאגרמת וורונוי‪( .‬בקיצור פשוט הדואלי)‪.‬‬
‫הדואליות מקשרת כל אזור וורונוי לצומת (אתר) וכל אתר מקשרת‬
‫למשולש‪.‬‬
‫‪46‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬המשפט הקיומי‪ :‬תהא ‪ S‬קבוצת נקודות במיקום כללי אז‬
‫השילוש הדואלי של )‪ Vor(S‬הוא בדיוק שילוש דלוני )‪Del(S‬‬
‫של ‪.S‬‬
‫‪ ‬הוכחה‪ :‬לפי משפט שהוכחנו קודם‪ ,‬כל צומת וורונוי הוא מרכז של‬
‫מעגל החוסם את ‪ 3‬האתרים שאליו הוא סמוך‪ ,‬והמעגל ריק‪ .‬נשים‬
‫לב שהמעגל חוסם בדיוק את המשולש בשילוש‪ .‬לפי עוד משפט‬
‫שהוכח בהרצאות הקודמות‪ ,‬שילוש הוא דלוני אמ"מ לכל משולש‬
‫מתקיים שיש מעגל חוסם שבו אין אף קודקודים אחרים מלבד של‬
‫המשולש‪.‬‬
‫‪47‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫הקשר בין שילוש דלוני לדיאגרמת וורונוי הוא לא סתם מקרי!‬
‫דלוני היה בעצם דוקטורנט של וורונוי באוניברסיטה של קייב ‪.‬‬
‫‪48‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬מסקנה‪ :‬תהא ‪ S‬קבוצת נקודות במיקום כללי אז שילוש דלוני‬
‫)‪ Del(S‬הוא יחיד – הוכחה אלטרנטיבית ליחידות שילוש דלוני‪.‬‬
‫‪ ‬הוכחה‪ :‬דיאגרמת וורונוי היא יחידה (ישירות מההגדרה) ולכן לפי‬
‫המשפט הקודם היא מתאימה בדיוק לשילוש דלוני‪.‬‬
‫‪49‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬תזכורת‪ :‬ה‪ flip graph-‬של קבוצת נקודות ‪ S‬הוא גרף שבו כל‬
‫קודקוד הוא שילוש חוקי של ‪ S‬ושני קודקודים מחוברים אמ"מ‬
‫אפשר לעבור משילוש אחד לשני ע"י הפיכת אלכסון אחד‪.‬‬
‫‪ ‬שימוש מעניין‪ :‬הוכחה מחודשת למשפט שה‪ flip graph-‬הוא‬
‫קשיר‪.‬‬
‫‪ ‬הוכחה‪ :‬לפי האלג' למציאת שילוש דלוני (היפוך אלכסונים)‪ ,‬אפשר‬
‫להפוך כל שילוש לשילוש דלוני‪ .‬לפי המסקנה‪ ,‬שילוש דלוני הוא‬
‫יחיד‪ .‬לכן קיים מסלול ב‪ flip graph-‬מכל צומת לצומת המייצג‬
‫את שילוש דלוני‪ .‬לכן הגרף קשיר‪.‬‬
‫‪50‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬עוד שימוש לדואליות‪ :‬אלגוריתם ‪ incremental‬לבניית שילוש‬
‫דלוני‪.‬‬
‫‪ ‬תיאור האלגוריתם‪ :‬נניח שכבר בנינו שילוש דלוני ל‪ k-‬האתרים‬
‫הראשונים ונראה הוספת נק' חדשה ‪( p‬שוב נניח שהנק' בתור‬
‫הקמור)‪.‬‬
‫‪ ‬לפי משפט מההרצאות הקודמות‪ ,‬המשולשים‬
‫היחידים שיושפעו הם אלה שעכשיו ‪ p‬נמצאת‬
‫במעגל החוסם שלהם‪.‬‬
‫‪51‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪52‬‬
‫אלגוריתם ‪ incremental‬לבניית שילוש דלוני‪.‬‬
‫נסמן את כל המשולשים המושפעים האלה‪ .‬אותם נצטרך לתקן‪.‬‬
‫נשים לב שאיחוד המשולשים יוצר מצולע (שניתן לשלש דלוני)‪.‬‬
‫נמחק את כל האלכסונים במצולע ונמתח אלכסונים חדשים‬
‫מהמעטפת אל הנק' החדשה‪.‬‬
‫נוכיח שהשילוש החדש אכן‬
‫דלוני‪.‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪53‬‬
‫אלגוריתם ‪ incremental‬לבניית שילוש דלוני‪.‬‬
‫נכונות‪:‬‬
‫כעת‪ ,‬נניח שביצענו שילוש דלוני על המצולע שנוצר (לפני חיבור‬
‫האלכסונים ל‪ .)p-‬לכל משולש בשילוש יש מעגל חוסם ריק מקודקודים‬
‫אחרים‪.‬‬
‫נניח בשלילה שיש משולש חדש ‪ t‬בשילוש שלנו שבו ‪ p‬היא לא קודקוד‪ .‬אז‬
‫המעגל החוסם של ‪ t‬חייב להיות ריק (אחרת לא שילוש דלוני)‪ .‬בפרט ‪ p‬לא‬
‫במעגל החוסם שלו‪ .‬לכן ‪ t‬לא יכול להיות משולש חדש‪ ,‬כי לא היינו‬
‫משנים אותו‪.‬‬
‫‪ p‬חייבת להיות קודקוד בכל משולש שנוצר‪ ,‬ולכן אפשר לחבר אותה לכל‬
‫קודקוד במצולע שנוצר‪ ,‬כי אחרת היה נוצר משולש בלי ‪ p‬בסתירה לכך‬
‫שזהו משולש חדש‪.‬‬
‫לכן השילוש החדש שהתקבל בהכרח דלוני (כל המעגלים החוסמים‬
‫ריקים)‪.‬‬
‫זמן ריצה‪( O(n2) :‬האלג' הנ"ל הוא הדואלי של מה שראינו קודם)‪ .‬נשים‬
‫לב שאם סדר הוספת הנקודות הוא "טוב" נתקן מעט מאוד משולשים‪.‬‬
‫שילוש דלוני והבעיה הדואלית‬
‫‪ ‬ובעיה לא פתורה אחת‪:‬‬
‫‪ ‬מהי הסיבוכיות הקומבינטורית של דיאגרמת וורונוי לקווים‬
‫בתלת‪-‬מימד?‬
‫בדיאגרמה זו‪ ,‬אזור וורונוי מכיל את אוסף הנקודות שקרובות‬
‫יותר לקו שהוא מייצג מאשר שאר הקווים‪.‬‬
‫והחסם עליון שהוא‬
‫כיום יש פער בין החסם התחתון שהוא‬
‫בערך (?) בחזקה רביעית‪.‬‬
‫‪54‬‬
‫סוף‪.‬‬
‫תודה על ההקשבה‬
‫‪55‬‬