SlideShare a Scribd company logo
1 of 31
Download to read offline
‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫ד"ר‬
‫פורמליות‬ ‫ושפות‬ ‫אוטומטים‬
‫שיבאן‬ '‫פרג‬ ‫ד"ר‬
‫תשע"ו‬ ‫־‬ '‫א‬ ‫סמסטר‬
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
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות
סיכום של הקורס אוטומטים ושפות פורמליות

More Related Content

What's hot

Logic Design - Chapter 2: Logic Gates
Logic Design - Chapter 2: Logic GatesLogic Design - Chapter 2: Logic Gates
Logic Design - Chapter 2: Logic GatesGouda Mando
 
Theory of Automata Lesson 02
Theory of Automata Lesson 02Theory of Automata Lesson 02
Theory of Automata Lesson 02hamzamughal39
 
Probability cheatsheet
Probability cheatsheetProbability cheatsheet
Probability cheatsheetSuvrat Mishra
 
Turing Machine
Turing MachineTuring Machine
Turing MachineRajendran
 
Context Free Grammar
Context Free GrammarContext Free Grammar
Context Free GrammarAkhil Kaushik
 
Context free langauges
Context free langaugesContext free langauges
Context free langaugessudhir sharma
 
Finite state Transducers and mealy Machine
Finite state Transducers and mealy Machine Finite state Transducers and mealy Machine
Finite state Transducers and mealy Machine Nadeem Qasmi
 
Context free grammars
Context free grammarsContext free grammars
Context free grammarsShiraz316
 
Regular Languages
Regular LanguagesRegular Languages
Regular Languagesparmeet834
 
Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)Animesh Chaturvedi
 
Lecture: Regular Expressions and Regular Languages
Lecture: Regular Expressions and Regular LanguagesLecture: Regular Expressions and Regular Languages
Lecture: Regular Expressions and Regular LanguagesMarina Santini
 
Formal Languages and Automata Theory unit 5
Formal Languages and Automata Theory unit 5Formal Languages and Automata Theory unit 5
Formal Languages and Automata Theory unit 5Srimatre K
 
Lecture 3,4
Lecture 3,4Lecture 3,4
Lecture 3,4shah zeb
 
סיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתסיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתcsnotes
 
Simplifiaction of grammar
Simplifiaction of grammarSimplifiaction of grammar
Simplifiaction of grammarlavishka_anuj
 

What's hot (20)

Lesson 03
Lesson 03Lesson 03
Lesson 03
 
Logic Design - Chapter 2: Logic Gates
Logic Design - Chapter 2: Logic GatesLogic Design - Chapter 2: Logic Gates
Logic Design - Chapter 2: Logic Gates
 
Theory of Automata Lesson 02
Theory of Automata Lesson 02Theory of Automata Lesson 02
Theory of Automata Lesson 02
 
Probability cheatsheet
Probability cheatsheetProbability cheatsheet
Probability cheatsheet
 
Turing Machine
Turing MachineTuring Machine
Turing Machine
 
Pumping lemma
Pumping lemmaPumping lemma
Pumping lemma
 
Context Free Grammar
Context Free GrammarContext Free Grammar
Context Free Grammar
 
Context free langauges
Context free langaugesContext free langauges
Context free langauges
 
Finite state Transducers and mealy Machine
Finite state Transducers and mealy Machine Finite state Transducers and mealy Machine
Finite state Transducers and mealy Machine
 
Context free grammars
Context free grammarsContext free grammars
Context free grammars
 
Regular Languages
Regular LanguagesRegular Languages
Regular Languages
 
Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)Deterministic Finite Automata (DFA)
Deterministic Finite Automata (DFA)
 
Lecture: Regular Expressions and Regular Languages
Lecture: Regular Expressions and Regular LanguagesLecture: Regular Expressions and Regular Languages
Lecture: Regular Expressions and Regular Languages
 
Lesson 05
Lesson 05Lesson 05
Lesson 05
 
Formal Languages and Automata Theory unit 5
Formal Languages and Automata Theory unit 5Formal Languages and Automata Theory unit 5
Formal Languages and Automata Theory unit 5
 
Lecture 3,4
Lecture 3,4Lecture 3,4
Lecture 3,4
 
סיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתסיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותית
 
Lesson 02
Lesson 02Lesson 02
Lesson 02
 
Pumping lemma
Pumping lemmaPumping lemma
Pumping lemma
 
Simplifiaction of grammar
Simplifiaction of grammarSimplifiaction of grammar
Simplifiaction of grammar
 

More from csnotes

סיכום של הקרוס למידה עמוקה
סיכום של הקרוס למידה עמוקהסיכום של הקרוס למידה עמוקה
סיכום של הקרוס למידה עמוקהcsnotes
 
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנהסיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנהcsnotes
 
סיכום על בדיקת לינאריות
סיכום על בדיקת לינאריותסיכום על בדיקת לינאריות
סיכום על בדיקת לינאריותcsnotes
 
סיכום הקורס במורכבות החישובים
סיכום הקורס במורכבות החישוביםסיכום הקורס במורכבות החישובים
סיכום הקורס במורכבות החישוביםcsnotes
 
סיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתסיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתcsnotes
 
תזכורת לגבי הוכחות בשיטת האלכסון
תזכורת לגבי הוכחות בשיטת האלכסוןתזכורת לגבי הוכחות בשיטת האלכסון
תזכורת לגבי הוכחות בשיטת האלכסוןcsnotes
 
נספח תזכורות מלוגיקה בולאנית
נספח תזכורות מלוגיקה בולאניתנספח תזכורות מלוגיקה בולאנית
נספח תזכורות מלוגיקה בולאניתcsnotes
 
סיכום קצר של דברים מתוך הקורס בתורת החישוביות
סיכום קצר של דברים מתוך הקורס בתורת החישוביותסיכום קצר של דברים מתוך הקורס בתורת החישוביות
סיכום קצר של דברים מתוך הקורס בתורת החישוביותcsnotes
 
סיכום בתחשיב היחסים
סיכום בתחשיב היחסיםסיכום בתחשיב היחסים
סיכום בתחשיב היחסיםcsnotes
 
סיכום בלוגיקה
סיכום בלוגיקהסיכום בלוגיקה
סיכום בלוגיקהcsnotes
 
מבני נתונים
מבני נתוניםמבני נתונים
מבני נתוניםcsnotes
 
Calculus1.pdf
Calculus1.pdfCalculus1.pdf
Calculus1.pdfcsnotes
 
ModProg.pdf
ModProg.pdfModProg.pdf
ModProg.pdfcsnotes
 
סיכום הקורס במבוא להצפנה
סיכום הקורס במבוא להצפנהסיכום הקורס במבוא להצפנה
סיכום הקורס במבוא להצפנהcsnotes
 
סיכום במורכבות החישובים
סיכום במורכבות החישוביםסיכום במורכבות החישובים
סיכום במורכבות החישוביםcsnotes
 
סיכום הקורס בחישוביות
סיכום הקורס בחישוביותסיכום הקורס בחישוביות
סיכום הקורס בחישוביותcsnotes
 
סיכום של הקורס אלגוריתמים
סיכום של הקורס אלגוריתמיםסיכום של הקורס אלגוריתמים
סיכום של הקורס אלגוריתמיםcsnotes
 
סיכום על מטרואידים וזרימות בגרפים
סיכום על מטרואידים וזרימות בגרפיםסיכום על מטרואידים וזרימות בגרפים
סיכום על מטרואידים וזרימות בגרפיםcsnotes
 
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן) סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן) csnotes
 
סיכום קצר על טורי טיילור
סיכום קצר על טורי טיילורסיכום קצר על טורי טיילור
סיכום קצר על טורי טיילורcsnotes
 

More from csnotes (20)

סיכום של הקרוס למידה עמוקה
סיכום של הקרוס למידה עמוקהסיכום של הקרוס למידה עמוקה
סיכום של הקרוס למידה עמוקה
 
סיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנהסיכום של הקורס מבוא להצפנה
סיכום של הקורס מבוא להצפנה
 
סיכום על בדיקת לינאריות
סיכום על בדיקת לינאריותסיכום על בדיקת לינאריות
סיכום על בדיקת לינאריות
 
סיכום הקורס במורכבות החישובים
סיכום הקורס במורכבות החישוביםסיכום הקורס במורכבות החישובים
סיכום הקורס במורכבות החישובים
 
סיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותיתסיכום הקורס בבינה מלאכותית
סיכום הקורס בבינה מלאכותית
 
תזכורת לגבי הוכחות בשיטת האלכסון
תזכורת לגבי הוכחות בשיטת האלכסוןתזכורת לגבי הוכחות בשיטת האלכסון
תזכורת לגבי הוכחות בשיטת האלכסון
 
נספח תזכורות מלוגיקה בולאנית
נספח תזכורות מלוגיקה בולאניתנספח תזכורות מלוגיקה בולאנית
נספח תזכורות מלוגיקה בולאנית
 
סיכום קצר של דברים מתוך הקורס בתורת החישוביות
סיכום קצר של דברים מתוך הקורס בתורת החישוביותסיכום קצר של דברים מתוך הקורס בתורת החישוביות
סיכום קצר של דברים מתוך הקורס בתורת החישוביות
 
סיכום בתחשיב היחסים
סיכום בתחשיב היחסיםסיכום בתחשיב היחסים
סיכום בתחשיב היחסים
 
סיכום בלוגיקה
סיכום בלוגיקהסיכום בלוגיקה
סיכום בלוגיקה
 
מבני נתונים
מבני נתוניםמבני נתונים
מבני נתונים
 
Calculus1.pdf
Calculus1.pdfCalculus1.pdf
Calculus1.pdf
 
ModProg.pdf
ModProg.pdfModProg.pdf
ModProg.pdf
 
סיכום הקורס במבוא להצפנה
סיכום הקורס במבוא להצפנהסיכום הקורס במבוא להצפנה
סיכום הקורס במבוא להצפנה
 
סיכום במורכבות החישובים
סיכום במורכבות החישוביםסיכום במורכבות החישובים
סיכום במורכבות החישובים
 
סיכום הקורס בחישוביות
סיכום הקורס בחישוביותסיכום הקורס בחישוביות
סיכום הקורס בחישוביות
 
סיכום של הקורס אלגוריתמים
סיכום של הקורס אלגוריתמיםסיכום של הקורס אלגוריתמים
סיכום של הקורס אלגוריתמים
 
סיכום על מטרואידים וזרימות בגרפים
סיכום על מטרואידים וזרימות בגרפיםסיכום על מטרואידים וזרימות בגרפים
סיכום על מטרואידים וזרימות בגרפים
 
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן) סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
סיכום קצר בקורס חדו"א 2 (נספח נוסחאות למבחן)
 
סיכום קצר על טורי טיילור
סיכום קצר על טורי טיילורסיכום קצר על טורי טיילור
סיכום קצר על טורי טיילור
 

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

  • 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