240 likes | 331 Views
המרכז הבינתחומי הרצליה קורס גיאומטריה חישובית – חורף 2005 פרויקט סיום. Unit Disc Cover Problems. בן ברכה יעל פסחוב. UDC. Live. על מה נדבר. הגדרת הבעיה – UDC מוטיבציה בעיית ה Piercing הוכחת Hardness אלגוריתם קירוב חמדן קירוב 108 קירוב 72 וורסיות אחרות של הבעיה מקרה פרטי GUDC
E N D
המרכז הבינתחומי הרצליה קורס גיאומטריה חישובית – חורף 2005 פרויקט סיום Unit Disc Cover Problems בן ברכה יעל פסחוב UDC Live
על מה נדבר • הגדרת הבעיה – UDC • מוטיבציה • בעיית ה Piercing • הוכחת Hardness • אלגוריתם קירוב חמדן • קירוב 108 • קירוב 72 • וורסיות אחרות של הבעיה • מקרה פרטי • GUDC • סיכום
הגדרת הבעיה • D – מעגלי יחידה (R=1) • P – נקודות שאותן צריך לכסות • רוצים למצוא תת קבוצה מינימלית של D שמכסה את כל הנקודות ב P • הנחה: כל נקודה מכוסה ע"י מעגל אחד לפחות
מוטיבציות • UDC – בעיה תיאורטית מעניינת. • עדיין יש שאלות פתוחות. • Ad-hoc Networks: • Selecting forwarding neighbors.פתרונות שידור הודעות ברשת. • בעולם האמיתי מתעניינים בעיקר בבעיות GUDC ובבעיות עם פרמטרים "גמישים" יותר. • Facility Location Problems: • K-Center Problem: מציאת k נקודות למרכזי שירות כדי לשרת קבוצת לקוחות. • Minimum cost covering tour:מציאת מסלול קצר לרובוט במהלכו הוא סורק נקודות נתונות.
הבעיה הדואלית - Piercing • D – מעגלי יחידה אותם יש "לסמן". • P – קבוצת נקודות "סימון". • רוצים למצוא תת קבוצה מינימאלית של נקודות ש"פוגעות" ("מסמנות") בכל המעגלים. • הבעיות שקולות (דואליות): • בהינתן קלט D ו P לבעיית הכיסוי, ניתן קלט D` ו P` לבעיית ה Piercing • D` היא קבוצת המעגלים שמרכזם ב P • P` היא קבוצת מרכזי המעגלים ב D
הבעיה הדואלית - Piercing • מרכז של מעגל הופך לנקודה שצריך לכסות • נקודה שצריך לכסות הופכת למרכז מעגל
UDC היא NP-Complete • ב NP • בהינתן פתרון בגודל k אפשר לבדוק בזמן פולינומיאלי אם המעגלים בפתרון מכסים את כל הנקודות • NP-Hard • רדוקציה מ DOM(P) – "בהינתן קבוצת נקודות במישור P, יש למצוא תת קבוצה שלהן בגודל מינימלי כך שמעגלי יחידה שמרכזיהם בקבוצה זו מכסים את כל P • DOM היא למעשה מקרה פרטי של UDC
UDC היא NP-Complete • הרדוקציה DOM נקודות P UDC נקודות P, מעגלים שמרכזיהם ב P
אלגוריתם קירוב חמדן • כל עוד נותרו נקודות שלא כוסו • בחר מעגל שמכסה את המספר הרב ביותר של נקודות שלא כוסו, נסמנו ב c • הוסף את c לקבוצת הפיתרון S • הורד את הנקודות שמכוסות ע"י c מקבוצת הנקודות שלא כוסו • החזר את S
אלגוריתם קירוב חמדן • יחס קירוב : lnn(n - מספר הנקודות) • נניח שהפתרון האופטימלי הוא k מעגלים • נגדיר ni – מספר הנקודות שעדיין לא כוסו בשלב ה i • לכן בשלב ה i של האלגוריתם החמדן, קיים מעגל שמכסה לפחות ni/k נקודות • החמדן לוקח מעגל שמכסה לפחות כמספר הזה • מתקיים: • לכן מספר השלבים של החמדן (כלומר מספר המעגלים שנבחרו) הוא לכל היותר lnn.
אלגוריתם קירוב 108 • מבוסס על: G. Calinescu, I. Mandoiu, P.-J. Wan and A. Zelikovsky, Selecting Forwarding Neighbors in Wireless Ad-Hoc Networks. • Divide & Conquer : • חלוקת מרחב הבעיה למשולשים שווי צלעות (צלע בגודל 1). • פתרון בכל משולש – בקירוב 6. • בפתרון האופטימאלי, מעגל יכול לכסות נקודות בלכל היותר 18 משולשים. ראה דוגמה • על כן איחוד הפתרונות מכל המשולשים נותן קירוב 108 לפתרון האופטימאלי. • ניתן לביצוע בזמן פולינומאלי – O(nlogn).
אלגוריתם קירוב 108 • יהי ABC משולש: • אם אין בו נקודות, נתעלם (אין מה לעשות). • אם יש מעגל שמרכזו בתוך המשולש – הוא מכסה את כל המשולש, נתעלם (ניקח אותו). • לכן, כל הנקודות p הן בתוך המשולש, וכל מרכזי המעגלים שחותכים אותו הם מחוץ למשולש. • נחלק את המעגלים שחותכים את ABC לשלוש קבוצות – D1, D2, D3בצורה הבאה:
אלגוריתם קירוב 108 • אין צורך לחפש כיסוי מבין כל המעגלים ב D1, D2, D3. • מספיק להסתכל על המעגלים שמשתתפים ב skyline של כל Di (ניתן לחישוב בזמן פולינומאלי). • כשמסתכלים על תת קבוצה זו של ה D-ים, מובטח קירוב 2.
אלגוריתם קירוב 108 • נבנה קבוצות F1,F2,F3 – המעגלים ב skyline מ D1,D2,D3 בהתאמה. • ננסח את מציאת הכיסוי המינימאלי מבין המעגלים ב F=UFiכבעיית IP • ניתן לפתור ע"י Relaxation בקירוב 6.
אלגוריתם קירוב 72 • מבוסס על: SADANANDA NARAYANAPPA AND PETR VOJTECHOVSKY: AN IMPROVED APPROXIMATION FACTOR FOR A UNIT DISK COVERING PROBLEM • הרחבת הרעיון שבאלגוריתם קירוב 108 • חלוקת המישור למשושים בעלי קוטר 1 במקום משולשים
האלגוריתם • לכל משושה, נחלק את השטח המשלים שלו במישור לשלושה חלקים. בכל חלק כזה לא יימצאו שני מעגלים שנחתכים פעמיים במשושה
האלגוריתם • ניקח משושה שיש בו נקודות ולא כוסה • אם יש מעגל שמרכזו בתוך המשושה נבחר אותו (מכסה את כל המשושה) • אחרת נפתור את UDC על כל אחד משלושת חלקי המישור שמגדיר המשושה • נשתמש באלגוריתם שהוצג קודם עבור כל חלק
יחס קירוב • אבחנה: כל מעגל יכול להוות כיסוי לנקודות בלכל היותר 12 משושים
יחס קירוב • האלגוריתם הקודם משיג יחס קירוב 2 עבור כל חלק שמקיים את התכונה "אין שני מעגלים בו שנחתכים פעמיים במשושה" • סה"כ, לכל משושה נקבל קירוב 2*3=6 • על כל מעגל בפתרון האופטימלי האלגוריתם עלול לקחת 12, כי הוא מתעלם בחישוב כיסוי של משושה מכך שיש מעגלים שנלקחו כבר עבור משושים אחרים • לכן יחס הקירוב 6*12=72
מקרה פרטי • במציאות, בד"כ לא יקרו מצבים בהם כל נקודה מכוסה ע"י יותר ממספר קבוע של מעגלים • נניח שכל נקודה מכוסה ע"י לכל היותר c מעגלים • נוציא את כל הנקודות שמכוסות ע"י מעגל אחד • במקרה ש c=2 שקול לבעיית ה Vertex Cover • ניתן להשיג קירוב c ע"י האלגוריתם הבא
מקרה פרטי • אלגוריתם קירוב c: • נגדיר את S להיות קבוצת הפיתרון • נגדיר את NYC להיות קבוצת הנקודות שלא כוסו • כל עוד NYC לא ריקה • בחר נקודה • בחר את כל המעגלים שמכסים אותה • הוסף אותם ל S • מחק את כל הנקודות שמכוסות על ידם מ NYC • לכל נקודה, לקחנו לכל היותר c מעגלים שמכסים אותה
General UDC (GUDC) • וורסיה אחרת של ה UDC • נתונות רק הנקודות לכיסוי וניתן להחליט איפה המעגלים יהיו. • קיים PTAS ! (בהמשך). • במימד אחד הבעיה ב P (“Line Cover”). • בעלת עניין רב בספרות • הצבת מוקדי חירום ללקוחות • Clustering • Piercing לקבוצת נקודות דינאמית – מציאת פתרון מקורב ראשוני, ושמירה עליו ע"י פעולות עדכון יעילות (MPS). • כיסוי נקודות ע"י כל מיני צורות (משולשים, מרובעים, מעגלים), בכל מיני הגבלות (צורות זהות/שונות, מקבילות/לא מקבילות לצירים ועוד).
General UDC (GUDC) • קיים PTAS D.S. Hochbaum and W.Maass, Approximation schemes for covering and packing problems in image processing and VLSI (1985) • קירוב: לכל • זמן ריצה: • פתרון ע"י ה Shifting Strategy על שני ממדי הבעיה • בכל ריבוע בגודל אפשר לעשות Exhaustive search:נבנה אלגוריתם שמחפש מעגלים ע"י בחירת זוג נקודות וציור מעגל עליהן(2 אפשרויות לציור מעגל כזה).ניתן לכסות את הריבוע ב מעגלים לכל היותר. לכן יש לבדוק לכל היותר כיסויים, כאשר הוא מספר הנקודות בריבוע. כל כיסוי ניתן לוודא ב ומכיוון שיש ריבועים, מקבלים את זמן הריצה שהוזכר.
סיכום • הכרנו את בעיית ה UDC • בעיה "נוקשה" מבחינה מעשית, אך מעניינת תיאורטית. • בעיות בעולם האמיתי דורשות עוד פרמטרים. • GUDC • בעיה "מציאותית" יותר. • Facility Location Problems, Clustering, Piercing Packing... • המצב כיום ב UDC: • אלגוריתם קירוב 108, 72. • האם יש לבעיה PTAS (לחילופין – האם היא APX-Hard) – שאלה פתוחה.