Algorithmique et Analyse d’Algorithmes
Algorithmique et Analyse d’Algorithmes
L3 Info
Cours 3 : preuve d’algorithmes
Benjamin Wack
2016 - 2017
1 / 36
Algorithmique et Analyse d’Algorithmes
La dernière fois
IÉcriture d’algorithmes récursifs
ICoût d’un algorithme récursif
IComplexité en moyenne
ITri rapide
Aujourd’hui
ISpécification et correction d’un algorithme
ITerminaison d’un algorithme
IDrapeau Hollandais
2 / 36
Algorithmique et Analyse d’Algorithmes
Plan
Preuve de correction d’un algorithme
Spécification formelle
Formalisation du langage
Annotations de programmes
Terminaison d’un algorithme
Drapeau Hollandais
Le problème et l’algorithme
Analyse de l’algorithme
3 / 36
Algorithmique et Analyse d’Algorithmes
Preuve de correction d’un algorithme
Spécification formelle
Les besoins
IQuantité astronomique de code en circulation ou en développement
(Google Chrome ou serveur World of Warcraft : 6 M lignes)
(Windows 7 ou Microsoft Office 2013 : 40 M lignes)
http://www.informationisbeautiful.net
IOmniprésence dans des systèmes critiques : finance, transports,
économie, santé...
IIl faut pouvoir prouver qu’un programme s’exécute correctement
dans toutes les situations
Mais correct selon quels critères ? Quelles situations à considérer ?
ISpécification
Ides données acceptables
Idu résultat attendu (généralement en fonction des données)
Iexprimée dans un langage formel, généralement une propriété
logique des données et du résultat.
Ine décrit pas comment fonctionne le programme.
5 / 36
Algorithmique et Analyse d’Algorithmes
Preuve de correction d’un algorithme
Spécification formelle
Une première écriture formelle
Soit un problème instancié par une donnée Det dont la réponse est
fournie par un résultat R.
Une spécification peut être donnée sous la forme de :
Iune propriété P(D)de la donnée (précondition) ;
Iune propriété Q(D,R)de la donnée et du résultat (postcondition).
Un programme satisfait cette spécification si :
Pour toute donnée Dqui vérifie la propriété P,
l’exécution du programme donne un résultat Rqui vérifie Q(D,R).
Le programme est alors dit correct par rapport à cette spécification.
6 / 36
1 / 31 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !