אוטומט מחסנית - שאלת מעקב

‫י"ב‪/‬שבט‪/‬תשע"ז‬
‫אוטומט מחסנית ‪ -‬שאלת מעקב ‪ -‬מתוך מבחן‪ - 3‬תשע"ו‬
‫‪‬‬
‫נתון אוטומט הבא מעל הא"ב } ‪{ a, b, c‬‬
‫𝜀 |⊥ ‪b,‬‬
‫‪q5‬‬
‫𝜀 |‪𝑏, A‬‬
‫𝜀 |‪𝑏, S‬‬
‫‪q4‬‬
‫𝜀 |⊥ ‪c,‬‬
‫𝐴𝐴𝐴 |𝐴 ‪𝑎,‬‬
‫𝜀 |𝐴 ‪𝑏,‬‬
‫‪c, A| A‬‬
‫‪q2‬‬
‫‪c, A| A‬‬
‫‪q1‬‬
‫‪𝑎, ⊥| SA‬‬
‫‪q0‬‬
‫‪c, A| A‬‬
‫𝜀 |⊥ ‪c,‬‬
‫‪q7‬‬
‫‪q6‬‬
‫‪q3‬‬
‫𝜀 |⊥ ‪c,‬‬
‫א‪-‬‬
‫ב‪-‬‬
‫תן ‪ 3‬מילים המתקבלות ע"י האוטומט ו‪ 3 -‬מילים שאינן מתקבלות‬
‫ע"י האוטומט‪ ,‬כל מילה באורך של לפחות ‪ .4‬הראה מסלול מקבל‬
‫עבור אחת מהמילים המתקבלות‪ ,‬והראה מסלול שאינו מקבל עבור‬
‫אחת המילים שאינן מתקבלות‪.‬‬
‫הסבר במילים מהי שפת האוטומט‪.‬‬
‫‪1‬‬
‫אוטומט מחסנית ‪ -‬שאלת מעקב ‪ -‬מבחן‪ - 3‬ע"ו‬
‫הפתרון – מעקב – מסלולים‬
‫‪.i‬‬
‫מילים מתקבלות‪ ,acccbbcc ,aacbbbbcc ,aacbbbb :‬מסלול מקבל עבור המילה –‬
‫‪acccbbcc‬‬
‫‪S‬‬
‫‪A‬‬
‫‪A‬‬
‫‪A‬‬
‫‪A‬‬
‫‪S‬‬
‫‪S‬‬
‫‪S‬‬
‫‪S‬‬
‫מקבל ‪q0 a q1 c q2 c q3 c q2 b q4 b q5 c q6 c q7 -‬‬
‫‪.ii‬‬
‫מילים שאינן מתקבלות‪ ,acccbbccc ,aaccbbbbcc ,acbbbcc :‬מסלול שאינו מקבל עבור‬
‫המילה – ‪acbbbcc‬‬
‫‪S‬‬
‫‪A‬‬
‫‪A‬‬
‫‪S‬‬
‫‪S‬‬
‫לא מקבל – נתקע ‪q0 a q1 c q2 b q4 b q4 b q4 c -‬‬
‫אוטומט מחסנית ‪ -‬שאלת מעקב ‪ -‬מבחן‪ - 3‬ע"ו‬
‫‪2‬‬
‫‪1‬‬
‫י"ב‪/‬שבט‪/‬תשע"ז‬
‫הכנה לפתרון‬
‫טיוטה‬
‫א‪ -‬ממבנה האוטומט רואים שמדובר על שפת רצף מתחיל ברצף ‪( a‬לפחות ‪)1‬‬
‫אח"כ רצף ‪( c‬לפחות ‪ )1‬אח"כ רצף ‪( b‬לפחות ‪ )2‬ובסוף שוב רצף ‪( c‬לא‬
‫חובה)‬
‫ב‪ -‬לפי ההכנסה למחסנית רואים שיש יחס כפול בין ה‪ a-‬ל‪ b-‬לטובת ה‪( b-‬כי‬
‫מכניסים על כל ‪ a‬שתי אותיות למחסנית)‬
‫ג‪ -‬לפי המעבר של ‪ b‬עם מחסנית ריקה ב‪ q5-‬רואים שאפשר לראות עוד ‪.b‬‬
‫ד‪ -‬הרצף הראשון של ‪ c‬חייב להיות אי‪-‬זוגי‪ ,‬והרצף השני של ‪ c‬חייב להיות זוגי‬
‫(יכול‪ ,‬כמובן‪ ,‬להיות ‪.)0‬‬
‫‪3‬‬
‫אוטומט מחסנית ‪ -‬שאלת מעקב ‪ -‬מבחן‪ - 3‬ע"ו‬
‫הפתרון – שפת האוטומט‬
‫| ‪L = {ancibmck‬‬
‫}‪n, i > 0, m  2n, k  0, i mod 2 ≠ 0, k mod 2 = 0‬‬
‫מעל הא"ב – }‪{a, b, c‬‬
‫‪‬‬
‫אפשר גם לרשום‬
‫‪{ancib2n+jck‬‬
‫|‬
‫}‪n, i > 0, j, k  0, i mod 2 ≠ 0, k mod 2 = 0‬‬
‫מעל הא"ב – }‪{a, b, c‬‬
‫אוטומט מחסנית ‪ -‬שאלת מעקב ‪ -‬מבחן‪ - 3‬ע"ו‬
‫=‪L‬‬
‫‪4‬‬
‫‪2‬‬