Vous êtes sur la page 1sur 98

Recherche opérationnelle

Z. Bahou, EMI

2022/2023

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Plan du cours:
▪ Introduction générale à la recherche opérationnelle.
▪ Programmation linéaire.
‐ Algorithme du simplexe.
‐ Dualité.
‐ Post-optimisation.
‐ Problème du transport.
‐ Problème d’affectation.
▪ Optimisation dans les réseaux.
‐ Notions élémentaires de la théorie des graphes.
‐ Problème de l’arbre de poids minimal.
‐ Problèmes de cheminements optimaux dans un réseau.
‐ Problème central d’ordonnancement. (MPM, PERT, CPM) Problèmes de flot.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Notions élémentaires de la théorie des graphes

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Définition:
Un graphe est un ensemble d’objets, appelés sommets, dont certains sont reliés entre eux, soit par
des arêtes, cas non orienté, soit par des arcs, cas orienté.

Graphes non orientés


1. définitions
Un graphe fini G = (V,E) est défini par l’ensemble fini V ={𝒗𝟏 , 𝒗𝟐 ,..., 𝒗𝒏 } dont les éléments
sont appelés sommets (Vertices en anglais), et par l’ensemble fini E ={𝒆𝟏 , 𝒆𝟐 ,..., 𝒆𝒎 } dont les
éléments sont appelés arêtes (Edges en anglais). Une arête e de l’ensemble E est définie par une
paire non ordonnée de sommets, appelés les extrémités de e. Si l’arête e relie les sommets a et b,
on dira que ces sommets sont adjacents, ou incidents avec e, ou bien que l’arête e est incidente
avec les sommets a et b. On appelle ordre d’un graphe le nombre de sommets n de ce graphe.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Si on peut dessiner un graphe G dans le plan sans qu’aucune arête n’en coupe une autre (les
arêtes ne sont pas forcément rectilignes), on dit que G est planaire.

Une représentation non planaire du Une représentation planaire de G


graphe G (des arêtes se croisent)

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


• Un graphe est simple si au plus une arête • Un graphe est connexe s’il est possible, à
relie deux sommets et s’il n’y a pas de partir de n’importe quel sommet, de rejoindre
boucle sur un sommet. tous les autres en suivant les arêtes. Un graphe
• On peut imaginer des graphes avec une non connexe se décompose en composantes
arête qui relie un sommet à lui-même (une connexes. Sur le graphe ci-dessous, les
boucle), ou plusieurs arêtes reliant les deux composantes connexes sont {1,2,3,4} et {5,6}.
mêmes sommets. On appellera ces graphes
des multi-graphes

Graphe non connexe


V = {1,2,3,4,5,6}
E =[{1,3},{1,4},{2,3},{3,4},{5,6}]

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


• Un graphe est complet si chaque sommet du • Un graphe est biparti si ses sommets peuvent être
graphe est relié directement à tous les autres divisés en deux ensembles X et Y , de sorte qu’il n’y ait
aucune arête entre les éléments de chaque ensemble et
sommets. que chaque arête ait une extrémité dans X et une autre
dans Y (dans l’exemple ci-dessous, on a X = {1,3,5} et
Y = {2,4}).

Graphe complet
V = {1,2,3,4,5}
E = [{1,2},{1,3},{1,4},{1,5},{2,3},
{2,4},{2,5},{3,4},{3,5},{4,5}] Graphe biparti
V = {1,2,3,4,5}
E = [{1,2},{1,4},{2,5},{3,4},{4,5}]

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Degré d’un sommet Théorème La somme des degrés des sommets
On appelle degré du sommet v, et on note d(v), d’un graphe est égale à deux fois le nombre
le nombre d’arêtes incidentes à ce sommet. d’arêtes.
Attention ! Une boucle sur un sommet compte
double. Dans un graphe simple, on peut aussi • Le degré d’un graphe est le degré maximum
définir le degré d’un sommet comme étant le de tous ses sommets. Dans l’exemple ci-
nombre de ses voisins (la taille de son dessous, le degré du graphe est 4, à cause du
voisinage). Dans le multi-graphe ci-contre, on a sommet v3 .
les degrés : • Un graphe dont tous les sommets ont le même
d(v1) = 2 degré est dit régulier. Si le degré commun est
d(v2) = 2
d(v3) = 4
k, alors on dit que le graphe est k-régulier.
d(v4) = 1
d(v5) = 3

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes eulériens
Soit G=(V,E) un graphe non orienté.
▪ Une chaîne eulérienne de G est une chaîne simple passant par toutes les arêtes de G, c’est-à-dire une chaîne passant une et une
seule fois par toutes les arêtes de G.
▪ Un cycle eulérien est une chaîne eulérienne ayant les mêmes extrémités.
▪ Un graphe eulérien est un graphe possédant un cycle eulérien.
▪ Le graphe G admet un cycle eulérien si et seulement si tous ses sommets ont un degré pair.
▪ Le graphe G admet une chaîne eulérienne si et seulement si tous ses sommets ont un degré pair sauf exactement deux d’entre
eux. Ces deux sommets particuliers seront les extrémités de cette chaîne.

Exemple: peut-on dessiner une enveloppe fermée ou ouverte


sans lever le crayon et sans repasser sur une ligne déjà dessinée
?
Cela revient à se demander si l'on peut trouver une chaîne
eulérienne dans les graphes suivants :
Dans le premier cas la réponse est non car tous les sommets ont un degré impair.
Dans le second cas, deux sommets exactement ont un degré impair, il existe donc une chaîne eulérienne ayant ces deux sommets
pour extrémités

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes eulériens
Pour des graphes plus complexes que les précédents, il va nous falloir des algorithmes afin
d'expliciter les éventuels parcours eulériens.

Commençons par le cas des cycles eulériens.

Algorithme de détermination d'un cycle eulérien


Soit G=(V,E) un graphe non orienté connexe possédant un cycle eulérien.
1.Choisir un sommet arbitrairement.
2.Construire un cycle simple (quel qu’il soit) ayant pour origine et extrémité ce sommet (c’est toujours possible).
3.Si ce cycle est eulérien, la recherche est terminée.
4.Sinon, considérer le sous-graphe de G obtenu en supprimant les arêtes du cycle précédent.
5.À partir d’un sommet commun au sous-graphe restant et au cycle, construire de nouveau un cycle simple.
6.Insérer ce second cycle dans le premier.
7.Recommencer à partir de l'étape 3.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes eulériens
Exemple: Détermination d'un cycle eulérien
Considérons le graphe non orienté dont la représentation la suivante :

• On considère ensuite le sous-graphe de G


obtenu en supprimant ce cycle :

• Ce graphe est eulérien car il est connexe, et tous les degrés de


ses sommets sont pairs.
• On commence donc par choisir un sommet, par exemple A.
On construit alors un cycle simple d'origine et extrémité A,
comme (A,D,E,F,A) représenté en rouge ici :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes eulériens
• A partir du sommet D, on peut construire un second cycle • La construction du prochain (et dernier) cycle est simple, il
simple, par exemple (D,C,B,D) ici en vert : s'agit de (E,A,B,E), mis en évidence en mauve :

• Il ne reste plus qu’à insérer les deux derniers cycles dans le


• On supprime ce nouveau cycle :
premier, il vient (A,D,C,B,D,E,A,B,E,F,A):

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes eulériens
La recherche d'une chaîne eulérienne va s'avérer très similaire, seules les premières étapes
vont différer.

Algorithme de détermination d'une chaîne eulérienne

Soit G=(V,E) un graphe non orienté connexe possédant une chaîne eulérienne.

1.Choisir arbitrairement l'un des deux sommets de degré impair.


2.Construire une chaîne simple (quelle qu’elle soit) ayant pour origine ce sommet et pour extrémité l’autre
sommet de degré impair (c’est toujours possible).
3.Si cette chaîne est eulérienne, la recherche est terminée.
4.Sinon, considérer le sous-graphe de G obtenu en supprimant les arêtes de la chaîne précédente.
5.À partir d’un sommet commun au sous-graphe restant et à la chaîne, construire un cycle simple.
6.Insérer ce cycle dans la chaîne.
7.Recommencer à partir de l'étape 3.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes eulériens
Exemple: Détermination d'un chaîne eulérienne
Considérons le graphe non orienté dont la représentation est la suivante :

• On considère ensuite le sous-graphe de G obtenu en


supprimant cette chaîne :

• Ce graphe possède une chaîne eulérienne car il est connexe,


et ses sommets ont un degré pair sauf exactement deux d'entre
eux, A et D.
• On commence donc par choisir l'un de ces deux sommets, par
exemple D. On construit alors une chaîne simple d'origine D et
d'extrémité A, comme (D,C,B,D,F,A), représentée en rouge ici :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes eulériens
• La construction du (seul) cycle simple est simple, il s'agit de • Il ne reste plus qu’à insérer ce dernier cycle dans la chaîne, il
(B,E,A,B), ici en vert : vient (D,C,B,E,A,B,D,F,A) :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes hamiltoniens
Soit G=(V,E) un graphe orienté ou non.
• Une chaîne, un chemin, un cycle ou un circuit de G sont dits hamiltoniens s’ils passent une et une seule fois par tous les
sommets de G.
• Un graphe hamiltonien est un graphe non orienté possédant un cycle hamiltonien ou un graphe orienté possédant un circuit
hamiltonien.
• Considérons le graphe non orienté dont la représentation est la suivante :

• Ce graphe est hamiltonien car il possède le cycle (A,E,B,C,D,F,A).

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes hamiltoniens
Propriété 1
Soit G=(V,E) un graphe non orienté.
Si G possède un sommet de degré 1 il ne peut pas être hamiltonien.
Condition de Dirac
Soit G=(V,E)un graphe non orienté d'ordre n, avec n≥3.
Si pour tout sommet x de G on a d(x)≥n/2 alors G est hamiltonien.
Propriété 2
Soit G=(V,E) un graphe non orienté d'ordre n, avec n≥3.
Si le graphe G est complet alors il est hamiltonien.

Exemple : Application de la condition de Dirac


Considérons le graphe non orienté dont la représentation est la
suivante :
• Ce graphe est d’ordre 5 et chacun de ses sommet a un degré au
moins égal à 3. Il est donc hamiltonien.
• Voici un exemple de cycle hamiltonien : (A,B,C,E,D,A).

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice:
Une société de réseau et télécommunication voudrait
contrôler la qualité des câbles de fibre optique
« atténuation du signal… » installés entre plusieurs
villes. Afin de minimiser les couts on doit contrôler
chaque tronçon de câble une et une seule fois.
La structure d’installation est donnée dans le graphe
suivant :

• Le graphe suivant admet-il une chaîne eulérienne?


Si oui , déterminer le parcours qui doit être fait par
les techniciens pour contrôler tous les tronçons
sans passer par un de ces dernier deux fois ( ce n’est
pas nécessaire qu’ils retournent au ville de départ).

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice: « Correction »
• Tous les sommets n'ont pas un degré
pair donc ce graphe ne possède pas de
cycle eulérien.
• Exactement deux sommets ont un
degré impair, A et F, donc ce graphe
possède par contre une chaîne
eulérienne.
• En voici une :
(A,G,B,F,C,D,H,A,B,E,D,A,C,G,E,F) :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Vous êtes le responsable d’une commission d’enquête composée de 6 personnes affiliée à un ministère du royaume qui
a pour but de recueillir des éléments d’information sur des faits donnés tout au long des routes liant 10 villes
marocaines tel que : Agadir (A) ; Berrechid (B) ; Casablanca (C) …etc.
Les nombres présents sur chacune des arêtes indiquent les frais de déplacement par personne, en dh entre les villes.
Tant que responsable votre mission est de gérer et d’optimiser le budget des déplacements de la commission.
•Quelles caractéristiques du graphe permettent d’affirmer qu’il existe un parcours qui vous permet d’emprunter chaque
route une et une seule fois « dépenser une et une seule fois par personne et par route » ?
•Déterminer un tel parcours en appliquant un des algorithmes vus en cours et calculer son coût total.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Représentations non graphiques d’un
graphe Cette matrice a plusieurs caractéristiques :
Matrice d’adjacences 1. Elle est carrée : il y a autant de lignes que de
On peut représenter un graphe simple par une matrice colonnes.
d’adjacences. Une matrice (n×m) est un tableau de n lignes 2. Il n’y a que des zéros sur la diagonale allant
et m colonnes. (i, j) désigne l’intersection de la ligne i et de du coin supérieur gauche au coin inférieur
la colonne j. Dans une matrice d’adjacences, les lignes et droit. Un « 1 » sur la diagonale indiquerait une
les colonnes représentent les sommets du graphe. Un « 1 » boucle.
à la position (i, j) signifie que le sommet i est adjacent au 3. Elle est symétrique. On peut dire que la
sommet j. diagonale est un axe de symétrie.
4. Une fois que l’on fixe l’ordre des sommets, il
existe une matrice d’adjacences unique pour
chaque graphe. Celle-ci n’est la matrice
d’adjacences d’aucun autre graphe

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Arbres
On appelle arbre tout graphe connexe sans cycle. Un graphe sans cycle mais non connexe est appelé une forêt. Une
feuille ou sommet pendant est un sommet de degré 1

Arbre Les sommets 1, 2 et 5 sont les feuilles Forêt Les sommets 1, 2, 5 et 6 sont les feuilles

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Arbres couvrants

Un arbre couvrant (aussi appelé arbre maximal) est un graphe partiel qui est aussi un arbre.
Arbre couvrant de poids minimum
Soit le graphe G = (V,E) avec un poids associé à chacune de ses arêtes. On veut trouver, dans G, un arbre maximal A = (V,F) de
poids total minimum.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Arbre couvrant de poids minimum
Le problème de l'arbre couvrant minimal est un des plus vieux problèmes en théorie des
graphes. La problématique se pose comme suit : étant donné un graphe avec un nombre de
sommets et un nombre d'arêtes ayant des poids de valeurs dans l'ensemble des entiers relatifs,
l'arbre couvrant minimal consiste à trouver l'ensemble des arêtes permettant de rejoindre tous
les sommets sans former de cycle, et ce, avec un coût minimal. Ce problème trouve des
applications pratiques variées : il est directement applicable pour l'optimisation et la conception de
divers types de réseaux (électrique, internet, etc.).
Son application la plus populaire est actuellement dans le domaine du forage de données « data
mining ».

Data Mining* « exploration de données » ou « extraction de connaissances à partir de données ».


- l'analyse d'une grande quantité de données contenues dans une base.
- Objectif : faire apparaître des corrélations entre des phénomènes en apparence distincts afin d'anticiper des
tendances.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


1) Trier les arêtes par poids croissant
D,C : 1
E,F : 3 Si j’ajoute l’arête E,F va créer un cycle vert? « Non »
D,F : 4
C,F : 4
A,B : 5
A,C : 9
B,C : 9
Exemple d’illustration : chercher un arbre couvrant de poids min D,E : 11
11
A D E A D E

9 4 9 4
1 3 1 3
5 5

9 4 9 4
B C F B C F

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


1) Trier les arêtes par poids croissant
D,C : 1
E,F : 3
D,F : 4 Si j’ajoute l’arête D,F va créer un cycle vert? « Non »
C,F : 4
A,B : 5
A,C : 9
B,C : 9
Exemple d’illustration : chercher un arbre couvrant de poids min D,E : 11
11
A D E A D E

9 4 9 4
1 3 1 3
5 5

9 4 9 4
B C F B C F

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


1) Trier les arêtes par poids croissant
D,C : 1
E,F : 3
D,F : 4
C,F : 4 Si j’ajoute l’arête D,F va créer un cycle vert? « Oui »
A,B : 5
A,C : 9
B,C : 9
Exemple d’illustration : chercher un arbre couvrant de poids min D,E : 11
11
A D E A D E

9 4 9 4
1 3 1 3
5 5

9 4 9 4
B C F B C F

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


1) Trier les arêtes par poids croissant
D,C : 1
E,F : 3
D,F : 4
C,F : 4
A,B : 5 Si j’ajoute l’arête D,F va créer un cycle vert? « Non »
A,C : 9
B,C : 9
Exemple d’illustration : chercher un arbre couvrant de poids min D,E : 11
11
A D E A D E

9 4 9 4
1 3 1 3
5 5

9 4 9 4
B C F B C F

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


1) Trier les arêtes par poids croissant
D,C : 1
E,F : 3
D,F : 4
C,F : 4
A,B : 5
A,C : 9 Si j’ajoute l’arête D,F va créer un cycle vert? « Non »
B,C : 9
Exemple d’illustration : chercher un arbre couvrant de poids min D,E : 11
11
A D E A D E

9 4 9 4
1 3 1 3
5 5

9 4 9 4
B C F B C F

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


1) Trier les arêtes par poids croissant
D,C : 1
E,F : 3
D,F : 4
C,F : 4
A,B : 5
A,C : 9
B,C : 9 Si j’ajoute l’arête D,F va créer un cycle vert? « Oui »
Exemple d’illustration : chercher un arbre couvrant de poids min D,E : 11
11
A D E A D E

9 4 9 4
1 3 1 3
5 5

9 4 9 4
B C F B C F

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


1) Trier les arêtes par poids croissant
D,C : 1
E,F : 3
D,F : 4
C,F : 4
A,B : 5
A,C : 9
B,C : 9
Exemple d’illustration : chercher un arbre couvrant de poids min D,E : 11 Si j’ajoute l’arête D,F va créer un cycle vert? « Oui »
11
A D E A D E

9 4 9 4
1 3 1 3
5 5

9 4 9 4
B C F B C F

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


A D E

9
4
1 3
5

B C F

Poids de cet arbre = 5 + 9 + 1 + 4 + 3 = 22

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice: on souhaite minimiser le coût de construction d’un réseau de communication, connaissant le coût de
chaque liaison possible entre les nœuds du réseau.
On souhaite bien sûr que tous les nœuds du réseau puissent communiquer entre eux…
• Calculer le coût de construction global le plus faible possible.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Une nouvelle banque est en cours de création et souhaite installer dans un premier temps un siège h, deux
succursales 𝑏1 et 𝑏2 , et quatre distributeurs automatiques 𝑎1 , 𝑎2 , 𝑎3 et 𝑎4 . Ils ont besoin de construire un réseau
informatique de sorte que le siège, les succursales et les distributeurs automatiques de billets peuvent tous inter
communiquer. En outre, ils devront être mis en réseau avec la Banque centrale F. Les coûts des connexions de
réseau envisageables (en unités de 10 000 DH) sont donnés ci-dessous :

La banque souhaite minimiser le coût de construction de son réseau, mais en raison de la nécessité d’une
communication à haut débit, ils doivent avoir des connexions directes de h à F et de 𝑏2 à 𝑎3 . Donnez une liste
des connexions que la banque devrait établir afin de minimiser leur coût total, sous réserve de cette contrainte.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


La coloration des graphes
❑ La coloration des sommets d’un graphe consiste à affecter à tous les sommets de ce
graphe une couleur de telle sorte que deux sommets adjacents ne portent pas la même
couleur.

❑ La coloration des arêtes d’un graphe consiste à affecter à toutes les arêtes de ce
graphe une couleur de telle sorte que deux arêtes adjacentes ne portent pas la même
couleur. L’indice chromatique du graphe G est le plus petit entier k pour lequel il
existe une coloration des arêtes ; on le note χ(G).

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


La coloration des graphes
Le nombre chromatique d’un graphe : c’est le nombre minimal de couleurs qu’il faut pour colorier le graphe afin
que deux sommets adjacents ne soient jamais de la même couleur

nombre chromatique ?
Réponse : 2

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


La coloration des graphes
Le nombre chromatique d’un graphe : c’est le nombre minimal de couleurs qu’il faut pour colorier le graphe afin
que deux sommets adjacents ne soient jamais de la même couleur

nombre chromatique ?
Réponse : 3

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


La coloration des graphes
Le nombre chromatique d’un graphe : c’est le nombre minimal de couleurs qu’il faut pour colorier le graphe afin
que deux sommets adjacents ne soient jamais de la même couleur

nombre chromatique ?
Réponse : 2

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


La coloration des graphes
Le nombre chromatique d’un graphe : c’est le nombre minimal de couleurs qu’il faut pour colorier le graphe afin
que deux sommets adjacents ne soient jamais de la même couleur

nombre chromatique ?
Réponse : 5

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Algorithme DSATUR pour la coloration des graphes Exemple
DSATUR est un algorithme de coloration de graphes créé Soit les couleurs hiérarchisées :
par Daniel Brélaz en 1979 . Il s’agit d’un algorithme de
coloration séquentiel par heuristique. DSAT est
l’abréviation de degré saturation.
On considère un graphe G=(V,E) simple connexe et non-orienté. • On prend le sommet de plus haut degré, soit le sommet 1.
Pour chaque sommet v de V, on calcule le degré de saturation • On lui attribue la couleur minimale, soit C1 :
DSAT(v) de la manière suivante:
• Si aucun voisin de x est colorié, alors DSAT(x) = le degré de x
• Sinon, DSAT(x) = le nombre de couleurs différentes utilisées
dans le voisinage de x
Méthode d’application de l’algorithme :
Ordonner les sommets par ordre décroissant de degré.
Colorer un sommet de degré maximum avec la couleur 1.
Choisir un sommet non coloré avec DSAT maximum. Si conflit
choisir celui avec degré maximum.
Colorer ce sommet par la plus petite couleur possible
Si tous les sommets sont colorés alors stop. Sinon aller en 3.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Algorithme DSATUR pour la coloration des graphes Exemple
DSATUR est un algorithme de coloration de graphes créé Soit les couleurs hiérarchisées :
par Daniel Brélaz en 1979 . Il s’agit d’un algorithme de
coloration séquentiel par heuristique. DSAT est
l’abréviation de degré saturation.
On considère un graphe G=(V,E) simple connexe et non-orienté. • on regarde un voisin du sommet 1 étant de plus haut
Pour chaque sommet v de V, on calcule le degré de saturation degré: Nous allons prendre le sommet 6. on lui attribuer
DSAT(v) de la manière suivante: une couleur minimale ≠ C1
• Si aucun voisin de x est colorié, alors DSAT(x) = le degré de x
• Sinon, DSAT(x) = le nombre de couleurs différentes utilisées
dans le voisinage de x
Méthode d’application de l’algorithme :
Ordonner les sommets par ordre décroissant de degré.
Colorer un sommet de degré maximum avec la couleur 1.
Choisir un sommet non coloré avec DSAT maximum. Si conflit
choisir celui avec degré maximum.
Colorer ce sommet par la plus petite couleur possible
Si tous les sommets sont colorés alors stop. Sinon aller en 3.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Algorithme DSATUR pour la coloration des graphes Exemple
DSATUR est un algorithme de coloration de graphes créé Soit les couleurs hiérarchisées :
par Daniel Brélaz en 1979 . Il s’agit d’un algorithme de
coloration séquentiel par heuristique. DSAT est
l’abréviation de degré saturation.
On considère un graphe G=(V,E) simple connexe et non-orienté. • On fait la même chose pour le voisin du sommet étant de
Pour chaque sommet v de V, on calcule le degré de saturation plus haut degré : le sommet 5. On lui attribue une couleur
DSAT(v) de la manière suivante: minimale différente de celle de ses voisins : la couleur C3
• Si aucun voisin de x est colorié, alors DSAT(x) = le degré de x
• Sinon, DSAT(x) = le nombre de couleurs différentes utilisées
dans le voisinage de x
Méthode d’application de l’algorithme :
Ordonner les sommets par ordre décroissant de degré.
Colorer un sommet de degré maximum avec la couleur 1.
Choisir un sommet non coloré avec DSAT maximum. Si conflit
choisir celui avec degré maximum.
Colorer ce sommet par la plus petite couleur possible
Si tous les sommets sont colorés alors stop. Sinon aller en 3.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Algorithme DSATUR pour la coloration des graphes Exemple
DSATUR est un algorithme de coloration de graphes créé Soit les couleurs hiérarchisées :
par Daniel Brélaz en 1979 . Il s’agit d’un algorithme de
coloration séquentiel par heuristique. DSAT est
l’abréviation de degré saturation.
On considère un graphe G=(V,E) simple connexe et non-orienté. • On réédite l’opération pour tous les autres sommets, puis
Pour chaque sommet v de V, on calcule le degré de saturation on obtient :
DSAT(v) de la manière suivante:
• Si aucun voisin de x est colorié, alors DSAT(x) = le degré de x
• Sinon, DSAT(x) = le nombre de couleurs différentes utilisées
dans le voisinage de x
Méthode d’application de l’algorithme :
Ordonner les sommets par ordre décroissant de degré.
Colorer un sommet de degré maximum avec la couleur 1.
Choisir un sommet non coloré avec DSAT maximum. Si conflit
choisir celui avec degré maximum.
Colorer ce sommet par la plus petite couleur possible
Si tous les sommets sont colorés alors stop. Sinon aller en 3.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice :
Un responsable d’exploitation d’une société de transport est confrontés à la réalisation du planning des interventions
maintenance préventive pour maximiser la disponibilité de leurs véhicules. Certaines peuvent avoir lieu
simultanément alors que d'autres doivent impérativement être placées à des moments différents. Chaque
intervention occupant une demi-journée, le responsable voudrait que les interventions puissent être faites dans un
minimum de temps. On suppose pour cet exemple qu'il n'y a que 7 interventions. Les incompatibilités entre elles
sont traduites dans ce tableau. Combien faut-il de demi-journées au minimum ?

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice : Correction
On modélise ce problème par un problème de coloration des sommets d'un graphe.
Les sommets sont associés aux interventions. Deux interventions incompatibles sont reliées entre elles par une
arête. Le graphe obtenu est un "graphe d'incompatibilité".
Dans une coloration des sommets, on ne peut attribuer la même couleur à 2 interventions incompatibles.
On peut donc mettre sur la même demi-journée toutes les interventions associées à des sommets de même couleur.
Le nombre minimum de couleurs correspond au nombre minimum de demi-journées.
On a par exemple la solution suivante (il y en a d'autres) : A, C et G couleur 1, B et E couleur 2, D et F couleur 3.

A C

Il suffit 3 demi-journées.
G D

F E

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice :
La liaison radio est possible grâce à un émetteur et à un récepteur qui sont tous les deux reliés à une antenne. C’est un
système de communication qui fonctionne en se basant sur la diffusion dans l’espace d’ondes électromagnétiques. Les
stations de radio diffusent alors leur signal à certaines fréquences. Toutefois, le choix de fréquences est limité, de sorte
que de nombreuses stations utilisent la même fréquence à l'échelle nationale. Cela fonctionne parce que les stations sont
suffisamment éloignées les unes des autres pour que leurs signaux ne soient pas brouillés « pas d’interférences » ;
Supposons que 10 nouvelles stations de radio doivent être installées dans une région. Les stations radio qui sont
suffisamment proches les unes des autres sont indiquées dans le tableau ci-dessous.

1. Modéliser graphiquement le problème et


Trouver une affectation des fréquences en
appliquant l’algorithme DSATUR. (La même
fréquence ne doit pas être allouer à deux
stations adjacentes « risque d’interférences »).
2. Quel est le plus petit nombre de fréquences
que les stations pourraient utiliser ?

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice :
Un problème d’attribution de fréquence (FAP) désigne le fait de chercher à attribuer une fréquence, ou une bande de
fréquences, aux différents utilisateurs d’un réseau sans fils tout en tenant compte de paramètres tels que le nombre
limité de fréquences disponibles ou les interférences entre utilisateurs.
Ce type de problème peut-être ramené à la coloration du graphe. Un utilisateur est alors un noeud, un risque
d’interférence est une arête et une fréquence assignée est une couleur.
• Les sources d’interférences :
– Des interférences Co-Canal: c'est l'interférence entre
deux cellules auxquelles on a alloué le même canal.
Typiquement, cette interférence décroît quand la
distance géographique entre les deux cellules croît;
– Des interférences Canal-Adjacent: c'est l'interférence
entre deux cellules adjacentes auxquelles on a alloué des
canaux proches l'un de l'autre dans le plan spectral.

• L’objectif :
Affecter les fréquences en minimisant les interférences.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice :
1.seules les contraintes d’interférence co-canal sont considérées. Les fréquences allouées à des TRX de la même
station ou appartenant à des stations très rapprochées doivent être différentes.

• Modéliser graphiquement le problème et Trouver une affectation des fréquences qui minimise les interférences
• Combien de fréquence avez vous affecté “nombre chromatique”

2. Il s’agit maintenant d’intégrer les contraintes de canal adjacent. Pour cela on considérera une relation d’ordre
total entre les fréquences (couleurs). Les contraintes d’interférence sont alors exprimées par une distance d à
respecter entre les couleurs affectées aux TRX. Cette distance serait égale à 1 pour exprimer une contrainte co-
canal et une distance inter-canal de 3 entre les TRX d’une même stations.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice :
Les organisateurs d'un congrès sont confrontés à la réalisation du planning des conférences. Certaines peuvent
avoir lieu simultanément alors que d'autres doivent impérativement être placées à des moments différents. Chaque
conférence occupant une demi-journée, les organisateurs voudraient que les conférences puissent être placées dans
un minimum de temps. On suppose pour cet exemple qu'il n'y a que 7 conférences. Les incompatibilités entre elles
sont traduites dans ce tableau. Combien faut-il de demi-journées au minimum ?

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice : Correction
On modélise ce problème par un problème de coloration des sommets d'un graphe.
Les sommets sont associés aux conférences. Deux conférences incompatibles sont reliées entre elles par une arête.
Le graphe obtenu est un "graphe d'incompatibilité".
Dans une coloration des sommets, on ne peut attribuer la même couleur à 2 conférences incompatibles.
On peut donc mettre sur la même demi-journée toutes les conférences associées à des sommets de même couleur.
Le nombre minimum de couleurs correspond au nombre minimum de demi-journées.
On a par exemple la solution suivante (il y en a d'autres) : A, C et G couleur 1, B et E couleur 2, D et F couleur 3.

A C

Il suffit 3 demi-journées.
G D

F E

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Graphes orientés
En donnant un sens aux arêtes d’un graphe, on obtient un digraphe (ou graphe orienté). Le mot « digraphe » est la
contraction de l’expression anglaise « directed graph ». Un digraphe fini G = (V,E) est défini par l’ensemble fini V = {v1,
v2,..., vn} dont les éléments sont appelés sommets, et par l’ensemble fini E = {e1, e2,..., em} dont les éléments sont
appelés arcs. Un arc e de l’ensemble E est défini par une paire ordonnée de sommets. Lorsque e = (u, v), on dit que l’arc
e va de u à v. On dit aussi que u est l’extrémité initiale et v l’extrémité finale de e.
Degré d’un sommet d’un digraphe
Soit v un sommet d’un graphe orienté. On note d +(v) le degré extérieur du sommet v, c’est-à-dire le nombre d’arcs
ayant v comme extrémité initiale. On note d −(v) le degré intérieur du sommet v, c’est-à-dire le nombre d’arcs ayant v
comme extrémité finale. On définit le degré : d(v) = d +(v) +d −(v)

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Chemins et circuits
❑ Un chemin conduisant du sommet a au sommet b est une suite ayant pour
éléments alternativement des sommets et des arcs, commençant et se
terminant par un sommet. Sur le digraphe ci-après, on peut voir par
exemple le chemin (v3, e2, v2, e1, v1). Par convention, tout chemin
comporte au moins un arc. On appelle distance entre deux sommets d’un
digraphe la longueur du plus petit chemin les reliant. S’il n’existe pas de
chemin entre les sommets x et y, on pose d(x, y) = ∞. Par exemple, sur le
digraphe ci-après, d(v5, v4) = 2, d(v4, v5) = ∞, d(v3, v1) = 1,

❑ Un circuit est un chemin dont les sommets de départ et de fin sont les mêmes. Le digraphe ci-dessus ne
contient pas de circuit. Les notions de chemins et de circuits sont analogues à celles des chaînes et des cycles
pour les graphes non orientés.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


❑ Un digraphe est fortement connexe, si toute paire ordonnée (a,b) de sommets distincts du graphe est
reliée par au moins un chemin. En d’autres termes, tout sommet est atteignable depuis tous les autres
sommets par au moins un chemin.
Représentations non graphiques des digraphes
Matrice d’adjacences
On peut représenter un digraphe par une matrice d’adjacences. Une matrice (n×m) est un tableau de n lignes et m
colonnes. (i, j) désigne l’intersection de la ligne i et de la colonne j. Dans une matrice d’adjacences, les lignes et les
colonnes représentent les sommets du graphe. Un « 1 » à la position (i, j) signifie qu’un arc part de i pour rejoindre j.

Exemple la matrice d’adjacences du digraphe G :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Problèmes de cheminements optimaux dans un réseau.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Introduction

Nous considérons dans toute cette partie un graphe orienté pondéré G=(X,U,v), où vij est
le poids de l'arc (i,j)∈ 𝑈. Ce poids (aussi appelé coût ou valuation) peut représenter par
exemple une distance, un coût de transport ou un temps de parcours. La plupart du temps, le
coût d'un chemin entre deux sommets est la somme des coûts des arcs qui le composent. Le
problème consiste donc à trouver un chemin de coût minimal (aussi appelé plus court
chemin).

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


❑ L'algorithme de Dijkstra permet de trouver le
Initialisation
plus court chemin d'un sommet donné S vers
tous les autres sommets. Il n'est utilisable que
pour les graphes à valuations non-négatives, ce
qui implique qu'il n'y a pas de circuit de coût
négatif dans le graphe.

❑ Structures de données :
Soit G=(V,E) un graphe orienté ou non à valuations
positives d’ordre n. Traitement
▪ Soit s le sommet à partir duquel on va rechercher les
plus courts chemins.
▪ Soit L un tableau de n cases destiné à contenir les
distances de s aux autres sommets.
▪ Soit P un tableau de n cases destiné à contenir le
prédécesseur de chacun des sommets dans un plus
court chemin d’origine s.
▪ Soit M la liste de tous les sommets déjà traités

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Example : Application de l'algorithme de Dijkstra
Considérons le graphe G orienté valué dont la représentation est la suivante :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Example : Application de l'algorithme de Dijkstra
Nous allons appliquer l'algorithme de Dijkstra entre le sommet A et tous les autres sommets

❑ Lors de la phase d'initialisation, on attribue à tous les


sommets successeurs de A une distance égale à la valuation
entre A et eux-mêmes. Cela concerne ici les sommets B et C.
Les autres sommets sont affectés d'une distance égale à +∞.
Cela nous permet de remplir le tableau L, et simultanément le
tableau P :

M L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
A 0 7 1 +∞ +∞ +∞ A A A -- -- --

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Example : Application de l'algorithme de Dijkstra
M L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
A 0 7 1 +∞ +∞ +∞ A A A -- -- --

❑ Lors de la première itération, on choisit le sommet C car c'est le sommet non encore traité qui possède la plus
petite distance courante depuis A.
❑ On étudie alors pour les sommets successeurs de C, à savoir B, E et F, s'il est plus efficace
de passer par C ou non pour les rejoindre.
❑ La distance courante L[B] du sommet B est égale à 7. On la compare donc avec
L[C]+v(C,B), quantité égale à 1+5=6. Il faut donc mettre à jour la distance L[B], ainsi
que le prédécesseur de B qui devient C. Même chose pour les sommets E et F :

M L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
A 0 7 1 +∞ +∞ +∞ A A A -- -- --
A,C 0 6 1 +∞ 3 8 A C A -- C C

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Example : Application de l'algorithme de Dijkstra

❑ Lors de la seconde itération, on choisit le sommet E car c'est le sommet non encore traité qui possède la plus petite distance
courante depuis A.
❑ On étudie alors pour les sommets successeurs de E, à savoir B et D, s'il est plus
efficace de passer par E ou non pour les rejoindre.
❑ La distance courante L[B] du sommet B est égale à 6. On la compare donc avec
L[E]+v(E,B), quantité égale à 3+2=5. Il faut donc mettre à jour la distance L[B],
ainsi que le prédécesseur de B qui devient E. Même chose pour le sommet D :

M L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
A 0 7 1 +∞ +∞ +∞ A A A -- -- --
A,C 0 6 1 +∞ 3 8 A C A -- C C
A,C,E 0 5 1 8 3 8 A E A E C C

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Example : Application de l'algorithme de Dijkstra
❑ Lors de la troisième itération, on choisit le sommet B car c'est le sommet non encore traité qui possède la plus petite
distance courante depuis A.
❑ On étudie alors pour les sommets successeurs de B, à savoir D et F, s'il est plus efficace de
passer par B ou non pour les rejoindre.
❑ La distance courante L[D] du sommet D est égale à 8. On la compare donc avec L[B]+v(B,D),
quantité égale à 5+4=9. Il ne faut donc pas mettre à jour la distance L[D] et P[D] non plus, en
revanche la distance courante L[D] du sommet F est égale à 8. On la compare donc avec
L[B]+v(B,D) = 5 +1=6 :
M L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
A 0 7 1 +∞ +∞ +∞ A A A -- -- --
A,C 0 6 1 +∞ 3 8 A C A -- C C
A,C,E 0 5 1 8 3 8 A E A E C C
A,C,E,B 0 5 1 8 3 6 A E A E C B

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Example : Application de l'algorithme de Dijkstra
❑ Lors de la quatrième itération, on choisit le sommet F car c'est le sommet non encore traité qui possède la plus petite distance
courante depuis A.

❑ Il n'a pas de sommets successeurs non encore traités, donc il n'y aucune mise à jour à faire.

M L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
A 0 7 1 +∞ +∞ +∞ A A A -- -- --
A,C 0 6 1 +∞ 3 8 A C A -- C C
A,C,E 0 5 1 8 3 8 A E A E C C
A,C,E,B 0 5 1 8 3 6 A E A E C B
A,C,E,B,F 0 5 1 8 3 6 A E A E C B

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Example : Application de l'algorithme de Dijkstra
❑ Lors de la cinquième et dernière itération, on choisit le sommet D car c'est le sommet non encore traité qui possède la plus
petite distance courante depuis A.

❑ Même situation qu'à l'itération précédente, il n'y a aucuns changements :

M L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
A 0 7 1 +∞ +∞ +∞ A A A -- -- --
A,C 0 6 1 +∞ 3 8 A C A -- C C
A,C,E 0 5 1 8 3 8 A E A E C C
A,C,E,B 0 5 1 8 3 6 A E A E C B
A,C,E,B,F 0 5 1 8 3 6 A E A E C B
A,C,E,B,F,D 0 5 1 8 3 6 A E A E C B

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Example : Application de l'algorithme de Dijkstra
❑ L'algorithme est alors terminé, et nous obtenons donc
finalement :
M L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
A,C,E,B,F,D 0 5 1 8 3 6 A E A E C B
❑ L'interprétation du tableau des distances est claire, on retrouve dans celui-ci les distances entre A
et n'importe quel autre sommet.
Voyons maintenant comment utiliser le tableau des prédécesseurs pour déterminer les plus courts
chemins entre le sommet A et les autres sommets. Prenons par exemple D. On va remonter le plus
court chemin entre A et F en partant de son extrémité :
•Le prédécesseur de D est E.
•Le prédécesseur de E est C.
•Le prédécesseur de C est A.
Le plus court chemin entre les sommets A et D est donc ( A,C,E,D)

❑ Sur le graphe suivant figurent en rouge tous les plus courts


chemins entre le sommet A et les autres sommets :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice
Considérons le graphe non orienté valué suivant :

• Appliquer l'algorithme de Dijkstra à ce graphe en partant du sommet A.


• Citre les plus courts chemins entre le sommet A et tous les autres sommets « ainsi que la distance de chacun de ces
derniers » .

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice « Correction »

L[A] L[B] L[C] L[D] L[E] L[F] P[A] P[B] P[C] P[D] P[E] P[F]
0 10 12 14 16 9 A A F F D A

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


❑ l'algorithme de Bellman permet de trouver le plus
court chemin d'un sommet donné S vers tous les
autres sommets. Il est utilisable pour tout graphe
orienté, même si celui-ci contient des valuations
négatives et des circuits de coût négatif. Cet
algorithme fait parti de la famille des algorithmes à
correction d'étiquettes (label correcting algorithms) :
à chaque itération, il est possible de modifier
l'étiquette de n'importe quel sommet. De façon plus
précise, à l'initialisation, chaque sommet à une
étiquette initialisée à +∞ sauf le sommet S qui a
une étiquette à 0. Puis, à chaque itération K , on
calcule le plus court chemin de S à tout autre
sommet Y en au plus k arcs, que l'on note 𝑉𝐾 [𝑦]
. Cela peut se faire grâce à :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Problèmes central d’ordonnancement

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Introduction
La réalisation de projets complexes comme par exemple la construction d’un barrage,
l’installation d’une nouvelle chaîne de production, l’installation d’un nouveau système
d’information,…, requiert une planification au préalable et un contrôle au cours de l’exécution. Les
problèmes liés à ces objectifs sont des problèmes d’ordonnancement. On cherche un ordre
d’exécution des différentes tâches de manière à optimiser un certain critère (par exemple
minimiser la durée d’exécution du projet) tout en satisfaisant certaines contraintes (par exemple
antériorité de certaines tâches par rapport à d’autres, non simultanéité de certaines tâches,
disponibilités de certains moyens,..) et donner un calendrier d’exécution.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
Principe de la méthode : Réduire la durée totale d'un projet par une analyse détaillée des tâches ou
activités élémentaires et de leur enchaînement. On étudie les délais sans prendre en compte les charges.
Notions de base : La méthodes s'appuie en grande partie sur une représentation graphique qui
permet de bâtir un « réseau PERT ».
Un réseau PERT est constitué par des tâches et des étapes

• Étape : commencement ou fin d'une tâche. Une étape n'a pas de durée. On symbolise une étape
(ou « nœud ») sur le réseau par un cercle

• Tâche : déroulement dans le temps d'une opération. Contrairement à l'étape, la tâche est
pénalisante car elle demande toujours une certaine durée, des moyens (ou ressources) et coûte de
l'argent. Elle est symbolisée par un vecteur (ou arc orienté, ou liaison orientée) sur lequel seront
indiqués l'action à effectuer et le temps estimé de réalisation de cette tâche.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
Exemple de réseau :

Remarques :
- La longueur des arcs n'est pas proportionnelle au temps d'exécution.
- Pour alléger la représentation, on ne note pas le nom complet de la tâche, mais une lettre ou
code la représentant.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Tâches successives :
Exemple:

B ne peut commencer que si A est terminée (A précède B , ou A est antériorité de B) . C ne peut commencer que si
A et B sont terminées ( A et B précèdent C, ou A et B sont antériorité de C, ou A et B enclenchent C).

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Tâches simultanées :
Elles peuvent commencer en même temps en partant d'une même étape.
Exemple :
• Du fait de la règle de construction qui interdit de
faire se dérouler les deux tâches B et C
simultanément, nous utilisons une tâche x (0) dite «
tâche fictive » qui sert à représenter ce type de
D ne peut commencer que si B est terminée. Si l'on souhaite
contraintes de liaison (contraintes d'antériorité). Il
que D ne commence que si B et C sont terminées :
s'agit d'une tâche dont la durée et le coût sont nuls.
On la représente en pointillés.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Tâches convergentes : Plusieurs tâches peuvent se terminer sur une même étape.
Exemple :

Ici, la tâche A (12) a une durée de 12 unités de temps, B(6) a une durée de 6 unités de temps. On constate que la tâche
A dure plus longtemps que B. A est dite « pénalisante ». Nous pouvons calculer la durée du projet (ici : 12+3 = 15
unités de temps) en prenant le chemin le plus long dit « chemin critique ». Ce « chemin critique » pourra être repéré
en rouge. Les tâches de ce chemin seront à surveiller prioritairement.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Normalisation du graphe.
Exemple :
▪ Si le graphe doit débuter par plusieurs tâches ▪ Si le graphe se termine par plusieurs tâches (plusieurs
simultanées, il ne doit y avoir qu'une seule étape étapes de sortie (ou de fin), il ne doit y avoir qu'une
d'entrée (ou étape de début, ou étape de départ). Les seule étape de sortie.
étapes seront donc regroupées en une seule.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Normalisation du graphe.
Exemple :
• Problèmes de dépendances : A enclenche B, A enclenche D, • Le graphe précédent est faux car cette construction
C enclenche D. Nous pouvons être tentés de dessiner le signifie : A enclenche B, A enclenche D, C enclenche B,
graphe suivant : et C enclenche D. Pour respecter les contraintes
d'antériorités du projet, on introduit une tâche fictive
comme suit :

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Représentation des étapes :
Les étapes ou « nœuds » peuvent être représentés de différentes façons selon les informations que l'on souhaite
mettre en évidence.

• Méthodologie de construction d'un réseau PERT. 1. Établir la liste des tâches (faire le
partitionnement des tâches en fonction des ressources). 2. Déterminer des antériorités : tâches immédiatement
antérieures, et tâches antérieures. 3. Déterminer les niveaux d'exécution ou rang des tâches (optionnel). - Construire
le réseau PERT. 4. Calculer la durée du projet, les dates début et de fin des tâches. Déterminer le chemin critique.
Mettre en évidence les marges.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Application:
Soit les tâches suivantes qui constituent un projet : A (3), B (4), C (2), D (3), E (4). Les antériorités sont les suivantes : A enclenche
C, A enclenche D, B enclenche E, C enclenche E.
• Afin de construire le réseau, nous allons déterminer le rang (ou niveau)
d'exécution de chaque tâche, c'est à dire la position chronologique qu'elle
occupe au début de son exécution dans le projet.
• Nous pouvons utiliser une matrice (ou grille) de dépouillement des données
(dite : « matrice de dépouillement par les sommets ») : On met une croix
lorsqu'il y a une antériorité entre une tâche et une autre. On cherche s'il existe
des croix dans l'une des colonnes. Si nous ne trouvons pas de croix dans
certaines, cela signifie que les tâches repérées en haut des colonnes n'ont pas
d'antériorité. Elles sont alors de rang 1. On note ces tâches, puis on barre les
lignes horizontales correspondant à ces tâches et on réitère l'opération
précédente. On détermine les tâches de rang 2 et ainsi de suite. Les rangs (ou
niveaux) déterminés permettent de positionner le début des différentes
tâches lors de la construction du graphe.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Application:
Nous en déduisons le réseau PERT correspondant à l'application proposée :

Objectif : le travail étant supposé commencer à t=0,


on cherche un ordonnancement des différentes tâches
qui minimise la durée totale du projet et donc la date de
fin du projet. Notons que pour qu’une tâche puisse
commencer, il est nécessaire que toutes celles qui lui
sont antérieures soient terminées.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Application:
Quelques définitions:
- Début au plus tôt d'exécution d'une tâche : C'est le maximum des fins au plus tôt des tâches qui la déclenche (Il peut
exceptionnellement y avoir un retard ou chevauchement si le cahier des charges du projet le précise et que la faisabilité est
vérifiée).
- Début au plus tard d'une tâche : C'est la date de fin au plus tard de la tâche moins la durée de la tâche.
- Fin au plus tôt : C'est la date de début au plus tôt plus la durée de la tâche.
- Fin au plus tard : C'est le minimum des dates de début au plus tard des tâches qu'elle enclenche.
- Marge totale : C'est le retard admissible du début d'une tâche qui n'entraîne aucun recul de la date de fin du projet, mais qui
consomme les marges libres des opérations suivantes. C'est la date de début au plus tard moins la date de début au plus tôt.
- Marge libre : C'est le retard admissible sur une tâche qui n'entraîne pas de modification des calendriers des tâches suivantes. C'est
la date de début au plus tôt de la tâches suivante moins la durée de la tâche moins la date de début au plus tôt de la tâche.
- Chemin critique : C'est l'ensemble des tâches dont la marge totale et la marge libre est nulle. C'est le chemin dont la succession
des tâches donne la durée d'exécution la plus longue du projet et fournit le délai d'achèvement le plus court. Si l'on prend du
retard sur la réalisation de ces tâches, la durée globale du projet est allongée.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE PERT
❑ Représentation graphique des étapes et des tâches dans un réseau.
• Application:
Pour l'application, on peut dresser un tableau de synthèse comme suit :

Résultats de l'étude : La durée globale du projet (délai d'achèvement le plus court) = 9 jours. Le chemin
critique est constitué des tâches : A, C, et E. Il faut vérifier que ces tâches se déroulent correctement et
le cas échéant adopter des actions correctives afin de les fiabiliser.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE MPM
❑ Principe de la méthode :
A l'identique de la méthode PERT cette méthode permet de réduire la durée totale d'un projet. On étudie les délais
sans prendre en compte les charges et les moyens disponibles.
❑ Notions de base : La méthode est une représentation graphique qui permet de bâtir un « réseau ». Ce réseau
est constitué par des tâches (ou étapes).
• Tâche : Déroulement dans le temps d'une opération. La tâche est pénalisante car elle demande toujours une
certaine durée, des moyens (ou ressources) et coûte de l'argent. Contrairement au réseau PERT, ici elle est
symbolisée par un rectangle dans lequel seront indiqués l'action à effectuer et le temps estimé de réalisation de
cette tâche, la date de début et de fin.

❑ Liaison orientées : Elles représentent les contraintes d'antériorités des tâches

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


LA METHODE MPM
Exemple de réseau :

Le graphe doit comporter un seul «


début » et une seule « fin ». Il n'y a pas
d'autres règles

Méthodologie de construction d'un réseau MPM.


- Établir la liste des tâches (faire le partitionnement des tâches en fonction des ressources).
- Déterminer des antériorités : tâches immédiatement antérieures, et tâches antérieures.
- Déterminer les niveaux d'exécution ou rang des tâches (très facile avec cette méthode).
- Construire le réseau MPM.
- Calculer la durée du projet, les dates début et de fin des tâches. Déterminer le chemin critique

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Problèmes de flot

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Généralités
• Les flots permettent de modéliser une très large classe de problèmes. Leur interprétation correspond à la circulation de
flux physiques sur un réseau.
• Un réseau est un graphe orienté N=(V,A) avec une valuation « cout » positive de ses arcs. La valuation c(x,y) d’un arc
(x,y) est appelée la capacité de l’arc. N possède deux sommets particuliers : une source s et une destination t « puit ».
Les autres sommets sont appelés nœuds intermédiaires.
• Un flot représente l’acheminement d’un flux de matières depuis une source s vers une destination t. Le flot est ainsi
décrit par la quantité de matière transitant sur chacun des arcs du réseau. Cette quantité doit être inférieure à la capacité
de l’arc, qui limite ainsi le flux pouvant transiter par lui. De plus il n’est pas possible de stocker ou de produire de la
matière aux nœud intermédiaires : un flot vérifie localement une loi de conservation .
• Conservation de flots : la somme des flots entrants est égale à la somme des flots sortants sauf pour la source et le
puits, on appelle le degré d(u) la différence entre le flot sortant et entrant du sommet u : d(u)=0 sauf pour u=s et u=t.

Exemple :
Trouver le trafic maximal entre 2 villes compte
tenu des capacités des tronçons routiers

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Généralités

Problème de flot maximal


Maximiser la quantité de flot passant dans un réseau entre un sommet source et un sommet
puits en respectant les contraintes de capacité des arcs

Problème de flot maximal à cout minimal


Un cout de transport est associé à chaque lien du réseau (en plus des capacités)
Déterminer un flot maximal de cout minimal entre un sommet source et un sommet puits en
respectant les contraintes de capacité des arcs

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Problème de flot maximal
Une compagnie de télécom possède 6 postes T1, T2, T3, T4, T5 et T6 de retransmission des appels
téléphoniques de la région de Casablanca vers les régions du Sud.
4
T2 T3
8
12
8 6
6 Régions du Sud
Casablanca T1 T6
9
3 6
11
9

T4 T5
4

Les capacités maximales en milliers d’appels par minute.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Problème de flot maximal
Ce réseau de communication a été construit de telle façon qu’il satisfasse aux conditions suivantes :
• Chaque poste intermédiaire T2, T3, T4, T5 conserve les appels i.e. tout appel arrivant à l’un de ces postes est
immédiatement acheminé vers un autre poste (il ne se perd pas d’appels à un poste donné).
• Le nombre d’appels passant entre 2 postes est évidemment une quantité non négative et est au plus égal à la
capacité maximale des lignes téléphoniques reliant ces 2 postes.
• Les appels de la région de Casablanca passent tous par le poste T1 qui les achemine vers les autres postes.
• Les appels arrivant au poste T6 sont tous acheminés dans les régions du Sud.

Problème:
Soit v le nombre d’appels passant dans le réseau de T1 (la source) à T6
(la destination), comment répartir les appels dans le réseau de façon à
maximiser v ?

88
Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr
Formulation du problème de flot maximal
• Soit un réseau R = (N, A) où N représente les sommets du réseau et A l’ensemble des arcs.
On désigne aussi par
K(x, y) : capacité maximale de l’arc (x, y), (x, y)  A,
f(x, y) : quantité de flot passant par l’arc (x, y), (x, y)  A.
• Le problème avec une source s et une destination d s’énonce alors comme suit :
MAX v
v si x = s
 f(x, y)- f(y, x)= 0 si x  s, d
-v si x = d
(P)
{y  N | (x, y)  A}{y  N | (y, x)  A}
L(x, y)  f(x, y)  K(x, y), (x, y)  A.

89
Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr
Exemple :
(0, 4)
T2 T3
(8, 8)
(12, 12)

(6, 6) (6, 6)
29 (8, 8) 29
T1 T6
(3, 9) (6, 6)
(0, 3)
(6, 11)
(9, 9)

T4 T5
(f(x, y), K(x, y)) 0, 4

La valeur du flot passant dans ce réseau est v = 29.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Définition de la coupe minimale :
• Une coupe est un ensemble de sommets contenant s et ne contenant pas p. La capacité d'une coupe est la somme
des capacités des arcs sortant de cette coupe.
• Théorème de Ford – Fulkerson : La capacité minimale d'une coupe est égale au flot maximal.
Exemple :
1
2,3 v = 3.
1,1 La coupe C = {(s, 1), (2, 1), (2, d), (1, 2)} a aussi une capacité
égale à 1 + 1 + 1 - 0 = 3.
3 3
0,1 1,1
s d
D’après ce qui précède, le flot est maximal et la coupe est
2,3 1,1 minimale.
X
2
X
(f(x, y), K(x, y))

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


• Un arc (x, y) est saturé par rapport à f si f(x, y) = K(x, y).
• Un flot f est maximal si et seulement si il n’existe pas de chaîne d’augmentation par
rapport à celui-ci.
• Une coupe est minimale si et seulement si, pour tout flot maximal f, ses arcs sont saturés par
rapport à f

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Comment résoudre ce problème ?
Etant donné un flot 𝛟 , la première idée pour augmenter ce flot consiste à chercher un chemin 𝜇 de s à t pour lequel tous les arcs
sont insaturés. De la sorte, on peut augmenter le flot sur 𝜇 de la valeur :

On appelle capacité résiduelle de l'arc (i , j) la valeur , et on appelle chemin améliorant un chemin pour lequel .
Chaîne améliorante
Définition
Soit un réseau et un flot 𝛟 . On appelle chaîne améliorante 𝜇 de s à t une chaîne telle que :

Tout arc (i , j) pris dans son sens naturel doit vérifier , i.e. ne doit pas être saturé. On note 𝜇+ l'ensemble de ces arcs.

Tout arc (i , j) pris à l'envers doit vérifier . On note 𝜇− l'ensemble de ces arcs.
On définit la valeur par l'expression suivante :

On peut augmenter le flot 𝛟 de 𝛿 , en augmentant le flot sur les arcs de 𝜇 + de 𝛿 et en diminuant le flot sur les arcs de 𝜇 − de 𝛿

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exemple: On calcule .
Sur l'image ci-dessous, la chaîne rouge est une chaîne Il est donc possible d'augmenter le flot d'une unité, en
améliorante. Les arcs (s,2) , (1,3) , et (3, t) sont pris dans augmentant le flot d'une unité sur Les arcs (s,2) , (1,3) ,
leur sens naturel et ne sont pas saturés, alors que l'arc (1, 2) et (3, t) et en diminuant d'une unité sur l'arc (1, 2) ,
est parcouru à l'envers, et le flot qui passait par cet arc était comme illustré à la figure suivante. On peut vérifier que
non-nul. le nouveau flot vérifie bien toutes les conditions d'un
flot

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


❑ Algorithme « recherche d’une chaine améliorante » ❑ Algorithme « Ford-Fulkerson »

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Dans l'exemple précédent, il est possible de trouver une chaîne améliorante, dessiné en rouge.

Cette chaîne permet d'augmenter le flot d'une valeur . Le flot correspondant est dessiné
sur la figure suivante.

A cette itération, il n'existe plus aucune chaîne améliorante, le flot est égal à 5 et est donc de débit maximal.

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


Exercice:
Avant d'établir un projet de construction d'autoroute on désire étudier la capacité du réseau routier reliant la ville E
à la ville S.
Quel est le nombre maximal de véhicules pouvant transiter de E à S par heure ?

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr


C 19
170 D

B 84
120 111 282
A
97
J 47 E
210 117
I 200
100 165
117
H
350
G 93 F

Chapitre 2: Optimisation dans les réseaux Ziyad Bahou : Ziyad.bahou@hotmail.fr

Vous aimerez peut-être aussi