1 / 20

Design and Analysis of Algorithms Recitation 8 Reductions

Design and Analysis of Algorithms Recitation 8 Reductions. 2010 Gal Tamir Based on recitations of Liane Lewin-Eytan and Alex Shraer. Clique בעיית . קליק בגרף לא מכוון G=(V, E) הוא תת-קבוצה WV שכל שני צמתים בה שכנים, כלומר W משרה תת גרף של G שהוא מלא.

axl
Download Presentation

Design and Analysis of Algorithms Recitation 8 Reductions

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. Design and Analysis of AlgorithmsRecitation 8Reductions 2010 Gal Tamir Based on recitations of LianeLewin-Eytan and Alex Shraer Design and Analysis of Algorithms, Technion EE

  2. Clique בעיית • קליק בגרף לא מכוון G=(V, E) הוא תת-קבוצה WV שכל שני צמתים בה שכנים, כלומר W משרה תת גרף של G שהוא מלא. • בעיית אופטימיזציה – מציאת קליק בגודל מקסימאלי • בעיית החלטה –בהינתן גרף G ומספר שלם חיובי k, האם קיים קליק ב-G בעל גודל לפחות k ? Clique = {<G, k> | k יש קליק בעל גודל לפחות G ב-} Design and Analysis of Algorithms, Technion EE

  3. Vertex-Cover (VC) בעיית • כיסוי בצמתים של גרף לא מכוון G=(V, E) הוא תת-קבוצה WV כך שלכל קשת (u,v)E מתקיים uW או vW • בעיית אופטימיזציה – מציאת כיסוי בעל גודל מינימאלי • בעיית החלטה – בהינתן גרף G ומספר שלם חיובי k, האם קיים כיסוי בעל גודל לכל היותר k ? VC = {<G, k> | k יש כיסוי בצמתים בעל גודל לכל היותר G ל-} Design and Analysis of Algorithms, Technion EE

  4. תרגום בעיית הקליק לבעיית VC • הגדרה: בהינתן גרף G=(V, E), הגרף המשלים מכיל את הקשתות שאינן ב-E. כלומר: • הרדוקציה: בהינתן קלט לבעיית ה-Clique, הפלט של הרדוקציה יהיה הקלט לבעיית ה-VC. • צריך להוכיח (תקפות): ב-G יש קליק בגודל k אמ"מ ל- יש כיסוי בצמתים בגודל  Design and Analysis of Algorithms, Technion EE

  5.  הוכחת תקפות: כוון • נניח שב- G יש קליק WV כך ש-|W|k . נראה ש: V\W הוא VC ב- • נתבונן בקשת כלשהי. • מכיוון ש- , לפחות אחד מבין u או v אינו שייך ל-W • למה? • לכן, לפחות אחד מביניהם נמצא ב- V\W. • הקשת (u,v) מכוסה ע"י V\W. • באותו אופן, כל קשת ב- מכוסה ע"י V\W ולכן V\W הוא כיסוי של גודלו הוא: |V\W|  |V|-k Design and Analysis of Algorithms, Technion EE

  6.  הוכחת תקפות: כוון • נניח של- יש כיסוי בצמתים WV כך ש-|W||V|-k . נראה ש: V\W הוא קליק ב- G. • יהיו u,v V\W שני צמתים כלשהם. כלומר u,vV אבל u,vW. • אין קשת (u,v) ב- • למה? • לכן, • כלומר, בין כל שני צמתים שאינם בכיסוי ב- קיימת קשת ב-G. • V\W הוא קליק ב- G. גודלו הוא: |V\W|  k Design and Analysis of Algorithms, Technion EE

  7. Independent Set בעיית • קבוצה בלתי תלויה (Independent Set) בגרף לא מכוון G=(V, E) הוא תת-קבוצה WV שלכל u, v W אין קשת בין u ל- vבגרף. • בעיית אופטימיזציה (maximum independent set) – מציאת קבוצה בלתי תלויה בגודל מקסימאלי • בעיית החלטה –בהינתן גרף G ומספר שלם חיובי k, האם קיימת קבוצה בלתי תלויה בגודל לפחות k ? Independent Set = {<G, k> | k יש קבוצה בלתי תלויה בגודל לפחות G ב-} Design and Analysis of Algorithms, Technion EE

  8. תרגום בעיית הקליק לבעיית הקבוצה הבת"ל • רעיונות ? • הרדוקציה: בהינתן קלט לבעיית ה-Clique, הפלט של הרדוקציה יהיה • צריך להוכיח (תקפות): ב-G יש קליק בגודל k אמ"מ ב- יש קבוצה בלתי תלויה בגודל k • בנוסף, יש להוכיח שהרדוקציה מלאה, וניתנת לחישוב בזמן פולינומי Design and Analysis of Algorithms, Technion EE

  9. הוכחת תקפות: ב- G יש קליק WV כך ש-|W|k • לכל שני צמתים W u, v, מתקיים (u, v)E • לכל שני צמתים W u, v, מתקיים ב- יש קבוצה בלתי תלויה WV כך ש-|W|k Design and Analysis of Algorithms, Technion EE

  10. Subset-Sum בעיית • נתון: קבוצת מספרים שלמים S ומספר שלם t. הבעיה: האם קיימת תת קבוצה S’S שסכום איבריה הוא t? נגדיר את השפה המתאימה: Subset-Sum = {<S, t> | כך ש: S’S קיימת תת קבוצה } • נראה כי ניתן לתרגם את VC לבעיית Subset-Sum • נתחיל עם קלט <G, k> לבעיית ה-VC • נבנה סדרת מספרים שלמים S ומספר שלם t • נוכיח שב-G יש כיסוי בגודל k אמ"מ קיימת תת-קבוצה של S שסכום איבריה t. • בהמשך נגדיר את המספרים הבאים: • מספר xi לכל צומת vi • מספר yj לכל קשת ej • מספר t • רעיון הרדוקציה: אם קיימת תת קבוצה של xi-ים ו-yj-ים שסכומה t, אז ה-xi-ים שנבחרו מתאימים לצמתים בכיסוי, וה-yj-ים שנבחרו מתאימים לקשתות שבדיוק אחד מקצותיהן בכיסוי. בנוסף, גודל הכיסוי הוא בדיוק k. Design and Analysis of Algorithms, Technion EE

  11. v 1 הוא צומת קצה של אחרת G ייצוג הגרף • נייצג את הגרף G בעזרת מטריצה B בגודל x|E||V| באופן הבא: דוגמא: Design and Analysis of Algorithms, Technion EE

  12. S יצירת סדרת מספרים • המספרים xi, yj ו-t ייוצגו בבסיס 4 "משופר" • ספרת ה-MSD(הספרה המשמעותית) תהיה לכל היותר k, והספרות האחרות יהיו בבסיס 4 רגיל • את המספרים נרשום בשורות נפרדות של טבלה • המספרים מיוצרים באופן הבא: • עבור כל צומת viניצר מספרxi כך שספרת ה-MSD שלו היא 1 ואחריה באות |E| הספרות המתאימות לשורה viבמטריצה B המייצגת את G. כלומר, עבור i=0, 1, …, |V|-1, המספר xi הוא: • עבור כל קשת eiניצר מספרyj כך שספרת ה-MSD שלו 0 ו-|E| הביטים התחתונים שלו הם שורה במטריצת הזהות מגודל |E|x|E|. כלומר, עבור j=0, 1, …, |E|-1, המספר yj הוא: • לבסוף, ניצור את t. ספרת ה-MSD של t הוא k, וכל |E| הספרות התחתונות שלו הם 2. כלומר: Design and Analysis of Algorithms, Technion EE

  13. בבסיס 10 בבסיס 4 "משופר" MSD v 1 דוגמא – יצירת המספרים k 1284+1040+1093+1+16+64+256 = 3754 Design and Analysis of Algorithms, Technion EE

  14. תקפות משפט: ל- G יש כיסוי בצמתים WV בגודלk אמ"מ לקבוצה S שמורכבת ממספרי x ו-y כפי שהוגדר יש תת קבוצה שסכומה בבסיס 4 ה"משופר" |E| Design and Analysis of Algorithms, Technion EE

  15.  הוכחת תקפות: כוון  • נניח של- G יש כיסוי בצמתים WV בגודל k : • נגדיר את :S’ • ניקח כל ןx כך ש-vi בכיסוי W: • וכל yj כך ש : • נראה ש: • MSD: חיבור k הביטים המתאימים ל- נותן את הספרה k שהיא הספרה המובילה של t (בבסיס 4 "משופר") • כל ספרה j<|E| ב-t שווה ל-2, ומתאימה לקשת מסוימת ej. נראה שהסכום במקום ה- j של איברי S’ הוא 2. • W הוא כיסוי בצמתים, לכן לכל ej קיים לפחות מספר אחד , עם "1" במקום ה-j. • אם קיימים שני מספרים כאלה אז סכומם נותן 2 ו- • אחרת - ול-yjיש "1" במקום ה-j. במקרה זה הסכום של ו-yj נותן 2 {yj | W יש בדיוק צומת קצה אחד ב-ej ל- } Design and Analysis of Algorithms, Technion EE

  16.  הוכחת תקפות: כוון • נניח שמצאנו תת קבוצה של המספריםS’S שסכום איבריה t. כלומר: • נראה ש-C הוא כיסוי בצמתים בעל גודל k • לכל j<|E| , לכל היותר 3 מספרים עם "1" במקום ה-j (הקשת ej ושני צמתי הקצה שלה), לכן אף פעם אין carry לספרה הבאה • ערך הספרה ה-j ב-t היא 2 • כיוון שהסכום הוא 2, ומתוך המספרים y, רק המספר yjתורם לסכום (ואין carry מהספרה הקודמת), בהכרח יש מספר אחד מתוך ה-x-ים שתורם גם הוא לסכום. מכיוון שבעמודה j יש "1" רק עבור x-ים המתאימים לשני קצוות הקשת ej, קיבלנו שאחד מצמתי הקצה תורם לסכום, כלומר נמצא ב-C. מכיוון שזה נכון לכל j המתאים לקשת , C הוא כיסוי. • ערך ה-MSD ב-t הוא 4, וה-MSD של ה-y-ים הוא 0. לכן בדיוק kx-ים תורמים לסכום. כלומר |C|=k Design and Analysis of Algorithms, Technion EE

  17. Integer-Programming (IP)בעיית • קלט: מטריצת שלמים AZmxn(m שורות, n עמודות) וקטור שלמים b Zm • בעיית החלטה – האם קיים וקטור x Znכך ש: Axb ? IP = {(A,b)| Axb כך ש: x Zn קיים } • בעיית 01-IP (או Binary Programming): 01-IP = {(A,b)| Axb כך ש: x {0,1}n קיים } • במילים אחרות: נתונה מערכת אי שוויונות עם מקדמים שלמים: האם קיים פתרון בו לכל i, xiשלם (או במקרה של 01-IP, {0,1}xi) ? • 01-IP הוא מקרה פרטי של IP שבו {0,1}xi Design and Analysis of Algorithms, Technion EE

  18. תרגום VC לבעיית IP • הרדוקציה: f(<G>,k) = (A,b) כלומר, בהינתן גרף לא מכוון G=(V, E) ומספר טבעי k, נראה כיצד לבנות בזמן פולינומי ב-|G| מטריצת שלמים A בגודל mxn ווקטור שלמים בגודל m, כך שקיים וקטור בינארי x בגודל n המקיים Axb אמ"מ קיים כיסוי בצמתים ב-G שגודלו לכל היותר k • לכל צומת uV יהיה משתנה xu • לכל e=(u,v)E ניצור אי שוויון xu+ xv  1 • בנוסף, נוסיף אי-שוויון שנרשום בצורה הבאה: -x1- x2-…-xn  -k • כלומר, n=|V| ו-m=|E|+1 • הרדוקציה פולינומית: הזמן לבנות את מערכת המשוואות המגדירה את A ו-b הוא O(mn) כלומר O(|E||V|) Design and Analysis of Algorithms, Technion EE

  19. הוכחת תקפות  כוון 1 • (<G>, k)VC קיימת קבוצת צמתים |W| k המהווה כיסוי • נבנה ממנה פתרון למערכת המשוואות: • קל לוודא שהאי-שוויונות מתקיימים (A, b)01-IP כוון 2 • (A, b)01-IP קיים וקטור x{0,1} שהוא הפתרון. נבנה קבוצת צמתים W: • האי-שוויון אומר שיש לכל היותר k צמתים ב-W • אי שוויון xu+ xv  1 לכל (u,v)E אומר שה-W שבחרנו היא כיסוי חוקי (<G>, k)VC Design and Analysis of Algorithms, Technion EE

  20. Integer Programming • הרדוקציה VC p IP מאד דומה – כל מה שצריך לשנות הוא להוסיף אי שוויונות xu0 ו- 1-xu - לכל uV • 01-IP הוא מקרה פרטי של IP בו יש אילוצים נוספים על ערכי המשתנים ולכן ברור ש: 01-IP p IP Design and Analysis of Algorithms, Technion EE

More Related