You are on page 1of 1

‫שאלה ‪2.

2‬‬
‫סיבוכיות קומבינטורית של המרחב החופשי‬
‫נצייר מעגל ברדיוס ‪ d‬מסביב לנקודה ‪.p‬‬

‫עבור כל "צלע נצפית" מנקודה ‪ ,p‬נעביר קוטר דרך הקצוות שלה שנמצאות בתוך המעגל‪.‬‬

‫כעת כל נגזרת במעגל בעלת צלע נצפית אחת לכל היותר‪ ,‬כאשר השטח שבין הצלע הנצפית ל ‪ p‬הינה נקודה‬
‫במרחב החופשי‪.‬‬
‫כעת נביט בזוג גזרות נגדיות בעלות צלע נצפית כל אחת ובקטעים אשר עוברים דרך ‪ p‬ונוגעים בצלעות‬
‫הנצפות‪ .‬נגדיר "נקודת שינוי" כנקודה שבה קטעים אלה הופכים להיות קטנים מ ‪ .d‬עבור כל זוג צלעות נצפות‬
‫נגדיות קיימות לכל היותר שתי נקודות שינוי‪ ,‬דרך כל אחת מהן נעביר קוטר נוסף‪ .‬בסה"כ חילקנו כל זוג גזרות‬
‫נגדיות ל ‪ 3‬גזרות כל אחת לכל היותר‪.‬‬
‫כעת נסיר כל זוג נקודות נגדיות במרחב החופשי אשר מסמלות זוג צלעות נצפות במרחק קטן מ ‪ d‬מנקודה ‪.p‬‬

‫לבסוף נחבר כל זוג נקודות אשר מייצגות נגזרות צמודות‪.‬‬


‫במידה וכל הצלעות הנצפות במרחק לפחות ‪ d‬מהנקודה ‪ p‬המרחב החופשי הינו בעל )‪ O(1‬איברים‪.‬‬

‫אחרת‪ ,‬ישנן לכל היותר ‪ 3n‬נקודות וצלעות במרחב החופשי ולכן הוא בעל )‪ O(n‬איברים‪.‬‬

‫אלגוריתם לחישוב המרחב החופשי‬


‫נחשב את הצלעות הנצפות שבמרחק לכל היותר ‪ d‬מנקודה ‪ p‬בעזרת אלגוריתם ‪ sweap‬מעגלי שראינו בכיתה‬
‫)‪.O(nlogn‬‬

‫נעבור על כל זוג גזרות נגדיות ונחלק אותן במידת הצורך )‪.O(n‬‬

‫נסיר כל זוג נקודות נגדיות במרחב החופשי אשר מסמלות זוג צלעות נצפות במרחק קטן מ ‪ d‬מנקודה ‪.O(n) p‬‬

‫נחבר כל זוג גזרות צמודות )‪.O(n‬‬

‫סה"כ זמן ריצת האלגוריתם הינו )‪.O(nlogn‬‬

You might also like