• Nenhum resultado encontrado

6.3 Algoritmo do Jogo de Refinamento

7.1.2 An´ alise do Problema do Reparo de Refinamento

Podemos definir o problema do reparo de refinamento em rela¸c˜ao `as mudan¸cas primitivas como: dados dois modelos KMTS M e N tal que M ª N, identificar os conjuntos de mudan¸cas primitivas X tal que M ¨ XpNq.

Como o problema do reparo visa modificar um modelo N para obter uma rela¸c˜ao de refinamento entre N e uma especifica¸c˜ao M, vamos analisar o uso de mudan¸cas primitivas para satisfazer as condi¸c˜oes necess´arias da rela¸c˜ao de refinamento entre os dois modelos (ver itens da Defini¸c˜ao 5.1.3).

As Proposi¸c˜oes 7.1.4 e 7.1.5 mostram condi¸c˜oes que sempre podem ser satisfeitas atrav´es de mudan¸cas primitivas.

Dados dois modelos M e N, a Proposi¸c˜ao 7.1.4 mostra que quaisquer que sejam dois estados n P SN e m P SM, ´e poss´ıvel modificar n com um conjunto de mudan¸cas X tal

que LMpmq ¤ LNpXpnqq.

Proposi¸c˜ao 7.1.4. Dados M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e N  pAPN,ΣN,

SN, sN 0, RN, RN, LNq, m P SM, nP SN tal que LMpmq ¦ LNpnq. Existe um conjunto de

mudan¸cas primitivas X aplic´avel sobre n tal que LMpmq ¤ LNpXpnqq.

Demonstra¸c˜ao. Pela Defini¸c˜ao 6.2.1, LMpmq ¤ LNpnq ´e verdade se e somente se para

todo p P LMpmq e p P LNpnq as valora¸c˜oes de p em m e em n tˆem o mesmo valor. ´E

poss´ıvel aplicar a mudan¸ca primitiva do tipo AL para adicionar todos os literais p tal que pP LMpmq e p R LNpnq. Depois de aplicar estas mudan¸cas, o estado n ter´a todos os

7.1 O PROBLEMA DO REPARO DE REFINAMENTO 97

literais que o estado m possui (e talvez mais literais). Ap´os este passo, ´e poss´ıvel aplicar mudan¸cas primitivas do tipo CL para fazer a valora¸c˜ao de todos os literais de n iguais `a valora¸c˜ao dos literais de m.

Definimos a fun¸c˜ao XRLpm, nq como a fun¸c˜ao que retorna o conjunto m´ınimo de

mudan¸cas primitivas X para que LMpmq ¤ LNpXpnqq (esta fun¸c˜ao existe como resultado

da Proposi¸c˜ao 7.1.4).

A Proposi¸c˜ao 7.1.5 mostra que sempre ´e poss´ıvel adicionar uma transi¸c˜ao entre dois estados quaisquer de um modelo, preservando o determinismo do modelo.

Proposi¸c˜ao 7.1.5. Dados M  pAP, Σ, S, s0, R , R, Lq, m e m1 P S tal que pm, a, m1q R

R (ou R R ). Existe um conjunto de mudan¸cas primitivas X tal que XpMq  M1  pAP, Σ1, S, s

0, R1 , R1, Lq e pm, a, m1q P R1 (ou pm, a, m1q P R1 ) e M1 ´e determin´ıstico.

Demonstra¸c˜ao. A aplica¸c˜ao de mudan¸cas primitivas do tipo ATe AT adicionampm, a, m1q em R(ou R ). Se existir em M uma transi¸c˜aopm, a, m2q P R1 e m1  m2, ´e necess´ario remover esta transi¸c˜ao ou alterar seu r´otulo para que M’ seja determin´ıstico, e isto pode ser realizado com a aplica¸c˜ao de mudan¸cas primitivas do tipo RT ou CT , respectiva- mente.

As Proposi¸c˜oes 7.1.4 e 7.1.5 mostram que sempre ´e poss´ıvel alterar um estado do modelo N para que este seja um refinamento de um outro estado de um modelo M. O objetivo do reparo de refinamento ´e alcan¸cado quando ´e poss´ıvel estender este resultado para a rela¸c˜ao de refinamento entre modelos, entretanto isto nem sempre ´e poss´ıvel. Para que isto seja poss´ıvel, o modelo N deve possuir um n´umero m´ınimo de estados para que seja poss´ıvel mapear todos os estados de M nos estados de N. Este n´umero ´e definido atrav´es da quantidade de estados distintos de M.

Defini¸c˜ao 7.1.3 (Equivalˆencia entre Estados). Seja M  pAP, Σ, S, s0, R ,R, Lq um

KMTS. Os estados m e n de S s˜ao equivalentes se pm, nq P E „ S  S tal que: 1. Lpmq  Lpnq;

2. se mÝÑ ma 1, existe nÑ nÝa 1 com pm1, n1q P E; 3. se n99K na 1, existe m99K ma 1 com pm1, n1q P E; 4. se nÑ nÝa 1, existe m ÝÑ ma 1 com pn1, m1q P E; e 5. se m99K ma 1, existe n99K na 1 com pn1, m1q P E.

Proposi¸c˜ao 7.1.6. Seja M  pAP, Σ, S, s0, R , R, Lq um KMTS e E uma rela¸c˜ao de

equivalˆencia entre os estados (Defini¸c˜ao 7.1.3). Ent˜ao E ´e uma rela¸c˜ao de equivalˆencia. Demonstra¸c˜ao. A prova segue direto da Defini¸c˜ao 7.1.3.

98 REPARO DE REFINAMENTO

Dizemos que dois estados s˜ao distintos se eles n˜ao est˜ao relacionados pela rela¸c˜ao de equivalˆencia entre estados. O conceito de estados distintos ´e usado para analisar quantos estados, no m´ınimo, um modelo N deve possuir para que ele seja um refinamento de uma especifica¸c˜ao M.

Assim, dados M e N dois KMTS tal que M ª N, existe um conjunto de mudan¸cas primitivas que pode transformar N em um refinamento de M se o n´umero de classes de equivalˆencia sobre os estados de M ´e menor ou igual ao n´umero de estados de N .

A Proposi¸c˜ao 7.1.7 mostra que se existem estados equivalentes em um modelo M , eles s˜ao mapeados em um mesmo estado do modelo N por uma rela¸c˜ao de refinamento tal que M ¨ N.

Proposi¸c˜ao 7.1.7. Dados M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e N  pAPN, ΣN,

SN, sN 0, RN, RN, LNq dois KMTS, R uma rela¸c˜ao de refinamento entre M e N e E uma

rela¸c˜ao de equivalˆencia entre os estados de M . Se pm, nq P R e pm, m1q P E ent˜ao pm1, nq P R.

Demonstra¸c˜ao. A prova ´e uma consequˆencia direta da Defini¸c˜ao 5.1.3 e Defini¸c˜ao 7.1.3. O Teorema 7.1.1 mostra que em determinadas condi¸c˜oes, ´e poss´ıvel reparar um modelo N para alcan¸car a rela¸c˜ao de refinamento entre o modelo N e o modelo M.

Teorema 7.1.1. Dados M  pAPM, ΣM, SM, sM 0, RM, RM, LMq, N  pAPN, ΣN, SN, sN 0,

RN, RN, LNq e EM uma rela¸c˜ao de equivalˆencia entre os estados de M . Seja SM{EM o con-

junto de classes de equivalˆencia definido por EM sobre SM e| SM{EM | o n´umero de classes

de equivalˆencia do conjunto quociente SM{EM. Suponha que M ª N e | SM{EM |¤| SN |

ent˜ao existe um conjunto de mudan¸cas primitivas X tal que M ¨ XpNq.

Demonstra¸c˜ao. Vamos criar uma rela¸c˜ao RM que mapeia os estados de M nos estados de N (1) e modificar N por um conjunto X de mudan¸cas primitivas, gerando um modelo N1 (2) tal que RM ´e uma rela¸c˜ao de refinamento entre M e N1 (3).

1. Seja RM  tpsM, sNq | sM P SM e sN P SN tal que pm0, n0q P RM e para

todo m1 P SM, m2 P SM com m1  m2, existe n P SN tal que pm1, nq P RM e

pm2, nq P RM sse m1 e m2 pertencem a uma mesma classe de equivalˆencia definida

sobre SM com a rela¸c˜ao EMu. Como | SM{RM |¤| SN | ent˜ao cada elemento de

SM{EM ´e mapeado em um estado diferente de N por RM .

2. Seja pm, nq P RM, pela Proposi¸c˜ao 7.1.4 ´e poss´ıvel aplicar um conjunto de mu- dan¸cas XRL em n tal que Lpmq ¤ LpXLRpm, nqpnqq. Pela Proposi¸c˜ao 7.1.5 ´e

poss´ıvel adicionar todas as transi¸c˜oes de RM em RN de forma a copiar (clonar) as transi¸c˜oes de RM tal que se pm, a, m1q P RM de forma que a transi¸c˜ao clo- nada em n ´e uma transi¸c˜ao pn, a, n1q P RN e pm1, n1q P RM. Quando existir mais de um estado de M mapeado por RM em um mesmo estado n P Sn, qual-

quer estado de M tomado para modificar n resultar´a no mesmo resultado porque apenas estados equivalentes de M s˜ao mapeados em um mesmo estado de N. Fi- nalmente, ´e poss´ıvel aplicar mudan¸cas primitivas para remover as transi¸c˜oes exis- tentes em N que n˜ao foram criadas pela opera¸c˜ao de clonagem. Seja X o conjunto

7.1 O PROBLEMA DO REPARO DE REFINAMENTO 99

de todas as mudan¸cas primitivas usadas para modificar N, descritas acima, ent˜ao XpNq  N1  pAPN1 , Σ1N, SN, sN 0, R1N, R1N, L1Nq.

3. RM ´e uma rela¸c˜ao de refinamento (Defini¸c˜ao 5.1.3: (a) psM0, sN0q P RM;

(b) Seja pm, nq P RM (garantido pela aplica¸c˜ao do conjunto XLRpm, nq em n no

passo (2)); para todopm, a, m1q P RM, existepn, a, n1q P R1N compm1, n1q P RM (garantido pela clonagem de transi¸c˜oes do passo (2)); e para todo pn, a, n1q P RN1, existe pm, a, m1q P RM com pm1, n1q P RM (garantido pela remo¸c˜ao das transi¸c˜oes que existem em N e n˜ao existem em M no passo (2)).

´

E poss´ıvel utilizar a restri¸c˜ao sobre a quantidade de classes de equivalˆencia do modelo M e o n´umero de estados do modelo N para determinar quantos estados, no m´ınimo, devem ser adicionados ao modelo N para que seja poss´ıvel modificar N de forma a um refinamento de M. Esta quantidade m´ınima ´e dada por||SM{RM|  |SN||. Considerando

que deseja-se adicionar o m´ınimo de estados para que N seja um refinamento de M, o n´umero de estados de N deve ser o maior entre |SM{RM| e |SN|. Dados M  pAPM, ΣM,

SM, sM 0, RM, RM, LMq, N  pAPN, ΣN, SN, sN 0, RN, RN, LNq e EM uma rela¸c˜ao de

equivalˆencia entre os estados de M , utilizando o resultado da Proposi¸c˜ao 7.1.3 temos que o n´umero m´aximo de mudan¸cas primitivas consistentes entre si que podem ser aplicadas no modelo N para que ele seja um refinamento do modelo M ´e dado pela express˜ao (sendo maxpSN, SM{EMq a fun¸c˜ao que retorna o maior conjunto entre SN e SM{EM):

2 p|maxpSN, SM{EM|qq  p|APN| |ΣN|q |p|SM{RM|  |SN|q|

´

E preciso encontrar um m´etodo que seja capaz de determinar quais s˜ao as altera¸c˜oes que devem ser aplicadas ao modelo N, respondendo a segunda pergunta do problema de reparo de refinamento. Alguns trabalhos, como (BENES et al., 2011), provam que o problema de verificar se existe uma rela¸c˜ao de refinamento entre dois modelos pertence `a classe P convertendo este problema para o problema de verificar se uma f´ormula booleana ´e uma QBF. Assim, de forma geral, a ideia consiste em utilizar os dois modelos para gerar uma f´ormula QBF e a rela¸c˜ao de refinamento existe entre eles se, e somente se, existe uma valora¸c˜ao que torna a f´ormula verdadeira. Portanto, reparar o refinamento corresponde a alterar a f´ormula para que ela seja satisfaz´ıvel e converter esta altera¸c˜ao para o modelo em quest˜ao. At´e onde sabemos, n˜ao existe nenhum trabalho que fa¸ca este tipo de altera¸c˜oes em f´ormulas QBF, mas o estudo de f´ormulas QBF n˜ao faz parte do escopo do presente trabalho e como ´e mostrado posteriormente utilizamos outra abordagem para resolver este problema.

A Proposi¸c˜ao 7.1.9 mostra que encontrar o conjunto de mudan¸cas primitivas para resolver o problema do reparo de refinamento ´e um problema que pertence `a classe NP. A prova deste fato utiliza o Algoritmo 9 para gerar todas as poss´ıveis mudan¸cas primitivas que podem ser aplicadas sobre um KMTS qualquer.

100 REPARO DE REFINAMENTO

Algoritmo 9: geraMudancasPrimitivas

Data: KMTS M  pAPM, ΣM, SM, sM 0, RM, RM, LMq

Result: X  tx | x ´e uma mudan¸ca primitiva aplicada sobre Mu

1 begin 2 X ÐÝ H 3 for mP SM do 4 for pP APM do

5 if LMpm, pq then X ÐÝ X Y tCLpm, l, falsoq, RLpm, lqu 6

7 else if  LMpm, pq then

8 X ÐÝ X Y tCLpm, l, verdadeq, RLpm, lqu

9 else

10 X ÐÝ X Y tALpm, pq, CLpm, l, verdadeq, CLpm, l, falsoqu 11 for m1 P SM do

12 if D t  pm, a, m1q P RM para algum aP ΣM then 13 X ÐÝ X Y tRTpm, a, m1qu 14 if tP RM then 15 X ÐÝ X Y tRT pm, a, m1qu 16 else 17 X ÐÝ X Y tAT pm, a, m1qu 18 for q P ΣM do 19 X ÐÝ X Y tCT pm, a{q, m1qu 20 else 21 for q P ΣM do 22 X ÐÝ X Y tATpm, q, m1qu 23 X ÐÝ X Y tAT pm, q, m1qu

7.1 O PROBLEMA DO REPARO DE REFINAMENTO 101

O Algoritmo 9 itera sobre os estados do modelo de entrada (linha 3), analisando para cada estado quais `as mudan¸cas primitivas que alteram a valora¸c˜ao das proposi¸c˜oes (linhas 4-10), de forma que se, por exemplo, se uma proposi¸c˜ao tenha a valora¸c˜ao verdade ent˜ao o algoritmo adiciona as mudan¸cas primitivas para alterar a valora¸c˜ao da proposi¸c˜ao para falso e para indefinido. Ap´os esta etapa, o algoritmo adiciona cada par de estados (for da linha 3 com o for da linha 11) as mudan¸cas primitivas para remover as transi¸c˜oes existen- tes (linhas 12-15), alterar a modalidade das transi¸c˜oes existentes (linhas 14-17), alterar as a¸c˜oes das transi¸c˜oes existentes (linhas 18-19) e adicionar as transi¸c˜oes inexistentes (linhas 20-23).

A Proposi¸c˜ao 7.1.8 mostra a complexidade do Algoritmo 9. Proposi¸c˜ao 7.1.8. O Algoritmo 9 possui complexidade polinomial.

Demonstra¸c˜ao. Seja o KMTS M  pAPM, ΣM, SM, sM 0, RM, RM, LMq. O algoritmo

itera sobre todas as proposi¸c˜oes de cada estado (for’s das linhas 3 e 4), executando estas linhas p|SM|  |APM|q vezes. Enquanto o algoritmo itera sobre os estados (for

da linha 3) ele itera novamente sobre todos os estados (for da linha 11) e para cada par de estados, o algoritmo itera sobre o conjunto de a¸c˜oes (for da linha 18 ou for da linha 21), executando estas linhas |SM|  |SM|  |ΣM|) vezes. Assim, algoritmo tem

complexidade Op|SM|  |APM| |SM|2 |ΣM|q devido ao aninhamento de suas itera¸c˜oes,

logo, o Algoritmo 9 possui complexidade polinomial em fun¸c˜ao do tamanho do modelo. A prova da termina¸c˜ao e da corre¸c˜ao do Algoritmo 9 ´e trivial e por isto n˜ao ser´a apresentada aqui.

Proposi¸c˜ao 7.1.9. Dados M e N dois modelos KMTS tal que M ª N, encontrar o conjunto de mudan¸cas primitivas X tal que M ¨ XpNq ´e um problema da classe NP. Demonstra¸c˜ao. Mostraremos que existe uma m´aquina de Turing n˜ao-determinista que resolve este problema. Para tal, vamos (i) gerar todas as poss´ıveis mudan¸cas primitivas que podem ser aplicadas sobre N de forma polinomial; (ii) criar uma m´aquina de Turing de tempo polinomial que, de forma n˜ao-determinista, escolhe quais mudan¸cas fazem parte do conjunto X e (iii) analisar se M ¨ XpNq de forma polinomial.

O item (i) ´e consequˆencia direta do Algoritmo 9 e o item (iii) vem do fato do problema de verificar o refinamento modal forte entre dois modelos ser polinomial. Seja o vetor VM P N de mudan¸cas primitivas aplic´aveis sobre N obtido pelo passo (i), resta criar uma

m´aquina de Turing n˜ao-determinista que gere o conjunto de mudan¸cas X a partir de VM P N:

M TD:   M, N, VM P N ¡

Escolha de forma n˜ao-determinista um conjunto X „ tx|x P VM P Nu

Se M ¨ XpNq, retorne X

A m´aquina M TD acima recebe como entrada os modelos M e N e o conjunto VM P N

102 REPARO DE REFINAMENTO

X formado por elementos de VM P N tal que se X for aplicado sobre o modelo N, o modelo

resultante X(N) ser´a um refinamento do modelo M, isto ´e, M ¨ XpNq.