אוטומטים ושפות פורמליות תרגולים מבוסס על תרגולים של מר גולדגביכט עומר, אוניברסיטת בר אילן 2012. שיעור 1 הגדרות: א"ב: אוסף סופי ולא ריק של סימנים/אותיות/תווים. נסמן אותו באות. דוגמאות: 9},... 1,,{0, {א,..,. ת} מחרוזת/מילה: מילה הינה סדרה סופית של סימנים מא"ב כלשהו. למשל מעל {א,...,ת}. נסמן אותה ב w. מילה ריקה: מילה זו היא סדרה של 0 תווים ונסמן אותה ב ε. אורך מילה: מספר התווים שיש במילה. נסמן את האורך של מילה ב w. שרשור מילים: יהיו w 1, w 2 מילים מעל א"ב. אזי w = w 1 w 2 נקרא שרשור של w 1, w 2 למשל: w 2 = b, w 1 = ab אזי.w = abb העלאה של א"ב בחזקה: עבור נתון נגדיר: n קבוצת כל המילים מעל באורך n. 0 = ε, 1 = {0, 1}, 3 למשל: 111} {000, 001, 010, 011, 100, 101, 110, = : ( = n=0 n קבוצת כל המילים מעל א"ב. (נשים לב:... 2 1 0 = שפה: זוהי תת קבוצה של מילים מתוך. (נשים לב כי גם וגם הן שפות) 1
אות: תו ששייך לא"ב ונסמנוב: σ. מס' המופעים של σ ב w הוא:( w ) σ# הערה: אם לא מצויין במפורש, ε לא חייב להיות שייך לשפה! כמו כן, {ε} פעולות על שפות פעולות שאפשר לעשות על קבוצות: חיתוך, איחוד, חיסור, משלים, הפרש סימטרי וכו' 2, L שרשור ) 2 1 ( 2 L 1 L מוגדר באופן 1 L ו 2 1 בנוסף נגדיר שרשור שפות כך: יהיו הבא: } 2 L 1 L 2 = {w = w 1 w 2 w 1 L 1, w 2 L L L 1 L 2 = {00, 0a, 0b, 10, 1a, 1b}, 1 = {0, 1} L 2 = {0, a, b} דוגמאות: = {0, 1} = {0, a, b}(1 1 2 (2 לכל שפה L = L = :L (3 לכל שפה L ε = ε L = L :L הערה: נשים לב ששרשור איננה פעולה קומטטיבית! חזקות של שפות: לכל L, נגדיר באופן רקורסיבי: L 0 = {ε} L n = {w = w 1 w 2... w n 1 i n, w i L} כלומר, L 1 = {L} L n = L n 1 L L = n=0 נגדיר: קליני: L n דוגמאות: (1 {0} = L L = { 0 i i 0 }?L שייכת ל w = aabaab האם = {a, b} L = {a, ab} (2 w L 4 n=0 כן: L = = {ε} (3 L + = L n n=1 נגדיר + L : מתי + L?L = אם ε L אז L.L + = 2
תרגיל יהיו L 1, L 2, L 3 שפות מעל הוכח או הפרך: L 1 L 2 L 3 = (L 1 L 2 ) (L 1 L 3 ) (1 הפרכה: {b} L 1 = {a, b}, L 2 = {a}, L 3 = L 1 L 2 L 3 = {ab} (L 1 L 2 ) (L 1 L 3 ) = }{{}}{{} L 1 (L 2 L 3 ) = L 1 L 2 L 1 L 3 (2 הוכחה: תהי ) 3 w L 1 (L 2 L קיימים z w = yz :y, ומתקיים: ((z L 3 y L 1 ) (z L 2 y L 1 )) ((z L 3 z L 2 ) y L 1 ) ) 2 (w L 1 L 2 L 1 L 3 ) (w L 1 L 3 w L 1 L כנדרש. (L 1 L 2 ) L 3 = L 1 L 3 L 2 L 3 (3 הפרכה 1 (עם שפות סופיות): a} {a, b, c}, L1 = {a, b, c}, L 2 = {a, c}, L 3 = {ba, = (L 1 L 2 ) L 3 = {cba, ca} L 1 L 3 L 2 L 3 = {abba, aba, cba, ca} {aba, aa, cba, ca} = {aba, cba, ca} הפרכה :2 (עם שפות אינסופיות):, = 3, L1 = {0 n n is even}, L 2 = {0 n n is odd}, L {0} = (L 1 L 2 ) L 3 = L 3 = L 1 L 3 L 2 L 3 = L 2 L 3 הסבר: מכיוון ש L 2, L 3 אינן קבוצות ריקות, שרשור L 2 L 3 אינו קבוצה ריקה ולכן 3 L 2 L reverse (σ 1 σ 2... σ n ) = { ε n = 0 הגדרה: נגדיר פונקציה : reverse באופן הבא: > 0 n σ n σ n 1... σ 1 נסמן בקיצור עבור מילה.w R = reverse (w),w תרגיל: הוכח: לכל y x, מתקיים (xy) R = y R x R 3
הוכחה: אם x = ε אזי x R = ε ומתקיים (xy) R = (y) R = y R ε = y R x R אם y = ε אזי כמו מקודם. אחרת x, y ε ונסמן y = y 1 y 2... y m, x = x 1 x 2... x n ומתקיים: (xy) R = (x 1 x 2... x 2 y 1 y 2... y m ) R = y m y m 1... y 1 x n x n 1... x 1 = y R x R כנדרש. תרגיל: תנו דוגמה לקבוצה אינסופית A של שפות מעל הא"ב {1,0} = כל שמתקיימים התנאים הבאים: 1) כל חיתוך של מס' סופי של שפות אינו ריק. 2) קיימת תת קבוצה (אינסופית) של A כך שחיתוך השפות בה הוא ריק. פתרון: נגדיר k} L k = {0 n n ו.}.., 2 A = {L k } = {L 0, L 1, L k=0 הוכחת תנאי :1 נתסכל בתת קבוצה סופית של A = {L i1, L i2,..., L im } A A, A נניח בה"כ ש i m האינדקס הגדול ביותר. אזי חיתוך כל איברי A הוא } m L im = {0 n n i ואכן אינו ריק, כלומר הוא L L A הוכחת תנאי 2: אזי קיימת L נניח בשלילה ש.A נסתכל בתת קבוצה אינסופית כלשהי A מכיוון ש A אינסופית אזי קיים j > i כך ש A L A L j 0 i מילה (i 0)w = 0 i ב L A אבל לפי ההגדרה של 0 i / L j, L j בסתירה לכך ש L L A (למעשה הוכחנו משהו יותר חזק, שלכל תת קבוצה אינסופית חיתוך השפות הוא ריק, ולא רק קיום תת קבוצה כזו) שיעור 2 L = L n n=0 תזכורת: תרגיל: הוכח: L (L ) = 4
כיוון א': L (L ) יהי ) (L x אזי קיים,x (L ) n :n = נשים לב כי x = y 1... y n כך ש L i n,y i = 1 לכל y i קיים = y i L mi :m i z ij כך ש L y i = z i1 z i2... z imi n x L i=1 m i = k= }{{} m i i=1 m i L k n=0 1 ) (L x (L ) =x L = כדרוש. L n = = x = z 11 z 12... z 1m1 z z... z 21 22 2m2... z }{{}}{{} z... z n1 n2 nmn = }{{} y 1 y 2 y n n=0 x L =L כיוון ב': ) (L. L יהי L (L ) n = (L ) = x אוטומט סופי דטרמיניסטי נקרא גם אס"ד, מוגדר ע"י החמישייה δ}, Q, q 0, F, { כאשר: זהו הא"ב, Q רשימת מצבים, q 0 מצב התחלתי, F Q קבוצת מצבים מקבלים ו δ פונקציית המעבר δ : Q Q כך ש q δ (q, σ) = מציין שאם נמצאים במצב q וקוראים את האות σ, עוברים למצב q. = {a, b} Q = {q 0, q 1 } q 0 F = {q 0 } דוגמא: Q\ a b q 0 q 1 q 1 את δ אפשר לייצג בטבלה באופן הבא: q 1 q 0 q 0 האוטומט דטרמיניסטי, ולכן לכל מצב q Q ולכל אות σ מוגדר מעבר (σ δ,q) δ (q, ε) = q הרחבה של δ למילים: נגדיר δ : Q Q באופן רקורסיבי: σ) δ (q, wσ) = δ (δ (q, w), שפת האוטומט: השפה שהאוטומט מקבל. מילה w מתקבלת ע"י אס"ד A אםם δ (q 0, w) F לכן השפה ש A מקבל היא: } F.L (A) = {w δ (q 0, w) בדוגמה הקודמת 0} = mod2 L (A) = {w w תרגילים: בנה אס"ד מעל {b,a} = עבור השפות הבאות: F = {q 1 } את המצב המקבל בדוגמה הקודמת להיות (נהפוך L 1 = {w w mod2 = 1} (1 L 2 = {w w contains the sequence ab } (2 5
L 3 = { wab w (w ends with the sequence ab ) } (3 L 4 = { w w (w doesn t ends with the sequence ab ) } (4 נשים לב כי. L 4 = L 3 = L 3 נבנה את האס"ד כך: Q L4 = Q L3, F L4 = Q L3 F L3 ולכל σ δ L3 (q, σ) = δ L4 (q, σ) :q Q, L 5 = { waσ w, σ } (5 L 6 = { σ 1 wσ 2 w, σ 1, σ 2, σ 1 σ 2 } (6 L 7 = {w w mod3 = 1} (7 L 8 = w #a (w) mod2 = 1 #b (w) mod2 = 0 }{{} (8 number of appearances = {a, b, c}, L 9 = { a i b j c k i, j, k 0 } L 10 = { a i b j c k i, j, k 1 } (9 F A = כך ש A כל אס"ד. L 10 = (10 (11 {ε} q 0 L = מקבל, וכל קלט הולך ל "מלכודת". = L q 0. מקבל, ומחזיר לעצמו. (12 שפה רגולרית: כך שפה L אשר קיים אס"ד A כך ש L L (A) = נקראת שפה רגולרית. ניתן לומר כי L רגולרית אםם קיים אס"ד A כך ש L L. (A) = לכן, כל השפות שראינו בתרגול על אס"ד הינן שפות רגולריות. שיעור 3 אוטומט מכפלה הרעיון הוא שאם L 1, L 2 שפות רגולריות מעל ו A 1, A 2 הם אס"ד המקבלים אותן בהתאמה, אזי ניתן לבנות אס"ד A כך שיתקיים L (A) = L 1 L 2 6
נראה כיצד לבנות אוטומט A כזה נרצה לבנות אס"ד A המחקה את פעולת A 1 ו A 2 בו זמנית על כל מילת קלט. מצבי A יהיו הזוגות ) A2 q) A1, q כאשר q A1 Q A1 ו.q A2 Q A2 ממצב ) A2 (q A1, q ב A נעבור למצב ) A2 (p A1, p ב A עם קריאת הקלט σ אםם מתקיימים התנאים הבאים:.δ A2 (q A2, σ) = p ו A2 δ A1 (q A1, σ) = p A1 q A2 F A2 (וגם: עבור q A1 F A1 וגם המצבים המקבלים באוטומט יהיו כל הזוגות ) A2 (q A1, q המקיימים חיתוך) A 1 =, QA1, q, F 0A1 A 1 δ A1 באופן פורמלי: A 2 =, QA2, q, F 0A2 A 2 δ A2 A =, QA, q 0A, F A δ A, q A1 Q ולכל A1 σ ולכל F A = F A1 F A2, q 0A = ( ) כאשר q 0A1, q 0A2, QA = Q A1 Q A2 q A2 Q A1 מתקיים: δ A ((q A1, q A2 ), σ) = (δ A1 (q A1, σ), δ A2 (q A2, σ)) L 1 = {w #1 (w) mod2 = 1} דוגמה: 1} {0, =, 000} L 2 = {w w contains substring א) בנה אס"דים המקבלים את L 1, L 2 ב) בנה אס"ד מכפלה המקבל את L 1 L 2 ג) בנה אס"ד מכפלה המקבל את L 1 L 2 פתרון: במחברת הערה: אוטומט מכפלה לא מבטיח מס' מינימלי של מצבים. תרגיל: הוכח כי } 1 i L 1 = { a i b i לא רגולרית. 7
הוכחה: ראינו כי השפה } 0 i L = { a i b i לא רגולרית (בהרצאה). נניח בשלילה ש L 1 רגולרית אזי מסגירות תחת איחוד: {ε} L 1 רגולרית, כי {ε} רגולרית (ראינו כבר). אבל L 1 {ε} = { a i b i i 0 } = L וזו סתירה לכך ש L לא רגולרית. טענה: השפות הרגולריות לא סגורות תחת איחוד אינסופי. הוכחה: נניח בשלילה שכן. יהי.n N נגדיר את השפה } n, L n = {a n b מתקיים ש L n רגולרית. תהי n {a n b לא רגולרית. n רגולרית, סתירה לכך ש { 0 L לפי ההנחה, L = L n = {a n b n n 0} n=0 טענה: השפות הרגולריות לא סגורות תחת חיתוך אינסופי. הוכחה: נניח בשלילה שכן. יהי n. N נתבונן ב { L, n = a} n b n מתקיים ש L n רגולרית. לפי סגירות תחת השלמה, גם השפה: } n L n = {a n b n } = {a n b רגולרית. L = n=0 כעת נגדיר: 0} n L n = {ε} { a 1 b 1} { a 2 b 2}... = {a n b n n 0} = {a n b n אזי לפי ההנחה שלנו, L רגולרית, ולכן (שוב מסגירות תחת השלמה) {0 n L = a} n b n רגולרית, וזו סתירה. אוטומט סופי לא דטרמיניסיטי (אסל"ד) אסל"ד מוגדר ע"י חמישייה δ}, Q, q 0, F, { כאשר: Q, F, q 0, כמו באס"ד ופונקציית המעברים δ מוגדרת: δ : Q 2 Q כלומר } r δ (q 1, σ) = {q 1,..., q מציין שאם נמצאים במצב q וקוראים את האות σ אז }{{} P (Q) ניתן לעבור לכל אחד מהמצבים } r.{q 1,..., q ההרחבה של δ למילים מוגדרת כך: δ : Q 2 Q (לכל (δ (q, ε) = {q} :q Q ולכל,q Q δ (q, wσ) = δ (q, σ) σ, w q δ (q,w) זו ההגדרה של אסל"ד ללא מעברי ε. מעברי ε: מעבר בו ניתן לעבור ממצב למצב ללא קריאת אות. כלומר, δ,q) (ε = p (כאשר p) q הינו מעבר ε. כל אסל"ד שבו מותרים מעברי ε ניתן להמיר לאסל"ד שקול ללא מעברי ε, לכן אנו נשתמש באסל"ד עם מעברי.δ ובהתאם δ : Q ( {ε}) 2 Q כלומר,.ε לכן אצלנו (w δ,q) יהיה אוסף כל המצבים שניתן להגיע אליהם מ q לאחר קריאת המילה w תוך התחשבות בכל מעבר ε אפשרי. שפת האוטומט L (A) = { w δ (q 0, w) F } אסל"ד. A כלומר: אוסף המילים שעבורן קיים חישוב (ריצה על האוטומט) המסתיים במצב מקבל. 8
מספר הבדלים בין אס"ד לאסל"ד 1) באסל"ד לא חובה לתת פונקצית מעברים מלאה לכל מצב. 2) באסל"ד ניתן להגדיר מעברי ε, בהם המעבר נעשה ללא קריאת תו. 3) באסל"ד ניתן להגדיר עבור מצב ואות מסויימים מס' מעברים (כלומר מעברים למצבים שונים) דוגמא: תהא } w L = { w1 א) בנה אס"ד המקבל את L. ב) בנה אסל"ד המקבל את L. פתרון: במחברת. שימו לב: לכל מילה בשפה צריך להיות חישוב שמסתיים במצב מקבל. ולכל מילה שלא בשפה לא קיים חישוב שמסתיים במצב מקבל. דוגמאות במחברת שיעור 4 משפט: יהי A אסל"ד, אזי קיים A אס"ד כך ש ( A ). L A) ) = L ראינו בהרצאה כי ניתן לבנות A כנ"ל שקבוצת מצביו היא קבוצת החזקה של מצבי A. הערה: בנייה זו אינה מבטיחה מס' מינימלי של מצבים ויש באוטומט החזקה QA 2 מצבים שזה חסם עליון למס' המצבים. דוגמה נתון האסל"ד הבא: צייר אס"ד שקול לו. Q A = {q 0, q 1, q 2 } ציור במחברת באסל"ד שציירנו יש 6 מצבים. שאר מצבי האוטומט החזקה: } 1 q} 1, q 2 q},{ 0, q לא היו נחוצים משום שלא ניתן היה להגיע אליהם מהמצב ההתחלתי. 9
ביטויים רגולריים הגדרה: אחת השיטות לייצוג של שפות, היא ע"י ביטוי רגולרי. לכל ביטוי רגולרי מתאימה שפה בהינתם א"ב, ביטוי רגולרי הוא מילה מעל הא"ב {,,(,),, } השייך לשפה המוגדרת כך: 1) וכל איבר ב הוא ביטוי רגולרי 2) אם α ביטוי רגולרי, אז גם α הוא ביטוי רגולרי 3) אם,α β הם ביטויים רגולריים אז גם α β ביטוי רגולרי 4) אם,α β הם ביטויים רגולריים אז גם α β ביטוי רגולרי סדר פעולות דוגמה: כך נוכל לצמצם את מופעי הסוגריים בביטוי. קליני קודמת לשרשור, שרשור קודם לאיחוד. ((a (b )) (b (a ))) (ab ba ) שרשור נרשום בפשטות כרצף של תווים. דוגמה: 010 0) 1 (0 = r סמנטיקה של ביטויים רגולריים: L (r) = משמעו r = (1 L (r) = {σ} משמעו r = σ (2 L (r) = L (r 1 ) L (r 2 ) משמעו r = (r 1 r 2 ) (3 L (r) = L (r 1 ) L (r 2 ) משמעו r = (r 1 r 2 ) (4 L (r) = (L (r 1 )) משמעו r = r 1 (5 דוגמה (1 1} {0, =, וביטוי רגולרי 11) (01 10) (0 = r זהו השפה 1011} {001, 011, 1001, = (r) L (a b c ) :L ביטוי רגולרי עבור, L = { a i b j c k i, j, k 0 } (2 משפט L (r) = L כך שמתקיים r שפה רגולרית אםם קיים ביטוי רגולרי L 10
הוכחה: (= ) קיים אס"ד A כך ש L L (A) = ( =) קיים אסל"ד A כך ש L L (A ) = תרגיל תהא L שפה רגולרית. נגדיר } L w R ) L R = { w R w מציין (w) (reverse הראה שגם השפה L R רגולרית. הוכחה: יהי r ביטוי רגולרי כך ש L L (r) = (קיים כזה, כי L רגולרית). נראה כי לשפה L R יש ביטוי רגולרי r כך ש L (r ) = L R ונסיק מכך שגם L R רגולרית. הוכיח זאת באינדוקציה שלמה על האורך של r. בסיס = 1 r, מכאן ש = r או.r = σ בשני המקרים L R = L ומכאן r = r הוא ביטוי רגולרי המתאר את.L R הנחת האינדוקציה נניח שלכל k < n 1, אם L שפה עבורה קיים ביטוי רגולרי r באורך k, כך ש L (r ) = L R כך ש r אזי קיים ב"ר,L (r) = L הוכחת צעד האינדוקציה יהי r ביטוי רגולרי (r) L = L ו n r. = מכיוון ש 1 > n r = נפריד לשלושה r = (r 1 r 2 ) מהצורה: r (1 מקרים. (2 r מהצורה: ) 2 r = (r 1 r r = (r1) מהצורה: r (3 מקרה 1: נבחין כי r 1, r 2 מרכיבים את r ושניהם באורך 1 לפחות ואילו r מכיל תווים נוספים. מכאן, L (r 1) = L (r 1 ) R, L (r 2) = עבורם מתקיים r 1, לפי הנחה קיימים ביטויים רגולרים r 2. r 1, r 2 < n.r = (r 1 r 2) נסמן.L (r 2 ) R טענה: L (r ) = L R הוכחה: כדי להראות, L (r ) = L R נראה כי ) (r.w L w R L w L w L (r) = L (r 1 r 2 ) = }{{} semantics L (r 1 ) L (r 2 ) w L (r 1 ) w L (r 2 ) w R L (r 1) w R L (r 2) w R L (r 1) L (r 2) = L (r 1 r 2) = L (r ) }{{} assumption מקרה :2 כמו במקרה הקודם, לפי הנחה קיימים r 1, r 2 עבורם מתקיים.L (r 1) = L (r 1 ) R, L (r 2) = L (r 2 ) R נסמן 1).r = (r 2 r (נשים לב כי הפכנו את הסדר!) 11
טענה: L (r ) = L R הוכחה: כדי להראות, L (r ) = L R נראה כי ) (r.w L w R L w L w L (r) = L (r 1 r 2 ) }{{} = L (r 1 ) L (r 2 ) semantics w = w 1 w 2 : w 1 L (r 1 ) w 2 L (r 2 ) }{{} assumption+reverse w R = w R 2 w R 1 : w 1 L (r 1) w R 2 L (r 2) w R L (r 2) L (r 1) = L (r 2r 1) = L (r ) נסמן כמו במקרה הקודם, לפי הנחה קיים ביטוי רגולרי r 1 עבורו מתקיים.L (r 1) = L (r 1 ) R מקרה :3.r = (r 1 ) טענה: L (r ) = L R הוכחה: כדי להראות, L (r ) = L R נראה כי ) (r.w L w R L w L w L (r) = L (r 1 r 2 ) }{{} = (L (r 1 )) semantics w = w 1 w 2... w k : i (1 i k) w i L (r 1 ) }{{} assumption+reverse w R = wk R... w1 R, i (1 i k) wi R L (r 1) w R (L (r 1)) = L (r 1 ) }{{} = L (r ) semantics תרגיל א) מצא ב"ר המגדיר את שפת האסל"ד: (במחברת) ב) צייר אסל"ד המקבל את השפה ( (010 101) ( L תרגילים כתבו ביטוי רגולרי המציין את השפות הבאות מעל {1,0} = 12
א) שפת המילים המכילות 10 כתת מילה. פתרון: 0) (1 10 0) (1 ב) שפת המילים המסתיימות ב 11. פתרון: 11 0) (1 ג) שפת המילים שאורכן זוגי. פתרון: 0)) (1 0) ((1 ד) שפת המילים בהן יש בדיוק 1 פעם אחת. פתרון: 10 0 ה) השפה 1} (w).l = {w #a (w) = #b (w) for all x=prefix of w: #a (w) #b (מעל = ({a, b} פתרון: ba) (ab שיעור 5 לימת הניפוח אם Lרגולרית, אזי קיים קבוע N כך שלכל w L שמקיימת w N קיימת חלוקה למילים z x, y, כך ש: wומתקיימים: = xyz ( y 1) y ε.1 xy N.2 i לכל 0 xy i z L.3 משפט: L רגולרית = L מקיימת את תנאי למת הניפוח נשים לב כי הכיוון השני לאו דווקא נכון. הערה: לימת הניפוח תופיע במבחן. 13
רעיון הוכחת אי רגולריות של שפה L ע"י למת הניפוח נניח בשלילה ש L רגולרית ונרצה להראות סתירה ללמת הניפוח. כדי להראות סתירה, יש להראות כי: לכל N טבעי, קיימת מילה w N,w L כך שלכל חלוקה אפשרית w = xyz קיים 0 i שעבורו xy i z / L תרגיל: הוכח שהשפה (w)} L = {w #a (w) = #b איננה רגולרית (בעזרת למת הניפוח) פתרון: נניח בשלילה כי L רגולרית. יהי n הקבוע המובטח מלמת הניפוח. נבחר את המילה w. = a n b n מתקיים w n w, L ולכן לפי למת הניפוח קיים, פירוק w = xyz כך ש: y ε.1 xy n.2 i לכל 0 xy i z L.3 מתנאי 2 עולה כי xy כלול ברישא.a n (הסבר: a n = b n = n ולכן a n b n = 2n ( ולפי תנאי,1,y ε כלומר קיימים s, t כך ש t s, 1 0 שעבורם מתקיים.s + t n עבור אותם s, t יתקיים x = a s y = a t z = a n s t b n תנאי 3 קובע שלכל 0 i מתקיים.xy i z L נבחר = 0 i ונקבל xy 0 z = xz = a s a n s t b n = a n t b n לפי ההנחה a n t b n L אך n t n כי 1 t ולכן,a n t b n / L סתירה. Lלא מקיימת את למת הניפוח ולכן L לא רגולרית. תרגיל: הוכח כי R} L = { w w = w לא רגולרית (נזכיר (w) (w R = reverse, w = }{{} כיצד לפתור? נניח בשלילה ש L רגולרית. יהי n הקבוע שקיומו מובטח מלמת הניפוח. נבחר x =,y =,z = (ז"א: 1 y, xy n כך ש: w = xyz ויהי פירוק המילה w n, w L.( נבחר =? i וע"פ למת הניפוח. xy i z L נרצה להראות כי xy i z / L ובכך להגיע לסתירה. ראשית נדגים בחירה לא טובה של w: x = a s עבור y = a t אם היינו בוחרים w = a n a n אז כל פירוק יהיה מהצורה z = a n s t a n xy 0 z = a s a n s t a n = a n t a n L :i היינו בוחרים למשל = 0.t 1,s 0 לא טוב! כל בחירה של i לא הייתה עוזרת כאן. כעת נדגים בחירה טובה של w: נבחר. w = a n ba n ואז כל פירוק יהיה מהצורה x = a s y = a t z = a n s t ba n עבור 0,s t n,1.s + t נבחר = 2 i ואז מתקיים:. w = xy 2 z = a s a 2t a n s t ba n = a n+t ba n מההנחה w L אבל n + t n) w w R כי 1 (t ולכן,w / L והגענו לסתירה. תרגיל: ( { } הוכח כי 0 j L = a 2j (כאּשר:{ a } = 14
פתרון: L היא שפת המילים מעל {a} שאורכן הוא חזקה של 2. למשל a 8, a 32 וכו'. נניח בשלילה כי L רגולרית ויהי n הקבוע שקיומו מובטח מלמת הניפוח. נבחר. w = a 2n מתקיים כי,w L כמו כן w > n (גדול ממש מכיוון ש n 2 n > לכל.(n N לפי למת הניפוח קיים פירוק w = xyz כך ש: 1, y xy n ו L xy i z לכל 0.i עבור = 2 i נקבל: y xy 2 z = 2 n + (כי w = xyz = 2 n והוספנו עוד ( y נשים לב כי: y n 1 (כי xy ] n וגם 1 ( y מכאן מקבלים:,2 n < xy 2 z < 2 כלומר n+1 2 n < 2 n + 1 xy 2 z 2 n + n < 2 n + 2 n = 2 n+1 לכן xy 2 z איננו מהצורה a 2j עבור j N כלומר xy 2 z / L והגענו לסתירה. תרגיל: הוכח כי prime} L = {a p p is לא רגולרית. הוכחה: נניח בשלילה ש L רגולרית. יהי n הקבוע שקיומו מובטח מלימת הניפוח. נבחר w = a p כאשר n < p (יש p כזה, כי יש אינסוף מס' ראשוניים).,0 s כאשר a p = }{{} a s }{{} a t a } p s t {{} מתקיים w ועבור n,w L פירוק, w = xyz הוא יהיה מהצורה: x y z.s + t n ו 1 t נבחר + 1 p a s a (p+1)t a p s t = a s a pt a t a p s t = a pt a p = a (t+1)p :i = נשים לב ש 2 p מכיוון שהוא ראשוני, ו 2 1 + t ומכאן (t + 1) p איננו ראשוני (הוא מכפלה של 2 מספרים: p ו + 1.(t לכן, L a (t+1)p / והגענו לסתירה. שאלה: תהי L השפה הכוללת את המילים מעל אותיות הא"ב העברי כך שאף אות לא מוספיעה יותר מ 3 פעמים. קבע האם L מקיימת את תנאי למת הניפוח והוכח טענתך. תשובה: אורך מילה ב L חסום ע"י הקבוע = 66 3 22. אם נבחר את הקבוע n מלמת הניפוח להיות 67, נוכל לראות שהשפה מקיימת את תנאי הלמה באופן ריק. למעשה, עבור כל שפה סופית נוכל לבחור את n להיות אורך המילה הארוכה ביותר בשפה + 1. נראה דוגמה לשפה לא רגולרית המקיימת את למת הניפוח L = { b j a p j 0, p is prime } {a}, = {a, b} נראה ש L ניתנת לניפוח: מאחת הצורות הבאות: ראשית נקבע מהו n: כל 2 n יתאים. כל מילה w L באורך n לפחות היא j + p n, ראשוני p,j עבור 1 w = b j a p.1.2 k,w = a עבור n k (גם מילים מהצורה b 0 a p כלולות כאן) במקרה 1 אפשר לפרק את w להיות מהצורה x = ε, y = b, z = b j 1 a p במקרה 2 אפשר לפרק את w להיות מהצורה k 1 x = ε, y = a, z = a 15
קל לראות ששני הפירוקים מקיימים את תנאי הלמה. כמו כן ניתן להוכיח ש L לא רגולרית. שיעור 6 מחלקות שקילות ב תהיינה שתי מחרוזות y x, נגדיר סיפא מפרידה: z, תקרא סיפא מפרידה בין x ל y ביחס לשפה L אם מתקיים: (xz L yz / L) (xz / L yz L) נגדיר יחס : L נאמר כי x L y אם מתקיים yz L xz L לכל z (לכל סיפא). למעשה, תנאי זה אומר כי אין סיפא מפרידה בין x ל y. קל לוודא שהיחס L הוא יחס שקילות: הוא רפלקסיבי, סימטרי וטרנזיטיבי. תכונות היחס : L היחס L מגדיר חלוקה של כל למחלקות שקילות כך שלכל זוג מילים מאותה מחלקת שקילות אין סיפא מפרידה ולכל שתי מילים ממחלקות שונות יש סיפה מפרידה. כל מילה מוכלת ב L או ב L. כלומר, לא יתכן כי w 1 L, w 2 / L ושהמילים w 1, w 2 מאותה מחלקת שקילות. (כאן z = ε תהיה סיפא מפרידה) הגדרה: L מס' מחלקות השקילות ביחס Rank (L) משפט Nerod) :(Myhill 1. L שפה רגולרית (L) Rank הוא מס' סופי. 2. תהי L שפה עבורה מתקיים Rank (L) = n אז קיים אס"ד בעל n מצבים המקבל את L, ולא קיים אס"ד עם פחות מ n מצבים המקבל את L. תכונות היחס L (המשך): איחוד מחלקות השקילות שמגדיר L הוא כל שתי מלילם שנמצאות באותה מחלקת שקילות "יעברו יחד" לאותה מחלקת שקילות. כלומר: אם z גם באותה מחלקת שקילות, לכל סיפא w 1 z, w 2 z באותה מחלקת שקילות, אזי w 1, w 2 מחלקת שקילות של איבר x נסמן ב [ x ]. [x] = {y x L y}) ז"א: [x] היא קבוצת כל האיברים (x L y כך ש: y 16
דוגמאות נניח b} {a, = (1 תהי aaa}.l = {a, aa, מה יהיו מחלקות השקילות של? L תשובה: S 1 = {ε}, S 2 = {a}, S 3 = {aa}, S 4 = {aaa}, S 5 = {ε, a, aa, aaa} קל להראות שהמחלקות זרות בזוגות ואיחודם הוא נראה שלכל שתי מילים מ S 5 אין סיפא מפרידה: נשים לב שכל המילים שמכילות b ים או יותר מ 3 a ים נמצאות ב, S 5 משום שלכל שתי מילים w 1, w 2 S 5 מתקיים שלכל z: w 1,z w 2 z / L כלומר אין להן סיפא מפרידה ולכן הן באותה מחלקה. נראה שלמילים ממחלקות שונות יש סיפא מפרידה. נראה :ε L a נבחר z = aaa ונקבל: yz = aaa L ואילו az = aaaa / L כלומר z סיפא מפרידה ולכן ε. L a באופן דומה קל להוכיח שכל אחת מהמילים:,ε,a aa, aaa אינה שקולה לרעותה. כמו כן אף אחת מהמילים הללו לא שקולות למילים מ S. 5 ניתן להראות אם נבחר למשל b S 5 (מספיק לבחור נציג מ S 5 אחרי שהראינו ש S 5 היא מחלקת שקילות). עבור z: = ε שקולה למילים מ S 5 לא להראות ש ε כדי וכולן ב L. aaaz = aaa, aaz = aa, az = a ואילו bz = b / L נבחר.z = a כאשר מבקשים מאיתנו למצוא במפורש את מחלקות השקילות לפי היחס L יש להראות: 1. המחלקות זרות בזוגות ) אין מילה ב ששייכת ליותר ממחלקה אחת) 2. איחוד המחלקות הוא 3. לכל שתי מילים מאותה מחלקה אין סיפא מפרידה ביחס ל L. 4. לכל שתי מילים ממחלקות שונות יש סיפה מפרידה ביחס ל L..1 מהן מחלקות השקילות של L עבור 0} = 3 L = {w w mod (2 2. בנה אס"ד מינימלי ל L. S 1 = {w w mod 3 = 0} תשובה: {1 = 3 S 2 = w} w mod קל לראות (יש להסביר) כי לכל שתי מילים מאותה מחלקה אין סיפא S 3 = {w w mod 3 = 2} מפרידה ולכל שתי מילים ממחלקות שונות יש סיפא כזו, כמו כן ברור כי = 3 S 1 S 2 S (שהן זרות בזוגות). על מנת לבנות אס"ד ממחלקות השקילות: נבנה מצב לכל מחלקת שקילות. המצב ההתחלתי יהיה [ε] (המחלקה ש ε בה) ופונקציית המעברים תהיה [xa]. δ [x]), (a = נשים לב כי [xa] זו מחלקת שקילות ולא משנה איזה נציג נבחר ממנה. שרטוט במחברת אצלנו [ab] [aa] = }{{} same department לאותו מצב. = (b δ. [a]), שמות המצבים מתייחסים למחלקה כולה, למשל אצלנו [ aa ]ו [ ab ] מתייחס 17
(3 מהן מחלקות השקילות של L עבור : (w)} L = {w #a (w) = #b 0 k S k = {w #a (w) #b (w) = k} נשים לב שכל מילה ב נמצאת בדיוק באחת משתי תשובה: T k = {w #b (w) #a (w) = k} k > 0 המחלקות. כלומר, הן זרות בזוגות ואיחודן הוא. נראה שלכל 2 מילים מאותה מחלקה אין סיפא מפרידה: לכל < k 0 אם,x y S k אזי עבור z T k נקבל: yz L xz L לכל. z אחרת, נקבל.xz / L yz / L לכן, כל המילום ב S k עומדות ביחס L זו לזו. הטענה נכונה גם עבור S 0 וגם על.k > 0,T K נראה שלכל 2 מילים ממחלקות שונות יש סיפא מפרידה: נבצע חלוקה למקרים: i j y S j,x S i.1 i j y T j,x T i.2 j > 0, i עבור 0 y T j,x S i.3 מקרה :1 יהיו x S i ו i j, y S j נראה כי :x L y נניח בה"כ j < i וניקח.z = b j אזי yz S 0 = L אבל xz / L כי xz S i j ו 0 j (i > j) i מקרה 2: סימטרי למקרה 1. מקרה :3 יהיו.j > 0, i 0, y T j, x S i אז עבור z = b i נקבל xz L yz / L ולכן z סיפא מפרידה, כלומר.x L y תרגיל (חשוב): תהי } ) 2 L = { w 1 cw 2 w 1, w 2 {a, b} #a (w 1 ) = #a (w מעל c} {a, b, =. הוכח באמצעות משפט מייהיל נרוד כי L לא רגולרית. פתרון: נרצה להראות שיש מס' אינסופי של מחלקות שקילות, ז"א (L) Rank אינסופי. קיימות אינסוף מילים ב הניתנות להפרדה (ביחס ל L ) בזוגות. נתבונן במילים מהצורה... aaac, c, ac, aac, כלומר מילים מהצורה a n c עבור 0 n. נתבונן בזוג מילים שונות a i c ו, a j c כאשר j) (i n 0 :a n אם כן, כל מילה מהצורה a j ca i / ו L a i ca i L למשל היא סיפא מפרידה עבורן, שכן a i היא ממחלקת שקילות שונה. כלומר, יש אינסוף מילים כאלה ולכן יש אינסוף מחלקות שקילות ולכן L איננה רגולרית. אבחנה: בהינתן שפה L, אם נוכל למצוא אינסוף מילים מ כך שכל זוג מילים ניתן להפרדה לפי היחס, L אזי L. אינה רגולרית שכן במקרה זה יש אינסוף מחלקות שקילות. 18
שיעור 7 דקדוקים דקדוק פורמלי ע"י רביעייה ),S,,V ( כאשר: הינו א"ב, נקרא לאיברי טרמינלים (אותיות סופיות). V קבוצה סופית ולא ריקה של משתנים דקדוקיים (אותיות לא סופיות), נסמן אותן באותיות גדולות (..., 1,X). V g} i h i } l משתנה התחלתי. קבוצה סופית של כללי גזירה (הנקראים גם "הפקות") מהצורה 1=i S V כאשר ) (V g i, h i.1 עבור ) (V ϕ 1, ϕ 2 נאמר כי ϕ 2 נגזר ישירות מ ϕ 1 ונסמן ϕ 1 = ϕ 2 אם קיימת הפקה ϕ 1 = r g i s כאשר ) (V, r, s כלומר ניתן לעבור מ ϕ 1 ל ϕ 2 ע"י הפעלה r 2 = r h i s כך ש: g i h i אחת של כלל מ הגדרה: ϕ 1 אם ניתן להגיע מ ϕ 1 ל ϕ 2 ע"י הפעלת מס' סופי של כללים מ בזה אחר זה..2 נסמן = ϕ 2 ϕ 1 = U 1 =... = ϕ 2 ( V ) L (G) = { w S = w } שפת הדקדוק: יהי הדקדוק ) S,, G = (, V, השפה המתקבלת מ G היא U aw U a U ε דקדוק רגולרי: U, W V, a הוא דקדוק שכללי הגזירה ב הם מהצורה הבאה בלבד: a U,V כלומר: הצד הימני מוגבל לאופציות: 1) אות סופית ואחריה אות לא סופית 2) אות סופית 3) ε האות הריקה L (G 1 ) = L (G 2 ) מתקיים,G 2 : L (G 1 ) = {ab} a כאן: G 1 : דוגמה לדקדוק רגולרי S ab a A ab a B ba S ab a 2. דקדוק שקול ל 1 Gבעל שני משתנים בלבד: B bs נדגים כיצד המילה ababa נגזרת מ :G 1, G 2.1 א) S = ab = aba = abab = ababa = ababa 19
ב) S = ab = abs = abab = ababs = ababa דוגמה לדקדוק לא רגולרי S asa bsb SS a b ε ab as (המסומן בקו תחתון הוא מה שלא עונה להגדרה של דקדוק רגולרי) משפט: L שפה רגולרית קיים דקדוק רגולרי G כך ש: L (G) = L הערה: קיימים דקדוקים לא רגולריים שהשפות שהם יוצרים הן רגולריות (יש גם דקדוק רגולרי שיוצר אותן) למשל: S asa ε זה דקדוק לא רגולרי שיוצא את {aa} רגולרית (aa) ביטוי רגולרי עבורה. שפות חסרות הקשר דקדוק חסר הקשר: זהו דקדוק בו כל כללי הגזירה של הם מהצורה X β כאשר X V ו ) V β ( (הערה: הכלל X V, X ε מותר) הגדרה: שפה L היא חסרת הקשר קיים דקדוק חסר הקשר G כך ש: L (G) = L נשים לב שכל דקדוק רגולרי הוא גם דקדוק חסר הקשר ומכאן שכל שפה רגולרית היא גם שפה חסרת הקשר (אבל לא להיפך!) דוגמאות לדקדוק חסר הקשר G : S asa bsb ε איזו שפה זאת? } b} L (G) = { ww R w {a,.ניתן להראות ש ( G ) L לא רגולרית ע"י למת הניפוח. נראה גזירה עבור S = asa = absba = abba :w = abba הגדרה: עץ גזירה עבור דקדוק ח"ה ),S G = (,,V הינו עץ סדור המקיים:.1 כל צומת מסומן באות מתוך {ε} V 2. השורש מסומן ב S (המשתנה ההתחלתי) 3. הסימון של כל צומת פנימי (איננו עלה) הוא מתוך V 4. צומת המסומן ב ε הוא בן יחיד 5. אם צומת פנימית מסומן ב A V ואם לבניו יש סימונים (לפי הסדר משמאל לימין) X 1 X 2... X n אזי A X1... X n הינו כלל של תרגיל.1 מהי שפת הדקדוק G : S asb ab.2 צייר עץ גזירה עבור w = a 3 b 3 20
L (G) = {a n b n n 1}.1 2. במחברת תשובה תרגילים: תן דקדוק חסר הקשר עבור השפות הבאות מעל {b,a} = 1. שפת המילים המתחילות ברצף ab 2. שפת המילים באורך זוגי 3. שפת המילים באורך אי זוגי L = {w #b (w) mod2 = 0}.4 S AAS ε A a b תשובות: S abx X ax bx ε.1.2 abs bas aas bbs ε S או 3. עבור אי זוגי נחליף את הכלל S ε בתשובות ל 2 ב a b S S AbAbS A A aa ε.4 נשים לב: כל השפות הנ"ל הן רגולריות והראינו עבורן דקדוקים לא רגולרים (חסרי הקשר) אבל לכל שפה מהשפות הללו קיים גם דקדוק רגולרי שיוצר אותן. S ab cb ca a b ε A aa ε b B bb ab cb ε השפה הנוצרת ע"י הדקדוק היא רגולרית, משום שהדקדוק הוא רגולרי. תרגיל: תן דקדוק ח"ה לשפות הבאות מעל {b,a} = : {a n b m n, m 0, n m}.1 {a n b m n, m 0, n 3m}.2 21
תשובות: נראה לדוגמה גזירה עבור S asb aasbb aaaabb :w = aaabb S asb aa bb A aa ε B bb ε aaabb.1 S aaasb aasb asb Sb ε.2 שיעור 8 הצורה הנורמלית של חומסקי כל שפה חסרת הקשר, שאינה מכילה את ε אפשר ליצור אותה על ידי דקדוק שכל כלליו מהצורה:. V 0 V 1 V 2, V 0, V 1, V 2 V דקדוק כזה נקרא דקדוק בצורה הנורמלית של חומסקי. V 0 a, a כך ש: {ε} L (G) = L (G ) תזכורת: אם G דקדוק חסר הקשר אזי קיים דקדוק חסר הקשר G חיובי ומסתעף. (חיובי) (מסתעף) X ε, X V X Y, X, Y V כלומר אין ב G כללים מהצורה: כעת נראה אלגוריתם מעבר מדקדוק חסר הקשר G כך ש: ) G) ε / L לדקדוק חסר הקשה בצורה הנורמלית של חומסקי: תחילה נוודא ש G הינו דקדוק ח"ה חיובי ומסתעף. אם לא, נהפוך אותו לכזה (ראינו בהרצאה כיצד מעבר כזה הוא אפשרי) כעת נבנה דקדוק G באופן הבא: אם a A a, כלל ב G אז הוא גם כלל ב.G (כלל = הפקה). נותרו כללים מהצורה A := ( ).1 i t לכל X i V ו 2 t כאשר X 1 X 2... X t עבור כל כלל מהצורה הנ"ל: ( )וטרמינל a (למשל ( X i = a נוסיף משתנה S a ל V ואת הכלל S a a ל.G נחליף את כל המופעים של a ב ( ) ב.S a הכללים הנותרים שאינם מצורה זו הם: A X 1 X 2... X t V X i לכל i t.1 עבור כל כלל כזה נוסיף משתנים חדשים (שיהיו כאשר t 3 ו a} {S a A X 1 Y 1 Y 1 X 2 Y 2. Y t 3 X t 2 Y t 2 Y t 2 X t 1 X t שונים מכלל לכלל) t 2, Y 1, Y 2,..., Y ונוסיף במקומו את הכללים הבאים ל :G דוגמה: נעביר אותו לדקדוק ח"ה בצורה הנורמלית S Aa a יהי G דקדוק ח"ה בעל הכללים הבאים: A Ab b BBAa BAa B AS b של חומסקי ע"י האלגוריתם: (נשים לב שהדקדוק חיובי ומסתעף!) 22
נשאיר את הכללים: ועבור הכללים שנותרו נחליף את a ב S a ואת b ב S b כאשר S b, S a הם S AS a a A AS b b BBAS a BAS a B AS b S a a S b b S a a ונקבל סה"כ : S b b S a A b B AS b משתנים חדשים שעבורם הוספנו את הכללים: כעת במקום הכלל A BBAS a (הוא בעייתי כי אינו עונה על ההגדרה) נוסיף את הכללים: A BY 1 Y 1 BY 2 Y 2 AS a (הוספנו משתנים חדשים ( Y 1, Y 2 ובמקום הכלל,A BAS a נוסיף A BY 3 נשים לב שהוספנו משתנה חדש Y 3 עם האינדקס 3 כי השמות Y 1, Y 2 תפוסים. את הכללים: Y 3 AS a כלומר, לכל כלל נגדיר משתנים חדשים שלא תפוסים. לימת הניפוח לשפות חסרות הקשר (לימת בר הילל) תהי L שפה ח"ה אזי קיים קבוע k כך שלכל w L כך ש w k קיימת חלוקה של w למילים z,u,v,x,y כך שמתקיים w = uvxyz ומתקיים: vy ε.1 vxy k.2 0 n לכל uv n xy n z L.3 משפט: אם L שפה חסרת הקשר אזי L מקיימת את לימת הניפוח לשפות חסרות הקשר (ולא להיפך!) משפט: משפחת השפות חסרות ההקשר סגורה תחת איחוד, שרשור, קליני, חיתוך עם שפה רגולרית. המשפחה איננה סגורה תחת: חיתוך (בין שפות ח"ה), השלמה, הפרש. תרגיל הוכח ע"י לימת הניפוח לשפות ח"ה כי השפה הבאה מעל c} {a, b, = לא ח"ה: (w)} L = {w #a (w) < #b (w) < #c פתרון: נניח בשלילה ש L ח"ה ויהי k הקבוע המובטח מלמת הניפוח לשפות ח"ה. נביט במילה = w u, v, x, y, z לפי לימת הניפוח, קיימות מילים.w קל לראות ש L.a k b k+1 c k+2 כך ש: w = uvxyz ומתקיימים תנאים 1, 2, 3 מהלימה. מאחר ו k vxy, הרי שהמילה vxy יכולה להכיל לכל היותר 2 אותיות שונות, כלומר בכל חלוקה אפשרית c., aאו b לא תכיל לפחות את אחת האותיות vxy נבחן את כל האפשרויות: a. לא מכילה את האות vxy 1. c. לא מכילה את האות vxy 2. 23
b. לא מכילה את האות vxy 3. נשים לב לכך שאפשרות 3 מוכלת באפשרויות 1 ו 2, לכן מספיק לבחון אותן. (כי אנו לוקחים "חלון" בגודל k שדרכו נתבונן במילה כמו בדוג' מההרצאה) מקרה :1 vxy לא מכילה את האות a ולכן במקרה זה vxy = b i c j כך ש k. i + j = מאחר ו ε vy מתקיים:, w = uv 0 xy 0 z / L שהרי אם v או y מכילה לפחות b אחד אזי מס' ה b ים ב w הוא לכל היותר v אחרת, אחת מהמילים. #a (w ) < #b (w ) ולכן לא יתקיים.k הוא בדיוק w ב ואילו מספר ה a ים,k או y מכילות לפחות c אחד, (ושתיהן לא תכלנה (b ונקבל שלא יתקיים ) (w.#b (w ) < #c מקרה :2 vxy לא מכילה את האות c ולכן במקרה זה vxy = a i b j כך ש:.i + j k מאחר ו ε vy מתקיים:, w = uv 3 xy 3 z / L שכן אם יש לפחות אות אחת (a או b) שמס' המופעים שלה גדול ב 2, ולכן מס' המופעים של a או מס' המופעים של b ב w הוא לפחות כמו מס' המופעים של c ב w. תרגיל } L = תונה השפה הבאה מעל c} {X 1 CX 2 C... CX k k 2 each X i {a, b} + and for some i j, X i = X j : = {a, b, הוכיחו כי L אינה ח"ה. L L = L אזי, מסגירות a b ca b }{{} Regular Expression פתרון: נניח בשלילה כי L ח"ה. נגדיר את השפה הבאה: } {{ } Regular Language תחת חיתוך עם שפה רגולרית נובע כי גם L חסרת הקשר. נראה כי L אינה ח"ה, נגיע לסתירה ונסיק ש L אינה ח"ה. מהגדרת L נובע כי: 0} > m, L = {a n b m ca n b m n + ונניח בשלילה כי L חסרת הקשר. יהי k הקבוע המובטח מלמת הניפוח לשפות ח"ה. נבחר את המילה, w = a k b k ca k b k קל לראות כי L.w לשם נוחות, נסמן w 2 = a k b k, w 1 = a k b k כאשר.w = w 1 cw 2 לפי לימת הניפוח קיימות מילים z u, v, x, y, כך ש: w = uvxyz ומתקיימים תנאים 1, 2, 3 מהלימה. אם v או y מכילות את התו c אזי המילה uv 2 xy 2 z מכילה לפחות שני מופעים של c ולכן.uv 2 xy 2 z / L נבחן את שני המקרים האפשריים כאשר גם v וגם y לא מכילות :c c מכילה את התו x 1. c לא מכילה את התו x 2. מקרה :1 x מכילה,c במקרה זה v = b i, y = a j ומאחר ו ε vy מתקיים > 0 j i + (כי ה vxy חייב a) k b. עבור המילה uv 2 xy 2 z מתקיים: מס' ה b ים בבלוק השמאלי גדול ממספרם בבלוק } k {{ ca k } לבוא מתוך b k vxy הימני או מס' ה aים בבלוק הימני גדול ממספרם בבלוק השמאלי. מקרה :2 x לא מכילה את התו c במקרה זה vxy = a i b j כך ש: i + j k (כמו כן vxy הוא תת מחרוזת של w 1 או של w 2 ולכן עבור המילה uv 2 xy 2 z מתקיים. w 1 w 2 (מס' ה a ים או מס' ה b ים בבלוק הימני שונה ממספר ה a ים או מס' ה b ים בבלוק השמאלי, ולכן, uv 2 xy 2 z / L לכן L לא ח"ה ומכאן ש L לא ח"ה. 24
שאלה למחשבה: בהרצאה ראינו כי השפה } 1 i L = { a i b i c i לא ח"ה, כיצד נראה אם כן שהשפה } 0 i L 1 = { a i b i c i לא ח"ה ע"י שימוש בתכונות סגירות בלבד? תשובה: נניח כי L 1 ח"ה אז מסגירות תחת חיתוך עם שפה רגולרית, גם = } 1 i L 1 L (aa bb cc ) = { a i b i c i L קיבלנו כי L ח"ה, סתירה! (ראינו כבר כי היא לא ח"ה). שיעור 9 מעבר מדקדוק חסר הקשר חיובי לא מסתעף, G, לדקדוק חסר הקשר חיובי ומסתעף, G: A B (נקרא גם כלל נתון דקדוק חסר הקשר חיובי לא מסתעף G, כלומר בדקדוק יש כללים מהצורה,A B V יחידה) ואין לנו כללי ε. נרצה למצוא דקדוק שקול G חיובי ומסתעף (כך שאין בו כללי יחידה וכללי ε). נראה כיצד למצוא כזה ע"י אלגוריתם שנמחיש בדוגמה הבאה: יהי G דקדוק חסר הקשר שכללי הגזירה שלו הם: S Q b Q R a R ba bra בדקדוק זה, אין כללי ε ולכן הוא חיובי. נבנה דקדוק ח"ה G שקול, שאין בו כללי ε וכללי יחידה: בשלב הראשון: ניקח את הכללים שאינם כללי יחידה ל G: S b Q a R ba bra S Q = A (במקרה שלנו, Q R G בשלב השני: נמצא את כל זוגות המשתנים A B,A, B המקיימים: B S, מטרנזיטיביות) = G R וגם S = Q G Q = לכן: R G בשלב שלישי: איננו מכניסים לדקדוק השקול אף כלל מהצורה A. B במקום זאת: Q α כאשר,S α נצרף לדקדוק השקול כל כלל מהצורה:, S = Q ו S = 1) מכיוון ש: R G G הוא כלל ב G שאינו כלל יחידה או R α הוא כלל ב G שאינו כלל יחידה. = G 2) מכיוון ש: R G הוא כלל ב R α כאשר Q α נצרף לדקדוק השקול כל כלל מהצורה Q S a ba bra מ 1 : Q ba bra מ 2 : ( שאינו כלל יחידה. ) מ 1 ו 2 נובע כי במקרה שלנו, יכנסו הכללים: S Q Q R במקום הכללים: 25
(ומכיוון S b a ba bra Q a ba bra R ba bra סה"כ קיבלנו דקדוק חסר הקשר חיובי ומסתעף שקול, G, שכללי הגזירה שלו הם: S b a ba bra שאי אפשר לעבור ל Q, אפשר להשמיטו: ( R ba bra הערה: כאשר מבקשים מאיתנו לעבור מדקדוק חסר הקשר חיובי לדקדוק בצורה הנורמלית של חומסקי, תחילה יש להעביר את הדקדוק לדקדוק שקול חיובי ומסתעף, כנ"ל, ולאחר מכן יש להמשיך לפי האלגוריתם שלמדנו בשיעור הקודם עד לקבלת דקדוק שקול בצורה הנורמלית של חומסקי. הקשר בין דקדוק בצורה הנורמלית של חומסקי ללימת הניפוח לשפות חסרות הקשר L שפה חסרת הקשר = אזי קיים דקדוק G בצורה הנורמלית של חומסקי, כך ש: {ε} L. G) ) = L נסמן ב n את מספר המשתנים ב G, אזי ניתן לקבוע את k = 2 n להיות הקבוע המובטח מלימת הניפוח לשפות חסרות הקשר. הוכחנו בהרצאה בעזרת עובדה זו את המשפטים הבאים: 1.1 יהי G דקדוק בצורת חומסקי בעל n משתנים, אזי ) (G L אינה ריקה אםם קיימת מילה ) (G w L כך ש: w 2 n.2 יהי G דקדוק ח"ה בצורת חומסקי בעל n משתנים, אזי ) (G L לא סופית אםם קיימת מילה ) (G w L כך ש: n+1 2 n < w 2 אוטומט מחסנית: אוטומט מחסנית הינו שישייה ) F (Q,, Γ, δ, q 0, כאשר: F, q 0,, Q בדומה לאס"ד / אסל"ד, Γ הוא א"ב המחסנית, {ε})),δ : Q ( {ε}) (Γ {ε}) P (Q (Γ כאשר המשמעות של σα) (q, β) δ (r, היא, שכאשר אנו נמצאים במצב r, קוראים את התו σ ובראש המחסנית יש α אזי אפשר להוציא את התו α מהמחסנית, לכתוב במקומו β ולעבור למצב q. קונפיגורציה: היא שלשה מעל ) Γ ( Q. הקונפיגורציה x) (q, w, מתארת מצב בו נמצאים במצב,q מילת הקלט שנותר לקרוא היא w ותכולת המחסני היא x (כאשר בראש המחסנית נמצא התו הראשון ב x ). α, β, Γ {ε} w γ Γ ולכל, נסמן: βγ) (r, σw, αγ) (q, w, אם לכל σ {ε} q, r Q לכל מעבר בין קונפיגורציות: (q, β) δ (r, σ, α) מתקיים γ Γ נסמן: β) (q, w, α) (p, x, אם קיימת סדרת מעברים סופית בין קונפיגורציות: ) 1 (q, w, α) (q 1, w 1, α... (p, x, β) השפה המתקבלת ע"י אוטומט מחסנית: { } יהי אוטומט מחסנית M אזי, L (M) = w (q 0, w, ε) (q, ε, ε), q F כלומר: כל המילים M שקיימת עבורן ריצה על האוטומט שמסתיימת במצב מקבל וגם המחסנית ריקה. 1 יכול להופיע במבחן שאלות דומות 26
שימו לב: המודל הנ"ל הוא א דטרמיניסטי. המודל הדטרמיניסטי לא שקול. כאשר מוזכר בקורס אוטומט מחסנית, נתכוון למודל הא דטרמיניסטי (אלא אם צויין במפורש אחרת). משפט: שפה L היא ח"ה אםם קיים אוטומט מחסנית (א דטרמיניסטי) M כך ש. L (M) = L דוגמה L = {a n b n n 0} b, & ε a, ε & b, & ε b, & ε start q 0 q 1 באופן כללי סימונים במעברים בין מצב למצב: α, β γ }{{} (α,β,γ ε) לא חוקי) אם קראנו את התו α נוציא β מהמחסנית ונדחוף γ (לשים לב: אם אין β בראש המחסנית, המעבר אם α = ε מעבר ללא קריאת תו (תיתכן תלות במחסנית). אם β = ε לא נוציא כלום מהמחסנית. אם γ = ε לא נדחוף כלום למחסנית. דוגמה = {a, b} L = { ww R w {a, b} } a, ε a b, ε b a, a ε b, b ε ε,ε ε start q 0 q 1 כאן יש שימוש באי דטרמיניזם שבו "ניחשנו" מתי מסתיימת w ומתחילה w. R כאן, המחסנית לא שימשה רק כמונה אלא היה גם חשוב אילו תווים הכנסנו אליה. נשים לב שהמחסנית נותנת לנו להשוות מילה והיפוכה. לעומת זאת, השפה } w L = { ww לא ח"ה (חשבו מדוע אי אפשר לבנות לה אוטומט מחסנית). הראינו ע"י לימת הניפוח לשפות ח"ה כי השפה } 0 i L = { a i b i c I לא ח"ה. כעת יש לנו אינטואיציה לכך, משום שאנו רואים שלא מספיקה כאן מחסנית אחת, מכיוון שלאחר ההשוואה בין ה a ים ל b ים, המחסנית תהיה ריקה, ולא נדע להשוות בין ה c ים ל b ים. 27
הערה: זו איננה נחשבת להוכחה! דוגמה נוספת: = {a, b} L = {w #a (w) = #b (w)} a, ε a b, ε b a, b ε b, a ε start q 0 אינטואיציה: נשתמש במחסנית כדי לזכור את ההפרש בין מס' מופעי a למס' מופעי b במילה.עם קריאת תו a, אפשר להכניס אותו למחסנית ובכך לזכור שהופיע ואפשר גם להוציא תו b במידה ומופיע בראש המחסנית כדי "לקזז" את ההפרש בין מס' המופעים. פעולות דומות נבצע בקריאת b. שיעור 10 הוכחות נכונות ראינו כיצד להוכיח נכונות של ביטויים רגולריים. 2 כיצד נוכיח נכונות של אס"ד או דקדוק? נראה דוגמאות: דוגמה לתרגיל עם הוכחת נכונות של אס"ד: תהי 4} = 7 L = {w w mod מעל הא"ב b} {a, = הוכיחו כי L רגולרית ע"י כך שתבנו אס"ד M המקבל את L והוכיחו את נכונותו. כלומר: צריך להוכיח כי L (M) = L 2 בתרגיל 4, כאשר נתבקשנו להוכיח שאם L רגולרית אזי L R רגולרית. 28
Q = {q i i = 0,..., 6} F = {q 4 } σ, q i Q : δ (q i, σ) = q (i+1) mod 7 פתרון: נבנה אוטומט M: a, b a, b a, b a, b a, b a, b start q 0 q 1 q 2 q 3 q 4 q 5 q 6 a, b נוכיח כי L (M) = L ע"י כך שנראה w L (M) w L טענת עזר: תהי מילה w מעל b} {a, =. אם w mod 7 = i אזי מתקיים δ (q 0, w) = q i הוכחת טענת העזר: נוכיח באינדוקציה על w. בסיס: = 0 w w = ε = ולכן = 0 7 w mod, ומתקיים δ (q 0, w) = q 0 w מתקיים לכל מילה מעל b} {a, = באורך ( w = n) n, כך ש k mod 7 = הנחת האינדוקציה: δ (q 0, w) = q k צעד האינדוקציה: תהי מילה w מעל b} {a, = באורך + 1 n w = ונראה כי אם w mod 7 = i אז.δ (q 0, w) = q i נכתוב את w באופן הבא:. σ : w = w 1 σ אזי, w 1 = n ולפי הנחת האינדוקציה, w 1 mod 7 = j וגם δ (q 0, w 1 ) = q j עבור 6 j 0 כלשהו. נתבונן באות σ. עבורה מתקיים: i = w mod 7 = ( w 1 + 1) mod 7 = (( w 1 mod 7) + 1) mod 7 = (j + 1) mod 7 = i.δ (q 0 בנוסף, ע"פ בניית M מתקיים, w 1 ) = q ולכן ע"פ הנחת האינדוקציה על w, 1 מתקיים: (1 i) mod 7 δ q 0, w 1 σ = δ ( q כנדרש. }{{} (i 1), σ ) = q i וסה"כ קיבלנו:, δ ( q (i 1), σ ) = q i w הוכחת :L (M) = L א) אם w L אזי = 4 7. w mod לפי טענת העזר, נקבל δ (q 0, w) = q 4 ומכיוון ש q 4 מצב מקבל, נקבל (M).w L ב) אם w / L אזי 4 j. w mod 7 = לפי טענת העזר, נקבל. δ (q 0, w) = q j q 4 מכיוון ש q 4 מצב מקבל יחיד, נקבל כי (M) w. / L 29
דוגמה להוכחת נכונות דקדוק: } (w).l = { w {a, b} #a (w) = #b S ε asb bsa SS ונתונה השפה: } נתון דקדוק ח"ה : G הוכיחו כי. L (G) = L כיוון א': :L (G) L יש להוכיח (G).w L = w L נוכיח באינדוקציה על מספר הגזירות. טענה: לכל n ולכל (G) w L המתקבלת ע"י סדרת גזירות באורך n מתקיים w. L בסיס: = 1 n w = ε = ומכאן מתקיים גם = 0 (w) #a (w) = #b ולכן.w L הנחת אינדוקציה: נניח שלכל k < n ולכל מילה (G) w L המתקבלת ע"י k גזירות מתקיים.w L w התקבלה כך שכלל הגזירה הראשון שהופעל היה: נחלק שלב זה לשלושה מקרים: צעד האינדוקציה: S asb (1 S bsa (2 S SS (3 נבחן את המקרים השונים: 1) w הוא מהצורה w = ayb כך ש ( G ) y, L והתקבלה ע"י סדרה של 1 n גזירות. לפי הנחת האינדוקציה על,y מתקיים y L ולכן (y) #a (y) = #b. עבור המילה w מתקיים: + 1 (y) #a (w) = #a וגם.w L = #a (w) = #b (w) מכאן, מתקיים.#b (w) = #b (y) + 1 2) ההוכחה באופן דומה למקרה א'. (3 w היא מהצורה, w = y 1 y 2 כך ש: (G). y 1, y 2 L שתי מילים שהתקבלו ע"י סדרת גזירות באורך קטן מ n. לפי הנחת האינדוקציה על y 1, y 2 מתקיים #a (y 1 ) = #b (y 1 ) = y 1 L וגם #a (y 2 ) = = y 2 L ) 2 #b (y עבור המילה w מתקיים ) 2 #a (w) = #a (y 1 ) + #a (y וגם ) 2 #b (w) = #b (y 1 ) + #b (y, מכאן מתקיים: (w).w L = #a (w) = #b כיוון ב': (G) L L באינדוקציה, על אורך המילה. באתר. כמו כן יש באתר הוכחת נכונות עבור אמל"ד לשפה זו. (ראינו בשיעור קודם אמל"ד עם מצב אחד המקבל אותה). חזרה אוטומט מחסנית: נתונה השפה הבאה: } y L = { x#y x, y {a, b} x מעל #} b, {a, = בנו אוטומט מחסנית M כך ש.L (M) = M הסבירו. 30
, ובמקרה x < y (1 x > y (2 x = y (3 פתרון: נשים לב שאם w L אז w = x#y ומתקיים אחד מהתנאים הבאים: השלישי קיים אינדקס i שעבורו x i y i (כי המילים שונות). היינו רוצים לבנות אמל"ד לכל אחד מהמקרים ולאחד את שלושתם לאמל"ד יחיד (אפשר, כי שפות ח"ה סגורות לאיחוד). הבעיה: אי אפשר לבנות אמל"ד למקרה 3, מכיוון שנצטרך לבצע 2 סוגים שונים של ספירה, האחד לוודא כי y x = והשנייה היא לספור עד לאינדקס i המקיים x. i y i נשים לב כי החלק העיקרי מבחינתנו הוא למצוא אינדקס i כך ש.x i y i לכן ננסח מחדש את מקרה :3 קיים אינדקס i שעבורו x i y i (ועדיין נדרוש.( x, y i מקרה 1 y x < במקרה זה: a, ε & b, & ε b, & ε start q 0 q 1 מקרה 2 y x > במקרה זה: a, ε & b, & ε b, & ε start q 0 q 1 מקרה 2 y x > במקרה זה: a, ε & b, & ε b, & ε start q 0 q 1 איחוד כל המקרים (וחיסכון ע"י ויתור על q ו q ( נותן: 31
a, ε ε b, ε ε a, $ ε b, $ ε q a #, ε ε q a a, ε $ b, ε $ a, ε ε a, $ ε b, $ ε b, ε ε a, ε ε b, ε ε start S #, ε $ p ε, ε ε q A b, ε ε a, ε ε b, ε ε a, $ ε b, $ ε a, ε ε q b #, ε ε q b שיעור 11 שפות תלויות הקשר Context-Sensitive languages דקדוק תלוי הקשר הגדרה: דקדוק תלוי הקשר הינו דקדוק שבו כל ההפקות הן מהצורה + ) V U V :,u v ( כאשר. u v כלומר, צד שמאל של ההפקה היא מחרוזת של טרמינלים ומשתנים (בשונה מדקדוק ח"ה שבו צד שמאל תמיד יהיה משתנה אחד). ובצד ימין של ההפקה מחרוזת של טרמינלים ומשתנים שאורכה לפחות כמו אורך המחרוזת בצד שמאל. נשים לב: עקב דרישה זו, כללי גזירה עם ε אינם מותרים. משפט: שפה L תלוית הקשר קיים דקדוק תלוי הקשר G כך ש ( G ) 3 L {ε} = L 3 זאת, כדי להרשות ε בשפה L 32
אבחנה: כל שפה חסרת הקשר, היא גם תלויית הקשר. הסבר לאבחנה: כל דקדוק חסר הקשר חיובי, הוא גם דקדוק תלוי הקשר. דוגמה לשפה תלוית הקשר שאינה חסרת הקשר: :L (G) = כך ש L L עבור G נראה דקדוק תלוי הקשר. L = { a i b i c i i 1 } G : כלל תפקיד S asbc מייצר a ויש אפשרות להמשיך S abc " CB BC החלפת סדר b ים לפני c ים ab ab מייצר b כל עוד זה בסדר חוקי bb bb " bc bc מייצר c כל עוד זה בסדר חוקי cc cc " :S = G נראה דוגמה לגזירה של w: = aabbcc נראה w S asbc aabcbc aabcbc aabbcc aabbcc aabbcc aabbcc סגירויות של שפות תלויות הקשר משפחת השפות תלויות ההקשר סגורה תחת הפעולות: איחוד, חיתוך, משלים, שרשור, קליני. 4 סגירות תחת השלמה הוכח רק בסוף שנות ה 80. מכונות טיורינג Turing Machine ע"ש אלן טיורינג Turing) (Alan מגדולי מדעני המחשב של המאה ה 20. על שמו נקרא פרס טיורינג. מכונת טיורינג היא מודל מופשט לאופן פעולתו של מחשב, רעיון זה נוצר בשנת 1936 ע"י אלן טיורינג עוד לפני המצאת המחשב (פיזית). מכונת טיורינג מורכבת מהרכיבים הבאים: 1. מס' סופי של מצבים 2. סרט עבודה אינסופי, בעל קצה שמאלי. הסרט מחולק לתאים, כאשר בכל תא נמצא תו מתוך Γ (נגדיר כעת). 3. ראש קורא/כותב היכול לזוז ימינה ושמאלה. 4 חשוב לדעת למבחן! 33
הגדרה פורמלית: Q קבוצת מצבים א"ב מעליו אנו עובדים מכונת טיורינג היא שביעייה ) rej M = (Q,, Γ, δ, q 0, q acc, q q 0 מצב התחלתי { } Γ q acc מצב מקבל יחיד, המכונה נעצרת כאשר היא מגיעה למצב זה. q rej מצב דוחה יחיד, המכונה נעצרת כאשר היא מגיעה למצב זה. עבור מכונת טיורינג דטרמיניסטית: δ : (Q\ {q acc, q rej } Γ) Q Γ {L, R, S} עבור מכונת טיורינג א דטרמיניסטית: δ : (Q\ {q acc, q rej } Γ) P (Q Γ {L, R, S}) D) (q, a, מציין שכאשר נמצאים במצב q וקוראים תו, a Γ ניתן לעבור למצב q, לכתוב במקום a את a Γ ולהזיז את הראש הקורא/כותב לכיוון,L},R {S D כאשר R מציין ימינה, L שמאלה ו S מציין השארות במקום הנוכחי. L (M) = { w There exist a run of M over the word w in which M stops at q acc } מ"ט) א דטרמיניסטית (א"ד) M: נשים לב: מ"ט א"ד מקבלת שפה L אם מתקיים: לכל w, L קיימת קיצה של M על w כך ש M עוצרת ב q. acc לכל M w, / L דוחה את w או לא עוצרת על w, או נתקעת בריצה על w. שימו לב: מ"ט אינן בהכרח עוצרות על כל קלט. כמו כן, ניתן להשתמש במ"ט על מנת לקבל פלט על גבי הסרט. (על כך יורחב בקורס המשך: "חישוביות") מכונת טיורינג א דטרמיניסטית חסומה לינארית 5 מ"ט א"ד שבה הסרט מוגבל לגודל הקלט + תא ראשון משמאל לקלט המסמן התחלה ותא אחרון מימין לקלט המסמן סוף. + TURING + הגדרה שקולה: הסרט מוגבל ל n k תאים כאשר n הוא גודל הקלט ו k הוא מס' קבוע (לא תלוי בקלט) מכאן השם (לינאריות). השקילות מתקבלת ע"י כך שניתן "לחקות" k תאים לכל תא ע"י הגדלת הא"ב של הסרט (לא נרחיב על כך כאן). 5 נקרא גם אוטומט חסום לינארית LBA 34
משפט: שפה L היא תלוית הקשר קיימת מ"ט א"ד חסומה לינארית (LBA) M כך ש L L (M) = שאלה פתוחה: האם מ"ט א"ד חסומה לינארית שקולה למ"ט דטרמיניסטית חסומה לינארית? בעיה בסיבוכיות: ((n). DSPACE(O (n))=nspace(o זוהי שאלה הפתוחה משך שנים רבות. הערה: מ"ט (כלליות לא חסומות לינארית) דטרמיניסטיות וא דטרמיניסטיות שקולות. תרגיל תנו תיאור מילולי וציירו דיאגרמה של LBA המקבל את 0} n L = {a n b n c n אופן פעולת המכונה על קלט w: 1. כל עוד התו הוא 6 x המכונה מזיזה את הראש ימינה. 2. אם התו הנקרא הוא = מקבלת. 3. אם התו הנקרא הוא b או = c דחה. 4. המכונה מוחקת תו a ראשון ע"י ומזיזה את הראש ימינה. 5. כל עוד התו הוא a או x המכונה מזיזה את הראש ימינה. (א) אם התו הנקרא הוא c או = דחה. (ב) אם התו הנקרא הוא b, המכונה משכתבת אותו להיות x. 6. כל עוד התו הנקרא הוא b או x המכונה מזיזה את הראש ימינה. (א) אם התו הנקרא הוא a או = דחה. (ב) אם התו הנקרא הוא c המכונה משכתבת אותו להיות x. 7. כל עוד התו הנקרא הוא c המכונה מזיזה את הראש ימינה. (א) אם התו הנקרא הוא a או b = דחה. (ב) אם התו הנקרא הוא, המכונה מזיזה את הראש שמאלה עד לתו הראשון שמימין לרצף הרווחים שבתחילת הסרט. 8. המכונה חוזרת לשלב 1. משמעות המצבים: אופן פעולת המכונה הוא איטרטיבי. קלט הלולאה: (סוף הסרט) הינו המילה הכתובה מייד לאחר רצף ה השמאלי (אם יש) ועד תחילת תו ה מימין לקלט q 0 הראש מצביע על תחילת קלט הלולאה. c. ואף לא b אחד לפחות, אף לא a נקרא q 1 c. אחד לפחות ואף לא b אחד לפחות, a נקרא q 2 q 3 נקרא a אחד לפחות, b אחד לפחות ו c אחד לפחות. אחד לפחות, ולאחר מכן אין בקלט תווים שונים מ c. c אחד לפחות ו b אחד לפחות, a נקרא q 4 x 6 הינו תו שלא נמצא בקלט, נמצא בא"ב הסרט ויסמן לנו תוים שנמחקו מהקלט במהלך הריצה. 35
האינווריאנטה (תכונה נשמרת) התכונות הנשמרות מאיטרציה לאיטרציה:.1 הקלט המקורי הוא מהצורה c a b וקלט הלולאה הוא מהצורה: c a x i b x i 2. מספר התווים המחוקים (בין אם ע"י או x) מרצף ה a ים שווה למס' התווים המחוקים מרצף הb ים וה c ים. מגיעים למצב מקבל אם קיימת ריצה של לולאה שבסיומה מחוקים כל תווי ה a b, ו c והקלט הוא מהצורה.0 n עבור a n b n c n שאלה: נתונה השפה הבאה: } 1} {0, w L = { w#w הסבירו במילים את אלגוריתם הפעולה ש LBA מקבל אותה. פתרון: הערה: אם מבקבים לתאר במילים אופן פעולה של,LBA יש לעשות זאת כמו בתרגיל קודם. כאן בתרגיל, ביקשו לתאר אלגוריתם, ולכן ניתן לעשות זאת כך: פתרון: אופן פעולת המכונה על קלט w: 1. המכונה בודקת אם הקלט הוא מהצורה {1,0} # {1,0} (המכונה תזיז את הראש ימינה כל עוד היא קוראת 0 או 1. אם היא הגיעה לסוף הסרט מבלי לקרוא # או לקרוא יותר מ # אחת, דחה) 2. אם התו הנקרא הוא # המכונה בודקת כי כל הסימנים מימין לו נמחקו, אם כן נמחקו = המכונה מקבלת. (א) אחרת דחה. 3. יהי σ התו הנקרא במילה. (א) המכונה זוכרת את σ וכותבת במקומו x. (ב) המכונה מזיזה את הראש לתו הראשון ששונה מ x מימין ל # ובודקת אם שווה ל σ i. אם לא = דחה. x. אחרת, המכונה כותבת במקומו.ii (ג) המכונה מזיזה את הראש שמאלה עד ה x הראשון משמאל ל # 4. המכונה מזיזה את הראש צעד אחד ימינה 5. חוזרת למצב 2. 36
0 1 1 0 # 0 1 1 0 x 1 1 0 # 0 1 1 0. x x 1 0 # 0 1 1 0. x x x x # x x x x x x x x # x x x x 37