convex hulls קְמוֹריִם (חלק ב)

47
CONVEX HULLS ם ם םם ם םם ם ם)םםם ם( םםםםם םםם12 ררררר2011

Upload: kane-alston

Post on 04-Jan-2016

44 views

Category:

Documents


6 download

DESCRIPTION

CONVEX HULLS קְמוֹריִם (חלק ב). אלירן טלר. תקציר ההרצאה. חזרה על קְמוֹרים ואלגוריתם גראהם. גבול תחתון לחישובי קמורים. אלגוריתם Divide And Conquer . קְמוֹרים בתלת ממד: אלגוריתם Divide And Conquer . אלגוריתם The Incremental Algorithm. חזרה על שיעור שעבר. קְמוֹרים. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: CONVEX HULLS  קְמוֹריִם (חלק ב)

CONVEX HULLS ק�מו�רים

) ב) חלק

אלירן טלר

דצמבר 12 2011

Page 2: CONVEX HULLS  קְמוֹריִם (חלק ב)

2

ההרצאה חזרה על ק�מו�רים ואלגוריתם •תקציר

גראהם.

גבול תחתון לחישובי קמורים.•

Divide Andאלגוריתם •

Conquer.

ק�מו�רים בתלת ממד:•

.Divide And Conquerאלגוריתם •

The Incrementalאלגוריתם •

Algorithm.

כללי

12/12/11

Page 3: CONVEX HULLS  קְמוֹריִם (חלק ב)

3

שעבר שיעור על ק�מו�רים.•חזרה

.Graham Scanאלגוריתם : •

תרגיל על האלגוריתם.•

חלק א

12/12/11

Page 4: CONVEX HULLS  קְמוֹריִם (חלק ב)

4

הערות )תזכורת( של נקודות.סופיותבפרק זה נעסוק בקבוצות •

קבוצת נקודה היא לא בהכרח סדורה.•

שקפים שנוספו לאחר ההרצאה יסומנו ב- .•

משפט )תזכורת( הוא חיתוך כל Sעבור קבוצת נקודות , הק�מו�ר של •

=רים המכילים את .sהאזורים הקמו

12/12/11

Page 5: CONVEX HULLS  קְמוֹריִם (חלק ב)

5 12/12/11

תזכורת ושאלה

(Graham Scanאלגוריתם גראהם )בחירת הנקודה הכי תחתונה כעוגן.•סידור כל הנקודות הנותרות על פי הזווית שהן יוצרות •

מהעוגן., כאשר מוסיפים xבניית הק�מו�ר על פי סדר הזויות מציר ה-•

את הנקודות עבור פניות שמאלה ומסירים נקודות עבור

פניות ימינה.סיבוכיות: .•

Page 6: CONVEX HULLS  קְמוֹריִם (חלק ב)

6 12/12/11

תזכורת ושאלה

תרגיל נקודות שעבורן מתקבלת התוצאה הגרועה nתאר קבוצת

ביותר מבחינת היעילות של אלגוריתם גראהם.

נביט על הצורה הבאה, מה נגלה?

עוגן

Page 7: CONVEX HULLS  קְמוֹריִם (חלק ב)

7 12/12/11

תזכורת ושאלה

הסברבמצב המתואר לעיל כמעט כל פניה היא פניה שמאלה ומיד

לאחר מכאן פניה ימינה. בצורה זו נעבור כמעט על כל

נקודה, בהנחה שיש "הרבה" נקודות, פעמיים. כלומר, נבצע

נקודות. nהוספה והסרה של קרוב ל-

)בצורה הפוכה, אם כל קודקודי הקמור הם מעטפת הקמור,

הוספות בלי nאזי נבצע רק פניות שמאלה, ובפועל נבצע רק

החסרות(.שאלת מחשבה

האם זה משנה לנו "מאד" ההבדל בין המקרה הרע ביותר

איברים יותר או פחות, זה כל מה nלמקרה הטוב ביותר?

שמפריד בין המקרים?

Page 8: CONVEX HULLS  קְמוֹריִם (חלק ב)

8

תחתון גבולקמורים לחישוב

חישוב גבול תחתון לפי אלגוריתם •

לחישוב קמורים.בסדר הליכה

חישוב גבול תחתון לפי אלגוריתם •

כללי לחישוב קמורים.

חלק ב

12/12/11

Page 9: CONVEX HULLS  קְמוֹריִם (חלק ב)

9 12/12/11

שמור על הגבולות

גבול תחתון

עד עתה הראנו שלושה אלגוריתמים לבניית קמורים, כל •

אחד עם סיבוכיות טובה יותר מקודמו. אבל לא ממש

שיפרנו את האלגוריתם מעבר לסיבוכיות אסימפטומטית

של .

בכל פעם השתמשנו בתובנות גאומטריות בכדי לשפר את •

היעילות, השאלה עכשיו היא האם נוכל לשפר את היעלות

הזו באמצעות תובנה גיאומטרית נוספת?

כלומר קבענו סדר הליכה, בכל האלגוריתם השתמשנו ב•

לקדקודים סדר כלשהו והאלגוריתם רץ עליהם לפי סדר

זה.

Page 10: CONVEX HULLS  קְמוֹריִם (חלק ב)

10 12/12/11

שמור על הגבולות

משפט קבוצת נקודות במישור. אלגוריתם שמוצא את קמור Sתהי

כלשהו מסביב לקמור לא יכול בסדר הליכה Sהנקודות

להיות מהיר יותר מאשר . כלומר, מתקיים ש- הוא גבול

תחתון למספר ההשוואות הנדרשות בכדי לבצע את אלגוריתם

תהליך הוכחה:הסידור.אנחנו יודעים שחסם זמן ריצה למיון הוא .•נראה שהחסם התחתון למציאת קמור בסדר הליכה הוא •

אותו חסם תחתון כמו מיון, כי אחרת היינו מצליחים לפתור

את בעיית המיון בזמן ריצה מהיר יותר )והרי הראנו בקורס

"מבני נתונים" שזה בלתי אפשרי(.

Page 11: CONVEX HULLS  קְמוֹריִם (חלק ב)

11 12/12/11

שמור על הגבולות

אבחנותעבור קבוצת נקודות נרצה את הפלט ( סדר הליכה: 1

בצורה סדורה עם או נגד כיוון השעון, זאת בניגוד לפלט

נקודות ללא סדר.

נשים לב לאבחנה הדקה שבדיקת הסדר מתבצעת ( 2

שעשויות להיות Left-Of ו-Right-Ofבאמצעות הפונקציות

יעילות יותר ממיון השוואה פשוט. אך גם במקרה הזה החסם

הוא עדיין ביעילות של , אך לא נוכיח זאת. אבל מותר לנו

להשתמש כבסיס להוכחה במודל של מיון השוואה.

Page 12: CONVEX HULLS  קְמוֹריִם (חלק ב)

12 12/12/11

שמור על הגבולות

הוכחה:נניח שקיבלנו קבוצת מספרים כלשהי : .1.

במישור : .Sנבנה את קבוצת הנקודות 2.

נשים לב שקבוצת הנקודות הזו נמצאות על הפרבולה .3.

Page 13: CONVEX HULLS  קְמוֹריִם (חלק ב)

13 12/12/11

שמור על הגבולות

הוכחה )המשך(: שפותר את בעיית Aנניח בשלילה שקיים אלגוריתם 4.

מציאת קמור עם קבוצת נקודות סדורה ביעילות טובה מ-

.

נניח גם בלי הגבלת הכלליות שהאלגוריתם מחזיר שני 5.

פלטים – את רשימת הקדקודים המסודרת על פי ערך

שלהן, ואת רשימת הקדקודים של היקף קמור.xה-אלגוריתם שכזה מסדר את בכל מקרה נשים לב ש•

בהתחלה, אז איננו משנים יעילות xהקדקודים לפי ערכי

בעקבות דרישה זו.

ונקבל S על קבוצת הנקודות Aנפעיל את אלגוריתם 6.

. סידור רשימה של ערכים ביעילות טובה מ-

בסתירה להנחה שאין אלגוריתם מיון-השוואה

ביעילות טובה יותר מ-.

Page 14: CONVEX HULLS  קְמוֹריִם (חלק ב)

14 12/12/11

שמור על הגבולות

גבול תחתון? ננסה מחדש!אבל מה אם לא מדובר באלגוריתם שדורש סדר עבור

הפלט?

אולי יש אלגוריתם שאינו דורש שיהיה סדר כלשהו לקלט

הנקודות לפני תחילת ריצתו או כפלט הנקודות בסיום ריצתו,

והוא יכול להחזיר את קדקודי הקמור לאו דווקא בסדר

מסוים?

היא 1985שאלה זו נותרה פתוחה למשך שנים רבות, עד שב-

Francoהוכח על ידי בשקף הבא נפתרה. והמשפט

Preparata-ו Micheal Shamos.

Page 15: CONVEX HULLS  קְמוֹריִם (חלק ב)

15 12/12/11

שמור על הגבולות

משפט )ללא הוכחה( קבוצת נקודות במישור בסדר כלשהו. אלגוריתם Sתהי

לא יכול להיות מהיר יותר Sשמוצא את קמור הנקודות

מאשר .כלומר

אין אלגוריתמים שהם טובים יותר מבחינה אסימפטומטית

מאשר .

Page 16: CONVEX HULLS  קְמוֹריִם (חלק ב)

16

אלגוריתם:Divide And Conquer

הצגת האלגוריתם.•

תרגיל.•

חלק ג

12/12/11

Page 17: CONVEX HULLS  קְמוֹריִם (חלק ב)

17 12/12/11

באתי, ראיתי, כבשתי

ננסה גישה שונהננסה לבנות אלגוריתם רקורסיבי, כך שעל כל בעיה נקרא •

לאלגוריתם עצמו עם תת-בעיה שהוא יודע לפתור.

האלגוריתם "ימזג" את תת-הבעיות שהוא יודע לפתור ובכך •

יידע לפתור את הבעיה השלמה.

Page 18: CONVEX HULLS  קְמוֹריִם (חלק ב)

18 12/12/11

באתי, ראיתי, כבשתי

Divide And Conquer קבוצה כלשהי של נקודות במישור, כך שאין שלוש Sתהי •

נקודות על אותו קו ישר ושתי נקודות עם אותה

.xקואורדינטת שלהן.xנסדר את הנקודות על פי קואורדינטות ה-• A כך ש-B ו-Aנחלק אותן בערך לשתי קבוצות שוות, •

כוללת Bכוללת את קבוצת הנקודות השמאליות ביותר ו-

את קבוצת הימניות ביותר. באמצעות B ו-Aנחשב את הקמור של הקבוצות •

Divide&Conquer בצורה רקורסיבית, כלומר נפעיל את

.B ועל Aהאלגוריתם שוב על )conv )A(, conv )Bלבסוף נמזג את שני הקמורים •

, הקמור המבוקש.)conv)Sשמצאנו ונקבל את

Page 19: CONVEX HULLS  קְמוֹריִם (חלק ב)

19 12/12/11

באתי, ראיתי, כבשתי

דוגמת הרצה

Page 20: CONVEX HULLS  קְמוֹריִם (חלק ב)

20 12/12/11

באתי, ראיתי, כבשתי

נקודות או 3הנחת הבסיס של האלגוריתם היא קבוצה עם •פחות ואז הקמור הוא ברור מאליו )הנקודות על פי סדר(.

עתה יש לנו בעיה – איך ממזגים? עלינו למצוא את •. כך שמשיק אחד יתמוך B ו-Aהמשיקים בין שני הקמורים

בקמורים מלמעלה ואחר שיתמוך בקמורים מלמטה.כל זאת עלינו לבצע ביעילות טובה יותר מאשר .•

למשל(.Incremental Algorithm )כמו ב-

Divide And Conquer

Page 21: CONVEX HULLS  קְמוֹריִם (חלק ב)

21 12/12/11

באתי, ראיתי, כבשתי

תרגיל הן B ו-Aהאם תמיד הנקודות הגבוהות והנמוכות ביותר של

נקודות ההשקה שאנו מחפשים?

פתרוןלא בהכרח. נביט על הקמורים הבאים :

למשל :

Page 22: CONVEX HULLS  קְמוֹריִם (חלק ב)

22 12/12/11

באתי, ראיתי, כבשתי

)למה?(.B תמיד הקמור השמאלי לקמור Aנבחין כי •

את β ונסמן ב-A את הנקודה הימנית-ביותר בקמור αנסמן ב-•

.Bהנקודה השמאלית-ביותר בקמור

ונלך A על הקמור נקודה קבועה היא αנניח בשלב זה ש-•

עד שנמצא משיק שתומך בו יחסית Bעל נקודות הקמור

.αלנקודה

. נלך קבועה נקודה חדשה, ונניח שהיא βנסמן נקודה זו כ-•

עד שנמצא משיק שתומך בו Aבצורה דומה על הקמור

.βיחסית לנקודה

וגם Aנמשיך בהליך זה עד שנמצא משיק שתומך גם בקמור •

.Bבקמור

Divide And Conquer

Page 23: CONVEX HULLS  קְמוֹריִם (חלק ב)

23 12/12/11

באתי, ראיתי, כבשתי

דוגמת הרצה למציאת משיק תחתון.•

בצורה זהה נמצא את המשיק העליון.•

עלות חיפוש המשיקים היא לינארית )למה?(.•

היא סיבוכיות כל האלגוריתם.)T)nנניח ש- •

מכאן .•

Divide And Conquer

Page 24: CONVEX HULLS  קְמוֹריִם (חלק ב)

24 12/12/11

באתי, ראיתי, כבשתי

תרגיל כפי שתואר באלגוריתם B ו-Aהוכח שהליכה על הקמורים

לעיל מבטיחה לנו שנמצא משיק.

פתרון ואת מספר m ב-Aאם נסמן את מספר הקדקודים של •

. אלגוריתם זה מובטח לנו שיעצור כי n ב-Bהקדקודים של קדקודים לכל היותר פעם n+mנעבור על לכל היותר

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

כלשהי שכבר ביקרנו בה(.

כמו כן, מובטח לנו שאחד מהקווים שנבדוק יהיה משיק, • B וקמור Aלשם הפשטות של האינטואיציה נניח שקמור

בעלי מספר נקודות זהה:

Page 25: CONVEX HULLS  קְמוֹריִם (חלק ב)

25 12/12/11

באתי, ראיתי, כבשתי

פתרון )המשך( לנקודה כלשהי Aנחבר את כל הקווים האפשריים מקמור •

.Bב- לפחות פעם Aמיד נשים לב שכל קו שחותך את הקמור •

אחת )מלבד הקדקוד( אינו רלוונטי, כי בבירור אינו משיק.

, B לקמור Aנחבר את כל הקווים האפשריים בין הקמור •כך שאף אחד מהם אינו חותך את העקום ממנו יוצא,

מלבד בקדקוד החיבור.נשים לב שאנחנו רוצים משיק תחתון אז כל שלב אנחנו •

( לנקודה שהיא B או ב-Aמתקרבים לפחות צעד אחד )ב-על המשיק ולעולם לא ניתקע באמצע כי באף שלב אחר

לא נקבל משיק.

Page 26: CONVEX HULLS  קְמוֹריִם (חלק ב)

26

ממד בתלת מבוא•קמורים

אלגוריתמים:• .Divide And Conquerאלגוריתם •

The Incrementalאלגוריתם •

Algorithm.

תרגילים•

חלק ד

12/12/11

Page 27: CONVEX HULLS  קְמוֹריִם (חלק ב)

27 12/12/11

ממד נוסף לבעיה

הקדמהאפשר לתפוס אינטואיטיבית את הקמור התלת ממדי •

כהצמדת מישור אל שלוש נקודות כלשהן בקבוצת

, זו הפאה הראשונה של הקמור.Sהנקודות הכללית

אז נכופף את המישור עד שהוא נוגע בנקודה נוספת, זו •

הפאה השנייה של הקמור.

נמשיך לכופף את המישור עד שהוא יעטוף את קבוצת •

, יצור את כל פאותיה ויהווה את הקמור שלה.Sהנקודות

Page 28: CONVEX HULLS  קְמוֹריִם (חלק ב)

28 12/12/11

ממד נוסף לבעיה

הקדמה )המשך(אם נביט על פאון תלת ממדי נחשוב אולי שהסיבוכיות •

החישובית שלו מורכבת יותר מחישובים עבור דו ממד. הרי

הפאון מורכב מצמתים, קשתות ופאות. כשכל פאה

בעצמה היא מצולע קמור.

פYירXה בפתיח? היא מורכבת מ -• זוכרים את הס�

758.נקודות אקראיות על משטח כדורי

2268.קשתות

1512.פאות

למרות שעל פניו נראה הפאון התלת ממדי•

מסובך יותר מבחינה חישובית מסתבר שלא כך.

Page 29: CONVEX HULLS  קְמוֹריִם (חלק ב)

29 12/12/11

ממד נוסף לבעיה

הקדמה )משפט אויילר( גרף מישורי )בו הקשתות לא חותכות זו את זו פרט Gיהא

פאות, מתקיים ש: F קשתות ו-E קדקודים, Vלקדקודים(, עם

.

משפט זה לא יוכח בהרצאה זו אלא רק בהרצאות

הבאות.

מכאן, n קשתות ו-n נקודות בדו-ממד יש לכל היותר nעבור •

צמתים.

כי מתקיים קשתות n3 נקודות בתלת-ממד יש לכל היותר nעבור •

פאות.n2ו-

כי מתקיים .

Page 30: CONVEX HULLS  קְמוֹריִם (חלק ב)

30 12/12/11

ממד נוסף לבעיה

הקדמה )משפט אויילר( :דוגמה לגרף מישורי

דוגמה לגרף לא מישורי :•K)5( צמתים.5 – הגרף השלם על

Page 31: CONVEX HULLS  קְמוֹריִם (חלק ב)

31 12/12/11

ממד נוסף לבעיה

הקדמה )המשך(לאור התובנות משקף קודם היינו מצפים שהצמיחה •

בסיבוכיות תהיה עדיין בזמן לינארי, במכפלה בקבוע

כלשהו, עבור ממד כלשהו.

, צפייה זו כבר לא 3לצערנו, עבור ממדים גבוהים מ-•

, חסם d נקודות בממד nתקפה. באופן כללי עבור

הסיבוכיות של מספר הפאות בקמור יכול להגיע עד כדי ,

)לא נוכיח(.

. , הסיבוכיות נותרת לינארית, כלומר 3למזלנו, עבור ממד •

Page 32: CONVEX HULLS  קְמוֹריִם (חלק ב)

32

nמספר נקודות הקלט =

hמספר קשתות הקמור בדו-ממד =

f.מספר פאות הקמור בתלת-ממד =

Grahamנשים לב שאין מקבילה "טבעית" בתלת ממד ל•

Scan.בעיה זו נותרה פתוחה ,

12/12/11

ממד נוסף לבעיה

הקדמה )המשך(

Page 33: CONVEX HULLS  קְמוֹריִם (חלק ב)

33 12/12/11

ממד נוסף לבעיה

Divide and Conquer כלשהי נפעל בצורה דומה Sעבור קבוצת נקודות •

לאלגוריתם בדו-ממד: נחלק אותן לשתי קבוצות על פי

אותן הנחות ונריץ את האלגוריתם בצורה רקורסיבית.השינוי העיקרי שנהיה צריכים לעשות הוא לאפיין מחדש •

את המיזוג של שני קמורים בתלת ממד כך: יהיוA-ו B שני קמורים למיזוג. הקמור , מוסיף

"חבורה" כלשהי של פאות. מספר פאות זה יהיה לינארי בגודל שני הפאונים, מכיוון

שכל פאה שנוספה משתמשת בקשת אחת לפחות של

A-ו B. מכאן, ניתן לבצע את המיזוג בזמן לינארי בתנאי שכל

פאה תתמזג בזמן קבוע )בממוצע(.

Page 34: CONVEX HULLS  קְמוֹריִם (חלק ב)

34 12/12/11

ממד נוסף לבעיה

מיזוג :

גבולות הצללים

Page 35: CONVEX HULLS  קְמוֹריִם (חלק ב)

35 12/12/11

ממד נוסף לבעיה

Divide and Conquer מלמטה, הנוגע B ו-Aיהי המישור שתומך בקמורים •

A )נשים לב ש-Q בקדקוד B ובקמור P בקדקוד Aבקמור

פאונים נפרדים(Bו- הן הנקודות היחידות שבמגע Q ו-P)לשם הפשטות נניח ש-•

.PQ משיק שנקבע על ידי Lעם המישור , אז מכיל קו , ונסובב אותו עד Lעתה "נקמט" את המישור סביב הקו •

שהוא מתנגש בפאון כלשהו, בנקודה כלשהי. Rאבחנה חשובה היא שברגע שמתנגשים בנקודה כלשהי •

.Q או של Pבפאון חייבת להיות שכנה של עובדה זו מגבילה את מספר הקדקודים שצריך לחקור רק •

לאלו שמתנגשים בהם )את גבול הצללים ולא את כל

הקדקודים בשני הפאונים(.

Page 36: CONVEX HULLS  קְמוֹריִם (חלק ב)

36 12/12/11

ממד נוסף לבעיה

Divide and Conquerבצורה כזו נמשיך עד שהמישור עוטף את הקמור החדש •

שלנו.כל שנותר עכשיו הוא "להעיף" את הפאות המיותרות, את •

אלו שאי אפשר לראות.האלגוריתם מחזיר לנו את "גבולות הצללים", הקו הצהוב •

בציור, שממנו והלאה לא רואים את הפאות שהוסתרו

בתהליך.כל שנותר עכשיו הוא "לגזור" את החלק החשוך.•

מתברר עם זאת, ששלב•

זה מסובך למימוש בפאונים

מסוימים.

Page 37: CONVEX HULLS  קְמוֹריִם (חלק ב)

37 12/12/11

באתי, ראיתי, כבשתי

תרגילהראה את סיבוכיות המיזוג התלת ממדי באמצעות בנית •

הוא :B שעבורו גבול הצללים באיחוד עם פאון Aפאון

פתרון(A)

A B

Page 38: CONVEX HULLS  קְמוֹריִם (חלק ב)

38 12/12/11

באתי, ראיתי, כבשתי

תרגילהראה את סיבוכיות המיזוג התלת ממדי באמצעות בנית •

הוא :B שעבורו גבול הצללים באיחוד עם פאון Aפאון

פתרון(B)

A B

Page 39: CONVEX HULLS  קְמוֹריִם (חלק ב)

39 12/12/11

ממד נוסף לבעיה

Divide and Conquerלמרות האמור לעיל, ניתוח הסיבוכיות מראה שסיבוכיות •

המיזוג היא ובאופן דומה לחישוב שעשינו עבור דו-ממד,

נובע כי סיבוכיות האלגוריתם היא .

: למרות סיבוכיות אסימפטומטית טובה זו, היא לא הכי חשוב

ישימה מכיוון שעדכון ועטיפה עבור גבול הצללים היא בעיה

, שעליו נדבר עתה הוא Incremental Algorithmעדינה וה-

יישומי יותר וקל יותר לפתרון.

Page 40: CONVEX HULLS  קְמוֹריִם (חלק ב)

40

שלהם.x לפי שיעור קואורדינטת ה-Sנמיין את נקודות •

הנקודות הראשונות יוצרות משולש – הק�מו�ר 3•

ההתחלתי.

, נוסיף אותה Sנתבונן בנקודה הבאה לפי הסדר ב-•

לק�מו�ר ונסיר את הנקודות שהופכות לפנימיות.

נמשיך בתהליך של הוספת נקודה בכל שלב, עד שנסיים •

.Sלעבור על כל נקודות

Incremental Algorithm תזכורת ,בדו-ממד

12/12/11

Page 41: CONVEX HULLS  קְמוֹריִם (חלק ב)

41

Incremental Algorithm תזכורת ,בדו-ממד

12/12/11

Page 42: CONVEX HULLS  קְמוֹריִם (חלק ב)

42 12/12/11

ממד נוסף לבעיה

Incremental Algorithm

בצורה דומה לאלגוריתם הדו-ממדי האלגוריתם התלת •

ומוסיף אותה לקמור הקיים Pממדי לוקח נקודה חדשה

Q על ידי חישוב כלשהו. תהליך זה נמשך עד אשר מגלים ,

את כל הקמור.

, בתלת ממד Q לקמור Pבדו ממד העברנו קוים משיקים מ-•

. Qנעביר מישורים משיקים לקמור

מישורים אלו יוצרים מעין חרוט של פאות משולשים, •

של E והבסיס הוא קשת Pשקדקוד החרוט הוא הנקודה

Q.

Page 43: CONVEX HULLS  קְמוֹריִם (חלק ב)

43 12/12/11

ממד נוסף לבעיה

Incremental Algorithm

Page 44: CONVEX HULLS  קְמוֹריִם (חלק ב)

44 12/12/11

ממד נוסף לבעיה

Incremental Algorithm. בשלב Q ומביט כלפי הקמור Pהנח שאתה עומד בנקודה •

זה כל פאה נראית או בלתי-נראית ביחס אליך. כאן כבר

ברור שרק הפאות שאתה רואה הן הפאות שצריך להסיר

מהקמור.

אם עבור כל נקודה P גלויה מהנקודה F: פאה נגדיר•

שלא חותך PX על הפאה ישנו קו ישר כלשהו, Xאחרת

. )תחת הגדרה זו, לראות X, מלבד בנקודה Qאת הקמור

רק קשת אחת של פאה אינה נחשב כמו ראית הפאה(.

הגדרה זו תאפשר לנו לבנות את החרוט המבוקש ולזרוק •

.Qאת הפאות המיותרת מ-

Page 45: CONVEX HULLS  קְמוֹריִם (חלק ב)

45

ממד נוסף לבעיה

Incremental Algorithm )O)1סיבוכיות ההחלטה אם פאה היא גלויה היא ב- •

)למה?(.

ניקח ונחליט עבור כל פאה אם היא גלויה או לא, נקבל •

הסמוכות גם Eאת גבול הצללים שלנו על ידי קשתות

לפאות גלויות וגם לפאות שאינו גלויות.

לקודקודי Pנסיר את הפאות הגלויות ונחבר את הנקודה •

גבול הצללים שלנו. אז נקבל את הצורה החרוטית ונוסיף

לקמור.Pאת

nכל הוספה של נקודה נעשית ב-, לכל היותר ולכן עבור •

נקודות נקבל יעילות אלגוריתם כללית של .

12/12/11

Page 46: CONVEX HULLS  קְמוֹריִם (חלק ב)

46

ממד נוסף לבעיה

Incremental Algorithm Divide andלמרות שסיבוכיות זו גדולה מהסיבוכיות של •

Conquer היא הרבה יותר ישימה וקל מאד לגלות את ,

גבול הצללים ולהסיר את הפאות שאינן נדרשות לקמור.

לסיכום ראינו:•

12/12/11

Page 47: CONVEX HULLS  קְמוֹריִם (חלק ב)

47

סוף

דצמבר 12 2011