Transcript הגדרה

‫סיבוכיות‬
‫תירגול ‪1‬‬
‫פונקציות סיבוכיות‬
‫הגדרה‪ :‬זמן הריצה של אלגוריתם הוא פונקציה‬
‫צעדים‬
‫מבצע לכל היותר‬
‫הגדרות‪ :‬יהיו‬
‫כ"ש לכל קלט באורך‬
‫האלגוריתם‬
‫אזי מתקיים ש‪:‬‬
‫‪1‬‬
‫פונקציות סיבוכיות‬
‫תרגיל‪ :‬הוכח‬
‫פתרון‪ :‬נראה ‪)1‬‬
‫‪)2‬‬
‫‪)1‬‬
‫ומתקיים הנדרש עבור‬
‫‪2‬‬
‫פונקציות סיבוכיות‬
‫‪)2‬‬
‫עבור‬
‫מתקיים‬
‫לכן עבור‬
‫‪:‬‬
‫ומתקיים הנדרש עבור‬
‫‪3‬‬
‫מכונות טיורינג‬
‫הגדרה‪ :‬מכונת טיורינג מורכבת מסרט ממנו ניתן לקרוא ולכתוב תוים‪ ,‬ראש קורא‪/‬כותב‪ ,‬ומערכת‬
‫חישובית שפועלת לפי הסרט‪.‬‬
‫היא שביעייה‪:‬‬
‫פורמלית‪ ,‬מכונת טיורינג‬
‫א"ב של השפה (קלט)‬
‫א"ב של‬
‫(‬
‫)‬
‫קבוצת המצבים הפנימיים‬
‫פונקציית מעבר‬
‫מצב התחלתי‬
‫מצב מקבל‬
‫מצב דוחה‬
‫‪4‬‬
‫מכונות טיורינג‬
‫תחילת ריצה‪ :‬סרט המכונה מכיל את הקלט ולאחריו תאים ריקים‪.‬‬
‫הראש הקורא‪/‬כותב נמצא בתחילת הסרט‪.‬‬
‫המצב הפנימי הוא המצב ההתחלתי ‪.‬‬
‫מעבר‪:‬‬
‫סיום ריצה‪:‬‬
‫פונקציית המעבר מקבלת כקלט את התו שנמצא מתחת לראש ואת המצב‬
‫הפנימי הנוכחי‪ .‬הפונקציה מוציאה כפלט את התו שייכתב מתחת לראש‪ ,‬את‬
‫המצב הפנימי החדש‪ ,‬ואת הכיוון אליו יזוז הראש‪.‬‬
‫אם המכונה מגיעה למצב מקבל‬
‫אם המכונה מגיעה למצב דוחה‬
‫‪ ,‬היא עוצרת ומקבלת‪.‬‬
‫‪ ,‬היא עוצרת ודוחה‪.‬‬
‫‪5‬‬
‫מכונות טיורינג‬
‫הגדרות‪:‬‬
‫מ"ט‬
‫אם לכל‬
‫מכריעה (‪ )decides‬שפה‬
‫מקבלת את‬
‫דוחה את‬
‫מ"ט‬
‫‪.‬‬
‫‪.‬‬
‫מזהה (‪ )recognizes‬שפה‬
‫מקבלת את‬
‫דוחה את‬
‫‪:‬‬
‫אם לכל‬
‫‪:‬‬
‫‪.‬‬
‫או לא עוצרת‪.‬‬
‫‪6‬‬
‫מכונות טיורינג‬
‫תרגיל‪ :‬תהי‬
‫שפת הפלינדרומים‪ .‬צריך ליבנות מ"ט‬
‫שמכריעה את‬
‫‪.‬‬
‫פתרון‪ :‬נראה פתרון של אלגוריתם ותרשים מעבר מצבים‪.‬‬
‫אלגוריתם‪ :‬קרא וזכור את התו שבתא הראשון בסרט‪ ,‬ואז מחק אותו‪.‬‬
‫עבור על הסרט עד הגעה לתא האחרון בסרט שאינו ריק‪.‬‬
‫אם התו שונה מהתו שזכרת‪ ,‬דחה‪.‬‬
‫אחרת‪ ,‬מחק התא הנוכחי‪ ,‬חזור לתא הראשון בסרט שאינו ריק‪ ,‬וחזור על התהליך‪.‬‬
‫אם במהלך הריצה מחפשים תא לא ריק ואין כזה (הסרט ריק או מכיל תו בודד)‪ ,‬קבל‪.‬‬
‫סיבוכיות זמן ריצה‪:‬‬
‫סיבוכיות מקום‪:‬‬
‫‪7‬‬
‫מכונות טיורינג‬
‫(פלינדרום זוגי)‬
‫תרשים מעבר מצבים‪:‬‬
‫‪qacc‬‬
‫‪q0‬‬
‫‪q1‬‬
‫‪q4‬‬
‫(פלינדרום אי‪-‬זוגי)‬
‫(פלינדרום אי‪-‬זוגי)‬
‫‪qcc‬‬
‫‪qacc‬‬
‫‪q2‬‬
‫‪q5‬‬
‫‪qrej‬‬
‫‪qrej‬‬
‫‪q3‬‬
‫‪8‬‬
‫מחלקות סיבוכיות‬
‫‪P‬‬
‫מחלקת השפות שניתנות להכרעה ע"י מכונת טיורינג בזמן פולינומיאלי‪.‬‬
‫‪:‬‬
‫דוגמאות לשפות ב‬
‫• כל שפה סופית‬
‫• שפת הפלינדרומים‬
‫• גרפים וזוג קודקודים‬
‫כ"ש קיים מסלול בין ל ‪.‬‬
‫• גרפים שקיימת בהם קליקה בגודל‬
‫‪ -‬עבור‬
‫קבוע‪.‬‬
‫‪9‬‬
‫מחלקות סיבוכיות‬
‫חישוב א‪-‬דטרמיניסטי‬
‫למכונת טיורינג דטרמיניסטית יש פונקציית מעבר המוגדרת‪:‬‬
‫למכונת טיורינג א‪-‬דטרמיניסטיות יש פונקציית מעבר המוגדרת‪:‬‬
‫‪10‬‬
‫מחלקות סיבוכיות‬
‫מ"ט דטרמיניסטית‪:‬‬
‫‪q2‬‬
‫…‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫…‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪q4‬‬
‫‪11‬‬
‫מחלקות סיבוכיות‬
‫מ"ט א‪-‬דטרמיניסטית‪:‬‬
‫‪q2‬‬
‫‪1‬‬
‫…‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪q3‬‬
‫…‬
‫‪1‬‬
‫‪0‬‬
‫‪1‬‬
‫… ‪1 0 0 1 0 1 0 1‬‬
‫‪0‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫… ‪1 0 0 1 0 1 0 1‬‬
‫‪q4‬‬
‫…‬
‫‪1‬‬
‫‪1‬‬
‫‪1‬‬
‫‪0‬‬
‫… ‪1 0 0 1 0 1 0 1‬‬
‫‪1‬‬
‫‪0‬‬
‫‪0‬‬
‫‪1‬‬
‫… ‪1 0 0 1 0 1 0 1‬‬
‫‪12‬‬
‫מחלקות סיבוכיות‬
‫‪NP‬‬
‫(הגדרה ע"י חישוב א‪-‬דטרמיניסטי)‬
‫מחלקת השפות שניתנות להכרעה ע"י מכונת טיורינג א‪-‬דטרמיניסטית בזמן פולינומיאלי‪.‬‬
‫חישוב א‪-‬דטרמיניסטי הוא לא חישוב אקראי‪ .‬ניתן לחשוב על כך כאילו המכונה "מנחשת" את‬
‫הצעד הנכון מבין הצעדים האפשריים‪.‬‬
‫הגדרה‪:‬‬
‫מ"ט א"ד‬
‫מכריעה שפה‬
‫אם לכל‬
‫קיים מסלול חישוב שבסופו‬
‫היא עוצרת ו‪:‬‬
‫מקבלת את ‪.‬‬
‫‪13‬‬
‫מחלקות סיבוכיות‬
‫‪NP‬‬
‫(הגדרה ע"י עד מוודא)‬
‫מחלקת השפות שניתן לוודא ע"י מכונת טיורינג דטרמיניסטית בזמן פולינומיאלי‪.‬‬
‫מ"ט‬
‫מוודאת שפה‬
‫אם לכל‬
‫קיים עד‬
‫היא עוצרת ו‪:‬‬
‫(תלוי ב‬
‫) כ" ש‬
‫מקבלת‪.‬‬
‫‪14‬‬
‫מחלקות סיבוכיות‬
‫‪:‬‬
‫דוגמאות לשפות ב‬
‫• כל שפה שנמצאת ב ‪.‬‬
‫• גרפים שקיים בהם מעגל המילטוני‪.‬‬
‫• גרפים שקיימת בהם קליקה בגודל‬
‫‪ -‬ללא הגבלה על גודל ‪.‬‬
‫‪15‬‬
‫מחלקות סיבוכיות‬
‫משפט‪ :‬שתי ההגדרות שראינו ל‬
‫שקולות‬
‫פתרון‪ :‬נראה ‪)1‬‬
‫‪)2‬‬
‫‪)1‬‬
‫ולכל בשפה קיים‬
‫נניח שקיימת‬
‫בוחרת באופן א"ד מחרוזת‬
‫עם הקלט‬
‫מריצה את‬
‫נכונות‪:‬‬
‫מקבלת‬
‫‪:‬‬
‫לפי ההגדרה‪ ,‬ונראה את‬
‫‪.‬‬
‫‪ ,‬ומקבלת אמ"ם ריצה זו קיבלה‪.‬‬
‫קיים בריצת‬
‫כ" ש‬
‫קיים‬
‫מסלול מקבל‬
‫מקבלת‬
‫‪16‬‬
‫מחלקות סיבוכיות‬
‫‪)2‬‬
‫שמכריעה את ונראה את‬
‫נניח שקיימת‬
‫על במסלול שמוכתב ע"י‬
‫מריצה את‬
‫נכונות‪:‬‬
‫כ" ש‬
‫קיים‬
‫מקבלת‬
‫‪:‬‬
‫‪ ,‬ומקבלת אמ"ם ריצה זו קיבלה‪.‬‬
‫קיים בריצת‬
‫מסלול מקבל‬
‫‪17‬‬