Examen - Analyse d'algorithmes, Examens de Application informatique
Christophe
Christophe28 février 2014

Examen - Analyse d'algorithmes, Examens de Application informatique

PDF (156 KB)
5 pages
430Numéro de visites
Description
Exercices de mathématique - Examen - Analyse d'algorithmes. Les principaux thèmes abordés sont les suivants: exercices.
20 points
Points de téléchargement necessaire pour télécharger
ce document
Télécharger le document
Aperçu3 pages / 5

Ceci c'est un aperçu avant impression

3 shown on 5 pages

Télécharger le document

Ceci c'est un aperçu avant impression

3 shown on 5 pages

Télécharger le document

Ceci c'est un aperçu avant impression

3 shown on 5 pages

Télécharger le document

Ceci c'est un aperçu avant impression

3 shown on 5 pages

Télécharger le document

ENSEIRB 2006-2007 - Département informatique - Première année IF105 - Analyse d’algorithmes

Examen (session2)

Veillez à soigner la rédaction de vos solutions, particulièrement vos justifications et vos preuves. Soyez précis et concis. Bon courage et bonne chance !

Exercice 1 (3 points)

Indiquez, en justifiant votre réponse, si les triplets de Hoare suivants sont valides ou non. Il peut être nécessaire d’appliquer plusieurs règles de la logique de Hoare pour prouver la validité de certains d’entre eux.

1. {y − 2 > z} x := y − 1{x− 1 > z} 2. {faux} x :=y {x = 0} 3. {vrai} x :=y {x = 0} 4. {vrai} if (x ≥ 0) then y :=x else y := − x endif {y = |x|}

Exercice 2 (3 points)

Un problème de décision est une question qui admet une réponse binaire : oui ou non. Par exemple, décider si un graphe fini admet un chemin Hamiltonien 1 est un problème de décision.

1. Donnez le principe d’un algorithme ”brute-force” pour résoudre un problème de décision (vous pouvez illustrer votre propos sur l’exemple du chemin Hamiltonien)

2. À quelle(s) condition(s) un problème de décision est-il décidable ?

3. À quelle(s) condition(s) un problème de décision est-il dans la classe de complexité NP ?

4. À quelle(s) condition(s) un problème de décision est-il dans la classe de complexité P ?

Exercice 3 (7 points)

Le PPCM de deux entiers x et y est le plus petit entier naturel multiple à la fois de x et de y. Le PPCM est nul si x ou y est nul.

Le while-program suivant calcule le PPCM de x et y. La variable mincm contient le résultat attendu à la fin de l’exécution du programme.

1 mincm := min(x,y);

2 while (! ((mincm%x=0) /\ (mincm%y=0))) do

3 mincm := mincm +1;

4 endwhile

1. Un chemin qui visite exactement une fois chacun de ses sommets.

1

La fonction min renvoie le minimum des deux valeurs passées en paramètre, et l’opérateur % calcule le modulo (le reste de la division entière). On supposera que n%0 = n pour tout n ∈ Z.

Les spécifications de cet algorithme sont : – Precond : x ∈ N ∧ y ∈ N – Postcond : mincm = ppcm(x, y)

1. Simulez le fonctionnement de cet algorithme pour les valeurs x = 3 et y = 2. Vous remplirez le tableau suivant :

x y mincm

3 2 ...

... ...

Puis simulez le fonctionnement de l’algorithme pour les valeurs x = 0 et y = 2. Vous remplirez un tableau analogue au précédent.

2. Pour prouver la correction de cet algorithme avec la méthode de Hoare, nous devons trouver un invariant de la boucle while qui nous permette de déduire la postcondition.

Notons que cet algorithme procède en recherchant le PPCM de x et y dans l’ensemble des valeurs possibles. Comme tout algorithme de recherche, il procède par élimination des valeurs candidates qui, après vérification, ne sont pas le PPCM de x et y. Son invariant exprime donc que ”le PPCM de x et y n’est pas dans la partie de l’espace des solutions qui a déjà été explorée”.

Donnez un invariant de boucle pour ce while-program qui permette d’en prouver la correction. Vous argumenterez votre choix.

3. Calculez la preuve de correction de ce while-program en utilisant l’invariant que vous avez choisi à la question précédente. Mentionnez les obligations de preuve que vous générez. Utilisez pour cela la feuille fournie à cet effet.

4. Prouvez la validité des obligations de preuve. Que pensez-vous de la précondition x ∈ N ∧ y ∈ N ?

Exercice 4 (7 points)

On veut prouver la terminaison de l’algorithme de calcul du PPCM étudié lors de l’exercice précédent.

1. Soit D un ensemble et ≤ une relation d’ordre sur D. À quelle(s) condition(s) (D,≤) est-il un ensemble bien fondé ?

2. Donnez le principe de la méthode des ensembles bien fondés utilisée pour prouver la terminaison des programmes.

3. Justifiez intuitivement la terminaison du while-program considéré. Pour cela vous défi- nirez la mesure et l’ensemble bien fondé considérés.

2

4. Prouvez la terminaison du while-program considéré en utilisant la logique de Hoare. Il se peut que vous deviez enrichir l’invariant trouvé à l’exercice précèdent. Utilisez pour le calcul la seconde feuille fournie en fin d’énoncé. Que pensez-vous de la précondition x ∈ N ∧ y ∈ N ?

Règles de Hoare

Règle de conséquence :

P ′ ⇒ P , {P}S {Q} , Q ⇒ Q′ {P ′}S {Q′}

Règle d’affectation :

{P [e/x]}x:=e {P}

Règle de séquence : {P}S1 {Q} , {Q}S2 {R} {P}S1;S2 {R}

Règle du if : {P ∧ B}S1 {R} , {P ∧ ¬B}S2 {R} {P} if B then S1 else S2 endif {R}

Règle du while (avec terminaison) :

{P ∧ B ∧ (t = X) ∧ (t ∈ D)}S {P ∧ (t < X) ∧ (t ∈ D)} {P ∧ (t ∈ D)} while (B) do S endwhile {P ∧ ¬B}

où :

1. t est un terme (la mesure) ;

2. X est une nouvelle variable qui n’apparâıt ni dans P , ni dans B, ni dans S, ni dans t ;

3. (D,≤) est un ensemble bien fondé ; 4. t < X est défini par la formule t ≤ X ∧ X 6≤ t.

3

Nom : Prénom : Place :

Exercice :

mincm := min(x,y);

while (! (( mincm%x=0) /\ (mincm%y=0))) do

mincm := mincm +1;

endwhile

Obligations de preuve :

4

Nom : Prénom : Place :

Exercice :

mincm := min(x,y);

while (! (( mincm%x=0) /\ (mincm%y=0))) do

mincm := mincm +1;

endwhile

Obligations de preuve :

5

commentaires (0)

Aucun commentaire n'a été pas fait

Écrire ton premier commentaire

Ceci c'est un aperçu avant impression

3 shown on 5 pages

Télécharger le document