Complexité et algorithmique
Modèle de calcul, algorithmes, décidabilité
Classe P
« Méthodes de résolution » :
Diviser pour régner
Algorithmes de Tri
Algorithmes gloutons
Programmation dynamique
Classe NP (Définition, NP-complétude et réductions)
« Méthodes de résolution » :
Algorithmes d'approximation
Heuristiques
B. Estellon - Complexite - Master MINT - U2
Introduction
B. Estellon - Complexite - Master MINT - U2
Informatique ?
L'informatique désigne l'automatisation du
traitement de l'information par un système.
Questions :
Qu'est-ce que le calcul ?
Que peut-on calculer ?
Comment calculer efficacement ?
Comment décrire un algorithme de calcul ?
Comment représenter un certain objet pour pouvoir
le traiter ?
B. Estellon - Complexite - Master MINT - U2
Algorithmique ?
Un algorithme est une représentation de la
résolution par calcul d'un problème pour :
l'exposer à une autre personne,
le résoudre avec un ordinateur.
Un algorithme est un énoncé dans un langage
bien défini d'une suite d'opérations.
L'implémentation d'un algorithme consiste à
automatiser son utilisation à l'aide d'une
machine.
B. Estellon - Complexite - Master MINT - U2
Algorithme d'Euclide
Permet de calculer le PGCD de deux entiers.
a et b deux entiers
non nuls et a > b
Calculer r = a mod b
r = 0 ?
Résultat = b
a devient b
b devient r
Oui
Non
int PGCD(int a, int b) {
r := a % b;
if (r==0) return b;
a:=b;
b:=r;
return PGCD(a,b);
}
1 / 145 100%