Sunteți pe pagina 1din 9

UNIVERSITATEA

P O L I T E H N I C A
B U C U R E S T I

Ingineria sistemelor
Sisteme Dinamice cu Evenimente Discrete

>>> Operatii pe Automate & Expresii


Regulate
Diana Beatrice Rotaru, Larisa Udrescu & Dragos Ghinoiu

9 septembre 2017
Operaii pe Automate & Expresii Regulate

1 Operaii pe Automate
1.1 Compunerea sincron (k)
Compunerea sincron reprezint operaia de legare a dou sisteme astfel nct acestea s funcio-
neze sincronizat(simultan) pe evenimentele comune i independent pe evenimentele proprii. Acest
tip de compunere este restrictiv, ntruct admite tranziii doar pe evenimente comune. Modalita-
tea standard de construire a modelelor sistemelor pornind de la modele de componente proprii ale
sistelemelor este compunerea sincron (k).
Fie G1 i G2 dou automate, cu G1 = (Q1 , 1 , f1 , q01 , Qm1 ) si G2 = (Q2 , 2 , f2 , q02 , Qm2 ).

G1 : G2 :

Vom determina compunerea sincron : G1 si G2 :

G1 k G2 := Ac(Q1 Q2 , 1 2 , f, Qm1 Qm2 )


, unde

(f 1(q1 , e), f 2(q2 , e)) dac e 1 2


(f 1(q1 , e), q2 ) dac e 1 \ 2
f ((q1 , q2 ), e) :=
(q1 , f2 (q2 , e)) dac e 2 \ 1
- altfel
n compunerea sincron, un eveniment comun, care e un eveniment din 1 2 , poate fi executat
doar dac ambele automate l execut simultan. Astfel, cele dou automate sunt sincronizate pe
evenimentele comune. Evenimentele private(proprii), precum cele din (1 \ 2 ) (2 \ 1 ), nu sunt
constrnse i pot fi executate de fiecare dat cnd este posibil. Prin urmare, o component poate
executa evenimentele private fr a fi necesar participarea altor evenimente, ns un eveniment
comun poate avea loc doar dac ambele componente il pot executa.
Dac 1 = 2 , atunci compunerea sincron se reduce la produsul final i toate tranziiile sunt
forate s fie sincronizate.
Dac 1 2 = atunci nu exist tranziii sincrone i G1 k G2 este exact compunerea sincron a
lui G1 si G2 .
Pentru o precizie mai bun a limbajelor generate de G1 k G2 , considerm urmtoarele proiecii :
1. Pi : (1 2 ) i , pentru i = 1, 2
Folosindu-ne de proieciile de mai sus, putem caracteriza limbajul rezultat din compunerea
sincron :
2. L(G1 k G2 ) = P11 [L(G1 )] P21 [L(G2 0]

2/9
Operaii pe Automate & Expresii Regulate

3. Lm (G1 k G2 ) = P11 [Lm (G1 )] P21 [Lm (G2 )]


Din relaiile 1, 2 si 3 de mai sus se ajunge la urmtoarea relaie : L1 k L2 := P11 (L1 ) P21 (L2)

Proprieti :
1. Pi [L(G1 k G2 )] L(Gi ), pentru i = 1, 2
2. Compunerea sincron este comutativ ;
3. Compunerea sincron este asociativ : (G1 k G2 ) k G3 = G1 k (G2 k G3 )
Automatul final, rezultat din compunerea sincron a automatelor G1 si G2 prezentate mai sus este
ilustrat n figura de mai jos :

1.2 Compunerea total sincron


Compunerea total sincron reprezint operaia de legare a dou sisteme astfel nct acestea s
funcioneze doar sincronizate pe evenimentele comune, eliminndu-se evoluiile individuale(proprii).
Folosindu-ne de cele dou automate G1 i G2 folosite i la compunerea sincron, vom ilustra pro-
cesul de compunere total sincron, precum i proprietile acesteia.

G1 G2 := Ac(Q1 Q2 , 1 2 , f, (q01 , q02 ), Qm1 Qm2 )

(f 1(q1 , e), f 2(q2 , e)) dac e 1 2


f ((q1 , q2 ), e) :=
- altfel
Proprieti :
1. Compunerea total sincron este comutativ
2. Compunerea total sincron este asociativ i definim :

G1 G2 G3 := (G1 G2 ) G3 = G1 (G2 G3 )

Rezultatul aplicrii compunerii total sincrone pe automatele G1 i G2 este ilustrat n figurile de mai
jos :

3/9
Operaii pe Automate & Expresii Regulate

2 Expresii Regulate
Expresiile regulate pot fi gandite ca un limbaj de programare al automatelor.
Expresiile regulate sunt practic cuvintele pe care le accepta un automat.( ofera ceva ce automatele
nu pot, o metoda de a declara cuvintele pe care le accepta un automat.)

2.1 Operatorii ER
ER limbajul unui automat cuvinte acceptate
De exemplu ER : 01 + 10 denot limbajul care conine toate cuvintele de forma :
Un singur 0 urmat de orici de 1 i
Un singur 1 urmat de orici de 0
Din exemplu se pot observa doi operatori :
1. - concatenarea
2. + - reuniune
3. - operatorul Kleene

2.1.1 Concatenarea (mulimea tuturor combinaiilor)

L = L1 L2 = {ss = tv, s L1 , v L2 }
Exemplu :

L1 = {001, 10, 111}iL2 = {e, 001}


Rezult c
L = L1 L2 = {001, 10, 111, 001001, 10001, 111001}

2.1.2 Reuniunea

L = L1 L2 = {vv L1 sauv L2 }
Exemplu :

L1 = {001, 10, 111}iL2 = {e, 001}


Rezult c
L = L1 L2 = {e, 10, 001, 111}

4/9
Operaii pe Automate & Expresii Regulate

2.1.3 Operatorul Kleene


Reprezint mulimea tuturor cuvintelor de orice lungime ce se pot forma cu simbolurile asupra c-
rora este aplicat.
Exemplu :

a = {e, a, aa, aaa, ...}


(01) = {e, 01, 0101, 010101, ...}

2.2 Ordinea operatorilor unei ER


Operaiile se vor desfura n urmtoarea ordine :
1. Operatorul Kleene ( )
2. Concatenarea ()
3. Reuniunea (+)
Observaie : reuniunea este asociativ.

Operatorul Kleene Concatenarea Reuniunea

2.2.1 Exerciii
Descriei limbajul urmtoarelor ER :
(0 + 10) 1
(1 + )(00 1) + 0

2.3 Calculul ER pentru AFD


n desenul de mai jos avem reprezentat toate legturie ntre automate si ER :

2.3.1 Formulele de calcul ale ER

ER = nqi Qm R1i

k k1 k1 k1 k1
Rij = Rij + Rik (Rkk )Rkj
Algoritm implementat de calcul al unei ER pentru un AFD introdus :
https://github.com/dragoshh1984/DES/tree/master/SDEDhomework

5/9
Operaii pe Automate & Expresii Regulate

2.4 Probleme
S se calculeze expresia regulat acceptat de automatul :

2.4.1 No. 1

Pentru c avem 3 stri dintre care doar starea 3 marcat rezult c n = 3 iar i = {3}.Deci formula
de calculare a expresiei regulate este :

K=0 K=1 K=2


K
R11 
K
R12 a a
K
R13 a(ba) a
K
R21 b
K
R22   + ba
K
R23 a a
K
R31 b
K
R32 ba
K
R33 +a +a ( + a) + ba(ba) a

Iniial completm prima coloan din tabel pentru c ea reprezint tranziiile directe i este uor de
completat.

0
R11 =
, pentru c suntem n 1

2
R22 =
Observaie : n general Rkk
0 = , dar mai exist o tranziie p de la k la k atunci R0 =  + p.
kk

0
R33 =+a
Pentru celelalte pur i simplu vedem ce tranziii au loc.n
0
R12 =a

ntre strile (1, 3) i (3, 2) nu exist tranziii atunci vom scrie , ceea ce nseamn c nu exist.
Va trece neobservat prin calcule.

0
R13 =
0
R21 =b

6/9
Operaii pe Automate & Expresii Regulate

0
R23 =a
0
R31 =b
0
R32 =
Ne putem gndi la automat ca la un graf orientat. Deci sensul conteaz.

3 2 2 2 2 2 2
R13 = R13 + R13 (R33 ) R33 = R13 (R33 )
2 1 1 1 1
R13 = R13 + R12 (R22 ) R23
0 0 0
1
R13 0
= R13 0
+ R11 (R11 0
) R13 = R13 0
( + R11 (R11 ) ) = + () =
0 0 0
1
R12 0
= R12 0
+ R11 (R11 0
) R12 = ( + R11 (R11 0
) )R12 = ( +  )a =  a = a
0 0
1
R22 0
= R22 0
+ R21 (R11 ) R12 =  + b() a =  + ba
0 0
1
R23 0
= R23 0
+ R21 (R11 ) R13 = a + b() = a
De aici rezult c
1 1
2
R13 1
= R13 1
+ R12 (R22 ) R23 = + a( + ba) a = a(ba) a

2 1 1 1 1
R33 = R33 + R32 (R22 ) R23
0 0
1
R33 0
= R33 0
+ R31 (R11 ) R13 = ( + a) + b() =  + a
0 0
1
R32 0
= R32 0
+ R31 (R11 ) R12 = + b() a = ba
De aici rezult c
1 1
2
R33 1
= R33 1
+ R32 (R22 ) R23 = ( + a) + ba( + ba) a = ( + a) + ba(ba) a

Deci, dup calculele de mai sus putem scrie ER a automatului dat :

3
ER = R13 = a(ba) a+(+a)+ba(ba) a = a(ba) a+a+ba(ba) a = (a(ba) ++ba(ba) )a = (a(ba) +(ba) )a = (a+

Deci,
ER = (a + )(ba) a

2.4.2 No. 2

7/9
Operaii pe Automate & Expresii Regulate

Pentru c avem 3 stri dintre care 1 i 3 marcate rezult c n = 3 iar i = {1, 3}. Deci formula de
calcul a expresiei regulate este :

3 3
ER = R11 + R13

K=0 K=1 K=2


K
R11   1(0 + 11) 1
K
R12 1 1
K
R13 0 0 0 + 1(0 + 11) 10
K
R21 1 1
K
R22 +0 0 + 10
K
R23 10
K
R31 1(0 + 11) 1
K
R32 1 1
K
R33 +0 +0 0 + 1(0 + 11) 10

Iniial completm prima coloan din tabel pentru c ea reprezint tranziiile directe.
0 = , pentru c suntem deja in 1.
R11
Observaie ! n general Rkk
0 =  , dar dac mai exist o tranziie p de la k la k atunci :

0
Rkk =+p
0
R22 =+0
0
R33 =+0
Pentru celelalte pur i simplu vedem ce tranziii au loc.

0
R12 =1
0
R13 =0
0
R21 =1
Intre strile (2, 3) i (3, 1) nu exisu a tranziii atunci vom scrie , ceea ce nseamn c nu exist.
Va trece neobservat prin calcule.

0
R23 =
0
R31 =
0
R32 =1
Obervaie ! Prima coloan din tabel este obligatoriu de calculat. n schimb celelalte coloane, n
funcie de automat, nu vor fi completate integral mereu.
Acum c tim valorile din prima coloan, s revenim la formula lui ER. tim c
3 3
ER = R11 + R13

Deci trebuie s aflm R11


3 i R3 .
13

3 2 2 2 2
R11 = R11 + R13 (R33 ) R31
3 2 2 2 2
R13 = R13 + R13 (R33 ) R33
2 1 1 1 1
R11 = R11 + R12 (R22 ) R21

8/9
Operaii pe Automate & Expresii Regulate

1 0 0 0 0
R11 = R11 + R11 (R11 ) R11 =  = 
0 0 0
1
R12 0
= R12 0
+ R11 (R11 0
) R12 = ( + R11 (R11 0
) )R12 = ( +  )1 =  1 = 1
0 0
1
R22 0
= R22 0
+ R21 (R11 ) R12 = ( + 0) + 1() 1 = 0 + 11
0 0 0 0
1
R21 0
= R21 0
+ R21 (R11 0
) R11 = R21 ( + (R11 ) R11 ) = 1( +  ) = 1
De aici rezult c :
1 1
2
R11 1
= R11 1
+ R12 (R22 ) R21 =  + 1(0 + 11) 1 = 1(0 + 11) 1

2 1 1 1 1
R13 = R13 + R12 (R22 ) R23
1 0 0 0 0 0 0 0
R13 = R13 + R11 (R11 ) R13 = R13 ( + R11 (R11 ) ) = 0( + ) = 0
0 0
1
R23 0
= R230 + R21 (R11 ) R13 = + 1() 0 = 10
De aici rezult c :
1 1
2
R13 1
= R13 1
+ R12 (R22 ) R23 = 0 + 1(0 + 11) 10

2 1 1 1 1
R33 = R33 + R32 (R22 ) R23
0 0
1
R33 0
= R33 0
+ R31 (R11 ) R13 = ( + 0) + () 0 =  + 0
0 0
1
R32 0
= R32 0
+ R31 (R11 ) R12 = 1 + () 0 = 1
De aici rezult c :
1 1
2
R33 1
= R33 1
+ R32 (R22 ) R23 = ( + 0) + 1(0 + 11) 10 = 0 + 1(0 + 11) 10 = R13
2

2 1 1 1 1
R31 = R31 + R32 ((R22 ) R21
1 0 0 0 0 0 0 0
R31 = R31 + R31 (R11 ) R11 = R31 ( + (R11 ) R11 )=
De aici rezult c :
1 1
2
R31 1
= R31 1
+ R32 ((R22 ) R21 = + 1(0 + 11) 1 = 1(0 + 11) 1 = R11
2

Avem toate elementele necesare pentru obinerea lui R11


3 .

Astfel, cum R11


3 = R2 + R2 (R2 ) R2 , rezult c :
11 13 33 31
3
R11 = 1(0 + 11) 1 + (0 + 1(0 + 11) 10)(0 + 1(0 + 11) 10) (1(0 + 11) 1)

= ( + (0 + 1(0 + 11) 10)(0 + 1(0 + 11) 10) )(1(0 + 11) 1)


3 2 2 2 2
R13 = R13 + R13 (R33 ) R33
2 2
3
R13 2
= R13 ( + (R33 ) R33 ) = (0 + 1(0 + 11) 10)( + (0 + 1(0 + 11) 10) (0 + 1(0 + 11) 10))
= (0 + 1(0 + 11) 10)(0 + 1(0 + 11) 10)
Astfel, expresia regulat a automatului dat in figura de mai sus este urmatoarea :

3
ER = R11 3
+R13 = (+(0+1(0+11) 10)(0+1(0+11) 10) )(1(0+11) 1)+(0+1(0+11) 10)(0+1(0+11) 10)

= 1(0+11) 1+(0+1(0+11) 10)((0+1(0+11) 10) )(1(0+11) 1)+(0+1(0+11) 10)(0+1(0+11) 10)


= 1(0 + 11) 1 + (0 + 1(0 + 11) 10)((0 + 1(0 + 11) 10) )(1(0 + 11) 1 + )
ER = 1(0 + 11) 1 + (0 + 1(0 + 11) 10)((0 + 1(0 + 11) 10) )(1(0 + 11) 1 + )

9/9

S-ar putea să vă placă și