Vous êtes sur la page 1sur 44

La théorie des graphes étudie des structures finies (en

forme de «réseaux») caractérisées par une composition


en deux ensembles d'objets :
• L'ensemble des sommets ou noeuds (noté X , en
anglais, nodes), vus comme les agents, les personnes,
les entités principales, les villes, ordinateurs/routeurs,
les tâches, etc....
• L'ensemble des arêtes ou arcs (noté U, en anglais,
edges), qui symbolisent une connexion, une route, une
liaison, une intéraction entre les sommets, etc....
Souvent, la relation qui à l'ensemble des arêtes fait
correspondre la paire de sommets incidents reste
implicite.
Dans la modélisation, il s'agit de faire aussi attention si
les connexions entre les sommets sont en réalité des
arêtes symbolisant une relation symétrique ou, au
contraire, des arcs pour lesquels le sens est
particulièrement important (orientation). Nous pouvons
alors distinguer deux familles de graphes :
• les graphes orientés (en anglais, directed graphs) ;
• les graphes non orientés (en anglais, undirected
graphs).

Arc Arête

C’est un outil qui sert à modéliser de nombreux


problèmes, par exemple :
https://images.app.goo.gl/mF2Qu3SvVv3 https://images.app.goo.gl/g2H84LRmGT7yS2zH7
• Un graphe orienté est une relation G sur un
ensemble fini X. On le note G = (X,U). X est
l’ensemble des sommets et U est formé de
l’ensemble des couples (x,y)X×X qui sont en
relation, il est appelé l’ensemble des arcs.
• L’ordre d’un graphe est son nombre n de sommets.
• La taille d’un graphe est son nombre m d’arcs.

Un graphe non orienté est une relation G symétrique


sur un ensemble fini X. De la même manière que pour
les graphes orientés, on le note G = (X,U). X est
l’ensemble des sommets et U est l’ensemble des arêtes
(ou des arcs non orientés).
• L’ordre d’un graphe est son nombre n de sommets.
• La taille d’un graphe est son nombre m d’arêtes.

La recherche d'un plus "court" chemin d'un point à


un autre est un problème de la vie quotidienne. Il a
d’ailleurs donné lieu aux développements de sites
Internet qui se proposent de déterminer pour vous le
meilleur itinéraire que ce soit en distance, en temps
ou en coût. Il suffit de taper "recherche d’itinéraire"
sur un navigateur pour s’en convaincre !
On imagine aisément que ce type de problème est
modélisable par un graphe et par la recherche sur ce
graphe du "meilleur chemin".

Soit un chemin de p sommets (x1, x2, …, xp),


de ce chemin est égale à
𝒑 − 𝟏. Cette longueur correspond au nombre d’arcs
qu’il faut parcourir pour aller de x1 à xp.

Le d’un sommet x est la longueur au sens des


arcs du plus long chemin d’extrémité x.
2 7

5
6
1

3 4

L’ordonnancement par niveau permet souvent une


représentation plus simple du graphe, les sommets
étant disposés de gauche à droite par ordre croissant
de niveau.

R
• Soit G = (X, U) un graphe (orienté ou non) et soit
une fonction
𝑳∶ 𝑼⟶ℝ
𝒖 = (𝒙, 𝒚) ⟼ 𝑳(𝒖) = 𝑳(𝒙, 𝒚)
qui à chaque arc (ou arête) associe une valeur
(poids, coût, longueur, distance, débit, ...).
G = (X, U, L) est appelé un graphe valué.
• Soit C(x, y) un chemin dans G du sommet x vers le
sommet y. La valeur de ce chemin est
𝑳(𝑪(𝒙, 𝒚)) = ∑ 𝑳(𝒖)
𝒖∈𝑪(𝒙,𝒚)
C’est la somme des valeurs des arcs le long de ce
chemin. Si C(x, y) ne contient aucun arc (ce qui
implique que x = y) on pose L(C(x, y)) = 0.

Les graphes valués servent à résoudre de


nombreux problèmes d’optimisation et des
problèmes d’ordonnancement.
L'algorithme de Ford-Dantzig résout un problème de
plus court chemin. Il sert à trouver un chemin
optimal (le plus court ou bien le plus long) entre deux
sommets d'un graphe orienté. Le graphe peut être
avec ou sans circuit et les poids (longueur) peuvent
être positifs ou négatifs. Il tient à jour une structure
de données que nous appelons ici Sac, qui contient au
départ le sommet initial.

Les sommets du graphes


sont notés x0, x1, …, xn-1 ; l’arc (xi,xj) est évalué par
un coût cij ; le sommet x0 est le sommet choisi au
départ ; on cherche les chemins de valeur minimale
de x0 vers les autres sommets xi .

Affecter à x0 un «poids» 0 = 0 et numéroter les autres


sommets dans un ordre quelconque en leur affectant
un «poids» i = + et un précédent 𝐏(𝐱𝒊 ) = .

On dit qu’on a relaxé l’arc (i,j) :


C’est-à-dire :

Tant que le Sac n’est pas vide :


• On prend un sommet i dans le Sac et on relaxe
(c’est si possible) tous les arcs (i,j) de G ;
• Si (i,j) est relaxé alors on met j dans le Sac ;
• Etc… Jusqu’à ce que le Sac soit vide.

On modifie l’algorithme de
DANTZIG dans le cas d’une minimisation de la façon
suivante : on initialise i par 0 = 0 et les autres par
𝛌𝐢 = −. On remplace dans la relaxation > par <.

x1 7
2
1
x4
x3
x0 1 4
5

x2
On sélectionne successivement les villes en
commençant par celle de départ, D. C'est
l'algorithme qui impose l'ordre de sélection. Dans le
tableau que l'on va construire, 6(E) dans la colonne F
par exemple signifie que provisoirement, la plus
courte distance entre D et F est de 6 km au total en
passant par E. Lorsque la ville F sera sélectionnée, le
provisoire deviendra définitif (case sur fond gris qui
n'est plus modifiée par la suite).
Le travail peut être fait sur tableur : une nouvelle
ligne du tableau est créée par copier-coller à chaque
étape.

B est à une distance totale de 3 km : on note 3(D)


dans la colonne B.
E est à une distance totale d' 1 km : on note 1(D)
dans la colonne E.
Pour les autres villes, pas encore visitées, on note
« inf » pour infini.
La prochaine ville sélectionnée est E (plus courte
distance : 1 km).
D B E C F A Prochaine ville sélectionnée

3(D) 1(D) inf inf inf E


B est à une distance totale de 2 km (1+1) : on note
2 (E) dans la colonne B car 2 est plus petit que 3
déjà présent. Si le résultat est plus grand, on ne
change rien.
Idem en l'absence de route directe entre E et B.
C est à une distance totale de 4 km (1+3) : on note
4 (E) dans cette colonne.
F est à une distance totale de 6 km (1+5) : on note 6
(E) dans la colonne F.
A n'est pas directement reliée à E : on ne change
rien dans la colonne A.
La prochaine ville sélectionnée est B (plus courte
distance : 2 km).
D B E C F A Prochaine ville sélectionnée

2(E) 1(D) 4(E) 6(E) inf B

D B E C F A Prochaine ville sélectionnée

2(E) 1(D) 4(E) 6(E) inf C


D B E C F A Prochaine ville sélectionnée

2(E) 1(D) 4(E) 5(C) 7(C) F

D B E C F A Prochaine ville sélectionnée


2(E) 1(D) 4(E) 5(C) 6(F) A

Puisqu'on a mémorisé à chaque fois la ville


précédente, on remonte à la ville de départ par le plus
court chemin.
Dans la colonne A, on voit qu'on vient de F. On
regarde dans la colonne F : on arrive en F par C. Etc.
On obtient AFCED. Le plus court chemin est donc
DECFA avec une distance totale de 6 km (résultat
direct, voir colonne A, puisqu'on mémorise à chaque
fois la distance totale).
Les villes sélectionnées sont d'abord D, puis E et B,
puis C et F, puis A.
L’objectif de ce cours est de vous montrer comment
utiliser le logiciel GRIN pour résoudre quelques
problèmes liés au domaine de l’optimisation multi-
objectifs c’est à dire multicritères et en particulier
l’optimisation dans les graphes ou éventuellement
dans les réseaux.
Le logiciel GRIN est un logiciel gratuit, éducatif et
incomplet. Son créateur a laissé des trous pour que
l’utilisateur puisse l’améliorer. GRIN permet :
• de dessiner des graphes orientés ou non orientés et
éventuellement les analyser ;
• de produire la matrice d'adjacences ou la matrice
booléenne d'après le dessin du graphe ;
• de colorer des graphes ;
• de trouver le plus court chemin dans un graphe ;
• de trouver les chaines ou les cycles eulériens et ha-
miltoniens ;
• de trouver l’arbre couvrant de poids minimum ;
• etc.

Voir lien : https://www.apprendre-en-ligne.net/graphes/logiciel/index.html

L'utilisation du logiciel GRIN se fait en deux parties


essentielles : le dessin et l’analyse.
Comme pour tout logiciel de dessin (type Paint),
l’utilisateur dispose d'une planche à dessiner vierge
et d'une palette d'outils qui regroupe toutes les
options graphiques qui seront activé au cours du
dessin et qui sont résumés dans le tableau suivant :

Bouton Application
New page Ouvre une nouvelle feuille à dessin vierge.
Open Permet de charger une page préalablement enregistrée.
Save Permet de sauvegarder le graphe dessiné.
Add point Permet d'ajouter un sommet en cliquant sur la feuille.
Permet d'ajouter un arc (ou arête) en cliquant sur le
Add edge
sommet de départ puis sur celui d'arrivée.
Permet de supprimer un sommet ainsi que tous les arcs
Delete point
(ou arêtes) incident à ce sommet.
Delete edge Permet de supprimer un arc (ou arête).
Delete component Permet de supprimer une composante connexe du graphe.
Delete all Efface la feuille.
Move point Permet de déplacer un sommet déjà construit.
Permet de déplacer une composante connexe déjà
Move component
construite.
Permet de choisir entre graphe orienté ou non-orienté
Change type of the
(uniquement utilisable avant d'avoir tracé le premier arc
net
ou arête).
Increase X and Y Augmente la hauteur et la largeur du graphe
size simultanément.
Increase X size Augmente la largeur du graphe.
Increase Y size Augmente la hauteur du graphe.
Decrease X and Y
Réduit la hauteur et la largeur du graphe simultanément.
size
Decrease X size Réduit la largeur du graphe.
Decrease Y size Réduit la hauteur du graphe.
Adapte automatiquement la taille du graphe à la taille de
Fit to screen
l'écran
Show report file Affiche le Rapport sur le graphe
Clear report file Efface le contenu du rapport

Ajoutons qu'il est possible en double cliquant sur un


sommet de modifier ses caractéristiques (couleur,
forme, nom ...)
Il existe d'autres commandes à découvrir qui
permette la coloration du graphe, le calcul de densité
des sommets ou encore la recherche des parcours et
cycles Hamiltonien. De plus GRIN dispose d'une aide
(en anglais) expliquant la plupart des commandes.
Une fois le graphe est modélisé et dessiné, il est
possible d'analyser ces différentes propriétés grâce
aux commandes disponibles. Voici une petite
sélection d'applications pour mieux comprendre
l’utilisation du logiciel GRIN sous forme des TPs :

Soit le graphe G suivant :

1.
2.

1. Voir Logiciel ;
2. Les commandes "Eulerian path" et "Eulerien
cycle" donnent respectivement les chemins et les
cycles Eulériens du graphe (s'ils existent).
Ici le rapport donne comme chemin eulérien :
(5,2,7,6,1,5,4,3,2)
et comme cycle eulérien
"Eulerian cycle doesnt exists! procedure
terminated"
En effet il n'existe pas de cycle eulérien sur ce graphe
car le graphe ne vérifie par le premier point du
Théorème d’EUTER (par exemple le degré du
sommet 2 est impair).


Soit le graphe G suivant :
3.
a.
Le logiciel GRIN donne le commentaire et le graphe
suivants :
Shortest Path
Time : 18:35:22
Date : 29/03/2020
NetWork : E8
Type : undirNet
Number of Points : 9
Number of Edges : 14
---------------------------------------------
Source = 1 Sink = 9
Shortest Path from Source (1) to Sink (9) has Length : 20
Path from 1 to Sink 9 :
(1, 2) (2, 5) (5, 7) (7, 9)
Procedure complete.
b.
Le logiciel GRIN donne le commentaire et le graphe
suivants :
Min. Spanning Tree
Time : 18:39:07
Date : 29/03/2020
NetWork : E8
Type : undirNet
Number of Points : 9
Number of Edges : 14
---------------------------------------------
Min. Spanning Tree Weight = 37
Edges of Min. Spanning Tree:
( 1, 4), ( 1, 2), ( 2, 5), ( 5, 6), ( 6, 7),
( 5, 3), ( 6, 8), ( 7, 9).
Procedure complete.

L’arbre couvrant de coût minimum


est :
((𝟏, 𝟒), (𝟏, 𝟐), (𝟐, 𝟓), (𝟓, 𝟔), (𝟔, 𝟕), (𝟓, 𝟑), (𝟔, 𝟖), (𝟕, 𝟗))
et sa longueur est 37.

Modélisation

On modélise le problème en passant par un graphe


construit de la façon suivante :
• On associe à chaque produit Pi (𝟏 ≤ 𝒊 ≤ 𝟔), un
sommet 𝒊 du graphe ;
• Lorsque 2 produits ne peuvent pas être
transportés sur le même wagon on trace une arête
entre les sommets qui leurs sont associés.
On souhaite résoudre le problème en respectant deux
contraintes :
• 2 produits 𝑷𝒊 et 𝑷𝒋 ne peuvent pas être dans le
même wagon si et seulement i et j sont adjacents et
par suite ne doivent pas avoir la même couleur ;
• Il faut utiliser le moins de wagons possible et par
suit le moins de couleurs possible.
Le logiciel GRIN résout aisément ce problème. On
obtient le graphe suivant :

Etude du graphe

Il suffit alors d'appliquer l'option "point coloration"


de GRIN, on obtient alors le commentaire le graphe
suivants :
Quick Coloration 1
Time : 17:19:04
Date : 29/03/2020
NetWork : NoName
Type : undirNet
Number of Points : 6
Number of Edges : 7
---------------------------------------------
Number of Colors = 3
Point`s Coloration :
Point 1 2 3 4 5 6
Color 1 2 3 2 1 2
Procedure complete.

On a donc 3 couleurs minimum pour colorer ce


graphe.

Application

On applique ce résultat à ce problème de planification


du transport de ces produits, on obtient :
• Nombre de Wagons = nombre de couleurs = 3 ;
• Solution optimale :
Wagon Wi Produits transpostés dans Wi
Wagon W1 P1 et P5
Wagon W2 P2, P4 et P6
Wagon W3 P3

:
Il faut aller dans "property" puis "network", enfin
cliquer sur "shortest path".
Ensuite il faut sélectionner le sommet 1 et le sommet
18, on obtient alors le rapport suivant :
Shortest Path
Time : 11:20:42
Date : 04/06/2006
NetWork : NoName
Type : undirNet
Number of Points : 18
Number of Edges : 21
---------------------------------------------
Source = 1 Sink = 18
Shortest Path from Source (1) to Sink (18) has Length : 5
Path from 1 to Sink 18 :
(1, 2) (2, 5) (5, 8) (8, 7) (7,18)
Procedure complete.
C'est à dire le chemin le plus court joignant le
sommet 1 et le sommet 18 est donc (1-2-5-8-7-18) et le
graphe devient :
Modélisation

On modélise le problème en passant par un graphe


construit de la façon suivante :
• On associe à chaque pays un sommet du graphe ;
• Lorsque 2 pays se touchent on trace une arête
entre les sommets qui leurs sont associés.
On obtient :

Etude du graphe

Il reste donc à étudier le graphe :


Il suffit alors d'appliquer l'option "point coloration"
de GRIN, on obtient alors :

Application

On applique ce résultat à la carte, on obtient :


(voir TP)
Le logiciel yEd permet de créer des diagrammes
professionnels. Il est open source et marche sous
plusieurs systèmes d’exploitation comme Windows,
Mac ou Linux.
Le logiciel yEd est un sérieux concurrent aux logiciels
professionnels comme Visio. Sa simplicité
d’utilisation, ces nombreuses options, le nombre de
bibliothèques graphiques font de lui un parfait
compagnon dans la création de diagrammes. De
nombreuses formes de diagrammes sont également
disponibles.
Des exemples vous permettent de rapidement vous
familiariser avec le logiciel.

Présentation de quelques fonctions de base de Yed,


un éditeur de graphes qui permet de : dessiner des
graphes, les modifier, les sauvegarder, les exporter
vers divers formats, etc.
Ce logiciel est simple à utiliser et très utile pour
illustrer des documents (word, LaTex,...) ou des
présentations.
La page web de yed (gratuit) se trouve à l'URL
suivante : https://www.yworks.com/products/yed.
yEd est disponible gratuitement et fonctionne sur
toutes les principales plates-formes: Windows, Unix /
Linux et macOS.

Voir le lien suivant :


https://www.numelion.com/creer-des-diagrammes-avec-yed.html

En utilisant le logiciel yEd, dessinez les graphes


suivants :

Vous aimerez peut-être aussi