35
INFORMATIQUE 3 http://www.larbiguezouli.com Classes Préparatoires en Sciences et Technologies Classes Préparatoires en Sciences et Technologies Classes Préparatoires en Sciences et Technologies Classes Préparatoires en Sciences et Technologies Présenté par D r Larbi GUEZOULI 2 INFORMATIQUE 3 Introduction à la théorie des graphes [9 Cours + 9 TD] 1. Le concept de graphes 2. Algorithmes de base en théorie des graphes Le plus court chemin Les flots 3. Les notions de base des arbres Introduction à la programmation linéaire [6 Cours + 6 TD] 1. Le concept de programmation linéaire (variables, contraintes et fonction ‘objectif’) 2. Résolution graphique des problèmes de programmation linéaire à deux variables 3. Résolution des problèmes linéaires par la méthode du simplexe 4. Dualité: définitions et notions de base Mode d’évaluation : Interrogation Devoir surveillé Travaux pratiques Examen final 3 INTRODUCTION À LA THÉORIE DES GRAPHES 1. Le concept de graphes Dans la vie quotidienne, pour expliquer un problème on utilise un graphe, par exemple: tracer un itinéraire, arbre généalogique, organigramme d’une institution, … Ce qui veut dire que nous sommes tous familiarisés avec la notion de graphe. On peut dire qu’un graphe constitue donc une méthode de pensée qui permet de modéliser un problème. 4 INTRODUCTION À LA THÉORIE DES GRAPHES 1. Le concept de graphes (suite) Exemple: Leonhard Euler à posé un problème de promenade dans sa ville Königsberg (aujourd'hui nommé Kaliningrad) en Russie. Leonhard Euler (1707-1783)

Les flots INFORMATIQUE 3 - larbiguezouli.com

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Les flots INFORMATIQUE 3 - larbiguezouli.com

INFORMATIQUE 3

http://www.larbiguezouli.com

Classes Préparatoires en Sciences et TechnologiesClasses Préparatoires en Sciences et TechnologiesClasses Préparatoires en Sciences et TechnologiesClasses Préparatoires en Sciences et Technologies

Présenté par Dr Larbi GUEZOULI22

INFORMATIQUE 3

• Introduction à la théorie des graphes [9 Cours + 9 TD]

1. Le concept de graphes2. Algorithmes de base en théorie des graphes

• Le plus court chemin• Les flots

3. Les notions de base des arbres

• Introduction à la programmation linéaire [6 Cours + 6 TD]

1. Le concept de programmation linéaire (variables, contraintes et fonction ‘objectif’)

2. Résolution graphique des problèmes de programmation linéaire à deux variables

3. Résolution des problèmes linéaires par la méthode du simplexe4. Dualité: définitions et notions de base

Mode d’évaluation : InterrogationDevoir surveilléTravaux pratiquesExamen final

33

INTRODUCTION À LA THÉORIE

DES GRAPHES

1. Le concept de graphesDans la vie quotidienne, pour expliquer un problème on

utilise un graphe, par exemple: tracer un itinéraire,arbre généalogique, organigramme d’une institution, …

Ce qui veut dire que nous sommes tous familiarisésavec la notion de graphe.

On peut dire qu’un graphe constitue donc uneméthode de pensée qui permet de modéliser unproblème.

44

INTRODUCTION À LA THÉORIE

DES GRAPHES

1. Le concept de graphes (suite)Exemple: Leonhard Euler à posé un problème de

promenade dans sa ville Königsberg (aujourd'hui nomméKaliningrad) en Russie.

Leonhard Euler

(1707-1783)

Page 2: Les flots INFORMATIQUE 3 - larbiguezouli.com

55

INTRODUCTION À LA THÉORIE

DES GRAPHES

1. Le concept de graphes (suite)Il cherche à savoir s’il peut se promener dans les rues

de Königsberg en passant une et une seule fois parchaque pont, et de revenir à son point de départ.

Il a démontrer qu’il ne peut pas faire une tellepromenade en caractérisant des graphes (que l’onappelle actuellement graphes eulériens).

66

INTRODUCTION À LA THÉORIE

DES GRAPHES

1. Le concept de graphes (suite)Nous allons voir quelques définitions avant de

continuer dans ce cours.

1.1.Définitions d’un grapheUn graphe G est défini par deux ensembles: S={s0, s1,

…, sn} ensemble de sommets et A={a1, a2, …, am} ensembled’arêtes.

77

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.1.Définitions d’un graphe (suite)Ou: un graphe est un ensemble fini de points appelés

sommets, nœuds ou cellules. Ces derniers sontconnectés par des liens appelés arêtes (ou arcs).

88

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.2. Composantes d'un grapheL’ordre d’un graphe est le nombre de sommets du

graphe.

Une boucle est une arête reliant un sommet à lui-même.

Un sommet isolé s’il n’y a aucune arête qui le relie àd’autres sommets.

Deux sommets adjacents s’ils sont reliés par unearête.

Un arc est une arête orientée.

Page 3: Les flots INFORMATIQUE 3 - larbiguezouli.com

99

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.2. Composantes d'un graphe (suite)Le degré d'un sommet est le nombre d'arêtes ayant

une extrémité en ce sommet. Par exemple, les nœuds dugraphe suivant sont tous de degré 3.

1010

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.2. Composantes d'un graphe (suite)

Un sommet isolé est un sommet de degré zéro (sansarête connectée).

Un sommet pendant est un sommet de degré 1 (reliéà une seule arête).

isolé

pendant

1111

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes1.3.1. Graphe simple

C’est un graphe sans boucles et entre deux sommets ily a au plus une arête.

1.3.2. Multigraphe

Un multigraphe est un graphe pour lequel il peutexister plusieurs arêtes entre deux sommets ou desboucles . 1

32

4

1

32

4

Graphe simple Multigraphe 1212

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.3. Connexité

Un graphe connexe non orienté est un graphe où àpartir d’un sommet on peu rejoindre tous les autressommets.

Pour un graphe orienté, on parle de connexité si enignore l'orientation des arêtes, le graphe devient connexe.

En distingue 2 types de connexités: fortement connexeet faiblement connexe (sections: 1.3.5 et 1.3.6)

Un graphe non connexe se décompose en plusieurscomposantes connexes.

Page 4: Les flots INFORMATIQUE 3 - larbiguezouli.com

1313

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.3. Connexité (suite)

Exp. G = (S, A) est un graphe non connexe avecS={1,2,3,4,5,6} et A={(1,3), (1,4), (3,4), (2,5), (2,6)}.

Il contient 2 composantes connexes:

S1={1,3,4}; A1={(1,3), (1,4), (3,4)}.

S2={2,5,6}; A2={(2,5), (2,6)}.

Graphe non connexe

1

3

2

45

6

1414

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)

Un isthme est une arête dont la suppression augmentele nombre de composantes connexes.

1

3

2

45

6

isthmes

1

3

2

45

6

1515

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)Un point d'articulation est un sommet tel que sasuppression augmente le nombre de composantesconnexes du graphe initial.

1

3

2

45

6

Point d’articulation

1616

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.4. Graphe complet

Un graphe complet avec n sommets (noté Kn) est ungraphe possédant n sommets pour lequel chaque sommetest relié à tous les autres.

Exp. G = (S, A) est un graphe complet (noté aussi K3)avec S={1,2,3} et A={(1,2), (1,3), (2,3)}.

Graphe complet

1

3

2

Page 5: Les flots INFORMATIQUE 3 - larbiguezouli.com

1717

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)Avant de voir les autres types nous devons définir

quelques concepts.

Une chaîne est une séquence ordonnée d'arêtes telleque chaque arête ait une extrémité en commun avecl'arête suivante.

Une chaîne élémentaire ne passe pasdeux fois par le même sommet.

Une chaîne simple n'utilise pas deuxfois la même arête.

1818

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)Un chemin est une chaîne telle que l'extrémité

terminale d'un arc coïncide avec l'extrémité initiale del'arc suivant.

Le premier sommet du chemin est appelé nœud initialdu chemin, et le dernier est appelé nœud terminal.

Chemin (1,2,5)

1 2

3 4

5

Nœud initial

Nœud terminal

1919

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)Un cycle est une chaîne simple dont les sommets des

extrémités coïncident.

Un circuit est un chemin dont le nœud initial est lenœud terminal. On peut dire qu’une boucle est un circuitde longueur 1.

Circuit (1,2,5,4,3,1)

1 2

3 4

5

Nœud initial

et terminal

Cycle (1,2,5,4,3,1)

1 2

3 4

5

Nœud initial

et terminal

2020

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.5. Graphe fortement connexe

Un graphe orienté est fortement connexe s'il existeun chemin entre chaque deux sommets dans les deuxsens.

Exp. G = (S, A) est un graphe fortement connexe avecS={1,2,3,4,5} et A={(1,2), (2,4), (4,3), (3,1), (2,5), (5,4)}.

Graphe fortement connexe

1 2

3 4

5

Page 6: Les flots INFORMATIQUE 3 - larbiguezouli.com

2121

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.6. Graphe faiblement connexe

Un graphe orienté est faiblement connexe s'il y aune chaîne entre n'importe quelle paire de sommets sansconsidérer l'orientation des arcs.

Exp. G = (S, A) est un graphe faiblement connexe avecS={1,2,3,4,5} et A={(1,2), (2,4), (4,3), (3,1), (2,5), (5,4)}.

Graphe faiblement connexe

1 2

3 4

5

2222

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.7. Graphe biparti

Un graphe est biparti si l’ensemble des sommetspeut être réparti en deux sous-ensembles disjoints U etV tels que chaque arête relie un sommet de U à unsommet de V.

Graphe biparti

2 13

5 64

U

V

2323

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.7. Graphe biparti (suite)

Un graphe biparti est complet si tous les ‘n’ sommetsde U sont connectés à tous les ‘m’ sommets de V, et onnote Kn,m.

Graphe biparti complet K3,3

2 13

5 64

U

V

2424

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.8. Graphe d’intervalles

Un graphe d’intervalles est un graphe dont lessommets représentent des intervalles réels I1, …, In etdeux sommets i et j seront reliés par une arête s’il y aune intersection entre leurs intervalles: Ii ∩ Ij ≠ ∅.

Graphe d’intervalles

2

13

5

6

4

7

I1 I5 I6

I3 I7

I2 I4

Page 7: Les flots INFORMATIQUE 3 - larbiguezouli.com

2525

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)Exp. Soit quatre intervalles qui forment le graphe

suivant sous forme d’un carré sans diagonale.

On remarque que l’intervalle I1 ne peut pas êtredessiné sans coupure.

Ça représente le théorème combinatoire dumathématicien hongrois György Hajós proposé en 1961.

2 1

3 4I1 I1

I2I4

I3

2626

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.9. Graphe eulérien

Une chaîne eulérienne est une chaîne qui passe uneseule fois par toutes les arêtes du graphe. Si la chaîneest fermée on l’appel cycle eulérien.

Chaîne eulérienne (1,2,3,1,4,5,2,4,3)

Pas de cycle eulérien

1 2

3 4

5

2727

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.9. Graphe eulérien (suite)

Un graphe eulérien est un graphe qui contient aumoins un cycle eulérien.

Cycle eulérien (1,2,5,4,3,6,2,3,5,6,1)

Graphe eulérien

2 3

6 5

41

2828

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.9. Graphe eulérien (suite)

Pour déterminer un cycle eulérien, on utilisel’algorithme suivant:

Algorithme de cycle eulérien d’un graphe G:

1. Construire un cycle C0 le pluslong possible: (1,2,3,4,1)

2. Supprimer les arêtes du cycle C0;

1 2

4 3

6

5

Page 8: Les flots INFORMATIQUE 3 - larbiguezouli.com

2929

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)Algorithme de cycle eurélien (suite)

3. En commençant d’un sommet du cycle C0 qui a undegré non nul, on construit un autre cycle C1;(2,5,6,2)

4. Supprimer les arêtes du cycle C1;

5. Et on boucle sur les étapes 3 & 4 jusqu’à ce qu’il nereste plus d’arrêtes

6. On insère dans C0 tous les cycles construits à la placedes sommets de début de ces cycles.

Suite de l’exemple: (1,2,5,6,2,3,4,1)3030

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.9. Graphe eulérien (suite)

Un graphe semi-eulérien est un graphe qui contientdes chaînes eulériennes et pas de cycles eulériens.

Chaine eulérienne (2,1,4,5,2,3,4)

Pas de cycle eulérien

Graphe semi-eulérien

2

3 5

4

1

3131

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.9. Graphe eulérien (suite)

Théorème 1: Un multigraphe connexe contient uncycle eulérien si et seulement si chacun de ses sommetsest de degré pair.

Exp.

En appliquant l’algorithme de cycle eurélien en trouve:

a,b,c,d,g,k,h,g,f,d,b,e,f,i,h,j,i,e,a

b

c

e

f

d

a

h

g

kj

i

3232

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.9. Graphe eulérien (suite)

Théorème 2: Un multigraphe connexe contient unechaîne eulérienne et non un cycle eulérien si etseulement s'il a exactement deux sommets de degréimpair.

Exp. Chemin eurélien: 4,2,3,4,5,2,1,3,5

Pas de cycle eurélien. 2

3

541

Page 9: Les flots INFORMATIQUE 3 - larbiguezouli.com

3333

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien

Une chaîne hamiltonienne est une chaîne qui passeune seule fois par tous les sommets du graphe. Si lachaîne est fermée on l’appel cycle hamiltonien.

Chaîne hamiltonienne (1,2,5,4,3)

Pas de cycle hamiltonien

1 2

3 4

5

William Rowan Hamilton

(1805 – 1865) 3434

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Un Graphe hamiltonien est un graphe qui contient uncycle hamiltonien.

Cycle hamiltonien (1,2,5,4,3,1)

Graphe hamiltonien

1 2

3 4

5

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Un graphe semi-hamiltonien est un graphe quicontient des chaînes hamiltoniennes et pas de cycleshamiltoniens.

Chaine hamiltonienne (1,2,3,4,5)

Pas de cycle hamiltonien

Graphe semi-hamiltonien

2 4

53

1

3535

INTRODUCTION À LA THÉORIE

DES GRAPHES

3636

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Théorème de Dirac: Soit G(S,A) un graphe simple etnon orienté avec n ≥ 3 sommets. Si pour chaque sommetx de G, degré(x) ≥ (au moins égale) n/2, alors il esthamiltonien.

∀� ∈ �, deg � ≥ �2 ⇒ � ��� ℎ����������a b a b

0 0 1Cas non intéressants

0 1 1

1 0 0 C’est le cas interdit selon Dirac

1 1 1 C’est le cas visé par Dirac

Page 10: Les flots INFORMATIQUE 3 - larbiguezouli.com

3737

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Exp.

∀� ∈ �, deg � ≥ 2.5 ⇒ � ��� ℎ����������Pas de cycle hamiltonien

L’implication est vrai (00)

1

2

3 4

5

∀� ∈ �, deg � ≥ 2.5 ⇒ � ��� ℎ����������Cycle hamiltonien (1,2,5,4,3,1)

Graphe hamiltonien

L’implication est vrai (11)

12

34

5

3838

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Exp. (suite)

∀� ∈ �, deg � ≥ 2.5 ⇒ � ��� ℎ����������Cycle hamiltonien (1,2,5,4,3,1)

Graphe hamiltonien

L’implication est vrai (01)

12

34

5

3939

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Théorème d’Ore: Soit G(S,A) un graphe simple et nonorienté avec n ≥ 3 sommets. Si pour toute paire desommets (a, b) non adjacents (a, b) ∉∉∉∉ A, on adeg(a)+deg(b) ≥≥≥≥ n alors G est hamiltonien.

∀ �, � ∈ �� �� �, � ∉ �,deg � + deg (�) ≥ � ⇒ � ��� ℎ����������4040

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Exp.

∀ �, � ∈ ��,�, � ∉ �, deg � + deg � ≥ 5 ! ⇒ � ��� ℎ����������Cycle hamiltonien (1,2,5,4,3,1)

Graphe hamiltonien

L’implication est vrai (11)

12

34

5

∃ �, � ∈ ��,�, � ∉ �,deg � + deg � < 6 ! ⇒ � ��� ℎ����������Cycle hamiltonien (1,2,3,4,5,6,1)

L’implication est vrai (01)

1 2

5 4

36

Page 11: Les flots INFORMATIQUE 3 - larbiguezouli.com

4141

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Exp. (suite)

∃ �, � ∈ ��,�, � ∉ �,deg � + deg � < 6 ! ⇒ � ��� ��� ℎ����������Chaîne hamiltonienne (1,2,3,4,5,6)

L’implication est vrai (00)

1 2

5 4

36

4242

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.10. Graphe hamiltonien (suite)

Quelques propriétés de graphe hamiltonien

• Un graphe avec un de ses sommets est de degré 1 nepeut pas être hamiltonien;

• Les arêtes liées à un sommet de degré 2 dans ungraphe hamiltonien doivent appartenir au cyclehamiltonien;

• Les graphes complets Kn sont hamiltoniens.

4343

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.11. Graphe planaire

Un graphe est planaire s'il peut être dessiné sur unplan sans que les arêtes ne se croisent.

Exp: K1,K2,K3,K4 sont planaires, mais K5 n’est pasplanaire.

4444

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.11. Graphe planaire (suite)

Dans un graphe planaire, une face F est une régiondélimitée par un ensemble d’arrêtes et que aucunearrête ne traverse cette région.

Le degré de F deg(F) est le nombre d’arrêtes sur lesfrontières de F.

1 2

3 4

A

B

C

D

Deg(A) = 3

Deg(B) = 3

Deg(C) = 3

Deg(D) = 3

Page 12: Les flots INFORMATIQUE 3 - larbiguezouli.com

4545

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.11. Graphe planaire (suite)

Théorème 1: Soit G un graphe planaire et a lenombre d'arêtes de G, alors:

% deg & = 2 · �)∈)*+,-1 2

3 4

A

B

C

D

Deg(A) + Deg(B) + Deg(C) + Deg(D) = 12 = 2*a 4646

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.11. Graphe planaire (suite)

Théorème 2: Le graphe biparti complet K3,3 n'estpas planaire.

Graphe biparti complet K3,3

Non planaire

2 13

5 64

4747

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.11. Graphe planaire (suite)

Théorème 3: Le graphe complet K5 n'est pasplanaire.

Graphe complet K5

Non planaire

2

13

54

4848

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.11. Graphe planaire (suite)

Théorème d’Euler: Soit G un graphe planaire connexeet soit s le nombre de sommets, a le nombre d'arêtes etf le nombre de faces. � − � + / = 2

Exp. s = 6, a = 10, f = 6

6 – 10 + 6 = 2

Page 13: Les flots INFORMATIQUE 3 - larbiguezouli.com

4949

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.11. Graphe planaire (suite)

Critère de graphes planaires: Soit G un graphesimple planaire connexe avec s ≥ 3.

Et soit ‘s’ nombre de sommets, ‘a’ nombre d'arêtes de G:� ≤ 3 · � − 6Pourquoi?

Nous avons ∑ deg & ≥ 3 · /)∈)*+,- puisque dans ungraphe simple, chaque face est limitée par au-moins 3arrêtes. Et nous avons ∑ deg & = 2 · �)∈)*+,-

Donc 2 · � ≥ 3 · / ⇒ − 3 · / ≥ −2 · �5050

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.3. Quelques types de graphes (suite)1.3.11. Graphe planaire (suite)

Donc 2 · � ≥ 3 · / ⇒ − 3 · / ≥ −2 · �et nous avons � − � + / = 2⇒ / = 2 + � − �⇒ − 3 · (2 + � − �) ≥ −2 · �⇒ − 6 − 3 · � + 3 · � ≥ −2 · �⇒ 3 · � − 6 ≥ �

5151

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.4. Représentations non graphiques d’un grapheOn peut représenter un graphe par une matrice

d’adjacences ou des listes d’adjacences.

1.4.1. Matrice d’adjacences

On peut représenter un graphe par une matriceM � × � de n lignes et n colonnes.

Les lignes et les colonnes représentent les sommetsdu graphe.

L’élément M(i,j) = k représente le nombre d’arrêtesentre les sommets i et j (sommets adjacents).

5252

INTRODUCTION À LA THÉORIE

DES GRAPHES

Caractéristiques de la matrice d’adjacences

• Matrice carrée;

• Un 1 sur la diagonale indique une boucle;

• Elle est symétrique dans le cas d’un graphe non-orienté;

Exp.

2

13

5

4

5 =0 1 1 0 11 0 1 0 11 1 0 0 10 0 0 0 11 1 1 1 0

Page 14: Les flots INFORMATIQUE 3 - larbiguezouli.com

5353

INTRODUCTION À LA THÉORIE

DES GRAPHES

1.4.2. Listes d’adjacences

On peut représenter un graphe par des listes oùchaque sommet possède sa liste de sommets auxquels ilest adjacent.

Exp.

2

13

5

4

1: 2,3,5

2: 1,3,5

3: 1,2,5

4: 5

5: 1,2,3,4

5454

INTRODUCTION À LA THÉORIE

DES GRAPHES

2. Algorithmes de base en théorie des graphes

2.1. Le plus court chemin (Algorithme de Djikstra)

L'objectif du problème du plus court chemin est decalculer un chemin entre deux sommets d'un graphe quiminimise une certaine valeur.

Nous allons considérer un graphe orienté avec desarcs pondérés par des poids.

Il existe plusieurs algorithmes, nous allons voirl’algorithme de Djikstra.

5555

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.1. Le plus court chemin (Algorithme de Djikstra)

Soit un graphe orienté et pondéré. On cherche àtrouver le chemin qui mène du sommet ‘s’ au sommet ‘t’avec un poids minimum.

Chemin: s635tPoids: 14+18+2+16=50

5656

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.1. Le plus court chemin (Algorithme de Djikstra)(suite)

Les poids des arcs sont des entiers positifs quipeuvent être: des distances, des tarifs, …

Le sommet ‘s’ est appelé la source.

La distance de ‘s’ à ‘t’ est la somme des poids des arcsdu chemin minimal entre ‘s’ et ‘t’.

Le but est de trouver la distance entre ‘s’ et tous lessommets du graphe.

Page 15: Les flots INFORMATIQUE 3 - larbiguezouli.com

5757

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.1. Le plus court chemin (Algorithme de Djikstra)(suite)

Les chemins minimaux forment un arbre.

On représente cette arbre par deux tables:

dist[i]: contient la distance entre ‘s’ et ‘i’;

pred[i]: contient le sommet qui précède ‘i’.

5858

INTRODUCTION À LA THÉORIE

DES GRAPHES

Algorithme de Dijkstra pour former l’arbre deschemins minimaux

Soit l’ensemble S contenant les sommets dont ladistance à partir de ‘s’ est connue.

• Initialiser S par {s}

• Initialiser dist[s] à 0, et dist[ti] à ∞ pour tous lesautres sommets

• Répéter jusqu’à ce que S contient tous les sommetsconnectés à ‘s’:– Trouver l’arc ‘a’ entre ‘t1’ et ‘t2’ tel que ‘t1’∈S et ‘t2’∉S et tel

que (dist[t1] + poids(a)) est minimale

– Ajouter ‘t2’ à S; dist[t2]=dist[t1] + poids(a); pred[t2]=t1;

5959

INTRODUCTION À LA THÉORIE

DES GRAPHES

Pour trouver l’arc ‘a’ entre ‘t1’ et ‘t2’ tel que ‘t1’∈S et ‘t2’∉S et telque (dist[t1] + poids(a)) est minimale

6060

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.1. Le plus court chemin (Algorithme de Dijkstra)

Exp.

Soit le graphe pondéré suivant. Appliquer l’algorithmede Dijkstra pour former l’arbre des chemins minimaux.

s2

3

4

5

6

7 8

924

19

15

14 18

26

1116

6

44

20

521

Page 16: Les flots INFORMATIQUE 3 - larbiguezouli.com

6161

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.1. Le plus court chemin (Algorithme de Dijkstra)

Exp. (suite)

L’arbre des chemins minimaux:

s 2 3 4 5 6 7 8

Dist 0 9 32 45 34 14 15 50

Pred s 6 5 3 s s 5

s

2

6

7

3 5

4

8

6262

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2. Problème de flot maximum

On défini un graphe orienté et pondéré G(S, A) pourreprésenter un réseaux informatiques, un réseauxroutiers, …

Exp. 1:

Graphe ou réseau à capacité.

s

1

3

2 t

4

3

1

2

4

21

4

2

6363

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2. Problème de flot maximum (suite)

Chaque arc représente un chemin unidirectionnel,pondéré par le nombre maximal de véhicules quipeuvent passer par heure sur ce chemin. Le problèmeest de trouver le nombre maximal de véhicules quipeuvent voyager du point de départ ‘s’ au point d’arrivée(un puits) ‘t’ en une heure.

6464

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2. Problème de flot maximum (suite)

Ce graphe G(S, A) peut aussi représenter un réseauxélectrique. Et on cherche à trouver le courant maximalqui peut passer d’un point ‘s’ vers un puits ‘t’.

Page 17: Les flots INFORMATIQUE 3 - larbiguezouli.com

6565

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2. Problème de flot maximum (suite)

Dans ce graphe G(S, A), à chaque arc ‘a’ on associe unevaleur positive appelée ‘capacité’ C(a).

Le degré de sortie/d’entrée d’un sommet ‘x’ notéoutdeg(x)/indeg(x) représente la somme des capacitésdes arcs qui sortent du/entrent au sommet ‘x’.

Exp. Dans le graphe de l’exemple précédent:

outdeg(s) = 8 et indeg(1) = 10.

6666

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2. Problème de flot maximum (suite)

Dans un réseau (Graphe orienté et pondéré G(S, A)),un flot est une fonction ϕϕϕϕ qui associe à chaque arc ‘a’une valeur réelle non négative ϕ(a) appelée flot dans ‘a’,tel que:

• Pour chaque arc ‘a’ : ϕ(a) ≤ C(a)

• Pour chaque sommet ‘x’ ∉ {s, t}, on définit ‘x_out’l’ensemble des arcs sortant du sommet ‘x’, et ‘x_in’l’ensemble des arcs entrant à ‘x’ :

% 8(�)9∈9_;<= = % 8(�)9∈9_>?

6767

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2. Problème de flot maximum (suite)

Quelques caractéristiques:

• Un arc ‘a’ est dit saturé si: ϕ(a) = C(a).

• Soit ‘s_out’ l’ensemble des arcs sortant de ‘s’, et ‘t_in’l’ensemble des arcs entrant à ‘t’ :

% 8(�)9∈-_;<= = % 8(�)9∈=_>?

6868

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2. Problème de flot maximum (suite)

Quelques caractéristiques: (suite)

• La somme précédente est appelée ‘Valeur du flot’

% 8(�)9∈-_;<= = % 8 �9∈=_>? = @���AB CA /���Exp. 2: On définit le flotsuivant sur le graphe del’exemple précédent:

s

1

3

2 t

3/4

2/3

1/1

2/2

4/4

0/21/1

0/4

2/2

Page 18: Les flots INFORMATIQUE 3 - larbiguezouli.com

6969

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2. Problème de flot maximum (suite)

Quelques caractéristiques: (suite)

• On voit bien que le flot de l’exemple 2 est un flotmaximal pour le graphe de l’exemple 1 (sa valeur duflot = 6).

• On peut trouver plusieurs flots maximaux dans unréseau mais qui ont la même valeur.

Il existe deux méthodes pour trouver le flot maximal:(Coupe minimale – Chaîne augmentante)

7070

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2.1. Méthode de la coupe minimale

L’étude du flot maximal est attaché au concept decoupe (cut).

Une coupe est un ensemble d’arcs ‘AC’ tel que tous leschemins de ‘s’ à ‘t’ contiennent un arc de ‘AC’.

Autrement dit, une coupe est un ensemble dedéconnexion de ‘s’ et ‘t’.

La capacité d’une coupe est la somme des capacitésde ses arcs.

Nous sommes intéressés par la coupe qui a la capacitéminimale, et on l’appel ‘coupe minimale’

7171

INTRODUCTION À LA THÉORIE

DES GRAPHES

Exp. 3: Une coupe minimale est: {s-3, 2-3, 1-3, 1-t}

La capacité de cette coupe = 6.

Remarque: La coupe ne contient pas l’arc 3-1.

s

1

3

2 t

4

3

1

2

4

21

4

2

7272

INTRODUCTION À LA THÉORIE

DES GRAPHES

Remarques:

La valeur d’un flot maximal ne peut pas dépasser lacapacité d’une coupe minimale.

Théorème (max-flow min-cat):

Dans tout réseau, la valeur du flot maximum est égaleà la capacité de toute coupe minimale.

Page 19: Les flots INFORMATIQUE 3 - larbiguezouli.com

7373

INTRODUCTION À LA THÉORIE

DES GRAPHES

2.2.2. Méthode de la chaîne augmentante

Pour trouver le flot maximum, nous devons définir lanotion de chaîne augmentante.

Une chaîne augmentante µ dans un graphe orienté àcapacités est une chaîne reliant ‘s’ à ‘t’ tel que:

• Pour tout arc ‘a’ de µ orienté de ‘s’ vers ‘t’, ϕ(a) < C(a),on note a ∈ µ+;

• Pour tout arc ‘a’ de µ orienté de ‘t’ vers ‘s’, ϕ(a) > 0, onnote a ∈ µ-;

7474

INTRODUCTION À LA THÉORIE

DES GRAPHES

Exp:

Le flot = 19

La chaîne augmentante (s-3-2-t) permet d’augmenterla valeur du flot par la valeur de:D = ��� min*∈HI J � − 8 � ; min*∈HL 8 � = 4

1 2

3 4

ts

15/16

4/13

4/4

7/10

4/9

11/14

7/7

15/20

4/4

12/12

7575

INTRODUCTION À LA THÉORIE

DES GRAPHES

Exp: (suite)

Le flot = 23

Il n’y a plus de chaînes augmentante à cause des arcssaturés.

1 2

3 4

ts

15/16

8/13

4/4

7/10

0/9

11/14

7/7

19/20

4/4

12/12

7676

INTRODUCTION À LA THÉORIE

DES GRAPHES

L’algorithme pour trouver une chaîne augmentante:

• Marquer la source ‘s’ avec ‘+’;

• Pour tout arc (u,v) ∈ A, faire:– Si ‘u’ est marqué, ‘v’ n’est par marqué et ϕ(u,v) < C(u,v) alors

marquer ‘v’ avec ‘+u’;

– Si ‘v’ est marqué, ‘u’ n’est par marqué et ϕ(u,v) > 0 alorsmarquer ‘u’ avec ‘-v’;

• Répéter la boucle jusqu’à ce qu’on ne peut plusmarquer des nœuds.

Page 20: Les flots INFORMATIQUE 3 - larbiguezouli.com

7777

INTRODUCTION À LA THÉORIE

DES GRAPHES

Si ‘t’ est marqué alors il y a une chaîne augmentante.

Pour trouver la chaîne, il faut suivre le marquage enremontant depuis ‘t’.

Exp. Soit le graphe orienté à capacités suivant.

Appliquer l’algorithmepour trouver une chaîne augmentante.

s-3-5-2-4-ts

1

3

2 t

2/2 1/2

1/4

21/3

2/5

4

6

5

0/1

0/1

2/22/2

1/2

0/1

1/1+

+s

+3-5

+2

+4

7878

INTRODUCTION À LA THÉORIE

DES GRAPHES

Pour trouver le flot maximal, on suit les étapessuivantes (Algorithme de Ford-Fulkerson):

Soit G(S,A) un graphe orienté à capacités (pondéré):

1. On commence par un flot à valeur zéro sur tous lesarcs;

2. Tant qu’il existe une chaîne augmentante µ dans Gfaire:• D ≔ ��� min*∈HI J � − 8 � ; min*∈HL 8 �• ∀� ∈ OP, 8 � ≔ 8 � + D• ∀� ∈ OQ, 8 � ≔ 8 � − D

3. Calculer la valeur du flot du réseau.

7979

INTRODUCTION À LA THÉORIE

DES GRAPHES

Exp.

Trouver le flot maximal.

s

1

3

2 t

0/2 0/2

0/4

20/3

0/5

4

6

5

0/1

0/1

0/20/2

0/2

0/1

0/1

s

1

3

2 t

2/2 2/2

1/4

21/3

2/5

4

6

5

0/1

0/1

2/22/2

1/2

1/1

1/1

8080

INTRODUCTION À LA THÉORIE

DES GRAPHES

3. Les notions de base des arbres

Un arbre est un graphe connexe et sans cycle.

Une forêt est un graphe non connexe et sans cycle.

Une feuille est un sommet pendant (degré = 1)

Page 21: Les flots INFORMATIQUE 3 - larbiguezouli.com

8181

INTRODUCTION À LA THÉORIE

DES GRAPHES

Exp.

2

1

5

3 4 2

1

5

3 4

5

ArbreForet

Feuilles

Feuilles

8282

INTRODUCTION À LA THÉORIE

DES GRAPHES

3.1. Caractéristiques

Les affirmations suivantes sont équivalentes pour ungraphe G(S,A) à ‘n’ sommets:

• G est un arbre;

• G est sans cycle et connexe;

• G est sans cycle et comporte (n− 1) arêtes;

• G est connexe et comporte (n− 1) arêtes;

• Chaque paire de sommets distincts (u, v) est reliéepar une seule chaîne simple (et le graphe est sansboucle).

8383

INTRODUCTION À LA THÉORIE

DES GRAPHES

3.2. Codage de Prüfer

Pour représenter un arbre d’une manière compacte, lemathématicien allemand Ernst Paul Heinz Prüfer proposeun algorithme de codage et de décodage.

Soit G(S,A) un arbre, avec S = {1, 2 , 3 , … , n}

Algorithme de codage

Entrée: Un arbre G(S,A)

Sortie: Une suite C de n-2 sommets de S.

8484

INTRODUCTION À LA THÉORIE

DES GRAPHES

3.2. Codage de Prüfer (suite)

Algorithme de codage (suite)Répéter tant qu’il ne reste plus que 2 sommets dansl’arbre G

• Trouver la feuille ‘f’ de l’arbre ayant le numérominimum;

• Ajouter à la suite C le seul sommet ‘a’ adjacent à ‘f’dans l’arbre G;

• Supprimer de l’arbre G le sommet ‘f’.

Page 22: Les flots INFORMATIQUE 3 - larbiguezouli.com

8585

INTRODUCTION À LA THÉORIE

DES GRAPHES

Algorithme de codage (suite)

Exp:

1

2

6

3 4

5

2

6

3 4

5 6

3 4

5

6

3

5 6

3

C={} C={2} C={2, 3}

C={2, 3, 3} C={2, 3, 3, 3}

Il reste 2 sommets :

fin du codage

8686

INTRODUCTION À LA THÉORIE

DES GRAPHES

3.2. Codage de Prüfer (suite)

Algorithme de décodage

Entrée: Une suite C de n-2 sommets de S.

Sortie: Un arbre G(S,A)

Définir l’ensemble I = {1, 2 , … , n}

• Répéter tant qu’il reste des éléments dans C et plusde 2 éléments dans I:

– Trouver le plus petit élément ‘i’ de I tel que: i ∉ C;

– Ajouter une arête à G qui relie le sommet ‘i’ aupremier sommet ‘a’ de la suite C;

– Supprimer ‘i’ de I et ‘a’ de C.

8787

INTRODUCTION À LA THÉORIE

DES GRAPHES

Algorithme de décodage (suite)

• Les deux éléments qui restent dans I à la fin del’algorithme constituent les extrémités de ladernière arête à ajouter à G.

Exp.

1

2

6

3 4

5

C = {2, 3, 3, 3}

I = {1, 2, 3, 4, 5, 6}

1

2

6

3 4

5

C = {3, 3, 3}

I = {2, 3, 4, 5, 6} 8888

INTRODUCTION À LA THÉORIE

DES GRAPHES

Algorithme de décodage (suite)

Exp. (suite)

1

2

6

3 4

5

C = {3, 3}

I = {3, 4, 5, 6}

1

2

6

3 4

5

C = {3}

I = {3, 5, 6}

1

2

6

3 4

5

C = {}

I = {3, 6}

Page 23: Les flots INFORMATIQUE 3 - larbiguezouli.com

8989

INTRODUCTION À LA THÉORIE

DES GRAPHES

Algorithme de décodage (suite)

Exp. (suite)

1

2

6

3 4

5

C = {}

I = {}

9090

INTRODUCTION À LA THÉORIE

DES GRAPHES

3.3. Arbre couvrant

Un arbre couvrant ou arbre maximal d’un grapheG(S,A), est un graphe partiel de G contenant le maximumd’arêtes de ‘A’ et qui forme un arbre.

Exp:

1

2

6

3 4

5

1

2

6

3 4

5

Graphe G(S,A) Arbre couvrant de G

9191

INTRODUCTION À LA THÉORIE

DES GRAPHES

3.3. Arbre couvrant (suite)

Si le graphe G(S,A) est pondéré, on cherche à trouverun arbre maximal Ar(S,A1) de poids total minimum. Cetarbre est appelé arbre couvrant de poids minimum.

Monsieur Kruskal proposa un algorithme en 1956 pourtrouver un arbre couvrant de poids minimum à partird’un graphe.

9292

INTRODUCTION À LA THÉORIE

DES GRAPHES

3.3. Arbre couvrant (suite)

Algorithme de Kruskal:

Entrée: Graphe pondéré G(S,A) avec C(a) est la capacitéde l’arête ‘a’ et |S|=n et |A|=m.

Sortie: Arbre (ou forêt) couvrant de poids minimumAr(S,A1)

• Trier et numéroter les arêtes de G dans l’ordrecroissant de leur poids: C(a1) ≤ C(a2) ≤ … C(am);

• Poser A1 = ∅, k = 0;

• Tant que k < m et |A1| < n-1 faire

– Si ak+1 ne forme pas de cycle avec A1, alors A1=A1∪{ak+1};

– K = k + 1;

Page 24: Les flots INFORMATIQUE 3 - larbiguezouli.com

9393

INTRODUCTION À LA THÉORIE

DES GRAPHES

Algorithme de Kruskal: (suite)

Exp.

1

2

4

3

6

5

1

3

1

3

5

5

24

21

2

4

3

6

5

1

1

1

2

4

3

6

5

1

1

22

1

2

4

3

6

5

1

1

24

2

9494

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1. Le concept de programmation linéaire1.1. Introduction

Un problème de programmation linéaire est unproblème d’optimisation.

c-à-d minimiser ou maximiser d'une fonction‘objectif’ linéaire en respectant des conditionslinéaires.

Pour résoudre de tels problèmes, on utilise deuxtypes de méthodes: graphique – simplexe.

9595

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1. Le concept de programmation linéaire (suite)Pour modéliser un problème linéaire, on doit définir:

• Les variables à optimiser;

• Les contraintes sur ces variables;

• L’objectif visé.

9696

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.2. Forme standard

Un problème de programmation linéaire peut êtreécrit sous la forme standard (forme canonique):

Maximiser cTx;

Objectif Ax = b;

Tel que: x ≥ 0, c ∈ ℜn, b ∈ ℜm, A ∈ ℜmxn

tel que x est le vecteur de variables à optimiser.

Les données sont les vecteurs c, b et la matrice A.

Page 25: Les flots INFORMATIQUE 3 - larbiguezouli.com

9797

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.2. Forme standard (suite)Si on rencontre un problème de minimisation

(minimiser cTx), on peut l’écrire sous la forme standard(maximiser -cTx).

Si la fonction objectif été Ax ≥ b on peut l’écrireAx - y = b tel que y ≥ 0. etc.

Le vecteur y est appelée variables d’écart.

9898

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.2. Forme standard (suite)Exp. Une personne veut nourrir son petit chien avec

deux produits: des croquettes et du lait. Le chien doitavoir au moins 60 unités de fer, et 70 unités deprotéines. Sachant qu’une unité de croquettes contient30 unités de fer et 5 unités de protéines et coûte 200DA, et une unité de lait contient 17 unités de fer et 9unités de protéines et coûte 100 DA.

Modéliser ce problème pour chercher le repas lemoins cher et suffisant pour ce chien.

9999

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.2. Forme standard (suite)Exp. (suite)

Soit x1 et x2 les variables qui représentent,respectivement, le nombre d’unités de croquettes, et delait à consommer.

On peut écrire les quantités suffisantes en fer etprotéines comme suit:

Besoin en fer: 30 x1 + 17 x2 ≥ 60;

Besoin en protéines: 5 x1 + 9 x2 ≥ 70;

avec x1, x2 ≥ 0.

100100

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.2. Forme standard (suite)Exp. (suite)

Le coût du repas est: 200 x1 + 100 x2 ;

On peut écrire le problème sous la forme standard:

Maximiser -(200 x1 + 100 x2);

Objectif: 30 x1 + 17 x2 ≥ 60;

5 x1 + 9 x2 ≥ 70;

Tel que x1, x2 ≥ 0.

Page 26: Les flots INFORMATIQUE 3 - larbiguezouli.com

101101

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.2. Forme standard (suite)Exp. (suite)

On peut écrire la fonction objectif:

Maximiser -(200 x1 + 100 x2);

Objectif: 30 x1 + 17 x2 - y1 = 60;

5 x1 + 9 x2 - y2 = 70;

Tel que x1, x2, y1, y2 ≥ 0.

avec y1 représente l’excédant des unités en fer.

et y2 représente l’excédant des unités en protéines.

102102

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.3. Ensembles convexes (≠≠≠≠ concave)Un ensemble est convexe s'il contient tout segment

passant par deux de ses points.

Autrement dit, un sous-ensemble C d'un espacevectoriel E est dit convexe si et seulement si:

∀v1, v2 ∈ C, ∀ λ ∈ [0,1], λ.v1+(1- λ).v2 ∈ C.

v1

v2

v1

v2

Ensemble convexeEnsemble non convexe

103103

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.3. Ensembles convexes (≠≠≠≠ concave)Tous les points qui sont entre DR et D� peuvent être

écrits par la formule: S · DR + 1 − S · D�

v1

v2v

λ.v1

(1-λ).v2

v=λ.v1+(1-λ).v2

104104

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.3. Ensembles convexes (suite)Pour connaitre un point extrême ‘v’ (un coin) dans un

ensemble convexe C, il faut vérifier qu’il n’existent pasdeux points DR et D� de C tel que D = S · DR + 1 − S · D�

c-à-d le point ‘v’ ∉ [v1,v2] de C.

Points extrêmes

Ensemble convexe

Page 27: Les flots INFORMATIQUE 3 - larbiguezouli.com

105105

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

1.3. Ensembles convexes (suite)Dans le cas de la programmation linéaire, un ensemble

convexe est un ensemble de points situés à l’intérieurd’un polygone convexe qui est limité par les contraintesde la fonction objectif.

Exp.

Soit l’ensemble suivant:

C = {(x, y) ∈ ℜ2: |x| ≤ 5, |y| ≤ 10}

Est-ce que C est convexe?

106106

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

Soit A(x1, y1) et B(x2,y2) ∈ C.

Soit V(X, Y) appartient au segment [A,B], donc

X = λ.|x1| + (1 - λ).|x2| et Y = λ.|y1| + (1 - λ).|y2|

tel que λ ∈ [0,1]

Nous avons |x1| ≤ 5, |y1| ≤ 10 et |x2| ≤ 5, |y2| ≤ 10

λ.|x1| ≤ λ.5 et (1 - λ).|x2| ≤ (1 - λ).5

λ.|x1| + (1 - λ).|x2| ≤ λ.5 + (1 - λ).5

λ.|x1| + (1 - λ).|x2| ≤ λ.5 + 5 - λ.5

λ.|x1| + (1 - λ).|x2| ≤ 5 X ≤ 5

107107

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

de la même manière on trouve que:

λ.|y1| + (1 - λ).|y2| ≤ 10 Y ≤ 10

donc: V(X,Y) ∈ C ce qui implique que C est convexe.

10

5-5

-10 108108

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

2. Résolution graphique des problèmes de programmation linéaire à deux variablesUn problème de programmation linéaire est un

problème d’optimisation d’une fonction appelée objectif,tout en respectant certaines contraintes.

Pour résoudre un tel problème, on peut utiliser laméthode graphique. Pour cela, on doit suivre les étapes:

• Tracer le polygone convexe limité par les contraintes;

• Chercher les points qui optimisent (maximisent ouminimisent) la fonction objectif.

Ces points se situent aux coins du polygone.

Page 28: Les flots INFORMATIQUE 3 - larbiguezouli.com

109109

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

2. Résolution graphique des problèmes de PL à deux variables (suite)Exp. Soit le problème de programmation linéaire

suivant:

Maximiser 21 T . U1U2 ;

Objectif1 21 11 0 . U1U2 ≤ 643 ;

Tel que U1U2 ≥ 00110110

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

2. Résolution graphique des problèmes de PL à deux variables (suite)Exp. (suite)

On peut l’écrire comme suit:

Maximiser 2.X1 + X2;

Objectif X1 + 2.X2 ≤ 6;

X1 + X2 ≤ 4;

X1 ≤ 3;

Tel que X1, X2 ≥ 0.

111111

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

2. Résolution graphique des problèmes de PL à deux variables (suite)Exp. (suite)

L’ensemble des points

à l’intérieur du polygone

convexe sont appelés

solutions réalisables.

112112

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

3. Résolution des problèmes linéaires par la méthode du simplexeLa méthode graphique est facile lorsqu'il y a deux

variables, elle devient difficile pour trois variables etimpossible au delà.

Une méthode du simplexe a été développée parDantzig afin de résoudre ce type de problèmes deprogrammation linéaire.

Page 29: Les flots INFORMATIQUE 3 - larbiguezouli.com

113113

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Dantzig propose quelques nominations dans la formestandard (forme canonique):

Maximiser cTx;

Objectif Ax+y = b;

Tel que: x,y ≥ 0, c ∈ ℜn, b ∈ ℜm, A ∈ ℜmxn

Variables de base

Variables hors base

114114

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Dans la forme standard d’un programme linéaire, lesvariables d’écarts sont appelées variables de base (y),et les autres sont appelées variables hors base (x).

Une solution de base (contient les variables horsbase et les variables de base) est la solution où lesvariables hors base sont nulles.

Une solution faisable (réalisable, admissible) estune solution qui satisfait la fonction objectif.

Une solution faisable de base est la solution où lesvariables hors base (x) sont nulles et qui satisfait lafonction objectif.

115115

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Pour la méthode du simplexe, on converti la formestandard du problème sous forme d’un tableau:

Variables de baseVariables hors base

Coefficients

des variables

de base

Coefficients de coût réduit

Cb b x1 x2 y1 y2 y3

c1 c2 0 0 0

0 y1 b1 a11 a12 1 0 0

0 y2 b2 a21 a22 0 1 0

0 y3 b3 a31 a32 0 0 1

ΣCbi*bi r1 r2 r3 r4 r5

116116

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

3. Résolution des problèmes linéaires par la méthode du simplexe (suite)

Une solution faisable de base est dite optimale si lescoefficients des variables de base (y) sont tous nonnuls.

Théorème: Une solution faisable de base est optimale siet seulement si les coefficients de coût réduit (ri)correspondants sont nuls.

Le but de la méthode du simplexe est de se déplacerd’une solution faisable de base à une autre jusqu’à cequ’on trouve la solution faisable de base optimale.

Page 30: Les flots INFORMATIQUE 3 - larbiguezouli.com

117117

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Algorithme du simplexe:

1. Construire le tableau initial de la solution faisable debase de la forme standard du problème linéaire;

Cb b x1 x2 y1 y2 y3

c1 c2 0 0 0

0 y1 b1 a11 a12 1 0 0

0 y2 b2 a21 a22 0 1 0

0 y3 b3 a31 a32 0 0 1

ΣCbi*bi r1 r2 r3 r4 r5

Variables de baseVariables hors base

Coefficients

des variables

de base

Coefficients de coût réduit

118118

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Algorithme: (suite)

2. Calculer les coefficients de coût réduit rj

tel que:

BV = WV − % JX> · �>VY

>ZRm: est le nombre de variables de base.

119119

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Algorithme: (suite)

3. Si rj ≤ 0 pour tous les j, alors la solution faisable debase est optimale; sinon aller à 4;

4. Sélectionnez la colonne ‘q’ tel que rq = max (rj) :remarquez que (rq > 0);

5. Si tous les coefficients de la colonne ‘q’ sont ≤ 0,alors le problème est sans limite; sinon aller à 6;

120120

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Algorithme: (suite)

6. Sélectionner la ligne ‘p’ qui a��� [\*\] : �>_ > 0 ;

7. Modifier la variable de base de la ligne ‘p’ par lavariable de la colonne ‘q’;

8. Mettre à jour le tableau pour normaliser leséléments pivots (p,q) à 1, et le reste de la colonne dechaque pivot à 0 en utilisant des opérations sur leslignes;

9. Aller à 2.

Page 31: Les flots INFORMATIQUE 3 - larbiguezouli.com

121121

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

3. Résolution des problèmes linéaires par la méthode du simplexe (suite)

Exp. Soit le problème linéaire suivant:

Maximiser 4.x1 + 5.x2

Objectif 2.x1 + x2 ≤ 9

x1 ≤ 4

x2 ≤ 3

Tel que x1 ≥ 0, x2 ≥ 0

Appliquer l’algorithme du simplexe pour résoudre ceproblème.

122122

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

La forme standard du problème:

Maximiser 45 T . U1U2 ;

Objectif2 1 1 0 01 0 0 1 00 1 0 0 1 .

U1U2a1a2a3= 943 ;

Tel que U1 U2 a1 a2 a3 ≥ 0 0 0 0 0

123123

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

BR = WR − % JX> · �>Rc

>ZR = 4 − 0 ∗ 2 + 0 ∗ 1 + 0 ∗ 0 = 4

Cb b X1 X2 Y1 Y2 Y3

4 5 0 0 0

0 Y1 9 2 1 1 0 0

0 Y2 4 1 0 0 1 0

0 Y3 3 0 1 0 0 1

0 4 5 0 0 0

Variables de baseVariables hors base

Coefficients

des variables

de base

124124

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

q = 2ème colonne : là où rj est maximum

p = 3ème ligne

��� X>�>_ : �>_ > 0 = ��� 91 , ? , 31Donc, pivot (3,2)

Page 32: Les flots INFORMATIQUE 3 - larbiguezouli.com

125125

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

Pour normaliser le pivot à 1 on applique:

Ligne1 = Ligne1 - Ligne3

BR = WR − % JX> · �>Rc

>ZR = 4 − 0 ∗ 2 + 0 ∗ 1 + 5 ∗ 0 = 4q = 1ère colonne : là où rj est maximum

p = 1ère ligne

��� X>�>_ : �>_ > 0 = ��� 62 , 41 , ?Donc, pivot (1,1)

126126

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

Cb b X1 X2 Y1 Y2 Y3

4 5 0 0 0

0 Y19

6

2

2

1

0

1

1

0

0

0

-1

0 Y2 4 1 0 0 1 0

5 X2 3 0 1 0 0 1

0

15

4

4

5

0

0

0

0

0

0

-5

127127

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

Pour normaliser le pivot à 1 on applique:

Ligne1 = Ligne1 / 2

Ligne2 = Ligne2 – Ligne1

BR = WR − % JX> · �>Rc

>ZR = 4 − 4 ∗ 1 + 0 ∗ 0 + 5 ∗ 0 = 0

128128

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

Cb b X1 X2 Y1 Y2 Y3

4 5 0 0 0

0

4X1

9

6

3

2

2

1

1

0

0

1

1

1/2

0

0

0

0

-1

-1/2

0 Y24

1

1

0

0

0

0

-1/2

1

1

0

1/2

5 X2 3 0 1 0 0 1

0

15

27

4

4

0

5

0

0

0

0

-2

0

0

0

0

-5

-3

Page 33: Les flots INFORMATIQUE 3 - larbiguezouli.com

129129

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

On trouve que tous les rj ≤ 0, donc on atteint la solutionfaisable optimale, qui est: (X1, X2, Y1, Y2, Y3) = (3, 3, 0,1, 0)

130130

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

Graphiquement:

-1

-0,5

0

0,5

1

1,5

2

2,5

3

3,5

4

-1 0 1 2 3 4 5 6

x2=3 2.x1+x2=9 x2=0 x1=4 x1=0

131131

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

4. Dualité: Définitions et notions de baseLa méthode du dual simplexe est utilisée en

particulier lorsqu'il n'y a pas de solution faisable debase initiale au problème de la programmation linéaire.

Exp.

Minimiser 160.x1 + 120.x2 + 280.x3

Objectif 2.x1 + x2 + 4.x3 ≥ 1

2.x1 + 2.x2 + 2.x3 ≥ 3/2

Tel que x1 ≥ 0, x2 ≥ 0, x3 ≥ 0

132132

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

4. Dualité: Définitions et notions de base (suite)Exp. (suite)

Maximiser -160.x1 - 120.x2 - 280.x3

Objectif 2.x1 + x2 + 4.x3 – Y1 = 1

2.x1 + 2.x2 + 2.x3 – Y2 = 3/2

Tel que x1 ≥ 0, x2 ≥ 0, y1 ≥ 0, y2 ≥ 0

La solution faisable initiale est (0, 0, 0, -1, -3/2)

alors que: X1 ≥ 0, X2 ≥ 0, Y1 ≥ 0, Y2 ≥ 0

Page 34: Les flots INFORMATIQUE 3 - larbiguezouli.com

133133

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

4. Dualité: Définitions et notions de base (suite)Exp. (suite)

Dans ce cas, on peut appliquer l’algorithme dualsimplexe.

Pour cela, nous allons changer la forme du problème.

134134

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

4. Dualité: Définitions et notions de base (suite)

Problème dual

Soit le problème primal:

Minimiser cTx;

Objectif Ax ≥ b;

Tel que: x ≥ 0, c ∈ ℜn, b ∈ ℜm, A ∈ ℜmxn

Son problème dual aura la forme:

Maximiser pTb;

Objectif pTA ≤ cT;

Tel que: p ≥ 0, c ∈ ℜn, p ∈ ℜm, b ∈ ℜm, A ∈ ℜmxn

135135

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Problème dual (suite)Exp. Définissons le problème dual du problème précédent:

Problème primal

Minimiser 160120280T . U1U2U3 ;

Objectif: 2 1 42 2 2 . U1U2U3 ≥ 132 ;��� oA�: U1U2U3 ≥ 000 .

136136

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

Problème dual

Maximiser r1r2 T . 132 ;Objectif: r1r2 T . 2 1 42 2 2 ≤ 160120280

T ;��� oA�: r1r2 ≥ 00

Page 35: Les flots INFORMATIQUE 3 - larbiguezouli.com

137137

INTRODUCTION À LA

PROGRAMMATION LINÉAIRE

Exp. (suite)

Maximiser P1 + 3/2.P2

Objectif 2.P1 + 2.P2 ≤ 160

P1 + 2.P2 ≤ 120

4.P1 + 2.P2 ≤ 280

Tel que P1 ≥ 0, P2 ≥ 0

On fait entrer les variables de base comme suit:

Maximiser P1 + 3/2.P2

Objectif 2.P1 + 2.P2 + Y1 = 160

P1 + 2.P2 + Y2 = 120

4.P1 + 2.P2 + Y3 = 280

Tel que P1 ≥ 0, P2 ≥ 0, Y1 ≥ 0, Y2 ≥ 0, Y3 ≥ 0138

Cb c P1 P2 Y1 Y2 Y3

1 3/2 0 0 0

0

1

Y1

P1

160

40

20

2

1

0

2

0

0

1

1

-1/2

0

-1

0

0

0

1/2

0

3/2

Y2

P2

120

60

120

80

40

1

½

1

0

0

2

1

2

2

1

0

0

0

-1

-1/2

1

½

1

0

0

0

0

0

0

0

0

0

Y3

Y2

280

160160/3-40/3-20

4

3

1

0

0

2

0

0

0

0

0

0

0

-1

-3/2

0

-1

-1/3

2/3

1

1

1

1/3

1/3

1/2

0

-90

-160

-140

1

¼

0

1

3/2

0

-3/2

-3/2

0

0

-5/2

-2

0

-3/4

1

0

0

0

0

-1/2