3_Linguagens e Autômatos

Embed Size (px)

Citation preview

Sistemas a Eventos Discetos Linguagens Formais e Autmatos

Angelo Perkusich Departamento de Engenharia Eltrica Universidade Federal de Campina Grande Campina Grande, Paraba E-mail: [email protected]

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 ocupaSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-2

Definio de LinguagemUma 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 sSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-3

OperaesConcatenao: 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}

E * = { , a, b, c, aa, ab, ac, ba, bb, ca, K}Uma linguagem L um subconjunto de E*

Por exemplo: E *E E*

(a linguagem vazia)

{ } E * (a linguagem que contm somente a palavra vazia)

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-4

OperaesPara uma cadeia qualquer s = t u vt o prefixo de s u uma sub-palavra de s v o sufixo de s

Observe que ambos e s so prefixos, subpalavras e sufixos de s

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-5

Operaes Sobre LinguagensConcatenao: seja L , L E *, ento a b

La Lb :={s E (s = sasb ) (sa La) (sb Lb )}*

Prefixo fechamento: seja L E *, ento

L := {s E * : t E * ( st L)}Note que:

LLL=L, L E * ento

Uma linguagem prefixo fechada por definio se Fechamento de Kleene: seja

L := { } L LL LLL KSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-6

AutmatoDispositivo 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, zSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-7

Automato DeterminsticoG = ( 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 marcadosQual estado marcar: problema de modelagemSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-8

FuncionamentoInicie 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

a

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-9

FuncionamentoExtendendo 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

a

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 ) = yf ( x, ( aagb ) = z f z , b n = z , n 0 , onde b n denota n ocorrncia s consecutiv as do evento nSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-10

(

)

Linguagem Gerada por um AutmatoLinguagem gerada pelo autmato: G = ( X , E , f , , x0 , X m)

L(G ) = {s E* : f (x0 , s )!} onde ! significa definidaLinguagem marcada pelo autmato: G = ( X , E , f , , x0 , X m)

Lm (G ) = {s L(G) : f ( x0 , s ) X m}Dois autmatos G1 e G2 so equivalentes se:

L(G1 ) = L(G2 )

e

Lm (G1 ) = Lm (G2 )

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-11

Exemplos de Autmatos Equivalentes

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-12

BloqueioDe modo geral, a partir da definio de G, temos: e

Prefixo fechada por definio Fechamento do prefixo

Note que se: Mas:

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-13

Autmato Bloqueanteautmato G pode alcanar o estado x, mas (x) = e x xmIsto 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

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-14

Problemas com a execuo concorrenteProcessos concorrentes geralmente precisam compartilhar dados (mantidos em memria ou arquivos compartilhados) Caso no ocorra acesso controlado aos dados compartilhados, alguns processos podem obter vises inconsistentes sobre os dados. Os resultados das aes executadas por Processos concorrentes dependero da ordem como tais operaes so entrelaadasSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-15

Um ExemploOs processos P1 e P2 esto executando as computaes definidas abaixo e acessam a mesma varivel x e no instante inicial x=0P1: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=3depende das sequncias de instrues indivisveis executadaSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-16

Condies de Corrida (Race Conditions)Situaes como estas, onde os processos acessam concorrentemente os mesmos dados concorrentemente e o resultado da execuo depende de uma ordem de execuo particular para acesso aos dados so denominadas de condies de corrida

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-17

Exemplo de Deadlock e Livelockg a 0 g 2 Estado de impasse: 5 Livelock: 3-4 1 a b 3 a b 4 g 5

O autmato G no bloqueante se Lm (G ) = L(G )Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-18

Exemplo: Verificao do Estado de uma Mquina

x0 = {0} X m = {4} 5 Estado de rro : livelock o corre no e stado 5

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-19

Exemplo: Sistema de Banco de DadosSistemas de gerenciamento de bancos de dados (SGBD) so sistemas a eventos discretos que supervisionam a execuo correta e regular de operaes concorrentes de mltiplos processos (transaes) que podem ocorrer devido a aplicaes acessando e interagindo com um recurso comum compartilhado. Tal mecanismo denomina-se controle de concorrncia Considere que h somente dois processos, denominados ler(read, r)) e escrever (write, w). Eventos do tipo r1(a), w2(b), denotam:r1(a):= transao 1 lendo o registro a w2(a ):= transao 2 escrevendo no registro b

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-20

Exemplo: Sistema de Banco de DadosCadeias tpicas de eventos so:r1(a) r1(b) r2(a) w1(a ) r2(b) w2(b)

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)

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-21

Exemplo: Sistema de Banco de DadosOutro exemplosy=r2(a) w2(a ) r1(a) r2(b) w2(b) r1(b)

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 BloqueioSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-22

Operaes com AutmatosTodo autmato modela duas linguagens:

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 acAc 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 AutmatosParte 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 )

X coac = {x X : s E * ( f ( x , s ) X m )} if x0 X coac x0 x0 , coac = caso contrrio indefinido f coac = f | X coac E X coacA operao CoAc encolhe L(G) mas no Lm(G)

G = CoAc(G) G co acessvel L(G ) = Lm (G)

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-24

Operaes em AutmatosUm autmato que co-acessvel e acessvel dito ser trim

Trim(G ) = CoAc[ Ac(G )] = Ac[CoAc(G )]Co-acessibilidade est ligada a questo de bloqueio

Bloqueante L(G ) Lm (G )No bloqueante co-acessvelSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-25

Exemplo de Autmato Trima 0 g 1 b 2 G 1 b g 2 b 6 0 g 2 1 0 b g 2 a 1 b a,b a,g g a 5 3 a b 6 4 g 2. b 1. Complete a funo de transio f de G e torne-a total feito adicionando-se um estado morto (d) Troca o estados marcados por no marcados e vice versa, para todos os estados

a 0

a

d

CoAc(G)

Trim(G)

b,g a,b,g Complemento do Trim(G)

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-26

Composio de AutmatosDuas formasProduto: Paralelo: completamente sncrono sncrono

G1

E1E2

|| G1 G1 E1E2 G1 G1 || G2

G1 G2

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-27

Composio pelo ProdutoG1 = ( 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 , E 1 E 2 , f , 12 , ( 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 ) f (( x 1 , x 2 ), e) := indefinido caso contrrio logo 1 2 ( x1 , x 2) = 1 ( x 1) 2 ( x2 ) Propriedad es : L(G1 G2 ) = L(G1 ) L( G2 ) Lm (G1 G2 ) = Lm (G1 ) Lm (G2 ) define como podemos fazer a intersec o de duas linguagensSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-28

Exemplo: Composio pelo Produlo

b

Autmato produto

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-29

Composio ParalelaG1 = ( 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

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-30

Complexidade da Composio Paralela

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.

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-31

Exemplo: Composio Paralelab

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

Eventos comuns {a,b} Evento privado {g}

Problema dos Filsofos (Mltiplos usurios e um recurso comum)Composio dos quatro atutmatos Autmatos modelandos os filsofos (P1,P2), e dois palitos (F1,F2)

Filsofos: (i) pensam, (ii) comem Palitos: (i) disponveis, (ii) usados

P1 P2 a com posio paralela P F = P1 P2 F 1 F 2 P F C = C oA c ( P F )

Modelo incompleto Contm dois estados de impasse

- controlador adicionado para evita-losSistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-33

Autmatos de Moore e MealyAutmato de Moore: autmato sadas associadas aos estados Mealy: autmato entrada/sida Autmatos de estados finitos Linguagens Regulares

Sistemas a Eventos Discretos: Linguagens Formais e Autmatos-Angelo Perkusich-DEE/CCT/UFCG-34