Limbaje si automate
Primul instrument formal care a fost utilizat in studiul SED il reprezinta teoria limbajelor
[HoUl], [CaLa].
Aceasta teorie a avut ca obiectiv initial analiza si conducerea SED la primul nivel de
abstractizare - nivelul logic aspectele interesante fiind legate de:
- evaluarea spatiului starilor posibile pentru un SED dat
- accesibilitatea unei stari din starea initiala a sistemului
- secventa de evenimente care conduce la o stare data
- posibilitatea de a conduce sistemul intr-un regim de functionare dorit, specificat printr-o
multime de stari; respectiv de a evita o multime definita de stari
O astfel de abordare a SED se numeste modelare comportamentala. Duratele asociate
trecerii printr-o secventa de stari nu sunt luate in considerare, desi lungimea secventei de
evenimente care conduce de la o stare initiala definita catre o stare obiectiv poate sa constituie un
criteriu de performanta care sa permita selectia unei solutii optime. Cu toate acestea, teoria
clasica a conducerii/ supervizarii SED are drept criteriu de optimalitate maximal permisivitatea
politicilor de conducere, respectiv o cat mai redusa restrictionare a functionarii posibile a
sistemului. Analizele care pot fi efectuate asupra unui SED la acest nivel sunt calitative, punand
in evidenta proprietati ca accesibilitatea, ciclicitatea, existenta blocajelor etc.
Pe masura ce teoria SED si-a gasit o aplicabilitate tot mai larga, teoria limbajelor, ca
formalism de modelare al acestora, a fost extinsa prin integrarea in model a timpului. Astfel, in
locul unei secvente de evenimente e1.e2.e3.e4 cuvant reprezentand tranzitiile sistemului intre
doua stari date, au inceput sa fie luate in considerare secvente de perechi (e1, t1). (e2, t2). (e3, t3).
(e4, t4) unde ti reprezinta momentul aparitiei evenimentului ei.
Aceasta abordare are la baza ipoteza ca functionarea sistemului este determinista, adica
nu numai ca evolutia sistemului dintr-o stare data in urma unui eveniment anume este unica, dar
si ca secventierea in timp a evenimentelor este clar definita. Este abordarea pentru al doilea nivel
de abstractizare al SED si anume cel aferent limbajelor temporizate (timed languages). La acest
nivel devine posibila si analiza cantitativa a sistemului, cu obiective referitoare la durata necesara
evolutiei sistemului intre doua stari date, durata unui ciclu de functionare, intervalul de timp pe
care sistemul il petrece intr-o anumita stare etc.
In sfarsit, nivelu de abstractizare cel mai ridicat il reprezinta cel al limbajelor temporizate
stochastice (stochastic timed language), pentru modelarea sistemelor pentru care se dispune de
distributii de probabilittate referitoare la intervalele de timp intre aparitia a doua evenimente
succesive.
Alegerea unui anumit nivel de abstractizare pentru modelul SED al unui sistem depinde
in mod fundamental de obiectivul modelarii cele trei nivele fiind complementare din punctul
de vedere al aspectelor comportamentale a caror analiza o permit.
Teoria limbajelor permite, fara indoiala modelarea si evaluarea proprietatilor SED, desi,
mai ales pentru sisteme cu numar infinit de stari, evidentierea unor aspecte legate de verificarea
proprietatilor, sinteza politicilor de conducere si evaluarea de performante necesita modalitati de
reprezentare mai practice si mai intuitive.
Cele mai importante astfel de formalisme sunt automatele si retelele Petri.
Prezenta sectiune are ca obiectiv prezentarea automatelor finite ca instrument de
modelare la nivel logic pentru SED, cu urmatoarea structura :
1. introducere in teoria limbajelor pentru SED ;
2. automate si automate finite; problematica modelarii si analizei sistemelor
3. automate finite nedeterministe si construirea observatorului determinist ;
probleme de observabilitate
4. conducerea/ supervizarea SED folosind teoria automatelor; probleme de
controlabilitate
5. extensii la nivel temporal si stochastic
Nu intra in obiectivele acestei sectiuni prezentarea si demonstrarea detaliata a tuturor
rezultatelor referitoare la teoria limbajelor si automatelor pentru acest scop cititorul este invitat
sa consulte [HoUl], [CaLa] si [raWo], pecum si bibliografia referita in aceste lucrari. Obiectivul
sectiunii il reprezinta trecerea in revista a principalelor probleme de interes pentru inginerul
automatist si a rezultatelor obtinute in tratarea lor ce pot fi rezolvate apeland la acest
formalism.
1. Scurta introducere in teoria limbajelor pentru modelarea SED
Teoria limbajelor pentru modelarea SED are la baza definitia procedurala (ref) a acestuia,
respectiv idea ca fiecare SED are asociat un alfabet finit de evenimente - precum si
urmatoarele concepte:
Definitie : Cuvant: o secventa ordonata de evenimente/ simboluri ale aceluiasi alfabet.
In teoria SED un cuvant (string, word, uneori in literatura apar si termenii de trace sau
path) reprezinta o evolutie a sistemului intre doua stari date, de regula prima stare fiind implicit
starea initiala din definitia formala a acestuia. Ca atare, doua sunt caracteristicile cele mai
importante ale unui cuvant : lungimea numarul de simboluri si relatia de ordine intre
evenimente.
Un cuvant care nu contine nici un eveniment se numeste cuvant vid si se noteaza cu .
Daca c este un cuvant oarecare, lungimea acestuia se noteaza cu |c|.
Definitie : Limbaj : Un limbaj este o multime de cuvinte formate peste un acelasi alfabet
.
La nivel intuitiv, daca un cuvant poate fi intrepretat ca o evolutia posibila a unui SED,
atunci un limbaj poate reprezenta un set de evolutii posibile, dorite sau interzise.
Limbajul care nu contine nici un cuvant se numeste limbaj vid si se noteaza cu .
Prin extensie, un alfabet poate fi considerat ca un limbaj finit, format din cuvinte de
lungime 1.
Principalele operatii care permit construirea de limbaje noi (L) din alte limbaje (L 1, L2)
peste acelasi alfabet si care au relevanta pentru modelarea SED sunt :
- Reuniunea: L = L1 L2 ={ v| v L1 sau v L2 }, cu
- Concatenarea: L = L1 L2 = {v | v = s t unde s L1 i t L2}
L1
- Inchiderea/ operatorul Kleene (sau inchiderea iterativa): L =
i
L* = i=0 L1 , unde
i1
L1 = L1. L1
si L0 = {}
Prin extensie, * reprezinta multimea (infinita a) tuturor cuvintelor care pot fi formate cu
simbolurile alfabetului , inclusiv, in mod explicit, .
- Inchiderea prefixata: L = pr (L ) = L1 = {s * | t L a.. st L }
1
Pornind de la definitia formala procedurala a unui SED G se poate defini limbajul generat
al lui G : L(G)={ s *| (q0, s)Q} care contine toate evolutiile posibile ale acestuia.
Proprietate: Limbajul generat de catre un SED este propria sa inchidere prefixata.
De cele mai multe ori, studiul evolutiei unui sistem are ca obiectiv determinarea
modalitatilor (daca acestea exista) prin care il putem conduce catre o serie de stari date, denumite
stari marcate (marked states) Qm care definesc functionarea dorita a sistemului. In raport cu
acest obiectiv de conducere, se defineste limbajul marcat al sistemului: Lm(G)= { s *| (q0,
s)Qm}.
Perechea (L, Lm) formeaza modelul limbaj al sistemului studiat.
Doua sisteme SED se numesc echivalente daca modelele lor limbaj sunt echivalente,
adica daca exista doua aplicatii bijective care mapeaza cele doua limbaje generate, respectiv cele
doua limbaje marcate.
Desi modelul limbaj reprezinta o modalitate formala completa pentru descrierea
sistemelor, o problema extrem de dificila o reprezinta dimensiunea modelelor limbaj pentru
sisteme relativ mici, dupa cum rezulta din exemplul (X.1):
Exemplul X.1: Fie un buffer de capacitate doi. Se presupune ca ordinea in care elementele
stocate intra sau ies din buffer nu este relevanta pentru obiectivul modelarii, care ia in
considerare doar numarul de locuri libere disponibile.
Modelul SED al acestui sistem are la baza urmatoarele consideratii:
- numarul de stari relevante ale sistemului este de trei: q2- doua locuri libere, q1- un loc
liber si q0- buffer plin: Q= {q2, q1, q0}
- alfabetul de evenimente are doua elemente; intrare element i si iesire element e: =
{i, e}
- starea initiala se presupune a fi q2
- functia de tranzitie (incomplet definita) este : (q2, i)=q1, (q1, i)=q0, (q1, e)=q2, (q0,
e)=q1, iar (q2, e), precum si (q0, i) nu se definesc, deoarece nu sunt posibile fizic.
Limbajul generat al sistemului este infinit si are forma:
L={i, ii, ie, iie, iei, iiee, iiei, ieie, ieii, ...}
Daca se stabileste ca obiectiv ca bufferul sa aiba o pozitie ocupata, respectiv Qm=q1,
atunci
Lm=(i, iie, iei, iiei, ...}
Cu toate ca sistemul este extrem de simplu, constructia limbajelor pentru cuvinte de
lungime mare, precum si studiul apartenentei unor astfel de cuvinte la cele doua limbaje ale
modelului sunt relativ greoaie, iar identificarea unei structurari in constructia acestora dificila.
Cu atat ar fi mai greu de construit, intr-un mod structurat, un model mai complex, compus
din mai multe servere si buffere de capacitati diferite.
Acesta este principalul motiv pentru care a aparut necesitatea reprezentarii limbajelor prin
structuri mai compacte, care sa permita combinarea prin operatii bine definite, pentru
construirea de limbaje oricat de complexe pe baza unora mai simple. Un astfel de instrument il
reprezinta automatele.
2. Automate si automate finite deterministe; probleme de modelare si analiza
Un automat (denumit uneori si masina de stari state machine) este o structura de tip
graf directionat, care poate reprezenta modelul limbaj conform unor reguli bine definite.
Definitie: Un automat determinist G este un SED cu urmatoarele componente:
G=(Q, , , , q0, Qm), unde:
Q este multimea starilor automatului; daca multimea Q este finita, atunci
automatul se numeste finit;
este alfabetul finit de evenimente asociate arcelor grafului; mai multe arce
diferite pot fi asociate aceluiasi eveniment;
: Q x Q este functia de tranzitie; daca este definita (qi, ej) = qt, inseamna
ca exista un arc asociat evenimentului ej care pleaca din starea qi si ajunge in
starea qt;
: Q 2 este functia evenimentelor active cu valori in multimea tuturor
submultimilor lui ; (qi) este multimea tuturor evenimentelor ej pentru care
este definita (qi, ej) si se numeste multimea evenimentelor fezabile sau active din
starea qi sau multimea evenimentelor la care este receptiva qi;
q0 este starea initiala;
Qm Q este multimea starilor marcate.
O observatie importanta este legata de functiile si : in situatiile in care teoria
automatelor se aplica in domeniul stiintei calculatoarelor respectiv al proiectarii aplicatiilor
software este indicat ca functia sa fie complet definita; deoarece nu exista considerente fizice
care sa impiedice aparitia unui eveniment oarecare intr-o stare data. In aceasta situatie, definitia
automatului poate sa nu includa functia ; aceasta este insa foarte importanta in aplicatiile de
conducere a proceselor, unde talia modelului poate fi redusa prin eliminarea acelor evenimente
care nu pot avea fizic loc in anumite stari.
Din punct de vedere formal, functia permite diferentierea clara intre evenimentele ej
care pot sa apara intr-o stare qi, fara sa o modifice (nu sunt observabile: (qi, ej) = qi) si cele
pentru care (qi, ej) nu este definita.
De regula, pentru un sistem dat rareori exista un model unic; definirea elementelor lui Q
si se face in mod corelat; nu trebuie uitat faptul ca un eveniment poate sa modifice si o singura
stare.
Functionarea unui automat este simpla: el porneste din starea sa initiala q0 si, la aparitia
unui eveniment e0(q0), va face o tranzitie catre starea (q0, e0)=q1Q. Procesul se reia
iterativ pentru q1si e1. Cuvantul e0.e1... en reprezinta o intrare de lungime n+1 pentru automat si
face parte din limbajul generat al SED modelat astfel.
Pentru conformitate, definitia automatului determinist se poate extinde definind functia
pe Qx*, in loc de , astfel: (q, e)=q si (q, s.e)=((q, s), e) pentru s* si e.
Automatul corespunzator exemplului X.1 este prezentat in fig. X.1
q2
i
e
q1
q2
unde simbolul grafic asociat notatiei q2 corespunde starii initiale, iar cel asociat starii q1
unei stari marcate. O stare oarecare din Q este reprezentata prin simbolul asociat lui q2, iar arcele
reprezinta evenimentele.
Observatie: Nu este obligatoriu ca multimea Q sa fie finita principiile de functionare
sunt aceleasi pentru automatele cu numar finit de stari (numite si automate finite) ca si pentru
cele infinite; desigur, reprezentarea grafica a automatelor cu numar infinit de stari nu este
posibila.
Modelul de automat definit in aceasta sectiune este referit in literatura despre procese
stochastice si ca o schema Semi-Markov generalizata (Generalized Semi-Markov Scheme
GSMS). Procesele Markov vor fi tratate intr-o sectiune ulterioara a acestui capitol, ca modele
temporizate stochastice ale SED.
Corespondenta intre automate si modelul limbaj este data de urmatoarele definitii:
Fie un automat G=(Q, , , , q0, Qm).
Atunci limbajul generat de G este L(G) = {s* |
(q0, s)Q}, iar limbajul marcat
de G este Lm(G) = {sL |
(q0, s)Qm}.
Daca functia este complet definita, atunci L(G) = *.
Doua automate G1 si G2 se numesc echivalente daca
Lm(G2).
L(G1)
L(G2)
si
Lm(G1)
Majoritatea rezultatelor teoriei SED pentru formalismul de reprezentare automat se refera
la clasa de automate finite deterministe (AFD), care permit, de altfel, definirea unei clase de
limbaje cu proprietati matematice bine definite, respectiv clasa limbajelor regulate.
Definitie: Un limbaj se numeste regulat daca poate fi marcat de un AFD. Clasa limbajelor
regulate se noteaza cu R.
Clasa de limbaje R este foarte importanta, deoarece reprezinta acele limbaje care,
modelate prin intermediul automatelor, necesita o cantitate finita de memorie fiind deci cea mai
practica modalitate de manipulare a limbajelor, in vederea analizei modelelor si respectiv a
sintezei politicii de conducere.
Proprietatile limbajelor regulate (Teorema): Fie L1 si L2 limbaje din clasa R. Atunci
urmatoarele limbaje fac si ele parte din clasa R:
L 1
1.
2. L*
3. Complementul lui L1= Lc=*\L1
4. L1 L2
5. L = L1 L2
6. L1 L2
Demonstratia acestei teoreme este evidenta si poate fi gasita in [CaLa].
O metoda alternativa de reprezentare a limbajelor regulate, derivata din aceasta
proprietate, este prin expresii compacte, numite expresii regulate.
Definiie: Fie un alfabet; atunci o expresie regulat (ER) se definete astfel:
este o ER care modeleaz limbajul ce conine doar evenimentul nul;
o este o ER care modeleaz limbajul vid;
() a , a este o ER care modeleaz limbajul reprezentat de {a}
dac a, b sunt ER, atunci (ab), (a + b), a*, b* sunt ER (+ fiind notatia folosita in cadrul
expresiilor regulate pentru reuniune - )
Proprietate: Dac este ER, atunci : * = + *
Expresiile regulate ofera o reprezintare simbolica finita si compacta pentru limbaje
complexe, de dimensiune infinita.
Se poate demonstra [hoUl] ca exista un algoritm de constructie al ER acceptate de un
AFD, tot asa cum exista algoritmi decidabili care pot demostra echivalenta a doua expresii
regulate date.
Teorem (teorema lui Kleene): Dac L este un limbaj acceptat de un automat finit
determinist, atunci L poate fi scris ca expresie regulat. Expresia Regulat (ER) a limbajului
acceptat de ctre automat este o reuniune a tuturor traiectoriilor care conduc de la starea iniiala
ctre o stare marcat:
n
1k
toate
q k Q m
Ca procedura practica de lucru, fara a modifica gradul de generalitate al rezultatului, se
presupune c automatul are n noduri, numerotate strict cresctor de la 1 (starea iniial) la n. Cu
Rijn
aceasta notatie,
reprezint toate traiectoriile de la qi la qj care nu trec prin nici o stare cu un
indice mai mare dect n. Constructia expresiei sa face iterativ, astfel:
R ijk R ikk 1 (R kkk1 ) * R kkj1 R ijk 1
R 0ij
{a | (qi , a)=qj }
dac i j
{a + | (qi , a) = qj {} }
dac i = j
Analiza modelelelor de tip AFD are ca obiectiv determinarea anumitor proprietati
calitative ale modelelor, dintre care cele mai importante sunt accesibilitatea si blocajele.
Definitie: Dandu-se un automat G = (Q , , , q0, Qm), o stare qi se numeste accesibila
dintr-o stare qj daca exista un sir de evenimente s* astfel incat (qj, s)=qi.
Pornind de la conceptul de accesibilitate si de la diversele obiective concrete ale analizei
sistemelor au fost definite o serie de operatii unare pe automate care permit evaluarea
calitativa a modelelor de tip AFD si care pot fi implementate prin algoritmi decidabili.
Operaii unare:
Componenta accesibil
1.
Fiind dat un automat
G = (Q , , , q0, Qm),
2.
se definete componenta sa accesibila ca fiind automatul ce conine doar strile n care se
poate ajunge pornind de la starea iniial (strile accesibile din starea iniial):
Acc(G)=Gacc= (Qacc, , acc , q0, Qm acc),
3.
n care:
Qacc = {qQ/ s* a.. (q0, s)=q},
Qmacc = Qacc Qm
acc: Qacc acc Qacc,
(q, ) daca q Qacc si (q, ) Qacc
altfel
acc (q, )
4.
Daca se doreste identificarea multimii starilor accesibile dintr-o stare oarecare qj, atunci aceasta
poate fi declarata stare initiala, pastrand tot restul structurii automatului.
Componenta coaccesibil
5.
Fiind dat un automat
G =(Q , , , q0, Qm),
6.
se definete componenta coaccesibil ca fiind automatul ce conine doar strile de la care
se poate ajunge la o stare marcat:
CoAcc(G)=Gco= (Qco, , co , q0co , Qm),
7.
n care:
Qco = {qQ/ s* a.. (q, s)Qm},
q0
q0 co
daca q0 Qco
altfel
co: Qco Qco,
(q, ) daca q Qco si (q, ) Qco
altfel
co (q, )
8.
Automatul trim
9.
Fiind dat un automat
G = (Q , , , q0, Qm), Trim(G) = CoAcc(Acc(G))=Acc(CoAcc(G))=Gtrim
Gtrim= (Qtrim, , trim , q0trim ,Qmtrim),
10.
n care:
Qtrim = {qQ/ s* i w* a.. (q0,s)=q i (q, w)Qm},
q0
q0 trim
daca q0 Qtrim
altfel
trim: Qtrim Qtrim,
(q, ) daca q Qtrim si (q, ) Qtrim
altfel
trim (q, )
11.
Complementul unui automat
12.
Fiind dat un automat
G = (Q , , , , q0, Qm),
13.
se definete complementul su (Gc) ca fiind automatul complet definit care marcheaz
toate cuvintele ce nu sunt marcate de G. Obinerea complementului unui automat se face
n trei pai:
1. Se construiete automatul trim(G)
2. Daca trim(G) nu este complet definit, atunci se completeaz cu o stare nou
(initial nemarcat) qd , astfel: qjQ, a.i.(qj), se defineste (qj, e)=qd pentru
e.(qj) si (qd, e)=qd, e
3. Toate starile nemarcate ale automatului obtinut la pasul 2 va deveni marcata si
orice stare marcata a automatului de la pasul 2 va deveni nemarcata.
In ceea ce priveste proprietatile de blocaj, ele se definesc in raport cu co-accesibilitatea:
Definitie: Pentru un AFD G = (Q , , , , q0, Qm) o stare qjQ\Qm se numeste blocaj (deadlock)
daca (qj)=. O stare qjQ\Qm se numeste livelock daca s*, (qj, s) Qm. Prin extensie, o
stare qjQ\Qm se numeste blocanta daca nu apartine lui CoAcc(G).
Avand in vedere dificultatea construirii de modele de tip AFD pentru sisteme de talie mare, o
metoda extrem de utilizata este cea de a obtine modelul sistemului global din modelele
subsistemelor, prin operatii de compunere.
Daca alfabetele asociate modelelor AFD ale subsistemelor au cel putin un eveniment comun,
atunci compunerea este sincrona altfel este asincrona si reprezinta un caz particular al cele
dintai.
Definiie: Fie dou AFD G1 = (Q1 , 1 , 1, q01, Qm1) si G2 = (Q2 , 2 , 2, q02, Qm2). Se numete
compunere sincron a automatelor G1 i G2, notat G1 || G2, un automat G
G =(Q , , , q0, Qm) cu:
Q =Q1 Q2
= 1 2
q0 = (q01 , q02)
Qm = Qm1 Qm2
() q = (q1 , q2) Q i
14.
( 1(q1, ) , 2(q2, ) ) dac 1 2 i
(q,) =
1 (q1, ) i 2(q2, )
(1(q1, ) , q2 )
dac 1 \ 2 i
1 (q1, )
( q1, 2(q2, ) )
dac 2 \ 1 i
2 (q2, )
Nu se definete pentru orice caz care nu corespunde celor definite mai sus
Observaie
Dac 1 = 2 atunci Lm(G1 || G2) = Lm (G1) Lm(G2) i L(G1 || G2) = L(G1)L (G2).
Nu exista o metoda unica pentru constructia unui automat care sa marcheze un limbaj dat, dar a
fost demonstrat ([HoUl] de catre Myhill si Nerode ca solutia de talie minimala (numar minim de
stari pentru un alfabet dat) este unica. Pe baza acestor rezultate a fost elaborat un algoritm de
minimizare al automatelor cae permite obtinerea solutiei minimale pe baza identificarii
perechilor de stari echivalente.
Myhill si Nerode au definit conceptul de relatie de echivalenta peste un limbaj L, respectiv peste
automatul care accepta limbajul respectiv, astfel:
Definitie: Fie x, y L. Atunci RL este o relaie de echivalen asociata limbajului L (sau x RL y)
dac i numai dac pentru () z *,
1.
fie xz L i yz L
2.
fie xz L i yz L.
Relaia RL mparte limbajul L n clase de echivalen. Numrul de clase de echivalen se
numete index.
Se poate demonstra c indexul unui limbaj regulat este finit.
Definitie: Fie M= (Q, , , q0, Qm) un AFD. Se definete relaia de echivalen RM asociata
automatului M astfel: doua cuvinte x , y * sunt echivalente in raport cu automatul M - x RM y
- dac i numai dac (q0, x) = (q0, y).
n plus, dac x RM y, pentru z * avem xz RM yz, ceea ce revine la
(q0 , xz) = ((q0 , x), z) = ((q0 , y), z) = (q0 ,yz))
O relaie de echivalen de acest tip se numete invariant la dreapta (fa de operaia de
concatenare).
Teorem (criteriul Myhill-Nerode): Urmtoarele afirmaii sunt echivalente:
1.
Limbajul L * este acceptat de un automat finit;
2.
L este reuniunea unor clase de echivalen determinate de o relaie de echivalen
invariant la dreapta cu index finit;
3.
Fie relaia de echivalen definit pe limbajul L astfel:
() x, y L , x RL y dac i numai dac () z * , xz L numai n cazul n care i yz L .
Ca o consecin a teoremei de mai sus, o stare p este echivalent cu o stare q a automatului M
dac i numai dac pentru orice ir de intrare x, (p, x) este stare marcat numai atunci cnd
(q, x) este o stare marcat.
Algoritmul de minimizare a unui AFD (Q, , , q0, Qm) prezentat in continuare are ca obiectiv
identificarea perechilor de stari care NU sunt echivalente, prin marcarea lor intr-un tabel ce
contine toate perechile de stari. Perechile de stari care nu vor fi marcate dupa parcurgerea
intregului tabel sunt echivalente. O multime de stari echivalente poate fi inlocuita cu o singura
reprezentanta a clasei sale de echivalenta ceea ce rezulta in minimizarea dimensiunii Q.
Start
Pas 1: pentru fiecare pereche de stari (p,q) cu p Qm i q Q \ Qm se bifeaz n tabel locaia
corespunztoare (strile marcate nu pot fi echivalente cu cele nemarcate);
Pas 2: pentru fiecare pereche de stri distincte (p, q) Qm Qm sau (p, q) (Q/Qm)(Q/Qm)
Pas 2.1
dac () a , ((p, a), (q, a)) este bifat n tabel:
atunci
bifeaz (p, q);
bifeaz toate perechile din lista de echivalene a perechii (p,q).
altfel
pentru toi a
se introduce perechea (p, q) n lista de echivalene a perechii
((p,a), (q,a)) cu exceptia cazului n care (p,a) = (q, a).
Stop
3. Automate finite nedeterministe; probleme de observabilitate
Exista situatii in care construirea unui model de proces se bazeaza pe identificarea acestuia, pe
baza observarii comportamentului sau fata de un set de stimuli de intrare. Procedura este
conceptual simpla, odata stabilit alfabetul de evenimente observabile si variabilele de stare
observate: pornind de la starea initiala (q0) in model, se genereaza toata evenimentele posibile si
se identifica astfel, pas cu pas, functia si multimea noilor stari Q. Exista insa situatii in care
anumiti parametri sau evenimente nu pot fi masurate/ observate sau anumiti parametri de stare
masurati nu sunt relevanti pentru problema studiata.
In astfel de situatii, comportamentul modelului automat construit prin identificare/ observare
poate sa fie nedeterminist: repetarea unui scenariu experimental poate sa duca la rezultate diferite
si/sau se identifica modificari de stare ale sistemului studiat fara ca acestea sa aiba cauze
observabile. Aceste categorii de situatii conduc la doua clase de modele nedeterministe.
O definitie care ia in considerare toate comportamentele posibile ale unui automat (finit, in acest
context, dar extensibil si pentru automatele cu numar infinit de stari) este:
Definiie: Un automat finit se definete ca un quintuplu
G = (Q, { }, , q0, Qm), unde
Q este multimea starilor (finita);
{ } este alfabetul de evenimente care include in mod explicit evenimentul nul, , ca
orice eveniment care nu poate fi observat;
q0 este starea initiala;
Qm este multimea starilor marcate,
iar diferentierea se face in functie de modul de definire al lui :
- daca : Q { } Q si q Q, (q, )=q, automatul este determinist
- daca :Q { }2Q (cu 2Q mulimea tuturor submulimilor lui Q) si qQ, (q,
)=q, automatul este nedeterminist (adica exista macar o stare qQ si un eveniment
e astfel incat card((q, e))2 -se pot observa cel putin doua evolutii diferite din
starea q cu evenimentul e)
- daca :Q { }2Q si qQ a.i. card((q, ))2, automatul este nedeterminist cu
tranzitii (adica exista cel putin o stare din care sistemul evolueaza fara sa apara
vreun eveniment observabil)
Un cuvant s * se numeste acceptat de un automat daca exista cel putin o evolutie (q0, s)Qm.
Pentru a defini mai exact funcia de tranziie a Automat Finit Nedeterminist cu tranzitii (AFN)
se introduce noiunea de nchidere a unei stri q a automatului G (notata *G (q)), astfel: *G
(q) = (q, *) = mulimea tuturor strilor n care se ajunge pornind din q sub o secven (orict de
lunga) de .
Atunci funcia de tranziie a unui AFN se definete astfel:
: Q ( { }) 2Q ; si(q, ) =
15.
G* (q)
Pentru un cuvnt de intrare s ( { })* i ,
( q, s ) G* [ ( ( q, s ), )]
q"
q '
q ,s
*
G
q ''
q ',
S-a demonstrat ca orice automat nedeterminist Gnd are un echivalent determinist, numit
observator (Gobs ) si constructia acestuia se poate face pe baza unui algoritm decidabil (daca
automatele sunt finite).
Algoritmul de construcie a unui observator Gobs=(Qobs, obs, obs, q0,obs, Qm,obs) pentru un
automat nedeterminist general Gnd [culegere noi]
Fie automatul nedeterminist definit ca: Gnd = (Qnd, nd, nd, q0,nd, Qm,nd),
n care
daca avem un AFN
,
nd
{}, daca avem un AFN -
si folosind (pentru a putea rezolva cu acelasi algoritm construcia observatorului att pentru AFN
ct i pentru AFN-) funcia UR (unobservable reach tranzitie neobservabila):
UR: 2Qnd nd 2Qnd
Cu definiia:
x, daca G nd este AFN
UR(x) *
G ( x), daca G nd este AFN -
algoritmul de construcie a observatorului pentru un automat nedeterminist este urmtorul:
Pas 1 q0,obs = UR(q0,nd) i se initializeaza lista strilor neexplorate (LSN)cu q0,obs.
Pas 2 Cat timp ct exist stri n LSN:
Pas 2.1 Se extrage o stare q din LSN.
Pas 2.2 Se include q n mulimea Qobs. Dac o componenta qndq a. qndQm,nd atunci se
adaug q n Qm,obs.
Pas 2.3 Pentru fiecare eveniment end
Pas 2.3.1. Evaluarea strii qobs n care evolueaz qobs la apariia evenimentului e:
qn d qobs
qobs =obs(qobs,e)=UR(nd(qobs,e))=UR(
nd(qnd,e))
Pas 2.3.2. Dac qobsQobs atunci se introduce qobs n LSN.
Pas 2.4 Salt la Pas 2.
O alta sursa a AFN- o reprezinta constructia algoritmica a automatului care accepta o ER data,
pe baza definiiei ER i utiliznd urmtoarele structuri:
Fie r1 i r2 ER acceptate de urmatoarele automate finite: respectiv M1 = (Q1, 1, q1, 1, {f1})
accepta r1 si M2 = (Q2, 2 , q2, 2, {f2}) accepta r2:
Atunci:
1. AFN- M corespunzator concatenarii r = r1 r2 este
f1
q1
q2
f2
M1
M2
M= (Q1 Q2 , 1 2 , , q1 , {f2})
(q, a) = 1 (q , a)
dac q Q1 \ {f1} si a 1
(f1 , ) = {q2}
(q , a) = 2 (q , a)
dac qQ2 i a 2
2. AFN- M corespunztor reuniunii
q1
M1
f1
r = r1 + r2
este
ff0
0
q0
q2
M2
f2
M = (Q1 Q2 {q0 , f0 }, 1 2 , , q0 , {f0} )
(q0 , ) = {q1 , q2 }
(q, a) = 1 (q1, a) dac q Q1 \{ f1 }i a 1 { }
(q, a) = 2 (q, a) dac q Q2 \{f2 } i a 2 { }
(f1, ) = (f2, ) = {f0}
3. AFN- M corespunzator operatorului Kleene r = r1* este:
q0
q1
f1
f0
M=(Q1 {q0 , f0} , 1 {} , , q0 , {f0})
(q0 , ) = {q1 , f0}
(q , a) = 1 (q, a) pentru q Q1 \ {f1} i a 1
(f1 , ) = {q1 , f0}.
Automatul care accepta un eveniment oarecare a este:
4. Conducerea/ supervizarea SED folosind teoria automatelor; probleme de controlabilitate
Lucrarile care stau la baza teoriei generale a supervizarii SED sunt cele ale lui Ramadge si
Wonham ([Ramadge & Wonham, 1987b], [Ramadge & Wonham, 1987a]). Obiectivul formulat
de catre cei doi cercetatori este de a sintetiza un supervizor sau o politica de supervizare care,
cuplat cu procesul, sa conduca la un comportament global conform cu un set dat de specificatii,
numit comportamentul dorit.
In plus, acest comportament trebuie sa fie cel mai permisiv posibil, adica nici o traiectorie de
stare care sa nu contrazica specificatiile sa nu fie inlaturat prin supervizare.
Comportamentul procesului/ sistemului in bucla deschisa precum si comportamentul dorit
sunt definite prin intermediul limbajelor.
Obiectivul sintezei