• Aucun résultat trouvé

Recommandations en imagerie médicale

3. Analyse de la littérature

3.2 Recommandations en imagerie médicale

Sugerida por Pnueli [77], lógica temporal é uma forma de lógica designada para afirmações que envolvem a noção de ordem no tempo. Embora seja mais clara e simples que outras formas de lógica, alguma experiência é requerida para escrever afirmações em lógica temporal, e mais experiência ainda é necessária para interpretar afirmações escritas por terceiros. Como toda linguagem, possui uma sintaxe e uma semântica.

Sintaxe da CTL

Introduzida por Emerson and Halpern [32], CTL∗(Computation Tree Logic) é uma forma de lóg- ica temporal amplamente utilizada para verificação de propriedades relativas a execuções (seqüencia de estados) de um sistema. A lógica temporal CTL é composta basicamente de proposições atômi- cas, operadores booleanos, combinadores temporais e quantificadores de caminho.

Proposições atômicas são utilizadas para realizar afirmações sobre os estados. Estas proposições são afirmações elementais que possuem um valor verdadeiro bem definido em cada estado.

Os operadores booleanos consistem nas constantes verdadeiro e falso, bem como nos tradicionais operadores ¬ (negação), ∧ (conjunção, e), ∨ (disjunção, ou), ⇒ (implicação lógica, se...então) e ⇔ (dupla implicação, se e somente se). Ao envolver várias sub-fórmulas, estes operadores permitem a construção de complexas afirmações.

Os combinadores temporais são utilizados para expressar propriedades durante uma execução, ao invés de propriedades individuais dos estados. Os principais combinadores temporais são explicados em função das propriedades atômicas ϕ e ψ:

• X (next): Xϕ expressa que o próximo estado satisfaz ϕ.

• F (future): Fϕ expressa que um estado futuro satisfaz ϕ, sem especificar qual estado. Infor- malmente, F pode ser lido como algum dia ou pelo menos uma vez.

• G (global): Gϕ expressa que todos os estados futuros satisfazem ϕ. Informalmente, G pode ser lido como será sempre.

• U (until): ϕUψ expressa que ϕ será verificado até ψ ser verificado.

• W (weak until): ϕW ψ expressa a mesma idéia de U, porém sem obrigar a ocorrência de ψ. Informalmente, ϕW ψ expressa ϕ ocorre enquanto não ocorrer ψ .

Algumas equivalências são facilmente observadas, tais como: Gϕ ≡ ¬F¬ϕ, Fϕ ≡ trueUϕ e ϕW ψ ≡ (ϕUψ) ∨ Gϕ. Além disso, a concatenação de F e G normalmente é usada para expressar pro- priedades de repetição. GFϕ (ouFϕ)∞ 14 indica que ϕ ocorre freqüentemente durante uma execução. Informalmente,F pode ser interpretado como sempre, em algum dia, existirá um estado que satisfaçaϕ. Já FGϕ (ouGϕ) indica que a partir de um determinado momento, ϕ será satisfeita por todos os∞ estados, ou seja, ϕ ocorrerá em cada instante de tempo, possivelmente excluindo um número finito de instantes anteriores.

Completando a sintaxe, a lógica CTLtambém possui operadores para quantificar sobre conjuntos de execuções. Os dois quantificadores de caminho são explicados em função da propriedade atômica ϕ:

• A (always): Aϕ expressa que todas as execuções a partir do estado atual satisfazem ϕ. • E (exists): Eϕ expressa que, a partir do estado atual, existe uma execução que satisfaz ϕ.

Estes quantificadores são duais, o que pode ser comprovado pela equivalência Aϕ ≡ ¬E¬ϕ. É importante ressaltar que A e E se referem a caminhos, enquanto F e G se referem a posições em um dado caminho. A figura 2.12, retirada de [18], ilustra claramente este conceito.

As propriedades normalmente verificadas em um SED podem ser traduzidas em expressões CTL, dada uma proposição atômica ϕ.

• Alcançabilidade: EFϕ. • Segurança: AG¬ϕ. • Vivacidade: Fϕ. • Justiça: Fϕ.

• Ausência de deadlock: AGEXtrue.

P P P P P P P P P P P P P P EFP: AGP: ( ¬EF ¬P) EGP: ( E ¬F ¬P) AFP: ( ¬E ¬FP )

Figura 2.12: Combinações entre os quantificadores de caminho e combinadores temporais da lógica CTL

Semântica da CTL

Os modelos utilizados na lógica temporal são denominados estruturas de Kripke. Uma estrutura de Kripke é uma categoria de autômato na qual as proposições que etiquetam os estados possuem maior importância sobre as etiquetas das transições15. Uma estrutura de Kripke sobre um conjunto

de propriedades atômicas P é uma quádrupla

K =< S, s0, R,

L

> (2.6)

onde S é um conjunto finito de estados, s0∈ S é o estado inicial, R ⊆ (Q × Q) é um conjunto finito

de relações de transição e

L

: S → P é uma função que atribui o conjunto

L

(s) de propriedades atômicas a cada um dos estados s ∈ S. Na estrutura de Kripke, tanto a estrutura do autômato, quanto as proposições que etiquetam seus estados são elaboradas simultaneamente, como parte do mesmo processo de modelagem.

A idéia de que uma fórmula é satisfeita em uma dada situação é denotada pela expressão K, σ, i |= φ. Esta expressão é interpretada como φ é verdadeiro no instante i da execução σ16. Para indicar que φ não é satisfeita no instante i por σ, escreve-se K, σ, i 2 φ. Normalmente, o contexto da estrutura de Kripke é omitido.

Uma estrutura K satisfaz φ sse, ∀σ ∈ K, σ, 0 |= φ. Esta afirmação e sua negação são denotadas por K |= φ e K 2 φ, respectivamente. No entanto, K 2 φ não implica necessariamente em K |= ¬φ,

15Esta definição está de acordo com o fato da lógica CTLser baseada em estados. Também existe variantes da CTL

baseadas em ações e que são utilizadas em autômatos nos quais as etiquetas das transições são mais relevantes. De Nicola and Vaandrager [29] provaram que os dois pontos de vista são bastante similares. A ferramenta MEC4, utilizada na metodologia a ser apresentada, trabalha simultaneamente com ambas [4]

16Na CTL, o tempo é discreto e, portanto, nada existe entre i e i + 1. Além disso, σ(i) indica o i-ésimo estado da

embora σ, i 2 φ seja equivalente a σ, i 2 ¬φ [18]. Em palavras, a primeira expressão é verdadeira quando uma (ou mais execuções) não satisfaz φ, enquanto a última expressa que todas execuções de K não satisfazem φ.

PLTL e CTL

Na prática, somente alguns fragmentos da lógica CTL são implementados pelas ferramentas disponíveis. Dois dos fragmentos bastante utilizados são PLTL (Propositional Linear Temporal Logic) [78] e CTL(Computation Tree Logic) [22] [32].

PLTL é o fragmento obtido da CTL ao retirar os quantificadores A e E. Desta forma, PLTL somente trata com o conjunto de execuções e não com o modo no qual estes estão organizados em uma árvore. Por este motivo, suas expressões são denominadas fórmulas de caminho.

Por outro lado, CTL é o fragmento obtido da CTL pela imposição de que o uso de um com- binador temporal esteja no escopo imediato de um quantificador de caminho, o que impossibilita o uso de expressões como FG e GF. Na CTL é impossível concatenar diversos combinadores tempo- rais e continuar se referindo a uma mesma execução. Como conseqüência, suas as expressões são denominadas fórmulas de estado.

Ambas as lógicas possuem vantagens e desvantagens ao serem utilizadas. Na prática, as restrições impostas a sintaxe CTL deixam-a mais difícil para expressar propriedades. Porém, model checking em CTL é muito mais eficiente que model checking em PLTL [18]. Model checking ‘K, s0|= φ’

para uma fórmula PLTL φ pode ser realizado em tempo O(|K| × 2|φ|) [63] [92] [93], enquanto model checking ‘K, s0|= φ’ para uma fórmula CTL φ pode ser realizado em tempo O(|K| × |φ|) [79] [23]