Uvod u teoriju računarstva http://www.zemris.fer.hr/predmeti/utr/ Zadaci za vježbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu 1 od 77 Copyright © 2007 S.Srbljić, D.Škvorc, I.

Download Report

Transcript Uvod u teoriju računarstva http://www.zemris.fer.hr/predmeti/utr/ Zadaci za vježbu Priprema za međuispit Fakultet elektrotehnike i računarstva Sveučilište u Zagrebu 1 od 77 Copyright © 2007 S.Srbljić, D.Škvorc, I.

Uvod u teoriju računarstva
http://www.zemris.fer.hr/predmeti/utr/
Zadaci za vježbu
Priprema za međuispit
Fakultet elektrotehnike i računarstva
Sveučilište u Zagrebu
1 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 1
• Jezik L nad abecedom {0,1,2} sadrži sve nizove u kojima
nema uzastopnog ponavljanja znaka 1. Konstruirati konačni
automat koji prihvaća nizove iz jezika L.
Tip automata =
?
(DKA, NKA, -NKA, Mooreov automat, Mealyev automat)
DKA M = (Q, , , q0, F)
 = {0, 1, 2}
0,2
0,1,2
0,2
q0
q1
1
q2
1
2 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
Uvjet a)
q0
Uvjet b)
3 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q1
Uvjet a)
0
q0
Uvjet b)
4 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q1
0
q2
Uvjet a)
0
q0
Uvjet b)
5 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q1
0
q2
Uvjet a)
0
q0
Uvjet b)
6 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
0,1
q1
0
q2
Uvjet a)
0
q0
Uvjet b)
7 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0,1
1
q1
0
q2
Uvjet a)
0
q0
Uvjet b)
8 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
1
0,1
1
q1
0
q2
Uvjet a)
0
q0
Uvjet b)
9 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
1
1
0
0,1
q1
0
q2
Uvjet a)
0
q0
Uvjet b)
10 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
1
0
1
0,1
1
q1
0
q2
Uvjet a)
0
q0
Uvjet b)
11 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
q2
Uvjet a)
0
q0
1
Uvjet b)
q4
12 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
q2
Uvjet a)
0
q0
1
Uvjet b)
q4
13 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
q2
Uvjet a)
0
q0
1
Uvjet b)
q4
14 od 77
1
q6
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
1
Uvjet b)
q4
15 od 77
1
q6
1
q7
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
1
Uvjet b)
q4
16 od 77
1
q6
1
q7
1
q8
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
0,1
1
Uvjet b)
q4
17 od 77
1
q6
1
q7
1
q8
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
0
0,1
1
Uvjet b)
q4
18 od 77
1
q6
1
q7
1
q8
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
0
0
0,1
1
Uvjet b)
q4
19 od 77
1
q6
1
q7
1
q8
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
0
0
0
0,1
1
Uvjet b)
q4
20 od 77
1
q6
1
q7
1
q8
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
0
0
0
0
0,1
1
Uvjet b)
q4
1
q6
1
q7
1
q8
q5
21 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
0
0
0
0
0,1
1
Uvjet b)
q4
1
q6
1
q7
1
q8
q5
22 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
0
0
0,1
1
Uvjet b)
q4
0
0
0
1
q6
1
q7
1
q8
q5
23 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 2
• Konstruirati NKA koji prepoznaje sve binarne brojeve za koje
vrijedi bar jedan od navedenih uvjeta:
a) u binarnom broju postoje dvije ili više uzastopnih nula
b) suma znakova je manja od 4
q3
0
1
1
0,1
1
q1
0
Uvjet a)
q2
0
q0
0
0
q5
24 od 77
0,1
1
Uvjet b)
q4
0
0
0
1
q6
1
q7
1
q8
1
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
Postupak minimizacije DKA:
a
b
c
d
q0
q0
q1
q1
q2
0
q1
q1
q3
q2
q5
0
q2
q2
q5
q5
q0
1
q3
q7
q4
q4
q0
1
q4
q5
q0
q0
q3
0
q5
q4
q0
q0
q7
0
q6
q3
q4
q4
q8
0
q7
q2
q4
q4
q0
1
q8
q8
q7
q3
q6
1
25 od 77
a) Uklanjanje nedohvatljivih stanja
b) Uklanjanje istovjetnih stanja
Pronalaženje dohvatljivih stanja:
LDS = {q0, q1, q2, q3, q4, q5, q7}
Nedohvatljiva stanja: {q6, q8}
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
a
b
c
d
q0
q0
q1
q1
q2
0
q1
q1
q3
q2
q5
0
q2
q2
q5
q5
q0
1
q3
q7
q4
q4
q0
1
q4
q5
q0
q0
q3
0
q5
q4
q0
q0
q7
0
q7
q2
q4
q4
q0
1
26 od 77
Pronalaženje istovjetnih stanja:
G11={ q0 , q1 , q4 , q5 }
G12={ q2 , q3 , q7 }
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
a
b
c
d
q0
q0
q1
q1
q2
0
q1
q1
q3
q2
q5
0
q2
q2
q5
q5
q0
1
q3
q7
q4
q4
q0
1
q4
q5
q0
q0
q3
0
q5
q4
q0
q0
q7
0
q7
q2
q4
q4
q0
1
Pronalaženje istovjetnih stanja:
G11={ q0 , q1 , q4 , q5 }
G12={ q2 , q3 , q7 }
G21={ q0 , q4 , q5 }
G22={ q1 }
G23={ q2 , q3 , q7 }
G31={ q0 }
G32={ q4 , q5 }
G33={ q1 }
G34={ q2 , q3 , q7 }
27 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
Pronalaženje istovjetnih stanja:
G31={ q0 }
a
b
c
d
q0
q0
q1
q1
q2
0
q1
q1
q3
q2
q5
0
q2
q2
q5
q5
q0
1
q3
q7
q4
q4
q0
1
q4
q5
q0
q0
q3
0
q5
q4
q0
q0
q7
0
Istovjetna stanja:
1
q4  q5
q2  q3  q7
q7
q2
28 od 77
q4
q4
q0
G32={ q4 , q5 }
G33={ q1 }
G34={ q2 , q3 , q7 }
 q4
 q2
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
a
b
c
d
q0
q0
q1
q1
q2
0
q1
q1
q3
q2
q5
0
q2
q2
q5
q5
q0
1
q4
q5
q0
q0
q3
0
Pronalaženje istovjetnih stanja:
G31={ q0 }
G32={ q4 , q5 }
G33={ q1 }
G34={ q2 , q3 , q7 }
Istovjetna stanja:
q4  q5
q2  q3  q7
29 od 77
 q4
 q2
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
a
b
c
d
q0
q0
q1
q1
q2
0
q1
q1
q3
q2
q4
0
q2
q2
q4
q4
q0
1
q4
q4
q0
q0
q3
0
Pronalaženje istovjetnih stanja:
G31={ q0 }
G32={ q4 , q5 }
G33={ q1 }
G34={ q2 , q3 , q7 }
Istovjetna stanja:
q4  q5
q2  q3  q7
30 od 77
 q4
 q2
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
a
b
c
d
q0
q0
q1
q1
q2
0
q1
q1
q2
q2
q4
0
q2
q2
q4
q4
q0
1
q4
q4
q0
q0
q2
0
Pronalaženje istovjetnih stanja:
G31={ q0 }
G32={ q4 , q5 }
G33={ q1 }
G34={ q2 , q3 , q7 }
Istovjetna stanja:
q4  q5
q2  q3  q7
31 od 77
 q4
 q2
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
a
b
c
d
q0
q0
q1
q1
q2
0
q1
q1
q2
q2
q4
0
q2
q2
q4
q4
q0
1
q4
q4
q0
q0
q2
0
32 od 77
Pretvorba znakova:
prijelazi za znakove b i c
su jednaki
bc
e
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 3
• Minimizirati zadani DKA primjenom algoritma podjele stanja
(2. algoritam). Automat dodatno smanjiti pretvorbom znakova.
a
e={ b, c }
d
q0
q0
q1
q2
0
q1
q1
q2
q4
0
q2
q2
q4
q0
1
q4
q4
q0
q2
0
33 od 77
Pretvorba znakova:
prijelazi za znakove b i c
su jednaki
bc
e
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Postupak minimizacije DKA:
a
b
c
q0
q4
q1
q5
0
q1
q2
q3
q4
0
q2
q1
q3
q2
1
q3
q4
q1
q4
0
q4
q3
q1
q2
1
q5
q2
q4
q1
1
q6
q3
q7
q2
0
q7
q1
q4
q6
1
34 od 77
a) Uklanjanje nedohvatljivih stanja
b) Uklanjanje istovjetnih stanja
Pronalaženje dohvatljivih stanja:
LDS = {q0, q1, q2, q3, q4, q5}
Nedohvatljiva stanja: {q6, q7}
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
q1
q2
q3
q4
0
q2
q2
q1
q3
q2
1
q3
q3
q4
q1
q4
0
q4
q3
q1
q2
1
q5
q2
q4
q1
1
q4
X
q5
q0
q1
q2
q3
q4
Ako je par (qi, qj) označen u tablici
Stanja qi i qj nisu istovjetna
Neoznačeni parovi označavaju istovjetna stanja
35 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
q1
q2
q3
q4
0
q2
q2
q1
q3
q2
1
q3
q3
q4
q1
q4
0
q4
q3
q1
q2
1
q5
q2
q4
q1
1
36 od 77
X
X
X
q4
X
X
X
q5
X
X
X
q0
q1
q2
q3
q4
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
q1
q2
q3
q4
0
q2
q2
q1
q3
q2
1
q3
q3
q4
q1
q4
0
q4
q3
q1
q2
1
q5
q2
q4
q1
1
X
X
X
q4
X
X
X
q5
X
X
X
q0
q1
q2
q3
q4
Lista uz (q2, q4)  (q0, q1) (q1, q3)
Lista uz (q1, q3)  (q0, q1) (q2, q4)
Lista uz (q4, q5)  (q0, q1) (q0, q3)
37 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
q1
q2
q3
q4
0
q2
q2
q1
q3
q2
1
q3
q3
q4
q1
q4
0
q4
q3
q1
q2
1
q5
q2
q4
q1
1
X
X
X
q4
X
X
X
q5
X
X
X
q0
q1
q2
q3
q4
Lista uz (q2, q4)  (q0, q1) (q1, q3)
Lista uz (q1, q3)  (q0, q1) (q2, q4)
Lista uz (q4, q5)  (q0, q1) (q0, q3)
38 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
q1
q2
q3
q4
0
q2
q2
q1
q3
q2
1
q3
q3
q4
q1
q4
0
q4
q3
q1
q2
1
q5
q2
q4
q1
1
X
X
X
q4
X
X
X
q5
X
X
X
X
q0
q1
q2
q3
q4
Lista uz (q2, q4)  (q0, q1) (q1, q3)
Lista uz (q1, q3)  (q0, q1) (q2, q4)
Lista uz (q4, q5)  (q0, q1) (q0, q3)
39 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
q1
q2
q3
q4
0
q2
q2
q1
q3
q2
1
q3
q3
q4
q1
q4
0
q4
q3
q1
q2
1
q5
q2
q4
q1
1
X
X
X
q4
X
X
X
q5
X
X
X
X
q0
q1
q2
q3
q4
Lista uz (q2, q4)  (q0, q1) (q1, q3)
Lista uz (q1, q3)  (q0, q1) (q2, q4)
Lista uz (q4, q5)  (q0, q1) (q0, q3)
40 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
q1
q2
q3
q4
0
q2
q2
q1
q3
q2
1
q3
q3
q4
q1
q4
0
q4
q3
q1
q2
1
q5
q2
q4
q1
1
X
X
X
q4
X
X
X
q5
X
X
X
X
X
q0
q1
q2
q3
q4
Lista uz (q2, q4)  (q0, q1) (q1, q3)
Lista uz (q1, q3)  (q0, q1) (q2, q4)
Lista uz (q4, q5)  (q0, q1) (q0, q3)
41 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
X
q1
q2
q3
q4
0
q2
X
q2
q1
q3
q2
1
q3
X
q3
q4
q1
q4
0
X
X
q4
q3
q1
q2
1
q4
q5
q2
q4
q1
1
q5
X
X
X
X
X
q0
q1
q2
q3
q4
X
X
X
Lista uz (q2, q4)  (q0, q1) (q1, q3)
Lista uz (q1, q3)  (q0, q1) (q2, q4)
Lista uz (q4, q5)  (q0, q1) (q0, q3)
42 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
X
q1
q2
q3
q4
0
q2
X
q2
q1
q3
q2
1
q3
X
q3
q4
q1
q4
0
X
X
q4
q3
q1
q2
1
q4
q5
q2
q4
q1
1
q5
X
X
X
X
X
q0
q1
q2
q3
q4
X
X
X
Lista uz (q2, q4)  (q0, q1) (q1, q3)
Lista uz (q1, q3)  (q0, q1) (q2, q4)
Lista uz (q4, q5)  (q0, q1) (q0, q3)
43 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
X
q1
q2
q3
q4
0
q2
X
q2
q1
q3
q2
1
q3
X
q3
q4
q1
q4
0
X
X
q4
q3
q1
q2
1
q4
q5
q2
q4
q1
1
q5
X
X
X
X
X
q0
q1
q2
q3
q4
X
X
X
Istovjetna stanja:
q1  q3
 q1
q2  q4
 q2
44 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
X
q1
q2
q3
q4
0
q2
X
q2
q1
q3
q2
1
q3
X
q4
X
X
q5
X
X
X
X
X
q0
q1
q2
q3
q4
q5
q2
q4
q1
1
X
X
X
Istovjetna stanja:
q1  q3
 q1
q2  q4
 q2
45 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q4
q1
q5
0
q1
X
q1
q2
q1
q4
0
q2
X
q2
q1
q1
q2
1
q3
X
q4
X
X
q5
X
X
X
X
X
q0
q1
q2
q3
q4
q5
q2
q4
q1
1
X
X
X
Istovjetna stanja:
q1  q3
 q1
q2  q4
 q2
46 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 4
• Minimizirati zadani DKA primjenom algoritma pronalaženja
neistovjetnih stanja (3. algoritam).
Pronalaženje neistovjetnih stanja:
a
b
c
q0
q2
q1
q5
0
q1
X
q1
q2
q1
q2
0
q2
X
q2
q1
q1
q2
1
q3
X
q4
X
X
q5
X
X
X
X
X
q0
q1
q2
q3
q4
q5
q2
q2
q1
1
X
X
X
Istovjetna stanja:
q1  q3
 q1
q2  q4
 q2
47 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
• Zadani -NKA pretvoriti u minimalni DKA.
a
b
c

q0
q1
q2
q1
q1,q3
0
q1
q1,q2
q1
q3
q2
0
q2
q2
q1
q3
-
1
q3
q2
-
-
-
0
Algoritam:
1. Pretvoriti -NKA M1 u NKA M2
2. Pretvoriti NKA M2 u DKA M3
3. Minimizirati DKA M3 u DKA M4
48 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
1. Pretvoriti -NKA M1 u NKA M2
-NKA M1=(Q, , 1, q0, F1)
NKA M2=(Q, , 2, q0, F2 )
a
b
c

q0
q1
q2
q1
q1,q3
0
q0
q1
q1,q2
q1
q3
q2
0
q1
q2
q2
q1
q3
-
1
q2
q3
q2
-
-
-
0
q3
a
b
c
-OKRUŽENJE(q0)={q0, q1, q2, q3} -OKRUŽENJE(q2)={q2}
-OKRUŽENJE(q3)={q3}
-OKRUŽENJE(q1)={q1, q2}
a)
49 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
1. Pretvoriti -NKA M1 u NKA M2
-NKA M1=(Q, , 1, q0, F1)
a
b
c

q0
q1
q2
q1
q1,q3
0
q0
1
q1
q1,q2
q1
q3
q2
0
q1
0
q2
q2
q1
q3
-
1
q2
1
q3
q2
-
-
-
0
q3
0
a
b
c
-OKRUŽENJE(q0)={q0, q1, q2, q3} -OKRUŽENJE(q2)={q2}
-OKRUŽENJE(q3)={q3}
-OKRUŽENJE(q1)={q1, q2}
a)
b)
NKA M2=(Q, , 2, q0, F2 )
Ako F1  -OKRUŽENJE(q0) onda F2 = F1  q0 inače F2 = F1 
50 od 77
F2 = {q0,q2}
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
1. Pretvoriti -NKA M1 u NKA M2
-NKA M1=(Q, , 1, q0, F1)
a
b
c

q0
q1
q2
q1
q1,q3
0
q0
1
q1
q1,q2
q1
q3
q2
0
q1
0
q2
q2
q1
q3
-
1
q2
1
q3
q2
-
-
-
0
q3
0
c)
a
b
c
-OKRUŽENJE(q0)={q0, q1, q2, q3} -OKRUŽENJE(q2)={q2}
-OKRUŽENJE(q3)={q3}
-OKRUŽENJE(q1)={q1, q2}
a)
b)
NKA M2=(Q, , 2, q0, F2 )
Ako F1  -OKRUŽENJE(q0) onda F2 = F1  q0 inače F2 = F1 
2(q,a) =
51 od 77
F2 = {q0,q2}
?
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
Računanje funkcije prijelaza NKA na osnovu
funkcije prijelaza -NKA
a

q0

q1

q7

q8
q2
a
q4

q6
q3
a
q5
NKA(q0, a) =
52 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
Računanje funkcije prijelaza NKA na osnovu
funkcije prijelaza -NKA
a

q0

NKA(q0, a) =
53 od 77
q1

q7

q8
q2
a
q4

q6
q3
a
q5
q0
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
Računanje funkcije prijelaza NKA na osnovu
funkcije prijelaza -NKA
a

q0

NKA(q0, a) =
54 od 77
q1

q7

q8
q2
a
q4

q6
q3
a
q5
-OKRUŽENJE( q0
)
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
Računanje funkcije prijelaza NKA na osnovu
funkcije prijelaza -NKA
a

q0

NKA(q0, a) =
55 od 77
q1

q7

q8
q2
a
q4

q6
q3
a
q5
-NKA( -OKRUŽENJE( q0
)
,a)
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
Računanje funkcije prijelaza NKA na osnovu
funkcije prijelaza -NKA
a

q0

q1

q7

q8
q2
a
q4

q6
q3
a
q5
NKA(q0, a) = -OKRUŽENJE ( -NKA( -OKRUŽENJE( q0
)
56 od 77
,a) )
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
1. Pretvoriti -NKA M1 u NKA M2
-NKA M1=(Q, , 1, q0, F1)
a
b
c

q0
q1
q2
q1
q1,q3
0
q1
q1,q2
q1
q3
q2
0
c)
q0
a
q1,q
b
q1,q
c
q1,q2,q
q1
q1,q
2
q1,q
2
q3
0
q1,q
q3
1
2
-
0
2
q2
q2
q1
q3
-
1
q2
q2
q3
q2
-
-
-
0
q3
q2
2
-
3
1
-OKRUŽENJE(q0)={q0, q1, q2, q3} -OKRUŽENJE(q2)={q2}
-OKRUŽENJE(q3)={q3}
-OKRUŽENJE(q1)={q1, q2}
a)
b)
NKA M2=(Q, , 2, q0, F2 )
Ako F1  -OKRUŽENJE(q0) onda F2 = F1  q0 inače F2 = F1 
F2 = {q0,q2}
2(q,a) = 1^(q,a) = -OKRUŽENJE(1(- OKRUŽENJE(q),a))
2(q0,a)=-OKRUŽENJE(1(-OKRUŽENJE(q0),a)) =-OKRUŽENJE(1({q0,q1,q2,q3},a))
=-OKRUŽENJE({q1,q2}) = {q1,q2}
57 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
2. Pretvoriti NKA M2 u DKA M3
NKA M2=(Q, , 2, q0, F2 )
DKA M3=(Q3, , 3, q03, F3 )
a
a
b
c
q0
q1,q
q1,q
q1,q2,q
1
[q0]
q1
q1,q
2
q1,q
2
q3
3
0
[q1,q2]
q2
q2
q1,q
q3
1
q3
q2
2
-
0
1.
2.
2
2
-
b
c
[q1,q2] [q1,q2] [q1,q2,q3]
1
[q1,q2] [q1,q2]
[q3]
1
[q1,q2,q3 [q1,q2] [q1,q2]
[q]3]
[q2]
[]
[q3]
1
[]
0
[q2]
[q2]
[q1,q2]
[q3]
1
[]
[]
[]
[]
0
Q3 = 2Q  uvodimo složena stanja oblika [q0,q1,...,qm]
a) q03 = [q0]
b) Ako 2({ P }, a) = { R } onda 3([ P ], a) = [ R ]
c) Dodajemo samo ona stanja koja su se pojavila na desnoj strani
F3 jest skup svih stanja [p0, p1, ... , pj] gdje je barem jedan pkF
58 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 5
3. Minimizirati DKA M3 u DKA M4
DKA M3=(Q’, , 3, q’0, F3 )
a
[q0]
b
DKA M4=(Q’’, , 4, q’0, F4 )
a
c
[q1,q2] [q1,q2] [q1,q2,q3]
1
[q1,q2] [q1,q2]
[q3]
1
[q1,q2,q3 [q1,q2] [q1,q2]
[q]3]
[q2]
[]
[q3]
1
[]
0
[q1,q2]
•
[q2]
[q2]
[q1,q2]
[q3]
1
[]
[]
[]
[]
0
b
c
[q0]
[q2 [q2
]
]
[q2]
1
[q2]
[q2 [q2
]
]
[q3]
1
[q3]
[q2 []
]
[]
0
[]
[] []
[]
0
Primjena nekog od algoritama za minimizaciju:
•
Istovjetna stanja: [q2]  [q1,q2]  [q1,q2,q3]
•
Zamjena
[q1,q2]  [q2]
[q1,q2,q3]  [q2]
59 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
• Konstruirati DKA koji prihvaća jezik L = L1L2 (L1L2, L1-L2,
L2-L1). Jezik L1 sastoji se od nizova opisanih regularnim
izrazom r1=a*b*c*, a nizovi iz jezika L2 opisani su regularnim
izrazom r2=a*(b+c)*.
Algoritam:
1. Konstruirati DKA M1 koji prihvaća L1
2. Konstruirati DKA M2 koji prihvaća L2
3. Konstruirati DKA M3 koji prihvaća L=L1L2
60 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L1 … r1=a*b*c*
61 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L1 … r1=a*b*c*
q0
62 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L1 … r1=a*b*c*
q0
a
63 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L1 … r1=a*b*c*
b
b
q0
q1
a
64 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L1 … r1=a*b*c*
c
b
b
q0
q1
c
q2
c
a
65 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L1 … r1=a*b*c*
c
b
b
q0
q1
a
c
q2
c
a
a, b
a,b,c
66 od 77
q3
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L1 … r1=a*b*c*
c
b
b
q0
q1
a
c
q2
a
a, b
a,b,c
67 od 77
c
a
b
c
q0
q0
q1
q2
1
q1
q3
q1
q2
1
q2
q3
q3
q2
1
q3
q3
q3
q3
0
q3
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L2 … r2=a*(b+c)*
68 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L2 … r2=a*(b+c)*
q0
a
69 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L2 … r2=a*(b+c)*
b,c
b,c
q0
q1
a
70 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L2 … r2=a*(b+c)*
b,c
b,c
q0
a
a
a,b,c
71 od 77
q1
q3
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L2 … r2=a*(b+c)*
b,c
b,c
q0
a
a
a,b,c
72 od 77
q1
q3
a
b
c
q0
q0
q1
q1
1
q1
q2
q1
q1
1
q2
q2
q2
q2
0
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 6
L1 … r1=a*b*c*
L2 … r2=a*(b+c)*
a
b
c
q0
q0
q1
q2
1
q1
q3
q1
q2
q2
q3
q3
q3
q3
q3
a
b
c
q0
q0
q1
q1
1
1
q1
q2
q1
q1
1
q2
1
q2
q2
q2
q2
0
q3
0
L3 … L1 op L2
L1L
L1L
L1-L2
L2-L1
[q1,q1 [q2,q1
[q1],q1 [q2],q1
]
]
[q3,q1 [q2,q1
[q ],q [q ],q
12
12
0
0
1
1
0
0
1
1
0
0
0
0
0
0
[q3],q1 [q3],q2 [q3],q1 [q3],q1
]
]
]
]
0
1
0
1
a
b
[q0,q0 [q0,q0
[q1],q1 [q3],q2
]
]
[q2,q1 [q3,q2
[q ],q [q ],q
3
73 od 77
2
3
2
3
c
2
3
2
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 7
• Regularnim izrazom opisati jezik koji sadrži sve nizove nad
abecedom {0, 1, 2} u kojima nema uzastopnih ponavljanja
znaka 0.
1. Ako se u podnizu pojavi 0, sljedeći znak MORA biti 1 ili 2
2. Na kraj niza može se dodati JEDAN znak 0 ili ništa
(01+02+1+2)* (0+)
1. Niz može, ali ne mora nužno započeti znakom 0
2. Zbog mogućeg pojavljivanja znaka 0 na početku niza, sljedeći znak
MORA biti 1 ili 2
 U nadovezivanju nizova NE SMIJE se pojaviti podniz “00”
 Dozvoljene kombinacije su “10”, “20”, “1”, “2”
(0+) (10+20+1+2)*
74 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 8
• Ispitati da li su sljedeći regularni izrazi ekvivalentni:
a) a* ( a+ +  ) a b ( b+ +  )* = a+ b+
b) a+ ( a* + b+ )+ b+ = a ( a + b )* b
•
Primjenom algebarskih zakona reduciramo složeni izraz
 dobivamo jednostavniji izraz i potvrđujemo ekvivalentnost
ili
 ustanovljujemo da izrazi nisu ekvivalentni
75 od 77
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 8
a) a* ( a+ +  ) a b ( b+ +  )* = a+ b+
Primijenjeni algebarski zakoni
a * ( a+ +  ) a b ( b+ +  ) *
= a* a* a b ( b+ +  ) *
= a* a b ( b+ +  ) *
= a* a b ( b* ) *
= a* a b b*
= a* a b+
= a+ b+
76 od 77
x+ +  = x*
x* x* = x*
x+ +  = x*
(x*)* = x*
x x* = x+
x* x = x+
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva
Zadatak br. 8
b) a+ ( a* + b+ )+ b+ = a ( a + b )* b
Primijenjeni algebarski zakoni
a + ( a* + b + ) + b + =
= a+ ( a* + b+ ) ( a* + b+ ) * b+
= a+ ( a* + b+ ) ( a* + bb* )* b+
= a+ ( a* + b+ ) ( a + b ) * b+
= a a* ( a* + b+ ) ( a + b ) * b+
= a ( a* a* + a* b+ ) ( a + b ) * b+
= a ( a* + a* b+ ) ( a + b ) * b+
= a a * (  + b+ ) ( a + b ) * b+
= a a * b* ( a + b ) * b +
= a a * b* ( a + b ) * b * b
= a a* ( a + b ) * b* b
= a ( a + b ) * b* b
= a ( a + b )* b
77 od 77
x+ = x x*
x+ = x x*
( x* + yy* )* = (x + y)*
x+ = x x*
x (y+z) = xy + xz
x* x* = x*
xy + xz = x (y+z)
x+ +  = x*
x+ = x*x
y* ( x + y )* = (x + y)*
x* ( x + y )* = (x + y)*
( x + y )* y* = (x + y)*
Copyright © 2007 S.Srbljić, D.Škvorc, I. Žužak, A.Milanović: Uvod u teoriju računarstva