29.12.2013 Views

la recherche d'un élément par dichotomie dans un ... - Verimag

la recherche d'un élément par dichotomie dans un ... - Verimag

la recherche d'un élément par dichotomie dans un ... - Verimag

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ψ 0<br />

ψ 8<br />

def<br />

= ψ 1 [d ← 0 ; f ← N]<br />

def<br />

= (0 + N) ÷ 2 ∈ [0..N] ∧ . . . . . . . . . . . . . . . . . ⇒ . . . . . . . . . . . ∈ [0..N]<br />

} {{ }<br />

def<br />

= ψ 1 [d ← m + 1]<br />

true(trivial)<br />

∧ . . .<br />

def<br />

= (m + 1 + f) ÷ 2 ∈ [0..N] ∧ . . . . . . . . . . . . . . . . . . . . . . . . . . . . ⇒ . . . . . . . . . . . . . . . . . . . . . . ∈ [0..N] ∧ . . .<br />

Qu'y a t'il de nouveau <strong>dans</strong> cette révision ?<br />

Pour ψ 0 <strong>la</strong> nouvelle contrainte se réduit trivialement à true. Donc elle n'ajoute pas de . . . . . . . . . . . . . . . . . . . . . . . . .<br />

d' . . . . . . . . . . . . . . . . . . . . . . . . . . . de l'algorithme.<br />

Pour valider ψ 8 il faut montrer que m + 1 ≤ f ⇒ m + 1, f, (m + 1 + f) ÷ 2 ∈ [0..N] sachant (d'après<br />

ψ 5 ) que m, f ∈ [0..N].<br />

preuve : m ∈ [0..N] donc m + 1 ∈ [ . . .. . . . . . . . . . . . . . . ] or . . . . . . . . . . . . . . ≤ f et f ∈ [0..N] donc<br />

m + 1 ∈ [ . . ... . . . .] ⊆ [0..N].<br />

Pour valider ψ 7 il faut montrer que d ≤ m − 1 ⇒ d, m − 1 ∈ [0..N] sachant (d'après ψ 5 ) que<br />

m, d ∈ [0..N].<br />

preuve : m ∈ [0..N] donc m − 1 . . . . N or . . . . . . . . . . . . . . . . . . . . . . . . et d ∈ [0..N] donc . . ≤ m + 1<br />

d'où m − 1 ∈ [0..N].<br />

Pour valider ψ 4 on doit considérer <strong>la</strong> transition q 1 −−−→ q 4 et on doit montrer que<br />

ψ 1 ∧ d ≤ f<br />

?<br />

=⇒ ψ 4<br />

preuve (à rédiger): On se contente de prouver les nouvelles <strong>par</strong>ties de ψ 4 .<br />

Pour valider ψ 5 on doit considérer <strong>la</strong> transition q 4 −−−−−−−−→ q 5 : que doit-on montrer ?<br />

d≤f<br />

m←(d+f)÷2<br />

ψ<br />

. . .<br />

=⇒ ψ<br />

. . .<br />

[ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]<br />

preuve : L'implication est évidente (de <strong>la</strong> forme P ⇒ P ) puiqu'on a choisi<br />

def<br />

ψ 4 = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .<br />

Pour valider ψ 1 il faut considérer toutes les transitions qui arrivent en q 1 . Il y en a trois. Il faut donc<br />

faire trois preuves ; elles sont triviales (expliquez pourquoi).<br />

1. transition q 0<br />

d←0 ; f←N<br />

−−−−−−−−→ q 1 : que faut-il montrer ?<br />

2. transition q 7<br />

f←m+1<br />

−−−−−→ q 1 : que faut-il montrer ?<br />

3. transition q 8<br />

d←m−1<br />

−−−−−→ q 1 : que faut-il montrer ?<br />

Conclusion<br />

On a associé des propriétés à chaque état et montré que ce sont des invariants d'état c'est-à-dire qu'elles<br />

sont valides à chaque fois qu'on passe <strong>dans</strong> ces états.<br />

L'invariant ψ s associé à l'état de sortie q s<br />

def<br />

ψ s = result = true ⇒ x ∈ T [0..N]<br />

∧<br />

result = false ⇒ x /∈ T [0..N]<br />

7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!