מודלים חישוביים, חישוביות וסיבוכיות 67521 חיים שחור סיכומי שיעורים של ד"ר גיא קינדלר 21 ביוני 2012 תוכן עניינים 2.................................................. אוטומטים ושפות רגולריות 1 3........................................................ הגדרות 1.1 3 שפה.................................................... 1.1.1 3 אוטומטון סופי דטרמיניסטי Deterministic Finite Automaton או. DFA............. 1.1.2 4.............................................. תכונות הסגירות של REG 1.2 4.............................................. פעולת השרשור 1.2.1 5 אוטומטים לא דטרמיניסטיים. NFA......................................... 1.3 6 שקילות. Myhill, Nerode.............................................. 1.4 7................................................... ביטויים רגולריים 1.5 7...................................................... מכונת טיורינג TM 2 8 מבוא הרחבה לאוטומט. DFA........................................... 2.1 8.................................................... הגדרת המכונה 2.2 9............................................... יכולת של מכונת טיורינג 2.3 10.............................................. מ"ט כקלט קדוד של מ"ט 2.4 10................................................... מ"ט אוניברסלית 2.5 11 רדוקציה........................................................ 2.6 14............................................ משפחות מוגבלות משאבים (סיבוכיות) 3 15.................................................. בעיות ומחלקותיהן 3.1 15.......................................... מכונות טיורינג לא דטרמיניסטיות 3.2 18.................................................... היררכיית הזמן 3.3 19................................................... מודלים שונים של מכונות 4 19 מכונת עצה. Advice................................................. 4.1 21......................................... (הגברה) amplication 4.1.1 22 קורסים נוספים. Coming Soon.......................................... 4.2 22................................ אוטומטים מעל קלטים אינסופיים אורנה 4.2.1 22................................. נושאים באופטימיזציה דיסקרטית יובל 4.2.2 23..................................... מבוא \ נושאים בתיאוריה גיא 4.2.3 23................................. נושאים בתורת הקודים אלכס לובוצקי 4.2.4 23............................... השיטה ההסתברותית אלכס סמורודניצקי 4.2.5 23....................... שיטות הצפנה (סמסטר ב') מיכאל בן אור או מיכאל רבין 4.2.6 23 חישוב קוואנטי דורית (לא בטוח שיתקיים)............................... 4.2.7 23........................................................ המבחן 4.3 רשימת אלגוריתמים Identity21 Test........................................................ 1 מבוא מינהלה (משעור 2) מקורות (הספרים הם לא מספיק חשוב להיות בהרצאות, וזה עשוי להספיק): כמעט כל החומר - recommended) Sipser: Imtro to the Theory of Computing (3rd edition in en., heb edition is not סיכומים משנים קודמות (כ"כ טובים שהמרצה משתמש בהם לפעמים מאשר הסיכומים שלו) (כולל וידיאו של ההרצאות). סיכומים מהשנה הנוכחית. 1
תרגילים: (מקוים שהשביתה תסתיים עד שבוע הבא, אם זה יקרה, נשתדל לטפל בזה) 20% מהציון, מגן, כל תרגיל בנפרד. הציפיה היא שתבצעו את התרגילים לבד כדי להצליח. שני התרגילים הגרועים לא ייחשבו. התרגילים יוגשו באותה שיטה כמו באלגוריתמים. התרגילים לא עוזרים למי שלא עובר את המבחן. החומר למבחן כל ההגדרות והמשפטים מההרצאות והתרגולים (אלא אם כן נאמר אחרת). פניות, בקשות וטענות ברוב הדברים המתרגלים הם הכתובת הראשונה. אם אתם לא מרוצים, אפשר לפנות למרצה בשעת קבלה או בהפסקה בין השיעורים. טענות כלליות יותר, עדיף להפנות דרך נציגי האגודה. (עדכון כ"ה אדר) השביתה הסתיימה, התרגולים כרגיל, הראיון הראשון יהיה על תרגיל 2 1. יש קבוצה שעברה שני תרגולים, וכל השאר לא עברו שני תרגול. נשקול תרגולי השלמה. י"א אדר תשע"ב (שעור 1) היום לא נעסוק באדמיניסטרציה, אלא ניתן מבט כללי על הקורס. אנו הרבה אנשים, וצריך להתחשב בשאלות. מצד שני, בלי אינטראקטביות זה לא יעבוד. הקורס הוא בשדרה התיאורטית של לימודי תואר ראשון: מבוא למדעי המחשב מבני נתונים אלגוריתמים חישוביות. זהו קורס במתמטיקה יותר מאשר מדעי המחשב. במבוא, מבני נתונים ואלגוריתמים ראינו כל מיני אלגוריתמים וחישובים, כאן ננסה להגדיר בצורה פורמלית מהו חישוב. בעיות חישוביות לדוגמא: 1. נתון גרף G, האם יש בו מסלול אוילר (מסלול שעובר על כל הקשתות בלי חזרה)..t = a a i B i,b A כסכום של תת קבוצה t האם ניתן להציג את,t ומספר נוסף,A = {a i } n i=1 2. בהינתן קבוצת מספרים מספרים {( )} n.x xi האם יש סדרה סופית i=1 (a i ) K כך i {a, b} ki, y i {a, b} li כאשר 3. בהנתן n זוגות של מילים מעל הא"ב {b,a}, y i i=1 שהשרשור x a1, x a2,..., x ak שווה לשרשור.y a1, y a2,..., y ak למשל עבור x 1 = aba, x 2 = b ו ab,y 1 = ab, y 2 = אזי ניתן להחזיר = 2 2 a 1 = 1, a ולקבל.abab = abab נשים לב שבבעיות אלו השאלות שלנו מחפשות תשובה של כן\לא (בעיות הכרעה). הסבה היא שיותר קל להגדיר את השאלה ככה. לפעמים אנו רוצים שהמחשב יתן לנו פונקציה למשל מה האורך המינימלי של סדרה המתאימה לשאלה 3. בתחילת הקורס נתמקד בבעיות הכרעה. עבור שאלה 1, משפט אוילר קובע כי מסלול אוילר קיים אם"ם יש לכל היותר 2 קודקודים מדרגה אי זוגית. לבעיה זו יש חישוב שפותר אותה באופן פשוט ויעיל, ליניארי בגודל הקלט. } a { i S. למרות שלבעיה i S {1,...,n} את בעיה 2 אפשר לחשב בעזרת אלגוריתם דינאמי (nt) O, או ע"י בדיקת כל האפשרויות ) 2n) O: יש אלגוריתם פשוט, זמן הריצה שלו הוא אקספוננציאלי, ולא ידוע על אלגוריתם פולינומי שפותר את הבעיה. בבעיה 3, בדרך הנאיבית אולי ננסה את כל הפרמוטציות של תתי הקבוצות, אבל מאחר וניתן להשתמש בזוג יותר מפעם אחת, יש אינסוף אפשרויות. מסתבר שאין חישוב שיפתור את הבעיה החישובית הזו (נוכיח במהלך הקורס). אם ככה, יש לנו בעיות חישוביות קלות, קשות, ובלתי פתירות. בעיה בלתי כריעה רלוונטית: בהינתן תוכנית מחשב M בשפת c, האם היא נכנסת ללולאה אינסופית (בלי קלט, אפשר לדבר גם על קלט ספציפי, או האם קיים קלט בעייתי). אין שום קומפיילר שנוכל לתת לו את התוכנית והוא יוכל לומר זאת בוודאות. באופן דומה, אין אלגוריתם לבדיקת אלגוריתמים (האם תוכנית מחשב פותרת את הבעיה שהיא אמורה לפתור), ואין אלגוריתם לבדיקה האם משפט מתמטי ניתן להוכחה לפי אקסיומות מסויימות. בקורס יהיו 3 חלקים: 1. אוטומטים סופיים. 2. חישוביות: מה ניתן לפתור בעזרת מחשב? 3. סיבוכיות: מה ניתן לפתור בצורה יעילה בעזרת מחשב? ההשערה המפורסמת: האם N, P P ואם כן, לשאלה 2 אין אלגוריתם פולינומי. החלק הראשון של אוטומטים סופיים הוא שימושי ופשוט יותר, ויעזור לנו להגדרות כדי לענות על השאלה של החלק השני. 1 אוטומטים ושפות רגולריות נניח שיש לנו א"ב {b Σ. =,a} אזי נסמן ב Σ את אוסף המילים שמעל הא"ב Σ. למשל Σ.abba אוטומט יכול לפתור את הבעיות מסוג: האם מילה Σ m מכילה רצף באורך של לפחות 3 אותיות זהות רצופות. למשל abba לא מקיימת, אבל baaa מקיימת. במקום להגדיר אוטומט, נבנה אוטומט כזה, ציור. 1.1 להוכיח שהאוטומט עושה את מה שאנחנו רוצים זה לא פשוט בכלל. נפרסם תרגיל למציאת אוטומט גם אם לא יהיה תרגול. תענית אסתר תשע"ב (שעור 2) האוטומט שראינו הוא מודל חישובי פשוט עוברים על המילה אות אות, ולכל אות מתקדמים על אחת הקשתות. המילה מתקבלת אם אנו עומדים בסוף על מצב מתקבל. התיאור של האוטומט הוא סופי מתאים למה שאנו חושבים על חישוב. זה גם מתאים לתהליך מקומי אנחנו עובדים על חלק מקומי ועושים כל פעם צעד קטן. הוא לא מתאר מה שמחשב כללי יכול לעשות, אבל הוא מודל מעניין ושימושי. נרצה להגדיר היום את המודל הזה מההתחלה עד הסוף: תיאור, ריצה, ומה הוא עושה. 2
1.1 הגדרות 1.1.1 שפה הגדרה 1.1 א"ב Σ קבוצה לא ריקה סופית. לאיברי Σ קוראים אותיות או תווים. הגדרה 1.2 מילה (לא יהיו לנו משפטים כמו בשפה רגילה) שרשור של אותיות מתוך Σ. איבר של Σ n עבור n N כלשהו או ε שיציין את. Σ = היא לא מילה. נשים לב כי ℵ 0 ababab... את אוסף המילים החוקיות. הסדרה Σ = {ε} המילה הריקה.נסמן 1=n Σn הגדרה 1.3 תת קבוצה Σ L נקראת שפה מעל Σ. דוגמא: אוסף המילים מעל {b Σ =,a} המכילה רצף של שלוש אותיות זהות הוא שפה. דוגמאות נוספות: Σ L = φ וכן Σ L = (שפות טרוויאליות). {aba} L = {ε},l = (זו לא השפה הריקה). שפת המילים שבהם מספר המופעים של... a מתחלק בשלוש עם שארית 1. ראשוני {b Σ,a} שפת כל המשפטים המתמטיים הניתנים להוכחה מסט אקסיומות מסויים. נרצה לשאול אלו סוגים של שפות ניתנות לזיהוי בעזרת אוטומטים. 1.1.2 אוטומטון סופי דטרמיניסטי Deterministic Finite Automaton או DFA הגדרה DF A 1.4 הוא חמישייה סדורה ) F (Q, Σ, δ, q 0, כאשר: Q קבוצה סופית של מצבים. Q q 0 הוא האיבר ההתחלתי. Q F קבוצת המצבים מקבלים. Σ א"ב..(δ (q, α) המצב הבא הוא,α וקוראים את האות q פונקציית המעברים (אם אנו במצב δ : Q Σ Q הגדרה 1.5 הרחבה של,δ תסומן ב δ : יהא ) F,DFA A = (Q, Σ, δ, q 0, נגדיר פונקציה δ : Q Σ Q באינדוקציה עבור מילים באורך :n 0,n עבור מילים באורך :0 q.δ (q, ε) = נניח שהגדרנו את δ עבור מילים באורך n אזי עבור מילה w באורך + 1 n ומצב,q נכתוב,w = za ו ( a.δ (q, w) = δ (q, za) = δ (δ (q, z), הגדרה 1.6 נגיד שמילה Σ w מתקבלת ע"י,A אם.δ (q 0, w) F הגדרה 1.7 השפה המתקבלת ע"י L (A),A מוגדרת ע"י } F.L (A) := {w Σ δ (q 0, w) } 2 δ : Q Σ Q,F = {q 1 },Σ = {a, b},q = {q 0, q 1, q ע"י: דוגמא: L מעל b} Σ = {a, הוא אוסף המילים שבהם 3) #a = 1 (mod מתואר בציור.1.2 ייצוג פורמלי של האוטומט יהיה ) F :(Q, Σ, δ, q 0 a b. כדאי לחשוב איך מוכיחים שהאוטומט מתאים לשפה. q 0 q 1 q 0 q 1 q 2 q 1 q 2 q 0 q 2 י"ח אדר תשע"ב (שעור 3) תזכורת: א"ב Σ, שפה Σ, אוטומט,DF A מצבים (מקבלים), פונקצית המעבר δ, פונקצית המעבר המורחבת δ השפה של אוטומט (A) L הגדרה :REG 1.8 אוסף כל השפות L שיש אוטומט A DF A המקבל אותה. L}.REG = {L Σ A, A is DF A, L (A) = נתבונן באוטומט שתיארנו בשיעור שעבר. טענה 3)} 1.9 L (A) = {w Σ # a (w) = 1 (mod הערה 1.10 הוכחות כאלו הן מסרבלות, בד"כ לא נעשה אותם, אבל נתן עכשיו דוגמא כדי שנוכל לראות איך מוכיחים פורמלית. 3
הוכחה: נוכיח באינדוקציה על אורך המילה w = n את הטענה הבאה: 3).δ (q 0, w) = q #a(w)(mod עבור = 0 :n δ (q 0, ε) = q 0 לפי הגדרת.δ ואכן = 0 (ε) # a לכן הבסיס טוב. נניח נכונות עבור,n אזי תהא ωτ מילה באורך + 1 n.( ω = n) ע"פ הנחת האינדוקציה 3),δ (q 0, ω) = q #a(ω)(mod ולכן.δ (q 0, ωτ) = δ (δ (q 0, ω), τ) = δ ( q #a(ω)(mod 3), τ ) אם # a (ωτ) = # a (ω) + 1 :τ = a ואכן 3).δ (q 0, ωτ) = δ ( q #a(ω)(mod 3), a ) = q #a(ω)+1(mod 3) = q #a(ωτ)(mod אם,# a (ωτ) = # a (ω) :τ = b ואכן 3).δ (q 0, ωτ) = δ ( q #a(ω)(mod 3), b ) = q #a(ω)(mod 3) = q #a(ωτ)(mod הרעיון דומה לאוטומטים אחרים. צריך להבין לא רק למה הוא מקבל את המילים בשפה, אלא להבין לגבי כל מילה, לאיזה מצב האוטומט מגיע, ואז ניתן להוכיח באופן אינדוקטיבי. תמיד ברמת האות הנוספת צריך להוכיח ע"י שימוש בטבלת המעברים עצמה. לא לכל שפה יש אוטומט. קבוצת האוטומטים היא בת מניה, וקבוצת השפות היא לא בת מניה. השפות שיש אוטומט שמקבל אותם נקראות רגולריות. 1.2 תכונות הסגירות של REG יהיו L 1, L 2 REG מעל א"ב.Σ האם L 1 L 2.1 בהכרח רגולרי? (כן) L 1 L 2.2 בהכרח רגולרי? (כן) Σ L\ 1 3. בהכרח רגולרית (תרגיל בית)? (כן) 1.2.1 פעולת השרשור יהיו Σ,w = w 1 w 2... w n, x = x 1... x m,w, x נסמן,wx = w 1... w n x 1... x m כאשר.xε = x, εx = x, εε = ε יהיו Σ L 1 L 2 נגדיר שרשור ע"י } 2.L 1 L 2 = {wx w L 1, x L גם כאן ניתן לשאול, אם,L 1, L 2 REG האם?L 1 L 2 REG (כן) העיקרון של ההוכחה הוא לבנות אוטומט חדש מתוך האוטומטים הקיימים של L. 1, L 2 כ' אדר תשע"ב (שעור 4) טענה 1.11 יהיו L, M שפות רגולריות מעל א"ב,Σ אזי.L M REG הוכחה: תרגום השאלה הוא לאלגוריתם שבהינתן שני אוטומטים המזהים את השפות,L, M נותן אוטומט המזהה את השפה L. M יהיו G) A = (Q, Σ, δ, q 0, F ), B = (P, Σ, λ, p 0, אוטומטים DF A המזהים את השפות L, M בהתאמה. נבנה מהם אוטומט C כך ש M.L (C) = L מצבי.Q P :C א"ב:.Σ מצב התחלתי: ) 0.(q 0, p מצבים מקבלים:.F G פונקצית המעברים: ϕ : (Q P ) Σ Q P ע"י.ϕ ((q, p), α) = (δ (q, α), λ (p, α)) עלינו להוכיח עכשיו כי.L (C) = L M טענה 1.12 לכל מילה Σ,w מתקיים w)).ϕ ((q 0, p 0 ), w) = (δ (q 0, w), λ (p 0, מכאן ההוכחה היא באינדוקציה על w. בסיס האינדוקציה = 0, w אזי,w = ε ואכן מתקיים ε)) ϕ ((q 0, p 0 ), ε) = (q 0, p 0 ) = (δ (q 0, ε), λ (p 0, לפי הגדרת ε).δ (q, צעד האינדוקציה: נניח נכונות עבור, w = n אזי עבור + 1 n w = נסמן w = uα כאשר. u = n אזי ϕ ((q 0, p 0 ), uα) = ϕ (ϕ ((q 0, p 0 ), u), α) = ϕ ((δ (q 0, u), λ (p 0, u)), α) = = (δ (δ (q 0, u), α), λ (λ (p 0, u), α)) = (δ (q 0, uα), λ (q 0, uα)) = = (δ (q 0, w), λ (p 0, w)) מכאן נותר להראות כי (C) :w L M w L w L M w L (A) w L (B) δ (q 0, w) F λ (p 0, w) G ϕ ((q 0, p 0 ), w) = (δ (q 0, w), λ (p 0, w)) F G w L (C) ומכאן,,L (C) = L M כלומר L M רגולרית. טענה 1.13 יהיו,L, M REG אזי.L M REG 4
הוכחה: נבנה אותו אוטומט C כמו בהוכחה הקודמת, רק עם מצבים מקבלים F. P Q G נשאיר כתרגיל להראות בעזרת הטענה מההוכחה הקודמת כי :L (C) = L M w L M w L (A) w L (B) δ (q 0, w) F λ (p 0, w) G (δ (q 0, w), λ (p 0, w)) F P (δ (q 0, w), λ (p 0, w)) Q G (δ (q 0, w), λ (p 0, w)) F P Q G ϕ ((q 0, p 0 ), w) F P Q G w L (C) ומכאן,,L (C) = L M כלומר L M רגולרית. טענה 1.14 תהא,L REG אזי Σ \L REG (תרגיל). 1.3 אוטומטים לא דטרמיניסטיים NFA יהיו,L, M REG האם?L M = {uw u L, w M} REG לדוגמא, עבור {a}.l = {a n n = 2 (mod 7)}, M = {a n n = 1 (mod 31)},Σ = יהי A אוטומט מעגלי כך שL,L (A) = וB אוטומט דומה כך ש M L. (B) = איך נרכיב אוטומט שיזהה את השרשור? לא ניתן לקשר בין q 1 של A ל q 0 של B, כי אז נזהה רק,{aa} M אבל לא את a 41 = a 9 a 32 למשל. הפתרון יהיה אוטומט לא דטרמיניסטי מאפשר מ q 1 לעבור או ל q 2 או ל q 0 של אוטומט B. נראה שאם,L M REG קיים אוטומט לא דטרמיניסטי (שנגדיר בהמשך) שמתאים לשפה L. M הגדרה NF A 1.15 הוא חמישיה ) F.A = (Q, Σ, δ, Q 0, כאשר Q קבוצה סופית, Σ א"ב, Q 0 Q אוסף מצבי ההתחלה. F Q אוסף המצבים המקבלים. את פונקציית המעברים δ נגדיר (Q) δ : Q Σ P (לגיטימי גם.(φ הגדרה 1.16 בהינתן,N F A פונקצית המעברים המורחבת (Q) δ : P (Q) Σ P תוגדר ברקורסיה ע"י,δ (S, ε) = S ו.δ (S, uα) = q δ (S,u) δ (q, α) כ"ה אדר תשע"ב (שעור 5) נגדיר L שפה מעל {b Σ =,a} ע"י אוסף המילים שאורכן מתחלק ב 5 עם שארית 1 בציור 1.3. אנו רוצים להוסיף ששלוש האותיות האחרונות שוות. נמחק מהאוטומט המעגלי את המצב המקבל, ונוסיף שני מסלולים שיוצאים מ q 3 כדי לאפשר את הסיום בשלוש אותיות זהות. ציור 1.4. לדוגמא:,a 21 L והוא מוגדר ע"י האוטומט. נתחיל ב,q 0 נבצע 3 מעגלים מלאים. נותרו עוד 6 אותיות, נלך ל.q 1, q 2, q 3, q 5, q 6, q 7 זו לא מכונת חישוב, זו מכונה שתעזור למישהו להוכיח שמילה היא בשפה. המילה b 19 a 2 אינה בשפה, כי כדי להיות על מצב מקבל בסוף אני חייב לסיים עם שרשרת של a 3 או b. 3 וזה בלתי אפשרי כשהסיום הוא.ba 2 אם יש מילה שכל הריצות האפשריות נתקעות או מסתיימות במצב לא מקבל, המילה לא מתקבלת. נוסיף אפשרות שמספר האותיות בהן מתחלק ב 4 (במקום שתי הדרישות הראשונות). ניתן להוסיף "אוטומט מקביל" ולהשתמש בעובדה שאפשר להשתמש בשני מצבי התחלה במקביל (ציור 1.5). צריך להראות שהאוטומט מתאים לשפה. אם המילה מתאימה לתנאי הראשון, יש ריצה באוטומט הראשון. אם היא מתאימה לתנאי השני, יש ריצה מתאימה באוטומט השני. אם היא מתאימה לשני התנאים, יש שני מסלולים אפשריים. אם היא לא מתאימה, כבר השתכנענו שהיא לא תעבור באוטומט העליון, ודי ברור שהיא לא תעבוד באוטומט השני. הערה 1.17 נשים לב שיש לנו איחוד בין שתי שפות שניתן לאחד ביניהם בעזרת האלגוריתם לאוטומט איחוד. אבל נראה בתרגול שלפעמים מאוד קל לשרטט NFA כשאוטומט DFA צריך להיות אקספוננציאלי בגודל. אם,L M רגולריות, איך נגדיר NF A שיזהה את השרשור שלהם L? M יהי L, (A) =,L L (B) = M אזי בכל פעם שיש ב A קשת שנכנסת למצב מקבל, נוסיף קשת דומה שנכנסת למצב ההתחלתי של B. המצבים המקבלים יהיו המצבים המקבלים של M. כ"ז אדר תשע"ב (שעור 6) הא"ב: Σ. מצבים: האיחוד הזר של קבוצת מצבי A ומצבי B (אם האיחוד לא זר, ניתן לשנות את שמות המצבים). מצבים מקבלים: המצבים המקבלים של האוטומט B. מצבי התחלה: הקבוצה המכילה את מצב ההתחלה של A, ואם ε, L נוסיף את מצב ההתחלה של B. פונקציית המעברים: נגדיר את α) δ C (q, לכל מצב q של C ולכל α Σ ע"י: אם q מצב של,B נגדיר α)}.δ C (q, α) = {δ B (q, אם q מצב של,A נגדיר α) δ C (q, באופן הבא: הקבוצה α) δ C (q, תכיל את המצב α).δ A (q, כמו כן אם α) δ A (q, הוא מצב מקבל באוטומט,A נוסיף ל ( α δ C,q) את המצב ההתחלתי באוטומט B. (חסר כאן קצת באמצע). משפט 1.18 יהי ) A.NF A A = (Q A, Σ, δ A, Q 0, F אזי קיים B = (Q B, Σ, δ B, q 0, F B ) DF A כך ש ( B ).L (A) = L הוכחה: נגדיר את B כדלהלן. ) A,F B = {S Q A S F A φ}.q 0 = Q 0.Q B = P (Q ופונקצית מעבר = α) δ B (S, α) = δ A (S,. q S δ A (q, α) כדי להוכיח ש ( B ) L (A) = L ניעזר בלמת עזר: לכל S Q A ולכל Σ.δ B (S, w) = σ A (S, w),a עם טענת העזר ניתן להמשיך ע"י: תהי Σ w L (A) δ A (Q, w) F A φ δ B (Q 0, w) F A φ δ B (Q 0, w) F B.w.w L (B) 5
הוכחת טענת העזר באינדוקציה על w. בסיס האינדוציה: ε).δa (S, ε) = S = δ B (S, נניח נכונות עבור. u אזי עבור w = uα נקבל = α) δb (S, uα) = δ B (δb (S, u), α) = δ B (δa (S, u), α) = δ A (δ A (S, u),. q δa (S,u) δ A (q, α) = δa (S, uα) מסקנה REG 1.19 סגור לשרשור. 1.4 שקילות Myhill, Nerode הגדרה 1.20 תהי L שפה מעל.u, v Σ.Σ נאמר ש v u, שקולות ביחס ל L (נסמן (u L v אם. w Σ : uw L vw L דוגמא: {a}.v = a 22, u = a 7.L = {a n n = 1 (mod 5)}.Σ = נשים לב כי.u, v L אזי w a 22 w L w = 4 (mod 5) a 7.L.[w] L זהו אכן יחס שקילות. את מחלקת השקילות של מילה w ביחס ל L נסמן {w u} Σ u L = טענה 1.21 אם,u L v ו Σ,w אזי.( z Σ, uwz L vwz L).uw L vw האם הטענה ההפוכה נכונה? תהא L מעל {b Σ =,a} אוסף המילים בהם כל האותיות חוץ מהראשונה הן b. נסתכל על v. = ab, u = ba.uwz, vwz / L כי תמיד uw L vw נקבל,w = aaa אבל עבור.uε = u / L אבל vε = v L נקבל z = ε כי עבור u L v תרגיל: בשפות רגולריות, מספר מחלקות השקילות הוא סופי, ולהיפך. ג' ניסן תשע"ב (שעור 7).u L v [u] L = [v] L תזכורת: L יחס שקילות, ולכן מתקיים דוגמא פשוטה: תהא L מעל b} Σ = {a, שפת המילים 3)},{w # a (w) = 1 (mod אזי.[bb] L טענה 3)} 1.22 {w # a (w) = 0 (mod = הוכחה: אם 3),# a (u) = 0 (mod אזי לכל Σ,w אזי bbw L # a (w) = 1 (mod 3) # a (uw) = # a (u) + # a (w) = 1 (mod 3) uw L,u [bb] L כלומר,u L bb בהכרח 3),# a (u) = 0 (mod אחרת מתקיים.{u Σ # a (u) = 0 (mod 3)} [bb] L כמו כן, אם לכן אחד מהמקרים הבאים:.u L בסתירה ל bb,bbε / ו L,uε = u L אזי,# a (u) = 1 (mod 3).1.2 3),# a (u) = 2 (mod אזי 3),# a (ua) = 0 (mod כלומר,ua / L אבל,bba L ושוב הגענו לסתירה..[bb] L סה"כ קבלנו כי (u)} {u : 3 # a = כמה מחלקות שקילות יש ל L? 3. דוגמא נוספת: יהא b}.σ = {a, תהא (u)}.l = {u # a (u) > # b מהן מחלקות השקילות ביחס ל L? עבור שתי מילים Σ u L v # a (u) # b (u) = # a (v) # b (v),u, v (תרגיל). דוגמא כללית יותר: יהא ) F A = (Q, Σ, δ, q 0, אוטומט.DF A נגדיר לכל.L q = {u Σ δ (q 0, u) = q},q Q טענה 1.23 לכל,q Q אם,u, v L q אזי.u L(A) v הוכחה: תהא Σ w, אזי uw L (A) δ (q 0, uw) = δ (δ (q 0, u), w) = δ (q, w) = δ (δ (q 0, v), w) = δ (q 0, vw) F vw L (A) מה עם הכיוון ההפוך? בציור 1.6 אוטומט של השפה 6)} L = {a n n = 1 (mod מעל {a} בו 6)},L q = {a n n = 2 (mod ו.u L v נקבל u L q, v L q כאשר לכל,L q = {a n n = 5 (mod 6)} מסקנה 1.24 אם L שפה רגולרית, אזי מס' מחלקות השקילות לפי L הוא סופי. יתר על כן, אם A הוא DF A המקיים L, (A) = L אזי מספר מחלקות השקילות חסום ע"י מספר המצבים ב A. ה' ניסן תשע"ב (שעור 8) משפט 1.25 אם L מעל Σ היא בעלת < t מחלקות שקילות עבור, L אזי קיים אוטומט A DFA בעל t מצבים כך ש L L. (A) = מסקנה L REG 1.26 אם"ם היחס L מגדיר מספר סופי של מחלקות שקילות. 6
הוכחה: נגדיר אוטומט F) A = (Q, Σ, δ, q 0, כאשר: Σ: הא"ב שמעליו L מוגדרת..δ (q 0, w) = q [w]l נרצה להגיע למצב בו.Q = { q [w]l w Σ } L ביחס ל M לכל מחלקת שקילות q M מצב יהיה בQ :Q.q 0 = q [ε]l נגדיר :q 0 F. = { q [w]l w L } נגדיר או שכולן לא שייכות ל L.לכן L או שכל המילים בה שייכות לשפה M, נשים לב שלכל מחלקת שקילות F: :δ תהא M מחלקת שקילות. ותהא.α Σ תהא,w M נגדיר δ.δ (q M, α) = q [wα]l מוגדרת היטב, כי אם גם,w M אזי q [wα]l = q [w α] L וההגדרה אינה תלויה בבחירה של,[wα] L כלומר = [w α] L w,w L ולכן גם wα L w α (טענה קודמת) ולכן w L ואז (אינדוקציה). δ (q 0, w) = q [w]l.w M נשאר להראות L, (A) = L ואת זה נראה בעזרת טענת העזר הבאה: לכל Σ w,.l = L (A) ולכן q [w]l F δ (q 0, w) F w L (A) כבר ראינו שכל מה שאפשר לעשות עם DF A אפשר לעשות עם NF A ולהיפך. הגדרנו מחלקת שקילות, ומסתבר שיחס השקילות נותנת לנו קריטריון מלא לשאלה האם המילה ניתנת לזיהוי ע"י אוטומט או לא. ראינו גם איך אפשר למצוא את האוטומט המינימלי. יש לנו איפיון מלא של השפות הרגולריות, והאוטומטים שמזהים אותם. זה לא קורה בכל המודלים. 1.5 ביטויים רגולריים הגדרה 1.27 ביטוי רגולרי מעל א"ב Σ: הביטוי = r מתאר את השפה =.L הביטוי ε r = מתאר את השפה {ε}.l r = L ε = עבור,α Σ הביטוי α r = מתאר את השפה {α}.l α = עבור r 1, r 2 ביטויים רגולריים מעל :Σ הביטוי ) 2 r = (r 1 ) (r מתאר את השפה.L r = L r1 L r2 הביטוי ) 2 r = (r 1 ) (r מתאר את השפה.L r = L r1 L r2 הביטוי ) 1 r = (r מתאר את השפה ) r1.l r = (L הביטוי + ) 1 r = (r מתאר את השפה ) r1 L r = L r1 (L (ניתן לוותר על ההגדרה ולהשתמש ב ) 1.(r = (r 1 ) (r דוגמא:{ b Σ, =,a} ו + (b) r = (a)) ((ε) מגדירה את השפה שחוץ מהאות הראשונה הן מכילות רק את האות b, ויש בה לפחות b אחת...L r = { ab i i N +} { b i i N +} הערה 1.28 כמו בחיבור, כפל וחזקה, הרבה פעמים נוותר על הסוגריים, ונרשום + b r, = a) (ε כאשר,+ בעלי עדיפות של חזקה, שרשור כמו כפל, ואו כמו חיבור. ביטויים רגולריים מאפשרים בקלות לתאר שפות באופן שקל לייצר מהן מילים. למשל מהשפה הקודמת קל לייצר את ε. bb = bb ראינו בתרגול: לכל ב"ר r מעל Σ מתקיים L. r REG משפט 1.29 תהא L מעל Σ שפה רגולרית, אזי יש ביטוי רגולרי r כך ש L L. r = הוכחה: L רגולרית, כלומר קיים אוטומט שמגדיר אותה. נרצה לייצר מהאוטומט שפה רגולרית. המעבר לא ישיר, ולצורך כך נגדיר "אוטומט ביטויים רגולריים" ) F A := (Q, Σ, δ, q 0, כאשר Q, Σ, q 0, F הם כמו באוטומט רגיל, אבל δ היא אוסף של שלשות ) 2 (q 1, r, q כאשר.Σ רגולרי מעל ביטוי ו r,q 1, q 2 Q המטרה שלנו תהיה להתחיל מאוטומט,DF A ולהפוך אותו לאט לאט לאוטומט ביטויים רגולריים, וממנו ניתן יהיה ליצור ביטוי רגולרי שיתאר את השפה. u i+1 u 0, q כך שהמצב הראשון הוא,q 0 ובכל מעבר i+1 s i s מתקיים 1,..., u k נגדיר ריצה חוקית על מילה Σ s k :w ri+1 r1 s 1 u 2 r2 s 2 u 3 r3 rk.u 1 u 2... u k = w וכן,(q i, r i+1, q i+1 ) δ וגם,u i+1 L ri+1 דוגמא: עבור + b r = (a ε) בציור 1.7 ו {.δ = {(q 0, (a ε) b + ), q 1 או )} 1.δ = {(q 0, ab +, q 1 ), (q 0, b +, q נשים לב שגם כאן יש לנו הכללה של,DF A כי DF A הוא אוטומט רגולרי עם ביטויים מסוג α, Σ ולכל אות בא"ב ומצב יש שלשה. בציור 1.8 יש דוגמא איך הופכים אוטומט DF A לאוטומט רגולרי שמתאר את השפה. 2 מכונת טיורינג TM כ"ד ניסן תשע"ב (שעור 9) 7
2.1 מבוא הרחבה לאוטומט DFA דברנו על.DF A הבנו שהם מזהים את משפחת השפות הרגולריות. אנו מבינים את המשפחה (מס' מחלקות מייהיל נרוד סופי). אנו יודעים כי יש שפות שהן לא רגולריות כמו a. n b n ראינו NF A ועוד וריאציות שהיו תמיד שקולות לA.DF הגדרנו דקדוק של שפות, וגילינו שהוא מתאר שפות רגולריות. נרצה למצוא מודלים שיוכלו לתאר שפות פשוטות לא רגולריות כמו a. n b n עד היום אוטומט קיבל כקלט רצף של אותיות, עבר עליו בצורה סדרתית והחליט לפי זה האם המילה מקבלת או לא, כאשר עוברים ממצב למצב בכל פעם, וקוראים כל פעם תו בודד לפי הסדר. איך אפשר לחזק את האוטומט? 1. אי דטרמיניזם (ראינו כבר, לא משנה את אוסף השפות המתואר). 2. דו צידיות: ניתן לראש לנוע הן ימינה והן שמאלה. בחלק מהתרגולים ראו שזה לא יותר חזק מאוטומט רגיל. 3. זכרון: בעצם המצב בו אני נמצא יכול לממש זכרון. הבעיה היא שמספר המצבים סופי, ולכן הזכרון מוגבל. ניתן להוסיף זכרון בכמה דרכים. (א) מחסנית: על כל קשת חוץ מהתו שמוביל אותו יהיה כתוב אות, ודגל האם להכניס אותו למחסנית או להוציא. (לא נגדיר את המודל עד הסוף, אבל בהגדרה מדוייקת צריך להחליט אם חייבים לבחור אחת מהשתיים או שאפשר לדלג). מה קורה כשעושים pop ל a והערך בראש המחסנית אינו a, אנחנו נתקעים ולא מקבלים. קוראים למודל הזה אוטומט מחסנית. אוטומט כזה יכול לזהות את a, n b n אבל לא את a. n b n c n ניתן לחזק במעט ע"י אוטומט מחסנית עם אי דטרמיניזם. מתברר שבמקרה כזה הוספת אי דטרמיניזם מגדילה את המודל, לאוסף CF L,Content Free Languages ועדיין לא ניתן לזהות את a. n b n c n מצד שני, כל שפות התכנות בהגדרה התחבירית שלהם הן שפות.CF L (ב) כתיבה: לפני שהראש עובר לאות הבאה, הראש יכול גם לכתוב על הסרט במקום הנוכחי, ולנוע בשני הצדדים. למודל הזה קוראים מכונת טיורינג. טיורינג הגדיר את המכונה כדי להבין לוגיקה ומתמטיקה, אבל הוא מאוד שימושי למדעי המחשב התיאורטיים. באוטומט שלנו יהיה רשום על כל קשת מה האות הנקראת, לאיזה כיוון לנוע, ומה לכתוב. יהיה תו שיסמן את קצה הקלט. אלו שפות ניתן לזהות במכונת טיורינג? שפות רגולרית ניתן לממש, אם תמיד נכתוב את מה שקראנו, ותמיד ננוע ימינה. מה לגבי a? n b n נקרא משני הכיוונים. אפשר גם את a. n b n c n הוא יכול לחשב דברים שלא אוטומט ולא אוטומט מחסנית יכול לחשב. המודל יכול לזהות כל שפה שניתנת לזיהוי ע"י איזה מודל חישובי שניתן לדמיין שמקיים את חוקי הפיזיקה המוכרים לנו. 2.2 הגדרת המכונה כ"ו ניסן תשע"ב (שעור 10) הגדרה 2.1 מכונת טיורינג היא שביעיה ) rej (Q, Σ, Γ, δ, q 0, q acc, q כאשר:.q acc q rej.q 0, q acc, q rej Q קבוצת מצבים, Q.blank שייקרא,_ Γ\Σ יש תו.Σ Γ א"ב העבודה, Γ א"ב הקלט. Σ δ : Q\ {q acc, q rej } Γ Q Γ {R, L} פונקצית המעברים או כלל המעבר, δ במקום לחשוב על δ כעל פונקציה ממכפלה קרטזית למכפלה משולשת, ניתן לחשוב כעל טבלה בה בכל מקום כתוב מה לעשות אם אני במצב b. וקורא אות q ניתן גם להסתכל כעל שורת הקוד הבאה i f ( ( s t a t e == q ) && ( head. l e t t e r == a ) ) { s t a t e = q ; head. l e t t e r = b ; head = head. r i g h t ; } הגדרה 2.2 קונפיגורציה של מכונת טיורינג ) rej M = (Q, Σ, Γ, δ, q 0, q acc, q ניתנת לתיאור ע"י קטע מינימלי של הסרט הכולל את הראש ותווים שאינם,blank וכן המצב בו אנו נמצאים. ניתן לרשום את הקונפיגורציה כ y x,q) (α שמשמעותה: על הסרט רשום,xαy הראש נמצא על α, והמכונה נמצאת במצב q. התו הראשון של x והאחרון של y אינם יכולים להיות y.blank יכולה להיות מחרוזת ריקה. בהינתן קונפיגורציה x,q) (α y הקונפיגורציה העוקבת מחושבת כדלהלן:.1 אם } rej q {q acc, q זו קונפיגורציה סופית, ואין לה קונפיגורציה עוקבת..2 נכתוב d).δ (q, α) = (q, β, 8
אם y = ε נגדיר.γ = y 1 נעבור לקונפיגורציה xβ (q, γ) z כאשר אם,y ε נכתוב,y = y 1 z ונגדיר (א) אם :d = R.γ = _, z = ε (ב) אם d = L נגדיר באופן דומה. יש ריצות שאינן מסתיימות, למשל אם לכל קלט ממצב q 0 נרשום # וננוע ימינה כשאנו נשארים במצב q. 0 הגדרה 2.3 ריצה חלקית של M היא סדרת קונפיגורציות סופית שבה כל קונפיגורציה היא עוקבת של קודמתה, c. 1,..., c k נאמר שהריצה היא מלאה אם ב c k מצב האוטומט הוא q acc או q. rej אם אין ריצה מלאה אשר הקונפיגורציה הראשונה בה c, 1 נגיד שM אינה מסיימת את ריצתה כאשר הקונפ' הראשונית שלה היא c. 1 ריצה חלקית של M על קלט x היא ריצה חלקית שבה הקונפיגורציה הראשונית היא x.ε (q 0, x 1 ) x 2... x (אם x = ε הקונפיגורציה הראשונית היא.(ε (q 0, _) ε המכונה מקבלת את x אם יש ריצה מלאה של M על הקלט x שמסתיימת במצב q. acc q. rej שמסתיימת במצב x אם יש לה ריצה מלאה על הקלט x דוחה את המילה M זה מעלה נקודה בעייתית מה לגבי מילים שלגביהם אין ריצה מלאה? איך נסמן את השפה של המכונה? השפה Σ L המזוהה ע"י המכונה M היא אוסף המילים x שאותן M מקבלת. מסמנים אותה (M) L. נאמר ש M מכריעה את (M) L אם לכל Σ M x מקבלת או דוחה את x. נסמן: R משפחת השפות הניתנות להכרעה ע"י מכונת טיורינג, R.E משפחת השפות הניתנות לזיהוי ע"י מכונת טיורינג. ברור כי R. R.E בשיעורים הקרובים נראה כי.R.E R לא ראינו עד כה שפה מעניינת שהמכונה יכולה לזהות. אבל כדאי לדון האם קיימות שפות L שאינן ב R.E. עוצמת קבוצת מכונות טיורינג היא בת מניה (ניתן לבנות מערכת תיאור ולתאר כל מכונה במספר תווים סופי), ומספר השפות האפשרי הוא לא בר מניה. לכן קיימות שפות שלא ניתנות לזיהוי במ"ט. אלו שפות נמצאות ב R??{x#y#z x, y, z {0, 1}, x + y = z} מה לגבי.a n b n c n R.a n b n R יחסית קל להוסיף אחד למספר בינארי. ניתן ליצור מפחית ולהוסיף 1 ל x ולהפחית 1 מ y. מה שנשאר לבדוק האם התוצאה שקבלנו שווה ל z. ר"ח אייר תשע"ב (שעור 11) 2.3 יכולת של מכונת טיורינג תזכורת: RE אוסף השפות הזוהות ע"י R.MT אוסף השפות המוכרעות ע"י.MT כשדברנו על RE וR דברנו על MT בעלת סרט בודד וראש יחיד. ניתן לחשוב גם על מכונה עם שני סרטים ושני ראשים, או עם k סרטים, או סרט אחד לקריאה וסרט אחד לקריאה וכתיבה. יש הרבה גירסאות של מודלים למכונת טיורינג. למשל צד אחד של הסרט חסום. לכל מודל כזה ניתן להגדיר את השפות המוגדרות והשפות המוכרעות על ידו. אנו נראה שהוריאציות האלו לא משנות הרבה. ניתן להראות שכל מה שאפשר לזהות או לקבל במכונה עם שני סרטים, ניתן לעשות זאת במכונת T M קלאסית. למשל, מכונה שתחלק את התאים לזוגות. ניתן גם לסמן היכן הראש צריך להיות. כדי לדמות מכונה בת שני סרטים במכונה בת סרט אחד, זה דורש תוספת כמות וזמן, אבל זה ניתן בסדר גודל פולינומיאלי בד"כ. מכונות יכולות גם לחשב פונקציות. למשל לקבל כקלט מספר בינארי ולחשב את המספר העוקב. מ"ט יכולות לחשב פונקציות של הקלט ע"י שירוצו, והפלט של הפונקציה יהיה מה שנשאר על הסרט בזמן העצירה. מה הן יכולות לחשב? 1. עוקב, קודם. 2. חיבור, כפל, חזקות (לולאה על פעולות בסיסיות יותר). גם במספרים רציונליים. איך מייצגים מספרים רציונליים במ"ט? ניתן בכל ייצוג סביר. למשל, לקודד את המונה, לשים סימן #, ולקודד את המכנה. ניתן לתרגם מפורמט לפורמט בעזרת מכונת טיורינג. ניתן לייצג אוספים של מספרים, משוואות. בעיית השורש המשותף של פולינומים: קלט: משתנים x 1,..., x n ומשוואות מהצורה = 0 7.x 2 1 + x 2 x 5 3 שאלה: האם יש השמה x 1,..., x n Z כך שכל המשוואות מתקיימות. זו בעצם שפת מערכת המשוואות שיש להם פתרון מעל Z. האם קיימת מ"ט שתזהה או תכריע אותה. האם זו שפה שניתן להגדיר כקלט למ"ט? צריך סימן שיפריד בין משוואות שונות, וצריך להחליט איך לייצג משוואה אחת. משוואה זה אוסף של מונומים עם מקדמים. מונום ניתן לייצג ע"י מקדם, וסדרה של חזקות של כל אחד מהמשתנים, למשל המונום x 2 x 5 3 ייוצג ע"י...1015. האם שפת המערכות הספיקות היא ב R.E? כן. תעבור על כל ההשמות האפשריות לפי סדר מסויים, ואם מצאת השמה שמספקת, תקבל את המילה. האם השפה נמצאת ב R? זו השאלה העשירית של הילברט. מכונת טיורינג הומצאה כדי לנסח את השאלה הזו. שאלה נוספת שהטרידה את הילברט כל מספר ממשי ניתן לייצוג כקבוצה של רציונלים. כל רציונלי ניתן לייצוג כקבוצה של שלמים, וכו'. (C) ZF הוא אוסף האקסיומות של המתמטיקה. מה שניתן להוכיח מהאקסיומות הוא משפט, ומה שניתן להפריך נחשב כלא נכון. הילברט שאל 1. האם אוסף המשפטים הנובעים מ ( C ) ZF הוא ב R.E. 9
2. אותו דבר על R..3 האם לכל משפט ZF C P או.ZF C P אבחנה: אם התשובה ל 3 ול 1 היא כן, אזי התשובה ל 2 היא כן. אם 3 נכון, אזי יש זיהוי ל P או ל P, וניתן להריץ שתי מכונות (או מכונה אחת שמדמה שתי מכונות), וזו שתעצור קודם תתן לנו הכרעה על P. תשובות: הבעיה העשירית אינה ב R. לגבי ZF C השאלה הראשונה היא כן: נעשה אנומרציה (סידור מס' ההוכחות האפשריות הוא בר מניה) לכל ההוכחות האפשריות במערכת ההיסק ונבדוק אותם. השאלה השניה היא לא. לכל מערכת אקסיומות עשירה מספיק לא ניתן להכריע מה אוסף המשפטים הנובעים ממנה. לגבי השאלה השלישית התשובה היא לא, והיא לא לכל מערכת אקסיומות עקבית שהיא עשירה מספיק. (משפט אי השלמות של גדל, טיורינג ניסח את הבעיה בעזרת מודל מ"ט וRE,R, והוכיח את התשובה). ח' אייר תשע"ב, כ"ג בעומר (שעור 12) הגדרנו מ"ט. ראינו שהן יכולות לעשות כל מיני דברים מעניינים. פורמליזציה של מושג האלגוריתם. ראינו מ"ט שמבצעות פעולות חשבוניות על מספרים. קל לחשוב על מ"ט שתקבלנה גרף כקלט, ולהריץ עליה חיפוש DFS או אחר. 2.4 מ"ט כקלט קדוד של מ"ט הדרך בה אנו מקודדים את הקלט לא כ"כ משנה. מ"ט היא שביעייה (...,δ M. =,Q),Σ,Γ אנו מעוניינים להזין את M כקלט למכונה אחרת. הבעיה העיקרית הוא ש Γ Q, Σ, עשוי להיות הרבה יותר גדול מהא"ב של המכונה אליה אנחנו מעוניינים לקודד. אבל מבחינתנו, לא משנות האותיות עצמן של,Σ, Γ מה שיותר משנה זה מספר האותיות. תמיד אפשר להסתכל על מכונה שהא"ב שלה הוא מספרים טבעיים. אם נציין = 10 Σ, משמעותו ש 10 = Σ, ובאופן דומה עבור Γ, כשנניח ש { 10,...,1} הם תווי Σ, והבאים הם תווי.Γ\Σ באופן דומה ניתן לקודד את Q, וכך בעזרת א"ב של {#,1,0} ניתן לקודד את,Q.,Σ,Γ q 0, q acc, q rej טבלת המעברים של δ תתפוס יותר מקום, אבל גם היא ניתנת לקידוד בעזרת הא"ב. אחרי שקודדנו בעזרת א"ב עם 3 תווים, ניתן להסתכל כעל מספר מעל בסיס 3, וניתן לקודד אותה גם בקידוד בינארי או אונארי. תהי M מ"ט, נסמן M את הקידוד של M כקלט למ"ט אחרת D. אם w קלט למ"ט M, גם את w ניתן לקודד ב w עבור D. עכשיו ניתן לדבר על בעיית הכרעה: בהינתן קידוד M של מ"ט, וקלט W, האם מ"ט M עוצרת על הקלט? לצורך הבעיה נגדיר פורמלית את השפה :AT M (M)}.AT M = { M, w w L נרצה לשאול:.1 האם השפה?AT M RE כלומר האם קיימת מ"ט D שעונה נכון לכל. M, w AT M.2 האם?AT M R הערה 2.4 אם אנחנו רוצים לדעת אם אלגוריתם מקבל את הקלט, נרצה להריץ את האלגוריתם על הקלט, ואם הוא יעצור ויקבל, נעצור אנחנו ונאמר שהוא מקבל. אם הוא יעצור וידחה, נעצור ונדחה, ואם האלגוריתם יכנס ללולאה, גם אנחנו לא נעצור. זה בסדר עבור הוכחה ש RE.AT M 2.5 מ"ט אוניברסלית הגדרה 2.5 מכונת טיורינג U, נקראת אוניברסלית אם היא מקיימת: 1. בהינתן קלט w,m, אם M עוצרת בריצתה על w ומקבלת, U גם עוצרת ומקבלת. 2. בהינתן קלט w,m כך ש M עוצרת על w ודוחה, U דוחה את w,m. 3. אם M אינה עוצרת בריצתה על הקלט w, אזי U אינה עוצרת על הקלט w,m. 4. אם הקלט ל U אינו קידוד חוקי של מ"ט וקלט עבורה, U עוצרת ודוחה. משפט 2.6 קיימת מ"ט אוניברסלית U. לא נוכיח את המשפט, כי הוא פשוט בעקרון, והוכחה פורמלית היא נוראה. מה שצריך לעשות, זה לתכנת מ"ט שמסמלצת מ"ט נתונה על קלט נתון. מאחר ושפת התכנות של מ"ט היא פשוטה יחסית, זו משימה ארוכה אבל קלה. כעת יש לנו תשובה לשאלה 1 מקודם. כן, בעצם השפה שמכונה אוניברסלית U מקבלת, היא בדיוק השפה.AT M אבל היא רק תאמר לי עבור קלט מקבל שהמכונה מקבלת אותו. זה מוביל אותנו לשאלה 2. הפעם לא נוכל להשתמש במכונה אוניברסלית, אבל האם קיימת מכונה אחרת שתעצור ותאמר המכונה לא עוצרת? פתרון ברמז לקראת יום רביעי: לא קיימת. אנחנו דורשים מ D לחזות את העתיד ולומר אף פעם M לא תעצור על w. חיזוי העתיד הוא לא אפשרי. נוכל להשתמש במידע של החזאי כדי לסתור אותו. נבנה מכונה שתכנס ללופ אם D תאמר שהיא עוצרת, ותעצור אם D תאמר שהיא מקבלת. י' אייר תשע"ב, כ"ה בעומר (שעור 13) תזכורת: (M)}.AT M = { M, w w L ראינו כי.AT M RE 10
משפט AT M / R 2.7 הוכחה: נניח כי.AT M R כלומר יש מכונת טיורינג D שמכריעה אותה. אזי בהינתן קלט w,m : 1. אם M עוצרת במצב מקבל בריצתה על D w, עוצרת במצב מקבל. 2. אם M אינה עוצרת, או עוצרת במצב דוחה בריצתה על D w, עוצרת במצב דוחה. נבנה מתוך D מכונה D באופן שנגיע לסתירה. המכונה מקבלת קלט שהוא קידוד של מכונת טיורינג. אם הוא לא של מכונת טיורינג, היא דוחה. מה שהמכונה D תעשה, היא תשכפל אותו ל M,M. לאחר מכן היא תשתמש ב D כפרוצדורה, ותריץ את M,M על מכונת D. D תעצור במצב מקבל (כן) או במצב דוחה (לא). אם D עוצרת במצב מקבל, D תדחה, ואם היא עוצרת במצב דוחה, D תקבל (ציור 2.1). כעת ניתן לקודד את D. מה יקרה אם נריץ את המכונה D על הקדוד D. D עוברת על D. אם D מקבלת, אזי D דוחה את D, D, מכאן ש D אינה מקבלת בריצתה על. D לא ייתכן. לכן בהכרח D דוחה את, D כלומה D מקבלת את D, D, כלומר D מקבלת את D. שוב הגענו לסתירה, ולכן לא קיימת מכונה D כזו. בצורה זו נוכל להוכיח על שפות נוספות כי הן ב RE\R, או שפות שאינן לא ב RE, ואולי גם לא ב RE.co כעת אנו יודעים שיש שפות הניתנות לתיאור בצורה טובה שאינן ב R..HALT = { M, w M stops when run on w} טענה HALT RE 2.8 הוכחה: נשנה מכונה אוניברסלית כך שתקבל במקום לדחות. טענה HALT / R 2.9 הוכחה: נניח בשלילה שקיימת H שמכריעה את השפה.HALT נבנה בציור H רק שהפעם אם H מקבלת H תיכנס ללולאה אינסופית, אם היא דוחה, נקבל את המילה. דרך נוספת, נניח ש R,HALT נראה שיש מכונה שמכריעה גם את,AT M בסתירה לך ש R AT M / (ציור 2.2). כדי לתת הוכחה כללית יותר, נשתמש בטענת עזר. נדבר על מודל בו הפלט של המכונה הוא מה שרשום בשעת העצירה. טענה 2.10 קיימת מכונת טיורינג T, אשר בהינתן קלט w,m מחשבת פלט w M,, כך שאם M מקבלת את w אזי M מקבלת את w. אחרת, M אינה עוצרת לעולם בריצתה על w. הוכחה: נוסיף מצב חדש שיהיה המצב הדוחה. את המצב הקיים נהפוך למצב לא דוחה. נוסיף ל δ חוק מה לעשות במצב הדוחה הישן שייכנס ללולאה אינסופית. מסקנה.HALT / R 2.11 הוכחה: נניח בשלילה.HALT R תהא H מכונה המכריעה אותה. נבנה מכונה שמכריעה את AT M באופן הבא: בהינתן w,m נכניס אותו ל.T נקבל w M, נכניס את w M, ל H. נכריע לפי ההחלטה של.H אם T, M, w AT M מקיים T ( M, w ) HALT כי המכונה M תעצור על,w ואם, M, w / AT M אזי המכונה M לא תעצור על,w ו.T ( M, w ) HALT כלומר M x AT.T (x) HALT 2.6 רדוקציה הגדרה 2.12 יהיו Σ,L, L מ"ט T נקראת רדוקצית מיפוי L L אם מתקיים לכל קלט Σ :x.x עוצר על T.1.x L T (x) L.2 נסמן L 1 m L 2 אם קיימת רדוקציית מיפוי מ L 1 ל.L 2.HALT ל AT שהגדרנו קודם היא רדוקצית מיפוי מ M T טענה 2.13 תהא T רדוקציית מיפוי מ L ל.L אזי אם L R בהכרח.L R.x T T (x) הוכחה: אם L, R אזי יש מכונה H שמכריעה אותה. לכן המכונה הבאה מכריעה את H L: מסקנה 2.14 אם,L R בהכרח.L / R 11
ט"ו אייר תשע"ב, ל' בעומר (שעור 14) נתבונן בשפה { (M) L. = M } L נרצה לענות על כמה שאלות עליה. L? RE כן. איך נבדוק את זה? לא ניתן להריץ במכונה אוניברסלית לפי סדר של המילים, כי אולי המכונה לא תעצור במילה הראשונה. מה נעשה? נבנה מכונה D, ש"תריץ במקביל" את M על כל המילים ב Σ, כאשר, Σ הוא א"ב הקלט של M. איך נריץ במקביל על קבוצה אינסופית של קלטים? נעבור על...,2 =,0,1 i, ולכל i, נריץ את M במשך i צעדים על כל אחת מהמילים ב Σ שאורכן הוא לכל היותר i. אם בשלב מסויים M עוצרת במצב מקבל, באחת ההרצות נחזיר כן. בבירור D מזהה את L, ולכן L. RE האם ניתן למצוא מכונה D שתכריע את L? אי אפשר להכריע את L. למה? לא בגלל שצריך לעבור על כל המילים ב Σ, אבל מי אמר את זה? טענה.L R 2.15 הוכחה: נראה רדוקציה A. T M L נבנה מ"ט T, אשר בהינתן קידוד w,m, מחזירה קידוד M כדלהלן: בהינתן קלט x כלשהו, M תבצע סימולציה של ריצת M על w. אם הסימולציה עוצרת במצב מקבל, M תקבל. אם הסימולציה עוצרת במצב דוחה, M תדחה. אם M מקבלת את,w כלומר, M, w A T M אזי Σ,L (M ) = ולכן. M L אם M לא מקבלת את,w כלומר, M, w A T M אזי = ) (M,L ו L. M / מה T תעשה על קלט לא חוקי? היא לא יכולה להכנס ללולאה, או לדחות, כי רדוקציה חייבת לקבל. כל מה שנצטרך הוא שהפלט הוא מחרוזת שאינה ב L, למשל קידוד שאינו קידוד של מכונה. דוגמא נוספת: } (M).L 1 = { M L (M) Σ, L נדבר עליה בשעור הבא. י"ז אייר תשע"ב, ל"ב בעומר (שעור 15) הערה 2.16 ההגדרות בקורס מאוד חשובות, וצריך לדעת אותם ברמת הדקלום. נתבונן בשפה } = (m).l = { M L טענה.A T M m L 2.17 הוכחה: בהינתן קלט w,m הרדוקציה תחזיר קידוד M של מ"ט כדלהלן: בהינתן קלט x עבור המכונה M, M תריץ את (w) M (תסמלץ ריצה של M על w). אם M מקבלת את M w, תקבל את x. אם M דוחה את M w, תדחה. 1. הרדוקציה שתיארנו תמיד עוצרת (היא כותבת קידוד של מכונה שמריצה את (w) M, היא לא מריצה אותה)..2 אם, M, w A T M לכל x שיוכנס ל,M בשלב מסויים M תקבל את,w ואז M תקבל את,x כלומר Σ,L (M ) = ו L. M.3 אם, M, w / A T M אזי = ) (M,L ולכן. M L טענה A T M m L 2.18 הוכחה: בהינתן w,m הרדוקציה תחזיר קידוד M של מכונת טיורינג כדלהלן: בהינתן קלט x למכונה M, M תריץ את (w) M למשך x צעדים. אם קיבלנו במהלך הסימולציה, M תדחה. אחרת, M תקבל. 1. הרדוקציה תמיד עוצרת, את הקידוד של M ניתן לכתוב בזמן סופי..2 אם M, M, w A T M לעולם לא תקבל את,w גם לא לאחר x צעדים (לכל,(x ולכן Σ,L (M ) = כלומר. M L.3 אם M, M, w A T M מקבלת את w לאחר s צעדים, אזי s},l (M ) = {x x ולכן < ) (M,L ו L. M / מסקנה 2.19 ראינו כי,A T M m L וכן.A T M m L לכן:.L / R.1.L co RE.2 הוכחה:.A T M co RE אנו הראינו ש: R.L 1 m L 2, L 1 R L 2 / באופן דומה L 1 m L 2, L 1 RE L 2 / RE וכן לגבי.co RE.(A T M RE) L / RE.3 12
של זוגות של מילים לא ריקות מעל Σ. ( x1 y 1 )... ( xn y n בעיית ) P CP קלט: א"ב Σ, ורשימה פלט: כן,( אם"ם ( ) קיימת ( ) סדרה )סופית לא ריקה של אידקסים באורך כלשהו (עם חזרות) i 1,... i t כך ש.x i1 x i2... x it = y i1... y it a b baba, הפתרון הוא כן, עבור הסדרה,1.,2,1 3 דוגמא: ab ab a ( ) בעיית M P CP x0 קלט דומה ל P, CP אבל נתון גם זוג מיוחד בו ניתן וצריך להשתמש בתחילת השרשור בלבד. פלט: כן, אם"ם קיימת סדרה סופית של אידקסים באורך כלשהו (עם חזרות) n} i 1,... i t {1,..., כך ש.x 0 x i1 x i2... x it = y 0 y i1... y it טענה.M P CP m P CP 2.20 ( ) ( ) x0 xn הוכחה: בהינתן...,Σ, הרדוקציה תפעל כדלהלן: הרדוקציה תחזיר את הא"ב {!, } Σ. את המחרוזות הרדוקציה תבנה כך: עבור מחרוזת Σ w = w 1... w m נגדיר w := w 1 w 2... w m. באופן דומה m, w := w 1 w 2... w ( ) ( ) ( ) ( ) (. ) ו w := w 1 w 2... w m x0 x1 x2 xn!.... הרדוקציה תחזיר את המחרוזות: y 0 y 1 y 2 y n! אם הקלט לרדוקציה נמצא ב,M P CP אזי יש סדרה i 1... i t שפותרת אותו. הסדרה n+1 0, i 1,..., i t, תפתור את הפלט של הרדוקציה, ולכן הפלט הוא ב P. CP אם הקלט נמצא ב P, CP לא נוכיח באופן פורמלי, אבל שרשור כלשהו של המחרוזות שנותן תוצאה דומה, בהכרח מתחיל ב 0, ומסתיים ב!. בה"כ נניח כי יש לנו רק! בודד במילה הזהה. אנחנו לא משתמשים ב 0 יותר מפעם אחת, ולכן ניתן להוריד מסדרת האינדקסים את.M P CP ולקבל סדרה עבור הקלט המקורי ב 0, n + 1 y 0 y 0 y n טענה.A T M m M P CP 2.21 ( ) {( )} ( ) # α # (q0, w 1 ) w 2... w,. אם, ולהוסיף את w # הוכחה: בהינתן w,m, הרעיון הוא לייצר כזוג המיוחד # α α Γ # ( β (q ), γ) לכל.γ Γ R),δ (q, α) = (q, β, נוסיף את (q, α) γ ( ) ( ) כ"ב אייר תשע"ב, ל"ז בעומר (שעור 16) x0 # (q0, w 1 ) w 2... w =. בתור זוגות נוספים נחזיר: w # בהינתן w, M, כאשר ) No M = (Q, Σ, Γ, δ, q Y es, q הרדוקציה תחזיר: y 0 # ( ) ( ) # α לכל :α Γ,. ( # α β (q ) (, _) # β (q ), γ)., אם,α, β, γ Γ ו Q,q, q ו ( R,δ (q, α) = (q, β, נוסיף את ( (q, α) # (q, α) γ # (q ) (, _) β (q ), γ) β., אם,α, β, γ Γ ו Q,q, q ו ( L,δ (q, α) = (q, β, נוסיף את # (q, α) γ (q, α) ( ) ( ) qy es qy es אם )},, {(, Γ,α נוסיף את,. αq Y es q Y es α ( ) # נוסיף את. #q Y es # בצורה כזו כל פעם שאנו מעתיקים את הקונפיגורציה שנמצאת למעלה לחלק התחתון, יש לנו את הקונפיגורציה הבאה בחלק העליון. כשמצאנו לקונפיגורציה עם q, Y es ניתן לבלוע את כל השארית מימין ומשמאל, ולסיים עם הזוג האחרון. כ"ד אייר תשע"ב, ל"ט בעומר (שעור 17) סיכום :P CP ראינו,A T M m M P CP וגם,M P CP m P CP ולכן,A T M m P CP ומאחר ו R,A T M / גם,P CP / R כלומר היא אינה ניתנת להכרעה. מצד שני, P, CP RE כי אם אוסף הזוגות בשפה, בעזרת מכונה שמנסה את כל האפשרויות נמצא את המחרוזת. אם היה לנו זמן היינו מראים עוד שפות כאלו. יש שפות על ריצוף במישור אוסף צורות (טטריס), האם ניתן לרצף בעזרתם את המישור כולו. או למשל בהינתן מערכת משוואות פולינומיות, האם למערכת יש פתרון במספרים טבעיים? הבעיה בRE, אבל יש רדוקציה מ A T M אליה. או שפת המשפטים המתמטיים הניתנים להוכחה מ C.ZF שגם היא ב RE\R (אחרי שמגדירים את.(ZF C בהינתן מחרוזת בא"ב ההוכחות, ניתן לוודא אם היא הוכחה חוקית. השפה ניתנת לזיהוי ע"י מעבר על כל המחרוזות. מצד שני יש לה רדוקציה מ A T M (מכונה שמקבלת w,m, ומחזירה משפט: M עוצרת על w במצב מקבל). שאלה: האם לכל שפה L / core מקיימת?A T M m L הגדרה 2.22 נאמר ששפה L היא RE hard (או RE קשה) אם לכל שפה,L RE מתקיים.L m L טענה 2.23 אם שפה L מקיימת A T M m L אזי L היא RE קשה. 13
הוכחה: מהתרגיל, לכל L RE מתקיים.L m A T M מטרנזיטיביות m נקבל.L m L הגדרה 2.24 שפה L נקראת RE שלמה אם L, RE וגם L היא RE קשה. עד כה, לגבי שפות שהן לא ב R, ראינו רק RE קשות או RE שלמות. טענה 2.25 אם L 1, L 2 הן RE שלמות, אזי.L 1 m L 2 יש שפות ב RE שאינן RE שלמות. זה לא פשוט ליצור אותן. הבעיות הטבעיות הן משום מה RE שלמות אם הן ב RE\R. צריך לעבוד קשה כדי לייצר בעיות כאלו, וצריך לעבוד קשה להראות שהן לא שלמות (אין רדוקציה מ A T M אליה), ולא כריעות. ראינו שיש שפות מחוץ ל core.re בתוך core ניתן לדבר על שפות core שלמות, ואם היינו רוצים היינו יכולים להגדיר מחלקות מעל,RE, core ועדיין למצוא שפות שהן לא בהם. אבל כל הדברים האלו הם תאורטיים, אבל אנחנו לא מאמינים באמת שניתן לעשות משהו מעבר ל RE, כי T M נחשב למודל החישובי המציאותי הכי חזק שקיים. לגבי שפת המשפטים הניתנים להוכחה ב C,ZF שנמצאת ב RE\R שיש אליה רדוקציה מ A. T M מסקנה 2.26 יש משפט מתמטי נכון שאינו ניתן להוכחה. הוכחה: בהינתן M ו w, נסתכל במשפט "M אינה עוצרת על w". אם המשפט לא נכון, אזי אפשר להפריך אותו ולהוכיח שהוא לא נכון. אם תמיד כשהמשפט נכון אפשר להוכיח את זה, ניתן להכריע את A. T M אבל אי אפשר להכריע את A, T M לכן יש משפט מהסוג הזה שהוא נכון, ואי אפשר להכריע אותו. הערה 2.27 זהו חלק ממשפט אי השלמות של גדל. גדל הוכיח שבכל מערכת אקיומות עקבית "עשירה מספיק", יש משפטים שאינם ניתנים להוכחה במערכת, וגם שלילתם אינה ניתנת להוכחה. אנחנו הראינו על.ZF C טיורינג המציא את מכונות טיורינג כדי להוכיח את משפט אי השלמות בצורה דומה למה שעשינו עד כה (אבל קצת יותר כללית). היה אפשר לומר שיש משפטים כאלו, אבל אנחנו לא ניתקל בהם. אבל בעצם, בהינתן מ"ט M, ניתן לתרגם אותה למ"ט M שתדפיס על הסרט דבר ראשון את הקידוד M, ואח"כ תרוץ כמו M (חלק מהתרגולים ראו את זה). ניתן לתכנת מ"ט M אשר בתחילת ריצתה כותבת את המשפט " M אינה עוצרת על הקלט הריק", ואח"כ עוברת על כל ההוכחות האפשריות למשפט זה, ועוצרת אם היא מצאה הוכחה. טענה 2.28 תהא M המכונה המתוארת למעלה, המשפט " M אינה עוצרת על הקלט הריק" נכון, אבל לא ניתן להוכחה במערכת.ZF C כלומר יש משפט ספציפי שאינו ניתן להוכחה. זה יהיה נכון לכל מערכת היסק שמספיק עשירה כדי לנסח את המשפט הזה. (הערה: הנה הוכחנו שהמשפט הזה נכון...). טיורינג יותר התעניין בכיוון של הוכחת משפט אי השלמות, ופחות בשאלה האם המודל של מ"ט מספיק חזק לסמלץ כל מחשב קיים או עתידי. מודל המחשב אותו אנחנו מכירים היום הוא מודל V. on Neumann ניקח את היקום, ונחלק אותו לקוביות מאוד קטנות. כדי לדמות את מצב היקום בזמן מסויים, נכתוב את המצב (x f,t) בכל משבצת x של היקום. ונשים את זה בתוך הזכרון של ה"מחשב", וכדי לחשב את המצב של היקום ברגע הבא, יהיה CP U שתעבור על כל אחד מהתאים בזכרון, ומ ( x f,t) והתאים שליד (זה כל מה שדרוש כדי לדעת מה יקרה בזמן t. + t כשנסיים, יהיה לנו את מצב היקום ב t t. + אחרי שנחשב את זה מספיק פעמים, נדע מה יקרה להירושימה אחרי שנטיל עליה את הפצצה. המחשב הראשון היה עם מפסקים אנלוגיים. למרות שהטכנולוגיה השתנתה, רוב המחשבים עובדים לפי המודל שלו. המודל שלו מתאים לפתרון של משוואות דיפרנציאליות. בשלב מסויים הוטלו מגבלות על הכוח של מחשבים חזקים. בעזרת המודל הזה אפשר לדמות את חוקי הפיזיקה הקלאסית. אם רוצים להכניס גם את חוקי התורה היחסותית, אין בעיה, זה רק להגדיר בצורה שונה איך מ ( x f,t) מוצאים את (x f. t) +,t המודל הזה הוא מודל של מכונת RAM שראינו בתרגול, שניתן לדימוי בעזרת מ"ט. נרצה לטעון שאין שום סיכוי שנוכל לבנות מכונה שתוכל להכריע שפות שמ"ט לא יכולה להכריע. אם נבנה אותו מדברים שקיימים בעולם שלנו, הוא יהיה בנוי מדברים פיזיקליים. נוכל לכתוב מה יש במחשב בכל נקודה, ואז לסמלץ את הפעולה הפיזיקלית של המכונה הזו באותה צורה שפון נוימן סמלץ פיצוצים אטומיים. ואם ניתן בעזרת מכונת,RAM אפשר גם עם מ"ט. כל עוד הפיזיקה עונה על התנאי שניתן לחשב את (x f t) +,t מתוך (t) f של השכנים הקרובים של x, נוכל לסמלץ את המכונה. טענה 2.29 (התזה של צ'רץ' טיורינג) אוסף השפות הניתנות להכרעה \ לזיהוי ע"י מחשב כלשהו, הוא RE או R בהתאמה. אפשר לשאול איך נדע האם החלוקה שלנו מספיק מדוייקת, או אולי האנרגיה בנקודה מסויימת, תחרוג ממספר הביטים הדרושים לביטוייה. 3 משפחות מוגבלות משאבים (סיבוכיות) עד כה יש לנו את אוסף השפות הכריעות. מעליו את RE ואת,coRE מעליהם שפות שהן לא כאן ולא כאן. מה לגבי השפות הקלות יותר? בהן נשקיע את שאר הקורס. כבר ראינו כי.REG R גם אצל השפות הכריעות, ניתן לדון כמה משאבים השפה דורשת כדי להכריע אותם. המשאב הראשון שנדבר עליו הוא משאב הזמן. הגדרה 3.1 תהא,L R ותהא M מ"ט המכריעה את.L נגדיר (x)}.t M (n) = max x n {# of step in the run M נגיד ש M רצה בזמן ((n) O f) אם ((n) t. M (n) O f) באופן דומה ניתן להגדיר Ω ו Θ. נשים לב כי הזמן הוא תכונה של המכונה, לא של השפה. נגיד ש[( n ) L T IME [f אם יש M מ"ט המכריעה את,L ורצה בזמן (n)).o (f 14
דוגמא: (w)}.l = {w {a, b} # a (w) = # b האם 2]?L T IME [ n כן. עם שני סרטים אפשר בזמן לינארי, ועם סרט אחד לא ידוע. עכשיו אנחנו רואים שהמחלקה [n] T, IME מאוד תלויה במודל בו משתמשים. כעת אנחנו מדברים כל הזמן על המודל של סרט בודד. תרגיל: להוכיח n].l T IME [n log היינו רוצים לחפש מחלקות ששינוי במודל לא כ"כ משנה, וזו המחלקה הבאה..P = { L Σ Σ set, k, L T IME [ n k]} = הגדרה k] 3.2 k=1 T IME [ n לפי מה שראינו בתרגול המחלקה הזו לא משתנה בין מודל RAM או מודל שני סרטים. ב' סיון תשע"ב, מ"ו בעומר (שעור 18) תזכורת: עבור M מ"ט שתמיד עוצרת, הגדרנו (n),t M עבור f : N N הגדרנו (n)].t IME [f ראינו כי [n].reg T IME הגדרנו.P = את k] k=1 T IME [ n =,EXP וזה פחות תלוי קל להבין כי ] n,p T IME [2 ו [ T IME [2 n הוא תלוי במכונה. אפשר גם להגדיר את nk] k=1 T IME [2 בהגדרה של המכונה. 3.1 בעיות ומחלקותיהן קשירות בגרף ראינו אלגוריתם פולינומי במכונת,RAM ולכן היא ב P. זיווג מושלם ב P. פתירות משוואות לינאריות אפשר לעבור על כל הפתרונות, זה לא אומר שאנחנו ב P, זה לא אומר שאין דרך חכמה יותר. למדנו באלגברה לינאריית אלגוריתם של דירוג מטריצה ב P. A. T M / EXP, R צריך מכונה שמכריעה את השפה בזמן פולינומי, ולכן P, כדי להיות ב A T M בעיית הראשוניות: נתון מספר בקידוד בינארי, צריך להכריע האם הוא ראשוני. ראשוניות בקידוד אונארי היא ב P. השאלה היתה פתוחה עד 2004. כיום יודעים כי זה ב P. :SUBSET SUM בהינתן מספרים טבעיים a, 1,..., a n ומספר טבעי נוסף t. יש להכריע אם ניתן להציג את t כסכום של איברים שונים מתוך a. 1,..., a n אנו יודעים כי זה ב EXP (ראינו אלגוריתם דינמי בקורס אלגוריתמים), לא יודעים אם היא ב P..SAT P לא ידוע האם,SAT EXP לא קל למצוא בעיות טבעיות ב.R\P בשלב הזה לא נוכיח, אבל נראה דוגמא: בהינתן מ"ט M וקלט w. האם M מקבלת את w בזמן שהוא לכל היותר w 2 2. השפה היא ב R, ואנו יודעים שהיא לא ב P (צריך להקדיש לזה שיעור שלם). P. לא ידוע על.EXP מציאת מעגל המילטון בגרף (מסלול מעגלי שעובר בכל צומת פעם אחת בדיוק). נמצא ב :HAM CY CLE IS בהינתן גרף G ומספר k, יש להכריע אם יש קבוצת צמתים בגודל k בגרף G כך שאין קשתות בין הצמתים בקבוצה. לא ידוע על אלגוריתם לא אקספוננציאלי. לבעיות יש מכנה משותף. אנחנו לא יודעים למצוא את הקבוצה הנכונה, אבל אם מישהו טוען שיש לו פיתרון, אנחנו יכולים לבדוק אותו בזמן פולינומי. כך למשל ב SUM.IS,HAM CY CLE,SUBSET זו תכונה מעניינת שנדבר עליה בהמשך. למה אין את התכונה הזו? HAM CY CLE (בהינתן גרף, יש להכריע אם אין מעגל שעובר על כל צומת פעם אחת). תחשבו על חנות לגרפים, אדם רואה ליד הכניסה סלסלה של גרפים קשירים, והוא רוצה אחד כזה. הוא יכול להרים תוך שהוא אוחז בצומת בודד, ולבדוק. בסלסלה של גרפים הוא מסלול המילטון, הוא לא יכול לראות לבד, אבל אם המוכר יראה לו שיש, הוא ישתכנע. בסלסלה של גרפים ללא מסלול המילטון, גם המוכר לא יכול לשכנע אותי שאין כזה. גם על בעיות חישוביות (לא הכרעה), הניתנות לחישוב ע"י מ"ט, ניתן לדבר על (n) t, M ועל T. IME,,P EXP 3.2 מכונות טיורינג לא דטרמיניסטיות הגדרנו בתרגול מ"ט.NT M בהינתן מ"ט לא דטרמיניסטית,M נגדיר w}.t M [n] = max w n {longest run time of M on אם M לא עוצרת (באחד המסלולים) אזי = [n] t. M ייתכנו ריצות שנתקעות (δ מובילה לקבוצה הריקה). ריצות כאלו ייחשבו כריצות דוחות. נאמר שמ"ט NT M רצה בזמן (n)) O (f אם (n)),t M [n] O (f ועבור f : N N נגדיר את (n))}.nt IME [f (n)] := {L Σ M NT M, L (M) = L, M run in O (f.np נתעניין בזמן הקרוב ב.NEXP = [ k=1 NT IME 2 nk] ו,NP = נגדיר גם k) k=1 NT IME ( n קל לראות כי (n)].t IME [f (n)] NT IME [f לכן.P NP האם NP?P = NP הוגדרה ע"י לוגיקאי בשם הוק?, והוא שאל האם יש שוויון ב 72. ההתקדמות היא בהרבה גישות שאנו יודעים שהן לא עובדות. יש מעט גישות שאנו יודעים שיש להן סיכוי לעבוד. טענה.NP R 3.3 הוכחה: אם L NP מעל,Σ אזי יש k, c N,M NT M כך ש.L מזהה את M על קלט w, כל ריצה של M על w עוצרת בזמן k c. w 15
ניתן להכריע את L בעזרת מכונה דטרמיניסטית D אשר בהינתן קלט w, תדמה את כל הריצות האפשריות של M על w, ותחזיר כן אם"ם אחת מהריצות מקבלת. בינתיים.P NP EXP R לא ידוע האם NP = P או.NP = EXP בהמשך נראה כי.P EXP טענה.HAM CY CLE NP 3.4 הוכחה: צריך להראות שקיימת M, NT M שכל הריצות מסתיימת בזמן פולינומי, ויש ריצה מקבלת עבור מעגל המילטון. נבנה מכונה באופן הבא: בהינתן גרף בעל V = n צמתים, M תכתוב באופן לא דטרמיניסטי סדרה באורך n של צמתים מהגרף. משלב זה, כל זנב של ריצה יבדוק האם הסדרה הנ"ל היא מעגל המילטון, ונקבל אם כן. M רצה בזמן פולינומי, ומזהה את.HAM CY CLE הערה 3.5 באופן דומה.SAT, SUBSET SUM NP לגבי.HAM CY CLE conp ז' סיון תשע"ב (שעור 19) תזכורת: הגדרנו.NP, conp ראינו.P NP R לא ידוע האם.SAT, V C, HAM P AT H NP.P = NP אם יש רדוקציית מיפוי פולינומית מ L 1 ל L 2 נסמן רדוקציית מיפוי שמסיימת את ריצתה בזמן פולינומי. רדוקצית מיפוי פולינומית:.L 1 p L 2 טענה 3.6 אם L 1 p L 2 ו L 2 P אז.L 1 P הוכחה: בהינתן אלגוריתם פולינומי המכריע את L 2 נוכל להרכיב אותו עם הרדוקציה ולקבל אלגוריתם המכריע את L. 1 טענה L 1 p L 2 3.7 ו,L 2 P אזי.L 1 P הוכחה: בהינתן NT M המזהה את... L 2 מסקנה 3.8 אם,L 1 L 2 ו,L 1 / P אז.L 2 / P :CNF SAT האם פסוקית מסוג....). (. ) 2 (x 1 x מסופקת ע"י השמה כלשהי? :IS בהינתן (k,g) כאשר G גרף לא מכוון, k, N צריך להחזיר כן אם"ם יש ב G קבוצת צמתים בגודל k לפחות שאין ביניהם קשתות. טענה.CNF SAT p IS 3.9 הוכחה: נבנה רדוקציה R כדלהלן: בהינתן נוסחת R ϕ, CNF SAT תבנה גרף שבו יש צומת לכל הופעה של ליטרל ב ϕ. הרדוקציה תבנה קשת בין שני מופעים של ליטרל אם הם מופיעים באותו הסגר, ואם הם סותרים. k יהיה מספר ההסגרים. נכונות: 1. הרדוקציה רצה בזמן פולינומי..2 אם,ϕ CNF SAT אזי :R (ϕ) IS הוכחה: תהא A השמה מספקת עבור ϕ. נניח כי ב ϕ יש k הסגרים. נבחר מכל הסגר בϕ ליטרל אחד שערך האמת ש A מקנה לו הוא T. RU E נסתכל בקבוצת הצמתים המתאימים למופעי הליטרלים שבחרנו. אלה מהווים IS בגודל הרצוי, מכיוון שבחרנו מופע יחיד מכל הסגר, אין בין הצמתים קשתות מסוג 1 (בין מופעים באותו הסגר). מכיון שערך כל הליטרלים הוא T, RUE אין ביניהם קשתות מסוג 2..3 אם,R (ϕ) IS אזי :ϕ CNF SAT הוכחה: יהא k מספר ההסגרים ב ϕ. תהא S קבוצה ב"ת בגודל k ב ( ϕ ) R. נבחין כי מופעי הליטרלים המתאימים לצמתי S מופיעים כולם בהסגרים שונים. כמו כן, יש השמה למשתני ϕ המקנה לכל הליטרלים האלו ערך T RUE (כי אין ביניהם קשתות מסוג 2). השמה זו מספקת את ϕ. מסקנה 3.10 ראינו כי CNF SAT p IS וכן.IS p CNF SAT לכן דרגת הקושי של שתיהן זהה. הגדרה 3.11 שפה L היא NP קשה אם לכל.L p L,L NP אם L, NP אז L היא NP שלמה. משפט CNF SAT 3.12 היא NP קשה. (וגם שלמה). 16
ט' סיון תשע"ב (שעור 20) תזכורת:,IS p CLIQUE וראינו.CNF SAT p IS נרצה להראות כי CNF SAT היא NP שלמה. הגדרה 3.13 תהי M מ"ט לא דטרמיניסטית מעל א"ב קלט Σ וא"ב עבודה.Γ נגדיר W M ע"י ( )} y W M = { x # כאשר :( ) x קידוד של קלט למכונה y M, מקודד ריצה מקבלת של M על x. הערה 3.14 עבור Σ,x מתקיים.x L (M) y s.t. x # y W M טענה.W M P 3.15 הוכחה: קל לראות שקיימת מ"ט V M אשר בהינתן y x # מוודאת כי y היא קידוד של ריצה מקבלת של M על הקלט x, כך ש V M רצה בזמן פולינומי ב y x. # הגדרה 3.16 תהא B A T M שפת השלשות ( )} N, B A T M = {( M, w, 1 t ) t כאשר :( ) קיימת מחרוזת, y t,y כך ש w#y מתקבל ע"י M תוך לכל היותר t צעדים. B A T M NP קיימת מ"ט לא דטרמיניסטית המזהה את B A T M באופן הבא: בהינתן שלשה ) t ( M, W, 1 המכונה תכתוב באופן לא דטרמיניסטי קידוד y # ותדמה ריצה של (x#y) M במשך t צעדים לכל היותר. אם ההדמיה קיבלה, המכונה (הלא דטרמיניסטית שלנו) תקבל, אחרת תדחה. טענה.B A T M NP C 3.17 הוכחה: נראה כי B A T M היא קשה ע"י שנקח L NP ונראה כי.L p B A T M תהא M מ"ט א"ד המזהה את L, ורצה בזמן t. M (n) c n k הרדוקציה תפעל כדלהלן: בהינתן קלט x, הרדוקציה תחזיר את השלשה ( (.t = c x k x + c x k)) 10 ) t ( VM, x, 1 כאשר 1. הרדוקציה עוצרת בזמן פולינומי. (האורך M V קבוע)..2 אם x L אזי :( V M, x, 1 t ) B A T M אם,x L ל L יש ריצה מקבלת על x בזמן הקטן מ.c x k תהא y קידוד של תיאור ריצה זו. אזי V M תקבל את הקלט.x#y כאשר k), y c x k ( x + c x ו V M תקבל בתוך y 10 צעדים. לכן.( V M, x, 1 t ) B A T M.3 אם,( V M, x, 1 t ) B A T M אזי יש y כך ש V M מקבל את,x#y ולכן.x L (M) = L משפט (Cook-Levin) 3.18 CNF SAT NP C הוכחה: נראה רדוקציה מ B A T M ל.CNF SAT טענת עזר: יהי P פרדיקט על משתנים בוליאנים x 1,..., x k (פרדיקט פונקציה שבהינתן השמה, מחזירה T/F פונקציה בוליאנית) אזי יש נוסחת ϕ CNF SAT על המשתנים הנ"ל שמייצגת את P, { ומספר המופעים של ליטרלים בה הוא לכל היותר k2. k }הוכחה: עבור השמה F α = β = (β).c α נגדיר T α β מתקיים β אזי לכל השמה. i : y x i α (x i ) = T i = α (x i ) = F כאשר c α = y 1... y k למשתנים, נגדיר α ϕ := x i α:p (α)=f = (β) ϕ. כל c α מכיל k ליטרלים, וϕ הוא גימום עבור לכל היותר 2 k השמות, לכן בϕ לכל היותר k2 k ליטרלים. c α { T F P (β) = T אזי P (β) = F הרדוקציה תקבל שלשה ) t M ),, w, 1 ותחזיר אוסף של פרדיקטים (שניתן אח"כ לתרגם להסגרים שקולים) אשר ניתן לספק את כולם רק בעזרת ייצוג של ריצה של M על קלט מהצורה,x#y כאשר הריצה באורך של לכל היותר t, וגם y. t הרעיון: הרדוקציה תיצור שלושה סוגי משתנים 1. משתני הסרט: x s,a,i שיהיה 1, אם בזמן s כתובה האות a במקום ה i. אוסף המשתנים מתאר מה כתוב על הסרט בכל אחת מהקונפיגורציות. יש משתנה לכל t},s {0,..., לכל אות α Γ ולכל t}.i { t,...,.2 משתני הראש: h s,i שמציין את מיקום הראש בזמן s במקום.i משתנה לכל t} s {0,..., ולכל t}.i { t,...,.3 משתני המצב: g s,q שמציין כי המכונה במצב q בזמן.s משתנה לכל t} s {0,..., ולכל.q Q 17