בעיית הכיסוי ב

‫בעיית הכיסוי בצמתים )‪(Vertex Cover‬‬
‫!‬
‫!‬
‫!‬
‫‪2‬‬
‫הגדרה‪:‬‬
‫תת קבוצה ‪ U⊆V‬של צמתים בגרף לא מכוון )‪G(V,E‬‬
‫נקראת כיסוי בצמתים אם לכל קשת ‪(u,v)∈E‬‬
‫מתקיים ‪ u∈U‬או ‪) v∈U‬או שניהם(‬
‫גודל הכיסוי‪ :‬מספר הצמתים בכיסוי )|‪(|U‬‬
‫דוגמה‪ :‬כיסוי בצמתים בגודל ‪3‬‬
‫!‬
‫!‬
‫!‬
‫!‬
‫‪4‬‬
‫!‬
‫!‬
‫‪-NP‬שלמות‬
‫רדוקציות פולינומיות‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫הוכחת ‪-NP‬שלמות של ‪VC‬‬
‫!‬
‫חישוביות – הרצאה ‪13‬‬
‫תחילה נוכיח כי ‪VC∈NP‬‬
‫נבנה מ''ט אי דטרמיניסטית פולינומית ‪ M‬עבור ‪VC‬‬
‫המכונה ‪ M‬על קלט )‪ (G,k‬תנחש ‪ k‬צמתים מתוך צמתי ‪ G‬ותבדוק‬
‫האם כל קשת ב‪ G-‬מכוסה ע''י ‪ k‬צמתים שניחשה‪ ,‬אם כן – המכונה‬
‫תקבל‪ ,‬אחרת – תדחה‬
‫המכונה פולינומית‪ :‬ניחוש צמתים )|‪ ,O(|V‬בדיקת קשתות )|‪O(|E‬‬
‫המכונה מקבלת את ‪ VC‬כי אם קיים כיסוי בגודל ‪ k‬אז קיים‬
‫במכונה מסלול חישוב מקבל‪ ,‬אחרת‪ ,‬אף מסלול ב‪ M-‬אינו מקבל‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫בעיית הכיסוי בצמתים )המשך(‬
‫!‬
‫בעיית הכיסוי בצמתים‪:‬‬
‫!‬
‫בהינתן גרף ‪ G‬ומספר טבעי ‪ k‬האם קיים ב‪ G-‬כיסוי‬
‫בצמתים בגודל ‪? k‬‬
‫! השפה ‪:VC‬‬
‫} קיים ב‪ G-‬כיסוי בצמתים בגודל ‪VC = { (G,k) : k‬‬
‫!‬
‫‪3‬‬
‫טענה‪ :‬השפה ‪ VC‬הינה ‪-NP‬שלמה‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫הוכחת ‪-NP‬שלמות של ‪) VC‬המשך(‬
‫תיאור הרדוקציה‬
‫! בהינתן פסוק ‪ φ‬בצורה ‪ 3-CNF‬נבנה גרף ‪ G‬באופן הבא‪:‬‬
‫!‬
‫!‬
‫!‬
‫‪6‬‬
‫לכל משתנה ‪ xi‬של ‪ φ‬נוסיף שני צמתים ‪ xi‬ו‪ xi -‬המחוברים‬
‫ע''י קשת‬
‫עבור כל פסוקית ‪ Cj=lj1∨lj2∨lj3‬ב‪ ,φ-‬נוסיף ‪ 3‬צמתים ]‪,[j,1‬‬
‫]‪ [j,2‬ו‪ [j,3] -‬אשר כולם מחוברים ביניהם בקשת‪ ,‬וכמו כן‪ ,‬כל‬
‫צמת כזה יחובר בקשת לצומת הליטרל המתאים‬
‫!‬
‫!‬
‫!‬
‫!‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫!‬
‫!‬
‫!‬
‫טענה‪ φ :‬ספיק אם ורק אם ב‪ G-‬יש כיסוי בגודל ‪k‬‬
‫‪8‬‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫‪ f‬ניתנת לחישוב בזמן פולינומי‬
‫‪ φ‬ספיק אם ורק אם ב‪ G-‬יש כיסוי בצמתים בגודל ‪k‬‬
‫‪5‬‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫דוגמה לבניית הרדוקציה‬
‫) ‪φ = ( x1 ∨ x1 ∨ x2 ) ∧ ( x3 ∨ x1 ∨ x2 ) ∧ ( x2 ∨ x3 ∨ x3‬‬
‫הבניה ניתנת לביצוע בזמן פולינומי כי מספר צמתים‬
‫שיש לבנות הוא )|‪ O(|φ‬ומספר קשתות שיש לבנות‬
‫הוא )‪O(|φ|2‬‬
‫נוכיח את תקפות הרדוקציה‬
‫כעת נוכיח כי ‪ VC‬היא שפה ‪-NP‬קשה‬
‫נראה זאת ע''י רדוקציה פולינומית ‪3-SAT≤pVC‬‬
‫צורת הרדוקציה‪:‬‬
‫פסוק ‪3-CNF‬‬
‫)‪f(φ) = (G,k‬‬
‫התכונות הנדרשות מהרדוקציה שנבנה‪:‬‬
‫!‬
‫נקבע ‪ n) k=n+2m‬מספר משתנים ו‪ m-‬מספר פסוקיות(‬
‫הוכחת נכונות הרדוקציה‬
‫!‬
‫הוכחת ‪-NP‬שלמות של ‪) VC‬המשך(‬
‫‪x3‬‬
‫‪x3‬‬
‫‪3,1‬‬
‫‪3,2‬‬
‫‪3,3‬‬
‫‪7‬‬
‫‪x2‬‬
‫‪x2‬‬
‫‪2,1‬‬
‫‪2,2‬‬
‫‪2,3‬‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫‪x1‬‬
‫‪x1‬‬
‫‪1,1‬‬
‫‪1,2‬‬
‫‪1,3‬‬
‫‪k=3+2⋅3 = 9‬‬
‫הוכחת נכונות הרדוקציה )המשך(‬
‫!‬
‫הוכחת נכונות הרדוקציה )המשך(‬
‫למה ‪ U‬הוא כיסוי בצמתים ב‪? G-‬‬
‫!‬
‫!‬
‫!‬
‫!‬
‫קשתות בין ‪ xi‬ל‪ xi -‬מכוסות ע''י צמת ליטרל שקיבל ‪T‬‬
‫מכל משולש לקחנו ‪ 2‬צמתים לכן כל הקשתות בתוך‬
‫המשולשים מכוסות‬
‫הקשת בין ]‪ [j,k‬לליטרל המתאים ‪ li‬מכוסה ע''י ]‪ [j,k‬אם‬
‫הליטרל הוא ‪ F‬או ע''י ‪ li‬אם הליטרל הוא ‪T‬‬
‫כיוון ‪:1‬‬
‫!‬
‫!‬
‫!‬
‫ב‪ φ-‬יש ‪ n‬משתנים לכן בהצבה מספקת עבור ‪ φ‬בדיוק ‪k‬‬
‫ליטרלים מקבלים ערך ‪ xi) T‬או ‪ xi‬עבור כל משתנה ‪(xi‬‬
‫נבנה כיסוי ‪ U‬ב‪ G-‬באופן הבא‪:‬‬
‫!‬
‫!‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫‪10‬‬
‫!‬
‫!‬
‫!‬
‫!‬
‫!‬
‫‪12‬‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫הוכחת נכונות הרדוקציה )המשך(‬
‫מסקנה‪ :‬בכיסוי ‪ U‬בדיוק ‪ n‬צמתי ליטרלים‪ ,‬אחד עבור כל‬
‫זוג ‪ xi ,xi‬ובדיוק ‪ 2m‬צמתי משולשים‪ 2 ,‬מכל משולש‬
‫נבנה הצבה מספקת עבור ‪ φ‬כך שאם ‪ xi∈U‬נקבע ערך‬
‫של ‪ xi‬ל‪ ,T-‬אחרת‪ ,‬נקבע ערך של ‪ xi‬ל‪F-‬‬
‫למה זה נותן הצבה מספקת ?‬
‫לכל פסוקית ‪ Cj‬יש צמת אחד שאינו בכיסוי‪ ,‬נאמר ]‪[j,k‬‬
‫לכן הקשת בין ]‪ [j,k‬לליטרל המתאים ‪ ljk‬מכוסה ע''י צמת‬
‫לכן הליטרל ‪ ljk‬קיבל ערך ‪ T‬והוא מספק את הפסוקית ‪Cj‬‬
‫נוסיף ל‪ n U-‬צמתי הליטרלים שקיבלו ערך ‪T‬‬
‫מכל שלישיה ]‪ [j,3] ,[j,2] ,[j,1‬ניקח ל‪ U-‬שני צמתים‬
‫המתאימים לליטרלים שאינם מסופקים‬
‫‪9‬‬
‫הוכחת נכונות הרדוקציה )המשך(‬
‫!‬
‫נתון‪ φ :‬ספיק‬
‫צ''ל‪ :‬ב‪ G-‬יש כיסוי בגודל ‪k‬‬
‫!‬
‫כיוון ‪:2‬‬
‫!‬
‫!‬
‫!‬
‫!‬
‫‪ljk‬‬
‫‪11‬‬
‫נתון‪ :‬ב‪ G-‬יש כיסוי בצמתים בגודל ‪k‬‬
‫צ''ל‪ φ :‬ספיק‬
‫יהי ‪ U‬כיסוי ב‪ G-‬בגודל ‪k=n+2m‬‬
‫‪ U‬חייב להכיל לפחות ‪ n‬צמתי ליטרלים כי אחרת לא‬
‫ניתן לכסות את הקשתות בין ‪ xi‬ל‪xi -‬‬
‫‪ U‬חייב להכיל ‪ 2‬צמתים מכל משולש‪ ,‬סה''כ ‪2m‬‬
‫צמתי משולשים כי אחרת לא ניתן לכסות קשתות‬
‫בתוך המשולשים‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫הקשר בין ‪ VC‬ל‪IS-‬‬
‫טענה‪ V\U :‬הוא כיסוי בצמתים ב‪ G(V,E)-‬אם ורק‬
‫אם ‪ U‬הינה קבוצה בלתי תלויה‬
‫הוכחה‪:‬‬
‫! כיוון ‪ :1‬אם ‪ V\U‬כיסוי אז ‪ U‬קבוצה בלתי תלויה‬
‫! אם ‪ V\U‬כיסוי אז אין אף קשת ב‪ G-‬ששני קצותיה‬
‫אינם ב‪V\U-‬‬
‫! במילים אחרות‪ ,‬לכל ‪(u,v)∉E ,u,v∈U‬‬
‫! מסקנה‪ U :‬קבוצה בלתי תלויה‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫‪14‬‬
‫‪-NP‬שלמות של ‪IS‬‬
‫!‬
‫!‬
‫טענה‪ :‬השפה ‪ IS‬הינה ‪-NP‬שלמה‬
‫הוכחה‪:‬‬
‫!‬
‫!‬
‫!‬
‫!‬
‫‪16‬‬
‫‪ – IS∈NP‬ניתן לראות ע''י מ''ט פולינומית לא‬
‫דטרמיניסטית אשר מנחשת ‪ k‬צמתים ובודקת אם אין קשת‬
‫בין אף זוג מתוך הצמתים שניחשה‬
‫‪-NP IS‬קשה ע''י רדוקציה פולינומית ‪VC≤pIS‬‬
‫תיאור הרדוקציה‪ :‬בהינתן )‪ (G,k‬נבנה )’‪ (G,k‬כאשר‬
‫‪k’=|V|−k‬‬
‫נכונות הרדוקציה נובעת מהטענה הקודמת‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫בעיית הקבוצה הבלתי תלויה )‪(IS‬‬
‫!‬
‫!‬
‫הגדרה‪ :‬תת קבוצה של צמתים ‪ U⊆V‬בגרף לא מכוון‬
‫)‪ G(V,E‬נקראת קבוצה בלתי תלויה אם לכל‬
‫‪ u,v∈U‬מתקיים ‪(u,v)∉E‬‬
‫בעיית הקבוצה הבלתי תלויה )‪:(Independent Set‬‬
‫!‬
‫!‬
‫בהינתן גרף ‪ G‬ומספר טבעי ‪ k‬האם קיימת ב‪ G-‬קבוצה‬
‫בלתי תלויה בגודל ‪? k‬‬
‫שפת ‪:IS‬‬
‫}קיימת ב‪ G-‬קבוצה בלתי תלויה בגודל ‪IS = {(G,k) :k‬‬
‫‪13‬‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬
‫הקשר בין ‪ VC‬ל‪) IS-‬המשך(‬
‫!‬
‫!‬
‫!‬
‫!‬
‫‪15‬‬
‫כיוון ‪ :2‬אם ‪ U‬קבוצה בלתי תלויה אז ‪ V\U‬כיסוי‬
‫אם ‪ U‬קבוצה בלתי תלויה אז אין אף קשת ששני‬
‫קצותיה ב‪U-‬‬
‫לכן לכל קשת יש קצה שלא ב‪ U-‬כלומר ב‪V\U-‬‬
‫מסקנה‪ V\U :‬כיסוי‬
‫חישוביות ‪ -‬ד''ר אנה מוס‬