236353 – אוטומטים ושפות פורמליות 1 ב"ת

‫סמסטר חורף ‪2016-2017‬‬
‫אוטומטים ושפות פורמליות – ‪236353‬‬
‫ת"ב ‪1‬‬
‫המתרגלת האחראית על התרגיל‪ :‬מיכל הורוביץ‬
‫הוראות לפתרון התרגיל‪:‬‬
‫‪-‬‬
‫בכל מקרה בו אתם מתבקשים להוכיח‪ ,‬עליכם לרשום הוכחה פורמלית מלאה‪.‬‬
‫‪-‬‬
‫בכל מקרה בו אתם מנסים להפריך‪ ,‬נסו למצוא דוגמא נגדית קצרה ופשוטה ככל האפשר‪.‬‬
‫‪-‬‬
‫אם נדרש הסבר או נימוק בלבד‪ ,‬עליו להיות קצר אך בעל מבנה כללי של הוכחה (למשל‬
‫הסבר‪/‬נימוק מדוע שתי שפות שוות צריך לכלול שני כיווני הכלה וכו')‪ .‬בפרט‪ ,‬אין צורך‬
‫לספק הוכחות אינדוקטיביות לכל טענות העזר‪.‬‬
‫‪-‬‬
‫בכל מקום בו נדרשת בנייה פורמלית של אוטומט‪ ,‬ניתן להסתפק בשרטוט לתיאור‬
‫פונקציית המעברים‪ ,‬אך יש לרשום הגדרה פורמאלית לשאר הרכיבים‪.‬‬
‫‪-‬‬
‫יש להקפיד על סימון ה"כובעים" כאשר משתמשים בפונקציית המעברים למילים‪.‬‬
‫נושאי התרגיל‪ :‬אוטומט סופי דטרמיניסטי ומושגים בסיסיים‪.‬‬
‫‪ .1‬יהי ‪ Σ‬א"ב כלשהו‪ ,‬ותהיינה ‪ 𝐿, 𝐿1 , 𝐿2‬שפות כלשהן מעל הא"ב ‪ .Σ‬עבור כל אחת מהטענות‬
‫הבאות‪ ,‬קבעו האם מתקיים שיוויון‪ ,‬או שמתקיימת הכלה בכיוון אחד בלבד‪ ,‬או שלא‬
‫מתקיימת הכלה באף כיוון‪ .‬עבור כל טענה של שיוויון או הכלה עליכם להוכיח את תשובתכם‪.‬‬
‫עבור כל טענה שאין הכלה‪ ,‬יש לספק דוגמה נגדית‪.‬‬
‫א)‬
‫}𝜖{ ∖ ∗𝐿 = ∗)}𝜖{ ∖ 𝐿(‬
‫ב)‬
‫∗) ∗𝐿( = ∗𝐿‬
‫ג)‬
‫∗) ‪(𝐿∗ )+ = (𝐿+‬‬
‫ד)‬
‫∗) ‪(𝐿1 ∪ 𝐿2 )∗ = (𝐿∗1 ⋅ 𝐿∗2‬‬
‫ה)‬
‫∗‪Σ∗ = Σ∗ ⋅ Σ‬‬
‫‪ .2‬תהי 𝐿 שפה כלשהי מעל הא"ב }𝑏 ‪ .{𝑎,‬הוכיחו‪/‬הפריכו את הטענות הבאות‪:‬‬
‫א)‬
‫∗𝐿 אינסופית‬
‫ב)‬
‫‪𝜖 ∈ 𝐿 ⟺ 𝜖 ∈ 𝐿+‬‬
‫ג)‬
‫𝑐) ∗𝐿( ≠ ∗) 𝑐𝐿( (כאשר 𝑐𝐿 הוא המשלים של 𝐿‪ ,‬ביחס ל‪-‬א"ב }𝑏 ‪){𝑎,‬‬
‫‪ .3‬הוכיחו‪/‬הפריכו‪ :‬לכל זוג שפות ‪ ,𝐿1 , 𝐿2‬כך ש‪ 𝐿2 ≠ ∅-‬מתקיים‪.𝐿2 ⊆ 𝐿1 ⋅ 𝐿2 ⇔ 𝜖 ∈ 𝐿1 :‬‬
‫‪ .4‬בנו אוטומט סופי דטרמיניסטי עבור השפה הבאה‪ 𝐿 = {𝜎𝑢𝜎 ∶ 𝜎 ∈ Σ, 𝑢 ∈ Σ ∗ } :‬מעל א"ב‬
‫}𝑏 ‪ .Σ = {𝑎,‬יש לתת בנייה פורמלית מלאה ולהסביר אותה בקצרה‪ .‬אין צורך להוכיח נכונות‪.‬‬
‫שימו לב‪ :‬ניתן להסתפק בשרטוט לתיאור פונקציית המעברים‪ ,‬אך יש לרשום הגדרה‬
‫פורמלית לשאר הרכיבים‪.‬‬
‫‪ .5‬יהי }𝑏 ‪ Σ = {𝑎,‬א"ב‪ .‬נגדיר שפה‪:‬‬
‫} המילה 𝑤 לא מכילה את הרצף 𝑎𝑎 | ∗ ‪𝐿 = { 𝑤 ∈ Σ‬‬
‫נגדיר אוטומט )𝐹 ‪ 𝐴 = (𝑄, Σ, 𝑞0 , 𝛿,‬כך ש‪ 𝐹 = {𝑞0 , 𝑞1 } , 𝑄 = {𝑞0 , 𝑞1 , 𝑞2 } -‬ו‪ 𝛿 -‬מוגדרת‬
‫ע"י השרטוט הבא‪:‬‬
‫𝑏 ‪𝑎,‬‬
‫‪𝑞2‬‬
‫𝑎‬
‫𝑎‬
‫‪𝑞0‬‬
‫‪𝑞1‬‬
‫𝑏‬
‫𝑏‬
‫הוכיחו ש‪.𝐿(𝐴) = 𝐿 -‬‬
‫הנחיה‪ :‬כפי שלמדנו בכיתה‪ ,‬על מנת להוכיח שפה של אוטומט‪ ,‬צריך להוכיח את שפות כל‬
‫המצבים (חוץ ממצב שהוא בור לא מקבל)‪ .‬על כן‪ ,‬הוכיחו את שתי הטענות הבאות‪ ,‬והסיקו‬
‫מתוכן ש‪ .𝐿(𝐴) = 𝐿 -‬נגדיר‪:‬‬
‫}המילה 𝑤 אינה מסתיימת ב‪𝐿0 = { 𝑤 ∈ 𝐿 | 𝑎-‬‬
‫}המילה 𝑤 מסתיימת ב‪𝐿1 = { 𝑤 ∈ 𝐿 | 𝑎-‬‬
‫הוכיחו‪:‬‬
‫(‪𝐿(𝑞0 ) = 𝐿0 )1‬‬
‫(‪𝐿(𝑞1 ) = 𝐿1 )2‬‬
‫הסיקו מכך ש‪.𝐿(𝐴) = 𝐿 -‬‬
‫‪ .6‬יהי )} 𝑓𝑞{ ‪ 𝐴 = (𝑄, Σ, 𝑞0 , 𝛿,‬אוטומט סופי דטרמיניסטי‪ .‬נתון כי )𝜎 ‪ 𝛿(𝑞0 , 𝜎) = 𝛿(𝑞𝑓 ,‬לכל‬
‫‪ .𝜎 ∈ Σ‬הוכיחו‪/‬הפריכו את הטענות הבאות‪:‬‬
‫א)‬
‫לכל 𝜖 ≠ 𝑤 מתקיים )𝑤 ‪.𝛿̂ (𝑞0 , 𝑤) = 𝛿̂ (𝑞𝑓 ,‬‬
‫ב)‬
‫אם )𝐴(𝐿 ∈ 𝑥 אז לכל ‪ 𝑘 > 0‬מתקיים )𝐴(𝐿 ∈ 𝑘 𝑥‪.‬‬
‫‪ .7‬סטודנט בקורס "אוטומטים ושפות פורמליות" התבקש לבנות אוטומט סופי דטרמיניסטי‬
‫עבור השפה }𝑏𝑎𝑢𝑎 = 𝑤 ‪.𝐿 = {𝑤 ∈ {𝑎, 𝑏}∗ : ∃𝑢 ∈ {𝑎, 𝑏}∗ ,‬‬
‫מצאו את השגיאות בפתרון שסיפק‪:‬‬
‫האוטומט‪ 𝐴 = {{𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 }, Σ = {𝑎, 𝑏}, 𝑞0 , 𝛿, {𝑞2 }} :‬כאשר 𝛿 מוגדרת בצורה הבאה‪:‬‬
‫‪𝛿(𝑞0 , 𝑎) = 𝑞1 ,‬‬
‫‪𝛿(𝑞0 , 𝑏) = 𝑞3 ,‬‬
‫‪𝛿(𝑞1 , 𝑎𝑏) = 𝑞2 ,‬‬
‫‪∀w ∈ 𝛴 ∗ ∖ {𝑎𝑏}: 𝛿(𝑞1 , 𝑤) = 𝑞1‬‬
‫‪∀𝑤 ∈ Σ ∗ : 𝛿(𝑞3 , 𝑤) = 𝑞3‬‬