Presentation is loading. Please wait.

Presentation is loading. Please wait.

תרגול 11 NP complete.

Similar presentations


Presentation on theme: "תרגול 11 NP complete."— Presentation transcript:

1 תרגול 11 NP complete

2 הקדמה ע"מ לבצע רדוקציה על הבעיה L נבצע את השלבים הבאים א. המרה לבעיית הכרעה: במקרה והבעיה אינה מוגדרת כבעית הכרעה נמיר אותה לבעיית ההכרעה הרצויה ב. : נראה שבהינתן פתרון ניתן לבדוק את נכונתו בזמן פולינומיאלי ג. הפונקציה f: נמצא בעיית NP שלמה I ידועה (שנלמדה בכיתה) ונראה כיצד ניתן לפתור אותה באמצעות הבעייה הנתונה. במילים אחרות נראה כיצד להמיר את הקלט השייך לבעייה I לקלט של הבעייה הנתונה L ,בזמן פולימיאלי, כך שהפלט עבור אלג' הפותר את L (אחרי ההמרה f) יהיה זהה לפלט הרצוי בבעייה I. ד. הוכחה: נראה שהתנאי הנ"ל מתקיים. f L Iinput Linput

3 בעיות NP שלמות SAT(F) – בהינתן פונ' בוליאנית F עם n משתנים יש למצא האם קיימת השמה כך שהפלט עבורה יהיה 1( אפשריות) 3-CNF-SAT- בהינתן פונ' בוליאנית בעלת המבנה , יש למצא האם קיימת השמה כך שהפלט עבורה יהיה 1 Direct/Undirect –Ham.-Cycle(G)- מסלול העובר בכל הקודקודים בG, ובכל קודקוד פעם אחת המתחיל ומסתים באותו קודקוד Subset sum(V,B)- - האם קיימת תת קבוצה , כך ש Clique(G,k)- בהינתן גרף G יש למצא תת גרף מלא בגודל k -Vertex cover(G,k) האם קיים ב G כיסוי קודקודים בגודל k 2-partition- בהינתן קבוצת איברים יש לקבוע האם קיימים המקיימים:

4 תרגיל 1 נתונים שני גרפים: H,G האם H הוא תת גרף של G? פתרון: א. : בהינתן סט הקודקודים בG התואמים לקודקודים בגרף H, נוכל לעבור על כל צלע מקודקודים אלה ולחפש התאמה בגרף H. ב. הפונקציה f: נראה כי ניתן לפתור באמצעות בעיה זו את בעית ה clique: נגדיר את H להיות גרף מלא עם k קודקודים אם קיים תת גרף מלא קיימת clique לכן הבעיה שייכת ל NP שלמות f L G,k G,H Clique(G,k)

5 תרגיל 2 נתון גרף G ושני מספרים שלמים b,k. האם ישנה קבוצה בעלת k צמתים עם b או יותר קשתות בניהם. הוכח כי הבעייה הינה NP שלמה. פתרון א :בהינתן פתרון קל לראות האם הוא עומד בתנאים ב. נבצע רדוקציה מבעיית הclique באופן הבא הפונקציה f: נקבע הוכחת נכונות - לחשוב לבד f L G,k G,k ,b Clique(G,k)

6 תרגיל 3 נתון גרף מכוון G עם משקלים אי שלילים על הצלעות. יש לקבוע האם קיים מסלול בין שני קודקודים נתונים a,b אשר לא חוזר על אותו קודקוד פעמיים בעל סכום משקלים של K פתרון א. :נעבור על המסלול ונבדוק שמשקל הצלעות שווה לk ושלא ביקרנו באותו קודק' פעמיים ב. הפונקציה f: נמשקל את כל הצלעות של G במשקל 1. נקבע a=s,b=t ו- k=V-1. עבור גרף אם קיים מסלול המילטוני בין s ל tיהיה קיים מסלול שמשקלו k מa- ל-b, ואם לא קיים מסלול המילטוני לא יהיה קיים מסלול חוקי שמשקלו k f L G,s,t G,k a,b HAM(G,s,t)

7 תרגיל 4 עבור מספר שלם , , בעיית ה k-partition מוגדרת כדלהלן:
בהנתן קבוצה של מספרים חיוביים ושלמים האם ניתן לפרק את ל תת קבוצות כך ש: הראה שבעייה זו היא NP שלמה

8 תרגיל 4 פתרון א. :בהינתן חלוקה ניתן לוודא בזמן ליניארי שהיא עונה על התנאים ב. נבצע רדוקציה לבעיית ה 2-partition הפונקציה f: נוסיף איברים ל שערך כל אחד מהם שווה ל- : אם קיים פירוק ל k-partition על אז k-2 מתוכם יהיו ערכי שהוספנו ושני הקבוצות הנוספת יהוו 2-partitionעל אם לא קיים פירוק על אז בהכרח גם לא קיים פירוק ל 2-partition על f L I’ 2-parition

9 תרגיל 5 יהי גרף מכוון ולכל קשת משקל וגודל . בהינתן קלט , מסלול
יהי גרף מכוון ולכל קשת משקל וגודל בהינתן קלט , מסלול "קצר כללי" מ ל היינו מסלול מכוון מ ל כך ש: סכום הגדלים של הקשתות סכום המשקלים של הקשתות במסלול הוא המינימאלי בין כל המסלולים המקיימים את (1) הראה כי בעייה זו עבור גרף וקלט הינה NP שלמה פתרון נגדיר את בעיית ההכרעה המתאימה: האם המסלול "הקצר הכללי" מקיים א : בהינתן המסלול... ב. נבצע רדוקציה מבעיית ה 2-partition הפונקציה f: בהינתן סדרת המספרים נקבע ונבנה גרף G באופן הבא: f L G,S’ v1, v2 2-parition ...

10 תרגיל 5המשך הוכחת נכונות: אם קיים 2-partition על אזי קיים מסלול רצוי מ ל שגודלו כאשר הצלעות שנבחרו הינם אחת מתתי הקבוצה ב 2-partition והצלעות התחתנות שנבחרו מהווים את הקבוצה השנייה. אם לא קיים 2-partition אזי המסלול הכי קצר שהיבחר יהיה קטן ממש מ


Download ppt "תרגול 11 NP complete."

Similar presentations


Ads by Google