Upload
kim-johns
View
31
Download
0
Embed Size (px)
DESCRIPTION
פרק 4 VORONOI DIAGRAMS הרצאת המשך. אלינור עיני. תזכורת מהרצאה קודמת. בהינתן קבוצת אתרים S במישור, דיאגרמת Voronoi שלה, Vor (S) , היא החלוקה של המישור לאזורים לפי קרבת הנקודות במישור לאתרים בקבוצה. למשל נקודה a שנמצאת הכי קרוב לאתר p מבין כל האתרים של S - PowerPoint PPT Presentation
Citation preview
עיני אלינור
4פרק VORONOI DIAGRAMS
המשך הרצאת
... קודמת מהרצאה תזכורת
אתרים קבוצת , Sבהינתן , Voronoiדיאגרמת במישור ,Vor(S)שלה במישור הנקודות קרבת לפי לאזורים המישור של החלוקה היא
. בקבוצה לאתריםנקודה לאתר aלמשל קרוב הכי של pשנמצאת האתרים כל Sמבין
- ב האתר ) Vor(p)תימצא של (.pהאזור
Vor(p)
מוטיבציה , , מידע חיפוש תמונה עיבוד בתחומי מאוד שימושי
, גבישים של גדילה ניתוח רובוטים של תנועה תכנון ... אחרים תחומים הרבה ועוד
... והעיצוב האמנות בתחום אפילו
ההרצאה נושאי , טריאנגולציות קמור בין מיוחד קשר Delaunayנציג
Voronoiודיאגרמות
טריאנגולציית לחישוב אינקרמנטלי Delaunayאלגוריתם. עבורו ריצה זמן וניתוח במישור נקודות קבוצת של
- ב שאפשר . O(n2)ראינוהוא הריצה זמן שבתוחלת O(n*log(n))נוכיח
אלגוריתםDivide and Conquer דיאגרמת Voronoiלחישוב. עבורו ריצה זמן וניתוח במישור נקודות קבוצת של
. זה אלגוריתם נכיר האינקרמנטלי האלגוריתם את למדנוונראה
שלו הריצה .O(n*log(n))שזמן
לפרבולואיד משיקים מישורים בין מיוחד קשר נציגVoronoiודיאגרמות
הנחות אם אלא במישור סופית נקודות קבוצת על מדברים אנחנו
אחרת צוין
: כללי מיקום הנחתקיימות לא שלנו הנקודות שבקבוצת מעגל 4נניח על נקודות
אחד 3או ישר על נקודות
Convex Hull Revisitedבין מיוחד קשר Delaunay Triangulationsנציג
.Convex Hullו- מימדים בשלושה
" י ע התגלה זה לפתחו 1979בשנת Kevin Brownקשר והמשיכו
Herbert Edelsbrunner - השמונים Raimund Seidelו בשנות
המוקדמות.
... כן לפני אבל! ניזכר בואו
תזכורתנקודות( Convex Hull )קמור קבוצת האזורים Sשל כל חיתוך הוא
את שמכילים . Sהקמורים
נקודות Delaunayטריאנגולציית קבוצת טריאנגולצייה Sשל היא
אף תימצא לא משולש של חוסם מעגל כל של בפנים שעבורה
- מ .Sנקודה
בסיסיים מושגים
, פרבולה הגאומטרי המקום שהיא גאומטרית צורה היא
של
מנקודה שווה במרחק הנמצאות במישור הנקודות כל
. ) ( ) קבועים) המדריך וישר משוואת המוקדפרבולה:
y= ax2+bx+c
סביב פרבולואיד פרבולה של מסיבוב הנוצר ממדי התלת הגוף הואצירה
הוא מיד בו נשתמש שאנחנו z= x2+y2הפרבולואיד
הפרבולה מסיבוב ציר z= x2מתקבל .zסביב
בסיסיים מושגים
קטע ומישור ABבהינתן משופע ישר מנקודה Pשל אנך מורידים Aאם
הוא ) האנך שלנו בציור למישור הקטע קטע (, AMשעל של ABהיטל
הקטע של הפגיעה נקודת את המחבר הקטע פשוט במישור ABזהו
נקודה( ) Bנקודה) במישור האנך של הפגיעה נקודת (.Mעםהאנך
הישר קטעהמשופע
ההיטל
בסיסיים מושגים
משולש - tבהינתן מישור 3Dב אל אנכים נעביר קודקוד xyאם מכל
שלו
מישור עם אלה אנכים של החיתוך נקודות בין את xyונחבר נקבל
המשולש של . ההיטל המישור על
המישור על המשולש של ההיטל
בסיסיים מושגים
tמשולש
אנכים למישור
היוצאים מקודקודי
המשולש
בין Delaunay Triangulationהקשרמימד Convex Hullו- בתלת
S במישור נקודות . xyקבוצת
קיימות שלא .4נניח מעגל אותו על נקודות
נקודה ) לכל -x,yניתן .x2+y2של”( terrain heightגובה )“Sמ(
הפרבולואיד על ובפרט מימד בתלת נקודות קבוצת .z= x2+y2קיבלנו
- ב הנקודות של הקמור את .R3נמצא
- ב הקמור את שמרכיבות הפאות את לחלק : R3נהוג סוגים לשני
עליון ) מלמעלה– (Upper Convex Hullקמור ממבט הנראות פאות
תחתון ) הפאות– (Lower Convex Hullקמור שאר כל
z= x2+y2
נקודות קבוצת , S, Del(S)של Delaunayטריאנגולציית, xyבמישור Sבהינתן
הנקודות קבוצת של התחתון הקמור של ההטלה בדיוק היא
(x, y, x2+y2( | ), x y )S }}מישור .xyאל
: המרכזי המשפט
המשפט להוכחת הקדמה... בהמשך לנו שיעזרו עובדות כמה להוכחה שניגש לפני
לפרבולואיד משיק מישור (:a, b, a2+b2בנקודה )z=x2+y2משוואת
h(x, y, z)= z-x2-y2נסמן
היא המשיק המישור משוואת אז
(x-a*)hx) , , a b a2+b2( + ) - (*y b hy) , , a b a2+b2( + ) -z a2-b2(*hz) , , a b
a2+b2(=0
(x-a)*(-2a)+ (y-b)*(-2b)+ (z-a2-b2)*1=0
-2ax+2a2-2by+2b2+ z-a2-b2=0
z-2ax-2by+a2+b2=0
z= 2ax+2by-a2-b2נקבל:
במרחק זה מישור של הזזה ( r2לאחר ' בכיוון ) כלשהו חיובי πמישור נקבל zמס
z= 2ax+2by-a2-b2+ r2שמשוואתו:
המשפט להוכחת הקדמה
החדש .πהמישור באליפסה הפרבולואיד את חותך
אליפסה נבצע של מישור הטלה על :xyזו
המישור z= 2ax+2by-a2-b2+ r2כזכור πמשוואת
המישור במשוואת (:x2+y2את zבמקום πנציב הפרבולואיד ) במשוואת שימוש
x2+y2= 2ax+2by-a2-b2+ r2
x2-2ax+a2+y2-2by+b2= r2
נקבל:
(x-a)2+ (y-b)2= r2
??? לכם מזכיר זה מה
מעגל נכון! !!!rורדיוסו( a, bשמרכזו )משוואת
המשפט להוכחת הקדמה
נקודות על המישור נסתכל ומעל הפרבולואיד . πשעל
המישור z= 2ax+2by-a2-b2+ r2כזכור πמשוואת
השוויון אי את מקיימות אלה תנאים שמקיימות נקודות לכן
z > 2ax+2by-a2-b2+ r2
ונקבל z= x2+y2נציב
x2+y2 > 2ax+2by-a2-b2+ r2
x2-2ax+b2+y2-2by+b2> r2
(x-a)2+ (y-b)2 > r2
!!! ♥ שימו
נמצאות זה שוויון אי שמקיימות למעגל נקודות מחוץ
האליפסה. rורדיוסו( a,bשמרכזו ) מהטלת שמתקבל מעגל אותו
!!! קודם שהזכרנו
הפרבולואידz=x2+y2
את πהמישור החותךבאליפסה הפרבולואיד
האליפסה
הטלה לאחר שנוצר xyמישור המעגל
המשפט הוכחתנקודות קבוצת בהינתן נקודה )xyבמישור Sכזכור לכל גובה( x,yנתנו
x2+y2
. . הנקודות של הקמור את חישבנו הפרבולואיד על נקודות קיבלנו וכעת
את התחתון נבחר הקמור של הפאות - אחת ב. זו פאה נראה . tנסמן
. קודקודים שלושה זו שלפאה שהפאה בהמשך המישור את מוכלת tנסמן
- ב .πבו
מישור בכיוון מטה אותו להזיז לפרבולואיד עד xyנוכל .שישיק
- ב הזזנו שבו המרחק את נסמן -)r2אם ב ההשקה נקודת ( a, b, a2+b2ואת
המישור משוואת של πאז המשוואה בדיוק החותך היא שדיברנו המישור
עליה:
z= 2ax+2by-a2-b2+ r2
המישור שבחיתוך האליפסה מישור πהטלת על יוצרת xyוהפרבולואיד
שראינו רדיוס מעגלכפי : rעם שמשוואתו
( x-a)2+ (y-b)2= r2
לציור חזרה
!!! ♥ שימו
לפאה ?tמדוע קודקודים שלושה רק יש התחתון הקמור מפאות שבחרנו
במישור מוכלת .πהמישור. πהפאה באליפסה הפרבולואיד את חותך
: זו אליפסה על נמצאים הפאה קודקודי
של • התחתון הקמור של בפאה מדובר כי הפרבולואיד על נמצאים הם
הפרבולואיד על נקודות
המישור • על נמצאים במישור πהם מוכלת שהפאה אמרנו כי
. החיתוך אזור שהיא האליפסה על נמצאות לכן
. מעגל מתקבל זו אליפסה מהטלת כתוצאה
קודקוד ) לנקודה( )x, y, x2+y2כל שנתנו לאחר נוצר כזכור הפאה ( x,yשל
Sמ-
שהנקודות . x2+y2גובה נובע האליפסה על נמצאים הפאה שקודקודי מכך
שנוצר Sמ- המעגל על בהכרח נמצאות הפאה לקודקודי שמתאימות
בהטלה.
- ב קיימות שלא שהנחנו לפאה S 4כיוון בהכרח מעגל על 3נקודות
קודקודים.
לציור חזרה
- ש שלושת tכיוון שאינן הפרבולואיד על הנקודות כל הקמור של תחתונה פאה
המישור מעל נמצאות הפאה , πקודקודי שמתחת ) כזו נקודה הייתה אם אחרת
(. tאז πלמישור הקמור של תחתונה פאה הייתה לא
נקודה ) כל , )x, y, x2+y2לכן כאשר( הפאה של קודקוד -x, yשאינה מ( Sנקודה
לנקודה ) . x,yמוטלת , להוכחה( ההקדמה לפי למעגל מחוץ נמצאת והיא
- של נקודות קיימות לא ריק בהכרח המעגל .Sלכן המעגל בפנים
שלמדנו ) במשפט (:Empty Circle Propertyניזכר
S קיימות לא כאשר נקודות . 4קבוצת מעגל אותו על נקודות
טריאנגולציית Tטריאנגולצייה " Delaunayהיא חוסם מעגל כל של בפנים מ אמ
של משולש -Tשל מ נקודה אף תימצא .Sלא
המשולש את החוסם המוטל המעגל תחתונה פאה שלכל כיוון
של מנקודות ריק יהיה לה המלאה, Sהמתאים ההטלה המשפט פי על
טריאנגולציית בדיוק זו המשולשים כלל .Delaunayשבה
לציור חזרה
!!! ♥ שימו
בה נוגע שהפרבולואיד הנקודה של המיקום על דבר אמר לא המשפט
-xyבמישור ה ) ( originנקראת בקבוצה הנקודות למיקום ביחס הפרבולואיד של
S. במישור
הנקודות קבוצת של הזזה או סיבוב התחתון Sלכן הקמור את תשנה אמנם
טריאנגולציית נקבל . Delaunayאבל המשפט לפי אופן באותו
? טריאנגולצייה אותה את נקבל האם
שטריאנגולציית! למדנו .Delaunayכן יחידה
הנקודות קבוצת של הזזה או סיבוב ?Sהאם התחתון הקמור את תשנה
כן!
חשוב דגש
שראינו 10 הנקודותוטריאנגולציית קודם
Delaunay שלהן
הזזה 10 לאחר הנקודותלימין.
השתנה התחתון הקמוראותה התקבלה אך
- בדיוק טריאנגולצייהטריאנגלוציית כמובן
Delaunay
? עשינו מה
•- ב קמור קבוצת: 3Dחישבנו של קמור שחישוב - nלמדנו ב לוקח 3Dנקודות
O(n*log(n)). זמן
טריאנגולציית • לקבל מנת על התחתון הקמור של הטלה : Delaunayביצענו
ליניארי זמן לוקחת ההטלה אבל הנתונים מבני מיוצגים איך על דיברנו לא
. הנקודות במספר
:" " : תרגום נעשה ההטלה במסגרת נימוק
- ב * מתאימה -3Dנקודה מ המקורית לנקודה Sמתרגמת
- מ * הנקודות שתי בין לקשת מתרגמת התחתון הקמור של קשת Sכל
במישור
. למשולש * פאה כל
" " ' תרגום ה כל ולכן הנקודות במס ליניארי קמור שגודל יודעים אנחנו
- ב . O(n)נעשה
" קיבלנו: כ בסה . O(n*log(n))לכן זמן
ריצה זמן ניתוח
חשובה הערה
דיאגרמת חישוב לגבי כך ?Voronoiמה אם
לוקח זמן.O(n*log(n)) גם
דיאגרמת בין ההדוק מהקשר נובע :Delaunayוטריאנגולציית Voronoiזה
הנקודות, קבוצת של האתרים הם הצמתים הדואליות בגרף וקיימת Sכזכור
קשת
קשת חולקים הם אם צמתים . Voronoiבין
אתר ) בין המחברת קשת כל בו המיושר הדואליות מוחלפת qואתר pגרף
טריאנגולציית( pqבקטע .Delaunayמהווה
! גבוהים מימדים עבור גם נכון שהצגנו הקשר
- ב נקודות עבור על 3Dלמשל הנקודות קבוצת של הקמור את לחשב אפשר
- ב . 4Dהפרבולואיד שראינו למה דומה באופן הטלה ולבצע
נקבל ( Delaunayחלוקת ) Delaunay Tetrahedralizationכך לארבעונים
- ב הנקודות .3Dשל
? יותר גבוהים מימדים לגבי מה
נקודות קבוצת נקודה )xyבמישור Sבהינתן לכל -x,yניתן x2+y2גובה Sמ(
- ב נקודות קבוצת הפרבולואיד 3Dונקבל .x2+y2 zעל קודם= שעשינו כפי ממש
- מ אתר בכל לפרבולואיד משיקים מישורים נעביר המישורים Sאם על ונסתכל
- מ הללו (, zהנחתכים אז= ) מלמעלה העליונה )מבט ( Upper Envelopeהמעטפת
.) אותו ) מסתיר לא מישור שאף מוסתר הלא המישורים אזור היא המישורים של
למישור זו מעטפת של הטלה דיאגרמת xyנבצע את קבוצת Voronoiונקבל של
.Sהנקודות
לפרבולואיד משיקים מישורים בין קשרVoronoiודיאגרמת
המעטפת
העליונה
קבוצת Voronoiדיאגרמת - של
-A, B, Cהנקודות .Dו
דיאגרמת את קיבלנו ?Voronoiמדוע
- שב . nיש Sנניח הקבוצה אתרי את נסמן -)Sאתרים .i ≤ n≥ 1כאשר( ai, biב
לפרבולואיד משיק ai, bi, aiבאתר )z=x2+y2משוואת2+ bi
2:)
z= 2ai x+2bi y-ai 2-bi
2
(z= maxi (2ai x+2bi y-ai 2-bi
העליונה 2 המעטפת בדיוק זו
ביטוי - לכל - x2-y2נוסיף ה : iאז נשמר המקסימום מתקבל עבורו
maxi(2ai x+2bi y-ai 2-bi
2-x2-y2)
maxi(-[(x- ai )2 + (y- bi)2])
-(- ב הביטוי את -1נכפיל ה( , iאז קודם המקסימום התקבל עבורו
: מינימום עבורו מתקבל כעת
mini( (x- ai )2 + (y- bi)2)
: שורש מוציאים כאשר נשמר המינימום
mini - ה בדיוק הנקודה )iוזה של ביותר הקצר המרחק מתקבל ( x, yעבורו
( ai, biמאתר )
הערה:
.x0, y0תהא ) כלשהי( נקודה
העליונה ) המעטפת על z= maxi (2ai x0 +2bi y0 -aiנסתכל2-bi
2
יש אותו iאם אז למקסימום הביטוי את שמביא את iאחד מביא
. למינימום
לאתר( )x0, y0לכן ) קרובה -minכאשר( amin, bminהכי ה מתקבל iהוא עבורו
כלומר. ) . x0, y0המינימום זה( אתר של באזור נמצאת
(amin, bmin)
(x0, y0)
: המשך- הערה
יש אותם 2אם עבור אז העליונה במעטפת המקסימום מתקבל 2שעבורם
( - ולכן ב מינימום קשת( x0, y0מתקבל על נמצאת
Voronoi. חולקים המתאימים האתרים ששני
יש אותם 3אם עבור אז המקסימום מתקבל מינימום 3שעבורם מתקבל
קודקוד( x0, y0ולכן ) ב- על ששלושת Voronoiנמצאת
. חולקים האתרים
(x0, y0)
(x0, y0)
נקודות קבוצת הנקודות, )xyבמישור Sבהינתן את ,aכאשר( )a, b, a2+b2ניקח
b )של - Sנקודה .) ב ) הנקודות של הקמור את נמצא עכשיו קודם כמו . 3Dממש
טריאנגולציית את תיתן התחתון הקמור שהטלת . Delaunayאמרנו
? למישור שלו הטלה נבצע אם העליון הקמור לגבי ?xyמה נקבל מה
תרגיל
.Furthest Site Delaunay Triangulationנקבל
טריאנגולציית, נקודות Delaunayכזכור קבוצת שבה Sשל טריאנגולצייה היא
נקודות קיימות לא הטריאנגולצייה של משולש כל של החוסם המעגל בפנים
.Sשל
נתונה נקודות בקבוצת קיימת Sאם אז הקמור על נמצאות הנקודות כל
שנקראת .Furthest Site Delaunay Triangulationטריאנגולצייה
כזו הטריאנגולצייה בחוץבטריאנגולצייה של משולש של חוסם מעגל כל של
של נקודות קיימות .Sלא
Delaunay Triangulation
Furthest Site Delaunay Triangulation
הנקודות קבוצת , Sכאן לכן בקמור כולה
. כזו טריאנגולצייה קיימת
נקבל ?Furthest Site Delaunay Triangulationמדוע
טריאנגולציית של למקרה דומה מסתכלים, Delaunayבאופן הפעם
פאה - tעל . ב אותה המכיל המישור את נסמן העליון הקמור של .πכלשהי
נקודה ) כאשר( )x, y, x2+y2כל הפאה של קודקוד -x,yשאינה מ( Sנקודה
למישור מתחת (.πנמצאת עליון ) קמור של בפאה מדובר לא אחרת
. מעגל מקבלים הטלתה לאחר באליפסה הפרבולואיד את חותך הזה המישור
נקודה. ) כל -x, y, x2+y2במישור מ( לה המתאימה הנקודה תימצא S (x, y)כזו
. , קודם שהראנו למה דומה באופן ממש המעגל בתוך בהכרח
של נקודות קיימות לא . Sלכן המתאים המשולש של החוסם למעגל מחוץ
. הנדרשת הטריאנגולצייה מתקבלת ולכן משולש לכל נכון זה
דיאגרמת של " Delaunayוטריאנגולציית Voronoiהדואליות צל " היא
. משיקים מישורים של עליונה ומעטפת תחתון קמור של הדואליות של
להיות יכול אחד שמוצא שאלגוריתם כך על מרמזת המבנים בין הזו ההתאמה
. האחר למציאת לאלגוריתם בקלות מומר
הנושא סיכום
אינקרמנטלי אלגוריתםטריאנגולציית Delaunayלבניית
: חשובים סימונים
DT({p1,…, pn}) -טריאנגולצייתDelaunay נקודות קבוצת .p1,…, pnשל
DTi = DT({p1,…, pi})
: האלגוריתם את עקרון נמצא שלב הבאה" DTiבכל הנקודה הוספת י piע
. DTi-1ל- הקודם בשלב שמצאנו
תזכורת
: הבא באופן האלגוריתם את מציג הספר
. החדשה הנקודה את מכיל שלהם החסום שהמעגל המשולשים את מוצאים
את ומחברים יוצרים שהמשולשים המצולע של האלכסונים את מוחקים
הנקודה
. טריאנגולציית מתקבלת כך המצולע קודקודי לכל .Delaunayהחדשה החדשה
... שונה טיפה בצורה נציג אנחנו
תזכורת
) בעל)*( ) לא או קמור מצולע שעבור , dלמדנו שלו בטריאנגולצייה קודקודים
יהיו
d-2. משולשים
: בהמשך בו שנשתמש הורוד דגש שלמצולע . )*(dנניח טענה לפי אז קודקודים
. d-2יש החדשה הנקודה את מכיל שלהם החוסם שהמעגל משולשים
יהיו החדשה הנקודה הוספת המצולע dלאחר של לטריאנגולצייה משולשים
הרי) ויש החדשה לנקודה המצולע של קודקוד כל שחיברנו מכך dכתוצאה
, קיבלנו למצולע (.dקודקודים משולשים
קשת נקודות pqעבור קבוצת של הקמור -S( pשל -qו ב נקודות ( Sכמובן
את מכיל שלא בקשת התומך המישור לחצי אינסופי Sנקרא משולש
קשת .pqעם עצמו. הוא זה שלו החוסם המעגל
טריאנגולציית של קשת כל זו הגדרה .Delaunayלפי משולשים לשני משותפת
- לקמור שייכת הכחולה הקשת
משותפת שהיא מההגדרה נובע
- סופי למשולש משולשים לשני
. אינסופי ומשולש
- לקמור שייכת אינה הירוקה הקשת
. משולשים לשני שמשותפת ברור
בסיסיים מושגים
קבוצה טריאנגולציית Sתהא את למצוא נרצה שעבורה הנקודות קבוצת
Delaunay , נקודה עם בקונפליקט הנמצא -pמשולש כמה) Sמ להיות יכולים
הנקודה( את מכיל שלו החוסם שהמעגל אינסופי או סופי משולש הוא . pכאלה
טריאנגולציית של משולש להיות יכול לא כזה ? Sשל Delaunayמשולש מדוע.
טריאנגולציית של משולש של חוסם מעגל כל של קבוצת Delaunayבפנים של
. מהקבוצה נקודות קיימות לא נקודות
בסיסיים מושגים
Edge Flip... נזכיר- אבל כבר הכרנו
של qrתהא המשולש DTi-1קשת שוכב שלה אחד בצד T(q, r, t)כאשר
- q, rקודקודיו) מצלעותיו tו הנקודה( qrואחת השני המעגל. piובצד אם
את מכיל המשולש את בנקודות , piשחוסם שעובר מעגל כל -qאז יכיל rו
את את tלפחות טריאנגולציית qrלכן. piאו של קשת להיות יכולה לא
Delaunay .
את - qrנחליף . pit. pitב הטריאנגולצייה של חדשה קשת
של - qrההחלפה .edge flipנקראת pitב
בסיסיים מושגים
: האלגוריתם שלב תיאור את iבכל הנקודה" DTiנמצא הוספת י piע
בקבוצה DTi-1ל- הנקודות כל להוספת עד הקודם בשלב . Sשמצאנו
- ה השלב :iתיאור
שלב של: 1תת המשולש את הנקודה DTi-1נמצא את -.piשמכיל ב T(q, s, r)נסמנו
- q, sקודקודיו) (. rו
אינקרמנטלי אלגוריתםטריאנגולציית Delaunayלבניית
שלב את :2תת המחברים - q, sלנקודות piהקטעים של rו חדשות קשתות יהיו
. Delaunayטריאנגולציית
אינקרמנטלי אלגוריתםטריאנגולציית Delaunayלבניית
שלב לעשות :3תת צריך אם גם. qrלקשת edge flipנבדוק נבדוק כן אם
הקשתות -qtאת עם tכאשר trו שנוצר המשולש של -qהקודקוד .rו השני מהצד
Edge Flip קשת qrשל Edge Flip קשת trשל
אינקרמנטלי אלגוריתםטריאנגולציית Delaunayלבניית
- ה האיטרציה עבור אחרון :iשלב
- ה תהליך עם משולש edge flipsנמשיך של צלע שהיא קשת קיימת עוד כל
לבצע piש- צריך שעבורה שלו .edge flipקודקוד
Edge Flip קשת qsשל
אינקרמנטלי אלגוריתםטריאנגולציית Delaunayלבניית
- ה השלב מהלך הנקודה: iכל : DTiלקבלת DTi-1ל- piהוספת
1 2 3
4 5
אינקרמנטלי אלגוריתםטריאנגולציית Delaunayלבניית
ריצה זמן ניתוח
... חשובה הגדרה כן לפני
נקודה של ' Delaunay, DTiבטריאנגולציית piהדרגה הקשתות, מס היא
- ש הטריאנגולצייה .piשל שלהן קצה מהווה
היא כאן הדרגה
6
ריצה זמן ניתוחלמה:
של המשולש את DTi-1אם , piהמכיל לחישוב שדרוש הריצה זמן DTi-1מ- DTiידוע
לדרגה - piשל dפרופורציונלי .DTiב
הוכחה:
דרגת - piאם יש dהיא DTiב - dאז ש - . piמשולשים - ב ב שלהן DTiקודקוד
d מסדרת כתוצאה התקבלו להחליף edge flipsהמשולשים d-2שנועדה
עם בקונפליקט שנמצאו . piמשולשים
היו* שבהתחלה לב ונוספו d-2נשים בקונפליקט את 2משולשים piכשחיברנו
. משולש איזה יודעים כבר ההנחה שלפי כיוון אותה שמכיל המשולש לקודקודי
לדרגה פרופורציונלי הריצה זמן המכיל המשולש .piשל dהוא
d-2= 4
משולשים
בקונפליק
ט
d=6
של piהדרגה
ריצה זמן ניתוחטענה:
הריצה לחישוב worst caseזמן האינקרמנטלי האלגוריתם של
הוא nשל Delaunayטריאנגולציית .O(n2)נקודות
הוכחה:
וקיימות nקיימים נקודה מוסיפים שלב בכל כי .nשלבים כאלה
שלב מוצאים iבכל :DTiשבו
שלב החדשה : 1תת הנקודה את המכיל המשולש piמציאת
- ב נעשה איזה O(n)זה ולבדוק המשולשים כל על לעבור צריך רק כי זמן
מהם
את - piמכיל ב' ליניארי המשולשים .nומס
- השלבים " שאר י ע בקונפליקט המשולשים . edge flipsתיקון
הלמה הנקודה לפי של לדרגה פרופורציונלי זה שלב של ריצה זמן
pi - היותר DTiב לכל זו - .nודרגה ב. זה שלב גם O(n)לכן
שלב" כל כ .nויש O(n)לוקח iסה הנדרש את קיבלנו ולכן שלבים
? יותר טוב לעשות אפשר האם
משפט:
טריאנגולציית את למצוא בזמן nשל Delaunayניתן בתוחלת במישור נקודות
O(n*log(n)) " הנקודות. הוספת בסדר ברנדומיזציה שימוש י ע זאת
.) מהקבוצה) נקודה באקראי בוחרים שלב בכל
!!! " . רנדומיזציה י ע שכן מסתבר
. עזר* טענות בשתי נשתמש זה משפט להוכיח כדי
עזר :1טענת
במישור נקודות קבוצת ' Sלכל של, בגבול קשתות של הממוצע המס
דיאגרמת של -Sשל Voronoiאזור מ ממש .6קטן
הוכחה:
: הוכח הקודמת בהרצאה
במישור נקודות קבוצת ' Sלכל דיאגרמת, של אזור קודקודי של הממוצע המס
Voronoi שלS- מ ממש . 6קטן
' אזור של הקודקודים שמס ' Voronoiכיוון אזור של הקשתות למס Voronoiזהה
. הנדרש את נקבל
מסקנה:
דיאגרמות של להגיד Delaunayוטריאנגולציות Voronoiמהדואליות אפשר מה
? בטריאנגולצייה קודקוד של הממוצעת הדרגה על
- מ ממש !6קטנה
עזר :2טענת
, זה סדר ולפי אקראי בסדר הנקודות את בוחרים שאנחנו נניח
פועלים.
- h < iלכל ב - dhנסמן ' ב המשולשים מס תוחלת שיש DTh\DTh-1את
להם
נקודה עם : = piקונפליקט מתקיים, O(log(i))אזהוכחה:
- ב -Cנסמן ב המשולשים קבוצת עם DThאת -Tמשולש. piשבקונפליקט Cמ
- ל מ" DTh\DTh-1שייך . phאמ יש שלו קודקוד משולש 3הוא של Tקודקודים
שווה בסיכוי נבחר קודקוד " h/1וכל כ בסה קיימים -hכי ב , DThקודקודים
לכן
- ש - phהסיכוי ב אקראית של DThשנבחר קודקוד לכן. h/3הוא Tיהיה
- ' ב המשולשים מס יודעים|. C(*|h/3היא ) C\DTh-1תוחלת אנו מהלמה
הממוצעת קודקוד dשהדרגה -piשל מ ממש ' 6קטנה המשולשים מס ולכן
עם בקונפליקט (, d-2שהוא ) piהממוצע גודל כלומר שראינו קטן, Cכפי
- ש . dh< 18/hלכן. 6ממש
O(log(i))מכאן =
) ההרמוני) הטור מתכונות נובע האחרון השוויון
הגדרות:
- Tיהא - ב ב מקודקודיו DTiמשולש . piשאחד
- Tשל srקשת - DTi-1ב משולשים לשני שייכת
F האב שנקרא(father )שלT - החורג שנקרא SFו .Tשל( stepfather)האב
F -עם בקונפליקט שנמצא .piמשולש
SF -עם בקונפליקט שלא - piמשולש ב גם נמצא .DTiולכן
DTi-1 DTi
: חשובה נקודה
שתמיד ולחשוב לטעות אפשר הציור שלו Tלפי באבא מוכל
- . ב ביותר הימני המשולש על נסתכל נכון תמיד לא זה של .DTi-1אבל האבא הוא
- - ב ב משולשים .DTiשני
מזהים???
DTi-1 DTi
המשולשים
שהמשולש
מדובר עליו
שלהם אבא
המשולשים על -T, Fנסתכל של. SFו החוסם המעגלים Tהמעגל באיחוד מוכל
של -Fהחוסמים . SFו
מסקנה )*(:
- ש חדשה נקודה , Tכל בהכרח איתה בקונפליקט SFאו Fבקונפליקט יימצאו
איתה.
הגדרה:
אותו Delaunayעץ - Boissonatשהגדירו מעגלים, Teillaudו חסר מכוון גרף הוא
לבניית האינקרמנטלי האלגוריתם במהלך שנוצרים המשולשים הם הצמתים שבו
.Delaunayטריאנגולציית שלהם. לבנים חורגים ואבות אבות מכל קשת יש
שורש DT3ב- של בן הוא .dummyהמשולש
משפט:
טריאנגולציית את למצוא בזמן nשל Delaunayניתן בתוחלת במישור O(n*log(n))נקודות
ובתוחלת
" . הנקודות הוספת בסדר ברנדומיזציה שימוש י ע זאת ליניארי במקום
.) נקודה) באקראי בוחרים שלב בכל
... המשפט להוכחת הכלים כל את לנו יש כעת
הוכחה:
.nקיימים הנקודות – מקבוצת באקראי נקודה מוסיפים שלב בכל שלבים
שלב מוצאים iבכל נקודה DTiשבו :piומוסיפים אקראית
בעץ -Delaunayנשתמש ה לשלב עד המשולשים כל את מכיל זה נתחיל. iשבשלב
מהשורש
הנקודה עם קונפליקט יש למשולש עוד כל העץ במורד שניתקל piונרד עד
. בקונפליקט איתה שנמצא האחרון במשולש
גם )*( ) אז בקונפליקט הוא אם ימצא בקונפליקט משולש כל מסקנה לפי
.) החורג/ האב האב
בתוחלת עם O(log(i))יש בקונפליקט עזר , piמשולשים טענת .2לפי
" י ע בקונפליקט המשולשים את פרופורציונלי edge flipsנתקן הריצה שזמן ולמדנו
לדרגה
- piשל - DTiב ש. -piכיוון מ ממש קטנה הממוצעת והדרגה אקראית בצורה 6נבחרת
לוקח . שהתיקון .O(1)נקבל קבוע זמן לוקח העץ עדכון
שלב" כל כ .nויש O(log(n))לוקח iסה הנדרש את קיבלנו ולכן שלבים
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב : האלגוריתם תיאור
נקודות קבוצת בגודל Sבהינתן הנקודות, nבמישור את נמיין ראשית
- ה שיעור -xלפי " ה שיעור לפי כ . yואח
קבוצות תתי לשתי מיון לאחר הנקודות את - Lנחלק באותו Rו בערך
להיות ) הממוין השמאלי החלק את וניקח בערך באמצע נחצה Lגודל
להיות הממוין הימני (.Rוהחלק
דיאגרמת את מהקבוצות אחת כל עבור נחשב הבא שלה Voronoiבשלב
, את נמצא כלומר רקורסיבי - Vor(R)באופן . Vor(L)ו
- " " פירוט הדיאגרמות ומיזוג המפריד קו ה מציאת הוא האחרון השלב
בהמשך.
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב סימונים:
נקודות קבוצת לקבוצות Sחילקנו מיון -Rלאחר .Lו
B(l,r) -לקטע האנך הקו :lrזהו באמצעו שעובר
B(l,r)= {x| d(l, x)= d(r, x)} כאשרd. ' מרחק פונק
B(L, R) -קשתות של Vor(S)של Voronoiקבוצת אזורים בין שמפרידות
- ב - Lאתרים ב אתרים של אזורים .Rלבין
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב
: הלמה הוכחת
של bתהא כלשהי -lויהיו B(L, R)קשת - Lמ -rו שהאזורים Rמ אתרים
לקשת סמוכים - bשלהם של. -xשיעור lכיוון ל מאשר יותר לא r, bקטן
של והאזור אופקית להיות . lיכולה לכל נכון זה משמאל להיות חייב
של .B(L, R)קשת
אתרי* שמשמאלה פוליגונלית בשרשרת מדובר אתרי Lלכן .Rומימינה
. הדיאגרמה* מיחידות ישירות נובעת השרשרת יחידות
- ב מונוטונית שהיא להראות yנותר
למה:
- ב האתרים שכל שיעור Lנניח -xעם ה משיעור ממש האתרים xקטן של
.Rשל
של הקשתות פוליגונלית B(L,R)אז שרשרת - יחידהיוצרות ב , yמונוטונית
- ב של Vor(S)כאשר האתרים של והאזורים משמאל Lהאזורים לשרשרת
של האתרים .Rשל לה מימין
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב : - המשך הלמה הוכחת
- ב* מונוטונית -yהיא ה ) שיעור אנכית שהיא את yכיוון נבחן אם גדל
:) למעלה מלמטה השרשרת
- ' ה שיעור אז כי ייתכן לא א -xמקרה מ נקודה -Rשל ה משיעור של xקטן
- מ -Lנקודה ' . ה, שיעור אז כי ייתכן לא ב מקרה -xבסתירה מ נקודה Lשל
- ה משיעור -xגדול מ נקודה .Rשל בסתירה,
מקרה א'
מקרה ב'
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב - מציאת האלגוריתם של האחרון השלב :B(L, R)תיאור ומיזוג
מציאת :B(L, S)עקרון
של ריק לא חיתוך אתר ) Vor(l)לכל של -lאזור אתר ) Vor(r)עם( Lמ של אזור
r- של(, Rמ חסומה לא חתיכה מכיל החיתוך להיות B(l, r)אם חייבת היא אז
של מהגדרת. B(L, R)קשת ישירות נובע של ) Vor(S)זה החיתוכים איחוד
אזורים
והגדרת )*( ( שונים אתרים . B(L, R)שלתזכורת )*(:
Vor(S)=
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב מציאת תהליך " : B(L, R)תיאור - י ע אינסוף במינוס התחלתית קשת נמצא קודם
של קמור של Lחישוב עושים ) Rוקמור איך ראינו לקמורים משותף משיק ומציאת
. קשת(, שמצאנו נניח באמצעו שעובר למשיק אנך תהייה והקשת שנכנסת bזאת
של lכש-Vor(l)לאזור -Vor(r)מאזור Lאתר של rכש החיתוך. Rאתר נקודת את נסמן
-Vor(l)עם bשל . vב
- ב - vLנסמן -vRו ש הנקודות של bאת האזורים את -lעוזבת . rו את נמצא vLבהתאמה
של" הגבול סריקת י -Vor(l)ע מ - vהחל . ש כיוון השעון כיוון - vRנגד ל יותר vקרוב
- ל קשת vLמאשר של הקצה נקודת תהייה . bזו
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב מציאת תהליך : B(L, R)תיאור קשת vRמ- המשך- עם בין b2נמשיך לאתר lשמפרידה
.r2אחר
נקודות למצוא צריך דומה באופן - vL,2עכשיו שבהן – vR,2ו את b2הנקודות עוזבת
של . r2ושל lהאזורים את למצוא כדי של vL,2בהתאמה הגבול את החל Vor(l)נסרוק
. vLמ- , , חיתוך יותר יימצא שלא עד הלאה וכן השעון כיוון נגד
- מ* נקודה של לאזור נכנסת שהקשת במקרה נכנסת. Lהראנו אם דומה באופן זה
- מ נקודה של . rלאזור החיתוך מנקודת השעון כיוון עם הסריקה שאז רק
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב : המיזוג שלב
הלמה - B(L, R)לפי של Vor(S)ב אזורים שמשמאלה פוליגונלית שרשרת היא
- מ - Lאתרים מ אתרים של אזורים . Rומימינה
את שמצאנו ברגע - Vor(L), Vor(R)לכן " B(L, R)ו את " להדביק פשוט נוכל
B(L, R) ,של החלק של Vor(L)את והחלק אליה שמימין Vor(R)שמשמאל
לקבלת .Vor(S)אליה
& Divide אלגוריתםConquer
דיאגרמת Voronoiלחישוב
האלגוריתם פעולת של הדגמה
ריצה זמן ניתוח:משפט
ומשול ) ההפרד דיאגרמת( Divide & Conquerאלגוריתם את Voronoiמוצא
של קבוצה בזמן nשל במישור .O(n*log(n))של worst-caseנקודות
:הוכחה
- . ב נעשה מיון הנקודות את ממיינים הראשון .O(n*log(n))בשלב
הדיאגרמה את רקורסיבי באופן ומוצאים קבוצות תתי לשתי מחלקים כעת
. מציאת אחד כל " B(L, R)של וראינו האזורים של סריקה י ע נעשית
של בשפה שעוברים
לוקח וזה אחת פעם תא .O(n)כל
.) ( " ההדבקה " בהדבקה מיותרות קשתות משליכים הדבקה מבצעים במיזוג
- ב היא גם .O(n)מתבצעת
- ב הריצה זמן את נסמן : T(n)אם T(n)= 2*T(└(n/2)┘) + O(n)נקבל
.T(n)= O(n*log(n))לכן כנדרש,
לסיכום טריאנגולציית למצוא שמאפשר מיוחד קשר Delaunayהכרנו
- " ב נקודות של קמור מציאת י ע במישור נקודות קבוצת .3Dשל
טריאנגולציית למציאת אינקרמנטלי אלגוריתם Delaunayהכרנוהריצה זמן את משפר מכך וכתוצאה ברנדומיזציה שמשתמש
- O(n2)מ- .O(n*log(n))ל
אלגוריתם דיאגרמת Divide & Conquerהכרנו Voronoiלמציאתבזמן .O(n*log(n))שרץ
טריאנגולציית בין מהדואליות שנובעת חשובה Delaunayמסקנהמומר Voronoiלדיאגרמת להיות יכול האחד למציאת אלגוריתם
. רבה בקלות האחר למציאת לאלגוריתם
The End!