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

Transcription

אוטומטים מעל עצמים אינסופיים ־ 67663
‫אוטומטים מעל עצמים אינסופיים ־ ‪67663‬‬
‫חיים שחור ־ סיכומי הרצאות של אורנה קופרמן‬
‫י"ח אדר תשע"ג )שעור ‪(1‬‬
‫הערה ‪ 0.1‬מי שמעוניין לסייע בשרטוט האוטומטים מתבקש לפנות אלי‪.‬‬
‫בחישוביות דיברנו על אוטומטים ושפות רגולריות‪ .‬שפות חסרות הקשר ־ לא מוסיף כוח‪.‬‬
‫אח"כ במכונות טיורינג ושפות כריעות יש מגמה להרחיב את אוסף השפות המזוהות‪.‬‬
‫בכל השלב הזה דברנו על שפות ∗‪ .L ⊆ Σ‬ההנחה היא שהמכונה מקבלת קלט סופי‪,‬‬
‫ומוציאה פלט סופי‪ .‬בקורס הנוכחי נדבר לא על שפות ב־ ∗‪ Σ‬אלא שפות שמייצגות‬
‫אינטראקציה מתמשכת עם הסביבה‪.‬‬
‫למשל‪ ,‬שתי מעליות בבנין עם ‪ 20‬קומות‪ .‬בכל קומה יש שני כפתורים לעלות ולרדת‪,‬‬
‫ואנחנו מחפשים אלגוריתם שיפעל כל הזמן‪ ,‬והמטרה היא למזער את זמן ההמתנה‬
‫למעלית‪ .‬הפעילות היא מסוג ‪ .on-going‬האינטראקציה היא בכל קומה האם לחוץ‬
‫למעלה או לא‪ ,‬ואם לחוץ למטה או לא‪ .‬במקרה הזה ]‪ .Σ = 2{↑,↓}×[20‬תכנון האלגוריתם‬
‫יכול להתחשב בתפוסת המעלית‪ ,‬האם מותר להעביר אנשים ממעלית למעלית‪ .‬בהתחלה‬
‫מגיע ‪ ,x0 ∈ Σ‬ונפלט ‪ .y0‬אח"כ מגיע ‪ x1‬ונפלט ‪ ,y1‬וכך הלאה‪ .‬לכן אנחנו לא מדברים‬
‫על שפות סופיות‪ ,‬אלא שפות של מילים אינסופיות‪.‬‬
‫גם מערכות הפעלה מתעסקות בהתנהגות ‪ .on-going‬אפשר לדבר על מילים אינסופיות‪,‬‬
‫או עצים אינסופיים‪.‬‬
‫הקורס הוא בעיקר תיאורטי‪ .‬נזכיר את המוטיבציה‪.‬‬
‫אדמיניסטרציה ־ יש אתר מודל‪ .‬יהיו בקורס ‪4‬־‪ 3‬תרגילי בית‪ ,‬עם ‪ 25%‬מהציון )חצי‬
‫מגן(‪ .‬אפשר להגיש בזוגות‪ .‬במודל פרק בספר שמדבר על אוטומטים‪.‬‬
‫‪1‬‬
‫‪1‬‬
‫אוטומט מעל מילה אינסופית‬
‫סוג השפות‪ :‬אם הא"ב הוא }‪ ,Σ = {a, b‬אזי }”‪.L1 = {w | w contains ∞ ”a‬‬
‫∈ ‪.aabbbbbb . . .‬‬
‫לדוגמא‪ ababab . . . ∈ L1 ,‬אבל ‪/ L1‬‬
‫‪1.1‬‬
‫תנאי קבלה בוקי ‪Buchi‬‬
‫אוטומט ייראה ‪ .A = hΣ, Q, Q0 , δ, αi‬עם ‪) δ : Q × Σ → 2Q‬בלי מעברי ‪ (ε‬ו־‪.α ⊆ Q‬‬
‫למשל‪ ,‬האוטומט הסופי שמקבל את המילים המסתיימות ב־‪) a‬שני מצבים‪ a ,‬הולך‬
‫למצב המקבל‪ b ,‬למצב ההתחלה(‪ .‬אם האוטומט מקבל כקלט מילה אינסופית )בוקי(‪,‬‬
‫ריצה תוגדר באופן דומה‪ .‬נגדיר ריצה ‪ r : N → Q‬מעל המילה ‪ w = σ1 σ2 . . .‬כך‬
‫ש־ ‪ ,r (0) ∈ Q0‬ולכל ‪ .r (i + 1) ∈ δ (r (i) , σi+1 ) ,i ≥ 0‬באוטומטים סופיים היינו‬
‫בודקים את המצב בסוף המילה‪ .‬במקרה של עצמים אינסופיים‪ ,‬נדבר על = )‪inf (r‬‬
‫}‪ .{q ∈ Q | r (i) = q f or ∞ i‬תנאי הקבלה של האוטומט‪ r :‬מקבלת אם"ם ∩ )‪inf (r‬‬
‫∅ =‪ A .α 6‬מקבל את ‪ w‬אם קיימת ריצה ‪ r‬מקבלת של ‪ A1‬על ‪ .w‬לכן במקרה של‬
‫האוטומט שתיארנו‪ ,‬עוברים למצב מקבל כל פעם כשרואים ‪ .a‬לכן ‪.L (A1 ) = L1‬‬
‫איור ‪A1 :1‬‬
‫איך מייצרים אוטומטים משלימים? באוטומטים סופיים דטרמיניסטיים הופכים את‬
‫המצבים המקבלים‪ .‬אם נהפוך כאן‪ ,‬נקבל את ‪ .L (A2 ) = ∞b‬השפה =‪L3 :‬‬
‫}‪ {w | #a (w) ∈ N‬נצטרך לבנות עבורו אוטומט‪ .‬בשפה זו‪ ,‬מתישהו מתחיל זנב של ‪.b‬‬
‫לכן ניצור אוטומט ‪ A3‬א"ד שיקבל זנב כזה‪ ,‬נוכיח שאין אוטומט דטרמיניסטי לשפה‬
‫הזו‪ .‬אוטומט חורצני )דטרמיניסטי(‪ .‬לחרצן ־ לעשות דטרמיניזציה‪ .‬אפשר לחרצן‬
‫אוטומטים מעל מילים סופיות כי הוא מכיל מספר סופי של אפשרויות‪ .‬כאן יש לנו מצב‬
‫אינסופי של אפשרויות‪.‬‬
‫‪2‬‬
‫איור ‪ A2 :2‬ו־ ‪A3‬‬
‫למעלה נמצא האוטומט הדטרמיניסטי ‪ ,A2‬ולמטה האוטומט הא"ד ‪.A3‬‬
‫ננסה לצייר אוטומט ‪ A4‬עבור השפה בה }∞ = )‪.L4 := {w | #a (w) ∈ 2N ∨ #a (w‬‬
‫קל להכליל את ‪ A3‬שיכלול מספר סופי זוגי‪ ,‬ואפשר לעשות אוטומט איחוד ע"י הנחת‬
‫שני האוטומטים ביחד‪ ,‬ואיחוד המצבים המתחילים בהם‪.‬‬
‫האם קיים ‪ A4‬עם שני מצבים? יש לנו אוטומט שמחליף מצבים ב־‪ .a‬צריך להוכיח‪:‬‬
‫אם המילה מכילה מספר סופי של ‪ ,a‬היא תעשה את הסיבוב מס' סופי‪ ,‬ותעצור במצב‬
‫ההתחלה‪ ,‬ותשאר שם בצורה סופית‪ .‬אם יש מס' אינסופי‪ ,‬היא תעשה אינסוף סיבובים‪,‬‬
‫ותבקר במצב ההתחלה אינסוף פעמים‪ .‬אם המספר אי־זוגי‪ ,‬ניתקע במצב הלא מקבל‪.‬‬
‫‪3‬‬
‫איור ‪A4 :3‬‬
‫מימין אוטומט האיחוד הא"ד לשפה ‪ ,L4‬משמאל אוטומט דטרמיניסטי לאותה שפה עם שני מצבים‪.‬‬
‫סימון‪ N BW, DBW :‬הוא סימון לאוטומטים מעל מילים אינסופיות‪.‬‬
‫באופן כללי‪ ,‬המודלים מכילים }‪ {N, D, U, A‬־ א"ד‪ ,‬דט'‪ ,‬אוניברסלי )כל הריצות‬
‫מקבלות(‪ .‬סוג המודל }‪ ,{F, B, C, P, R, S‬ורץ על } ‪) {W, T‬מילים או עצמים(‪.‬‬
‫סימון כמו ‪ N F W = DF W‬אומר שניתן לחרצן אוטומטים מעל מילים סופיות‪ ,‬אבל‬
‫‪ N BW > DBW‬אומר שלא ניתן לחרצן כל אוטומט מעל מילים אינסופיות‪.‬‬
‫ביטויים ‪ω‬־רגולריים הם ‪ .L ⊆ Σω‬נזכיר כי ביטוי רגולרי כולל‪∅, ε, σ ∈ Σ, r1 + :‬‬
‫∗‪ .r2 , r1 r2 , r1‬זה מגדיר שפה שהיא תת־קבוצה של ∗‪.Σ‬‬
‫ביטויים ‪ω‬־רגולריים‪:‬‬
‫• ∅‪.‬‬
‫• ‪ s1 + s2 ,rs1 ,rω‬עבור ביטוי רגולרי ‪ r‬וביטויים ‪ω‬־רגולריים ‪.s1 , s2‬‬
‫הערה‪ .((ab)ω = abababab . . .) ω = |N| :‬שרשור ניתן לביצוע רק לאיבר באורך סופי‪.‬‬
‫השפה }‪ L = {w | #a (w) ≥ 2‬מבוטאת ע"י הביטוי הבא‪ .b∗ ab∗ a (a + b)ω :‬כל‬
‫המילים עם אינסוף ‪ a‬היא ‪ .(b∗ a)ω‬ביטוי עבור מספר סופי של ‪ a‬הוא ‪.(a + b)∗ bω‬‬
‫‪4‬‬
‫עבור ביטוי ‪ω‬־רגולרי ‪ ,s‬ניתן להגדיר )‪.L (s‬‬
‫נדבר על תכונות סגור של אוטומטים‪ .‬חיתוך וכד'‪.‬‬
‫‪1.1.1‬‬
‫תכונות סגור של ‪N BW‬‬
‫‪ .1‬איחוד ־ עובד באותו אופן של איחוד ‪.N F W‬‬
‫‪ .2‬חיתוך ־ עבור ‪ N F W‬השתמשנו באוטומט המכפלה‪.‬‬
‫
‬
‫‬
‫‪A1 × A2 = Σ, Q1 × Q2 , Q01 × Q02 , δ, F1 × F2‬‬
‫כאשר )‪ .δ (hq1 , q2 i , σ) = δ1 (q1 , σ) × δ2 (q2 , σ‬מתי זה לא יעבוד לאוטומטי‬
‫בוקי? המשמעות ב ‪ N F W‬היא שאנחנו מדמים ריצה במקביל על שני האוטומטים‪,‬‬
‫ובודקים האם הסוף הוא מצב מקבל בשניהם‪ .‬ב־ ‪ ,N BW‬אם נגדיר ‪,α = α1 ×α2‬‬
‫זה ידרוש שהביקורים האינסופיים במצב המקבל יהיו אינסופיים‪ .‬למשל‪ ,‬שני‬
‫אוטומטים לשפה } ‪ L = {aω‬עם שני מצבים מזגזגים‪ ,‬בכל אחד מצב מקבל אחר‪.‬‬
‫אם נגדיר אוטומט מכפלה בצורה הזו‪ ,‬השפה תהיה ∅‪.‬‬
‫נרצה לשרטט אוטומט של שפה שמכיל אינסוף ‪ a‬ואינסוף ‪ .b‬ניצור אוטומט עם‬
‫מצב התחלתי מקבל‪ ,‬למצב ‪ a‬נלך ונחזור עם ‪ ,b‬ולמצב ‪ b‬נלך ונחזור עם ‪ .a‬זהו‬
‫אוטומט דטרמיניסטי עם ‪ 3‬חלקים‪ .‬אפשר גם אוטומט אחר ־ במצב ההתחלה‬
‫מחכים ל־‪ ,a‬במצב הזה מחכים ל־‪ b‬ועוברים למצב מקבל‪ ,‬ומשם חוזרים לנקודת‬
‫ההתחלה‪ .‬אנחנו לפעמים מוותרים על כמות מסויימת של ‪ b‬בלי לספור אותם‪ ,‬כי‬
‫יש לנו ∞ ‪b‬ים‪ .‬זה גם מה שנעשה בהגדרה של החיתוך‪.‬‬
‫יש לנו סימולציה במקביל של ‪ .A1 , A2‬נרצה לוודא שיש אינסוף ביקורים ב ‪.α1 , α2‬‬
‫נתחיל מ־ ‪ ,A1‬כשנגיע לביקור ב־ ‪ ,α1‬נחפש ביקור ב־ ‪ α2‬בסימולציה השניה‪ ,‬וחוזר‬
‫חלילה‪ .‬אם יש אינסוף‪ ,‬נמצא אותם מתישהו‪ .‬לכן אוטומט החיתוך בצורה‬
‫פורמלית יהיה ‪ A1 = hΣ, Q1 , Q10 , δ1 , α1 i‬ו־‪ ,A2 = hΣ, Q2 , Q20 , δ2 , α2 i‬נגדיר‬
‫את אוטומט המכפלה‬
‫‪A = A1 × A2 = hΣ, Q, Q0 , δ, αi‬‬
‫כאשר‪:‬‬
‫• }‪.Q = Q1 × Q2 × {1, 2‬‬
‫• }‪.Q0 = Q01 × Q02 × {1‬‬
‫‪5‬‬
‫• }‪ δ (hq1 , q2 , ii , σ) = δ1 (q1 , σ)×δ1 (q2 , σ)×{j‬כאשר‬
‫∈ ‪qi‬‬
‫‪/ αi‬‬
‫‪‬‬
‫‪i‬‬
‫= ‪.j‬‬
‫‪3 − i q ∈ α‬‬
‫‪i‬‬
‫‪i‬‬
‫• }‪.α = Q1 × α2 × {2‬‬
‫הוכחה‪ .L (A) = L (A1 ) ∩ L (A2 ) :‬נראה כיוון אחד‪ .‬נניח )‪ .w ∈ L (A‬תהי‬
‫‪ r = (hq1n , q2n , in i)n∈N‬ריצה מקבלת של ‪ A‬על ‪ .w‬נראה כי ‪r1 = (q1n )n∈N‬‬
‫ריצה מקבלת של ‪ A1‬על ‪ ,w‬וכי ‪ r2 = (q2n )n∈N‬ריצה מקבלת של ‪ A2‬על ‪.w‬‬
‫בסדרה ‪ r‬יש ∞ ביקורים ב־}‪ ,Q1 × α2 × {2‬כלומר אינסוף אינדקסים ‪ j‬כך‬
‫ש־ ‪ .q2j ∈ α2‬לכן ‪ r2‬היא ריצה מקבלת‪ .‬נראה כי בין כל שני אינדקסים ‪j1 < j2‬‬
‫‬
‫‬
‫
‬
‫
‬
‫כך ש־‪ q2j1 , q2j1 , ij1 ∈ α‬וכן ‪ q2j2 , q2j2 , ij2 ∈ α‬קיים אינדקס ‪ j1 < j3 < j2‬כך‬
‫ש־ ‪ .q1j3 ∈ α1‬מהגדרת ‪ δ‬נובע ‪ ij1 +1 = 1‬כי אחרי ביקור ב־ ‪ q2j ∈ α2‬ו־‪,ij = 2‬‬
‫עוברים ל־‪ .ij+1 = 1‬מאחר ו־‪ ,ij2 = 2‬קיים אינדקס ‪ j3‬כך ש־‪ ,ij3 +1 = 2‬אולם‬
‫‪ .ij3 = 1‬מהגדרת ‪ δ‬מובטח כי ‪.q1j3 ∈ α1‬‬
‫נשים לב כי )| ‪ |A| = |QA | = O (|A1 | |A2‬כאשר בחיבור )| ‪.|A| = O (|A1 | + |A2‬‬
‫נראה כי בהשלמה המצב הרבה יותר חמור‪ .‬מה לגבי סגור לאיחוד וחיתוך‬
‫דטרמיניסטי? אוטומט המכפלה שראינו משמר דטרמיניזם‪ ,‬וכבר ראינו אותו‪.‬‬
‫באיחוד‪ ,‬ניקח את אוטומט המכפלה עם ‪ α = α1 × Q2 ∪ Q1 × α2‬ואין צורך‬
‫בעוד מרכיב למכפלה‪.‬‬
‫שבוע הבא נדבר על חיתוך‪ .‬תרגיל אוטומט ל־אם יש אינסוף ‪ a‬יש אינסוף ‪b‬‬
‫)מעל }‪.(Σ = {a, b, c‬‬
‫כ"ה אדר תשע"ג )שעור ‪(2‬‬
‫באוטומט על הלוח ־ }”‪ .L (A) = {w | af ter every ”a” there is ”b‬נסתכל על השפה‬
‫‪ ,L0 : ∞a → ∞b‬אזי ‪ acω ∈ L\L0‬כי ‪ .L0 = ¬∞a ∨ ∞b‬אפשר ליצור אוטומט איחוד‬
‫בין ‪ ¬∞a‬לבין ‪ ,∞b‬ואפשר לצמצם אותו‪.‬‬
‫אפשר לדבר על רמת החופש של אוטומט‪ .‬יש ל־‪ b‬שלוש אפשרויות ממצב ההתחלה‪.‬‬
‫אם יש ‪ ∞a‬ופנינו ימינה לכיוון "יש מס' ‪ a‬סופי" היינו נתקעים‪ ,‬אבל אם יש מס' סופי‬
‫של ‪ ,b‬ופנינו למטה לכיוון "יש אינסוף ‪ ,"b‬יש לנו הזדמנות לתקן‪.‬‬
‫‪6‬‬
‫איור ‪ :4‬אוטומטים לשפה ‪∞a → ∞b‬‬
‫האוטומט מימין אינו מתאים לשפה‪ ,‬כי הוא דוחה את ‪ .acω‬האוטומט האמצעי מסתכל על האיחוד של‬
‫‪ ,¬∞a ∨ ∞b‬והאוטומט משמאל מצמצם אותו‪ .‬הדיון על האפשרויות עבור האות ‪ b‬מתייחס לאוטומט‬
‫זה‪.‬‬
‫מה לגבי ‪ L‬תחת }‪ ?Σ = {a, b‬האם ‪ ?L =? ∞b‬כן‪ ,‬כי אם אין ‪ ,∞b‬בהכרח ‪,∞a‬‬
‫והתנאי לא מתקיים‪.‬‬
‫ראינו שהשלמה של ‪ L = ∞a‬אינה מתקבלת ע"י דואליזציה של תנאי הקבלה אפילו‬
‫כשהאוטומט דטרמיניסטי‪ .‬למה זה עובד במילים סופיות? כי שם מסתכלים על המצב‬
‫האחרון‪ ,‬ואם נהפוך את המצבים‪ ,‬השלמנו את השפה‪ .‬במילים אינסופיות‪ ,‬בתנאי‬
‫הקבלה של בוקי אנחנו מבקרים אינסוף פעמים במצב מקבל‪ .‬אם נהפוך‪ ,‬זה אומר‬
‫שביקרנו אינסוף פעמים במצבים הלא מקבלים‪ .‬זה לא אומר לגבי מס' הביקורים‬
‫במצבים המקבלים המקוריים‪ .‬לכן הגדרת ‪ α0 = Q\α‬אינה משלימה את השפה‪.‬‬
‫ראינו אוטומט שישלים את השפה ‪ .L‬נרצה לבנות אוטומט שמשלים ‪.DBW → N BW‬‬
‫משפט ‪ 1.1‬בהינתן ‪ ,A DBW‬יש ‪ A0 N BW‬כך ש־)‪.L (A0 ) = Σω \L (A‬‬
‫
‬
‫‬
‫‪0‬‬
‫הרעיון‪ A0 :‬ינחש מתי ‪ A‬מפסיק לבקר ב־‪ A0 = Σ, Q0 , δ 0 , q0 , α0 .α‬כאשר‬
‫• )}‪Q0 = (Q × {1}) ∪ ((Q\α) × {2‬‬
‫‪0‬‬
‫• ‪q0 = hq0 , 1i‬‬
‫• }‪α = (Q\α) × {2‬‬
‫‪7‬‬
‫• יהי )‪ ,s = δ (q, σ‬אזי‬
‫‪‬‬
‫∈ ‪{hs, 1i , hs, 2i} s‬‬
‫‪/α‬‬
‫‪0‬‬
‫= )‪δ (hq, 1i , σ‬‬
‫}‪{hs, 1i‬‬
‫‪s∈α‬‬
‫‪‬‬
‫∈ ‪{hs, 2i} s‬‬
‫‪/α‬‬
‫‪0‬‬
‫= )‪δ (hq, 2i , σ‬‬
‫∅‪‬‬
‫‪s∈α‬‬
‫או בצורה יפה יותר לכתיבה‪:‬‬
‫)}‪δ 0 (hq, 1i , σ) = (δ (q, σ) × {1}) ∪ ((δ (q, σ) \α) × {2‬‬
‫}‪δ 0 (hq, 2i , σ) = (δ (q, σ) \α) × {2‬‬
‫דוגמא‪ :‬לאוטומט שראינו עם ‪) ,∞a‬התחלה ב־ ‪ .(α = {q1 } ,q0‬האוטומט ניתן לצמצום‬
‫למה שכבר ראינו‪.‬‬
‫איור ‪ :5‬אוטומט ההשלמה‬
‫מימין תיאור של אוטומט כללי‪ ,‬שמחזיק "עותק וחצי" של האוטומט ‪ A‬המקורי‪ .‬משמאל יישום של‬
‫הבנייה עבור האוטומט מאיור ‪ 1‬של ‪.L = ∞a‬‬
‫טענה ‪ 1.2‬הבניה נכונה ־ )‪L (A0 ) = Σω \L (A‬‬
‫∞‬
‫‪0‬‬
‫‪0‬‬
‫‪ω‬‬
‫∞} ‪{qn‬‬
‫הוכחה‪ :L (A ) ⊆ Σ \L (A) :‬ריצה ‪ {hqn , cn i}n=0‬ב־ ‪ A‬מתאימה לריצה ‪n=0‬‬
‫ב־‪ .A‬תהי ‪ r0‬ריצה מקבלת על ‪ w‬ב־‪ ,A‬הריצה ‪ r‬המתאימה לה ב־‪ A‬היא הריצה‬
‫היחידה של ‪ A‬על ‪ ,w‬והיא דוחה‪.‬‬
‫‪8‬‬
‫∈ ‪ ,w‬הריצה ‪ r‬של ‪ A‬על ‪ w‬מבקרת ב־‪ α‬רק מספר‬
‫) ‪ :Σω \L (A) ⊆ L (A0‬תהי )‪/ L (A‬‬
‫סופי של פעמים‪ .‬ניתן לבנות ריצה מקבלת של ‪ A0‬על ‪.w‬‬
‫איזה כיוון היה נופל אם ‪ A‬היה א"ד? כמו שאוטומט על מילים סופיות קשה להשלים‪.‬‬
‫למשל יש אוטומט לשפה ∗)‪ a (a + b‬שאם נהפוך את המצבים המקבלים נקבל ‪ε +‬‬
‫∗)‪ .a (a + b‬באופן כללי‪ A0 ,‬מקבל את ‪ w‬אם קיימת ריצה דוחה של ‪ A‬על ‪ ,w‬ומה‬
‫שאנו צריכים זה לקבל אם כל הריצות של ‪ A‬על ‪ w‬דוחות‪.‬‬
‫איור ‪ :6‬אוטומטים "משלימים" לשפות ∗)‪ a (a + b‬ו־ ∗)‪ε + a (a + b‬‬
‫איך עושים השלמה במילים סופיות? מחרצנים את האוטומט‪ .‬בפעולה הקודמת‪,‬‬
‫עברנו מ־‪ n‬מצבים ל־‪ 2n‬מצבים בתהליך ההפיכה‪ .‬באוטומט המכפלה שראינו היה לנו‬
‫) ‪.O (n1 n2‬‬
‫משפט ‪ ,N BW > DBW 1.3‬כלומר קיימות שפות המזוהות עם אוטומט א"ד‪ ,‬ולא עם‬
‫אוטומט דטרמיניסטי‪more expressive .‬‬
‫∈ ‪ .L‬את ‪ L ∈ N BW‬כבר‬
‫הוכחה‪ :‬נתבונן ‪ ,L = ¬∞a‬ונראה ‪ L ∈ N BW‬ו־ ‪/ DBW‬‬
‫‪9‬‬
‫ראינו‪ .‬נניח בשלילה כי יש ‪ A DBW‬כך ש־‪ .L (A) = L‬יהי |‪.n = |Q‬‬
‫נתבונן במילה ‪ .w1 = bω ∈ L‬יש אינדקס ‪ ,i1‬כך ש־‪.δ (bi1 ) := δ 0 (q0 , bi1 ) ∈ α‬‬
‫נתבונן במילה ‪ .w2 = bi1 abω ∈ L‬יש ‪ i2‬כך ש־‪.δ (bi1 abi2 ) ∈ α‬‬
‫נתבונן במילה ‪ ,bi1 abi2 abω ∈ L‬ופה ההוכחה מתפצלת‪ .‬עם אינטואיציה טובה‪ ,‬יש סדרה‬
‫אינסופית של מילים‪ ,‬וממנה אפשר לייצר מילה עם ‪.∞a‬‬
‫ניתן להמשיך ולהגדיר לכל ‪ k ≥ 1‬את המילה ‪ wk = bi1 abi2 abi3 . . . bik abω‬כך שבריצה‬
‫של ‪ A‬על ‪ ,wk‬יש ביקור ב־‪ α‬לפני כל ‪.a‬‬
‫עבור ‪ ,k > n‬לפי עקרון שובך היונים יש ‪ j1 < j2‬כך ש־= ) ‪δ (bi1 a . . . bij1 ) = δ (bi1 a . . . bij2‬‬
‫‪ω‬‬
‫‪ .q ∈ α‬נתבונן במילה ) ‪.w = bi1 a . . . bij1 (abij1 +1 . . . bij2‬‬
‫∈ ‪ w‬כי יש ב־‪.∞a w‬‬
‫‪/ L .1‬‬
‫‪ .2‬הריצה של ‪ A‬על ‪ w‬תבקר ∞ פעמים ב־‪.q‬‬
‫למה ‪) 1.4‬קניג ‪ (konig‬־ בעץ עם ∞ קודקודים ודרגת פיצול סופית יש מסלול אינסופי‪.‬‬
‫ראינו שאי־דטרמיניזם מוסיף לכוח ההבעה‪ .‬מכאן אפשר לעבור לבעיית ההכרעה‪ :‬נתון‬
‫אוטומט ‪ ,N BW‬האם יש אוטומט ‪ DBW‬שקול לו? נראה שיש פתרון ב‪,LOGSP ACE‬‬
‫תלוי בייצוג של האוטומט‪.‬‬
‫בוקי בא עם ההגדרה של האוטומט ב‪ .62‬לנדובר ‪ Landweger‬ב‪ 69‬הגדיר עבור שפה‬
‫∗‪ ,R ⊆ Σ‬את‬
‫}‪Σω ⊇ lim (R) := {w | w has ∞ pref ixes in L‬‬
‫למשל עבור המילה ‪ .lim (R) = ∞a ,R = (a + b)∗ a‬לשפה ∗)‪ R = (ab‬יש = )‪lim (R‬‬
‫‪ .(ab)ω‬גם עבור ‪ R0 = (ab)∗ a‬נקבל ‪ .lim (R0 ) = (ab)ω‬לכן מ־‪ R‬לגבול שלה יש שפה‬
‫יחידה‪ ,‬אבל משפה אינסופית‪ ,‬ייתכנו כמה שפות שמייצרות אותה‪.‬‬
‫עבור ‪ ,L = ¬∞a‬איזו שפה ‪ R‬תקיים ‪?lim (R) = L‬‬
‫משפט ‪ L ∈ DBW 1.5‬אם"ם קיימת ∗‪ R ⊆ Σ‬רגולרית כך ש־‪.lim R = L‬‬
‫הוכחה‪ :⇒ :‬תהי ‪ R‬רגולרית‪ ,‬ו־‪ DF W A‬עבור ‪ ,R‬נתייחס ל־‪ A‬כאוטומט בוקי‪ .‬אזי‬
‫))‪ .Lω (A) = lim (L∗ (A‬הכיוון השני אותו דבר כמעט‪.‬‬
‫‪10‬‬
‫ראינו לשפה ‪ DBW 3 ∞a ∧ ∞b‬שונים‪ .‬אם נסתכל עליהם בתור ‪ ,DF W‬הם מגדירים‬
‫‪ 3‬שפות שונות‪.‬‬
‫איור ‪ 3 :7‬אוטומטים ‪ DBW‬שונים לשפה ‪∞a ∧ ∞b‬‬
‫‪ ,Lω (A1 ) = Lω (A2 ) = Lω (A3 ) = ∞a ∧ ∞b‬אבל‪ L∗ (A2 ) = b∗ a∗ b ,L∗ (A1 ) = a∗ b∗ a :‬ואלו‬
‫∗‬
‫)‪L∗ (A3 ) = (aa∗ b + bb∗ a‬‬
‫בעיה‪ :‬בהינתן ‪ ,A N BW‬בנה ‪ A0 N F W‬כך ש־)) ‪ L (A) = lim (L (A0‬או הכרע שאין‬
‫כזה‪ .‬אם היינו יודעים לחרצן אוטומטי בוקי‪ ,‬היינו יכולים לפתור את הבעיה‪.‬‬
‫אלג' ‪ :1‬נגדיר את ‪ A0‬להיות ‪ A‬ונקווה שאם ‪ ,L (A) ∈ DBW‬מתקיים תמיד‬
‫‪11‬‬
‫)‪) lim L (A0 ) = L (A‬כמו בדרטמיניסטיים(‪.‬‬
‫זה לא נכון‪ .‬דוגמא נגדית‪ :‬אנו מחפשים ‪ A‬כך ש־ ‪ ,L (A) ∈ DBW‬אבל כשנתבונן‬
‫על ‪ A‬כעל ‪ ,N F W‬אז )‪) lim (L∗ (A)) 6= Lω (A‬תרגיל(‪ .‬ראינו עבור האוטומט לשפה‬
‫‪ ¬∞a‬שזה לא עובד ‪ L∗ (A) = (a + b)∗ b‬והגבול הוא ‪ .∞b‬אבל זו שפה שאין לה‬
‫אוטומט דטרמיניסטי‪.‬‬
‫איור ‪ :8‬האוטומט עבור ‪¬∞b‬‬
‫∗‬
‫‪ ,Lω (A) = ¬∞b ,L∗ (A) = (a + b) b‬אולם ‪lim (L∗ (A)) = ∞b‬‬
‫אלג' ‪ :2‬חרצן את ‪ A‬ל־ ‪) D DBW‬טרם למדנו‪ ,‬אקספוננציאלי(‪ A0 ,‬המבוקש הוא‬
‫‪D‬כשמתייחסים אליו כ־ ‪.DF W‬‬
‫שאלה‪ :‬האם הניפוח האקס' חיוני או שאפשר להחזיר אוטומט עם פחות מצבים‪ .‬אין‬
‫לנו חסם תחתון ידוע‪.‬‬
‫תזכורת‪ :‬ניפוחים ‪blow-up‬‬
‫ראינו בחישוביות כי ‪ N F W → DF W‬עולה ‪ 2n‬כחסם עליון ותחתון‪ .‬מסמנים‬
‫‪2n‬‬
‫→‪ .N F W −‬החסם העליון היה ‪ ,subset construction‬אם ננסה לעשות‬
‫‪DF W‬‬
‫‪2n‬‬
‫את זה לאוטומט ‪ ,N BW‬נראה איפה אנחנו נופלים‪ .‬איך מוכיחים שאי אפשר לעשות‬
‫יותר טוב? מראים משפחה של שפות ∗‪ ,L1 , L2 , . . . ⊆ Σ‬כך של־ ‪ Li‬יש ‪ N F W‬בגודל‬
‫)‪ ,O (i‬אבל ‪ DF W‬המינימלי של ‪ Li‬דורש לפחות ‪ 2i‬מצבים‪.‬‬
‫צריך משפחה כי לכל פולינום ‪ ,p‬קיים ‪ i‬כך ש־)‪ .2i > p (i‬בחישוביות הוכחנו לגבי‬
‫המשפחה ‪ .Li = (0 + 1)∗ 0 (0 + 1)i‬הא"ד מייצר שרשרת פשוטה‪ ,‬והדטרמיניסטי חייב‬
‫לזכור את ‪ i‬האותיות האחרונות‪ .‬היתה לנו הוכחה לחסם תחתון אקס' להשלמה‪ ,‬עבור‬
‫המשפחה } ‪ .Ln = {ww | w ∈ Σn‬יש ‪ N F W‬בגודל ) ‪ O (n2‬ל־ ‪ Ln‬שינסה לנחש הפרה‪.‬‬
‫לעומת זאת‪ N F W ,‬עבור ‪ Ln‬דורש לפחות )‪ 2O(n‬מצבים‪.‬‬
‫‪1.2‬‬
‫תנאי קבלה נוספים )חסר(‬
‫ר"ח אייר תשע"ג )שעור ‪ 4‬־ חסר שעור ‪(3‬‬
‫‪12‬‬
‫תזכורת‪ :‬הגדרנו ריצה ו־)‪ .inf (r‬ראינו תנאי בוקי‪ ,‬רבין וסטריט‪ .‬הראינו שלרבין‬
‫וסטריט יש אינדקס מצבים וזוגות‪ ,‬ולאוטומט בוקי רק מצבים‪.‬‬
‫‬
‫ראינו איך )‪ Rabin (n, k) → Buchi (n · k‬ו־ ‪ Streett (n, k) → Buchi n · 2k‬עם‬
‫חסם עליון ותחתון‪ .‬ראינו ‪ DBW < N BW‬ו־ ‪.DCW = DBW‬‬
‫‪1.3‬‬
‫אוטומטים ולוגיקה מסדר שני‬
‫ב‪ 1962‬התפתח ‪ :The sequntial calculus‬למשל האם קיימים ‪ x, y, z, n‬כך ש־‪xn +‬‬
‫‪ .y n = z n‬ההבעה הלוגית היא‬
‫‪∃x∃y∃z∃n s.t. xn + y n = z n‬‬
‫לוגיקה פסוקית היא דלה בכך שיש לה קבוצה של אטומים ‪ p, q, . . .‬וכמתים ∧ ‪¬,‬‬
‫ואלגוריתם לבדיקה האם קיימת השמה ספיקה‪ .‬כאן הדברים מסובכים יותר כי דומיין‬
‫ההשמות הוא כל הטבעיים‪ .‬לכן בעיית הספיקות לא בהכרח כריעה‪ .‬איזו לוגיקה‬
‫מוגדרת כך שבעיית הספיקות כריעה ואיזו לא‪ .‬לבוקי היה שיא של בעיות לוגיות‬
‫נרחבות שעדיין כריעות‪ ,‬וזה נעשה בעזרת אוטומטים‪.‬‬
‫בלוגיקה תמיד מדברים על המבנה‪ .‬בהקשר של לוגיקה פסוקית יש לנו אטומים‬
‫ואופרטורים בוליאנים‪ ,‬עם השמות ‪ T, F‬לאטומים‪.‬‬
‫כאן‪ ,‬המבנה ‪ M = hN, 0, +1, <i‬מכיל איבר ‪ ,0‬פעולת העוקב‪ ,‬ויחס סדר‪ .‬הנוסחאות‬
‫הן למשל ‪ .∀x∃y y > x‬זה אומר שלכל איבר יש איבר גדול ממנו‪ .‬או למשל‬
‫)‪∀x∀y (x = y + 1 + 1) → ∃z (x < z ∧ z < y‬‬
‫המתמטיקאים קיוו שאם יש פרוצדורה שמכריעה משפטים כאלו‪ ,‬הם יוכלו להוכיח‬
‫משפטים נוספים‪ .‬אם מצליחים להביע משפט בלוגיקה כריעה‪ ,‬אפשר להוכיח \ להפריך‬
‫אותם‪.‬‬
‫
‬
‫‬
‫נתייחס למילה ‪ w‬מעל הא"ב ‪ Σ‬במבנה ‪ Mw = N, 0, +1, <, (Qσ )σ∈Σ‬כאשר ⊇ ‪N‬‬
‫}‪ .Qσ := {i | w [i] = σ‬למשל במילה ‪ (ab)ω‬נקבל ‪ Qb‬אוסף המספרים הזוגיים‪.‬‬
‫כל דבר שנפתור במבנה הזה ייפתר במבנה הכללי‪.‬‬
‫את ‪ ∞a‬נבטא ע"י ‪.∀x∃y, y > x ∧ y ∈ Qa‬‬
‫לוגיקה מסדר ראשון ‪ F OLΣ‬היא עם התחביר הבא‪:‬‬
‫• ‪ terms‬־ ביטויים‪.‬‬
‫‪13‬‬
‫– הקבוע ‪.0‬‬
‫– משתנים ‪.x, y, . . .‬‬
‫– הביטוי ‪ t + 1‬עבור הביטוי ‪.t‬‬
‫• נוסחאות ־ ‪.f ormulas‬‬
‫– ‪ t = t0 , t < t0 , t ∈ Qσ‬עבור ביטויים ‪ t, t0‬ופרדיקט ‪.Qσ‬‬
‫– ‪ ¬ϕ1 , ϕ1 ∨ ϕ2‬או ))‪ ∃x (ϕ1 (x‬עבור נוסחאות ‪) .ϕ1 , ϕ2‬אפשר להרחיב גם‬
‫לקשרים ∧ ‪ ,→,‬וכמת ∀(‪ .‬נסמן ב־)‪ ϕ (x‬את העובדה ש־‪ x‬חופשי ב־‪,ϕ‬‬
‫כלומר אינו בטווח של כמת‪.‬‬
‫איך נגדיר את השפה‪:‬‬
‫• אחרי כל ‪ a‬יש ‪.∀x, x ∈ Qa → ∃y, y > x ∧ y ∈ Qb ?b‬‬
‫• רק מספר סופי של ‪a‬ים? ) ‪.∃x∀y (y > x → ¬y ∈ Qa‬‬
‫• בין כל שני מופעים סמוכים של ‪ a‬יש מספר אי־זוגי של ‪ :b‬האם זו שפה רגולרית?‬
‫כן‪ ,‬אפשר ליצור אוטומט‪ .‬מסתבר שעם לוגיקה מסדר ראשון אי אפשר להביע‬
‫איור ‪:9‬‬
‫האוטומט לשפה "בין כל שני מופעים סמוכים של ‪ a‬יש מספר אי זוגי של ‪b‬‬
‫את השפה הזו‪ .‬יש נוסחא בלוגיקה מסדר שני‪:‬‬
‫→ )) ‪∀x∀y (x ∈ Qa ∧ y ∈ Qb ∧ x < y ∧ ∀z (z > x ∧ z < y → ¬z ∈ Qa‬‬
‫∈ ‪→ ∃X (x ∈ X ∧ ∀z (z ∈ X ↔ z + 1‬‬
‫)‪/ X) ∧ y ∈ X‬‬
‫הקבוצה ‪ X‬היא כל האינדקסים שמסכימים עם ‪ x‬על הזוגיות‪.‬‬
‫בלוגיקה מסדר שני או לוגיקה מונדית מסדר שני‪ M onadic SOLΣ ,‬או ‪ ,S1SΣ‬הביטויים‬
‫הם אותם ביטויים‪ ,‬אבל לנוסחאות נוסף‬
‫‪14‬‬
‫• ‪ t ∈ X‬עבור ביטוי ‪ t‬ומשתנה קבוצות ‪) X‬נוסחא אטומית(‪.‬‬
‫• ))‪ ∃X (ϕ (X‬עבור נוסחא ‪.ϕ‬‬
‫יש קשר יפה ‪ Descriptive complexity‬בין המחלקות עם הסיבוריות ללוגיקה איתה‬
‫ניתן להביע אותם‪ .‬למשל את הגרף ‪ 3‬־צביע ניתן לבטא ע"י‬
‫∈ ‪∃Y ∃R∃B, ∀v∀u, E (v, u) → ((v ∈ Y → u‬‬
‫∈ ‪/ Y ) ∧ (v ∈ R → u‬‬
‫)‪/ R) , . . .‬‬
‫‪∀v, v ∈ Y ∨ v ∈ R ∨ v ∈ B‬‬
‫∧‬
‫באופן כללי ‪ N P = existentian SOL‬ו־‪ .P = F OL + T C‬חשבו שדרך זה אפשר‬
‫להוכיח את ‪.P =? N P‬‬
‫מה זה ‪ ?monadic‬הפרדיקט )‪ E (y, x‬הוא בוליאני‪ .‬בלוגיקה מונדית כל הפרדיקטים‬
‫אונאריים‪.‬‬
‫נאמר ש־‪ L‬גדירה ב־ ‪ S1SΣ‬אם קיימת נוסחא ‪ ϕ‬ב־ ‪ S1SΣ‬כך ש־}‪.L = {w | Mw |= ϕ‬‬
‫משפט ‪) 1.6‬בוקי‪ L (1962 ,‬גדירה ב־ ‪ S1SΣ‬אם"ם ‪ω L) L ∈ N BW‬־רגולרית(‪.‬‬
‫מסקנה ‪ S1SΣ 1.7‬כריעה‪ .‬נבדוק האם לאוטומט יש מסלול העובר ב־‪ α‬אינסוף פעמים‪.‬‬
‫הוכחה‪ :⇒ :‬יהי ‪ A = hΣ, Q, δ, Q0 , αi‬אוטומט ‪ .N BW‬נתאר נוסחא ‪ ϕ‬כך שלכל‬
‫‪ w |= ϕ ,w ∈ Σω‬אם"ם )‪.w ∈ L (A‬‬
‫הנוסחא תאמר‪" :‬קיימת ריצה מקבלת על ‪ ."w‬נשים לב כי ריצה של ‪ A‬על ‪ w‬משרה‬
‫חלוקה של ‪ N‬ל־|‪ |Q‬קבוצות‪ .‬למשל אם }‪ ,Q = {0, . . . , n‬ריצה ‪ r : N → Q‬משרה‬
‫‪ Y0 , . . . , Yn‬כך ש־‪.i ∈ Yj ⇔ r (i) = j‬‬
‫‪∃Y0 . . . ∃Yn‬‬
‫עם הפירוט הבא‪:‬‬
‫‪ .1‬כל אינדקס ‪ i ∈ N‬נמצא במצב יחיד‪:‬‬
‫^‬
‫‪¬∃i i ∈ Yj1 ∧ i ∈ Yj2‬‬
‫‪0≤j1 <j2 ≤n‬‬
‫נשים לב כי זו נוסחא סופית‪.‬‬
‫‪15‬‬
‫∧ ‪i ∈ Yj‬‬
‫_‬
‫‪0≤j≤n‬‬
‫‪∀i,‬‬
‫‪ .2‬הריצה מתחילה במצב התחלתי‪:‬‬
‫‪0 ∈ Yj‬‬
‫_‬
‫‪j∈Q0‬‬
‫‪ .3‬הריצה עקבית עם ‪ .δ‬נסמן ) ‪ ∆ (j1 , σ, j2‬אם )‪.j2 ∈ δ (j1 , σ‬‬
‫_‬
‫‪i ∈ Qσ ∧ i ∈ Yj1 ∧ i + 1 ∈ Yj2‬‬
‫‪∀i,‬‬
‫) ‪j1 ,j2 ,σ: ∆(j1 ,σ,j2‬‬
‫)שוב‪ ,‬הקבוצה }) ‪ {hj1 , j2 , σi | j1 , j2 ∈ Q, σ ∈ Σ, ∆ (j1 , σ, j2‬סופית(‪.‬‬
‫‪ .4‬הריצה מקבלת‪:‬‬
‫‪y ∈ Yj‬‬
‫_‬
‫∧ ‪∀x∃y y > x‬‬
‫‪j∈α‬‬
‫זה הכיוון הקל‪ ,‬שפחות עניין את בוקי‪ .‬הכיוון המעניין הוא להפוך נוסחא לאוטומט‬
‫)שמאפשר להכריע את הנוסחא(‪.‬‬
‫⇐ )אם ‪ L‬גדירה ב־ ‪ S1SΣ‬אז ‪ L‬היא ‪ω‬־רגולרית(‪:‬‬
‫מאחר וכבר הוכחנו שאוטומטים סגורים לשלילה ולחיתוך‪ ,‬הטלה זה לא קשה‪ ,‬והחלק‬
‫הבעייתי הוא הבסיס של הנוסחאות האטומיות‪ .‬בוקי הציע תרגום לנוסחאות קנוניות‪.‬‬
‫להוכחה שלושה צעדים‪:‬‬
‫‪ .1‬מעבר מ־ ‪ S1SΣ‬ל־‪) S1S‬ללא הפרדיקטים ‪.(Qσ‬‬
‫‪ .2‬מעבר מ־‪ S1S‬לנוסחא ב־ ‪) S1Snf‬יש רק משתני קבוצות‪ ,‬ושני סוגים של נוסחאות‬
‫אטומיות‪ Xi ⊆ Xj :‬ו־) ‪ succ (Xi , Xj‬כלומר } ‪ Xi = {xi } , Xj = {xj‬וגם‬
‫‪.(xj = xi + 1‬‬
‫‪ .3‬תרגום מ־ ‪ S1Snf‬אל ‪.N BW‬‬
‫צעד ראשון‪:‬‬
‫נקודד את ‪ Σ‬ע"י משתנים ‪) X1 , . . . , Xn‬משתני קבוצה בוליאניים( כאשר |‪.n = log |Σ‬‬
‫למשל עבור }‪ ,Σ = {a, b, c, d‬אזי ‪ X1‬מתאים ל־‪ c, d‬ו־ ‪ X2‬מתאים ל־‪ .b, d‬את‬
‫‪ dabab (ab)ω‬נקודד ע"י }‪ X1 = {0‬ו־‪) X2 = 2N‬האי זוגיים(‪ .‬או למשל המילה‬
‫המוגדרת ע"י }‪ ,X1 = {i : 3 | i} , X2 = {i : 2 | i‬היא ‪.(dabcba)ω‬‬
‫‪16‬‬
‫את כל המילים עם ‪ ∞d‬נבטא ע"י‪:‬‬
‫‪∀x∃y, y > x ∧ y ∈ X1 ∧ y ∈ X2‬‬
‫∈ ‪.y‬‬
‫ואת )‪ ∞ (a ∨ b‬אפשר לבטא ע"י ‪/ X1‬‬
‫הערה ‪ 1.8‬אנחנו מאבדים את ההבדל בין ‪ ∞d‬ל־‪ ∞b‬בצורת הקידוד הזו ־ אין לנו‬
‫בשום מקום קישור של הקידוד הספציפי עם האותיות‪ ,‬אבל נשים לב ש‪ ∞b‬גדירה אם"ם‬
‫‪ ∞d‬גדירה‪ ,‬וכנ"ל לגבי רגולריות‪ ,‬לכן ההוכחה היא לגבי ‪ L‬עד כדי פרמוטציה על ‪.Σ‬‬
‫צעד שלישי‪:‬‬
‫יש לנו נוסחא ב־ ‪ ,S1Snf‬עם משתנים ‪ X0 , . . . , Xn‬עם נוסחאות אטומיות ‪,X1 ⊆ X2‬‬
‫ו־) ‪ .succ (Xi , X2‬האוטומט יהיה מעל הא"ב ‪ .Σ = {0, 1}n+1‬עבור ‪ X1 ⊆ X2‬מורכב‬
‫ממצב יחיד מקבל‪ ,‬עם קשת עצמית עבור כל ‪ (x0 , . . . , xn ) ∈ {0, 1}n‬חוץ מאלו בהם‬
‫‪ x1 = 1‬ו־‪) .x2 = 0‬כשקוראים את האות ‪ b0 . . . bn‬במקום ה־‪ i‬אנו יודעים כי ‪i ∈ Xj‬‬
‫אם"ם ‪.(bj = 1‬‬
‫את פרדיקט ה־) ‪ succ (Xi , Xj‬נייצג ע"י אוטומט שקורא עד שהוא קורא את ‪ b‬עם‬
‫‪ ,bi = 1‬ולאחריה הוא קורא מילה עם ‪ ,bj = 1‬ומכאן ואילך הוא קורא רק מילים עם‬
‫‪.bi = bj = 0‬‬
‫ח' אייר תשע"ג )שעור ‪(5‬‬
‫במעבר מ־‪ SIS‬ל ‪ ,N BW‬יש לנו נוסחאות מעל המספרים הטבעיים‪.‬‬
‫כל מילה מעל ‪ (0 + 1)ω‬מגדירה קבוצות ‪ X1 , X2 , X3 ⊆ N‬כאשר נסתכל עליה כעל‬
‫‪ω‬‬
‫‪ . (0 + 1)3‬באופן כללי כדי להגדיר ‪ t‬קבוצות מעל הטבעיים‪ ,‬נמדל בעזרת מילה‬
‫‪ω‬‬
‫‪. (0 + 1)t‬‬
‫נגדיר צורה נורמלית לנוסחאות ‪:S1S‬‬
‫• נוסחאות אטומיות‪ X1 ⊆ X2 , Succ (X1 , X2 ) :‬עבור משתני קבוצות ‪.X1 , X2‬‬
‫)תזכורת‪ Succ (X1 , X2 ) = T :‬אם הם סינגלטונים של מספרים עוקבים(‪.‬‬
‫• ‪ ϕ1 ∨ ϕ2 ,¬ϕ1‬ו־) ‪.∃X (ϕ1‬‬
‫לא נדבר על איך ההמרה עובדת‪ ,‬זה שייך לקורס בלוגיקה‪ ,‬תהיה הפניה למאמר באתר‪.‬‬
‫דוגמא לנוסחא‪:‬‬
‫) ‪∃X1 ∃X2 ∃X2 , Succ (X1 , X2 ) ∧ Succ (X2 , X3 ) ∧ Succ (X2 , X3‬‬
‫‪17‬‬
‫זוהי נוסחא שאינה ספיקה‪.‬‬
‫לאוטומטים‪.‬‬
‫המטרה שלנו היא לעשות תרגום מהצורה הנורמלית‬
‫היה לנו גם דרך לסלק את הפרדיקטים של התווים ב־‪ .Σ‬אפשר לעשות זאת ע"י קבוצה‬
‫מאפיינית לכל ‪ .σ ∈ Σ‬ראינו דרך לעשות ע"י |‪ log |Σ‬קבוצות מאפיינות‪ ,‬זה קצת בלבל‪,‬‬
‫אבל גם זה אפשרי‪.‬‬
‫משפט ‪ 1.9‬בהינתן נוסחא ‪ ϕ‬מעל ‪ ,X1 , . . . , Xt‬ניתן לבנות ‪ N BW‬שמקבל מילה ב־‬
‫‪ω‬‬
‫‪ (0 + 1)t‬אם"ם היא מספקת את ‪.ϕ‬‬
‫‪ω‬‬
‫הוכחה‪ :‬בסיס‪ :‬עבור ‪ ,ϕ = X1 ⊆ X2‬האוטומט מעל ‪ (0 + 1)2‬לא מוכן לקבל‬
‫אותיות ”‪ ”10‬כי אם קיימות אותיות כאלו‪ ,‬יש איבר שנכנס ל־ ‪ X2‬אבל לא ל־ ‪ .X1‬אם‬
‫יש לנו ‪ Xi ⊆ Xj‬מעל ‪ t‬קבוצות‪ ,‬האוטומט יקרא תווים ב־ ‪ ,{0, 1}t‬ולא יקבל תווים‬
‫בהם ‪.σi = 1, σj = 0‬‬
‫עבור ) ‪ ,Succ (X1 , X2‬אם היינו רוצים לומר ש־ ‪ X1‬הוא סינגלטון‪ ,‬היינו צריכים לקרוא‬
‫כל הזמן ‪ ,0‬מתישהו לקרוא ‪ ,1‬ומאז לקרוא רק ‪ .0‬אם לא קראנו ‪ ,1‬או קראנו יותר‬
‫מפעם אחת‪ ,‬אנחנו דוחים‪ .‬אם מדובר על משתנה ‪ Xi‬מתוך ‪ t‬משתנים‪ ,‬צריך להסתכל‬
‫על כל התווים האפשריים למשתנים האחרים‪ .‬כשאנחנו מוסיפים את ה־‪ ,Succ‬יש לנו‬
‫דרישה לקרוא בהתחלה ”‪ ,”00‬מתישהו נקרא ‪) 10‬קוראים ‪ ,(X1‬מיד אחריו ‪) 01‬קוראים‬
‫‪ ,(X2‬ולאחר מכן קוראים רק ‪ .00‬שוב‪ ,‬אם יש יותר משני משתנים‪ ,‬כל חץ מסמן את‬
‫כל ‪ 2t−2‬האפשרויות למשתנים האחרים‪.‬‬
‫איור ‪ :10‬האוטומטים עבור ) ‪X1 ⊂ X2 , Succ (X1 , X2‬‬
‫‪18‬‬
‫עבור ‪ ,¬ϕ‬זה נובע מסגור להשלמה‪ ϕ1 ∨ ϕ2 ,‬נובע מסגור לאיחוד‪ ∃Xϕ ,‬נובע מסגור‬
‫להטלה שנראה‪:‬‬
‫תהי ‪ L‬שפה מעל א"ב ‪ .Σ1 × Σ2‬נניח }‪ Σ1 = {0, 1‬ו־}‪ Σ2 = {a, b‬המוגדרת ע"י‬
‫אוטומט ‪ .A‬עבור מילה ‪ w1 ∈ Σω1‬ו־ ‪ w2 ∈ Σω2‬נגדיר את הרכבת המילים ∈ ‪w1 ⊕ w2‬‬
‫‪ .(Σ1 × Σ2 )ω‬פעולת ההטלה מוגדרת באופן הבא‪:‬‬
‫}‪L |Σ1 = {w1 | ∃w2 ∈ Σω2 , w1 ⊕ w2 ∈ L‬‬
‫ברור כי אוטומט סגור להטלה‪ ,‬כי נסיר מעל הדרישות של החיצים את החלק ששייך‬
‫לתווים של ‪) Σ2‬האוטומט יהיה א"ד(‪ .‬בהינתן ‪ A‬מעל ‪ Σ1 × Σ2‬נקבל את ‪ A |Σ1‬מעל‬
‫‪ Σ1‬ע"י פונקציית המעברים‬
‫)) ‪δ (q, (σ1 , σ2‬‬
‫[‬
‫= ) ‪δ 0 (q, σ1‬‬
‫‪σ2 ∈Σ2‬‬
‫לעניינו‪ ,‬עבור נוסחא ) ‪ ,∃X1 ϕ (X1 , X2‬ויש לנו אוטומט מעל‬
‫ל־) ‪ ,ϕ (X1 , X2‬נטיל אותו על ‪.(0 + 1)ω‬‬
‫דוגמא‪ ,Succ (X1 , X2 ) ∧ Succ (X2 , X3 ) ∧ X1 ⊆ X3 :‬הא"ב הוא‬
‫|‬
‫‪{z‬‬
‫| }‬
‫‪{z‬‬
‫} ‪} | {z‬‬
‫‪θ3‬‬
‫‪θ2‬‬
‫‪ω‬‬
‫‪ (0 + 1)2‬המתאים‬
‫‪ω‬‬
‫‪ . (0 + 1)3‬בחיתוך‬
‫‪θ1‬‬
‫של ‪ θ1 ∧ θ2‬עם ‪ ,θ3‬נקבל חיתוך ריק במעבר מ־‪ hs0 , t0 i‬ל־‪ hs1 , t0 i‬כי ‪ θ3‬לא מקבל את‬
‫‪.100‬‬
‫‪2‬‬
‫בעיות הכרעה‬
‫אנחנו מכירים את ‪P T IM E, N P, EXP T IM E, N LOGSP AN CE, P SP ACE‬־‬
‫אלו בעיות הכרעה של מ"ט שעוצרות בזמן סופי‪ .‬יש מחלקות שמעניין אותנו הזמן‪ ,‬ויש‬
‫כאלו שמעניין אותנו השטח‪ .‬בעיית הישיגות‪ :‬אם יש לנו גרף מכוון ואנחנו מעוניינים‬
‫לדעת האם יש מסלול בין ‪ s, t‬זו בעיה ‪ .N LOGSP ACE − complete‬על סרט‬
‫העבודה שומרים את הקודקוד הנוכחי ומספר הצעדים )דורש )‪ O (log n‬מקום(‪ ,‬ועל‬
‫הפלט תרשום את הקודקוד הראשון‪ ,‬וכל פעם תנחש קודקוד נוסף באופן א"ד‪.‬‬
‫אנחנו יודעים כי ))‪ .T IM E (f (n)) ⊆ SP ACE (f (n‬בכיוון ההפוך ⊆ ))‪SP ACE (f (n‬‬
‫‬
‫)‪) T IM E 2f (n‬אפשר לדמות את מכונת המקום‪ ,‬ולמנות את הקונפיגורציות השונות(‪.‬‬
‫‪19‬‬
‫איור ‪ :11‬אוטומטים עבור ‪Succ (X1 , X2 ) ∧ Succ (X2 , X3 ) ∧ X1 ⊂ X3‬‬
‫בשורה הראשונה אוטומט עבור ‪ .θ1‬בשורה השניה עבור ‪ θ2‬ובשורה השלישית עבור ‪ .θ3‬בשורה‬
‫הרביעית מופיע אוטומט המכפלה עבור ‪ ,θ1 ∧ θ2‬וקל לראות כי אוטומט המכפלה שלו עם האוטומט‬
‫ל־ ‪ θ3‬הוא ריק‪.‬‬
‫משפט סאביץ' ־ ))‪ N SP ACE (s (n)) ⊆ SP ACE (s2 (n‬כלומר = ‪N P SP ACE‬‬
‫‪.P SP ACE‬‬
‫הבעיות שיעניינו אותנו‪ :‬בהינתן ‪,A N BW‬‬
‫• האם ∅ =‪) ?L(A) 6‬בעיית הריקנות(‪.‬‬
‫• האם ‪) L (A) = Σω‬בעיית האוניברסליות(?‬
‫• בהינתן ‪ ,A1 , A2‬האם ) ‪) L (A1 ) ⊆ L (A2‬בעיית ההכלה(?‬
‫בעזרת בעיית ההכלה ניתן לפתור את בעיית הריקנות ובעיית האוניברסליות‪.‬‬
‫‪20‬‬
‫‪2.1‬‬
‫בעיית הריקנות‬
‫נתחיל מבעיית הריקנות‪ :‬ניתנת לפתרון ב־‪ ,N LOGSP ACE‬ננחש מצב ‪ q ∈ α‬כך‬
‫ש־‪ q‬ישיג מ־ ‪ Q0‬ע"י ‪ u‬ומעצמו ע"י ‪) v‬ישיגות בגרף(‪.‬‬
‫נכונות‪ :‬אם מצאנו מבנה כזה‪ ,‬אזי )‪ .uv ω ∈ L (A‬בכיוון השני‪ ,‬אם )‪ ,w ∈ L (A‬יש‬
‫מצב ‪ q ∈ α‬שהריצה על ‪ w‬עוברת בו ∞ פעמים‪ ,‬ולכן הוא ישיג מ־ ‪ Q0‬ומעצמו‪.‬‬
‫כמו כן זה ניתן לפתרון בזמן לינארי‪ :‬יהי ‪ ,G = hV, Ei‬נאמר ש־ ‪ C ⊆ V‬הוא רכיב‬
‫קשיר היטב )‪ (Strongly Connected Component‬אם לכל ‪ v1 , v2 ∈ C‬יש מסלול מ־ ‪v1‬‬
‫ל־ ‪ C .(E ∗ (v1 , v2 )) v2‬הינו רכיב קשיר היטב מקסימלי )‪ (Maximal SCC‬אם לכל‬
‫= ∅‪ C ∪ S ,‬אינו ‪.SCC‬‬
‫‪6 S ⊆ V \C‬‬
‫בגרף לדוגמא }‪ .SCC : {2} , {1, 2} , {1, 2, 3} , {5, 6} , {4‬יש לנו חלוקה ל־}‪{1, 2, 3} , {4} , {5, 6‬‬
‫של ‪ ,M SCC‬וזה משרה ‪ DAG‬של גרף בלי רכיבים קשירים‪.‬‬
‫איור ‪ :12‬גרף לדוגמא‬
‫‪ :'75 T arjan‬יש חלוקה יחידה ל־‪ M SCC‬וניתן למצוא אותה בזמן לינארי‪.‬‬
‫כעת נפתור את בעיית הריקנות של ‪ :N BW‬נחפש ‪ S M SCC‬שהוא לא טרוויאלי )יש‬
‫בו לפחות קשת אחת( כך ש־∅ =‪ ,S ∩ α 6‬והוא ישיג מ־ ‪.Q0‬‬
‫מה לגבי תנאי קבלה נוספים?‬
‫עבור ‪ N GW‬־ יש כמה קבוצות } ‪ ,α = {F1 , . . . , Fk‬ואנו רוצים ∅ =‪ inf (r) ∩ Fi 6‬לכל‬
‫]‪ .i ∈ [k‬הסיבוכיות עדיין לינארית‪ :‬מחפשים מסלול → ‪Q0 → F1 → F2 → . . . → Fk‬‬
‫= } ‪ S ∩ {Fi‬לכל‬
‫‪ .F1‬זה עדיין לינארי כי ה־‪ M SCC‬הלא טרוויאלי ‪ S‬צריך לקיים ∅ ‪6‬‬
‫]‪.i ∈ [k‬‬
‫‪21‬‬
‫עבור ‪ N CW‬־ דורשים ∅ = ‪ .inf (r) ∩ α‬זה אותה סיבוכיות כמו → ‪N CW‬‬
‫‪ :N BW‬בודקים האם קיים רכיב קשירות שאינו מכיל איברים ב־‪) α‬נפעיל ‪M SCC‬‬
‫על ‪ ,(hQ\α, Eδ i‬ונחפש כזה שישיג )בגרף המקורי( מ־ ‪.Q0‬‬
‫ט"ו אייר תשע"ג )שעור ‪(6‬‬
‫טעות שכיחה בתרגילים‪ ,‬בשאלה האחרונה על תנאי ‪ :prompt‬עבור ‪ r ,α ⊆ Q‬מקבלת‬
‫אם קיים ‪ k‬כך שמבקרים ב־‪ α‬בצפיפות ‪ .k‬הבלבול ־ ה‪ k‬אינו פרמטר של האוטומט‪.‬‬
‫חלק הלכו בכיוון של "קיים ‪ k‬כך ש‪ r‬מקבלת אם מבקרים ב‪ α‬בצפיפות ‪ .k‬זה שינוי‬
‫סדר הכמתים‪.‬‬
‫איפה זה בא לידי ביטוי‪ :‬היינו צריכים להוכיח שאין אוטומט עבור ‪ ,∞a‬בגישה השניה‪,‬‬
‫∞‬
‫‪ , bk+1 a‬ומהריצה שלה אפשר‬
‫הניחו שיש אוטומט עבור ‪ ,∞a‬עם פרמטר ‪ ,k‬לקחו‬
‫לפמפם את ‪ .bk‬לפי תשובה ‪ ,1‬היה צריך להסתכל על ‪ ,ababbabbba . . .‬כלומר לכל ‪,k‬‬
‫יש רצף של ‪.b|α|k+1‬‬
‫לפרטים נוספים ־ מאמר ‪ prompt Buchi automata‬באתר של המרצה‪.‬‬
‫בעיות הכרעה‪ :‬דיברנו על ריקנות‪ .‬ראינו אלגוריתם פשוט עבור בוקי )מחפשים מסלול‬
‫מעגלי לקודקוד ב־‪ α‬שישיג מ ‪ .(Q0‬זה נמצא ב־‪ N LOGSP ACE‬ולינארי‪ .‬ל‪N GB‬‬
‫אנחנו רוצים מעגל דומה‪ ,‬רק דרך כל ‪ .Fi‬ראינו כי )‪ ,N RW(n,k) → N BW(n·k‬לכן‬
‫בעזרת הרדוקציה אפשר לפתור בזמן פולינומי‪ .‬כמו כן ב־‪ N LOGSP ACE‬כי אנו‬
‫מנחשים מסלול שזר ל־ ‪ Bi‬וחותך את ‪ .Gi‬סטריט יותר מסובך‪ ,‬כי הרדוקציה היא‬
‫ל־ ) ‪ N BW(n·2k‬והיא אקספוננציאלית‪.‬‬
‫נשים לב כי הבעיה היא ‪ :N LOGSP ACE − hard‬יש רדוקציה מישיגות אליה ־‬
‫בהינתן גרף ‪ ,s, t‬נוסיף ל־‪ t‬חץ שיוצא לקודקוד חדש שיהווה בור מקבל‪ ,‬נתייג את‬
‫הקשתות‪ ,‬ונסמן את }‪ ,Q0 = {s‬ויש לנו אוטומט שבעיית הריקנות שלו זהה לבעיית‬
‫הישיגות‪.‬‬
‫‪2.2‬‬
‫בעיית האוניברסליות‬
‫אוניברסליות‪ ?L (A) = Σω :‬הצעה ראשונה‪ :‬בהינתן ‪ ,A N BW‬נבדוק ריקנות‬
‫ ‬
‫של ‪ .A‬הבעיה היא ש־|‪ A = 2 |A‬אם ‪ A‬הוא ‪ DBW‬ואז האלגוריתם הזה הוא‬
‫ ‬
‫פולינומיאלי‪ .‬אבל אם ‪ A‬הוא ‪ ,A = 2O(n log n) ,N BW‬וזה נותן לנו אלגוריתם‬
‫‪ EXP T IM E‬לבנות את ‪ A‬ולבדוק ריקנות‪ .‬אפשר גם ב־‪ P SP ACE‬אם נבצע‬
‫זאת ‪ .on the y‬מנחשים קודקוד‪ ,‬וממשיכים ממנו הלאה‪ .‬ניתן להראות כי זו בעיית‬
‫‪ ,P SP ACE −hard‬ע"י רדוקציה מבעיית ‪) ALLN F A‬בעיית האוניברסליות של ‪(N F A‬‬
‫‪22‬‬
‫־ תרגיל‪ .‬יש גם רדוקציה גנרית הבאה‪:‬‬
‫בהינתן מ"ט דטרמיניסטית ‪ T = hΓ, Q, δ, q0 , qacc , qrej i‬שפועלת בשטח פולינומיאלי‪,‬‬
‫וקלט ∗‪ ,x ∈ Γ‬נבנה ‪ AT,x N BW‬כך ש־ ‪ AT,x‬אוניברסלי אם"ם ‪ T‬דוחה את ‪ .x‬נזכור‬
‫כי‬
‫}‪δ : Q × Γ → Q × Γ × {L, R‬‬
‫כעת נרצה לבנות אוטומט‪ .‬הרעיון‪ AT,x :‬מקבלת מילה ‪ w‬אם"ם ‪ w‬אינה קידוד של‬
‫ריצה חוקית של ‪ t‬על ‪ x‬או ‪ w‬קידוד של ריצה דוחה של ‪ T‬על ‪.x‬‬
‫אכן‪ AT x ,‬אוניברסלית אם"ם ‪ T‬דוחה את ‪ .x‬כי אם ‪ AT x‬אוניברסלית‪ ,‬כל מילה היא‬
‫אינה קידוד חוקי של ריצה של ‪ T‬על ‪ ,x‬או שהיא ריצה דוחה‪ .‬לכן אין ריצה מקבלת‬
‫של ‪ T‬על ‪ .x‬בכיוון ההפוך אם ‪ T‬דוחה את ‪ ,x‬אין ריצה מקבלת של ‪ T‬על ‪ x‬ולכן ‪AT x‬‬
‫תקבל כל מילה‪.‬‬
‫מימוש‪ .Σ = Γ∪(Γ × Q)∪{#} :‬קונפיגורציה של ‪ T‬תקודד ע"י ‪.γ1 γ2 . . . (γi , q) . . . γs(n) #‬‬
‫אם ‪ ,x = x1 x2 . . . xn‬הקונפיגורציה ההתחלתית תיראה ‪.(x1 , q0 ) x2 x3 . . . xn _ _ . . . _#‬‬
‫אם )‪ ,δ (q0 , x1 ) = (q1 , c, R‬הקונפיגורציה הבאה תקודד ע"י ‪ .c (x2 , q1 ) x3 . . . #‬אם‬
‫שתי קונפיגורציות עוקבות ‪γ1 γ2 . . . (γi , qj ) γi+1 . . . γs(n) #γ1 γ2 . . . (γi−1 , qx ) c, γi+1 . . . #‬‬
‫הן נבדלות בחלון בגודל ‪ 3‬סביב הראש הקורא‪ .‬ניתן להגדיר פונקציה‬
‫‪next : Σ3 → Σ‬‬
‫כך שאם בקונפיגורציה הנוכחית יש חלון בגודל ‪ 3‬שמקודד ע"י ‪ ,σi−1 , σi , σi+1‬בקונפיגורציה‬
‫העוקבת‪ ,‬האות האמצעית בחלון המתאים היא ) ‪.next (σi−1 , σi , σi+1‬‬
‫הגדרת ‪:next‬‬
‫• עבור ‪.next (γ1 , γ2 , γ3 ) = γ2 ,γ1 , γ2 , γ3 ∈ Γ‬‬
‫• עבור ‪ γ1 , γ2 , γ3 ∈ Γ‬ו־‪,q ∈ Q‬‬
‫‪‬‬
‫)‪(γ , q 0 ) δ (q, γ ) = (q 0 , γ 0 , L‬‬
‫‪2‬‬
‫‪3‬‬
‫= )) ‪next (γ1 , γ2 , (q, γ3‬‬
‫‪γ‬‬
‫)‪δ (q, γ3 ) = (q 0 , γ 0 , R‬‬
‫‪2‬‬
‫) ‪next (γ1 , (γ2 , q) , γ3 ) = γ 0 s.t. δ (γ2 , q) = (q 0 , γ 0 , ∆0‬‬
‫באופן דומה ניתן להבדיל בין ‪ #‬וכד'‪.‬‬
‫האוטומט ‪ AT x‬יפעל כך ־ יקבל מילה אם‪:‬‬
‫‪23‬‬
‫איור ‪ :13‬הרכיב המקבל אם הקונפיגורציה ההתחלתית אינה נכונה‬
‫‪ .1‬יש הפרה של הקונפיגורציה ההתחלתית )מילים שלא מתחילות ב־) ‪ (x1 , q0‬הולכות‬
‫למצב מקבל‪ ,‬או אם האות הבאה היא לא ‪ x2‬וכן הלאה(‪ ,‬הרכיב שמזהה את זה‬
‫הוא בגודל ‪.s (n) + 2‬‬
‫‪ .2‬יש הפרה של ‪ .next‬הרכיב מתחיל ומחכה להפרה‪ .‬הפרה היא קריאה של‬
‫‪ ,σ1 , σ2 , σ3‬התקדמות עוד ‪ s (n)−1‬צעדים‪ ,‬ואז קריאה של }) ‪.σ ∈ Σ\ {next (σ1 , σ2 , σ3‬‬
‫זה רכיב בגודל ))‪ ,O (s (n‬ויש צורך ב־ ‪ Σ3‬רכיבים כאלו‪.‬‬
‫‪ .3‬יש בה קונפיגורציה דוחה ־ נקבל אם קראנו תו } ‪.σ ∈ Γ × {qrej‬‬
‫הריצה היחידה שלא תתקבל באיחוד של כל הרכיבים היא הקידוד של הריצה המקבלת‬
‫של )‪ .T (x‬נשים לב כי })‪L (AT x ) = {w | wencode innite accept run of T (x‬‬
‫כאשר ריצה מקבלת נכנסת ללולאה של קונפיגורציות זהות המתאימות ל־‪.next‬‬
‫‪2.3‬‬
‫בעיית הכלת השפות‬
‫אנו רוצים לדעת האם ) ‪ .L (A1 ) ⊆ L (A2‬זו בעיה קשה לפחות כמו אוניברסליות‬
‫וריקנות‪.‬‬
‫אלגוריתם‪ :‬נבנה ‪ A0 N BW‬עבור ) ‪ ,L (A1 ) ∩ L (A2‬ואז ⇔ ) ‪L (A1 ) ⊆ L (A2‬‬
‫∅ = ) ‪ .L (A0‬נשים לב כי |) ‪ .|A0 | = |A1 × exp (A2‬ניתן לבנות את ‪on the y A0‬‬
‫ולכן הבעיה היא ב־‪.P SP ACE‬‬
‫‪24‬‬
‫איור ‪ :14‬הרכיב המקבל הפרה של ‪next‬‬
‫איור ‪ :15‬הרכיב המקבל קונפיגורציה דוחה‬
‫‪25‬‬
‫עבור }‪ ,Σ = {a‬עבור ‪ N BW‬יתקיים ∅ = )‪ L (A‬או ‪ .L (A) = {aω } = Σω‬לעומת‬
‫זאת עבור ‪ L (A) ,N F W‬מגדיר תת־קבוצה של הטבעיים‬
‫})‪{k | k ∈ L (A‬‬
‫זה נובע מכך שבעיית החברות )מקבלת ‪ w, A‬ומכריעה האם )‪ .(w ∈ L (A‬עבור‬
‫‪ w = vuω‬איך בודקים האם )‪ ?w ∈ L (A‬אפשר להגדיר ) ‪ L (Aw‬שמקבלת רק את ‪,w‬‬
‫ולקבוע כי ∅ =‪.w ∈ L (A) ⇔ L (Aw ) ∩ L (A) 6‬‬
‫כ"ב אייר תשע"ג )שעור ‪(7‬‬
‫שבוע הבא יש כנס על שפות ממושקלות‪ .‬אם עד כה דברנו על }‪,L : Σ∗ → {0, 1‬‬
‫אפשר לדבר על ‪ ,L : Σ∗ → R‬ועל אוטומט עם עלות של ריצה‪ .‬יש גם הגדרה של עלות‬
‫ריצה אינסופית )ממוצע(‪ .‬אפשר אוטומט א"ד שלא ידוע אם יש לו אוטומט דטר' שקול‪.‬‬
‫זה לא כריע )אם אפשר לחרצן(‪ .‬נרצה לפרמל איכות ־ חישוב הוא טוב אם הוא מגיע‬
‫בסוף ל־‪ 1‬ולא ל־‪.0‬‬
‫‪3‬‬
‫‪3.1‬‬
‫אוטומטים מעל עצים‬
‫הגדרות ־ עצים‪ ,‬אוטומטים וריצה‬
‫נדבר על עץ מושרש‪ ,‬כאשר הקודקודים הם איברים ב־‪.Σ‬‬
‫נרצה למשל להגדיר את העצים שבמסלול השמאלי שלהם יש ‪.∞a‬‬
‫הגדרה ‪ 3.1‬עבור קבוצה סופית ‪ D‬של כיוונים‪ ,‬נאמר ש־ ∗‪ T ⊆ D‬סגורה לרישות אם‬
‫‪ x · d ∈ T‬עבור ∗‪ x ∈ D‬ו־‪ d ∈ D‬אז ‪ .x ∈ T‬אם ‪ x · d‬במבנה העץ ‪ T‬ו־‪ d‬הוא‬
‫ההתפצלות האחרונה‪ ,‬גם הרישא ‪.x ∈ T‬‬
‫נשים לב כי אם ‪ |D| = 1‬אז העץ הוא שרוך‪ T = D∗ .‬הוא העץ המלא‪.‬‬
‫כעת נרצה לסמן את הקודקודים באותיות של הא"ב ‪:Σ‬‬
‫הגדרה ‪ Σ − labeled D tree 3.2‬הוא זוג ‪ hT, τ i‬כך ש־ ∗‪ T ⊆ D‬הוא ‪ ,D − tree‬ו־‬
‫‪ τ : T → Σ‬ממפה כל קודקוד לאות בא"ב ‪.Σ‬‬
‫השורש של ‪ :T‬הצומת ‪ .ε‬מסלול ב־ ‪ T‬הוא ‪ π ⊆ T‬כך ש־‪ ,ε ∈ π‬לכל ‪ x ,x ∈ π‬עלה‬
‫)לא קיים ‪ d ∈ D‬כך ש־ ‪ (xd ∈ T‬או קיים ‪ d ∈ D‬יחיד כך ש־‪ , x · d ∈ π‬כמו כן‬
‫‪26‬‬
‫‪ π‬סגור לרישות‪ .‬בעץ המלא מפתה לזהות מסלול ‪ π‬עם קבוצת הכיוונים ב־ ‪ Dω‬־ יש‬
‫התאמה חח"ע ביניהם‪ ,‬אבל מסלול זו קבוצה של קודקודים‪.‬‬
‫אם יש לי ‪ ,{a, b} − labeled {0, 1} − tree‬יש לי את העץ עם המסלולים‪ ,‬ו ‪ τ‬שמתייגת‬
‫את הצמתים‪ ,‬אוטומט בוקי מעל עצים ) ‪ (N BT‬יהיה‬
‫‪A = hD, Σ, Q, Q0 , δ, αi‬‬
‫‪2‬‬
‫נניח ש־‪ .|D| = 2‬אזי ‪ .δ : Q × Σ → 2Q‬למשל }‪ .δ (q, α) = {hq1 , q2 i , hq3 , q4 i‬ריצה‬
‫של ‪ A‬על עץ ‪ hT, τ i‬היא ‪ hT, ri‬שהיא ‪ Q − labeled D − tree‬־ מסמנים כל קודקוד‬
‫במצב מ־‪ .(r : T → Q) Q‬כך ש־‬
‫‪ .1‬הריצה מתחילה במצב התחלתי‪.r (ε) ∈ Q0 :‬‬
‫‪ .2‬הריצה מכבדת את פונקציית המעברים‪ :‬לכל ‪,x ∈ T‬‬
‫))‪hr (x · 0) , r (x · 1)i ∈ δ (r (x) , τ (x‬‬
‫)כאשר }‪.(D = {0, 1‬‬
‫עבור ריצה ‪ hT, ri‬ומסלול ‪ ,π ⊆ T‬נגדיר )‪ inf (r | π‬כקבוצת המצבים ש־‪ r‬מבקרת‬
‫בהם ∞ פעמים על המסלול ‪.π‬‬
‫}∞ = |}‪inf (r | π) := {q ∈ Q | |{x ∈ π | r (x) = q‬‬
‫כעת נאמר ש־‪ hT, ri‬מקבלת אם ∅ =‪ inf (r | π) ∩ α 6‬לכל מסלול ‪.π ⊆ T‬‬
‫לדוגמא‪) D = {0, 1} :‬ככה תמיד עד שנאמר אחרת(‪ ,‬ו־}‪ .Σ = {a, c‬אנחנו רוצים‬
‫‪ N BT‬עבור‬
‫})∗( | ‪L = {hT, τ i‬‬
‫כאשר )∗(‪ :‬יש ב־ ‪ T‬מסלול שמופיע בו הרצף ‪.cc‬‬
‫אחד החסרונות של אוטומטים מעל עצים זה שהם קשים לציור‪ .‬נתאר את פונקצית‬
‫המעברים‪ :‬אם נאמר }‪ δ (q0 , a) = {hq0 , q0 i‬זה אומר שממשיכים לחפש את ‪ cc‬גם‬
‫בתת־העץ השמאלי וגם בתת־העץ הימני‪ .‬זה לא מה שאנחנו רוצים‪ .‬נבצע ניחוש‬
‫לא־דטרמיניסטי‪:‬‬
‫}‪δ (q0 , a) = {hq0 , qacc i , hqacc , q0 i‬‬
‫‪27‬‬
‫כאשר ‪ qacc‬הוא "בור מקבל"‪ ,‬כלומר }‪ δ (qacc , σ) = {hqacc , qacc i‬לכל ‪ ,σ ∈ Σ‬ו־‬
‫‪.qacc ∈ α‬‬
‫}‪δ (q0 , c) = {hq1 , qacc i , hqacc , q1 i‬‬
‫}‪δ (q1 , c) = {hqacc , qacc i‬‬
‫)‪δ (q1 , a) = δ (q0 , a‬‬
‫נדגים ריצה של האוטומט לכל מיני עצים‪:‬‬
‫יש קשר בין אוטומט מעל עצים ותורת המשחקים‪ .‬זה משחק בין האוטומט שאומר לאן‬
‫הוא מתקדם‪ ,‬ושחקן נגדי שמקשה עליו איך הוא ממשיך מכאן ואילך‪.‬‬
‫דוגמא‪ N BT :‬עבור ־ קיים מסלול עם ‪ cc‬ובכל המסלולים יש ‪.∞a‬‬
‫באופן כללי‪ ,‬אנחנו יודעים איך יראה אוטומט מעל מילים כאלו‪ .‬צריך לפתוח את זה‬
‫לעץ ־ יש פתיחות אוניברסליות ־ לכל המסלולים‪ ,‬ופתיחות של "קיים מסלול"‪ .‬נשים לב‬
‫כי את הבדיקה של ‪ ∞a‬אנחנו יכולים לדחות לשלב מאוחר יותר‪.‬‬
‫נגדיר את המצבים‪:‬‬
‫• ‪ q0‬־ בודק הכל‪.‬‬
‫• ‪ q1‬־ בודק הכל‪ ,‬ראינו ‪ c‬ראשון‪.‬‬
‫• ‪ q2‬־ בודק ‪ ∞a‬בכל מסלול‪ ,‬קראנו ‪.a‬‬
‫• ‪ q3‬־ בודק ‪ ∞a‬בכל מסלול‪ ,‬קראנו ‪.c‬‬
‫כעת קל לכתוב את פונקצית המעברים‪:‬‬
‫}‪δ (q0 , a) = {hq0 , q2 i , hq2 , q0 i‬‬
‫}‪δ (q0 , c) = {hq0 , q3 i , hq1 , q3 i‬‬
‫)‪δ (q1 , a) = δ (q0 , a‬‬
‫}‪δ (q1 , c) = {hq3 , q3 i‬‬
‫}‪δ (q2 , a) = δ (q3 , a) = {hq2 , q2 i‬‬
‫}‪δ (q2 , c) = δ (q2 , c) = {hq3 , q3 i‬‬
‫ו־} ‪.α = {q2‬‬
‫‪28‬‬
‫הגדרה ‪ 3.3‬נאמר ש־‪ hT, τ i‬הוא עץ ‪ Σ, D‬רגולרי‪ ,‬אם לכל ‪ ,σ ∈ Σ‬השפה‬
‫∗‪ τ −1 (σ) ⊆ D‬היא רגולרית‪.‬‬
‫עץ רגולרי ניתן לתאור ע"י אוטומט ‪) D | Σ − transducer‬משרן(‪ .‬אם ‪,τ : D∗ → Σ‬‬
‫באוטומט דטרמיניסטי כל מילה ב־ ∗‪ D‬מגיע למצב כלשהו באוטומט‪ ,‬וניתן להשרות‬
‫ממנה את ‪.τ‬‬
‫‪3.2‬‬
‫תכונות סגור של אוטומטים מעל עצים‬
‫‪3.2.1‬‬
‫סגור לחיתוך‬
‫עבור ‪ ,A1 , A2 ∈ N BT‬האם קיים ‪ A‬כך ש־) ‪ ?L (A) = L (A1 ) ∩ L (A2‬ב־ ‪N BW‬‬
‫היה לנו אוטומט מכפלה עם שני עותקים‪ .‬נגדיר גם כאן‪:‬‬
‫
‬
‫‬
‫‪A = Σ, Q1 × Q2 × {0, 1} , δ, Q01 × Q02 × {1} , α‬‬
‫‪2‬‬
‫כאשר )}‪δ : (Q1 × Q2 × {1, 2}) × Σ → 2(Q1 ×Q2 ×{1,2‬‬
‫})‪δ (hq1 , q2 , ii , σ) = {hhs1 , s2 , i1 i , ht1 , t2 , i2 ii | (1) , (2) , (3‬‬
‫)‪hs1 , t1 i ∈ δ1 (q1 , σ‬‬
‫‪:‬‬
‫)‪(1‬‬
‫)‪hs2 , t2 i ∈ δ2 (q2 , σ‬‬
‫‪‬‬
‫‪i‬‬
‫∈ ‪qk‬‬
‫‪/ αk‬‬
‫‪k‬‬
‫= ‪ik‬‬
‫‪3 − i q ∈ α‬‬
‫‪k‬‬
‫‪k‬‬
‫‪k‬‬
‫‪:‬‬
‫)‪(2‬‬
‫‪:‬‬
‫)‪(3‬‬
‫ו־}‪.α = Q1 × α2 × {1‬‬
‫האוטומט המושרה על ‪ DBT‬הוא דטרמיניסטי גם הוא‪.‬‬
‫‪3.2.2‬‬
‫סגור לאיחוד‬
‫איחוד של ‪ N BT‬הוא פשוט‪ .‬בהנחה ש־ ‪ Q1 , Q2‬זרים‪ ,‬אפשר להניח אותם זה ליד זה‬
‫)כמו באיחוד א"ד של מילים(‪ .‬הבעיה היא בדטרמיניזם‪.‬‬
‫במודל הדטרמיניסטי ־ } ‪ ,Q0 = {q0‬ו־ ‪ .δ : Q × Σ → QD‬כמו אוטומט מעל מילים‪ ,‬זה‬
‫משרה ריצה יחידה‪ .‬עם אוטומט המכפלה )בלי שני עותקים(‬
‫) ‪ α = (Q1 × α2 ) ∪ (α1 × Q2‬מה יקרה כאן? מסתבר שזה לא סגור לאיחוד‪.‬‬
‫‪29‬‬
‫טענה ‪ 3.4‬אין ‪ DBT‬עבור "יש ‪ a‬בצומת ‪ 0‬או בצומת ‪ .L ="1‬האוטומט הא"ד יקיים‬
‫}‪δ (q0 , σ) = {hqa , qacc i , hqacc , qa i‬‬
‫}‪δ (qa , a) = {hqacc , qacc i‬‬
‫}‪δ (qa , c) = ∅ or {hqrej , qrej i‬‬
‫נשים לב כי השפה היא איחוד של שתי שפות ב־ ‪.DBT‬‬
‫‪‬‬
‫‪a x = 0‬‬
‫הוכחה‪ :‬נניח בשלילה כי ‪ A‬הוא ‪ DBT‬עבור ‪ .L‬עבור העץ עם‬
‫= )‪.τ1 (x‬‬
‫‪c o.w.‬‬
‫נניח כי ‪ ,hT, τ1 i ∈ L .δ (q0 , c) = hq1 , q2 i‬ולכן ‪ A‬עם מצב התחלתי ‪ q2‬מקבל את‬
‫העץ שכולו ‪ .c‬בעץ ‪ τ2‬עם ‪ a‬בקודקוד ‪ .1‬הריצה המקבלת עליו חייבת לעבור עם‬
‫‪ .r (0) = q1 , r (1) = q2‬לכן גם ‪ A‬עם מצב התחלתי ‪ q1‬מקבל את העץ הקבוע ‪ .c‬לכן‬
‫האוטומט ‪ A‬יקבל גם את ‪ .τ3 = c‬כי משני הכיוונים הריצה הנמשכת מקבלת‪ .‬אבל‬
‫∈ ‪.hT, τ3 i‬‬
‫‪/L‬‬
‫כ"ט אייר תשע"ג )שעור ‪(8‬‬
‫תזכורת‪ :‬ראינו עץ ל"קיים ‪ b‬איפה שהוא בעץ"‪δ (q0 , a) = {hq0 , qacc i , hqacc , q0 i} .‬‬
‫ו־‪ δ (qacc , σ) = δ (q0 , b) = hqacc , qacc i‬כאשר } ‪ .α = {qacc‬ראינו שאין אוטומט ‪DBT‬‬
‫עבור שפות מהסוג הזה‪ .‬זה נבע מכך שהיינו צריכים לנחש מסלול‪.‬‬
‫עבור שפה ‪ L ⊂ Σω‬נגדיר ‪ derivable language of L‬ע"י‬
‫}‪der (L) := {hT, τ i | ∀π ⊆ T, τ (π) ∈ L‬‬
‫כלומר כל העצים בהם כל המסלולים הם מילים בשפה‪.‬‬
‫דוגמא‪ ,L = (ab∗ )ω :‬אז )‪ der (L‬הוא כל העצים שבכל המסלולים יש ∞ ‪a‬ים‪.‬‬
‫אם באוטומט ‪ DBW‬עבור ‪ δ (q, a) = q1 , δ (q, b) = q0 ,L‬לכל ‪,q ∈ {q0 , q1 } = Q‬‬
‫באוטומט ‪ AT‬יהיה לנו ‪.δ (q, a) = hq1 , q1 i , δ (q, b) = hq0 , q0 i‬‬
‫טענה ‪ 3.5‬עבור ‪ L (At ) = der (L (A)) ,A DBW‬כאשר ‪ At‬הוא כמו ‪ ,A‬אולם‬
‫‪.δt (q, σ) = hδ (q, σ) , δ (q, σ)i‬‬
‫הוכחה‪ :‬אם ) ‪ ,hT, τ i ∈ L (At‬נתבונן בריצה ‪ hT, ri‬של ‪ At‬על ‪ .hT, τ i‬יהי ‪π ⊆ T‬‬
‫מסלול‪ r (π) ,‬היא ריצה חוקית מקבלת של ‪ A‬על )‪ .τ (π‬לכן כל המסלולים ב־‪hT, τ i‬‬
‫מסומנים במילה שתתקבל ע"י ‪.A‬‬
‫‪30‬‬
‫אם ))‪ ,hT, τ i ∈ der (L (A‬לכל ‪ τ (π) ∈ L (A) ,π ⊆ T‬כלומר כל המסלולים ב־ ‪T‬‬
‫מסומנים במילה שתתקבל ע"י ‪ .A‬נראה שהריצה של ‪ At‬על ‪ hT, τ i‬מקבלת‪ .‬נשים לב‬
‫כי באוטומט דטרמיניסטי‪ ,‬מילים עם אותה רישא‪ ,‬הריצה עליהם מתחילה אותו דבר‪.‬‬
‫מתקיים כי הריצה של ‪ A‬על כל מסלול היתה מקבלת‪.‬‬
‫הגדרת ‪ At‬ל־ ‪:A N BW‬‬
‫)‪δt (q, σ) = δ (q, σ) × δ (q, σ‬‬
‫לדוגמא‪ :‬בשפה של ‪) L = (a + b)∗ bω‬מספר סופי של ‪ .(a‬האוטומט "מנחש" מתי‬
‫מתחיל זנב של ‪ .b‬הטבלה היא‬
‫} ‪δ (q0 , a) = {q0 } , δ (q0 , b) = {q0 , q1 } , δ (q1 , a) = ∅, δ (q1 , b) = {q1‬‬
‫טבלת המעברים עבור ‪ δt‬תהיה‬
‫‪δt‬‬
‫‪a‬‬
‫‪b‬‬
‫‪q0 hq0 , q0 i hq0 , q1 i , hq0 , q0 i , hq1 , q0 i , hq1 , q1 i‬‬
‫‪q1‬‬
‫∅‬
‫‪hq1 , q1 i‬‬
‫קל לראות כי ))‪ L (At ) ⊆ der (L (A‬באופן זהה להוכחה הדטרמיניסטי ־ ריצה מקבלת‬
‫על ) ‪ (T, τ‬ב־ ‪ At‬משרה ריצות מקבלות של ‪ A‬על כל המסלולים‪.‬‬
‫המשימה היא למצוא עץ שבכל מסלול שלו יש רק מספר סופי של ‪ ,a‬ובכל זאת אינו‬
‫מתקבל‪ :‬נבנה עץ בו המסלול השמאלי ביותר הוא ‪ ,bω‬וכל סטיה ימינה בשלב ‪ i‬נותנת‬
‫לנו ‪ a‬בודד וזנב של ‪ .b‬העץ הזה לא יתקבל‪ ,‬כי המסלול הכי שמאלי חייב להיות כל‬
‫הזמן ב־ ‪ ,q0‬כדי לתמוך ב‪ a‬שיגיע מההתפצלויות הימניות שלו‪ .‬לכן ) ‪ L (At‬הוא כל‬
‫העצים שכל מסלוליהם מגיעים לתת־עץ שכולו ‪.b‬‬
‫החסרון של אוטומט א"ד מעל עצים הוא שהוא צריך לנחש מעל כל העתידים האפשריים‪.‬‬
‫במצב כזה‪ ,‬א"ד לא מוסיף לנו הרבה‪.‬‬
‫‪2n‬‬
‫→‪ .N F W −‬מעל }‪ Σn = [n] ∪ {#‬כאשר‬
‫ראינו כי ‪DF W‬‬
‫‪n‬‬
‫‪2‬‬
‫}} ‪Ln = {σ1 , . . . , σk #σk+1 | σi ∈ [n] , σk+1 ∈ {σ1 , . . . , σk‬‬
‫∈ ‪ 122#4‬אולם ‪.122314#3 ∈ L4‬‬
‫למשל ‪/ L4‬‬
‫אנו יודעים כי‪:‬‬
‫‪31‬‬
‫‪ .1‬יש ‪ N F W‬קטן ־ האוטומט ינחש את האות האחרונה‪ ,‬הרכיב שמנחש את הסיומת‬
‫‪ ,1‬נשאר במצב ההתחלתי בקריאת ‪ .2, . . . , n‬אם רואה ‪ 1‬הולך למצב הבא‪ ,‬ושם‬
‫נשאר עד שיראה ‪ #1‬ויקבל )‪ #2‬תתקע ברכיב הזה(‪ .‬זהו אוטומט עם ‪3n + 1‬‬
‫מצבים‪.‬‬
‫‪ .2‬כל ‪ DF W‬חייב להיות עם ‪ 2n‬מצבים לפחות‪.‬‬
‫נקבל כי ) ‪ der (Ln‬הוא כל העצים שכל המסלולים שלהם ב־ ‪ .Ln‬אם יש עץ עם שני‬
‫מסלולים שנגמרים במספרים שונים‪ ,‬אני לא אצליח לנחש את )‪ r (ε‬נכון )נשים לב כי‬
‫טבלת המעברים היא דטרמיניסטית‪ ,‬ואי הדטרמיניזם הוא בכך ש־ ‪ Q0‬הוא בגודל ‪.(n‬‬
‫כ"א סיון תשע"ג )שעור ‪(9‬‬
‫‪4‬‬
‫‪4.1‬‬
‫אוטומטים ומשחקי‬
‫‪And-Or‬‬
‫הגדרות‬
‫יש לנו גרף מכוון‪ ,‬עם תיוג }∨ ‪ .t : V → {∧,‬בכל קודקוד אחד השחקנים בוחר לאן‬
‫ללכת‪ .‬יש כמה תנאי ניצחון אפשריים‪ .‬הראשון הוא בסיסי ־ האם שחקן האו יכול‬
‫להכריח את שחקן הוגם להגיע ממצב אחד למצב אחר‪.‬‬
‫אסטרטגיה עבור ∨‪ fOR : V ∗ VOR → V :‬ובאופן דומה עבור ∧‪.‬‬
‫בהינתן אסטרטגיה ‪ fOR‬של ∨‪ ,‬ו־ ‪ fAN D‬של ∧‪ ,‬ומצב ‪ ,v ∈ V‬יש מסלול ) ‪outcome (v, fOR , fAN D‬‬
‫שאותו יסרוק המשחק שמתחיל מ־‪ v‬ומתקדם לפי ‪.fOR , fAN D‬‬
‫אסטרטגיה ‪ f‬היא חסרת זיכרון ‪ memoryless strategy‬אם היא תלויה רק במצב‬
‫הנוכחי )ולא בכל ההיסטוריה(‪.‬‬
‫עבור תנאי ניצחון הוא חסר זיכרון אם לכל אסטרטגית ניצחון עבורו‪ ,‬יש גם אסטרטגית‬
‫ניצחון חסרת זיכרון‪.‬‬
‫תנאי ניצחון ‪ generalized Buchi‬אינו חסר זיכרון‪ .‬למשל המשחק הבא )ציור( ותנאי‬
‫הקבלה }} ‪ α = {{s1 } , {s2‬האסטרטגיה‬
‫‪‬‬
‫‪s w = u · s‬‬
‫‪1‬‬
‫‪2‬‬
‫= )‪fOR (w · v‬‬
‫‪s o.w.‬‬
‫‪2‬‬
‫‪32‬‬
‫מאוטומט עצים למשחק‬
‫‪4.2‬‬
‫בהינתן ‪ (D = {0, 1}) A = hΣ, Q, δ, Q0 , αi‬נבנה משחק ‪ GA‬כך ששחקן ה־‪ OR‬ינצח‬
‫ב־ ‪ GA‬אם"ם ∅ =‪.L (A) 6‬‬
‫• ‪.VAN D ⊂ Q × Q ,VOR = Q‬‬
‫• )‪ E (q, hs1 , s2 i) ⇔ ∃σ, hs1 , s2 i ∈ δ (q, σ‬וכן ) ‪.E (hs1 , s2 i , q) ⇔ (q = s1 ∨ q = s2‬‬
‫• תנאי הניצחון הוא ‪.α‬‬
‫המשמעות של המשחק‪ ,‬מתחילים מהשורש‪ ,‬שחקן ∨ בוחר איזה מצבים לתת לשני‬
‫הבנים‪ ,‬שחקן ∧ יכול לדרוש ממנו שיראה איך הוא ממשיך מאחת האפשרויות‪.‬‬
‫דוגמא‪:‬‬
‫}‪δ (q, a) = {hq, qi‬‬
‫}‪δ (q, e) = {hq, si , hs, qi‬‬
‫}‪δ (q, b) = δ (s, σ) = {hs, si‬‬
‫הגרף כמו בציור‪ .‬החיצים על הקשתות של שחקן ‪ OR‬אומרות מהי ‪ σ‬שיוצרת את‬
‫הקשת הזו‪ ,‬החיצים על הקשתות של שחקן ‪ AN D‬אומרות האם ‪ q = s1‬או ‪.q = s2‬‬
‫לשחקן ‪ OR‬יש אסטרטגית ניצחון ללכלת ל־‪ ,hs, si‬ומשם ניכנס למעגל‪.‬‬
‫באופן פורמלי אפשר להוכיח שתי טענות‪:‬‬
‫טענה ‪ 4.1‬אם ל־∨ יש אסטרטגית ניצחון )מאחד הקודקודים ב־ ‪ (Q0‬אז ∅ =‪.L (A) 6‬‬
‫הוכחה‪ :‬נבנה עץ וריצה מקבלת עליו‪ .‬בהינתן ‪ fOR : V ∗ VOR → V‬נשים לב כי‬
‫ההסטוריה האפשרית היא מסוג ∗) ‪ ,(VOR · VAN D‬וכי היעד הוא ‪ .VAN D‬לכן ‪fOR :‬‬
‫)‪ (Q · (Q × Q))∗ · Q → Q × Q (×Σ‬כאשר ‪ Σ‬נוספה כי כל מעבר לתיוג ‪ Q × Q‬נעזר‬
‫ב־‪ σ ∈ Σ‬כדי לבנות את העץ‪ fOR (q0 ) = hq1 , q2 , σi :‬אז ‪ .τ (ε) = σ‬אח"כ אם ‪fAN D‬‬
‫בוחר באחד הצדדים‪ ,‬ו־‪ ,fOR (q0 , hq1 , q2 i , q1 ) = hq3 , q4 , θi‬נתייג ‪ ,τ (0) = θ‬וכדומה‪.‬‬
‫טענה ‪ 4.2‬אם ∅ =‪ ,L (A) 6‬יש ל־∨ אסטרטגית ניצחון‪.‬‬
‫הוכחה‪ :‬אם יש לנו ריצה מקבלת על עץ מסויים‪ ,‬אפשר לבנות ממנה אסטרטגית ניצחון‪.‬‬
‫‪33‬‬
‫‪4.3‬‬
‫הכרעת משחקים‬
‫בהינתן משחק ‪ ,G‬מצא את קבוצת הקודקודים ‪ W‬שמהם יש לשחקן ה־∨ אסטרטגית‬
‫ניצחון )יש ‪ fOR‬כך שלכל ‪ fAN D‬מתקיים ש) ‪ outcome (u, fOR , fAN D‬מקיים את תנאי‬
‫הניצחון אם"ם ‪.(u ∈ W‬‬
‫נשים לב שאם לכל מצב יש אסטרטגיה מנצחת משלו‪ ,‬אפשר להרכיב מכולם אסטרטגיה‬
‫משותפת ־ לפי ההתחלה של הסדרות‪.‬‬
‫‪4.3.1‬‬
‫פתרון משחקי ישיגות‬
‫נראה שאם יש אסטרטגיה‪ ,‬יש גם אסטרטגיה חסרת זיכרון‪ ,‬שמשמעותה פשוט הסרת‬
‫חלק מהקשתות )והשארת קשת בודדת לכל קודקוד של שחקן ‪ ,(OR‬וזה עד לניצחון‪,‬‬
‫אם כל המסלולים בגרף שנשאר הם טובים )אסטרטגיה רעה אם קיים מסלול שלא מגיע‬
‫ל־‪.(α‬‬
‫אלגוריתם פולינומיאלי לחישוב ‪) W‬מצבי הניצחון של ∨( ־ האלגוריתם יפעל בצורה‬
‫איטרטיבית‪:‬‬
‫‪ T ) W0 = T .1‬הוא המצבים אליהם אנחנו רוצים להגיע(‪.‬‬
‫‪Wi+1 = {v ∈ VOR | ∃u ∈ Wi , E (v, u)}∪{v ∈ VAN D | ∀u E (v, u) , u ∈ Wi }∪ .2‬‬
‫‪Wi‬‬
‫‪ Wi‬הוא אוסף המצבים שיש אסטרטגיה להגיע אליהם בתוך ‪ i‬צעדים‪ .‬מספר האיטרציות‬
‫הוא הקוטר של הגרף‪ .‬הבנייה הזו גם נותנת לנו אסטרטגיה חסרת זיכרון‪ .‬נשים לב‬
‫שעל כל קשת עוברים פעם אחת‪ ,‬ואפשר מימוש ליניארי אם שמים מונים לכל צומת על‬
‫מספר הקשתות היוצאות‪.‬‬
‫זוהי בעיה קלאסית שהיא ‪.P T IM E − complete‬‬
‫‪4.3.2‬‬
‫פתרון משחק בוקי‬
‫באוטומט שראינו‪ 7, 8 ,‬הם הקודקודים היחידים שמהם אי אפשר להשיג‪ .‬בבעיה‬
‫הנוכחית‪ ,‬אנחנו רוצים להבטיח שיהיו ביקורים אינסופיים בקודקודים המבוקשים‪ ,‬והם‬
‫האידיאלים עבור שחקן ה־∧‪ .‬אפשר לדבר על המשחק הדואלי ־ שחקן ה־∧ רוצה‬
‫להגיע אליהם‪ ,‬וזה אותו הדבר‪ ,‬רק שהפעם זה משחק ‪.co − Buchi‬‬
‫‪34‬‬
‫הסיבוכיות היא עדיין בעיה פתוחה‪ ,‬היה פעם מאמר שהתיימר לפתור בזמן לינארי‪,‬‬
‫אולם הוא לא התפרסם בז'ורנל‪.‬‬
‫נגדיר את )‪ nonempty −reach (S‬כקבוצת המצבים שמהם יש לשחקן ה־∨ אסטרטגיה‬
‫להגיע ל־‪ S‬במסלול לא ריק‪ .‬ניתן לחשב את )‪ N ER (S‬בזמן לינארי כמו קודם‪ ,‬רק‬
‫שמתחילים מ־}‪.W1 = {v ∈ VOR | ∃u ∈ S, E (v, u)}∪{v ∈ VAN D | ∀E (v, u) , u ∈ S‬‬
‫כעת‪ ,‬נגדיר ) ‪ ,B0 = N ER (T‬אלו המצבים שמהם נגיע לפחות פעם אחת ל־ ‪.T‬‬
‫ו־) ‪ Bi+1 = N ER (T ∩ Bi‬־ המצבים שמהם נוכל להבטיח הגעה ל־ ‪ T‬לפחות ‪i + 1‬‬
‫פעמים )באינדוקציה על ‪.(i‬‬
‫בדוגמא שלנו‪B1 = N ER ({2}) = .B0 = N ER ({2, 6}) = {1, 2, 3, 4, 5} ,‬‬
‫}‪ .{1, 2, 4, 5‬מכאן )}‪ B2 = N ER ({2‬והגענו לנקודת שבת‪ .‬זו גם הוכחה לקיום‬
‫אסטרטגיה חסרת זיכרון‪.‬‬
‫הסיבוכיות היא )|‪ .O (|V | · |E‬זו בעיה פתוחה אם אפשר לבצע הכל באיטרציה אחת‪.‬‬
‫פתרון משחקי רבין‬
‫‪4.3.3‬‬
‫ראינו כי יש ‪ .N RWn,k → N BWnk‬עבור ‪ .α = {hGi , Bi i}ki=1‬משחקי רבין גם הם‬
‫חסרי זיכרון‪ ,‬ולכן הם שייכים ל־ ‪.N P‬‬
‫בהינתן עד )אסטרטגיה חסרת זיכרון(‪ ,‬האם קיים מסלול שמקיים את תנאי ‪Streete‬‬
‫הדואלי‪ .‬ריקנות של ‪ Streete‬זה פולינומיאלי‪.‬‬
‫נראה ‪ N P − hardness‬ע"י רדוקציה מ־ ‪:('88) SAT‬‬
‫בהינתן ‪ θ = C1 ∧ . . . ∧ Cm‬כאשר ‪ Ci = li1 ∨ li2 ∨ li3‬ו־} ‪.Lji ∈ {xp , ¬xp‬‬
‫} ‪.VOR = {C1 , . . . , Cm } ,VAN D = {θ, x1 , ¬x1 , . . . , xn , ¬xn‬‬
‫הקשתות הן מסוג‪:‬‬
‫• ) ‪ E (θ, Ci‬לכל ]‪,i ∈ [m‬‬
‫•‬
‫‬
‫‪ E Ci , lij‬לכל ]‪.j ∈ [3‬‬
‫• מכל ‪ xp‬ל־ ‪ Ci‬כך ש־ ‪ ¬xp‬ב־ ‪.Ci‬‬
‫• מכל ‪ ¬xp‬ל־ ‪ Ci‬כך ש־ ‪ xp‬ב־ ‪.Ci‬‬
‫• חוגים עצמיים ל־ ‪.¬xp ,xp‬‬
‫‪35‬‬
‫• }‪{h{xi } , {¬xi }i , h{¬xi } , {xi }i‬‬
‫[‬
‫= ‪.α‬‬
‫‪1≤i≤n‬‬
‫אם ‪ θ‬ספיקה בהשמה כלשהי‪ ,‬נסמן את קודקודי הליטרלים הטובים לפי ההשמה‪ ,‬וכל‬
‫פעם ש־∧ שואל אותי על ‪ Ci‬כלשהו‪ ,‬נלך לאחד מהם‪ .‬נבקר רק בכאלו שמתאימים‬
‫להשמה )אינסוף פעמים(‪ ,‬ולא לאלו שלא מתאימים להשמה‪.‬‬
‫אם יש לי אסטרטגית ניצחון‪,‬‬
‫‪5‬‬
‫אוטומטים מתחלפים‬
‫‪alternating automata‬‬
‫כ"ח סיון תשע"ג )שעור ‪(9‬‬
‫‪ 5.1‬הגדרות‬
‫הסמטניקה של אי דטרמיניזם‪ δ (q, a) = {q1 , q2 , q3 } :‬שמשמעותו ‪ .q1 ∨ q2 ∨ q3‬אפשר‬
‫באוטומט מתחלף לתת כל דרישה בוליאנית כמו ) ‪ ∨ .δ (q, a) = q1 ∨ (q2 ∧ q3‬מציין‬
‫אי דטרמיניזם‪ ,‬ו־∧ מציין ריבוי דרישות )אוניברסליות(‪ .‬המשמעות של הביטוי הקודם‬
‫היא שהסיפא מתקבלת מ־ ‪ ,q1‬או גם מ־ ‪ q2‬וגם מ־ ‪.q3‬‬
‫עבור קבוצה ‪ X‬נסמן ב־)‪ B + (X‬את קבוצת הנוסחאות הבוליאניות החיוביות עם‬
‫אטומים מ־‪(θ = x | θ ∧ θ | θ ∨ θ | true | f alse) X‬‬
‫עבור נוסחא )‪ θ ∈ B + (X‬וקבוצה ‪ Y ⊂X‬נאמר כי ‪ Y‬מספקת את ‪ θ‬אם ההשמה‬
‫‪T x ∈ Y‬‬
‫= )‪ .fY (x‬למשל עבור } ‪X = {x1 , x2 , x3 , x4‬‬
‫} ‪ fY : X → {T, F‬כך ש־‬
‫∈ ‪F x‬‬
‫‪/Y‬‬
‫ו־) ‪ θ = x1 ∧ (x2 ∨ x3‬מספקות את ‪ θ‬הקבוצות } ‪ {x1 , x2‬ו־} ‪ ,{x1 , x3‬וכן כל הקבוצות‬
‫המכילות אותן )סגורות מעלה(‪.‬‬
‫אוטומט מתחלף הוא‬
‫‪A = hΣ, Q, q0 , δ, αi‬‬
‫כאשר )‪.δ : Q × Σ → B + (Q‬‬
‫ריצה של ‪ A‬על מילה ‪ w = w1 w2 . . .‬היא עץ ‪ .Q − labeled N − tree‬הוא לא יהיה עץ‬
‫שלם )דרגת הפיצול בכל קודקוד היא סופית(‪ .‬הוא יהיה ‪ hTr , ri‬כאשר ∗‪ ,Tr ⊂ N‬כך‬
‫ש־‬
‫‪36‬‬
‫‪ ε ∈ Tr .1‬ו־ ‪.r (ε) − q0‬‬
‫‬
‫‬
‫‬
‫‪ .2‬יהי ‪ ,x ∈ Tr‬נתבונן ב־ ‪ .θ = δ r (x) , w|x|+1‬קיימת קבוצה ⊆ ‪Y = s0 , . . . , s|Y |−1‬‬
‫‪ Q‬כך ש־‬
‫)א( ‪ Y‬מספקת את ‪,θ‬‬
‫)ב( ‪.{x · 0, x · 1, . . . , x · (|Y | − 1)} ⊂ Tr‬‬
‫)ג( לכל ‪.r (x · i) = si ,0 ≤ i ≤ |Y | − 1‬‬
‫דוגמא‪ .δ (q0 , a) = q1 ∧ (q2 ∨ q3 ) :‬ריצות אפשריות על ‪ .a (bc)ω‬אנחנו מתחילים מ־‬
‫‪ .r (ε) = q0‬משם אפשר להמשיך ל־} ‪ {x1 , x2 } , {x1 , x3‬או } ‪) {x1 , x2 , x3‬דרגת פיצול‬
‫‪ 2‬או שלוש ־ אלא אם כן נדרוש קבוצה מינימלית(‪.‬‬
‫המשמעות של ‪ δ (q, a) = true‬היא שאין צורך שיהיו ל־‪ q‬בנים בעץ‪ .‬אין ריצה‬
‫שמשתמשת ב־‪) δ (q, a) = f alse‬היה אפשר להשתמש בבור מקבל ובור דוחה במקום‬
‫זה(‪.‬‬
‫‪ hTr , ri‬מקבלת אם כל המסלולים האינסופיים מבקרים ב־‪ α‬אינסוף פעמים )מסלולים‬
‫שהסתיימו ב־‪ true‬הם גם מקבלים(‪.‬‬
‫מילה ‪ w‬מתקבלת אם קיימת ריצה מקבלת על ‪.w‬‬
‫דוגמא‪) Ln = {w | ∀i ∈ Σ, ii ∈ w} ,Σn = [n] :‬כלומר הרצף ‪ ii‬מופיע ב־‪ .(w‬אוטומט‬
‫‪ N BW‬עבור ‪ Ln‬הוא אקספוננציאלי ב־‪) n‬צריך לזכור אלו רצפים כבר היו(‪ABW .‬‬
‫דורש ‪ 2n + 1‬מצבים‪ ,‬כאשר ‪ q0‬הוא מצב התחלתי‪ q2i−1 , q2i ,‬אורבים ל־‪.ii‬‬
‫‪q2j−1‬‬
‫^‬
‫∧ ‪δ (q0 , i) = q2i‬‬
‫‪j6=i‬‬
‫‪δ (q2i−1 , i) = q2i‬‬
‫‪δ (q2i , i) = true‬‬
‫)‪δ (q2i , j) = δ (q2i−1 , j) = q2i−1 (if j 6= i‬‬
‫אם )‪ E (xists‬מציין א"ד‪ ,‬ו־)‪ ∀ (ll‬מציין אוניברסליות‪ ∅ ,‬מציין דטרמיניזם ‪E + A‬‬
‫מציין מתחלפים‪.‬‬
‫‪37‬‬
‫‪5.2‬‬
‫‪5.2.1‬‬
‫כוח ההבעה של אוטומטים מתחלפים‬
‫‪.AF W → N F W‬‬
‫תנאי הקבלה של ‪ AF W‬הוא שכל הקודקודים ברמה הסופית הם מצבים מקבלים )ב־‬
‫‪ .(α‬ניתן לבצע את זה בצורה דומה לחרצון‪ .‬מאוטומט ‪ E + A‬עוברים לאוטומט ‪.E‬‬
‫
‬
‫‬
‫‪0‬‬
‫אם ‪ A = hΣ, Q, δ, q0 , αi‬נייצר ‪ A = Σ, 2Q , δ 0 , {q0 } , α0‬כאשר‬
‫(‬
‫)‬
‫^‬
‫‪δ 0 (S, σ) = T | T satisf y‬‬
‫)‪δ (s, σ‬‬
‫‪s∈S‬‬
‫ו־ ‪ .α0 = 2α‬אם נרצה ‪ AF W → DF W‬אפשר לבצע חרצון של ‪ ,N F W‬ומרחב‬
‫‪Q‬‬
‫המצבים יהיה ‪ .22‬נראה חסם תחתון של ‪.2Exp‬‬
‫משפחה ‪ L1 , L2 , . . .‬של שפות כך ש־‬
‫‪ .1‬ל־ ‪ Ln‬יש ‪ AF W‬בגודל )‪.O (n‬‬
‫‪n‬‬
‫‪ DF W .2‬המינימלי עבור ‪ Ln‬צריך ‪ 22‬מצבים‪.‬‬
‫}‪ Ln = (0 + 1 + #)∗ #w# (0 + 1 + #)∗ $w .Σ = {0, 1, #, $‬כך ש־ ‪.w ∈ (0 + 1)n‬‬
‫למשל‬
‫‪01##0110#000#01110#010##0$000 ∈ L3‬‬
‫אוטומט יהיה דאבל־אקספוננט כי בבואו לקרוא את ה־‪ $‬ה־ ‪ DF W‬צריך לזכור תת‬
‫קבוצה של וקטורים ב־ ‪.(0 + 1)n‬‬
‫אוטומט מתחלף ב־) ‪ :O (n2‬כל פעם שנראה ‪ #‬ננחש האם זו המילה שהולכת להופיע‬
‫בסוף‪ .‬בניחוש הנוכחי‪ ,‬אם נסמן ‪ ,w = σ1 . . . σn‬הוא ישלח עותק שיבדוק את האות‬
‫הראשונה פה ואחרי ה־‪ .$‬עותק נוסף יבדוק את האות השניה‪ .‬כל עותק כזה דורש‬
‫)‪ O (n‬מצבים‪ ,‬ואנחנו צריכים )‪ O (n‬עותקים‪.‬‬
‫איך אפשר לרדת ל־)‪ ?O (n‬אפשר להשתמש בא"ב עשיר ]‪ .Σ × [n‬יש לנו מקביליות‬
‫חסרת שיתוף פעולה בין העותקים‪ .‬אפשר לחשוב על מודלים חזקים יותר של תיאום בין‬
‫העותקים ־ עותקים שיכולים לפזול הצידה‪ .‬דרך לבדיקה היא כמה מצבים נחוצים כדי‬
‫לזהות את השפה } ‪ .Ln = {an‬עבור ‪ DF W‬יש צורך ב־‪ n + 1‬מצבים‪ .‬עבור ‪N F W‬‬
‫√‬
‫אותו הדבר‪ .‬עבור ‪ U F W‬אפשר לבצע עם ‪ n‬מצבים‪ ,‬ועבור ‪ AF W‬אפשר לפי משפט‬
‫השאריות הסיני בעזרת ‪ log n‬מצבים )מאמר באתר הבית של המרצה(‪.‬‬
‫‪38‬‬
‫‪D‬‬
‫‪E‬‬
‫‪˜ q, α‬‬
‫‪A˜ = Σ, Q, δ,‬‬
‫קל לראות כי ‪ AF W‬סגור לשלילה‪ .‬עבור ‪ A AF W‬אפשר לעבור ל־ ˜‬
‫כאשר ˜‪ δ‬ממירים ∨ ‪ ∧,‬ו־ ‪ T, F‬והופכים את תנאי הקבלה )ההוכחה הפורמלית עוברת‬
‫דרך שריגים‪ ,‬אבל קל להשתכנע אינטואיטיבית(‪.‬‬
‫אין ‪ N CW‬עבור ‪∞a‬ים )ראינו כי אין ‪ DBW‬עבור ‪ .(¬∞a‬נשים לב כי = ‪N CW‬‬
‫‪.U BW‬‬
‫ננסה למצוא ‪ U CW‬עבור ‪ .∞a‬זה אותו אוטומט של ‪ N BW‬עבור ‪ ¬∞a‬עם מעבר‬
‫לבור דוחה מהמצב המקבל‪ .‬נקבל ‪δ (q1 , b) = q1 .δ (q0 , b) = q0 ∧ q1 ,δ (q0 , a) = q0‬‬
‫ו־ ‪ .δ (q1 , a) = T‬לכן התחלפות מוסיפה לכוח הבעה של ‪.Co − Buchi‬‬
‫לךח\‬
‫‪39‬‬