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
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