‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫ד"ר‬
‫פורמליות‬ ‫ושפות‬ ‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫ד"ר‬
‫תשע"ו‬ ‫־‬ '‫א‬ ‫סמסטר‬
I ‫חלק‬
‫בסיסיות‬ ‫הגדרות‬
‫יקראו‬ ‫שאבריה‬ Σ ‫סופית‬ ‫קבוצה‬ ‫היא‬ ‫שפה‬ ‫של‬ ‫־‬ (‫)א"ב‬ ‫אלפבית‬
.(‫תווים‬ ‫)או‬ ‫אותיות‬
‫אותיות‬ ‫של‬ ‫סופית‬ ‫סדרה‬ ‫זוהי‬ ‫־‬ Σ ‫א"ב‬ ‫מעל‬ (‫מחרוזת‬ ‫)או‬ ‫מילה‬
.‫הסדרה‬ ‫אברי‬ ‫בין‬ ‫פסיקים‬ ‫ללא‬ ‫כשירשור‬ ‫שרשומה‬ ,Σ‫מ־‬
:(w‫ב־‬ ‫מסומנת‬ ‫)אשר‬ ‫מילה‬
ai ∈ Σ, w = a1a2...an
:‫למשל‬ ‫הינן‬ Σ ‫מעל‬ ‫מילים‬ ‫אזי‬ Σ = {0, 1} ‫אם‬ :‫למשל‬
0, 0111, 01010, ...
.w‫ב־‬ ‫האותיות‬ ‫מספר‬ ‫בתור‬ ‫ומוגדר‬ |w| ‫מסומן‬ w ‫מילה‬ ‫של‬ ‫האורך‬
‫את‬ #a (w)‫ב־‬ ‫מסמנים‬ Σ ‫מעל‬ w ‫ומילה‬ a ∈ Σ ‫עבור‬
.w‫ב־‬ a ‫של‬ ‫המופעים‬ ‫מספר‬
:‫מתקיים‬ ‫אזי‬
X
a∈Σ
#a (w) = |w|
.‫הריקה‬ ‫המילה‬ ‫ונקראת‬ ε‫ב־‬ ‫מסומנת‬ ‫אפס‬ ‫באורך‬ ‫מילה‬
.Σ ‫א"ב‬ ‫מעל‬ ‫המילים‬ ‫כל‬ ‫אוסף‬ ‫את‬ Σ∗
‫ב־‬ ‫מסמנים‬
:‫לזכור‬ ‫חשוב‬
.‫בת־מנייה‬ ‫אבל‬ ,‫אינסופית‬ ‫־‬ Σ∗
,‫סופית‬ ‫־‬ Σ
:Σ∗
‫מ־‬ ‫מילים‬ ‫שתי‬ ‫עבור‬
:‫מסומן‬ w, v ‫של‬ ‫השירשור‬ ‫אזי‬ v = b1 · · · bn‫ו־‬ w = a1 · · · an
:‫ע"י‬ ‫ומוגדר‬ wv
wv = a1 · · · anb1 · · · bn
.Σ∗
‫מ־‬ ‫מילים‬ ‫אוסף‬ ‫הינה‬ Σ ‫א"ב‬ ‫מעל‬ ‫שפה‬
.L ⊆ Σ∗
⇐⇒ Σ ‫על‬ ‫שפה‬ L
.2ℵ0 ‫מעוצמה‬ ‫היא‬ ,‫מנייה‬ ‫בת‬ ‫אינה‬ Σ ‫מעל‬ ‫השפות‬ ‫שמשפחת‬ ‫לב‬ ‫נשים‬
‫מוגדרות‬ Σ ‫מעל‬ ‫שפות‬ ‫בין‬ ‫לכן‬ ,Σ∗
‫של‬ ‫תת־קבוצות‬ ‫הן‬ ‫שפות‬
:‫ומשלים‬ (L1 ∩ L2) ‫חיתוך‬ ,(L1 ∪ L2) ‫איחוד‬ ‫פעולות‬
.LC
= Σ∗
− L
‫שירשור‬ :‫פעולות‬ ‫שתי‬ ‫עוד‬ Σ ‫מעל‬ ‫שפות‬ ‫בין‬ ‫מוגדרות‬ ,‫בנוסף‬
:‫ואיטרציה‬
‫שירשור‬
:‫ע"י‬ ‫מוגדר‬ L1L2 ‫השירשור‬ L1, L2 ⊆ Σ∗
‫עבור‬
L1L2 =

uv u ∈ L1, v ∈ L2
‫איטרציה‬
:‫באינדוקציה‬ Ln
‫נגדיר‬ ‫שלם‬ n ≥ 0 ‫ועבור‬ L ⊆ Σ∗
‫שפה‬ ‫עבור‬
L0
= {ε}
Ln+1
= Ln
· L
.L ‫מעל‬ ‫מילים‬ n ‫של‬ ‫השירשורים‬ ‫כל‬ ‫שפת‬ = Ln
:‫עי‬ ‫ומוגדרת‬ L∗
‫מסומנת‬ ‫־‬ (L ‫של‬ * :‫)או‬ L ‫של‬ ‫האיטרציה‬
L∗
=
[
n≥0
Ln
= L0
∪ L1
∪ L2
· · · ∪ Ln
‫מתוך‬ ‫מילים‬ ‫של‬ ‫כלשהו‬ ‫מספר‬ ‫של‬ ‫השירשורים‬ ‫כל‬ ‫קבוצת‬ = L∗
.(L‫מ־‬ ‫מילים‬ ‫אפס‬ ‫של‬ ‫שירשור‬ ‫־‬ ε ‫)כולל‬ L
‫ריקה‬ ‫מילה‬ ‫ועל‬ ‫ריקה‬ ‫שפה‬ ‫על‬ ‫הערות‬ ‫כמה‬ 0.1
,L = ∅ ‫אם‬ ,‫כלומר‬ .‫הריקה‬ ‫לשפה‬ ‫הריקה‬ ‫המילה‬ ‫בין‬ ‫הבדל‬ ‫ישנו‬
:‫אזי‬
L ‫בהכרח‬ ‫אזי‬ ε ∈ L ‫־‬ ‫אם‬ ‫אבל‬ .‫הוגדר‬ ‫זה‬ ‫אם‬ ‫אלא‬ ,ε /
∈ L
:‫כלומר‬ ,‫ריקה‬ ‫אינה‬
.L 6= ∅
‫ואחת‬ L1 · L2 ‫לשרשר‬ ‫צריכים‬ ‫אנחנו‬ ‫אם‬ ,‫ההגדרה‬ ‫עפ‬ ,‫כמו־כן‬
,‫הריקה‬ ‫הקבוצה‬ ‫יהיה‬ ‫שלהן‬ ‫השירשור‬ ‫גם‬ ‫אזי‬ ,‫ריקה‬ ‫שפה‬ ‫היא‬ ‫מהן‬
:‫כלומר‬
.L1 · L2 = ∅
.‫הללו‬ ‫לדברים‬ ♥ ‫לשים‬ ‫כדאי‬
1
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
II ‫חלק‬
‫סופיים‬ ‫אוטומטיים‬
(‫)אסד‬ ‫דטרמיניסטי‬ ‫סופי‬ ‫אוטומט‬ 1
‫פורמלית‬ ‫הגדרה‬ 1.1
‫המכיל‬ ‫)דבר‬ ‫חמישה‬ ‫זהו‬ ‫־‬ (DFA) ‫דטרמיניסטי‬ ‫סופי‬ ‫אוטומט‬
:(‫דברים‬ ‫חמישה‬
A = hQ, Σ, δ, q0, F i
:‫כאשר‬
.‫מצבים‬ ‫נקראים‬ ‫שאבריה‬ ‫סופית‬ ‫קבוצה‬ ‫היא‬ ‫־‬ Q •
.‫האוטומט‬ ‫של‬ ‫האב‬ ‫זה‬ .‫אב‬ ‫־‬ Σ •
.δ : Q × Σ → Q ‫־‬ ‫פונקציה‬ ‫היא‬ ‫־‬ δ •
:‫שמסומן‬ ‫מצב‬ ‫מתאימה‬ δ ,a ∈ Σ ‫ולכל‬ q ∈ Q ‫לכל‬ ,‫כלומר‬
‫נמצא‬ ‫הוא‬ ‫אם‬ ‫האוטומט‬ ‫יכנס‬ ‫שאליו‬ ‫המצב‬ ‫זה‬ .δ (q, a)
.a ‫האות‬ ‫את‬ ‫וקורא‬ q ‫במצב‬
.‫ההתחלתי‬ ‫המצב‬ ‫שנקרא‬ Q‫ב־‬ ‫מיוחד‬ ‫איבר‬ ‫הוא‬ ‫־‬ q0 •
‫שאבריה‬ [‫מצבים‬ ‫]קבוצת‬ Q‫ל־‬ ‫חלקית‬ ‫קבוצה‬ ‫היא‬ ‫־‬ F •
.‫המקבלים‬ ‫המצבים‬ ‫או‬ ,‫הסופיים‬ ‫המצבים‬ ‫נקראים‬
‫נוספות‬ ‫הגדרות‬ 1.2
.DFA ,A = hQ, Σ, δ, q0, Fi ‫יהי‬
:Σ∗
‫ב־‬ w = a1 · · · an ‫מילה‬ ‫עבור‬
‫כך‬ q0, q1, q2, ..., qn :‫מצבים‬ ‫סדרת‬ ‫היא‬ ‫־‬ w ‫על‬ A ‫של‬ ‫הריצה‬
:‫מתקיים‬ 1 ≤ i ≤ n ‫ולכל‬ ,A ‫של‬ ‫ההתחלתי‬ ‫המצב‬ ‫הוא‬ q0‫ש־‬
qi = δ (qi−1, ai)
‫במצב‬ ‫מסתיימת‬ w ‫על‬ A ‫של‬ ‫הריצה‬ ‫אם‬ w ‫המילה‬ ‫את‬ ‫מקבל‬ A
.(qn ∈ F ,‫)זא‬ (‫סופי‬ ‫)או‬ ‫מקבל‬
.w ‫את‬ ‫דוחה‬ A ,‫אחרת‬
:‫עי‬ ‫ומוגדרת‬ L (A) ‫מסומנת‬ ,A ‫של‬ ‫השפה‬
L (A) =
n
w ∈ Σ∗
o
.w ‫את‬ ‫מקבל‬ A ‫־‬
‫גרפי‬ ‫סימון‬ 1.3
‫מסומנים‬ ‫קשתות‬ ‫עם‬ ‫מכוונים‬ ‫גרפים‬ ‫באמצעות‬ DFA ‫נציג‬
.‫האוטומט‬ ‫מ־אב‬ ‫באותיות‬
:‫מצבים‬ ‫יסמנו‬ ‫צמתים‬
.‫התחלתי‬ ‫מצב‬ ‫־‬ //
.(‫מקבל‬ ‫מצב‬ :‫)או‬ ‫סופי‬ ‫מצב‬ ‫־‬
.δ (q, a) = p :‫מסמן‬ q a // p :‫קשתות‬
q
a,b
// p :‫כך‬ ‫מקצרים‬ q
a
**
b
44 p
.Σ ‫לכתוב‬ ‫פשוט‬ ‫ניתן‬ ,‫קשת‬ ‫על‬ ‫האב‬ ‫את‬ ‫לכתוב‬ ‫במקום‬ ,‫כמו־כן‬
‫מקבל‬ A (DFA) ‫דטרמיניסטי‬ ‫סופי‬ ‫שאוטומט‬ ‫אומרים‬ :‫הערה‬
.L (A) = L ‫אם‬ (L ‫את‬ ‫מזהה‬ A :‫)או‬ L ‫השפה‬ ‫את‬
‫דוחה‬ ‫בור‬ 1.4
‫שממנו‬ ‫מצב‬ ‫כלומר‬ ,‫דוחה‬ ‫בור‬ ‫הוא‬ ‫להכיר‬ ‫שכדאי‬ ‫הדברים‬ ‫אחד‬
.‫אחר‬ ‫מצב‬ ‫לשום‬ ‫לצאת‬ ‫ניתן‬ ‫לא‬
‫מכילות‬ ‫אשר‬ ‫המילים‬ ‫על‬ ‫היא‬ L‫ו־‬ Σ = {0, 1} ‫אצלנו‬ ‫אם‬ ,‫למשל‬
:‫הינו‬ ‫זאת‬ ‫שפה‬ ‫שמקבל‬ ‫האוטומט‬ ‫אזי‬ ,‫בלבד‬ 1
// q0
1

0 // q1
0,1

‫למצב‬ ‫נכנסים‬ ‫אנחנו‬ 0 ‫האות‬ ‫את‬ ‫שקיבלנו‬ ‫שברגע‬ ‫לכך‬ ‫לב‬ ‫נשים‬
.‫דוחה‬ ‫לבור‬ ‫הגענו‬ ,‫כלומר‬ ‫־‬ ‫ממנו‬ ‫לצאת‬ ‫דרך‬ ‫שום‬ ‫לנו‬ ‫שאין‬
‫השפה‬ ‫את‬ ‫ניקח‬ ‫אם‬ ,‫למשל‬ ,‫ההפך‬ ‫כמובן‬ ‫להיות‬ ‫יכול‬ ‫זה‬ ‫כן‬ ‫כמו‬
‫אזי‬ ,‫לפחות‬ ‫אחד‬ 0 ‫יש‬ ‫מילה‬ ‫בכל‬ ‫שבה‬ ‫שפה‬ ,‫כלומר‬ ,‫המשלימה‬
:‫הינו‬ ‫השפה‬ ‫את‬ ‫שיקבל‬ ‫האוטומט‬
// q0
1

0 // q1
0,1

‫המילה‬ ‫את‬ ‫מקבל‬ ‫האוטומט‬ ‫־‬ ‫אחד‬ 0 ‫היה‬ ‫שבקלט‬ ‫ברגע‬ ,‫כאן‬ ‫וגם‬
.(‫מקבל‬ ‫בור‬ ‫הפעם‬ ‫)שנקרא‬ ‫כזה‬ ‫לבור‬ ‫והגענו‬
δ ‫הרחבת‬ 1.5
‫עבור‬ ‫תקפה‬ ‫שתהיה‬ δ ‫את‬ ‫להרחב‬ ‫ניתן‬ ,‫להסברים‬ ‫להיכנס‬ ‫מבלי‬
:‫כלומר‬ ,‫אות‬ ‫עבור‬ ‫רק‬ ‫ולא‬ ‫מילה‬
δ : Q × Σ∗
→ Q
:‫הבא‬ ‫באופן‬ ‫תתנהג‬ ‫הפונקציה‬ ‫ולכן‬
(
δ (q, ε) = q, ∀q ∈ Q
δ (q, wa) = δ (δ (q, w) , a) , ∀q ∈ Q, ∀w ∈ Σ∗
, ∀a ∈ Σ
2
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
:‫ש‬ ‫לכך‬ ‫לב‬ ‫נשים‬
L (A) =
(
w ∈ Σ∗
δ (q0, w) ∈ F
)
:‫במילים‬ ‫או‬
δ (q0, w) ∈ F ⇐⇒ w ‫המילה‬ ‫את‬ ‫מקבל‬ A
:δ ‫הפונקציה‬ ‫של‬ ‫נוספת‬ ‫תכונה‬
δ (q, u · v) = δ (δ (q, u) , v), ∀q ∈ Q, ∀u, v ∈ Σ∗
‫רגולרית‬ ‫שפה‬ 1.6
DFA ‫קיים‬ ‫אם‬ ‫רגולרית‬ ‫שפה‬ ‫נקראת‬ L ⊆ Σ∗
‫שפה‬ 1.1 ‫הגדרה‬
.L (A) = L‫ש־‬ ‫כך‬ A
‫או‬ L =

an
bn
n ∈ N ,Σ = {a, b} :‫רגולרית‬ ‫לא‬ ‫לשפה‬ ‫דוגמא‬
. L =

w #a (w) = #b (w) :‫אחר‬ ‫בכתיב‬ ‫שפה‬ ‫אותה‬
(‫מסוים‬ ‫אב‬ ‫)מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.7
.‫אב‬ Σ ‫יהי‬
:‫רגולרית‬ ‫שפה‬ ‫היא‬ ‫־‬ Σ∗
.1
// q0
Σ
.Σ∗
‫את‬ ‫מזהה‬ ‫הנל‬ ‫האוטומט‬
:‫רגולרית‬ ‫שפה‬ ‫היא‬ ∅ .2
// q0
Σ
.F = ∅ ‫זה‬ ‫באוטומט‬ .∅ ‫את‬ ‫מזהה‬ ‫זה‬ ‫אוטומט‬
‫מכפלה‬ ‫אוטומט‬ 1.8
:‫יהיו‬
A1 = hQ1, Σ, δ1, q1, F1i
A2 = hQ2, Σ, δ2, q2, F2i
‫זהו‬ A2‫ו־‬ A1 ‫של‬ ‫מכפלה‬ ‫אוטומט‬ ,Σ ‫אב‬ ‫אותו‬ ‫מעל‬ ‫־ים‬DFA ‫שני‬
:A (DFA) ‫אוטומט‬
A = hQ, Σ, δ, q0, Fi
:‫שמקיים‬
Q = Q1 × Q2 =
n
q × r q ∈ Q1, r ∈ Q2
o
•
δ : Q × Σ → Q •
δ ((q, r) , a) = (δ1 (q, a) , δ2 (r, a)) •
q = (q1, q2) •
.(‫למשנהו‬ ‫אחד‬ ‫מכפלה‬ ‫מאוטומט‬ ‫משתנה‬ ‫)היא‬ F ⊆ Q •
.‫יקבל‬ ‫שהאוטומט‬ ‫שרוצים‬ ‫השפה‬ ‫לפי‬ ‫אותה‬ ‫קובע‬ ‫המשתמש‬
‫של‬ ‫שילוב‬ ‫בעצם‬ ‫זה‬ ‫מכפלה‬ ‫אוטומט‬ ,‫אופן‬ ‫שבאיזשהו‬ ‫לומר‬ ‫ניתן‬
‫היא‬ ‫המקבלים‬ ‫המצבים‬ ‫וקבוצת‬ ‫במקביל‬ ‫שרצים‬ ‫אוטומטים‬ ‫שני‬
.‫רוצים‬ ‫שאנחנו‬ ‫למה‬ ‫בהתאמה‬
(...‫בהמשך‬ ‫)דוגמא‬
‫מכפלה‬ ‫באוטומט‬ δ ‫הרחבת‬ 1.8.1
δ : Q × Σ∗
→ Q
(
δ ((q, r) , ε) = (q, r) , ∀ (q, r) ∈ Q
δ ((q, r) , wa) = δ (δ ((q, r) , w) , a) , ∀ (q, r) ∈ Q, w ∈ Σ∗
, a ∈ Σ
‫מכפלה‬ ‫לאטומט‬ ‫דוגמא‬ 1.8.2
:‫הבאים‬ ‫האוטומטים‬ ‫בשני‬ ‫נסתכל‬
:A1
// q0
b
a
**
q1
a
jj
b
:A2
// r0
a
b // r1
a
b
~~
r2
a
b
``
3
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
:‫ש‬ ‫לכך‬ ‫לב‬ ‫נשים‬
L (A1) =
n
w ∈ {a, b}
∗
2 | #a (w)
o
L (A2) =
n
w ∈ {a, b}
∗
3 | #b (w)
o
‫־ים‬b‫ה־‬ ‫מספר‬ ‫־‬ L (A2) ,‫זוגי‬ ‫־ים‬a‫ה־‬ ‫מספר‬ ‫־‬ L (A1) :‫כלומר‬
.(m ‫את‬ ‫מחלק‬ n‫ש־‬ ‫פירושו‬ n | m :‫)תזכורת‬ 3‫ב־‬ ‫מתחלק‬
‫שישה‬ ‫היותר‬ ‫לכל‬ ‫)ישנם‬ :‫כך‬ ‫נראה‬ A2‫ו־‬ A1 ‫של‬ ‫אוטומט‬ ‫כל‬
:(|Q1| · |Q2| = 6‫ו־‬ ‫היות‬ ,‫מצבים‬
// (q0, r0)
a
--
b

(q1, r0)
a
mm
b

(q0, r1)
a
--
b

(q1, r1)
a
mm
b

(q0, r2)
a
--
b
==
(q1, r2)
a
mm
b
aa
?‫מכפלה‬ ‫האוטומט‬ ‫את‬ ‫בונים‬ ‫כיצד‬
‫ואז‬ ,‫אוטומט‬ ‫כל‬ ‫של‬ ‫ההתחלתי‬ ‫המצב‬ ,(q0, r0)‫מ־‬ ‫מתחילים‬
‫לנו‬ ‫יש‬ ‫נניח‬ ‫אם‬ ,‫למשל‬ ‫מובילה‬ ‫היא‬ ‫לאן‬ ‫באב‬ ‫אות‬ ‫כל‬ ‫בודקים‬
‫נותנים‬ ‫כאשר‬ ‫אותנו‬ ‫מעביר‬ q0 ‫לאן‬ ‫בודקים‬ ‫אזי‬ a ‫האות‬ ‫את‬ ‫באב‬
q0 → q3 :‫לדוגמא‬ ,a ‫לו‬ ‫שנותנים‬ ‫אותנו‬ ‫מעביר‬ r0 ‫ולאן‬ a ‫לו‬
:‫הוא‬ ‫שנקבל‬ ‫מה‬ ‫ואז‬ r0 → r2‫ו־‬
// (q0, r0)
a // (q3, r2)
(q3, r2)‫ל־‬ ‫ללכת‬ ‫יכולים‬ ‫אנחנו‬ x ∈ Σ ‫לכל‬ ‫ככה‬ ‫שעשינו‬ ‫ואחרי‬
‫כל‬ ‫עבור‬ ‫בדיוק‬ ‫הדבר‬ ‫אותו‬ ‫את‬ ‫ולעשות‬ [‫ישנו‬ ‫אם‬ ‫אחר‬ ‫מצב‬ ‫]או‬
.x ∈ Σ
‫או‬ ‫המצבים‬ ‫לכל‬ ‫מגיעים‬ ‫שאנחנו‬ ‫עד‬ ‫הלאה‬ ‫ממשיכים‬ ‫אנחנו‬ ‫וכך‬
‫לכל‬ ‫שנגיע‬ ‫להיות‬ ‫חייב‬ ‫)לא‬ ‫להמשיך‬ ‫לאן‬ ‫שאין‬ ‫רואים‬ ‫שאנחנו‬
.(‫המצבים‬ |Q1| · |Q2|
‫עבור‬ ‫ובודקים‬ (q0, r0)‫מ־‬ ‫מתחילים‬ ‫אנחנו‬ ,‫יותר‬ ‫פורמלית‬ ‫בצורה‬
‫לאיזשהו‬ ‫ממשכים‬ ‫מכן‬ ‫ולאחר‬ δ ((q0, r0) , x) :‫מהי‬ x ∈ Σ ‫כל‬
.‫אליו‬ ‫אותנו‬ ‫הוביל‬ (q0, r0)‫ש־‬ ‫אחר‬ ‫מצב‬
‫היא‬ ‫־‬ F ‫־‬ ‫מכפלה‬ ‫באוטומט‬ ‫המקבלים‬ ‫המצבים‬ ‫קבוצת‬ ‫לגבי‬
‫לכך‬ ‫בהתאם‬ .‫לצורך‬ ‫בהתאם‬ ‫אותה‬ ‫להגדיר‬ ‫וניתן‬ !‫קבועה‬ ‫אינה‬
.‫כמובן‬ ‫המכפלה‬ ‫אוטומט‬ ‫שפה‬ ‫תוגדר‬ ‫גם‬
:‫הנל‬ ‫המכפה‬ ‫אוטומט‬ ‫לגבי‬ ,‫נבחר‬ ‫אם‬ ,‫למשל‬
F = (F1 × Q1)∪(Q1 × F2) =
n
(q, r) ∈ Q q ∈ F1 ∨ r ∈ F2
o
:‫היא‬ (‫המכפלה‬ ‫)אוטומט‬ ‫האוטומט‬ ‫ששפת‬ ‫נקבל‬ ‫אזי‬
L (A) = L (A1) ∪ L (A2)
.
‫נוספים‬ ‫משפטים‬ ‫כמה‬ 1.9
‫לאיחוד‬ ‫סגורה‬ Σ ‫אב‬ ‫מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.2 ‫משפט‬
.‫וחיתוך‬
L1 ∪ L2 ‫גם‬ ‫כך‬ ‫אז‬ ‫רוגלריות‬ ‫שפות‬ ‫הן‬ L1, L2 ⊆ Σ∗
‫אם‬ ,‫כלומר‬
.L1 ∩ L2‫ו־‬
‫לאיחוד‬ ‫סגורה‬ Σ ‫אב‬ ‫מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.3 ‫מסקנה‬
.1
‫שפות‬ ‫של‬ ‫סופי‬ ‫מספר‬ ‫של‬ ‫ולחיתוך‬
‫רגולרית‬ ‫שפה‬ ‫היא‬ L = {w} ‫השפה‬ w ∈ Σ∗
‫לכל‬ 1.4 ‫הערה‬
.(‫אחת‬ ‫מילה‬ ‫בת‬ ‫)שפה‬
‫כי‬ ,‫נכון‬ ‫)זה‬ ‫רגולרית‬ ‫שפה‬ ‫היא‬ Σ ‫מעל‬ ‫סופית‬ ‫שפה‬ ‫כל‬ 1.5 ‫מסקנה‬
‫מכילה‬ ‫מהן‬ ‫אחת‬ ‫שכל‬ ‫שפות‬ ‫של‬ ‫סופי‬ ‫איחוד‬ ‫היא‬ ‫סופית‬ ‫שפה‬ ‫כי‬
.(‫רגולרית‬ ‫היא‬ ‫ולכן‬ ,‫אחת‬ ‫מילה‬
‫להפרש‬ ‫סגורה‬ Σ ‫אב‬ ‫מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.6 ‫טענה‬
.‫סימטרי‬ ‫ולהפרש‬
:‫גם‬ ‫כך‬ ‫אז‬ ‫רגולריות‬ ‫שפות‬ ‫הן‬ L1, L2 ⊆ Σ∗
‫אם‬ ,‫כלומר‬
. 3 2
. L1L2 = L1 − L2‫ו־‬ L1∆L2 = L1 ⊕ L2
‫ניתן‬ ‫אזי‬ ,‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫באוטומט‬ ‫קיימים‬ ‫אם‬
‫שקשורים‬ (‫)החצים‬ ‫המעברים‬ ‫כל‬ ‫עם‬ ‫יחד‬ ,‫אלה‬ ‫מצבים‬ ‫להסיר‬
‫של‬ ‫שפה‬ ‫אותה‬ ‫את‬ ‫שמזהה‬ DFA ‫עדיין‬ ‫הוא‬ ‫שישאר‬ ‫מה‬ .‫אליהם‬
.‫המקורי‬ ‫האוטומט‬
.‫נכון‬ ‫אינו‬ ‫זה‬ ‫אזי‬ ‫רגולריות‬ ‫שפות‬ ‫של‬ ‫אינסופי‬ ‫מספר‬ ‫של‬ ‫במקרה‬1
L1 − L2 = L1L2 =
n
w w ∈ L1 ∧ w /
∈ L2
o
2
‫חייב‬ ‫האיבר‬ ‫כלומר‬ ‫־‬ L1∆L2 = L1 ⊕ L2 =

w w ∈ L1 ⊕ w ∈ L2

3
!‫בלבד‬ ‫אחת‬ ‫בקבוצה‬ ‫להיות‬
4
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
(‫)אסלד‬ ‫דטרמינסטי‬ ‫לא‬ ‫סופי‬ ‫אוטומט‬ 2
:‫חמישיה‬ ‫הוא‬ ‫אסלד‬
A = hQ, Σ, δ, q0, Fi
:‫כאן‬ ‫אבל‬ DFA ‫בהגדרת‬ ‫כמו‬ ‫בדיוק‬ ‫הם‬ Q, Σ, q0, F :‫שבה‬
δ : Q × Σ → 2Q
.Q ‫של‬ ‫החזקה‬ ‫קבוצת‬ ‫־‬ 2Q
= P (Q) =
n
P P ⊆ Q
o
‫כאשר‬
‫קבוצה‬ ‫מותאמת‬ ‫מצב‬ ‫לכל‬ ‫דטרמיניסטי‬ ‫סופי‬ ‫לאוטומט‬ ‫בניגוד‬ ,‫כאן‬
.‫מצבים‬ ‫של‬
‫קבוצה‬ ‫היא‬ δ (q, a) ,‫כלומר‬ ,δ (q, a) ⊆ Q :a ∈ Σ‫ו־‬ q ∈ Q ‫עבור‬
.‫מצבים‬ ‫של‬
‫לעבור‬ ‫יכול‬ ‫הוא‬ a ‫את‬ ‫וקורא‬ q‫ב־‬ ‫נמצא‬ ‫נמצא‬ ‫כשהאוטומט‬
‫המשך‬ ‫את‬ ‫לנחש‬ ‫יכול‬ ‫]האוטומט‬ δ (q, a)‫ב־‬ ‫מהמצבים‬ ‫אחד‬ ‫לכל‬
.[‫החישוב‬
q‫ב־‬ ‫נמצא‬ ‫האוטומט‬ ‫שאם‬ ‫אומר‬ ‫זה‬ ‫־‬ δ (q, a) = ∅ ‫ש־‬ ‫ייתכן‬
.‫בחישוב‬ ‫להמשיך‬ ‫יכול‬ ‫ולא‬ ‫נתקע‬ ‫הוא‬ a ‫וקורא‬
‫המילים‬ ‫כל‬ ‫היא‬ ‫השפה‬ ‫כאשר‬ Σ = {0, 1} ‫עבור‬ ‫אסלד‬ ‫הנה‬ ,‫למשל‬
:1 ‫היא‬ ‫אחרונה‬ ‫לפני‬ ‫האחת‬ ‫האות‬ ‫שבהן‬
// q0
0,1

1 // q1
0,1
// q2
‫קשתות‬ ‫מספר‬ ‫לצאת‬ ‫יכולים‬ Q ‫ממצב‬ ‫האוטומט‬ ‫את‬ ‫המייצג‬ ‫בגרף‬
.‫קלט‬ ‫אות‬ ‫באותה‬ ‫שמסומנות‬ (‫קשתות‬ 0 ‫גם‬ ‫)ייתכנו‬
:‫למשל‬
r
q
a
88
a 
p
:‫הציור‬ ‫משמעות‬
‫לא‬ ‫באופן‬ ‫יכול‬ ‫הוא‬ a ‫את‬ ‫וקורא‬ q ‫במצב‬ ‫נמצא‬ ‫כשהאוטומט‬
.r‫ל־‬ ‫או‬p‫ל־‬ ‫לעבור‬ ‫דטרמיניסטי‬
‫אם‬ ,‫כזה‬ ‫במקרה‬ .a‫ב־‬ ‫שמסומנת‬ ‫קשת‬ ‫יוצאת‬ ‫לא‬ q‫שמ־‬ ‫ייתכן‬
‫ולא‬ (q‫)ב־‬ ‫נתקע‬ ‫האוטומט‬ ‫־‬ a ‫את‬ ‫וקורא‬ q‫ב־‬ ‫נמצא‬ ‫האוטומט‬
.‫שלו‬ ‫בריצה‬ ‫להמשיך‬ ‫יכול‬
‫מצב‬ ‫הוא‬ q ‫אם‬ ‫אפילו‬ ‫המילה‬ ‫את‬ ‫דוחה‬ ‫האוטומט‬ ‫זה‬ ‫במקרה‬
.(‫)מקבל‬ ‫סופי‬
w = a1a2 · · · an ‫מילה‬ ‫על‬ A ‫של‬ (‫חישוב‬ ‫מסלול‬ :‫)או‬ ‫ריצה‬
‫סדרת‬ ‫)אורך‬ q0, q1, ..., qn :‫מצבים‬ ‫סדרה‬ ‫היא‬ (ai ∈ Σ) Σ∗
‫מ־‬
:‫שמקיימת‬ (|w| + 1 :‫המצבים‬
.qi ∈ δ (qi−1, ai) :1 ≤ i ≤ n ‫ולכל‬ ‫ההתחלתי‬ ‫המצב‬ ‫הוא‬ q0
‫מספר‬ .w ‫קלט‬ ‫מילת‬ ‫על‬ ‫אפשריות‬ ‫ריצות‬ ‫מספר‬ ‫יש‬ A‫של־‬ ‫כמובן‬
.0 ‫להיות‬ ‫יכול‬ ‫זה‬
‫לפני‬ ‫להיתקע‬ ‫יכול‬ ‫האוטומט‬ ‫מסויימת‬ ‫קלט‬ ‫מילת‬ ‫על‬ ,‫]כלומר‬
.[‫המילה‬ ‫קריאת‬ ‫את‬ ‫שסיים‬
(|w| = n ‫)כאשר‬ w ‫הקלט‬ ‫מילת‬ ‫את‬ ‫מקבל‬ A ‫שאסלד‬ ‫אומרים‬
,‫)כלומר‬ qn ∈ F‫ש־‬ ‫כך‬ w ‫על‬ A ‫של‬ q0, ..., qn ‫ריצה‬ ‫קיימת‬ ‫אם‬
.(‫סופי‬ ‫במצב‬ ‫שמסתיימת‬ ‫פעמים‬ n ‫של‬ ‫ריצה‬
:‫להיות‬ ‫ומוגדרת‬L (A) ‫מסומנת‬ A ‫אסלד‬ ‫של‬ ‫השפה‬
L (A) =
(
w ∈ Σ∗
:
)
.w ‫את‬ ‫מקבל‬ A ‫־‬ :
‫על‬ ‫שריצה‬ ‫ייתכן‬ :‫הבא‬ ‫הכלל‬ ‫את‬ ‫לזכור‬ ‫גם‬ ‫כדאי‬
‫שהאוטומט‬ ‫או‬ ‫מקבל‬ ‫לא‬ ‫במצב‬ ‫תסתיים‬ ‫בשפה‬ ‫מילה‬
‫שאינה‬ ‫מילה‬ ‫האוטומט‬ ‫על‬ ‫שנריץ‬ ‫ייתכן‬ ‫לא‬ ‫אבל‬ ,‫יתקע‬
‫)אלא‬ ‫מקבל‬ ‫במצב‬ ,‫כלשהי‬ ‫בריצה‬ ,‫תסתיים‬ ‫והיא‬ ‫בשפה‬
.(‫המילה‬ ‫את‬ ‫דוחה‬ ‫שהאוטומט‬ ‫נחשב‬ ‫זה‬ ‫ואז‬ ‫נתקע‬ ‫האוטומט‬ ‫אם‬
‫בעצם‬ ‫הוא‬ DFA .NFA ‫של‬ ‫פרטי‬ ‫מקרה‬ ‫הוא‬ DFA 2.1 ‫הערה‬
.q ∈ Q ‫ולכל‬ a ∈ Σ ‫לכל‬ |δ (q, a)| = 1 ‫שבו‬ NFA
NFA ‫מסוג‬ ‫אוטומטים‬ ‫לכמה‬ ‫דוגמאות‬ 2.1
:‫ראשונה‬ ‫דוגמא‬
Σ = {0, 1} ‫האב‬ ‫מעל‬ ‫יהיו‬ ‫בדוגמאות‬ ‫האוטומטים‬ ‫כל‬
L = {00, 01, 010} ‫כאשר‬ L∗
:‫הבאה‬ ‫השפה‬ ‫את‬ ‫שמזהה‬ ‫אוטומט‬

q2
1
**
q0
0
**
0
jj
0
q1
0
jj q2
1
jj
:‫שניה‬ ‫דוגמא‬
‫השלישית‬ ‫האותה‬ ‫שבהן‬ ‫בשפה‬ ‫המילים‬ ‫כל‬ ‫את‬ ‫שמזהה‬ ‫אוטומט‬
:1 ‫היא‬ ‫מהסוף‬
// q0
0,1

1 // q1
0,1
// q2
0,1
// q3
:‫נגדיר‬ a ∈ Σ ‫ועבור‬ P ⊆ Q ‫מצבים‬ ‫קבוצת‬ ‫עבור‬
δ (P, a) =
[
q∈P
δ (q, a)
.(a ∈ Σ ‫ולכל‬ q ∈ Q ‫לכל‬ ‫מצבים‬ ‫של‬ ‫קבוצה‬ ‫היא‬ δ (q, a) :‫)תזכורת‬
‫אם‬ ‫להגיע‬ ‫האוטומט‬ ‫יכול‬ ‫שאליהם‬ ‫המצבים‬ ‫קבוצת‬ = δ (P, a)
.a ‫וקורא‬ P‫ב־‬ ‫המצבים‬ ‫באחד‬ ‫נמצא‬ ‫הוא‬
:‫השנייה‬ ‫בדוגמא‬ ,‫למשל‬
δ ({q0, q1} , 0) = {q0, q2}
δ ({q0, q1} , 1) = {q0, q1, q2}
δ ({q3} , 0) = ∅
δ ({q1, q3} , 1) = {q2}
5
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫ולכן‬ ,δ : Q × Σ∗
→ 2Q
:‫מילה‬ ‫עבור‬ ‫גם‬ δ ‫את‬ ‫להרחיב‬ ‫ניתן‬
:w ∈ Σ∗
‫ולכל‬ q ∈ Q ‫לכל‬ ‫מוגדרת‬ δ (q, w)
‫אליהם‬ ‫להגיע‬ ‫יכול‬ ‫שהאוטומט‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ = δ (q, w)
.w ‫את‬ ‫לקרוא‬ ‫ומנסה‬ q ‫במצב‬ ‫מתחיל‬ ‫הוא‬ ‫אם‬
w ‫על‬a ‫של‬ ‫הריצות‬ ‫כל‬ ‫כאשר‬ ‫קורה‬ ‫זה‬ .δ (q, w) = ∅‫ש־‬ ‫ייתכן‬
.‫נתקעות‬
‫ו־‬ P ⊆ Q ‫עבור‬ δ (P, w) ‫להגדיר‬ ‫ניתן‬ ,‫אופן‬ ‫באותו‬ ,‫)כמו־כן‬
.(w ∈ Σ∗
A ‫לא־דטמינסטי‬ ‫סופי‬ ‫אוטומט‬ ‫של‬ ‫השפה‬ 2.2
:‫כך‬ ‫מוגדרת‬ A ‫אסלד‬ ‫של‬ ‫השאפה‬
L (A) =
(
w ∈ Σ∗
δ (q0, w) ∩ F 6= ∅
)
:w ∈ Σ∗
‫עבור‬ :‫אחרות‬ ‫במילים‬
.δ (q0, w) ∩ F 6= ∅ ⇐⇒ w ‫את‬ ‫מקבלת‬ A
‫חזקה‬ ‫אוטומט‬ 2.3
.L (A) = L (B)‫ש־‬ ‫כך‬ B ‫אסד‬ ‫קיים‬ ,A ‫אסלד‬ ‫לכל‬ 2.2 ‫טענה‬
‫אוטומט‬ ‫בונים‬ ‫איך‬ ‫אסביר‬ ‫רק‬ ‫אלא‬ ,‫הטענה‬ ‫את‬ ‫אוכיח‬ ‫לא‬ ‫)אני‬
(‫דוגמא‬ ‫באמצעות‬ ‫כזה‬
‫בעצם‬ ‫הוא‬ (‫בונים‬ ‫שנאחנו‬ ‫)האסד‬ B‫ב־‬ ‫מצב‬ ‫שכל‬ ‫לזכור‬ ‫חשוב‬ ‫רק‬
,(‫בהמשך‬ ‫)יובהר‬ A‫מ־‬ ‫מצבים‬ ‫קבוצת‬
.{q0} ‫הוא‬ B ‫של‬ ‫ההתחלתי‬ ‫והמצב‬
:(Σ = {0, 1} ‫)מעל‬ ‫הבא‬ ‫האוטומט‬ ‫לנו‬ ‫ונתון‬ ‫נניח‬
// q0
0,1

1 // q1
0,1
// q2
‫)וזה‬ ‫הבא‬ ‫הדבר‬ ‫את‬ ‫נעשה‬ ‫שלנו‬ DFA‫ה־‬ ‫את‬ ‫לבנות‬ ‫בשביל‬ ,‫אזי‬
(NFA ‫אוטומט‬ ‫לכל‬ ‫נכון‬
‫נשלח‬ ‫אם‬ ‫נגיע‬ ‫אנחנו‬ ‫מצבים‬ ‫קבוצת‬ ‫לאיזו‬ ‫ונראה‬ {q0}‫מ־‬ ‫נתחיל‬
:4
Σ‫ב־‬ ‫מהאותיות‬ ‫אחת‬ ‫כל‬ ‫לו‬
‫מתחילה‬ ‫כך‬ ,‫ולכן‬ δ ({q0} , 0) = {q0} , δ ({q0} , 1) = {q0, q1}
:‫הבניה‬
// {q0}
0

1 // {q0, q1}
,‫עבורו‬ ‫לבדוק‬ ‫מה‬ ‫לנו‬ ‫אין‬ ‫אזי‬ q0 ‫אל‬ ‫אותנו‬ ‫מוביל‬ 0‫ו־‬ ‫היות‬ ,‫כעת‬
‫קבוצת‬ ‫לאן‬ ‫כעת‬ ‫נבדוק‬ ‫ולכן‬ {q0, q1}‫ל־‬ ‫אותנו‬ ‫הוביל‬ 1 ‫אבל‬
:‫אותנו‬ ‫מובילה‬ ‫הזאת‬ ‫המצבים‬
δ ({q0, q1} , 0) = {q0, q2} , δ ({q0, q1} , 1) = {q0, q1, q2}
.δ (P, a) =
S
q∈P δ (q, a) :‫זה‬ ‫את‬ ‫לחשב‬ ‫איך‬ ‫הוסבר‬ ‫מקודם‬4
:‫עכשיו‬ ‫יראה‬ ‫הגרף‬ ‫ולכן‬
// {q0}
0

1 // {q0, q1}
0
,,
1
%%
{q0, q2}
{q0, q1, q2}
‫ולבדוק‬ ‫בחרנו‬ ‫לא‬ ‫שעוד‬ ‫המצבים‬ ‫אחד‬ ‫את‬ ‫לבחור‬ ‫נצטרך‬ ‫כעת‬
‫מצב‬ ‫אותו‬ ‫עבור‬ ‫אותנו‬ ‫שולחת‬ ‫באב‬ ‫אות‬ ‫כל‬ ‫מצבים‬ ‫קבוצת‬ ‫לאיזו‬
:(‫מצבים‬ ‫קבוצת‬ ‫בעצם‬ ‫)שהוא‬
‫היות‬ ,‫כעת‬ ,δ ({q0, q2} , 0) = {q0} , δ ({q0, q2} , 1) = {q0, q1}
:‫חצים‬ ‫אליהם‬ ‫נמתח‬ ‫פשוט‬ ,‫בגרף‬ ‫הנל‬ ‫המצבים‬ ‫את‬ ‫לנו‬ ‫יש‬ ‫וכבר‬
// {q0}
0

1 // {q0, q1}
0
,,
1
%%
{q0, q2}
1
ll
0
ww
{q0, q1, q2}
‫קבוצת‬ ‫לאיזה‬ ‫ונבדוק‬ ‫בדקנו‬ ‫לא‬ ‫שאותו‬ ‫אחד‬ ‫מצב‬ ‫עוד‬ ‫נותר‬ ,‫כעת‬
:‫אותנו‬ ‫מביאה‬ ‫מהאב‬ ‫אות‬ ‫כל‬ ‫מצבים‬
δ ({q0, q1, q2} , 0) = {q0, q2} , δ ({q0, q1, q2} , 1) =
:‫הוא‬ ‫הגרף‬ ‫ולכן‬ {q0, q1, q2}
// {q0}
0

1 // {q0, q1}
0
,,
1
%%
{q0, q2}
1
ll
0
ww
{q0, q1, q2}
1
XX
0
OO
‫אחרים‬ ‫שמצבים‬ ‫כלומר‬ ,‫לבדוק‬ ‫מצבים‬ ‫יותר‬ ‫שאין‬ ‫לראות‬ ‫נוכל‬ ‫כעת‬
‫נוכל‬ ‫שלא‬ ‫)כאלה‬ ‫להשגה‬ ‫ניתנים‬ ‫אינם‬ ‫בגרף‬ ‫כאן‬ ‫נמצאים‬ ‫שלא‬
‫אותם‬ ‫לבדוק‬ ‫סיבה‬ ‫לנו‬ ‫אין‬ ‫ולכן‬ (q0‫מ־‬ ‫לעולם‬ ‫אליהם‬ ‫להגיע‬
.‫בגרף‬ ‫אותם‬ ‫ולרשום‬
‫המקבל‬ ‫המצב‬ ‫המקורי‬ ‫ובגרף‬ ‫היות‬ :‫המקבלים‬ ‫למצבים‬ ‫הסבר‬
‫הוא‬ ‫מאיבריו‬ ‫שאחד‬ ‫החדש‬ ‫בגרף‬ ‫קודקוד‬ ‫כל‬ ‫אזי‬ q2 ‫הוא‬ ‫היחיד‬
‫לפי‬ ‫הולכים‬ ‫שאנחנו‬ ‫זה‬ ‫עושים‬ ‫שאנחנו‬ ‫מה‬ .‫מקבל‬ ‫מצב‬ ‫יהיה‬ q2
‫הוא‬ q ‫אזי‬ q ∩ F 6= ∅ ‫אם‬ ,‫החדש‬ ‫בגרף‬ q ‫מצב‬ ‫לכל‬ :‫הבא‬ ‫הכלל‬
...‫מקבל‬ ‫מצב‬
,‫כעת‬ .A NFA ‫של‬ ‫החזקה‬ ‫אוטומט‬ ‫נקרא‬ ‫שבנינו‬ B DFA‫ה־‬
NFA‫ל־‬ ‫פרטי‬ ‫מקרה‬ ‫הוא‬ DFA‫ש־‬ ‫ומהעובדה‬ ‫האחרונה‬ ‫מהטענה‬
:‫משפט‬ ‫מתקבל‬
:‫אזי‬ ‫שפה‬ L ⊆ Σ∗
‫תהי‬ 2.3 ‫משפט‬
.L (A) = L‫ש־‬ ‫כך‬ A NFA ‫קיים‬ ⇐⇒ ‫רגולרית‬ L
6
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
ε (‫)מעברי‬ ‫מסעי‬ ‫עם‬ ‫סופי‬ ‫אוטומט‬ 3
‫הגדרה‬ 3.1
‫יש‬ NFA ‫להיותו‬ ‫שבנוסף‬ NFA ‫זהו‬ ε ‫מסעי‬ ‫עם‬ ‫סופי‬ ‫אוטומט‬
:(‫הריקה‬ ‫)המילה‬ ε‫ב־‬ ‫המסומנות‬ ‫קשתות‬ ‫אותו‬ ‫המייצג‬ ‫בגרף‬
p ε // q
‫הוא‬ q‫ב־‬ ‫נמצא‬ ‫האוטומט‬ ‫שאם‬ :‫היא‬ ‫כזה‬ (‫)מעבר‬ ‫קשת‬ ‫משמעות‬
.‫מהקלט‬ ‫אות‬ (‫לצרוך‬ :‫)או‬ ‫לקרוא‬ ‫מבלי‬ p ‫למצב‬ ‫לקפוץ‬ ‫יכול‬
:‫למשל‬
r p
q
ε
@@
ε
^^
a

s
:‫הן‬ ‫האפשרויות‬ ‫אזי‬ a ‫וקורא‬ q‫ב־‬ ‫נמצא‬ ‫האוטומט‬ ‫אם‬
‫את‬ ‫ולקרוא‬ r ‫או‬ p‫ל־‬ ‫ללכת‬ :‫או‬ ,‫הבאה‬ ‫לאות‬ ‫ולעבור‬ s‫ל־‬ ‫ללכת‬
‫את‬ ‫לקרוא‬ ‫ואז‬ ε ‫של‬ ‫הקפיצה‬ ‫את‬ ‫לעשות‬ ‫קודם‬ ,‫)כלומר‬ ‫משם‬ a
.(!‫ההפך‬ ‫ולא‬ ,‫האות‬
.NFA‫ל־‬ ‫זהים‬ ‫־‬ ‫זה‬ ‫במודל‬ ‫הפרטים‬ ‫שאר‬ ‫כל‬
‫דוגמא‬ 3.1.1
// q0
a

ε // q1
b

ε // q2
c

a∗
b∗
c∗
=
n
al
bm
cn
l, m, n ≥ 0
o
:‫היא‬ ‫זה‬ ‫אוטומט‬ ‫שפת‬
‫פורמלית‬ ‫הגדרה‬ 3.2
.5
Σε = Σ ∪ {ε} :‫נסמן‬ ‫אזי‬ ‫אב‬ ‫הוא‬ Σ ‫אם‬ :‫סימון‬
‫זוהי‬ εNFA ‫בסימון‬ ,ε ‫מסעי‬ ‫עם‬ ‫דטרמיניסטי‬ ‫אל‬ ‫אוטומט‬
:‫חמישיה‬
A = hQ, Σ, δ, q0, Fi
!‫הריקה‬ ‫המילה‬ ‫אלא‬ ,‫אות‬ ‫אינה‬ ‫זאת‬ ‫־‬ {ε}5
:‫פה‬ ‫אבל‬ ,NFA ‫בהגדרת‬ ‫כמו‬ ‫בדיוק‬ ‫הם‬ Q, Σ, q0, F :‫כאשר‬
δ : Q × Σε → 2Q
δ (q, ε) ⊆ .q ∈ Q ‫עבור‬ δ (q, ε) ‫גם‬ ‫מוגדרת‬ ‫שכאן‬ ‫הוא‬ ‫)ההבדל‬
.q‫מ־‬ ‫שיוצאים‬ ε ‫מעברי‬ ‫אין‬ ‫כלומר‬ ,δ (q, ε) = ∅‫ש־‬ ‫ייתכן‬ .Q
. q ε // p :‫כזה‬ ‫מעבר‬ 6
‫בגרף‬ ‫יש‬ ⇐⇒ p ∈ δ (q, ε)
‫למילים‬ δ ‫הרחבת‬ 3.3
q ‫של‬ ε ‫סגור‬ 3.3.1
:‫הבא‬ ‫באופן‬ ε ‫של‬ ‫סגור‬ ‫נגדיר‬ q ∈ Q ‫מצב‬ ‫עבור‬
‫להגיע‬ ‫יכול‬ ‫שהאוטומט‬ A‫ב־‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ = CLε (q)
.ε ‫במעברי‬ ‫שימוש‬ ‫עי‬ ,‫כלומר‬ ,‫קלט‬ ‫שום‬ ‫קריאת‬ ‫ללא‬ ‫אליהם‬
,CLε (q0) = {q0, q1, q2} :‫שלמעלה‬ ‫בדוגמא‬ ,‫למשל‬
.CLε (q2) = {q2}‫ו־‬ CLε (q1) = {q1, q2}
:‫מסמנים‬ P ⊆ Q ‫מצבים‬ ‫קבוצת‬ ‫עבור‬
CLε (P) =
[
q∈P
CLε (q)
‫ללא‬ q ∈ P ‫מאיזשהו‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ ‫המצבים‬ ‫כל‬ ‫־‬ ‫כלומר‬
.‫קלט‬ ‫אות‬ ‫קריאת‬
:δ ‫הרחבת‬
δ̂ : Q × Σ∗
→ 2Q
:‫כך‬ ‫מוגדרת‬
(
δ̂ (q, ε) = CLε (q)
δ̂ (q, va) =
S
r∈δ̂(q,v) CLε (δ (r, a)) ∀v ∈ Σ∗
, a ∈ Σ
.w ∈ Σ∗
‫ולכל‬ q ∈ Q ‫לכל‬ ‫מוגדרת‬ δ̂ (q, w) ‫כך‬
‫מתחילים‬ ‫אם‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ = δ̂ (q, w)
.(‫)מילה‬ w ‫את‬ ‫וקוראים‬ q ‫במצב‬
a ∈ Σ ‫)עבור‬ !δ̂ (q, a) 6= δ (q, a) :‫הבא‬ ‫לדבר‬ ‫לב‬ ‫לשים‬ ‫חשוב‬
.(q ∈ Q‫ו־‬
‫במעברי‬ ‫להשתמש‬ ‫לנו‬ ‫מותר‬ ,‫ההגדרה‬ ‫עפ‬ ,δ̂ (q, a)‫ב־‬ :‫הסבר‬
‫לעומת‬ .‫למעבר‬ ‫מהאפשרויות‬ ‫כחלק‬ ε ‫את‬ ‫מכללים‬ ‫אנחנו‬ ‫כי‬ ε
‫אנחנו‬ ‫כי‬ ,ε ‫במעברי‬ ‫להשתמש‬ ‫יכולים‬ ‫לא‬ ‫אנחנו‬ δ (q, a)‫ב־‬ ,‫זאת‬
‫קריאת‬ ‫עי‬ q‫מ־‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ ‫המצבים‬ ‫לכל‬ ‫כאן‬ ‫מתייחסים‬
.‫כאן‬ ‫מוגדרת‬ δ (q, ε) ‫גם‬ ‫כזכור‬ .(δ̂‫ב־‬ ‫כמו‬ ‫המילה‬ ‫)ולא‬ a ‫האות‬
εNFA ‫של‬ ‫השפה‬ ‫הגדרת‬ 3.4
:‫עי‬ ‫מוגדרת‬ A εNFA ‫של‬ ‫השפה‬
L (A) =
n
w ∈ Σ∗
δ̂ (q0, w) ∩ F 6= ∅
o
.A ‫האוטומט‬ ‫את‬ ‫המייצג‬6
7
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
εNFA‫מ־‬ NFA ‫בניית‬ 3.5
:ε ‫מסעי‬ ‫ללא‬ NFA ‫נבנה‬ A = hQ, Σ, δ, q0, Fi εNFA ‫בהינתן‬
:‫הבא‬ ‫באופן‬ B = hQ, Σ, δ0
, q0, F0
i
δ0
: Q × Σ → 2Q
δ0
(q, a) = δ̂ (q, a)
‫)המילה‬ ε ‫את‬ ‫מקבל‬ A ‫האוטומט‬ ‫האם‬ ‫לב‬ ‫נשים‬ ,F0
‫לגבי‬ ,‫כעת‬
:(‫הריקה‬
F0
=
(
F ∪ {q0} CLε ∩ F 6= ∅ ( ⇐⇒ ε ∈ L (A))
F CLε ∩ F = ∅ ( ⇐⇒ ε /
∈ L (A))
‫המילה‬ ‫)עבור‬ δ0
(q, w) = δ̂ (q, w) :ε 6= w ∈ Σ∗
‫מילה‬ ‫עבור‬
(q0 ‫עבור‬ ‫רק‬ ‫נכון‬ ‫זה‬ ε ‫הריקה‬
‫גם‬ ‫תקף‬ ‫זה‬ ‫)וכלל‬ w ∈ L (B) ⇐⇒ w ∈ L (A) ‫ש־‬ ‫נובע‬ ‫מכאן‬
.(‫הריקה‬ ‫המילה‬ ‫עבור‬
.L (A) = L (B) :‫מתקיים‬ ,‫כלומר‬
‫מצב‬ ‫ואותו‬ ‫מהצבים‬ ‫אותם‬ ‫את‬ ‫יש‬ B‫ו־‬ A‫שב־‬ ‫לב‬ ‫נשים‬ 3.1 ‫הערה‬
.‫התחלתי‬
‫עם‬ ,B (ε ‫מסעי‬ ‫)ללא‬ NFA ‫קיים‬ A εNFA ‫לכל‬ 3.2 ‫משפט‬
.L (A) = L (B) :‫שמקיים‬ ‫התחלתי‬ ‫מצב‬ ‫ואותו‬ ‫מצבים‬ ‫אותם‬
A εNFA ‫קיים‬ ⇐⇒ ‫רגולרית‬ ‫היא‬ L ⊆ Σ∗
‫שפה‬ 3.3 ‫משפט‬
.L ‫את‬ ‫שמזהה‬
‫בבניה‬ ‫שמתואר‬ ,‫שקול‬ (ε ‫מסעי‬ ‫)ללא‬ NFA‫ל־‬ εNFA‫מ־‬ ‫המעבר‬
.ε (‫)מסעי‬ ‫מעברי‬ ‫הסרת‬ :‫נקרא‬ ‫הנל‬
A‫ב־‬ ‫מצב‬ ‫כל‬ ‫עבור‬ :‫הבא‬ ‫באופן‬ ‫המעבר‬ ‫את‬ ‫לעשות‬ ‫גם‬ ‫ניתן‬
‫על‬ ‫נתסכל‬ (εNFA)
ε ‫מעברי‬ ‫הסרת‬ ‫תהליך‬ ‫תיאור‬ 3.5.1
.A = hQ, Σ, δ, q0, Fi εNFA ‫נתון‬
:‫הבא‬ ‫באופן‬ ε (‫)מסעי‬ ‫מעברי‬ ‫את‬ ‫נסיר‬
p‫ל־‬ q‫מ־‬ ‫מסלול‬ ‫יש‬ A ‫בגרף‬ ‫אם‬ ,(q, p) ‫מצבים‬ ‫זוג‬ ‫כל‬ ‫עבור‬ .1
‫באות‬ ‫המסומנת‬ ‫אחת‬ ‫מלבד‬ ,ε‫ב־‬ ‫מסומנות‬ ‫בו‬ ‫הקשתות‬ ‫שכל‬
‫וקשת‬ ‫)במידה‬ ‫לגרף‬ q a // p ‫קשת‬ ‫מוסיפים‬ ‫אזי‬ ,a
.(‫קיימת‬ ‫אינה‬ ‫כזאת‬
.ε‫ב־‬ ‫שמסומנות‬ ‫הקשתות‬ ‫כל‬ ‫את‬ ‫מוחקים‬ .2
‫אזי‬ F ∩ CLε (q0) 6= ∅ ‫אם‬ :F ‫את‬ ‫משנים‬ ‫הצורך‬ ‫במידת‬ .3
.F‫ל־‬ q0 ‫את‬ ‫מוסיפים‬
‫האלגוריתם‬ ‫באמצעות‬ ε ‫מעברי‬ ‫את‬ ‫נסיר‬ ‫שאם‬ ‫להיות‬ ‫יכול‬ :‫הערה‬
‫זה‬ ‫אבל‬ .‫ההגדרה‬ ‫עפ‬ ‫נסיר‬ ‫אם‬ ‫שנעשה‬ ‫מזה‬ ‫שונה‬ NFA ‫לנו‬ ‫יצא‬
‫תמיד‬ ‫מקרה‬ ‫בכל‬ ‫לכן‬ .‫דבר‬ ‫אותו‬ ‫הוא‬ ‫שלנו‬ DFA‫ה־‬ ‫עוד‬ ‫כל‬ ‫בסדר‬
‫אפשר‬ ‫אז‬ ‫התאמה‬ ‫שאין‬ ‫ברגע‬ ‫כי‬ ‫־‬ ‫חלקית‬ ‫)אפילו‬ ‫לבדוק‬ ‫כדאי‬
.(‫להפסיק‬
‫שפות‬ ‫על‬ ‫רגולריות‬ ‫פעולות‬ 3.6
.‫ואיטרציה‬ ‫שירשור‬ ,(‫חיתוך‬ ‫)ולא‬ ‫איחוד‬ :‫שפות‬ ‫על‬ ‫רגולריות‬ ‫פעולות‬
7
.‫רגולריות‬ ‫לפעולות‬ ‫סגורה‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ :‫משפט‬
.‫נפרד‬ ‫בדף‬ ‫הוכחה‬7
III ‫חלק‬
‫רגולריים‬ ‫ביטויים‬
‫הגדרה‬ 4
.‫אב‬ Σ ‫יהי‬
:‫הבא‬ ‫באופן‬ ‫ברקורסיה‬ ‫מוגדר‬ (Σ ‫)מעל‬ ‫רגולרי‬ ‫ביטוי‬
.‫רגולרי‬ ‫ביטוי‬ ‫הוא‬ a :a ∈ Σ ‫לכל‬ .1
.‫רגולרי‬ ‫ביטוי‬ ‫היא‬ (‫הריקה‬ ‫)המילה‬ ε .2
.‫רגולרי‬ ‫ביטורי‬ ‫היא‬ ∅ .3
‫הוא‬ r + s, rs, r∗
:‫גם‬ ‫אזי‬ ‫רגולריים‬ ‫ביטויים‬ ‫הם‬ s‫ו־‬ r ‫אם‬ .4
.‫רגולרי‬ ‫ביטוי‬
(1 + 0)
∗
1 ,[Σ∗
‫ל־‬ ‫שקול‬ ,Σ‫ב־‬ ‫המילים‬ ‫]כל‬ (0 + 1)
∗
,0 :‫למשל‬
....,[1‫ב־‬ ‫שמסתיימות‬ ‫המילים‬ ‫]כל‬
‫רקורסיבית‬ ‫ומוגדרת‬ L (r) ‫מסומנת‬ r ‫רגולרי‬ ‫ביטוי‬ ‫של‬ ‫השפה‬
:‫הבא‬ ‫באופן‬
.a ∈ Σ ‫לכל‬ L (a) = {a} .1
.L (ε) = {ε} .2
.L (∅) = ∅ .3
:‫אזי‬ ,‫רגולריים‬ ‫ביטויים‬ ‫הם‬ r, s ‫אם‬ .4
.L (r + s) = L (r) ∪ L (s) (‫)א‬
.L (rs) = L (r) · L (s) (‫)ב‬
L (r∗
) = L (r)
∗
(‫)ג‬
‫ביטויים‬ ‫נקראים‬ L (r) = L (s) ‫שמקיימים‬ r, s ‫רגולריים‬ ‫ביטויים‬
.‫שקולים‬ ‫רגולריים‬
‫ניתן‬ ‫־‬ ‫שקולים‬ ‫הם‬ ‫־‬ r = (0∗
1)
∗
, s = ε + (0 + 1)
∗
1 :‫למשל‬
.‫מילים‬ ‫אותן‬ ‫את‬ ‫מהם‬ ‫לייצר‬
.‫רגולרי‬ ‫ביטוי‬ ‫הוא‬ α ‫כאשר‬ ,αα∗
:‫פירושו‬ α+
,‫כמו־כן‬
‫שלו‬ ‫השפה‬ ‫לבין‬ ‫רגולרי‬ ‫ביטוי‬ ‫בין‬ ‫ההבחנה‬ ‫את‬ ‫נשמיט‬ 4.1 ‫הערה‬
.‫מגדיר‬ ‫הוא‬ ‫שאותה‬ ‫לשפה‬ ‫כמו‬ ‫רגולרי‬ ‫לביטוי‬ ‫ונתייחס‬
.r = s ‫רגולריים‬ ‫ביטויים‬ ‫של‬ ‫שקילות‬ ‫נרשום‬ ,‫על־כן‬
8
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫פעולות‬ ‫סדר‬ 4.1
‫מבחינת‬ ‫למה‬ ‫קודם‬ ‫מה‬ ,‫)כלומר‬ ‫רגולריים‬ ‫בביטויים‬ ‫הפעולות‬ ‫סדר‬
:(‫יורד‬ ‫בסדר‬ ‫החשיבות‬
.‫סוגריים‬ ‫־‬ () .1
.∗ .2
.(‫)שירשור‬ · .3
.+ .4
Kleene ‫משפט‬ 5
.‫אב‬ Σ ‫יהי‬
‫כך‬ r ‫רוגלרי‬ ‫ביטוי‬ ‫קיים‬ ⇐⇒ ‫רגולרית‬ ‫שפה‬ ‫היא‬ L ⊆ Σ∗
‫שפה‬
.L (r) = L‫ש־‬
.(‫סופי‬ ‫לאוטומט‬ ‫שקול‬ ‫רגולרי‬ ‫ביטוי‬ ,‫אחרות‬ ‫)במילים‬
‫לאוטומט‬ ‫רגולרי‬ ‫ביטוי‬ ‫הפיכת‬ 5.1
:‫אטומי‬ ‫רגולרי‬ ‫ביטוי‬ ‫לשפת‬ ‫שווה‬ ‫ששפתו‬ ‫סופי‬ ‫אוטומט‬
. // a // :a
. // :ε
. // :∅
:‫סופי‬ ‫לאוטומט‬ ‫רגולרי‬ ‫ביטוי‬ ‫כל‬ ‫להפוך‬ ‫נוכל‬ ,‫כעת‬
‫אותו‬ ‫ונהפוך‬ (01 + 0)
∗
‫הרגולרי‬ ‫הביטוי‬ ‫את‬ ‫ניקח‬ :‫למשל‬
:‫סופי‬ ‫לאוטומט‬
‫עם‬ 1‫ו־‬ 0 ‫השפות‬ ‫שירשור‬ ‫עי‬ 01 ‫השפה‬ ‫את‬ ‫מליצור‬ ‫נתחיל‬
:‫אפסילון‬
. // 0 // :0
. // 1 // :1
:‫הוא‬ ‫השירשור‬ ‫ולכן‬
. // 0 // ε // 1 //
:‫הבא‬ ‫באופן‬ ‫נבטא‬ + ‫את‬ ,‫כעת‬
:‫השפות‬ ‫לשתי‬ ε ‫מסעי‬ ‫שני‬ ‫באמצעות‬ ‫נחבר‬ ‫ואותו‬ ‫מצב‬ ‫עוד‬ ‫נוסיף‬
0 // ε // 1 //
//
ε
99
ε
%% 0 //
‫מעבר‬ ‫נשים‬ :‫הבא‬ ‫הדבר‬ ‫את‬ ‫הוא‬ ‫שנעשה‬ ‫מה‬ .∗‫ה־‬ ‫את‬ ‫וכעת‬
‫המצב‬ ‫ואת‬ ‫לשפה‬ ‫שמוביל‬ ε‫ה־‬ ‫מעבר‬ ‫אחרי‬ ‫שנמצא‬ ‫לקודקוד‬ ε
‫ונהפוך‬ ‫קודקוד‬ ‫עוד‬ ‫נוסיף‬ :‫אחרות‬ ‫)במילים‬ ‫למקבל‬ ‫נהפוך‬ ‫שלפניו‬
:‫הבא‬ ‫באופן‬ ‫קשתות‬ ‫שתי‬ ‫ונשלח‬ (‫מקבל‬ ‫למצב‬ ‫אותו‬
0 // ε // 1 //

// ε //
ε
99
ε
%% 0 //
WW
(01 + 0)
∗
: ‫היא‬ ‫ששפתו‬ ‫סופי‬ ‫אוטומט‬ ‫זהו‬
‫רגולרי‬ ‫לביטוי‬ DFA ‫אוטומט‬ ‫הפיכת‬ 5.2
‫חדש‬ ‫חישובי‬ ‫מודול‬ ‫נציג‬ ‫רגולרי‬ ‫לביטוי‬ DFA ‫הפיכת‬ ‫לתאר‬ ‫כדי‬
.(G=Generalized ,‫מוכלל‬ ‫)אוטומט‬ GNFA ‫שנקרא‬
‫בו‬ ‫שהקשתות‬ ‫רק‬ NFA ‫כמו‬ ,‫מכוון‬ ‫גרף‬ ‫עי‬ ‫מוצג‬ GNFA
. ‫רגולרים‬ ‫בביטוים‬ ‫מסומנות‬
.qs ‫יחיד‬ ‫התחלתי‬ ‫ומצב‬ ,qt ‫־‬ ‫יחיד‬ ‫סופי‬ ‫מצב‬ ‫יש‬ :‫נוסף‬ ‫דבר‬
.qt‫מ־‬ ‫שיוצאת‬ ‫קצת‬ ‫ואין‬ qs‫ל־‬ ‫שנכנסת‬ ‫קשת‬ ‫אין‬
:‫למשל‬
// qs
a∗
b∗
//
b $$
qt
q0
a∗
::
:‫הסברים‬
x‫מ־‬ ‫יעבור‬ ‫האוטומט‬ ‫אזי‬ ,GNFA‫ב־‬ ‫קשת‬ ‫היא‬ x
r // y :‫אם‬
‫־‬ L (r) ,r ‫רגולרי‬ ‫ביטוי‬ ‫משפת‬ ‫שהיא‬ w ‫מילה‬ ‫קורא‬ ‫הוא‬ ‫אם‬ y‫ל־‬
.r ‫הרגולרי‬ ‫הביטוי‬ ‫את‬ ‫יקרא‬ ‫הוא‬ ‫אם‬ y‫ל־‬ x‫מ־‬ ‫יעבור‬ ‫הוא‬ ‫כלומר‬
‫קריאת‬ ‫עי‬ qt‫ל־‬ qs‫מ־‬ ‫לעבור‬ ‫יכול‬ ,w ‫מילה‬ ‫מקבל‬ ‫אשר‬ GNFA
.w
‫דהיינו‬ ,‫מקבל‬ ‫שהאוטומט‬ ‫המילים‬ ‫כל‬ ‫קבוצת‬ ‫היא‬ ‫האוטומט‬ ‫שפת‬
.δ (qs, w) = qt‫ש־‬ ‫כך‬ w ∈ Σ∗
‫כל‬
.a∗
b∗
+ ba∗
:‫הינה‬ ‫שלמעלה‬ GNFA‫ה־‬ ‫שפת‬ ,‫למשל‬
.(a∗
‫ואז‬ b ‫או‬ a∗
b∗
‫או‬ ‫צריכים‬ ‫אנחנו‬ qt‫ל־‬ qs‫מ־‬ ‫להגיע‬ ‫בשביל‬ ‫)כי‬
GNFA‫ל־‬ DFA ‫אוטומט‬ ‫הפיכת‬ 5.2.1
:‫הבאה‬ ‫בדרך‬ GNFA‫ל־‬ A DFA ‫כל‬ ‫להפוך‬ ‫ניתן‬
‫ואת‬ ‫מקבלים‬ ‫לא‬ ‫למצבים‬ A‫ב־‬ ‫המקבלים‬ ‫המצבים‬ ‫כל‬ ‫את‬ ‫נהפוך‬
.‫התחלתי‬ ‫לא‬ ‫למצב‬ ‫ההתחלתי‬ ‫המצב‬
:‫חדשים‬ ‫מצבים‬ ‫שני‬ ‫נוסיף‬
.‫התחלתי‬ ‫מצב‬ ‫־‬ qs
.‫סופי‬ ‫מצב‬ ‫־‬ qt
‫ונוסיף‬ A‫ב־‬ ‫התחלתי‬ ‫שהיה‬ ‫למצב‬ qs‫מ־‬ ε‫ב־‬ ‫מסומנת‬ ‫קשת‬ ‫נוסיף‬
.qt‫ל־‬ A‫ב־‬ ‫סופי‬ ‫מצב‬ ‫שהיה‬ ‫מבצ‬ ‫מכל‬ ε‫ב־‬ ‫שמסומנת‬ ‫קשת‬
:‫הבא‬ DFA‫ה־‬ ‫לנו‬ ‫נתון‬ :‫למשל‬
// q0
0

1 // q1
0,1

:‫נקבל‬ GNFA‫ל־‬ ‫אותו‬ ‫נהפוך‬ ‫אם‬ ‫אזי‬
// qs
ε // q0
0

1 // q1
0+1

ε // qt
q0 ‫את‬ ‫להשמיט‬ ‫נוכל‬ GNFA‫ה־‬ ‫של‬ ‫הראשונה‬ ‫בדוגמא‬ :‫הערה‬
:‫השפה‬ ‫אותה‬ ‫את‬ ‫שמקבל‬ ‫יותר‬ ‫קטן‬ GNFA ‫ולקבל‬
// qs
a∗
b∗
+ba∗
// qt
9
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
:GNFA‫ל־‬ ‫נוספת‬ ‫דוגמא‬
q
1∗
0
$$
// qs
01∗
::
(00)∗
$$
qt
p
11
::
:‫זה‬ ‫אוטומט‬ ‫שפת‬
01∗
1∗
0 + (00)
∗
11 = 01∗
0 + (00)
∗
11
GNFA‫ל־‬ ‫פורמלית‬ ‫הגדרה‬ 5.2.2
A = hQ, Σ, λ, qs, qti ‫חמישייה‬ ‫זוהי‬ GNFA
:‫כאשר‬
.|Q| ≥ 2 ‫מצבים‬ ‫של‬ ‫סופית‬ ‫קבוצה‬ = Q •
.‫אב‬ = Σ •
.‫ההתחלתי‬ ‫המצב‬ ‫יקרא‬ ‫־‬ qs ∈ Q •
.‫המקבל‬ ‫המצב‬ ‫יקרא‬ ‫־‬ qt ∈ Q •
:‫הבא‬ ‫באופן‬ ‫מוגדרת‬ λ •
λ : (Q − {qt}) × (Q − {qs}) → RΣ
.Σ ‫מעל‬ ‫הרוגלרים‬ ‫הביטויים‬ ‫קבוצת‬ = RΣ ‫כאשר‬
GNFA‫ב־‬ ‫קשתות‬ ‫סימון‬ 5.2.3
‫הוא‬ λ (p, q) ‫־‬ ((qs, qt) ‫)מלבד‬ (p, q) ‫מצבים‬ ‫של‬ ‫סדור‬ ‫סוג‬ ‫לכל‬
‫את‬ ‫)או‬ ‫הקשת‬ ‫את‬ ‫שמסמל‬ ‫הרגולרי‬ ‫הביטוי‬ ‫זהו‬ .‫רגולרי‬ ‫ביטוי‬
.q‫ל־‬ p‫מ־‬ (‫הצלע‬
:rpq‫ב־‬ ‫זה‬ ‫ביטוי‬ ‫נסמן‬
rpq = λ (p, q)
p
rpq
// q
.λ (p, q) = rpq = ∅ ‫ש־‬ ‫כמובן‬ ‫ייתכן‬
rqsq = 01∗
, rqp = ∅ :‫שלמעלה‬ ‫בדוגמא‬ ,‫למשל‬
.(‫ישנה‬ ‫)אם‬ ‫הצלע‬ ‫את‬ ‫משמיטים‬ ‫זה‬ ‫במקרה‬
:‫דוגמא‬ ‫עוד‬
x
1∗
(00)
// y 0101 // z
.rxy = 1∗
00, ryz = 0101, rzy = ∅ :‫הזה‬ ‫במקרה‬
.z‫ל־‬ x‫מ־‬ (‫)צלע‬ ‫קשת‬ ‫אין‬ ‫כי‬ ‫־‬ rxz = ∅ ‫ו־‬
‫אם‬ w ‫את‬ ‫מקבל‬ A‫ש־‬ ‫אומרים‬ .w ∈ Σ∗
‫ותהי‬ GNFA A ‫יהי‬
,‫פשטות‬ ‫)לשם‬ qs, q1, q2, ..., qk, qt :A‫ב־‬ ‫מצבים‬ ‫סדרת‬ ‫קיימת‬
(qt = qk+1‫ו־‬ ,qs = q0 :‫נסמן‬
‫שלכל‬ ‫כך‬ w = w1w2 · · · wk+1 :‫מהצורה‬ w ‫של‬ ‫פירוק‬ ‫וקיים‬
:‫כלומר‬ wi ∈ λ (qi−1, qi) :‫מתקיים‬ 1 ≤ i ≤ k + 1
wi ∈ rqi−1qi
.‫מקבל‬ A‫ש־‬ w ∈ Σ∗
‫המילים‬ ‫על‬ ‫קבוצת‬ ‫היא‬ L ‫האוטומט‬ ‫שפת‬
GNFA ‫של‬ ‫צימצום‬ 5.2.4
‫נוכל‬ |Q|  2 ‫עם‬ A = hQ, Σ, λ, qs, qti GNFA ‫בההינתן‬
‫שקול‬ A0
GNFA ‫עם‬ ‫ולהישאר‬ 1‫ב־‬ ‫המצבים‬ ‫מסםר‬ ‫את‬ ‫להקטין‬
:‫הבא‬ ‫באופן‬ A‫ל־‬
.(d 6= qs, qt ,‫)כלומר‬ d ∈ Q − {qs,qt} ‫מצב‬ ‫נבחר‬ .1
‫נעדכן‬ ‫שנשארו‬ ‫מהמצבים‬ (p, q) ‫מצבים‬ ‫של‬ ‫סדור‬ ‫זוג‬ ‫לכל‬ .2
:rpq ‫את‬
d
rdd

rdq

p
rpd
@@
rpq
// q
⇓
p
rpq+rpd(rdd)∗
rdq
// q
:rpq ‫את‬ ‫הוא‬ ‫פה‬ ‫מעדכנים‬ ‫הוא‬ ‫שאנחנו‬ ‫מה‬ ,‫כלומר‬
rpq ← rpq + rpd (rdd)
∗
rdq
.
‫יוצאות‬ ‫או‬ ‫שנכנסות‬ ‫הקשתות‬ ‫שאר‬ ‫כל‬ ‫ואת‬ d ‫את‬ A‫מ־‬ ‫נשמיט‬ .3
.d‫מ־‬
q‫ל־‬ p ‫בין‬ ‫מסילה‬ ‫אינה‬ rpq ,‫כלומר‬ ,‫בצעלות‬ ‫שמדובר‬ ‫לזכור‬ ‫חשוב‬
.‫קודקודים‬ ‫בני‬ ‫בין‬ ‫קשת‬ ‫אלא‬
:‫אזי‬ rpd, rdq :‫ריקה‬ ‫קבוצה‬ ‫היא‬ ‫מהבאים‬ ‫אחד‬ ‫אם‬ :‫תזכורת‬
8
.rpd (rdd)
∗
rdq = ∅
.rdd = ε‫ש־‬ ‫נאמר‬ ‫אזי‬ ,(‫מעגל‬ ‫אין‬ ,‫)כלומר‬ ‫כלום‬ rdd‫ב־‬ ‫אין‬ ‫אם‬8
10
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫רגולרי‬ ‫לביטוי‬ DFA ‫הפיכת‬ ‫אלגוריתם‬ 5.2.5
.Aְ DFA :‫קלט‬
.L (r) = L (A)‫ש־‬ ‫כך‬ r ‫רגולרי‬ ‫ביטוי‬ :‫פלט‬
.B GNFA‫ל־‬ A ‫את‬ ‫הפוך‬ .1
‫במצב‬ B ‫את‬ ‫צמצם‬ ‫־‬ 2‫מ־‬ ‫גדול‬ B‫ב־‬ ‫המצבים‬ ‫מספר‬ ‫עוד‬ ‫כל‬ .2
.‫אחד‬
.‫כפלט‬ rqsqt ‫הרגולרי‬ ‫הביטוי‬ ‫את‬ ‫החזר‬ .3
‫קצר‬ ‫סיכום‬ 6
:‫רגולריות‬ ‫שפות‬ ‫של‬ ‫ייצוג‬ ‫של‬ ‫שונים‬ ‫סוגים‬ ‫ארבעה‬ ‫ראינו‬
DFA
♥
{{
RE
♣
##
NFA
3
dd
εNFA
♠
::
.(5.1 ‫)סעיף‬ ‫לאוטומט‬ ‫רוגלרי‬ ‫ביטוי‬ ‫הפיכת‬ ‫־‬ ♣
.(3.5 ‫)סעיף‬ ε ‫מסעי‬ ‫הסרת‬ ‫־‬ ♠
.(2.3 ‫)סעיף‬ ‫החזקה‬ ‫אוטומט‬ ‫־‬ 3
.(5.2 ‫)סעיף‬ ‫רגולרי‬ ‫לביטוי‬ ‫אוטומט‬ ‫הפיכת‬ ‫־‬ ♥
‫הניפוח‬ ‫למת‬ 7
(‫הלמה‬ ‫)ניסוח‬ ‫הגדרה‬ 7.1
.‫רגולרית‬ ‫שפה‬ L ⊆ Σ∗
‫תהי‬
|w| ≥ n ‫עם‬ w ∈ L ‫מילה‬ ‫שלכל‬ ‫כך‬ n ‫טבעי‬ ‫מספר‬ ‫קיים‬ :‫אזי‬
‫הדרישות‬ ‫ומתקיימות‬ x, y, z ∈ Σ∗
‫כאשר‬ w = xyz ‫פירוק‬ ‫קיים‬
:‫הבאות‬
.|xy| ≤ n .1
.(y 6= ε :‫)כלומר‬ |y|  0 .2
‫את‬ ‫לנפח‬ ‫ניתן‬ ,‫כלומר‬ ‫־‬ xyi
z ∈ L :‫מתקיים‬ i ≥ 0 ‫לכל‬ .3
.‫המילה‬
‫כל‬ ,‫כלומר‬ ,‫רגלורית‬ ‫לשפה‬ ‫הכרחי‬ ‫תנאי‬ ‫הינה‬ ‫הניפוח‬ ‫למת‬ :‫הערה‬
‫שמקיימת‬ ‫שפה‬ ‫כל‬ ‫לא‬ ‫אבל‬ ,‫הלמה‬ ‫תנאי‬ ‫את‬ ‫מקיימת‬ ‫רגולרית‬ ‫שפה‬
.‫רגולרית‬ ‫היא‬ ‫הלמה‬ ‫תנאי‬ ‫את‬
‫אינה‬ ‫היא‬ ‫־‬ ‫הלמה‬ ‫תנאי‬ ‫את‬ ‫מקיימת‬ ‫שפה‬ ‫אם‬ ‫־‬ ‫אחרות‬ ‫במילים‬
.‫רגולרית‬ ‫בהכרח‬
‫לתנאי‬ ‫עד‬ ‫קיים‬ ‫מהמילה‬ ‫)החל‬ ‫הניפוח‬ ‫תנאי‬ ‫נקראים‬ ‫אלו‬ ‫תנאים‬
.(3
‫תנאי‬ ‫את‬ ‫מקיימת‬ L ‫אזי‬ ‫רגולרית‬ ‫היא‬ L ‫שפה‬ ‫שאם‬ ‫אומרת‬ ‫הלמה‬
.‫הניפוח‬
.‫הניפוח‬ ‫קבוע‬ ‫נקרא‬ ‫הניפוח‬ ‫בתנאי‬ n ‫המספר‬
‫ב־‬ ‫המצבים‬ ‫למספר‬ ‫שווה‬ ‫גדול‬ ‫או‬ ‫שווה‬ n‫ש־‬ ‫בהכ‬ ‫להניח‬ ‫ניתן‬
.L ‫את‬ ‫שמזהה‬ DFA
L ‫שפה‬ ‫של‬ ‫אי־רגולריות‬ ‫להראות‬ ‫הוא‬ ‫הלמה‬ ‫של‬ ‫העיקרי‬ ‫השימוש‬
‫זה‬ ‫בדכ‬ ,‫הניפוח‬ ‫תנאי‬ ‫את‬ ‫לקיים‬ ‫יכולה‬ ‫לא‬ L‫ש־‬ ‫שמראים‬ ‫כך‬ ‫)עי‬
.(‫השלישי‬ ‫התנאי‬ ‫יהיה‬
‫הניפוח‬ ‫בלמת‬ ‫לשימוש‬ ‫קצרה‬ ‫דוגמא‬ 7.2
:‫השפה‬ ‫כי‬ ‫נוכיח‬
L =
n
aj
bj
i = j, i, j ≥ 0
o
.‫רגולרית‬ ‫אינה‬
:‫הוכחה‬
‫ניפוח‬ ‫קבוע‬ ‫קיים‬ ‫אזי‬ ,‫רגולרית‬ ‫אכן‬ L ‫השפה‬ ‫כי‬ ‫בשלילה‬ ‫נניח‬
‫שלושת‬ ‫מתקיימים‬ |w| ≥ n‫ש־‬ ‫כך‬ w ∈ L ‫שלכל‬ ‫כך‬ n ∈ N
.‫הנל‬ ,‫התנאים‬
.‫בתנאים‬ ‫תעמוד‬ ‫שלא‬ ‫אחת‬ ‫מילה‬ ‫זאת‬ ‫למצוא‬ ‫שעלינו‬ ‫מה‬ ‫כל‬ ,‫כעת‬
‫השפה‬ ,‫כלומר‬ ,‫נכונה‬ ‫אינה‬ ‫הלמה‬ ‫אזי‬ ,‫כזאת‬ ‫מילה‬ ‫שמצאנו‬ ‫ברגע‬
‫לכתוב‬ ‫נצטרך‬ n ‫מהו‬ ‫יודעים‬ ‫לא‬ ‫שאנחנו‬ ‫בגלל‬ ‫אבל‬ .‫רגולרית‬ ‫אינה‬
.‫תבניתית‬ ‫בצורה‬ ‫המילה‬ ‫את‬
‫השפה‬ ‫הגדרת‬ ‫עפ‬ w ∈ L ‫ואכן‬ w = an
bn
:‫המילה‬ ‫את‬ ‫נקח‬
‫תנאי‬ ‫את‬ ‫לקיים‬ ‫צריכה‬ ‫היא‬ ‫רגולרית‬ ‫היא‬ ‫אם‬ ‫ולכן‬ ,|w| ≥ n‫ו־‬
.‫הניפוח‬
:‫ומתקיים‬ x, y, z ∈ Σ∗
‫כאשר‬ w = xyz ‫פירוק‬ ‫ישנו‬ ,‫הלמה‬ ‫לפי‬
.|xy| ≤ n .1
.|y|  0 .2
.xyi
z ∈ L :‫מתקיים‬ 0 ≤ i ∈ N ‫לכל‬ .3
x = al
, y = am
, z = an−l−m
bn
:‫חלוקה‬ ‫שקיימת‬ ‫נקבל‬ 2‫ו־‬ 1‫מ־‬
.‫שבחרנו‬ ‫המילה‬ ‫את‬ ‫לחלק‬ ‫איך‬ ‫לבחור‬ ‫יכולים‬ ‫אנחנו‬ ‫שאין‬ ‫לב‬ ‫)נשים‬
.(‫משתנים‬ ‫שמים‬ ‫אנחנו‬ ‫ולכן‬ ,‫הלמה‬ ‫מתוך‬ ‫נובעת‬ ‫החלוקה‬
‫ש־‬ ‫להיות‬ ‫)יכול‬ .m  0‫ו־‬ l + m ≤ n :(‫הלמה‬ ‫)עפ‬ ‫כשאר‬
.(z‫ב־‬ ‫נמצאים‬ ‫־ים‬a‫ה־‬ ‫כל‬ ,‫אחד‬ a ‫מלבד‬ ,‫ואז‬ l = 0, m = 1
‫נשים‬ ‫אם‬ ‫אבל‬ ,xz ∈ L‫ש־‬ ‫הוא‬ ‫שנקבל‬ ‫מה‬ i = 0 ‫נבחר‬ ‫אם‬ ,‫כעת‬
.xz = al
· an−l−m
· bn
= an−m
bn
:‫לב‬
xz /
∈ L‫ש־‬ ‫שאומר‬ ‫מה‬ n − m  n ‫אזי‬ m  0‫ש־‬ ‫בגלל‬ ‫אבל‬
.‫לסתירה‬ ‫והגענו‬
.‫רגורלית‬ ‫אינה‬ L‫ש־‬ ‫מכאן‬
‫הלמה‬ ‫באמצעות‬ ‫רגורלית‬ ‫היא‬ ‫ששפה‬ ‫זה‬ ‫את‬ ‫לסתור‬ ‫רוצים‬ ‫כאשר‬
‫בתנאי‬ i‫ה־‬ ‫את‬ ‫נחפש‬ ,‫כאן‬ ‫בדוגמא‬ ‫כמו‬ ,‫שתמיד‬ ‫הוא‬ ‫שנעשה‬ ‫מה‬
.‫רגולרית‬ ‫אינה‬ ‫היא‬ ‫כי‬ ‫נראה‬ ‫וכך‬ L‫מ־‬ ‫המילה‬ ‫את‬ ‫שיוציא‬ ‫השלישי‬
‫באמצעותה‬ ‫שנוכל‬ ‫מילה‬ ‫למצוא‬ .‫א‬ :‫בעצם‬ ‫הוא‬ ‫כאן‬ ‫האתגר‬ ‫לכן‬
‫שעבורנו‬ ‫המתאים‬ i‫ה־‬ ‫את‬ ‫למצוא‬ .‫ב‬ .‫השפה‬ ‫רגולריות‬ ‫את‬ ‫לסתור‬
.(‫מסוים‬ i ‫)עבור‬ ‫בשפה‬ ‫נמצאת‬ ‫לא‬ ‫שבחרנו‬ ‫המילה‬ ‫כי‬ ‫נראה‬
‫נוספת‬ ‫למה‬ 8
‫מצבים‬ n ‫עם‬ DFA ‫אוטומט‬ A = hQ, Σ, δ, q0, Fi ‫יהי‬
.L = L (A) ‫ותהי‬ (|Q| = n)
:‫אזי‬
.(|w|  n) n  ‫מאורך‬ ‫מילה‬ ‫מכילה‬ L ⇐⇒ L 6= ∅ .1
.n ≤ |w| ≤ 2n‫ש־‬ ‫כך‬ w ‫מילה‬ ‫מכילה‬ L ⇐⇒ ‫אינסופית‬ L .2
11
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
IV ‫חלק‬
‫רגולריות‬ ‫לשפות‬ ‫הכרעה‬ ‫בעיות‬
.‫לא‬ ‫או‬ ‫כן‬ ‫היא‬ ‫עליה‬ ‫שהתשובה‬ ‫בעיה‬ :‫הכרעה‬ ‫בעיית‬
:‫הבאות‬ ‫ההכרעה‬ ‫בבעיות‬ ‫ונדון‬ DFA ‫עי‬ ‫רגולריות‬ ‫שפות‬ ‫נציג‬
,(A ‫של‬ Σ ‫)מאב‬ w ‫ומילה‬ A DFA ‫נתון‬ :‫השייכות‬ ‫בעיית‬ .1
?w ∈ L (A) ‫האם‬
?L (A) = ∅ ‫האם‬ ,A DFA ‫נתון‬ :‫הרייקנות‬ ‫בעיית‬ .2
?‫אינסופית‬ L (A) ‫האם‬ ,ְ DFA ‫נתון‬ :‫הסופיות‬ ‫בעיית‬ .3
‫האם‬A2‫ו־‬ A1 ‫־ים‬DFA ‫שני‬ ‫נתונים‬ :‫השקילות‬ ‫בעיית‬ .4
?L (A1) = L (A2)
‫שהוצגו‬ ‫הבעיות‬ ‫פתרונות‬ 9
‫השייכות‬ ‫בעיית‬ ‫פתרון‬ 9.1
w = a1a2 · · · an ∈ ‫ומילה‬ A = hQ, Σ, δ, q0, Fi DFA :‫קלט‬
.Σ∗
.‫אחרת‬ ‫לא‬ ,w ∈ L (A) ‫אם‬ ‫כן‬ :‫פלט‬
.q = q0 .1
.δ (q, ai) → q :i = 1, 2, ..., n ‫עבור‬ .2
.‫לא‬ ‫החזר‬ ‫אחרת‬ .‫כן‬ ‫החזר‬ q ∈ F ‫אם‬ .3
‫הריקנות‬ ‫בעיית‬ ‫פתרון‬ 9.2
|Q| = n‫ו־‬ |w|  n ‫כאשר‬ w ‫מילה‬ ‫איזושיה‬ ‫מקבל‬ A ‫אם‬ ‫בודקים‬
.
.‫לא‬ ‫מחזירים‬ ‫אחרת‬ ,‫כן‬ ‫מחזירים‬ ‫אזי‬ ,‫מקבל‬ ‫הוא‬ ‫אם‬
‫הסופיות‬ ‫בעיית‬ ‫פתרון‬ 9.3
.n ≤ |w| ≤ 2n ‫כאשר‬ w ‫מילה‬ ‫מקבל‬ A ‫אם‬ ‫בודקים‬
.‫לא‬ ‫מחזירים‬ ,‫לא‬ ‫אם‬ ,‫כן‬ ‫מחזירים‬ ‫־‬ ‫כן‬ ‫אם‬
‫האחרונה‬ ‫מהלמה‬ ‫נובעת‬ ‫האחרונים‬ ‫האלגוריתמים‬ ‫שני‬ ‫)נכונות‬
.(‫שהראנו‬
‫הנל‬ ‫לאלגוריתמים‬ ‫יעלים‬ ‫פתרונות‬ 9.4
.BFS‫ב־‬ ‫נשתמש‬ ‫כך‬ ‫לשם‬ .‫שהוצגו‬ ‫לבעיות‬ ‫יעלים‬ ‫פתרונות‬ ‫נציג‬
.q ∈ Q ‫כאשר‬ R (q)‫ו־‬ R0 (q) :‫חשובים‬ ‫מושגים‬ ‫שני‬ ‫עוד‬ ‫ונכיר‬
R (q)‫ו־‬ R0 (q) 9.4.1
:‫נסמן‬ q ∈ Q ‫עבור‬ ,A = hQ, Σ, δ, q0, Fi DFA ‫יהי‬
R0 (q) =
n
δ (q, w) w ∈ Σ∗
o
‫מילה‬ ‫באמצעות‬ q‫מ־‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ ‫זוהי‬
‫ולכן‬ ‫הריקה‬ ‫המילה‬ ‫את‬ ‫גם‬ ‫כולל‬ ‫כמובן‬ ‫)שזה‬ w ∈ Σ∗
‫כלשהי‬
‫קיימת‬ ‫אזי‬ p ∈ R0 (q)‫ש־‬ ‫לנו‬ ‫נתון‬ ‫אם‬ ,‫לכן‬ ,(q ∈ R0 (q) ‫תמיד‬
.δ (q, w) = p‫ש־‬ ‫כך‬ w ∈ Σ∗
‫מילה‬
R (q) =
n
δ (q, w) w ∈ Σ∗
, |w|  0
o
‫עם‬ ‫אבל‬ q‫מ־‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ Q‫ב־‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ ‫זוהי‬
‫קיימת‬ ‫אזי‬ p ∈ R (q) ‫אם‬ ,‫כלומר‬ ,‫הריקה‬ ‫המילה‬ ‫מלבד‬ ‫מילה‬ ‫כל‬
.δ (q, w) = p :‫שמתקיים‬ ‫כך‬ ε 6= w ∈ Σ∗
‫מילה‬
9
‫חיובי‬ ‫מאורך‬ ‫מעגל‬ ‫קיים‬ ‫כי‬ , q ∈ R (q) ‫ייתכן‬ ‫כי‬ ‫לזכור‬ ‫חשוב‬
.q‫ל־‬ ‫בחזרה‬ ‫נגיע‬ w = 0 ‫עבור‬ ‫אזי‬ q
0
11 :‫למשל‬ .‫לעצמו‬ q‫מ־‬
.q‫ל־‬ p‫מ־‬ ‫מסלול‬ ‫יש‬ ⇐⇒ p ∈ R0 (q)
.p‫ל־‬ q‫מ־‬ ‫חיובי‬ ‫מאורך‬ ‫מסלול‬ ‫יש‬ ⇐⇒ p ∈ R (q)
.R0 (q) = R (q) ∪ {q} :‫נכון‬ ‫תמיד‬
‫מאורך‬ ‫מעגל‬ ‫שיש‬ ‫)במקרה‬ R0 (q)−{q} = R (q) :‫נכון‬ ‫תמיד‬ ‫לא‬
.(‫חיובי‬
(R0 (q) ‫של‬ ‫)או‬ R (q) ‫של‬ ‫יעיל‬ ‫חישוב‬ 9.4.2
:A ‫של‬ q ‫ומצב‬ A ‫בהינתן‬
.R (q) =

δ (q, a) ∀a ∈ Σ .1
:p ∈ R (q) ‫ולכל‬ a ∈ Σ ‫לכל‬ .2
.R (q)‫ל־‬ p ‫את‬ ‫הוסף‬ ‫אזי‬ δ (p, a) /
∈ R (q) ‫אם‬ (‫)א‬
.2 ‫לצעד‬ ‫חזור‬ ‫־‬ ‫חדש‬ ‫מצב‬ R (q)‫ל־‬ ‫התווסף‬ 2 ‫בצעד‬ ‫אם‬ .3
.R (q) ‫את‬ ‫החזר‬ .4
‫עצמו‬ q ‫את‬ ‫נוסיף‬ ‫)פשוט‬ ‫דומה‬ ‫ממש‬ ‫באופן‬ ‫נעשה‬ R0 (q) ‫חישוב‬
.(‫ונחזיר‬
‫הריקנות‬ ‫לבעיית‬ ‫יעיל‬ ‫פתרון‬ 9.4.3
:‫ונבדוק‬ R0 (q0) ‫נחשב‬ A = hQ, Σ, δ, q0, Fi DFA ‫בהינתן‬
.‫ריקה‬ ‫אינה‬ ‫השפה‬ ‫־‬ ‫כן‬ ‫נחזיר‬ ‫אזי‬ ‫־‬ Ro (q0) ∩ F 6= ∅ ‫אם‬
.‫ריקה‬ ‫השפה‬ ‫־‬ ‫לא‬ ‫נחזיר‬ ‫־‬ ‫לא‬ ‫אם‬
DFA‫ב־‬ ‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫הסרת‬ 9.4.4
‫ב־‬ ‫שאינו‬ q ‫מצב‬ ‫כל‬ ‫מהאוטומט‬ ‫משמיטים‬ ‫־‬ R0 (q0) ‫מחשבים‬
‫יוצאות‬ ‫או‬ ‫מצב‬ ‫לאותו‬ ‫שנכנסות‬ ‫הקשתות‬ ‫כל‬ ‫עם‬ ‫יחד‬ R0 (q0)
.‫ממנו‬
.‫הקשתות‬ ‫מספר‬ = ‫המעגל‬ ‫אורך‬9
12
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫הסופיות‬ ‫לבעיית‬ ‫יעיל‬ ‫פתרון‬ 9.4.5
‫ניתנים‬ ‫מצביו‬ ‫שכל‬ A = hQ, Σ, δ, q0, Fi DFA ‫יהי‬ ‫למה‬
.L = L (A) ‫ותהי‬ ‫להשגה‬
q ∈ R (q) ‫שמקיים‬ q ∈ Q ‫מצב‬ ‫קיים‬ ⇐⇒ ‫אינסופית‬ L :‫אזי‬
.R0 (q) ∩ F 6= ∅‫ו־‬
‫־‬
:A = hQ, Σ, δ, q0, Fi DFA ‫בהינתן‬
.‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫המצבים‬ ‫את‬ A‫מ־‬ ‫נשמיט‬ .1
‫ו־‬ q ∈ R (q) ‫אם‬ ‫ונבדוק‬ q ∈ Q ‫לכל‬ R (q) ‫את‬ ‫נחשב‬ .2
.R0 (q) ∩ F 6= ∅
.‫ונעצור‬ ‫כן‬ ‫נחזיר‬ ‫כזה‬ ‫נמצא‬ ‫אם‬ (‫)א‬
.‫לא‬ ‫נחזיר‬ .3
‫השקילות‬ ‫בעיית‬ ‫פתרון‬ 9.4.6
A2 = A1 = hQ1, Σ, δ1, q1, F1i :‫־ים‬DFA ‫שני‬ ‫נתונים‬
.hQ2, Σ, δ2, q2, F2i
‫התחלתי‬ ‫מצב‬ ‫עם‬ A2‫ו־‬ A1 ‫של‬ A ‫מכפלה‬ ‫אוטומט‬ ‫נבנה‬ .1
:‫סופיים‬ ‫מצבים‬ ‫וקבוצת‬ (q1, q2)
.F = (F1 − F2) ∪ (F2 − F1)
.‫ריקה‬ L (A) ‫אם‬ ‫נבדוק‬ .2
.‫כן‬ ‫נחזיר‬ ‫כן‬ ‫אם‬ (‫)א‬
.‫לא‬ ‫נחזיר‬ ‫לא‬ ‫אם‬ (‫)ב‬
V ‫חלק‬
‫רגולריות‬ ‫לשפות‬ ‫אלגברי‬ ‫אפיון‬
.Σ∗
‫על‬ ‫שקילות‬ ‫יחסי‬ ‫על‬ ‫נדבר‬
:‫עי‬ Σ∗
‫על‬ S‫ו־‬ R ‫שקילות‬ ‫יחס‬ ‫נגדיר‬ :‫למשל‬
:(Σ = {a, b}) x, y ∈ Σ∗
‫עבור‬
.|x| = |y| ⇐⇒ xRy .1
.#a (x) = #a (y) ⇐⇒ xSy .2
:R ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬
:α ∈ Σ ‫עבור‬
[ε] , [α] ,

α2

,

α3

, ...
:i ≥ 1 ‫ולכל‬ [ε] = {ε} ‫כאן‬

αi

=
n
w ∈ Σ∗
|w| = i
o
:S ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬
:α ∈ Σ ‫עבור‬
[ε] , [α] ,

α2

,

α3

, ...
[ε] =
n
w ∈ Σ∗
#α (w) = 0
o
:‫כאן‬
:i ≥ 1 ‫לכל‬

αi

=
n
w ∈ Σ∗
#α (w) = i
o
‫שקילות‬ ‫יחסי‬ ‫עידון‬ 10
.Σ∗
‫על‬ ‫שקילות‬ ‫יחסי‬ R, S ‫יהיו‬
.R ⊆ S ‫אם‬ S ‫של‬ ‫עידון‬ ‫הוא‬ R‫ש־‬ ‫אומרים‬
.(xRy ⇒ xSy :x, y ∈ Σ∗
‫עבור‬ ,‫)כלומר‬
‫היא‬ S ‫של‬ ‫שקילות‬ ‫מחלקת‬ ‫כל‬ ⇐⇒ S ‫של‬ ‫עידון‬ ‫הוא‬ R :‫הערה‬
.R ‫של‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫איחוד‬
‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ 11
‫־‬ Σ∗
/R :‫מסומנת‬ Σ∗
‫ב־‬ R ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬
Σ∗
/R =
n
[x] x ∈ Σ∗
o
:x, y ∈ Σ∗
‫שעבור‬ ‫לב‬ ‫נשים‬
xRy ⇐⇒ [x] = [y]
.(Σ∗
/R‫ב־‬ ‫השוויון‬ ‫)משמעות‬
:‫שלמעלה‬ ‫הדוגמאות‬ ‫בשתי‬ ,‫ולמשל‬
Σ∗
/R =
n
ai

i ≥ 0
o
(rank) ‫שקילות‬ ‫מחלקות‬ ‫של‬ (‫)האינדקס‬ ‫הדרגה‬ 11.1
R ‫של‬ (‫האינדקס‬ ‫)או‬ ‫הדרגה‬ ‫נקראת‬ Σ∗
/R ‫הקבוצה‬ ‫עוצמת‬
.rank (R) :‫ומסומנת‬
‫על‬ ‫סופי‬ ‫מאינדקס‬ ‫יחס‬ ‫הוא‬ R‫ש־‬ ‫אומרים‬ ,rank (R)  ∞ ‫אם‬
.(‫אינסופי‬ ‫מאינדקס‬ ‫יחס‬ ‫הוא‬R ,‫)אחרת‬ Σ∗
‫מאינדקס‬ ‫הן‬ S ‫וגם‬ R ‫גם‬ ‫שלמעלה‬ ‫הדוגמאות‬ ‫בשתי‬ ‫למשלת‬
‫אינסופיץ‬
.R ‫היחס‬ ‫של‬ ‫השונות‬ ‫השקילות‬ ‫מחלקות‬ ‫מספר‬ = rank (R)
‫עידון‬ R) R ⊆ S ‫אם‬ .Σ∗
‫על‬ ‫שקילות‬ ‫יחסי‬ S‫ו־‬ R ‫יהיו‬ 11.1 ‫למה‬
rank (S) ≤ rank (R) :‫אזי‬ (S ‫של‬
‫של‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫איחוד‬ ‫היא‬ S ‫של‬ ‫שקילות‬ ‫מחלקת‬ ‫כל‬ ‫)כי‬
.(R
‫אזי‬ , S = S1 ∪ S2‫ו־‬ R =
S8
i=1 ri :‫שקילות‬ ‫יחסי‬ R, S :‫למשל‬
:‫הינו‬ ‫אפשרי‬ (‫)עידון‬ R ⊆ S
‫אך‬ ?, - ∈ S2 ,☼, , ∈ S1 ‫כאן‬ ‫במקרה‬
.R‫ב־‬ ‫אינו‬ ‫מהללו‬ ‫אחד‬ ‫אף‬
.S1∪S2‫ב־‬ ‫נמצא‬ x ∈ R ‫כל‬ ‫־‬ ‫זאת‬ ‫לעומת‬
S1 : S2 :
r1 r2 r5 r6
r3 r4 r7 r8
☼ , ? -
13
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫מימין‬ ‫אינווריאנטי‬ ‫יחס‬ 12
.Σ∗
‫על‬ ‫שקילות‬ ‫יחס‬ R ‫תהי‬
‫כל‬ ‫עבור‬ ,‫מקיים‬ ‫הוא‬ ‫אם‬ ‫מימין‬ ‫אינווריאנטי‬ R‫ש־‬ ‫אומרים‬
:x, y, z ∈ Σ∗
xRy ⇒ xzRyz
.‫מימין‬ ‫אינוריאנטים‬ 10
R, S ‫־‬ ‫ממקודם‬ ‫שלנו‬ ‫בדוגמאות‬
:‫מימין‬ ‫אינוריאנטי‬ ‫שאינו‬ ‫ליחס‬ ‫דוגמא‬
.(‫ברוורס‬ w ‫המילה‬ ‫זאת‬ ‫־‬ wR
) x = yR
∨ x = y ⇐⇒ xRy
,‫מימין‬ ‫אינוריאנטי‬ ‫אינו‬ ‫הוא‬ ‫אבל‬ , {a, b}
∗
‫על‬ ‫שקילות‬ ‫יחס‬ ‫זהו‬
:‫למשל‬ ‫כי‬
.abaRbaa ‫אבל‬ abRba
‫שפה‬ ‫משמר‬ ‫יחס‬ 13
.‫שפה‬ L ⊆ Σ∗
‫ותהי‬ Σ∗
‫על‬ ‫שקילות‬ ‫יחס‬ R ‫יהי‬
‫עבור‬ ‫אם‬ (L ‫את‬ ‫מעדן‬ R ‫)או‬ L ‫את‬ ‫משמר‬ R‫ש־‬ ‫אומרים‬
:x, y ∈ Σ∗
.y ∈ L ⇐ x ∈ L ∧ xRy
(y ∈ L ⇔ y ∈ L) ⇐ xRy :‫כך‬ ‫זאת‬ ‫לנסח‬ ‫גם‬ ‫אפשר‬
.R ‫של‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫איחוד‬ ‫היא‬ L ⇐⇒ ‫קורה‬ ‫זה‬
‫באוטומט‬ q ∈ Q ‫מצב‬ ‫של‬ ‫שפה‬ 14
:‫מסמנים‬ q ∈ Q ‫עבור‬ DFA A = hQ, Σ, δ, q0, Fi ‫יהי‬
L (q) =
n
w ∈ Σ∗
δ (q0, w) = q
o
‫מהמצב‬ ‫האוטומט‬ ‫את‬ ‫שמעבירות‬ Σ∗
‫ב־‬ ‫המילים‬ ‫כל‬ ‫אלו‬ ,‫כלומר‬
.q ‫למצב‬ ‫ההתחלתי‬
.q ‫המצב‬ ‫שפת‬ :‫נקראת‬ L (q)
‫ניתן‬ ‫שאינו‬ ‫מצב‬ ‫הוא‬ q ‫אםם‬ ‫קורה‬ ‫)זה‬ L (q) = ∅‫ש־‬ ‫יתכן‬
.(‫להשגה‬
.L (p) ∩ L (q) = ∅ ‫אזי‬ p 6= q ‫אם‬
:‫כי‬ ‫לב‬ ‫נשים‬
L (A) =
[
q∈F
L (q)
‫האוטומט‬ ‫שאותה‬ ‫השפה‬ ,‫האוטומט‬ ‫שפת‬ ‫־‬ L (A) :‫)תזכורת‬
.(‫מקבל‬
:‫הבא‬ ‫באוטומט‬ ‫נסתכל‬ ,‫למשל‬
// q0
0

1 // q1
1 //
0

q2
0 //
1
q3
0,1

q4
0,1
UU
.‫הקודם‬ ‫שבדף‬ ‫בשירטוט‬ ‫ולא‬ ‫בהתחלה‬ ‫שהיו‬ ‫לאלו‬ ‫הכוונה‬10
:‫הנל‬ ‫האוטומט‬ ‫של‬ ‫המצבים‬ ‫שפות‬ ‫אזי‬
L (q0) = 0∗
L (q1) = 0∗
10∗
L (q2) = 0∗
10∗
1
L (q3) = 0∗
10∗
1 0 ((0 + 1) (0 + 1))
∗
+ 1 (0 + 1) ((0 + 1) (0 + 1))
∗
L (q4) = 0∗
10∗
1 1 ((0 + 1) (0 + 1))
∗
+ 0 (0 + 1) ((0 + 1) (0 + 1))
∗
r1 = :‫נסמן‬ ‫אזי‬ q2, q4 ‫הינם‬ ‫המקבלים‬ ‫והמצבים‬ ‫היות‬ ,‫כעת‬
:‫אזי‬ L (q2) , r2 = L (q4)
L (A) = r1 + r2 = L (q2) ∪ L (q4)
RL
‫ו־‬ RA
‫חשובים‬ ‫שקילות‬ ‫יחסי‬ ‫שני‬ 15
RA
‫־‬ ‫ראשון‬ ‫שקילות‬ ‫יחס‬ 15.1
Σ∗
‫על‬ RA ‫יחס‬ ‫נגדיר‬ .Σ ‫מעל‬ DFA A = hQ, Σ, δ, q0, Fi ‫יהי‬
:‫הבא‬ ‫באופן‬
:x, y ∈ Σ∗
‫עבור‬
δ (q0, x) = δ (q0, y) ⇐⇒ xRA
y
‫לאותו‬ ‫אותנו‬ ‫מביאות‬ ‫אשר‬ Σ∗
‫ב־‬ ‫מילים‬ ‫שתי‬ ‫לנו‬ ‫יש‬ ‫אם‬ ,‫כלומר‬
‫מחלקות‬ ,‫כלומר‬ .‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫נמצאות‬ ‫שתיהן‬ ‫אזי‬ ‫מצב‬
,‫מצב‬ ‫לאותו‬ ‫אותנו‬ ‫מביאות‬ ‫אשר‬ ‫המילים‬ ‫כל‬ ‫הינן‬ RA ‫של‬ ‫השקילות‬
δ (q0, w) = q‫ש־‬ ‫כך‬ Σ∗
‫ב־‬ ‫המילים‬ ‫כל‬ ‫יהיו‬ q ‫במחלקה‬ ,‫כלומר‬
.‫המילה‬ ‫זאת‬ w ‫כאשר‬
.(‫לבדוק‬ ‫)קל‬ Σ∗
‫על‬ ‫שקילות‬ ‫יחס‬ ‫זהו‬ .1
.‫מימין‬ ‫אינווריאנטי‬ ‫יחס‬ ‫זהו‬ .2
:‫הינן‬ RA
‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ .3
: x ∈ Σ∗
‫עבור‬
[x] =
n
y ∈ Σ∗
xRA
y
o
=





y ∈ Σ∗
δ (q0, x)
| {z }
=q
= δ (q0, y)





=
n
y ∈ Σ∗
δ (q0, y) = q
o
= L (q)
‫של‬ ‫המצבים‬ ‫שפות‬ ‫הינן‬ RA
‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ,‫כלומר‬
.‫האוטומט‬
:‫קיבלנו‬
[x] = L (q)
q = δ (q0, x)
‫של‬ ‫המצבים‬ ‫שפות‬ ‫הן‬ RA
‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ :‫לכן‬
.‫ריקות‬ ‫שאינן‬A
‫השקילות‬ ‫מחלקות‬ ‫אזי‬ ,‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ A‫ב־‬ ‫אין‬ ‫אם‬
.A ‫של‬ ‫המצבים‬ ‫כל‬ ‫שפות‬ ‫הן‬ A ‫של‬
14
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫שנאמר‬ ‫מה‬ ‫סמך‬ ‫על‬ ,‫אזי‬ .n‫ב־‬ A ‫של‬ ‫המצבים‬ ‫מספר‬ ‫את‬ ‫נסמן‬ .4
‫ש־‬ ‫יודעים‬ ‫אנחנו‬ 3‫ב־‬
rank (A) ≤ n
:‫אזי‬ ,‫להשגה‬ ‫הניתנים‬ ‫מצבים‬ A‫ב־‬ ‫אין‬ ‫ואם‬
rank (A) = n
‫היא‬ L ‫כי‬ ,L ‫את‬ (‫)מעדן‬ ‫משמר‬ RA ‫אז‬ L = L (A) :‫נסמן‬ .5
:‫כי‬ RA ‫היחס‬ ‫של‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫איחוד‬
L = L (A) =
[
q∈F
L (q)

Σ∗
=
[
q∈Q
L (q)


:‫דוגמא‬
:‫להיות‬ A ‫את‬ ‫ניקח‬
// q0
1

0 // q1
1

0 // q2
0,1

:‫הינן‬ RA ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬
[ε] = L (q0) = 1∗
[0] = L (q1) = 1∗
01∗
[00] = L (q2) = 1∗
01∗
0 (0 + 1)
∗
‫הכי‬ ‫במילה‬ ‫השקילות‬ ‫מחלקת‬ ‫את‬ ‫לסמן‬ ‫בוחרים‬ ‫אנחנו‬ :‫הערה‬
.[ε] , [0] , [00] ‫את‬ ‫בחרנו‬ ‫לפיכך‬ ,‫מחלקה‬ ‫באותה‬ ‫שיש‬ ‫קצרה‬
RL
‫־‬ ‫שני‬ ‫שקילות‬ ‫יחס‬ 15.2
:‫הבא‬ ‫באופן‬ Σ∗
‫על‬ RL
‫יחס‬ ‫נגדיר‬ L ⊆ Σ∗
‫שפה‬ ‫עבור‬
x, y ∈ Σ∗
:‫עבור‬
∀z ∈ Σ∗
: (xz ∈ L ⇔ yz ∈ L) ⇐⇒ xRL
y
‫מילה‬ ‫קיימת‬ ‫אםם‬ ‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫נמצאים‬ x, y :‫כלומר‬
‫להיות‬ ‫שיכולת‬ ‫)כמובן‬ yz ∈ L ‫וגם‬ xz ∈ L ‫שגם‬ ‫כך‬ z ∈ Σ∗
.(‫כאלו‬ ‫מילים‬ ‫מספר‬
:‫נוספת‬ ‫בדרך‬ RL
‫הגדרת‬ ‫את‬ ‫ננסח‬
‫של‬ ‫הימני‬ ‫ההקשר‬ , x ∈ Σ∗
‫ומילה‬ L ⊆ Σ∗
‫שפה‬ ‫עבור‬ :‫הגדרה‬
:‫עי‬ ‫ומוגדר‬ rcL
(x) :‫מסומן‬ L‫ב־‬ x
rcL
(x) =
n
z ∈ Σ∗
xz ∈ L
o
:x, y ∈ Σ∗
‫עבור‬ ‫לראות‬ ‫קל‬ ,‫כעת‬
rcL
(x) = rcL
(y) ⇐⇒ xRL
y
.(‫שלמעלה‬ ‫ליחס‬ ‫שקולה‬ ‫הגדרה‬ ‫)זוהי‬
.‫מימין‬ ‫אינווריאנטי‬ ‫ויחס‬ ‫שקילות‬ ‫יחס‬ ‫הוא‬ RL
‫דוגמאות‬ ‫מספר‬ 15.3
‫סופיות‬ ‫לשפות‬ ‫דוגמאות‬ 15.3.1
.L = {a, ba, baa}‫ו־‬ Σ = {a, b} :‫ניקח‬
:RL
‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫נחשב‬
RL
‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫יהיו‬ (‫)השמאלי‬ ‫הראשון‬ ‫בטור‬
‫בניהן‬ ‫שיבדיל‬ ‫מה‬ ,Σ∗
‫ב־‬ ‫המילים‬ ‫על‬ ‫בעצם‬ ‫הוא‬ ‫שלהם‬ ‫שאיחוד‬
‫לאותה‬ ‫שתגרום‬ z ∈ Σ∗
‫המילה‬ ‫־‬ rcL
‫ה־‬ ‫כלומר‬ ,‫הסיפא‬ ‫הוא‬
.‫בשפה‬ ‫להיות‬ ‫השמאלי‬ ‫שבטור‬ ‫מילה‬
(Σ∗
‫ב־‬ ‫המילים‬ ‫)כל‬ x rcL
(x)
ε a + ba + baa
a + baa ε
b a + aa
ba ε + a
(a‫ש־‬ ‫היכן‬ ,‫כזאת‬ ‫מחלקה‬ ‫כבר‬ ‫)יש‬ baa ε
‫המילים‬ ‫שאר‬ ‫כל‬ ∅
‫הכי‬ ‫המילה‬ ‫את‬ ‫לוקחים‬ ,‫)תזכורת‬ ‫הינן‬ ‫השקילות‬ ‫מחלקות‬ ‫לכן‬
:([‫השמאלי‬ ‫]הטור‬ ‫מחלקה‬ ‫מכל‬ ‫קצרה‬
[ε] [a] [b] [ba] [aa]
⇓ ⇓ ⇓ ⇓ ⇓
{ε} {a, baa} {b} {ba} ⊕
. ‫המילים‬ ‫שאר‬ ‫כל‬ ‫־‬ ⊕
,‫למשל‬ ,‫הימני‬ ‫הטור‬ ‫זה‬ ‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫לנו‬ ‫שקובע‬ ‫מה‬
‫אפשר‬ ‫לשניהם‬ ‫היא‬ ‫שיקילות‬ ‫מחלקת‬ ‫באותה‬ baa‫ו־‬ a‫ש־‬ ‫הסיבה‬
‫הקצרה‬ ‫המילה‬ ‫זאת‬ a ‫והיות‬ ,‫בשפה‬ ‫יהיו‬ ‫שהם‬ ‫כדי‬ ε ‫רק‬ ‫להוסיף‬
.‫המחלקה‬ ‫את‬ ‫שתייצג‬ ‫בחרנו‬ ‫אותה‬
‫שאם‬ Σ∗
‫ב־‬ ‫היחידה‬ ‫המילה‬ ‫היא‬ ‫כי‬ [b] = {b} ‫המחלקה‬ ‫למשל‬
.‫בשפה‬ ‫תהיה‬ ‫היא‬ z = a + aa ‫לה‬ ‫נוסיף‬
‫שאם‬ ‫היחידה‬ ‫המילה‬ ‫זאת‬ ‫־‬ ‫כנל‬ ‫סיבה‬ ‫מאותה‬ [ba] = {ba} :‫או‬
.‫בשפה‬ ‫תהיה‬ ‫היא‬ z = ε + a ‫לה‬ ‫נוסיף‬
.‫השקילות‬ ‫חלקות‬ ‫בין‬ ‫להפריד‬ ‫לנו‬ ‫עוזר‬ (‫הימני‬ ‫)הטור‬ rcL
‫ה־‬
:‫לזכור‬ ‫חשוב‬
‫המילה‬ ,z) ‫סיפא‬ ‫אותה‬ ‫זאת‬ ‫השקילות‬ ‫מחלקות‬ ‫בין‬ ‫שמבדיל‬ ‫מה‬
.‫לשפה‬ ‫תיכנס‬ ‫שהיא‬ ‫כדי‬ x‫ל־‬ ‫מוסיפים‬ ‫שאנחנו‬ (‫מוסיפים‬ ‫שאנחנו‬
‫אם‬ ‫לשתיהן‬ ‫כי‬ baa ‫עם‬ ‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫נמצאת‬ a :‫למשל‬
.‫לא‬ ‫אחרת‬ ,‫בשפה‬ ‫תישאר‬ ‫המילה‬ ε ‫רק‬ ‫נוסיף‬
a ‫וגם‬ ε ‫גם‬ ,‫להוסיף‬ ‫יכולים‬ ‫אנחנו‬ ba ‫למילה‬ ,‫זאת‬ ‫לעומת‬
‫לא‬ ‫היא‬ ‫לכן‬ ,‫בשפה‬ ‫תישאר‬ ‫היא‬ ‫המקרים‬ ‫ובשני‬ (z = a + ε)
.a ‫את‬ ε‫ל־‬ ‫בנוסף‬ ‫לה‬ ‫כי‬ ,[a] ‫השקילות‬ ‫ממחלקת‬ ‫חלק‬
‫מחלקות‬ ‫בין‬ ‫להפריד‬ ‫בשביל‬ rcL
‫ב־‬ ‫שונה‬ ‫אחת‬ ‫מילה‬ ‫שיש‬ ‫מספיק‬
!‫השקילות‬
‫ב־‬ :a ‫המילה‬ ‫היא‬ [a] , [ba] ‫המחלקות‬ ‫מחלקת‬ ‫בין‬ ‫ההבדל‬ ,‫למשל‬
‫את‬ ‫או‬ ‫להוסיף‬ ‫אפשר‬ [ba]‫ב־‬ ‫זאת‬ ‫ולעומת‬ ,ε ‫רק‬ ‫להוסיף‬ ‫נוכל‬ [a]
.‫בשפה‬ ‫תישאר‬ ‫הנל‬ ‫השיקלות‬ ‫שבמחלקת‬ ‫המילים‬ ‫וכל‬ a ‫את‬ ‫או‬ ε
‫אינסופיות‬ ‫לשפות‬ ‫דוגמאות‬ 15.3.2
.L = 10∗
1∗
,Σ = {0, 1}
‫הוא‬ ‫כאן‬ ‫)ההבדל‬ L1 = 10∗
+ 10∗
11∗
‫כ־‬ ‫זאת‬ ‫שפה‬ ‫על‬ ‫נחשוב‬
0‫ב־‬ ‫שמסתיימות‬ ‫המילים‬ ‫כל‬ ‫היא‬ ‫אחת‬ ‫אפשרות‬ ‫־‬ ‫המילה‬ ‫סוף‬
.L‫ב־‬ 1‫ב־‬ ‫שמתסיימות‬ ‫המילים‬ ‫כל‬ ‫היא‬ ‫נוספת‬ ‫אפשרות‬ L ‫בשפה‬
.(L = L1
15
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
:RL
‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫נחשב‬
(Σ∗
‫ב־‬ ‫המילים‬ ‫)כל‬ x rcL
(x)
ε 10∗
+ 10∗
11∗
10∗
0∗
+ 0∗
11∗
10∗
11∗
1∗
0 (0 + 1)
∗
+ 10∗
11∗
0 (0 + 1)
∗
∅
:RL
‫היחס‬ ‫של‬ ‫שקילות‬ ‫מחלקות‬ 4 ‫ישנן‬ ‫על־ען‬
[ε] [1] [11] [0]
⇓ ⇓ ⇓ ⇓
{ε} {10∗
} {10∗
11}

0 (0 + 1)
∗
+ 10∗
11∗
0 (0 + 1)
∗
‫לפחות‬ ‫מפרידה‬ ‫שקילות‬ ‫מחלקת‬ ‫כל‬ ‫שבין‬ ‫לכך‬ ‫לב‬ ‫לשים‬ ‫חשוב‬
‫מילה‬ ‫שיש‬ ‫ובודקים‬ rcL
(x)‫ה־‬ ‫על‬ ‫מסתכלים‬ ,‫)כלומר‬ ‫אחת‬ ‫מילה‬
‫אזי‬ ‫־‬ ‫כזאת‬ ‫מילה‬ ‫אין‬ ‫אם‬ ‫־‬ ‫המחלקות‬ ‫בין‬ ‫שמפרידה‬ ‫לפחות‬ ‫אחת‬
.(‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫מדובר‬
‫למצוא‬ ‫צריך‬ :(x) ‫המחלקות‬ ‫של‬ ‫המילים‬ ‫את‬ ‫בונים‬ ‫איך‬ ‫לגבי‬
‫לא‬ 0∗
‫ו־‬ ε :‫למשל‬ .‫שונות‬ ‫שקילות‬ ‫מחלקות‬ ‫לנו‬ ‫יתנו‬ ‫מילים‬ ‫אילו‬
‫ניתן‬ ‫לכן‬ ,({ε} ∈ 0∗
‫)כי‬ ‫שונות‬ ‫שקילות‬ ‫מחלקות‬ ‫לנו‬ ‫יניבו‬ ‫בהכרח‬
.‫ההבדל‬ ‫את‬ ‫ליצור‬ ‫כדי‬ 00∗
‫לשים‬ ‫למשל‬
:‫נוספת‬ ‫דוגמא‬
‫שמקבלת‬ ‫השפה‬ ‫זאת‬ ‫־‬ L = (0 + 1)
∗
1 (0 + 1) ,Σ = {1, 0}
‫היא‬ (‫מהסוף‬ ‫)השנייה‬ ‫אחרונה‬ ‫לפני‬ ‫האחת‬ ‫שהאות‬ ‫המילים‬ ‫כל‬ ‫את‬
.”1”
:RL
‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫נחשב‬
(Σ∗
‫ב־‬ ‫המילים‬ ‫)כל‬ x rcL
(x)
ε + 0 + (0 + 1)
∗
00 (0 + 1)
∗
1 (0 + 1)
1 + (0 + 1)
∗
01 0 + 1 + (0 + 1)
∗
1 (0 + 1)
(0 + 1)
∗
10 ε + (0 + 1)
∗
1 (0 + 1)
(0 + 1)
∗
11 ε + 0 + 1 + (0 + 1)
∗
1 (0 + 1)
:‫הינן‬ RL
‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ,‫ולכן‬
.(‫ביטוי‬ ‫מכל‬ ‫קצרה‬ ‫הכי‬ ‫המילה‬ ‫את‬ ‫)לוקחים‬ [ε] , [1] , [10] , [11]
‫שקילות‬ ‫מחלקות‬ ‫אינסוף‬ ‫אם‬ ‫אינסופית‬ ‫לשפה‬ ‫דוגמא‬ 15.3.3
. L =
n
w ∈ Σ∗
#a (w) = #b (w)
o
,Σ = {a, b}
:x ∈ Σ∗
‫מילה‬ ‫עבור‬
rcL
(x) =
n
z ∈ Σ∗
#a (x) + #a (z) = #b (x) + #b (z)
o
=
n
z ∈ Σ∗
#a (z) − #b (z) = #b (z) − #a (z)
o
:‫הינן‬ RL
‫של‬ ‫השקילות‬ ‫מחלקות‬ ,‫לכן‬
...,

b3

,

b2

, [b] , [ε] , [a] ,

a2

,

a3

, ...
:‫כאשר‬
[ε] =
n
x ∈ Σ∗
#a (x) = #b (x)
o
:i ≥ 1 ‫ולכל‬

ai

=
n
x ∈ Σ∗
#a (x) − #b (x) = i
o

bi

=
n
x ∈ Σ∗
#b (x) − #a (x) = i
o
.‫אינסופי‬ (‫)מדרגה‬ ‫מיחס‬ ‫היא‬ RA
‫זאת‬ ‫בדוגמא‬
A = hQ, Σ, δ, q0, Fi ‫ויהי‬ ,Σ ‫מעל‬ ‫רגולרית‬ ‫שפה‬L ‫תהי‬ 15.1 ‫למה‬
:‫אזי‬ L ‫את‬ ‫שמזהה‬ DFA
RA
⊆ RL
:‫הלמה‬ ‫מנתוני‬ ‫מסקנה‬
rank (RA
) ≤ rank (RL
)
‫מייהיל־נרוד‬ ‫משפט‬ 16
(MyhillNerode theorem)
:‫אזי‬ .‫שפה‬ L ⊆ Σ∗
‫ותהי‬ ‫אב‬ Σ ‫יהי‬




rank (RL
)  ∞ ⇐⇒ ‫רגולרית‬ L
.‫רגולרית‬ ‫היא‬ ‫ששפה‬ ‫להוכיח‬ ‫לנו‬ ‫עוזר‬ ‫זה‬ ‫משפט‬
‫־‬ RL
‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫סופי‬ ‫מספר‬ ‫שישנם‬ ‫מראים‬ ‫אנחנו‬ ‫אם‬
.‫רגולרית‬ ‫היא‬ ‫השפה‬ ‫אזי‬
‫מינימלי‬ DFA ‫אוטומט‬ ‫בניית‬ 16.1
,‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫ומצאנו‬ ‫סופי‬ ‫האוטומט‬ ‫כי‬ ‫שגילינו‬ ‫אחרי‬
‫מצבים‬ ‫מספר‬ ‫עם‬ L ‫השפה‬ ‫את‬ ‫שמזהה‬ DFA ‫אוטומט‬ ‫לבנות‬ ‫ניתן‬
:‫הבא‬ ‫באופן‬ ‫מינימלי‬
:‫סופית‬ ‫בקבוצה‬ ‫מדובר‬ ‫כלומר‬ ‫־‬ rank (RL
)  ∞ ‫כי‬ ‫לנו‬ ‫נתון‬
:‫נבנה‬ ‫אזי‬
AL
= hQ, Σ, δ, q0, Fi
‫)קבוצה‬ RL
‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ ‫־‬ Q = Σ∗
/L •
.(‫סופית‬
.ε ‫של‬ ‫השקילות‬ ‫מחלקת‬ ‫־‬ qo = [ε] •
‫שהנציג‬ ‫השקילות‬ ‫מחלקות‬ ‫כל‬ ,‫כלומר‬ ‫־‬ F =
n
[x] x ∈ L
o
•
.(x ∈ L) L‫ב־‬ x ‫שלהם‬
:‫המעברים‬ ‫פונקציית‬ •
δ : Q × Σ → Q
δ ([x] , a) = [xa]
:‫מילה‬ ‫עבור‬ ‫גם‬ ‫תקף‬ ‫וזה‬
∀w ∈ Σ∗
, [x] ∈ Q :
δ ([x] , w) = [xw]
16
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫שהיו‬ ‫השפות‬ ‫של‬ ‫לדוגמאות‬ ‫המינמליים‬ ‫האוטומטים‬ ‫את‬ ‫נראה‬
:(RL
‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫)עפ‬ ‫מקודם‬
:L = {a, ba, baa}
[a]
aa // [aa]
0,1

// [ε]
a
99
b %%
[b] a
//
b
AA
[ba]
b
OO
a
]]
:L = 10∗
1∗
= 10∗
+ 10∗
11
[1]
1

0

// [ε]
1
99
0 %%
[11]
1

0
xx
[0]
0,1
XX
:L = (0 + 1)
∗
1 (0 + 1)
[10]
1
ss
// [ε]
0

1 // [1]
0
33
1 
[11]
0
OO
1
XX
‫מייהיל־נרוד‬ ‫משפט‬ ‫באמצעות‬ ‫להוכחה‬ ‫דוגמא‬ 16.2
‫רגולרית‬ ‫אינה‬ ‫ששפה‬
.‫רגולרית‬ ‫אינה‬ L =
n
0n
1n
n ≥ 0
o
‫השפה‬ ‫כי‬ ‫נוכיח‬
‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫אינסופי‬ ‫מספר‬ ‫שיש‬ ‫להראות‬ ‫מספיק‬ :‫הוכחה‬
:‫ואכן‬ ,RL
‫היחס‬ ‫של‬
.bi
/
∈ rcL
aj

‫אבל‬ bi
∈ rcL
ai

‫)כי‬ ai


RL
aj
:i 6= j ‫לכל‬
‫ו־‬

ai

‫השקילות‬ ‫מחלקות‬ ‫שתי‬ ‫בין‬ ‫מפרידה‬ ‫מילה‬ ‫היא‬ bi
,‫כלומר‬
.(

aj

‫ביחס‬ ‫שונות‬ ‫שקילות‬ ‫מחלקות‬ ‫הן‬ [ε] , [a] ,

a2

,

a3

, ... :‫לכן‬
‫מייהיל־נרוד‬ ‫משפט‬ ‫עפ‬ ‫ולכן‬ ‫אינסופי‬ ‫מאינדקס‬ ‫הוא‬ RL
‫לכן‬ ,RL
.‫רגולרית‬ ‫אינה‬ L
VI ‫חלק‬
DFA ‫אוטומט‬ ‫של‬ ‫מינימיזציה‬
‫את‬ ‫שבנינו‬ ‫כך‬ ‫עי‬ L ‫לשפה‬ ‫מינימלי‬ ‫אוטומט‬ ‫בנינו‬ ‫מקודם‬
‫לבניית‬ ‫מסובכת‬ ‫פחות‬ ‫קצת‬ ‫דרך‬ ‫נראה‬ ‫כעת‬ ,AL
‫האוטומט‬
.AL
‫של‬ ‫לזה‬ ‫זהה‬ ‫מצבים‬ ‫מספר‬ ‫עם‬ L ‫את‬ ‫שיזהה‬ ‫אוטומט‬
‫להפרדה‬ ‫ניתנים‬ ‫מצבים‬ 17
.p, q ∈ Q ‫כאשר‬ ,‫כלשהו‬ DFA A = hQ, Σ, δ, q0, Fi ‫יהי‬
:‫הבא‬ ‫באופן‬ 11
Q ‫על‬ E ‫יחס‬ ‫נגדיר‬
: ∀z ∈ Σ∗
(δ (p, z) ∈ F ⇔ δ (q, z) ∈ F ) ⇐⇒ : pEq
‫משנה‬ ‫זה‬ ‫אין‬ z ∈ Σ∗
‫מילה‬ ‫כל‬ ‫שעבור‬ ‫היא‬ ‫שהמשמעות‬ ‫לב‬ ‫נשים‬
.‫שלא‬ ‫או‬ ‫משניהם‬ ‫תתקבל‬ ‫שהיא‬ ‫או‬ ‫־‬ q‫ב־‬ ‫או‬ p‫ב־‬ ‫אנחנו‬ ‫אם‬
.(‫שקולים‬ q‫ו־‬ p) .q‫ל־‬ ‫שקול‬ p‫ש־‬ ‫אומרים‬ pEq ‫אם‬
.‫שקילות‬ ‫למחלקות‬ ‫אותו‬ ‫שמחלק‬ Q ‫על‬ ‫שקילות‬ ‫יחס‬ ‫הוא‬ E
.‫להפרדה‬ ‫ניתנים‬ q‫ו־‬ p‫ש־‬ ‫אומרים‬ ‫שקולים‬ ‫אינם‬ q‫ו־‬ p ‫אם‬
‫כך‬ w ∈ Σ∗
‫מילה‬ ‫קיימת‬ ⇐⇒ ‫להפרדה‬ ‫ניתנים‬ q‫ו־‬p
.(‫להפך‬ ‫)או‬ δ (q, w) /
∈ L∧δ (p, w) ∈ L‫ש־‬
.‫מפרידה‬ ‫מילה‬ ‫נקראת‬ ‫כזאת‬ w ‫מילה‬
:‫דוגמא‬
A = q1
1

1

// q0
0
88
1 
q3
0,1

q2
0
YY
1
88
:z ∈ Σ∗
‫עבור‬ ‫כי‬ ‫־‬ q1Eq2
.(δ (q1, z) ∈ F ⇔ δ (q2, z) ∈ F) ⇐⇒ z ∈ 0∗
1 (0 + 1)
∗
.(‫)למשל‬ ”1” ‫מפרידה‬ ‫מילה‬ ‫־‬ q0Eq1
.(‫)למשל‬ ”1” ‫מפרידה‬ ‫מילה‬ ‫־‬ q0Eq2
.(‫)למשל‬ ”ε” ‫מפרידה‬ ‫מילה‬ ‫־‬ q1Eq3
‫ולקבל‬ ‫אחד‬ ‫למצב‬ A‫ב־‬ ‫השקולים‬ ‫המצבים‬ ‫שני‬ ‫את‬ ‫לצמצם‬ ‫ניתן‬
:‫יותר‬ ‫קטן‬ ‫מצבים‬ ‫מספר‬ ‫עם‬ A‫ל־‬ ‫שקול‬ ‫אוטומט‬
// q0
0,1
// q1,2
0

1 // q3
0,1

:‫היא‬ ‫שלהם‬ ‫השפה‬ ‫־‬ ‫שקולים‬ ‫האוטומטים‬ ‫שני‬
.(0 + 1) 0∗
1 (0 + 1)
∗
.‫מילים‬ ‫על‬ ‫ולא‬ ‫מצבים‬ ‫על‬ ‫יחס‬ ‫שזהו‬ ‫לכך‬ ‫לב‬ ‫לשים‬ ‫חשוב‬11
17
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
A ‫של‬ ‫הצימצום‬ ‫אוטומט‬ ‫בניית‬ 18
A0
‫אוטומט‬ ‫נבנה‬ ,A = hQ, Σ, δ, q0, Fi DFA ‫אוטומט‬ ‫בהינתן‬
:‫הבא‬ ‫באופן‬ A ‫של‬ ‫הצמצום‬ ‫הנקרא‬
A0
= hQ0
, Σ, δ0
, q0
0, F0
i
:‫כאשר‬
.E ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ ‫־‬ Q0
= Q/E •
.Q0
=
n
[q] q ∈ Q
o
.q0
0 = [q0] •
‫המקבלים‬ ‫המצבים‬ ‫כל‬ ‫לא‬ :‫)הערה‬ F0
=
n
[q] q ∈ F
o
•
‫מחלקות‬ ‫כל‬ ‫כלומר‬ .(‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫להיות‬ ‫חייבים‬
.F ‫של‬ ‫השקילות‬
:δ0
‫לגבי‬ •
δ0
: Q0
× Σ → Q0
δ0
([q] , a) = [δ (q, a)] , (∀a ∈ Σ)
:w ∈ Σ∗
‫מילה‬ ‫עבור‬ ‫גם‬ δ0
‫את‬ ‫להרחיב‬ ‫שניתן‬ ‫וכמובן‬
.δ0
([q] , w) = [δ (q, w)]
‫נקרא‬ ‫שקולים‬ ‫שונים‬ ‫מצבים‬ ‫בו‬ ‫שאין‬ DFA ‫אוטומט‬ 18.1 ‫הגדרה‬
:‫מתקיים‬ ‫אםם‬ ‫מצומצם‬ ‫הוא‬ ‫אוטומט‬ .‫מצומצם‬ ‫אוטומט‬
.p = q ⇐ pEq :p, q ∈ Q ‫כל‬ ‫עבור‬
DFA‫ב־‬ ‫שקולים‬ ‫מצבים‬ ‫לזוהי‬ ‫אלגוריתם‬ 18.1
A = hQ, Σ, δ, q0, Fi ‫נתון‬
:‫נסמן‬ p, q ∈ Q ‫שונים‬ ‫מצבים‬ ‫שני‬ ‫כל‬ ‫עבור‬ :‫מקדים‬ ‫שלב‬
∆ (p, q) = ∅
‫אזי‬ (‫ההפך‬ ‫)או‬ p /
∈ F ∧ q ∈ F ‫אם‬ :p 6= q ‫לכל‬ .1
.∆ (p, q) = ε
‫ולכל‬ ∆ (p, q) = ∅ ‫שעבורם‬ p, q ‫שונים‬ ‫מצבים‬ ‫שני‬ ‫כל‬ ‫עבור‬ .2
:‫האם‬ ‫בודקים‬ a ∈ Σ
∆ (δ (p, a) , δ (q, a)) 6= ∅
.‫מסומן‬ ‫זה‬ ‫־‬ ‫כלומר‬
‫)נפסיק‬ ‫הבא‬ ‫לזוג‬ ‫ונעבור‬ ∆ (p, q) = a ‫־‬ ‫נסמן‬ :‫כן‬ ‫אם‬ (‫)א‬
.(‫הזה‬ ‫הזוג‬ ‫עבור‬ ‫לחפש‬
,‫חדש‬ ‫מצבים‬ ‫זוג‬ ‫לפחות‬ ‫סומן‬ 2 ‫צעד‬ ‫של‬ ‫האחרון‬ ‫בביצוע‬ ‫אם‬ .3
.2‫ל־‬ ‫חזור‬ ‫אז‬
∆ (p, q) = ∅ ‫שעבורם‬ p, q ‫שונים‬ ‫מצבים‬ ‫זוג‬ ‫כל‬ ‫על‬ ‫הכרז‬ .4
.‫ועצור‬ ‫שוקלים‬ ‫כמצבים‬
‫באלגוריתם‬ ‫לשימוש‬ ‫דוגמא‬ 18.1.1
:‫הבא‬ ‫האוטומט‬ ‫את‬ ‫ניקח‬
q1
1
 0
**
q3
1

0
jj
// q0
0
66
1 ((
q2
1
OO
0
YY
q4
0
oo
1
bb
‫אחד‬ ‫תא‬ ‫שמכילה‬ ‫טבלה‬ ‫שבונים‬ ‫בכך‬ ‫האלגוריתם‬ ‫את‬ ‫מיישמים‬
‫שכבר‬ ‫תאים‬ ‫זה‬ ‫השחור‬ ‫הריבוע‬ ‫עם‬ ‫)תאים‬ :‫שונים‬ ‫מצבים‬ ‫זוג‬ ‫לכל‬
∆ (p, q) ‫כאשר‬ ∅ ‫פירושו‬ ‫ריק‬ ‫תא‬ ‫וכל‬ ,‫בטבלה‬ ‫תא‬ ‫שלהם‬ ‫לזוג‬ ‫יש‬
.(‫התא‬ ‫תוכן‬ =
q1   
q2  
q3 
q4
q0 q1 q2 q3
ε (‫ההפך‬ ‫)או‬ q /
∈ F‫ו־‬ p ∈ F‫ש־‬ ‫כך‬ ‫מצבים‬ ‫זוג‬ ‫לכל‬ ‫נשים‬ ‫כעת‬
:‫בתא‬
q1   
q2 ε ε  
q3 
q4 ε ε ε
q0 q1 q2 q3
‫ש־‬ ‫ונראה‬ a = 0 ‫ניקח‬ :(q0, q1)‫מ־‬ ‫נתחיל‬
.∆ (δ (q0, 0) , δ (q1, 0)) = ∆ (q1, q3) = ∅
:‫לחפש‬ ‫להמשיך‬ ‫נצטרך‬ ‫האלגוריתם‬ ‫עפ‬ ‫לכן‬
.∆ (δ (q0, 1) , δ (q1, 1)) = ∆ (q2, q1) = ε
:∆ (q0, q1) = 1 ‫ולכן‬ ‫־‬ ‫ריק‬ ‫אינו‬ ‫התא‬ !‫זהו‬
q1 1   
q2 ε ε  
q3 
q4 ε ε ε
q0 q1 q2 q3
:‫כי‬ ‫לב‬ ‫נשים‬ :(q0, q3)‫ל־‬ ‫נעבור‬ ‫כעת‬
‫לכן‬ ‫מצב‬ ‫לאותו‬ ‫והגענו‬ ‫־‬ ∆ (δ (q0, 0) , δ (q3, 0)) = ∆ (q1, q1)
.‫ריק‬ ‫זה‬ ‫את‬ ‫נשאיר‬
‫למצב‬ ‫הגענו‬ ‫כאן‬ ‫גם‬ ‫־‬ ∆ (δ (q0, 1) , δ (q3, 1)) = ∆ (q2, q4) = ∅
.(‫ריק‬ ‫)במצב‬ ∆ (q0, q3) = ∅ ‫את‬ ‫נשאיר‬ ‫לכן‬ .‫ריק‬
18
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
:(q1, q3)‫ל־‬ ‫נעבור‬ ‫כעת‬
‫נמשיך‬ ‫ולכן‬ ‫־‬ ∆ (δ (q1, 0) , δ (q3, 0)) = ∆ (q3, q1) = ∅
...‫הלאה‬
∆ (q1, q3) = 1 ‫ולכן‬ ∆ (δ (q1, 1) , δ (q3, 1)) = ∆ (q1, q4) = ε
:‫הטבלה‬ ‫את‬ ‫ונעדכן‬
q1 1   
q2 ε ε  
q3 1 
q4 ε ε ε
q0 q1 q2 q3
:(q2, q3)‫ל־‬ ‫נעבור‬
.∆ (q2, q3) = 0 ‫ולכן‬ ∆ (δ (q2, 0) , δ (q3, 0)) = ∆ (q2, q1) = ε
q1 1   
q2 ε ε  
q3 1 0 
q4 ε ε ε
q0 q1 q2 q3
:(q2, q4) ‫הזוג‬ ‫על‬ ‫נסתכל‬ ,‫כעת‬
q2‫ל־‬ ‫בשניהם‬ ‫נגיע‬ 0 ‫עבור‬ ‫)כי‬ ∅ ‫נקבל‬ ‫המקרים‬ ‫בשני‬ ‫כי‬ ‫לב‬ ‫נשים‬
.(q1‫ל־‬ ‫בשניהם‬ ‫נגיע‬ 1 ‫ועבור‬
.‫שהיא‬ ‫כמו‬ ‫הטבלה‬ ‫את‬ ‫נשאיר‬ ‫אנחנו‬ ‫ולכן‬
:‫הינה‬ ‫הסופית‬ ‫הטבלה‬
q1 1   
q2 ε ε  
q3 1 0 
q4 ε ε ε
q0 q1 q2 q3
‫על‬ E ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫כלומר‬ ,q0Eq3, q2Eq4 :‫ולכן‬
:‫הינן‬ Q
. [q0] = {q0, q3} , {q1} = [q1] , {q2, q4} = [q2]
:A ‫של‬ ‫הצמצום‬ ‫אוטומט‬ ‫את‬ ‫נבנה‬ ,‫כעת‬
// [q0]
1 //
0
[q2]
0

1
yy
[q1]
1
XX
0
``
‫ולכן‬ ,‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫ישנם‬ A‫שב־‬ ‫ייתכן‬ 18.2 ‫הערה‬
‫שאינם‬ ‫מצבים‬ ‫ישנם‬ (A ‫של‬ ‫הצמצום‬ ‫)אוטומט‬ A0
‫ב־‬ ‫שגם‬ ‫יתכן‬
‫מורכבת‬ A DFA ‫אוטומט‬ ‫של‬ ‫מינימיזציה‬ ,‫לכן‬ .‫להשגה‬ ‫ניתנים‬
:‫שלבים‬ ‫משני‬
.A‫ב־‬ ‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫הסרת‬ .‫א‬
.‫שנשאר‬ ‫האוטומט‬ ‫צמצום‬ .‫ב‬
L ‫את‬ ‫שמזהה‬ A0
DFA ‫נותנת‬ A DFA ‫אוטומט‬ ‫של‬ ‫מינימיזציה‬
.A ‫את‬ ‫שמזהים‬ ‫האוטומטים‬ ‫כל‬ ‫מבין‬ ‫מינימלי‬ ‫והוא‬
.AL
‫את‬ ‫נותן‬ ‫זה‬ ‫למעשה‬
‫אוטומטים‬ ‫בין‬ ‫איזומורפיזם‬ 19
‫יהיו‬ :‫הגדרה‬
A1 = hQ1, Σ, δ1, q1, F1i
A2 = hQ2, Σ, δ2, q2, F2i
.‫־ים‬DFA ‫שני‬
‫קיימת‬ ‫אם‬ A1
∼
= A2 ‫ורושמים‬ A2‫ל־‬ ‫איזומופרי‬ A1 ‫ש‬ ‫אומרים‬
,‫ההתחלתי‬ ‫המצב‬ ‫על‬ ‫ששומרת‬ f : Q1 → Q2 ‫ועל‬ ‫חחע‬ ‫פונקציה‬
,‫כלומר‬ ,‫המעברים‬ ‫פונקציית‬ ‫על‬ ‫ושומרת‬ ‫סופיים‬ ‫מצבים‬ ‫על‬ ‫שומרת‬
:‫שמקיימת‬ ‫פונקציה‬
.f (q1) = q2 .1
:q ∈ Q1 ‫עבור‬ .2
.f (q) ∈ F2 ⇐⇒ q ∈ F1
.a ∈ Σ ‫ולכל‬ q ∈ Q1 ‫לכל‬ ,δ2 (f (q) , a) = f (δ1 (q, a)) .3
‫המינימלי‬ ‫האוטומט‬ ‫יחידות‬ ‫משפט‬ 19.1
‫ניתנים‬ ‫מצביו‬ ‫שכל‬ ‫מצומצם‬ DFA A = hQ, Σ, δ, q0, Fi ‫יהי‬
:‫אזי‬ ,L = L (A) ‫ותהי‬ ‫להשגה‬
A ∼
= AL
‫של‬ ‫הנושא‬ ‫סוף‬
!!‫אוטומטים‬
19
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
VII ‫חלק‬
‫ושפות‬ ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬
‫הקשר‬ ‫חסרות‬
(CFG) ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ 20
‫הגדרות‬ 20.1
:‫כאשר‬ G = hV, Σ, P, Ai :‫רבייעיה‬ ‫זוהי‬ ‫הקשר‬ ‫חסר‬ ‫דקדוק‬
‫משתנים‬ ‫נקראים‬ ‫שערכיה‬ ‫ריקה‬ ‫לא‬ ‫סופית‬ ‫קבוצה‬ ‫היא‬ ‫־‬ V •
:‫ב‬ ‫הקבוצה‬ ‫אברי‬ ‫את‬ ‫לסמן‬ ‫נהוג‬ ,‫משתנים‬ :‫או‬ ‫דקדוקיים‬
.A, B, C, ...
‫נקראים‬ ‫שאריה‬ V ‫ל־‬ ‫וזרה‬ ‫ריקה‬ ‫לא‬ ,‫סופית‬ ‫קבוצה‬ ‫היא‬ ‫־‬ Σ •
‫הקבוצה‬ ‫אברי‬ ‫את‬ ‫לסמן‬ ‫נהוג‬ .‫אותיות‬ :‫או‬ ‫טרמינליים‬ ‫סימנים‬
.a, b, c, ... :‫ב‬
,(G ‫של‬ ‫השכתוב‬ ‫כללי‬ :‫)או‬ ‫הגזירה‬ ‫כללי‬ ‫קבוצת‬ ‫היא‬ ‫־‬ P •
‫מדובר‬ ,‫כלומר‬ ,V × (V ∪ Σ)
∗
‫לקבוצה‬ ‫חלקית‬ ‫קבוצה‬ ‫זוהי‬
‫את‬ .α ∈ (V ∪ Σ)
∗
‫ו־‬ A ∈ V ‫כאשר‬ (A, α) ‫סדורים‬ ‫בזוגות‬
.A → α :‫הבאה‬ ‫בצורה‬ ‫לרשום‬ ‫נהוג‬ (A, α) ‫הגזירה‬ ‫כלל‬
‫ההתחלתי‬ ‫המשתנה‬ ‫נקרא‬ ‫אשר‬ V ‫ב־‬ ‫מיוחד‬ ‫איבר‬ ‫הינו‬ ‫־‬ S •
.G ‫של‬
:P ‫לגבי‬
:‫להיות‬ ‫יכולים‬ P ‫אברי‬ ‫אזי‬ V = {S, A} , Σ = {a, b, c} ‫נניח‬ ‫אם‬
(S, aSa) ⇔ S → aSa
(A, AaS) ⇔ A → AaS
(S, aAbc) ⇔ S → aAbc
(S, a) ⇔ S → a
‫אזי‬ ,V ‫ב־‬ ‫כלשהו‬ ‫איבר‬ ‫עבור‬ ‫אפשרויות‬ ‫משתי‬ ‫יותר‬ ‫לנו‬ ‫יש‬ ‫כאשר‬
:‫הנל‬ ‫הדוגמא‬ ‫עבור‬ ,‫למשל‬ ,‫ב־או‬ ‫זאת‬ ‫לציין‬ ‫נהוג‬
S → aSa aAbc a
‫אחת‬ ‫רק‬ ‫לבחור‬ ‫יכולים‬ ‫אנחנו‬ ,‫)כלומר‬ ‫או‬ ‫מסמל‬ ‫המפריד‬ ‫והקו‬
.(‫מהאפשרויות‬
‫כללי‬ ‫ובאופן‬ ,‫בדקדוק‬ ‫סימן‬ ‫נקרא‬ V ∪ Σ ‫הקבוצה‬ ‫של‬ ‫איבר‬ •
.X, Y, Z, ... :‫ב‬ ‫אותו‬ ‫מסמנים‬
(aAbSA :‫)למשל‬ ‫פסוקית‬ ‫תבנית‬ ‫נקראת‬ (V ∪ Σ)
∗
‫ב־‬ ‫מילה‬ •
.(abaac :‫)למשל‬ .‫טרמינלית‬ ‫מילה‬ ‫נקראת‬ Σ∗
‫ב־‬ ‫ומילה‬
.α, β, γ, ... :‫ב‬ ‫פסוקיות‬ ‫תבניות‬ ‫נסמן‬
.u, v, w, ... :‫ב‬ ‫טרמינליות‬ ‫מילים‬ ‫נסמן‬
.‫פסוקיות‬ ‫תבניות‬ ‫הם‬ ‫טרמינלית‬ ‫מילה‬ ‫וכל‬ ‫סימן‬ ‫שכל‬ ‫כמובן‬
‫גזירה‬ ‫הגדרות‬ 20.1.1
‫לגזירה‬ ‫ניתנת‬ ψ‫ש־‬ ‫אומרים‬ .ϕ, ψ ∈ (V ∪ Σ)
∗
‫תהיינה‬ •
:‫ורושמים‬ G ‫בדקדוק‬ ϕ‫מ־‬ ‫ישירה‬
ϕ ⇒
G
ψ
‫גזירה‬ ‫כלל‬ ‫הוא‬ A → α ‫ו־‬ ψ = βαγ‫ו־‬ ϕ = βAγ ‫אם‬
.P‫ב־‬
,‫הדקדוק‬ ‫ידוע‬ ‫אם‬ ,‫כמו־כן‬ ,‫בלבד‬ ‫אחד‬ ‫מעבר‬ ‫על‬ ‫כאן‬ ‫)מדובר‬
‫מהסימן‬ G‫ה־‬ ‫את‬ ‫להשמיט‬ ‫אפשר‬ ‫אזי‬ ,‫למשל‬ ‫אחד‬ ‫רק‬ ‫יש‬ ‫כי‬
.(‫הנל‬
:‫ורושמים‬ G ‫בדקדוק‬ 12
ϕ‫מ־‬ ‫גזירה‬ ψ‫ש־‬ ‫אומרים‬ •
ϕ ⇒
G
∗
ψ
‫פסוקיות‬ ‫תבניות‬ ‫של‬ ‫סופית‬ ‫סדרה‬ ‫קיימת‬ ‫אם‬
ϕn = ψ ,ϕ = ϕ0‫ש־‬ ‫כך‬ ϕ1, ..., ϕn ∈ (V ∪ Σ)
∗
:0 ≤ i  n ‫ולכל‬
ϕi ⇒
G
ϕi+1
:‫)או‬ ‫גזירה‬ ‫סדרת‬ ‫נקראת‬ ‫כזאת‬ ‫פסוקיות‬ ‫תבניות‬ ‫סדרת‬
.G ‫בדקדוק‬ n ‫מאורך‬ (‫גזירה‬
‫צעדים‬ n‫ב־‬ ϕ‫מ־‬ (‫לגזירה‬ ‫ניתנת‬ :‫)או‬ ‫גזירה‬ ψ‫ש־‬ ‫נאמר‬ •
:‫ונרשום‬
ϕ ⇒
G
n
ψ
‫ש־‬ ‫כך‬ ϕ1, . . . , ϕn :n ‫מאורך‬ ‫גזירה‬ ‫סדרת‬ ‫קיימת‬ ‫אם‬
.ψ = ϕn‫ו־‬ ϕ = ϕ1
:‫הנל‬ ‫ההגדרות‬ ‫שלפי‬ ‫לב‬ ‫נשים‬ •
.ϕ = ψ ⇐⇒ ϕ ⇒
G
0
ψ J
.ϕ ⇒
G
ψ ⇐⇒ ϕ ⇒
G
1
ψ J
.n ≥ 0 ‫עבור‬ ϕ ⇒
G
∗
ψ ⇐⇒ ϕ ⇒
G
n
ψ J
‫מהמשתנה‬ ‫לגזירה‬ ‫היתנת‬ φ ∈ (V ∪ E)
∗
‫פסוקית‬ ‫תבנית‬ •
:‫נקראת‬ S ⇒
G
∗
φ :‫כלומר‬ (G ‫הדקדוק‬ ‫)של‬ S ‫ההתחלתי‬
.G ‫של‬ ‫פסוקית‬ ‫תבנית‬
:‫מקיימת‬ ‫אשר‬ w ∈ Σ∗
‫מילה‬ ‫היא‬ G ‫של‬ ‫טרמינלית‬ ‫מילה‬ •
.S ⇒
G
∗
w
ϕ‫מ־‬ ‫לגזירה‬ ‫ניתנת‬ ψ :‫או‬12
20
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫מסומנת‬ G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫של‬ ‫השפה‬ •
:‫עי‬ ‫ומוגדרת‬ L (G)‫ב־‬
L (G) =

w ∈ Σ∗
S ⇒
G
∗
w

‫היא‬ ‫הכוונה‬ ‫אזי‬ L ‫את‬ ‫יוצר‬ ‫שהוא‬ G ‫דקדוק‬ ‫על‬ ‫שאומרים‬ •
.L (G) = L‫ש־‬
(CFL) ‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫נקראת‬ L ⊆ Σ∗
‫כאשר‬ L ‫שפה‬ •
.‫אותה‬ ‫שיוצר‬ G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫קיים‬ ‫אם‬
‫אם‬ ‫שקולים‬ ‫דקדוקים‬ ‫הם‬ G1, G2 ‫שהדקדוקים‬ ‫אומרים‬ •
.‫השפה‬ ‫אותה‬ ‫את‬ ‫יוצרים‬ ‫הם‬ ,‫כלומר‬ ‫־‬ L (G1) = L (G2)
‫ל־‬ ‫חלקי‬ ‫דקדוק‬ ‫הוא‬ G1 = hV1, Σ1, P1, S1i‫ש־‬ ‫אומרים‬ •
:‫אם‬ G2 = hV2, Σ2, P2, S2i
.V1 ⊆ V2 J
.Σ1 ⊆ Σ2 J
.P1 ⊆ P2 J
.S1 = S2 J
. L (G1) ⊆ L (G2) :‫מתקיים‬ ‫זה‬ ‫שבמקרה‬ ‫כמובן‬
‫הקשר‬ ‫חסרות‬ ‫שפות‬ ‫של‬ ‫סגירות‬ ‫תכונות‬ 20.2
‫שני‬ G2 = hV2, Σ, P2, S2i‫ו־‬ G1 = hV1, Σ, P1, S1i :‫יהיו‬
L (G2) = L2 ,L (G1) = L1 :‫נסמן‬ .‫הקשר‬ ‫חסרי‬ ‫דקודקים‬
.
.13
V1 ∩ V2 = ∅ ‫כי‬ ‫נניח‬ ‫בהכ‬
‫השפות‬ ‫את‬ ‫שיוצרים‬ ‫הקשר‬ ‫חסרי‬ ‫דקודקים‬ ‫של‬ ‫בניות‬ ‫נתאר‬ ‫כעת‬
.L∗
1 ,L1L2 , L1 ∪ L2 :‫הנל‬
,‫כלומר‬ ,‫חדש‬ ‫סימן‬ ‫הוא‬ V ‫ב־‬ ‫שנגדיר‬ S‫ה־‬ ‫הסעיפים‬ ‫שלושת‬ ‫בכל‬
.‫עצמו‬ ‫לדקדוק‬ ‫ספציפי‬ ‫סימן‬ ‫הוא‬
L1 ∪ L2 20.2.1
G = hV1 ∪ V2 ∪ {S} , Σ, P1 ∪ P2 ∪ {S → S1, S → S2} , Si
:‫הינו‬ ‫הנל‬ ‫בדקודק‬ P ,‫כלומר‬
S → S1 S2
P1 → ...
P2 → ...
.L1 ∪ L2 ‫את‬ ‫יוצר‬ ‫זה‬ ‫דקדוק‬
‫מהקבוצות‬ ‫באחת‬ ‫אותו‬ ‫נחליף‬ ‫פשוט‬ ‫הקבוצות‬ ‫בשתי‬ ‫שמופיע‬ ‫סימן‬ ‫ישנו‬ ‫אם‬13
.‫יתקיים‬ ‫שהתנאי‬ ‫כך‬
L1L2 20.2.2
G = hV1 ∪ V2 ∪ {S} , Σ, P1 ∪ P2 ∪ {S → S1S2} , Si
:‫הינו‬ ‫הנל‬ ‫בדקודק‬ P ,‫כלומר‬
S → S1S2
P1 → ...
P2 → ...
.L1L2 ‫את‬ ‫יוצר‬ ‫זה‬ ‫דקדוק‬
L∗
1 20.2.3
G = hV1 ∪ {S} , Σ, P1 ∪ {S → S1S, S → ε} , Si
:‫הינו‬ ‫הנל‬ ‫בדקודק‬ P ,‫כלומר‬
S → S1S ε
P1 → ...
.L∗
1 ‫את‬ ‫יוצר‬ ‫זה‬ ‫דקדוק‬
‫סגורות‬ ,Σ ‫אב‬ ‫מעל‬ ‫ההקשר‬ ‫חסרות‬ ‫השפות‬ ‫משפחת‬ 20.1 ‫משפט‬
.(‫הרגולריות‬ ‫לפעולות‬ ,‫)כלומר‬ ‫ואיטרציה‬ ‫שירשור‬ ,‫לאיחוד‬
‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫דוגמאות‬ 20.3
:‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫דוגמאות‬ ‫שתי‬ ‫על‬ ‫נסתכל‬
.Σ = {a, b} :‫המקרים‬ ‫בשני‬
L = ‫־‬ ‫כלומר‬ ,a‫ב־‬ ‫שמסתיימות‬ ‫המילים‬ ‫כל‬ ‫־‬ ‫ראשונה‬ ‫דוגמה‬
:
n
w ∈ L w = (a + b)
∗
a
o
G = h{S} , {a, b} , {S → a, S → aS, S → bS} , Si
:‫הינן‬ ‫בשפה‬ ‫הגזירה‬ ‫כללי‬ ,‫כלומר‬
S → aS bS a
:‫גזירה‬ ‫כללי‬ ‫סדרת‬ ‫באמעצות‬ bbaa :‫המילה‬ ‫את‬ ‫למשל‬ ‫נגזור‬
S ⇒ bS ⇒ bbS ⇒ bbaS ⇒ bbaa
.S‫ה־‬ ‫במקום‬ ‫אותו‬ ‫ושמנו‬ ‫גזירה‬ ‫בכלל‬ ‫השתמשנו‬ ‫פעם‬ ‫בכל‬
:N 3 n ≥ 0 ‫עבור‬ an
bn
‫־‬ ‫מהצורה‬ ‫המילים‬ ‫כל‬ ‫־‬ ‫שנייה‬ ‫דוגמא‬
G = h{S} , {a, b} , {S → ε, S → aSb, } , Si
S → aSb ε
21
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫גזירה‬ ‫עצי‬ 21
‫סדרת‬ ‫באמצעות‬ ‫רק‬ ‫לא‬ ‫הקשר‬ ‫חסר‬ ‫בדקדוק‬ ‫מילה‬ ‫לגזור‬ ‫ניתן‬
.‫עץ‬ ‫באמצעות‬ ‫למשל‬ ‫אלא‬ ‫גזירה‬
‫נוכל‬ ‫אזי‬ ‫הראשונה‬ ‫מהשפה‬ aba ‫המילה‬ ‫את‬ ‫לגזור‬ ‫נרצה‬ ‫למשל‬ ‫אם‬
:‫כזה‬ ‫עץ‬ ‫ליצור‬
S
{{ 
a S
{{ 
b S

a
:‫המקרים‬ ‫שני‬ ‫בין‬ ‫להבדל‬ ‫כללי‬ ‫באופן‬ ‫לב‬ ‫נשים‬
‫אזי‬ B → ab‫ו־‬ A → a b :‫הבאים‬ ‫הגזירה‬ ‫כללי‬ ‫את‬ ‫לנו‬ ‫יש‬ ‫אם‬
:‫כך‬ ‫יראו‬ ‫הגזירה‬ ‫עצי‬
A

A

B

a b ab
‫עץ‬ ‫איזה‬ ‫לבחור‬ ‫צריכים‬ ‫אנחנו‬ A ‫של‬ ‫שבמקרה‬ ‫לב‬ ‫לשים‬ ‫חשוב‬
.‫האפשרויות‬ ‫משתי‬ ‫רוצים‬ ‫אנחנו‬
‫פורמליות‬ ‫הגדרות‬ 21.1
‫גזירה‬ ‫עץ‬ .‫הקשר‬ ‫חסר‬ ‫דקודק‬ G = hV, Σ, P, Si ‫יהי‬ 21.1 ‫הגדרה‬
‫ב־‬ ‫נסמנו‬ ‫אשר‬ ‫הבאות‬ ‫הדרישות‬ ‫את‬ ‫המקיים‬ 14
‫מכוון‬ ‫עץ‬ ‫זהו‬ G‫ב־‬
:T
‫או‬ X ∈ V ∪ Σ ‫הדקדוק‬ ‫של‬ ‫בסימן‬ ‫מסומן‬ ‫בעץ‬ ‫צומת‬ ‫כל‬ .1
.ε‫ב־‬
.(G ‫של‬ ‫ההתחלתי‬ ‫)המשתנה‬ S‫ב־‬ ‫מסומן‬ ‫העץ‬ ‫של‬ ‫השורש‬ .2
‫איבר‬ ‫הוא‬ (‫עלה‬ ‫שאינו‬ ‫)קודקוד‬ ‫פנימי‬ ‫צומת‬ ‫כל‬ ‫של‬ ‫הסימן‬ .3
.(‫דקדוקי‬ ‫)משתנה‬ V ‫של‬
‫כי‬ ‫ייתכן‬ ‫לא‬ ,‫)כלומר‬ ‫יחיד‬ ‫צומת‬ ‫הוא‬ ε‫ב־‬ ‫שמסומן‬ ‫צומת‬ ‫כל‬ .4
.(‫אח‬ ‫יהיה‬ ‫מוצת‬ ‫לאותו‬
A ‫של‬ ‫הבנים‬ ‫אם‬ :(A ∈ V ) A‫ב־‬ ‫המסומן‬ ‫פנימי‬ ‫צומת‬ ‫לכל‬ .5
‫)הוא‬ A → X1X2 · · · Xn ∈ P ‫אזי‬ X1, X2, · · · , Xn ‫הם‬
.(‫גזירה‬ ‫כלל‬
:‫הערות‬ ‫כמה‬
.‫עלה‬ ‫הוא‬ ‫טרמינלי‬ ‫בסימן‬ ‫או‬ ε‫ב־‬ ‫שמסומן‬ ‫בעץ‬ ‫צומת‬ ‫כל‬ •
.‫טרמינלי‬ ‫שאינו‬ ‫בסימן‬ ‫מסומן‬ ‫להיות‬ ‫יכול‬ ‫עלה‬ ‫אבל‬
‫העץ‬ ‫חזית‬ 21.1.1
‫הסדר‬ ‫לפי‬ T ‫של‬ ‫העלים‬ ‫סימני‬ ‫שירשור‬ ‫עי‬ ‫המתקבלת‬ ‫המילה‬ •
.‫העץ‬ ‫חזית‬ ‫נקראת‬ (‫לימין‬ ‫)משמאל‬ ‫שלהם‬ ‫הטבעי‬
(V ∪ Σ)
∗
‫ב־‬ ‫מילה‬ ,‫כלומר‬ ,‫פסוקית‬ ‫תבנית‬ ‫היא‬ ‫העץ‬ ‫חזית‬ •
.S‫מ־‬ ‫לגזירה‬ ‫הניתנת‬G‫ב־‬ ‫פסוקית‬ ‫תבנית‬ ‫גם‬ ‫וזוהי‬
‫מילה‬ ‫היא‬ ‫אזי‬ ,‫דקדוקי‬ ‫משתנה‬ ‫מכילה‬ ‫אינה‬ ‫העץ‬ ‫חזית‬ ‫אם‬ •
.w ∈ L (G)‫ו־‬ w ∈ Σ∗
‫טרמינלית‬
.‫מלא‬ ‫גזירה‬ ‫־עץ‬ ‫נקרא‬ ‫טרמינלית‬ ‫מילה‬ ‫היא‬ ‫שלו‬ ‫שהחזית‬ ‫עץ‬ •
‫שלו‬ ‫שהחזית‬ T ‫יחיד‬ ‫גזירה‬ ‫עץ‬ ‫קיים‬ w ∈ L (G) ‫מילה‬ ‫לכל‬ •
:w ∈ Σ∗
‫טרמינלית‬ ‫מילה‬ ‫עבור‬ ,‫לכן‬ .w ‫המילה‬ ‫היא‬
‫שילת‬ G ‫בדקדוק‬ ‫מלא‬ ‫גזירה‬ ‫עץ‬ ‫קיים‬ ⇐⇒ w ∈ L (G)
.w ‫היא‬ ‫שלו‬ ‫החזית‬
‫משמעיות‬ ‫ורב‬ ‫משמעיות‬ ‫חד‬ 21.1.2
,‫מילה‬ ‫לאותה‬ ‫גזירה‬ ‫מעץ‬ ‫יותר‬ ‫יש‬ ‫מסוים‬ ‫שבדקדוק‬ ‫ייתכן‬ •
‫לכל‬ ‫אם‬ ‫חד־משמעי‬ ‫דקדוק‬ ‫נקרא‬ G ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫לכן‬
‫המילה‬ ‫היא‬ ‫שחזיתו‬ T ‫יחיד‬ ‫גזירה‬ ‫עץ‬ ‫קיים‬ w ∈ L (G) ‫מילה‬
.‫רב־משמעי‬ ‫נקרא‬ ‫הדקדוק‬ ‫אחרת‬ .w
‫קנוניות‬ ‫גזירות‬ 21.1.3
‫ותהיינה‬ ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ G = hV, Σ, P, Si ‫יהי‬ 21.2 ‫הגדרה‬
‫מ־‬ ψ‫ל־‬ ‫להגיע‬ ‫ניתן‬ ‫)כלומר‬ ϕ ⇒
G
ψ ‫כי‬ ‫ונניח‬ ϕ, ψ ∈ (V ∪ Σ)
∗
ψ = χαρ‫ו־‬ ϕ = χAρ :‫ההגדרה‬ ‫לפי‬ ‫אזי‬ (G‫ב־‬ ‫אחת‬ ‫גזירה‬ ‫עי‬ϕ
.χ, ρ ∈ (V ∪ Σ)
∗
‫ו־‬ A → α ∈ P ‫כאשר‬
,χ ∈ Σ∗
‫אם‬ ‫ביותר‬ ‫שמאלית‬ ‫גזירה‬ ‫היא‬ ϕ ⇒
G
ψ‫ש־‬ ‫אומרים‬
.ρ ∈ Σ∗
‫אם‬ ‫ביותר‬ ‫ימנית‬ ‫גזירה‬ ‫היא‬ ϕ ⇒
G
ψ‫ש־‬ ‫ואומרים‬
‫מבוא‬ ‫של‬ ‫בסיכום‬ ‫למצוא‬ ‫ניתן‬ ,‫בפרט‬ ‫מכוונים‬ ‫עצים‬ ‫ועל‬ ‫עצים‬ ‫על‬ ‫נוסף‬ ‫מידע‬14
.('‫א‬ ‫)שנה‬ ‫המחשב‬ ‫מדעי‬ ‫של‬ ‫לתאוריה‬
22
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫רגולריים‬ ‫דקדוקים‬ 22
‫ימני‬ ‫לינארי‬ ‫דקדוק‬ 22.1
G = ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫הוא‬ ‫ימני‬ ‫לינארי‬ ‫דקדוק‬ 22.1 ‫הגדרה‬
:‫הבאות‬ ‫מהצורות‬ ‫אחת‬ ‫הם‬ ‫בו‬ ‫הגזירה‬ ‫כללי‬ ‫שכל‬hV, Σ, P, Si
:a ∈ Σ‫ו־‬ A, B ∈ V :‫עבור‬
.A → aB .1
.A → a .2
‫)וזה‬ ‫כמובן‬ ‫אחד‬ ‫כלל‬ ‫רק‬ ‫להיות‬ ‫יכול‬ ‫הזה‬ ‫מהסוג‬ ‫־‬ S → ε .3
.(ε ∈ L (G)‫ש־‬ ‫אומר‬
.‫אב‬ Σ ‫יהי‬ 22.2 ‫משפט‬
‫ימני‬ ‫לינארי‬ ‫דקדוק‬ ‫קיים‬ ⇐⇒ ‫רגולרית‬ ‫שפה‬ ‫היא‬ L ⊆ Σ∗
‫שפה‬
.L = L (G)‫ש־‬ ‫כך‬ G
:‫למשל‬
:‫הבאה‬ ‫השפה‬ ‫את‬ ‫ניקח‬
‫המילים‬ ‫כל‬ ,‫כלומר‬ L =
n
w ∈ (0 + 1)
∗
w = 1 (0 + 1)
∗
0
o
.Σ = {0, 1} ‫כאשר‬ 0‫ב־‬ ‫ומסתיימות‬ 1‫ב־‬ ‫שמתחילות‬
:‫הנל‬ ‫השפה‬ ‫של‬ ‫ימני‬ ‫רגולרי‬ ‫דקדוק‬
S → 1A
A → 0A 1A 0
.‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫היא‬ ‫רגולרית‬ ‫שפה‬ ‫כל‬ 22.3 ‫מסקנה‬
‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫הניפוח‬ ‫למת‬ 23
‫הניפוח‬ ‫ללמת‬ ‫דומה‬ ‫מאוד‬ ‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫הניפוח‬ ‫למת‬
.‫ובניסוח‬ ‫המילה‬ ‫של‬ ‫בפירוק‬ ‫קל‬ ‫שינוי‬ ‫עם‬ ‫אבל‬ ,(3 ‫)בחלק‬ ‫הקודמת‬
:‫הלמה‬ ‫ניסוח‬
‫טבעי‬ ‫מספר‬ ‫קיים‬ ‫אזי‬ .Σ ‫אב‬ ‫מעל‬ ‫הקשר‬ ‫חסרת‬ ‫שפה‬ L ‫תהי‬
‫יש‬ |w| ≥ n ‫המקיימת‬ w ∈ L ‫מילה‬ ‫שלכל‬ ‫כך‬ (‫הניפוח‬ ‫)קבוע‬ n
‫ומתקיימות‬ x, u, z, v, y ∈ Σ∗
‫כאשר‬ w = xuvzy ‫מהצורה‬ ‫פירוק‬
:‫הבאות‬ ‫הדרישות‬ ‫שלושת‬
.|uzv| ≤ n .1
.|uv|  0 .2
.xui
zvi
y ∈ L :‫מתקיים‬ i ≥ 0 ‫לכל‬ .3
:‫הבא‬ ‫הדבר‬ ‫את‬ ‫לזכור‬ ‫כדאי‬ ‫המילה‬ ‫את‬ ‫לפרק‬ ‫איך‬ ‫לזכור‬ ‫בשביל‬
‫וכעת‬ xu − vy ‫כלומר‬ ,u − v ‫לנו‬ ‫יש‬ x − y‫ה־‬ ‫בתוך‬ ,x − y ‫לנו‬ ‫יש‬
.xuzvy :‫סהכ‬ ,z ‫לנו‬ ‫יש‬ ‫אלה‬ ‫כל‬ ‫בתוך‬
(...‫טוב‬ ‫זה‬ ‫את‬ ‫זוכרים‬ ‫זה‬ ‫את‬ ‫מתרגלים‬ ‫שקצת‬ ‫)אחרי‬
‫אינה‬ ‫ששפה‬ ‫להראות‬ ‫הוא‬ ‫כאן‬ ‫הרעיון‬ ‫הוקדמת‬ ‫הניפוח‬ ‫בלמת‬ ‫וכמו‬
‫שני‬ ‫בעוד‬ ‫מתקיים‬ ‫לא‬ ‫השלישי‬ ‫שהכלל‬ ‫מראים‬ ‫שאנחנו‬ ‫בכך‬ ‫חה‬
.‫מתקיימים‬ ‫האחרים‬ ‫הכללים‬
‫כמו‬ n ‫עם‬ !‫ספציפית‬ ‫)מילה‬ ‫בשפה‬ ‫כלשהי‬ ‫מילה‬ ‫בוחרים‬ ‫אנחנו‬
‫ומראים‬ ‫חה‬ ‫שהשפה‬ ‫בשלילה‬ ‫מניחים‬ ‫ואז‬ (‫הקודמת‬ ‫הניפוח‬ ‫בלמת‬
.‫השלישית‬ ‫הדרישה‬ ‫את‬ ‫סותר‬ ‫זה‬ ,‫מסוים‬ i ‫עבור‬ ,‫כיצד‬
‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ ‫פישוט‬ 24
‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ 24.1
.X ∈ V ∪ E ‫יהי‬ 24.1 ‫הגדרה‬
‫מילה‬ ‫קיימת‬ ‫אם‬ (G ‫)בדקדוק‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ X‫ש־‬ ‫אומרים‬
.X ⇒
G
∗
w‫ש־‬ ‫כך‬ w ∈ Σ∗
‫קיימות‬ ‫אם‬ (G ‫)בדקדוק‬ ‫להשגה‬ ‫ניתן‬ ‫סימן‬ ‫הוא‬ X‫ש־‬ ‫אומרים‬
‫באיזו‬ ‫מופיע‬ X ,‫)כלומר‬ S ⇒
G
∗
αXβ‫ש־‬ ‫כך‬ α, β ∈ (V ∪ Σ)
∗
(‫הדקדוק‬ ‫של‬ ‫פסוקית‬ ‫תבנית‬
.‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ ‫טרמינלי‬ ‫סימן‬ ‫כל‬ ‫־‬ ‫ההגדרה‬ ‫לפי‬ 24.2 ‫הערה‬
‫הסימן‬ G‫ב־‬ ‫אם‬ .‫להשגה‬ ‫הניתן‬ ‫סימן‬ ‫תמיד‬ ‫הוא‬ S ‫כמו־כן‬
.L (G) = ∅ :‫אזי‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ ‫אינו‬ S ‫ההתחלתי‬
‫סימנים‬ ‫אותם‬ ‫להסיר‬ ‫הדרך‬ ‫את‬ ‫נציג‬ ‫הבאים‬ ‫באלגוריתם‬ ,‫לכן‬
.‫הדקדוק‬ ‫את‬ ‫לנו‬ ‫יפשטו‬ ‫אשר‬ ‫מיותרים‬
‫מילה‬ ‫גוזרים‬ ‫שאינם‬ ‫סימנים‬ ‫להסרת‬ ‫אלגוריתם‬ 24.2
‫טרמינלית‬
‫מדובר‬ ‫לכן‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ ‫טרמינלי‬ ‫סימן‬ ‫שכל‬ ‫נזכור‬
‫מילה‬ ‫גוזרים‬ ‫שאינם‬ ‫דקדוקיים‬ ‫משתנים‬ ‫על‬ ‫רק‬ ‫הזה‬ ‫באלגוריתם‬
.‫טרמינלית‬
a, b ∈ Σ ‫)כאשר‬ A → aA bA ‫כזה‬ ‫גזירה‬ ‫כלל‬ ‫לנו‬ ‫יש‬ ‫אם‬ ,‫למשל‬
‫אינו‬ ‫שהוא‬ ‫מכיוון‬ ‫להשגה‬ ‫ניתן‬ ‫שאינו‬ ‫סימן‬ ‫הוא‬ A ‫אזי‬ (A ∈ V ‫ו־‬
.‫טרמינלית‬ ‫מילה‬ ‫גוזר‬
.G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫קלט‬
‫הצגת‬ ‫או‬ ‫ריקה‬ ‫היא‬ (‫הדקדוק‬ ‫)שפת‬ L (G)‫ש־‬ ‫הכרזה‬ :‫פלט‬
‫אשר‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ ‫בו‬ ‫סימן‬ ‫שכל‬ G0
= hV 0
, Σ, P0
, Si
.L (G0
) = L (G) :‫מקיים‬
:V 0
‫חישוב‬ .1
,‫)כלומר‬ V 0
=

A ∈ V ∃w ∈ Σ∗
, A → w ∈ P (‫)א‬
‫המשתנים‬ ‫כל‬ ‫את‬ V 0
‫ל־‬ ‫מכניסים‬ ‫אנחנו‬ ‫הזה‬ ‫בשלב‬
.(‫טרמינלית‬ ‫מילה‬ ‫גוזרים‬ ‫אשר‬ (∈ V ) ‫הדקדוקיים‬
α ∈‫ו־‬ B ∈ V V 0
‫כאשר‬ B → α ∈ P ‫אם‬ (‫)ב‬
B /
∈ V 0
‫לכל‬ ,‫)כלומר‬ V 0
‫ל־‬ B ‫את‬ ‫צרף‬ (V 0
∪ Σ)
∗
‫מאותיות‬ ‫שמורכבת‬ ‫למילה‬ ‫מפנה‬ ‫הוא‬ ‫אם‬ B ∈ V ‫אבל‬
‫ל־‬ B ‫את‬ ‫נצרף‬ ‫אזי‬ V 0
‫מ־‬ ‫דקדוקיים‬ ‫משתנים‬ ‫או‬ Σ‫מ־‬
.(V 0
.V 0
‫ל־‬ ‫חדשים‬ ‫איבירם‬ ‫מתווסים‬ ‫עוד‬ ‫כל‬ (‫)ב‬ ‫על‬ ‫נחזור‬ (‫)ג‬
:S ∈ V 0
‫האם‬ ‫נבדוק‬ ,‫לבסוף‬ (‫)ד‬
‫רוצת‬ ‫את‬ ‫ועוצרים‬ L (G) = ∅‫ש־‬ ‫מכריזים‬ ‫־‬ ‫לא‬ .i
.(‫הבא‬ ‫לשלב‬ ‫ממשיכים‬ ‫)לא‬ ‫האלגוריתם‬
:‫הבא‬ ‫לשל‬ ‫ממשיכים‬ ‫־‬ ‫כן‬ .ii
:P0
‫חישוב‬ .2
‫משתנה‬ ‫בהם‬ ‫שמופיע‬ ‫הגזירה‬ ‫כללי‬ ‫כל‬ ‫את‬ P‫מ־‬ ‫נסיר‬ (‫)א‬
:‫כלומר‬ B ∈ V V 0
.P0
=
n
A → α ∈ P A ∈ V 0
, α (V 0
∪ Σ)
∗
o
.G0
= hV 0
, Σ, P0
, Si ‫את‬ ‫החזר‬ (‫)ב‬
23
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫סימנים‬ ‫להסרת‬ ‫אלגוריתם‬ 24.3
Σ = {a, b, c} ‫עבור‬ :‫למשל‬
S → aS Aa
A → a Ab b
B → aA c
‫בשום‬ ‫אליו‬ ‫להגיע‬ ‫ניתן‬ ‫לא‬ ‫)כי‬ ‫להשגה‬ ‫ניתן‬ ‫שאינו‬ ‫מצב‬ ‫הוא‬ B ‫אזי‬
‫)כי‬ ‫להשגה‬ ‫ניתן‬ ‫שאינו‬ ‫טרמינלי‬ ‫סימן‬ ‫הוא‬ c ‫כן‬ ‫וכמו‬ (‫גזירה‬ ‫סדרת‬
.(‫אותו‬ ‫שמכילה‬ ‫מילה‬ ‫שום‬ ‫לגזור‬ ‫ניתן‬ ‫לא‬
.G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫הקלט‬
X ∈ ‫סימן‬ ‫שכל‬ ‫כך‬ G0
= hV 0
, Σ0
, P0
, Si ‫חה‬ ‫דקדוק‬ :‫הפלט‬
.L (G) = L (G0
)‫ו־‬ ‫להשגה‬ ‫ניתן‬ V 0
∪ Σ0
:Σ0
‫ו־‬ V 0
‫בניית‬ .1
.Σ = ∅ ,V 0
= {S} (‫)א‬
‫משתנה‬ ‫כל‬ V 0
‫ל־‬ ‫צרף‬ A ∈ V 0
‫ו־‬ A → α ∈ P ‫אם‬ (‫)ב‬
‫סימן‬ ‫כל‬ Σ0
‫ל־‬ ‫וצרף‬ V 0
‫ב־‬ ‫ואינו‬ α‫ב־‬ ‫המופיע‬ ‫דקדוקי‬
.Σ0
‫ב־‬ ‫שאינו‬ α‫ב־‬ ‫טרמינלי‬
‫ש־‬ ‫כך‬ α ∈ (V ∪ Σ)
∗
‫ו־‬ A ∈ V 0
‫כל‬ ‫עבור‬ ,‫)כלומר‬
‫אינם‬ α‫ב־‬ ‫סימנים‬ ‫אילו‬ ‫רואים‬ ‫אנחנו‬ A → α ∈ P
.(‫בהתאם‬ Σ0
‫ו־‬ V 0
‫ל־‬ ‫אותם‬ ‫ונצרף‬ V 0
∪ Σ0
‫ב־‬
‫חדשים‬ ‫איברים‬ ‫מתווספים‬ ‫עוד‬ ‫כל‬ (‫)ב‬ ‫צעד‬ ‫על‬ ‫חוזרים‬ (‫)ג‬
.V 0
‫ל־‬
:G0
‫ו־‬ P0
‫בניית‬ .2
.P0
=

A → α ∈ P A ∈ V 0
(‫)א‬
.G0
= {V 0
, Σ0
, P0
, S} ‫את‬ ‫כפלט‬ ‫מחזירים‬ (‫)ב‬
ε ‫כללי‬ ‫להסרת‬ ‫אלגוריתם‬ 24.4
A → ε ‫מהצורה‬ ‫כללים‬ ‫להסיר‬ ‫הוא‬ ‫זה‬ ‫אלגוריתם‬ ‫של‬ ‫הרעיון‬
.A ∈ V ‫כאשר‬
‫אותו‬ ‫ישאר‬ ‫שהדקדוק‬ ‫כך‬ ‫אחרים‬ ‫בכללים‬ ε ‫כלל‬ ‫כל‬ ‫להחליף‬ ‫ניתן‬
.‫הנל‬ ‫מהצורה‬ ‫כללים‬ ‫ללא‬ ‫רק‬ (‫השפה‬ ‫)מבחינת‬ ‫דקדוק‬
.‫כלולה‬ ‫אינה‬ ‫הריקה‬ ‫המילה‬ ‫החדשה‬ ‫שבשפה‬ ‫כמובן‬
G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫בהניתן‬ :‫פורמלי‬ ‫באופן‬
‫בו‬ ‫שאין‬ G0
= hV, Σ, P0
, Si ‫חה‬ ‫דקדוק‬ ‫נבנה‬ ε ‫כללי‬ ‫בו‬ ‫שיש‬
.L (G0
) = L (G) − ε‫ש־‬ ‫כך‬ ε ‫כללי‬
.L (G0
) = L (G) :‫אזי‬ ε /
∈ L (G) ‫שאם‬ ‫לב‬ ‫לשים‬ ‫חשוב‬
‫לאיפוס‬ ‫הניתנים‬ ‫משתנים‬ ‫למציאת‬ ‫אלגוריתם‬ 24.4.1
‫אשר‬ ‫נוסף‬ ‫באלגוריתם‬ ‫להשתמש‬ ‫נצטרך‬ ‫לאלגוריתם‬ ‫שניגש‬ ‫לפני‬
.‫לאיפוס‬ ‫הניתנים‬ ‫משתנים‬ ‫אלו‬ ‫אשר‬ ‫־‬ n (G) ⊆ V :‫קבוצה‬ ‫לנו‬ ‫יתן‬
A ∈ V ‫משתנה‬ .‫חה‬ ‫דקדוק‬ G = hV, Σ, P, Si ‫יהי‬ 24.3 ‫הגדרה‬
‫סדרת‬ ‫קיימת‬ ‫אם‬ ‫כלומר‬ .A ⇒
G
∗
ε ‫אם‬ ‫לאיפוס‬ ‫ניתן‬ ‫משתנה‬ ‫נקרא‬
.‫הריקה‬ ‫המילה‬ ‫את‬ ‫נגזור‬ ‫שבסופה‬ A‫מ־‬ ‫גזירה‬
n (G) =

A ∈ V A ⇒
G
∗
ε

.G ‫בדקדוק‬ ‫לאיפוס‬ ‫הניתנים‬ ‫המשתנים‬ ‫קבוצת‬ ‫את‬ n (G)‫ב־‬ ‫נסמן‬
.G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫הקלט‬
.n (G) ‫לאיפוס‬ ‫הניתנים‬ ‫המשתנים‬ ‫כל‬ ‫קבוצת‬ :‫הפלט‬
‫את‬ ‫מוסיפים‬ ‫זה‬ ‫)בשלב‬ n (G) =

A ∈ V A → ε ∈ P .1
.(‫אחד‬ ‫בצעד‬ ‫לאיפוס‬ ‫הניתנים‬ ‫המשתנים‬ ‫כל‬
‫)כל‬ α ∈ n (G)
+
‫ו־‬ B ∈ V ‫כאשר‬ B → α ∈ P ‫אם‬ .2
B ‫את‬ ‫צרף‬ ,(‫לאיפוס‬ ‫הניתנים‬ ‫משתנים‬ ‫הם‬ α‫ב־‬ ‫הסימנים‬
.(‫שם‬ ‫לא‬ ‫והוא‬ ‫)במידה‬ n (G)‫ל־‬
.n (G)‫ל־‬ ‫חדשים‬ ‫משתנים‬ ‫יתווספו‬ ‫שלא‬ ‫עד‬ 2 ‫צעד‬ ‫על‬ ‫נחזור‬ .3
:ε ‫כללי‬ ‫להסרת‬ ‫האלגוריתם‬ ‫את‬ ‫נראה‬ ‫כעת‬
.ε ‫כללי‬ ‫בו‬ ‫שיש‬ G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫קלט‬
:‫מקיים‬ ‫אשר‬ ε ‫כללי‬ ‫ללא‬ G0
= hV, Σ, P0
, Si ‫חה‬ ‫דקדוק‬ :‫פלט‬
.L (G0
) = L (G) − ε
.‫הקודם‬ ‫האלגוריתם‬ ‫לפי‬ n (G) ‫את‬ ‫נחשב‬ .1
.P0
= ∅ .2
‫נצרף‬ ,ε ‫כלל‬ ‫שאינו‬ A → X1X2 · · · Xn ‫גזירה‬ ‫כלל‬ ‫לכל‬ .3
‫את‬ ‫המקיימים‬ A → Y1Y2 · · · Yn ‫הגזירה‬ ‫כללי‬ ‫את‬ P0
‫ל־‬
:‫הבאים‬ ‫התנאים‬ ‫שלושת‬
. Xi = Yi ‫אז‬ Xi ∈ V − n (G) ‫או‬ Xi ∈ Σ ‫אם‬ (‫)א‬
.Yi = ε ‫או‬ Xi = Yi ‫אז‬ Xi ∈ n (G) ‫אם‬ (‫)ב‬
.Y1Y2 · · · Yn 6= ε (‫)ג‬
.G0
= hV, Σ, P0
, Si ‫את‬ ‫נחזיר‬ .4
:‫השלישי‬ ‫לכל‬ ‫הסבר‬
Σ = {a, b} ,V = {A, B, C, D, E} ‫כי‬ ‫נניח‬
:‫מהצורה‬ ‫כלל‬ ‫לנו‬ ‫יש‬ ‫אם‬ ,‫אזי‬ ,n (G) = {B, C, E}‫ו־‬
A → BCaD
:‫הכלל‬ ‫את‬ P0
‫ל־‬ ‫נכניס‬
A → BCaD CaD BaD aD
‫אליו‬ ‫מתייחסים‬ ‫אחת‬ ‫פעם‬ ‫אנחנו‬ X ∈ n (G) ‫כל‬ ‫עבור‬ :‫הסבר‬
,‫האפשרויות‬ ‫כל‬ ‫את‬ P0
‫ב־‬ ‫ושמים‬ ‫שהוא‬ ‫מה‬ ‫כאל‬ ‫או‬ ε ‫כאל‬ ‫או‬
‫לאף‬ ‫התייחסנו‬ ‫לא‬ BCaD ‫־‬ ‫הראשון‬ ‫בכלל‬ :‫שלמעלה‬ ‫במקרה‬
‫כאל‬ B‫ל־‬ ‫התייחסנו‬ CaD ‫־‬ ‫השני‬ ‫בכלל‬ ,ε ‫כלל‬ ‫כאל‬ X ∈ n (G)
‫התייחסנו‬ ‫האחרון‬ ‫ובכלל‬ ,‫ההפך‬ ‫בדיוק‬ ‫השלישי‬ ‫בכלל‬ ,‫לא‬ C ‫ואל‬ ε
‫צריכים‬ ‫אנחנו‬ ‫אחרים‬ ‫בכללים‬ ‫גם‬ ,‫כך‬ .ε‫כ־‬ C ‫אל‬ ‫וגם‬ B ‫אל‬ ‫גם‬
.‫האפשרויות‬ ‫כל‬ ‫את‬ ‫לכסות‬
:‫היה‬ ‫הכלל‬ ‫למשל‬ ‫אם‬ ‫או‬
A → BCE
:‫הוא‬ P0
‫ל־‬ ‫מכניסים‬ ‫שהיינו‬ ‫הכלל‬ ‫אזי‬
A → BCE CE BE BC B C E
‫נקבל‬ ‫אז‬ ‫כי‬ ε ‫כאל‬ ‫לשלושתם‬ ‫נתייחס‬ ‫לא‬ ‫אנחנו‬ (‫)ג‬ ‫כלל‬ ‫ובגלל‬
...‫להסיר‬ ‫רוצים‬ ‫אנחנו‬ ‫הללו‬ ‫הכללים‬ ‫ואת‬ A → ε ‫מהצורה‬ ‫כלל‬
24
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫יחידה‬ ‫כללי‬ ‫להסרת‬ ‫אלגוריתם‬ 24.5
A → B ‫מהצורה‬ ‫גזירה‬ ‫כל‬ G = hV, Σ, P, Si ‫חה‬ ‫בדקדוק‬
.‫יחידה‬ ‫כלל‬ ‫נקרא‬ A, B ∈ V ‫כאשר‬
‫עי‬ ‫שמתקבל‬ ‫יחידה‬ ‫כללי‬ ‫ללא‬ ‫שקול‬ ‫דקדוק‬ ‫קיים‬ ‫חה‬ ‫דקדוק‬ ‫לכל‬
.‫בלבד‬ ‫הגזירה‬ ‫כללי‬ ‫שינוי‬
‫סדור‬ ‫זוג‬ .G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ ‫יהי‬ 24.4 ‫הגדרה‬
A‫מ־‬ ‫לגזירה‬ ‫ניתן‬B ‫אם‬ ‫יחידה‬ ‫זוג‬ ‫נקרא‬ A, B ∈ V ‫כאשר‬ (A, B)
‫שמספר‬ ‫אפשרות‬ ‫שישנה‬ ‫)כמובן‬ ‫בלבד‬ ‫יחידה‬ ‫בכללי‬ ‫שימוש‬ ‫תוך‬
.(‫יחידה‬ ‫זוג‬ ‫הוא‬ (A, A) A ∈ V ‫לכל‬ ,‫ולכן‬ 0 ‫יהיה‬ ‫הצעדים‬
‫יחידה‬ ‫זוג‬ ‫הוא‬ (A, B) ‫אזי‬ ε ‫כללי‬ ‫אין‬ ‫בדקדוק‬ ‫אם‬ 24.5 ‫הערה‬
‫אחרת‬ ‫אפשרות‬ ‫אין‬ ε ‫כללי‬ ‫בהעדר‬ ‫)כי‬ A ⇒
G
∗
B ‫אם‬ ‫ורק‬ ‫אם‬
.(‫יחידה‬ ‫בללי‬ ‫השימוש‬ ‫מלבד‬ A‫מ־‬ B ‫לגזירת‬
u (G) ‫היחידה‬ ‫זוגות‬ ‫קבוצת‬ ‫לחישוב‬ ‫אלגוריתם‬ 24.5.1
‫את‬ ‫את‬ ‫לחשב‬ ‫נצטרך‬ ‫יחידה‬ ‫כללי‬ ‫להסרת‬ ‫לאלגוריתם‬ ‫שניגש‬ ‫לפני‬
.u (G) ⊆ V × V :G ‫בדקדוק‬ ‫היחידה‬ ‫זוגות‬ ‫קבוצות‬
.G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫קלט‬
.u (G) :‫פלט‬
.u (G) =

(A, A) A ∈ V .1
(A, C) ‫את‬ ‫נצרף‬ B → C ∈ P‫ו־‬ (A, B) ∈ u (G) ‫אם‬ .2
.(‫שם‬ ‫אינו‬ ‫הוא‬ ‫)אם‬ u (G)‫ל־‬
.u (G)‫ל־‬ ‫חדשים‬ ‫איברים‬ ‫מתווספים‬ ‫עוד‬ ‫כל‬ 2 ‫צעד‬ ‫על‬ ‫נחזור‬ .3
.u (G) ‫את‬ ‫נחזיר‬ .4
:‫היחידה‬ ‫כללי‬ ‫להסרת‬ ‫לאלגוריתם‬ ‫ניגש‬ ‫כעת‬
.G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫קלט‬
‫יחידה‬ ‫כללי‬ ‫בו‬ ‫שאין‬ G0
= hV, Σ, P0
, Si ‫חה‬ ‫דקדוק‬ :‫פלט‬
.L (G0
) = L (G) :‫ומתקיים‬
.‫יחידה‬ ‫כלל‬ ‫אינו‬ A → α‫ש־‬ ‫פירושו‬ A → α? :‫נסמן‬
.‫שלמעלה‬ ‫האלגוריתם‬ ‫עפ‬ u (G) ‫את‬ ‫נחשב‬ .1
.P0
=

A → α A → α?, (A, B) ∈ u (G) , B → α ∈ P .2
.G0
= hV, Σ, P0
, Si ‫את‬ ‫נחזיר‬ .3
:2‫ל־‬ ‫הסבר‬
:‫הבא‬ ‫הדקדוק‬ ‫את‬ ‫לנו‬ ‫ויש‬ ‫נניח‬
S → a A
A → Bb c
B → a
‫כלל‬ ‫את‬ ‫לנו‬ ‫ויש‬ u (G) = {(S, S) , (A, A) , (B, B) , (S, A)} ‫אזי‬
,S → A ‫היחידה‬
‫שניהם‬ ,‫יחידה‬ ‫כללי‬ ‫אינם‬ A → c‫ו־‬ A → Bc ‫כי‬ ‫לב‬ ‫נשים‬ ‫אזי‬
:‫הם‬ ‫שנצרף‬ ‫הכללים‬ ‫ולכן‬ ,(S, A) ∈ u (G)‫ו־‬ P‫ב־‬
...S ‫את‬ ‫שמנו‬ A‫ה־‬ ‫במקום‬ ,‫כלומר‬ ‫־‬ S → c ‫ואת‬ S → Bc
:‫זה‬ ‫הוא‬ ‫כאן‬ ‫עושים‬ ‫אנחנו‬ ‫שבעצם‬ ‫מה‬ ,‫יותר‬ ‫פשוטות‬ ‫במילים‬
‫הכללים‬ ‫כל‬ ‫מסתכלים‬ ‫אנחנו‬ ‫אזי‬ A → B ‫יחידה‬ ‫כלל‬ ‫לנו‬ ‫יש‬ ‫אם‬
A‫ל־‬ ‫אותם‬ ‫ומדביקים‬ B → α ‫מהצורה‬ ‫יחידה‬ ‫כללי‬ ‫שאינם‬
.A → B ‫כלל‬ ‫באותו‬ B ‫במקום‬
:‫כזה‬ ‫משהו‬ ‫לנו‬ ‫יש‬ ‫אם‬ ,‫לכן‬
S → A
A → B
B → a
:‫הבא‬ ‫הדקדוק‬ ‫את‬ ‫הוא‬ ‫שנקבל‬ ‫מה‬ ‫האלגוריתם‬ ‫את‬ ‫שנריץ‬ ‫אחרי‬
.S → a
.(‫בשרשרת‬ ‫מדביקים‬ ‫פשוט‬ ‫)אנחנו‬
‫האלגוריתמים‬ ‫לביצוע‬ ‫הנכון‬ ‫הסדר‬ 24.6
.ε ‫כללי‬ ‫הסרת‬ .1
.‫יחידה‬ ‫כללי‬ ‫הסרת‬ .2
.‫מיותרים‬ ‫כללים‬ ‫הסדרת‬ .3
:‫לביצוע‬ ‫ונוחה‬ ‫פשוטה‬ ‫יותר‬ ‫בצורה‬ ‫זה‬ ‫את‬ ‫לעשות‬ ‫אפשר‬ ‫אבל‬
.‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ .1
.ε ‫כללי‬ ‫הסרת‬ .2
.‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ .3
.‫יחידה‬ ‫כללי‬ ‫הסרת‬ .4
.‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ .5
‫יותר‬ ‫ונוח‬ ‫לפשוט‬ ‫התהליך‬ ‫כל‬ ‫את‬ ‫תהפוך‬ (‫)השנייה‬ ‫הנל‬ ‫הדרך‬
.(‫ארוכה‬ ‫יותר‬ ‫קצת‬ ‫שהיא‬ ‫)למרות‬
(CNF) ‫חומסקי‬ ‫של‬ ‫הנורמלית‬ ‫הצורה‬ 25
‫כללי‬ ‫שכל‬ G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ 25.1 ‫הגדרה‬
:‫הבאות‬ ‫מהצורות‬ ‫באחת‬ ‫הם‬ ‫בו‬ ‫הגזירה‬
.A → BC .1
.A → a .2
.a ∈ Σ‫ו־‬ A, B, C ∈ V ‫כאשר‬
.‫חומסקי‬ ‫של‬ ‫הנורמלית‬ ‫בצורה‬ ‫דקדוק‬ ‫נקרא‬
‫קיים‬ ,ε ‫את‬ ‫מכילה‬ ‫שאינה‬ L ‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫לכל‬ 25.2 ‫משפט‬
‫של‬ ‫הנורמלית‬ ‫בצורה‬ G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬
.L = L (G)‫ש־‬ ‫כך‬ ‫חומסקי‬
‫חה‬ ‫מדקדוק‬ CNF ‫בניית‬ 25.1
: ε /
∈ L (G) ‫שמקיים‬ G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ ‫הניתן‬
‫כללי‬ ‫ואין‬ ε ‫כללי‬ ‫אין‬ ‫בדקדוק‬ ‫כי‬ ‫נניח‬ ‫הכלליות‬ ‫הגבלת‬ ‫בלי‬ .1
.(‫שלמעלה‬ ‫האלגוריתמים‬ ‫עפ‬ ‫אותם‬ ‫נסיר‬ ‫־‬ ‫ויש‬ ‫)במידה‬ ‫יחידה‬
:a ∈ Σ ‫טרמינלי‬ ‫סימן‬ ‫לכל‬ .2
.Sa ‫שנסמנו‬ ‫חדש‬ ‫משתנה‬ V ‫ל־‬ ‫נוסיף‬ (‫)א‬
.Sa → a :‫הבא‬ ‫הכלל‬ ‫את‬ P‫ל־‬ ‫נוסיף‬ (‫)ב‬
25
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫עם‬ A → X1 · · · Xk ‫מהצורה‬ P‫ב־‬ ‫גזירה‬ ‫כלל‬ ‫לכל‬ (‫)ג‬
.Sa‫ב־‬ ‫זה‬ ‫גזירה‬ ‫בכלל‬ a ‫של‬ ‫מופע‬ ‫כל‬ ‫נחליף‬ k ≥ 2
.G0
= hV 0
, Σ, P0
, Si‫ב־‬ ‫המתקבל‬ ‫הדקדוק‬ ‫את‬ ‫נסמן‬
:‫שני‬ ‫שלב‬
:k ≥ 3 ‫עם‬ A → X1 · · · Xk ‫מהצורה‬ P0
‫ב־‬ ‫גזירה‬ ‫כלל‬ ‫לכל‬
‫להם‬ ‫ונקרא‬ V 0
‫ל־‬ ‫חדשים‬ ‫משתנים‬ k − 2 ‫נוסיף‬ .1
.(!‫אחרים‬ ‫משתנים‬ ‫גזירה‬ ‫כלל‬ ‫)לכל‬ Y1, Y2, ..., Yk−2
:‫הבאים‬ ‫הכללים‬ k −1 ‫ב־‬ A → X1 · · · Xk ‫הכלל‬ ‫את‬ ‫נחליף‬ .2
....Y2 → X3Y3 ,Y1 → X2Y2 ,A → X1Y1
,Yk−3 → Xk−2Yk−2‫ל־‬ ‫נגיע‬ ‫שלבסוף‬ ‫עד‬
.Yk−2 → Xk−1Xk
G00
=‫ב־‬ ‫הזה‬ ‫השלב‬ ‫ביצוע‬ ‫אחרי‬ ‫המתקבל‬ ‫הדקדוק‬ ‫את‬ ‫נסמן‬
.‫אותו‬ ‫ונחזיר‬ hV 00
, Σ, P00
, Si
:‫מהצורה‬ ‫גזירה‬ ‫כלל‬ ‫יש‬ ‫ובו‬ ‫דקדקו‬ ‫לנו‬ ‫יש‬ ‫אם‬ ‫כלומר‬
A → BCDa
:‫להיות‬ ‫יהפוך‬ ‫הוא‬ ‫הראשון‬ ‫בשלב‬ ‫אזי‬
A → BCDSa
Sa → a
:‫יהיה‬ ‫הוא‬ ‫השני‬ ‫בשלב‬ ‫ולאחר־מכן‬
A → BY1
Y1 → CY2
Y2 → DSa
Sa → a
.‫חומסקי‬ ‫של‬ ‫הנורמלית‬ ‫בצורה‬ ‫דקדוק‬ ‫וקיבלנו‬
‫שפות‬ ‫של‬ ‫סגירות‬ ‫לתכונות‬ ‫בקשר‬ ‫משפטים‬ 26
‫הקשר‬ ‫חסרות‬
‫סגורה‬ ,Σ ‫אב‬ ‫מעל‬ ,‫ההקשר‬ ‫חסרות‬ ‫השפות‬ ‫משפחת‬ 26.1 ‫משפט‬
‫לפעולות‬ ‫סגורה‬ ‫היא‬ ,‫)כלומר‬ ‫ולאיטרציה‬ ,‫לשירשור‬ ,‫לאיחוד‬
.(‫רגולריות‬
‫לחיתוך‬ ‫סגורה‬ ‫אינה‬ ‫ההקשר‬ ‫חסרות‬ ‫השפות‬ ‫משפחת‬ 26.2 ‫משפט‬
.‫ולמשלים‬
‫חסרת‬ ‫ושפה‬ ‫רגולרית‬ ‫שפה‬ ‫חיתוך‬ ‫על‬ ‫חשוב‬ ‫משפט‬ 26.1
‫הקשר‬
‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫עם‬ ‫רגולרית‬ ‫שפה‬ ‫של‬ ‫חיתוך‬
.‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫נותן‬
:‫כלומר‬
:‫אזי‬ ,(‫כמובן‬ ‫ההפך‬ ‫)או‬ ‫הקשר‬ ‫חסרת‬ L2‫ו־‬ ‫רגורלית‬ L1 ‫אם‬
.‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫היא‬ L1 ∩ L2
‫רגולריות‬ ‫בבעיות‬ ‫הכרעה‬ ‫בעיות‬ ‫פתרון‬ 27
.G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ ‫לנו‬ ‫נתון‬ ‫המקרים‬ ‫בכל‬
‫הריקנות‬ ‫בעיית‬ 27.1
.‫ריקה‬ ‫אינה‬ L (G) ‫השפה‬ ‫האם‬ ‫להכיע‬ ‫יש‬
‫טרמינלית‬ ‫מילה‬ ‫גוזרים‬ ‫שאנים‬ ‫המשתנים‬ ‫את‬ G‫מ־‬ ‫מסירים‬ :‫פתרון‬
‫נשאר‬ S ‫ההתחלתי‬ ‫המתשנה‬ ‫אם‬ (‫למעלה‬ ‫שראינו‬ ‫האלגוריתם‬ ‫)לפי‬
.‫לא‬ ‫נחזיר‬ ‫אחרת‬ ,‫כן‬ ‫ונחזיר‬ ‫ריקה‬ ‫לא‬ ‫השפה‬ ‫־‬ ‫בדקדוק‬
‫הסופיות‬ ‫בעיית‬ 27.2
‫כוללת‬ ,‫)כלומר‬ ‫אינסופית‬ ‫היא‬ L (G) ‫השפה‬ ‫האם‬ ‫להכריע‬ ‫יש‬
.(‫מילים‬ ‫אינסוף‬
‫כללי‬ ‫או‬ ε ‫כללי‬ ,‫מיותרים‬ ‫סימנים‬ ‫אין‬G‫ב־‬ ‫כי‬ ‫נניח‬ ‫בהכ‬ :‫פתרון‬
‫הדקדוקיים‬ ‫המשתנים‬ ‫הם‬ ‫בו‬ ‫שהצמתים‬ ‫מכוון‬ ‫גרף‬ ‫נבנה‬ .‫יחידה‬
‫אשר‬ (A, B) ‫הסדורים‬ ‫הזוגות‬ ‫כל‬ ‫הן‬ ‫והקשתות‬ (V ‫)אברי‬ G ‫של‬
A → αBϕ ‫מהצורה‬ ‫כלל‬ ‫בדקדוק‬ ‫וקיים‬ A, B ∈ V :‫מקיימים‬
.α, ϕ ∈ (V ∪ Σ)
∗
‫כאשר‬
‫היא‬ ‫השפה‬ ‫־‬ ‫כן‬ ‫אם‬ ‫־‬ ‫שבנינו‬ ‫בגרף‬ ‫מעגל‬ ‫מעגל‬ ‫יש‬ ‫אם‬ ‫נבדוק‬
.‫לא‬ ‫נחזיר‬ ‫אחרת‬ ,‫כן‬ ‫ונחזיר‬ ‫אינסופית‬
26
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
VIII ‫חלק‬
(PDA) ‫מחסנית‬ ‫אוטומט‬
‫מסעי‬ ‫כולל‬ NFA ‫אוטומט‬ ‫לנו‬ ‫שיש‬ ‫הוא‬ ‫מחסנית‬ ‫באוטומט‬ ‫הרעיון‬
‫תאים‬ ‫של‬ ‫אינסופי‬ ‫מספר‬ ‫עם‬ ‫מחסנית‬ ‫לו‬ ‫יש‬ ‫גם‬ ‫הפעם‬ ‫אבל‬ ε
‫אחת‬ ‫אות‬ ‫לקרוא‬ ‫או‬ ‫מילה‬ ‫לדחוף‬ ‫או‬ ‫פעם‬ ‫כל‬ ‫יכול‬ ‫הוא‬ ‫שממנה‬
.(‫אותה‬ ‫מסיר‬ ‫הוא‬ ‫)ואז‬
‫פורמלית‬ ‫הגדרה‬ 28
‫שביעייה‬ ‫זוהי‬ (PDA) ‫מחסנית‬ ‫אוטומט‬
:‫כאשר‬ M = hQ, Σ, Γ, δ, q0, ⊥, Fi
.‫מצבים‬ ‫של‬ ‫סופית‬ ‫קבוצה‬ ‫־‬ Q •
.(‫סופית‬ ‫)קבוצה‬ ‫הקלט‬ ‫אב‬ ‫־‬ Σ •
‫מחסנית‬ ‫באוטומט‬ .‫המחסנית‬ ‫אב‬ ‫של‬ ‫סופית‬ ‫קבוצה‬ ‫־‬ Γ •
‫של‬ ‫מאב‬ ‫שונה‬ ‫שהוא‬ ‫אב‬ ‫למחסנית‬ ‫לדחות‬ ‫יכולים‬ ‫אנחנו‬
.(Σ) ‫השפה‬ ‫של‬
.q0 ∈ Q .‫ההתחלתי‬ ‫המצב‬ ‫־‬ q0 •
‫את‬ ‫מסמל‬ ‫⊥והוא‬ ∈ Γ .‫המחסנית‬ ‫תחתית‬ ‫הנקרא‬ ‫איבר‬ ‫־‬ ⊥ •
‫קראנו‬ ‫ולא‬ ‫במחסנית‬ ‫נגענו‬ ‫לא‬ ‫עוד‬ ‫כלך‬ .‫המסחנית‬ ‫תחתית‬
.⊥ ‫את‬ ‫זה‬ ‫במחסנית‬ ‫שיש‬ ‫היחיד‬ ‫הדבר‬ ‫־‬ ‫קלט‬ ‫אות‬ ‫שום‬
‫ץ‬F ⊆ Q .‫המקבלים‬ ‫המצבים‬ ‫קבוצת‬ ‫־‬ F •
‫כאשר‬ ,δ : Q × Σε × Γ → 2Q×Γ∗
:‫המעברים‬ ‫פונקצית‬ ‫־‬δ •
δ ‫הפונקציה‬ ‫של‬ ‫הערכים‬ ‫כי‬ ‫מניחים‬ ‫אנח‬ .Σε = Σ ∪ {ε}
‫הזאת‬ ‫הפונקצהי‬ ‫)על‬ .Q × Γ∗
‫של‬ ‫סופיות‬ ‫תת־קבוצות‬ ‫הן‬
.(‫בהמשך‬ ‫קצת‬ ‫יוסבר‬
‫סימונים‬ 29
.a, b, c.... ‫ב־‬ ‫נסמן‬ (‫הקלט‬ ‫)אותיות‬ Σ ‫אברי‬ ‫את‬
.σ, τ, ... ‫ב־‬ ‫נסמן‬ (ε ‫או‬ ‫קלט‬ ‫)אות‬ Σε ‫אברי‬ ‫את‬
.X, Y, Z, ... ‫ב־‬ ‫נסמן‬ (‫המחסנית‬ ‫)אב‬ Γ ‫אברי‬ ‫את‬
.w, u, v, ...‫ב־‬ ‫יסומנו‬ Σ∗
‫ב־‬ ‫מילים‬
.α, β, γ, ...‫ב־‬ ‫יסיומנו‬ Γ∗
‫ב־‬ ‫מילים‬
‫ופירושים‬ ‫הערות‬ 30
‫המחסנית‬ ‫מבנה‬ 30.1
:‫כך‬ ‫נראית‬ ‫ההתחלתית‬ ‫המסחנית‬
⊥
‫האות‬ ‫את‬ ‫מסיר‬ ‫הוא‬ ‫מהקלט‬ ‫אות‬ ‫קורא‬ ‫שהאוטומט‬ ‫פעם‬ ‫כל‬
‫בראש‬ ‫שנמצאת‬ ‫האות‬ ‫תהיה‬ ‫זאת‬ ‫)תמיד‬ ‫המחסנית‬ ‫בראש‬ ‫שנמצאת‬
.(‫בלבד‬ ‫אחת‬ ‫אות‬ ‫תהיה‬ ‫תמיד‬ ‫וזאת‬ ‫המחסנית‬
‫כמובן‬ ‫)וזה‬ A ‫האות‬ ‫האות‬ ‫את‬ ‫למחסנית‬ ‫לדחוף‬ ‫שהחלטנו‬ ‫נניח‬
‫יהיו‬ ‫כך‬ ‫על‬ ‫יותר‬ ‫נרחבים‬ ‫הסברים‬ ,ε ‫או‬ ‫קלט‬ ‫אות‬ ‫של‬ ‫קריאה‬ ‫אחרי‬
:‫כך‬ ‫תיראה‬ ‫המחסנית‬ ‫היא‬ ‫אזי‬ ,(δ ‫המעברים‬ ‫פונקצית‬ ‫על‬ ‫בהסברים‬
A
‫האות‬ ‫את‬ ‫הכניס‬ ‫הוא‬ ⊥ ‫האות‬ ‫את‬ ‫הסיר‬ ‫כל‬ ‫קודם‬ ‫שהוא‬ ‫מכיוון‬
.A
‫שהסימן‬ ‫נרצה‬ ‫אם‬ ‫לכם‬ ,Γ∗
‫מ־‬ ‫מילים‬ ‫גם‬ ‫לדחוף‬ ‫ניתן‬ ‫למחסנית‬
‫שאנחנו‬ ‫מה‬ ‫את‬ ‫את‬ ‫ואז‬ ‫אותו‬ ‫כל‬ ‫קודם‬ ‫לדחוף‬ ‫נצטרך‬ ‫ישאר‬ ⊥
⊥‫ה־‬ ‫סימן‬ ‫להשאיר‬ ‫נרצה‬ ‫לא‬ ‫אנחנו‬ ‫שלפעמים‬ ,‫לציין‬ ‫)חשוב‬ ‫רוצים‬
‫נדחוף‬ ‫אם‬ ,‫לכן‬ ,(‫המילה‬ ‫בסוף‬ ‫יהיה‬ ‫שהוא‬ ‫תמיד‬ ‫חייבים‬ ‫לא‬ ‫ולכן‬
:‫כך‬ ‫תיראה‬ ‫המחסנית‬ ‫אזי‬ ‫־‬ A⊥ ‫למחסנית‬
A ⊥
:‫כך‬ ‫תיראה‬ ‫המחסנית‬ ‫אזי‬ BC ‫נדחוף‬ ‫עכשיו‬ ‫ואם‬
B C ⊥
‫רק‬ ‫ונשארנו‬ A ‫את‬ ‫הסרנו‬ ‫ואז‬ (ε ‫)או‬ ‫כלשהי‬ ‫קלט‬ ‫אות‬ ‫קראנו‬ ‫כי‬
‫אחד‬ ⊥ ‫את‬ ‫)והזיז‬ ‫למחסנית‬ C ‫את‬ ‫דחף‬ ‫האוטומט‬ ‫וכעת‬ ⊥ ‫עם‬
.‫קדימה‬ ‫אחד‬ C⊥ ‫את‬ ‫ודחף‬ B ‫את‬ ‫הכניס‬ ‫האוטומט‬ ‫ואז‬ (‫קדימה‬
‫רק‬ ‫שהוא‬ ‫אומר‬ ‫זה‬ ‫ואז‬ ‫־‬ ε ‫את‬ ‫למחסנית‬ ‫לדחוף‬ ‫גם‬ ‫ניתן‬ ,‫כמו־כן‬
.‫במקום‬ ‫אות‬ ‫שום‬ ‫מוסיף‬ ‫ולא‬ ‫המחסנית‬ ‫שבראש‬ ‫האות‬ ‫את‬ ‫מסיר‬
‫יש‬ ‫אם‬ ‫עם‬ ‫רק‬ ‫להתקדם‬ ‫יכול‬ ‫האוטומט‬ ‫־‬ ‫לזכור‬ ‫שחשוב‬ ‫נוסף‬ ‫דבר‬
‫יכול‬ ‫לא‬ ‫האוטומט‬ ‫־‬ ‫ריקה‬ ‫המחסנית‬ ‫אם‬ ,Γ‫מ־‬ ‫אחת‬ ‫אות‬ ‫לפחות‬
.‫נתקע‬ ‫האוטומט‬ ‫אזי‬ ‫בקלט‬ ‫אותיות‬ ‫עוד‬ ‫ויש‬ ‫במידה‬ ,‫להתקדם‬
‫בשפה‬ ‫תלוי‬ ‫זה‬ ‫־‬ ‫לא‬ ‫או‬ ‫המילה‬ ‫את‬ ‫יקבל‬ ‫הוא‬ ‫אם‬ ‫השאלה‬ ‫)לגבי‬
.(‫בהמשך‬ ‫ידובר‬ ‫זה‬ ‫ועל‬
‫יכולים‬ ‫אנחנו‬ ‫כלומר‬ ,‫אינסופי‬ ‫בגודל‬ ‫היא‬ ‫המחסנית‬ 30.1 ‫הערה‬
‫באיזה‬ ,‫שנרצה‬ ‫מילים‬ ‫כמה‬ ‫)או‬ ‫שנרצה‬ ‫אותיות‬ ‫כמה‬ ‫אליה‬ ‫לדחוף‬
.(‫שנרצה‬ ‫אורך‬
δ ‫המעברים‬ ‫פונקצית‬ 30.2
:‫כך‬ ‫מוגדרת‬ ‫המעברים‬ ‫פונקציית‬ ‫לראות‬ ‫שניתן‬ ‫כפי‬
δ : Q × Σε × Γ → 2Q×Γ∗
σ ∈ Σε ,q ∈ Q ‫כאשר‬ (q, σ, X) ‫מהשלשה‬ ‫עוברים‬ ‫אנחנו‬ ,‫כלומר‬
:(p, α) ‫סדור‬ ‫לזוג‬ X ∈ Γ‫ו־‬
δ (q, σ, X) → (p, α)
27
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
:‫הסבר‬
‫יכולה‬ ‫)שזה‬ σ ‫היא‬ ‫בקלט‬ ‫הבאה‬ ‫האות‬ q ‫במצב‬ ‫נמצאים‬ ‫אנחנו‬ ‫אם‬
‫הסבר‬ ‫יהי‬ ‫]בהמשך‬ ε ‫מעבר‬ ‫־‬ ‫ריקה‬ ‫מילה‬ ‫או‬ Σ‫ב־‬ ‫אות‬ ‫להיות‬
‫למצב‬ ‫נעבור‬ ‫אנחנו‬ ‫אזי‬ X ‫האות‬ ‫נמצאת‬ ‫המחסנית‬ ‫ובראש‬ ([‫לזה‬
‫האות‬ ‫את‬ ‫שהסרנו‬ ‫אחרי‬ ‫)וזה‬ α ‫המילה‬ ‫את‬ ‫למחסנית‬ ‫ונדחוף‬ p
.(‫המחסנית‬ ‫בראש‬ ‫שנמצאת‬
:‫דיאגרמה‬ ‫באמצעות‬ ‫טוב‬ ‫יותר‬ ‫קצת‬ ‫זה‬ ‫את‬ ‫להביא‬ ‫ניתן‬
q
σ,X→α
// p
:‫תנאים‬ ‫בשני‬ ‫רק‬ ‫אם‬ ‫מתאפשר‬ p‫ל־‬ q‫מ־‬ ‫המעבר‬
‫או‬ a ∈ Σ ‫האות‬ ‫היא‬ ‫לקרוא‬ ‫עומד‬ ‫שהאוטומט‬ ‫הבאה‬ ‫האות‬ .1
.‫ישנה‬ ‫בכלל‬ ‫אם‬ ‫הבאה‬ ‫האות‬ ‫מה‬ ‫משנה‬ ‫לא‬ ‫ואז‬ ‫־‬ ε
.X ‫האות‬ ‫את‬ ‫יש‬ ‫המחסנית‬ ‫בראש‬ .2
.(q ‫במצב‬ ‫כמובן‬ ‫)אנחנו‬ .3
:‫אנחנו‬ ‫אזי‬ ‫הזה‬ ‫המעבר‬ ‫את‬ ‫מבצעים‬ ‫אנחנו‬ ‫אם‬
.‫הקלט‬ ‫ממילת‬ ‫אות‬ ‫עוד‬ ‫קוראים‬ .1
.p ‫למצב‬ ‫עוברים‬ .2
‫שמים‬ ‫ובמקומה‬ ‫המחסנית‬ ‫בראש‬ ‫שנמצאת‬ ‫האות‬ ‫את‬ ‫מסירים‬ .3
.α ‫את‬
‫באות‬ ‫תלוי‬ ‫אחד‬ ‫כל‬ ‫כאשר‬ q‫ל־‬ p‫מ־‬ ‫מעברים‬ ‫כמה‬ ‫להיות‬ ‫יכולים‬
‫בראש‬ ‫שנמצאת‬ ‫באות‬ ‫תלוי‬ ‫או‬ (NFA‫ב־‬ ‫כמו‬ ‫)בדיוק‬ ‫אחרת‬
.‫המחסנית‬
‫ובראש‬ a ‫היא‬ ‫במילה‬ ‫הבאה‬ ‫האות‬ ,q ‫במצב‬ ‫אנחנו‬ ‫למשל‬ ‫אם‬
:‫הוא‬ ‫לנו‬ ‫שיש‬ ‫היחיד‬ ‫המעבר‬ ‫אבל‬ ,B ‫האות‬ ‫את‬ ‫יש‬ ‫המחסנית‬
q
a,⊥→BA
// p
....‫וניתקע‬ ‫להמשיך‬ ‫נוכל‬ ‫לא‬ ‫אזי‬
‫חייב‬ p‫ל־‬ q‫מ־‬ ‫המעבר‬ ‫של‬ ‫מהכללים‬ ‫אחד‬ ‫להמשיך‬ ‫שנוכל‬ ‫לשם‬
.ε ‫להיות‬ ‫יכול‬ a ‫במקום‬ ‫או‬ a, A → · · · :‫מהצורה‬ ‫להיות‬
‫ניתן‬ ‫שלא‬ δ‫ה־‬ ‫כל‬ ‫בעצם‬ ‫וזה‬ ‫־‬ δ (q, σ, X) = ∅ ‫כי‬ ‫ייתכן‬ ,‫כמו־כן‬
‫שכתוב(ץ‬ ‫ממה‬ ‫אחרת‬ δ ‫־‬ ‫כל‬ ‫שלנו‬ ‫)במקרה‬ ‫הלאה‬ ‫מהם‬ ‫להמשיך‬
M ‫של‬ ‫השפה‬ 30.3
M = hQ, Σ, Γ, δ, q0, ⊥, Fi ‫מחסנית‬ ‫אוטומט‬ ‫של‬ ‫השפה‬
:‫שפות‬ ‫לשתי‬ ‫מתחלקת‬
‫הקלט‬ ‫מילת‬ ‫מסתיימת‬ ‫כזאר‬ ‫השפה‬ ‫זאת‬ ‫־‬ Lf (M) .1
‫המחסנית‬ ‫אם‬ ‫לנו‬ ‫משנה‬ ‫לא‬ .‫מקבל‬ ‫במצב‬ ‫נמצא‬ ‫והאוטומט‬
‫במצב‬ ‫ואנחנו‬ ‫הסתיימה‬ ‫הקלט‬ ‫מילת‬ ‫אם‬ ‫־‬ ‫מלאה‬ ‫או‬ ‫ריקה‬
‫המילה‬ ‫שאם‬ ‫לזכור‬ ‫זאת‬ ‫עם‬ ‫חשוב‬ .‫התקבלה‬ ‫המילה‬ ‫־‬ ‫מקבל‬
.‫נתקעים‬ ‫אנחנו‬ ‫אזי‬ ‫־‬ ‫ריק‬ ‫והאוטומט‬ ‫נגמרה‬ ‫לא‬
‫כך‬ ‫עי‬ ‫שמתקבלות‬ ‫המילים‬ ‫כל‬ ‫של‬ ‫השפה‬ ‫זאת‬ ‫־‬ Le (M) .2
‫מצב‬ ‫באיזה‬ ‫משנה‬ ‫ולא‬ ‫ריקה‬ ‫והמחסנית‬ ‫נגמרת‬ ‫שהמילה‬
.‫מקבל‬ ‫לא‬ ‫או‬ ‫מקבל‬ ‫אנחנו‬
‫־‬ ‫מקרים‬ ‫ובהמון‬ Lf (M) = Le (M) ‫בהכרח‬ ‫שלא‬ ‫כמובן‬
.Lf (M) 6= Le (M)
‫מחסנית‬ ‫אוטומט‬ ‫של‬ ‫החישוב‬ 31
‫עובד‬ ‫מחסנית‬ ‫אוטומט‬ ‫שבה‬ ‫הדרך‬ ‫את‬ ‫פורמלי‬ ‫באופן‬ ‫נתאר‬ ‫כעת‬
.‫מילה‬ ‫דוחה‬ ‫או‬ ‫מקבל‬ ‫הוא‬ ‫שבו‬ ‫האופן‬ ‫ואת‬
.M = hQ, Σ, Γ, δ, q0, ⊥, Fi ‫מחסנית‬ ‫לאוטומט‬ ‫כאן‬ ‫נתייחס‬
(‫רגעי‬ ‫תיאור‬ :‫)או‬ M ‫של‬ ‫קונפיגורציה‬ 31.1
C = (q, v, α) ‫שלשה‬ ‫היא‬ M ‫של‬ C (‫רגעי‬ ‫)תאירו‬ ‫קונפיגורציה‬
:‫כאשר‬
‫הקונפיגורציות‬ ‫כל‬ ‫את‬ c (M)‫ב־‬ ‫נסמן‬ .α ∈ Γ∗
‫ו־‬ v ∈ Σ∗
,q ∈ Q
:M ‫של‬
c (M) =
n
(q, v, α) q ∈ Q, v ∈ Σ∗
, α ∈ Γ∗
o
:‫כזאת‬ ‫היא‬ C = (q, v, α) ‫של‬ ‫המשמעות‬
.‫כרגע‬ ‫נמצא‬ ‫האוטומט‬ ‫שבו‬ ‫המצב‬ ‫־‬ q •
‫ממילת‬ ‫קרא‬ ‫לא‬ ‫עוד‬ ‫שהאוטומט‬ ‫)מה‬ ‫הקלט‬ ‫מילת‬ ‫יתרת‬ ‫־‬ v •
.(‫הקלט‬
‫בראש‬ ‫מופיעה‬ α‫ב־‬ ‫הראשונה‬ ‫)האות‬ ‫המחסנית‬ ‫תוכן‬ ‫־‬ α •
.(‫המחסנית‬
‫האינפורמציה‬ ‫כל‬ ‫את‬ ‫מכילה‬ ‫האוטומט‬ ‫של‬ ‫הנוכיחת‬ ‫הקונפיגורציה‬
.‫החישוב‬ ‫להמשך‬ ‫הדרושה‬
‫אותו‬ ‫להמשיך‬ ‫ואז‬ ‫החישוב‬ ‫את‬ ‫להפסיק‬ ‫ניתן‬ ,‫כלומר‬
‫פחות‬ ‫היה‬ ‫שכבר‬ ‫)מה‬ ‫זמן‬ ‫פרק‬ ‫כל‬ ‫אחרי‬ ‫הנוכחית‬ ‫מהקונפיגורציה‬
.(‫סימנייה‬ ‫כמו‬ ‫הוא‬ ‫הנוכחית‬ ‫והקונפיגורציה‬ ,‫אותנו‬ ‫מעניין‬
Cw
0 ‫התחלתית‬ ‫קונפיגורציה‬ 31.1.1
‫על‬ M ‫של‬ ‫ההתחלתית‬ ‫הקונפיגורציה‬ w ∈ Σ∗
‫קלט‬ ‫מילת‬ ‫בהינתן‬
:‫עי‬ ‫מוגדרת‬ ‫והיא‬ Cw
0 ‫ב־‬ ‫תסומן‬ w
Cw
0 = (q0, w, ⊥)
|=M ‫היחס‬ 31.1.2
:‫הבא‬ ‫באופן‬ c (M) ‫הקבוצה‬ ‫על‬ |=M ‫יחס‬ ‫נגדיר‬
,c (M)‫ב־‬ C2 = (q2, v2, α2)‫ו־‬ C1 = (q1, v1α1) :‫עבור‬
‫ורושמים‬ ,C1‫ל־‬ ‫עוקבת‬ ‫קונפיגורציה‬ (‫)היא‬ C2 ‫ש־‬ ‫אומרים‬
‫עי‬ ,‫)כלומר‬ ‫אחד‬ ‫בצעד‬ ‫יכול‬ M ‫האוטומט‬ ‫אם‬ C1 |=M C2
‫לעבור‬ (‫אחד‬ ε ‫מעבר‬ ‫ביצוע‬ ‫עי‬ ‫או‬ ‫הקלט‬ ‫ממילת‬ ‫אחת‬ ‫אות‬ ‫קריאת‬
‫לפי‬ ‫דטרמיניסטי‬ ‫בהכרח‬ ‫לא‬ ,‫חוקי‬ ‫)באופן‬ C2‫ל־‬ C1 ‫מקונפיגורציה‬
.(‫המעברים‬ ‫פונקציית‬
⇐⇒ C1 |=M C2 :‫פורמלי‬ ‫באופן‬
.X ∈ Γ ,α, β ∈ Γ∗
‫כאשר‬ α2 = αβ‫ו־‬ α1 = Xβ .1
.σ ∈ Σε ‫כאשר‬ v1 = σv2 .2
‫ל־‬ ‫למעלה‬ ‫שהוסבר‬ ‫כמו‬ ‫)כי‬ (q2, α) ∈ δ (q1, σ, X) .3
‫של‬ ‫בקבוצה‬ ‫מדובר‬ ,‫כלומר‬ ,‫אפשרויות‬ ‫כמה‬ ‫יש‬ δ (q1, σ, X)
.(‫סדורים‬ ‫זוגות‬
‫של‬ ‫חישוב‬ ‫צעד‬ ‫הוא‬ ‫עוקבת‬ ‫לקונפיגורציה‬ ‫מקונפיגורציה‬ ‫מעבר‬
‫עוקבת‬ ‫קונפיגורציה‬ ‫היא‬ C2 ‫שאם‬ ‫לב‬ ‫נשים‬ .‫מחסנית‬ ‫אוטומט‬
‫עשינו‬ ‫)אם‬ |v2| = |v1| ‫או‬ |v2| = |v1| − 1 :‫בהכרח‬ ‫אז‬ C1‫ל־‬
.(ε ‫מעבר‬
28
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
‫עניינים‬ ‫תוכן‬
1 ‫בסיסיות‬ ‫הגדרות‬ I
1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫ריקה‬ ‫מילה‬ ‫ועל‬ ‫ריקה‬ ‫שפה‬ ‫על‬ ‫הערות‬ ‫כמה‬ 0.1
2 ‫סופיים‬ ‫אוטומטיים‬ II
2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫)אסד‬ ‫דטרמיניסטי‬ ‫סופי‬ ‫אוטומט‬ 1
2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פורמלית‬ ‫הגדרה‬ 1.1
2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫נוספות‬ ‫הגדרות‬ 1.2
2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫גרפי‬ ‫סימון‬ 1.3
2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫דוחה‬ ‫בור‬ 1.4
2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . δ ‫הרחבת‬ 1.5
3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולרית‬ ‫שפה‬ 1.6
3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫מסוים‬ ‫אב‬ ‫)מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.7
3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מכפלה‬ ‫אוטומט‬ 1.8
3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מכפלה‬ ‫באוטומט‬ δ ‫הרחבת‬ 1.8.1
3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מכפלה‬ ‫לאטומט‬ ‫דוגמא‬ 1.8.2
4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫נוספים‬ ‫משפטים‬ ‫כמה‬ 1.9
5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫)אסלד‬ ‫דטרמינסטי‬ ‫לא‬ ‫סופי‬ ‫אוטומט‬ 2
5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NFA ‫מסוג‬ ‫אוטומטים‬ ‫לכמה‬ ‫דוגמאות‬ 2.1
6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A ‫לא־דטמינסטי‬ ‫סופי‬ ‫אוטומט‬ ‫של‬ ‫השפה‬ 2.2
6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫חזקה‬ ‫אוטומט‬ 2.3
7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ε (‫)מעברי‬ ‫מסעי‬ ‫עם‬ ‫סופי‬ ‫אוטומט‬ 3
7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הגדרה‬ 3.1
7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫דוגמא‬ 3.1.1
7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פורמלית‬ ‫הגדרה‬ 3.2
7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫למילים‬ δ ‫הרחבת‬ 3.3
7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q ‫של‬ ε ‫סגור‬ 3.3.1
7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . εNFA ‫של‬ ‫השפה‬ ‫הגדרת‬ 3.4
8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . εNFA‫מ־‬ NFA ‫בניית‬ 3.5
8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ε ‫מעברי‬ ‫הסרת‬ ‫תהליך‬ ‫תיאור‬ 3.5.1
8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫שפות‬ ‫על‬ ‫רגולריות‬ ‫פעולות‬ 3.6
8 ‫רגולריים‬ ‫ביטויים‬ III
8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הגדרה‬ 4
9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פעולות‬ ‫סדר‬ 4.1
9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kleene ‫משפט‬ 5
9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫לאוטומט‬ ‫רגולרי‬ ‫ביטוי‬ ‫הפיכת‬ 5.1
9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולרי‬ ‫לביטוי‬ DFA ‫אוטומט‬ ‫הפיכת‬ 5.2
9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNFA‫ל־‬ DFA ‫אוטומט‬ ‫הפיכת‬ 5.2.1
10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNFA‫ל־‬ ‫פורמלית‬ ‫הגדרה‬ 5.2.2
10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNFA‫ב־‬ ‫קשתות‬ ‫סימון‬ 5.2.3
10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNFA ‫של‬ ‫צימצום‬ 5.2.4
11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולרי‬ ‫לביטוי‬ DFA ‫הפיכת‬ ‫אלגוריתם‬ 5.2.5
11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫קצר‬ ‫סיכום‬ 6
11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הניפוח‬ ‫למת‬ 7
11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫הלמה‬ ‫)ניסוח‬ ‫הגדרה‬ 7.1
11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הניפוח‬ ‫בלמת‬ ‫לשימוש‬ ‫קצרה‬ ‫דוגמא‬ 7.2
11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫נוספת‬ ‫למה‬ 8
29
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
12 ‫רגולריות‬ ‫לשפות‬ ‫הכרעה‬ ‫בעיות‬ IV
12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫שהוצגו‬ ‫הבעיות‬ ‫פתרונות‬ 9
12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫השייכות‬ ‫בעיית‬ ‫פתרון‬ 9.1
12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הריקנות‬ ‫בעיית‬ ‫פתרון‬ 9.2
12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הסופיות‬ ‫בעיית‬ ‫פתרון‬ 9.3
12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הנל‬ ‫לאלגוריתמים‬ ‫יעלים‬ ‫פתרונות‬ 9.4
12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R (q)‫ו־‬ R0 (q) 9.4.1
12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (R0 (q) ‫של‬ ‫)או‬ R (q) ‫של‬ ‫יעיל‬ ‫חישוב‬ 9.4.2
12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הריקנות‬ ‫לבעיית‬ ‫יעיל‬ ‫פתרון‬ 9.4.3
12 . . . . . . . . . . . . . . . . . . . . . . . . . . DFA‫ב־‬ ‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫הסרת‬ 9.4.4
13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הסופיות‬ ‫לבעיית‬ ‫יעיל‬ ‫פתרון‬ 9.4.5
13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫השקילות‬ ‫בעיית‬ ‫פתרון‬ 9.4.6
13 ‫רגולריות‬ ‫לשפות‬ ‫אלגברי‬ ‫אפיון‬ V
13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫שקילות‬ ‫יחסי‬ ‫עידון‬ 10
13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ 11
13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (rank) ‫שקילות‬ ‫מחלקות‬ ‫של‬ (‫)האינדקס‬ ‫הדרגה‬ 11.1
14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מימין‬ ‫אינווריאנטי‬ ‫יחס‬ 12
14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫שפה‬ ‫משמר‬ ‫יחס‬ 13
14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫באוטומט‬ q ∈ Q ‫מצב‬ ‫של‬ ‫שפה‬ 14
14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RL
‫ו־‬ RA
‫חשובים‬ ‫שקילות‬ ‫יחסי‬ ‫שני‬ 15
14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RA
‫־‬ ‫ראשון‬ ‫שקילות‬ ‫יחס‬ 15.1
15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RL
‫־‬ ‫שני‬ ‫שקילות‬ ‫יחס‬ 15.2
15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫דוגמאות‬ ‫מספר‬ 15.3
15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫סופיות‬ ‫לשפות‬ ‫דוגמאות‬ 15.3.1
15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫אינסופיות‬ ‫לשפות‬ ‫דוגמאות‬ 15.3.2
16 . . . . . . . . . . . . . . . . . . . . . . . ‫שקילות‬ ‫מחלקות‬ ‫אינסוף‬ ‫אם‬ ‫אינסופית‬ ‫לשפה‬ ‫דוגמא‬ 15.3.3
16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מייהיל־נרוד‬ ‫משפט‬ 16
16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מינימלי‬ DFA ‫אוטומט‬ ‫בניית‬ 16.1
17 . . . . . . . . . . . . . . . . . . . . . . ‫רגולרית‬ ‫אינה‬ ‫ששפה‬ ‫מייהיל־נרוד‬ ‫משפט‬ ‫באמצעות‬ ‫להוכחה‬ ‫דוגמא‬ 16.2
17 DFA ‫אוטומט‬ ‫של‬ ‫מינימיזציה‬ VI
17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫להפרדה‬ ‫ניתנים‬ ‫מצבים‬ 17
18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A ‫של‬ ‫הצימצום‬ ‫אוטומט‬ ‫בניית‬ 18
18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DFA‫ב־‬ ‫שקולים‬ ‫מצבים‬ ‫לזוהי‬ ‫אלגוריתם‬ 18.1
18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫באלגוריתם‬ ‫לשימוש‬ ‫דוגמא‬ 18.1.1
19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫אוטומטים‬ ‫בין‬ ‫איזומורפיזם‬ 19
19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫המינימלי‬ ‫האוטומט‬ ‫יחידות‬ ‫משפט‬ 19.1
20 ‫הקשר‬ ‫חסרות‬ ‫ושפות‬ ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ VII
20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (CFG) ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ 20
20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הגדרות‬ 20.1
20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫גזירה‬ ‫הגדרות‬ 20.1.1
21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרות‬ ‫שפות‬ ‫של‬ ‫סגירות‬ ‫תכונות‬ 20.2
21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L1 ∪ L2 20.2.1
21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L1L2 20.2.2
21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L∗
1 20.2.3
21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫דוגמאות‬ 20.3
22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫גזירה‬ ‫עצי‬ 21
22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פורמליות‬ ‫הגדרות‬ 21.1
22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫העץ‬ ‫חזית‬ 21.1.1
22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫משמעיות‬ ‫ורב‬ ‫משמעיות‬ ‫חד‬ 21.1.2
22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫קנוניות‬ ‫גזירות‬ 21.1.3
23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולריים‬ ‫דקדוקים‬ 22
30
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫דר‬
23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫ימני‬ ‫לינארי‬ ‫דקדוק‬ 22.1
23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫הניפוח‬ ‫למת‬ 23
23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ ‫פישוט‬ 24
23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ 24.1
23 . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫טרמינלית‬ ‫מילה‬ ‫גוזרים‬ ‫שאינם‬ ‫סימנים‬ ‫להסרת‬ ‫אלגוריתם‬ 24.2
24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫סימנים‬ ‫להסרת‬ ‫אלגוריתם‬ 24.3
24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ε ‫כללי‬ ‫להסרת‬ ‫אלגוריתם‬ 24.4
24 . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫לאיפוס‬ ‫הניתנים‬ ‫משתנים‬ ‫למציאת‬ ‫אלגוריתם‬ 24.4.1
25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫יחידה‬ ‫כללי‬ ‫להסרת‬ ‫אלגוריתם‬ 24.5
25 . . . . . . . . . . . . . . . . . . . . . . . . . . u (G) ‫היחידה‬ ‫זוגות‬ ‫קבוצת‬ ‫לחישוב‬ ‫אלגוריתם‬ 24.5.1
25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫האלגוריתמים‬ ‫לביצוע‬ ‫הנכון‬ ‫הסדר‬ 24.6
25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (CNF) ‫חומסקי‬ ‫של‬ ‫הנורמלית‬ ‫הצורה‬ 25
25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫חה‬ ‫מדקדוק‬ CNF ‫בניית‬ 25.1
26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרות‬ ‫שפות‬ ‫של‬ ‫סגירות‬ ‫לתכונות‬ ‫בקשר‬ ‫משפטים‬ 26
26 . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרת‬ ‫ושפה‬ ‫רגולרית‬ ‫שפה‬ ‫חיתוך‬ ‫על‬ ‫חשוב‬ ‫משפט‬ 26.1
26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולריות‬ ‫בבעיות‬ ‫הכרעה‬ ‫בעיות‬ ‫פתרון‬ 27
26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הריקנות‬ ‫בעיית‬ 27.1
26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הסופיות‬ ‫בעיית‬ 27.2
27 (PDA) ‫מחסנית‬ ‫אוטומט‬ VIII
27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פורמלית‬ ‫הגדרה‬ 28
27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫סימונים‬ 29
27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫ופירושים‬ ‫הערות‬ 30
27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫המחסנית‬ ‫מבנה‬ 30.1
27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . δ ‫המעברים‬ ‫פונקצית‬ 30.2
28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M ‫של‬ ‫השפה‬ 30.3
28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מחסנית‬ ‫אוטומט‬ ‫של‬ ‫החישוב‬ 31
28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫רגעי‬ ‫תיאור‬ :‫)או‬ M ‫של‬ ‫קונפיגורציה‬ 31.1
28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cw
0 ‫התחלתית‬ ‫קונפיגורציה‬ 31.1.1
28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |=M ‫היחס‬ 31.1.2
31

סיכום של הקורס אוטומטים ושפות פורמליות

  • 1.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫ד"ר‬ ‫פורמליות‬‫ושפות‬ ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫ד"ר‬ ‫תשע"ו‬ ‫־‬ '‫א‬ ‫סמסטר‬ I ‫חלק‬ ‫בסיסיות‬ ‫הגדרות‬ ‫יקראו‬ ‫שאבריה‬ Σ ‫סופית‬ ‫קבוצה‬ ‫היא‬ ‫שפה‬ ‫של‬ ‫־‬ (‫)א"ב‬ ‫אלפבית‬ .(‫תווים‬ ‫)או‬ ‫אותיות‬ ‫אותיות‬ ‫של‬ ‫סופית‬ ‫סדרה‬ ‫זוהי‬ ‫־‬ Σ ‫א"ב‬ ‫מעל‬ (‫מחרוזת‬ ‫)או‬ ‫מילה‬ .‫הסדרה‬ ‫אברי‬ ‫בין‬ ‫פסיקים‬ ‫ללא‬ ‫כשירשור‬ ‫שרשומה‬ ,Σ‫מ־‬ :(w‫ב־‬ ‫מסומנת‬ ‫)אשר‬ ‫מילה‬ ai ∈ Σ, w = a1a2...an :‫למשל‬ ‫הינן‬ Σ ‫מעל‬ ‫מילים‬ ‫אזי‬ Σ = {0, 1} ‫אם‬ :‫למשל‬ 0, 0111, 01010, ... .w‫ב־‬ ‫האותיות‬ ‫מספר‬ ‫בתור‬ ‫ומוגדר‬ |w| ‫מסומן‬ w ‫מילה‬ ‫של‬ ‫האורך‬ ‫את‬ #a (w)‫ב־‬ ‫מסמנים‬ Σ ‫מעל‬ w ‫ומילה‬ a ∈ Σ ‫עבור‬ .w‫ב־‬ a ‫של‬ ‫המופעים‬ ‫מספר‬ :‫מתקיים‬ ‫אזי‬ X a∈Σ #a (w) = |w| .‫הריקה‬ ‫המילה‬ ‫ונקראת‬ ε‫ב־‬ ‫מסומנת‬ ‫אפס‬ ‫באורך‬ ‫מילה‬ .Σ ‫א"ב‬ ‫מעל‬ ‫המילים‬ ‫כל‬ ‫אוסף‬ ‫את‬ Σ∗ ‫ב־‬ ‫מסמנים‬ :‫לזכור‬ ‫חשוב‬ .‫בת־מנייה‬ ‫אבל‬ ,‫אינסופית‬ ‫־‬ Σ∗ ,‫סופית‬ ‫־‬ Σ :Σ∗ ‫מ־‬ ‫מילים‬ ‫שתי‬ ‫עבור‬ :‫מסומן‬ w, v ‫של‬ ‫השירשור‬ ‫אזי‬ v = b1 · · · bn‫ו־‬ w = a1 · · · an :‫ע"י‬ ‫ומוגדר‬ wv wv = a1 · · · anb1 · · · bn .Σ∗ ‫מ־‬ ‫מילים‬ ‫אוסף‬ ‫הינה‬ Σ ‫א"ב‬ ‫מעל‬ ‫שפה‬ .L ⊆ Σ∗ ⇐⇒ Σ ‫על‬ ‫שפה‬ L .2ℵ0 ‫מעוצמה‬ ‫היא‬ ,‫מנייה‬ ‫בת‬ ‫אינה‬ Σ ‫מעל‬ ‫השפות‬ ‫שמשפחת‬ ‫לב‬ ‫נשים‬ ‫מוגדרות‬ Σ ‫מעל‬ ‫שפות‬ ‫בין‬ ‫לכן‬ ,Σ∗ ‫של‬ ‫תת־קבוצות‬ ‫הן‬ ‫שפות‬ :‫ומשלים‬ (L1 ∩ L2) ‫חיתוך‬ ,(L1 ∪ L2) ‫איחוד‬ ‫פעולות‬ .LC = Σ∗ − L ‫שירשור‬ :‫פעולות‬ ‫שתי‬ ‫עוד‬ Σ ‫מעל‬ ‫שפות‬ ‫בין‬ ‫מוגדרות‬ ,‫בנוסף‬ :‫ואיטרציה‬ ‫שירשור‬ :‫ע"י‬ ‫מוגדר‬ L1L2 ‫השירשור‬ L1, L2 ⊆ Σ∗ ‫עבור‬ L1L2 = uv u ∈ L1, v ∈ L2 ‫איטרציה‬ :‫באינדוקציה‬ Ln ‫נגדיר‬ ‫שלם‬ n ≥ 0 ‫ועבור‬ L ⊆ Σ∗ ‫שפה‬ ‫עבור‬ L0 = {ε} Ln+1 = Ln · L .L ‫מעל‬ ‫מילים‬ n ‫של‬ ‫השירשורים‬ ‫כל‬ ‫שפת‬ = Ln :‫עי‬ ‫ומוגדרת‬ L∗ ‫מסומנת‬ ‫־‬ (L ‫של‬ * :‫)או‬ L ‫של‬ ‫האיטרציה‬ L∗ = [ n≥0 Ln = L0 ∪ L1 ∪ L2 · · · ∪ Ln ‫מתוך‬ ‫מילים‬ ‫של‬ ‫כלשהו‬ ‫מספר‬ ‫של‬ ‫השירשורים‬ ‫כל‬ ‫קבוצת‬ = L∗ .(L‫מ־‬ ‫מילים‬ ‫אפס‬ ‫של‬ ‫שירשור‬ ‫־‬ ε ‫)כולל‬ L ‫ריקה‬ ‫מילה‬ ‫ועל‬ ‫ריקה‬ ‫שפה‬ ‫על‬ ‫הערות‬ ‫כמה‬ 0.1 ,L = ∅ ‫אם‬ ,‫כלומר‬ .‫הריקה‬ ‫לשפה‬ ‫הריקה‬ ‫המילה‬ ‫בין‬ ‫הבדל‬ ‫ישנו‬ :‫אזי‬ L ‫בהכרח‬ ‫אזי‬ ε ∈ L ‫־‬ ‫אם‬ ‫אבל‬ .‫הוגדר‬ ‫זה‬ ‫אם‬ ‫אלא‬ ,ε / ∈ L :‫כלומר‬ ,‫ריקה‬ ‫אינה‬ .L 6= ∅ ‫ואחת‬ L1 · L2 ‫לשרשר‬ ‫צריכים‬ ‫אנחנו‬ ‫אם‬ ,‫ההגדרה‬ ‫עפ‬ ,‫כמו־כן‬ ,‫הריקה‬ ‫הקבוצה‬ ‫יהיה‬ ‫שלהן‬ ‫השירשור‬ ‫גם‬ ‫אזי‬ ,‫ריקה‬ ‫שפה‬ ‫היא‬ ‫מהן‬ :‫כלומר‬ .L1 · L2 = ∅ .‫הללו‬ ‫לדברים‬ ♥ ‫לשים‬ ‫כדאי‬ 1
  • 2.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ II‫חלק‬ ‫סופיים‬ ‫אוטומטיים‬ (‫)אסד‬ ‫דטרמיניסטי‬ ‫סופי‬ ‫אוטומט‬ 1 ‫פורמלית‬ ‫הגדרה‬ 1.1 ‫המכיל‬ ‫)דבר‬ ‫חמישה‬ ‫זהו‬ ‫־‬ (DFA) ‫דטרמיניסטי‬ ‫סופי‬ ‫אוטומט‬ :(‫דברים‬ ‫חמישה‬ A = hQ, Σ, δ, q0, F i :‫כאשר‬ .‫מצבים‬ ‫נקראים‬ ‫שאבריה‬ ‫סופית‬ ‫קבוצה‬ ‫היא‬ ‫־‬ Q • .‫האוטומט‬ ‫של‬ ‫האב‬ ‫זה‬ .‫אב‬ ‫־‬ Σ • .δ : Q × Σ → Q ‫־‬ ‫פונקציה‬ ‫היא‬ ‫־‬ δ • :‫שמסומן‬ ‫מצב‬ ‫מתאימה‬ δ ,a ∈ Σ ‫ולכל‬ q ∈ Q ‫לכל‬ ,‫כלומר‬ ‫נמצא‬ ‫הוא‬ ‫אם‬ ‫האוטומט‬ ‫יכנס‬ ‫שאליו‬ ‫המצב‬ ‫זה‬ .δ (q, a) .a ‫האות‬ ‫את‬ ‫וקורא‬ q ‫במצב‬ .‫ההתחלתי‬ ‫המצב‬ ‫שנקרא‬ Q‫ב־‬ ‫מיוחד‬ ‫איבר‬ ‫הוא‬ ‫־‬ q0 • ‫שאבריה‬ [‫מצבים‬ ‫]קבוצת‬ Q‫ל־‬ ‫חלקית‬ ‫קבוצה‬ ‫היא‬ ‫־‬ F • .‫המקבלים‬ ‫המצבים‬ ‫או‬ ,‫הסופיים‬ ‫המצבים‬ ‫נקראים‬ ‫נוספות‬ ‫הגדרות‬ 1.2 .DFA ,A = hQ, Σ, δ, q0, Fi ‫יהי‬ :Σ∗ ‫ב־‬ w = a1 · · · an ‫מילה‬ ‫עבור‬ ‫כך‬ q0, q1, q2, ..., qn :‫מצבים‬ ‫סדרת‬ ‫היא‬ ‫־‬ w ‫על‬ A ‫של‬ ‫הריצה‬ :‫מתקיים‬ 1 ≤ i ≤ n ‫ולכל‬ ,A ‫של‬ ‫ההתחלתי‬ ‫המצב‬ ‫הוא‬ q0‫ש־‬ qi = δ (qi−1, ai) ‫במצב‬ ‫מסתיימת‬ w ‫על‬ A ‫של‬ ‫הריצה‬ ‫אם‬ w ‫המילה‬ ‫את‬ ‫מקבל‬ A .(qn ∈ F ,‫)זא‬ (‫סופי‬ ‫)או‬ ‫מקבל‬ .w ‫את‬ ‫דוחה‬ A ,‫אחרת‬ :‫עי‬ ‫ומוגדרת‬ L (A) ‫מסומנת‬ ,A ‫של‬ ‫השפה‬ L (A) = n w ∈ Σ∗ o .w ‫את‬ ‫מקבל‬ A ‫־‬ ‫גרפי‬ ‫סימון‬ 1.3 ‫מסומנים‬ ‫קשתות‬ ‫עם‬ ‫מכוונים‬ ‫גרפים‬ ‫באמצעות‬ DFA ‫נציג‬ .‫האוטומט‬ ‫מ־אב‬ ‫באותיות‬ :‫מצבים‬ ‫יסמנו‬ ‫צמתים‬ .‫התחלתי‬ ‫מצב‬ ‫־‬ // .(‫מקבל‬ ‫מצב‬ :‫)או‬ ‫סופי‬ ‫מצב‬ ‫־‬ .δ (q, a) = p :‫מסמן‬ q a // p :‫קשתות‬ q a,b // p :‫כך‬ ‫מקצרים‬ q a ** b 44 p .Σ ‫לכתוב‬ ‫פשוט‬ ‫ניתן‬ ,‫קשת‬ ‫על‬ ‫האב‬ ‫את‬ ‫לכתוב‬ ‫במקום‬ ,‫כמו־כן‬ ‫מקבל‬ A (DFA) ‫דטרמיניסטי‬ ‫סופי‬ ‫שאוטומט‬ ‫אומרים‬ :‫הערה‬ .L (A) = L ‫אם‬ (L ‫את‬ ‫מזהה‬ A :‫)או‬ L ‫השפה‬ ‫את‬ ‫דוחה‬ ‫בור‬ 1.4 ‫שממנו‬ ‫מצב‬ ‫כלומר‬ ,‫דוחה‬ ‫בור‬ ‫הוא‬ ‫להכיר‬ ‫שכדאי‬ ‫הדברים‬ ‫אחד‬ .‫אחר‬ ‫מצב‬ ‫לשום‬ ‫לצאת‬ ‫ניתן‬ ‫לא‬ ‫מכילות‬ ‫אשר‬ ‫המילים‬ ‫על‬ ‫היא‬ L‫ו־‬ Σ = {0, 1} ‫אצלנו‬ ‫אם‬ ,‫למשל‬ :‫הינו‬ ‫זאת‬ ‫שפה‬ ‫שמקבל‬ ‫האוטומט‬ ‫אזי‬ ,‫בלבד‬ 1 // q0 1 0 // q1 0,1 ‫למצב‬ ‫נכנסים‬ ‫אנחנו‬ 0 ‫האות‬ ‫את‬ ‫שקיבלנו‬ ‫שברגע‬ ‫לכך‬ ‫לב‬ ‫נשים‬ .‫דוחה‬ ‫לבור‬ ‫הגענו‬ ,‫כלומר‬ ‫־‬ ‫ממנו‬ ‫לצאת‬ ‫דרך‬ ‫שום‬ ‫לנו‬ ‫שאין‬ ‫השפה‬ ‫את‬ ‫ניקח‬ ‫אם‬ ,‫למשל‬ ,‫ההפך‬ ‫כמובן‬ ‫להיות‬ ‫יכול‬ ‫זה‬ ‫כן‬ ‫כמו‬ ‫אזי‬ ,‫לפחות‬ ‫אחד‬ 0 ‫יש‬ ‫מילה‬ ‫בכל‬ ‫שבה‬ ‫שפה‬ ,‫כלומר‬ ,‫המשלימה‬ :‫הינו‬ ‫השפה‬ ‫את‬ ‫שיקבל‬ ‫האוטומט‬ // q0 1 0 // q1 0,1 ‫המילה‬ ‫את‬ ‫מקבל‬ ‫האוטומט‬ ‫־‬ ‫אחד‬ 0 ‫היה‬ ‫שבקלט‬ ‫ברגע‬ ,‫כאן‬ ‫וגם‬ .(‫מקבל‬ ‫בור‬ ‫הפעם‬ ‫)שנקרא‬ ‫כזה‬ ‫לבור‬ ‫והגענו‬ δ ‫הרחבת‬ 1.5 ‫עבור‬ ‫תקפה‬ ‫שתהיה‬ δ ‫את‬ ‫להרחב‬ ‫ניתן‬ ,‫להסברים‬ ‫להיכנס‬ ‫מבלי‬ :‫כלומר‬ ,‫אות‬ ‫עבור‬ ‫רק‬ ‫ולא‬ ‫מילה‬ δ : Q × Σ∗ → Q :‫הבא‬ ‫באופן‬ ‫תתנהג‬ ‫הפונקציה‬ ‫ולכן‬ ( δ (q, ε) = q, ∀q ∈ Q δ (q, wa) = δ (δ (q, w) , a) , ∀q ∈ Q, ∀w ∈ Σ∗ , ∀a ∈ Σ 2
  • 3.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ :‫ש‬‫לכך‬ ‫לב‬ ‫נשים‬ L (A) = ( w ∈ Σ∗ δ (q0, w) ∈ F ) :‫במילים‬ ‫או‬ δ (q0, w) ∈ F ⇐⇒ w ‫המילה‬ ‫את‬ ‫מקבל‬ A :δ ‫הפונקציה‬ ‫של‬ ‫נוספת‬ ‫תכונה‬ δ (q, u · v) = δ (δ (q, u) , v), ∀q ∈ Q, ∀u, v ∈ Σ∗ ‫רגולרית‬ ‫שפה‬ 1.6 DFA ‫קיים‬ ‫אם‬ ‫רגולרית‬ ‫שפה‬ ‫נקראת‬ L ⊆ Σ∗ ‫שפה‬ 1.1 ‫הגדרה‬ .L (A) = L‫ש־‬ ‫כך‬ A ‫או‬ L = an bn n ∈ N ,Σ = {a, b} :‫רגולרית‬ ‫לא‬ ‫לשפה‬ ‫דוגמא‬ . L = w #a (w) = #b (w) :‫אחר‬ ‫בכתיב‬ ‫שפה‬ ‫אותה‬ (‫מסוים‬ ‫אב‬ ‫)מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.7 .‫אב‬ Σ ‫יהי‬ :‫רגולרית‬ ‫שפה‬ ‫היא‬ ‫־‬ Σ∗ .1 // q0 Σ .Σ∗ ‫את‬ ‫מזהה‬ ‫הנל‬ ‫האוטומט‬ :‫רגולרית‬ ‫שפה‬ ‫היא‬ ∅ .2 // q0 Σ .F = ∅ ‫זה‬ ‫באוטומט‬ .∅ ‫את‬ ‫מזהה‬ ‫זה‬ ‫אוטומט‬ ‫מכפלה‬ ‫אוטומט‬ 1.8 :‫יהיו‬ A1 = hQ1, Σ, δ1, q1, F1i A2 = hQ2, Σ, δ2, q2, F2i ‫זהו‬ A2‫ו־‬ A1 ‫של‬ ‫מכפלה‬ ‫אוטומט‬ ,Σ ‫אב‬ ‫אותו‬ ‫מעל‬ ‫־ים‬DFA ‫שני‬ :A (DFA) ‫אוטומט‬ A = hQ, Σ, δ, q0, Fi :‫שמקיים‬ Q = Q1 × Q2 = n q × r q ∈ Q1, r ∈ Q2 o • δ : Q × Σ → Q • δ ((q, r) , a) = (δ1 (q, a) , δ2 (r, a)) • q = (q1, q2) • .(‫למשנהו‬ ‫אחד‬ ‫מכפלה‬ ‫מאוטומט‬ ‫משתנה‬ ‫)היא‬ F ⊆ Q • .‫יקבל‬ ‫שהאוטומט‬ ‫שרוצים‬ ‫השפה‬ ‫לפי‬ ‫אותה‬ ‫קובע‬ ‫המשתמש‬ ‫של‬ ‫שילוב‬ ‫בעצם‬ ‫זה‬ ‫מכפלה‬ ‫אוטומט‬ ,‫אופן‬ ‫שבאיזשהו‬ ‫לומר‬ ‫ניתן‬ ‫היא‬ ‫המקבלים‬ ‫המצבים‬ ‫וקבוצת‬ ‫במקביל‬ ‫שרצים‬ ‫אוטומטים‬ ‫שני‬ .‫רוצים‬ ‫שאנחנו‬ ‫למה‬ ‫בהתאמה‬ (...‫בהמשך‬ ‫)דוגמא‬ ‫מכפלה‬ ‫באוטומט‬ δ ‫הרחבת‬ 1.8.1 δ : Q × Σ∗ → Q ( δ ((q, r) , ε) = (q, r) , ∀ (q, r) ∈ Q δ ((q, r) , wa) = δ (δ ((q, r) , w) , a) , ∀ (q, r) ∈ Q, w ∈ Σ∗ , a ∈ Σ ‫מכפלה‬ ‫לאטומט‬ ‫דוגמא‬ 1.8.2 :‫הבאים‬ ‫האוטומטים‬ ‫בשני‬ ‫נסתכל‬ :A1 // q0 b a ** q1 a jj b :A2 // r0 a b // r1 a b ~~ r2 a b `` 3
  • 4.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ :‫ש‬‫לכך‬ ‫לב‬ ‫נשים‬ L (A1) = n w ∈ {a, b} ∗ 2 | #a (w) o L (A2) = n w ∈ {a, b} ∗ 3 | #b (w) o ‫־ים‬b‫ה־‬ ‫מספר‬ ‫־‬ L (A2) ,‫זוגי‬ ‫־ים‬a‫ה־‬ ‫מספר‬ ‫־‬ L (A1) :‫כלומר‬ .(m ‫את‬ ‫מחלק‬ n‫ש־‬ ‫פירושו‬ n | m :‫)תזכורת‬ 3‫ב־‬ ‫מתחלק‬ ‫שישה‬ ‫היותר‬ ‫לכל‬ ‫)ישנם‬ :‫כך‬ ‫נראה‬ A2‫ו־‬ A1 ‫של‬ ‫אוטומט‬ ‫כל‬ :(|Q1| · |Q2| = 6‫ו־‬ ‫היות‬ ,‫מצבים‬ // (q0, r0) a -- b (q1, r0) a mm b (q0, r1) a -- b (q1, r1) a mm b (q0, r2) a -- b == (q1, r2) a mm b aa ?‫מכפלה‬ ‫האוטומט‬ ‫את‬ ‫בונים‬ ‫כיצד‬ ‫ואז‬ ,‫אוטומט‬ ‫כל‬ ‫של‬ ‫ההתחלתי‬ ‫המצב‬ ,(q0, r0)‫מ־‬ ‫מתחילים‬ ‫לנו‬ ‫יש‬ ‫נניח‬ ‫אם‬ ,‫למשל‬ ‫מובילה‬ ‫היא‬ ‫לאן‬ ‫באב‬ ‫אות‬ ‫כל‬ ‫בודקים‬ ‫נותנים‬ ‫כאשר‬ ‫אותנו‬ ‫מעביר‬ q0 ‫לאן‬ ‫בודקים‬ ‫אזי‬ a ‫האות‬ ‫את‬ ‫באב‬ q0 → q3 :‫לדוגמא‬ ,a ‫לו‬ ‫שנותנים‬ ‫אותנו‬ ‫מעביר‬ r0 ‫ולאן‬ a ‫לו‬ :‫הוא‬ ‫שנקבל‬ ‫מה‬ ‫ואז‬ r0 → r2‫ו־‬ // (q0, r0) a // (q3, r2) (q3, r2)‫ל־‬ ‫ללכת‬ ‫יכולים‬ ‫אנחנו‬ x ∈ Σ ‫לכל‬ ‫ככה‬ ‫שעשינו‬ ‫ואחרי‬ ‫כל‬ ‫עבור‬ ‫בדיוק‬ ‫הדבר‬ ‫אותו‬ ‫את‬ ‫ולעשות‬ [‫ישנו‬ ‫אם‬ ‫אחר‬ ‫מצב‬ ‫]או‬ .x ∈ Σ ‫או‬ ‫המצבים‬ ‫לכל‬ ‫מגיעים‬ ‫שאנחנו‬ ‫עד‬ ‫הלאה‬ ‫ממשיכים‬ ‫אנחנו‬ ‫וכך‬ ‫לכל‬ ‫שנגיע‬ ‫להיות‬ ‫חייב‬ ‫)לא‬ ‫להמשיך‬ ‫לאן‬ ‫שאין‬ ‫רואים‬ ‫שאנחנו‬ .(‫המצבים‬ |Q1| · |Q2| ‫עבור‬ ‫ובודקים‬ (q0, r0)‫מ־‬ ‫מתחילים‬ ‫אנחנו‬ ,‫יותר‬ ‫פורמלית‬ ‫בצורה‬ ‫לאיזשהו‬ ‫ממשכים‬ ‫מכן‬ ‫ולאחר‬ δ ((q0, r0) , x) :‫מהי‬ x ∈ Σ ‫כל‬ .‫אליו‬ ‫אותנו‬ ‫הוביל‬ (q0, r0)‫ש־‬ ‫אחר‬ ‫מצב‬ ‫היא‬ ‫־‬ F ‫־‬ ‫מכפלה‬ ‫באוטומט‬ ‫המקבלים‬ ‫המצבים‬ ‫קבוצת‬ ‫לגבי‬ ‫לכך‬ ‫בהתאם‬ .‫לצורך‬ ‫בהתאם‬ ‫אותה‬ ‫להגדיר‬ ‫וניתן‬ !‫קבועה‬ ‫אינה‬ .‫כמובן‬ ‫המכפלה‬ ‫אוטומט‬ ‫שפה‬ ‫תוגדר‬ ‫גם‬ :‫הנל‬ ‫המכפה‬ ‫אוטומט‬ ‫לגבי‬ ,‫נבחר‬ ‫אם‬ ,‫למשל‬ F = (F1 × Q1)∪(Q1 × F2) = n (q, r) ∈ Q q ∈ F1 ∨ r ∈ F2 o :‫היא‬ (‫המכפלה‬ ‫)אוטומט‬ ‫האוטומט‬ ‫ששפת‬ ‫נקבל‬ ‫אזי‬ L (A) = L (A1) ∪ L (A2) . ‫נוספים‬ ‫משפטים‬ ‫כמה‬ 1.9 ‫לאיחוד‬ ‫סגורה‬ Σ ‫אב‬ ‫מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.2 ‫משפט‬ .‫וחיתוך‬ L1 ∪ L2 ‫גם‬ ‫כך‬ ‫אז‬ ‫רוגלריות‬ ‫שפות‬ ‫הן‬ L1, L2 ⊆ Σ∗ ‫אם‬ ,‫כלומר‬ .L1 ∩ L2‫ו־‬ ‫לאיחוד‬ ‫סגורה‬ Σ ‫אב‬ ‫מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.3 ‫מסקנה‬ .1 ‫שפות‬ ‫של‬ ‫סופי‬ ‫מספר‬ ‫של‬ ‫ולחיתוך‬ ‫רגולרית‬ ‫שפה‬ ‫היא‬ L = {w} ‫השפה‬ w ∈ Σ∗ ‫לכל‬ 1.4 ‫הערה‬ .(‫אחת‬ ‫מילה‬ ‫בת‬ ‫)שפה‬ ‫כי‬ ,‫נכון‬ ‫)זה‬ ‫רגולרית‬ ‫שפה‬ ‫היא‬ Σ ‫מעל‬ ‫סופית‬ ‫שפה‬ ‫כל‬ 1.5 ‫מסקנה‬ ‫מכילה‬ ‫מהן‬ ‫אחת‬ ‫שכל‬ ‫שפות‬ ‫של‬ ‫סופי‬ ‫איחוד‬ ‫היא‬ ‫סופית‬ ‫שפה‬ ‫כי‬ .(‫רגולרית‬ ‫היא‬ ‫ולכן‬ ,‫אחת‬ ‫מילה‬ ‫להפרש‬ ‫סגורה‬ Σ ‫אב‬ ‫מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.6 ‫טענה‬ .‫סימטרי‬ ‫ולהפרש‬ :‫גם‬ ‫כך‬ ‫אז‬ ‫רגולריות‬ ‫שפות‬ ‫הן‬ L1, L2 ⊆ Σ∗ ‫אם‬ ,‫כלומר‬ . 3 2 . L1L2 = L1 − L2‫ו־‬ L1∆L2 = L1 ⊕ L2 ‫ניתן‬ ‫אזי‬ ,‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫באוטומט‬ ‫קיימים‬ ‫אם‬ ‫שקשורים‬ (‫)החצים‬ ‫המעברים‬ ‫כל‬ ‫עם‬ ‫יחד‬ ,‫אלה‬ ‫מצבים‬ ‫להסיר‬ ‫של‬ ‫שפה‬ ‫אותה‬ ‫את‬ ‫שמזהה‬ DFA ‫עדיין‬ ‫הוא‬ ‫שישאר‬ ‫מה‬ .‫אליהם‬ .‫המקורי‬ ‫האוטומט‬ .‫נכון‬ ‫אינו‬ ‫זה‬ ‫אזי‬ ‫רגולריות‬ ‫שפות‬ ‫של‬ ‫אינסופי‬ ‫מספר‬ ‫של‬ ‫במקרה‬1 L1 − L2 = L1L2 = n w w ∈ L1 ∧ w / ∈ L2 o 2 ‫חייב‬ ‫האיבר‬ ‫כלומר‬ ‫־‬ L1∆L2 = L1 ⊕ L2 = w w ∈ L1 ⊕ w ∈ L2 3 !‫בלבד‬ ‫אחת‬ ‫בקבוצה‬ ‫להיות‬ 4
  • 5.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ (‫)אסלד‬‫דטרמינסטי‬ ‫לא‬ ‫סופי‬ ‫אוטומט‬ 2 :‫חמישיה‬ ‫הוא‬ ‫אסלד‬ A = hQ, Σ, δ, q0, Fi :‫כאן‬ ‫אבל‬ DFA ‫בהגדרת‬ ‫כמו‬ ‫בדיוק‬ ‫הם‬ Q, Σ, q0, F :‫שבה‬ δ : Q × Σ → 2Q .Q ‫של‬ ‫החזקה‬ ‫קבוצת‬ ‫־‬ 2Q = P (Q) = n P P ⊆ Q o ‫כאשר‬ ‫קבוצה‬ ‫מותאמת‬ ‫מצב‬ ‫לכל‬ ‫דטרמיניסטי‬ ‫סופי‬ ‫לאוטומט‬ ‫בניגוד‬ ,‫כאן‬ .‫מצבים‬ ‫של‬ ‫קבוצה‬ ‫היא‬ δ (q, a) ,‫כלומר‬ ,δ (q, a) ⊆ Q :a ∈ Σ‫ו־‬ q ∈ Q ‫עבור‬ .‫מצבים‬ ‫של‬ ‫לעבור‬ ‫יכול‬ ‫הוא‬ a ‫את‬ ‫וקורא‬ q‫ב־‬ ‫נמצא‬ ‫נמצא‬ ‫כשהאוטומט‬ ‫המשך‬ ‫את‬ ‫לנחש‬ ‫יכול‬ ‫]האוטומט‬ δ (q, a)‫ב־‬ ‫מהמצבים‬ ‫אחד‬ ‫לכל‬ .[‫החישוב‬ q‫ב־‬ ‫נמצא‬ ‫האוטומט‬ ‫שאם‬ ‫אומר‬ ‫זה‬ ‫־‬ δ (q, a) = ∅ ‫ש־‬ ‫ייתכן‬ .‫בחישוב‬ ‫להמשיך‬ ‫יכול‬ ‫ולא‬ ‫נתקע‬ ‫הוא‬ a ‫וקורא‬ ‫המילים‬ ‫כל‬ ‫היא‬ ‫השפה‬ ‫כאשר‬ Σ = {0, 1} ‫עבור‬ ‫אסלד‬ ‫הנה‬ ,‫למשל‬ :1 ‫היא‬ ‫אחרונה‬ ‫לפני‬ ‫האחת‬ ‫האות‬ ‫שבהן‬ // q0 0,1 1 // q1 0,1 // q2 ‫קשתות‬ ‫מספר‬ ‫לצאת‬ ‫יכולים‬ Q ‫ממצב‬ ‫האוטומט‬ ‫את‬ ‫המייצג‬ ‫בגרף‬ .‫קלט‬ ‫אות‬ ‫באותה‬ ‫שמסומנות‬ (‫קשתות‬ 0 ‫גם‬ ‫)ייתכנו‬ :‫למשל‬ r q a 88 a p :‫הציור‬ ‫משמעות‬ ‫לא‬ ‫באופן‬ ‫יכול‬ ‫הוא‬ a ‫את‬ ‫וקורא‬ q ‫במצב‬ ‫נמצא‬ ‫כשהאוטומט‬ .r‫ל־‬ ‫או‬p‫ל־‬ ‫לעבור‬ ‫דטרמיניסטי‬ ‫אם‬ ,‫כזה‬ ‫במקרה‬ .a‫ב־‬ ‫שמסומנת‬ ‫קשת‬ ‫יוצאת‬ ‫לא‬ q‫שמ־‬ ‫ייתכן‬ ‫ולא‬ (q‫)ב־‬ ‫נתקע‬ ‫האוטומט‬ ‫־‬ a ‫את‬ ‫וקורא‬ q‫ב־‬ ‫נמצא‬ ‫האוטומט‬ .‫שלו‬ ‫בריצה‬ ‫להמשיך‬ ‫יכול‬ ‫מצב‬ ‫הוא‬ q ‫אם‬ ‫אפילו‬ ‫המילה‬ ‫את‬ ‫דוחה‬ ‫האוטומט‬ ‫זה‬ ‫במקרה‬ .(‫)מקבל‬ ‫סופי‬ w = a1a2 · · · an ‫מילה‬ ‫על‬ A ‫של‬ (‫חישוב‬ ‫מסלול‬ :‫)או‬ ‫ריצה‬ ‫סדרת‬ ‫)אורך‬ q0, q1, ..., qn :‫מצבים‬ ‫סדרה‬ ‫היא‬ (ai ∈ Σ) Σ∗ ‫מ־‬ :‫שמקיימת‬ (|w| + 1 :‫המצבים‬ .qi ∈ δ (qi−1, ai) :1 ≤ i ≤ n ‫ולכל‬ ‫ההתחלתי‬ ‫המצב‬ ‫הוא‬ q0 ‫מספר‬ .w ‫קלט‬ ‫מילת‬ ‫על‬ ‫אפשריות‬ ‫ריצות‬ ‫מספר‬ ‫יש‬ A‫של־‬ ‫כמובן‬ .0 ‫להיות‬ ‫יכול‬ ‫זה‬ ‫לפני‬ ‫להיתקע‬ ‫יכול‬ ‫האוטומט‬ ‫מסויימת‬ ‫קלט‬ ‫מילת‬ ‫על‬ ,‫]כלומר‬ .[‫המילה‬ ‫קריאת‬ ‫את‬ ‫שסיים‬ (|w| = n ‫)כאשר‬ w ‫הקלט‬ ‫מילת‬ ‫את‬ ‫מקבל‬ A ‫שאסלד‬ ‫אומרים‬ ,‫)כלומר‬ qn ∈ F‫ש־‬ ‫כך‬ w ‫על‬ A ‫של‬ q0, ..., qn ‫ריצה‬ ‫קיימת‬ ‫אם‬ .(‫סופי‬ ‫במצב‬ ‫שמסתיימת‬ ‫פעמים‬ n ‫של‬ ‫ריצה‬ :‫להיות‬ ‫ומוגדרת‬L (A) ‫מסומנת‬ A ‫אסלד‬ ‫של‬ ‫השפה‬ L (A) = ( w ∈ Σ∗ : ) .w ‫את‬ ‫מקבל‬ A ‫־‬ : ‫על‬ ‫שריצה‬ ‫ייתכן‬ :‫הבא‬ ‫הכלל‬ ‫את‬ ‫לזכור‬ ‫גם‬ ‫כדאי‬ ‫שהאוטומט‬ ‫או‬ ‫מקבל‬ ‫לא‬ ‫במצב‬ ‫תסתיים‬ ‫בשפה‬ ‫מילה‬ ‫שאינה‬ ‫מילה‬ ‫האוטומט‬ ‫על‬ ‫שנריץ‬ ‫ייתכן‬ ‫לא‬ ‫אבל‬ ,‫יתקע‬ ‫)אלא‬ ‫מקבל‬ ‫במצב‬ ,‫כלשהי‬ ‫בריצה‬ ,‫תסתיים‬ ‫והיא‬ ‫בשפה‬ .(‫המילה‬ ‫את‬ ‫דוחה‬ ‫שהאוטומט‬ ‫נחשב‬ ‫זה‬ ‫ואז‬ ‫נתקע‬ ‫האוטומט‬ ‫אם‬ ‫בעצם‬ ‫הוא‬ DFA .NFA ‫של‬ ‫פרטי‬ ‫מקרה‬ ‫הוא‬ DFA 2.1 ‫הערה‬ .q ∈ Q ‫ולכל‬ a ∈ Σ ‫לכל‬ |δ (q, a)| = 1 ‫שבו‬ NFA NFA ‫מסוג‬ ‫אוטומטים‬ ‫לכמה‬ ‫דוגמאות‬ 2.1 :‫ראשונה‬ ‫דוגמא‬ Σ = {0, 1} ‫האב‬ ‫מעל‬ ‫יהיו‬ ‫בדוגמאות‬ ‫האוטומטים‬ ‫כל‬ L = {00, 01, 010} ‫כאשר‬ L∗ :‫הבאה‬ ‫השפה‬ ‫את‬ ‫שמזהה‬ ‫אוטומט‬ q2 1 ** q0 0 ** 0 jj 0 q1 0 jj q2 1 jj :‫שניה‬ ‫דוגמא‬ ‫השלישית‬ ‫האותה‬ ‫שבהן‬ ‫בשפה‬ ‫המילים‬ ‫כל‬ ‫את‬ ‫שמזהה‬ ‫אוטומט‬ :1 ‫היא‬ ‫מהסוף‬ // q0 0,1 1 // q1 0,1 // q2 0,1 // q3 :‫נגדיר‬ a ∈ Σ ‫ועבור‬ P ⊆ Q ‫מצבים‬ ‫קבוצת‬ ‫עבור‬ δ (P, a) = [ q∈P δ (q, a) .(a ∈ Σ ‫ולכל‬ q ∈ Q ‫לכל‬ ‫מצבים‬ ‫של‬ ‫קבוצה‬ ‫היא‬ δ (q, a) :‫)תזכורת‬ ‫אם‬ ‫להגיע‬ ‫האוטומט‬ ‫יכול‬ ‫שאליהם‬ ‫המצבים‬ ‫קבוצת‬ = δ (P, a) .a ‫וקורא‬ P‫ב־‬ ‫המצבים‬ ‫באחד‬ ‫נמצא‬ ‫הוא‬ :‫השנייה‬ ‫בדוגמא‬ ,‫למשל‬ δ ({q0, q1} , 0) = {q0, q2} δ ({q0, q1} , 1) = {q0, q1, q2} δ ({q3} , 0) = ∅ δ ({q1, q3} , 1) = {q2} 5
  • 6.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫ולכן‬,δ : Q × Σ∗ → 2Q :‫מילה‬ ‫עבור‬ ‫גם‬ δ ‫את‬ ‫להרחיב‬ ‫ניתן‬ :w ∈ Σ∗ ‫ולכל‬ q ∈ Q ‫לכל‬ ‫מוגדרת‬ δ (q, w) ‫אליהם‬ ‫להגיע‬ ‫יכול‬ ‫שהאוטומט‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ = δ (q, w) .w ‫את‬ ‫לקרוא‬ ‫ומנסה‬ q ‫במצב‬ ‫מתחיל‬ ‫הוא‬ ‫אם‬ w ‫על‬a ‫של‬ ‫הריצות‬ ‫כל‬ ‫כאשר‬ ‫קורה‬ ‫זה‬ .δ (q, w) = ∅‫ש־‬ ‫ייתכן‬ .‫נתקעות‬ ‫ו־‬ P ⊆ Q ‫עבור‬ δ (P, w) ‫להגדיר‬ ‫ניתן‬ ,‫אופן‬ ‫באותו‬ ,‫)כמו־כן‬ .(w ∈ Σ∗ A ‫לא־דטמינסטי‬ ‫סופי‬ ‫אוטומט‬ ‫של‬ ‫השפה‬ 2.2 :‫כך‬ ‫מוגדרת‬ A ‫אסלד‬ ‫של‬ ‫השאפה‬ L (A) = ( w ∈ Σ∗ δ (q0, w) ∩ F 6= ∅ ) :w ∈ Σ∗ ‫עבור‬ :‫אחרות‬ ‫במילים‬ .δ (q0, w) ∩ F 6= ∅ ⇐⇒ w ‫את‬ ‫מקבלת‬ A ‫חזקה‬ ‫אוטומט‬ 2.3 .L (A) = L (B)‫ש־‬ ‫כך‬ B ‫אסד‬ ‫קיים‬ ,A ‫אסלד‬ ‫לכל‬ 2.2 ‫טענה‬ ‫אוטומט‬ ‫בונים‬ ‫איך‬ ‫אסביר‬ ‫רק‬ ‫אלא‬ ,‫הטענה‬ ‫את‬ ‫אוכיח‬ ‫לא‬ ‫)אני‬ (‫דוגמא‬ ‫באמצעות‬ ‫כזה‬ ‫בעצם‬ ‫הוא‬ (‫בונים‬ ‫שנאחנו‬ ‫)האסד‬ B‫ב־‬ ‫מצב‬ ‫שכל‬ ‫לזכור‬ ‫חשוב‬ ‫רק‬ ,(‫בהמשך‬ ‫)יובהר‬ A‫מ־‬ ‫מצבים‬ ‫קבוצת‬ .{q0} ‫הוא‬ B ‫של‬ ‫ההתחלתי‬ ‫והמצב‬ :(Σ = {0, 1} ‫)מעל‬ ‫הבא‬ ‫האוטומט‬ ‫לנו‬ ‫ונתון‬ ‫נניח‬ // q0 0,1 1 // q1 0,1 // q2 ‫)וזה‬ ‫הבא‬ ‫הדבר‬ ‫את‬ ‫נעשה‬ ‫שלנו‬ DFA‫ה־‬ ‫את‬ ‫לבנות‬ ‫בשביל‬ ,‫אזי‬ (NFA ‫אוטומט‬ ‫לכל‬ ‫נכון‬ ‫נשלח‬ ‫אם‬ ‫נגיע‬ ‫אנחנו‬ ‫מצבים‬ ‫קבוצת‬ ‫לאיזו‬ ‫ונראה‬ {q0}‫מ־‬ ‫נתחיל‬ :4 Σ‫ב־‬ ‫מהאותיות‬ ‫אחת‬ ‫כל‬ ‫לו‬ ‫מתחילה‬ ‫כך‬ ,‫ולכן‬ δ ({q0} , 0) = {q0} , δ ({q0} , 1) = {q0, q1} :‫הבניה‬ // {q0} 0 1 // {q0, q1} ,‫עבורו‬ ‫לבדוק‬ ‫מה‬ ‫לנו‬ ‫אין‬ ‫אזי‬ q0 ‫אל‬ ‫אותנו‬ ‫מוביל‬ 0‫ו־‬ ‫היות‬ ,‫כעת‬ ‫קבוצת‬ ‫לאן‬ ‫כעת‬ ‫נבדוק‬ ‫ולכן‬ {q0, q1}‫ל־‬ ‫אותנו‬ ‫הוביל‬ 1 ‫אבל‬ :‫אותנו‬ ‫מובילה‬ ‫הזאת‬ ‫המצבים‬ δ ({q0, q1} , 0) = {q0, q2} , δ ({q0, q1} , 1) = {q0, q1, q2} .δ (P, a) = S q∈P δ (q, a) :‫זה‬ ‫את‬ ‫לחשב‬ ‫איך‬ ‫הוסבר‬ ‫מקודם‬4 :‫עכשיו‬ ‫יראה‬ ‫הגרף‬ ‫ולכן‬ // {q0} 0 1 // {q0, q1} 0 ,, 1 %% {q0, q2} {q0, q1, q2} ‫ולבדוק‬ ‫בחרנו‬ ‫לא‬ ‫שעוד‬ ‫המצבים‬ ‫אחד‬ ‫את‬ ‫לבחור‬ ‫נצטרך‬ ‫כעת‬ ‫מצב‬ ‫אותו‬ ‫עבור‬ ‫אותנו‬ ‫שולחת‬ ‫באב‬ ‫אות‬ ‫כל‬ ‫מצבים‬ ‫קבוצת‬ ‫לאיזו‬ :(‫מצבים‬ ‫קבוצת‬ ‫בעצם‬ ‫)שהוא‬ ‫היות‬ ,‫כעת‬ ,δ ({q0, q2} , 0) = {q0} , δ ({q0, q2} , 1) = {q0, q1} :‫חצים‬ ‫אליהם‬ ‫נמתח‬ ‫פשוט‬ ,‫בגרף‬ ‫הנל‬ ‫המצבים‬ ‫את‬ ‫לנו‬ ‫יש‬ ‫וכבר‬ // {q0} 0 1 // {q0, q1} 0 ,, 1 %% {q0, q2} 1 ll 0 ww {q0, q1, q2} ‫קבוצת‬ ‫לאיזה‬ ‫ונבדוק‬ ‫בדקנו‬ ‫לא‬ ‫שאותו‬ ‫אחד‬ ‫מצב‬ ‫עוד‬ ‫נותר‬ ,‫כעת‬ :‫אותנו‬ ‫מביאה‬ ‫מהאב‬ ‫אות‬ ‫כל‬ ‫מצבים‬ δ ({q0, q1, q2} , 0) = {q0, q2} , δ ({q0, q1, q2} , 1) = :‫הוא‬ ‫הגרף‬ ‫ולכן‬ {q0, q1, q2} // {q0} 0 1 // {q0, q1} 0 ,, 1 %% {q0, q2} 1 ll 0 ww {q0, q1, q2} 1 XX 0 OO ‫אחרים‬ ‫שמצבים‬ ‫כלומר‬ ,‫לבדוק‬ ‫מצבים‬ ‫יותר‬ ‫שאין‬ ‫לראות‬ ‫נוכל‬ ‫כעת‬ ‫נוכל‬ ‫שלא‬ ‫)כאלה‬ ‫להשגה‬ ‫ניתנים‬ ‫אינם‬ ‫בגרף‬ ‫כאן‬ ‫נמצאים‬ ‫שלא‬ ‫אותם‬ ‫לבדוק‬ ‫סיבה‬ ‫לנו‬ ‫אין‬ ‫ולכן‬ (q0‫מ־‬ ‫לעולם‬ ‫אליהם‬ ‫להגיע‬ .‫בגרף‬ ‫אותם‬ ‫ולרשום‬ ‫המקבל‬ ‫המצב‬ ‫המקורי‬ ‫ובגרף‬ ‫היות‬ :‫המקבלים‬ ‫למצבים‬ ‫הסבר‬ ‫הוא‬ ‫מאיבריו‬ ‫שאחד‬ ‫החדש‬ ‫בגרף‬ ‫קודקוד‬ ‫כל‬ ‫אזי‬ q2 ‫הוא‬ ‫היחיד‬ ‫לפי‬ ‫הולכים‬ ‫שאנחנו‬ ‫זה‬ ‫עושים‬ ‫שאנחנו‬ ‫מה‬ .‫מקבל‬ ‫מצב‬ ‫יהיה‬ q2 ‫הוא‬ q ‫אזי‬ q ∩ F 6= ∅ ‫אם‬ ,‫החדש‬ ‫בגרף‬ q ‫מצב‬ ‫לכל‬ :‫הבא‬ ‫הכלל‬ ...‫מקבל‬ ‫מצב‬ ,‫כעת‬ .A NFA ‫של‬ ‫החזקה‬ ‫אוטומט‬ ‫נקרא‬ ‫שבנינו‬ B DFA‫ה־‬ NFA‫ל־‬ ‫פרטי‬ ‫מקרה‬ ‫הוא‬ DFA‫ש־‬ ‫ומהעובדה‬ ‫האחרונה‬ ‫מהטענה‬ :‫משפט‬ ‫מתקבל‬ :‫אזי‬ ‫שפה‬ L ⊆ Σ∗ ‫תהי‬ 2.3 ‫משפט‬ .L (A) = L‫ש־‬ ‫כך‬ A NFA ‫קיים‬ ⇐⇒ ‫רגולרית‬ L 6
  • 7.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ε(‫)מעברי‬ ‫מסעי‬ ‫עם‬ ‫סופי‬ ‫אוטומט‬ 3 ‫הגדרה‬ 3.1 ‫יש‬ NFA ‫להיותו‬ ‫שבנוסף‬ NFA ‫זהו‬ ε ‫מסעי‬ ‫עם‬ ‫סופי‬ ‫אוטומט‬ :(‫הריקה‬ ‫)המילה‬ ε‫ב־‬ ‫המסומנות‬ ‫קשתות‬ ‫אותו‬ ‫המייצג‬ ‫בגרף‬ p ε // q ‫הוא‬ q‫ב־‬ ‫נמצא‬ ‫האוטומט‬ ‫שאם‬ :‫היא‬ ‫כזה‬ (‫)מעבר‬ ‫קשת‬ ‫משמעות‬ .‫מהקלט‬ ‫אות‬ (‫לצרוך‬ :‫)או‬ ‫לקרוא‬ ‫מבלי‬ p ‫למצב‬ ‫לקפוץ‬ ‫יכול‬ :‫למשל‬ r p q ε @@ ε ^^ a s :‫הן‬ ‫האפשרויות‬ ‫אזי‬ a ‫וקורא‬ q‫ב־‬ ‫נמצא‬ ‫האוטומט‬ ‫אם‬ ‫את‬ ‫ולקרוא‬ r ‫או‬ p‫ל־‬ ‫ללכת‬ :‫או‬ ,‫הבאה‬ ‫לאות‬ ‫ולעבור‬ s‫ל־‬ ‫ללכת‬ ‫את‬ ‫לקרוא‬ ‫ואז‬ ε ‫של‬ ‫הקפיצה‬ ‫את‬ ‫לעשות‬ ‫קודם‬ ,‫)כלומר‬ ‫משם‬ a .(!‫ההפך‬ ‫ולא‬ ,‫האות‬ .NFA‫ל־‬ ‫זהים‬ ‫־‬ ‫זה‬ ‫במודל‬ ‫הפרטים‬ ‫שאר‬ ‫כל‬ ‫דוגמא‬ 3.1.1 // q0 a ε // q1 b ε // q2 c a∗ b∗ c∗ = n al bm cn l, m, n ≥ 0 o :‫היא‬ ‫זה‬ ‫אוטומט‬ ‫שפת‬ ‫פורמלית‬ ‫הגדרה‬ 3.2 .5 Σε = Σ ∪ {ε} :‫נסמן‬ ‫אזי‬ ‫אב‬ ‫הוא‬ Σ ‫אם‬ :‫סימון‬ ‫זוהי‬ εNFA ‫בסימון‬ ,ε ‫מסעי‬ ‫עם‬ ‫דטרמיניסטי‬ ‫אל‬ ‫אוטומט‬ :‫חמישיה‬ A = hQ, Σ, δ, q0, Fi !‫הריקה‬ ‫המילה‬ ‫אלא‬ ,‫אות‬ ‫אינה‬ ‫זאת‬ ‫־‬ {ε}5 :‫פה‬ ‫אבל‬ ,NFA ‫בהגדרת‬ ‫כמו‬ ‫בדיוק‬ ‫הם‬ Q, Σ, q0, F :‫כאשר‬ δ : Q × Σε → 2Q δ (q, ε) ⊆ .q ∈ Q ‫עבור‬ δ (q, ε) ‫גם‬ ‫מוגדרת‬ ‫שכאן‬ ‫הוא‬ ‫)ההבדל‬ .q‫מ־‬ ‫שיוצאים‬ ε ‫מעברי‬ ‫אין‬ ‫כלומר‬ ,δ (q, ε) = ∅‫ש־‬ ‫ייתכן‬ .Q . q ε // p :‫כזה‬ ‫מעבר‬ 6 ‫בגרף‬ ‫יש‬ ⇐⇒ p ∈ δ (q, ε) ‫למילים‬ δ ‫הרחבת‬ 3.3 q ‫של‬ ε ‫סגור‬ 3.3.1 :‫הבא‬ ‫באופן‬ ε ‫של‬ ‫סגור‬ ‫נגדיר‬ q ∈ Q ‫מצב‬ ‫עבור‬ ‫להגיע‬ ‫יכול‬ ‫שהאוטומט‬ A‫ב־‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ = CLε (q) .ε ‫במעברי‬ ‫שימוש‬ ‫עי‬ ,‫כלומר‬ ,‫קלט‬ ‫שום‬ ‫קריאת‬ ‫ללא‬ ‫אליהם‬ ,CLε (q0) = {q0, q1, q2} :‫שלמעלה‬ ‫בדוגמא‬ ,‫למשל‬ .CLε (q2) = {q2}‫ו־‬ CLε (q1) = {q1, q2} :‫מסמנים‬ P ⊆ Q ‫מצבים‬ ‫קבוצת‬ ‫עבור‬ CLε (P) = [ q∈P CLε (q) ‫ללא‬ q ∈ P ‫מאיזשהו‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ ‫המצבים‬ ‫כל‬ ‫־‬ ‫כלומר‬ .‫קלט‬ ‫אות‬ ‫קריאת‬ :δ ‫הרחבת‬ δ̂ : Q × Σ∗ → 2Q :‫כך‬ ‫מוגדרת‬ ( δ̂ (q, ε) = CLε (q) δ̂ (q, va) = S r∈δ̂(q,v) CLε (δ (r, a)) ∀v ∈ Σ∗ , a ∈ Σ .w ∈ Σ∗ ‫ולכל‬ q ∈ Q ‫לכל‬ ‫מוגדרת‬ δ̂ (q, w) ‫כך‬ ‫מתחילים‬ ‫אם‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ = δ̂ (q, w) .(‫)מילה‬ w ‫את‬ ‫וקוראים‬ q ‫במצב‬ a ∈ Σ ‫)עבור‬ !δ̂ (q, a) 6= δ (q, a) :‫הבא‬ ‫לדבר‬ ‫לב‬ ‫לשים‬ ‫חשוב‬ .(q ∈ Q‫ו־‬ ‫במעברי‬ ‫להשתמש‬ ‫לנו‬ ‫מותר‬ ,‫ההגדרה‬ ‫עפ‬ ,δ̂ (q, a)‫ב־‬ :‫הסבר‬ ‫לעומת‬ .‫למעבר‬ ‫מהאפשרויות‬ ‫כחלק‬ ε ‫את‬ ‫מכללים‬ ‫אנחנו‬ ‫כי‬ ε ‫אנחנו‬ ‫כי‬ ,ε ‫במעברי‬ ‫להשתמש‬ ‫יכולים‬ ‫לא‬ ‫אנחנו‬ δ (q, a)‫ב־‬ ,‫זאת‬ ‫קריאת‬ ‫עי‬ q‫מ־‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ ‫המצבים‬ ‫לכל‬ ‫כאן‬ ‫מתייחסים‬ .‫כאן‬ ‫מוגדרת‬ δ (q, ε) ‫גם‬ ‫כזכור‬ .(δ̂‫ב־‬ ‫כמו‬ ‫המילה‬ ‫)ולא‬ a ‫האות‬ εNFA ‫של‬ ‫השפה‬ ‫הגדרת‬ 3.4 :‫עי‬ ‫מוגדרת‬ A εNFA ‫של‬ ‫השפה‬ L (A) = n w ∈ Σ∗ δ̂ (q0, w) ∩ F 6= ∅ o .A ‫האוטומט‬ ‫את‬ ‫המייצג‬6 7
  • 8.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ εNFA‫מ־‬NFA ‫בניית‬ 3.5 :ε ‫מסעי‬ ‫ללא‬ NFA ‫נבנה‬ A = hQ, Σ, δ, q0, Fi εNFA ‫בהינתן‬ :‫הבא‬ ‫באופן‬ B = hQ, Σ, δ0 , q0, F0 i δ0 : Q × Σ → 2Q δ0 (q, a) = δ̂ (q, a) ‫)המילה‬ ε ‫את‬ ‫מקבל‬ A ‫האוטומט‬ ‫האם‬ ‫לב‬ ‫נשים‬ ,F0 ‫לגבי‬ ,‫כעת‬ :(‫הריקה‬ F0 = ( F ∪ {q0} CLε ∩ F 6= ∅ ( ⇐⇒ ε ∈ L (A)) F CLε ∩ F = ∅ ( ⇐⇒ ε / ∈ L (A)) ‫המילה‬ ‫)עבור‬ δ0 (q, w) = δ̂ (q, w) :ε 6= w ∈ Σ∗ ‫מילה‬ ‫עבור‬ (q0 ‫עבור‬ ‫רק‬ ‫נכון‬ ‫זה‬ ε ‫הריקה‬ ‫גם‬ ‫תקף‬ ‫זה‬ ‫)וכלל‬ w ∈ L (B) ⇐⇒ w ∈ L (A) ‫ש־‬ ‫נובע‬ ‫מכאן‬ .(‫הריקה‬ ‫המילה‬ ‫עבור‬ .L (A) = L (B) :‫מתקיים‬ ,‫כלומר‬ ‫מצב‬ ‫ואותו‬ ‫מהצבים‬ ‫אותם‬ ‫את‬ ‫יש‬ B‫ו־‬ A‫שב־‬ ‫לב‬ ‫נשים‬ 3.1 ‫הערה‬ .‫התחלתי‬ ‫עם‬ ,B (ε ‫מסעי‬ ‫)ללא‬ NFA ‫קיים‬ A εNFA ‫לכל‬ 3.2 ‫משפט‬ .L (A) = L (B) :‫שמקיים‬ ‫התחלתי‬ ‫מצב‬ ‫ואותו‬ ‫מצבים‬ ‫אותם‬ A εNFA ‫קיים‬ ⇐⇒ ‫רגולרית‬ ‫היא‬ L ⊆ Σ∗ ‫שפה‬ 3.3 ‫משפט‬ .L ‫את‬ ‫שמזהה‬ ‫בבניה‬ ‫שמתואר‬ ,‫שקול‬ (ε ‫מסעי‬ ‫)ללא‬ NFA‫ל־‬ εNFA‫מ־‬ ‫המעבר‬ .ε (‫)מסעי‬ ‫מעברי‬ ‫הסרת‬ :‫נקרא‬ ‫הנל‬ A‫ב־‬ ‫מצב‬ ‫כל‬ ‫עבור‬ :‫הבא‬ ‫באופן‬ ‫המעבר‬ ‫את‬ ‫לעשות‬ ‫גם‬ ‫ניתן‬ ‫על‬ ‫נתסכל‬ (εNFA) ε ‫מעברי‬ ‫הסרת‬ ‫תהליך‬ ‫תיאור‬ 3.5.1 .A = hQ, Σ, δ, q0, Fi εNFA ‫נתון‬ :‫הבא‬ ‫באופן‬ ε (‫)מסעי‬ ‫מעברי‬ ‫את‬ ‫נסיר‬ p‫ל־‬ q‫מ־‬ ‫מסלול‬ ‫יש‬ A ‫בגרף‬ ‫אם‬ ,(q, p) ‫מצבים‬ ‫זוג‬ ‫כל‬ ‫עבור‬ .1 ‫באות‬ ‫המסומנת‬ ‫אחת‬ ‫מלבד‬ ,ε‫ב־‬ ‫מסומנות‬ ‫בו‬ ‫הקשתות‬ ‫שכל‬ ‫וקשת‬ ‫)במידה‬ ‫לגרף‬ q a // p ‫קשת‬ ‫מוסיפים‬ ‫אזי‬ ,a .(‫קיימת‬ ‫אינה‬ ‫כזאת‬ .ε‫ב־‬ ‫שמסומנות‬ ‫הקשתות‬ ‫כל‬ ‫את‬ ‫מוחקים‬ .2 ‫אזי‬ F ∩ CLε (q0) 6= ∅ ‫אם‬ :F ‫את‬ ‫משנים‬ ‫הצורך‬ ‫במידת‬ .3 .F‫ל־‬ q0 ‫את‬ ‫מוסיפים‬ ‫האלגוריתם‬ ‫באמצעות‬ ε ‫מעברי‬ ‫את‬ ‫נסיר‬ ‫שאם‬ ‫להיות‬ ‫יכול‬ :‫הערה‬ ‫זה‬ ‫אבל‬ .‫ההגדרה‬ ‫עפ‬ ‫נסיר‬ ‫אם‬ ‫שנעשה‬ ‫מזה‬ ‫שונה‬ NFA ‫לנו‬ ‫יצא‬ ‫תמיד‬ ‫מקרה‬ ‫בכל‬ ‫לכן‬ .‫דבר‬ ‫אותו‬ ‫הוא‬ ‫שלנו‬ DFA‫ה־‬ ‫עוד‬ ‫כל‬ ‫בסדר‬ ‫אפשר‬ ‫אז‬ ‫התאמה‬ ‫שאין‬ ‫ברגע‬ ‫כי‬ ‫־‬ ‫חלקית‬ ‫)אפילו‬ ‫לבדוק‬ ‫כדאי‬ .(‫להפסיק‬ ‫שפות‬ ‫על‬ ‫רגולריות‬ ‫פעולות‬ 3.6 .‫ואיטרציה‬ ‫שירשור‬ ,(‫חיתוך‬ ‫)ולא‬ ‫איחוד‬ :‫שפות‬ ‫על‬ ‫רגולריות‬ ‫פעולות‬ 7 .‫רגולריות‬ ‫לפעולות‬ ‫סגורה‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ :‫משפט‬ .‫נפרד‬ ‫בדף‬ ‫הוכחה‬7 III ‫חלק‬ ‫רגולריים‬ ‫ביטויים‬ ‫הגדרה‬ 4 .‫אב‬ Σ ‫יהי‬ :‫הבא‬ ‫באופן‬ ‫ברקורסיה‬ ‫מוגדר‬ (Σ ‫)מעל‬ ‫רגולרי‬ ‫ביטוי‬ .‫רגולרי‬ ‫ביטוי‬ ‫הוא‬ a :a ∈ Σ ‫לכל‬ .1 .‫רגולרי‬ ‫ביטוי‬ ‫היא‬ (‫הריקה‬ ‫)המילה‬ ε .2 .‫רגולרי‬ ‫ביטורי‬ ‫היא‬ ∅ .3 ‫הוא‬ r + s, rs, r∗ :‫גם‬ ‫אזי‬ ‫רגולריים‬ ‫ביטויים‬ ‫הם‬ s‫ו־‬ r ‫אם‬ .4 .‫רגולרי‬ ‫ביטוי‬ (1 + 0) ∗ 1 ,[Σ∗ ‫ל־‬ ‫שקול‬ ,Σ‫ב־‬ ‫המילים‬ ‫]כל‬ (0 + 1) ∗ ,0 :‫למשל‬ ....,[1‫ב־‬ ‫שמסתיימות‬ ‫המילים‬ ‫]כל‬ ‫רקורסיבית‬ ‫ומוגדרת‬ L (r) ‫מסומנת‬ r ‫רגולרי‬ ‫ביטוי‬ ‫של‬ ‫השפה‬ :‫הבא‬ ‫באופן‬ .a ∈ Σ ‫לכל‬ L (a) = {a} .1 .L (ε) = {ε} .2 .L (∅) = ∅ .3 :‫אזי‬ ,‫רגולריים‬ ‫ביטויים‬ ‫הם‬ r, s ‫אם‬ .4 .L (r + s) = L (r) ∪ L (s) (‫)א‬ .L (rs) = L (r) · L (s) (‫)ב‬ L (r∗ ) = L (r) ∗ (‫)ג‬ ‫ביטויים‬ ‫נקראים‬ L (r) = L (s) ‫שמקיימים‬ r, s ‫רגולריים‬ ‫ביטויים‬ .‫שקולים‬ ‫רגולריים‬ ‫ניתן‬ ‫־‬ ‫שקולים‬ ‫הם‬ ‫־‬ r = (0∗ 1) ∗ , s = ε + (0 + 1) ∗ 1 :‫למשל‬ .‫מילים‬ ‫אותן‬ ‫את‬ ‫מהם‬ ‫לייצר‬ .‫רגולרי‬ ‫ביטוי‬ ‫הוא‬ α ‫כאשר‬ ,αα∗ :‫פירושו‬ α+ ,‫כמו־כן‬ ‫שלו‬ ‫השפה‬ ‫לבין‬ ‫רגולרי‬ ‫ביטוי‬ ‫בין‬ ‫ההבחנה‬ ‫את‬ ‫נשמיט‬ 4.1 ‫הערה‬ .‫מגדיר‬ ‫הוא‬ ‫שאותה‬ ‫לשפה‬ ‫כמו‬ ‫רגולרי‬ ‫לביטוי‬ ‫ונתייחס‬ .r = s ‫רגולריים‬ ‫ביטויים‬ ‫של‬ ‫שקילות‬ ‫נרשום‬ ,‫על־כן‬ 8
  • 9.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫פעולות‬‫סדר‬ 4.1 ‫מבחינת‬ ‫למה‬ ‫קודם‬ ‫מה‬ ,‫)כלומר‬ ‫רגולריים‬ ‫בביטויים‬ ‫הפעולות‬ ‫סדר‬ :(‫יורד‬ ‫בסדר‬ ‫החשיבות‬ .‫סוגריים‬ ‫־‬ () .1 .∗ .2 .(‫)שירשור‬ · .3 .+ .4 Kleene ‫משפט‬ 5 .‫אב‬ Σ ‫יהי‬ ‫כך‬ r ‫רוגלרי‬ ‫ביטוי‬ ‫קיים‬ ⇐⇒ ‫רגולרית‬ ‫שפה‬ ‫היא‬ L ⊆ Σ∗ ‫שפה‬ .L (r) = L‫ש־‬ .(‫סופי‬ ‫לאוטומט‬ ‫שקול‬ ‫רגולרי‬ ‫ביטוי‬ ,‫אחרות‬ ‫)במילים‬ ‫לאוטומט‬ ‫רגולרי‬ ‫ביטוי‬ ‫הפיכת‬ 5.1 :‫אטומי‬ ‫רגולרי‬ ‫ביטוי‬ ‫לשפת‬ ‫שווה‬ ‫ששפתו‬ ‫סופי‬ ‫אוטומט‬ . // a // :a . // :ε . // :∅ :‫סופי‬ ‫לאוטומט‬ ‫רגולרי‬ ‫ביטוי‬ ‫כל‬ ‫להפוך‬ ‫נוכל‬ ,‫כעת‬ ‫אותו‬ ‫ונהפוך‬ (01 + 0) ∗ ‫הרגולרי‬ ‫הביטוי‬ ‫את‬ ‫ניקח‬ :‫למשל‬ :‫סופי‬ ‫לאוטומט‬ ‫עם‬ 1‫ו־‬ 0 ‫השפות‬ ‫שירשור‬ ‫עי‬ 01 ‫השפה‬ ‫את‬ ‫מליצור‬ ‫נתחיל‬ :‫אפסילון‬ . // 0 // :0 . // 1 // :1 :‫הוא‬ ‫השירשור‬ ‫ולכן‬ . // 0 // ε // 1 // :‫הבא‬ ‫באופן‬ ‫נבטא‬ + ‫את‬ ,‫כעת‬ :‫השפות‬ ‫לשתי‬ ε ‫מסעי‬ ‫שני‬ ‫באמצעות‬ ‫נחבר‬ ‫ואותו‬ ‫מצב‬ ‫עוד‬ ‫נוסיף‬ 0 // ε // 1 // // ε 99 ε %% 0 // ‫מעבר‬ ‫נשים‬ :‫הבא‬ ‫הדבר‬ ‫את‬ ‫הוא‬ ‫שנעשה‬ ‫מה‬ .∗‫ה־‬ ‫את‬ ‫וכעת‬ ‫המצב‬ ‫ואת‬ ‫לשפה‬ ‫שמוביל‬ ε‫ה־‬ ‫מעבר‬ ‫אחרי‬ ‫שנמצא‬ ‫לקודקוד‬ ε ‫ונהפוך‬ ‫קודקוד‬ ‫עוד‬ ‫נוסיף‬ :‫אחרות‬ ‫)במילים‬ ‫למקבל‬ ‫נהפוך‬ ‫שלפניו‬ :‫הבא‬ ‫באופן‬ ‫קשתות‬ ‫שתי‬ ‫ונשלח‬ (‫מקבל‬ ‫למצב‬ ‫אותו‬ 0 // ε // 1 // // ε // ε 99 ε %% 0 // WW (01 + 0) ∗ : ‫היא‬ ‫ששפתו‬ ‫סופי‬ ‫אוטומט‬ ‫זהו‬ ‫רגולרי‬ ‫לביטוי‬ DFA ‫אוטומט‬ ‫הפיכת‬ 5.2 ‫חדש‬ ‫חישובי‬ ‫מודול‬ ‫נציג‬ ‫רגולרי‬ ‫לביטוי‬ DFA ‫הפיכת‬ ‫לתאר‬ ‫כדי‬ .(G=Generalized ,‫מוכלל‬ ‫)אוטומט‬ GNFA ‫שנקרא‬ ‫בו‬ ‫שהקשתות‬ ‫רק‬ NFA ‫כמו‬ ,‫מכוון‬ ‫גרף‬ ‫עי‬ ‫מוצג‬ GNFA . ‫רגולרים‬ ‫בביטוים‬ ‫מסומנות‬ .qs ‫יחיד‬ ‫התחלתי‬ ‫ומצב‬ ,qt ‫־‬ ‫יחיד‬ ‫סופי‬ ‫מצב‬ ‫יש‬ :‫נוסף‬ ‫דבר‬ .qt‫מ־‬ ‫שיוצאת‬ ‫קצת‬ ‫ואין‬ qs‫ל־‬ ‫שנכנסת‬ ‫קשת‬ ‫אין‬ :‫למשל‬ // qs a∗ b∗ // b $$ qt q0 a∗ :: :‫הסברים‬ x‫מ־‬ ‫יעבור‬ ‫האוטומט‬ ‫אזי‬ ,GNFA‫ב־‬ ‫קשת‬ ‫היא‬ x r // y :‫אם‬ ‫־‬ L (r) ,r ‫רגולרי‬ ‫ביטוי‬ ‫משפת‬ ‫שהיא‬ w ‫מילה‬ ‫קורא‬ ‫הוא‬ ‫אם‬ y‫ל־‬ .r ‫הרגולרי‬ ‫הביטוי‬ ‫את‬ ‫יקרא‬ ‫הוא‬ ‫אם‬ y‫ל־‬ x‫מ־‬ ‫יעבור‬ ‫הוא‬ ‫כלומר‬ ‫קריאת‬ ‫עי‬ qt‫ל־‬ qs‫מ־‬ ‫לעבור‬ ‫יכול‬ ,w ‫מילה‬ ‫מקבל‬ ‫אשר‬ GNFA .w ‫דהיינו‬ ,‫מקבל‬ ‫שהאוטומט‬ ‫המילים‬ ‫כל‬ ‫קבוצת‬ ‫היא‬ ‫האוטומט‬ ‫שפת‬ .δ (qs, w) = qt‫ש־‬ ‫כך‬ w ∈ Σ∗ ‫כל‬ .a∗ b∗ + ba∗ :‫הינה‬ ‫שלמעלה‬ GNFA‫ה־‬ ‫שפת‬ ,‫למשל‬ .(a∗ ‫ואז‬ b ‫או‬ a∗ b∗ ‫או‬ ‫צריכים‬ ‫אנחנו‬ qt‫ל־‬ qs‫מ־‬ ‫להגיע‬ ‫בשביל‬ ‫)כי‬ GNFA‫ל־‬ DFA ‫אוטומט‬ ‫הפיכת‬ 5.2.1 :‫הבאה‬ ‫בדרך‬ GNFA‫ל־‬ A DFA ‫כל‬ ‫להפוך‬ ‫ניתן‬ ‫ואת‬ ‫מקבלים‬ ‫לא‬ ‫למצבים‬ A‫ב־‬ ‫המקבלים‬ ‫המצבים‬ ‫כל‬ ‫את‬ ‫נהפוך‬ .‫התחלתי‬ ‫לא‬ ‫למצב‬ ‫ההתחלתי‬ ‫המצב‬ :‫חדשים‬ ‫מצבים‬ ‫שני‬ ‫נוסיף‬ .‫התחלתי‬ ‫מצב‬ ‫־‬ qs .‫סופי‬ ‫מצב‬ ‫־‬ qt ‫ונוסיף‬ A‫ב־‬ ‫התחלתי‬ ‫שהיה‬ ‫למצב‬ qs‫מ־‬ ε‫ב־‬ ‫מסומנת‬ ‫קשת‬ ‫נוסיף‬ .qt‫ל־‬ A‫ב־‬ ‫סופי‬ ‫מצב‬ ‫שהיה‬ ‫מבצ‬ ‫מכל‬ ε‫ב־‬ ‫שמסומנת‬ ‫קשת‬ :‫הבא‬ DFA‫ה־‬ ‫לנו‬ ‫נתון‬ :‫למשל‬ // q0 0 1 // q1 0,1 :‫נקבל‬ GNFA‫ל־‬ ‫אותו‬ ‫נהפוך‬ ‫אם‬ ‫אזי‬ // qs ε // q0 0 1 // q1 0+1 ε // qt q0 ‫את‬ ‫להשמיט‬ ‫נוכל‬ GNFA‫ה־‬ ‫של‬ ‫הראשונה‬ ‫בדוגמא‬ :‫הערה‬ :‫השפה‬ ‫אותה‬ ‫את‬ ‫שמקבל‬ ‫יותר‬ ‫קטן‬ GNFA ‫ולקבל‬ // qs a∗ b∗ +ba∗ // qt 9
  • 10.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ :GNFA‫ל־‬‫נוספת‬ ‫דוגמא‬ q 1∗ 0 $$ // qs 01∗ :: (00)∗ $$ qt p 11 :: :‫זה‬ ‫אוטומט‬ ‫שפת‬ 01∗ 1∗ 0 + (00) ∗ 11 = 01∗ 0 + (00) ∗ 11 GNFA‫ל־‬ ‫פורמלית‬ ‫הגדרה‬ 5.2.2 A = hQ, Σ, λ, qs, qti ‫חמישייה‬ ‫זוהי‬ GNFA :‫כאשר‬ .|Q| ≥ 2 ‫מצבים‬ ‫של‬ ‫סופית‬ ‫קבוצה‬ = Q • .‫אב‬ = Σ • .‫ההתחלתי‬ ‫המצב‬ ‫יקרא‬ ‫־‬ qs ∈ Q • .‫המקבל‬ ‫המצב‬ ‫יקרא‬ ‫־‬ qt ∈ Q • :‫הבא‬ ‫באופן‬ ‫מוגדרת‬ λ • λ : (Q − {qt}) × (Q − {qs}) → RΣ .Σ ‫מעל‬ ‫הרוגלרים‬ ‫הביטויים‬ ‫קבוצת‬ = RΣ ‫כאשר‬ GNFA‫ב־‬ ‫קשתות‬ ‫סימון‬ 5.2.3 ‫הוא‬ λ (p, q) ‫־‬ ((qs, qt) ‫)מלבד‬ (p, q) ‫מצבים‬ ‫של‬ ‫סדור‬ ‫סוג‬ ‫לכל‬ ‫את‬ ‫)או‬ ‫הקשת‬ ‫את‬ ‫שמסמל‬ ‫הרגולרי‬ ‫הביטוי‬ ‫זהו‬ .‫רגולרי‬ ‫ביטוי‬ .q‫ל־‬ p‫מ־‬ (‫הצלע‬ :rpq‫ב־‬ ‫זה‬ ‫ביטוי‬ ‫נסמן‬ rpq = λ (p, q) p rpq // q .λ (p, q) = rpq = ∅ ‫ש־‬ ‫כמובן‬ ‫ייתכן‬ rqsq = 01∗ , rqp = ∅ :‫שלמעלה‬ ‫בדוגמא‬ ,‫למשל‬ .(‫ישנה‬ ‫)אם‬ ‫הצלע‬ ‫את‬ ‫משמיטים‬ ‫זה‬ ‫במקרה‬ :‫דוגמא‬ ‫עוד‬ x 1∗ (00) // y 0101 // z .rxy = 1∗ 00, ryz = 0101, rzy = ∅ :‫הזה‬ ‫במקרה‬ .z‫ל־‬ x‫מ־‬ (‫)צלע‬ ‫קשת‬ ‫אין‬ ‫כי‬ ‫־‬ rxz = ∅ ‫ו־‬ ‫אם‬ w ‫את‬ ‫מקבל‬ A‫ש־‬ ‫אומרים‬ .w ∈ Σ∗ ‫ותהי‬ GNFA A ‫יהי‬ ,‫פשטות‬ ‫)לשם‬ qs, q1, q2, ..., qk, qt :A‫ב־‬ ‫מצבים‬ ‫סדרת‬ ‫קיימת‬ (qt = qk+1‫ו־‬ ,qs = q0 :‫נסמן‬ ‫שלכל‬ ‫כך‬ w = w1w2 · · · wk+1 :‫מהצורה‬ w ‫של‬ ‫פירוק‬ ‫וקיים‬ :‫כלומר‬ wi ∈ λ (qi−1, qi) :‫מתקיים‬ 1 ≤ i ≤ k + 1 wi ∈ rqi−1qi .‫מקבל‬ A‫ש־‬ w ∈ Σ∗ ‫המילים‬ ‫על‬ ‫קבוצת‬ ‫היא‬ L ‫האוטומט‬ ‫שפת‬ GNFA ‫של‬ ‫צימצום‬ 5.2.4 ‫נוכל‬ |Q| 2 ‫עם‬ A = hQ, Σ, λ, qs, qti GNFA ‫בההינתן‬ ‫שקול‬ A0 GNFA ‫עם‬ ‫ולהישאר‬ 1‫ב־‬ ‫המצבים‬ ‫מסםר‬ ‫את‬ ‫להקטין‬ :‫הבא‬ ‫באופן‬ A‫ל־‬ .(d 6= qs, qt ,‫)כלומר‬ d ∈ Q − {qs,qt} ‫מצב‬ ‫נבחר‬ .1 ‫נעדכן‬ ‫שנשארו‬ ‫מהמצבים‬ (p, q) ‫מצבים‬ ‫של‬ ‫סדור‬ ‫זוג‬ ‫לכל‬ .2 :rpq ‫את‬ d rdd rdq p rpd @@ rpq // q ⇓ p rpq+rpd(rdd)∗ rdq // q :rpq ‫את‬ ‫הוא‬ ‫פה‬ ‫מעדכנים‬ ‫הוא‬ ‫שאנחנו‬ ‫מה‬ ,‫כלומר‬ rpq ← rpq + rpd (rdd) ∗ rdq . ‫יוצאות‬ ‫או‬ ‫שנכנסות‬ ‫הקשתות‬ ‫שאר‬ ‫כל‬ ‫ואת‬ d ‫את‬ A‫מ־‬ ‫נשמיט‬ .3 .d‫מ־‬ q‫ל־‬ p ‫בין‬ ‫מסילה‬ ‫אינה‬ rpq ,‫כלומר‬ ,‫בצעלות‬ ‫שמדובר‬ ‫לזכור‬ ‫חשוב‬ .‫קודקודים‬ ‫בני‬ ‫בין‬ ‫קשת‬ ‫אלא‬ :‫אזי‬ rpd, rdq :‫ריקה‬ ‫קבוצה‬ ‫היא‬ ‫מהבאים‬ ‫אחד‬ ‫אם‬ :‫תזכורת‬ 8 .rpd (rdd) ∗ rdq = ∅ .rdd = ε‫ש־‬ ‫נאמר‬ ‫אזי‬ ,(‫מעגל‬ ‫אין‬ ,‫)כלומר‬ ‫כלום‬ rdd‫ב־‬ ‫אין‬ ‫אם‬8 10
  • 11.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫רגולרי‬‫לביטוי‬ DFA ‫הפיכת‬ ‫אלגוריתם‬ 5.2.5 .Aְ DFA :‫קלט‬ .L (r) = L (A)‫ש־‬ ‫כך‬ r ‫רגולרי‬ ‫ביטוי‬ :‫פלט‬ .B GNFA‫ל־‬ A ‫את‬ ‫הפוך‬ .1 ‫במצב‬ B ‫את‬ ‫צמצם‬ ‫־‬ 2‫מ־‬ ‫גדול‬ B‫ב־‬ ‫המצבים‬ ‫מספר‬ ‫עוד‬ ‫כל‬ .2 .‫אחד‬ .‫כפלט‬ rqsqt ‫הרגולרי‬ ‫הביטוי‬ ‫את‬ ‫החזר‬ .3 ‫קצר‬ ‫סיכום‬ 6 :‫רגולריות‬ ‫שפות‬ ‫של‬ ‫ייצוג‬ ‫של‬ ‫שונים‬ ‫סוגים‬ ‫ארבעה‬ ‫ראינו‬ DFA ♥ {{ RE ♣ ## NFA 3 dd εNFA ♠ :: .(5.1 ‫)סעיף‬ ‫לאוטומט‬ ‫רוגלרי‬ ‫ביטוי‬ ‫הפיכת‬ ‫־‬ ♣ .(3.5 ‫)סעיף‬ ε ‫מסעי‬ ‫הסרת‬ ‫־‬ ♠ .(2.3 ‫)סעיף‬ ‫החזקה‬ ‫אוטומט‬ ‫־‬ 3 .(5.2 ‫)סעיף‬ ‫רגולרי‬ ‫לביטוי‬ ‫אוטומט‬ ‫הפיכת‬ ‫־‬ ♥ ‫הניפוח‬ ‫למת‬ 7 (‫הלמה‬ ‫)ניסוח‬ ‫הגדרה‬ 7.1 .‫רגולרית‬ ‫שפה‬ L ⊆ Σ∗ ‫תהי‬ |w| ≥ n ‫עם‬ w ∈ L ‫מילה‬ ‫שלכל‬ ‫כך‬ n ‫טבעי‬ ‫מספר‬ ‫קיים‬ :‫אזי‬ ‫הדרישות‬ ‫ומתקיימות‬ x, y, z ∈ Σ∗ ‫כאשר‬ w = xyz ‫פירוק‬ ‫קיים‬ :‫הבאות‬ .|xy| ≤ n .1 .(y 6= ε :‫)כלומר‬ |y| 0 .2 ‫את‬ ‫לנפח‬ ‫ניתן‬ ,‫כלומר‬ ‫־‬ xyi z ∈ L :‫מתקיים‬ i ≥ 0 ‫לכל‬ .3 .‫המילה‬ ‫כל‬ ,‫כלומר‬ ,‫רגלורית‬ ‫לשפה‬ ‫הכרחי‬ ‫תנאי‬ ‫הינה‬ ‫הניפוח‬ ‫למת‬ :‫הערה‬ ‫שמקיימת‬ ‫שפה‬ ‫כל‬ ‫לא‬ ‫אבל‬ ,‫הלמה‬ ‫תנאי‬ ‫את‬ ‫מקיימת‬ ‫רגולרית‬ ‫שפה‬ .‫רגולרית‬ ‫היא‬ ‫הלמה‬ ‫תנאי‬ ‫את‬ ‫אינה‬ ‫היא‬ ‫־‬ ‫הלמה‬ ‫תנאי‬ ‫את‬ ‫מקיימת‬ ‫שפה‬ ‫אם‬ ‫־‬ ‫אחרות‬ ‫במילים‬ .‫רגולרית‬ ‫בהכרח‬ ‫לתנאי‬ ‫עד‬ ‫קיים‬ ‫מהמילה‬ ‫)החל‬ ‫הניפוח‬ ‫תנאי‬ ‫נקראים‬ ‫אלו‬ ‫תנאים‬ .(3 ‫תנאי‬ ‫את‬ ‫מקיימת‬ L ‫אזי‬ ‫רגולרית‬ ‫היא‬ L ‫שפה‬ ‫שאם‬ ‫אומרת‬ ‫הלמה‬ .‫הניפוח‬ .‫הניפוח‬ ‫קבוע‬ ‫נקרא‬ ‫הניפוח‬ ‫בתנאי‬ n ‫המספר‬ ‫ב־‬ ‫המצבים‬ ‫למספר‬ ‫שווה‬ ‫גדול‬ ‫או‬ ‫שווה‬ n‫ש־‬ ‫בהכ‬ ‫להניח‬ ‫ניתן‬ .L ‫את‬ ‫שמזהה‬ DFA L ‫שפה‬ ‫של‬ ‫אי־רגולריות‬ ‫להראות‬ ‫הוא‬ ‫הלמה‬ ‫של‬ ‫העיקרי‬ ‫השימוש‬ ‫זה‬ ‫בדכ‬ ,‫הניפוח‬ ‫תנאי‬ ‫את‬ ‫לקיים‬ ‫יכולה‬ ‫לא‬ L‫ש־‬ ‫שמראים‬ ‫כך‬ ‫)עי‬ .(‫השלישי‬ ‫התנאי‬ ‫יהיה‬ ‫הניפוח‬ ‫בלמת‬ ‫לשימוש‬ ‫קצרה‬ ‫דוגמא‬ 7.2 :‫השפה‬ ‫כי‬ ‫נוכיח‬ L = n aj bj i = j, i, j ≥ 0 o .‫רגולרית‬ ‫אינה‬ :‫הוכחה‬ ‫ניפוח‬ ‫קבוע‬ ‫קיים‬ ‫אזי‬ ,‫רגולרית‬ ‫אכן‬ L ‫השפה‬ ‫כי‬ ‫בשלילה‬ ‫נניח‬ ‫שלושת‬ ‫מתקיימים‬ |w| ≥ n‫ש־‬ ‫כך‬ w ∈ L ‫שלכל‬ ‫כך‬ n ∈ N .‫הנל‬ ,‫התנאים‬ .‫בתנאים‬ ‫תעמוד‬ ‫שלא‬ ‫אחת‬ ‫מילה‬ ‫זאת‬ ‫למצוא‬ ‫שעלינו‬ ‫מה‬ ‫כל‬ ,‫כעת‬ ‫השפה‬ ,‫כלומר‬ ,‫נכונה‬ ‫אינה‬ ‫הלמה‬ ‫אזי‬ ,‫כזאת‬ ‫מילה‬ ‫שמצאנו‬ ‫ברגע‬ ‫לכתוב‬ ‫נצטרך‬ n ‫מהו‬ ‫יודעים‬ ‫לא‬ ‫שאנחנו‬ ‫בגלל‬ ‫אבל‬ .‫רגולרית‬ ‫אינה‬ .‫תבניתית‬ ‫בצורה‬ ‫המילה‬ ‫את‬ ‫השפה‬ ‫הגדרת‬ ‫עפ‬ w ∈ L ‫ואכן‬ w = an bn :‫המילה‬ ‫את‬ ‫נקח‬ ‫תנאי‬ ‫את‬ ‫לקיים‬ ‫צריכה‬ ‫היא‬ ‫רגולרית‬ ‫היא‬ ‫אם‬ ‫ולכן‬ ,|w| ≥ n‫ו־‬ .‫הניפוח‬ :‫ומתקיים‬ x, y, z ∈ Σ∗ ‫כאשר‬ w = xyz ‫פירוק‬ ‫ישנו‬ ,‫הלמה‬ ‫לפי‬ .|xy| ≤ n .1 .|y| 0 .2 .xyi z ∈ L :‫מתקיים‬ 0 ≤ i ∈ N ‫לכל‬ .3 x = al , y = am , z = an−l−m bn :‫חלוקה‬ ‫שקיימת‬ ‫נקבל‬ 2‫ו־‬ 1‫מ־‬ .‫שבחרנו‬ ‫המילה‬ ‫את‬ ‫לחלק‬ ‫איך‬ ‫לבחור‬ ‫יכולים‬ ‫אנחנו‬ ‫שאין‬ ‫לב‬ ‫)נשים‬ .(‫משתנים‬ ‫שמים‬ ‫אנחנו‬ ‫ולכן‬ ,‫הלמה‬ ‫מתוך‬ ‫נובעת‬ ‫החלוקה‬ ‫ש־‬ ‫להיות‬ ‫)יכול‬ .m 0‫ו־‬ l + m ≤ n :(‫הלמה‬ ‫)עפ‬ ‫כשאר‬ .(z‫ב־‬ ‫נמצאים‬ ‫־ים‬a‫ה־‬ ‫כל‬ ,‫אחד‬ a ‫מלבד‬ ,‫ואז‬ l = 0, m = 1 ‫נשים‬ ‫אם‬ ‫אבל‬ ,xz ∈ L‫ש־‬ ‫הוא‬ ‫שנקבל‬ ‫מה‬ i = 0 ‫נבחר‬ ‫אם‬ ,‫כעת‬ .xz = al · an−l−m · bn = an−m bn :‫לב‬ xz / ∈ L‫ש־‬ ‫שאומר‬ ‫מה‬ n − m n ‫אזי‬ m 0‫ש־‬ ‫בגלל‬ ‫אבל‬ .‫לסתירה‬ ‫והגענו‬ .‫רגורלית‬ ‫אינה‬ L‫ש־‬ ‫מכאן‬ ‫הלמה‬ ‫באמצעות‬ ‫רגורלית‬ ‫היא‬ ‫ששפה‬ ‫זה‬ ‫את‬ ‫לסתור‬ ‫רוצים‬ ‫כאשר‬ ‫בתנאי‬ i‫ה־‬ ‫את‬ ‫נחפש‬ ,‫כאן‬ ‫בדוגמא‬ ‫כמו‬ ,‫שתמיד‬ ‫הוא‬ ‫שנעשה‬ ‫מה‬ .‫רגולרית‬ ‫אינה‬ ‫היא‬ ‫כי‬ ‫נראה‬ ‫וכך‬ L‫מ־‬ ‫המילה‬ ‫את‬ ‫שיוציא‬ ‫השלישי‬ ‫באמצעותה‬ ‫שנוכל‬ ‫מילה‬ ‫למצוא‬ .‫א‬ :‫בעצם‬ ‫הוא‬ ‫כאן‬ ‫האתגר‬ ‫לכן‬ ‫שעבורנו‬ ‫המתאים‬ i‫ה־‬ ‫את‬ ‫למצוא‬ .‫ב‬ .‫השפה‬ ‫רגולריות‬ ‫את‬ ‫לסתור‬ .(‫מסוים‬ i ‫)עבור‬ ‫בשפה‬ ‫נמצאת‬ ‫לא‬ ‫שבחרנו‬ ‫המילה‬ ‫כי‬ ‫נראה‬ ‫נוספת‬ ‫למה‬ 8 ‫מצבים‬ n ‫עם‬ DFA ‫אוטומט‬ A = hQ, Σ, δ, q0, Fi ‫יהי‬ .L = L (A) ‫ותהי‬ (|Q| = n) :‫אזי‬ .(|w| n) n ‫מאורך‬ ‫מילה‬ ‫מכילה‬ L ⇐⇒ L 6= ∅ .1 .n ≤ |w| ≤ 2n‫ש־‬ ‫כך‬ w ‫מילה‬ ‫מכילה‬ L ⇐⇒ ‫אינסופית‬ L .2 11
  • 12.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ IV‫חלק‬ ‫רגולריות‬ ‫לשפות‬ ‫הכרעה‬ ‫בעיות‬ .‫לא‬ ‫או‬ ‫כן‬ ‫היא‬ ‫עליה‬ ‫שהתשובה‬ ‫בעיה‬ :‫הכרעה‬ ‫בעיית‬ :‫הבאות‬ ‫ההכרעה‬ ‫בבעיות‬ ‫ונדון‬ DFA ‫עי‬ ‫רגולריות‬ ‫שפות‬ ‫נציג‬ ,(A ‫של‬ Σ ‫)מאב‬ w ‫ומילה‬ A DFA ‫נתון‬ :‫השייכות‬ ‫בעיית‬ .1 ?w ∈ L (A) ‫האם‬ ?L (A) = ∅ ‫האם‬ ,A DFA ‫נתון‬ :‫הרייקנות‬ ‫בעיית‬ .2 ?‫אינסופית‬ L (A) ‫האם‬ ,ְ DFA ‫נתון‬ :‫הסופיות‬ ‫בעיית‬ .3 ‫האם‬A2‫ו־‬ A1 ‫־ים‬DFA ‫שני‬ ‫נתונים‬ :‫השקילות‬ ‫בעיית‬ .4 ?L (A1) = L (A2) ‫שהוצגו‬ ‫הבעיות‬ ‫פתרונות‬ 9 ‫השייכות‬ ‫בעיית‬ ‫פתרון‬ 9.1 w = a1a2 · · · an ∈ ‫ומילה‬ A = hQ, Σ, δ, q0, Fi DFA :‫קלט‬ .Σ∗ .‫אחרת‬ ‫לא‬ ,w ∈ L (A) ‫אם‬ ‫כן‬ :‫פלט‬ .q = q0 .1 .δ (q, ai) → q :i = 1, 2, ..., n ‫עבור‬ .2 .‫לא‬ ‫החזר‬ ‫אחרת‬ .‫כן‬ ‫החזר‬ q ∈ F ‫אם‬ .3 ‫הריקנות‬ ‫בעיית‬ ‫פתרון‬ 9.2 |Q| = n‫ו־‬ |w| n ‫כאשר‬ w ‫מילה‬ ‫איזושיה‬ ‫מקבל‬ A ‫אם‬ ‫בודקים‬ . .‫לא‬ ‫מחזירים‬ ‫אחרת‬ ,‫כן‬ ‫מחזירים‬ ‫אזי‬ ,‫מקבל‬ ‫הוא‬ ‫אם‬ ‫הסופיות‬ ‫בעיית‬ ‫פתרון‬ 9.3 .n ≤ |w| ≤ 2n ‫כאשר‬ w ‫מילה‬ ‫מקבל‬ A ‫אם‬ ‫בודקים‬ .‫לא‬ ‫מחזירים‬ ,‫לא‬ ‫אם‬ ,‫כן‬ ‫מחזירים‬ ‫־‬ ‫כן‬ ‫אם‬ ‫האחרונה‬ ‫מהלמה‬ ‫נובעת‬ ‫האחרונים‬ ‫האלגוריתמים‬ ‫שני‬ ‫)נכונות‬ .(‫שהראנו‬ ‫הנל‬ ‫לאלגוריתמים‬ ‫יעלים‬ ‫פתרונות‬ 9.4 .BFS‫ב־‬ ‫נשתמש‬ ‫כך‬ ‫לשם‬ .‫שהוצגו‬ ‫לבעיות‬ ‫יעלים‬ ‫פתרונות‬ ‫נציג‬ .q ∈ Q ‫כאשר‬ R (q)‫ו־‬ R0 (q) :‫חשובים‬ ‫מושגים‬ ‫שני‬ ‫עוד‬ ‫ונכיר‬ R (q)‫ו־‬ R0 (q) 9.4.1 :‫נסמן‬ q ∈ Q ‫עבור‬ ,A = hQ, Σ, δ, q0, Fi DFA ‫יהי‬ R0 (q) = n δ (q, w) w ∈ Σ∗ o ‫מילה‬ ‫באמצעות‬ q‫מ־‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ ‫זוהי‬ ‫ולכן‬ ‫הריקה‬ ‫המילה‬ ‫את‬ ‫גם‬ ‫כולל‬ ‫כמובן‬ ‫)שזה‬ w ∈ Σ∗ ‫כלשהי‬ ‫קיימת‬ ‫אזי‬ p ∈ R0 (q)‫ש־‬ ‫לנו‬ ‫נתון‬ ‫אם‬ ,‫לכן‬ ,(q ∈ R0 (q) ‫תמיד‬ .δ (q, w) = p‫ש־‬ ‫כך‬ w ∈ Σ∗ ‫מילה‬ R (q) = n δ (q, w) w ∈ Σ∗ , |w| 0 o ‫עם‬ ‫אבל‬ q‫מ־‬ ‫אליהם‬ ‫להגיע‬ ‫שניתן‬ Q‫ב־‬ ‫המצבים‬ ‫כל‬ ‫קבוצת‬ ‫זוהי‬ ‫קיימת‬ ‫אזי‬ p ∈ R (q) ‫אם‬ ,‫כלומר‬ ,‫הריקה‬ ‫המילה‬ ‫מלבד‬ ‫מילה‬ ‫כל‬ .δ (q, w) = p :‫שמתקיים‬ ‫כך‬ ε 6= w ∈ Σ∗ ‫מילה‬ 9 ‫חיובי‬ ‫מאורך‬ ‫מעגל‬ ‫קיים‬ ‫כי‬ , q ∈ R (q) ‫ייתכן‬ ‫כי‬ ‫לזכור‬ ‫חשוב‬ .q‫ל־‬ ‫בחזרה‬ ‫נגיע‬ w = 0 ‫עבור‬ ‫אזי‬ q 0 11 :‫למשל‬ .‫לעצמו‬ q‫מ־‬ .q‫ל־‬ p‫מ־‬ ‫מסלול‬ ‫יש‬ ⇐⇒ p ∈ R0 (q) .p‫ל־‬ q‫מ־‬ ‫חיובי‬ ‫מאורך‬ ‫מסלול‬ ‫יש‬ ⇐⇒ p ∈ R (q) .R0 (q) = R (q) ∪ {q} :‫נכון‬ ‫תמיד‬ ‫מאורך‬ ‫מעגל‬ ‫שיש‬ ‫)במקרה‬ R0 (q)−{q} = R (q) :‫נכון‬ ‫תמיד‬ ‫לא‬ .(‫חיובי‬ (R0 (q) ‫של‬ ‫)או‬ R (q) ‫של‬ ‫יעיל‬ ‫חישוב‬ 9.4.2 :A ‫של‬ q ‫ומצב‬ A ‫בהינתן‬ .R (q) = δ (q, a) ∀a ∈ Σ .1 :p ∈ R (q) ‫ולכל‬ a ∈ Σ ‫לכל‬ .2 .R (q)‫ל־‬ p ‫את‬ ‫הוסף‬ ‫אזי‬ δ (p, a) / ∈ R (q) ‫אם‬ (‫)א‬ .2 ‫לצעד‬ ‫חזור‬ ‫־‬ ‫חדש‬ ‫מצב‬ R (q)‫ל־‬ ‫התווסף‬ 2 ‫בצעד‬ ‫אם‬ .3 .R (q) ‫את‬ ‫החזר‬ .4 ‫עצמו‬ q ‫את‬ ‫נוסיף‬ ‫)פשוט‬ ‫דומה‬ ‫ממש‬ ‫באופן‬ ‫נעשה‬ R0 (q) ‫חישוב‬ .(‫ונחזיר‬ ‫הריקנות‬ ‫לבעיית‬ ‫יעיל‬ ‫פתרון‬ 9.4.3 :‫ונבדוק‬ R0 (q0) ‫נחשב‬ A = hQ, Σ, δ, q0, Fi DFA ‫בהינתן‬ .‫ריקה‬ ‫אינה‬ ‫השפה‬ ‫־‬ ‫כן‬ ‫נחזיר‬ ‫אזי‬ ‫־‬ Ro (q0) ∩ F 6= ∅ ‫אם‬ .‫ריקה‬ ‫השפה‬ ‫־‬ ‫לא‬ ‫נחזיר‬ ‫־‬ ‫לא‬ ‫אם‬ DFA‫ב־‬ ‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫הסרת‬ 9.4.4 ‫ב־‬ ‫שאינו‬ q ‫מצב‬ ‫כל‬ ‫מהאוטומט‬ ‫משמיטים‬ ‫־‬ R0 (q0) ‫מחשבים‬ ‫יוצאות‬ ‫או‬ ‫מצב‬ ‫לאותו‬ ‫שנכנסות‬ ‫הקשתות‬ ‫כל‬ ‫עם‬ ‫יחד‬ R0 (q0) .‫ממנו‬ .‫הקשתות‬ ‫מספר‬ = ‫המעגל‬ ‫אורך‬9 12
  • 13.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫הסופיות‬‫לבעיית‬ ‫יעיל‬ ‫פתרון‬ 9.4.5 ‫ניתנים‬ ‫מצביו‬ ‫שכל‬ A = hQ, Σ, δ, q0, Fi DFA ‫יהי‬ ‫למה‬ .L = L (A) ‫ותהי‬ ‫להשגה‬ q ∈ R (q) ‫שמקיים‬ q ∈ Q ‫מצב‬ ‫קיים‬ ⇐⇒ ‫אינסופית‬ L :‫אזי‬ .R0 (q) ∩ F 6= ∅‫ו־‬ ‫־‬ :A = hQ, Σ, δ, q0, Fi DFA ‫בהינתן‬ .‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫המצבים‬ ‫את‬ A‫מ־‬ ‫נשמיט‬ .1 ‫ו־‬ q ∈ R (q) ‫אם‬ ‫ונבדוק‬ q ∈ Q ‫לכל‬ R (q) ‫את‬ ‫נחשב‬ .2 .R0 (q) ∩ F 6= ∅ .‫ונעצור‬ ‫כן‬ ‫נחזיר‬ ‫כזה‬ ‫נמצא‬ ‫אם‬ (‫)א‬ .‫לא‬ ‫נחזיר‬ .3 ‫השקילות‬ ‫בעיית‬ ‫פתרון‬ 9.4.6 A2 = A1 = hQ1, Σ, δ1, q1, F1i :‫־ים‬DFA ‫שני‬ ‫נתונים‬ .hQ2, Σ, δ2, q2, F2i ‫התחלתי‬ ‫מצב‬ ‫עם‬ A2‫ו־‬ A1 ‫של‬ A ‫מכפלה‬ ‫אוטומט‬ ‫נבנה‬ .1 :‫סופיים‬ ‫מצבים‬ ‫וקבוצת‬ (q1, q2) .F = (F1 − F2) ∪ (F2 − F1) .‫ריקה‬ L (A) ‫אם‬ ‫נבדוק‬ .2 .‫כן‬ ‫נחזיר‬ ‫כן‬ ‫אם‬ (‫)א‬ .‫לא‬ ‫נחזיר‬ ‫לא‬ ‫אם‬ (‫)ב‬ V ‫חלק‬ ‫רגולריות‬ ‫לשפות‬ ‫אלגברי‬ ‫אפיון‬ .Σ∗ ‫על‬ ‫שקילות‬ ‫יחסי‬ ‫על‬ ‫נדבר‬ :‫עי‬ Σ∗ ‫על‬ S‫ו־‬ R ‫שקילות‬ ‫יחס‬ ‫נגדיר‬ :‫למשל‬ :(Σ = {a, b}) x, y ∈ Σ∗ ‫עבור‬ .|x| = |y| ⇐⇒ xRy .1 .#a (x) = #a (y) ⇐⇒ xSy .2 :R ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ :α ∈ Σ ‫עבור‬ [ε] , [α] , α2 , α3 , ... :i ≥ 1 ‫ולכל‬ [ε] = {ε} ‫כאן‬ αi = n w ∈ Σ∗ |w| = i o :S ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ :α ∈ Σ ‫עבור‬ [ε] , [α] , α2 , α3 , ... [ε] = n w ∈ Σ∗ #α (w) = 0 o :‫כאן‬ :i ≥ 1 ‫לכל‬ αi = n w ∈ Σ∗ #α (w) = i o ‫שקילות‬ ‫יחסי‬ ‫עידון‬ 10 .Σ∗ ‫על‬ ‫שקילות‬ ‫יחסי‬ R, S ‫יהיו‬ .R ⊆ S ‫אם‬ S ‫של‬ ‫עידון‬ ‫הוא‬ R‫ש־‬ ‫אומרים‬ .(xRy ⇒ xSy :x, y ∈ Σ∗ ‫עבור‬ ,‫)כלומר‬ ‫היא‬ S ‫של‬ ‫שקילות‬ ‫מחלקת‬ ‫כל‬ ⇐⇒ S ‫של‬ ‫עידון‬ ‫הוא‬ R :‫הערה‬ .R ‫של‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫איחוד‬ ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ 11 ‫־‬ Σ∗ /R :‫מסומנת‬ Σ∗ ‫ב־‬ R ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ Σ∗ /R = n [x] x ∈ Σ∗ o :x, y ∈ Σ∗ ‫שעבור‬ ‫לב‬ ‫נשים‬ xRy ⇐⇒ [x] = [y] .(Σ∗ /R‫ב־‬ ‫השוויון‬ ‫)משמעות‬ :‫שלמעלה‬ ‫הדוגמאות‬ ‫בשתי‬ ,‫ולמשל‬ Σ∗ /R = n ai i ≥ 0 o (rank) ‫שקילות‬ ‫מחלקות‬ ‫של‬ (‫)האינדקס‬ ‫הדרגה‬ 11.1 R ‫של‬ (‫האינדקס‬ ‫)או‬ ‫הדרגה‬ ‫נקראת‬ Σ∗ /R ‫הקבוצה‬ ‫עוצמת‬ .rank (R) :‫ומסומנת‬ ‫על‬ ‫סופי‬ ‫מאינדקס‬ ‫יחס‬ ‫הוא‬ R‫ש־‬ ‫אומרים‬ ,rank (R) ∞ ‫אם‬ .(‫אינסופי‬ ‫מאינדקס‬ ‫יחס‬ ‫הוא‬R ,‫)אחרת‬ Σ∗ ‫מאינדקס‬ ‫הן‬ S ‫וגם‬ R ‫גם‬ ‫שלמעלה‬ ‫הדוגמאות‬ ‫בשתי‬ ‫למשלת‬ ‫אינסופיץ‬ .R ‫היחס‬ ‫של‬ ‫השונות‬ ‫השקילות‬ ‫מחלקות‬ ‫מספר‬ = rank (R) ‫עידון‬ R) R ⊆ S ‫אם‬ .Σ∗ ‫על‬ ‫שקילות‬ ‫יחסי‬ S‫ו־‬ R ‫יהיו‬ 11.1 ‫למה‬ rank (S) ≤ rank (R) :‫אזי‬ (S ‫של‬ ‫של‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫איחוד‬ ‫היא‬ S ‫של‬ ‫שקילות‬ ‫מחלקת‬ ‫כל‬ ‫)כי‬ .(R ‫אזי‬ , S = S1 ∪ S2‫ו־‬ R = S8 i=1 ri :‫שקילות‬ ‫יחסי‬ R, S :‫למשל‬ :‫הינו‬ ‫אפשרי‬ (‫)עידון‬ R ⊆ S ‫אך‬ ?, - ∈ S2 ,☼, , ∈ S1 ‫כאן‬ ‫במקרה‬ .R‫ב־‬ ‫אינו‬ ‫מהללו‬ ‫אחד‬ ‫אף‬ .S1∪S2‫ב־‬ ‫נמצא‬ x ∈ R ‫כל‬ ‫־‬ ‫זאת‬ ‫לעומת‬ S1 : S2 : r1 r2 r5 r6 r3 r4 r7 r8 ☼ , ? - 13
  • 14.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫מימין‬‫אינווריאנטי‬ ‫יחס‬ 12 .Σ∗ ‫על‬ ‫שקילות‬ ‫יחס‬ R ‫תהי‬ ‫כל‬ ‫עבור‬ ,‫מקיים‬ ‫הוא‬ ‫אם‬ ‫מימין‬ ‫אינווריאנטי‬ R‫ש־‬ ‫אומרים‬ :x, y, z ∈ Σ∗ xRy ⇒ xzRyz .‫מימין‬ ‫אינוריאנטים‬ 10 R, S ‫־‬ ‫ממקודם‬ ‫שלנו‬ ‫בדוגמאות‬ :‫מימין‬ ‫אינוריאנטי‬ ‫שאינו‬ ‫ליחס‬ ‫דוגמא‬ .(‫ברוורס‬ w ‫המילה‬ ‫זאת‬ ‫־‬ wR ) x = yR ∨ x = y ⇐⇒ xRy ,‫מימין‬ ‫אינוריאנטי‬ ‫אינו‬ ‫הוא‬ ‫אבל‬ , {a, b} ∗ ‫על‬ ‫שקילות‬ ‫יחס‬ ‫זהו‬ :‫למשל‬ ‫כי‬ .abaRbaa ‫אבל‬ abRba ‫שפה‬ ‫משמר‬ ‫יחס‬ 13 .‫שפה‬ L ⊆ Σ∗ ‫ותהי‬ Σ∗ ‫על‬ ‫שקילות‬ ‫יחס‬ R ‫יהי‬ ‫עבור‬ ‫אם‬ (L ‫את‬ ‫מעדן‬ R ‫)או‬ L ‫את‬ ‫משמר‬ R‫ש־‬ ‫אומרים‬ :x, y ∈ Σ∗ .y ∈ L ⇐ x ∈ L ∧ xRy (y ∈ L ⇔ y ∈ L) ⇐ xRy :‫כך‬ ‫זאת‬ ‫לנסח‬ ‫גם‬ ‫אפשר‬ .R ‫של‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫איחוד‬ ‫היא‬ L ⇐⇒ ‫קורה‬ ‫זה‬ ‫באוטומט‬ q ∈ Q ‫מצב‬ ‫של‬ ‫שפה‬ 14 :‫מסמנים‬ q ∈ Q ‫עבור‬ DFA A = hQ, Σ, δ, q0, Fi ‫יהי‬ L (q) = n w ∈ Σ∗ δ (q0, w) = q o ‫מהמצב‬ ‫האוטומט‬ ‫את‬ ‫שמעבירות‬ Σ∗ ‫ב־‬ ‫המילים‬ ‫כל‬ ‫אלו‬ ,‫כלומר‬ .q ‫למצב‬ ‫ההתחלתי‬ .q ‫המצב‬ ‫שפת‬ :‫נקראת‬ L (q) ‫ניתן‬ ‫שאינו‬ ‫מצב‬ ‫הוא‬ q ‫אםם‬ ‫קורה‬ ‫)זה‬ L (q) = ∅‫ש־‬ ‫יתכן‬ .(‫להשגה‬ .L (p) ∩ L (q) = ∅ ‫אזי‬ p 6= q ‫אם‬ :‫כי‬ ‫לב‬ ‫נשים‬ L (A) = [ q∈F L (q) ‫האוטומט‬ ‫שאותה‬ ‫השפה‬ ,‫האוטומט‬ ‫שפת‬ ‫־‬ L (A) :‫)תזכורת‬ .(‫מקבל‬ :‫הבא‬ ‫באוטומט‬ ‫נסתכל‬ ,‫למשל‬ // q0 0 1 // q1 1 // 0 q2 0 // 1 q3 0,1 q4 0,1 UU .‫הקודם‬ ‫שבדף‬ ‫בשירטוט‬ ‫ולא‬ ‫בהתחלה‬ ‫שהיו‬ ‫לאלו‬ ‫הכוונה‬10 :‫הנל‬ ‫האוטומט‬ ‫של‬ ‫המצבים‬ ‫שפות‬ ‫אזי‬ L (q0) = 0∗ L (q1) = 0∗ 10∗ L (q2) = 0∗ 10∗ 1 L (q3) = 0∗ 10∗ 1 0 ((0 + 1) (0 + 1)) ∗ + 1 (0 + 1) ((0 + 1) (0 + 1)) ∗ L (q4) = 0∗ 10∗ 1 1 ((0 + 1) (0 + 1)) ∗ + 0 (0 + 1) ((0 + 1) (0 + 1)) ∗ r1 = :‫נסמן‬ ‫אזי‬ q2, q4 ‫הינם‬ ‫המקבלים‬ ‫והמצבים‬ ‫היות‬ ,‫כעת‬ :‫אזי‬ L (q2) , r2 = L (q4) L (A) = r1 + r2 = L (q2) ∪ L (q4) RL ‫ו־‬ RA ‫חשובים‬ ‫שקילות‬ ‫יחסי‬ ‫שני‬ 15 RA ‫־‬ ‫ראשון‬ ‫שקילות‬ ‫יחס‬ 15.1 Σ∗ ‫על‬ RA ‫יחס‬ ‫נגדיר‬ .Σ ‫מעל‬ DFA A = hQ, Σ, δ, q0, Fi ‫יהי‬ :‫הבא‬ ‫באופן‬ :x, y ∈ Σ∗ ‫עבור‬ δ (q0, x) = δ (q0, y) ⇐⇒ xRA y ‫לאותו‬ ‫אותנו‬ ‫מביאות‬ ‫אשר‬ Σ∗ ‫ב־‬ ‫מילים‬ ‫שתי‬ ‫לנו‬ ‫יש‬ ‫אם‬ ,‫כלומר‬ ‫מחלקות‬ ,‫כלומר‬ .‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫נמצאות‬ ‫שתיהן‬ ‫אזי‬ ‫מצב‬ ,‫מצב‬ ‫לאותו‬ ‫אותנו‬ ‫מביאות‬ ‫אשר‬ ‫המילים‬ ‫כל‬ ‫הינן‬ RA ‫של‬ ‫השקילות‬ δ (q0, w) = q‫ש־‬ ‫כך‬ Σ∗ ‫ב־‬ ‫המילים‬ ‫כל‬ ‫יהיו‬ q ‫במחלקה‬ ,‫כלומר‬ .‫המילה‬ ‫זאת‬ w ‫כאשר‬ .(‫לבדוק‬ ‫)קל‬ Σ∗ ‫על‬ ‫שקילות‬ ‫יחס‬ ‫זהו‬ .1 .‫מימין‬ ‫אינווריאנטי‬ ‫יחס‬ ‫זהו‬ .2 :‫הינן‬ RA ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ .3 : x ∈ Σ∗ ‫עבור‬ [x] = n y ∈ Σ∗ xRA y o =      y ∈ Σ∗ δ (q0, x) | {z } =q = δ (q0, y)      = n y ∈ Σ∗ δ (q0, y) = q o = L (q) ‫של‬ ‫המצבים‬ ‫שפות‬ ‫הינן‬ RA ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ,‫כלומר‬ .‫האוטומט‬ :‫קיבלנו‬ [x] = L (q) q = δ (q0, x) ‫של‬ ‫המצבים‬ ‫שפות‬ ‫הן‬ RA ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ :‫לכן‬ .‫ריקות‬ ‫שאינן‬A ‫השקילות‬ ‫מחלקות‬ ‫אזי‬ ,‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ A‫ב־‬ ‫אין‬ ‫אם‬ .A ‫של‬ ‫המצבים‬ ‫כל‬ ‫שפות‬ ‫הן‬ A ‫של‬ 14
  • 15.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫שנאמר‬‫מה‬ ‫סמך‬ ‫על‬ ,‫אזי‬ .n‫ב־‬ A ‫של‬ ‫המצבים‬ ‫מספר‬ ‫את‬ ‫נסמן‬ .4 ‫ש־‬ ‫יודעים‬ ‫אנחנו‬ 3‫ב־‬ rank (A) ≤ n :‫אזי‬ ,‫להשגה‬ ‫הניתנים‬ ‫מצבים‬ A‫ב־‬ ‫אין‬ ‫ואם‬ rank (A) = n ‫היא‬ L ‫כי‬ ,L ‫את‬ (‫)מעדן‬ ‫משמר‬ RA ‫אז‬ L = L (A) :‫נסמן‬ .5 :‫כי‬ RA ‫היחס‬ ‫של‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫איחוד‬ L = L (A) = [ q∈F L (q)  Σ∗ = [ q∈Q L (q)   :‫דוגמא‬ :‫להיות‬ A ‫את‬ ‫ניקח‬ // q0 1 0 // q1 1 0 // q2 0,1 :‫הינן‬ RA ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ [ε] = L (q0) = 1∗ [0] = L (q1) = 1∗ 01∗ [00] = L (q2) = 1∗ 01∗ 0 (0 + 1) ∗ ‫הכי‬ ‫במילה‬ ‫השקילות‬ ‫מחלקת‬ ‫את‬ ‫לסמן‬ ‫בוחרים‬ ‫אנחנו‬ :‫הערה‬ .[ε] , [0] , [00] ‫את‬ ‫בחרנו‬ ‫לפיכך‬ ,‫מחלקה‬ ‫באותה‬ ‫שיש‬ ‫קצרה‬ RL ‫־‬ ‫שני‬ ‫שקילות‬ ‫יחס‬ 15.2 :‫הבא‬ ‫באופן‬ Σ∗ ‫על‬ RL ‫יחס‬ ‫נגדיר‬ L ⊆ Σ∗ ‫שפה‬ ‫עבור‬ x, y ∈ Σ∗ :‫עבור‬ ∀z ∈ Σ∗ : (xz ∈ L ⇔ yz ∈ L) ⇐⇒ xRL y ‫מילה‬ ‫קיימת‬ ‫אםם‬ ‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫נמצאים‬ x, y :‫כלומר‬ ‫להיות‬ ‫שיכולת‬ ‫)כמובן‬ yz ∈ L ‫וגם‬ xz ∈ L ‫שגם‬ ‫כך‬ z ∈ Σ∗ .(‫כאלו‬ ‫מילים‬ ‫מספר‬ :‫נוספת‬ ‫בדרך‬ RL ‫הגדרת‬ ‫את‬ ‫ננסח‬ ‫של‬ ‫הימני‬ ‫ההקשר‬ , x ∈ Σ∗ ‫ומילה‬ L ⊆ Σ∗ ‫שפה‬ ‫עבור‬ :‫הגדרה‬ :‫עי‬ ‫ומוגדר‬ rcL (x) :‫מסומן‬ L‫ב־‬ x rcL (x) = n z ∈ Σ∗ xz ∈ L o :x, y ∈ Σ∗ ‫עבור‬ ‫לראות‬ ‫קל‬ ,‫כעת‬ rcL (x) = rcL (y) ⇐⇒ xRL y .(‫שלמעלה‬ ‫ליחס‬ ‫שקולה‬ ‫הגדרה‬ ‫)זוהי‬ .‫מימין‬ ‫אינווריאנטי‬ ‫ויחס‬ ‫שקילות‬ ‫יחס‬ ‫הוא‬ RL ‫דוגמאות‬ ‫מספר‬ 15.3 ‫סופיות‬ ‫לשפות‬ ‫דוגמאות‬ 15.3.1 .L = {a, ba, baa}‫ו־‬ Σ = {a, b} :‫ניקח‬ :RL ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫נחשב‬ RL ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫יהיו‬ (‫)השמאלי‬ ‫הראשון‬ ‫בטור‬ ‫בניהן‬ ‫שיבדיל‬ ‫מה‬ ,Σ∗ ‫ב־‬ ‫המילים‬ ‫על‬ ‫בעצם‬ ‫הוא‬ ‫שלהם‬ ‫שאיחוד‬ ‫לאותה‬ ‫שתגרום‬ z ∈ Σ∗ ‫המילה‬ ‫־‬ rcL ‫ה־‬ ‫כלומר‬ ,‫הסיפא‬ ‫הוא‬ .‫בשפה‬ ‫להיות‬ ‫השמאלי‬ ‫שבטור‬ ‫מילה‬ (Σ∗ ‫ב־‬ ‫המילים‬ ‫)כל‬ x rcL (x) ε a + ba + baa a + baa ε b a + aa ba ε + a (a‫ש־‬ ‫היכן‬ ,‫כזאת‬ ‫מחלקה‬ ‫כבר‬ ‫)יש‬ baa ε ‫המילים‬ ‫שאר‬ ‫כל‬ ∅ ‫הכי‬ ‫המילה‬ ‫את‬ ‫לוקחים‬ ,‫)תזכורת‬ ‫הינן‬ ‫השקילות‬ ‫מחלקות‬ ‫לכן‬ :([‫השמאלי‬ ‫]הטור‬ ‫מחלקה‬ ‫מכל‬ ‫קצרה‬ [ε] [a] [b] [ba] [aa] ⇓ ⇓ ⇓ ⇓ ⇓ {ε} {a, baa} {b} {ba} ⊕ . ‫המילים‬ ‫שאר‬ ‫כל‬ ‫־‬ ⊕ ,‫למשל‬ ,‫הימני‬ ‫הטור‬ ‫זה‬ ‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫לנו‬ ‫שקובע‬ ‫מה‬ ‫אפשר‬ ‫לשניהם‬ ‫היא‬ ‫שיקילות‬ ‫מחלקת‬ ‫באותה‬ baa‫ו־‬ a‫ש־‬ ‫הסיבה‬ ‫הקצרה‬ ‫המילה‬ ‫זאת‬ a ‫והיות‬ ,‫בשפה‬ ‫יהיו‬ ‫שהם‬ ‫כדי‬ ε ‫רק‬ ‫להוסיף‬ .‫המחלקה‬ ‫את‬ ‫שתייצג‬ ‫בחרנו‬ ‫אותה‬ ‫שאם‬ Σ∗ ‫ב־‬ ‫היחידה‬ ‫המילה‬ ‫היא‬ ‫כי‬ [b] = {b} ‫המחלקה‬ ‫למשל‬ .‫בשפה‬ ‫תהיה‬ ‫היא‬ z = a + aa ‫לה‬ ‫נוסיף‬ ‫שאם‬ ‫היחידה‬ ‫המילה‬ ‫זאת‬ ‫־‬ ‫כנל‬ ‫סיבה‬ ‫מאותה‬ [ba] = {ba} :‫או‬ .‫בשפה‬ ‫תהיה‬ ‫היא‬ z = ε + a ‫לה‬ ‫נוסיף‬ .‫השקילות‬ ‫חלקות‬ ‫בין‬ ‫להפריד‬ ‫לנו‬ ‫עוזר‬ (‫הימני‬ ‫)הטור‬ rcL ‫ה־‬ :‫לזכור‬ ‫חשוב‬ ‫המילה‬ ,z) ‫סיפא‬ ‫אותה‬ ‫זאת‬ ‫השקילות‬ ‫מחלקות‬ ‫בין‬ ‫שמבדיל‬ ‫מה‬ .‫לשפה‬ ‫תיכנס‬ ‫שהיא‬ ‫כדי‬ x‫ל־‬ ‫מוסיפים‬ ‫שאנחנו‬ (‫מוסיפים‬ ‫שאנחנו‬ ‫אם‬ ‫לשתיהן‬ ‫כי‬ baa ‫עם‬ ‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫נמצאת‬ a :‫למשל‬ .‫לא‬ ‫אחרת‬ ,‫בשפה‬ ‫תישאר‬ ‫המילה‬ ε ‫רק‬ ‫נוסיף‬ a ‫וגם‬ ε ‫גם‬ ,‫להוסיף‬ ‫יכולים‬ ‫אנחנו‬ ba ‫למילה‬ ,‫זאת‬ ‫לעומת‬ ‫לא‬ ‫היא‬ ‫לכן‬ ,‫בשפה‬ ‫תישאר‬ ‫היא‬ ‫המקרים‬ ‫ובשני‬ (z = a + ε) .a ‫את‬ ε‫ל־‬ ‫בנוסף‬ ‫לה‬ ‫כי‬ ,[a] ‫השקילות‬ ‫ממחלקת‬ ‫חלק‬ ‫מחלקות‬ ‫בין‬ ‫להפריד‬ ‫בשביל‬ rcL ‫ב־‬ ‫שונה‬ ‫אחת‬ ‫מילה‬ ‫שיש‬ ‫מספיק‬ !‫השקילות‬ ‫ב־‬ :a ‫המילה‬ ‫היא‬ [a] , [ba] ‫המחלקות‬ ‫מחלקת‬ ‫בין‬ ‫ההבדל‬ ,‫למשל‬ ‫את‬ ‫או‬ ‫להוסיף‬ ‫אפשר‬ [ba]‫ב־‬ ‫זאת‬ ‫ולעומת‬ ,ε ‫רק‬ ‫להוסיף‬ ‫נוכל‬ [a] .‫בשפה‬ ‫תישאר‬ ‫הנל‬ ‫השיקלות‬ ‫שבמחלקת‬ ‫המילים‬ ‫וכל‬ a ‫את‬ ‫או‬ ε ‫אינסופיות‬ ‫לשפות‬ ‫דוגמאות‬ 15.3.2 .L = 10∗ 1∗ ,Σ = {0, 1} ‫הוא‬ ‫כאן‬ ‫)ההבדל‬ L1 = 10∗ + 10∗ 11∗ ‫כ־‬ ‫זאת‬ ‫שפה‬ ‫על‬ ‫נחשוב‬ 0‫ב־‬ ‫שמסתיימות‬ ‫המילים‬ ‫כל‬ ‫היא‬ ‫אחת‬ ‫אפשרות‬ ‫־‬ ‫המילה‬ ‫סוף‬ .L‫ב־‬ 1‫ב־‬ ‫שמתסיימות‬ ‫המילים‬ ‫כל‬ ‫היא‬ ‫נוספת‬ ‫אפשרות‬ L ‫בשפה‬ .(L = L1 15
  • 16.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ :RL ‫היחס‬‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫נחשב‬ (Σ∗ ‫ב־‬ ‫המילים‬ ‫)כל‬ x rcL (x) ε 10∗ + 10∗ 11∗ 10∗ 0∗ + 0∗ 11∗ 10∗ 11∗ 1∗ 0 (0 + 1) ∗ + 10∗ 11∗ 0 (0 + 1) ∗ ∅ :RL ‫היחס‬ ‫של‬ ‫שקילות‬ ‫מחלקות‬ 4 ‫ישנן‬ ‫על־ען‬ [ε] [1] [11] [0] ⇓ ⇓ ⇓ ⇓ {ε} {10∗ } {10∗ 11} 0 (0 + 1) ∗ + 10∗ 11∗ 0 (0 + 1) ∗ ‫לפחות‬ ‫מפרידה‬ ‫שקילות‬ ‫מחלקת‬ ‫כל‬ ‫שבין‬ ‫לכך‬ ‫לב‬ ‫לשים‬ ‫חשוב‬ ‫מילה‬ ‫שיש‬ ‫ובודקים‬ rcL (x)‫ה־‬ ‫על‬ ‫מסתכלים‬ ,‫)כלומר‬ ‫אחת‬ ‫מילה‬ ‫אזי‬ ‫־‬ ‫כזאת‬ ‫מילה‬ ‫אין‬ ‫אם‬ ‫־‬ ‫המחלקות‬ ‫בין‬ ‫שמפרידה‬ ‫לפחות‬ ‫אחת‬ .(‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫מדובר‬ ‫למצוא‬ ‫צריך‬ :(x) ‫המחלקות‬ ‫של‬ ‫המילים‬ ‫את‬ ‫בונים‬ ‫איך‬ ‫לגבי‬ ‫לא‬ 0∗ ‫ו־‬ ε :‫למשל‬ .‫שונות‬ ‫שקילות‬ ‫מחלקות‬ ‫לנו‬ ‫יתנו‬ ‫מילים‬ ‫אילו‬ ‫ניתן‬ ‫לכן‬ ,({ε} ∈ 0∗ ‫)כי‬ ‫שונות‬ ‫שקילות‬ ‫מחלקות‬ ‫לנו‬ ‫יניבו‬ ‫בהכרח‬ .‫ההבדל‬ ‫את‬ ‫ליצור‬ ‫כדי‬ 00∗ ‫לשים‬ ‫למשל‬ :‫נוספת‬ ‫דוגמא‬ ‫שמקבלת‬ ‫השפה‬ ‫זאת‬ ‫־‬ L = (0 + 1) ∗ 1 (0 + 1) ,Σ = {1, 0} ‫היא‬ (‫מהסוף‬ ‫)השנייה‬ ‫אחרונה‬ ‫לפני‬ ‫האחת‬ ‫שהאות‬ ‫המילים‬ ‫כל‬ ‫את‬ .”1” :RL ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫נחשב‬ (Σ∗ ‫ב־‬ ‫המילים‬ ‫)כל‬ x rcL (x) ε + 0 + (0 + 1) ∗ 00 (0 + 1) ∗ 1 (0 + 1) 1 + (0 + 1) ∗ 01 0 + 1 + (0 + 1) ∗ 1 (0 + 1) (0 + 1) ∗ 10 ε + (0 + 1) ∗ 1 (0 + 1) (0 + 1) ∗ 11 ε + 0 + 1 + (0 + 1) ∗ 1 (0 + 1) :‫הינן‬ RL ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ,‫ולכן‬ .(‫ביטוי‬ ‫מכל‬ ‫קצרה‬ ‫הכי‬ ‫המילה‬ ‫את‬ ‫)לוקחים‬ [ε] , [1] , [10] , [11] ‫שקילות‬ ‫מחלקות‬ ‫אינסוף‬ ‫אם‬ ‫אינסופית‬ ‫לשפה‬ ‫דוגמא‬ 15.3.3 . L = n w ∈ Σ∗ #a (w) = #b (w) o ,Σ = {a, b} :x ∈ Σ∗ ‫מילה‬ ‫עבור‬ rcL (x) = n z ∈ Σ∗ #a (x) + #a (z) = #b (x) + #b (z) o = n z ∈ Σ∗ #a (z) − #b (z) = #b (z) − #a (z) o :‫הינן‬ RL ‫של‬ ‫השקילות‬ ‫מחלקות‬ ,‫לכן‬ ..., b3 , b2 , [b] , [ε] , [a] , a2 , a3 , ... :‫כאשר‬ [ε] = n x ∈ Σ∗ #a (x) = #b (x) o :i ≥ 1 ‫ולכל‬ ai = n x ∈ Σ∗ #a (x) − #b (x) = i o bi = n x ∈ Σ∗ #b (x) − #a (x) = i o .‫אינסופי‬ (‫)מדרגה‬ ‫מיחס‬ ‫היא‬ RA ‫זאת‬ ‫בדוגמא‬ A = hQ, Σ, δ, q0, Fi ‫ויהי‬ ,Σ ‫מעל‬ ‫רגולרית‬ ‫שפה‬L ‫תהי‬ 15.1 ‫למה‬ :‫אזי‬ L ‫את‬ ‫שמזהה‬ DFA RA ⊆ RL :‫הלמה‬ ‫מנתוני‬ ‫מסקנה‬ rank (RA ) ≤ rank (RL ) ‫מייהיל־נרוד‬ ‫משפט‬ 16 (MyhillNerode theorem) :‫אזי‬ .‫שפה‬ L ⊆ Σ∗ ‫ותהי‬ ‫אב‬ Σ ‫יהי‬ rank (RL ) ∞ ⇐⇒ ‫רגולרית‬ L .‫רגולרית‬ ‫היא‬ ‫ששפה‬ ‫להוכיח‬ ‫לנו‬ ‫עוזר‬ ‫זה‬ ‫משפט‬ ‫־‬ RL ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫סופי‬ ‫מספר‬ ‫שישנם‬ ‫מראים‬ ‫אנחנו‬ ‫אם‬ .‫רגולרית‬ ‫היא‬ ‫השפה‬ ‫אזי‬ ‫מינימלי‬ DFA ‫אוטומט‬ ‫בניית‬ 16.1 ,‫השקילות‬ ‫מחלקות‬ ‫את‬ ‫ומצאנו‬ ‫סופי‬ ‫האוטומט‬ ‫כי‬ ‫שגילינו‬ ‫אחרי‬ ‫מצבים‬ ‫מספר‬ ‫עם‬ L ‫השפה‬ ‫את‬ ‫שמזהה‬ DFA ‫אוטומט‬ ‫לבנות‬ ‫ניתן‬ :‫הבא‬ ‫באופן‬ ‫מינימלי‬ :‫סופית‬ ‫בקבוצה‬ ‫מדובר‬ ‫כלומר‬ ‫־‬ rank (RL ) ∞ ‫כי‬ ‫לנו‬ ‫נתון‬ :‫נבנה‬ ‫אזי‬ AL = hQ, Σ, δ, q0, Fi ‫)קבוצה‬ RL ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ ‫־‬ Q = Σ∗ /L • .(‫סופית‬ .ε ‫של‬ ‫השקילות‬ ‫מחלקת‬ ‫־‬ qo = [ε] • ‫שהנציג‬ ‫השקילות‬ ‫מחלקות‬ ‫כל‬ ,‫כלומר‬ ‫־‬ F = n [x] x ∈ L o • .(x ∈ L) L‫ב־‬ x ‫שלהם‬ :‫המעברים‬ ‫פונקציית‬ • δ : Q × Σ → Q δ ([x] , a) = [xa] :‫מילה‬ ‫עבור‬ ‫גם‬ ‫תקף‬ ‫וזה‬ ∀w ∈ Σ∗ , [x] ∈ Q : δ ([x] , w) = [xw] 16
  • 17.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫שהיו‬‫השפות‬ ‫של‬ ‫לדוגמאות‬ ‫המינמליים‬ ‫האוטומטים‬ ‫את‬ ‫נראה‬ :(RL ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫)עפ‬ ‫מקודם‬ :L = {a, ba, baa} [a] aa // [aa] 0,1 // [ε] a 99 b %% [b] a // b AA [ba] b OO a ]] :L = 10∗ 1∗ = 10∗ + 10∗ 11 [1] 1 0 // [ε] 1 99 0 %% [11] 1 0 xx [0] 0,1 XX :L = (0 + 1) ∗ 1 (0 + 1) [10] 1 ss // [ε] 0 1 // [1] 0 33 1 [11] 0 OO 1 XX ‫מייהיל־נרוד‬ ‫משפט‬ ‫באמצעות‬ ‫להוכחה‬ ‫דוגמא‬ 16.2 ‫רגולרית‬ ‫אינה‬ ‫ששפה‬ .‫רגולרית‬ ‫אינה‬ L = n 0n 1n n ≥ 0 o ‫השפה‬ ‫כי‬ ‫נוכיח‬ ‫שקילות‬ ‫מחלקות‬ ‫של‬ ‫אינסופי‬ ‫מספר‬ ‫שיש‬ ‫להראות‬ ‫מספיק‬ :‫הוכחה‬ :‫ואכן‬ ,RL ‫היחס‬ ‫של‬ .bi / ∈ rcL aj ‫אבל‬ bi ∈ rcL ai ‫)כי‬ ai RL aj :i 6= j ‫לכל‬ ‫ו־‬ ai ‫השקילות‬ ‫מחלקות‬ ‫שתי‬ ‫בין‬ ‫מפרידה‬ ‫מילה‬ ‫היא‬ bi ,‫כלומר‬ .( aj ‫ביחס‬ ‫שונות‬ ‫שקילות‬ ‫מחלקות‬ ‫הן‬ [ε] , [a] , a2 , a3 , ... :‫לכן‬ ‫מייהיל־נרוד‬ ‫משפט‬ ‫עפ‬ ‫ולכן‬ ‫אינסופי‬ ‫מאינדקס‬ ‫הוא‬ RL ‫לכן‬ ,RL .‫רגולרית‬ ‫אינה‬ L VI ‫חלק‬ DFA ‫אוטומט‬ ‫של‬ ‫מינימיזציה‬ ‫את‬ ‫שבנינו‬ ‫כך‬ ‫עי‬ L ‫לשפה‬ ‫מינימלי‬ ‫אוטומט‬ ‫בנינו‬ ‫מקודם‬ ‫לבניית‬ ‫מסובכת‬ ‫פחות‬ ‫קצת‬ ‫דרך‬ ‫נראה‬ ‫כעת‬ ,AL ‫האוטומט‬ .AL ‫של‬ ‫לזה‬ ‫זהה‬ ‫מצבים‬ ‫מספר‬ ‫עם‬ L ‫את‬ ‫שיזהה‬ ‫אוטומט‬ ‫להפרדה‬ ‫ניתנים‬ ‫מצבים‬ 17 .p, q ∈ Q ‫כאשר‬ ,‫כלשהו‬ DFA A = hQ, Σ, δ, q0, Fi ‫יהי‬ :‫הבא‬ ‫באופן‬ 11 Q ‫על‬ E ‫יחס‬ ‫נגדיר‬ : ∀z ∈ Σ∗ (δ (p, z) ∈ F ⇔ δ (q, z) ∈ F ) ⇐⇒ : pEq ‫משנה‬ ‫זה‬ ‫אין‬ z ∈ Σ∗ ‫מילה‬ ‫כל‬ ‫שעבור‬ ‫היא‬ ‫שהמשמעות‬ ‫לב‬ ‫נשים‬ .‫שלא‬ ‫או‬ ‫משניהם‬ ‫תתקבל‬ ‫שהיא‬ ‫או‬ ‫־‬ q‫ב־‬ ‫או‬ p‫ב־‬ ‫אנחנו‬ ‫אם‬ .(‫שקולים‬ q‫ו־‬ p) .q‫ל־‬ ‫שקול‬ p‫ש־‬ ‫אומרים‬ pEq ‫אם‬ .‫שקילות‬ ‫למחלקות‬ ‫אותו‬ ‫שמחלק‬ Q ‫על‬ ‫שקילות‬ ‫יחס‬ ‫הוא‬ E .‫להפרדה‬ ‫ניתנים‬ q‫ו־‬ p‫ש־‬ ‫אומרים‬ ‫שקולים‬ ‫אינם‬ q‫ו־‬ p ‫אם‬ ‫כך‬ w ∈ Σ∗ ‫מילה‬ ‫קיימת‬ ⇐⇒ ‫להפרדה‬ ‫ניתנים‬ q‫ו־‬p .(‫להפך‬ ‫)או‬ δ (q, w) / ∈ L∧δ (p, w) ∈ L‫ש־‬ .‫מפרידה‬ ‫מילה‬ ‫נקראת‬ ‫כזאת‬ w ‫מילה‬ :‫דוגמא‬ A = q1 1 1 // q0 0 88 1 q3 0,1 q2 0 YY 1 88 :z ∈ Σ∗ ‫עבור‬ ‫כי‬ ‫־‬ q1Eq2 .(δ (q1, z) ∈ F ⇔ δ (q2, z) ∈ F) ⇐⇒ z ∈ 0∗ 1 (0 + 1) ∗ .(‫)למשל‬ ”1” ‫מפרידה‬ ‫מילה‬ ‫־‬ q0Eq1 .(‫)למשל‬ ”1” ‫מפרידה‬ ‫מילה‬ ‫־‬ q0Eq2 .(‫)למשל‬ ”ε” ‫מפרידה‬ ‫מילה‬ ‫־‬ q1Eq3 ‫ולקבל‬ ‫אחד‬ ‫למצב‬ A‫ב־‬ ‫השקולים‬ ‫המצבים‬ ‫שני‬ ‫את‬ ‫לצמצם‬ ‫ניתן‬ :‫יותר‬ ‫קטן‬ ‫מצבים‬ ‫מספר‬ ‫עם‬ A‫ל־‬ ‫שקול‬ ‫אוטומט‬ // q0 0,1 // q1,2 0 1 // q3 0,1 :‫היא‬ ‫שלהם‬ ‫השפה‬ ‫־‬ ‫שקולים‬ ‫האוטומטים‬ ‫שני‬ .(0 + 1) 0∗ 1 (0 + 1) ∗ .‫מילים‬ ‫על‬ ‫ולא‬ ‫מצבים‬ ‫על‬ ‫יחס‬ ‫שזהו‬ ‫לכך‬ ‫לב‬ ‫לשים‬ ‫חשוב‬11 17
  • 18.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ A‫של‬ ‫הצימצום‬ ‫אוטומט‬ ‫בניית‬ 18 A0 ‫אוטומט‬ ‫נבנה‬ ,A = hQ, Σ, δ, q0, Fi DFA ‫אוטומט‬ ‫בהינתן‬ :‫הבא‬ ‫באופן‬ A ‫של‬ ‫הצמצום‬ ‫הנקרא‬ A0 = hQ0 , Σ, δ0 , q0 0, F0 i :‫כאשר‬ .E ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ ‫־‬ Q0 = Q/E • .Q0 = n [q] q ∈ Q o .q0 0 = [q0] • ‫המקבלים‬ ‫המצבים‬ ‫כל‬ ‫לא‬ :‫)הערה‬ F0 = n [q] q ∈ F o • ‫מחלקות‬ ‫כל‬ ‫כלומר‬ .(‫שקילות‬ ‫מחלקת‬ ‫באותה‬ ‫להיות‬ ‫חייבים‬ .F ‫של‬ ‫השקילות‬ :δ0 ‫לגבי‬ • δ0 : Q0 × Σ → Q0 δ0 ([q] , a) = [δ (q, a)] , (∀a ∈ Σ) :w ∈ Σ∗ ‫מילה‬ ‫עבור‬ ‫גם‬ δ0 ‫את‬ ‫להרחיב‬ ‫שניתן‬ ‫וכמובן‬ .δ0 ([q] , w) = [δ (q, w)] ‫נקרא‬ ‫שקולים‬ ‫שונים‬ ‫מצבים‬ ‫בו‬ ‫שאין‬ DFA ‫אוטומט‬ 18.1 ‫הגדרה‬ :‫מתקיים‬ ‫אםם‬ ‫מצומצם‬ ‫הוא‬ ‫אוטומט‬ .‫מצומצם‬ ‫אוטומט‬ .p = q ⇐ pEq :p, q ∈ Q ‫כל‬ ‫עבור‬ DFA‫ב־‬ ‫שקולים‬ ‫מצבים‬ ‫לזוהי‬ ‫אלגוריתם‬ 18.1 A = hQ, Σ, δ, q0, Fi ‫נתון‬ :‫נסמן‬ p, q ∈ Q ‫שונים‬ ‫מצבים‬ ‫שני‬ ‫כל‬ ‫עבור‬ :‫מקדים‬ ‫שלב‬ ∆ (p, q) = ∅ ‫אזי‬ (‫ההפך‬ ‫)או‬ p / ∈ F ∧ q ∈ F ‫אם‬ :p 6= q ‫לכל‬ .1 .∆ (p, q) = ε ‫ולכל‬ ∆ (p, q) = ∅ ‫שעבורם‬ p, q ‫שונים‬ ‫מצבים‬ ‫שני‬ ‫כל‬ ‫עבור‬ .2 :‫האם‬ ‫בודקים‬ a ∈ Σ ∆ (δ (p, a) , δ (q, a)) 6= ∅ .‫מסומן‬ ‫זה‬ ‫־‬ ‫כלומר‬ ‫)נפסיק‬ ‫הבא‬ ‫לזוג‬ ‫ונעבור‬ ∆ (p, q) = a ‫־‬ ‫נסמן‬ :‫כן‬ ‫אם‬ (‫)א‬ .(‫הזה‬ ‫הזוג‬ ‫עבור‬ ‫לחפש‬ ,‫חדש‬ ‫מצבים‬ ‫זוג‬ ‫לפחות‬ ‫סומן‬ 2 ‫צעד‬ ‫של‬ ‫האחרון‬ ‫בביצוע‬ ‫אם‬ .3 .2‫ל־‬ ‫חזור‬ ‫אז‬ ∆ (p, q) = ∅ ‫שעבורם‬ p, q ‫שונים‬ ‫מצבים‬ ‫זוג‬ ‫כל‬ ‫על‬ ‫הכרז‬ .4 .‫ועצור‬ ‫שוקלים‬ ‫כמצבים‬ ‫באלגוריתם‬ ‫לשימוש‬ ‫דוגמא‬ 18.1.1 :‫הבא‬ ‫האוטומט‬ ‫את‬ ‫ניקח‬ q1 1 0 ** q3 1 0 jj // q0 0 66 1 (( q2 1 OO 0 YY q4 0 oo 1 bb ‫אחד‬ ‫תא‬ ‫שמכילה‬ ‫טבלה‬ ‫שבונים‬ ‫בכך‬ ‫האלגוריתם‬ ‫את‬ ‫מיישמים‬ ‫שכבר‬ ‫תאים‬ ‫זה‬ ‫השחור‬ ‫הריבוע‬ ‫עם‬ ‫)תאים‬ :‫שונים‬ ‫מצבים‬ ‫זוג‬ ‫לכל‬ ∆ (p, q) ‫כאשר‬ ∅ ‫פירושו‬ ‫ריק‬ ‫תא‬ ‫וכל‬ ,‫בטבלה‬ ‫תא‬ ‫שלהם‬ ‫לזוג‬ ‫יש‬ .(‫התא‬ ‫תוכן‬ = q1 q2 q3 q4 q0 q1 q2 q3 ε (‫ההפך‬ ‫)או‬ q / ∈ F‫ו־‬ p ∈ F‫ש־‬ ‫כך‬ ‫מצבים‬ ‫זוג‬ ‫לכל‬ ‫נשים‬ ‫כעת‬ :‫בתא‬ q1 q2 ε ε q3 q4 ε ε ε q0 q1 q2 q3 ‫ש־‬ ‫ונראה‬ a = 0 ‫ניקח‬ :(q0, q1)‫מ־‬ ‫נתחיל‬ .∆ (δ (q0, 0) , δ (q1, 0)) = ∆ (q1, q3) = ∅ :‫לחפש‬ ‫להמשיך‬ ‫נצטרך‬ ‫האלגוריתם‬ ‫עפ‬ ‫לכן‬ .∆ (δ (q0, 1) , δ (q1, 1)) = ∆ (q2, q1) = ε :∆ (q0, q1) = 1 ‫ולכן‬ ‫־‬ ‫ריק‬ ‫אינו‬ ‫התא‬ !‫זהו‬ q1 1 q2 ε ε q3 q4 ε ε ε q0 q1 q2 q3 :‫כי‬ ‫לב‬ ‫נשים‬ :(q0, q3)‫ל־‬ ‫נעבור‬ ‫כעת‬ ‫לכן‬ ‫מצב‬ ‫לאותו‬ ‫והגענו‬ ‫־‬ ∆ (δ (q0, 0) , δ (q3, 0)) = ∆ (q1, q1) .‫ריק‬ ‫זה‬ ‫את‬ ‫נשאיר‬ ‫למצב‬ ‫הגענו‬ ‫כאן‬ ‫גם‬ ‫־‬ ∆ (δ (q0, 1) , δ (q3, 1)) = ∆ (q2, q4) = ∅ .(‫ריק‬ ‫)במצב‬ ∆ (q0, q3) = ∅ ‫את‬ ‫נשאיר‬ ‫לכן‬ .‫ריק‬ 18
  • 19.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ :(q1,q3)‫ל־‬ ‫נעבור‬ ‫כעת‬ ‫נמשיך‬ ‫ולכן‬ ‫־‬ ∆ (δ (q1, 0) , δ (q3, 0)) = ∆ (q3, q1) = ∅ ...‫הלאה‬ ∆ (q1, q3) = 1 ‫ולכן‬ ∆ (δ (q1, 1) , δ (q3, 1)) = ∆ (q1, q4) = ε :‫הטבלה‬ ‫את‬ ‫ונעדכן‬ q1 1 q2 ε ε q3 1 q4 ε ε ε q0 q1 q2 q3 :(q2, q3)‫ל־‬ ‫נעבור‬ .∆ (q2, q3) = 0 ‫ולכן‬ ∆ (δ (q2, 0) , δ (q3, 0)) = ∆ (q2, q1) = ε q1 1 q2 ε ε q3 1 0 q4 ε ε ε q0 q1 q2 q3 :(q2, q4) ‫הזוג‬ ‫על‬ ‫נסתכל‬ ,‫כעת‬ q2‫ל־‬ ‫בשניהם‬ ‫נגיע‬ 0 ‫עבור‬ ‫)כי‬ ∅ ‫נקבל‬ ‫המקרים‬ ‫בשני‬ ‫כי‬ ‫לב‬ ‫נשים‬ .(q1‫ל־‬ ‫בשניהם‬ ‫נגיע‬ 1 ‫ועבור‬ .‫שהיא‬ ‫כמו‬ ‫הטבלה‬ ‫את‬ ‫נשאיר‬ ‫אנחנו‬ ‫ולכן‬ :‫הינה‬ ‫הסופית‬ ‫הטבלה‬ q1 1 q2 ε ε q3 1 0 q4 ε ε ε q0 q1 q2 q3 ‫על‬ E ‫היחס‬ ‫של‬ ‫השקילות‬ ‫מחלקות‬ ‫כלומר‬ ,q0Eq3, q2Eq4 :‫ולכן‬ :‫הינן‬ Q . [q0] = {q0, q3} , {q1} = [q1] , {q2, q4} = [q2] :A ‫של‬ ‫הצמצום‬ ‫אוטומט‬ ‫את‬ ‫נבנה‬ ,‫כעת‬ // [q0] 1 // 0 [q2] 0 1 yy [q1] 1 XX 0 `` ‫ולכן‬ ,‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫ישנם‬ A‫שב־‬ ‫ייתכן‬ 18.2 ‫הערה‬ ‫שאינם‬ ‫מצבים‬ ‫ישנם‬ (A ‫של‬ ‫הצמצום‬ ‫)אוטומט‬ A0 ‫ב־‬ ‫שגם‬ ‫יתכן‬ ‫מורכבת‬ A DFA ‫אוטומט‬ ‫של‬ ‫מינימיזציה‬ ,‫לכן‬ .‫להשגה‬ ‫ניתנים‬ :‫שלבים‬ ‫משני‬ .A‫ב־‬ ‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫הסרת‬ .‫א‬ .‫שנשאר‬ ‫האוטומט‬ ‫צמצום‬ .‫ב‬ L ‫את‬ ‫שמזהה‬ A0 DFA ‫נותנת‬ A DFA ‫אוטומט‬ ‫של‬ ‫מינימיזציה‬ .A ‫את‬ ‫שמזהים‬ ‫האוטומטים‬ ‫כל‬ ‫מבין‬ ‫מינימלי‬ ‫והוא‬ .AL ‫את‬ ‫נותן‬ ‫זה‬ ‫למעשה‬ ‫אוטומטים‬ ‫בין‬ ‫איזומורפיזם‬ 19 ‫יהיו‬ :‫הגדרה‬ A1 = hQ1, Σ, δ1, q1, F1i A2 = hQ2, Σ, δ2, q2, F2i .‫־ים‬DFA ‫שני‬ ‫קיימת‬ ‫אם‬ A1 ∼ = A2 ‫ורושמים‬ A2‫ל־‬ ‫איזומופרי‬ A1 ‫ש‬ ‫אומרים‬ ,‫ההתחלתי‬ ‫המצב‬ ‫על‬ ‫ששומרת‬ f : Q1 → Q2 ‫ועל‬ ‫חחע‬ ‫פונקציה‬ ,‫כלומר‬ ,‫המעברים‬ ‫פונקציית‬ ‫על‬ ‫ושומרת‬ ‫סופיים‬ ‫מצבים‬ ‫על‬ ‫שומרת‬ :‫שמקיימת‬ ‫פונקציה‬ .f (q1) = q2 .1 :q ∈ Q1 ‫עבור‬ .2 .f (q) ∈ F2 ⇐⇒ q ∈ F1 .a ∈ Σ ‫ולכל‬ q ∈ Q1 ‫לכל‬ ,δ2 (f (q) , a) = f (δ1 (q, a)) .3 ‫המינימלי‬ ‫האוטומט‬ ‫יחידות‬ ‫משפט‬ 19.1 ‫ניתנים‬ ‫מצביו‬ ‫שכל‬ ‫מצומצם‬ DFA A = hQ, Σ, δ, q0, Fi ‫יהי‬ :‫אזי‬ ,L = L (A) ‫ותהי‬ ‫להשגה‬ A ∼ = AL ‫של‬ ‫הנושא‬ ‫סוף‬ !!‫אוטומטים‬ 19
  • 20.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ VII‫חלק‬ ‫ושפות‬ ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ ‫הקשר‬ ‫חסרות‬ (CFG) ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ 20 ‫הגדרות‬ 20.1 :‫כאשר‬ G = hV, Σ, P, Ai :‫רבייעיה‬ ‫זוהי‬ ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫משתנים‬ ‫נקראים‬ ‫שערכיה‬ ‫ריקה‬ ‫לא‬ ‫סופית‬ ‫קבוצה‬ ‫היא‬ ‫־‬ V • :‫ב‬ ‫הקבוצה‬ ‫אברי‬ ‫את‬ ‫לסמן‬ ‫נהוג‬ ,‫משתנים‬ :‫או‬ ‫דקדוקיים‬ .A, B, C, ... ‫נקראים‬ ‫שאריה‬ V ‫ל־‬ ‫וזרה‬ ‫ריקה‬ ‫לא‬ ,‫סופית‬ ‫קבוצה‬ ‫היא‬ ‫־‬ Σ • ‫הקבוצה‬ ‫אברי‬ ‫את‬ ‫לסמן‬ ‫נהוג‬ .‫אותיות‬ :‫או‬ ‫טרמינליים‬ ‫סימנים‬ .a, b, c, ... :‫ב‬ ,(G ‫של‬ ‫השכתוב‬ ‫כללי‬ :‫)או‬ ‫הגזירה‬ ‫כללי‬ ‫קבוצת‬ ‫היא‬ ‫־‬ P • ‫מדובר‬ ,‫כלומר‬ ,V × (V ∪ Σ) ∗ ‫לקבוצה‬ ‫חלקית‬ ‫קבוצה‬ ‫זוהי‬ ‫את‬ .α ∈ (V ∪ Σ) ∗ ‫ו־‬ A ∈ V ‫כאשר‬ (A, α) ‫סדורים‬ ‫בזוגות‬ .A → α :‫הבאה‬ ‫בצורה‬ ‫לרשום‬ ‫נהוג‬ (A, α) ‫הגזירה‬ ‫כלל‬ ‫ההתחלתי‬ ‫המשתנה‬ ‫נקרא‬ ‫אשר‬ V ‫ב־‬ ‫מיוחד‬ ‫איבר‬ ‫הינו‬ ‫־‬ S • .G ‫של‬ :P ‫לגבי‬ :‫להיות‬ ‫יכולים‬ P ‫אברי‬ ‫אזי‬ V = {S, A} , Σ = {a, b, c} ‫נניח‬ ‫אם‬ (S, aSa) ⇔ S → aSa (A, AaS) ⇔ A → AaS (S, aAbc) ⇔ S → aAbc (S, a) ⇔ S → a ‫אזי‬ ,V ‫ב־‬ ‫כלשהו‬ ‫איבר‬ ‫עבור‬ ‫אפשרויות‬ ‫משתי‬ ‫יותר‬ ‫לנו‬ ‫יש‬ ‫כאשר‬ :‫הנל‬ ‫הדוגמא‬ ‫עבור‬ ,‫למשל‬ ,‫ב־או‬ ‫זאת‬ ‫לציין‬ ‫נהוג‬ S → aSa aAbc a ‫אחת‬ ‫רק‬ ‫לבחור‬ ‫יכולים‬ ‫אנחנו‬ ,‫)כלומר‬ ‫או‬ ‫מסמל‬ ‫המפריד‬ ‫והקו‬ .(‫מהאפשרויות‬ ‫כללי‬ ‫ובאופן‬ ,‫בדקדוק‬ ‫סימן‬ ‫נקרא‬ V ∪ Σ ‫הקבוצה‬ ‫של‬ ‫איבר‬ • .X, Y, Z, ... :‫ב‬ ‫אותו‬ ‫מסמנים‬ (aAbSA :‫)למשל‬ ‫פסוקית‬ ‫תבנית‬ ‫נקראת‬ (V ∪ Σ) ∗ ‫ב־‬ ‫מילה‬ • .(abaac :‫)למשל‬ .‫טרמינלית‬ ‫מילה‬ ‫נקראת‬ Σ∗ ‫ב־‬ ‫ומילה‬ .α, β, γ, ... :‫ב‬ ‫פסוקיות‬ ‫תבניות‬ ‫נסמן‬ .u, v, w, ... :‫ב‬ ‫טרמינליות‬ ‫מילים‬ ‫נסמן‬ .‫פסוקיות‬ ‫תבניות‬ ‫הם‬ ‫טרמינלית‬ ‫מילה‬ ‫וכל‬ ‫סימן‬ ‫שכל‬ ‫כמובן‬ ‫גזירה‬ ‫הגדרות‬ 20.1.1 ‫לגזירה‬ ‫ניתנת‬ ψ‫ש־‬ ‫אומרים‬ .ϕ, ψ ∈ (V ∪ Σ) ∗ ‫תהיינה‬ • :‫ורושמים‬ G ‫בדקדוק‬ ϕ‫מ־‬ ‫ישירה‬ ϕ ⇒ G ψ ‫גזירה‬ ‫כלל‬ ‫הוא‬ A → α ‫ו־‬ ψ = βαγ‫ו־‬ ϕ = βAγ ‫אם‬ .P‫ב־‬ ,‫הדקדוק‬ ‫ידוע‬ ‫אם‬ ,‫כמו־כן‬ ,‫בלבד‬ ‫אחד‬ ‫מעבר‬ ‫על‬ ‫כאן‬ ‫)מדובר‬ ‫מהסימן‬ G‫ה־‬ ‫את‬ ‫להשמיט‬ ‫אפשר‬ ‫אזי‬ ,‫למשל‬ ‫אחד‬ ‫רק‬ ‫יש‬ ‫כי‬ .(‫הנל‬ :‫ורושמים‬ G ‫בדקדוק‬ 12 ϕ‫מ־‬ ‫גזירה‬ ψ‫ש־‬ ‫אומרים‬ • ϕ ⇒ G ∗ ψ ‫פסוקיות‬ ‫תבניות‬ ‫של‬ ‫סופית‬ ‫סדרה‬ ‫קיימת‬ ‫אם‬ ϕn = ψ ,ϕ = ϕ0‫ש־‬ ‫כך‬ ϕ1, ..., ϕn ∈ (V ∪ Σ) ∗ :0 ≤ i n ‫ולכל‬ ϕi ⇒ G ϕi+1 :‫)או‬ ‫גזירה‬ ‫סדרת‬ ‫נקראת‬ ‫כזאת‬ ‫פסוקיות‬ ‫תבניות‬ ‫סדרת‬ .G ‫בדקדוק‬ n ‫מאורך‬ (‫גזירה‬ ‫צעדים‬ n‫ב־‬ ϕ‫מ־‬ (‫לגזירה‬ ‫ניתנת‬ :‫)או‬ ‫גזירה‬ ψ‫ש־‬ ‫נאמר‬ • :‫ונרשום‬ ϕ ⇒ G n ψ ‫ש־‬ ‫כך‬ ϕ1, . . . , ϕn :n ‫מאורך‬ ‫גזירה‬ ‫סדרת‬ ‫קיימת‬ ‫אם‬ .ψ = ϕn‫ו־‬ ϕ = ϕ1 :‫הנל‬ ‫ההגדרות‬ ‫שלפי‬ ‫לב‬ ‫נשים‬ • .ϕ = ψ ⇐⇒ ϕ ⇒ G 0 ψ J .ϕ ⇒ G ψ ⇐⇒ ϕ ⇒ G 1 ψ J .n ≥ 0 ‫עבור‬ ϕ ⇒ G ∗ ψ ⇐⇒ ϕ ⇒ G n ψ J ‫מהמשתנה‬ ‫לגזירה‬ ‫היתנת‬ φ ∈ (V ∪ E) ∗ ‫פסוקית‬ ‫תבנית‬ • :‫נקראת‬ S ⇒ G ∗ φ :‫כלומר‬ (G ‫הדקדוק‬ ‫)של‬ S ‫ההתחלתי‬ .G ‫של‬ ‫פסוקית‬ ‫תבנית‬ :‫מקיימת‬ ‫אשר‬ w ∈ Σ∗ ‫מילה‬ ‫היא‬ G ‫של‬ ‫טרמינלית‬ ‫מילה‬ • .S ⇒ G ∗ w ϕ‫מ־‬ ‫לגזירה‬ ‫ניתנת‬ ψ :‫או‬12 20
  • 21.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫מסומנת‬G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫של‬ ‫השפה‬ • :‫עי‬ ‫ומוגדרת‬ L (G)‫ב־‬ L (G) = w ∈ Σ∗ S ⇒ G ∗ w ‫היא‬ ‫הכוונה‬ ‫אזי‬ L ‫את‬ ‫יוצר‬ ‫שהוא‬ G ‫דקדוק‬ ‫על‬ ‫שאומרים‬ • .L (G) = L‫ש־‬ (CFL) ‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫נקראת‬ L ⊆ Σ∗ ‫כאשר‬ L ‫שפה‬ • .‫אותה‬ ‫שיוצר‬ G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫קיים‬ ‫אם‬ ‫אם‬ ‫שקולים‬ ‫דקדוקים‬ ‫הם‬ G1, G2 ‫שהדקדוקים‬ ‫אומרים‬ • .‫השפה‬ ‫אותה‬ ‫את‬ ‫יוצרים‬ ‫הם‬ ,‫כלומר‬ ‫־‬ L (G1) = L (G2) ‫ל־‬ ‫חלקי‬ ‫דקדוק‬ ‫הוא‬ G1 = hV1, Σ1, P1, S1i‫ש־‬ ‫אומרים‬ • :‫אם‬ G2 = hV2, Σ2, P2, S2i .V1 ⊆ V2 J .Σ1 ⊆ Σ2 J .P1 ⊆ P2 J .S1 = S2 J . L (G1) ⊆ L (G2) :‫מתקיים‬ ‫זה‬ ‫שבמקרה‬ ‫כמובן‬ ‫הקשר‬ ‫חסרות‬ ‫שפות‬ ‫של‬ ‫סגירות‬ ‫תכונות‬ 20.2 ‫שני‬ G2 = hV2, Σ, P2, S2i‫ו־‬ G1 = hV1, Σ, P1, S1i :‫יהיו‬ L (G2) = L2 ,L (G1) = L1 :‫נסמן‬ .‫הקשר‬ ‫חסרי‬ ‫דקודקים‬ . .13 V1 ∩ V2 = ∅ ‫כי‬ ‫נניח‬ ‫בהכ‬ ‫השפות‬ ‫את‬ ‫שיוצרים‬ ‫הקשר‬ ‫חסרי‬ ‫דקודקים‬ ‫של‬ ‫בניות‬ ‫נתאר‬ ‫כעת‬ .L∗ 1 ,L1L2 , L1 ∪ L2 :‫הנל‬ ,‫כלומר‬ ,‫חדש‬ ‫סימן‬ ‫הוא‬ V ‫ב־‬ ‫שנגדיר‬ S‫ה־‬ ‫הסעיפים‬ ‫שלושת‬ ‫בכל‬ .‫עצמו‬ ‫לדקדוק‬ ‫ספציפי‬ ‫סימן‬ ‫הוא‬ L1 ∪ L2 20.2.1 G = hV1 ∪ V2 ∪ {S} , Σ, P1 ∪ P2 ∪ {S → S1, S → S2} , Si :‫הינו‬ ‫הנל‬ ‫בדקודק‬ P ,‫כלומר‬ S → S1 S2 P1 → ... P2 → ... .L1 ∪ L2 ‫את‬ ‫יוצר‬ ‫זה‬ ‫דקדוק‬ ‫מהקבוצות‬ ‫באחת‬ ‫אותו‬ ‫נחליף‬ ‫פשוט‬ ‫הקבוצות‬ ‫בשתי‬ ‫שמופיע‬ ‫סימן‬ ‫ישנו‬ ‫אם‬13 .‫יתקיים‬ ‫שהתנאי‬ ‫כך‬ L1L2 20.2.2 G = hV1 ∪ V2 ∪ {S} , Σ, P1 ∪ P2 ∪ {S → S1S2} , Si :‫הינו‬ ‫הנל‬ ‫בדקודק‬ P ,‫כלומר‬ S → S1S2 P1 → ... P2 → ... .L1L2 ‫את‬ ‫יוצר‬ ‫זה‬ ‫דקדוק‬ L∗ 1 20.2.3 G = hV1 ∪ {S} , Σ, P1 ∪ {S → S1S, S → ε} , Si :‫הינו‬ ‫הנל‬ ‫בדקודק‬ P ,‫כלומר‬ S → S1S ε P1 → ... .L∗ 1 ‫את‬ ‫יוצר‬ ‫זה‬ ‫דקדוק‬ ‫סגורות‬ ,Σ ‫אב‬ ‫מעל‬ ‫ההקשר‬ ‫חסרות‬ ‫השפות‬ ‫משפחת‬ 20.1 ‫משפט‬ .(‫הרגולריות‬ ‫לפעולות‬ ,‫)כלומר‬ ‫ואיטרציה‬ ‫שירשור‬ ,‫לאיחוד‬ ‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫דוגמאות‬ 20.3 :‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫דוגמאות‬ ‫שתי‬ ‫על‬ ‫נסתכל‬ .Σ = {a, b} :‫המקרים‬ ‫בשני‬ L = ‫־‬ ‫כלומר‬ ,a‫ב־‬ ‫שמסתיימות‬ ‫המילים‬ ‫כל‬ ‫־‬ ‫ראשונה‬ ‫דוגמה‬ : n w ∈ L w = (a + b) ∗ a o G = h{S} , {a, b} , {S → a, S → aS, S → bS} , Si :‫הינן‬ ‫בשפה‬ ‫הגזירה‬ ‫כללי‬ ,‫כלומר‬ S → aS bS a :‫גזירה‬ ‫כללי‬ ‫סדרת‬ ‫באמעצות‬ bbaa :‫המילה‬ ‫את‬ ‫למשל‬ ‫נגזור‬ S ⇒ bS ⇒ bbS ⇒ bbaS ⇒ bbaa .S‫ה־‬ ‫במקום‬ ‫אותו‬ ‫ושמנו‬ ‫גזירה‬ ‫בכלל‬ ‫השתמשנו‬ ‫פעם‬ ‫בכל‬ :N 3 n ≥ 0 ‫עבור‬ an bn ‫־‬ ‫מהצורה‬ ‫המילים‬ ‫כל‬ ‫־‬ ‫שנייה‬ ‫דוגמא‬ G = h{S} , {a, b} , {S → ε, S → aSb, } , Si S → aSb ε 21
  • 22.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫גזירה‬‫עצי‬ 21 ‫סדרת‬ ‫באמצעות‬ ‫רק‬ ‫לא‬ ‫הקשר‬ ‫חסר‬ ‫בדקדוק‬ ‫מילה‬ ‫לגזור‬ ‫ניתן‬ .‫עץ‬ ‫באמצעות‬ ‫למשל‬ ‫אלא‬ ‫גזירה‬ ‫נוכל‬ ‫אזי‬ ‫הראשונה‬ ‫מהשפה‬ aba ‫המילה‬ ‫את‬ ‫לגזור‬ ‫נרצה‬ ‫למשל‬ ‫אם‬ :‫כזה‬ ‫עץ‬ ‫ליצור‬ S {{ a S {{ b S a :‫המקרים‬ ‫שני‬ ‫בין‬ ‫להבדל‬ ‫כללי‬ ‫באופן‬ ‫לב‬ ‫נשים‬ ‫אזי‬ B → ab‫ו־‬ A → a b :‫הבאים‬ ‫הגזירה‬ ‫כללי‬ ‫את‬ ‫לנו‬ ‫יש‬ ‫אם‬ :‫כך‬ ‫יראו‬ ‫הגזירה‬ ‫עצי‬ A A B a b ab ‫עץ‬ ‫איזה‬ ‫לבחור‬ ‫צריכים‬ ‫אנחנו‬ A ‫של‬ ‫שבמקרה‬ ‫לב‬ ‫לשים‬ ‫חשוב‬ .‫האפשרויות‬ ‫משתי‬ ‫רוצים‬ ‫אנחנו‬ ‫פורמליות‬ ‫הגדרות‬ 21.1 ‫גזירה‬ ‫עץ‬ .‫הקשר‬ ‫חסר‬ ‫דקודק‬ G = hV, Σ, P, Si ‫יהי‬ 21.1 ‫הגדרה‬ ‫ב־‬ ‫נסמנו‬ ‫אשר‬ ‫הבאות‬ ‫הדרישות‬ ‫את‬ ‫המקיים‬ 14 ‫מכוון‬ ‫עץ‬ ‫זהו‬ G‫ב־‬ :T ‫או‬ X ∈ V ∪ Σ ‫הדקדוק‬ ‫של‬ ‫בסימן‬ ‫מסומן‬ ‫בעץ‬ ‫צומת‬ ‫כל‬ .1 .ε‫ב־‬ .(G ‫של‬ ‫ההתחלתי‬ ‫)המשתנה‬ S‫ב־‬ ‫מסומן‬ ‫העץ‬ ‫של‬ ‫השורש‬ .2 ‫איבר‬ ‫הוא‬ (‫עלה‬ ‫שאינו‬ ‫)קודקוד‬ ‫פנימי‬ ‫צומת‬ ‫כל‬ ‫של‬ ‫הסימן‬ .3 .(‫דקדוקי‬ ‫)משתנה‬ V ‫של‬ ‫כי‬ ‫ייתכן‬ ‫לא‬ ,‫)כלומר‬ ‫יחיד‬ ‫צומת‬ ‫הוא‬ ε‫ב־‬ ‫שמסומן‬ ‫צומת‬ ‫כל‬ .4 .(‫אח‬ ‫יהיה‬ ‫מוצת‬ ‫לאותו‬ A ‫של‬ ‫הבנים‬ ‫אם‬ :(A ∈ V ) A‫ב־‬ ‫המסומן‬ ‫פנימי‬ ‫צומת‬ ‫לכל‬ .5 ‫)הוא‬ A → X1X2 · · · Xn ∈ P ‫אזי‬ X1, X2, · · · , Xn ‫הם‬ .(‫גזירה‬ ‫כלל‬ :‫הערות‬ ‫כמה‬ .‫עלה‬ ‫הוא‬ ‫טרמינלי‬ ‫בסימן‬ ‫או‬ ε‫ב־‬ ‫שמסומן‬ ‫בעץ‬ ‫צומת‬ ‫כל‬ • .‫טרמינלי‬ ‫שאינו‬ ‫בסימן‬ ‫מסומן‬ ‫להיות‬ ‫יכול‬ ‫עלה‬ ‫אבל‬ ‫העץ‬ ‫חזית‬ 21.1.1 ‫הסדר‬ ‫לפי‬ T ‫של‬ ‫העלים‬ ‫סימני‬ ‫שירשור‬ ‫עי‬ ‫המתקבלת‬ ‫המילה‬ • .‫העץ‬ ‫חזית‬ ‫נקראת‬ (‫לימין‬ ‫)משמאל‬ ‫שלהם‬ ‫הטבעי‬ (V ∪ Σ) ∗ ‫ב־‬ ‫מילה‬ ,‫כלומר‬ ,‫פסוקית‬ ‫תבנית‬ ‫היא‬ ‫העץ‬ ‫חזית‬ • .S‫מ־‬ ‫לגזירה‬ ‫הניתנת‬G‫ב־‬ ‫פסוקית‬ ‫תבנית‬ ‫גם‬ ‫וזוהי‬ ‫מילה‬ ‫היא‬ ‫אזי‬ ,‫דקדוקי‬ ‫משתנה‬ ‫מכילה‬ ‫אינה‬ ‫העץ‬ ‫חזית‬ ‫אם‬ • .w ∈ L (G)‫ו־‬ w ∈ Σ∗ ‫טרמינלית‬ .‫מלא‬ ‫גזירה‬ ‫־עץ‬ ‫נקרא‬ ‫טרמינלית‬ ‫מילה‬ ‫היא‬ ‫שלו‬ ‫שהחזית‬ ‫עץ‬ • ‫שלו‬ ‫שהחזית‬ T ‫יחיד‬ ‫גזירה‬ ‫עץ‬ ‫קיים‬ w ∈ L (G) ‫מילה‬ ‫לכל‬ • :w ∈ Σ∗ ‫טרמינלית‬ ‫מילה‬ ‫עבור‬ ,‫לכן‬ .w ‫המילה‬ ‫היא‬ ‫שילת‬ G ‫בדקדוק‬ ‫מלא‬ ‫גזירה‬ ‫עץ‬ ‫קיים‬ ⇐⇒ w ∈ L (G) .w ‫היא‬ ‫שלו‬ ‫החזית‬ ‫משמעיות‬ ‫ורב‬ ‫משמעיות‬ ‫חד‬ 21.1.2 ,‫מילה‬ ‫לאותה‬ ‫גזירה‬ ‫מעץ‬ ‫יותר‬ ‫יש‬ ‫מסוים‬ ‫שבדקדוק‬ ‫ייתכן‬ • ‫לכל‬ ‫אם‬ ‫חד־משמעי‬ ‫דקדוק‬ ‫נקרא‬ G ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫לכן‬ ‫המילה‬ ‫היא‬ ‫שחזיתו‬ T ‫יחיד‬ ‫גזירה‬ ‫עץ‬ ‫קיים‬ w ∈ L (G) ‫מילה‬ .‫רב־משמעי‬ ‫נקרא‬ ‫הדקדוק‬ ‫אחרת‬ .w ‫קנוניות‬ ‫גזירות‬ 21.1.3 ‫ותהיינה‬ ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ G = hV, Σ, P, Si ‫יהי‬ 21.2 ‫הגדרה‬ ‫מ־‬ ψ‫ל־‬ ‫להגיע‬ ‫ניתן‬ ‫)כלומר‬ ϕ ⇒ G ψ ‫כי‬ ‫ונניח‬ ϕ, ψ ∈ (V ∪ Σ) ∗ ψ = χαρ‫ו־‬ ϕ = χAρ :‫ההגדרה‬ ‫לפי‬ ‫אזי‬ (G‫ב־‬ ‫אחת‬ ‫גזירה‬ ‫עי‬ϕ .χ, ρ ∈ (V ∪ Σ) ∗ ‫ו־‬ A → α ∈ P ‫כאשר‬ ,χ ∈ Σ∗ ‫אם‬ ‫ביותר‬ ‫שמאלית‬ ‫גזירה‬ ‫היא‬ ϕ ⇒ G ψ‫ש־‬ ‫אומרים‬ .ρ ∈ Σ∗ ‫אם‬ ‫ביותר‬ ‫ימנית‬ ‫גזירה‬ ‫היא‬ ϕ ⇒ G ψ‫ש־‬ ‫ואומרים‬ ‫מבוא‬ ‫של‬ ‫בסיכום‬ ‫למצוא‬ ‫ניתן‬ ,‫בפרט‬ ‫מכוונים‬ ‫עצים‬ ‫ועל‬ ‫עצים‬ ‫על‬ ‫נוסף‬ ‫מידע‬14 .('‫א‬ ‫)שנה‬ ‫המחשב‬ ‫מדעי‬ ‫של‬ ‫לתאוריה‬ 22
  • 23.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫רגולריים‬‫דקדוקים‬ 22 ‫ימני‬ ‫לינארי‬ ‫דקדוק‬ 22.1 G = ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫הוא‬ ‫ימני‬ ‫לינארי‬ ‫דקדוק‬ 22.1 ‫הגדרה‬ :‫הבאות‬ ‫מהצורות‬ ‫אחת‬ ‫הם‬ ‫בו‬ ‫הגזירה‬ ‫כללי‬ ‫שכל‬hV, Σ, P, Si :a ∈ Σ‫ו־‬ A, B ∈ V :‫עבור‬ .A → aB .1 .A → a .2 ‫)וזה‬ ‫כמובן‬ ‫אחד‬ ‫כלל‬ ‫רק‬ ‫להיות‬ ‫יכול‬ ‫הזה‬ ‫מהסוג‬ ‫־‬ S → ε .3 .(ε ∈ L (G)‫ש־‬ ‫אומר‬ .‫אב‬ Σ ‫יהי‬ 22.2 ‫משפט‬ ‫ימני‬ ‫לינארי‬ ‫דקדוק‬ ‫קיים‬ ⇐⇒ ‫רגולרית‬ ‫שפה‬ ‫היא‬ L ⊆ Σ∗ ‫שפה‬ .L = L (G)‫ש־‬ ‫כך‬ G :‫למשל‬ :‫הבאה‬ ‫השפה‬ ‫את‬ ‫ניקח‬ ‫המילים‬ ‫כל‬ ,‫כלומר‬ L = n w ∈ (0 + 1) ∗ w = 1 (0 + 1) ∗ 0 o .Σ = {0, 1} ‫כאשר‬ 0‫ב־‬ ‫ומסתיימות‬ 1‫ב־‬ ‫שמתחילות‬ :‫הנל‬ ‫השפה‬ ‫של‬ ‫ימני‬ ‫רגולרי‬ ‫דקדוק‬ S → 1A A → 0A 1A 0 .‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫היא‬ ‫רגולרית‬ ‫שפה‬ ‫כל‬ 22.3 ‫מסקנה‬ ‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫הניפוח‬ ‫למת‬ 23 ‫הניפוח‬ ‫ללמת‬ ‫דומה‬ ‫מאוד‬ ‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫הניפוח‬ ‫למת‬ .‫ובניסוח‬ ‫המילה‬ ‫של‬ ‫בפירוק‬ ‫קל‬ ‫שינוי‬ ‫עם‬ ‫אבל‬ ,(3 ‫)בחלק‬ ‫הקודמת‬ :‫הלמה‬ ‫ניסוח‬ ‫טבעי‬ ‫מספר‬ ‫קיים‬ ‫אזי‬ .Σ ‫אב‬ ‫מעל‬ ‫הקשר‬ ‫חסרת‬ ‫שפה‬ L ‫תהי‬ ‫יש‬ |w| ≥ n ‫המקיימת‬ w ∈ L ‫מילה‬ ‫שלכל‬ ‫כך‬ (‫הניפוח‬ ‫)קבוע‬ n ‫ומתקיימות‬ x, u, z, v, y ∈ Σ∗ ‫כאשר‬ w = xuvzy ‫מהצורה‬ ‫פירוק‬ :‫הבאות‬ ‫הדרישות‬ ‫שלושת‬ .|uzv| ≤ n .1 .|uv| 0 .2 .xui zvi y ∈ L :‫מתקיים‬ i ≥ 0 ‫לכל‬ .3 :‫הבא‬ ‫הדבר‬ ‫את‬ ‫לזכור‬ ‫כדאי‬ ‫המילה‬ ‫את‬ ‫לפרק‬ ‫איך‬ ‫לזכור‬ ‫בשביל‬ ‫וכעת‬ xu − vy ‫כלומר‬ ,u − v ‫לנו‬ ‫יש‬ x − y‫ה־‬ ‫בתוך‬ ,x − y ‫לנו‬ ‫יש‬ .xuzvy :‫סהכ‬ ,z ‫לנו‬ ‫יש‬ ‫אלה‬ ‫כל‬ ‫בתוך‬ (...‫טוב‬ ‫זה‬ ‫את‬ ‫זוכרים‬ ‫זה‬ ‫את‬ ‫מתרגלים‬ ‫שקצת‬ ‫)אחרי‬ ‫אינה‬ ‫ששפה‬ ‫להראות‬ ‫הוא‬ ‫כאן‬ ‫הרעיון‬ ‫הוקדמת‬ ‫הניפוח‬ ‫בלמת‬ ‫וכמו‬ ‫שני‬ ‫בעוד‬ ‫מתקיים‬ ‫לא‬ ‫השלישי‬ ‫שהכלל‬ ‫מראים‬ ‫שאנחנו‬ ‫בכך‬ ‫חה‬ .‫מתקיימים‬ ‫האחרים‬ ‫הכללים‬ ‫כמו‬ n ‫עם‬ !‫ספציפית‬ ‫)מילה‬ ‫בשפה‬ ‫כלשהי‬ ‫מילה‬ ‫בוחרים‬ ‫אנחנו‬ ‫ומראים‬ ‫חה‬ ‫שהשפה‬ ‫בשלילה‬ ‫מניחים‬ ‫ואז‬ (‫הקודמת‬ ‫הניפוח‬ ‫בלמת‬ .‫השלישית‬ ‫הדרישה‬ ‫את‬ ‫סותר‬ ‫זה‬ ,‫מסוים‬ i ‫עבור‬ ,‫כיצד‬ ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ ‫פישוט‬ 24 ‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ 24.1 .X ∈ V ∪ E ‫יהי‬ 24.1 ‫הגדרה‬ ‫מילה‬ ‫קיימת‬ ‫אם‬ (G ‫)בדקדוק‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ X‫ש־‬ ‫אומרים‬ .X ⇒ G ∗ w‫ש־‬ ‫כך‬ w ∈ Σ∗ ‫קיימות‬ ‫אם‬ (G ‫)בדקדוק‬ ‫להשגה‬ ‫ניתן‬ ‫סימן‬ ‫הוא‬ X‫ש־‬ ‫אומרים‬ ‫באיזו‬ ‫מופיע‬ X ,‫)כלומר‬ S ⇒ G ∗ αXβ‫ש־‬ ‫כך‬ α, β ∈ (V ∪ Σ) ∗ (‫הדקדוק‬ ‫של‬ ‫פסוקית‬ ‫תבנית‬ .‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ ‫טרמינלי‬ ‫סימן‬ ‫כל‬ ‫־‬ ‫ההגדרה‬ ‫לפי‬ 24.2 ‫הערה‬ ‫הסימן‬ G‫ב־‬ ‫אם‬ .‫להשגה‬ ‫הניתן‬ ‫סימן‬ ‫תמיד‬ ‫הוא‬ S ‫כמו־כן‬ .L (G) = ∅ :‫אזי‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ ‫אינו‬ S ‫ההתחלתי‬ ‫סימנים‬ ‫אותם‬ ‫להסיר‬ ‫הדרך‬ ‫את‬ ‫נציג‬ ‫הבאים‬ ‫באלגוריתם‬ ,‫לכן‬ .‫הדקדוק‬ ‫את‬ ‫לנו‬ ‫יפשטו‬ ‫אשר‬ ‫מיותרים‬ ‫מילה‬ ‫גוזרים‬ ‫שאינם‬ ‫סימנים‬ ‫להסרת‬ ‫אלגוריתם‬ 24.2 ‫טרמינלית‬ ‫מדובר‬ ‫לכן‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ ‫טרמינלי‬ ‫סימן‬ ‫שכל‬ ‫נזכור‬ ‫מילה‬ ‫גוזרים‬ ‫שאינם‬ ‫דקדוקיים‬ ‫משתנים‬ ‫על‬ ‫רק‬ ‫הזה‬ ‫באלגוריתם‬ .‫טרמינלית‬ a, b ∈ Σ ‫)כאשר‬ A → aA bA ‫כזה‬ ‫גזירה‬ ‫כלל‬ ‫לנו‬ ‫יש‬ ‫אם‬ ,‫למשל‬ ‫אינו‬ ‫שהוא‬ ‫מכיוון‬ ‫להשגה‬ ‫ניתן‬ ‫שאינו‬ ‫סימן‬ ‫הוא‬ A ‫אזי‬ (A ∈ V ‫ו־‬ .‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ .G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫קלט‬ ‫הצגת‬ ‫או‬ ‫ריקה‬ ‫היא‬ (‫הדקדוק‬ ‫)שפת‬ L (G)‫ש־‬ ‫הכרזה‬ :‫פלט‬ ‫אשר‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזר‬ ‫בו‬ ‫סימן‬ ‫שכל‬ G0 = hV 0 , Σ, P0 , Si .L (G0 ) = L (G) :‫מקיים‬ :V 0 ‫חישוב‬ .1 ,‫)כלומר‬ V 0 = A ∈ V ∃w ∈ Σ∗ , A → w ∈ P (‫)א‬ ‫המשתנים‬ ‫כל‬ ‫את‬ V 0 ‫ל־‬ ‫מכניסים‬ ‫אנחנו‬ ‫הזה‬ ‫בשלב‬ .(‫טרמינלית‬ ‫מילה‬ ‫גוזרים‬ ‫אשר‬ (∈ V ) ‫הדקדוקיים‬ α ∈‫ו־‬ B ∈ V V 0 ‫כאשר‬ B → α ∈ P ‫אם‬ (‫)ב‬ B / ∈ V 0 ‫לכל‬ ,‫)כלומר‬ V 0 ‫ל־‬ B ‫את‬ ‫צרף‬ (V 0 ∪ Σ) ∗ ‫מאותיות‬ ‫שמורכבת‬ ‫למילה‬ ‫מפנה‬ ‫הוא‬ ‫אם‬ B ∈ V ‫אבל‬ ‫ל־‬ B ‫את‬ ‫נצרף‬ ‫אזי‬ V 0 ‫מ־‬ ‫דקדוקיים‬ ‫משתנים‬ ‫או‬ Σ‫מ־‬ .(V 0 .V 0 ‫ל־‬ ‫חדשים‬ ‫איבירם‬ ‫מתווסים‬ ‫עוד‬ ‫כל‬ (‫)ב‬ ‫על‬ ‫נחזור‬ (‫)ג‬ :S ∈ V 0 ‫האם‬ ‫נבדוק‬ ,‫לבסוף‬ (‫)ד‬ ‫רוצת‬ ‫את‬ ‫ועוצרים‬ L (G) = ∅‫ש־‬ ‫מכריזים‬ ‫־‬ ‫לא‬ .i .(‫הבא‬ ‫לשלב‬ ‫ממשיכים‬ ‫)לא‬ ‫האלגוריתם‬ :‫הבא‬ ‫לשל‬ ‫ממשיכים‬ ‫־‬ ‫כן‬ .ii :P0 ‫חישוב‬ .2 ‫משתנה‬ ‫בהם‬ ‫שמופיע‬ ‫הגזירה‬ ‫כללי‬ ‫כל‬ ‫את‬ P‫מ־‬ ‫נסיר‬ (‫)א‬ :‫כלומר‬ B ∈ V V 0 .P0 = n A → α ∈ P A ∈ V 0 , α (V 0 ∪ Σ) ∗ o .G0 = hV 0 , Σ, P0 , Si ‫את‬ ‫החזר‬ (‫)ב‬ 23
  • 24.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫להשגה‬‫ניתנים‬ ‫שאינם‬ ‫סימנים‬ ‫להסרת‬ ‫אלגוריתם‬ 24.3 Σ = {a, b, c} ‫עבור‬ :‫למשל‬ S → aS Aa A → a Ab b B → aA c ‫בשום‬ ‫אליו‬ ‫להגיע‬ ‫ניתן‬ ‫לא‬ ‫)כי‬ ‫להשגה‬ ‫ניתן‬ ‫שאינו‬ ‫מצב‬ ‫הוא‬ B ‫אזי‬ ‫)כי‬ ‫להשגה‬ ‫ניתן‬ ‫שאינו‬ ‫טרמינלי‬ ‫סימן‬ ‫הוא‬ c ‫כן‬ ‫וכמו‬ (‫גזירה‬ ‫סדרת‬ .(‫אותו‬ ‫שמכילה‬ ‫מילה‬ ‫שום‬ ‫לגזור‬ ‫ניתן‬ ‫לא‬ .G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫הקלט‬ X ∈ ‫סימן‬ ‫שכל‬ ‫כך‬ G0 = hV 0 , Σ0 , P0 , Si ‫חה‬ ‫דקדוק‬ :‫הפלט‬ .L (G) = L (G0 )‫ו־‬ ‫להשגה‬ ‫ניתן‬ V 0 ∪ Σ0 :Σ0 ‫ו־‬ V 0 ‫בניית‬ .1 .Σ = ∅ ,V 0 = {S} (‫)א‬ ‫משתנה‬ ‫כל‬ V 0 ‫ל־‬ ‫צרף‬ A ∈ V 0 ‫ו־‬ A → α ∈ P ‫אם‬ (‫)ב‬ ‫סימן‬ ‫כל‬ Σ0 ‫ל־‬ ‫וצרף‬ V 0 ‫ב־‬ ‫ואינו‬ α‫ב־‬ ‫המופיע‬ ‫דקדוקי‬ .Σ0 ‫ב־‬ ‫שאינו‬ α‫ב־‬ ‫טרמינלי‬ ‫ש־‬ ‫כך‬ α ∈ (V ∪ Σ) ∗ ‫ו־‬ A ∈ V 0 ‫כל‬ ‫עבור‬ ,‫)כלומר‬ ‫אינם‬ α‫ב־‬ ‫סימנים‬ ‫אילו‬ ‫רואים‬ ‫אנחנו‬ A → α ∈ P .(‫בהתאם‬ Σ0 ‫ו־‬ V 0 ‫ל־‬ ‫אותם‬ ‫ונצרף‬ V 0 ∪ Σ0 ‫ב־‬ ‫חדשים‬ ‫איברים‬ ‫מתווספים‬ ‫עוד‬ ‫כל‬ (‫)ב‬ ‫צעד‬ ‫על‬ ‫חוזרים‬ (‫)ג‬ .V 0 ‫ל־‬ :G0 ‫ו־‬ P0 ‫בניית‬ .2 .P0 = A → α ∈ P A ∈ V 0 (‫)א‬ .G0 = {V 0 , Σ0 , P0 , S} ‫את‬ ‫כפלט‬ ‫מחזירים‬ (‫)ב‬ ε ‫כללי‬ ‫להסרת‬ ‫אלגוריתם‬ 24.4 A → ε ‫מהצורה‬ ‫כללים‬ ‫להסיר‬ ‫הוא‬ ‫זה‬ ‫אלגוריתם‬ ‫של‬ ‫הרעיון‬ .A ∈ V ‫כאשר‬ ‫אותו‬ ‫ישאר‬ ‫שהדקדוק‬ ‫כך‬ ‫אחרים‬ ‫בכללים‬ ε ‫כלל‬ ‫כל‬ ‫להחליף‬ ‫ניתן‬ .‫הנל‬ ‫מהצורה‬ ‫כללים‬ ‫ללא‬ ‫רק‬ (‫השפה‬ ‫)מבחינת‬ ‫דקדוק‬ .‫כלולה‬ ‫אינה‬ ‫הריקה‬ ‫המילה‬ ‫החדשה‬ ‫שבשפה‬ ‫כמובן‬ G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ ‫בהניתן‬ :‫פורמלי‬ ‫באופן‬ ‫בו‬ ‫שאין‬ G0 = hV, Σ, P0 , Si ‫חה‬ ‫דקדוק‬ ‫נבנה‬ ε ‫כללי‬ ‫בו‬ ‫שיש‬ .L (G0 ) = L (G) − ε‫ש־‬ ‫כך‬ ε ‫כללי‬ .L (G0 ) = L (G) :‫אזי‬ ε / ∈ L (G) ‫שאם‬ ‫לב‬ ‫לשים‬ ‫חשוב‬ ‫לאיפוס‬ ‫הניתנים‬ ‫משתנים‬ ‫למציאת‬ ‫אלגוריתם‬ 24.4.1 ‫אשר‬ ‫נוסף‬ ‫באלגוריתם‬ ‫להשתמש‬ ‫נצטרך‬ ‫לאלגוריתם‬ ‫שניגש‬ ‫לפני‬ .‫לאיפוס‬ ‫הניתנים‬ ‫משתנים‬ ‫אלו‬ ‫אשר‬ ‫־‬ n (G) ⊆ V :‫קבוצה‬ ‫לנו‬ ‫יתן‬ A ∈ V ‫משתנה‬ .‫חה‬ ‫דקדוק‬ G = hV, Σ, P, Si ‫יהי‬ 24.3 ‫הגדרה‬ ‫סדרת‬ ‫קיימת‬ ‫אם‬ ‫כלומר‬ .A ⇒ G ∗ ε ‫אם‬ ‫לאיפוס‬ ‫ניתן‬ ‫משתנה‬ ‫נקרא‬ .‫הריקה‬ ‫המילה‬ ‫את‬ ‫נגזור‬ ‫שבסופה‬ A‫מ־‬ ‫גזירה‬ n (G) = A ∈ V A ⇒ G ∗ ε .G ‫בדקדוק‬ ‫לאיפוס‬ ‫הניתנים‬ ‫המשתנים‬ ‫קבוצת‬ ‫את‬ n (G)‫ב־‬ ‫נסמן‬ .G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫הקלט‬ .n (G) ‫לאיפוס‬ ‫הניתנים‬ ‫המשתנים‬ ‫כל‬ ‫קבוצת‬ :‫הפלט‬ ‫את‬ ‫מוסיפים‬ ‫זה‬ ‫)בשלב‬ n (G) = A ∈ V A → ε ∈ P .1 .(‫אחד‬ ‫בצעד‬ ‫לאיפוס‬ ‫הניתנים‬ ‫המשתנים‬ ‫כל‬ ‫)כל‬ α ∈ n (G) + ‫ו־‬ B ∈ V ‫כאשר‬ B → α ∈ P ‫אם‬ .2 B ‫את‬ ‫צרף‬ ,(‫לאיפוס‬ ‫הניתנים‬ ‫משתנים‬ ‫הם‬ α‫ב־‬ ‫הסימנים‬ .(‫שם‬ ‫לא‬ ‫והוא‬ ‫)במידה‬ n (G)‫ל־‬ .n (G)‫ל־‬ ‫חדשים‬ ‫משתנים‬ ‫יתווספו‬ ‫שלא‬ ‫עד‬ 2 ‫צעד‬ ‫על‬ ‫נחזור‬ .3 :ε ‫כללי‬ ‫להסרת‬ ‫האלגוריתם‬ ‫את‬ ‫נראה‬ ‫כעת‬ .ε ‫כללי‬ ‫בו‬ ‫שיש‬ G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫קלט‬ :‫מקיים‬ ‫אשר‬ ε ‫כללי‬ ‫ללא‬ G0 = hV, Σ, P0 , Si ‫חה‬ ‫דקדוק‬ :‫פלט‬ .L (G0 ) = L (G) − ε .‫הקודם‬ ‫האלגוריתם‬ ‫לפי‬ n (G) ‫את‬ ‫נחשב‬ .1 .P0 = ∅ .2 ‫נצרף‬ ,ε ‫כלל‬ ‫שאינו‬ A → X1X2 · · · Xn ‫גזירה‬ ‫כלל‬ ‫לכל‬ .3 ‫את‬ ‫המקיימים‬ A → Y1Y2 · · · Yn ‫הגזירה‬ ‫כללי‬ ‫את‬ P0 ‫ל־‬ :‫הבאים‬ ‫התנאים‬ ‫שלושת‬ . Xi = Yi ‫אז‬ Xi ∈ V − n (G) ‫או‬ Xi ∈ Σ ‫אם‬ (‫)א‬ .Yi = ε ‫או‬ Xi = Yi ‫אז‬ Xi ∈ n (G) ‫אם‬ (‫)ב‬ .Y1Y2 · · · Yn 6= ε (‫)ג‬ .G0 = hV, Σ, P0 , Si ‫את‬ ‫נחזיר‬ .4 :‫השלישי‬ ‫לכל‬ ‫הסבר‬ Σ = {a, b} ,V = {A, B, C, D, E} ‫כי‬ ‫נניח‬ :‫מהצורה‬ ‫כלל‬ ‫לנו‬ ‫יש‬ ‫אם‬ ,‫אזי‬ ,n (G) = {B, C, E}‫ו־‬ A → BCaD :‫הכלל‬ ‫את‬ P0 ‫ל־‬ ‫נכניס‬ A → BCaD CaD BaD aD ‫אליו‬ ‫מתייחסים‬ ‫אחת‬ ‫פעם‬ ‫אנחנו‬ X ∈ n (G) ‫כל‬ ‫עבור‬ :‫הסבר‬ ,‫האפשרויות‬ ‫כל‬ ‫את‬ P0 ‫ב־‬ ‫ושמים‬ ‫שהוא‬ ‫מה‬ ‫כאל‬ ‫או‬ ε ‫כאל‬ ‫או‬ ‫לאף‬ ‫התייחסנו‬ ‫לא‬ BCaD ‫־‬ ‫הראשון‬ ‫בכלל‬ :‫שלמעלה‬ ‫במקרה‬ ‫כאל‬ B‫ל־‬ ‫התייחסנו‬ CaD ‫־‬ ‫השני‬ ‫בכלל‬ ,ε ‫כלל‬ ‫כאל‬ X ∈ n (G) ‫התייחסנו‬ ‫האחרון‬ ‫ובכלל‬ ,‫ההפך‬ ‫בדיוק‬ ‫השלישי‬ ‫בכלל‬ ,‫לא‬ C ‫ואל‬ ε ‫צריכים‬ ‫אנחנו‬ ‫אחרים‬ ‫בכללים‬ ‫גם‬ ,‫כך‬ .ε‫כ־‬ C ‫אל‬ ‫וגם‬ B ‫אל‬ ‫גם‬ .‫האפשרויות‬ ‫כל‬ ‫את‬ ‫לכסות‬ :‫היה‬ ‫הכלל‬ ‫למשל‬ ‫אם‬ ‫או‬ A → BCE :‫הוא‬ P0 ‫ל־‬ ‫מכניסים‬ ‫שהיינו‬ ‫הכלל‬ ‫אזי‬ A → BCE CE BE BC B C E ‫נקבל‬ ‫אז‬ ‫כי‬ ε ‫כאל‬ ‫לשלושתם‬ ‫נתייחס‬ ‫לא‬ ‫אנחנו‬ (‫)ג‬ ‫כלל‬ ‫ובגלל‬ ...‫להסיר‬ ‫רוצים‬ ‫אנחנו‬ ‫הללו‬ ‫הכללים‬ ‫ואת‬ A → ε ‫מהצורה‬ ‫כלל‬ 24
  • 25.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫יחידה‬‫כללי‬ ‫להסרת‬ ‫אלגוריתם‬ 24.5 A → B ‫מהצורה‬ ‫גזירה‬ ‫כל‬ G = hV, Σ, P, Si ‫חה‬ ‫בדקדוק‬ .‫יחידה‬ ‫כלל‬ ‫נקרא‬ A, B ∈ V ‫כאשר‬ ‫עי‬ ‫שמתקבל‬ ‫יחידה‬ ‫כללי‬ ‫ללא‬ ‫שקול‬ ‫דקדוק‬ ‫קיים‬ ‫חה‬ ‫דקדוק‬ ‫לכל‬ .‫בלבד‬ ‫הגזירה‬ ‫כללי‬ ‫שינוי‬ ‫סדור‬ ‫זוג‬ .G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ ‫יהי‬ 24.4 ‫הגדרה‬ A‫מ־‬ ‫לגזירה‬ ‫ניתן‬B ‫אם‬ ‫יחידה‬ ‫זוג‬ ‫נקרא‬ A, B ∈ V ‫כאשר‬ (A, B) ‫שמספר‬ ‫אפשרות‬ ‫שישנה‬ ‫)כמובן‬ ‫בלבד‬ ‫יחידה‬ ‫בכללי‬ ‫שימוש‬ ‫תוך‬ .(‫יחידה‬ ‫זוג‬ ‫הוא‬ (A, A) A ∈ V ‫לכל‬ ,‫ולכן‬ 0 ‫יהיה‬ ‫הצעדים‬ ‫יחידה‬ ‫זוג‬ ‫הוא‬ (A, B) ‫אזי‬ ε ‫כללי‬ ‫אין‬ ‫בדקדוק‬ ‫אם‬ 24.5 ‫הערה‬ ‫אחרת‬ ‫אפשרות‬ ‫אין‬ ε ‫כללי‬ ‫בהעדר‬ ‫)כי‬ A ⇒ G ∗ B ‫אם‬ ‫ורק‬ ‫אם‬ .(‫יחידה‬ ‫בללי‬ ‫השימוש‬ ‫מלבד‬ A‫מ־‬ B ‫לגזירת‬ u (G) ‫היחידה‬ ‫זוגות‬ ‫קבוצת‬ ‫לחישוב‬ ‫אלגוריתם‬ 24.5.1 ‫את‬ ‫את‬ ‫לחשב‬ ‫נצטרך‬ ‫יחידה‬ ‫כללי‬ ‫להסרת‬ ‫לאלגוריתם‬ ‫שניגש‬ ‫לפני‬ .u (G) ⊆ V × V :G ‫בדקדוק‬ ‫היחידה‬ ‫זוגות‬ ‫קבוצות‬ .G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫קלט‬ .u (G) :‫פלט‬ .u (G) = (A, A) A ∈ V .1 (A, C) ‫את‬ ‫נצרף‬ B → C ∈ P‫ו־‬ (A, B) ∈ u (G) ‫אם‬ .2 .(‫שם‬ ‫אינו‬ ‫הוא‬ ‫)אם‬ u (G)‫ל־‬ .u (G)‫ל־‬ ‫חדשים‬ ‫איברים‬ ‫מתווספים‬ ‫עוד‬ ‫כל‬ 2 ‫צעד‬ ‫על‬ ‫נחזור‬ .3 .u (G) ‫את‬ ‫נחזיר‬ .4 :‫היחידה‬ ‫כללי‬ ‫להסרת‬ ‫לאלגוריתם‬ ‫ניגש‬ ‫כעת‬ .G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ :‫קלט‬ ‫יחידה‬ ‫כללי‬ ‫בו‬ ‫שאין‬ G0 = hV, Σ, P0 , Si ‫חה‬ ‫דקדוק‬ :‫פלט‬ .L (G0 ) = L (G) :‫ומתקיים‬ .‫יחידה‬ ‫כלל‬ ‫אינו‬ A → α‫ש־‬ ‫פירושו‬ A → α? :‫נסמן‬ .‫שלמעלה‬ ‫האלגוריתם‬ ‫עפ‬ u (G) ‫את‬ ‫נחשב‬ .1 .P0 = A → α A → α?, (A, B) ∈ u (G) , B → α ∈ P .2 .G0 = hV, Σ, P0 , Si ‫את‬ ‫נחזיר‬ .3 :2‫ל־‬ ‫הסבר‬ :‫הבא‬ ‫הדקדוק‬ ‫את‬ ‫לנו‬ ‫ויש‬ ‫נניח‬ S → a A A → Bb c B → a ‫כלל‬ ‫את‬ ‫לנו‬ ‫ויש‬ u (G) = {(S, S) , (A, A) , (B, B) , (S, A)} ‫אזי‬ ,S → A ‫היחידה‬ ‫שניהם‬ ,‫יחידה‬ ‫כללי‬ ‫אינם‬ A → c‫ו־‬ A → Bc ‫כי‬ ‫לב‬ ‫נשים‬ ‫אזי‬ :‫הם‬ ‫שנצרף‬ ‫הכללים‬ ‫ולכן‬ ,(S, A) ∈ u (G)‫ו־‬ P‫ב־‬ ...S ‫את‬ ‫שמנו‬ A‫ה־‬ ‫במקום‬ ,‫כלומר‬ ‫־‬ S → c ‫ואת‬ S → Bc :‫זה‬ ‫הוא‬ ‫כאן‬ ‫עושים‬ ‫אנחנו‬ ‫שבעצם‬ ‫מה‬ ,‫יותר‬ ‫פשוטות‬ ‫במילים‬ ‫הכללים‬ ‫כל‬ ‫מסתכלים‬ ‫אנחנו‬ ‫אזי‬ A → B ‫יחידה‬ ‫כלל‬ ‫לנו‬ ‫יש‬ ‫אם‬ A‫ל־‬ ‫אותם‬ ‫ומדביקים‬ B → α ‫מהצורה‬ ‫יחידה‬ ‫כללי‬ ‫שאינם‬ .A → B ‫כלל‬ ‫באותו‬ B ‫במקום‬ :‫כזה‬ ‫משהו‬ ‫לנו‬ ‫יש‬ ‫אם‬ ,‫לכן‬ S → A A → B B → a :‫הבא‬ ‫הדקדוק‬ ‫את‬ ‫הוא‬ ‫שנקבל‬ ‫מה‬ ‫האלגוריתם‬ ‫את‬ ‫שנריץ‬ ‫אחרי‬ .S → a .(‫בשרשרת‬ ‫מדביקים‬ ‫פשוט‬ ‫)אנחנו‬ ‫האלגוריתמים‬ ‫לביצוע‬ ‫הנכון‬ ‫הסדר‬ 24.6 .ε ‫כללי‬ ‫הסרת‬ .1 .‫יחידה‬ ‫כללי‬ ‫הסרת‬ .2 .‫מיותרים‬ ‫כללים‬ ‫הסדרת‬ .3 :‫לביצוע‬ ‫ונוחה‬ ‫פשוטה‬ ‫יותר‬ ‫בצורה‬ ‫זה‬ ‫את‬ ‫לעשות‬ ‫אפשר‬ ‫אבל‬ .‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ .1 .ε ‫כללי‬ ‫הסרת‬ .2 .‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ .3 .‫יחידה‬ ‫כללי‬ ‫הסרת‬ .4 .‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ .5 ‫יותר‬ ‫ונוח‬ ‫לפשוט‬ ‫התהליך‬ ‫כל‬ ‫את‬ ‫תהפוך‬ (‫)השנייה‬ ‫הנל‬ ‫הדרך‬ .(‫ארוכה‬ ‫יותר‬ ‫קצת‬ ‫שהיא‬ ‫)למרות‬ (CNF) ‫חומסקי‬ ‫של‬ ‫הנורמלית‬ ‫הצורה‬ 25 ‫כללי‬ ‫שכל‬ G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ 25.1 ‫הגדרה‬ :‫הבאות‬ ‫מהצורות‬ ‫באחת‬ ‫הם‬ ‫בו‬ ‫הגזירה‬ .A → BC .1 .A → a .2 .a ∈ Σ‫ו־‬ A, B, C ∈ V ‫כאשר‬ .‫חומסקי‬ ‫של‬ ‫הנורמלית‬ ‫בצורה‬ ‫דקדוק‬ ‫נקרא‬ ‫קיים‬ ,ε ‫את‬ ‫מכילה‬ ‫שאינה‬ L ‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫לכל‬ 25.2 ‫משפט‬ ‫של‬ ‫הנורמלית‬ ‫בצורה‬ G = hV, Σ, P, Si ‫הקשר‬ ‫חסר‬ ‫דקדוק‬ .L = L (G)‫ש־‬ ‫כך‬ ‫חומסקי‬ ‫חה‬ ‫מדקדוק‬ CNF ‫בניית‬ 25.1 : ε / ∈ L (G) ‫שמקיים‬ G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ ‫הניתן‬ ‫כללי‬ ‫ואין‬ ε ‫כללי‬ ‫אין‬ ‫בדקדוק‬ ‫כי‬ ‫נניח‬ ‫הכלליות‬ ‫הגבלת‬ ‫בלי‬ .1 .(‫שלמעלה‬ ‫האלגוריתמים‬ ‫עפ‬ ‫אותם‬ ‫נסיר‬ ‫־‬ ‫ויש‬ ‫)במידה‬ ‫יחידה‬ :a ∈ Σ ‫טרמינלי‬ ‫סימן‬ ‫לכל‬ .2 .Sa ‫שנסמנו‬ ‫חדש‬ ‫משתנה‬ V ‫ל־‬ ‫נוסיף‬ (‫)א‬ .Sa → a :‫הבא‬ ‫הכלל‬ ‫את‬ P‫ל־‬ ‫נוסיף‬ (‫)ב‬ 25
  • 26.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫עם‬A → X1 · · · Xk ‫מהצורה‬ P‫ב־‬ ‫גזירה‬ ‫כלל‬ ‫לכל‬ (‫)ג‬ .Sa‫ב־‬ ‫זה‬ ‫גזירה‬ ‫בכלל‬ a ‫של‬ ‫מופע‬ ‫כל‬ ‫נחליף‬ k ≥ 2 .G0 = hV 0 , Σ, P0 , Si‫ב־‬ ‫המתקבל‬ ‫הדקדוק‬ ‫את‬ ‫נסמן‬ :‫שני‬ ‫שלב‬ :k ≥ 3 ‫עם‬ A → X1 · · · Xk ‫מהצורה‬ P0 ‫ב־‬ ‫גזירה‬ ‫כלל‬ ‫לכל‬ ‫להם‬ ‫ונקרא‬ V 0 ‫ל־‬ ‫חדשים‬ ‫משתנים‬ k − 2 ‫נוסיף‬ .1 .(!‫אחרים‬ ‫משתנים‬ ‫גזירה‬ ‫כלל‬ ‫)לכל‬ Y1, Y2, ..., Yk−2 :‫הבאים‬ ‫הכללים‬ k −1 ‫ב־‬ A → X1 · · · Xk ‫הכלל‬ ‫את‬ ‫נחליף‬ .2 ....Y2 → X3Y3 ,Y1 → X2Y2 ,A → X1Y1 ,Yk−3 → Xk−2Yk−2‫ל־‬ ‫נגיע‬ ‫שלבסוף‬ ‫עד‬ .Yk−2 → Xk−1Xk G00 =‫ב־‬ ‫הזה‬ ‫השלב‬ ‫ביצוע‬ ‫אחרי‬ ‫המתקבל‬ ‫הדקדוק‬ ‫את‬ ‫נסמן‬ .‫אותו‬ ‫ונחזיר‬ hV 00 , Σ, P00 , Si :‫מהצורה‬ ‫גזירה‬ ‫כלל‬ ‫יש‬ ‫ובו‬ ‫דקדקו‬ ‫לנו‬ ‫יש‬ ‫אם‬ ‫כלומר‬ A → BCDa :‫להיות‬ ‫יהפוך‬ ‫הוא‬ ‫הראשון‬ ‫בשלב‬ ‫אזי‬ A → BCDSa Sa → a :‫יהיה‬ ‫הוא‬ ‫השני‬ ‫בשלב‬ ‫ולאחר־מכן‬ A → BY1 Y1 → CY2 Y2 → DSa Sa → a .‫חומסקי‬ ‫של‬ ‫הנורמלית‬ ‫בצורה‬ ‫דקדוק‬ ‫וקיבלנו‬ ‫שפות‬ ‫של‬ ‫סגירות‬ ‫לתכונות‬ ‫בקשר‬ ‫משפטים‬ 26 ‫הקשר‬ ‫חסרות‬ ‫סגורה‬ ,Σ ‫אב‬ ‫מעל‬ ,‫ההקשר‬ ‫חסרות‬ ‫השפות‬ ‫משפחת‬ 26.1 ‫משפט‬ ‫לפעולות‬ ‫סגורה‬ ‫היא‬ ,‫)כלומר‬ ‫ולאיטרציה‬ ,‫לשירשור‬ ,‫לאיחוד‬ .(‫רגולריות‬ ‫לחיתוך‬ ‫סגורה‬ ‫אינה‬ ‫ההקשר‬ ‫חסרות‬ ‫השפות‬ ‫משפחת‬ 26.2 ‫משפט‬ .‫ולמשלים‬ ‫חסרת‬ ‫ושפה‬ ‫רגולרית‬ ‫שפה‬ ‫חיתוך‬ ‫על‬ ‫חשוב‬ ‫משפט‬ 26.1 ‫הקשר‬ ‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫עם‬ ‫רגולרית‬ ‫שפה‬ ‫של‬ ‫חיתוך‬ .‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫נותן‬ :‫כלומר‬ :‫אזי‬ ,(‫כמובן‬ ‫ההפך‬ ‫)או‬ ‫הקשר‬ ‫חסרת‬ L2‫ו־‬ ‫רגורלית‬ L1 ‫אם‬ .‫הקשר‬ ‫חסרת‬ ‫שפה‬ ‫היא‬ L1 ∩ L2 ‫רגולריות‬ ‫בבעיות‬ ‫הכרעה‬ ‫בעיות‬ ‫פתרון‬ 27 .G = hV, Σ, P, Si ‫חה‬ ‫דקדוק‬ ‫לנו‬ ‫נתון‬ ‫המקרים‬ ‫בכל‬ ‫הריקנות‬ ‫בעיית‬ 27.1 .‫ריקה‬ ‫אינה‬ L (G) ‫השפה‬ ‫האם‬ ‫להכיע‬ ‫יש‬ ‫טרמינלית‬ ‫מילה‬ ‫גוזרים‬ ‫שאנים‬ ‫המשתנים‬ ‫את‬ G‫מ־‬ ‫מסירים‬ :‫פתרון‬ ‫נשאר‬ S ‫ההתחלתי‬ ‫המתשנה‬ ‫אם‬ (‫למעלה‬ ‫שראינו‬ ‫האלגוריתם‬ ‫)לפי‬ .‫לא‬ ‫נחזיר‬ ‫אחרת‬ ,‫כן‬ ‫ונחזיר‬ ‫ריקה‬ ‫לא‬ ‫השפה‬ ‫־‬ ‫בדקדוק‬ ‫הסופיות‬ ‫בעיית‬ 27.2 ‫כוללת‬ ,‫)כלומר‬ ‫אינסופית‬ ‫היא‬ L (G) ‫השפה‬ ‫האם‬ ‫להכריע‬ ‫יש‬ .(‫מילים‬ ‫אינסוף‬ ‫כללי‬ ‫או‬ ε ‫כללי‬ ,‫מיותרים‬ ‫סימנים‬ ‫אין‬G‫ב־‬ ‫כי‬ ‫נניח‬ ‫בהכ‬ :‫פתרון‬ ‫הדקדוקיים‬ ‫המשתנים‬ ‫הם‬ ‫בו‬ ‫שהצמתים‬ ‫מכוון‬ ‫גרף‬ ‫נבנה‬ .‫יחידה‬ ‫אשר‬ (A, B) ‫הסדורים‬ ‫הזוגות‬ ‫כל‬ ‫הן‬ ‫והקשתות‬ (V ‫)אברי‬ G ‫של‬ A → αBϕ ‫מהצורה‬ ‫כלל‬ ‫בדקדוק‬ ‫וקיים‬ A, B ∈ V :‫מקיימים‬ .α, ϕ ∈ (V ∪ Σ) ∗ ‫כאשר‬ ‫היא‬ ‫השפה‬ ‫־‬ ‫כן‬ ‫אם‬ ‫־‬ ‫שבנינו‬ ‫בגרף‬ ‫מעגל‬ ‫מעגל‬ ‫יש‬ ‫אם‬ ‫נבדוק‬ .‫לא‬ ‫נחזיר‬ ‫אחרת‬ ,‫כן‬ ‫ונחזיר‬ ‫אינסופית‬ 26
  • 27.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ VIII‫חלק‬ (PDA) ‫מחסנית‬ ‫אוטומט‬ ‫מסעי‬ ‫כולל‬ NFA ‫אוטומט‬ ‫לנו‬ ‫שיש‬ ‫הוא‬ ‫מחסנית‬ ‫באוטומט‬ ‫הרעיון‬ ‫תאים‬ ‫של‬ ‫אינסופי‬ ‫מספר‬ ‫עם‬ ‫מחסנית‬ ‫לו‬ ‫יש‬ ‫גם‬ ‫הפעם‬ ‫אבל‬ ε ‫אחת‬ ‫אות‬ ‫לקרוא‬ ‫או‬ ‫מילה‬ ‫לדחוף‬ ‫או‬ ‫פעם‬ ‫כל‬ ‫יכול‬ ‫הוא‬ ‫שממנה‬ .(‫אותה‬ ‫מסיר‬ ‫הוא‬ ‫)ואז‬ ‫פורמלית‬ ‫הגדרה‬ 28 ‫שביעייה‬ ‫זוהי‬ (PDA) ‫מחסנית‬ ‫אוטומט‬ :‫כאשר‬ M = hQ, Σ, Γ, δ, q0, ⊥, Fi .‫מצבים‬ ‫של‬ ‫סופית‬ ‫קבוצה‬ ‫־‬ Q • .(‫סופית‬ ‫)קבוצה‬ ‫הקלט‬ ‫אב‬ ‫־‬ Σ • ‫מחסנית‬ ‫באוטומט‬ .‫המחסנית‬ ‫אב‬ ‫של‬ ‫סופית‬ ‫קבוצה‬ ‫־‬ Γ • ‫של‬ ‫מאב‬ ‫שונה‬ ‫שהוא‬ ‫אב‬ ‫למחסנית‬ ‫לדחות‬ ‫יכולים‬ ‫אנחנו‬ .(Σ) ‫השפה‬ ‫של‬ .q0 ∈ Q .‫ההתחלתי‬ ‫המצב‬ ‫־‬ q0 • ‫את‬ ‫מסמל‬ ‫⊥והוא‬ ∈ Γ .‫המחסנית‬ ‫תחתית‬ ‫הנקרא‬ ‫איבר‬ ‫־‬ ⊥ • ‫קראנו‬ ‫ולא‬ ‫במחסנית‬ ‫נגענו‬ ‫לא‬ ‫עוד‬ ‫כלך‬ .‫המסחנית‬ ‫תחתית‬ .⊥ ‫את‬ ‫זה‬ ‫במחסנית‬ ‫שיש‬ ‫היחיד‬ ‫הדבר‬ ‫־‬ ‫קלט‬ ‫אות‬ ‫שום‬ ‫ץ‬F ⊆ Q .‫המקבלים‬ ‫המצבים‬ ‫קבוצת‬ ‫־‬ F • ‫כאשר‬ ,δ : Q × Σε × Γ → 2Q×Γ∗ :‫המעברים‬ ‫פונקצית‬ ‫־‬δ • δ ‫הפונקציה‬ ‫של‬ ‫הערכים‬ ‫כי‬ ‫מניחים‬ ‫אנח‬ .Σε = Σ ∪ {ε} ‫הזאת‬ ‫הפונקצהי‬ ‫)על‬ .Q × Γ∗ ‫של‬ ‫סופיות‬ ‫תת־קבוצות‬ ‫הן‬ .(‫בהמשך‬ ‫קצת‬ ‫יוסבר‬ ‫סימונים‬ 29 .a, b, c.... ‫ב־‬ ‫נסמן‬ (‫הקלט‬ ‫)אותיות‬ Σ ‫אברי‬ ‫את‬ .σ, τ, ... ‫ב־‬ ‫נסמן‬ (ε ‫או‬ ‫קלט‬ ‫)אות‬ Σε ‫אברי‬ ‫את‬ .X, Y, Z, ... ‫ב־‬ ‫נסמן‬ (‫המחסנית‬ ‫)אב‬ Γ ‫אברי‬ ‫את‬ .w, u, v, ...‫ב־‬ ‫יסומנו‬ Σ∗ ‫ב־‬ ‫מילים‬ .α, β, γ, ...‫ב־‬ ‫יסיומנו‬ Γ∗ ‫ב־‬ ‫מילים‬ ‫ופירושים‬ ‫הערות‬ 30 ‫המחסנית‬ ‫מבנה‬ 30.1 :‫כך‬ ‫נראית‬ ‫ההתחלתית‬ ‫המסחנית‬ ⊥ ‫האות‬ ‫את‬ ‫מסיר‬ ‫הוא‬ ‫מהקלט‬ ‫אות‬ ‫קורא‬ ‫שהאוטומט‬ ‫פעם‬ ‫כל‬ ‫בראש‬ ‫שנמצאת‬ ‫האות‬ ‫תהיה‬ ‫זאת‬ ‫)תמיד‬ ‫המחסנית‬ ‫בראש‬ ‫שנמצאת‬ .(‫בלבד‬ ‫אחת‬ ‫אות‬ ‫תהיה‬ ‫תמיד‬ ‫וזאת‬ ‫המחסנית‬ ‫כמובן‬ ‫)וזה‬ A ‫האות‬ ‫האות‬ ‫את‬ ‫למחסנית‬ ‫לדחוף‬ ‫שהחלטנו‬ ‫נניח‬ ‫יהיו‬ ‫כך‬ ‫על‬ ‫יותר‬ ‫נרחבים‬ ‫הסברים‬ ,ε ‫או‬ ‫קלט‬ ‫אות‬ ‫של‬ ‫קריאה‬ ‫אחרי‬ :‫כך‬ ‫תיראה‬ ‫המחסנית‬ ‫היא‬ ‫אזי‬ ,(δ ‫המעברים‬ ‫פונקצית‬ ‫על‬ ‫בהסברים‬ A ‫האות‬ ‫את‬ ‫הכניס‬ ‫הוא‬ ⊥ ‫האות‬ ‫את‬ ‫הסיר‬ ‫כל‬ ‫קודם‬ ‫שהוא‬ ‫מכיוון‬ .A ‫שהסימן‬ ‫נרצה‬ ‫אם‬ ‫לכם‬ ,Γ∗ ‫מ־‬ ‫מילים‬ ‫גם‬ ‫לדחוף‬ ‫ניתן‬ ‫למחסנית‬ ‫שאנחנו‬ ‫מה‬ ‫את‬ ‫את‬ ‫ואז‬ ‫אותו‬ ‫כל‬ ‫קודם‬ ‫לדחוף‬ ‫נצטרך‬ ‫ישאר‬ ⊥ ⊥‫ה־‬ ‫סימן‬ ‫להשאיר‬ ‫נרצה‬ ‫לא‬ ‫אנחנו‬ ‫שלפעמים‬ ,‫לציין‬ ‫)חשוב‬ ‫רוצים‬ ‫נדחוף‬ ‫אם‬ ,‫לכן‬ ,(‫המילה‬ ‫בסוף‬ ‫יהיה‬ ‫שהוא‬ ‫תמיד‬ ‫חייבים‬ ‫לא‬ ‫ולכן‬ :‫כך‬ ‫תיראה‬ ‫המחסנית‬ ‫אזי‬ ‫־‬ A⊥ ‫למחסנית‬ A ⊥ :‫כך‬ ‫תיראה‬ ‫המחסנית‬ ‫אזי‬ BC ‫נדחוף‬ ‫עכשיו‬ ‫ואם‬ B C ⊥ ‫רק‬ ‫ונשארנו‬ A ‫את‬ ‫הסרנו‬ ‫ואז‬ (ε ‫)או‬ ‫כלשהי‬ ‫קלט‬ ‫אות‬ ‫קראנו‬ ‫כי‬ ‫אחד‬ ⊥ ‫את‬ ‫)והזיז‬ ‫למחסנית‬ C ‫את‬ ‫דחף‬ ‫האוטומט‬ ‫וכעת‬ ⊥ ‫עם‬ .‫קדימה‬ ‫אחד‬ C⊥ ‫את‬ ‫ודחף‬ B ‫את‬ ‫הכניס‬ ‫האוטומט‬ ‫ואז‬ (‫קדימה‬ ‫רק‬ ‫שהוא‬ ‫אומר‬ ‫זה‬ ‫ואז‬ ‫־‬ ε ‫את‬ ‫למחסנית‬ ‫לדחוף‬ ‫גם‬ ‫ניתן‬ ,‫כמו־כן‬ .‫במקום‬ ‫אות‬ ‫שום‬ ‫מוסיף‬ ‫ולא‬ ‫המחסנית‬ ‫שבראש‬ ‫האות‬ ‫את‬ ‫מסיר‬ ‫יש‬ ‫אם‬ ‫עם‬ ‫רק‬ ‫להתקדם‬ ‫יכול‬ ‫האוטומט‬ ‫־‬ ‫לזכור‬ ‫שחשוב‬ ‫נוסף‬ ‫דבר‬ ‫יכול‬ ‫לא‬ ‫האוטומט‬ ‫־‬ ‫ריקה‬ ‫המחסנית‬ ‫אם‬ ,Γ‫מ־‬ ‫אחת‬ ‫אות‬ ‫לפחות‬ .‫נתקע‬ ‫האוטומט‬ ‫אזי‬ ‫בקלט‬ ‫אותיות‬ ‫עוד‬ ‫ויש‬ ‫במידה‬ ,‫להתקדם‬ ‫בשפה‬ ‫תלוי‬ ‫זה‬ ‫־‬ ‫לא‬ ‫או‬ ‫המילה‬ ‫את‬ ‫יקבל‬ ‫הוא‬ ‫אם‬ ‫השאלה‬ ‫)לגבי‬ .(‫בהמשך‬ ‫ידובר‬ ‫זה‬ ‫ועל‬ ‫יכולים‬ ‫אנחנו‬ ‫כלומר‬ ,‫אינסופי‬ ‫בגודל‬ ‫היא‬ ‫המחסנית‬ 30.1 ‫הערה‬ ‫באיזה‬ ,‫שנרצה‬ ‫מילים‬ ‫כמה‬ ‫)או‬ ‫שנרצה‬ ‫אותיות‬ ‫כמה‬ ‫אליה‬ ‫לדחוף‬ .(‫שנרצה‬ ‫אורך‬ δ ‫המעברים‬ ‫פונקצית‬ 30.2 :‫כך‬ ‫מוגדרת‬ ‫המעברים‬ ‫פונקציית‬ ‫לראות‬ ‫שניתן‬ ‫כפי‬ δ : Q × Σε × Γ → 2Q×Γ∗ σ ∈ Σε ,q ∈ Q ‫כאשר‬ (q, σ, X) ‫מהשלשה‬ ‫עוברים‬ ‫אנחנו‬ ,‫כלומר‬ :(p, α) ‫סדור‬ ‫לזוג‬ X ∈ Γ‫ו־‬ δ (q, σ, X) → (p, α) 27
  • 28.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ :‫הסבר‬ ‫יכולה‬‫)שזה‬ σ ‫היא‬ ‫בקלט‬ ‫הבאה‬ ‫האות‬ q ‫במצב‬ ‫נמצאים‬ ‫אנחנו‬ ‫אם‬ ‫הסבר‬ ‫יהי‬ ‫]בהמשך‬ ε ‫מעבר‬ ‫־‬ ‫ריקה‬ ‫מילה‬ ‫או‬ Σ‫ב־‬ ‫אות‬ ‫להיות‬ ‫למצב‬ ‫נעבור‬ ‫אנחנו‬ ‫אזי‬ X ‫האות‬ ‫נמצאת‬ ‫המחסנית‬ ‫ובראש‬ ([‫לזה‬ ‫האות‬ ‫את‬ ‫שהסרנו‬ ‫אחרי‬ ‫)וזה‬ α ‫המילה‬ ‫את‬ ‫למחסנית‬ ‫ונדחוף‬ p .(‫המחסנית‬ ‫בראש‬ ‫שנמצאת‬ :‫דיאגרמה‬ ‫באמצעות‬ ‫טוב‬ ‫יותר‬ ‫קצת‬ ‫זה‬ ‫את‬ ‫להביא‬ ‫ניתן‬ q σ,X→α // p :‫תנאים‬ ‫בשני‬ ‫רק‬ ‫אם‬ ‫מתאפשר‬ p‫ל־‬ q‫מ־‬ ‫המעבר‬ ‫או‬ a ∈ Σ ‫האות‬ ‫היא‬ ‫לקרוא‬ ‫עומד‬ ‫שהאוטומט‬ ‫הבאה‬ ‫האות‬ .1 .‫ישנה‬ ‫בכלל‬ ‫אם‬ ‫הבאה‬ ‫האות‬ ‫מה‬ ‫משנה‬ ‫לא‬ ‫ואז‬ ‫־‬ ε .X ‫האות‬ ‫את‬ ‫יש‬ ‫המחסנית‬ ‫בראש‬ .2 .(q ‫במצב‬ ‫כמובן‬ ‫)אנחנו‬ .3 :‫אנחנו‬ ‫אזי‬ ‫הזה‬ ‫המעבר‬ ‫את‬ ‫מבצעים‬ ‫אנחנו‬ ‫אם‬ .‫הקלט‬ ‫ממילת‬ ‫אות‬ ‫עוד‬ ‫קוראים‬ .1 .p ‫למצב‬ ‫עוברים‬ .2 ‫שמים‬ ‫ובמקומה‬ ‫המחסנית‬ ‫בראש‬ ‫שנמצאת‬ ‫האות‬ ‫את‬ ‫מסירים‬ .3 .α ‫את‬ ‫באות‬ ‫תלוי‬ ‫אחד‬ ‫כל‬ ‫כאשר‬ q‫ל־‬ p‫מ־‬ ‫מעברים‬ ‫כמה‬ ‫להיות‬ ‫יכולים‬ ‫בראש‬ ‫שנמצאת‬ ‫באות‬ ‫תלוי‬ ‫או‬ (NFA‫ב־‬ ‫כמו‬ ‫)בדיוק‬ ‫אחרת‬ .‫המחסנית‬ ‫ובראש‬ a ‫היא‬ ‫במילה‬ ‫הבאה‬ ‫האות‬ ,q ‫במצב‬ ‫אנחנו‬ ‫למשל‬ ‫אם‬ :‫הוא‬ ‫לנו‬ ‫שיש‬ ‫היחיד‬ ‫המעבר‬ ‫אבל‬ ,B ‫האות‬ ‫את‬ ‫יש‬ ‫המחסנית‬ q a,⊥→BA // p ....‫וניתקע‬ ‫להמשיך‬ ‫נוכל‬ ‫לא‬ ‫אזי‬ ‫חייב‬ p‫ל־‬ q‫מ־‬ ‫המעבר‬ ‫של‬ ‫מהכללים‬ ‫אחד‬ ‫להמשיך‬ ‫שנוכל‬ ‫לשם‬ .ε ‫להיות‬ ‫יכול‬ a ‫במקום‬ ‫או‬ a, A → · · · :‫מהצורה‬ ‫להיות‬ ‫ניתן‬ ‫שלא‬ δ‫ה־‬ ‫כל‬ ‫בעצם‬ ‫וזה‬ ‫־‬ δ (q, σ, X) = ∅ ‫כי‬ ‫ייתכן‬ ,‫כמו־כן‬ ‫שכתוב(ץ‬ ‫ממה‬ ‫אחרת‬ δ ‫־‬ ‫כל‬ ‫שלנו‬ ‫)במקרה‬ ‫הלאה‬ ‫מהם‬ ‫להמשיך‬ M ‫של‬ ‫השפה‬ 30.3 M = hQ, Σ, Γ, δ, q0, ⊥, Fi ‫מחסנית‬ ‫אוטומט‬ ‫של‬ ‫השפה‬ :‫שפות‬ ‫לשתי‬ ‫מתחלקת‬ ‫הקלט‬ ‫מילת‬ ‫מסתיימת‬ ‫כזאר‬ ‫השפה‬ ‫זאת‬ ‫־‬ Lf (M) .1 ‫המחסנית‬ ‫אם‬ ‫לנו‬ ‫משנה‬ ‫לא‬ .‫מקבל‬ ‫במצב‬ ‫נמצא‬ ‫והאוטומט‬ ‫במצב‬ ‫ואנחנו‬ ‫הסתיימה‬ ‫הקלט‬ ‫מילת‬ ‫אם‬ ‫־‬ ‫מלאה‬ ‫או‬ ‫ריקה‬ ‫המילה‬ ‫שאם‬ ‫לזכור‬ ‫זאת‬ ‫עם‬ ‫חשוב‬ .‫התקבלה‬ ‫המילה‬ ‫־‬ ‫מקבל‬ .‫נתקעים‬ ‫אנחנו‬ ‫אזי‬ ‫־‬ ‫ריק‬ ‫והאוטומט‬ ‫נגמרה‬ ‫לא‬ ‫כך‬ ‫עי‬ ‫שמתקבלות‬ ‫המילים‬ ‫כל‬ ‫של‬ ‫השפה‬ ‫זאת‬ ‫־‬ Le (M) .2 ‫מצב‬ ‫באיזה‬ ‫משנה‬ ‫ולא‬ ‫ריקה‬ ‫והמחסנית‬ ‫נגמרת‬ ‫שהמילה‬ .‫מקבל‬ ‫לא‬ ‫או‬ ‫מקבל‬ ‫אנחנו‬ ‫־‬ ‫מקרים‬ ‫ובהמון‬ Lf (M) = Le (M) ‫בהכרח‬ ‫שלא‬ ‫כמובן‬ .Lf (M) 6= Le (M) ‫מחסנית‬ ‫אוטומט‬ ‫של‬ ‫החישוב‬ 31 ‫עובד‬ ‫מחסנית‬ ‫אוטומט‬ ‫שבה‬ ‫הדרך‬ ‫את‬ ‫פורמלי‬ ‫באופן‬ ‫נתאר‬ ‫כעת‬ .‫מילה‬ ‫דוחה‬ ‫או‬ ‫מקבל‬ ‫הוא‬ ‫שבו‬ ‫האופן‬ ‫ואת‬ .M = hQ, Σ, Γ, δ, q0, ⊥, Fi ‫מחסנית‬ ‫לאוטומט‬ ‫כאן‬ ‫נתייחס‬ (‫רגעי‬ ‫תיאור‬ :‫)או‬ M ‫של‬ ‫קונפיגורציה‬ 31.1 C = (q, v, α) ‫שלשה‬ ‫היא‬ M ‫של‬ C (‫רגעי‬ ‫)תאירו‬ ‫קונפיגורציה‬ :‫כאשר‬ ‫הקונפיגורציות‬ ‫כל‬ ‫את‬ c (M)‫ב־‬ ‫נסמן‬ .α ∈ Γ∗ ‫ו־‬ v ∈ Σ∗ ,q ∈ Q :M ‫של‬ c (M) = n (q, v, α) q ∈ Q, v ∈ Σ∗ , α ∈ Γ∗ o :‫כזאת‬ ‫היא‬ C = (q, v, α) ‫של‬ ‫המשמעות‬ .‫כרגע‬ ‫נמצא‬ ‫האוטומט‬ ‫שבו‬ ‫המצב‬ ‫־‬ q • ‫ממילת‬ ‫קרא‬ ‫לא‬ ‫עוד‬ ‫שהאוטומט‬ ‫)מה‬ ‫הקלט‬ ‫מילת‬ ‫יתרת‬ ‫־‬ v • .(‫הקלט‬ ‫בראש‬ ‫מופיעה‬ α‫ב־‬ ‫הראשונה‬ ‫)האות‬ ‫המחסנית‬ ‫תוכן‬ ‫־‬ α • .(‫המחסנית‬ ‫האינפורמציה‬ ‫כל‬ ‫את‬ ‫מכילה‬ ‫האוטומט‬ ‫של‬ ‫הנוכיחת‬ ‫הקונפיגורציה‬ .‫החישוב‬ ‫להמשך‬ ‫הדרושה‬ ‫אותו‬ ‫להמשיך‬ ‫ואז‬ ‫החישוב‬ ‫את‬ ‫להפסיק‬ ‫ניתן‬ ,‫כלומר‬ ‫פחות‬ ‫היה‬ ‫שכבר‬ ‫)מה‬ ‫זמן‬ ‫פרק‬ ‫כל‬ ‫אחרי‬ ‫הנוכחית‬ ‫מהקונפיגורציה‬ .(‫סימנייה‬ ‫כמו‬ ‫הוא‬ ‫הנוכחית‬ ‫והקונפיגורציה‬ ,‫אותנו‬ ‫מעניין‬ Cw 0 ‫התחלתית‬ ‫קונפיגורציה‬ 31.1.1 ‫על‬ M ‫של‬ ‫ההתחלתית‬ ‫הקונפיגורציה‬ w ∈ Σ∗ ‫קלט‬ ‫מילת‬ ‫בהינתן‬ :‫עי‬ ‫מוגדרת‬ ‫והיא‬ Cw 0 ‫ב־‬ ‫תסומן‬ w Cw 0 = (q0, w, ⊥) |=M ‫היחס‬ 31.1.2 :‫הבא‬ ‫באופן‬ c (M) ‫הקבוצה‬ ‫על‬ |=M ‫יחס‬ ‫נגדיר‬ ,c (M)‫ב־‬ C2 = (q2, v2, α2)‫ו־‬ C1 = (q1, v1α1) :‫עבור‬ ‫ורושמים‬ ,C1‫ל־‬ ‫עוקבת‬ ‫קונפיגורציה‬ (‫)היא‬ C2 ‫ש־‬ ‫אומרים‬ ‫עי‬ ,‫)כלומר‬ ‫אחד‬ ‫בצעד‬ ‫יכול‬ M ‫האוטומט‬ ‫אם‬ C1 |=M C2 ‫לעבור‬ (‫אחד‬ ε ‫מעבר‬ ‫ביצוע‬ ‫עי‬ ‫או‬ ‫הקלט‬ ‫ממילת‬ ‫אחת‬ ‫אות‬ ‫קריאת‬ ‫לפי‬ ‫דטרמיניסטי‬ ‫בהכרח‬ ‫לא‬ ,‫חוקי‬ ‫)באופן‬ C2‫ל־‬ C1 ‫מקונפיגורציה‬ .(‫המעברים‬ ‫פונקציית‬ ⇐⇒ C1 |=M C2 :‫פורמלי‬ ‫באופן‬ .X ∈ Γ ,α, β ∈ Γ∗ ‫כאשר‬ α2 = αβ‫ו־‬ α1 = Xβ .1 .σ ∈ Σε ‫כאשר‬ v1 = σv2 .2 ‫ל־‬ ‫למעלה‬ ‫שהוסבר‬ ‫כמו‬ ‫)כי‬ (q2, α) ∈ δ (q1, σ, X) .3 ‫של‬ ‫בקבוצה‬ ‫מדובר‬ ,‫כלומר‬ ,‫אפשרויות‬ ‫כמה‬ ‫יש‬ δ (q1, σ, X) .(‫סדורים‬ ‫זוגות‬ ‫של‬ ‫חישוב‬ ‫צעד‬ ‫הוא‬ ‫עוקבת‬ ‫לקונפיגורציה‬ ‫מקונפיגורציה‬ ‫מעבר‬ ‫עוקבת‬ ‫קונפיגורציה‬ ‫היא‬ C2 ‫שאם‬ ‫לב‬ ‫נשים‬ .‫מחסנית‬ ‫אוטומט‬ ‫עשינו‬ ‫)אם‬ |v2| = |v1| ‫או‬ |v2| = |v1| − 1 :‫בהכרח‬ ‫אז‬ C1‫ל־‬ .(ε ‫מעבר‬ 28
  • 29.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ ‫עניינים‬‫תוכן‬ 1 ‫בסיסיות‬ ‫הגדרות‬ I 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫ריקה‬ ‫מילה‬ ‫ועל‬ ‫ריקה‬ ‫שפה‬ ‫על‬ ‫הערות‬ ‫כמה‬ 0.1 2 ‫סופיים‬ ‫אוטומטיים‬ II 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫)אסד‬ ‫דטרמיניסטי‬ ‫סופי‬ ‫אוטומט‬ 1 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פורמלית‬ ‫הגדרה‬ 1.1 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫נוספות‬ ‫הגדרות‬ 1.2 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫גרפי‬ ‫סימון‬ 1.3 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫דוחה‬ ‫בור‬ 1.4 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . δ ‫הרחבת‬ 1.5 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולרית‬ ‫שפה‬ 1.6 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫מסוים‬ ‫אב‬ ‫)מעל‬ ‫הרגולריות‬ ‫השפות‬ ‫משפחת‬ 1.7 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מכפלה‬ ‫אוטומט‬ 1.8 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מכפלה‬ ‫באוטומט‬ δ ‫הרחבת‬ 1.8.1 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מכפלה‬ ‫לאטומט‬ ‫דוגמא‬ 1.8.2 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫נוספים‬ ‫משפטים‬ ‫כמה‬ 1.9 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫)אסלד‬ ‫דטרמינסטי‬ ‫לא‬ ‫סופי‬ ‫אוטומט‬ 2 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . NFA ‫מסוג‬ ‫אוטומטים‬ ‫לכמה‬ ‫דוגמאות‬ 2.1 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A ‫לא־דטמינסטי‬ ‫סופי‬ ‫אוטומט‬ ‫של‬ ‫השפה‬ 2.2 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫חזקה‬ ‫אוטומט‬ 2.3 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ε (‫)מעברי‬ ‫מסעי‬ ‫עם‬ ‫סופי‬ ‫אוטומט‬ 3 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הגדרה‬ 3.1 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫דוגמא‬ 3.1.1 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פורמלית‬ ‫הגדרה‬ 3.2 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫למילים‬ δ ‫הרחבת‬ 3.3 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . q ‫של‬ ε ‫סגור‬ 3.3.1 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . εNFA ‫של‬ ‫השפה‬ ‫הגדרת‬ 3.4 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . εNFA‫מ־‬ NFA ‫בניית‬ 3.5 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ε ‫מעברי‬ ‫הסרת‬ ‫תהליך‬ ‫תיאור‬ 3.5.1 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫שפות‬ ‫על‬ ‫רגולריות‬ ‫פעולות‬ 3.6 8 ‫רגולריים‬ ‫ביטויים‬ III 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הגדרה‬ 4 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פעולות‬ ‫סדר‬ 4.1 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kleene ‫משפט‬ 5 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫לאוטומט‬ ‫רגולרי‬ ‫ביטוי‬ ‫הפיכת‬ 5.1 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולרי‬ ‫לביטוי‬ DFA ‫אוטומט‬ ‫הפיכת‬ 5.2 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNFA‫ל־‬ DFA ‫אוטומט‬ ‫הפיכת‬ 5.2.1 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNFA‫ל־‬ ‫פורמלית‬ ‫הגדרה‬ 5.2.2 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNFA‫ב־‬ ‫קשתות‬ ‫סימון‬ 5.2.3 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . GNFA ‫של‬ ‫צימצום‬ 5.2.4 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולרי‬ ‫לביטוי‬ DFA ‫הפיכת‬ ‫אלגוריתם‬ 5.2.5 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫קצר‬ ‫סיכום‬ 6 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הניפוח‬ ‫למת‬ 7 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫הלמה‬ ‫)ניסוח‬ ‫הגדרה‬ 7.1 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הניפוח‬ ‫בלמת‬ ‫לשימוש‬ ‫קצרה‬ ‫דוגמא‬ 7.2 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫נוספת‬ ‫למה‬ 8 29
  • 30.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ 12‫רגולריות‬ ‫לשפות‬ ‫הכרעה‬ ‫בעיות‬ IV 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫שהוצגו‬ ‫הבעיות‬ ‫פתרונות‬ 9 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫השייכות‬ ‫בעיית‬ ‫פתרון‬ 9.1 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הריקנות‬ ‫בעיית‬ ‫פתרון‬ 9.2 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הסופיות‬ ‫בעיית‬ ‫פתרון‬ 9.3 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הנל‬ ‫לאלגוריתמים‬ ‫יעלים‬ ‫פתרונות‬ 9.4 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R (q)‫ו־‬ R0 (q) 9.4.1 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (R0 (q) ‫של‬ ‫)או‬ R (q) ‫של‬ ‫יעיל‬ ‫חישוב‬ 9.4.2 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הריקנות‬ ‫לבעיית‬ ‫יעיל‬ ‫פתרון‬ 9.4.3 12 . . . . . . . . . . . . . . . . . . . . . . . . . . DFA‫ב־‬ ‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫מצבים‬ ‫הסרת‬ 9.4.4 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הסופיות‬ ‫לבעיית‬ ‫יעיל‬ ‫פתרון‬ 9.4.5 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫השקילות‬ ‫בעיית‬ ‫פתרון‬ 9.4.6 13 ‫רגולריות‬ ‫לשפות‬ ‫אלגברי‬ ‫אפיון‬ V 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫שקילות‬ ‫יחסי‬ ‫עידון‬ 10 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫השקילות‬ ‫מחלקות‬ ‫קבוצת‬ 11 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (rank) ‫שקילות‬ ‫מחלקות‬ ‫של‬ (‫)האינדקס‬ ‫הדרגה‬ 11.1 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מימין‬ ‫אינווריאנטי‬ ‫יחס‬ 12 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫שפה‬ ‫משמר‬ ‫יחס‬ 13 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫באוטומט‬ q ∈ Q ‫מצב‬ ‫של‬ ‫שפה‬ 14 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RL ‫ו־‬ RA ‫חשובים‬ ‫שקילות‬ ‫יחסי‬ ‫שני‬ 15 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RA ‫־‬ ‫ראשון‬ ‫שקילות‬ ‫יחס‬ 15.1 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RL ‫־‬ ‫שני‬ ‫שקילות‬ ‫יחס‬ 15.2 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫דוגמאות‬ ‫מספר‬ 15.3 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫סופיות‬ ‫לשפות‬ ‫דוגמאות‬ 15.3.1 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫אינסופיות‬ ‫לשפות‬ ‫דוגמאות‬ 15.3.2 16 . . . . . . . . . . . . . . . . . . . . . . . ‫שקילות‬ ‫מחלקות‬ ‫אינסוף‬ ‫אם‬ ‫אינסופית‬ ‫לשפה‬ ‫דוגמא‬ 15.3.3 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מייהיל־נרוד‬ ‫משפט‬ 16 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מינימלי‬ DFA ‫אוטומט‬ ‫בניית‬ 16.1 17 . . . . . . . . . . . . . . . . . . . . . . ‫רגולרית‬ ‫אינה‬ ‫ששפה‬ ‫מייהיל־נרוד‬ ‫משפט‬ ‫באמצעות‬ ‫להוכחה‬ ‫דוגמא‬ 16.2 17 DFA ‫אוטומט‬ ‫של‬ ‫מינימיזציה‬ VI 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫להפרדה‬ ‫ניתנים‬ ‫מצבים‬ 17 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A ‫של‬ ‫הצימצום‬ ‫אוטומט‬ ‫בניית‬ 18 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DFA‫ב־‬ ‫שקולים‬ ‫מצבים‬ ‫לזוהי‬ ‫אלגוריתם‬ 18.1 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫באלגוריתם‬ ‫לשימוש‬ ‫דוגמא‬ 18.1.1 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫אוטומטים‬ ‫בין‬ ‫איזומורפיזם‬ 19 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫המינימלי‬ ‫האוטומט‬ ‫יחידות‬ ‫משפט‬ 19.1 20 ‫הקשר‬ ‫חסרות‬ ‫ושפות‬ ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ VII 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (CFG) ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ 20 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הגדרות‬ 20.1 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫גזירה‬ ‫הגדרות‬ 20.1.1 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרות‬ ‫שפות‬ ‫של‬ ‫סגירות‬ ‫תכונות‬ 20.2 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L1 ∪ L2 20.2.1 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L1L2 20.2.2 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . L∗ 1 20.2.3 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫דוגמאות‬ 20.3 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫גזירה‬ ‫עצי‬ 21 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פורמליות‬ ‫הגדרות‬ 21.1 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫העץ‬ ‫חזית‬ 21.1.1 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫משמעיות‬ ‫ורב‬ ‫משמעיות‬ ‫חד‬ 21.1.2 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫קנוניות‬ ‫גזירות‬ 21.1.3 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולריים‬ ‫דקדוקים‬ 22 30
  • 31.
    ‫אוטומטים‬ ‫שיבאן‬ '‫פרג‬ ‫דר‬ 23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫ימני‬ ‫לינארי‬ ‫דקדוק‬ 22.1 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרות‬ ‫לשפות‬ ‫הניפוח‬ ‫למת‬ 23 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרי‬ ‫דקדוקים‬ ‫פישוט‬ 24 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מיותרים‬ ‫סימנים‬ ‫הסרת‬ 24.1 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫טרמינלית‬ ‫מילה‬ ‫גוזרים‬ ‫שאינם‬ ‫סימנים‬ ‫להסרת‬ ‫אלגוריתם‬ 24.2 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫להשגה‬ ‫ניתנים‬ ‫שאינם‬ ‫סימנים‬ ‫להסרת‬ ‫אלגוריתם‬ 24.3 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ε ‫כללי‬ ‫להסרת‬ ‫אלגוריתם‬ 24.4 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫לאיפוס‬ ‫הניתנים‬ ‫משתנים‬ ‫למציאת‬ ‫אלגוריתם‬ 24.4.1 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫יחידה‬ ‫כללי‬ ‫להסרת‬ ‫אלגוריתם‬ 24.5 25 . . . . . . . . . . . . . . . . . . . . . . . . . . u (G) ‫היחידה‬ ‫זוגות‬ ‫קבוצת‬ ‫לחישוב‬ ‫אלגוריתם‬ 24.5.1 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫האלגוריתמים‬ ‫לביצוע‬ ‫הנכון‬ ‫הסדר‬ 24.6 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (CNF) ‫חומסקי‬ ‫של‬ ‫הנורמלית‬ ‫הצורה‬ 25 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫חה‬ ‫מדקדוק‬ CNF ‫בניית‬ 25.1 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרות‬ ‫שפות‬ ‫של‬ ‫סגירות‬ ‫לתכונות‬ ‫בקשר‬ ‫משפטים‬ 26 26 . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הקשר‬ ‫חסרת‬ ‫ושפה‬ ‫רגולרית‬ ‫שפה‬ ‫חיתוך‬ ‫על‬ ‫חשוב‬ ‫משפט‬ 26.1 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫רגולריות‬ ‫בבעיות‬ ‫הכרעה‬ ‫בעיות‬ ‫פתרון‬ 27 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הריקנות‬ ‫בעיית‬ 27.1 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫הסופיות‬ ‫בעיית‬ 27.2 27 (PDA) ‫מחסנית‬ ‫אוטומט‬ VIII 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫פורמלית‬ ‫הגדרה‬ 28 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫סימונים‬ 29 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫ופירושים‬ ‫הערות‬ 30 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫המחסנית‬ ‫מבנה‬ 30.1 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . δ ‫המעברים‬ ‫פונקצית‬ 30.2 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M ‫של‬ ‫השפה‬ 30.3 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ‫מחסנית‬ ‫אוטומט‬ ‫של‬ ‫החישוב‬ 31 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (‫רגעי‬ ‫תיאור‬ :‫)או‬ M ‫של‬ ‫קונפיגורציה‬ 31.1 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cw 0 ‫התחלתית‬ ‫קונפיגורציה‬ 31.1.1 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |=M ‫היחס‬ 31.1.2 31