אוטומטים ושפות פורמליות
Transcription
אוטומטים ושפות פורמליות
אוטומטים ושפות פורמליות תקציר סיכום זה מבוסס על הרצאותיו של פרופ' משה קופל ,אוניברסיטת בר אילן ,סמסטר אביב ,תשע"ב .2012 עידכון אחרון התבצע ב־ 28ביולי .2012 לשאלות ,הערות וכדומה ,שלחו לי למייל [email protected] 1 תוכן עניינים Iהקדמה קצרה על שפות 1 II 4 שפות . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . אוטומטים דטרמיניסטים 4 5 2 אוטומט סופי דטרמיניסטי . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 למת הניפוח . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 III 4 אוטומטים לא דטרמיניסטים המודל הלא דטרמיניסטי . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 IV 5 V 8 סגירות השפות הרגולריות . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI 7 4.1.1 4.1.2 סגירויות 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ביטויים רגולריים 12 ביטויים רגולרים ־ הגדרות וכוח הביטוי . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.1 הגדרת הביטויים הרגולרים . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.2 כוח הביטוי של הביטויים הרגולרים . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 14 קבוצות פורשות 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 הגדרת יחס השקילות על ∗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Σ 14 6.2 משפט . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Myhill Nerode 16 דקדוקים 17 דקדוקים והגדרתם . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1 8 9 מעברי 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ε משפט נרוד 6 8 שפת הדקדוק . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 דקדוקים רגולריים 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1 הגדרת דקדוק רגולרי . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 18 8.2 9 שקילות לשפות הרגולריות . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 שפות חסרות הקשר 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1 דקדוק חסר הקשר . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9.2 רגולרית מול חסרת הקשר . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9.3 דקדוק בצורת חומסקי . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 9.4 משפט בר הילל ־ למת הניפוח לשפות חסרות הקשר . . . . . . . . . . . . . . . . . . . 23 9.5 סגירויות של שפות חסרות הקשר . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 VIIאוטומטי מחסנית ושפות תלויות הקשר 26 3 חלק I הקדמה קצרה על שפות 1 שפות ע"מ שנוכל להגדיר את המושג אוטומט ,נצטרך כמה מושגים מוקדמים ע"מ להמשיך. הגדרה 1.1תהי קבוצה סופית .1 Σמחרוזת w 2מעל הא"ב Σהיא סדרה סופית של תווים מ־.Σ לדוגמא ,אם } ,Σ = {a, bאז מילים אפשריות הן .w = ab ,w = bb ,w = aaנשים לב כי ההגדרה כוללת גם את המילה הריקה ,3אותה נסמן ב־.ε נסמן ב־ ∗ Σאת קבוצת כל המחרוזות מעל א"ב .Σלכל ∗ w ∈ Σנגדיר את אורך המילה ,4אותו נסמן ב־|.|w הגדרה 1.2נאמר ש־ Lהיא שפה מעל א"ב Σכש־ Lהיא קבוצת מחרוזות ∗ L ⊆ Σכלשהי. נגדיר כעת את המושג שרשור של מילים, הגדרה 1.3יהיו ∗ .w2 = τ1 ...τm ,w1 = σ1 ...σn ,w1 , w2 ∈ Σנגדיר את השרשור w1 · w2להיות המחרוזת = w1 · w2 .σ1 . . . σn τ1 . . . τnבהתאם לכך גם ניתן להגדיר חזקה של מילה או אות ,שרשור שפות ,ועוד. דוגמא 1.4הקבוצות הבאות הן שפות מעל א"ב }:Σ = {a, b })L1 = {w | |w| ≡ 0(mod2 L2 = ai bj | i, j ≥ 0 }L3 = {abb, baa }L4 = {w | |w|is prime כעת ,לאחר שהגדרנו מושגים בסיסיים אלו ,נוכל לגשת להגדרת האוטומט. 1לה נקרא בהמשך א"ב .כמו כן ,נקרא לאיברי Σתווים או אותיות. 2או מילה. 3זו למעשה סדרת תווים באורך .0 4כלומר ,מספר התווים במילה. 4 חלק II אוטומטים דטרמיניסטים 2 אוטומט סופי דטרמיניסטי למעשה ,זה סוג של מחשב שמקבל קלט ויודע לבצע רק "דבר" אחד .הקלט המתקבל שמור בסרט אינסופי ,והמחשב נמצא במצב מסוים .5 בכל שלב בו האוטומט קורא אות בודדת ,הוא עובר למצב חדש .לכל אוטומט הכללים שלו להתקדמות למצבים שונים בהתאם לאותיות שקורא. נאלץ להבדיל בין מצבים מקבלים למצבים לא מקבלים ־ מילה wמתקבלת ע"י אוטומט אם בסיומה האוטומט במצב מקבל. דוגמא 2.1נגדיר את האוטומט ע"י הכללים הבאים. δ(q0 , a) = q1 , δ(q0 , b) = q1 δ(q1 , a) = q0 , δ(q1 , b) = q0 כעת נגדיר פורמלית את המושג אוטומט סופי דטרמיניסטי ,6 הגדרה 2.2אוטומט סופי דטרמיניסטי הוא חמישיה ) (Σ, Q, q0 , F, δכאשר, )א( Σהינו א"ב } .{s1 , . . . sn )ב( Q־ קבוצת מצבים } .{q1 , . . . qm )ג( q0 ∈ Qהוא המצב ההתחלתי. )ד( F ⊆ Qקבוצת המצבים המקבלים. )ה( δ : Q × Σ → Qהנקראית פונקציית המעברים של האוטומט. הגדרה 2.3נאמר ש־ ∗ w ∈ Σמתקבלת ע"י אס"ד ) M = (Σ, Q, q0 , F, δאם ,δ ∗ (q0 , w) ∈ Fכש־ ∗ δמוגדרת ע"י הכלל הרקורסיבי: δ ∗ (q, ε) = q )δ ∗ (q, wa) = δ(δ ∗ (q, w), a 5נסמן את המצב ההתחלתי ב־ ,q0ממנו מתקדמים אל q1וכך הלאה... 6בקיצור ,אס"ד. 5 אינטואיטיבית δ ∗ ,מחזירה את המצב אליו הגענו לאחר הרצת האוטומט על המילה .w הגדרה 2.4יהי ) M = (Σ, Q, q0 , F, δאס"ד .השפה המתקבלת ע"י Mהיא } L(M ) = {w | δ ∗ (q0 , w) ∈ F הגדרה 2.5תהי שפה ∗ .L ⊆ Σנאמר ש־ Lהיא שפה רגולרית אם קיים אס"ד Mכך ש־) .L = L(M אינטואיטיבית ,שפה Lהיא רגולרית אם קיים אס"ד Mשמקבל את כל המילים ב־ Lורק אותם. דוגמא 2.6תהי השפה .L = ai bj | i, j > 0 נוכיח כי היא השפה הינה רגולרית ע"י בניית אס"ד שמקבל את השפה: a a q0 q1 b b start b q3 q2 a a, b ע"מ לפשט ,ננהג לייצג אס"ד באמצעות גרף מכוון המתאר את פונקציית המעברים .δהסימון של מעגל כפול אומר כי המצב הוא מצב מקבל. 3 למת הניפוח תהי השפה הבאה }L = {ai bi | i ≥ 0 נרצה להראות כי שפה זו אינה רגולרית ,כלומר ,לא קיים אס"ד שמקבל אותה. האינטואיציה לכך היא שכדי שנוכל לדעת שיש את אותה כמות של a־ים ו־b־ים ,ניאלץ לזכור את כמות ה־a־ים שנראה ,ובגלל ש־ iאינו חסום ,לא נוכל לבנות אס"ד שמקבל אותה עם מספר מצבים סופי .שימו לב כי זו רק אינטואיציה ואינה הוכחה. נוכיח כעת את משפט "למת הניפוח" ,המאפשר לנו להראות כי השפה Lאכן אינה רגולרית באופן פורמלי. 6 משפט ) 3.1למת הניפוח( יהי Mאס"ד בעל mמצבים ,ותהי ∗ x ∈ Σמחרוזת כך ש־| ,m ≤ |xו־) .x ∈ L(M אזי ,קיים פירוק x = uvwכך ש: )א( .|uv| ≤ m )ב( .|v| > 0 )ג( לכל i ∈ N0מתקיים ) .uv i w ∈ L(Mהוכחה .מכיוון שב־ Mיש רק mמצבים שונים ,במהלך הריצה של M על ,xלאחר קריאת mהתווים הראשונים של xנקבל סדרה של m + 1מצבים בהם עבר האוטומט בריצה על .x לכן ,לפי עקרון "שובך היונים" ,בהכרח קיים מצב qבסדרה זו שחזר על עצמו פעמיים. נגדיר את הפירוק הבא עבור ,xכאשר uתהיה הרישא של xשההרצה של Mעליה תגיע אל qבפעם הראשונה, נגדיר את vלהיות הקטע של xבין שתי ההופעות של ,qולסיפא הנותרת של xנקרא .w נשים לב כי אכן .x = uvwכמו כן ,נראה כי שלושת התנאים מתקיימים: )א( בחרנו את u, vכך שכאשר נריץ את האוטומט על ,uנגיע לראשונה למצב ,qוכאשר נריץ את האוטומט על v נקבל פעם נוספת את ,qכאשר הבחירה שלנו התאפיינה בכך ש־ ,|v| > 0ובחרנו זאת על פני mהתווים הראשונים ובהם התרחש המעגל על ,qולכן נקבל כי כל uvבתוך mהתווים הראשונים הללו .כלומר.|uv| ≤ m , )ב( הסברנו בסעיף א'. )ג( ,δ ∗ (q0 , uv i w) = δ ∗ (q, v i w) = δ ∗ (q, w) ∈ Fכאשר המעבר הראשון נובע מהרצת הרישא ,uהמעבר השני נובע מכך שעל כל הרצה ממצב qשל ,vהאוטומט חוזר ל־ ,qוקל לראות כי באינדוקציה ניתן להוכיח כי לכל ,iגם המילה v iתחזור ל־ .qלבסוף ,נשאר להריץ את הסיפא wמ־ ,qוזה שייך ל־ Fעפ"י ההנחה שבסוף xמתקבל. סה"כ ,הוכחנו את שלושת התנאים של הפירוק ,x = uvwכנדרש. המשמעות של למת הניפוח היא כי כאשר אוטומט מקבל מילה מספיק ארוכה ,נוכל לנפח אותה ע"י הכפלת קטע בתוכה ,באופן כזה שגם מילה זו תתקבל ע"ׁ האוטומט. איך נשתמש בלמת הניפוח? נניח שברשותנו שפה ,Lונרצה להוכיח כי Lאינה רגולרית .נוכל להניח בשלילה כי השפה כן רגולרית .ניקח מילה מספיק גדולה ,ונסיק בעזרת למת הניפוח כי ניתן לנפח אותה ,אך לכל חלוקה שלה x = uvwנראה כי למת הניפוח אינה מתקיימת ,ולכן ההנחה כי השפה שלנו רגולרית שגויה. נציג כעת בעזרת למת הניפוח כי השפה שהראינו לעיל אינה רגולרית. משפט 3.2השפה } L = {ai bi | i ≥ 0אינה רגולרית. הוכחה .נניח בשלילה ש־ Lרגולרית .אזי ,קיים אס"ד Mכך ש־) .L = L(Mיהי mמספר המצבים ב־ .M נבחר את המילה .x = am bmלפי למת הניפוח ,ניתן לפרק ,x = uvwכך ש־.uw ∈ L(M ) ,|v| > 0 ,|uv| ≤ m בגלל ש־ ,|uv| ≤ mורצף mהתווים הראשונים הוא ,amבהכרח נקבל ש־ vהוא רצף ajכאשר .7 j > 0 ∈ ,L(M ) 3 uw = am−j bjבסתירה. ולכן ,נקבל כי ) / L(M 7כי .|v| > 0 7 חלק III אוטומטים לא דטרמיניסטים 4 המודל הלא דטרמיניסטי בניגוד לאס"ד ,בו כל שלב מוגדר היטב ,באוטומט לא דטרמיניסטי עבור מחרוזת אחת ,wיכול להיות וקיים יותר ממסלול ריצה אחד אפשרי של האוטומט על .wנציג זאת ע"י דוגמא, a, b a q0 q1 a a, b start b q3 b q2 למשל ,עבור המחרוזת w = abaabקיימת ריצה שמתקבלת, q0 → q0 → q0 → q1 → q3 → q3 נאמר שאוטומט ל"ד מקבל מילה wאם קיימת ריצה של האוטומט המקבלת את המילה. שימו לב כי השפה שאותה מזהה המכונה לעיל היא } ∗.L = {ua2 v ∪ ub2 v | u, v ∈ Σ נגדיר כעת פורמלית את האוטומט הל"ד, הגדרה 4.1אוטומט סופי לא דטרמיניסטי M 8מורכב מחמישיה ) (Σ, Q, q0 , F, δכאשר Σ, Q, q0 , Fמוגדרים באותו אופן כמו באס"ד ,אך δהיא פונקציה ).9 δ : Q × Σ → P (Q כפי שעשינו עבור אס"ד ,גם עבור אסל"ד נגדיר את ∗ δכדי להרחיב קריאה של אות לקריאה של מחרוזת ,ע"י הכלל הרקורסיבי }δ ∗ (q, ε) = {q )δ(q 0 , a [ = )δ ∗ (q, wa )q 0 ∈δ ∗ (q,w למעשה δ ∗ ,מחזירה את קבוצת כל המצבים האפשריים שניתן להגיע אליהם עם המחרוזת wוממצב .q 8ובקיצור ,אסל"ד. 9כלומר ,בהינתן מצב qואות ,σהפונקציה δשולחת אותנו לקבוצה של מצבים אפשריים אליהם האוטומט יכול להתקדם באופן ל"ד. 8 הגדרה 4.2השפה המתקבלת ע"י האסל"ד Mהיא ∗ }∅ =L(M ) = {w | δ (q0 , w) ∩ F 6 שאלה מרכזית שעומדת בפנינו היא האם האוטומט הלא דטרמיניסטי הוא חזק יותר מן המודל הדטרמיניסטי. כלומר ,האם נוכל כעת לזהות שפות שלא היו רגולריות במובן של אוטומט דטרמיניסטי? המשפט הבא יענה על התשובה ,שהיא כי לא הוספנו כלל כוח חישובי. משפט 4.3יהי Mאסל"ד ) .(Σ, Q, q0 , F, δאזי קים אס"ד M 0כך ש־) .L(M 0 ) = L(M הוכחה .נבנה אס"ד שלמעשה "יסמלץ" את ריצת ,Mכך ש־) .L(M ) = L(M 0נגדיר ) .M 0 = (Σ0 , Q0 , q00 , F 0 , δ 0 נגדיר כעת את רכיביי החמישיה, } Σ0 = Σ, Q0 = P (Q), q00 = {q0 כעת ,נגדיר את פונקצית המעברים ,עבור R ∈ P (Q) = Q0להיות [ = )δ 0 (R, a )δ(q, a q∈R כלומר ,עבור מצב ב־ ,M 0שהוא קבוצת מצבים ב־ δ 0 ,Mתעביר אותנו אל קבוצת המצבים שמהם ניתן להגיע מכל המצבים שיש ב־.10 R כמו כן.F 0 = {q 0 | q 0 ∩ F 6= ∅} , כעת ,נניח כי ) .w ∈ L(Mאזי ,קיים מסלול חישוב של Mהמקבל את .wבאופן אותו בנינו את ,M 0ריצה של M 0מדמה ריצה של כל המסלולים על .wבהכרח נגיע כאן למצב ב־ Q0המכיל את המצב המקבל את wב־,Q ולכן לפי ההגדרה של M 0 ,F 0תקבל את .w ∈ ,wאזי כל מסלול חישוב על wאינו מתקבל ב־ .Mולכן ,בריצה של Mעל ,wאין מצב מקבל אם ) / L(M qacc ∈ Fהמקבל את .wולכן ,בריצת M 0לא ייתכן שבשלב מסוים נגיע למצב מקבל ,q 0 ∈ Q0שכן זה אומר כי קיים qacc ∈ Fכך ש־ ,qacc ∈ q 0ומאופן הבנייה זה אומר כי קיים מסלול ריצה של wעל Mשמגיע ל־ ,qacc בסתירה. ולכן ,הוכחנו סה"כ כי ) ,L(M ) = L(M 0כנדרש. 4.1 סגירות השפות הרגולריות ברצוננו להראות כי קבוצת השפות הרגולריות סגורה תחת פעולות שונות .כלומר ,אם ברשותנו שפה רגולרית Lאו שתי שפות רגולריות ,L1 , L2מה נוכל לומר על הרגולריות של השפות .11 L∗ ,L ,L1 ∩ L2 ,L1 ∪ L2 ∈ .ε שימו לב! ∗ 12 ε ∈ Lללא תלות אם ε ∈ Lאו / L 10נציין ששם אחר לאוטומט שבנינו עכשיו הוא אוטומט החזקה. 11תזכורת L∗ = {x1 x2 . . . xl | ∀i = 1, . . . , l : xi ∈ L, l ≥ 0} : 12וזאת כי ניתן לקחת בהגדרת הקבוצה את .l = 0 9 4.1.1 מעברי ε עד עתה ,הפונקציה δהוגדרה עבור זוג של מצב ואות .נוסיף ל־ δאת האפשרות לעבור ממצב qiלמצב qjללא קריאה של קלט. איך נוכל להגדיר זאת במודל הלא דטרמיניסטי ,מבלי לשנות את הגדרתו? אם אנחנו רוצים להוסיף מעבר εשל ,δ(qi , ε) = qjונניח כי .δ(q, a) = qiאזי ,נוסיף את המעבר הל"ד } .13 δ(q, a) = {qi , qj אם המצב ההתחלתי הוא ,qiאז למעשה מעבר εהוא כמו מצב התחלתי נוסף. נשים לב לתכונה חשובה בה נשתמש ,כי אם שפה Lרגולרית באמצעות אס"ד החוזר למצב ההתחלתי שלו ,אזי Lרגולרית גם 14 באמצעות אס"ד שלא חוזר למצב ההתחלתי שלו .כיצד ניתן להוכיח זאת? 4.1.2 סגירויות משפט 4.4תהיינה L1ו־ L2שפות רגולריות .אזי L1 ∪ L2 ,היא שפה רגולרית. הוכחה .יהיו האוטומטים ) M2 = (Σ2 , Q2 , q02 , F2 , δ2 ) ,M1 = (Σ1 , Q1 , q01 , F1 , δ1אוטומטים סופיים דטרמיניסטים כך ש־) .L2 = L(M2 ) ,L1 = L(M1נניח בה"כ כי ∅ = .15 Q1 ∩ Q2 נמצא אסל"ד Mכך ש־ ,L(M ) = L1 ∪ L2ומן השקילות שהוכחנו ,יהיה קיים אס"ד ˆ Mהמקבל את .L1 ∪ L2 מה יהיה רעיון הבניה? נבחר באופן ל"ד האם להריץ את M1או את ,M2באמצעות שימוש במעברי .16 ε באופן פורמלי ,נגדיר ) M = (Σ, Q, q0 , F, δכך, .Σ = Σ1 ∪ Σ2 } .Q = Q1 ∪ Q2 ∪ {q0 .F = F1 ∪ F2 לכל ,a ∈ Σנגדיר את פונקציית המעברים ( δ1 (q, a) q ∈ Q1 = )δ(q, a δ2 (q, a) q ∈ Q2 ו־} .δ(q0 , ε) = {q01 , q02 הוכחת הנכונות מושארת כתרגיל. 13בהתאם לכך ניתן להוסיף עוד מצבי מעבר ל"ד. 14ניתן לשכפל את המצב ההתחלתי ,כאשר כל מצב שניגש אל המצב ההתחלתי ייגש אל המצב החדש ,והקשתות היוצאות מהמצב ההתחלתי הן בדיוק הקשתות היוצאות מן המצב ההתחלתי. 15חשבו מדוע אפשר להניח זאת. 16שימו לב ,ניתן גם להימנע משימוש במעברי ,εחישבו כיצד ניתן לעשות זאת. 10 ` 4.5תהי Lשפה רגולרית ,אזי Lרגולרית. ˆe `o uˆı .aיהי ) M = (Σ, Q, q0 , F, δאס"ד כך ש־) .L = L(M ˚e ¨a a ¨¨¸c נגדיר ) .17 M = (Σ, Q, q0 , F , δהוכחת הנכונות מושארת כתרגיל. ` 4.6יהיו L1 , L2שפות רגולריות .אזי L1 ∩ L2 ,רגולרית. ˆe `o uˆı .aלפי כללי דה־מורגן ,L1 ∩ L2 = L1 ∪ L2 ,ולכן לפי המשפטים הקודמים ,נקבל את הדרוש. ˚e ¨a a ¨¨¸c ` 4.7יהיו L1 , L2שפות רגולריות .אזי L1 · L2 ,רגולרית. ˆe `o uˆı .aיהיו ) M2 = (Σ2 , Q2 , q02 , F2 , δ2 ) ,M1 = (Σ1 , Q1 , q01 , F1 , δ1אס"ד כך ש־) .L2 = L(M2 ) ,L1 = L(M1 ˚e ¨a a ¨¨¸c נבנה אסל"ד ) M = (Σ, Q, q0 , F, δכך ש־ .L(M ) = L1 · L2 רעיון הבנייה יהיה לבנות אוטומט שבתחילה מריץ את ,M1ולאחר מכן עובר ממצבי הקבלה של M1אל המצב ההתחלתי של ,M2ע"י שימוש במעבר .ε באופן פורמלי, .Σ = Σ1 ∪ Σ2 18 . Q = Q1 ∪ Q2 .q0 = q01 .F = F2 נגדיר כעת את פונקציית המעברים, q ∈ Q1 q ∈ Q2 ( )δ1 (q, a = )δ(q, a )δ2 (q, a ולכל מצב מקבל q ∈ F1של ,M1נגדיר .δ(q, ε) = q02 הוכחת הנכונות מושארת כתרגיל. ` 4.8תהי Lשפה רגולרית .אזי ∗ Lרגולרית. ˆe `o uˆı .aהוכחה .יהי ) M = (Σ, Q, q0 , F, δכך ש־) ,L = L(Mוכך ש־ Mאינו חוזר למצב ההתחלתי .19 ˚e ¨a a ¨¨¸c נבנה ) ∗ M ∗ = (Σ, Q, q0 , F ∗ , δאסל"ד עם מעברי εכך ש־ ∗.L(M ∗ ) = L נגדיר } ,δ ∗ (q, a) = δ(q, a) ,F ∗ = F ∪ {q0ולכל מצב מקבל .δ ∗ (q, ε) = q0 ,q ∈ F 17כלומר ,הפכנו כל מצב מקבל למצב לא מקבל ,וכל מצב לא מקבל למצב מקבל. 18בה"כ נניח כי ∅ = Q1 ∩ Q2 19זה אפשרי לפי השקילות שהוכחנו לעיל. 11 רעיון הבנייה הוא שהאוטומט יורץ ,ואם הגיע מתישהו לשלב מאשר ,האוטומט מחליט באופן ל"ד האם להתחיל מההתחלה על הסיפא של המילה .20 הוכחת הנכונות מושארת כתרגיל. חלק IV ביטויים רגולריים ביטויים רגולרים ־ הגדרות וכוח הביטוי 5 עד כה ,ע"מ להראות כי שפה היא רגולרית ,נדרשנו למצוא אוטומט המקבל אותה .נציג כעת צורה מעט שונה לאפיין שפות רגולריות. 5.1 הגדרת הביטויים הרגולרים הגדרה 5.1הגדרה) .ביטוי רגולרי( נגדיר באופן אינדוקטיבי ביטוי רגולרי, .1לכל {a} ,a ∈ Σהוא ביטוי רגולרי. .2אם α, βהם ביטויים רגולרים ,אזי 21 α ∪ βהוא ביטוי רגולרי α · β ,הוא ביטוי רגולרי. .3אם αהוא ביטוי רגולרי ,אזי ∗ αהוא ביטוי רגולרי. דוגמא 5.2דוגמא .נביט בביטוי הרגולרי ∗} .{a}∗ · {bכיצד נוכל לתרגם זאת אל שפה? עבור ביטוי רגולרי ,α השפה ש־ αמייצג מוגדרת באופן האינדוקטיבי: .1אם } ,α = {aאזי השפה המתאימה תהיה השפה }.Lα = {a .2אם ,α = β · γאזי .Lα = Lβ · Lγאם ,α = β ∪ γאזי .Lα = Lβ ∪ Lγ .3אם ∗ ,α = βאזי ∗) .Lα = (Lβ מכאן ,השפה המיוצגת ע"י הביטוי ∗} {a}∗ · {bהיא }L = {ai bj | i, j ≥ 0 כל ביטוי רגולרי מייצג שפה כלשהי באופן אותו הגדרנו לעיל .לעומת זאת ,לא לכל שפה קיים ביטוי רגולרי המייצג אותה. דוגמאות נוספות לביטויים רגולרים ,עבור שפת כל המילים מאורך זוגי מעל } ,Σ = {aהוא ∗) ,(a · aומאורך אי־זוגי .(a · a)∗ · a 20הרי ,מילה ∗ w ∈ Lבנויה משרשור של n ∈ Nמילים .w1 , . . . , wn ∈ Lהאוטומט למעשה מנחש באופן ל"ד את החלוקה הנ"ל. 21סימון נוסף ,שהוגדר כך בהרצאותיו של פרופ' פלד ב"אוטומטים ושפות פורמליות" ,הוא ע"י +ולא ∪. 12 נוכיח כעת ,כי כוח הביטוי של הביטויים הרגולרים הוא בדיוק קבוצת השפות הרגולריות ,בעזרת המשפט הבא. 5.2 כוח הביטוי של הביטויים הרגולרים משפט 5.3תהי Lשפה .אזי L ,רגולרית ⇒⇐ קיים ביטוי רגולרים αכך ש־ αמייצג את .L הוכחה (⇒) .נניח כי αהוא ביטוי רגולרי המייצג את .Lנוכיח כי Lרגולרית ,באינדוקציה על הבנייה. בסיס .לכל ,a ∈ Σהשפה } {aהיא רגולרית .22 האינדוקציה. .1נניח ש־ .α = β · γלפי הנחת האינדוקציה ,השפות המיוצגות ע"י β, γרגולריות ,ושרשור שפות רגולריות הינו שפה רגולרית. .2נניח ש־ .α = β ∪ γלפי הנחת האינדוקציה ,השפות המיוצגות ע"י β, γרגולריות ,ואיחוד שפות רגולריות הינו שפה רגולרית. .3נניח ש־ ∗ .α = βלפי הנחת האינדוקציה ,השפה המיוצגת ע"י βרגולרית ,והוכחנו סגירות של השפות הרגולריות עבור האופרטור ∗. סה"כ ,הוכחנו באינדוקציה על הבנייה כי הביטוי הרגולרי αמייצג שפה רגולרית. )⇐( תהי Lשפה רגולרית .נמצא ביטוי רגולרי αהמייצג את .L Lרגולרית ,ולכן קיים Mאס"ד ) (Σ, Q = {q1 , . . . qm }, q1 , F, δכך ש־.L(M ) = L נגדיר k Ri,j }= {w | δ ∗ (qi , w) = qj ∧ M doesn’t pass on a state ql , l > k while passing over w ובאופן פורמלי, k Ri,j }= {w = a1 . . . ar | δ(qi , a1 ) = qi1 , . . . δ(qir−1 , ar ) = qj : i1 , . . . , ir−1 ≤ k שימו לב ־ לא התחייבנו ש־ qi , qjמקיימים את המגבלה .המצבים החסומים הם המצבים שבינהם. k Ri,jקיים ביטוי רגולרי. טענה .לכל i, j, kלשפה הוכחה .באינדוקציה על ,k 0 Ri,jתהיה שפה של אותיות בודדות בלבד ,כי קוראים מילה במצב qiומסיימים ב־ qjללא מצבי ביינים. בסיס. מכאן ,קל לבנות ביטוי רגולרי עבורה. 22שפה המכילה מילה אחת היא בהכרח רגולרית. 13 k+1 k .Ri,jמתקיים Ri,jקיים ביטוי רגולרי ,ונוכיח זאת עבור האינדוקציה .נניח כי ל־ ∗ k+1 k k k k Ri,j = Ri,j ∪ Ri,k+1 · Rk+1,k+1 · Rk+1 ,j וזאת כי ,עבור מילה מסוימת הרצה על האוטומט כך שלא עוברת במצב יותר גדול מ־ ,k + 1או שהיא תעבור במצבים בלי לעבור את ,kאו שתעבור בתחילה עד המצב ,k + 1 משם תחזור מספר פעמים כלשהו אל k + 1אך ורק בשימושים במצבים שלא גדולים מ־ ,kואז תלך אל jמ־ k + 1אך ורק ע"י מצבים שלא גדולים מ־.k לפי הנחת האינדוקציה ,לכל השפות בשיוויון יש ביטוי רגולרי .הביטוי הרגולרי של הנ"ל. k+1 Ri,j יבנה בדיוק את השיוויון לכן ,הוכחנו את הטענה. כעת ,מתקיים כי m R1,j [ = ) L(M qj ∈F m R1,jקיים ביטוי רגולרי .לכן ,הביטוי הרגולרי עבור Lיהיה איחוד על הביטויים הללו. מדוע? .23הוכחנו כי לכל ולכן ,ל־) L(Mיש ביטוי רגולרי. חלק V משפט נרוד נציג אפיון נוסף לרגולריות של שפה ,באמצעות אלמנטים מתורת הקבוצות. קבוצות פורשות 6 6.1 הגדרת יחס השקילות על ∗Σ הגדרה 6.1תהי Lשפה .נאמר ששתי מילים ∗ x, y ∈ Σשקולות ב־ ,Lונסמן זאת ע"י ,x ≡L yאם לכל ∗ ,w ∈ Σמתקיים .xw ∈ L ⇐⇒ yw ∈ L נשים לב ,כי היחס שהגדרנו לעיל הינו יחס שקילות ב־ ∗.Σ דוגמא 6.2עבור השפה }) ,Σ = {a} ,L3 = {w | |w| ≡ 0(mod3אזי .a ≡L3 a4 23מילה מתקבלת כמסלול באוטומט מהמצב ההתחלתי אל מצב מקבל ,שם ניתן להשתמש בכל מצב בלי הגבלה. 14 הגדרה 6.3תהי ∗ .S ⊆ Σנאמר ש־ Sהיא קבוצה פורשת 24אם לכל מילה ∗ x ∈ Σקיים y ∈ Sכך ש־.x ≡L y למעשה ,קבוצה פורשת היא קבוצת נציגים מכל מחלקת שקילות ביחס השקילות ,או בשם אחר ,קבוצת המנה. דוגמא 6.4עבור L3מהדוגמא הקודמת S = {a, aa, aaa} ,הינה קבוצה פורשת .שימו לב כי לא דרשנו מינימליות עבור .Sלמשל S = {a, aa, aaa, a4 } ,גם היא קבוצה פורשת. 24באנגלית .Spanning Set 15 6.2 משפט Myhill Nerode משפט (Myhill Nerode) 6.5 השפה Lרגולרית ⇒⇐ קיימת עבורה קבוצה פורשת סופית. הוכחה .הוכחה (⇐) .נניח כי Lרגולרית .ולכן ,קיים אס"ד ) M = (Σ, Q = {q0 , . . . , qm }, q0 , F, δכך ש־) .L = L(M בה"כ נניח כי לכל ,iקיימת מילה xiכך ש־ .25 δ ∗ (q0 , xi ) = qiנגדיר } .S = {x0 , . . . , xm טענה S .קבוצה פורשת. הוכחה .תהי ∗ .y ∈ Σנוכיח שקיימת xi ∈ Sכך ש־.xi ≡L y נניח ש־ .δ ∗ (q0 , y) = qjנוכיח כי .xj ≡L yכלומר ,נוכיח כי לכל ∗.xj w ∈ L ⇐⇒ yw ∈ L ,w ∈ Σ xw ∈ L ⇐⇒ δ ∗ (q0 , xj w) ∈ F ⇐⇒ δ ∗ (qj , w) ∈ F ⇐⇒ δ ∗ (q0 , yw) ∈ F ⇐⇒ yw ∈ L ולכן הוכחנו כי Sפורשת ,והרי סופית. )⇒( תהי Sקבוצה פורשת סופית עבור השפה .Lבה"כ נניח כי Sהיא פורשת מינימלית .26 נבנה אס"ד Mכך ש־) .L = L(Mנסמן } S = {x0 , . . . , xmכך ש־.27 x0 ≡L ε נגדיר } ,Q = {q0 , . . . , qmכאשר כל מצב qiמסמל את המילה .xi ∈ S נגדיר } ,F = {qi | xi ∈ Lונגדיר את פונקציית המעברים when xi · a ≡L xj n δ(qi , a) = qj כלומר ,ההתקדמות ממצב qiבראיית האות ,aתהיה למצב אשר מילתו שקולה .28 xi · a הרחבת פונקציית המעברים ∗ δתהיה 29 xi w ≡L xj n δ ∗ (qi , w) = qj נוכיח כעת כי ) .L = L(M ) y ∈ L ⇐⇒ εy ∈ L ⇐⇒ x0 y ∈ L ⇐⇒ xr ∈ L ⇐⇒ qr ∈ F ⇐⇒ δ ∗ (q0 , y) ∈ F ⇐⇒ y ∈ L(M 25זה אפשרי כי במידה וקיים מצב שאין עבורו מילה שכזאת ,ניתן למחוק את המצב מן האוטומט ,והאוטומט יזהה את אותה השפה. 26כלומר ,לא קיימים xi , xj ∈ Sכך ש־ ,xi ≡L xjאו בניסוח אחר ,לכל ∗ y ≡L xk ,y ∈ Σעבור xk ∈ Sאחד ויחיד. 27זה אפשרי כי הרי Sפורשת. 28ובהכרח קיים מצב כזה ,כי Sפורשת ,והאוטומט שלנו אכן דטרמיניסטי ,לפי ההנחה כי Sמינימלית. 29ניתן להוכיח זאת באינדוקציה. 16 חלק VI דקדוקים דקדוקים והגדרתם 7 הגדרה 7.1דקדוק Γ 30מורכב מהרביעיה )(Σ, V, S, Πכאשר )א(Σ־ הוא הא"ב ,לאיברי Σנקרא טרמינלים. )ב( V־ קבוצה סופית של משתנים .Xi , Yi , Zi )ג( S ∈ Vמשתנה התחלתי. )ד( Π־ קבוצה סופית של הפקות hi }li=1 31 ∗ → {giכאשר ).gi , hi ∈ (V ∪ Σ דוגמא 7.2נגדיר את הדקדוק הבא ע"י הצגת פרטי הרביעייה }Σ = {a, b }V = {S, X }Π = {S → aXb, X → aXb, X → ε איך הדקדוק יוצר מילים? .S → aXb → aaXbb → aabbלמעשה ,בהמשך נגדיר את שפת הדקדוק כשפת המילים ב־ ∗ Σשניתן להגיע אליהן מ־ Sע"י ההפקות הנתונות .במקרה זה ,השפה שתתקבל תהיה }.{ai bi | i ≥ 1 באופן אינטואיטיבי ,אנו מתחילים במעין משתנה התחלה ,ממנו מתקדמים ע"י כללי גזירה ,ומילה מעל ∗ Σשייכת לדקדוק אם יצרנו אותה בעזרת ההפקות. הגדרה 7.3עבור ∗) ,u, v ∈ (Σ ∪ Vנאמר ש־ u ⇒ vאם קיימת הפקה gi → hi ∈ Πכך ש־ u = r · gi · sו־,v = r · hi · s Π ∗) .r, s ∈ (Σ ∪ V כלומר ,ניתן להגיע מתבנית אחת אל תבנית אחרת אם ניתן לגזור מתת־מילה שלה אל מילה אחרת ע"י הפקה. ∗ הגדרה 7.4עבור ∗) ,u, v ∈ (Σ ∪ Vנאמר ש־ u ⇒ vאם קיימות ∗) u1 , . . . , un ∈ (Σ ∪ Vכך ש־.u ⇒ u1 ⇒ . . . ⇒ un ⇒ v Π 7.1 Π שפת הדקדוק הגדרה 7.5יהי ) Γ = (Σ, V, S, Πדקדוק .השפה המתקבלת ע"י Γהיא o n ∗ w ∈ Σ∗ | S ⇒ w Π 30ובאנגלית .Grammar 31או "כללי גזירה" .באנגלית .Productions 17 = )L(Γ Π Π Π 8 8.1 דקדוקים רגולריים הגדרת דקדוק רגולרי הגדרה 8.1דקדוק Γקרוי דקדוק רגולרי אם כל ההפקות ב־ Γהן מהצורות U, W ∈ V, a ∈ Σ U ∈ V, a ∈ Σ U → aW U →a ( בדקדוק רגולרי ,בצד שמאל של ההפקה מותר אך ורק משתנה ובצד ימין תמיד יהיה טרמינל בודד או טרמינל ולאחריו משתנה. דוגמא 8.2עבור דקדוק עם } Σ = {a, b} ,V = {S, X, Yוההפקות S → aX, S → aY X → aY, X → aX, Y → bY, Y → b ∗ ∗ זהו דקדוק רגולרי .שפת דקדוק היא } L(Γ) = {ai bj | i > 0, j > 0וזאת כי .S ⇒ aX ⇒ ai X ⇒ ai bY ⇒ ai bj Π Π Π Π נציג כעת את הקשר בין דקדוקים רגולרים לשפות רגולריות ,במשפט הבא. 8.2 שקילות לשפות הרגולריות משפט 8.3שפה Lהיא רגולרית ⇒⇐ קיים דקדוק רגולרי Γכך ש־).L = L(Γ הוכחה (⇒) .יהי ).V = {V1 (= S), . . . , Vm } ,Γ = (Σ, V, S, Π נוכיח כי קיים אסל"ד ) M = (Σ, Q, q1 , F, δהמזהה את ) ,L(Γכלומר ,L(M ) = L(Γ) ,ופרטי החמישייה הם } Q = {q1 , . . . , qm } ∪ {qF } F = {qF כעת ,נרצה לבנות את האוטומט Mכך שידמה את יצירת המילה באמצעות הדקדוק .Γנגדיר δ1 , δ2חלק מפונקצית המעברים שלנו באופן הבא: }δ1 (qi , a) = {qj | Vi → aVj ∈ Π 18 כלומר ,נמשיך ממצב qiעם האות aאל כל המצבים המתאימים למשתנים מהם ניתן להגיע ע"י הפקה .אך עדיין לא התייחסנו אל הפקה בה משתנה הולך לאות אחת בלבד ,ולשם כך נגדיר את δ2באופן הבא: ( qF Vi → a ∈ Π = )δ2 (qi , a ∅ otherwise ולבסוף נגדיר ).δ(qi , a) = δ1 (qi , a) ∪ δ2 (qi , a ∗ כעת נוכיח כי אכן ) .L(M ) = L(Γתהי מילה ) .w = u1 . . . ul ∈ L(Γלפי הגדרת שפת הדקדוק,V1 ⇒ w , Π כלומר, V1 ⇒ u1 Vi1 ⇒ u1 u2 Vi2 ⇒ . . . ⇒ u1 . . . ul−1 Vl−1 ⇒ w Π Π Π Π Π ולכן קיימות ב־ Πההפקות V1 → u1 Vi1 , Vi1 → u2 Vi2 , . . . , Vl−1 → ul ולכן קיימים ב־ Mהמעברים ) qi1 ∈ δ(q1 , u1 ), qi2 ∈ δ(qi1 , u2 ), . . . qF ∈ δ(ql−1 , ul וזאת כי לפי הגדרת ,δ1אם קיימת הפקה היא תתבטא במעבר אפשרי בין המצבים ,וקיום ההפקות מגיע מן ההנחה כי ).w ∈ L(Γ סה"כ נקבל כי ) ,qF ∈ δ ∗ (q1 , u1 . . . ulולכן נקבל כי ) .w ∈ L(Mבכיוון השני ,אם מילה שייכת ל־) ,L(Mאזי קיים מסלול המקבל את המילה באסל"ד ,ולפי ההגדרה ,כל מעבר מסמל הפקה ב־ ,Πולכן באופן דומה נקבל סדרת הפקות היוצרת את ,wולכן ).w ∈ L(Γ )⇐( נניח כי Lרגולרית .יהי ) M = (Σ, Q = {q1 , . . . qm }, q1 , F, δאס"ד כך ש־) .L = L(Mנבנה דקדוק רגולרי ) Γ = (Σ, V, S, Πכך ש־) .L(Γ) = L(M נגדיר ) ,V = (V1 (= S), . . . , Vmונגדיר את ההפקות Vi → aVj ∈ Π if δ(qi , a) = qj Vi → a ∈ Π if δ(qi , a) ∈ F ∗ נוכיח כעת כי ) .L(M ) = L(Γתהי ) V1 ⇒ w .w = u1 . . . ul ∈ L(Γולכן Π V1 ⇒ u1 Vi1 ⇒ u1 u2 Vi2 ⇒ . . . ⇒ u1 . . . ul−1 Vl−1 ⇒ w Π Π Π Π Π ולכן קיימות ב־ Πההפקות V1 → u1 Vi1 , Vi1 → u2 Vi2 , . . . , Vl−1 → ul ולכן לפי הגדרת הדקדוק, δ(q1 , u1 ) = qi1 , δ(qi1 , u2 ) = qi2 , . . . δ(qil−1 , ul ) ∈ F ולכן סה"כ ,δ ∗ (q1 , u1 . . . ul ) ∈ Fולכן ) .w ∈ L(Mהכיוון השני דומה. 19 שפות חסרות הקשר 9 את השפות הרגולריות הגדרנו בעזרת מושגים המבוססים על מודל חישובי המזהה אותן ,ולבסוף למדנו דקדוקים. כעת ,נעבוד בכיוון ההפוך ־ נגדיר את המושג "שפה חסרת הקשר" על בסיס דקדוק חסר הקשר ולבסוף נציג את המודל החישובי המקבל אותן .32 9.1 דקדוק חסר הקשר הגדרה 9.1דקדוק Γקרוי דקדוק חסר הקשר 33אם כל ההפקות ב־ Γהן מהצורה ∗)α ∈ (V ∪ E V →α נציין כי דקדוק ח"ה לא בודק מי נמצא מימינו או משמאלו של ,Vכלומר ,מתעלם מההקשר של .V הגדרה 9.2שפה Lקרויה שפה חסרת הקשר אם קיים דקדוק ח"ה Γכך ש־).L = L(Γ 9.2 רגולרית מול חסרת הקשר משפט 9.3כל שפה רגולרית היא ח"ה. זה מתקיים באופן טריוויאלי שהרי כל דקדוק רגולרי הוא ח"ה ולכן לפי הגדרה כל שפה רגולרית היא ח"ה. משפט 9.4קיימת שפה ח"ה שאיננה רגולרית. הוכחה .ידוע כי } L = {ai bi | i > 0אינה רגולרית .נוכיח כי Lח"ה .הדקדוק חסר ההקשר היוצר אותה הוא S → aSb S → ab דוגמא 9.5נציג דוגמא לדקדוק ח"ה ,עם X, Y, Sכמשתנים, a, b ∈ Σ Y → bY Y →b S → aXbY X → aX X→a זה דקדוק ח"ה .נרצה להראות איך גוזרים באמצעות דקדוק ח"ה זה את .a2 b3 S ⇒ aXbY ⇒ aabY ⇒ aabbY ⇒ a2 b3 S ⇒ aXbY ⇒ aXbbY ⇒ aXbbb ⇒ a2 b3 S ⇒ aXbY ⇒ aXbbY ⇒ aabbY ⇒ a2 b3 32שייקרא אוטומט מחסנית. 33ובקיצור ,ח"ה 20 כעת ,אם נוסיף לדקדוק את ההפקה S → aabbbתתקבל הגזירה S ⇒ aabbb נבנה כעת עץ גזירה ל־:S S b Y Y a X a b b 2שורש העץ תמיד יהיה המשתנה ההתחלתי. 2הבנים של כל קודקוד שהוא משתנה תמיד יהיו הצד הימני של הפקה. 2העלים יהיו האותיות. 2את העלים קוראים משמאל לימין ומקבלים את הגזירה. עץ גזירה זה זהה ל־ 3הגזירות הראשונות ,אך עבור הגזירה האחרונה נקבל את עץ הגזירה הבא: S b 9.3 b b a דקדוק בצורת חומסקי הגדרה 9.6הדקדוק Γקרוי דקדוק בצורת חומסקי אם כל ההפקות ב־ Γהן מהצורות V, V1 , V2 ∈ V a∈Σ 21 V → V1 V2 V →a a נשים לב כי דקדוק מצורה זו הוא ח"ה. משפט 9.7יהי Γדקדוק ח"ה .אזי קיים דקדוק Γ0בצורת חומסקי כך ש־) .34 L(Γ) = L(Γ0 הגדרה 9.8דקדוק ח"ה Γקרוי דקדוק ח"ה חיובי אם אין בו הפקות מהצורה .V → ε משפט עזר .יהי Γדקדוק ח"ה .אזי קיים דקדוק ח"ה חיובי Γ0כך ש־) L(Γ) = L(Γ0או }.35 L(Γ) = L(Γ0 ) ∪ {ε הגדרה 9.9דקדוק ח"ה Γקרוי דקדוק ח"ה מסתעף אם אין ב־ Γהפקות מהצורה .V1 → V2 : V1 , V2 ∈ V מדוע אנו רוצים להוכיח שקילות בין צורת חומסקי לצורה חסרת הקשר? ראינו כי ניתן לייצג גזירה של מילה בשפה חסרת הקשר ע"י עץ גזירה .אם נעבור לדקדוק בצורת חומסקי ,נקבל עץ גזירה בינארי ,שאותו קל יותר לחקור .36 משפט 9.10יהי Γדקדוק ח"ה .אזי קיים דקדוק ח"ה מסתעף Γ0כך ש־) .L(Γ) = L(Γ0 הוכחה .נחלק את ההוכחה לשני שלבים, .1ראשית נמחוק לולאות .נניח שיש ב־ Γאת ההפקות X1 → X2 , X2 → X3 , . . . , Xn → X1 נמחק את כל ההפקות הללו ונחליף כל הופעה של X1 , . . . , Xnבמשתנה חדש .X .2כעת ,נניח כי בידינו המקרה X1 → X2 , X2 → X3 , . . . , Xn−1 → Xn מספיק להוכיח שניתן למחוק את .Xn−1 → Xnלכל הפקה Xn → αנוסיף הפקה .Xn−1 → αכך נוכל לדאוג שמחיקת המשתנה לא תזיק לדקדוק. כעת ,בעזרת שני הסעיפים הנ"ל יצרנו דקדוק Γ0כנדרש. כעת ,נחזור להוכחת שקילות הדקדוק חסר ההקשר לדקדוק בצורת חומסקי .הוכחה .מספיק שנוכיח שניתן להעביר דקדוק ח"ה חיובי מסתעף לצורת חומסקי. יהי X → αהפקה ב־ Γכך ש־ ∗) α ∈ (Σ ∪ Vאבל לא בצורה חוקית .נניח α = V1 V2 . . . Vnכך ש־) .Vi ∈ (Σ ∪ V נגדיר את המשתנים Z1 . . . Zn−1עם הכללים X → V1 Z1 , Z1 → V2 Z2 , . . . Zn−1 → Vn−1 Vn ובכך יצרנו דקדוק בצורת חומסקי השקול ,כנדרש. 34נציין כי בדקדוק ח"ה לא בצורת חומסקי כן ניתן לקבל את ,εאך בצורת חומסקי נתעלם מ־.ε 35כלומר ,איסור על הפקות V → εמונעות קבלת המילה ,εאך לא פוגמות בשפות אותן ניתן לקבל ע"י הדקדוק. 36למשל ,אם עומק העץ הוא nאז רוחבו הוא לכל היותר .2n 22 9.4 משפט בר הילל ־ למת הניפוח לשפות חסרות הקשר כעת ,נציג את המטרה המרכזית שלשמה הוכחנו את שקילות דקדוק חומסקי לדקדוקים חסרי ההקשר ,ע"י הצגה של למת ניפוח בעלת משמעות דומה ללמת הניפוח בשפות הרגולריות. משפט 9.11יהי Γדקדוק חומסקי בעל nמשתנים .תהי ) z ∈ L(Γכך ש־ .|z| > 2nאזי ניתן לפרק את z ל־ z = uvwxyכך ש־ .|vx| > 0 .1 .|vwx| ≤ 2n .2 .3לכל .uv i wxi y ∈ L(Γ) ,i ∈ N0 הוכחה .עבור עץ גזירה בעומק ,nהאורך המקסימלי של מילה נגזרת הוא .2n−1 תהי ) z ∈ L(Γכך ש־ .|z| > 2nאזי ,המסלול הארוך ביותר בעץ הגזירה של zכולל לפחות n + 1משתנים. מכיוון שיש ב־ Γרק nמשתנים ,אזי במסלול הארוך ביותר בעץ הגזירה קיים לפחות משתנה אחד שמופיע לפחות פעמיים .נתחיל בקודקוד התחתון במסלול הארוך ביותר בעץ הגזירה ונמשיך לפעם הראשונה שאותו משתנה מופיע בדיוק פעמיים. נסמן את הקודקוד עם המופע הראשון של המשתנה ב־ βואת הקודקוד עם המופע השני של המשתנה ב־ .αכעת, נגדיר hTα i = w hTβ i = v hTα i x hT i = u hTβ i y = uvwxy כעת ,נוכיח כי הפירוק שהגדרנו אכן עונה על הדרישות. .|vx| > 0 .1מכיוון של־ βיש שני בנים ו־ αהוא צאצא של ,βרק מאחד מהם בהכרח יש צאצאים של β שאינם של .α .|vwx| ≤ 2n .2כלומר .| < Tβ > | ≤ 2n ,עפ"י הגדרת βהעומק של Tβהוא לפחות n + 1משתנים ,ולכן .| < Tβ > | ≤ 2n .3מכיוון שהשורש של Tαוהשורש של Tβשווים ,נוכל להמיר את Tαב־ .Tβאו הפוך ועדיין יהיה לנו עץ גזירה ב־.Γ ) u < Tβ > y ∈ L(Γולכן ) ,u < Tα > y ∈ L(Γאבל )uv 0 wx0 = uvw = u < Tα > y ∈ L(Γ וגם מתקיים ) ,uv < Tα > y ∈ L(Γאזי גם ) .uv < Tβ > xy ∈ L(Γאבל )uv 2 wx2 y = uvvwxxy = uv < Tβ > xy ∈ L(Γ נמשיך ונקבל את תנאי למת הניפוח לכל .i ∈ N0 23 משפט 9.12השפה } L = {ai bi ci | i > 0אינה חסרת הקשר. n n n הוכחה .נניח ש־ Lהיא ח"ה .אזי קיים דקדוק חומסקי בעל nמשתנים כך ש־ .L(Γ) = Lתהי .z = a2 b2 c2 לפי בר־הילל מתקיים z = uvwxyכך ש־) uwy ∈ L(Γו־ .|vwx| ≤ 2nלכן vwx ,כולל לכל היותר 2אותיות מתוך a, b, cולכן כשנמחק מופר האיזון בין שלוש האותיות ,בסתירה. כעת ,נוכיח כמה מסקנות חשובות על דקדוקים בצורת חומסקי. משפט 9.13יהי Γדקדוק בצורת חומסקי בעל nמשתנים .אזי קיימת מילה ) w ∈ L(Γכך ש־ ⇐⇒ |w| ≤ 2n ) L(Γאינה ריקה. הוכחה .נוכיח את הכיוון )⇒( . n נניח ש־) L(Γאינה ריקה .נניח בשלילה שהמילה הקטנה ביותר ב־) ,L(Γשנסמנה ב־ ,tמקיימת .|t| > 2אזי ,לפי בר־הילל ,t = uvwxyכך ש־) .uwy ∈ L(Γאבל | ,|t| > |uwyבסתירה למינימליות של .t משפט 9.14יהי Γדקדוק בצורת חומסקי בעל nמשתנים .אזי ,קיימת ) w ∈ L(Γכך ש־ ⇐⇒ 2n < |w| ≤ 2n+1 ) L(Γאינסופית. הוכחה (⇐) .כיוון זה טריוויאלי ,שכן ניתן לנפח את המילה ובכך ליצור אינסוף מילים שונות. )⇒( נניח ש־) L(Γאינסופית .תהי tהמילה הקטנה ביותר המקיימת .t ∈ L(Γ) .1 .|t| > 2n+1 .2 לפי בר־הילל t = uvwxyכך ש־) .uwy ∈ L(Γנוכיח כעת כי .2n < |uwy| ≤ 2n+1בהכרח |uwy| ≤ 2n+1 בגלל מינימליות של .t > 2n+1 כעת ,מתקיים n n −2 =2 9.5 n+1 − |vwx| ≥ 2 n+1 |uwy| = |t| − |vx| ≥ |t| − |vwx| > 2 סגירויות של שפות חסרות הקשר משפט 9.15תהיינה L1 , L2שפות חסרות הקשר .אזי L1 ∪ L2חסרת הקשר. הוכחה .יהי Γ1 , Γ2דקדוקים ח"ה היוצרים את L1 , L2בהתאמה .נניח בלי הגבלת הכלליות ש־∅ = .37 V1 ∩ V2 נבנה את הדקדוק Γכך ש־ .L(Γ) = L1 ∪ L2 }V = V1 ∪ V2 ∪ {S Π = Π1 ∪ Π2 ∪ {S → S1 , S → S2 }, נשים לב שהדקדוק שבנינו אכן חסר הקשר והוא אכן יוצר את .L1 ∪ L2 V1 , V2 37קבוצת המשתנים של הדקדוקים Γ1 , Γ2בהתאמה. 24 משפט 9.16קיימות שפות חסרות הקשר L1 , L2כך ש־ L1 ∩ L2אינה חסרת הקשר. הוכחה .יהיו } .L2 = {aj bi ci | i, j > 0} ,L1 = {ai bi cj | i, j > 0מתקיים }L1 ∩ L2 = {ai bi ci | i > 0 והוכחנו שזו אינה חסרת הקשר. כעת נוכיח ש־ L1 , L2חסרות הקשר. עבור ,L1הדקדוק המתאים יהיה Y → cY Y →c S → XY X → aXb X → ab ועבור ,L2הדקדוק המתאים יהיה S → XY Y → bY c Y → bc X → aX X→a משפט 9.17קיימת שפה חסרת הקשר Lכך ש־ Lאינה חסרת הקשר. הוכחה .נניח בשלילה שלכל שפה ח"ה L ,Lחסרת הקשר .אזי ,לפי דה־מורגן לשתי שפות חסרות הקשר ,L1 , L2 מתקיים L1 ∩ L2 = L1 ∪ L2 גם חסרת הקשר ,בסתירה למשפט הקודם. משפט 9.18תהי Rשפה רגולרית ו־ Lשפה חסרת הקשר .אזי L ∩ Rהיא חסרת הקשר. הוכחה .יהי Γדקדוק חומסקי חסר הקשר ) (Σ, V, S, Πכך ש־) .L = L(Γיהי ) M = (Σ, Q, q0 , F, δאס"ד כך ש־) .R = L(M ˆ ˆ נבנה דקדוק חסר הקשר Γכך ש־ .L(Γ) = R ∩ Lנגדיר }Vˆ = {Sˆ ∪ θpq | θ ∈ Σ ∪ V, p, q ∈ Q המשמעות של המשתנים θpqהיא ש־ θpqגוזרת מילה wבדקדוק Γכך ש־.δ(p, w) = q נוסיף את כללי הגזירה הבאים, Sˆ → S q0 q .1לכל .q ∈ F X pq → Y pr Z rq .2לכל X → Y Z ∈ Πלכל .p, q, r ∈ Q apq → a .3לכל ,a ∈ Σולכל p, q ∈ Qכך ש־.δ(p, a) = q כעת נוכיח כי אכן ˆ = L ∩ R ).L(Γ הוכחת הנכונות נובעת בדיוק מן הבנייה .38 38אם המילה בחיתוך ,אזי היא גם נוצרת ע"י הדקדוק וגם מתקבלת ע"י האוטומט ,וגזירה שתסמלץ את המסלול תתאים לדרוש .לכיוון ההפוך ,אופן הגזירה יציג את המילה כמילה בדקדוק והמצבים שבכל אות מייצגים את המסלול באוטומט. 25 חלק VII אוטומטי מחסנית ושפות תלויות הקשר מפאת קוצר הזמן אין ביכולתי לסכם את חלק זה ,שהוא אכן בחומר הלימוד .אני מקווה שכל הסיכום עד כה עזר, ומאחל בהצלחה לכולם:) . 26