Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

30
ΑΣΚΗΣΕΙΣ ΓΙΑ ΑΥΤΟΜΑΤΑ ΣΤΟΙΒΑΣ Βρείτε τα αυτόmατα στοίβας για τις παρακάτω γλώσσες: (1) L = {a i b i : i 0}. ε | ε, ε ε | γ,ε a | γ,δγ a | δ, δδ b | δ, ε (2) L = {a i b 2i : i 0}. ε | ε, ε ε | γ,ε a | γ,δδγ a | δ, δδδ b | δ, ε (3) L = {a 2i b i : i 0}. ε | ε, ε ε | γ,ε a | γ,δγ a | δ, δδ a | δ, δ b | δ, ε (4) L = {a 2i b 3i : i 1}. ε | ε, ε ε | γ,ε a | γ, δδδγ a | δ, δδδδ a | δ, δ b | δ, ε 1

Transcript of Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

Page 1: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

ΑΣΚΗΣΕΙΣ ΓΙΑ ΑΥΤΟΜΑΤΑ ΣΤΟΙΒΑΣ

Βρείτε τα αυτόματα στοίβας για τις παρακάτω γλώσσες:

(1) L = {aibi: i ≥ 0}.

ε | ε, ε ε | γ, ε

a | γ, δγa | δ, δδ b | δ, ε

(2) L = {aib2i: i ≥ 0}.

ε | ε, ε ε | γ, ε

a | γ, δδγa | δ, δδδ b | δ, ε

(3) L = {a2ibi: i ≥ 0}.

ε | ε, ε ε | γ, ε

a | γ, δγa | δ, δδ a | δ, δ b | δ, ε

(4) L = {a2ib3i: i ≥ 1}.

ε | ε, ε ε | γ, ε

a | γ, δδδγa | δ, δδδδ a | δ, δ b | δ, ε

1

Page 2: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(5) L = {aibj: i 6= j, i, j ≥ 0}.

a | γ, γ

ε | ε, ε ε | ε, ε

ε | γ, ε

ε | ε, ε

ε | ε, ε b | γ, γ

ε | γ, ε

a | γ, γa | γ, δγa | δ, δδ b | δ, ε

a | γ, δγa | δ, δδ

b | δ, ε b | γ, γ

(6) L = {aibj: 0 ≤ i ≤ j ≤ 2i}.

ε | ε, ε ε | γ, ε

a | γ, δγa | γ, δδγa | δ, δδa | δ, δδδ b | δ, ε

(7) L = {aibi: i 6= 0 mod 3}.

a | γ, δγa | δ, δδ

a | δ, δδ

a | δ, δδ

b | δ, ε

b | δ, ε b | δ, ε

ε | γ, ε

2

Page 3: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

Εναλλακτική λύση:

b | δ0, εb | δ1, ε

ε | γ, ε

a | γ, δ0γa | δ0, δ1δ0a | δ1, δ2δ1a | δ2, δ0δ2

b | δ0, εb | δ1, εb | δ2, ε

(8) L = {ab(ab)ib(ba)i: i ≥ 0}.

a | γ, γ b | γ, γb | γ, γb | δ, δ ε | γ, ε

a | ε, εb | γ, δγb | δ, δδ b | ε, εa | δ, ε

(9) L = {anw : n ≥ 0, w ∈ (a+ b)∗ και |w| ≤ n}.

ε | ε, ε ε | γ, ε

a | γ, δγa | δ, δδ a+ b+ ε | δ, ε

(10) L = {w ∈ (a+ b)∗: |w| άρτιο}.

ε | γ, ε

a+ b | γ, δγ a+ b | δ, ε

3

Page 4: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(11) L = {w ∈ (a+ b)∗: |w| περιττό}.

ε | γ, ε

a+ b | γ, δγ a+ b | δ, ε

(12) L = {w1aw2 ∈ (a+ b)∗: |w1| και |w2| άρτια}.

a | γ, γ

a+ b | γ, δγ a+ b | δ, ε

a+ b | γ, δγ a+ b | δ, ε

ε | γ, ε

(13) L = {aibjci: i, j ≥ 0}.

ε | ε, ε ε | ε, ε ε | γ, ε

a | γ, δγa | δ, δδ b | ε, ε c | δ, ε

(14) L = {aibjck: i = j + k}.

ε | ε, ε ε | ε, ε ε | γ, ε

a | γ, δγa | δ, δδ b | δ, ε c | δ, ε

4

Page 5: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(15) L = {aibjck: j = i+ k}.

ε | ε, ε ε | ε, ε ε | γ, ε

a | γ, δγa | δ, δδ

b | δ, εb | γ, ηγb | η, ηη c | η, ε

(16) L = {aibjck: k = i+ j}.

ε | ε, ε ε | ε, ε ε | γ, ε

a | γ, δγa | δ, δδ

b | γ, δγb | δ, δδ c | δ, ε

(17) L = {a3bici: i ≥ 0}.

a | γ, γ a | γ, γ a | γ, γ ε | ε, ε ε | γ, ε

a | γ, δγa | δ, δδ c | δ, ε

(18) L = {aibjck: i = j ή j = k}.

ε | ε, ε

ε | ε, ε ε | ε, ε

ε | γ, ε

ε | ε, ε

ε | ε, ε b | γ, γ

ε | γ, ε

a | γ, δγa | δ, δδ b | δ, ε c | γ, γ

a | γ, γ b | γ, δγb | δ, δδ

c | δ, ε

5

Page 6: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(19) L = {aibjck: j < i ή j < k}.

ε | ε, ε

ε | ε, ε

ε | ε, εε | γ, ε

ε | ε, ε

ε | ε, ε

ε | ε, ε

a | γ, γ

a | γ, δγa | δ, δδ b | δ, ε

c | γ, γ

b | γ, δγb | δ, δδ

c | δ, ε

(20) L = {aibici: i ≥ 0}.

ε | ε, ε; ε, ε ε | ε, ε; ε, ε ε | γ1, ε; γ2, ε

a | γ1, δ1γ1; γ2, δ2γ2a | δ1, δ1δ1; δ2, δ2δ2 b | δ1, ε; δ2, δ2 c | γ1, γ1; δ2, ε

(21) L = {aibicidi: i ≥ 0}.

ε | ε, ε; ε, ε ε | ε, ε; ε, ε ε | ε, ε; ε, ε ε | γ1, ε; γ2, ε

a | γ1, δ1γ1; γ2, γ2a | δ1, δ1δ1; γ2, γ2

b | δ1, ε; γ2, δ2γ2b | δ1, ε; δ2, δ2δ2

c | γ1, δ1γ1; δ2, εc | δ1, δ1δ1; δ2, ε d | δ1, ε; γ2, γ2

(22) L = {aibjcjdi: i, j ≥ 0}.

ε | ε, ε; ε, ε ε | ε, ε; ε, ε ε | ε, ε; ε, ε ε | γ1, ε; γ2, ε

a | γ1, δ1γ1; γ2, γ2a | δ1, δ1δ1; γ2, γ2

b | δ1, δ1; γ2, δ2γ2b | δ1, δ1; δ2, δ2δ2 c | δ1, δ1; δ2, ε d | δ1, ε; γ2, γ2

6

Page 7: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(23) L = {w ∈ (a+ b)?: na(w) = nb(w)}.

ε | γ, ε

a | γ, δaγa | δa, δaδaa | δb, ε

b | γ, δbγb | δb, δbδbb | δa, ε

(24) L = {w ∈ (a+ b)?: na(w) = nb(w) + 1}.

na = nb na = nba | γ, γ ε | γ, ε

(25) L = {w ∈ (a+ b)?: na(w) ≥ nb(w) + 1}.

na = nb na = nbε | ε, ε a | γ, γ ε | ε, ε ε | ε, ε ε | γ, ε

a | γ, γ a | γ, γ a | γ, γ

7

Page 8: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(26) L = {w ∈ (a+ b)?: na(w) = 2nb(w)}.

a | γ, δaγa | δa, δaδa

a | γ, γa | δa, δa

a | δb, εb | γ, δbδbγb | δb, δbδbδbb | δa, ε

b | γ, δbδbγb | δb, δbδbδbb | δa, ε

a | δb, εb | γ, δbδbγb | δb, δbδbδbb | δa, ε

a | γ, δaγ

ε | γ, ε

ε | γ, ε

ε | γ, ε

(27) L = {w ∈ (a+ b)?: na(w) = 2nb(w) + 1}.

na = 2nb

na = 2nb

na = 2nb

na = 2nbε | ε, ε

a | γ, γ

ε | ε, ε

a | γ, γ

ε | γ, ε

ε | γ, ε

a | γ, ε

(28) L = {w ∈ (a+ b)?: na(w) = 3nb(w)}.

8

Page 9: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(29) L = {w ∈ (a+ b)?: na(w) < nb(w)}.

na = nb na = nbε | ε, ε ε | ε, ε ε | ε, ε ε | ε, ε ε | γ, ε

b | γ, γ b | γ, γ b | γ, γ

(30) L = {w ∈ (a+ b)?: na(w) > 2nb(w)}.

(31) L = {w ∈ (a+ b)?: 2na(w) ≤ nb(w) ≤ 3na(w)}.

(32) L = {w ∈ (a+ b+ c)?: na(w) + nb(w) = nc(w)}.

ε | γ, ε

a | γ, δγa | δ, δδa | η, εb | γ, δγb | δ, δδb | η, ε

c | δ, εc | γ, ηγc | η, ηη

(33) L = {wwR: w ∈ (a+ b)?}.

ε | ε, ε ε | γ, ε

a | γ, δaγa | δa, δaδa

b | γ, δbγb | δb, δbδb

a | δa, ε

b | δb, ε

9

Page 10: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(34) L = {wcwR: w ∈ (a+ b)?}.

c | ε, ε ε | γ, ε

a | γ, δaγa | δa, δaδa

b | γ, δbγb | δb, δbδb

a | δa, ε

b | δb, ε

(35) L = {w ∈ (a+ b)?: w = wR}.Απ.: Προφανώς, ισχύει ότι w = wR

αν και μόνον αν είτε w = zzR ή w = zσzR, για κάποια λέξηz ∈ (a+ b)∗ και κάποιο σύμβολο σ = a ή b. Επομένως:

ε | ε, ε

σ | ε, εε | γ, ε

a | γ, δaγa | δa, δaδa

b | γ, δbγb | δb, δbδb

a | δa, ε

b | δb, ε

10

Page 11: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

ΑΣΚΗΣΕΙΣ ΓΙΑ ΓΡΑΜΜΑΤΙΚΕΣ ΑΝΕΞΑΡΤΗΤΕΣ ΣΥΜΦΡΑΖΟΜΕΝΩΝ

Βρείτε τις γλώσσες για τις παρακάτω γραμματικές ανεξάρτητες συμφραζομένων:

(1) S → aSa | aBa,B → bB | b.Απ.: S

n=⇒ anSan

m=⇒ an

(amBam

)an

k=⇒ an+mbkBan+m ⇒ an+mbk+1an+m. ΄Αρα, η γλώσσα

είναι η L = {aibjai: i ≥ 0, j > 0}.

(2) S → aSdd |A,A→ bAc | bc.Απ.: S

n=⇒ anS(dd)n ⇒ anA(dd)n

m=⇒ an

(bmAcm

)(dd)n ⇒ anbmbccm(dd)n =

anbm+1cm+1(dd)n. ΄Αρα, η γλώσσα είναι η L = {aibjcjd2i: i ≥ 0, j > 0}.

(3) S → aSb | aSbb | ε.Απ.: S

n=⇒ anSbn

m=⇒ an

(amS(bb)m

)bn ⇒ an+mbn+2m. ΄Αρα, η γλώσσα είναι η L = {aibj: 0 ≤

i ≤ j ≤ 2i}.

(4) S → abScB | ε,B → bB | b.Απ.: S

n=⇒ (ab)nS(cB)n ⇒ (ab)n(cB)n

m=⇒ (ab)n

(c(bmB)

)n ⇒ (ab)n(cbm+1)n. ΄Αρα, η γλώσσαείναι η L = {(ab)i(cbj)i: i ≥ 0, j > 0}.

Βρείτε τις γραμματικές ανεξάρτητες συμφραζομένων για τις παρακάτω γλώσσες:

(5) L = {aibi: i ≥ 0}.Απ.: S → aSb | ε.

(6) L = {(ab)i: i ≥ 0}.Απ.: S → abS | ε.

(7) L = {aibi+1: i ≥ 0}.Απ.: S → aSb | b. ΄Η S → Bb,B → aBb | ε κλπ.

(8) L = {aib2i: i ≥ 0}.Απ.: S → aSbb | ε.

(9) L = {aibj: i > 0, j ≥ 0}.Απ.: S → AB,A→ aA | a,B → Bb | ε.

(10) L = {ai+2bi: i ≥ 1}.Απ.: S → aSb | aaab.

(11) L = {aibi−3: i ≥ 3}.Απ.: S → aSb | aaa.

(12) L = {aibj: j > i ≥ 0}.Απ.: S → aSb |Sb | b.

(13) L = {aibj: i 6= j}.Απ.: S → S> |S<, S> → aS>b | aS> | a, S< → aS<b |S<b | b.

(14) L = {aibj: i ≤ j + 3}.Απ.: S → aaaB | aaB | aB |B,B → aBb |Bb | b.

(15) L = {aibj: i 6= j − 1}.Απ.: S → A |B,A→ aAb | aA | ε,B → aBb |Bb | bb.

(16) L = {aibj: i 6= 2j}.Απ.: S → A |B,A→ aaAb | aA | a,B → aaBb | aBb |Bb | b.

1

Γιάννης
Stamp
Page 12: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(17) L = {aibj: 2i ≤ j ≤ 3i}.Απ.: S → aSbb | aSbbbb | ε.

(18) L = {a2ib3j: i, j ≥ 0}.Απ.: S → AB,A→ aaA | ε,B → Bbbbb | ε.

(19) L = {aibjck: i = j ή j ≤ k}.Απ.: S → S1C |AS2, S1 → aS1b | ε, C → Cc | ε,A→ aA | ε, S2 → bS2c |S2c | ε.

(20) L = {aibjck: i = j ή j 6= k}.Απ.: S → S1C |AS3, S1 → aS1b | ε, C → Cc | ε,A→ aA | ε, S3 → S2 |S4,S2 → bS2c |S2c | c, S4 → bS4c | bS4 | b.

(21) L = {aibjck: i 6= j ή j 6= k}.Απ.: S → S1C |AS3, S1 → S5 |S6, S5 → aS5b | aS5 | a, S6 → aS6b |S6b | b, S3 → S2 |S4,S2 → bS2c |S2c | c, S4 → bS4c | bS4 | b.

(22) L = {aibjck: k = i+ j}.Απ.: S → aSc |S1 | ε, S1 → bS1c | ε.

(23) L = {aibjck: k 6= i+ j}.Απ.: S → S1 |S2, S1 → aS1c |S3 | c, S3 → bS3c |S3c | c,S2 → AS4, A→ aA | ε, S4 → aS4c |S5 | a, S5 → bS5c | bS5 | b.

(24) L = {aibjck: i+ 2j = k}.Απ.: S → aSc |S1 | ε, S1 → bS1cc | ε.

(25) L = {aibjck: k = |i− j|}.Απ.: S → S1 |S2S3, S1 → aS1c |S2 | ε, S2 → aS2b | ε, S3 → bS3c | ε.

(26) L = {aibick: i ≥ 0, k ≥ 3}.Απ.: S → S1C, S1 → aS1b | ε, C → Cc | ccc.

(27) (i) L = {w ∈ (a+ b)∗: |w| = άρτιο}.(ii) L = {w ∈ (a+ b)∗: |w| = περιττό}.Απ.: Το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο (χωρίς το συμβολισμό των τελικών

καταστάσεων είναι):

S T

a+ b

a+ b

(i) Η τελική κατάσταση είναι η S κι οι κανόνες είναι: S → aT | bT | ε, T → aS | bS.(ii) Η τελική κατάσταση είναι η T κι οι κανόνες είναι: S → aT | bT, T → aS | bS | ε.

(28) (i) L = {w ∈ (a+ b)∗: |w| mod 3 = 0}.(ii) L = {w ∈ (a+ b)∗: |w| mod 3 > 0}.(iii) L = {w ∈ (a+ b)∗: |w| mod 3 6= |w| mod 2}.(iv) L = {w ∈ (a+ b)∗: |w| mod 3 ≥ |w| mod 2}.Απ.: Το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο (χωρίς το συμβολισμό των τελικών

καταστάσεων είναι):

2

Γιάννης
Typewritten Text
Γιάννης
Stamp
Γιάννης
Stamp
Page 13: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

U

S Ta+ b

a+ ba+ b

(i) Η τελική κατάσταση είναι η S κι οι κανόνες είναι: S → (a+b)T | ε, T → (a+b)U,U → (a+b)S(ή S → (a+ b)3S | ε).

(ii) Οι τελικές καταστάσεις είναι οι T και U κι οι κανόνες είναι: S → (a + b)T, T → (a +b)U | ε, U → (a+ b)S | ε (ή S → (a+ b)T | (a+ b)2U, T → (a+ b)3T | ε, U → (a+ b)3U | ε).

(iii) Προφανώς, |w| mod 3 = |w| mod 2 αν και μόνον αν |w| mod 6 = 0 ή 1, που σημαίνει ότι|w| mod 3 6= |w| mod 2 αν και μόνον αν |w| mod 6 = 2, 3, 4 ή 5. Επομένως, το αντίστοιχοντετερμινιστικό πεπερασμένο αυτόματο είναι:

S

T U

V

X W

a+ b

a+ b

a+ b

a+ b

a+ b

a+ b

΄Αρα, οι κανόνες είναι: S → (a+b)T, T → (a+b)U,U → (a+b)V | ε, V → (a+b)W | ε,W →(a+ b)X | ε,X → (a+ b)S | ε.

(iv) Προφανώς, |w| mod 3 ≥ |w| mod 2 αν και μόνον αν |w| mod 6 6= 3, που σημαίνει ότι |w|mod 3 ≥ |w| mod 2 αν και μόνον αν |w| mod 6 = 0, 1, 2, ή 4, 5, 6. Επομένως, το αντίστοιχοντετερμινιστικό πεπερασμένο αυτόματο είναι:

S

T U

V

X W

a+ b

a+ b

a+ b

a+ b

a+ b

a+ b

΄Αρα, οι κανόνες είναι: S → (a+ b)T | ε, T → (a+ b)U | ε, U → (a+ b)V | ε, V → (a+ b)W,W →(a+ b)X | ε,X → (a+ b)S | ε.

(29) (i) L = {w ∈ (a+ b)∗: na(w) = άρτιο}.(ii) L = {w ∈ (a+ b)∗: na(w) = περιττό}.(iii) L = {w ∈ (a+ b)∗: na(w) = άρτιο και nb(w) = άρτιο}.

3

Page 14: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(iv) L = {w ∈ (a+ b)∗: na(w) = άρτιο και nb(w) = περιττό}.Απ.: Το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο (χωρίς το συμβολισμό των τελικών

καταστάσεων είναι):

S T

UV

a

a

bb

a

a

b b

(i) Οι τελικές καταστάσεις είναι οι S και V κι οι κανόνες είναι: S → aT | bV | ε, T → aS | bU, U →aV | bT, V → aU | bS | ε.Μια δεύτερη λύση: Επειδή na(w) άρτιο αν και μόνον αν na(ww) άρτιο, δηλαδή, γενικώς,αν και μόνον αν na

((ww)∗

)άρτιο, όπως επίσης και τα na(bw) και na(wb) άρτια, παίρνουμε

τους εξής (διαφορετικούς) κανόνες: S → AA | ε,A→ AAA | bA |Ab | a.(ii) Οι τελικές καταστάσεις είναι οι T και U κι οι κανόνες είναι: S → aT | bV, T →

aS | bU | ε, U → aV | bT | ε, V → aU | bS.Μια δεύτερη λύση: Επειδή na(w) περιττό αν και μόνον αν na(www) περιττό, δηλαδή, γενι-κώς, αν και μόνον αν na

(w(ww)∗

)περιττό, όπως επίσης και τα na(bw) και na(wb) περιττά,

παίρνουμε τους εξής (διαφορετικούς) κανόνες: S → AAA,A→ AAA | bA |Ab | a.(iii) Η τελική κατάσταση είναι η S κι οι κανόνες είναι: S → aT | bV | ε, T → aS | bU, U →

aV | bT, V → aU | bS.(iv) Η τελική κατάσταση είναι η V κι οι κανόνες είναι: S → aT | bV, T → aS | bU, U →

aV | bT, V → aU | bS | ε.

(30) L = {w ∈ (a+ b+ c)∗: το abc δεν περιέχεται στη w}.Απ.: Το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο (χωρίς το συμβολισμό των τελικών

καταστάσεων είναι):

U

S T

a

c a

b

b

b+ c

a

Οι τελικές καταστάσεις είναι οι S, T και U κι οι κανόνες είναι: S → aU | bS | cS | ε, T →aU | bS | ε, U → aU | bT | cS | ε.

4

Γιάννης
Stamp
Page 15: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(31) L = {w ∈ (a+ b)∗: na(w) = 1}.

Απ.: Το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο:

S Ta

b b

Η τελική κατάσταση είναι η T κι οι κανόνες είναι: S → aT | bS, T → bT | ε.

(32) L = {w ∈ (a+ b)∗: na(w) ≥ 1}.

Απ.: ΄Οπως στην προηγούμενη άσκηση, αλλά με την προσθήκη ενός επιπλέον κανόνα για την T(από τον αυτοβρόχο με a στην T ): S → aT | bS, T → aT | bT | ε.

(33) L = {w ∈ (a+ b)∗: na(w) = 2}.

Απ.: Το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο:

S T Ua a

b b b

Η τελική κατάσταση είναι η U κι οι κανόνες είναι: S → aT | bS, T → aU | bT, U → bU | ε.

(34) L = {w ∈ (a+ b)∗: na(w) ≥ 2}.

Απ.: ΄Οπως στην προηγούμενη άσκηση, αλλά με την προσθήκη ενός επιπλέον κανόνα για την U(από τον αυτοβρόχο με a στην U): S → aT | bS, T → aU | bT, U → aU | bU | ε.

(35) L = {w ∈ (a+ b)∗: na(w) ≤ 3}.

Απ.: Το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο:

S T U Va a a

b b b b

Οι τελικές καταστάσεις είναι οι S, T, U και V κι οι κανόνες είναι: S → aT | bS | ε, T →aU | bT | ε, U → aV | bU | ε, V → bV | ε.

(36) L = {w ∈ (a+ b)∗: na(w) ≥ 3}.

Απ.: Το αντίστοιχο ντετερμινιστικό πεπερασμένο αυτόματο:

S T U Va a a

b b b a+ b

Οι τελικές καταστάσεις είναι οι S, T, U και V κι οι κανόνες είναι: S → aT | bS, T → aU | bT, U →aV | bU, V → aV | bV | ε.

5

Page 16: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(37) L = {w ∈ (a+ b)∗: na(w) = nb(w)}.

Απ.: Επειδή w ∈ L αν και μόνον αν w1w2 ∈ L, για κάθε ζεύγος w1, w2 ∈ L, και awb ∈ L καιbwa ∈ L, οι κανόνες είναι: S → SS | aSb | bSa | ε.

(38) L = {w ∈ (a+ b)∗: na(w) = nb(w) + 1}.

Απ.: Συμβολίζοντας με S0 τη μεταβλητή που δημιουργεί λέξεις με ίσο πλήθος των a και των b(όπως στην προηγούμενη άσκηση), οι κανόνες είναι: S → S0aS0, S0 → S0S0 | aS0b | bS0a | ε.

(39) L = {w ∈ (a+ b)∗: na(w) > nb(w)}.

Απ.: Πάλι συμβολίζοντας S0 τη μεταβλητή για λέξεις με ίδιο πλήθος συμβόλων, οι κανόνες είναι:

S → S0AS0, S0 → S0S0 | aS0b | bS0a | ε,A→ aA | a.

(40) L = {w ∈ (a+ b)∗: nb(w) ≥ na(w)}.

Απ.: Προφανώς, όπως προηγούμενα, οι κανόνες είναι: S → SS | aSb | bSa | bS | ε.

(41) L = {w ∈ (a+ b)∗: na(w) = 2nb(w)}.

Απ.: Επειδή οι λέξεις μικρότερου μη μηδενικού μήκους, που ανήκουν στη γλώσσα αυτή, είναι οι

aab, aba και baa, οι κανόνες είναι: S → SS | aSaSb | aSbSa | bSaSa | ε.

(42) L = {w ∈ (a+ b)∗: na(w) = 2nb(w) + 1}.

Απ.: Συμβολίζοντας με S2 τη μεταβλητή που δημιουργεί λέξεις με πλήθος των a διπλάσιοτου πλήθους των b (όπως στην προηγούμενη άσκηση), οι κανόνες είναι: S → S2aS2, S2 →S2S2 | aS2aS2b | aS2bS2a | bS2aS2a | ε.

(43) L = {w ∈ (a+ b)∗: |na(w)− nb(w)| = 1}.

Απ.: ΄Οπως πριν, οι κανόνες είναι: S → S0aS0 |S0bS0, S0 → S0S0 | aS0b | bS0a | ε.

(44) L = {w ∈ (a+ b)∗: w = wR}.

Απ.: Προφανώς, οι κανόνες είναι: S → aSa | bSb | a | b | ε.

(45) L = {wwR: w ∈ (a+ b)+}.

Απ.: Προφανώς, οι κανόνες είναι: S → aSa | bSb | aa | bb.

6

Γιάννης
Stamp
Page 17: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

ΑΣΚΗΣΕΙΣ ΓΙΑ ΚΑΝΟΝΙΚΕΣ ΓΛΩΣΣΕΣ ΚΑΙ ΠΕΠΕΡΑΣΜΕΝΑ ΑΥΤΟΜΑΤΑ

(1) L = a(a + b)∗.

Απ.: Λέξεις που αρχίζουν με a.

a

a

b

(2) L = (a + b)∗ab.

Απ.: Λέξεις που τελειώνουν σε ab.

a

b

b

a

a

b

(3) L = (a + b)∗bb(a + b)∗a.

Απ.: Λέξεις με δυο διαδοχικά b, δηλαδή, με το bb, οι οποίες τελειώνουν σε a.

b

a

a

b

b

a

a

b

(4) L = (a + ab)∗.

Απ.: Λέξεις χωρίς καθόλου διαδοχικά b, δηλαδή, χωρίς το bb, οι οποίες αρχίζουν με a.

a

a

b

a

1

Page 18: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(5) L = (ε + b)(a + ab)∗.

Απ.: Λέξεις χωρίς καθόλου διαδοχικά b, δηλαδή, χωρίς το bb.

a b

a

b

a

(6) L = (a + ba∗b)∗.

Απ.: Λέξεις με άρτιο πλήθος b.

b

b

a a

(7) Λέξεις που ή αρχίζουν με a ή τελειώνουν σε a.

Απ.: L = a(a + b)∗ + (a + b)∗a.

a b

a

b

b a

a

b

2

Page 19: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(8) Λέξεις που ή αρχίζουν με a ή τελειώνουν σε a, αλλά όχι και τα δυο.

Απ.: L = a(a + b)∗b + b(a + b)∗a.

a b

a b ab

a

b

b

a

(9) Λέξεις που αρχίζουν και τελειώνουν με το ίδιο σύμβολο.

Απ.: L = a(a + b)∗a + b(a + b)∗b + a + b.

a b

a b ab

a

b

b

a

(10) ΄Οταν Σ = {a, b, c}, λέξεις που αρχίζουν με a, περιέχουν δυο ακριβώς b (όχι υποχρεωτικάδιαδοχικά) και τελειώνουν με δυο διαδοχικά c, δηλαδή, τελειώνουν με το cc.

Απ.: L = a(a + c)∗b(a + c)∗b(a + c)∗cc.

a b b

c

c

a

a

a + c a + c a c

3

Page 20: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(11) ΄Οταν Σ = {a, b, c}, λέξεις στις οποίες το b ακολουθείται πάντα από τουλάχιστον ένα c.

Απ.: L =((a + c)∗bc+

)∗(a + c)∗.

b

c

b

a

a + c c

(12) Λέξεις που έχουν άρτιο μήκος.

Απ.: L =((a + b)(a + b)

)∗= (aa + ab + ba + bb)∗.

a + b

a + b

(13) Λέξεις που έχουν περιττό μήκος.

Απ.: L = (a + b)((a + b)(a + b)

)∗= (a + b)(aa + ab + ba + bb)∗.

a + b

a + b

(14) ΄Οταν Σ = {a, b, c}, λέξεις μήκους ίσου με 3.

Απ.: L = (a + b + c)(a + b + c)(a + b + c) = (a + b + c)3.

a + b + c a + b + c a + b + c

(15) ΄Οταν Σ = {a, b, c}, λέξεις μήκους μικρότερου του 3.

Απ.: L = ε + (a + b + c) + (a + b + c)2.

a + b + c a + b + c

4

Page 21: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(16) ΄Οταν Σ = {a, b, c}, λέξεις μήκους μεγαλύτερου του 3.Απ.: L = (a + b + c)3(a + b + c)+.

a + b + c a + b + c a + b + c a + b + c

a + b + c

(17) Λέξεις που περιέχουν το ab τουλάχιστον μια φορά.

Απ.: L = (a∗ + b∗)ab(a + b)∗.

a b

b a a + b

(18) Λέξεις που περιέχουν το ab τουλάχιστον δυο φορές.

Απ.: L = (a∗ + b∗)ab(a∗ + b∗)ab(a + b)∗.

a b a b

b a b a a + b

(19) Λέξεις χωρίς καθόλου διαδοχικά a, δηλαδή, χωρίς το aa.

Απ.: L = (b + ab)∗(ε + a).

a

b

b

(20) Λέξεις με δυο διαδοχικά a ακριβώς μια φορά, δηλαδή, που περιέχουν το aa μόνο μια φορά.

Απ.: L = (b + ab)∗aa(b + ab)∗.

a

b

b

a

b

a

b

5

Page 22: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(21) Λέξεις με δυο διαδοχικά a τουλάχιστον δυο φορές, δηλαδή, που περιέχουν το aa τουλάχιστονδυο φορές.

Απ.: L = (b + ab)∗aa(a + b+(ab)∗aa

)(a + b)∗.

a

b

b

a

a

b

b

a

b

a

a + b

(22) Λέξεις με δυο διαδοχικά a και με δυο διαδοχικά b, δηλαδή, που περιέχουν και το aa και το bb.

Απ.: L = (b + ab)∗aa+b+b(a + b)∗ + (a + ba)∗bb+a+a(a + b)∗.

a

b

b

a

a

b

b

a

b

a

a

b

a

b

a + b

(23) Λέξεις που περιέχουν και το ab και το ba.

Απ.: L = (b∗ab+a + a∗ba+b)(a + b)∗.

a

b

b

a

a

b

a

b

b

a

b

a

a

b

a + b

6

Page 23: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(24) ΄Οταν Σ = {a, b, c}, λέξεις χωρίς καθόλου διαδοχικά a, δηλαδή, χωρίς το aa.

Απ.: L = (b + c + ab + ac)∗(ε + a).

a

b + c

b + c

(25) ΄Οταν Σ = {a, b, c}, λέξεις με δυο διαδοχικά a, δηλαδή, λέξεις που περιέχουν το aa.

Απ.: L =(b + c + a(b + c)

)∗aa(a + b + c)∗.

a

b + c

b + c

a

a + b + c

(26) Λέξεις περιττού μήκους που περιέχουν δυο διαδοχικά b, δηλαδή, που περιέχουν το bb.

Απ.: L =(a(ba)∗a

)∗)(abb + bb(a + b)

)((a + b)(a + b)

)∗.

b

ab

a + b

a + b

a a

b

a

b

a + b

a + b

(27) ΄Οταν Σ = {a, b, c}, λέξεις άρτιου μήκους που περιεχουν ακριβώς ένα a.

Απ.: L =((b + c)(b + c)

)∗a(b + c)

((b + c)(b + c)

)∗+ (b + c)

((b + c)(b + c)

)∗a((b + c)(b + c)

)∗.

a

b + c

b + c

b + c b + c

a

b + c

b + c

7

Page 24: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(28) Λέξεις που δεν αρχίζουν με τρία διαδοχικά a, δηλαδή, που δεν αρχίζουν με το aaa.

Απ.: L = b(a + b)∗ + ab(a + b)∗ + aab(a + b)∗ = (ε + a + aa)b(a + b)∗.

a a

bb

b

a + b

(29) Λέξεις χωρίς καθόλου τρία διαδοχικά a, δηλαδή, χωρίς το aaa.

Απ.: L = (b + ab + aab)∗.

a

b

a

b

b

(30) Λέξεις χωρίς το aba.

Απ.: L =(a∗bb+a∗

)∗+ a∗ + b∗ + ab∗ + ba∗.

b

a a b

b b

a

a b

8

Page 25: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(31) Λέξεις με πλήθος a (που συμβολίζεται ως na) να είναι διαιρετό από το 3.

Απ.: L = b∗(ab∗ab∗ab∗)∗.

a

a

a

bb

b

(32) Λέξεις τέτοιες ώστε nb < na ≤ 2.

Απ.: L = L0 + L1, όπου η L0 αποτελείται από τις λέξεις με na = 2 και nb = 0 ή 1 και η L1 από

na = 1 και nb = 0. Προφανώς, έχουμε: L0 = aa + baa + aba + aab και L1 = a.

a a

b

a a

b b

(33) ΄Οταν Σ = {a, b, c}, λέξεις τέτοιες ώστε nb + nc = 3.

Απ.: L = L0 + L1 + L2 + L3, όπου η L0 αποτελείται από τις λέξεις με nb = 3 και nc = 0, ηL1 από nb = 2 και nc = 1, η L2 από nb = 1 και nc = 2 και η L3 από nb = 0 και nc = 3.Προφανώς, έχουμε: L0 = a∗ba∗ba∗ba∗, L1 = a∗ba∗ba∗ca∗ + a∗ba∗ca∗ba∗ + a∗ca∗ba∗ba∗, L2 =a∗ca∗ca∗ba∗ + a∗ca∗ba∗ca∗ + a∗ba∗ca∗ca∗ και L3 = a∗ca∗ca∗ca∗.

c

c

b + c

b + c

b + cc

b

b

ba

a a

a a

a a

9

Page 26: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(34) Λέξεις στις οποίες κάθε a έχει ένα b είτε μπροστά του ή πίσω του.

Απ.: L = (b + ab + ba + aba)∗.

a b

a

b

a

b

b

(35) Βρείτε τις κανονικές γλώσσες με τελικές καταστάσεις κάθε έναν από τους 4 κόμβους του εξής

πεπερασμένου αυτόματου:

q0 q1

q2q3

a

a

bb

a

a

b b

Απ.:

• Στην q0 τερματίζουν οι λέξεις της γλώσσας με na = άρτιο και nb = άρτιο.

• Στην q1 τερματίζουν οι λέξεις της γλώσσας με na = περιττό και nb = άρτιο.

• Στην q2 τερματίζουν οι λέξεις της γλώσσας με na = περιττό και nb = περιττό.

• Στην q3 τερματίζουν οι λέξεις της γλώσσας με na = άρτιο και nb = περιττό.

Για την εύρεση της κανονικής έκφρασης της γλώσσας σε κάθε περίπτωση, μπορούμε να προχωρή-

σουμε με τη μέθοδο της διαδοχικής αφαίρεσης καταστάσεων μεταξύ της αρχικής και της τελικής

κατάστασης. Π.χ., στην περίπτωση τερματισμού στην q3:

q0 q1

q2q3

a

a

bb

a

a

b b

η αφαίρεση της q1 δημιουργεί το πεπερασμένο αυτόματο:

10

Page 27: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

q0 q2 q3

ab

ba

a

a

b

b

aa bb

από το οποίο η αφαίρεση της q2 δημιουργεί το πεπερασμένο αυτόματο:

q0 q3

b + ab(bb)∗a

b + a(bb)∗ba

aa + ab(bb)∗ba a(bb)∗a

κι, επομένως, η κανονική έφραση της γλώσσας αυτής (των λέξεων με na = περιττό και nb =περιττό) βρίσκεται αμέσως ότι είναι:

L =(aa+ab(bb)∗ba

)∗(b+ab(bb)∗a

)((a(bb)∗a

)∗(b+a(bb)∗ba

)(aa+ab(bb)∗ba

)∗(b+ab(bb)∗a

))∗.

(36) Βρείτε τις κανονικές γλώσσες με τελικές καταστάσεις κάθε έναν από τους 3 κόμβους του εξής

πεπερασμένου αυτόματου:

q0

q1

q2

a

b

a

b

a

b

Απ.:

• Στην q0 τερματίζουν οι λέξεις της γλώσσας με na − nb = 0 mod 3.

• Στην q1 τερματίζουν οι λέξεις της γλώσσας με na − nb = 1 mod 3 ή nb − na = 2 mod 3.

• Στην q2 τερματίζουν οι λέξεις της γλώσσας με na − nb = 2 mod 3 ή nb − na = 1 mod 3.

11

Page 28: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(37) Βρείτε τις κανονικές γλώσσες με τελικές καταστάσεις κάθε έναν από τους 4 κόμβους του εξής

πεπερασμένου αυτόματου:

q0 q1

q2q3

a

b

ab

a

b

a b

Απ.:

• Στην q0 τερματίζουν οι λέξεις της γλώσσας με na − nb = 0 mod 4.

• Στην q1 τερματίζουν οι λέξεις της γλώσσας με na − nb = 1 mod 4 ή nb − na = 3 mod 4.

• Στην q2 τερματίζουν οι λέξεις της γλώσσας με |na − nb| = 2 mod 4.

• Στην q3 τερματίζουν οι λέξεις της γλώσσας με na − nb = 3 mod 4 ή nb − na = 1 mod 4.

(38) Βρείτε τις κανονικές γλώσσες με τελικές καταστάσεις κάθε έναν από τους 9 κόμβους του εξής

πεπερασμένου αυτόματου:

q0 q1 q2

q3 q4 q5

q6 q7 q8

b b

b

b

b b

a a a

a a a

b

b

a a a

b

Απ.:

• Στην q0 τερματίζουν οι λέξεις της γλώσσας με na = 0 mod 3 και nb = 0 mod 3.

• Στην q1 τερματίζουν οι λέξεις της γλώσσας με na = 0 mod 3 και nb = 1 mod 3.

• Στην q2 τερματίζουν οι λέξεις της γλώσσας με na = 0 mod 3 και nb = 2 mod 3.

• Στην q3 τερματίζουν οι λέξεις της γλώσσας με na = 1 mod 3 και nb = 0 mod 3.

• Στην q4 τερματίζουν οι λέξεις της γλώσσας με na = 1 mod 3 και nb = 1 mod 3.

• Στην q5 τερματίζουν οι λέξεις της γλώσσας με na = 1 mod 3 και nb = 2 mod 3.

• Στην q6 τερματίζουν οι λέξεις της γλώσσας με na = 2 mod 3 και nb = 0 mod 3.

• Στην q7 τερματίζουν οι λέξεις της γλώσσας με na = 2 mod 3 και nb = 1 mod 3.

• Στην q8 τερματίζουν οι λέξεις της γλώσσας με na = 2 mod 3 και nb = 2 mod 3.

12

Page 29: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

(39) Λέξεις τέτοιες ώστε:

(i) na ≥ 1 και nb = 2.

(ii) na ≥ 2 και nb ≤ 2.

(iii) na ≤ 4 και nb ≥ 2.

Απ. (i):

q0 q1

q2 q3

q4 q5

a

a

a

b b

b b

a

a

a

Απ. (ii):

q0 q1 q2

q3 q4 q5

q6 q7 q8

a a

a a

a a

b b b

b b b

b

b

b

13

Page 30: Αυτόματα κ Τυπικές Γλώσσες- Ασκήσεις

Απ. (iii):

q0 q1 q2 q3 q4

q5 q6 q7 q8 q9

q10 q11 q12 q13 q14

a a a a

a a a a

a a a a

b b b b b

b b b b b

a a a a a

14