3# תרגיל בית / סיבוכיות
Transcription
3# תרגיל בית / סיבוכיות
1 סיבוכיות /תרגיל בית #3 אריאל סטולרמן )(1 )(a , להלן אלגוריתם המקבל כקלט את הזוג , ) גרף לא מכוון( ומחזיר את תת הקבוצה דוחה אם לא קיים כזה ,המשתמש באלגוריתם הכרעת השפה Cliqueשנסמנו .Aנסמן .1 , תחילה בדוק האם .2 לכל .3 עבור המהווה קליק בגודל kבגרף ,Gאו . ,…, .אם לא ,דחה מיד . 1בצע : • הגדר • אם כן ,זרוק את . • אחרת החזר את ל V-והמשך לאיטרציה הבאה . , , | \ , \ , ,ובדוק האם . . מהאיטרציה האחרונה ,החזר את נכונות: תחילה ,ברור כי אם אין ב G-קליק בגודל ,kעלינו לדחות מיד .אם כן קיים קליק ,אנו בודקים לכל קודקוד האם ניתן להסתדר בלעדיו .כלומר ,האם ללא קודקוד זה עדיין יש לנו קליק בגודל kבגרף .יתכנו מספר קליקים בגרף ,אך כל הקודקודים בהם נתקל לראשונה השייכים לקליקים ,האלג' יעיף אותם ,עד שיהיה מצב בו נותר קליק אחד בגודל kבגרף לתשובה Fמ- , עבור iכלשהו .מנקודה זו ואילך ,ברור שהוצאת כל קודקוד מקליק זה תביא – וקודקוד זה ישאר לאיטרציה הבאה ,וכל קודקוד שאינו בקליק יביא לתשובה - Tויועף .לבסוף נותר ,לאחר מעבר על כל הקודקודים ,והוא בעל קבוצת קודקודים בגודל kבדיוק שהיא קליק כנדרש. כיוון שלאורך הלולאה מצמצמים את Gולא מוסיפים לו קשתות או קודקודים חדשים ,אז ברור שהקליק ב- הוא גם קליק ב.G- זמן ריצה: תחת הנחה שזמן ביצוע אלג' ההכרעה הוא יחידת זמן אחת :השלב הראשון לוקח 1 | | מבצע מספר הסרה כך שסה"כ ההסרות בכל nהאיטרציות הוא | | ; השלב השני רץ על כל אחד מ n-הקודקודים ולכל אחד ; השלב השלישי גם כן 1 .לפיכך זמן הריצה -פולי' באורך הקלט כנדרש. )(b , להלן אלגוריתם המקבל כקלט את זוג הגרפים :או דוחה אם לא קיים כזה ,המשתמש ומחזיר את האיזומורפיזם באלגוריתם הכרעת השפה GraphIsomorphismשנסמנו :A .1 .2 , תחילה בדוק האם אם כן ,יהיו .אם לא ,דחה מיד . ,…, • הסר מ- • לכל ,…, ו- את ומ- את כל הקשתות בהם משתתף . בדוק : • הסר מ- ומ- את • בדוק האם • אם כן: • אם לא ,החזר את .3 .לכל :1 , , את כל הקשתות בהם משתתף . . ,ועבור לאיטרציה הבאה של .i לקדמותו ועבור לאיטרציה הבאה של .j החזר את .f 2 נכונות: ל- תחילה ,ברור כי אם אין איזו' בין • עבור 1 ,עלינו לדחות מיד .אם קיים איזו' ,נטען כי המיפוי המתבצע בכל שלב הוא נכון. עבור jכלשהו ,המתאים לקודקוד :ידוע כי קיים איזו' כנדרש ,אזי קיים מיפוי המתאים איזשהו קודקוד לו איזומורפית ,ולכן הסרת הקודקודים משני הגרפים והקשתות היוצאות מהן בהתאמה אמורות להשאיר את הגרפים הנותרים איזומורפים אחד לשני . • נניח נכונות עד ,kונראה נכונות עד 1 :באופן דומה ,ידוע שהגרפים שהתקבלו עד כה המכילים עבור jכלשהו ,כך שהסרת ולכן קיים מיפוי , קודקודים הם איזומורפים, והקשתות היוצאות מהן משני הגרפים בהתאמה תשאיר את שני הגרפים איזומורפיים .כמו כן ,בכל מיפוי מסירים את הקודקוד שמופה ומסמנים אותו ,כך שלא יתכן מיפוי נוסף אליו באיטרציות הבאות . התהליך עובר על כל הקודקודים ולכן יגיע לשני הגרפים הריקים ,ויתקבל האיזו' .f זמן ריצה: לפי הנחה השלב הראשון של בדיקת קיום איזו' לוקח 1 .השלב השני לוקח שכן רץ לכל קודקוד ב- ,והפעולות שמבצע בכל איטרציה מהירות .השלב השלישי מיידי .לפיכך זמן הריצה של האלג' הוא על )בערך( כל קודקוד ב- ולכן פולי' כנדרש. )(2 תהי 1 |1 ,ותהי .להלן הוכחה ש- 2 : ,אזי קיים פולינום כלשהו pואלג' Aהרץ בזמן תחילה נניח כי המכריע לכל | |( האם ) או לא .נבנה אלג' Bהמכריע את :בהינתן מספר בינארי כלשהו באורך ,kנבנה ממנו את ייצוגו האונרי ע"י חישוב הייצוג העשרוני שהוא לכל היותר 1 השפה ,2ויצירת .(1נפעיל את אלג' Aעל המספר האונרי שחישבנו ונחזיר את התשובה של .A המספר האונרי ע"י שרשור '1ים כמספר שקיבלנו )לכל היותר נכונות האלג' ברורה ,שכן פועל לפי הגדרת השפה – משחזר מתוך מספר בינארי את ייצוגו האונרי ובודק שייכות ל .L-זמן הריצה :לכל קלט בינארי באורך ,kייצור ייצוגו האונרי ייקח לכל היותר 1 פולינום ,יתקבל סדר גודל של · 2 2 כעת נניח כי 2צעדים .הפעלת אלג' Aעל מספר זה תקח 1 2צעדים בזמן הריצה )אם pהוא פולינום מסדר 1 ולכן קיים cכך ש- 2 2 2 Aהמכריע את Lבזמן פולינומיאלי :בהינתן קלט אונרי 1 בזמן 2 לכל )מספר בינארי כך ש- log .נבדוק באמצעות ,נעביר אותו לייצוג בינארי ונקבל מספר בינארי באורך ,ונחזיר את תוצאת .B באורך ,kייצור הייצוג הבינארי ייקח כמובן שווה ל- 2 | |( .נבנה אלג' נכונות האלג' ברורה ,שכן פועל לפי הגדרת השפה – מעביר מספר אונרי לייצוגו הבינארי ובודק שייכות ל- · 2 | ( .לפיכך Bרץ בזמן ,כנדרש. ,אזי קיים אלג' Bהמכריע את Bהאם מספר זה שייך ל- כלשהו ,אז 2 זמן לכל היותר ,וכיוון ש p-הוא log צעדים ,ויתקבל מספר בינארי באורך .זמן הריצה :לכל קלט אונרי .הפעלת אלג' Bעל מספר זה תקח · 2 כאשר 2הוא קבוע כלשהו .סה"כ קיבלנו כי זמן הריצה הוא ולכן · 2 וזה ,כנדרש. )(3 ל לכל היותר השמה אחת מספקת| תחילה נניח כי .להלן הוכחה ש- .מתקיים כי כיוון ש- ,ו -ל לפחות שתי השמות מספקות| ,ובעיה זו דומה לבעיה :SATעבור קלט ,אז מספיק להוכיח ש- : . ניקח כעד שתי השמות מספקות ל , -והאלג' . המוודא יבדוק שאכן שתי השמות אלה מספקות את .ברור כי העד בגודל פולי' לגודל הקלט ,וכי האלג' רץ בזמן פולי' גם כן ,ולכן לפיכך מתקיים כי כעת נניח כי ,כנדרש. .נראה רדוקציה :בהינתן חדש שלא מופיע ב . -ברור כי מספר ההשמות המספקות את להציב ב -את אותה השמה פעם אחת עם הצבות מספקות ,ולכן גם ל , -ולפיכך .נניח כי ולכן .לפיכך מכל שפה ב coNP-לשפה ב ,NP-ולכן ,נחזיר את הנוסחה כפול מאלו המספקות את ופעם שניה עם ,ולכן .מכאן מתקיים גם ,כאשר yהוא משתנה כיוון שלכל השמה מספקת ,…, ,אזי ל -אין .כמו כן ברור כי בנית הרדוקציה פולי' .נניח כי ,אזי ל -לפחות הצבה מספקת אחת ,ולכן ל- של ניתן לפחות 2הצבות מספקות .כיוון שמצאנו רדוקציה משפה ב coNPC-לשפה ב ,NP-אז יש רדוקציה ולכן ,כנדרש. 3 )(4 : להלן הוכחה לכל ש- ,אזי קיימת מכונת niceלא דטרמיניסטית הרצה בזמן פולי' שנסמנה Aהמקבלת את .Lלכל תהי מתקיים :קיים לפחות מסלול חישוב אחד במכונה Aהמחזיר acceptבריצה על .כמו כן ,כל מסלול שאינו מחזיר quitבהכרח יחזיר ,acceptאחרת ישנה סתירה בפלט של Aו- מתקיים באופן דומה שקיים לפחות מסלול חישוב אחד במכונה Aהמחזיר ,rejectוכל מסלול Aלא מקבלת את Lבסתירה להנחה .לכל שאינו מחזיר quitבהכרח יחזיר rejectמאותם שיקולים .כיוון ש A-פולי' ,אז לכל קלט ( נובע ש- כלשהו .מהחלק הראשון )לכל לפיכך מתקיים ש- תהי ,ומהחלק השני )לכל . ( נובע ש- ,כנדרש. אז קיימת מכונה Aלא דטר' הרצה בזמן פולי' המקיימת :לכל 0,1 .כיוון ש- ל A-לקבל כך ש- | | A ,רצה בזמן עבור pפולינום .כיוון ש- ולכן קיימת מכונה Bלא דטר' ופולי' המקיימת :לכל אז הגורמת ל B-לקבל קיימת בחירה אי-דטר' הגורמת 0,1 קיימת בחירה אי דטר' .נשים לב כי בכל אחת מהמכונות יתכנו מספר מסלולים מקבלים עבור קלט ,וכי אם המכונה לא אמורה לקבל את הקלט ,כל מסלול בה ידחה. 0,1 נבנה את המכונה ) Cלא דטר'( הפועלת באופן הבא על קלט :מריצה עליו את Aו B-במקביל )באופן לא דטר'( ,כאשר Aמוגדרת להחזיר acceptאם מקבל ו quit-אחרת ,ו B-מוגדרת להחזיר rejectאם מקבלת ו quit-אחרת .נסמן את זמני הריצה )של כל מסלול חישוב לקלט בגודל (n ושל Bב- של Aב- ,כאשר p,qפולינומים כלשהם .מתקיים :אם ,כל מסלולי החישוב של Bיוציאו ,quitויהיה לפחות מסלול חישוב אחד של Aשיוציא ) acceptשאר המסלולים יוציאו acceptאם מקבלים או quitאם לא( .באופן דומה אם יוציאו ,quitויהיה לפחות מסלול חישוב אחד של Bשיוציא .rejectזמן הריצה של כל מסלול חישוב ב C-הוא פולי' .לפיכך Cהיא מכונה מסוג niceהמקבלת את Lולכן ,כל מסלולי החישוב של A max , ,וזה הרי כנדרש. )(5 להלן הוכחה לכך ש- לא ספיקה| ספיקה ו תחילה נוכיח כי , , , :נגדיר ניקח כעד השמה מספקת ל- היא -DP) DPCשלמה(: | והאלג' המוודא יבדוק ש- .ברור כי שפה זו היא :NPCבהינתן , אכן מסתפקת מהשמה זו )וש- ואורך העד פולי' ,ולכן השפה ב .NP-כמו כן ישנה רדוקציה מיידית | , , ברור כי .לפיכך הוכחנו ,ובאופן דומה ניתן להוכיח ש- ,ולכן , ,כלומר קיימות כך ש- ,כי , .נראה שקיימת רדוקציה יהיו , ,וברור כי רדוקציות אלו בהתאמה, אזי לכל :כיוון ש- אזי אזי ,כי ניתן להחזיר את ,מהגדרת SATUNSATכחיתוך SATCNFעם .CNFUNSAT כמו כן זמן הריצה של הרדוקציה הוא חיבור זמני הריצה של fו g-שהן פולי' כמוכח לעיל .לכן לכל ,כנדרש. . . כפי שהוכח לעיל .כמו כן כיוון ש- . ולכן , -ברור . באופן דומה נגדיר תהי , נחזיר את הקלט אמ"מ קיימת ל -הצבה מספקת ו -היא נוסחת CNFאמ"מ שרדוקציה זו פולי' ושמתקיים: כי :לכל קלט היא נוסחת .(CNFברור כי הבדיקה קיימת רדוקציה פולי' ל,SATUNSAT-