Académique Documents
Professionnel Documents
Culture Documents
Année Académique:
2019/2020
Niveau:
C2A2-: Cycle 2, Première Année, Ingénieur de Conception
Tronc commun: HYMAE
Enseignant:
M. MBA TENE SALOMON (Doctorant en Informatique et Télécommunication (Option : Génie Logiciel)
à l’ENSPM et PLEG)
INFORMATION GÉNÉRALE
o Intitulé: Recherche Opérationnelle
• Code : HMEL
• Durée : 45 heures
• Cours Magistral : 35 heures
• Travaux dirigé: 5 heures
• TPE : 5 heures
Types d'évaluation
TPE : Travail à faire à la maison
CC : 1 à 2 heures
Examen : 2-3 heures
Rattrapage : 2-3 heures
OBJECTIFS GENERAUX
dynamique et d’optimisation
CHAPITRE
PLAN
INTITULE
0 RAPPEL SUR LES GRAPHES
1 Rôle des algorithmes en Informatique et croissance des fonctions
2 Tables de hachage et arbres binaires de recherche
3 Programmation dynamique
4 Algorithmes Glouton et Algorithmes élémentaires pour les graphes
5 Arbres couvrants de poids minimum, Plus courts chemins à origine
unique et Plus courts chemins pour tout couple de sommet
6 Flot maximum et Réseau de tri
7 Programmation linéaire
8 Calcul matricielle, polynômes et transformée rapide de Fourrier et
algorithmes de la théorie des nombres
9 NP-Complétude
10 Algorithmes d’approximation
BIBLIOGRAPHIE
1) Helary, Pedrono, « Recherche opérationnelle : Exercices corrigés »,
Hermann, 1983
2) Sivazlian, Stanfel, « Optimization Techniques in Operation
Research », Prentice Hall, 1975
3) Winston, « Operation Research: Applications and Algorithms »,
Duxbury
4) Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein,
«INTRODUCTION À L’ALGORITHMIQUE», Dunod, Paris, 2004
CHAPITRE 0 : RAPPEL SUR LES
GRAPHES
INTRODUCTION
2) Représentation multivoque
Représentation d’un graphe
3) Matrice booléenne
Représentation d’un graphe
4) Représentation virtuelle d’un graphe
4-1) Représentation encaser
D’autres types de représentations existent et leur utilisation dépend de l’utilisation qu’on veut en faire.
Pour une représentation plus mathématique, on utilisera la représentation en matrice booléenne.
Terminologie
Terminologie
Terminologie
Graphe orienté
Définitions
Graphe orienté
Définitions
Graphe orienté
Cas pratique d’utilisation de graphes
1) Problème 1 : Problème du voyageur de commerce (TPE 1)
Cas pratique d’utilisation de graphes
Relâchement
Les algorithmes de cette partie emploient la technique de La figure ci-dessous montre deux exemples de relâchement
relâchement d’arc, un dans lequel l’estimation de plus court chemin diminue
Soit un sommet v ∈ S , soit un attribut d[v] qui est un majorant et un autre dans lequel il n’y a pas modification de
de la longueur d’un plus court chemin entre l’origine s et v. l’estimation.
On appelle d[v] une estimation de plus court chemin. On
initialise les estimations et les prédécesseurs (П [v] ) via la
procédure en temps Ѳ(S) que voici.
SOURCE-UNIQUE-INITIALISATION(G, s)
1 pour chaque sommet v ∈ S[G]
2 faire d[v] ←∞
3 П[v] ← NIL
4 d[s] ← 0
RELÂCHER(u, v, w)
1 si d[v] > d[u]+w(u, v)
2 alors d[v] ← d[u]+w(u, v)
3 П [v] ← u
Cas pratique d’utilisation de graphes
ALGORITHME DE BELLMAN-FORD
Étant donné un graphe orienté pondéré G =(S, A), de fonction Les figures ci-dessous (b)–(e) montrent l’état de l’algorithme
de pondération w : A → R, et une origine s, l’algorithme de après chacun des quatre passages
Bellman-Ford retourne une valeur booléenne indiquant s’il
existe ou non un circuit de longueur strictement négative
accessible à partir de s. Si un tel circuit n’existe pas, l’algorithme
donne les plus courts chemins ainsi que leurs poids.
BELLMAN-FORD(G, w, s)
1SOURCE-UNIQUE-INITIALISATION(G, s)
2 pour i ← 1 à |S[G]|-1
3 faire pour chaque arc (u, v) ∈ A[G]
4 faire RELÂCHER(u, v, w)
5 pour chaque arc (u, v) ∈ A[G]
6 faire si d[v] > d[u]+w(u, v)
7 alors retourner FAUX
8 retourner VRAI
Cas pratique d’utilisation de graphes
Flot
Imaginons un produit s’écoulant à travers un système depuis Le problème du flot maximum est le suivant : on veut
une source, où il est produit, vers un puits, où il est consommé. connaître la plus grande vitesse à laquelle le produit peut
La source génère le produit avec un certain débit constant et le voyager entre la source et le puits, sans violer aucune
puits consomme le produit avec le même débit. contrainte de capacité. C’est l’un des problèmes de réseau
Le « flot » de produit à un endroit quelconque du système de transport les plus simples et, comme nous le verrons
est intuitivement la vitesse à laquelle ce produit se déplace. dans l’un des chapitres
Algorithmes
Quel est le rôle des algorithmes par rapport aux autres technologies
informatiques ?
un temps approximativement : C1n2 pour trier n éléments un temps approximativement : C2nlgn pour trier n éléments
Le tri par insertion est généralement plus rapide que le tri par fusion pour de petits nombres de données mais, dès que le nombre n
d’éléments à trier devient suffisamment grand, l’avantage du tri par fusion (lg n contre n) fait plus que compenser la différence
entre les facteurs constants
Algorithme en tant que technologie
b) Algorithmes et autres technologies
• Les algorithmes, à l’instar des matériels informatiques, sont une technologie
• Les performances globales du système dépendent autant des algorithmes que des
matériels.
• La conception de ces matériels utilise des algorithmes
• Toutes les interfaces utilisateur graphiques reposent sur des algorithmes.
• Le routage s’appuie fondamentalement sur des algorithmes
Les algorithmes sont au cœur de la plupart des technologies employées dans les
ordinateurs modernes
Posséder une base solide en algorithmique, voilà qui fait toute la différence entre
le programmeur d’élite et le programmeur lambda. Les technologies
informatiques modernes permettent de faire certaines tâches même si l’on ne s’y
connaît guère en algorithmes ; mais avec une bonne formation en algorithmique,
l’on peut aller beaucoup, beaucoup plus loin.
Tri par insertion