Download presentation
Presentation is loading. Please wait.
1
אלגוריתמי קרוב לבעיית Densest k-Subgraph
TEL AVIV UNIVERSITY אוניברסיטת תל-אביב THE IBY AND ALADAR FLIESCHMAN FACULTY OF ENGINEERING DEPT. OF ELECTRICAL ENGINEERING-SYSTEMS הפקולטה להנדסה ע"ש איבי ואלדר פליישמן המחלקה להנדסת חשמל-מערכות אלגוריתמי קרוב לבעיית Densest k-Subgraph אבירם לב-ארי דר' דנה רון
2
מבנה המצגת מטרת העבודה בעיית Densest k-Subgraph אלגוריתם GADkS
אלגוריתמי קירוב מוצעים Approx. DkS I Approx. DkS II הצגת תוצאות סיכום
3
מטרת העבודה מציאת אלגוריתמים יעילים (פולינומיאליים) בעלי ממוצע ביצועים טוב יותר מאלגוריתם GADkS1. 1 אלגוריתם פולינומיאלי ידוע שיוצג בהמשך
4
בעיית Densest k-Subgraph
נתון: גרף G = (V,E) , |V| = n מספר שלם חיובי k n צ.ל.: קבוצה DkS V , |DkS| = k כך שתת הגרף המושרה על ידי DkS בעל מספר מקסימלי של קשתות DkS = {1,2,3,4}
5
העניין בבעיה בעיית DkS הינה בעיה בסיסית בתורת הגראפים וקשורה למספר בעיות כגון: Clique מציאת תת גרף בעל מספר קדקודים מקסימלי בו כל זוג קדקודים שכנים Densest Subgraph (DSG) מציאת תת הגרף (בגודל כל שהוא) בו ממוצע דרגות הקדקודים מקסימלי Minimum Flux Cut (FLUX) עבור גראפים רגולרים מציאת חתך C עם יחס מינימלי בין מספר הקשתות החותכות את החתך לבין מספר הקדקודים בצדו הקטן של החתך.
6
סיבוכיות הבעיה בעיית DkS הינה בעיה NP-HARD הוכחה:
נגדיר בעיית ההכרעה DkSd האם יש ב- G תת גרף בעל k קדקודים בדיוק, ולפחות m קשתות בעיית ההכרעה הינה NP-COMPLETE ע"י רדוקציה מבעיית Clique ע"י ביצוע DkSd עם בעיית Clique הינה NP-COMPLETE [1] מכאן DkS הינה NP-HARD
7
סיבוכיות הבעיה בעיית DkSd נותרת NP-COMPLETE גם כאשר מספר הקשתות m הינו O(k) ו- k קטן ממחצית n: k n/2, m k1+ [6] בעיית DkSd NP-COMPLETE גם כאשר גרף הקלט דליל דרגת כל קדקוד ב- G הינה 3 לכל היותר[4]
8
סיבוכיות הבעיה כאשר ידוע כי בגרף יש Clique בגודל k, קיימת סכימת קרוב לבעיה [4] מובטח גרף בעל לפחות קשתות. זמן הריצה עבור גראפים צפופים (Dense) ו- k = (n) קיים PTAS לבעיה [5]
9
אלגוריתם GADkS GADkS הינו אלגוריתם קרוב חמדני [8]: Greedy Approx. algorithm for the DkS problem נסלק (n-k) קדקודים מ- G בשלבים, כאשר בכל שלב נסלק את הקדקוד בעל הדרגה המינימלית
10
דוגמת הרצה של GADkS DkS has been found successfully n = 8 k = 4 1 1 5
2 2 6 7 DkS has been found successfully 3 3
11
! הגדרת GADkS Algorithm GADkS(G(V,E),k) Set X=V.
If |X|=k then output G[X], Otherwise, find a vertex in X with the minimum degree in G[X] and remove it from X (Ties are broken arbitrary). Go to 2.
12
זמן הריצה של GADkS נחזיק את דרגות הקדקודים בערמה (heap):
בניית הערימה O(nlog(n)) n-k חיפושים של קדקוד בעל דרגה מינימלית. משך כל חיפוש O(1) עם סילוק קדקוד v נדרש לעדכן deg(v)-1 אברים בערמה. משך כל עדכון O(log(n))
13
יחס הקרוב של GADkS יחס הקרוב נתון על ידי [8]:
14
מחלקו התחתון של הגרף יגרום לפליטת
חסרון אלגוריתם GADkS ביטול קדקוד ראשון מחלקו התחתון של הגרף יגרום לפליטת ה- DkS על ידי האלגוריתם כאשר קיימים מספר קדקודים עם דרגה מינימלית, מסלק GADkS אחד מהם שרירותית. n = 16 k = 8 2 6 1 4 5 8 DkS: 14 edges 3 7 10 14 9 12 13 16 11 15
15
חסרון אלגוריתם GADkS DkS: 14 edges GADkS: 10 edges R = 7/5
n = 16 k = 8 2 6 6 1 4 5 8 8 DkS: 14 edges 3 7 GADkS: 10 edges 10 14 14 R = 7/5 9 12 11 13 13 16 16 11 11 15 15
16
גידול תת קבוצות המכילות את ה- DkS
נכנה את חיפוש הקבוצה כ- גידול (BottomUp) n = 16 k = 8 2 1 6 16 2 6 DkS U |U| = n' n' n R(U,n',k) R(G,n,k) 1 4 3 5 8 4 5 8 3 7 7 10 14 9 12 13 16 11 15
17
פרוצדורת גידול (U) קלט: מטרה: G G(V,E) U V, |U| < k
פרוצדורת הגידול תתבסס על היוריסטיקות אשר בהנחה כי U DkS: אם |(U)| k, אזי (U) DkS אם |(U)| > k, אזי DkS (U) הגידול יתבצע בצעדים קטנים ככל האפשר (U) DkS (U) U
18
אלגוריתם ApproxDkS I האלגוריתם מחפש DkS מקומית.
גידול הקבוצות יבוצע סביב קדקוד בודד, ויגדיל את U עד שגודלה יהיה k לכל הפחות. עבור t קדקודים הנבחרים אקראית מבין קדקודי הגרף: האלגוריתם יחל את גידול U מקדקוד בודד U = {v}, ויוסיף לקבוצה (U) את כל שכני v. התהליך ימשיך עד ש- |(U)| k. כאשר |(U)| > k, יופעל עליה GADkS האלגוריתם יפלוט את תת הגרף הצפוף ביותר מבין t תתי הגרפים המתקבלים
19
דוגמת הרצה של ApproxDkS I
n = 16 k = 8 2 2 6 6 1 1 4 4 5 5 8 8 3 3 7 7 10 14 9 12 13 16 11 15 DkS has been found successfully
20
! הגדרת GrowDkS procedure GrowDkS (G=(V,E),U’,k)
Let T V be the subsets of vertices which constructed by the following steps: T’ U’ Let T be the subset of vertices which neighbour some vertices in T’. If (|T| < k) and (|T | < |T’|) then T’ T, Go to b. return GADkS(T).
21
! הגדרת ApproxDkS I Algorithm ApproxDkS I (G=(V,E),k,t)
Uniformly select sample U of size t. For each v U, D D {GrowDkS(G,{v},k)} Among all sets in D, let be the one with the maximum number of edges. Output . !
22
זמן הריצה של ApproxDkS I
זמן ריצה של GrowDkS: גידול הקבוצה (U) הינו O(nk) בשלב שני מופעל GADkS על (U) ולכן זמן ריצה של GrowDkS הינו האלגוריתם מריץ את GrowDkS t פעמים ולסיכום זמן הריצה של ApproxDkS I הינו:
23
חסרון אלגוריתם ApproxDkS I
5 7 8 6 2 1 3 4 5 7 8 6 2 1 3 4 5 n = 8 k = 4 2 2 4 7 1 1 3 DkS will not be found successfully for any vertex v
24
ניתוח תוצאות הביניים של GrowDkS
ננתח את שכיחות הקדקודים בפתרונות הביניים של GrowDkS עבור t = n ApproxDkS I result (k=4) 1 2 3 4 5 6 7 8 starting v X Commonality הקדקודים השכיחים ביותר הינם קדקודי ה- DkS
25
אלגוריתם ApproxDkS II האלגוריתם יפזר את המקומיות של ApproxDkS I
האלגוריתם ימצא את D2 קבוצת s הקדקודים השכיחים ביותר בפתרונות הביניים של GrowDkS. נגדל DkS מכל זוג קדקודים ב- D2
26
דוגמת הרצה של ApproxDkS II
5 n = 8 k = 4 s = 4 2 2 4 4 6 6 7 7 1 1 3 3 DkS has been found successfully 8
27
! הגדרת ApproxDkS II Algorithm ApproxDkS II (G=(V,E),k,s)
v V, vc[v] . For each v V perform the following steps: D D {GrowDkS(G,{v},k)}. v {GrowDkS(G,{v},k)}, vc[v] vc[v]+1 D2 .
28
! הגדרת ApproxDkS II For each v V and perform the following steps:
D2 D2 {v}. vc[v] . If |D2| < s , Goto 4. For each U’ D2 of cardinality 2, D D GrowDkS(G,U’,k). Among all sets in D, let be the one with the maximum number of edges. Output .
29
זמן הריצה של ApproxDkS II
בשלב 2 אנו מריצים את GrowDkS n פעמים בשלב 6 אנו מריצים את GrowDkS s2 פעמים ולכן זמן הריצה של ApproxDkS II הינו
30
אלגוריתמי קרוב לבעיית DkS
הצגת תוצאות
31
בסיס הנתונים שלושת האלגוריתמים הורצו על מאגר גראפים משותף המכיל 11,532 מופעים שונים של גראפים. LIBRARIES OF GRAPHS כל אלגוריתם הורץ עבור 4 ערכים שונים של k (סה"כ 46,128 הרצות): k=3n/4, k=n/2, k=n/4, k=n/10
32
מדד השוואה לא ניתן לכמת את R עבור מופע G מסוים (DkS לא ידוע).
נגדיר מדד קרוב אשר יאפשר השוואה בין שני אלגוריתמים ללא ידיעת m, מספר הקשתות ב- DkS:
33
היסטוגרמה מנורמלת נשווה בין האלגוריתמים על ידי שרטוט היסטוגרמות של יחס הקרוב בבסיס הנתונים, מספר המופעים עבור n-ים שונים אינו זהה. עבור כל n נחלק את היסטוגרמת המתקבלת ב- n.
34
השוואה בין ApproxDkS I ל- GADkS
ApproxDkS I better GADkS better Even results 2932 820 7780 7429 287 3816 7462 132 3938 5227 44 6261 Total 23050 1283 21795 ApproxDkS I משיג ביצועים טובים יותר בלמעלה ממחצית ההרצות (t = n). עבור47% מן ההרצות התוצאות זהות
35
השוואה בין ApproxDkS I ל- GADkS
היסטוגרמה מנורמלת מסכמת
36
השוואה בין ApproxDkS I ל- GADkS
הביצועים משתפרים k/n' > k/n
37
השוואה בין ApproxDkS I ל- GADkS
פילוג מדד ההשוואה כפונקציה של k/n GADkS מבצע פחות החלטות שרירותיות (U) מכסה את כל G קיימים מספר מופעי DkS ביצועים טובים ככל ש- k קטן קיימת ברך סביב k=n/2
38
השוואה בין ApproxDkS I ל- GADkS
פילוג מדד ההשוואה כפונקציה של n ביצועי האלגוריתם מתייצבים כאשר n גדל
39
השוואה בין ApproxDkS II ל- GADkS
ApproxDkS II better GADkS better Even results 3193 27 8312 8056 18 3458 7955 6 3571 5328 21 6183 Total 24532 72 21524 בהרצות אלו נמצא ה- DkS פונקציית הגידול כיסתה את כל G ברוב המקרים ApproxDkS II פלט תוצאות גרועות יותר רק ב- 72 הרצות(s = k) . עבור47% מן ההרצות התוצאות זהות
40
השוואה בין ApproxDkS II ל- GADkS
היסטוגרמה מנורמלת מסכמת
41
השוואה בין ApproxDkS II ל- GADkS
((U) זהה)
42
השוואה בין ApproxDkS II ל- GADkS
פילוג מדד ההשוואה כפונקציה של k/n ביצועים טובים ככל ש- k קטן קיימת ברך סביב k=n/2
43
השוואה בין ApproxDkS II ל- GADkS
פילוג מדד ההשוואה כפונקציה של n ביצועי האלגוריתם מתייצבים כאשר n גדל
44
השוואה בין ApproxDkS II ל- ApproxDkS I
ApproxDkS II better Even results 1330 10202 3009 8523 1829 9703 197 11335 Total 6365 39763 על פי הגדרת האלגוריתמים, ביצועי ApproxDkS II הינם ביצועי ApproxDkS I
45
השוואה בין ApproxDkS II ל- ApproxDkS I
פילוג מדד ההשוואה כפונקציה של k/n קיימת ברך סביב k=n/2 ביצועים טובים סביב k=n/2 כאשר kn, (U) מכסה את כל G במהרה. כאשר k1, ה- DkS הוא מקומי
46
השוואה בין ApproxDkS II ל- ApproxDkS I
פילוג מדד ההשוואה כפונקציה של n ביצועי האלגוריתם מתייצבים כאשר n גדל
47
אלגוריתם מעשי סיבוכיות האלגוריתמים עולה על סיבוכיות GADkS לפחות בפקטור n לכן הרצת שני האלגוריתמים ובחירת התוצאה המרבית תבטיח יחס קרוב זהה לזה של GADkS:
48
מסקנות האלגוריתמים משיגים ממוצע ביצועים טוב יותר מאשר GADkS.
ביצועי האלגוריתמים משתפרים ככל ש- k קטן ביחס ל- n משתי סיבות: ככל ש- k קטן מבצע GADkS יותר בחירות שרירותיות, ומכאן הסבירות שיחמיץ את ה- DkS גדלה. האלגוריתמים (ובפרט ApproxDkS I) מחפשים DkS מקומית. ApproxDkS II משיג תוצאות טובות יותר מאשר ApproxDkS I בעיקר סביב k=n/2
49
מסקנות ניתן לשפר את ביצועי ApproxDkS II כאשר k קטן ע"י הגדלת פרמטר s.
סיבוכיות האלגוריתמים עולה על סיבוכיות GADkS לפחות בפקטור n, ולכן במערכת מעשית, נוכל להריץ בנוסף את GADkS, ובכך התוצאה תהיה טובה לפחות כתוצאת GADkS.
50
עבודה להמשך Further Research
הכללת טכניקת שיפור ממוצע הביצועים ובחינתה על בעיות אופטימיזציה נוספות נתונה בעיית מקסימיזציה P, עם פרמטרים , ונתון אלגוריתם קרוב יעיל A בעל יחס קרוב R() מונוטוני ב- . פתרון הבעיה הינו S. נגדיר פונקציה היוריסטית (U) בעלת זמן ריצה פולינומיאלי עם קלט U V ופלט (U) V הרצת A על(U) תפלוט את S בקרוב טוב יותר נבחר מספר פולינומי של קבוצות U ונבחר תוצאה מיטבית.
51
עבודה להמשך Further Research
פונקציית גידול המוסיפה בכל שלב את r הקדקודים בעלי הדרגה הגבוהה ביותר ביחס ל- U
52
ביבליוגרפיה Reference [1] T. H. Cormen, C. E. Leiserson, R. L. Rivest, “Introduction to Algorithms”, MIT Press, 1990 Reference [2] S. Even, “Graph Algorithms”, Computer Science Press, Inc., 1979 Reference [3] R. Motwani, P. Raghavan, “Randomized Algorithms”, Cambridge University Press, 1995 Reference [4] U. Feige, M. Seltser, “On the k-Subgraph Problem”, Manuscript, The Weizmann Institute, Sep. 1997 Reference [5] S. Arora, D. Karger, M. Karpinski, “Polynomial Time Approximation Schemes of NP-Hard Problems”, Proceedings of the 27th Annual ACM Symposium on Theory of Computing, pp , 1995 Reference [6] Y. Asahiro, K. Iwama, “Finding Dense Subgraphs”, Proc. International Symosium on Algorithms and Computation ’95, Lecture Notes in Computer Science 1004, pp , 1995 Reference [7] G. Kortsarz, D. Peleg “On Choosing a Dense Subgraph”, Proceedings of the 34th IEEE Symposium on Foundations of Computer Science, pp , 1993 Reference [8] Y. Asahiro, K. Iwama, H. Tamaki, T. Tokuyama, “Greedily Finding a Dense Subgraph”, Proceedings SWAT 1996, Lecture Notes in Computer Science , pp , 1996 Reference [9] O. Goldreich, S. Goldwasser, D. Ron, “Property Testing and its Connection to Learning and Approximation”, Preliminary Paper, The Weizmann Institute, MIT, Feb. 1998
53
אלגוריתמי קרוב לבעיית DkS
The End
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.