Documente Academic
Documente Profesional
Documente Cultură
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
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 :
2/9
Operaii pe Automate & Expresii Regulate
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 :
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
L = L1 L2 = {ss = tv, s L1 , v L2 }
Exemplu :
2.1.2 Reuniunea
L = L1 L2 = {vv L1 sauv L2 }
Exemplu :
4/9
Operaii pe Automate & Expresii Regulate
2.2.1 Exerciii
Descriei limbajul urmtoarelor ER :
(0 + 10) 1
(1 + )(00 1) + 0
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 :
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
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
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
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
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)
9/9