אוטומט מחסנית לא דטרמיניסטי

Transcription

אוטומט מחסנית לא דטרמיניסטי
‫כ'‪/‬שבט‪/‬תשע"ה‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫בדומה לאסל"ד (ללא מחסנית)‪ ,‬גם עבור אוטומט מחסנית‬
‫ניתן לבנות אוטומט מחסנית לא דטרמיניסטי‪.‬‬
‫גם כאן‪ ,‬עבור אותו קלט‪ ,‬יוכל האוטומט לבצע שני מעברים‬
‫שונים‪.‬‬
‫כאן הקלט יושפע‪ ,‬כמובן‪ ,‬גם מהערך שהוצאנו מהמחסנית‪.‬‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫‪1‬‬
‫אוטומט מחסנית‬
‫תזכורת ‪ -‬הגדרה‬
‫אוטומט מחסנית הוא שישייה‪:‬‬
‫‪ .1‬א"ב של הקלט (אותיות קטנות)‬
‫‪ .2‬קבוצת מצבים (… ‪)q0, q1, q2,‬‬
‫‪ .3‬א"ב של המחסנית (אותיות גדולות)‬
‫‪ .4‬מצב התחלתי (‪)q0‬‬
‫‪ .5‬קבוצת מצבים מקבלים‬
‫‪ .6‬פונקציית‪/‬טבלת המעברים‬
‫– תהפוך ללא דטרמיניסטית‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫‪2‬‬
‫‪1‬‬
‫כ'‪/‬שבט‪/‬תשע"ה‬
‫פונקציית‪/‬טבלת המעברים‬
‫עבור אות קלט במצב מסוים‬
‫ועבור אות שהוצאנו מהמחסנית‬
‫לאיזה מצב עוברים ומה דוחפים למחסנית‬
‫שתי אפשרויות (או יותר)‬
‫‪3‬‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫דוגמה לאוטומט מחסנית (רגיל)‬
‫א"ב }‪}, {a, b, c‬מעל ה‪L = {w c R(w) | w is a word {a, b}-‬‬
‫𝜀 |𝐴 ‪𝑎,‬‬
‫𝜀|𝐵 ‪𝑏,‬‬
‫‪q3‬‬
‫𝜀 |𝑆 ‪𝑎,‬‬
‫𝜀 |𝑇 ‪𝑏,‬‬
‫‪q2‬‬
‫𝐵𝑆 |𝑆 ‪𝑏,‬‬
‫𝐵𝐴 |𝐴 ‪𝑏,‬‬
‫𝐵𝑇 |𝑇 ‪𝑏,‬‬
‫𝐵𝐵 |𝐵 ‪𝑏,‬‬
‫𝑆 |𝑆 ‪𝑐,‬‬
‫𝐴 |𝐴 ‪𝑐,‬‬
‫𝑇 |𝑇 ‪𝑐,‬‬
‫𝐵 |𝐵 ‪𝑐,‬‬
‫‪q1‬‬
‫𝐴𝑆 |𝑆 ‪𝑎,‬‬
‫𝐴𝐴 |𝐴 ‪𝑎,‬‬
‫𝐴𝑇 |𝑇 ‪𝑎,‬‬
‫𝐴𝐵 |𝐵 ‪𝑎,‬‬
‫𝑆 | ⊥ ‪𝑎,‬‬
‫𝑇 | ⊥ ‪𝑏,‬‬
‫‪q0‬‬
‫𝜀| ⊥ ‪𝑐,‬‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫‪4‬‬
‫‪2‬‬
‫כ'‪/‬שבט‪/‬תשע"ה‬
‫דוגמה לאוטומט מחסנית‬
‫מה יקרה אם נוציא את ה‪?c-‬‬
‫א"ב }‪}, {a, b‬מעל ה‪L = {w R(w) | w is a word {a, b}-‬‬
‫𝜀 |𝐴 ‪𝑎,‬‬
‫𝜀|𝐵 ‪𝑏,‬‬
‫‪q3‬‬
‫𝜀 |𝑆 ‪𝑎,‬‬
‫𝜀 |𝑇 ‪𝑏,‬‬
‫‪q2‬‬
‫𝐵𝑆 |𝑆 ‪𝑏,‬‬
‫𝐵𝐴 |𝐴 ‪𝑏,‬‬
‫𝐵𝑇 |𝑇 ‪𝑏,‬‬
‫𝐵𝐵 |𝐵 ‪𝑏,‬‬
‫‪X‬‬
‫𝑆 |𝑆 ‪𝑐,‬‬
‫𝐴 |𝐴 ‪𝑐,‬‬
‫𝑇 |𝑇 ‪𝑐,‬‬
‫𝐵 |𝐵 ‪𝑐,‬‬
‫‪q1‬‬
‫𝐴𝑆 |𝑆 ‪𝑎,‬‬
‫𝐴𝐴 |𝐴 ‪𝑎,‬‬
‫𝐴𝑇 |𝑇 ‪𝑎,‬‬
‫𝐴𝐵 |𝐵 ‪𝑎,‬‬
‫𝑆 | ⊥ ‪𝑎,‬‬
‫𝑇 | ⊥ ‪𝑏,‬‬
‫‪q0‬‬
‫‪X‬‬
‫𝜀| ⊥ ‪𝑐,‬‬
‫‪5‬‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫דוגמה לאוטומט מחסנית – לא דטרמיניסטי‬
‫א"ב }‪}, {a, b‬מעל ה‪L = {w R(w) | w is a word {a, b}-‬‬
‫𝜀 |𝐴 ‪𝑎,‬‬
‫𝜀|𝐵 ‪𝑏,‬‬
‫‪q3‬‬
‫𝜀 |𝑆 ‪𝑎,‬‬
‫𝜀 |𝑇 ‪𝑏,‬‬
‫‪q2‬‬
‫𝐵𝑆 |𝑆 ‪𝑏,‬‬
‫𝐵𝐴 |𝐴 ‪𝑏,‬‬
‫𝐵𝑇 |𝑇 ‪𝑏,‬‬
‫𝐵𝐵 |𝐵 ‪𝑏,‬‬
‫𝜀 |𝐴 ‪𝑎,‬‬
‫𝜀|𝐵 ‪𝑏,‬‬
‫‪q1‬‬
‫𝐴𝑆 |𝑆 ‪𝑎,‬‬
‫𝐴𝐴 |𝐴 ‪𝑎,‬‬
‫𝐴𝑇 |𝑇 ‪𝑎,‬‬
‫𝐴𝐵 |𝐵 ‪𝑎,‬‬
‫𝑆 | ⊥ ‪𝑎,‬‬
‫𝑇 | ⊥ ‪𝑏,‬‬
‫‪q0‬‬
‫𝜀 |𝑆 ‪𝑎,‬‬
‫𝜀 |𝑇 ‪𝑏,‬‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫‪6‬‬
‫‪3‬‬
‫כ'‪/‬שבט‪/‬תשע"ה‬
‫אוטומט מחסנית לא דטרמיניסטי ‪ -‬מעקב‬
‫מעקב אחרי המילה המתקבלת ‪abbbba -‬‬
‫א"ב }‪}, {a, b‬מעל ה‪L = {w R(w) | w is a word {a, b}-‬‬
‫‪B‬‬
‫‪B‬‬
‫‪S‬‬
‫‪q2‬‬
‫‪B‬‬
‫𝜀 |𝐵 ‪𝑏,‬‬
‫‪S‬‬
‫‪q1‬‬
‫‪B‬‬
‫𝐵𝐵 |𝐵 ‪𝑏,‬‬
‫מעבר לא דטרמיניסטי‬
‫‪S‬‬
‫‪q1‬‬
‫𝐵𝑆 |𝑆 ‪𝑏,‬‬
‫𝜀 |𝑆 ‪𝑎,‬‬
‫‪q3‬‬
‫מצב מקבל‬
‫‪S‬‬
‫‪q1‬‬
‫‪S‬‬
‫‪q2‬‬
‫𝑆 | ⊥ ‪𝑎,‬‬
‫‪q0‬‬
‫𝜀 |𝐵 ‪𝑏,‬‬
‫‪7‬‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫אוטומט מחסנית לא דטרמיניסטי – מעקב‬
‫(המשך)‬
‫א"ב }‪}, {a, b‬מעל ה‪L = {w R(w) | w is a word {a, b}-‬‬
‫מעקב אחרי המילה המתקבלת (המינימלית‪ ,‬חוץ מהריקה) ‪bb -‬‬
‫מצב מקבל‬
‫‪q3‬‬
‫𝜀 |𝑇 ‪𝑏,‬‬
‫‪T‬‬
‫‪q1‬‬
‫𝑇 | ⊥ ‪𝑏,‬‬
‫‪q0‬‬
‫מעבר לא דטרמיניסטי‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫‪8‬‬
‫‪4‬‬
‫כ'‪/‬שבט‪/‬תשע"ה‬
‫אוטומט מחסנית לא דטרמיניסטי ‪ -‬מעקב‬
‫א"ב }‪}, {a, b‬מעל ה‪L = {w R(w) | w is a word {a, b}-‬‬
‫מעקב אחרי המילה שאינה מתקבלת ‪aabbab -‬‬
‫‪B‬‬
‫‪A‬‬
‫‪S‬‬
‫‪q2‬‬
‫‪A‬‬
‫𝜀 |𝐵 ‪𝑏,‬‬
‫‪S‬‬
‫‪q1‬‬
‫‪A‬‬
‫𝐵𝐴 |𝐴 ‪𝑏,‬‬
‫‪S‬‬
‫‪q1‬‬
‫𝐴𝑆 |𝑆 ‪𝑎,‬‬
‫‪S‬‬
‫‪q1‬‬
‫‪S‬‬
‫נתקע‬
‫אוטומט מחסנית – לא דטרמיניסטי‬
‫‪q2‬‬
‫𝑆 | ⊥ ‪𝑎,‬‬
‫‪q0‬‬
‫𝜀 |𝐴 ‪𝑎,‬‬
‫‪9‬‬
‫‪5‬‬