Vous êtes sur la page 1sur 20

Université Mohammed Premier

Ecole Nationale des Sciences Appliquées


Al Hoceima

Algorithmique avancée et complexité

E.W. DADI
wrd.dadi@gmail.com
Année universitaire : 2016/2017
Plan du Cours
Chapitre 1: Algorithmes itératifs et récursifs

Chapitre 2: Preuve d’un algorithme

Chapitre 3: Calcul de la complexité algorithmique

Chapitre 4: étude de la complexité de quelques algorithmes

Chapitre 5: Programmation dynamique

Chapitre 6: Optimisation combinatoire

Chapitre 7: Calcul Haute Performance(en TP)

ENSAH Introduction générale E.W. DADI – page : 2


Références :
Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein,
« INTRODUCTION À L’ALGORITHMIQUE », Dunod, Paris,
2004.
Rémy Malgouyres, Rita Zrour, Fabien Feschet, « INITIATION À
L’ALGORITHMIQUE ET À LA PROGRAMMATION EN C »,
Dunod, Paris, 2008, 2011
Bruno Baynat, «EXERCICES ET PROBLEMES
D’ALGORITHMIQUE », Dunod, Paris.
Donald E. Knuth « THE ART OF COMPUTING PROGRAMMING
»
Des supports de cours sur le Web

ENSAH Introduction générale E.W. DADI – page : 3


Objectifs du cours :
Acquérir les notions nécessaires pour concevoir des
algorithmes efficaces, cela passe par répondre aux questions
suivantes :
Existe-il un algorithme pour résoudre le problème?
Comment concevoir un algorithme?
L’algorithme est-il correct?
L’algorithme est-il efficace? existe-t-il toujours un bon
algorithme ? si plusieurs algorithmes sont possible, lequel
choisir ?
Peut-on trouver un algorithme plus efficace pour le
problème? Est-ce un problème dur?

ENSAH Introduction générale E.W. DADI – page : 4


Objectifs à atteindre :
1. Savoir écrire un code optimisé et lisible
Lors de la conception d’un algorithme (écriture d’un code), il faut prendre
en compte la question de temps d’exécution, la gestion de la mémoire, et la
consommation de l’énergie.
Exemple : deux différentes versions d’un algorithme faisant un même
traitement, l’une est plus optimisée par rapport à l’autre :
Fonction Algo_Version1(a :entier) : booléen Fonction Algo_Version2(a :entier) : booléen
Var i : entier, test : booléen, r : entier ; Var i, r : entiers ;
Début Début
i :=2 ; Si(a%2=0) Retourner(faux);
TantQue (i<=racine(a) ) Faire i :=3 ;
Si(a%i=0) alors r := racine(a);
Retourner(faux) ; TantQue (i<=r) Faire
FinSi Si(a%i=0) alors
i++ ; Retourner(faux) ;
FinTq FinSi
Retourner(Vrai) ; i:=i+2;
Fin FinTq
Retourner(Vrai) ;
Fin

ENSAH Introduction générale E.W. DADI – page : 5


2. Maitriser le passage (récursif  itératif )
Pour un problème donné, on peut concevoir un même algorithme en
deux versions : la version itérative et la version récursive.
Exemple de la fonction factorielle :
Fonction factorielle(N : Entier) : Entier; Fonction factorielle(N : Entier) : Entier;
Var i, f : Entier; Début
Début Si (N=0) Alors
f := 1;
Pour i allant de 1 jusqu'a N Faire Retourner 1;
f := f * i; Sinon
Fin Retourner factorielle (N-1) * N:
Retourner f; FinSi
Fin
Fin

ENSAH Introduction générale E.W. DADI – page : 6


3. Savoir valider un algorithme
Cela consiste à vérifier si un algorithme se termine et qu’il
retourne le résultat attendu
Exemple d’un simple algorithme dont son exécution est infinie
: Fonction Infini (N : Entier) : Entier;
Var i, f : Entier;
Début
i := 1;
s:=1;
Tantque(i < N) Faire
s++;
FinTQ
Fin

ENSAH Introduction générale E.W. DADI – page : 7


4. Savoir comparer les algorithmes en terme de temps de calcul

ENSAH Introduction générale E.W. DADI – page : 8


5. Concevoir une solution pour un problème d’optimisation
Exemple 1 (problème de sac à dos) : c’est un problème
d'optimisation combinatoire. Il modélise une situation analogue au
remplissage d'un sac à dos, ne pouvant supporter plus d'un
certain poids, avec tout ou partie d'un ensemble donné d'objets ayant
chacun un poids et une valeur. Les objets mis dans le sac à dos
doivent maximiser la valeur totale, sans dépasser le poids
maximum.

ENSAH Introduction générale E.W. DADI – page : 9


…. la suite
Exemple 2: Un problème d’optimisation dans le cadre de
Google Hash Code 2014.
The Street View imagery available in Google Maps is
captured using specialized vehicles called Street View cars.
These cars carry multiple cameras capturing pictures as the
car moves around a city. Capturing the imagery of a city
poses an optimization problem: the fleet of cars is available
for a limited amount of time and we want to cover as much
of the city streets as possible.
“Hash Code is a team-based programming competition organized by
Google for students and industry professionals (18+) across Europe, the
Middle East and Africa in order to solve a real-life engineering problem
from Google”

ENSAH Introduction générale E.W. DADI – page : 10


Les algorithmes sont partout
1. L’accès rapide à toutes sortes de données sur Internet
Moteur de recherche: utilisation d’un moteur de recherche pour
trouver rapidement les pages contenant tel ou tel type de données;

ENSAH Introduction générale E.W. DADI – page : 11


…. la suite

Réseau Informatique: Recherche des routes optimales pour


l’acheminement des données; un nœud de routage Internet peut
avoir à déterminer le chemin le plus court à travers le réseau pour
minimiser le délai d’acheminement d’un message.

ENSAH Introduction générale E.W. DADI – page : 12


2. Biométrie : Indentification des personnes
La biométrie est un domaine qui consiste à identifier des personnes en
fonction de caractéristiques biologiques, telles que les empreintes
digitales, l’iris d’une personne, les traits du visage, ou de caractéristiques
comportementales, telles que la reconnaissance vocale, la signature, etc.
La reconnaissance faciale est l’un des exemples des applications utilisées
pour l’indentification des personnes. Elle consiste à reconnaitre
automatiquement une personne à partir d'une image de son visage.

?
Distance = 0

ENSAH Introduction générale E.W. DADI – page : 13


3. Sécurité informatique
L’E-commerce permet de négocier et échanger, de manière
électronique, des biens et services. Les clients exigent la
confidentialité de données tel que le numéro de carte de crédit et son
mot de passe.
La cryptographie est l’une des disciplines fondamentale employée
dans ce contexte, elle s’appui sur des algorithmes numériques et sur
la théorie des nombres. Son principe est le chiffrement/
déchiffrement d’un message (le rendre clair ou non clair).
Un exemple simple d’un algorithme de chiffrement c’est celui
utilisé par Jules César, il consiste à décaler les lettres de 3 rangs vers
la gauche : Clair A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Chiffré DE F GH I J KLMNO P QRS T UVWXY Z ABC

--> ENSAH = HQVDK

ENSAH Introduction générale E.W. DADI – page : 14


4. Dans le domaine de transport
Une société de transport, a intérêt à trouver les trajets routiers ou
ferroviaires les plus courts tout en couvrant un ensemble de villes,
cela va permettre de diminuer les coûts de main d’œuvre et
d’énergie.
Une société de transport en commun comme l'autobus, a intérêt de
couvrir toute une ville avec peu d’autobus.

ENSAH Introduction générale E.W. DADI – page : 15


5. Dans tout domaine de l’intelligence artificielle
Reconnaissance visuelle —par exemple d'un panneau de
signalisation par un robot ou une voiture autonome— et vocale)
Analyser les mouvements et position des doigts d'une main, ce qui
peut être utile pour traduire le langage des signes.
Système d’aide au diagnostic médical ( reconnaissance automatique
d'un cancer en imagerie médicale ).
Analyse des émotions révélées par un visage photographié.
La reconnaissance ou comparaison de formes 2D/3D.

ENSAH Introduction générale E.W. DADI – page : 16


6. Domaines demandant de la puissance de calcul
Les prédictions météorologique.
L'exploration de grande volume de données(Big Data)
La modélisation et simulation de problèmes de dimensions plus
grandes, la modélisation et la simulation sur ordinateur ont pour
objet de créer une représentation virtuelle d’un objet, d’un
phénomène ou d’un concept afin de l’analyser et de le comprendre,
de façon à pouvoir prévoir son comportement, voire le contrôler.
L’étude de systèmes et de phénomènes complexes. Elle repose
désormais sur la gestion et l'utilisation d’une masse d’information
qu’il faut systématiser, recueillir, distribuer et exploiter.

ENSAH Introduction générale E.W. DADI – page : 17


Contraintes
1. Temps d’exécution
Le temps machine est une ressource limitée, et il en est de même
de l’espace mémoire.
La loi de Moore attient ses limites (Moore a prévu un doublement
du nombre de transistors tous les 24 mois).

L'augmentation de la puissance de calcul en élevant la fréquence du


processeur s’est heurtée à plusieurs problèmes généralement liées à
la surchauffe.

ENSAH Introduction générale E.W. DADI – page : 18


2. Les contraintes économiques
Ils obligent à toujours produire dans l'urgence.
Les entreprises cherchent toujours à maximiser leur profit.

ENSAH Introduction générale E.W. DADI – page : 19


Quelques thèmes pour les exposés
Deep Learning(Réseaux de neurones)
Introduction aux Méta-heuristiques
Algorithme génétique
Les algorithmes de colonies de fourmis
La méthode du recuit simulé
La méthode Tabou
Algorithmes de datamining(k-means, k-NN, SVM….)

ENSAH Introduction générale E.W. DADI – page : 20