3 - Linguagens e Autômatos
3 - Linguagens e Autômatos
3 - Linguagens e Autômatos
Angelo Perkusich Departamento de Engenharia Eltrica Universidade Federal de Campina Grande Campina Grande, Paraba E-mail: perkusic@dee.ufcg.edu.br
Linguagens Definidas para um Conjunto de Eventos Ponto inicial para definir um SED: conjunto de eventos E ou : alfabeto da linguagem Exemplos:
verifique o leo, tanque cheio temperatura alta mensagem enviada mensagem recebida depsito cheio depsito vazio mquina ociosa mquina ocupa
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-2
Definio de Linguagem
Uma linguagem definida sobre E um conjunto finito de cadeias ou palavras de elementos de E Exemplo: E = {a, b, g}
L1 = { , a, abb, abg}, onde a palavra vazia L2 = {todas as cadeias de comprimento 3 terminando com um a} L3 = {todas as possveis cadeias finitas que terminan com um a}
s: sequncia finita de eventos definida em E, palavra ou cadeia s1 = e2e3e1e1e10 (abb} (inclui repeties)
s = comprimento de s
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-3
Operaes
Concatenao: s1 = e2e3e1e1e10 e s2 = e5e3 ento s1 s2 = e2e3e1e1e10 e5e3 E* denota o conjunto de todos as palavras finitas de E, incluindo a palavra vazia , a operao * denominada de fechamento de Kleene Por exemplo para E = {a, b, g}
Por exemplo: E *
E E*
(a linguagem vazia)
Operaes
Para uma cadeia qualquer s = t u v
t o prefixo de s u uma sub-palavra de s v o sufixo de s
L := {s E * : t E * ( st L)}
Note que:
LL
L=L
, L E * ento
L := { } L LL LLL K
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-6
Autmato
Dispositivo para representar uma linguagem com um conjunto de regras bem definidas Representado como um grafo direcionado: ns so estados e arcos rotulados so transies b f :X EX y a X = {x,y,z} E = {a, b, g } a f ( x, a ) = x f (x , g ) = z x a,g f ( y, a ) = x f ( y, b) = y g f (z , b ) = z f ( z, a ) = f ( z , g ) = y z b Estado inicial : x Estados marcados : x, z
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-7
Automato Determinstico
G = ( X , E, f , , x 0 , X m ) X : conjunto de estados E : conjunto finito de eventos associados s transies f : X E X funo de transio de estados f ( x, e) = y Note que f uma funo parcialmen te definida (no precisa) ser sempre definida : X 2E funo de eventos realizvei s ( ativos ) (x) E, o conjunto de eventos ativos , para o qual f(x, ) definida. x 0 : estado inicial X m X : conjunto de estados marcados
Qual estado marcar: problema de modelagem
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-8
Funcionamento
Inicie em x0. A ocorrncia do evento e (x0) E causa a transio para o estado f(x0,e) X O processo continua baseado em transies para as quais f definida a x (x0)={a,g} g z y b a,g Ocorre g b
Funcionamento
Extendendo o domnio de f de X E para X E * f ( x, ) = x f ( x, s ) = f ( f ( x, s ), ) para s E * , e E
a x g
y a,g z
b f ( y, ) = y f ( x, gba ) = f ( f ( x, gb ), a ) = f ( f ( f ( x , g ), b ), a ) = f ( f ( z, b ), a ) = f ( z , a ) = y
f ( x, ( aagb ) = z f z , b n = z , n 0 , onde b n denota n ocorrncia s consecutiv as do evento n
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-10
Lm (G ) = {s L(G) : f ( x0 , s ) X m}
Dois autmatos G1 e G2 so equivalentes se:
L(G1 ) = L(G2 )
Lm (G1 ) = Lm (G2 )
Bloqueio
De modo geral, a partir da definio de G, temos: e
Autmato Bloqueante
autmato G pode alcanar o estado x, mas (x) = e x xm
Isto denominado de impasse (deadlock) pois no h mais eventos que possam ser executados O sistema bloqueia quando este estado alcanado
Quando temos um conjunto de estados no marcados formando um ciclo (componente fortemente conectado) temos um bloqueio vivo (livelock)
Estados no marcados so alcanveis uns dos outros pela ocorrncia de eventos mas no h como sair destes estados
Um Exemplo
Os processos P1 e P2 esto executando as computaes definidas abaixo e acessam a mesma varivel x e no instante inicial x=0
P1:x=x+1 P2:x=x+2
Os Processos podem ser interrompidos em qualquer instante de execuo Considere a seguinte sequncia de operaes indivisveis:
Carregue um registrador com o valor da varivel x Adicione ao valor do registrador 1 (P1) ou 2 (P2) Armazena o resultado em x
Resultado da execuo dos processos P1 e P1: x=3? Nem sempre, podemos obter: x=1, x=2, ou x=3
depende das sequncias de instrues indivisveis executada
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-16
Escalonamentos completos so todos aqueles onde uma leitura seguida de uma escrita correspondente Suponha agora que a cadeia de eventos :
sx=r2(a) w2(a ) r1(a) r1(b) r2(b) w2(b)
Suponha que a transao 1 est para obter o saldo de duas contas correntes acessando os registros a e b, enquanto a transao 2 est pronta para transferir R$ 100,00 das contas referentes aos registros a e b. O resultado retornado pela transao sx seria correto? Neste caso o resultado retornado seria incorreto pois r1(a) e r1(b) foram executadas antes de w2(b). Observe a sequncia:
sx=L2(registro a) Escreve2(registro a R$ 100,00) L1(registro a R$ 100,00) L1(registro b) L2(registro b) Escreve2(registro b+ R$ 100,00)
Este escalonamento admissvel. O resultado retornado pela transao 1 agora correto. Entretanto observe o escalonamento da transao:
sz=r1(a) r2(a) w2(a) r2(b) w2(b)
O que ocorre? Apesar de que nada errado acontece, esta transao no pode ser corretamente completada pois se r1(b) executada, o resultado seria de R$ 100,00 a mais. Logo temos um impasse! O papel do controle de sistemas a eventos discretos garantir a correta execuo de sequncias de eventos. Pudemos observar dois casos:
Execuo de operaes em sequncias incorretas Bloqueio
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-22
L(G) e Lm (G)
Noo de acessibilidade e co-acessibilidade Parte acessvel: apagar estados que no so alcanaveis a partir de x0
Ac(G) = { X ac , E, f ac , x0 , X ac ,m ) X ac = {x X : s E ( f ( x0 , s) = x)} X ac , m = X m X ac
*
f ac = f ac | X ac E X ac
Ac no afeta L(G), e Lm (G) Portanto, sempre assume-se que G = Ac(G)
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-23
Operaes em Autmatos
Parte co-acessvel Um estado co-acessvel se a partir dele pode-se alcanar um estado marcado Tomar a parte co-acessvel significa contruir: CoAc(G) = { X coac , E , f coac , x0 , coac , X m )
Operaes em Autmatos
Um autmato que co-acessvel e acessvel dito ser trim
Bloqueante L(G ) Lm (G )
No bloqueante co-acessvel
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-25
a 0
CoAc(G)
Trim(G)
Composio de Autmatos
Duas formas
Produto: Paralelo: completamente sncrono sncrono
G1
E1E2
|| G1 G1 E1E2 G1 G1 || G2
G1 G2
Autmato produto
Composio Paralela
G1 = ( X 1 , E 1 , f 1 , 1 , x01 , X m 1) e G2 = ( X 2 , E 2 , f 2 , 2 , x02 , X m 2) G1 || G2 := Ac ( X 1 X 2 , E1 E 2 , f , 1||2 , ( x01 , x02), X m 1 X m 2) onde ( f 1 ( x1 , e), f 2 ( x 2 , e ) se e 1 ( x1) 2 ( x 2) se e 1 ( x1) \ E 2 ( f 1 ( x1 , e), x 2) f (( x 1 , x 2), e) := se e 2 ( x2) \ E1 ( x1 , f 2 ( x 2 , e) indefinido caso contrrio logo 1||2 ( x1 , x2) = [ 1 ( x 1) 2 ( x 2 )] [ 1 ( x 1) \ E 2 ] [2 ( x2 ) \ E1 ] Propriedad es : G1 || G2 = G2 || G1 G1 || (G2 || G2 ) = (G1 || G2 ) || G2
Um sistema com k componentes possui m estados. Se os conjuntos de eventos dos autmatos so distintos, ento o modelo completo do sistema ter mk estados (crescimento exponencial) Como tratar a complexidade?
Anlise incremental ou composicional Representaes simblicas (Symbolic Model Checking:
1020 States and Beyond, Burch, et al., Information and Computation, vol. 98, pp. 142-170, 1998.
Dois autmatos so sincronizados nos eventos comuns, E1 E2 Um autmato pode executar eventos privados sem a participao do outro autmato (E1 \ E2) (E2 \ E1) Se E1 = E2 ento a composio paralela ser reduz ao produto Se E1 E2 = ento G1 G2 o comportamento concorrente de G1 e G2 G1 G2 = G2G1 (G1 G2 ) G3= G1 (G2 G3)
Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-32
Filsofos: (i) pensam, (ii) comem Palitos: (i) disponveis, (ii) usados