1 / 17

Points on a perimeter (Convex Hull)

Points on a perimeter (Convex Hull). קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם. הגדרת הבעיה:. המטרה: מציאת המצולע המינימלי שיכיל את כל הנקודות במישור המתואר ( Convex Hull ). הקלט: S - סדרת נקודות (שני מימדים).

stacey
Download Presentation

Points on a perimeter (Convex Hull)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Points on a perimeter(Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם

  2. הגדרת הבעיה: • המטרה:מציאת המצולע המינימלי שיכיל את כל הנקודות במישור המתואר (Convex Hull). • הקלט:S - סדרת נקודות (שני מימדים). • הפלט: סדרת נקודות נבחרת היוצרת מצולע שמקיף את כל הנקודות במרחב. • לדוגמא:

  3. למה זה טוב? • אדם יצליח למצוא את הדרך הקצרה ביותר. • אבל,הרובוט... • הוא צריך קצת עזרה.

  4. `

  5. איך פותרים? • יש מגוון אלגוריתמים שפותרים את הבעיה,כמו: Quick Hull .1 Gift Wrap .2 Divide and Conquer .3 ועוד רבים אחרים. • בעבודתנו נשתמש בשיטתQuick Hull.

  6. דוגמא פשוטה למציאת :Convex Hull • קלט: רשימת הנקודות המרכיבות את המרחב P. • פלט: הנקודות שמרכיבות את ההיקף של P. • בדוגמא: Input = [a,b,c,d] Output = [a,b,d] a מרחב P b c d

  7. H B M F G D I E C איך Quick Hullעובדת? J • נמצא את שתי הנקודות הקיצוניות ביותר על ציר ה –X. O K P A L N מישור P [A B C D E F G H I J K L M N O P]

  8. H B M F G D I E C סינון: • חותך את המישור –P לשני חלקים: מעל לישר AP ומתחת לישר AP. J O K P A L N [ A B D F G H J K M O P]

  9. H B M F G D I E C מציאת קיצון: • מחפש את הנקודה המרוחקת ביותר מהקו AP. אם נמצאה נקודה היא תמוקם ב-.Convex Hull J O K P A L N [A B D F G H J K M O P]

  10. H B M F G D I E C סינון נוסף: • מותחים קו חדש בין הנקודה החדשה לבין נק' הקיצון הקיימות. J O K P A L N [ [A B F J ] [J O P] ]

  11. H M F G D I E C מציאת קיצון נוסף: • הפעם מוצאים נק' קיצון המרוחקת מהקו AJ. במקרה הזה נמצאה הנק' B. הנק' מתווספת ל- Convex Hull. J O B K P A L N [[A B F J] [J O P] ]

  12. H M F G D I E C עצירה: • לא נמצאו יותר נק' בחלק [ABJF] נחפש נק' קיצון בחלק [JOP]. J O B K P A L N [ [A B] [B J] [J O P] ]

  13. H M F G D I E C מציאת קיצון מהקו JP: • הנק' O היא הנק' האחרונה!!! מצאנו את היקף החצי העליון !!! • נחזור על פעולת החיפוש עבור החלק התחתון. J O B K P A L N [ [A B] [B J] [J O] [O P] ]

  14. כיצד ניתן "למקבל" את זה? • נחלק את המישור למספר חלקים. • כל מעבד "יסדר" את החלק שלו. • חיבור כל החלקים לקבלת המצולע השלם. • שימוש ב: 1. Embarrassingly Parallel Computations Master Workers.2

  15. כמה זה מסובך? • לשיטת Quick Hullסיבוכיות מסדר O(n*Log(n)) • בתוכנית המקבילית נקבל סיבוכיות[O{n*Log(n)}] / N

  16. כיצד נממש? • האלגוריתם שתואר קודם יעבור מקבול בשפת PVM. • נחלק את מספר הנקודות בין שני מעבדים וכל אחד ימצא • את המעטפת השייכת לו. • לאחר מכן נאסוף את הנתונים ונייצר מערך של נקודות • הקצה. • מערך זה יכתב לקובץ בנוסף למערך של כל שאר הנקודות • ויוצג ע"י תוכנה נפרדת שתיכתב בשפת C.

  17. תודה רבה שאלות ?

More Related