Aula 2 Modelagem de Sistemas Introdução Modelo de Base Lógica de 1ª Ordem Concorrentes 1
Aula 2 Modelagem de Sistemas Introdução Modelo de Base Lógica de 1ª Ordem Concorrentes 2
Constituição dos Sistemas Estado Fotografia do sistema, descrição instantânea dos valores de suas variáveis. Transição Como os estados variam, relação entre um determinado estado, uma ação e um estado posterior. Comportamento temporal. Computação ou realização de um sistema É uma seqüência infinita de estados, onde cada um é alcançado por uma transição a partir de um estado anterior. 3
M = (S, S 0, R, L) Estrutura Kripke Conjunto finito de estados - S; Conjunto de transições R S S; Função que rotula cada estado com um conjunto de proprieda-des que são verdadeiras nele L: S 2 AP ; Conjunto de estados iniciais, pode ser omitido em determinadas situações S 0 S. 4
Estrutura Kripke AP: Conjunto de proposições atômicas. Relação de transição R deve ser total: para cada estado s existe um estado s tal que R(s,s ). Caminho: uma seqüência infinita de estados π=s 0 s 1 s 2... na qual R(s i,s i+1 ) está definida para todo i 0. Os caminhos numa estrutura Kripke modelam as realizações do sistema. 5
Modelo de Computação iniciar forno 1 ~ Start ~ Close ~ Heat ~ Error Exemplo: forno de microondas abrir porta abrir porta fechar porta cozinhar 2 Start ~ Close ~ Heat Error 3 4 ~ Start Close ~ Heat ~ Error finalizado ~ Start Close Heat ~ Error abrir porta fechar porta iniciar forno inciar cozimento 5 6 7 Start Close ~ Heat Error reset Start Close ~ Heat ~ Error aquecer Start Close Heat ~ Error 6
Aula 2 Modelagem de Sistemas Introdução Modelo de Base Lógica de 1ª Ordem Concorrentes 7
Modelagem A modelagem em Estruturas Kripke a partir de programas são feitas da seguinte forma: Programa Fórmulas de 1 a ordem Estrutura Kripke Mas há sistemas que não são descritos por programas (diagramas de circuitos ) que podem ser modelados diretamente na estrutura. Lógica de 1 a ordem: formalismo padrão para representação de sistemas concorrentes de qualquer tipo. 8
Lógica de 1ª Ordem Conectores lógicos: e (Λ), ou ( V), not ( ), implicação ( ) entre outros. V = {v 1, v 2,..., v n } = conjunto de variáveis do sistema, onde v i está definido sobre D (domínio ou universo da interpretação). Uma avaliação de V é uma função que associa a cada variável v i de V um valor d i em D. 9
Lógica de 1ª Ordem Um estado pode ser descrito por uma avaliação s : V D. R(V, V ) identifica uma relação de transição onde V é o estado seguinte de V. A proposição v = d é dita verdadeira no estado s se s(v) = d. Para s sobre um domínio booleano, v s(v) = Verdadeiro e v Falso. 10
Lógica de 1ª Ordem Estrutura Kripke Seja M = (S, S 0, R, L) uma estrutura Kripke a ser derivada de uma representação de 1 a ordem: S é o conjunto de todas as avaliações possíveis de V; S 0 é o conjunto de todas as avaliações s 0 para V que satisfazem a fórmula S 0 ; R(s, s ) está definida se R é Verdadeira quando cada v de V assume o valor s(v) e cada v de V assume o valor s (v); L: S 2 AP está definida de tal forma que L(s) é o subconjunto de todas as proposições verdadeiras em s. 11
Exemplo V = {x, y}, D = {0, 1}, o sistema consiste numa única transição: x := (x+y) mod 2, o qual se inicia no estado x=1 e y=1. A descrição do sistema em lógica de 1 a ordem consiste em duas fórmulas: - S 0 (x, y) x=1 Λ y=1 -R(x, x, y, y ) x =(x+y) mod 2 Λ y =y 12
Exemplo A estrutura Kripke associada ao sistema é: - S = D x D. - S 0 = {(1,1)}. - R = {((1,1), (0,1)), ((0,1), (1,1)), ((1,0), (1,0)), ((0,0), (0,0))}. - L(1, 1) ={x=1, y=1}, L(0, 1) ={x=0, y=1}, L(1, 0) ={x=1, y=0} e L(0, 0) ={x=0, y=0}. - O único caminho possível é (1, 1) (0, 1) (1, 1) (0, 1)... 13
Granularidade das Transições As transições devem ser atômicas no sentido de não permitir que uma execução parcial corresponda a um estado observável. a estrutura Kripke deixará de incluir estado(s) observável(is). A granularidade também não pode ser fina a ponto de criar estados não alcançáveis. 14
Granularidade das Transições Sistema 1 Variáveis: x e y. Transições: α: x := x+y; β: y := y+x; Sistema 2 Variáveis: x, y, R 1 e R 2. Transições: α 0 : load R 1, x; α 1 : add R 1, y; α 2 : store R 1, x e β 0 : load R 1, y ; β 1 : add R 1,x; β 2 : store R 1, y. S 1 : Executando α e depois β => x = 3 Λ y = 5; S 2 : Executando β e depoisα=> x = 4 Λ y =3; S 2 : Executando α 0 β 0 α 1 β 1 α 2 β 2 => x = 3 Λ y =3; 15
FIM