מודלים חישוביים, חישוביות וסיבוכיות

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "מודלים חישוביים, חישוביות וסיבוכיות"

Transcript

1 מודלים חישוביים, חישוביות וסיבוכיות סשה גולדשטיין, 20 ביוני 2011 תקציר הסיכום להלן מהווה תקציר של חומר הקורס ואיני נוטל עליו כל אחריות. אתם יכולים להיעזר גם בהקלטות השיעורים וכמובן בספר הלימוד. החומר מבוסס על הרצאותיו של ד"ר גיא קינדלר ושיעורי התרגול של מר רועי פוקס. ניתן למצוא את הגרסה המעודכנת ביותר של סיכום זה ב.Notes Heaven אשמח לקבל הערות ותיקונים לסיכום, גם אחרי מועד המבחן, לכתובת המייל שכתובה למעלה. תוכן עניינים I מודלים חישוביים 3 1 מבוא לשפות פורמליות קבוצות וגדלים של קבוצות שפות פורמליות אוטומטים אוטומטים סופיים דטרמיניסטיים אוטומטים סופיים לא דטרמיניסטיים פעולות על שפות רגולריות למת הניפוח לשפות רגולריות משפט Myhill Nerode ביטויים רגולריים בעיות הכרעה לגבי שפות רגולריות שפות חסרות הקשר דקדוקים חסרי הקשר פעולות על שפות חסרות הקשר צורה נורמלית של חומסקי למת הניפוח לשפות חסרות הקשר בעיות הכרעה לגבי שפות חסרות הקשר אוטומט מחסנית חישוביות II מכונות טיורינג 4 17 מכונות טיורינג "פשוטות" וריאציות על מכונות טיורינג מכונת טיורינג אוניברסלית מכונת טיורינג לא דטרמיניסטית פונקציות חשיבות Random Access Machine כריעות ואי כריעות המחלקות RE,R ואי כריעות סגירות R ו RE רדוקציית מיפוי אנומרטורים (מונים) אוניברסאליות של דקדוקים חסרי הקשר משפט רייס 5.6 1

2 5.7 דקדוקים פורמליים בעיית ה. PCP פונקציות לא חשיבות סיבוכיות III 31 מחלקות זמן, P ו. NP מחלקות זמן הצגת NP באמצעות מוודאים בעיות קלאסיות ב NP רדוקציות מיפוי פולינומיאליות, קושי ושלמות ב NP משפט Cook Levin עוד בעיות NP שלמות בעיות חיפוש סגירות של NP ו conp אינטראקטאביליות (Intractability) וסימולציה בזמן סיבוכיות זיכרון 7 41 מחלקות זיכרון, PSPACE ו. NPSPACE שלמות ב,NL רדוקציית LOGSPACE שלמות ב PSPACE סימולציה במקום פרוטוקולים אינטראקטיביים ורנדומיות מבוא לרנדומיות במכונות טיורינג מבוא לפרוטוקולים אינטראקטיביים בעיית הזהות (Identity) פולינומים שקילות נוסחאות conp ו IP שיתוף סוד

3 להלן מספר דוגמאות לבעיות חישוביות. במהלך הקורס ננסה להפריד בין הבעיות האלה: 1. בהנתן גרף G, רוצים לבדוק האם יש בו מסלול אוילר..2 נתונים המספרים a 1,..., a n, t ורוצים לבדוק האם ניתן להציג את t כסכום של ת"ק של.a 1,..., a n.3 נתונות שתי סדרות מחרוזות בינאריות x 1,..., x n, y 1,..., y n ורוצים לבדוק האם יש סדרת אינדקסים i 1,..., i k כך ש.x i1,..., x ik = y i1,..., y ik 4. בהנתן טענה מתמטית, רוצים לבדוק האם יש לה הוכחה. 5. בהנתן תוכנית מחשב וקלט, רוצים לבדוק האם התוכנית נכנסת ללולאה אינסופית בריצתה על הקלט. במהלך הקורס נראה שהבעיה הראשונה "קלה" מבחינה חישובית, השנייה "קשה" אך עדיין ניתנת לפתרון, ושלוש הבעיות האחרונות אינן ניתנות לפתרון באמצעות מחשב. חלק I מודלים חישוביים 1 מבוא לשפות פורמליות בפרק זה נראה מספר מושגי יסוד. 1.1 קבוצות וגדלים של קבוצות הגדרה B 1.1 A אם קיימת f : A B חח"ע.. B A וגם A B אם A = B. A B וגם A B אם A < B משפט 1.2 (קנטור ברנשטיין) B A = אםם קיימת f : A B חח"ע ועל. N = ℵ 0 ונאמר שאם A = ℵ 0 אז A בת מניה. הגדרה 1.3 הערה 1.4 מתקיים איפוא ש. Z = Q = ℵ 0 הגדרה = ℵ 1.5 1] [0, טענה ℵ 0 < ℵ 1.6 הוכחה: קל לראות ש ℵ 0 ℵ ע"י ההתאמה.f : n 1 n נשתמש בטיעון האלכסון של קנטור כדי להראות שלא קיימת פונקציה על [1,0] N f. : נראה זאת אפילו לגבי (1,0]. נכתוב בשורה את ערכי f: f(1) = 0.a 11 a 12 a f(2) = 0.a 21 a 22 a f(3) = 0.a 31 a 32 a וכעת נגדיר מספר חדש... 3 x = 0.b 1 b 2 b עם הדרישה.b i a ii ברור שאין ל x מקור ביחס ל f ולכן היא אינה על. 3

4 1.2 שפות פורמליות הגדרה 1.7 א"ב Σ זו קבוצה סופית לא ריקה, שלאיבריה נקרא אותיות או תווים. מילה מעל Σ היא המילה הריקה (ללא אותיות) המסומנת ε או איבר ב Σ n עבור n N כלשהו. אם,u w מילים מעל Σ אז המילה uw (לפעמים נסמן u) w היא השרשור שלהן. Σ) = n N {0} Σn כולל המילה הריקה. (כלומר, Σ זהו אוסף כל המילים מעל Σ שפה מעל Σ היא תת קבוצה של Σ. דוגמאות לשפות: 1. השפה הריקה (מעל א"ב כלשהו). 2. שפת כל המילים (מעל א"ב כלשהו). 3. שפת המילים מעל {b,a} באורך 23 לכל היותר. 4. שפת המילים מעל {b,a} שבהן שלוש אותיות זהות רצופות. 5. שפת המספרים העשרוניים החיוביים השלמים המתחלקים ב שפת המספרים הראשוניים. 7. שפת הטענות המתמטיות שיש להן הוכחה במערכת ההיסק של פרגה מאקסיומות.ZFC הגדרה 1.8 אם Σ L 1, L 2 נגדיר את הפעולות הבאות: L 1 L 2 = {uw : w L 1, x L 2 } L 1 L 2 L 1 L 2 L 1 = Σ \ L 1 L 1 = n N {0} L n 1 דוגמאות לפעולות על שפות: יהיו L 1 שפת המילים מעל {b,a} המתחילות ב a ו L 2 שפת המילים מעל אותו א"ב המסתיימות ב b. אז L 1 L 2 אלה מילים המתחילות ב a ומסתיימות ב b. במקרה ספציפי זה, גם L 1 L 2 זה בדיוק אותו הדבר. הערה 1.9 יהי Σ א"ב לא ריק. אזי Σ = ℵ 0 ו. 2 Σ = ℵ 2 אוטומטים האוטומטים שנציג בפרק זה הם מודלים חישוביים פשוטים יחסית שלא מתקרבים ליכולתו של מחשב. 2.1 אוטומטים סופיים דטרמיניסטיים הגדרה 2.1 אוטומט סופי דטרמיניסטי (DFA) הוא חמישייה סדורה ) F A = (Q, Σ, δ, q 0, כאשר Q קבוצת מצבים סופית, Σ הוא א"ב, q 0 Q המצב ההתחלתי, F Q קבוצת המצבים המקבלים, ו δ : Q Σ Q פונקציית המעברים. דוגמאות לאוטומטים: אוטומט שמקבל את המילים שבהן ביט שחוזר על עצמו שלוש פעמים ברציפות: 4

5 אוטומט שמקבל את המילים שבהן מספר האפסים מתחלק ב 3 עם שארית 1: הגדרה פורמלית של האוטומט הזה: } 2 F = {q 1 },q 0 = q 0,Σ = {0, 1},Q = {q 0, q 1, q ונותר להגדיר את פונקציית המעברים. נעשה זאת באמצעות טבלה: δ(q, σ) σ = 0 σ = 1 q = q 0 q 1 q 0 q = q 1 q 2 q 1 q = q 2 q 0 q 2 בדרך כלל נסתפק בציור של האוטומט. הגדרה 2.2 בהנתן A עם פונקציית מעברים,δ נגדיר δ : Q Σ Q באינדוקציה על האורך של Σ :w אם w = ε אז δ (q, w) := q לכל ;q Q אם הגדרנו את δ עבור מילים באורך n ו w היא מילה באורך + 1 n, אז נכתוב את w = ua כאשר a Σ ונגדיר.δ (q, w) = δ (q, ua) := δ(δ (q, u), a) הערה 2.3 נאמר שבריצתו על w האוטומט מגיע למצב q אם.δ (q 0, w) = q האוטומט מקבל את המילה אם.δ (q 0, w) F הגדרה 2.4 יהי A אוטומט סופי דטרמיניסטי מעל Σ. השפה L המתקבלת ע"י A היא L := {w Σ : δ (q 0, w) F } שפה המתקבלת ע"י DFA כלשהו נקראת רגולרית. אוסף השפות הרגולריות יסומן.REG 2.2 אוטומטים סופיים לא דטרמיניסטיים הגדרה 2.5 אוטומט סופי לא דטרמיניסטי (NFA) הוא חמישייה סדורה ) F A = (Q, Σ, δ, Q 0, כאשר Q קבוצת מצבים סופית, Σ א"ב, Q 0 Q קבוצת המצבים ההתחלתיים, F Q קבוצת המצבים המקבלים, ו δ : Q Σ 2 Q פונקציית המעברים. דוגמא לאוטומט סופי לא דטרמיניסטי: 5

6 הגדרה 2.6 בהנתן A עם פונקציית מעברים,δ נגדיר δ : 2 Q Σ 2 Q באינדוקציה על האורך של Σ :w אם w = ε אז δ (S, w) := S לכל ;S Q אם הגדרנו את δ עבור מילים באורך n ו w היא מילה באורך + 1 n, אז נכתוב את w = ua כאשר a Σ ונגדיר δ (S, w) = δ (S, ua) := q δ (S,u) δ(q, a) הערה 2.7 נאמר שהאוטומט מקבל את המילה Σ w אם F.δ (Q 0, w) הגדרה 2.8 ריצה חוקית של A על המילה ) n w = (w 1,..., w היא סדרת מצבים q 1,..., q n Q כך ש q 0 Q 0 וגם i 1.n, q i δ(q i 1, w i ) טענה 2.9 יהי NFA A מעל w L(A) Σ. אםם קיימת ריצה חוקית של A על w שהמצב האחרון בה שייך ל F. הוכחה: טריוויאלית, אינדוקציה על אורך המילה. הערה 2.10 בהגדרה שלנו של NFA (כשמציירים אותו על דף) אנו מרשים מעברי ε. ניתן להשתכנע (ר' תרגול 2) שאין צורך אמיתי במעברים אלה. למשל, אם } {q δ(q, a) = ויש מעבר ε בין q ל,q אנו יכולים להרחיב את δ כך ש } q.δ(q, a) = {q, כלומר, השוני המרכזי של NFA מ DFA אינו מעברי ε, אלא היכולת "להתפצל". משפט 2.11 יהי ) A A = (Q A, Σ, δ A, Q 0, F אוטומט סופי לא דטרמיניסטי. אזי קיים אוטומט סופי דטרמיניסטי ) B B = (Q B, Σ, δ B, q 0, F המקיים L(A).L(B) = יתר על כן, קיים B כזה שעבורו A, Q B 2 Q והחסם הדוק..q 0 = Q 0,Q B = 2 Q A את פונקציית המעברים נגדיר כך: הוכחה: נגדיר את B כדלהלן. δ B : Q B Σ Q B δ B (S, a) = δa(s, a).f B = {S 2 Q A כעת יש להראות באינדוקציה ש w) δb (S, w) = δ A (S, ומכאן מתקבל הדרוש: ולבסוף } A : S F w L(A) δ A(Q 0, w) F A δ B(q 0, w) F B w L(B) דוגמה לדטרמיניזציה: ר' תרגיל 2 שאלה 3 ב'. טענה 2.12 החסם במשפט הדוק, כלומר יש משפחה אינסופית של שפות שה DFA המינימלי שמזהה אותן הוא בעל מספר אקספוננציאלי של מצבים לעומת ה NFA השקול. 6

7 הוכחה: המשפחה היא L k = {wau : w, u {a, b}, u = k 1} ה NFA שמזהה את L k נראה כך: בסה"כ באוטומט הזה יש + 1 k מצבים. לעומת זאת, ב DFA הקטן ביותר שמזהה את L k יש לפחות 2 k מצבים. אינטואיטיבית, האוטומט צריך לזכור בכל מצב האם היה a עד אותו שלב או לא (לפחות בחלון של k אותיות אחורה צריך לזכור את כל האותיות שנקראו). מספר האפשרויות האלה הוא 2. k פורמלית: נתבונן בכל המילים Σ k שמספרן 2 k במקרה שלנו, ונניח בשלילה שיש A k DFA שבו. Q < 2 k אז כעת יש y x Σ k כך ש y) δ (q 0, x) = δ (q 0, משיקולי שובך היונים. מכך ש x y קיים i כך ש.x i y i בה"כ x i = a ו.y i = b נוסיף לשתי המילים את הסיפא k 1.z = b מתקיים ש yz) δ (q 0, xz) = δ (q 0, אבל ברור ש xz L ו.yz / L זו הסתירה. הערה 2.13 לכאורה, בדרך כלל אי דטרמיניסטיות עוזרת לנו. אבל יש מקרים (גם פשוטים) שבהם לא ניתן לצמצם אוטומט דטרמיניסטי ע"י מעבר לאוטומט לא דטרמיניסטי שקול. למשל, האוטומט הדטרמיניסטי שמקבל את } k L = a} הוא בעל + 1 k מצבים, וניתן להוכיח (באמצעות ניפוח) שגם באוטומט לא דטרמיניסטי שמקבל את L חייבים להיות לפחות + 1 k מצבים. 2.3 פעולות על שפות רגולריות בהנתן L, M שפות רגולריות מעל א"ב,Σ נרצה לבדוק האם L L M, L M, L M, L, הן רגולריות. טענה L REG = L REG 2.14 הוכחה: יש אוטומט ) F A = (Q, Σ, δ, q 0, המקבל את.L האוטומט ) F A = (Q, Σ, δ, q 0, Q \ זהו האוטומט המבוקש המקבל את L ולכן היא רגולרית. (כמובן, הוכחה זו לא שלמה.) טענה L, M REG = L M REG 2.15 הוכחה: יהיו ) A A = (Q, Σ, δ A, q 0, F ו ) B B = (R, Σ, δ B, r 0, F אוטומטים המזהים את L, M בהתאמה. אזי האוטומט ) B C = (Q R, Σ, δ C, (q 0, r 0 ), F A F (המכונה גם "אוטומט המכפלה") עם δ C ((q, r), a) = (δ A (q, a), δ B (r, a)) מקבל בדיוק את L. M תחילה נראה באינדוקציה ש δ C((q 0, r 0 ), w) = (δ A(q 0, w), δ B(r 0, w)) (זה טריוויאלי). כעת, אם w L M אז δ A (q 0, w) F A ו δ B (r 0, w) F B ולכן δ C ((q 0, r 0 ), w) F A F B ולהיפך. טענה L, M REG = L M REG 2.16 הוכחה: כמו הטענה הקודמת, אלא שקבוצת המצבים המקבלים של C תהיה ) B.(F A R) (Q F טענה L, M REG = L M REG

8 הוכחה: יהיו ) A A = (Q, Σ, δ A, q 0, F ו ) B B = (R, Σ, δ B, r 0, F אוטומטים המזהים את L, M בהתאמה. נבנה C = NFA ל.r 0 q F A מכל ε אבל בנוסף מאפשרת מעבר,δ B ו δ A מתנהגת כמו δ כאשר (Q R, Σ, δ, q 0, F B ) ברור מהבנייה של האוטומט שאם מילה היא ב L M אז ישנה ריצה של האוטומט שמקבלת אותה, ולהיפך - אם האוטומט מקבל את המילה, אפשר לשבור אותה לשני חלקים בדיוק סביב מעבר ה ε שבוצע עליה (שהרי אין שום חיבור אחר בין Q ל R). טענה L REG = L REG 2.18 הוכחה: ניקח NFA שמקבל את L ונבנה ממנו NFA שנראה אותו הדבר, אבל δ מחברת במעבר ε כל מצב מקבל שלו לכל מצב התחלתי שלו. כדי לקבל גם את ε נוסיף מצב מקבל והתחלתי ללא כל מעברים ממנו. לדוגמא, עבור האוטומט האוטומט החדש הוא 2.4 למת הניפוח לשפות רגולריות נרצה להראות שקיימות גם שפות לא רגולריות. הדבר ברור משיקולי ספירה (קבוצת האוטומטים המגדירים שפות רגולריות היא בת מניה, בעוד שקבוצת השפות אינה בת מניה), אבל אנו מחפשים דרך לטעון על שפה ספציפית שהיא לא רגולרית. טענה 2.19 יהי 1} {0, = Σ ו N}.L = {0 n 1 n : n אזי.L / REG הוכחה: אינטואיטיבית זה ברור - האוטומט צריך "לזכור" כמה אפסים וכמה אחדים היו עד עכשיו, וזה דורש אינסוף מצבים. פורמלית: נניח בשלילה ש L REG והאוטומט ) F A = (Q, Σ, δ, q 0, מקבל אותה, ויהי Q.k = נתבונן על ריצת האוטומט על המילה 0. 1+k 1 1+k L האוטומט עובר בין + 1 k מצבים במהלך הטיפול באפסים, ואז עוד + 1 k מצבים במהלך הטיפול באחדים. ב + 1 k המצבים הראשונים יש מצב אחד שחוזרים עליו לפחות פעמיים (שובך היונים), ונסמן אותם q i = q j כאשר i. < j כלומר, אחרי 0 i הגענו למצב q i ולאחר עוד 0 j i שוב הגענו למצב q. i כלומר, הריצה שלנו על המילה 0 i 0 j i 0 k j 1 k צריכה להיות זהה לריצה על 0, i 0 j i 0 j i 0 k j 1 k אז אנחנו אמורים לקבל גם אותה - אבל המילה הזאת אינה בשפה בכלל! זוהי סתירה, ולכן נסיק שהשפה אינה רגולרית כנדרש. משפט 2.20 (למת הניפוח, (Pumping Lemma אם L רגולרית אז p > 0 w L, w > p x, y, z Σ w = xyz, y > 0, xy p i N {0} xy i z L הוכחה: ההוכחה דומה למה שעשינו קודם, כאשר p ייבחר להיות + 1 Q עבור האוטומט. דוגמא לשימוש בלמת הניפוח: 8

9 מעל b},σ = {a, נראה ש } Σ L = {uu : u אינה רגולרית. נניח בשלילה שהיא רגולרית, ואז קיים > 0 p מהלמה. המילה y. בלבד, וגם > 0 מורכב מ a ים xy כך ש xyz מקיימת את תנאי הלמה, ולכן יש לה פירוק a 1+p ba 1+p b L נסמן.z = a p+1 r m ba p+1 b,y = a r,x = a m כעת אנחנו יכולים לייצר מילים שאינן בשפה, למשל המילה xyyz לפי הלמה צריכה להיות בשפה, אולם xyyz = a p+r+1 ba 1+p b וכמובן אינה בשפה. זוהי סתירה ולכן L אינה רגולרית. 2.5 משפט Myhill Nerode למת הניפוח מהווה תנאי הכרחי לכך ששפה תהיה רגולרית, אך היא אינה תנאי מספיק. למשל, השפה : {b L = w},a} {(w) # a (w) # b אינה רגולרית, אך היא מקיימת את למת הניפוח. אנו רוצים תנאי הכרחי ומספיק לרגולריות. הגדרה 2.21 תהי Σ.L נאמר ש Σ u, w שקולות ביחס ל L אם לכל Σ v מתקיים ש uv, wv L או.uv, wv / L (בפרט עבור v = ε ברור ש v, w L או (.v, w / L אם יש Σ v שאינה מקיימת את התנאי הנ"ל, נאמר שהיא מפרידה בין,u. w אם u, w שקולות ביחס ל L נסמן.u L w הערה 2.22 היחס L הוא יחס שקילות על מילים ב Σ. דוגמאות ליחס השקילות: תהי 1(mod3)}.L 1 = {w : # a (w) מהן מחלקות השקילות ביחס ל?L 1 יש שלוש מחלקות שקילות - = [aaa] [a], [aa], [ε]. ראינו כבר DFA מתאים, ולמעשה המצבים באוטומט "זוכרים" את מחלקת השקילות של המילה. תהי (w)}.l 2 = {w : # a (w) > # b כאן כל ] k [a עם 0 k מגדירה מחלקת שקילות נפרדת. למשל a L aa שכן המילה b מפרידה ביניהן. גם כל ] k b] עם 0 k מהווה מחלקת שקילות. למעשה, יש מחלקת שקילות לכל מספר z Z המכילה את המילים.# a (w) # b (w) = z כך ש w טענה 2.23 אם Σ L ו DFA A המקבל את,L וכן המילים Σ u, w מקיימות w) δ (q 0, u) = δ (q 0, אז.u L w הוכחה: לכל Σ v נקבל wv),δ (q 0, uv) = δ (q 0, ולכן uv L אםם,wv L כלומר.u L w משפט (Myhill Nerode) 2.24 L REG אםם מספר מחלקות השקילות של היחס L הוא סופי. הוכחה: ( ) תהי DFA A L, REG המזהה אותה, ו Q קבוצת המצבים שלו. נניח בה"כ שלכל q Q יש מילה שנסמנה w q כך ש δ. q) 0, w q ) = q זה בה"כ כי מצבים שאי אפשר להגיע אליהם אפשר לסלק מהאוטומט ללא שינוי השפה שלו. נסתכל על קבוצת מחלקות השקילות {Q w]}. q ] : q זו קבוצה סופית והיא מכילה את כל מחלקות השקילות של, L שכן לכל Σ w אם δ (q 0, w) = q אז ] q w [w לפי הטענה הקודמת. לכן מספר מחלקות השקילות הוא סופי. ( ) תהי Σ L שמספר מחלקות השקילות שלה לפי L הוא n. אז נראה ש L רגולרית, נציג DFA בעל n מצבים בדיוק המקבל את L, ונראה שאין DFA כזה בעל פחות מ n מצבים. אם יש DFA עם פחות מ n מצבים שמקבל את L, אז יש פחות מ n מחלקות שקילות לפי הטענה הקודמת, וזו סתירה. כעת נבנה אוטומט עם המצבים n 1 q 0, q 1,..., q המתאימים למחלקות השקילות של, L כאשר [ε].q 0 = נגדיר את = a) δ(q, a) = δ([w],.[wa] נשים לב שההגדרה לא תלויה בבחירת w כך ש,[w] = q שהרי אם גם [w ] = q אז.w a L wa אוסף המצבים המקבלים יהיה {L δ} q) 0, (w : w ; אפשר להסתכל על זה כמחלקות השקילות המכילות מילים בשפה (שהרי אם מחלקת שקילות מכילה מילה אחת בשפה, כל המילים בה הן בשפה). נותר לשים לב ש [w] δ q) 0, (w = באינדוקציה קלה על אורך המילה. כעת w L אםם [w] מכילה מילים ב L אםם [w] F אםם,δ (q 0, w) F כלומר אםם כשמריצים את A על w מגיעים למצב מקבל. לכן L(A) = L כנדרש. שימושים במשפט :Myhill Nerode.1 נתבונן בשפה.}}.., 2 {2 0, 2 1, 2 / k L = {a k : מעל {a}.σ = לבדיקת רגולריות נספור כמה מחלקות שקילות יש ליחס. L נתבונן במילים x = a 2n ו y = a 2t עבור.n < t יש להן סיפא מפרידה, למשל z = a 2n ואז xz L אבל.yz / L לכן [y] [x]. זה נכון לכל n < t ולכן יש אינסוף מחלקות שקילות, כלומר L אינה רגולרית..2 נתבונן בשפה a}.l = {w {a, b} : w ends with נסתכל על מילים x, y ו z שעשויה להפריד ביניהן. אם z מסתיימת ב a אז xz, yz L ואחרת.xz, yz / L כמו כן, יש שתי מחלקות שקילות שמופרדות ע"י - ε המילים בשפה והמילים שאינן בשפה. כל שאר ה z ים לא יכולים להפריד בין מילים, ולכן L רגולרית, וכמובן האוטומט המזהה אותה הוא: 9

10 באוטומט זה המצב המקבל מתאים למחלקת השקילות L והמצב ההתחלתי מתאים למחלקת השקילות L. 3. מינימיזציה של :DFA נתאר אלגוריתם המקבל A DFA ומייצר ממנו DFA שקול עם מספר מינימלי של מצבים. הפלט צריך להיות מחלקות השקילות ביחס ל,L(A) שמשרות את האוטומט שראינו בהוכחת משפט.Myhill Nerode נגדיר את היחס החדש k כך ש Σ x, y מקיימות x k y אם קיימת Σ z עם z k המפרידה בין המילים. היחס, 0 למשל, מפריד בין מילים שמלכתחילה אחת מהן שייכת לשפה והשניה לא, כי המפריד היחיד זו המילה הריקה. עבור 0 מחלקות השקילות הן {L,L}. עבור היחסים k,..., 1 יכולות להתווסף מחלקות שקילות. האלגוריתם יראה שהיחס המקורי מתקבל בתור n סופי כלשהו. נתחיל ב L} {L, 0 ו 0.i לכל p, q Q נאמר ש p 1+i q אלא אם כן: q ;p i או קיים σ Σ כך ש σ).δ(q, σ) δ(p, 1 + i i וחוזרים על התהליך עד שלא מתקבלים יותר שינויים במהלך הלולאה הפנימית. אינטואיטיבית, מספר מחלקות השקילות הוא סופי וברור שהתהליך הזה עוצר בשלב כלשהו, ומתקבלת הקבוצה המינימלית של מחלקות שקילות. מהן אפשר לבנות אוטומט מצומצם לפי המצבים הנמצאים באותה מחלקת שקילות. 2.6 ביטויים רגולריים הגדרה 2.25 ביטוי רגולרי מעל א"ב Σ הוא מהצורה:.1 - עם השפה = ;L ;L ε = {ε} עם השפה - ε.2.3 עבור,a Σ הביטוי a - עם השפה {a} ;L a =.4 אם R 1, R 2 ביטויים רגולריים מעל,Σ אז ) 2 (R 1 ) (R הוא ביטוי רגולרי - עם השפה ;L (R1) (R 2) = L R1 L R2.5 אם R 1, R 2 ביטויים רגולריים מעל,Σ אז ) 2 (R 1 ) (R הוא ביטוי רגולרי - עם השפה ;L (R1) (R 2) = L R1 L R2.6 אם R ביטוי רגולרי מעל,Σ אז (R) ביטוי רגולרי - עם השפה ) R ;L (R) = (L 7. אם R ביטוי רגולרי מעל Σ, אז + (R) מוגדר להיות כינוי לביטוי הרגולרי. R(R) דוגמאות לביטויים רגולריים: שפת המילים המכילות aba ומסתיימות ב b מתוארת ע"י R = (a b) aba(a b) b שפת כל המילים מעל b} {a, מתוארת ע"י b) R = (a שפת המילים שאינן מכילות שני אפסים רצופים, ואם אינן ריקות מתחילות באפס ומסתיימות באחד מתוארת ע"י = R ((0(1) + ) שפת המילים הלא ריקות באורך גדול מ 1 המתחילות ומסתיימות באותה אות מתוארת ע"י הביטוי (b(a R = (a(a (b (a b) b) נשים לב גם ש L( ε ) L( ) = משפט 2.26 יהי R ביטוי רגולרי מעל.Σ אזי.L R REG הוכחה: באינדוקציה שלמה על האורך של R. עבור = 1 R הביטויים הרגולריים a, ε, משרים כמובן שפות רגולריות. עבור R = n כאשר הוכחנו כבר עבור > n, מתבוננים בשלושת המקרים:.1 ) 2 R = (R 1 ) (R נובע מכך שאיחוד של שפות רגולריות הוא רגולרי, ולגבי R 1, R 2 משתמשים בהנחת האינדוקציה..2 ) 2 R = (R 1 ) (R נובע מכך ששרשור של שפות רגולריות הוא רגולרי. 3. ) 1 R = R) נובע מכך שהסגור של קלייני של שפה רגולרית הוא שפה רגולרית. בזאת השלמנו את האינדוקציה. 10

11 הערה 2.27 מהמשפט מקבלים גם תהליך רקורסיבי לבניית NFA המזהה את הביטוי כולו מה NFA ים המזהים את חלקי הביטוי השונים. משפט 2.28 לכל שפה רגולרית L קיים ביטוי רגולרי R כך ש L. = L R הוכחה: (לא פורמלית) נתבונן ב DFA שמזהה את L, ונרצה "להיפטר" מכל המצבים פרט למצב ההתחלתי והמצב המקבל. כדי להיפטר ממצב ביניים מסוים, נכתוב על הקשת החדשה שמדלגת על המצב את הביטוי הרגולרי המתאים. ניתן להראות פורמלית שתהליך זה מביא לביטוי רגולרי שנשאר על הקשת האחת מהמצב ההתחלתי למצב המקבל. הערה 2.29 המעבר בין שני הייצוגים של שפה - בתור אוטומט ובתור ביטוי רגולרי - עלול לקחת זמן אקספוננציאלי. (לא הוכחנו זאת.) 2.7 בעיות הכרעה לגבי שפות רגולריות נשאל מספר שאלות לגבי שפות רגולריות, ובהמשך נחזור עליהן גם לגבי מודלים מורכבים יותר. 1. ריקנות: בתרגיל 2 ראינו כיצד אפשר לבדוק האם השפה של DFA מסוים היא ריקה - מחפשים מהלך בגרף מהמצב ההתחלתי אל המצב המקבל. 2. הכלה: בהינתן DFA ים,A B כיצד נבדוק האם L(B)?L(A) השאלה שקולה לבדיקה = L(B).L(A) אנו יודעים למצוא את המשלים של אוטומט דטרמיניסטי באופן יעיל, ואת החיתוך באמצעות אוטומט מכפלה, והצטמצמנו בחזרה לבדיקת ריקנות. 3. אוניברסאליות: באופן דומה אפשר לבדוק האם Σ L(A) = ע"י בדיקה האם =.L(A) 4. הבעיות הנ"ל לגבי NFA אינן כה טריוויאליות. כפי שראינו בתרגיל 11, ניתן לבנות NFA ששפתו היא ההשמות הלא מספקות של נוסחת.3CNF כלומר, בדיקה האם Σ L(A) = עבור A NFA מאפשרת לבדוק האם נוסחת 3CNF ניתנת לסיפוק, בעוד ש 1.3SAT NP C לעומת זאת, אנו יודעים לבדוק ריקנות של NFA בזמן פולינומי (ואף במקום לוגריתמי), באופן דומה ל DFA (חיפוש בגרף). ניתן להסיק שאנו לא יודעים למצוא משלים של NFA בזמן שאינו אקספוננציאלי. 3 שפות חסרות הקשר שפות חסרות הקשר משמשות למשל לתיאור של שפות תכנות, והן חזקות יותר מהשפות הרגולריות. למשל, כבר השפה הפשוטה של הסוגריים המאוזנים אינה רגולרית (לפי למת הניפוח), אבל ניתנת לתיאור ע"י דקדוק חסר הקשר. 3.1 דקדוקים חסרי הקשר הגדרה 3.1 דקדוק חסר הקשר (CFG) הוא רביעייה (S G =,V),Σ,R כאשר V קבוצה סופית של משתנים, Σ קבוצה סופית של טרמינלים ומתקיים = Σ R V, קבוצה סופית של כללי גזירה, ו S משתנה ההתחלה. כלל גזירה הוא זוג סדור המכיל משתנה יחיד מצד שמאל שלו ומצד ימין הוא מכיל מחרוזת מעל הא"ב {ε} Σ. V דוגמאות לדקדוקים חסרי הקשר: 1. שפת הסוגריים המאוזנים: A A (A) A AA A ε.2 השפה n} :L = {a n b m : m A A aab A B B Bb B ε 1 ולמעשה, במופעים קודמים של הקורס אף הופיעה הוכחה שבדיקת אוניברסאליות של NFA היא שלמה ב.PSPACE לכן לא ניתן לצפות לפתרון יעיל של הבעיה אלא אם כן P. = PSPACE 11

12 .3 שפת כל המילים מהצורה a i b j c k כאשר 0 j i, ו 1 :k S S ABC A aa A ε B bb B ε C cc C c הגדרה 3.2 השפה המתאימה לדקדוק חסר הקשר G תסומן L(G) ומכילה בדיוק את המילים מעל Σ המתקבלות כאשר מתחילים במחרוזת S ובכל שלב מפעילים כלל גזירה ע"י החלפת המשתנה שבו במחרוזת שבצד ימין שלו, עד שנשארים עם טרמינלים בלבד. שפה המתאימה לדקדוק חסר הקשר תיקרא שפה חסרת הקשר.(CFL) קבוצת השפות חסרות ההקשר תסומן.CF L הערה 3.3 ניתן לדבר גם על עץ הגזירה של מילה מסוימת בשפה, שבו טרמינלים ומשתנים: משפט REG CF L 3.4 הוכחה: תהי L REG ו DFA A שמקבל אותה, ) F.A = (Q, Σ, δ, q 0, נבנה G CFG עם אותה השפה. נסמן ) 0 G = (Q, Σ, R, q ונגדיר ב R את כללי הגזירה: לכל a Σ, q 1, q 2 Q שעבורם δ(q 1, a) = q 2 יהיה כלל גזירה מהצורה.q 1 aq 2 בנוסף יהיה כלל q ε לכל.q F נשאר להראות ש L(G).L(A) = הטענה העיקרית היא שאחרי t צעדי גזירה נקבל מחרוזת מהצורה wq כאשר (w q, = δ q) 0, או מחרוזת מהצורה w כאשר L(A) w. את זה אפשר להראות באינדוקציה על מספר צעדי הגזירה, ולכן L(A).L(G) להיפך, לכל Σ w המילה wq עבור w) q = δ (q 0, נגזרת מ,G ושוב מראים זאת באינדוקציה על אורך המילה. הערה 3.5 דקדוק חסר הקשר נקרא דקדוק שמאלי אם כל כלל גזירה הוא מהצורות A ε או A wb כאשר w מכילה רק טרמינלים ו B משתנה. קל לראות שדקדוק שמאלי נותן שפות רגולריות בלבד. (תרגיל 4, שאלה 5.) הגדרה 3.6 דקדוק חסר הקשר הוא חד משמעי אם כל מילה ניתנת לגזירה בדרך אחת בלבד. למשל, הדקדוק הבא אינו חד משמעי, A A AA (A) ε משום שניתן לגזור ממנו את המילה () במספר דרכים. למשל: () (A) A היא דרך אחת, ו () (A) A AA היא דרך שניה. הערה 3.7 לא לכל שפה חסרת הקשר יש דקדוק חסר הקשר חד משמעי שמתאר אותה. (לא ראינו מדוע.) 3.2 פעולות על שפות חסרות הקשר בהנתן L, M שפות חסרות הקשר מעל א"ב,Σ נרצה לבדוק האם L L M, L M, L M, L, הן חסרות הקשר, בדומה למה שעשינו עבור שפות רגולריות. טענה L, M CF L = L 1 L 2 CF L 3.8 הוכחה: ראשית נשנה את שמות המשתנים כדי שמשתני L 1, L 2 יהיו קבוצות זרות. ואז, אם S 1, S 2 המשתנים ההתחלתיים אז ניצור משתנה חדש S שיהיה המשתנה ההתחלתי של L 1 L 2 וכללי גזירה חדשים S S 1 ו S. S 2 קל לראות שהדקדוק המתקבל הוא הדרוש. 12

13 הערה 3.9 לעומת זאת, שפות חסרות הקשר אינן סגורות לחיתוך (ולכן גם לא למשלים). למשל, נראה בהמשך שהשפה } n a} n b n c אינה חסרת הקשר, אבל היא מתקבלת בתור } l a} l b n c n } a} n b n c שהן שתיהן שפות חסרות הקשר. למשל, להלן הדקדוק עבור השפה } l :{a n b n c S A aab ε C cc ε ובאופן דומה אפשר למצוא דקדוק חסר הקשר ל } n a}. l b n c טענה L, M CF L = L M CF L 3.10 הוכחה: בדומה להוכחה המתאימה לשפות רגולריות, כאשר משתמשים באוטומט מחסנית. טענה L CF L = L CF L 3.11 הוכחה: בדומה להוכחה המתאימה לשפות רגולריות, כאשר משתמשים באוטומט מחסנית. טענה L REG, M CF L = L M CF L 3.12 הוכחה: (תרגיל 5, שאלה 1) סקיצת ההוכחה: בניית מכפלה של DFA שמזהה את L ו PDA שמזהה את M. כיוון שה DFA לא צריך מחסנית, אין "התנגשות". 3.3 צורה נורמלית של חומסקי אנו מחפשים צורה פשוטה לתאר דקדוקים כדי שיהיה לנו יותר קל להוכיח דברים על שפות חסרות הקשר. אם נראה שכל דקדוק חסר הקשר ניתן להצגה בצורה פשוטה יחסית שגם חוסמת בקלות את גודל המילה המתקבלת משרשרת גזירה חסומה, זה יקל עלינו מאוד. הגדרה 3.13 נאמר שדקדוק חסר הקשר הוא בצורה נורמלית של חומסקי Form) (Chomsky Normal אם כל כללי הגזירה שלו הם מהצורות הבאות: A ε ואין חוקים נוספים מהצורה S ε.1 A משתנים שאינם המשתנה ההתחלתי אבל יכולים להיות זהים או שווים ל,B C כאשר A BC 2..3 σ A כאשר σ Σ (טרמינל) טענה 3.14 לכל דקדוק חסר הקשר קיים דקדוק חסר הקשר בעל אותה שפה שהוא בצורה נורמלית של חומסקי. הוכחה: נראה אלגוריתם להפיכת CFG לצורה נורמלית של חומסקי: 1. נוסיף משתנה התחלתי חדש S 0 וכלל גזירה S. 0 S קל לראות שהשפה לא משתנה כתוצאה מזה, אלא רק הארכנו כל גזירה של מילה בעוד שלב אחד. 2. לכל כלל גזירה מהצורה A ε (כאשר A) S 0 נעבור על כל הכללים מהצורה B wau ונוסיף להם את החוק B wu (כאשר,w u מחרוזות כלשהן). 2 את הכלל A ε נוכל להסיר כעת, וגם זה לא פוגע בשפה..3 לכל כלל מהצורה A B (כאשר ( 3 A B נעבור על כללים מהצורה C wau ונוסיף את הכלל.C wbu לבסוף נוכל להסיר את הכלל A B וגם זה לא פוגע בשפה. את זאת נעשה גם עבור כללים שבהם B. Σ.4 לכל כלל מהצורה A v 1... v k כאשר > 2 k נוסיף משתנים חדשים k 1 u 2,..., u ואת כללי הגזירה החדשים,A v 1 u 2 u 3 v 3 u 4,u 2 v 2 u 3 וכו' עד.u k 1 v k 1 v k כמובן, לא פגענו בשפה. 5. נוסיף משתנים מיוחדים X σ לכל σ Σ ואת הכללים X. σ σ בכל כלל שבו באגף ימין יש σ נחליף אותו ב X. σ נותר להוכיח (לא עשינו זאת) שהתהליך מסתיים. את זה שהשפה לא משתנה קל לראות. הערה 3.15 כתוצאת לוואי, אנו מגלים האם דקדוק גוזר את המילה הריקה. אם קיבלנו את הכלל S 0 ε אז כן, אחרת לא. 2 לדוגמה, אם היה הכלל B ACAD אז נצטרך להוסיף את הכללים B CAD,B ACD ו.B CD 3 שכן כללים מהצורה A A אפשר להסיר מהדקדוק ללא פגיעה בשפה. 13

14 דוגמת הרצה של האלגוריתם: נתחיל מהדקדוק הבא: S S ASA ab A B S B b ε הכלל ה"תקין" היחיד הוא B. b נתחיל את התהליך..1 ניצור כלל S 0 S חדש..2 נתקן את B ε ע"י הסרתו על חשבון החוקים A ε ו.S a.3 נתקן את הכלל A ε ע"י הסרתו על חשבון החוקים S AS ו.S SA.4 נתקן את הכלל A B ע"י חסרתו על חשבון החוקים.S ASB,S BSA,S BSB,S SB,S BS אנו רחוקים מסיום אך נעצור כאן. 3.4 למת הניפוח לשפות חסרות הקשר גם עבור שפות חסרות הקשר למת הניפוח עובדת, אבל יהיה קצת יותר קשה להראות מדוע. הצורה הנורמלית של חומסקי מאוד תעזור לנו כדי לתאר היטב את עץ הגזירה של הדקדוק דנן. למה 3.16 תהי.L CF L אז p > 0 w L, w > p w = uxyzv, xz > 0, xyz p i N {0} ux i yz i v L הוכחה: תהי Σ L חסרת הקשר ויהי G דקדוק חסר הקשר (S G =,Q),Σ,R שגוזר אותה. יהי n האורך המקסימלי של מחרוזת המופיעה בכלל גזירה מתוך R. נגדיר את קבוע הניפוח להיות 1+ Q p =: n ונראה שהוא מקיים את הדרוש. תהי w L עם w. > p יהי T עץ גזירה מינימלי הגוזר את w ע"פ G (מינימלי מבחינת כמות הצמתים בעץ). הגובה של T: אם העץ בגובה l אז מספר העלים הוא לכל היותר n l (בגלל החסם על אורך כלל גזירה). לכן הגובה של T הוא גדול מ + 1 Q, כי המילה באורך < p וכל אות בה היא עלה בעץ הגזירה. לכן, יש מסלול S 0, S 1,..., S l = S באורך < Q המתחיל בעלה ומגיע לשורש של.T לפי עיקרון שובך היונים, חייב להיות איזה אינדקס ראשון i כך שקיים אינדקס i > j המקיים S, i = S j כלומר i הוא המקום הראשון שבו חוזרים על משתנה שכבר ראינו במהלך המסלול. נסמן ב T i את תת העץ שתלוי על S i וב T j את תת העץ התלוי על S. j כעת ידועה לנו החלוקה של w מהלמה. כל הטרמינלים משמאל ל T i יהיו u ואלה שמימין לו יהיו v. בתוך T i כל הטרמינלים משמאל ל T j יהיו x, מימין ל T j יהיו z, ובתוך T j יהיו y. עתה נפנה לטענות הלמה:.1 הגובה של T i הוא 1 + Q ולכן מספר העלים בו Q +1.p = n כלומר, xyz p כפי שרצינו. 2. נניח בשלילה ש,xz = ε אז אם נחליף את T i ב T j נקבל עץ גזירה חוקי ע"פ G שעדיין גוזר את w ולבטח יש בו פחות צמתים (לפחות חסכנו את הצומת S), i וזו סתירה. מותר לנו לעשות את ההחלפה הזאת כי S i = S j והצומת הקודם ל S i השתמש בכלל גזירה שבו אותו משתנה. לכן > 0. xz 3. על מנת לנפח ב = 0 i עלינו להחליף את T i ב T, j בדיוק כמו ב (2). קל לראות שזה מספק מילה בשפה מאותם שיקולים. 4. על מנת לנפח ב = 2 i עלינו להדביק במקום T j עותק של T i (עם T j בפנים). קל להשתכנע שזה עובד גם עבור > 2 i (אינדוקציה). דוגמאות לשימוש בלמה:.1 נתבונן בשפה הבאה מעל #} b, :Σ = {a, L = {w#u : w, u {a, b} x, y : w = xuy} נוכיח שהיא אינה חסרת הקשר בעזרת למת הניפוח. נניח בשלילה שהיא חסרת הקשר. מהלמה קיים p כך שאפשר לפרק את המילה w = a p b p #a p b p L ל w = uvxyz לפי תנאי הלמה. אז vxy p ונחלק למקרים: 14

15 1. vxy נמצא משמאל ל #. במקרה זה אפשר לנפח את vy באמצעות = 0 i וזה מקטין את הביטוי a, p b p מה שגורם לזה שהמילה כבר לא בשפה, כי הביטוי מימין ל # כבר לא יכול להיות תת מחרוזת של ביטוי קצר יותר משמאל. 2. vxy נמצא מימין ל #. במקרה זה אפשר לנפח באמצעות = 2 i וזה שוב גורם לצד ימין להיות ארוך יותר מצד שמאל, ולכן הוא לא יכול להיות תת מחרוזת. 3. vxy מכיל את #. גם כאן נחלק למקרים: (א) v מכיל #. אפשר לנפח עם = 0 i ולקבל מילה שאין בה בכלל # ולכן כמובן אינה בשפה. (ב) y מכיל #. כנ"ל. (ג) x מכיל #. זה אומר ש v מורכב רק מ b ים ו y מורכב רק מ a ים. שוב נחלק למקרים: v > 0 i. אז ננפח ב = 0 i ואז בצד שמאל הקטנו את מספר ה b ים ובצד ימין לא, ולכן לא יכול להיות שצד ימין הוא תת מחרוזת של צד שמאל. y > 0.ii אז ננפח ב = 2 i ואז הגדלנו את מספר ה a ים מימין ולא שינינו את מספרם משמאל ושוב המילה אינה בשפה. בזאת השלמנו את ההוכחה ש L אינה חסרת הקשר..2 נוכיח ש.L = {a n b n c n : n N} / CF L נניח בשלילה ש L CF L ויהי p קבוע הניפוח שלה. נעיין במילה w. = a 5p b 5p c 5p ע"פ למת הניפוח אפשר לחלק אותה ל w. = uxyzv גם ב x וגם ב z יופיעו אותיות מסוג אחד בלבד, ואז הניפוח (למשל עם = 2 i) ייצור מצב שמספר מופעי אות אחת לפחות יגדל ומספר מופעי אות אחת לפחות לא ישתנה. המילה המתקבלת אינה ב L, בסתירה. 3.5 בעיות הכרעה לגבי שפות חסרות הקשר 1. נתחיל מבעיית ה - membership האם מילה w נגזרת מהדקדוק G? תחילה נשים לב שמספיק להסתכל על דקדוקים בצורה נורמלית של חומסקי. נתאר אלגוריתם תכנון דינאמי לבעיה. נחזיק טבלה n n עבור המילה w, = σ 1... σ n כאשר בתא ה,i j יהיו כל המשתנים של G שמהם יש גזירה של σ i... σ j באמצעות כללי הגזירה של G. מקרה הבסיס הוא כאשר i = j ומחפשים את המשתנים שמהם אפשר לגזור את σ; i שאר המקרים מתקבלים בצורה רקורסיבית: עבור j > i המשתנים X שמהם אפשר לגזור את σ i... σ j הם כאלה שעבורם יש כלל מהצורה X Y Z ופירוק = j σ i... σ.σ k+1... σ j את Z ומ σ i... σ k את Y כך שרקורסיבית אפשר לגזור מ σ i... σ k σ k+1... σ j G. מ w של הטבלה אםם אפשר לגזור את המילה,1 n מופיע בתא ה S 2. באופן די דומה אפשר לפתור גם את בעיית הריקנות. נתחיל בכך ש"נסמן" את כל הטרמינלים. לכל כלל גזירה מהצורה A X 1... X k נבדוק האם X 1,..., X k כולם מסומנים. אם כן, נסמן גם את A. נמשיך באופן כזה עד שלא מסמנים יותר שום דבר. אם S סומן, השפה של הדקדוק אינה ריקה; אחרת, היא ריקה. (הוכחת נכונות וזמן ריצה - שהוא פולינומיאלי באורך הייצוג של הדקדוק - בסיכום תרגול 4.) דרך אחרת היא להעביר את הדקדוק לצורה נורמלית של חומסקי, ולבדוק האם S 0 ε זהו כלל בדקדוק. 3. בהמשך נראה שלא ניתן להכריע את בעיית ה - ALL CF G כלומר לקבוע האם דקדוק מסוים מקבל את כל המילים. 3.6 אוטומט מחסנית אוטומט מחסנית PDA) (Pushdown Automaton הוא אוטומט לא דטרמיניסטי עם זיכרון עזר בצורת מחסנית. נשים לב שמילת הקלט אינה מופיעה במחסנית (בניגוד למכונות טיורינג שנראה בהמשך). נשתמש בו לזיהוי שפות חסרות הקשר. הגדרה 3.17 אוטומט מחסנית הוא שישייה סדורה ) F A = (Q, Σ, Γ, δ, q 0, כאשר Q קבוצת מצבים סופית, Γ א"ב המחסנית, Σ א"ב השפה, q 0 Q מצב התחלה, F Q קבוצת המצבים המקבלים, ו δ פונקציית המעברים {ε}.δ : Q Σ {ε} Γ הערה 3.18 בגלל הגדרה זו, אין לנו צורך במספר מצבי התחלה. בניגוד ל,NFA כאן אנו "מרפדים" את המילה ב ε ים, כלומר החישוב יכול להתחיל במעבר ε. דוגמא לאוטומט מחסנית: אוטומט המחסנית הבא מזהה את השפה } R L = {ww מעל הא"ב b} :Σ = {a, 15

16 בציורים של אוטומט מחסנית, כשנכתוב a, b c (כאשר {ε} (a Σ {ε}, b, c Γ הכוונה היא שכאשר האוטומט קורא את האות a מהקלט ושולף מהמחסנית את האות b, הוא עובר למצב הבא ודוחף את האות c למחסנית. הגדרה 3.19 קונפיגורציה של PDA מורכבת מהמצב שבו הוא נמצא, וגם מתוכן המחסנית. הקונבנציה שלנו תהיה לכתוב את תחתית המחסנית מצד ימין ואת ראשה בצד שמאל. למשל, האוטומט מהדוגמה הקודמת לאחר קריאת המילה ab יהיה בקונפיגורציה.(q w, ba$) צעד חישוב הוא מעבר חוקי בין הקונפיגורציות. צעד חישוב חוקי על האות α הוא מעבר ) 2 (q 1, s 1 ) (q 2, s כאשר s 1 = as ו.(q 2, b) δ(q 1, α, a),a, b Γ {ε},s 2 = bs חישוב מקבל הוא חישוב חוקי המסתיים במצב מקבל, ושפת האוטומט היא אוסף המילים שעבורן קיים חישוב מקבל. (ולהיפך מילה אינה מתקבלת ע"י האוטומט אםם כל חישוב שלו עליה לא מקבל.) הערה 3.20 בהחלט ייתכן שנרצה בצעד מסוים להוציא אות מסוימת ולהכניס למחסנית אותה + אות נוספת. במודל שלנו, נצטרך לעשות את זה באמצעות שני מצבים בראשון נוציא את האות ונחזיר אותה, ובשני נכניס את האות הנוספת שרצינו. משפט 3.21 יהי G דקדוק חסר הקשר. אזי קיים A אוטומט מחסנית כך ש L(G).L(A) = הוכחה: (בערך) אפשר להכליל אוטומט מחסנית (ע"י הוספה של הרבה מצבים) כדי שנוכל בכל שלב לקרוא מילה (ב Γ) מהמחסנית ולכתוב מילה למחסנית. אם כך, נוכל לבנות את האוטומט הבא עם Σ הטרמינלים של הדקדוק: כאשר הקשת A ε, משוכפלת לכל כלל גזירה מהצורה A והקשת a, a ε משוכפלת לכל טרמינל.a Σ כעת, אם מוציאים מהמחסנית משתנה אז אנחנו "מנסים לגזור אותו" ואם מוציאים טרמינל מהמחסנית אז משווים אותו לאות הנוכחית במילה, וממשיכים. משפט 3.22 יהי A אוטומט מחסנית. אזי קיים דקדוק חסר הקשר G כך ש L(A).L(G) = הוכחה: נניח בה"כ ש: 0. בתחילת הריצה A דוחף $ למחסנית. 1. ל A מצב מקבל יחיד. זה בה"כ כי אחרת נוסיף מצב מקבל וקשתות,ε ε ε מהמצבים המקבלים הקודמים למצב המקבל החדש. 2. A מקבל רק אם המחסנית ריקה. זה בה"כ כי אחרת נוסיף מצב מקבל חדש ומהמצב המקבל הישן נוסיף קשתות עצמיות ε, σ ε לכל,σ Γ ועוד מעבר ε, $ ε למצב המקבל החדש. 3. בכל מעבר A דוחף אות למחסנית או מוציא אות מהמחסנית, אך לא שניהם. זה בה"כ - נטפל בשני המקרים: עבור מעבר a, ε b נבנה מצב נוסף ומעברים a, ε b ו.ε, b ε עבור מעבר a, b c נבנה מצב נוסף ומעברים a, b ε ו.ε, ε c 16

17 נשים לב של A יש ריצה מקבלת על w אםם ל A יש ריצה מ q 0 ל q acc (המצב המקבל) כך שהמחסנית ריקה בתחילת הריצה ובסופה. כעת לכל p, q Q יהיה משתנה A pq כך שלכל מילה Σ x מתקיים ש A pq x אםם יש ל A ריצה מ p ל q שמשמרת את ריקנות המחסנית. ( ) נבחין בין שני מצבים: 1. במהלך הריצה מ p ל q המחסנית מתרוקנת במצב r. אם כך, החלק של w שעברנו עליו בין p ל r נגזר מ A pr תוך שמירה על ריקנות המחסנית, והחלק של w שעברנו עליו בין r ל q נגזר מ A rq תוך שמירה על ריקנות המחסנית. 2. במהלך הריצה כנ"ל המחסנית מתרוקנת רק בהגיענו למצב q. אם כך, נתבונן על המצב r שהוא המצב הראשון בדרך מ p ל q ועל המצב s שהוא המצב האחרון לפני q בדרך הנ"ל. במקרה זה, האות שנשלפת בין s ל q היא אותה אות שנדחפה בין p ל - r לפי ההנחות שלנו. מכאן מוגדרים החוקים:.1 לכל r, p, q Q נגדיר את הכלל A pq A pr A rq.2 לכל p, q, r, s Q ולכל {ε} γ Γ, a, b Σ נגדיר את הכלל A pq aa rs b אם מתקיים ε) (r, γ) δ(p, a, ו.(q, ε) δ(s, b, γ).3 לכל p Q נגדיר את הכלל.A pp ε.a q0,q acc בנוסף, המשתנה ההתחלתי יהיה עכשיו יש להוכיח את ( ) - זה נעשה באינדוקציה. (ר' סיכום תרגול 5 לעוד פרטים.) חלק II חישוביות 4 מכונות טיורינג בפרק זה נתבונן במכונות טיורינג, השקולות למחשב מבחינת יכולת חישוב. 4.1 מכונות טיורינג "פשוטות" למעשה, מכונת טיורינג היא אוטומט סופי דטרמיניסטי המצויד גם בסרט חישוב דו כיווני (רשימה מקושרת דו כיוונית). לראש הקריאה של האוטומט יש אפשרות לנוע ימינה ושמאל על הסרט, שהוא אמנם סופי אבל לא חסום. הקלט של המכונה מגיע על הסרט ונוכל לקרוא אותו כמה פעמים שנרצה ולכתוב מידע חדש על הסרט כרצוננו. הגדרה 4.1 מכונת טיורינג היא שביעייה סדורה δ) M = (Q, Σ, Γ, q 0, q rej, q acc, כאשר Q קבוצת המצבים, Σ א"ב הקלט, Γ א"ב הסרט כאשר Σ Γ ו Γ תו מיוחד, q 0 Q המצב ההתחלתי, q rej Q המצב הדוחה, q acc Q המצב המקבל, ו δ פונקציית המעברים L}.δ : Q Γ Q Γ \ { } {R, (המשמעות של R, L היא "ללכת ימינה" או "ללכת שמאלה".) קונפיגורציה של מכונת טיורינג היא (v,u),q כאשר,u v Γ q, Q מתארים את מה שמשמאל לראש הקורא/כותב ומה שמימין לו. נסמן av v = כאשר { } \ Γ a אם v ε או = a ו v = ε אחרת. נניח ש R).δ(q, a) = (q, b, במקרה זה הקונפיגורציה העוקבת של v) (u, q, היא ) v.(ub, q, כנ"ל עבור.L ריצה חוקית של מכונת טיורינג היא סדרה (שאינה בהכרח סופית) של קונפיגורציות עוקבות. הריצה מסתיימת אם הסדרה סופית והמצב בקונפיגורציה האחרונה הוא q acc או q. rej המכונה מקבלת את המילה (המילה בשפה של המכונה) אם יש ריצה שהקונפיגורציה ההתחלתית שלה היא (w,ε) q 0, והקונפיגורציה הסופית שלה היא ב q. acc המכונה מכריעה את השפה L אם היא תמיד עוצרת, והיא עוצרת במצב מקבל רק על קלטים w. L המכונה מזהה את השפה L אם היא עוצרת ומקבלת על קלטים w, L ועל קלטים w / L היא עוצרת ודוחה או שאינה עוצרת. הערה השפה של הפולינומים z) p(x, y, ומספרים a, b, c כך ש = 0 c) p(a, b, ניתנת להכרעה ע"י מכונת טיורינג..2 השפה של הפולינומים במקדמים שלמים ) k p(x 1,..., x כך שקיימים a 1,..., a k שלמים המאפסים את הפולינום ניתנת לזיהוי ע"י מכונת טיורינג (ניתן לעבור על כל האפשרויות) אבל אינה ניתנת להכרעה. זוהי בעיה מספר 10 של הילברט. 3. (ללא קשר) ניתן לגרום למכונה להתמודד עם שפות אינסופיות ע"י החלפת q rej ב q. loop (לא פיתחנו עוד את הרעיון הזה.) 4. על פני אוטומט רגיל, הוספנו את האפשרות לכתוב ולזוז שמאלה וימינה על הסרט. כל אחד משני הפיצ'רים האלה לא מספק עדיין את הכוח של מכונת טיורינג אלא נשאר בתחום השפות הרגולריות. 5. מכונת טיורינג יכולה לקבל, לדחות, או "להיתקע" - כלומר לעולם לא לעצור. בניגוד לאוטומט, מכונת טיורינג יכולה לא לעצור ובכל זאת לא לחזור על אותה קונפיגורציה פעמיים (שכן הסרט אינו חסום). 17

18 דוגמאות למכונות טיורינג:.1 להלן מכונת טיורינג בעלת השפה #} {0 = L מעל הא"ב #} 1, {0, = :Σ.2 השפה } 1} {0, w L = {w#w : מעל הא"ב #} 1, {0, אינה חסרת הקשר. ניתן להראות זאת ישירות באמצעות למת הניפוח לשפות חסרות הקשר. אבל, אפשר לזהות אותה באמצעות מכונת טיורינג. תחילה, נתאר אלגוריתם ואז נבנה את המכונה ממש (מה שלא נעשה בדרך כלל, כי זה מגעיל וארוך): 1. החלף את האות מתחת לראש ב x וזכור אותה 2. לך ימינה עד # 3. לך ימינה צעד אחד, וימינה כל עוד יש x 4. אם האות מתחת לראש היא כמו שזכרת, סמן x ולך שמאלה עד # 5. לך שמאלה עד x, ולך ימינה צעד אחד 6. אם האות היא לא #, חזור ל (1) 7. לך ימינה על x ים, אם הגעת ל, קבל להלן ציור של המכונה, כאשר לא ציירנו את הקשתות שהולכות למצב הדוחה q: rej 3. נבנה מכונת טיורינג שבודקת האם גרף לא מכוון הוא קשיר. נשתמש ב כדי לסמן קידוד של משהו, למשל G. קידוד סביר של גרף הוא רשימה של הקודקודים בתור מספרים בינאריים מופרדים ע"י #, שאחריהם רשימה של הצלעות בתור מספרים בינאריים. לדוגמא: G = 000#001#010#... ###(000#001)(010#000)... 18

19 פיסת הקידוד הנ"ל מתארת את הקודקודים v 0, v 1 v 2 והצלעות ) 0.(v 0, v 1 ), (v 2, v המכונה תשתמש בשני סרטים (בהמשך נראה שזה שקול למכונה עם סרט אחד) ותפעל כך: 1. בדוק שהקלט מהווה קידוד חוקי של גרף. 2. סמן את הקודקוד הראשון של G ע"י העברתו לסרט של הקודקודים שכבר סומנו. 3. חזור עד שלא מסומנים קודקודים חדשים: לכל קודקוד ב G, סמן אותו אםם יש קשת בינו לבין קודקוד שכבר סומן. 4. עבור על כל קודקודי G. אם כולם מסומנים, עצור וקבל; אחרת, עצור ודחה. הערה ניתן לתאר אלגוריתם באמצעות מכונת טיורינג בכמה מישורים - התיאור הפורמלי באמצעות שביעייה, תיאור ברמת המימוש (האופן שבו המכונה פועלת), ותיאור בשפה טבעית של האלגוריתם. בדרך כלל נפנה לאפשרות האחרונה. 2. כאשר אנו מדברים על מכונות טיורינג שמקבלות קידוד של "משהו" כקלט, בהחלט ייתכן שלא כל גיבוב תווים מעל הא"ב של המכונה יהיה קלט חוקי, כלומר קידוד חוקי של "משהו". מקרים כאלה לא יעניינו אותנו במיוחד, כי בדרך כלל אפשר בזמן קצר מאוד לוודא בתחילת הריצה שאכן מדובר בקלט לא חוקי, ולדחות אותו (או לעשות כל דבר אחר שנרצה). 4.2 וריאציות על מכונות טיורינג הגדרה 4.4 מכונת טיורינג עם שני סרטים מוגדרת כך - המילה כתובה על הסרט הראשון, והמכונה יכולה להשתמש בשני הסרטים לצורך עבודה. פונקציית המעברים היא L} 2 δ : Q Γ 2 Q Γ 2 {R, מכיוון שיש שני ראשים קוראים/כותבים שהמכונה משתמשת בהם. טענה 4.5 לכל מכונת טיורינג עם שני סרטים יש מכונת טיורינג שקולה (בעלת אותה השפה - גם מבחינת קבלה ודחייה, וגם מבחינת עצירה). הוכחה: נעבוד עם א"ב מחסנית של רביעיות, 1} {0, 1} {0, Γ Γ = Γ כאשר אות כמו 0) b, 1, (a, משמעותה שעל הסרט הראשון כתוב a, על הסרט השני כתוב b, הראש של הסרט הראשון נמצא מעל האות והראש השני של המכונה לא נמצא מעל האות. נגדיר ) rej.m = (Q, Σ, Γ, δ, q 0, q acc, q המכונה פועלת בשני שלבים: 1. נעבור על כל הסרט ונהפוך כל אות σ Σ לאות (0,,0,σ) ואת האות השמאלית ביותר ל (1,,1,σ) - שכן שני הראשים מתחילים באותו המקום. 2. נרוץ על הסרט ונחפש אות מהצורה (,1,, ) - מה שנמצא מתחת לראש של הסרט הראשון. נזכור מה האות בסרט הראשון. נמשיך ימינה עד הסוף. 3. נחזור שמאלה ונחפש אות מהצורה (1,,, ) - מה שנמצא מתחת לראש של הסרט השני. נזכור מה האות בסרט השני. נחזור שמאלה עד. 4. נרוץ ימינה ונחפש אות מהצורה (,1,, ), נבצע סימולציה של פעולת M על הסרט הראשון. כנ"ל לסרט השני. 5. אם M אומרת לעבור ל q acc או q, rej אז M תפעל בצורה דומה. הערה 4.6 אם המכונה המקורית מבצעת n צעדים, על צעד של המכונה המקורית אנו מבצעים O(n) צעדים, ובסה"כ ) 2 O(n צעדים. כלומר, עלות הסימולציה היא ריבועית - לא כל כך נורא. הגדרה 4.7 מכונת טיורינג עם סרט דו מימדי היא מכונה שהסרט שלה גדל בשני כיוונים - למטה וימינה. (אפשר להסתכל עליה בתור מטריצה "אינסופית".) מילת הקלט מגיעה על השורה הראשונה, הראש הקורא/כותב מתחיל בתא (1,1) ופונקציית המעברים היא.δ : Q Γ Q Γ {U, D, L, R} נדרוש גם שלא "ניפול" - אם הגענו לעמודה הראשונה והולכים שמאלה, אפשר לא לזוז. כנ"ל לגבי עלייה למעלה כאשר הגענו לשורה הראשונה. טענה 4.8 למכונת טיורינג עם סרט דו מימדי יש מכונת טיורינג שקולה עם סרט אחד. הוכחה: אם יש מכונת טיורינג עם סרט אינסופי בשני הכיוונים, קל לבנות ממנה מכונה עם סרט דו מימדי בעלת אותה השפה. פשוט צריך "לקפל" את הסרט סביב נקודת ההתחלה. להיפך, בהינתן מכונת טיורינג עם סרט דו מימדי יש לנו את הפונקציה f (החשיבה - ר' להלן) שיכולה להתאים כל תא מהסרט הדו מימדי לתא אחד ויחיד על הסרט החד מימדי. בתא הזה נשים את האות שהייתה בסרט הדו מימדי באותו המקום. בנוסף, עלינו לקודד את המידע על כך שהראש נמצא במקום האמור בטבלה - ואפשר לצורך כך להחזיק עוד סרט אחד, למשל. כדי לעשות את הסימולציה, נרוץ ונחפש היכן נמצא הראש, ואז נרוץ על הסרט הראשון עד האות שעליה הראש נמצא. כדי לרוץ ימינה/שמאלה/למעלה/למטה עלינו לחשב את האינדקס שעליו עמדנו (בשביל זה צריך לדעת לספור) ואז לבצע את החישוב הדרוש על האינדקס - למצוא את 1 f שלו, להוסיף ל i או ל j בהתאם לכיוון, לחשב את f של התוצאה ולפעול בהתאם. וריאציות נוספות: 1. מכונת טיורינג עם סרט חד כיווני - כלומר, הסרט חסום משמאל ולא חסום מימין. המודל הזה עדיין שקול למכונת טיורינג רגילה (תרגיל 5 שאלה 4). למשל, אפשר להשתמש בשני סרטים כדי לסמלץ את החלקים ה"שמאלי" וה"ימני" של הסרט; אפשר גם 19

20 לכתוב על הסרט החד כיווני את u#v כאשר u החלק ה"שמאלי" ו v החלק הימני, ובכל פעם שהמכונה צריכה עוד מקום משמאל, מזיזים את המחרוזת ימינה. 2. אוטומט סופי דטרמיניסטי עם שתי מחסניות. המודל הזה שקול למכונת טיורינג רגילה (תרגיל 6 שאלה 1). למשל, אפשר לסמלץ אוטומט בעל שתי מחסניות בעזרת מכונת טיורינג בעלת שני סרטים (סרט אחד לשתי המחסניות, מופרדות ב # וסרט אחד לקלט); ואפשר לסמלץ מכונת טיורינג בעלת סרט דו כיווני באמצעות אוטומט בעל שתי מחסניות, כך שמחסנית אחת מכילה את כל החלק של הסרט שמשמאל לראש והמחסנית השניה את כל החלק של הסרט שמימין לראש. 3. מכונת טיורינג עם סרט בגודל קבוע.(LBA) המודל הזה אינו שקול (חלש יותר!) למכונת טיורינג רגילה. למעשה, LBA ים מזהים בדיוק את כל השפות הרקורסיביות. (לא הוכחנו זאת פורמלית, אבל בהמשך ראינו ש A LBA היא PSPACE שלמה ובפרט כריעה, בעוד ש A T M אינה כריעה.) 4.3 מכונת טיורינג אוניברסלית זוהי מכונת טיורינג המקבלת כקלט מכונת טיורינג אחרת ומריצה אותה. ראשית צריך יהיה לקודד מכונת טיורינג כקלט. הא"ב יהיה #} 1, {0, = U.Σ נקודד את M באמצעות :Σ U שמות המצבים יהיו מספרים טבעיים } n Q = {q 0, q 1,..., q ונקודד אותם פשוט בתור מספרים, כאשר # מפרידה בין המצבים ו ### מסמנת את סוף הקידוד: Q = # # # ### גם את אותיות Σ ו Γ נציג כמספרים טבעיים, שהרי גם Σ. Γ נכתוב אותם בזה אחר זה, קודם Σ ואח"כ Σ Γ \ בקידוד בינארי, מופרדים ע"י ###. נקודד את δ בתור זוגות כאשר מספר האפשרויות ל Q Γ הרי סופי. למשל, כדי לקודד את העובדה ש = ) 2 δ(q 1, γ L) (q 0, σ 1, נכתוב על הסרט לפי הסדר את 2 q 1, γ וכו': #10# #01#0## לבסוף, כדי לקודד את q 0, q acc, q rej נכתוב אותם בזה אחר זה על הסרט. מטרתנו: M(w) M. U, M ) ( w = יהיו לנו שלושה סרטים - וניתן להראות בקלות שזה שקול למכונת טיורינג רגילה עם סרט אחד: 1. סרט הקלט של המכונה M U שעליו יהיו כתובות w, M 2. סרט שיכיל את הסימולציה של הסרט של M 3. סרט שיכיל את המצב שבו M נמצאת האלגוריתם: 1. שלב האתחול - נרצה לכתוב על סרט 2 את המילה w ועל סרט 3 את 0 q. כדי לעשות זאת נרוץ ימינה בסרט 1 עד שספרנו 7 פעמים ### ושם תהיה w. מעתיקים אותה אות אחר אות, ומחזירים את הראש בסרט 1 למקום שבו מקודד 0 q ומעתיקים אותו לסרט שלב הסימולציה - ראשית בודקים האם הגענו ל q acc, q rej ע"י השוואת סרט 3 למה שכתוב בסרט 1 במקומות המתאימים. אחרת, צריך סימולציה של צעד δ, ומוצאים "מה צריך לעשות" בסרט 1, מעתיקים לסרטים 2,3 את התוצאה ומזיזים את הראש על סרט 2 ע"פ התוצאה. נשים לב שניתן להרחיב את הרעיון הזה עוד - למשל, לבנות מכונה שמקבלת את השפה המשלימה לזו של M, או מכונה שמקבלת בנוסף מספר t שהוא מקסימום הצעדים שמותר לסימולציה לעשות, או חסם על גודל הסרט שאפשר להשתמש בו, וכו'. 20

21 4.4 מכונת טיורינג לא דטרמיניסטית הגדרה 4.9 מכונת טיורינג לא דטרמיניסטית מוגדרת בדיוק כמו מכונת טיורינג, למעט העובדה ש δ היא פונקציה Γ δ : Q.P(Q Γ {L, R}) הערה 4.10 משמעות הדבר שלמכונה כזו יכולות להיות כמה ריצות חוקיות על הקלט, ובכל שלב ייתכנו כמה מעברים חוקיים. הגדרה 4.11 נאמר שמכונת טיורינג לא דטרמיניסטית מקבלת את המילה w אם קיימת ריצה מקבלת שלה על w. נאמר שהמכונה דוחה את w אם כל הריצות שלה על w דוחות. לבסוף, נאמר שהמכונה אינה עוצרת על w אם לא קיימת ריצה מקבלת, אך קיימת ריצה שאינה עוצרת. הערה 4.12 כלומר, גם במקרה שהמכונה מקבלת את המילה, ייתכנו ריצות שאינן עוצרות. טענה 4.13 תהי M מכונת טיורינג לא דטרמיניסטית. אזי קיימת מכונת טיורינג דטרמיניסטית D כך ש L(N).L(D) = הוכחה: אפשר להציג את הריצה של N על מילת קלט מסוימת בתור עץ שעוברים בו בין הקונפיגורציות שלה. כמובן, ייתכן שהעץ אינסופי. נבנה את המכונה D בעזרת שלושה סרטים - סרט קלט, הסרט של המכונה N, וסרט הכתובת. לכל קונפיגורציה בעץ ניתן כתובת - ההחלטות שצריך לקבל כדי להגיע לקונפיגורציה הזאת מהקונפיגורציה ההתחלתית. (הכוונה ב"החלטה" לבחירה בין מספר אפשרויות במצב שבו למכונה יש מספר אפשרויות.) בהינתן כתובת על סרט הכתובת אנחנו נדע לסמלץ על הסרט של N את המסלול המתאים לכתובת (שהוא דטרמיניסטי). כל שנותר הוא לעבור על הכתובות לפי סדר,BFS וברור שאפשר לעשות את זה. כאשר נתקלים בקונפיגורציה מקבלת - מקבלים. אם כל הענפים הסתיימו בקונפיגורציות דוחות - דוחים. הערה 4.14 הקושי עם הבנייה הנ"ל הוא מבחינת זמן הריצה. בכל צומת יכול להיות מספר סופי של התפצלויות, לכל היותר,g( w ) היא באורך w נתבונן למשל במקרה שבו המכונה מקבלת. נניח שהריצה המקבלת הקצרה ביותר על b. = Q Γ,L} {R אז D עלולה לעבור על O(g( w )) b קונפיגורציות, כלומר מספר אקספוננציאלי של פעולות ביחס למכונה המקורית. 4.5 פונקציות חשיבות במקום מכונת טיורינג שהפלט שלה הוא כן/לא, נסתכל על פונקציות. הגדרה 4.15 פונקציה Σ f : Σ היא חשיבה (computable) אם קיימת מכונת טיורינג M שמקבלת Σ,w רצה ותמיד עוצרת, והתוכן של הסרט הוא.f(w) (אפשרות שקולה היא שלמכונה יהיו שני סרטים.) דוגמאות לפונקציות חשיבות: 1. למשל, ראינו (פחות או יותר) שפונקציה שמוסיפה 1 למספר הנתון בבינארי היא פונקציה חשיבה: 2. כמובן, הפונקציה לא חייבת לפעול על מספרים. למשל, פונקציה שמקבלת A קידוד של NFA ומחשבת B קידוד של DFA השקול לו היא פונקציה חשיבה - צריך לשתכנע שאלגוריתם הדטרמיניזציה אכן ניתן למימוש בעזרת מכונת טיורינג..3 ראינו ש N = ℵ 0 ובדיסקרטית מוכיחים ש N N = ℵ 0 ע"י כך שיוצרים פונקציה חח"ע ועל מ N ל.N N נרצה עכשיו להסתכל על פונקציה אחת כזאת: i/j

22 אפשר לכתוב לה גם נוסחא סגורה: f(i, j) = (i + j 2)(i + j 1) 2 + j הפונקציה הזאת, כמובן, חשיבה - אנו יודעים לחסר, לחבר, לכפול ולחלק בשתיים (שלמים) באמצעות מכונת טיורינג. 4. לפונקציה (3) יש גם הפכית - אפשר לכתוב לה במפורש נוסחא אריתמטית והיא תהיה חשיבה. אולם אנו נרצה אלגוריתם אחר - נניח שרוצים למצוא את (k) f: 1 נכתוב על הסרט את המשבצת השמאלית עליונה, נפעיל את f ונקבל (1,1)f. אם קיבלנו את - k דיינו. אחרת, נתקדם לתא הבא - (1,2) ומשם ל (2,1) ומשם ל (1,3) וכן הלאה. האופן המדויק שבו מקדמים את (j,i) הוא כזה - אם = 1 i אז מוסיפים לו 1 ואת j מחזירים ל 1; אחרת, מקדמים את j ומחסרים 1 מ.i כיוון ש k מספר טבעי, מובטח שהמכונה תעצור בסופו של דבר. לכן 1 f חשיבה. 5. נבנה פונקציה { M } f : { M } המקבלת קידוד של מכונת טיורינג ומייצרת קידוד של מכונת טיורינג בעלת אותה שפה שלעולם לא מגיעה למצב הדוחה. כיצד הפונקציה פועלת? כאשר המכונה המקורית פונה ל q rej שלה, המכונה החדשה תפנה למצב שבו היא תיתקע בלולאה אינסופית. Random Access Machine 4.6 נרצה להראות שקילות בין מכונות טיורינג, שעדיין לא נראות כל כך כמו מחשב, לבין מודל שלכאורה נראה חזק יותר ומאוד דומה למחשב, אבל למעשה לא מציע שום כוח חישוב נוסף. ל RAM יש מערך זיכרון אינסופי וממוספר, כאשר התוכן של כל תא הוא מספר טבעי. התוכן ההתחלתי בכל תא הוא 0. יש פונקציה {0} N c : N {0} שמחזירה את התוכן של כל תא. יש תוכנית שהמכונה מריצה, ששמורה מחוץ לזיכרון. יש קלט - סדרה סופית של מספרים טבעיים. יש מונה (PC) שזוכר איפה בריצת התוכנית אנחנו נמצאים. יש פונקציה v שאומרת מה הערך של האופרנד בפקודות שמיד נראה. הפונקציה מוגדרת כך: x - v( = x ) = אופרנד ששווה למספר קבוע כלשהו c(x) - v( x ) = אופרנד שקורא זיכרון ממקום כלשהו c(c(x)) - v( x ) = אופרנד שמבצע מיעון עקיף מהזיכרון הפקודות האפשריות של המכונה הן: המשמעות c(0) v(op) c(v(op)) c(0) c(0) c(0) + v(op) c(0) c(0) v(op) c(v(op)) NextInput P C v(op) If c(0) > 0 then P C v(op) Accept Reject הפקודה LOAD(op) STORE(op) ADD(op) SUB(op) READTO(op) JUMP(op) JUMPIF > 0(op) ACCEPT REJECT טענה 4.16 קיימת מכונת טיורינג שמקבלת קידוד של תוכנית ל RAM וקלט ואומרת האם התוכנית מקבלת או דוחה את הקלט. 22

23 הוכחה: (סקיצה) נצטרך 9 סימנים לסימון סוגי הפקודות, קידוד של האופרנדים, וכן קידוד של הקלט. את כל אלה נרשום ונפריד ביניהם עם # כרגיל - על סרט הקלט. על סרט נוסף נחזיק ייצוג של הזיכרון של המכונה שמריצה את התוכנית, ועוד סרטים לפי הצורך עבור חישובים. על הסרט הראשון נסמן גם על איזו פקודה אנחנו נמצאים. על סרט הזיכרון נרשום זוגות (j,i) עם המשמעות שבתא ה i בזיכרון נמצא הערך j, ובתנאים שלא נשתמשנו בהם נניח שמופיע 0. כעת עלינו ללמוד לבצע את הפקודות של התוכנית. 1. טיפול באופרנד - נרצה לשים על סרט החישוב השלישי את.v(op) עבור x = פשוט נעתיק את המספר x לסרט החישוב. במקרים שדרושה גישה לזיכרון, נצטרך לרוץ על סרט הזיכרון ולחפש את הזוג (j,x) ולהעתיק את j לסרט החישוב (או 0 אם הוא לא נמצא). עבור מיעון עקיף, נצטרך לחזור על זה פעמיים. 2. טיפול בפקודות - עבור פקודות הקריאה/כתיבה מהזיכרון, מחשבים את v(op) ומחפשים אותו בסרט הזיכרון. את הפעולות האריתמטיות אנחנו במילא יודעים לעשות. עבור הפעולה READTO נצטרך לרוץ על w ולזכור מה עוד לא קראנו מתוכה, למשל ע"י מחיקת החלקים שכבר קראנו. עבור הפעולה JUMP נצטרך לעבור על הסרט הראשון למקום המתאים בתוכנית, וכנ"ל עבור.JUMPIF > 0 לגבי ביצועים - על סרט הזיכרון, אם המכונה עשתה n צעדים, יש n תאים לכל היותר שכל אחד מכיל מספר עד k, ואנו משתמשים ב (k O(n log מקום. מספר מעברי ה δ יהיה (k O(n 2 log כי יש n צעדים. בשאר הסרטים המקום די קבוע. כלומר, הסימולציה שלנו היא במספר פולינומיאלי של צעדים ביחס למספר הצעדים של המכונה המקורית. 5 כריעות ואי כריעות לאחר שראינו את המודל של מכונת טיורינג, נשאלת השאלה האם מודל זה יכול להכריע את כל השפות. אפילו משיקולי ספירה ניתן לראות שאין זה המצב; בפרק זה נגיע למסקנות פורמליות בנושא. 5.1 המחלקות RE,R ואי כריעות הגדרה 5.1 נסמן ב R (שפות רקורסיביות, (recursive את מחלקת השפות הניתנות להכרעה ע"י מכונת טיורינג. נסמן ב RE (שפות הניתנות למניה רקורסיבית, (recursively enumerable את מחלקת השפות שניתנות לזיהוי ע"י מכונת טיורינג. נסמן ב core את מחלקת השפות L כך ש L. RE (במילים אחרות, קיימת מכונת טיורינג שעוצרת ומקבלת מילים שאינן ב L, אבל על מילים ב L היא דוחה או נתקעת.) הערה 5.2 כמובן,.R RE בהמשך נראה ש R.RE \ משפט RE core = R 5.3 (כלומר, אם אפשר לזהות שפה ואת המשלים שלה - אזי היא ניתנת להכרעה). הוכחה: תחילה נראה ש R. RE core אנו יודעים שאם L R אז גם L, R שהרי אם במכונת טיורינג נחליף את q acc ב q rej ולהיפך נקבל מ"ט עבור השפה המשלימה. מכאן המסקנה. כעת נראה ש.RE core R אם M מזהה את L ו M מזהה את L, נרצה להריץ במקביל את שתי המכונות ומובטח שאחת מהן תעצור על כל מילה. נעשה זאת כך: המכונה החדשה M, על המילה w:.1 תאתחל 1 i 2. הרץ את M על w במשך i צעדים: אם היא קיבלה, עצור וקבל 3. הרץ את M על w במשך i צעדים: אם היא קיבלה, עצור ודחה i i וחזור לשלב 2 ברור שכל איטרציה של הלולאה באמת עוצרת בזמן סופי, וכן ברור שנעצור בסופו של דבר ונצא מהלולאה - הרי אם w L אז קיים i כך ש M עוצרת ומקבלת את w תוך i צעדים, ואם w / L אז כנ"ל לגבי M. לכן M מכריעה את L, כלומר L. R משפט 5.4 קיימת שפה.L / R הוכחה: משיקולי ספירה. למשל, קבוצת כל השפות מעל {1,0} היא מעוצמה 2. ℵ0 לעומת זאת, קבוצת כל מכונות הטיורינג מעל אותה שפה היא קבוצה בת מניה, שכן מכונת טיורינג ניתנת לתיאור (קידוד) סופי. מכאן, יש שפה שאין מכונת טיורינג שמכריעה אותה. (זה גם אומר שיש שפה L.) / RE הערה 5.5 אפשר להשתמש באותו טיעון גם להרבה דברים מעניינים נוספים. למשל, יש מספר ממשי שלא ניתן לחשב, כלומר שלא קיימת תוכנית שמדפיסה אותו. זה שוב משיקולי ספירה - תוכנית מחשב ניתנת לקידוד סופי, ולכן קבוצת תוכניות המחשב היא בת מניה, ואילו קבוצת המספרים הממשיים אינה בת מניה. משפט.R RE

24 הוכחה: נצביע במפורש על השפה w} A T M = { M, w : M accepts ונראה ש A T M RE אבל.A T M / R תחילה, M T M ופועלת כמוה. אכן,,w על M ופועלת כך: היא מריצה את A T M מכונת טיורינג שמזהה את M T M שכן קיימת A T M RE תקבל את w,m אםם M מקבלת את w. כעת נניח בשלילה שקיימת מכונת טיורינג H שמכריעה את A, T M כלומר על קלט w,m היא מקבלת אםם M מקבלת את w, ואחרת - דוחה (אבל תמיד עוצרת). נבנה בעזרתה את המכונה D שמקבלת קידוד M של מכונת טיורינג ופועלת כך: D( M ) = { ACC REJ M( M ) = ACC M( M ) = REJ אופן הפעולה של D הוא כזה: על קלט M, היא כותבת על הסרט M M ואז מריצה את H על הקלט החדש. לבסוף, נבנה מ D את המכונה D הפועלת כך: D ( M ) = { REJ ACC M( M ) = ACC M( M ) = REJ את זה אנחנו כבר יודעים לעשות ע"י החלפת המצב המקבל והדוחה ב D. כעת נותר רק להריץ את D על עצמה: D ( D ) = { REJ ACC D ( D ) = ACC D ( D ) = REJ שתי האפשרויות לא ייתכנו, ולכן קיבלנו סתירה. לכן, A. T M / R מסקנה.A T M / core 5.7 המסקנה היא מרחיקת לכת. יש בעיות שלא ניתן להכריע אותן - ויש לנו כעת הכלי התיאורטי כדי להראות את זה. אז הנה דוגמה נוספת, שנשתמש בה ברדוקציה (נגדיר בהמשך במדויק מהי רדוקציה). טענה HALT T M = { M, w : M halts on w} / R 5.8 (בעיית העצירה). הוכחה: נראה שאם HALT T M R אז גם A T M R ונקבל את הסתירה. ובכן אם HALT T M R אז תהי T מ"ט שמכריעה את.HALT T M נבנה מ"ט S שמכריעה את A T M כך: על קלט : M, w 1. נריץ את T על הזוג, M. w אם T דוחה, נדחה. 2. אם T מקבלת את, M w אז נריץ את M על w ונענה כמוה (מובטח לנו ש M תעצור!). טענה.REG T M = { M : M is a TM, L(M) REG} / R 5.9 הוכחה: נניח בשלילה שיש מ"ט T המכריעה את REG T M ונבנה מ"ט S שמכריעה את A. T M בהינתן, M w נייצר מ"ט M מעל הא"ב 1} {0, אשר על קלט 1} {0, x פועלת כך:.1 אם x מהצורה,0 n 1 n נקבל. 2. אחרת, נריץ את M על w ונקבל אםם M מקבלת את w. כעת נשים לב שאם M לא מקבלת את,w אז.L(M ) = {0 n 1 n : n 0} / REG לעומת זאת, אם M מקבלת את,w אז.L(M ) = Σ M REG כלומר, M REG T M L(M ) REG ( M, w) A T M ובזאת השלמנו את הבנייה. 5.2 סגירות R ו RE טענה RE.L, M RE = L M.L, M RE = L M RE.2.L R = L R.3.L RE = L RE.4 L, M RE = L M RE.5 24

25 הוכחה: 1. מריצים את המכונות "במקביל" ומקבלים אם אחת מהן מקבלת. (ההרצה "במקביל" משמעותה שמבצעים t צעדים של כל אחת מהמכונות, מסתכלים על התוצאה, ואז מקדמים את t במידת הצורך.) 2. מריצים את שתי המכונות "במקביל" ומקבלים אם שתיהן מקבלות. (כאן אין אפילו צורך בהרצה אינקרמנטלית, כי אם אחת המכונות נתקעת, במילא המילה אינה בחיתוך השפות.).3 מחליפים בין q acc ל.q rej נשים לב שזה לא נכון לגבי RE (למשל, A T M RE אבל,A T M / RE שכן אחרת.(A T M RE core = R ואז A T M core 4. נשתמש במכונת טיורינג עם סרט דו מימדי. כשמקבלים את מילת הקלט w, נכתוב את כל החלוקות האפשריות שלה ל w, 1,..., w k כל חלוקה על שורה משלה של הסרט. עבור t הולך וגדל, נריץ את המכונה של L במקביל על כל שורה (כאשר בכל שורה, L רצה במקביל על כל החלקים) במשך t צעדים. אם L w, יהיה t ושורה מתאימה שעבורם נקבל. לכן, L. RE אפשרות אחרת היא להשתמש במכונת טיורינג לא דטרמיניסטית, שבוחרת בצורה לא דטרמיניסטית חלוקה של w ומריצה עליה את L כנ"ל. (ובכל מקרה, ר' תרגיל 6 שאלה 4.) אם מתמקדים ב R, אפשר גם להשתמש באלגוריתם תכנון דינאמי (ר' תרגיל 9, שאלה 5). הרעיון הוא להסתכל על כל התת מחרוזות ולבדוק האם הן ב L, כאשר מקרה הבסיס הוא התת מחרוזת הריקה ותת מחרוזות שהן ב L. זה מאפשר גם לקבל זמן ריצה יעיל - ריבועי בזמן הריצה של המכונה המכריעה את L. 5. בדומה ל L, בהינתן מילה w נסתכל על כל המקומות i שבהם ניתן לחלק את המילה לשני חלקים, ונכתוב כל אפשרות על שורה משלה. עבור t הולך וגדל, נריץ את המכונה של L והמכונה של M במקביל על כל שורה (כאשר בכל שורה, L רצה על החלק הראשון ו M על החלק השני) במשך t צעדים. 5.3 רדוקציית מיפוי הגדרה 5.11 שפה Σ A ניתנת לרדוקציית מיפוי לשפה Σ B ונסמן A m B אם קיימת פונקציה חשיבה Σ f : Σ כך שלכל Σ w מתקיים.w A f(w) B הערה 5.12 רדוקציית מיפוי אינה סימטרית, כלומר אם A m B אין הכרח שגם.B m A למשל, m A T M 01 אבל ממש לא ההיפך. זאת משום שההפכית של פונקציה חשיבה אינה בהכרח חשיבה/קיימת! משפט 5.13 אם A m B ו,B R אז.A R הוכחה: בהינתן מכונת טיורינג M B המכריעה את B נבנה מ"ט M A המכריעה את A. היא תפעל כך על הקלט w: תחשב את f(w) ותריץ את M B על התוצאה. M A תחזיר את את התשובה של M. B מסקנה 5.14 אם A m B ו,A / R אז.B / R טענה 5.15 אם A m B ו,B RE אז.A RE הוכחה: באופן סימטרי לחלוטין ל"משפט" שראינו קודם. מסקנה אם A m B ו,A / RE אז.B / RE.2 אם A m B ו,B core אז.A core.3 אם A m B ו,A / core אז.B / core טענה 5.17 (טריוויאלית) רדוקציית מיפוי היא טרנזיטיבית, כלומר.A m B B m C = A m C דוגמאות לרדוקציות מיפוי פשוטות:.1 פורמליזציה של.A T M m REG T M בנינו את הפונקציה החשיבה שמייצרת מ w) ( M, את המ"ט,M ומתקיים.( M, w) A T M f( M, w) REG T M M REG T M L(M ) REG.2 פורמליזציה של.A T M m HALT T M נבנה את הפונקציה החשיבה שמייצרת מ w) ( M, את המ"ט M שמריצה את M על w, מקבלת אם M מקבלת את w ואחרת נכנסת ללולאה אינסופית (כלומר אפילו אם M דוחה, M נכנסת ללולאה אינסופית). אז מתקיים.( M, w) A T M M HALT T M.3 נראה ש ε} Aε T M = { M : M accepts אינה כריעה באמצעות רדוקציה.A T M m A ε T M בהינתן זוג M, w הרדוקציה תפלוט מכונה M שתפעל כך: בתחילת הריצה היא תדפיס את המילה w על הסרט, תחזיר את הראש לתחילת הסרט, ותמשיך לרוץ על פי כללי המעבר של.M קל לראות ש.( M, w) A T M M A ε T M טענה.INF T M = { M : L(M) is infinite} / RE core

26 .( M, w) A T M הוכחה: תחילה נראה ש A. T M m INF T M ובכן, עבור, M w נבנה מ"ט T שפועלת כך על קלט x:.w על M מסמלצת את T.1 2. אם M דוחה את T w, דוחה; 3. אחרת, אם x זוגי אז T מקבלת, 4 ואחרת T דוחה. מקבלים ש = ) L(T אם M לא מקבלת את,w ואחרת ) L(T אינסופית. כלומר, T INF T M לכן,INF T M / core שהרי.A T M / core כעת נראה ש.A T M m INF T M בהינתן M, w נבנה מ"ט T שפועלת כך על קלט :x 1. אם M מקבלת את w תוך x צעדים, אז T דוחה. 2. אחרת, T מקבלת. כעת אם M לא מקבלת את w, הרי ש Σ L(T ) = ובפרט אינסופית. לעומת זאת, אם M מקבלת את w אז יש ריצה באורך t המקבלת את,w ולכן t},l(t ) {x : x < ובפרט סופית. קיבלנו ש.( M, w) A T M T INF T M לכן.A T M / RE שהרי,INF T M / RE טענה A T M 5.19 היא RE שלמה, כלומר לכל L RE מתקיים.L m A T M הוכחה: תרגיל 8, שאלה 4. (זה ממש קל.) טענה ALL T M = { M : L(M) = Σ } / RE core 5.20 מסקנה EQ T M = { M 1, M 2 : L(M 1 ) = L(M 2 )} / RE core 5.21 הוכחה: (תרגיל,8 שאלה (3 מדובר ברדוקציות הבסיסיות ביותר מ A T M ו.A T M למשל, A T M m ALL T M על ידי כך שמ w,m בונים מכונה M שעל כל קלט מריצה את M על w ועונה כמוה. ולהיפך, A T M ALL T M על ידי כך שמ w,m בונים מכונה M שעל קלט x מריצה את M על w במשך x צעדים, ומקבלת אםם M לא מקבלת. את המסקנה אפשר להוכיח ישירות, או ע"י רדוקציה ALL T M m EQ T M באמצעות מכונה שמקבלת את.Σ 5.4 אנומרטורים (מונים) הגדרה 5.22 אנומרטור (enumerator) זו מכונת טיורינג עם מדפסת. אופי העבודה - יש למכונה סרט עבודה אבל מדי פעם היא כותבת משהו על סרט הפלט שלה, שממנו היא לא יכולה לקרוא או למחוק. מילה היא בשפה של האנומרטור אםם היא מודפסת בסופו של דבר ע"י האנומרטור. משפט L RE 5.23 אםם קיים אנומרטור E כך ש.L(E) = L הוכחה: ( ) בהינתן E נייצר M שמזהה את.L(E) היא תפעל כך: בהינתן מילה M w, מריצה את E, ובכל פעם ש E מדפיסה מילה M y, בודקת האם w = y ואם כן - עוצרת ומקבלת. ( ) בהינתן M שמזהה את L נבנה E כך ש.L(E) = L אנו יודעים ש Σ בת מניה, ונתבונן בסידור (למשל, לקסיקוגראפי) של.Σ לסידור נקרא..., 1.w 0, w כעת E תפעל כך: עבור... 2, = 1, i היא תריץ את M על המילים w 0, w 1,..., w i במשך i צעדים על כל מילה. אם M קיבלה מילה מסוימת, E תדפיס אותה. ואמנם, כל מילה w שמתקבלת ע"י M, מתקבלת תוך איזה j צעדים, ותודפס ע"י E אינסוף פעמים החל מהאיטרציה ה j. טענה 5.24 תהי L RE שפה אינסופית. אז קיימת שפה אינסופית L L כך ש.L R (מסיכום תרגול (7 הוכחה: יהי E האנומרטור של L. נגדיר את השפה L = {w L : E only prints words shorter than w before printing w} קל לראות שהשפה אינסופית, שכן אם היא הייתה סופית יש בה את המילה הארוכה ביותר w ו E לא מדפיס מילים יותר ארוכות מ w לאחר הדפסתה - בסתירה לכך ש L אינסופית. כמו כן, - L R נבנה מ"ט שבהינתן מילה w מריצה את E כל עוד מודפסות מילים שקצרות מ w. יש מספר סופי של כאלה. אם מודפסת מילה ארוכה יותר, עוצרים ודוחים; אם w הודפסה, מקבלים. 4 הבחירה בתנאי הזה שרירותית לחלוטין. 26

27 5.5 אוניברסאליות של דקדוקים חסרי הקשר נרצה לבדוק האם ניתן להכריע באמצעות מכונת טיורינג את השפה: ALL CF G = { G : G CF G L(G) = Σ G} כלומר, לזהות דקדוקים חסרי הקשר שניתן לגזור מהם את כל המילים. ראינו קודם אלגוריתם לבדיקת שייכות של מילה לדקדוק, זה היה אלגוריתם תכנון דינאמי. מהאלגוריתם הנ"ל ניתן להסיק ש ALL CF G core באמצעות מכונת טיורינג כדלקמן: על כל מילה w Σ G (למשל, בסדר לקסיקוגראפי) נבדוק האם L(G) w. אם לא, נדחה את G. אחרת, ממשיכים למילה הבאה. ברור שאם Σ,L(G) בסופו של דבר נגיע למילה L(G) w / ונדחה ולכן.ALL CF G core אבל כעת נראה ש ALL CF G / R (למעשה מספיק להראות ש.(ALL CF G / RE משפט 5.25 לכל מ"ט M מעל א"ב Σ M וקלט w Σ M קיים A אוטומט מחסנית כך ש L(A) = Σ A אםם M לא מקבלת את.w הוכחה: נסתכל על הריצה של M על w, המורכבת מסדרת קונפיגורציות c. 0, c 1,..., c k כל קונפיגורציה כזו אפשר לקודד - היא מורכבת ממצב הסרט (מספר סופי של אי ), מיקום הראש, והמצב באוטומט. נפריד בין הקונפיגורציות באמצעות # למשל. נדבר ספציפית של שפת הקידודים של סדרת קונפיגורציות שהיא תקינה עבור המכונה M והמילה w ומקבלת. סדרה כזאת קיימת אםם M מקבלת את w; אחרת, אין כזאת. קידוד של סדרת קונפיגורציות תקינה ומקבלת מקיים: c 0 1. היא הקונפיגורציה ההתחלתית של M על w. (המצב הוא q, 0 הסרט מכיל את w, והראש נמצא בתחילת הסרט.) q.) acc היא קונפיגורציה מקבלת. (המצב הוא c k כל מעבר מ c i ל 1+i c תקין ב M. לכן קידוד שאינו כזה מקיים לפחות אחד משלושת הבאים: c 0 1. אינה הקונפיגורציה ההתחלתית. 2. k c אינה קונפיגורציה מקבלת..3 קיים מעבר i+1 c i c שאינו תקין. נרצה לבנות אוטומט מחסנית שמקבל בדיוק את סדרות הקונפיגורציות שמקיימות אחד משלושת התנאים הנ"ל. ניתן לעשות זאת לכל תנאי בנפרד כי אוטומט מחסנית הוא לא דטרמיניסטי ולכן יכול "להתפצל": c 0 1. היא מחרוזת קבועה כלשהי, אז אפשר כמובן לבנות "ענף" של האוטומט שיבדוק האם הוא קיבל משהו שאינו המחרוזת הקבועה הזאת. 2. בכל פעם שרואים # (המפריד בין קונפיגורציות), "ננחש" באופן לא דטרמיניסטי שהגענו לקונפיגורציה האחרונה ובודקים האם המצב שלה מקבל. אם כן, צריך לבדוק שבאמת הגענו לקונפיגורציה האחרונה כדי להחליט. 3. נצטרך "לנחש" בכל פעם מהו ה i שעבורו בודקים את התקינות. חלק מהעניין זה לבדוק שמצב הסרט לא השתנה בין שתי קונפיגורציות, וזה קצת דומה לשפה {ww} שהיא לא חסרת הקשר! כדי להתמודד עם זה, לכל קונפיגורציה אי זוגית על הסרט נעשה - reverse c 0 # c 1 R # c 2 # c 3 R #... עכשיו זה כבר יותר דומה לשפה } R {ww שהיא חסרת הקשר - חוץ ממקום אחד שבו הסרט השתנה. לסיכום, ראינו סקיצה של PDA שמקבל בדיוק את סדרת הקונפיגורציות הלא תקינות ו/או לא מקבלות של המכונה M. הדבר היחיד שהאוטומט לא מקבל זו הריצה התקינה והמקבלת של M, אם יש כזו. לכן L(A) = Σ A אםם M לא מקבלת את w, כנדרש. מסקנה.ALL CF G / R 5.26 הוכחה: נניח בשלילה שכך המצב, אז יש מ"ט M 0 שמכריעה את.ALL CF G כעת נבנה מ"ט M 1 שמכריעה את A T M ונגיע לסתירה (זוהי דוגמה לשימוש ברדוקציה באופן לא פורמלי). M 1 תבנה את ה PDA מהמשפט ותכתוב את הקידוד שלו על הסרט. לאחר מכן היא תהפוך את הקידוד הזה לקידוד של CFG (ראינו שזה אפשרי). נריץ את M 0 על הקידוד הזה ונדע האם ה PDA היה אוניברסאלי. אם M 0 מחזירה "כן", נחזיר "לא" ולהיפך. לפי המשפט, זה בדיוק "האם M מקבלת את w", כלומר הכרענו את A T M וזו סתירה לכך ש.A T M / R 27

28 5.6 משפט רייס טענה.L 1 = { M : w L(M), w > 5} / core 5.27 הוכחה: נראה רדוקציה A. T M m L 1 מהקלט, M w נייצר את המכונה T שפועלת על קלט x כך:.w על M מסמלצת את T.1 2. אם M דוחה, T דוחה;.3 אחרת, אם = x אז T מקבלת; 4. אחרת, T דוחה. קיבלנו ש { } = ) L(T כאשר M מקבלת את w, ו = ) L(T אחרת. לכן זוהי רדוקציה, ומכאן המסקנה. נראה מתבקש שתהיה הכללה כלשהי לטענות מהסוג הזה, שתאפשר לטעון משהו על שפות של מכונות טיורינג. לצורך כך נצטרך הגדרה: הגדרה P 5.28 קבוצה של מכונות טיורינג נקראת תכונה. תכונה נקראת סמנטית אם היא תלויה בשפה של המכונה, כלומר לכל שתי מכונות טיורינג M 1, M 2 אם ) 2 L(M 1 ) = L(M אזי.M 1 P M 2 P נאמר שתכונה היא טריוויאלית אם = P או P היא קבוצת כל המכונות טיורינג. נסמן ב T 0 מ"ט המקיימת = ) 0.L(T נסמן } P.L(P ) = { M : M למה 5.29 תהי P תכונה סמנטית לא טריוויאלית. נניח ש.T 0 / P אזי ) L(P.A T M m (ולכן גם (.L(P ) / core הוכחה: תהי H P מכונה כלשהי (יש כזו כי P אינה טריוויאלית). עבור, M w נבנה מכונת טיורינג T הפועלת על הקלט x כך:.w על M מסמלצת את T.1 2. אם M דוחה, אז T דוחה; 3. אחרת, T מריצה את H על x ועונה כמוה. התוצאה היא שאם M לא מקבלת את,w אז = ) L(T L(T 0 ) = ולכן T / P כי P היא תכונה סמנטית. לחלופין, אם M מקבלת את w אז L(H) L(T ) = ושוב T P כי.H P בזאת השלמנו את הרדוקציה. משפט 5.30 (משפט רייס) תהי P תכונה סמנטית לא טריוויאלית. אז השפה } P L(P ) = M } : M אינה כריעה. הוכחה: כדי להוכיח את המשפט עלינו לטפל רק במקרה שבו P מכילה גם מכונות בעלות שפה ריקה. ובכן, אם T 0 P אז התכונה המשלימה P מקיימת T 0 / P ולפי הלמה.L(P ) / core לכן,L(P ) / RE אבל בעצם ) L(P L(P ) = ולכן קיבלנו את המשפט. דוגמא לשימוש במשפט: נתבונן בשפה L(M)}.L = { M : w Σ, w L(M) ww R ww R נרצה להראות שהשפה אינה כריעה, ובשביל זה צריך להשתכנע שהתכונה של M סמנטית ולא טריוויאלית. קל לראות שזו תכונה סמנטית, שכן היא מתייחסת רק לשפה של המכונה ולא למכונה עצמה. התכונה גם לא טריוויאלית, שהרי T. 0 L לכן לפי משפט רייס L, / R ולמעשה לפי הגרסה ההפוכה של הלמה,.L / RE 5.7 דקדוקים פורמליים הגדרה 5.31 דקדוק פורמלי grammar) formal או (context sensitive grammar הוא רביעייה S) G = (V, Σ, R, כאשר V קבוצת משתנים, Σ א"ב של טרמינלים המקיים = V R Σ, אוסף כללי גזירה ו S V משתנה התחלה; ובנוסף כלל גזירה הוא ביטוי מהצורה x y כאשר ) V x (Σ V ) V (Σ ו ) V.y (Σ דוגמא לדקדוק פורמלי: S S abc C b Bc ε Bc bc בדקדוק זה, אפשר לגזור את המילה ab באופן הבא: S. abc abc ab טענה L RE 5.32 אםם קיים דקדוק פורמלי G כך ש.L(G) = L 28

29 הוכחה: (ר' תרגיל 8, שאלה 5) סקיצת הוכחה: בהינתן דקדוק פורמלי ומילה, אנו יכולים לבדוק את כל אפשרויות הגזירה של המילה בדקדוק באמצעות BFS (כל התפצלות כי מקום שבו אפשר להשתמש ביותר מאשר כלל גזירה אחד). אם המילה נגזרת מהדקדוק, בסופו של דבר נגיע אליה ונגזור אותה. בכיוון השני, בהינתן שפה הניתנת למניה רקורסיבית ומ"ט המזהה אותה, ניתן לבנות דקדוק פורמלי שפעולתו מחקה את מהלך הריצה של המכונה על מילת קלט כלשהי וניתן לגזור ממנו רק מילים שמתקבלות ע"י המכונה (ר' גם הטענה הבאה). טענה 5.33 תהי L(G)}.A G = {( G, w) : w אזי.A T M m A G הוכחה: בהינתן קלט (w, M ) נבנה דקדוק G עם הכללים הבאים שגורמים לכך שתהליך הגזירה של G יחקה את תהליך הריצה של M על w: S # w 1 q 0 w 2 w 3... w n # δ(q 1, a) = (q 2, b, R) עבור כלל מעבר מהצורה והראש הקורא/כותב נמצא מעל.w 1 משמעו שהמצב הנוכחי הוא q 0 w1 q 0 כאשר כאן נייצר לכל c Γ את הכלל: a c b c q 1 q 2 וכן את הכלל a q 1 # b q 2 וכנ"ל עבור כללים שבהם הראש הקורא/כותב פונה שמאלה. כללי הגזירה האלה גורמים לכך שהדקדוק אחרי t צעדים גוזר בדיוק את המילה המייצגת את ריצתה של M על w אחרי t צעדים. אם M הגיעה למצב מקבל, היינו צריכים לגזור את σ :σ, a Γ ונעשה את זה על פי הכללים הבאים, לכל,ε ל #σ 1 σ 2... σ k q acc σ k+1... σ m # σ q acc P P a P ap P P ε ( M, w) A T M ובזאת השלמנו את כעת ברור שאפשר לגזור את ε אםם M מגיעה ל,q acc כלומר ( G, ε) A G הרדוקציה. 5.8 בעיית ה PCP. xi אוסף הזוגות נמצא y i הקלט הוא קבוצה של זוגות מחרוזות ) n (x 1, y 1 ),..., (x n, y מעל א"ב.Σ כשנצייר אותם, יהיה נוח לכתוב בשפה P CP אם קיימת סדרה לא ריקה של אינדקסים (מותרות חזרות) n} i 1,..., i k {1,..., כך ש.y i1 y ik = x i1 x ik אם כן, P CP = {( x i, y i ) n i=1 : (i 1,..., i k ) x i1 x ik = y i1 y ik } הערה 5.34 קל לראות ש - P CP RE נעבור על כל סדרות האינדקסים בסדר לקסיקוגראפי ונבדוק האם קיבלנו פתרון. אם יש פתרון - בסופו של דבר אנחנו נמצא אותו. טענה.P CP / R

30 הוכחה: נראה זאת באמצעות רדוקציה מ A, G וכבר ראינו ש A. T M m A G המטרה היא שצירוף "אבני הדומינו" של PCP יהיה גזירה של מילה בדקדוק הפורמלי. נתבונן בדוגמא של הדקדוק הפורמלי הבא: S S ass b as b וגזירה לדוגמא בדקדוק זה:.S ass bs bb ניסיון ראשון: מה שמופיע בחלק התחתון בשלב הגזירה הבא צריך להופיע בחלק העליון בשלב הקודם. למשל, אם עד עכשיו גזרנו β α אם אפשר לגזור α. β במונחי הדוגמא מקודם, נשים לב למשל שעבור השלב ass bs שמיוצג את α, אז השלב הבא יהיה σ σ לכל σ, Σ V אבל זה בעייתי כי אז נוצר אנו צריכים לבטא גם את ה S שנשאר. אז אפשר להשאיר גם בלוק מהצורה b ע"י as פתרון ל PCP אפילו בנוכחות בלוק אחד כזה. נצטרך להימנע מהם. ניסיון שני: הבלוקים יהיו כדלקמן: σ σ והבלוק, σ σ כאשר נייחס ל σ את אותה משמעות כמו ל σ מבחינת חוקי הדקדוק המקורי..1 לכל σ Σ V יהיה לנו הבלוק. β α והבלוק β α 2. לכל כלל גזירה α β יהיה לנו הבלוק #S כאשר מסמן התחלה ו # מסמנת הפרדה בין שלבי הגזירה. 3. בלוק התחלה: כאשר מסמן סוף ו w היא מילת הקלט. w# 4. בלוק סיום: כדי לטפל בתווי #, נאפשר בסוג הראשון של הבלוקים גם # = σ. להלן דוגמא לגזירה של המילה bb בדקדוק הפורמלי שהראינו קודם: S# ã S S S # # b ã S S S # # b b b S # # b b b b # # bb# נשים לב ששלב הגזירה האחרון היה הכרחי כי אין לנו בלוק שבחלקו התחתון יש, b b אלא רק בלוק שיש בו.bb לכן אנו עושים עוד צעד העתקה קצת מיותר שכזה. כעת יש לנו תהליך חישוב שבונה קלט ל PCP מ. G, w אם L(G) w אז יש גזירה S = γ 1... γ m = w של המילה γ m כמו בגזירה מקודם. ב.G הפתרון PCP המתאים הוא # m, S# γ 1 #γ2 #... #γ כאשר אם m אי זוגי צריך בסוף # m #γ להיפך, בהינתן פתרון לבעיית ה PCP, ברור שבלוק ההתחלה צריך להיות ראשון ובלוק הסיום צריך להיות אחרון בהתאמת המחרוזות, וכל שלבי הביניים מתאימים לכללי גזירה של G. כלומר, במחרוזת פתרון ה PCP, כל מעבר הוא גזירה חוקית ב G. לכן A G m P CP כפי שרצינו. 5.9 פונקציות לא חשיבות 5 לפני שנעסוק בפונקציות, ננסה לחשוב על מספרים חשיבים. למשל, האם לכל מספר ממשי x קיימת תוכנית מחשב (או מכונת טיורינג) שפולטת את x? קל לראות משיקולי ספירה שהתשובה היא שלילית - קבוצת המספרים הממשיים אינה בת מניה, ואילו קבוצת תוכניות המחשב - ואפילו קבוצת כל המחרוזות הסופיות - היא בת מניה. נרצה לראות שתי דוגמאות קונקרטיות לפונקציות לא חשיבות f. : N N.1 נסדר את כל המ"ט לפי סדר לקסיקוגראפי של התיאור שלהן -..., 2.M 1, M כעת נגדיר את הפונקציה = 1 f(i) אם M i עוצרת על ε, ו 0 אחרת. כיוון שבעיית העצירה אינה כריעה, הפונקציה הזאת אינה חשיבה. 2. עבור א"ב סרט {,1,0} נגדיר את הפונקציה BB : N N כך ש BB(k) הוא מספר ה 1 ים המקסימלי שיכול להיות על הסרט לאחר שמ"ט M כלשהי בעלת k מצבים עם א"ב סרט כנ"ל עוצרת בריצתה על ε. (כלומר, עוברים על כל המ"ט שיש להן k מצבים מעל הא"ב הנתון, ובודקים כמה 1 ים יש על הסרט כשהן מסיימות את ריצתן על ε.) ראשית, ברור ש BB מונוטונית עולה ממש. בהינתן מ"ט שמדפיסה BB(k) אחדות על הסרט בריצתה (העוצרת) על ε, נחליף את המצב המקבל שלה במצב נוסף שזז על הסרט ימינה עד שהוא מוצא משהו שאינו 1, ואז כותב 1 ועובר למצב המקבל. מכאן.BB(k + 1) BB(k) + 1 > BB(k) נניח בשלילה ש BB חשיבה, ותהי H מכונת טיורינג המחשבת אותה. נניח בה"כ ש H מקבלת את הקלט שלה בבינארי ופולטת את הפלט שלה באונארי, כלומר מקבלת מספר בינארי k ועוצרת כשעל הסרט כתובות BB(k) אחדות. נניח שב H יש n מצבים. נבנה את המכונה M שבה + 1 n log מצבים שתוכל לעצור על ε כאשר על הסרט שלה כתוב בבינארי 2n. כעת נבנה את המכונה M שבהינתן ε מתחילה בתור M ואחרי ש 2n נכתב על הסרט (בבינארי), היא מעבירה את 5 החומר להלן לא נלמד במהלך הקורס, אלא מופיע בסיכום הרשמי של תרגול 8. 30

31 השליטה ל H שמדפיסה את.BB(2n) אבל זוהי סתירה, כי ל M יש + 1 n n + log מצבים והיא עוצרת עם BB(2n) אחדות על הסרט, ולכן מקבלים ש BB(2n),BB(n + log n + 1) וזו סתירה למונוטוניות (שהרי + 1 n.(2n > n + log (אפשר לחשוב על הנ"ל בתור תוכנית מחשב - אם יש פונקציה שאומרת כמה אחדות יכולה לפלוט כל פונקציה בעלת מספר מוגבל של תוים, אפשר לכתוב פונקציה חדשה שמעבירה לפונקציה המקורית מספר שגדול ממספר התוים בפונקציה המקורית + בפונקציה החדשה.) חלק III סיבוכיות 6 מחלקות זמן, P ו NP בפרק זה נתחיל למדוד את משאבי החישוב של מכונות טיורינג, ונתעניין בשאלה האם אפשר להכריע בעיה מסוימת תוך זמן מוגדר היטב, ולא "סתם להכריע" אותה. 6.1 מחלקות זמן הגדרה 6.1 תהי L R ותהי M מ"ט המכריעה אותה. נאמר ש (n) t, M הזמן שלוקח ל M לרוץ על קלט באורך n, הוא t M (n) = max x n, x Σ {number of steps of M before it stops on x} הערה 6.2 כמובן, הגדרה זו תלויה במכונה - ורוצים לשאול מהו הזמן עבור מ"ט אופטימלית שמזהה את L. כמו כן, נשים לב שאפשר להגדיר את (n) t M על כל מכונת טיורינג שעוצרת תמיד, ולא רק על כזאת שמכריעה את L. הגדרה 6.3 תהי + R f : N פונקציה מונוטונית עולה, ויהי Σ א"ב. אזי: TIME[f(n)] = {L Σ : M TM that decides L, t M (n) = O(f(n))} במילים אחרות, TIME[f(n)] L אם קיימת מכונת טיורינג דטרמיניסטית כך שלכל Σ w המכונה עוצרת תוך O(f( w )) צעדים, ומכריעה את L. נתחיל במחלקה המתבקשת ביותר,.TIME[n] ברור ש TIME[n] REG שכן מכונת טיורינג היא בפרט אוטומט סופי דטרמיניסטי, ואוטומטים פועלים בזמן ליניארי. ההיפך, כמובן, לא ברור:.TIME[f(n)] = REG אזי.f(n) n וגם lim n f(n) משפט 6.4 (ללא הוכחה) תהי R+ f : N מונוטונית עולה כך ש = 0 n n log טענה 6.5 תהי (w)}.l = {w {a, b} : # a (w) = # b אזי n].l TIME[n log הוכחה: ראינו כבר ש L / REG וקל לראות ש ] 2 L. TIME[n כדי להראות את החסם הדרוש צריך קצת להתחכם. למשל, הרעיון של למיין את המחרוזת הוא נחמד אבל במכונת טיורינג לא ניתן למיין בזמן (n - O(n log למשל, פעולת swap בין שני אלמנטים לא תיקח זמן קבוע. במקום זה: נעשה n שלבים שבכל אחד מהם נקטין את מספר ה a ים פי שניים ואת מספר ה b ים פי שניים, על ידי מעבר על המחרוזת משמאל לימין ומחיקת כל a שני וכל b שני, וכמובן זוכרים האם היה מספר זוגי כדי לוודא בסוף שהמספרים מסתדרים. אם מספר ה a ים וה b ים לא היה בעל אותה זוגיות, דוחים, ואחרת עושים סבב נוסף על המחרוזת. כל שלב לוקח O(n) זמן ולכן סך זמן הריצה הוא (n O(n log כנדרש. P = TIME[n k ] k=1 הגדרה 6.6 זוהי מחלקת השפות שניתנות להכרעה בזמן פולינומיאלי. 31

32 דוגמאות לבעיות ב P: קשירות של גרף, רשת זרימה, הפיכות של מטריצה - כמעט כל מה שלמדנו באלגוריתמים. הגדרה 6.7 נסמן ב NTIME[f(n)] את מחלקת השפות המקיימות את הדרישות של TIME[f(n)] עבור מכונת טיורינג לא דטרמיניסטית. במילים אחרות, NTIME[f(n)] L אם קיימת מכונת טיורינג לא דטרמיניסטית אשר על w L יש לה ריצה מקבלת תוך O(f( w )) צעדים, ועל w / L כל הריצות שלה דוחות תוך O(f(n)) צעדים, ובפרט כולן עוצרות. NP = NTIME[n k ] k=1 היחסים בין P ל NP מאוד מתוחים, וכבר מזה 40 שנה לא ידוע האם P. NP הערה 6.8 נשים לב שאנו לא דורשים מהמכונה הלא דטרמיניסטית לעצור תוך O(f( w )) צעדים בכל הריצות, אלא רק בחלק מהן. טענה L NP 6.9 אםם קיים קבוע k ומכונה לא דטרמיניסטית M כך ש M עוצרת על כל הקלטים תוך זמן ) k O(n ומכריעה את L. הוכחה: אנו יודעים שקיימת מ"ט M המקיימת את ההגדרה עם זמן ריצה k c. n נבצע סימולציה לא דטרמיניסטית למכונה זו במשך k c n צעדים. אם היא עדיין לא סיימה את כל ריצותיה, נדחה. אחרת, נענה כמוה. הסימולציה היא פולינומיאלית כנדרש. הגדרה 6.10 נוסחא במשתנים בוליאניים מוגדרת באינדוקציה בקורס בלוגיקה. אנחנו נסתפק בהגדרה ע"י דוגמא, למשל ) 2 x) 1 x ) 4 (x 3 x 2 x זו נוסחא במשתנים בוליאניים. טענה.SAT = { ϕ : ϕ is a satisfiable Boolean formula} NP 6.11 הוכחה: קל לראות שע"י מעבר על כל האפשרויות, ] n SAT TIME[2 כאשר n הוא מספר המשתנים הבוליאניים בנוסחא. כיצד ניתן להכריע את SAT בזמן פולינומי באמצעות מכונה לא דטרמיניסטית? ובכן, המכונה רושמת על הסרט באופן לא דטרמיניסטי אחד מ 2 n הצירופים שיש, וקוראת לפרוצדורה ליניארית שבודק האם ההשמה מספקת. אם יש השמה - המכונה תעצור ותחזיר את התשובה הנכונה, כלומר יש ריצה מקבלת, בזמן ליניארי. לכן.SAT NP 6.2 הצגת NP באמצעות מוודאים הגדרה 6.12 מוודא (verifier) לשפה L זו מכונת טיורינג דטרמיניסטית V כך ש: L = {x : y : x, y L(V )} כאשר y נקרא העד של x, וגם ש V עוצרת על כל הקלטים בזמן פולינומיאלי ב x. דוגמאות למוודאים: 1. במקרה של,SAT העד של שייכות נוסחא ל SAT היא השמה של ערכי אמת לפסוקיות, והמוודא זוהי פרוצדורת הבדיקה שמוודאת שההשמה אכן מספקת..2 נתבונן בשפה path}.hampath = { G : G contains a Hamiltonian כמובן יש מוודא לשפה - המוודא מקבל את הגרף ומסלול בגרף, ובודק האם זה אכן מסלול המילטוני. כלומר, L(V ) = { G, P : P is a Hamiltonian path in G} כמובן, זמן הריצה בשני המקרים הוא פולינומיאלי באורך הקלט המקורי. טענה 6.13 תהי L שפה. קיים מוודא V ל L אםם L. NP 32

33 הוכחה: ( ) העד לשייכות L ל N P זוהי סדרת קונפיגורציות שמייצגת ריצה מקבלת של מ"ט לא דטרמיניסטית M המכריעה את L בזמן פולינומי. המוודא בודק שסדרת הקונפיגורציות היא חוקית ומסתיימת בקבלה. נשים לב שאורך סדרת הקונפיגורציות הוא פולינומי באורך הקלט כי כל קונפיגורציה היא בגודל פולינומי ויש מספר פולינומי של קונפיגורציות, ולכן גם המוודא פועל בזמן פולינומי. (אפשרות "קצרה" יותר: במקום סדרת קונפיגורציות, להציג רק את הבחירות שהתקבלו בכל מקום שהייתה למכונה אפשרות לא דטרמיניסטית לפעולה, כאשר הבחירה מוצגת כמספר למשל. בתרגול קראנו לזה ה"כתובת" של הריצה.) ( ) יהי V מוודא פולינומי ב x ונראה שיש N מ"ט לא דטרמיניסטית כך ש L(N) = L המכריעה תוך ) k O(n צעדים. נניח ש V מכריע תוך ) k O( x צעדים. לכן אורך עד ל x יכול להיות לכל היותר ) k y, = O( x כי אם העד המינימלי ארוך מזה לא ייתכן זמן ריצה קצר יותר, שהרי V צריך לקרוא את העד. המכונה N תרשום y כלשהו על הסרט (אחד מכל העדים האפשריים באורך ) k (O(n בקידוד y,x ותפעיל עליהם את המוודא V. זוהי ריצה דטרמיניסטית ופולינומיאלית ב x. ברור שאם קיים עד y, באחת הריצות נקבל; אחרת, אף ריצה לא תקבל וכל הריצות ידחו. הערה 6.14 בהוכחה זו, וגם בהוכחות אחרות נשתמש בחופשיות ב O. כמובן, כשהמכונה N צריכה לכתוב על הסרט עדים, היא צריכה לדעת בדיוק את הקבוע של.cn k 6.3 בעיות קלאסיות ב NP הבעיות הבאות הן בעיות קלאסיות ב.NP בהמשך נחזור אליהן כדי לראות שהן גם NP שלמות. 1. קבוצה בת"ל - Set - Independent האם בגרף G קיימת קבוצה בת"ל בגודל k? 2. קליקה - Clique - האם בגרף G קיימת קליקה בגודל k? 3. מסלול המילטוני - Path - Hamiltonian האם בגרף G קיים מסלול המילטוני?.4 כיסוי ע"י קבוצות - Cover - Set נתון אוסף של ת"ק n} A 1,..., A m {1,... ושואלים האם n},... {1, מתקבל כאיחוד של?A 1,..., A m מהקבוצות k 5. כיסוי ע"י קודקודים - Cover - Vertex האם בגרף G ניתן לגעת בכל הצלעות בעזרת k קודקודים? 6. CNFSAT - האם נוסחא בוליאנית בצורת (Conjunctive Normal Form) CNF היא ספיקה? (נוסחא בצורת CNF היא נוסחא המחברת ב בין פסוקיות בסוגריים שבתוכן יש בין מספר ליטרלים, למשל ) 1 (.x 1 (x 3 x 2 x 4 ) (x 2 x ( m אפשרויות לבחור k ת"ק מתוך m הקבוצות הנתונות, והבדיקה האם אוסף של k ת"ק k ) נראה, למשל, ש.SetCover NP יש מכסה את {n,...,1} לוקחת זמן ליניארי ב n. לכן המכונה הלא דטרמיניסטית יכולה פשוט לכתוב על הסרט צירוף כלשהו של A 1,..., A m בגודל,k ואז להריץ מוודא דטרמיניסטי ולינארי שבודק את הכיסוי. במובן מסוים, כל הבעיות האלה הן ב NP כי בתנאי שיש פתרון - "קל יחסית" (בזמן פולינומיאלי) לבדוק שזהו הפתרון הנכון. עבור אף אחת מהבעיות הנ"ל לא ידוע האם "קל יחסית" (בזמן פולינומיאלי) למצוא את הפתרון. 6.4 רדוקציות מיפוי פולינומיאליות, קושי ושלמות ב NP הגדרה 6.15 יהיו Σ.L 1, L 2 רדוקציית מיפוי פולינומיאלית (או רדוקציית (Karp מ L 1 ל L 2 היא רדוקציית מיפוי מ L 1 ל L. 1 p שרצה בזמן פולינומיאלי. אם יש רדוקציה כזאת, נכתוב L 2 L 2 טענה.CNFSAT p IndependentSet 6.16 הוכחה: בהינתן נוסחא, נייצר גרף שבו קודקוד לכל הופעה של ליטרל בנוסחא. נחבר בצלע בין שני ליטרלים אם הם באותה פסוקית, או אם הם סותרים. נקבע את k להיות מספר הפסוקיות בנוסחא. לדוגמא, עבור הנוסחא (x 1 x 2 ) (x 1 x 2 ) x 1 נייצר את הגרף הבא: קל לראות שהתהליך הזה הוא פולינומיאלי, אבל מדוע זאת רדוקציה? ובכן, בתוך כל פסוקית חיברנו את כל הקודקודים, כך שאם בחרנו קודקוד מתוך פסוקית, שאר הקודקודים בפסוקית לא יהיו באנטי קליקה, ולכן מספר הקודקודים באנטי קליקה לא יעלה על מספר הפסוקיות. בנוסף, חיברנו את הליטרלים הסותרים ולכן באנטי קליקה לא תהיה סתירה בין הליטרלים. 33

34 הגדרה 6.17 תהי L שפה כך שלכל L NP מתקיים.L p L אז נגיד ש L היא NP קשה. אם בנוסף L NP אז נגיד ש L היא NP שלמה. נסמן ב NP C את אוסף השפות ה NP שלמות. משפט,Cook Levine) 6.18.CNFSAT NP C (1972 (הוכחה בהמשך.) מסקנה.IndependentSet N P C 6.19 טענה.CLIQUE NP C 6.20 הוכחה: מספיק להראות ש.IndependentSet p CLIQUE ואמנם, הרדוקציה היא פשוט לפלוט את הגרף המשלים (בצלעות). טענה.VC NP C 6.21 הוכחה: נשים לב שאם U V אז הוא כיסוי בקודקודים של הצלעות אםם V \ U קבוצה בת"ל. אכן, אם,u v V \ U ויש ביניהם צלע, הרי שהיא לא מכוסה. לכן בגרף יש כיסוי בקודקודים בגודל k אםם יש בו קבוצה בת"ל בגודל V k ולכן הרדוקציה היא. G, k G, V k BoundedA NT M = {( M, w, 1 t ) : y, y t, M accepts w#y in time t} 6.5 משפט Cook Levin הגדרה 6.22 הערה 6.23 קל לראות ש,BoundedA NT M NP שכן מכונה לא דטרמיניסטית יכולה לנחש את y שהוא באורך t לכל היותר, ולבצע סימולציה של M במשך t צעדים, שזה ייקח זמן פולינומיאלי ב t כנדרש. זו גם הסיבה שבגללה אנו מעבירים את t בייצוג אונארי - כדי לקבל זמן ריצה פולינומיאלי ב t. טענה.BoundedA NT M NP C 6.24 הוכחה: תהי L. NP ראינו שיש מ"ט דטרמיניסטית M וקבועים,c k כך שלכל Σ w מתקיים ש w L אםם קיים עד y כך ש M מקבלת את w#y תוך לכל היותר cn k צעדים, כאשר w. = n בהינתן קלט w, הפלט של הרדוקציה הוא ) t, M ),w 1 כאשר M המכונה הנ"ל ו t. = cn k הרדוקציה לוקחת זמן פולינומיאלי, וכמובן w L אםם ( M, w, 1 t ) BoundedA NT M לפי הגדרתה. הגדרה 6.25 בהינתן x 1,..., x k משתנים, A קבוצת ההשמות הבוליאניות למשתנים, 1} {0, A p : נקראת פרדיקט (predicate) על המשתנים.x 1,..., x k דוגמאות לפרדיקטים:.1 הנוסחא ) 4 x 4 x 1 (x 1 x 2 x 3 x מגדירה פרדיקט, כי עכשיו לכל השמה של ערכים בוליאניים למשתנים אנו מקבלים ערך אמת עבור הנוסחא. בעצם, כל נוסחת CNF ובכלל כל נוסחא בוליאנית מגדירה פרדיקט..2 הפסוק "אם x 1 או x 2 אז x 3 וגם "x 4 מגדיר פרדיקט..3 כל פונקציה 1} {0, k f : {0, 1} מגדירה פרדיקט p f על x 1,..., x k באופן ברור. טענה 6.26 לכל 1} {0, k f : {0, 1} הפרדיקט p f ניתן להצגה ע"י נוסחת.CNF { x i α i = 1 = i.l כעת הוכחה: דרך אחת לעשות זאת - בהינתן αנגדיר = (α 1,..., α k ) {0, 1} k D α = l 1... l k כאשר = 0 i x i α.p f = α:f(α)=1 D α { x i α i = 1 = i l ואז הבעיה היא שקיבלנו נוסחת DNF ולא נוסחת,CNF ונתקן את זה ע"י הגדרת C α = l 1... l k כאשר = 0 i x i α.cnf וזו כבר נוסחת,p f = α:f(α)=0 C α מסקנה 6.27 אם רוצים נוסחת,CNF אפשר להסתפק בגימום של הרבה פרדיקטים שכל אחד מהם הוא ב.CNF עדיף שכל פרדיקט יהיה מעל מספר קטן מאוד של משתנים, שהרי הצגת CNF של פרדיקט מעל k משתנים עשויה להיות באורך ) k.o(k 2 34

35 משפט BoundedA NT M p CNFSAT 6.28 (משפט,Cook Levin (1972 הוכחה: בהינתן ) t, M ),w 1 הרדוקציה תבנה קבוצת משתנים בוליאניים ונוסחת ϕ CNF מעליהם. לכל ריצה באורך t של M תהיה השמה יחידה למשתנים ה"מקודדת" את הריצה. ההשמות היחידות ש ϕ מקבלת יהיו ייצוגים של ריצות מקבלות על w#y כאשר. y t כאשר מייצגים ריצה של M ע"י השמה, נרצה לקודד את מצב הסרט, את המצב של המכונה, ואת המיקום של הראש הקורא/כותב. אין טעם להסתכל על מקומות בסרט מעבר לתא t או מעבר לתא t. כמו כן, נסכים בינינו שאם הגענו למצב מקבל/דוחה תוך פחות מ t צעדים, אז נחזור על אותה קונפיגורציה עד שיעברו t צעדים. לכל "עובדה" מהריצה הזאת יהיה לנו משתנה בוליאני: 1. משתני הסרט - s {0,..., t}, i { t,..., t}, a Γ { } : X s,a,i כאשר המשתנה X s,a,i מייצג את הטענה: "בזמן s במקום ה i על הסרט כתובה האות a". 2. מיקום הראש - s {0,..., t}, i { t,..., t} : h s,i כאשר המשתנה h s,i מייצג את הטענה: "בזמן s הראש נמצא במקום ה i". 3. משתני המצב - s {0,..., t}, q Q : g s,q כאשר המשתנה g s,q מייצג את הטענה: "בזמן s מצב המכונה הוא q". כעת נבנה את הנוסחא שלנו, שתהיה מורכבת מגימום של פרדיקטים: 1. מניעת ריבוי - הראש נמצא במקום אחד בלבד, בכל תא של הסרט כתובה רק אות אחת, המכונה נמצאת במצב אחד בלבד,. s, q 1 q 2 : וכו'. למשל עבור מצב הסרט:, s, i, a b : X s,a,i X s,b,i ועבור מצב המכונה: g s,q1 g s,q2. s, i : 2. קיום מצבים - יש מקום שבו הראש נמצא, וכו'. למשל, עבור מצב הסרט: a Γ { } X s,a,i.3 כללי מעבר - עבור כל שוויון מהצורה R) δ(q 1, a) = (q 2, b, נגדיר את הפרדיקט לכל :s, i "אם X s,a,i וגם h s,i וגם g s,q1 אז X s+1,b,i וגם s+1,i+1 h וגם g". s+1,q2 נשים לב שהפרדיקט הוא על מספר קבוע של משתנים, ולכן תרגומו ל CNF לא יגרום להתפוצצות אקספוננציאלית באורך הקלט (גודל הנוסחא). כמו כן, צריך להוסיף כאן את ההתייחסות לכך שאם כבר הגענו למצב מקבל/דוחה, אנו שומרים על אותו מצב כמו קודם - זו פשוט תוספת להגדרת δ..4 תנאי התחלה - המילה נמצאת על הסרט: i w 1 : X 0,wi,i 0 וה # נמצאת על הסרט: 0,#, w ;X מצב ההתחלה y. באופן דומה יש לפרט את המשתנים לגבי g. וגם q0,0 h 0,0 -.5 הריצה מקבלת - כלומר.g t,qacc ברור שקיבלנו רדוקציה פולינומיאלית, ולכן השלמנו את ההוכחה - CNFSAT היא N שלמה. P 6.6 עוד בעיות NP שלמות נראה מספר דוגמאות לרדוקציות שבסופן נשתכנע שכל השפות שראינו הן N שלמות. P 1. השפה 3DMatching היא כל הקלטים המתארים שלוש קבוצות שוות גודל, ושלשות המוגדרות על איברי הקבוצות, כך שקיים זיווג תלת מימדי של איברי שלוש הקבוצות (כלומר, הכללה של זיווג בגרף דו"צ). בהינתן,X,Y Z שלוש קבוצות שגודל כל אחת m, ו T X Y Z אנו מחפשים m שלשות כך שכל איבר בכל קבוצה משתתף בשלשה אחת בדיוק. קל לראות ש 3DM NP כי יש מוודא פולינומיאלי לזיווג מושלם. נראה שהבעיה קשה ע"י רדוקציה מ 3SAT (בהמשך נראה ש ). 6 CNFSAT p 3SAT בהינתן קלט של - 3SAT נוסחא ϕ בעלת k פסוקיות ו n משתנים - נבנה שני סוגים של gadget ים עבור הבעיה החדשה: הסוג הראשון עבור משתנים, כדי לוודא שההשמה של ערכי האמת היא חוקית, והסוג השני הוא עבור פסוקיות, כדי לוודא שההשמה היא מספקת. לכל משתנה x, ניצור gadget כך: k נקודות ב k X, נקודות ב Y ו 2k נקודות ב Z, ונחבר אותם בשלשות כמו בציור : 7 6 חשוב לציין שיש סיבה לבחירה ב 3. למשל, אם מצמצמים את מספר הליטרלים בכל פסוקית ל 2, מקבלים שפה שניתן להכריע בקלות בזמן פולינומי (ע"י בדיקה שהנוסחא לא מכילה סתירה). ר' תרגיל 9, שאלה 4. 7 הציורים נגנבו ללא בושה מסיכום תרגול

36 בכל gadget של משתנה x יש לנו 2k נקודות ב.Z נסמן אותן } 2k {z 1, z 2,..., z ונייחס להן את המשמעות הבאה: z 1 יקושר לעובדה ש x מקבל ערך T בפסוקית z 2 c, 1 יקושר לעובדה ש x מקבל ערך F בפסוקית c, 1 וכן הלאה. לבסוף z 2k יקושר לעובדה ש x מקבל ערך F בפסוקית c. k לכל פסוקית,c i נוסיף שתי נקודות x i X ו.y i Y לכל ליטרל l המופיע ב c i נוסיף שלשה ) j (x i, y i, z כאשר z j מקושר (מהסעיף הקודם) לעובדה ש l מקבל את הערך המתאים בפסוקית c. i כלומר, אם למשל l, = a אז z j יהיה הקודקוד המקושר לעובדה ש a מקבל ערך F בפסוקית.c i למשל, עבור הפסוקית c 1 = x 1 x 2 x 3 נקבל את המצב (החלקי) הבא: לבסוף, יש לנו יותר איברים ב Z מאשר בקבוצות האחרות. נוסיף נקודות נוספות ב X וב Y המחוברות בשלשות לכל איברי Z. יש לנו n) k(1 שלשות כאלה. ברור שתהליך הבנייה הוא פולינומיאלי, ונותר להראות שזוהי רדוקציה. מהשמה מספקת של נוסחא, לכל משתנה x שקיבל את הערך T אנו נבחר את השלשות שמכילות את ה z ים i כך ש z i מקושר לעובדה ש x קיבל את הערך F בנוסחא (הפוך מההשמה), מה שמשאיר את ה z ים i המקושרים לעובדה ש x קיבל את הערך T פנויים. כעת מכל פסוקית נבחר משתנה כלשהו שמספק אותה, והשלשה שמחברת אותו עם ה z j המתאים לו, שהוא בהכרח נותר פנוי. להיפך, בהינתן זיווג בגרף, כל המעגלים הפנימיים ב gadgets של המשתנים מכוסים, וזה אפשרי רק אם בחרנו את כל השלשות הזוגיות או כל השלשות האי זוגיות. מהזוגיות מתקבלת ההשמה למשתנים. גם כל ה gadgets של הפסוקיות מכוסים, ושוב זה אפשרי רק אם ה z ים המתאימים פנויים. לכן התאמה משרה השמה מספקת. 2. כעת נראה ש.3DM p SubsetSum ניזכר ש SubsetSum = { s 1,..., s n, t : I {1,..., n}, i I s i = t} כאשר כל המספרים הם טבעיים. נראה כיצד הרדוקציה פועלת על הקבוצות X = {x 0,..., x m 1 }, Y = {y 0,..., y m 1 }, Z = {z 0,..., z m 1 }, T = {t 0,..., t n } X Y Z לשלשה ) k x) i, y j, z נתאים מספר טבעי בעל 3m ספרות בבסיס b המחולק לשלושה חלקים, כל אחד בגודל m, שיש בו 1 במקומות i, m + j, 2m + k ובשאר המקומות 0 ים. פורמלית, 36

אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה:

אוטומט סופי דטרמיניסטי מוגדר עי החמישייה: 2 תרגול אוטומט סופי דטרמיניסטי אוטומטים ושפות פורמליות בר אילן תשעז 2017 עקיבא קליינרמן הגדרה אוטומט סופי דטרמיניסטי מוגדר ע"י החמישייה: (,, 0,, ) כאשר: א= "ב שפת הקלט = קבוצה סופית לא ריקה של מצבים מצב

Διαβάστε περισσότερα

{ : Halts on every input}

{ : Halts on every input} אוטומטים - תרגול 13: רדוקציות, משפט רייס וחזרה למבחן E תכונה תכונה הינה אוסף השפות מעל.(property המקיימות תנאים מסוימים (תכונה במובן של Σ תכונה לא טריביאלית: תכונה היא תכונה לא טריוויאלית אם היא מקיימת:.

Διαβάστε περισσότερα

מודלים חישוביים תרגולמס 5

מודלים חישוביים תרגולמס 5 מודלים חישוביים תרגולמס 5 30 במרץ 2016 נושאי התרגול: דקדוקים חסרי הקשר. למת הניפוח לשפות חסרות הקשר. פעולות סגור לשפות חסרות הקשר. 1 דקדוקים חסרי הקשר נזכיר כי דקדוק חסר הקשר הוא רביעיה =(V,Σ,R,S) G, כך

Διαβάστε περισσότερα

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד

פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשעד פתרון תרגיל 5 מבוא ללוגיקה ותורת הקבוצות, סתיו תשע"ד 1. לכל אחת מן הפונקציות הבאות, קבעו אם היא חח"ע ואם היא על (הקבוצה המתאימה) (א) 3} {1, 2, 3} {1, 2, : f כאשר 1 } 1, 3, 3, 3, { 2, = f לא חח"ע: לדוגמה

Διαβάστε περισσότερα

חורף תש''ע פתרון בחינה סופית מועד א'

חורף תש''ע פתרון בחינה סופית מועד א' מד''ח 4 - חורף תש''ע פתרון בחינה סופית מועד א' ( u) u u u < < שאלה : נתונה המד''ח הבאה: א) ב) ג) לכל אחד מן התנאים המצורפים בדקו האם קיים פתרון יחיד אינסוף פתרונות או אף פתרון אם קיים פתרון אחד או יותר

Διαβάστε περισσότερα

Logic and Set Theory for Comp. Sci.

Logic and Set Theory for Comp. Sci. 234293 - Logic and Set Theory for Comp. Sci. Spring 2008 Moed A Final [partial] solution Slava Koyfman, 2009. 1 שאלה 1 לא נכון. דוגמא נגדית מפורשת: יהיו } 2,(p 1 p 2 ) (p 2 p 1 ).Σ 2 = {p 2 p 1 },Σ 1 =

Διαβάστε περισσότερα

ניתן לקבל אוטומט עבור השפה המבוקשת ע "י שימוששאלה 6 בטכניקתשפה המכפלה שנייה כדי לבנות אוטומט לשפת החיתוך של שתי השפות:

ניתן לקבל אוטומט עבור השפה המבוקשת ע י שימוששאלה 6 בטכניקתשפה המכפלה שנייה כדי לבנות אוטומט לשפת החיתוך של שתי השפות: שאלה 1 בנה אוטומט המקבל את שפת כל המילים מעל הא"ב {,,} המכילות לפחות פעם אחת את הרצף ומיד אחרי כל אות מופיע הרצף. ניתן לפרק את השפה לשתי שפות בסיס מעל הא"ב :{,,} שפת כל המילים המכילות לפחות פעם אחת את

Διαβάστε περισσότερα

מודלים חישוביים כריעות R זוהי מחלקת השפות הכריעות. מחלקה זו סגורה תחת פעולת המשלים. רדוקציה בעיית ההכרעה רדוקציית מיפוי.

מודלים חישוביים כריעות R זוהי מחלקת השפות הכריעות. מחלקה זו סגורה תחת פעולת המשלים. רדוקציה בעיית ההכרעה רדוקציית מיפוי. מודלים חישוביים סיכום כריעות טענה: לא כל הפונקציות חשיבות. מספר התוכניות הוא בן מניה. כל תוכנית מגדירה פונקציה מספרית אחת לכל היותר. לכן מספר האלגוריתמים הוא בן מניה בעוד שמספר הפונקציות המספריות אינו

Διαβάστε περισσότερα

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( )

פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד ... ( ) ( ) ( ) = L. uuruuruur. { v,v,v ( ) ( ) ( ) ( ) פתרון תרגיל 8. מרחבים וקטורים פרישה, תלות \ אי-תלות לינארית, בסיס ומימד a d U c M ( יהי b (R) a b e ל (R M ( (אין צורך להוכיח). מצאו קבוצה פורשת ל. U בדקו ש - U מהווה תת מרחב ש a d U M (R) Sp,,, c a e

Διαβάστε περισσότερα

מודלים חישוביים תרגולמס 7

מודלים חישוביים תרגולמס 7 מודלים חישוביים תרגולמס 7 13 באפריל 2016 נושאי התרגול: מכונת טיורינג. 1 מכונת טיורינג נעבור לדבר על מודל חישוב חזק יותר (ובמובן מסוים, הוא מודל החישוב הסטנדרטי) מכונות טיורינג. בניגוד למודלים שראינו עד

Διαβάστε περισσότερα

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur

פתרון תרגיל מרחבים וקטורים. x = s t ולכן. ur uur נסמן, ur uur לכן U הוא. ur uur. ur uur פתרון תרגיל --- 5 מרחבים וקטורים דוגמאות למרחבים וקטורים שונים מושגים בסיסיים: תת מרחב צירוף לינארי x+ y+ z = : R ) בכל סעיף בדקו האם הוא תת מרחב של א } = z = {( x y z) R x+ y+ הוא אוסף הפתרונות של המערכת

Διαβάστε περισσότερα

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012)

יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 6 נושא: תחשיב הפסוקים: הפונקציה,val גרירה לוגית, שקילות לוגית 1. כיתבו טבלאות אמת לפסוקים הבאים: (ג) r)).((p q) r) ((p r) (q p q r (p

Διαβάστε περισσότερα

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם

שדות תזכורת: פולינום ממעלה 2 או 3 מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה. שקיימים 5 מספרים שלמים שונים , ראשוני. שעבורם תזכורת: פולינום ממעלה או מעל שדה הוא פריק אם ורק אם יש לו שורש בשדה p f ( m i ) = p m1 m5 תרגיל: נתון עבור x] f ( x) Z[ ראשוני שקיימים 5 מספרים שלמים שונים שעבורם p x f ( x ) f ( ) = נניח בשלילה ש הוא

Διαβάστε περισσότερα

אוטומטים- תרגול 8 שפות חסרות הקשר

אוטומטים- תרגול 8 שפות חסרות הקשר אוטומטים- תרגול 8 שפות חסרות הקשר דקדוק חסר הקשר דקדוק חסר הקשר הנו רביעיה > S

Διαβάστε περισσότερα

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים

צעד ראשון להצטיינות מבוא: קבוצות מיוחדות של מספרים ממשיים מבוא: קבוצות מיוחדות של מספרים ממשיים קבוצות של מספרים ממשיים צעד ראשון להצטיינות קבוצה היא אוסף של עצמים הנקראים האיברים של הקבוצה אנו נתמקד בקבוצות של מספרים ממשיים בדרך כלל מסמנים את הקבוצה באות גדולה

Διαβάστε περισσότερα

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ

משוואות רקורסיביות רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים. למשל: יונתן יניב, דוד וייץ משוואות רקורסיביות הגדרה: רקורסיה זו משוואה או אי שוויון אשר מתארת פונקציה בעזרת ערכי הפונקציה על ארגומנטים קטנים למשל: T = Θ 1 if = 1 T + Θ if > 1 יונתן יניב, דוד וייץ 1 דוגמא נסתכל על האלגוריתם הבא למציאת

Διαβάστε περισσότερα

ל הזכויות שמורות לדפנה וסטרייך

ל הזכויות שמורות לדפנה וסטרייך מרובע שכל זוג צלעות נגדיות בו שוות זו לזו נקרא h באיור שלעיל, הצלעות ו- הן צלעות נגדיות ומתקיים, וכן הצלעות ו- הן צלעות נגדיות ומתקיים. תכונות ה כל שתי זוויות נגדיות שוות זו לזו. 1. כל שתי צלעות נגדיות

Διαβάστε περισσότερα

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5

ביטויים רגולריים הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) הרצאה 5 הפקולטה למדעי המחשב אוטומטים ושפות פורמליות (236353) ביטויים רגולריים הרצאה 5 המצגת מבוססת על ספרם של פרופ' נסים פרנסיז ופרופ' שמואל זקס, "אוטומטים ושפות פורמליות", האוניברסיטה הפתוחה, 1987. גרסה ראשונה

Διαβάστε περισσότερα

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור

לדוגמה: במפורט: x C. ,a,7 ו- 13. כלומר בקיצור הרצאה מס' 1. תורת הקבוצות. מושגי יסוד בתורת הקבוצות.. 1.1 הקבוצה ואיברי הקבוצות. המושג קבוצה הוא מושג בסיסי במתמטיקה. אין מושגים בסיסים יותר, אשר באמצעותם הגדרתו מתאפשרת. הניסיון והאינטואיציה עוזרים להבין

Διαβάστε περισσότερα

בעיות חשיבות: :(State transition system) STS מושגים: רדוקציה: f אינה חשיבה g אינה חשיבה; בבעיות הכרעה: f לא כריעה g לא כריעה.

בעיות חשיבות: :(State transition system) STS מושגים: רדוקציה: f אינה חשיבה g אינה חשיבה; בבעיות הכרעה: f לא כריעה g לא כריעה. 1 סיכומים למבחן בקורס מודלים חישוביים סמסטר א' 2008-9 (פרופ' נחום דרשוביץ) חלק ראשון: חישוביות בעיות חשיבות: דוגמאות לפוקנציות לא חשיבות: פונקציה תיאור הערות, הבונה החרוץ בהינתן מספר n, מה הוא הפלט הגדול

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)

לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשעו (2016) לוגיקה ותורת הקבוצות פתרון תרגיל בית 4 אביב תשע"ו (2016)............................................................................................................. חלק ראשון: שאלות שאינן להגשה 1. עבור

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים:

לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשעו ( ) ... חלק ראשון: שאלות שאינן להגשה נפריד למקרים: לוגיקה ותורת הקבוצות פתרון תרגיל בית 8 חורף תשע"ו ( 2016 2015 )............................................................................................................. חלק ראשון: שאלות שאינן להגשה.1

Διαβάστε περισσότερα

חלק 1 כלומר, פונקציה. האוטומט. ) אותיות, אלפבית, א"ב (.

חלק 1 כלומר, פונקציה. האוטומט. ) אותיות, אלפבית, אב (. תוכן עניינים תקציר מודלים חישוביים ערך יגאל הינדי 2 2 2 3 4 6 6 6 7 7 8 8 9 11 13 14 14 15 16 17 17 18 19 20 20 20 20 - האוטומט הסופי - אוטומט סופי דטרמניסטי 2 פרק - מושגים ומילות מפתח 2.1 - הגדרת אוטומט

Διαβάστε περισσότερα

שפות פורמאליות אוטומטים

שפות פורמאליות אוטומטים הנושאים שנעבור שפות פורמאליות אוטומטים שפות פורמאליות מכונות/אוטומטים דקדוקים תורת הקומפילציה אהרון נץ מבוסס על השקפים של עומר ביהם שמבוססים על שקפי הרצאה מהקורס אוטומטים ושפות פורמאליות בטכניון, פרופ'

Διαβάστε περισσότερα

הגדרה: מצבים k -בני-הפרדה

הגדרה: מצבים k -בני-הפרדה פרק 12: שקילות מצבים וצמצום מכונות לעי תים קרובות, תכנון המכונה מתוך סיפור המעשה מביא להגדרת מצבים יתי רים states) :(redundant הפונקציה שהם ממלאים ניתנת להשגה באמצעו ת מצבים א חרים. כיוון שמספר רכיבי הזיכרון

Διαβάστε περισσότερα

תרגיל 13 משפטי רול ולגראנז הערות

תרגיל 13 משפטי רול ולגראנז הערות Mthemtics, Summer 20 / Exercise 3 Notes תרגיל 3 משפטי רול ולגראנז הערות. האם קיים פתרון למשוואה + x e x = בקרן )?(0, (רמז: ביחרו x,f (x) = e x הניחו שיש פתרון בקרן, השתמשו במשפט רול והגיעו לסתירה!) פתרון

Διαβάστε περισσότερα

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות

דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות יסודות לוגיקה ותורת הקבוצות למערכות מידע (סמסטר ב 2012) דף פתרונות 7 נושא: תחשיב הפסוקים: צורה דיסיונקטיבית נורמלית, מערכת קשרים שלמה, עקביות 1. מצאו צורה דיסיונקטיבית נורמלית קנונית לפסוקים הבאים: (ג)

Διαβάστε περισσότερα

Regular Expressions (RE)

Regular Expressions (RE) Regular Expressions (RE) ביטויים רגולריים עד כה דנו במספר מודלים חישוביים להצגת (או ליצור) שפות רגולריות וראינו שכל המודלים האלה הם שקולים מבחינת כוח החישובי שלהם. בסעיף זה נראה עוד דרך להצגת (או ליצור)

Διαβάστε περισσότερα

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשע"ב זהויות טריגונומטריות

תרגול 1 חזרה טורי פורייה והתמרות אינטגרליות חורף תשעב זהויות טריגונומטריות תרגול חזרה זהויות טריגונומטריות si π α) si α π α) α si π π ), Z si α π α) t α cot π α) t α si α cot α α α si α si α + α siα ± β) si α β ± α si β α ± β) α β si α si β si α si α α α α si α si α α α + α si

Διαβάστε περισσότερα

( )( ) ( ) f : B C היא פונקציה חח"ע ועל מכיוון שהיא מוגדרת ע"י. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חח"ע אז ועל פי הגדרת

( )( ) ( ) f : B C היא פונקציה חחע ועל מכיוון שהיא מוגדרת עי. מכיוון ש f היא פונקציהאז )) 2 ( ( = ) ( ( )) היא פונקציה חחע אז ועל פי הגדרת הרצאה 7 יהיו :, : C פונקציות, אז : C חח"ע ו חח"ע,אז א אם על ו על,אז ב אם ( על פי הגדרת ההרכבה )( x ) = ( )( x x, כךש ) x א יהיו = ( x ) x חח"ע נקבל ש מכיוון ש חח"ע נקבל ש מכיוון ש ( b) = c כך ש b ( ) (

Διαβάστε περισσότερα

שפות פורמאליות אוטומטים

שפות פורמאליות אוטומטים שפות פורמאליות אוטומטים תורת הקומפילציה אהרון נץ מבוסס על השקפים של עומר ביהם שמבוססים על שקפי הרצאה מהקורס אוטומטים ושפות פורמאליות בטכניון, פרופ' שמואל זקס 1 הנושאים שנעבור שפות פורמאליות מכונות/אוטומטים

Διαβάστε περισσότερα

אוטומטים ושפות פורמליות תרגולים

אוטומטים ושפות פורמליות תרגולים אוטומטים ושפות פורמליות תרגולים מבוסס על תרגולים של מר גולדגביכט עומר, אוניברסיטת בר אילן 2012. שיעור 1 הגדרות: א"ב: אוסף סופי ולא ריק של סימנים/אותיות/תווים. נסמן אותו באות. דוגמאות: 9},... 1,,{0, {א,..,.

Διαβάστε περισσότερα

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות

מינימיזציה של DFA מינימיזציה של הקנוני שאותה ראינו בסעיף הקודם. בנוסף, נוכיח את יחידות האוטומט המינימלי בכך שנראה שכל אוטומט על ידי שינוי שמות מינימיזציה של DFA L. הוא אוטמומט מינימלי עבור L של שפה רגולרית A ראינו בסוף הסעיף הקודם שהאוטומט הקנוני קיים A DFA בכך הוכחנו שלכל שפה רגולרית קיים אוטומט מינמלי המזהה אותה. זה אומר שלכל נקרא A A לאוטומט

Διαβάστε περισσότερα

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r

חישוביות הרצאה 4 לא! זיהוי שפות ע''י מכונות טיורינג הוכחה: הגדרת! : f r ל' ' פונקציות פרימיטיביות רקורסיביות חישוביות הרצאה 4 האם כל פונקציה מלאה היא פרימיטיבית רקורסיבית? לא נראה שתי הוכחות: פונקציות רקורסיביות (המשך) זיהוי שפות ע''י מכונות טיורינג הוכחה קיומית: קיימות פונקציות

Διαβάστε περισσότερα

קובץ שאלות ופתרונות של שאלות ממבחנים מנושאים שונים

קובץ שאלות ופתרונות של שאלות ממבחנים מנושאים שונים אוטומטים ושפות פורמליות 236353 סמסטר אביב 2016 קובץ שאלות ופתרונות של שאלות ממבחנים מנושאים שונים קובץ ונערך ע"י אורן אשכנזי ומיכל הורוביץ תכונות סגור ודקדוקים רגולריים. עבור שפות L 1, L 2 מעל א"ב Σ נגדיר

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 5

מתמטיקה בדידה תרגול מס' 5 מתמטיקה בדידה תרגול מס' 5 נושאי התרגול: פונקציות 1 פונקציות הגדרה 1.1 פונקציה f מ A (התחום) ל B (הטווח) היא קבוצה חלקית של A B המקיימת שלכל a A קיים b B יחיד כך ש. a, b f a A.f (a) = ιb B. a, b f או, בסימון

Διαβάστε περισσότερα

מודלים חישוביים, חישוביות וסיבוכיות (חישוביות) 67521

מודלים חישוביים, חישוביות וסיבוכיות (חישוביות) 67521 מודלים חישוביים, חישוביות וסיבוכיות (חישוביות) 67521 22 ביוני 2012 מרצה: גיא קינדלר מתרגל: שאול אלמגור "...one TM to rule them all..." באדיבות בן מאירי איני לוקחת אחריות על מה שכתוב כאן, so tread lightly

Διαβάστε περισσότερα

gcd 24,15 = 3 3 =

gcd 24,15 = 3 3 = מחלק משותף מקסימאלי משפט אם gcd a, b = g Z אז קיימים x, y שלמים כך ש.g = xa + yb במלים אחרות, אם ה כך ש.gcd a, b = xa + yb gcd,a b של שני משתנים הוא מספר שלם, אז קיימים שני מקדמים שלמים כאלה gcd 4,15 =

Διαβάστε περισσότερα

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin(

= 2. + sin(240 ) = = 3 ( tan(α) = 5 2 = sin(α) = sin(α) = 5. os(α) = + c ot(α) = π)) sin( 60 ) sin( 60 ) sin( א. s in(0 c os(0 s in(60 c os(0 s in(0 c os(0 s in(0 c os(0 s in(0 0 s in(70 מתאים לזהות של cos(θsin(φ : s in(θ φ s in(θcos(φ sin ( π cot ( π cos ( 4πtan ( 4π sin ( π cos ( π sin ( π cos ( 4π sin ( 4π

Διαβάστε περισσότερα

הרצאה נושאי הקורס 0.2 א"ב ומילים 0.3 שפות 1. מהו חישוב? 2. מהו מחשב? 3. מהו אלגוריתם? 4. מה ניתן לחשב? מה לא ניתן?

הרצאה נושאי הקורס 0.2 אב ומילים 0.3 שפות 1. מהו חישוב? 2. מהו מחשב? 3. מהו אלגוריתם? 4. מה ניתן לחשב? מה לא ניתן? הרצאה 1 0.1 נושאי הקורס 1. מהו חישוב? 2. מהו מחשב? 3. מהו אלגוריתם? 4. מה ניתן לחשב? מה לא ניתן? בקורס זה נעסוק בבעיות חישוב הנקראות בעיות הכרעה. בהינתן קלט, אנו נבצע "חישוב" ובסופו נחזיר תשובה האם הקלט

Διαβάστε περισσότερα

תרגול מס' 6 פתרון מערכת משוואות ליניארית

תרגול מס' 6 פתרון מערכת משוואות ליניארית אנליזה נומרית 0211 סתיו - תרגול מס' 6 פתרון מערכת משוואות ליניארית נרצה לפתור את מערכת המשוואות יהי פתרון מקורב של נגדיר את השארית: ואת השגיאה: שאלה 1: נתונה מערכת המשוואות הבאה: הערך את השגיאה היחסית

Διαβάστε περισσότερα

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק

brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק יום א 14 : 00 15 : 00 בניין 605 חדר 103 http://u.cs.biu.ac.il/ brookal/logic.html לוגיקה מתמטית תרגיל אלון ברוק 29/11/2017 1 הגדרת קבוצת הנוסחאות הבנויות היטב באינדוקציה הגדרה : קבוצת הנוסחאות הבנויות

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר

לוגיקה ותורת הקבוצות מבחן סופי אביב תשעב (2012) דפי עזר לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ב (2012) דפי עזר תורת הקבוצות: סימונים.N + = N \ {0} קבוצת המספרים הטבעיים; N Z קבוצת המספרים השלמים. Q קבוצת המספרים הרציונליים. R קבוצת המספרים הממשיים. הרכבת

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 13

מתמטיקה בדידה תרגול מס' 13 מתמטיקה בדידה תרגול מס' 13 נושאי התרגול: תורת הגרפים. 1 מושגים בסיסיים נדון בגרפים מכוונים. הגדרה 1.1 גרף מכוון הוא זוג סדור E G =,V כך ש V ו E. V הגרף נקרא פשוט אם E יחס אי רפלקסיבי. כלומר, גם ללא לולאות.

Διαβάστε περισσότερα

r. כלומר התחיל במצב ההתחלתי, סיים במצב מקבל, ובדרך עבר בצורה חוקית. ניתן להגדיר

r. כלומר התחיל במצב ההתחלתי, סיים במצב מקבל, ובדרך עבר בצורה חוקית. ניתן להגדיר מודלים חישוביים סיכום למבחן אוטומטים: שפות / מחרוזות / הגדרות בסיסיות: א"ב: Σ הוא אוסף סופי של תווים, סימנים. מחרוזת / מילה: רצף סופי של אותיות מא"ב מסוים, כאשר מספר האותיות הוא אורכה המחרוזת הריקה: ε

Διαβάστε περισσότερα

A-PDF Merger DEMO : Purchase from to remove the watermark

A-PDF Merger DEMO : Purchase from  to remove the watermark A-PDF Merger DEMO : Purchase from wwwa-pdfcom to remove the watermark סוכם על ידי אבי שוע shuaav@gmalcom http://wwwcshujacl/~shuaav אני מקווה שהסיכומים יעזרו לכם ולעוד רבים טעויות אני (ואף אחד אחר) לא

Διαβάστε περισσότερα

x a x n D f (iii) x n a ,Cauchy

x a x n D f (iii) x n a ,Cauchy גבולות ורציפות גבול של פונקציה בנקודה הגדרה: קבוצה אשר מכילה קטע פתוח שמכיל את a תקרא סביבה של a. קבוצה אשר מכילה קטע פתוח שמכיל את a אך לא מכילה את a עצמו תקרא סביבה מנוקבת של a. יהו a R ו f פונקציה מוגדרת

Διαβάστε περισσότερα

חישוביות, אוטומטים ושפות מכונה סיכומי הרצאות

חישוביות, אוטומטים ושפות מכונה סיכומי הרצאות חישוביות, אוטומטים ושפות מכונה סיכומי הרצאות 6 ביוני 2011 מרצה: גיא קינדלר מתרגל: רועי פוקס סוכם ע י: אור שריר פניות לתיקונים והערות: tnidtnid@gmail.com אתר הסיכומים שלי: http://bit.ly/huji_notes 1 תוכן

Διαβάστε περισσότερα

לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ד (2014) דפי עזר

לוגיקה ותורת הקבוצות מבחן סופי אביב תשעד (2014) דפי עזר לוגיקה ותורת הקבוצות מבחן סופי אביב תשע"ד (2014) דפי עזר תורת הקבוצות: סימונים.N + = N \ {0} קבוצת המספרים הטבעיים; N Z קבוצת המספרים השלמים. Q קבוצת המספרים הרציונליים. R קבוצת המספרים הממשיים. הרכבת

Διαβάστε περισσότερα

אוטומטים, שפות פורמליות ו ח ישוּב יוּת

אוטומטים, שפות פורמליות ו ח ישוּב יוּת אוטומטים, שפות פורמליות וחישוביות (202-1-2011) סיכום מאת תומר גודינגר אוטומטים, שפות פורמליות ו ח ישוּב יוּת פרטים אדמיניסטרטיביים המרצים בקורס: ברנד, ברפמן, קנטורוביץ' ואבו-עפאש אתר הקורס: http://csbguacil/~auto141/ain

Διαβάστε περισσότερα

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V )

c ארזים 26 בינואר משפט ברנסייד פתירה. Cl (z) = G / Cent (z) = q b r 2 הצגות ממשיות V = V 0 R C אזי מקבלים הצגה מרוכבת G GL R (V 0 ) GL C (V ) הצגות של חבורות סופיות c ארזים 6 בינואר 017 1 משפט ברנסייד משפט 1.1 ברנסייד) יהיו p, q ראשוניים. תהי G חבורה מסדר.a, b 0,p a q b אזי G פתירה. הוכחה: באינדוקציה על G. אפשר להניח כי > 1 G. נבחר תת חבורה

Διαβάστε περισσότερα

מודלים חישוביים, חישוביות וסיבוכיות 67521

מודלים חישוביים, חישוביות וסיבוכיות 67521 מודלים חישוביים, חישוביות וסיבוכיות 67521 חיים שחור סיכומי שיעורים של ד"ר גיא קינדלר 21 ביוני 2012 תוכן עניינים 2.................................................. אוטומטים ושפות רגולריות 1 3........................................................

Διαβάστε περισσότερα

מודלים חישוביים פתרון תרגיל 5

מודלים חישוביים פתרון תרגיל 5 מודלים חישוביים פתרון תרגיל 5 כתוב אוטומט דטרמיניסטי לשפות הבאות מעל הא"ב.Σ={,} א. *Σ. q, ב. q, ג. {ε}, q, q ד. } = 3 {w w mod, q, q,, ה. ''} {w w does not contin the sustring q 4 q 3 q q כתוב אוטומט דטרמיניסטי

Διαβάστε περισσότερα

אלגברה מודרנית פתרון שיעורי בית 6

אלגברה מודרנית פתרון שיעורי בית 6 אלגברה מודרנית פתרון שיעורי בית 6 15 בינואר 016 1. יהי F שדה ויהיו q(x) p(x), שני פולינומים מעל F. מצאו פולינומים R(x) S(x), כך שמתקיים R(x),p(x) = S(x)q(x) + כאשר deg(q),deg(r) < עבור המקרים הבאים: (תזכורת:

Διαβάστε περισσότερα

מודלים חישוביים, חישוביות וסיבוכיות 67521

מודלים חישוביים, חישוביות וסיבוכיות 67521 מודלים חישוביים, חישוביות וסיבוכיות 67521 חיים שחור סיכומי תרגולים של שאול אלמגור 21 ביוני 2012 תוכן עניינים 1 אוטומטים........................................................... 1 2 למת הניפוח......................................................

Διαβάστε περισσότερα

תרגול פעולות מומצאות 3

תרגול פעולות מומצאות 3 תרגול פעולות מומצאות. ^ = ^ הפעולה החשבונית סמן את הביטוי הגדול ביותר:. ^ ^ ^ π ^ הפעולה החשבונית c) #(,, מחשבת את ממוצע המספרים בסוגריים.. מהי תוצאת הפעולה (.7,.0,.)#....0 הפעולה החשבונית משמשת חנות גדולה

Διαβάστε περισσότερα

רשימת משפטים והגדרות

רשימת משפטים והגדרות רשימת משפטים והגדרות חשבון אינפיניטיסימאלי ב' מרצה : למברג דן 1 פונקציה קדומה ואינטגרל לא מסויים הגדרה 1.1. (פונקציה קדומה) יהי f :,] [b R פונקציה. פונקציה F נקראת פונקציה קדומה של f אם.[, b] גזירה ב F

Διαβάστε περισσότερα

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A )

1 תוחלת מותנה. c ארזים 3 במאי G מדיד לפי Y.1 E (X1 A ) = E (Y 1 A ) הסתברות למתמטיקאים c ארזים 3 במאי 2017 1 תוחלת מותנה הגדרה 1.1 לכל משתנה מקרי X אינטגרבילית ותת סיגמא אלגברה G F קיים משתנה מקרי G) Y := E (X המקיים: E (X1 A ) = E (Y 1 A ).G מדיד לפי Y.1.E Y

Διαβάστε περισσότερα

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות

סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות סיכום בנושא של דיפרנציאביליות ונגזרות כיווניות 25 בדצמבר 2016 תזכורת: תהי ) n f ( 1, 2,..., פונקציה המוגדרת בסביבה של f. 0 גזירה חלקית לפי משתנה ) ( = 0, אם קיים הגבול : 1 0, 2 0,..., בנקודה n 0 i f(,..,n,).lim

Διαβάστε περισσότερα

אלגברה ליניארית (1) - תרגיל 6

אלגברה ליניארית (1) - תרגיל 6 אלגברה ליניארית (1) - תרגיל 6 התרגיל להגשה עד יום חמישי (12.12.14) בשעה 16:00 בתא המתאים בבניין מתמטיקה. נא לא לשכוח פתקית סימון. 1. עבור כל אחד מתת המרחבים הבאים, מצאו בסיס ואת המימד: (א) 3)} (0, 6, 3,,

Διαβάστε περισσότερα

אינפי - 1 תרגול בינואר 2012

אינפי - 1 תרגול בינואר 2012 אינפי - תרגול 4 3 בינואר 0 רציפות במידה שווה הגדרה. נאמר שפונקציה f : D R היא רציפה במידה שווה אם לכל > 0 ε קיים. f(x) f(y) < ε אז x y < δ אם,x, y D כך שלכל δ > 0 נביט במקרה בו D הוא קטע (חסום או לא חסום,

Διαβάστε περισσότερα

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד

בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד בחינה בסיבוכיות עמר ברקמן, ישי חביב מדבקית ברקוד סמסטר: א' מועד: א' תאריך: יום ה' 0100004 שעה: 04:00 משך הבחינה: שלוש שעות חומר עזר: אין בבחינה שני פרקים בפרק הראשון 8 שאלות אמריקאיות ולכל אחת מהן מוצעות

Διαβάστε περισσότερα

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015)

מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015) מודלים חישוביים מבחן מועד א', סמסטר א' תשע''ה (2015) מרצה: פרופ' בני שור מתרגלים: אורית מוסקוביץ' וגל רותם 28.1.2015 הנחיות: 1. מומלץ לקרוא את כל ההנחיות והשאלות בתחילת המבחן, לפני כתיבת התשובות. 2. משך

Διαβάστε περισσότερα

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m

[ ] Observability, Controllability תרגול 6. ( t) t t קונטרולבילית H למימדים!!) והאובז' דוגמא: x. נשתמש בעובדה ש ) SS rank( S) = rank( עבור מטריצה m Observabiliy, Conrollabiliy תרגול 6 אובזרווביליות אם בכל רגע ניתן לשחזר את ( (ומכאן גם את המצב לאורך זמן, מתוך ידיעת הכניסה והיציאה עד לרגע, וזה עבור כל צמד כניסה יציאה, אז המערכת אובזרוובילית. קונטרולביליות

Διαβάστε περισσότερα

גבול ורציפות של פונקציה סקלרית שאלות נוספות

גבול ורציפות של פונקציה סקלרית שאלות נוספות 08 005 שאלה גבול ורציפות של פונקציה סקלרית שאלות נוספות f ( ) f ( ) g( ) f ( ) ו- lim f ( ) ו- ( ) (00) lim ( ) (00) f ( בסביבת הנקודה (00) ) נתון: מצאו ) lim g( ( ) (00) ננסה להיעזר בכלל הסנדביץ לשם כך

Διαβάστε περισσότερα

אוטומטים- תרגול 10: מכונות טיורינג.

אוטומטים- תרגול 10: מכונות טיורינג. אוטומטים- תרגול 10: מכונות טיורינג. מודל מכונת טיורינג מכונת טיורינג מורכבת מהרכיבים הבאים: 1. מספר סופי של מצבים.. סרט עבודה אינסופי בעל קצה שמאלי. הסרט המחולק לתאים ובכל תא כתוב תו מ- Γ. 3. ראש קורא/כותב

Διαβάστε περισσότερα

logn) = nlog. log(2n

logn) = nlog. log(2n תכנוןוניתוחאלגוריתמים סיכוםהתרגולים n log O( g( n)) = Ω( g( n)) = θ ( g( n)) = תרגול.3.04 סיבוכיות { f ( n) c> 0, n0 > 0 n> n0 0 f ( n) c g( n) } { f ( n) c> 0, n0 > 0 n> n0 0 c g( n) f ( n) } { f ( n)

Διαβάστε περισσότερα

חישוביות הרצאה 6 אותה מ M תקודד ע''י מחרוזת רווח ! מכונת טיורינג אוניברסלית

חישוביות הרצאה 6 אותה מ M תקודד ע''י מחרוזת רווח ! מכונת טיורינג אוניברסלית לשיה ספציפית ול ל שיה כללית חישוביות הרצאה 6 כונת טיורינג כונת טיורינג אוניברסלית פונקציות שאינן ניתנות לחישוב עד כה נקטנו בגישה שלכל שיה יש לבנות שלה שבצעת את השיה הספציפית הזו אך בציאות לא בונים חשב

Διαβάστε περισσότερα

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS

כלליים זמן: S מחסנית, top(s) ראש המחסנית. (Depth First Search) For each unmarked DFS(v) / BFS(v) רקורסיבי. אלגוריתם :BFS כלליים שיטות חיפוש בבגרפים שיטה 1: חיפוש לרוחב S (readth irst Search) זמן: ) Θ( V + הרעיון: שימוש בתור.O שיטה 2: חיפוש לעומק S (epth irst Search) Θ( V + ) יהי =(V,) גרף כלשהו, V הוא צומת התחלת החיפוש.

Διαβάστε περισσότερα

3. מודלים שונים של חישוב, והיחסים ביניהם

3. מודלים שונים של חישוב, והיחסים ביניהם 3. מודלים שונים של חישוב, והיחסים ביניהם עד כה, הגדרנו מודל פשוט לחישוב, שלו קראנו מכונת טיורינג (במודל T). נרצה להתבונן גם במודלים מורכבים יותר ולהיות מסוגלים לומר משהו על הכוח החישובי של מודל אחד בהשוואה

Διαβάστε περισσότερα

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת) מכונת טיורינג לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת) דטרמיניסטי שפות חופשיות הקשר (שפת ראי מסומנת) סגירות:איחוד,שרשור,היפוך, חיתוך עם שפה רגולרית אוטומט סופי דטרמיניסטי שפות רגולריות סגירות:חיתוך,איחוד,שרשור,משלים,היפוך

Διαβάστε περισσότερα

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1

מתכנס בהחלט אם n n=1 a. k=m. k=m a k n n שקטן מאפסילון. אם קח, ניקח את ה- N שאנחנו. sin 2n מתכנס משום ש- n=1 n. ( 1) n 1 1 טורים כלליים 1. 1 התכנסות בהחלט מתכנס. מתכנס בהחלט אם n a הגדרה.1 אומרים שהטור a n משפט 1. טור מתכנס בהחלט הוא מתכנס. הוכחה. נוכיח עם קריטריון קושי. יהי אפסילון גדול מ- 0, אז אנחנו יודעים ש- n N n>m>n

Διαβάστε περισσότερα

מתמטיקה בדידה תרגול מס' 12

מתמטיקה בדידה תרגול מס' 12 מתמטיקה בדידה תרגול מס' 2 נושאי התרגול: נוסחאות נסיגה נוסחאות נסיגה באמצעות פונקציות יוצרות נוסחאות נסיגה באמצעות פולינום אופייני נוסחאות נסיגה לעתים מפורש לבעיה קומבינטורית אינו ידוע, אך יחסית קל להגיע

Διαβάστε περισσότερα

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית:

תרגול משפט הדיברגנץ. D תחום חסום וסגור בעל שפה חלקה למדי D, ותהי F פו' וקטורית :F, R n R n אזי: נוסחת גרין I: הוכחה: F = u v כאשר u פו' סקלרית: משפט הדיברגנץ תחום חסום וסגור בעל שפה חלקה למדי, ותהי F פו' וקטורית :F, R n R n אזי: div(f ) dxdy = F, n dr נוסחת גרין I: uδv dxdy = u v n dr u, v dxdy הוכחה: F = (u v v, u x y ) F = u v כאשר u פו' סקלרית:

Διαβάστε περισσότερα

מבני נתונים ויעילות אלגוריתמים

מבני נתונים ויעילות אלגוריתמים מבני נתונים ויעילות אלגוריתמים (8..05). טענה אודות סדר גודל. log טענה: מתקיים Θ(log) (!) = הוכחה: ברור שמתקיים: 3 4... 4 4 4... 43 פעמים במילים אחרות:! נוציא לוגריתם משני האגפים: log(!) log( ) log(a b

Διαβάστε περισσότερα

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים.

קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. א{ www.sikumuna.co.il מהי קבוצה? קבוצה היא שם כללי לתיאור אוסף כלשהו של איברים. קבוצה היא מושג יסודי במתמטיקה.התיאור האינטואיטיבי של קבוצה הוא אוסף של עצמים כלשהם. העצמים הנמצאים בקבוצה הם איברי הקבוצה.

Διαβάστε περισσότερα

סיכום- בעיות מינימוםמקסימום - שאלון 806

סיכום- בעיות מינימוםמקסימום - שאלון 806 סיכום- בעיות מינימוםמקסימום - שאלון 806 בבעיותמינימום מקסימוםישלחפשאתנקודותהמינימוםהמוחלטוהמקסימוםהמוחלט. בשאלות מינימוםמקסימוםחובהלהראותבעזרתטבלה אובעזרתנגזרתשנייהשאכן מדובר עלמינימוםאומקסימום. לצורךקיצורהתהליך,

Διαβάστε περισσότερα

תורת הקבוצות יובל קפלן סיכום הרצאות פרופ ארז לפיד בקורס "תורת הקבוצות" (80200) באוניברסיטה העברית,

תורת הקבוצות יובל קפלן סיכום הרצאות פרופ ארז לפיד בקורס תורת הקבוצות (80200) באוניברסיטה העברית, תורת הקבוצות יובל קפלן סיכום הרצאות פרופ ארז לפיד בקורס "תורת הקבוצות" (80200) באוניברסיטה העברית, 7 2006. תוכן מחברת זו הוקלד ונערך על-ידי יובל קפלן. אין המרצה אחראי לכל טעות שנפלה בו. סודר באמצעות L

Διαβάστε περισσότερα

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות

הגדרה: קבוצת פעילויות חוקית היא קבוצה בה כל שתי פעילויות אלגוריתמים חמדניים אלגוריתם חמדן, הוא כזה שבכל צעד עושה את הבחירה הטובה ביותר האפשרית, ולא מתחרט בהמשך גישה זו נראית פשטנית מדי, וכמובן שלא תמיד היא נכונה, אך במקרים רבים היא מוצאת פתרון אופטימאלי בתרגול

Διαβάστε περισσότερα

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשעד, מיום 0/8/0610 שאלונים: 315, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 315, 635865 מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר 1 נתון: 1. סדרה חשבונית שיש בה n איברים...2 3. האיבר

Διαβάστε περισσότερα

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד.

חידה לחימום. כתבו תכappleית מחשב, המקבלת כקלט את M ו- N, מחליטה האם ברצוappleה להיות השחקן הפותח או השחקן השappleי, ותשחק כך שהיא תappleצח תמיד. חידה לחימום ( M ש- N > (כך מספרים טבעיים Mו- N שappleי appleתוappleים בעלי אותה הזוגיות (שappleיהם זוגיים או שappleיהם אי - זוגיים). המספרים הטבעיים מ- Mעד Nמסודרים בשורה, ושappleי שחקappleים משחקים במשחק.

Διαβάστε περισσότερα

מבחן במודלים חישוביים + פתרון מוצע

מבחן במודלים חישוביים + פתרון מוצע מבחן במודלים חישוביים + פתרון מוצע סמסטר ב' התשס"ט, מועד ב' תאריך: 1.9.2009 מרצים: ד"ר מירי פרייזלר, פרופ' בני שור מתרגלים: יהונתן ברנט, רני הוד מומלץ לקרוא את כל ההנחיות והשאלות בתחילת המבחן, לפני תחילת

Διαβάστε περισσότερα

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה.

פתרונות , כך שאי השוויון המבוקש הוא ברור מאליו ולכן גם קודמו תקף ובכך מוכחת המונוטוניות העולה של הסדרה הנתונה. בחינת סיווג במתמטיקה.9.017 פתרונות.1 סדרת מספרים ממשיים } n {a נקראת מונוטונית עולה אם לכל n 1 מתקיים n+1.a n a האם הסדרה {n a} n = n היא מונוטונית עולה? הוכיחו תשובתכם. הסדרה } n a} היא אכן מונוטונית

Διαβάστε περισσότερα

תרגול מס' 1 3 בנובמבר 2012

תרגול מס' 1 3 בנובמבר 2012 תרגול מס' 1 3 בנובמבר 2012 1 מערכת המספרים השלמים בשיעור הקרוב אנו נעסוק בקבוצת המספרים השלמים Z עם הפעולות (+) ו ( ), ויחס סדר (>) או ( ). כל התכונות הרגילות והידועות של השלמים מתקיימות: חוק הקיבוץ (אסוציאטיביות),

Διαβάστε περισσότερα

השאלות..h(k) = k mod m

השאלות..h(k) = k mod m מבני נתונים פתרונות לסט שאלות דומה לשאלות מתרגיל 5 השאלות 2. נתונה טבלת ערבול שבה התנגשויות נפתרות בשיטת.Open Addressing הכניסו לטבלה את המפתחות הבאים: 59 88, 17, 28, 15, 4, 31, 22, 10, (מימין לשמאל),

Διαβάστε περισσότερα

co ארזים 3 במרץ 2016

co ארזים 3 במרץ 2016 אלגברה לינארית 2 א co ארזים 3 במרץ 2016 ניזכר שהגדרנו ווקטורים וערכים עצמיים של מטריצות, והראינו כי זהו מקרה פרטי של ההגדרות עבור טרנספורמציות. לכן כל המשפטים והמסקנות שהוכחנו לגבי טרנספורמציות תקפים גם

Διαβάστε περισσότερα

אוטומטים ושפות פורמליות מבוא לתורת החישוביות

אוטומטים ושפות פורמליות מבוא לתורת החישוביות אוטומטים ושפות פורמליות מבוא לתורת החישוביות ד ר סמי זעפרני מוקדש לזכרו של משה בנסל חבר, עמית, ומורה דרך מהדורה June 27,2.3 הקדשה הספר מוקדש לזכרו היקר של משה בנסל (955-2), אשר במהלך שלושים שנות עבודתו

Διαβάστε περισσότερα

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת)

מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת) מכונת טיורינג אוטומט מחסנית לא דטרמיניסטי שפות חופשיות הקשר (שפת ראי לא מסומנת) אוטומט מחסנית דטרמיניסטי שפות חופשיות הקשר (שפת ראי מסומנת) סגירות:איחוד,שרשור,היפוך, חיתוך עם שפה רגולרית אוטומט סופי דטרמיניסטי

Διαβάστε περισσότερα

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx

I. גבולות. x 0. מתקיים L < ε. lim אם ורק אם. ( x) = 1. lim = 1. lim. x x ( ) הפונקציה נגזרות Δ 0. x Δx דפי נוסחאות I גבולות נאמר כי כך שלכל δ קיים > ε לכל > lim ( ) L המקיים ( ) מתקיים L < ε הגדרת הגבול : < < δ lim ( ) lim ורק ( ) משפט הכריך (סנדוויץ') : תהיינה ( ( ( )g ( )h פונקציות המוגדרות בסביבה נקובה

Διαβάστε περισσότερα

רשימת בעיות בסיבוכיות

רשימת בעיות בסיבוכיות ב) ב) רשימת בעיות בסיבוכיות כל בעיה מופיעה במחלקה הגדולה ביותר שידוע בוודאות שהיא נמצאת בה, אלא אם כן מצוין אחרת. כמובן שבעיות ב- L נמצאות גם ב- וב- SACE למשל, אבל אם תכתבו את זה כתשובה במבחן לא תקבלו

Διαβάστε περισσότερα

מבני נתונים ואלגוריתמים תרגול #11

מבני נתונים ואלגוריתמים תרגול #11 מבני נתונים ואלגוריתמים תרגול # התאמת מחרוזות סימונים והגדרות: P[,,m] כך Σ * טקסט T )מערך של תווים( באורך T[,,n] n ותבנית P באורך m ש.m n התווים של P ו T נלקחים מאלפבית סופי Σ. לדוגמא: {a,b,,z},{,}=σ.

Διαβάστε περισσότερα

תורת הגרפים - סימונים

תורת הגרפים - סימונים תורת הגרפים - סימונים.n = V,m = E בהינתן גרף,G = V,E נסמן: בתוך סימוני ה O,o,Ω,ω,Θ נרשה לעצמנו אף להיפטר מהערך המוחלט.. E V,O V + E כלומר, O V + E נכתוב במקום אם כי בכל מקרה אחר נכתוב או קשת של גרף לא

Διαβάστε περισσότερα

אלגברה ליניארית 1 א' פתרון 2

אלגברה ליניארית 1 א' פתרון 2 אלגברה ליניארית א' פתרון 3 4 3 3 7 9 3. נשתמש בכתיבה בעזרת מטריצה בכל הסעיפים. א. פתרון: 3 3 3 3 3 3 9 אז ישנו פתרון יחיד והוא = 3.x =, x =, x 3 3 הערה: אפשר גם לפתור בדרך קצת יותר ארוכה, אבל מבלי להתעסק

Διαβάστε περισσότερα

אוטומטים מעל עצמים אינסופיים 67663

אוטומטים מעל עצמים אינסופיים 67663 אוטומטים מעל עצמים אינסופיים 67663 חיים שחור סיכומי הרצאות של אורנה קופרמן י"ח אדר תשע"ג (שעור 1) הערה 0.1 מי שמעוניין לסייע בשרטוט האוטומטים מתבקש לפנות אלי. בחישוביות דיברנו על אוטומטים ושפות רגולריות.

Διαβάστε περισσότερα

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי

הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב פרופ' יעקב ורשבסקי הרצאה תרגילים סמינר תורת המספרים, סמסטר אביב 2011 2010 פרופ' יעקב ורשבסקי אסף כץ 15//11 1 סמל לזנדר יהי מספר שלם קבוע, ו K שדה גלובלי המכיל את חבורת שורשי היחידה מסדר µ. תהי S קבוצת הראשוניים הארכימדיים

Διαβάστε περισσότερα

חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה.

חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה. חשבון אינפיניטסימלי 1 סיכום הרצאות באוניברסיטה חיפה, חוג לסטטיסטיקה. מרצה: למברג דן תוכן העניינים 3 מספרים ממשיים 1 3.................................. סימונים 1. 1 3..................................

Διαβάστε περισσότερα

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p;

(2) מיונים השאלות. .0 left right n 1. void Sort(int A[], int left, int right) { int p; מבני נתונים פתרונות לסט שאלות דומה לשאלות בנושאים () זמני ריצה של פונקציות רקורסיביות () מיונים השאלות פתרו את נוסחאות הנסיגה בסעיפים א-ג על ידי הצבה חוזרת T() כאשר = T() = T( ) + log T() = T() כאשר =

Διαβάστε περισσότερα

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז

פתרון תרגיל בית 6 מבוא לתורת החבורות סמסטר א תשע ז פתרון תרגיל בית 6 מבוא לתורת החבורות 88-211 סמסטר א תשע ז הוראות בהגשת הפתרון יש לרשום שם מלא, מספר ת ז ומספר קבוצת תרגול. תאריך הגשת התרגיל הוא בתרגול בשבוע המתחיל בתאריך ג טבת ה תשע ז, 1.1.2017. שאלות

Διαβάστε περισσότερα

הקדמה קצרה: מהות הקורס ומטרתו

הקדמה קצרה: מהות הקורס ומטרתו הקדמה קצרה: מהות הקורס ומטרתו עד כה, רוב הקורסים שנתקלתם בהם במדעי המחשב עסקו בעיקר בשאלות כמו "איך אפשר לפתור בעיות בעזרת מחשב?", "איך אפשר להעריך 'איכות' של אלגוריתם לפתרון בעיה", או "באילו שיטות ניתן

Διαβάστε περισσότερα

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה.

פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. פתרון תרגיל 6 ממשוואות למבנים אלגברה למדעי ההוראה. 16 במאי 2010 נסמן את מחלקת הצמידות של איבר בחבורה G על ידי } g.[] { y : g G, y g כעת נניח כי [y] [] עבור שני איברים, y G ונוכיח כי [y].[] מאחר והחיתוך

Διαβάστε περισσότερα