Professional Documents
Culture Documents
9
9
אוטומט מחסנית
קורס אוטומטים ושפות פורמליות
מרצה :אברהם בן-ארויה
מצגות :עקיבא קליינרמן
דוגמא
&|a, ε b, &|ε
}𝐿 = {𝑎𝑛 𝑏 𝑛 |𝑛 ≥ 1
ε, ε| $ b, &|ε ε, $ |ε
q0 q1 q2 q3
הקלט:
aabb
aabb
ε, ε| $
ε, $ |ε
b, &|ε
q0 q1 q2 q3
} 𝛿(𝑞0 , ε, ε) = { 𝑞1 , $ $
)(𝑞0 , 𝑎𝑎𝑏𝑏, ε) ⊢ (𝑞1 , 𝑎𝑎𝑏𝑏, $
ריצה של אוטומט מחסנית לשפה }{𝑎𝑛𝑏𝑛|𝑛 ≥ 1
aabb
aabb
aabb
ε, ε| $
q1
b, &|ε
q2
ε, $ |ε
q3
&
q0
$
)(𝑞1 , 𝑏𝑏, &&$) ⊢ (𝑞2 , 𝑏, &$
ריצה של אוטומט מחסנית לשפה }{𝑎𝑛𝑏𝑛|𝑛 ≥ 1
aabb
ε, ε| $
ε, $ |ε
b, &|ε
q0 q1 q2 q3
$
)(𝑞2 , 𝑏, &$) ⊢ (𝑞2 , ε, $
ריצה של אוטומט מחסנית לשפה }{𝑎𝑛𝑏𝑛|𝑛 ≥ 1
aabb
ε, ε| $
ε, $ |ε
b, &|ε
q0 q1 q2 q3
= Γא"ב המחסנית .האותיות שאותן יכול האוטומט לדחוף למחסנית .גם מספר אותיות אלה
סופי
𝛿 = פונקציית מעברים
פונקציית המעברים 𝛿
כלומר ,ממצב 𝑟 ניתן לעבור למצב 𝑞 ע"י קריאת האות 𝜎 ועדכון ראש המחסנית מ αל 𝛽.
שפת אוטומט המחסנית
∗}{a,b
a, ε |A a, A|ε
b, ε |B b, B|ε
השפה } ∗} 𝐿 = 𝑤𝑤 𝑤 ∈ {a,bאינה חסרת הקשר מדוע לא ניתן לבנות עבורה אוטומט
מחסנית?
הכנסה של יותר מאות אחת אותיות
)𝜀 ∪ ∗𝜞
بقدرش يرجع ع حاله 𝜀 ∪ 𝛿: 𝑄 × (Σ ∪ 𝜀 ) × Γ ×𝑄⟶ 2
بقدر يضل يرجع ع حاله עם אפשרות הכנסה ליותר מאות אחת:
משפט
כלומר :לכל דקדוק Gחסר הקשר -קיים אוטומט מחסנית לא דטרמיניסטי M
שקול כך ש 𝑀 𝐿 = 𝐺 𝐿.
אוטומט מחסנית יכול רק "לזכור" את מספר אותיות ה aע"י הכנסה למחסנית ולהשוות
אותם למספר אותיות ה bע"י ריקון המחסנית ,אך אח"כ לא ניתן להשוות למספר אותיות
ה.c
דוגמא שלישית
a, $ |$A
a, A |AA
a, B|ε
b, B |BB
b, $ |$B
b, A|ε
ε, ε |$ ε, $ | ε
q0 q1 q2
תרגיל
𝜀 | & 𝜀,
&|𝜀 𝑎/𝑏 , 𝜀 | & 𝑎/𝑏 ,
נבנה אוטומט מחסנית (אמל"ד)
לשני המקרים:
𝜀 | & 𝑐, 𝜀 |𝜀 𝜀,
q0 q1 q2
𝑥 > 𝑦 .1
𝜀 |𝜀 𝑎/b,
𝜀 | & 𝑎/𝑏 , 𝑥 < 𝑦 .2
&|𝜀 𝑎/𝑏 ,
𝜀, 𝜀|$
&|𝜀 𝑐, 𝜀 |𝜀, $
p0 p1 p2 p3
המשך תרגיל
𝑏 𝐿 = 𝑥𝑐𝑦 𝑥, 𝑦 ∈ 𝑎, ∗
}|𝑦| ≠ |𝑥| ٿ
𝜀 | & 𝜀,
&|𝜀 𝑎/𝑏 , 𝜀 | & 𝑎/𝑏 ,
𝑏, &| 𝜀
𝑎, 𝜀|&
a, 𝜀| 𝜀 a, 𝜀| 𝜀
q0 q1 q2
המרה של דקדוק חסר הקשר לאוטומט מחסנית
מהמשפט שראינו נקבל שניתן להמיר כל דקדוק חסר הקשר לאוטומט מחסנית שקול.
נראה כיצד להמיר דקדוק חסר הקשר לאוטומט מחסנית.
נתחיל בדוגמא .נתון הדקדוק הבא:
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴
ניצור אוטומט מחסנית שקול:
𝑏𝑆𝑏 |𝑆 𝜀, באוטומט יהיו רק שלושה מצבים.
𝐴|𝑆 𝜀, כל הקריאה של המילה תעשה במצב השני.
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏,
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏,
bbabb
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴
דוגמא להמרה של דקדוק ח"ה לאוטומט
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏,
bbabb
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴 דוגמא להמרה של דקדוק ח"ה לאוטומט
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏, A
b
𝜀, 𝜀| 𝑆$ 𝜀|𝜀, $
q0 q1 q2
b
$
bbabb
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴 דוגמא להמרה של דקדוק ח"ה לאוטומט
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎, a
𝜀|𝑏 𝑏,
A
𝜀, 𝜀| 𝑆$ 𝜀|𝜀, $ b
q0 q1 q2 b
$
bbabb
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴 דוגמא להמרה של דקדוק ח"ה לאוטומט
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏, A
b
𝜀, 𝜀| 𝑆$ 𝜀|𝜀, $
q0 q1 q2
b
$
bbabb
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴 דוגמא להמרה של דקדוק ח"ה לאוטומט
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏,
b
𝜀, 𝜀| 𝑆$ 𝜀|𝜀, $ b
q0 q1 q2 $
bbabb
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴 דוגמא להמרה של דקדוק ח"ה לאוטומט
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏,
b
𝜀, 𝜀| 𝑆$ 𝜀|𝜀, $
q0 q1 q2
$
bbabb
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴 דוגמא להמרה של דקדוק ח"ה לאוטומט
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏,
bbabb
𝐴|𝑏𝑆𝑏 → 𝑆
𝜀|𝐴𝑎 → 𝐴 דוגמא להמרה של דקדוק ח"ה לאוטומט
𝑏𝑆𝑏 |𝑆 𝜀,
𝐴|𝑆 𝜀,
𝐴𝑎|𝐴 𝜀,
𝜀|𝐴 𝜀,
𝜀|𝑎 𝑎,
𝜀|𝑏 𝑏,
bbabb
המרת דקדוק לאוטומט מחסנית
יהי )𝑆 𝐺 = ( 𝑉,Σ,Π,דקדוק ח"ה .נגדיר אוטומט מחסנית ) 𝑃 = (Q,Σ,Γ,𝛿,q0 ,Fשקול.
האוטומט מכיל בסה"כ 3מצבים ,נגדיר,Q = {𝑞0 ,𝑞1 ,𝑞2 } :
הא"ב של המחסנית יהיה זהה לא"ב של הדקדוק,
הסימונים של המחסנית Γיוגדרו כך } ,Γ = Σ ∪ 𝑉 ∪ {$כאשר $הוא סימון ייחודי עבור
תחתית המחסנית.
קבוצת המצבים המקבלים תכיל את המצב האחרון בלבד.𝐹 = {𝑞2 } :
P מתחילה בכתיבה של תו $ומשתנה התחלתי Sמעליו ,נבצע זאת ע"י מעבר ממצב
התחלתי למצב :𝑞1
} 𝛿 q0 , 𝜀, 𝜀 = { 𝑞1 , 𝑆$
המשך
ב .מעברים המוצאים טרמינלים מהמחסנית ,נבצע את ה"השוואה" לקלט המחסנית באופן הבא:
} 𝜀 𝛿 𝑞1 ,𝜎,𝜎 = { 𝑞1 ,לכל 𝜎 ∈ Σ.
לבסוף נגדיר מעבר למצב מקבל אם המחסנית התרוקנה:
} 𝜀 𝛿 q1 , 𝜀, $ = { 𝑞2 ,