Download presentation
Presentation is loading. Please wait.
1
Points on a perimeter (Convex Hull) קורס – מבוא לעבוד מקבילי מבצעים – אריאל פנדלר יאיר ברעם
2
הגדרת הבעיה : המטרה : מציאת המצולע המינימלי שיכיל את כל המטרה : מציאת המצולע המינימלי שיכיל את כל הנקודות במישור המתואר (Convex Hull). הנקודות במישור המתואר (Convex Hull). הקלט : S - סדרת נקודות ( שני מימדים ). הקלט : S - סדרת נקודות ( שני מימדים ). הפלט : סדרת נקודות נבחרת היוצרת מצולע שמקיף את הפלט : סדרת נקודות נבחרת היוצרת מצולע שמקיף את כל הנקודות במרחב. כל הנקודות במרחב. לדוגמא : לדוגמא :
3
למה זה טוב ? אדם יצליח למצוא את הדרך הקצרה ביותר. אדם יצליח למצוא את הדרך הקצרה ביותר. אבל, הרובוט... אבל, הרובוט... הוא צריך קצת עזרה. הוא צריך קצת עזרה.
4
`
5
איך פותרים ? יש מגוון אלגוריתמים שפותרים את הבעיה, כמו : Quick Hull.1 יש מגוון אלגוריתמים שפותרים את הבעיה, כמו : Quick Hull.1 Gift Wrap.2 Divide and Conquer.3 Divide and Conquer.3 ועוד רבים אחרים. ועוד רבים אחרים. בעבודתנו נשתמש בשיטת Quick Hull. בעבודתנו נשתמש בשיטת Quick Hull.
6
דוגמא פשוטה למציאת :Convex Hull קלט : רשימת הנקודות המרכיבות את המרחב P. קלט : רשימת הנקודות המרכיבות את המרחב P. פלט : הנקודות שמרכיבות את ההיקף של P. פלט : הנקודות שמרכיבות את ההיקף של P. בדוגמא : Input = [a,b,c,d] Output = [a,b,d] בדוגמא : Input = [a,b,c,d] Output = [a,b,d] a b d c מרחב P
7
איך Quick Hull עובדת ? נמצא את שתי הנקודות הקיצוניות ביותר על ציר ה – X. נמצא את שתי הנקודות הקיצוניות ביותר על ציר ה – X. AC B D F G H I EJMK L N O P [A B C D E F G H I J K L M N O P] מישור P
8
סינון : חותך את המישור –P לשני חלקים : מעל לישר AP ומתחת לישר AP. חותך את המישור –P לשני חלקים : מעל לישר AP ומתחת לישר AP. AC B D F G H I EJMK L N O P [ A B D F G H J K M O P]
9
מציאת קיצון : מחפש את הנקודה המרוחקת ביותר מהקו AP. אם נמצאה נקודה היא תמוקם ב -.Convex Hull מחפש את הנקודה המרוחקת ביותר מהקו AP. אם נמצאה נקודה היא תמוקם ב -.Convex Hull AC B D F G H I EJMK L N O P [A B D F G H J K M O P]
10
סינון נוסף : מותחים קו חדש בין הנקודה החדשה לבין נק ' הקיצון הקיימות. מותחים קו חדש בין הנקודה החדשה לבין נק ' הקיצון הקיימות. AC B D F G H I EJMK L N O P [ [A B F J ] [J O P] ]
11
מציאת קיצון נוסף : הפעם מוצאים נק ' קיצון המרוחקת מהקו AJ. במקרה הזה נמצאה הנק ' B. הנק ' מתווספת ל - Convex Hull. הפעם מוצאים נק ' קיצון המרוחקת מהקו AJ. במקרה הזה נמצאה הנק ' B. הנק ' מתווספת ל - Convex Hull. ACBD F G H I EJMK L N O P [[A B F J] [J O P] ]
12
עצירה : לא נמצאו יותר נק ' בחלק [A B J F] נחפש נק ' קיצון בחלק [J O P]. לא נמצאו יותר נק ' בחלק [A B J F] נחפש נק ' קיצון בחלק [J O P]. ACBD F G H I EJMK L N O P [ [A B] [B J] [J O P] ]
13
מציאת קיצון מהקו JP: הנק ' O היא הנק ' האחרונה !!! מצאנו את היקף החצי העליון !!! הנק ' O היא הנק ' האחרונה !!! מצאנו את היקף החצי העליון !!! נחזור על פעולת החיפוש עבור החלק התחתון. נחזור על פעולת החיפוש עבור החלק התחתון. ACBD F G H I EJMK L N O P [ [A B] [B J] [J O] [O P] ]
14
כיצד ניתן " למקבל " את זה ? נחלק את המישור למספר חלקים. נחלק את המישור למספר חלקים. כל מעבד " יסדר " את החלק שלו. כל מעבד " יסדר " את החלק שלו. חיבור כל החלקים לקבלת המצולע השלם. חיבור כל החלקים לקבלת המצולע השלם. שימוש ב : 1. Embarrassingly Parallel Computations שימוש ב : 1. Embarrassingly Parallel Computations Master Workers.2
15
כמה זה מסובך ? לשיטת Quick Hull סיבוכיות מסדר O(n*Log(n)) לשיטת Quick Hull סיבוכיות מסדר O(n*Log(n)) בתוכנית המקבילית נקבל סיבוכיות [O{n*Log(n)}] / N בתוכנית המקבילית נקבל סיבוכיות [O{n*Log(n)}] / N
16
כיצד נממש ? האלגוריתם שתואר קודם יעבור מקבול בשפת PVM. האלגוריתם שתואר קודם יעבור מקבול בשפת PVM. נחלק את מספר הנקודות בין שני מעבדים וכל אחד ימצא נחלק את מספר הנקודות בין שני מעבדים וכל אחד ימצא את המעטפת השייכת לו. את המעטפת השייכת לו. לאחר מכן נאסוף את הנתונים ונייצר מערך של נקודות לאחר מכן נאסוף את הנתונים ונייצר מערך של נקודות הקצה. הקצה. מערך זה יכתב לקובץ בנוסף למערך של כל שאר הנקודות מערך זה יכתב לקובץ בנוסף למערך של כל שאר הנקודות ויוצג ע " י תוכנה נפרדת שתיכתב בשפת C. ויוצג ע " י תוכנה נפרדת שתיכתב בשפת C.
17
תודה רבה שאלות ?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.