Théorie des graphes

64
1 MATHÉMATIQUES 2 Pascal Laurent Théorie des graphes Boussad Mammeri (bM) 2007 Math-2

description

Théorie des graphesalgorithmes plus court cheminalgorithmes plus long cheminFord dijkstra PERT MPM

Transcript of Théorie des graphes

  • 1MATHMATIQUES 2Pascal Laurent

    Thorie des graphesBoussad Mammeri

    (bM) 2007 Math-2

  • Table des matires

    I Thorie des graphes 4

    1 Notions gnrales 51.1 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.1.1 Matrice associe . . . . . . . . . . . . . . . . . . . . . . . . 61.1.2 Graphes particuliers . . . . . . . . . . . . . . . . . . . . . . 71.1.3 Graphes associs . . . . . . . . . . . . . . . . . . . . . . . . 71.1.4 Cheminements . . . . . . . . . . . . . . . . . . . . . . . . . 81.1.5 Connexit . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    1.2 Reprsentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2.1 Structures de donnes . . . . . . . . . . . . . . . . . . . . . 131.2.2 Fonctions de conversion . . . . . . . . . . . . . . . . . . . . 14

    1.3 Noyaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.3.1 Stabilit interne . . . . . . . . . . . . . . . . . . . . . . . . . 151.3.2 Noyaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    1.4 Arbres et arborescences . . . . . . . . . . . . . . . . . . . . . . . . . 191.4.1 Arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.4.2 Arborescences . . . . . . . . . . . . . . . . . . . . . . . . . 20

    1.5 Graphes planaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    2 Flots 222.1 Flot dans un rseau . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    2.1.1 Dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 222.1.2 Reprsentations . . . . . . . . . . . . . . . . . . . . . . . . . 232.1.3 Flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . 24

    2.2 Algorithme de Ford-Fulkerson . . . . . . . . . . . . . . . . . . . . . 252.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.2.2 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    2.3 Implmentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.3.1 Optimisation linaire . . . . . . . . . . . . . . . . . . . . . . 292.3.2 Un programme classique . . . . . . . . . . . . . . . . . . . . 29

    2.4 Aspects algbriques . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.4.1 Flots et tensions . . . . . . . . . . . . . . . . . . . . . . . . 312.4.2 Flots borns . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3 Couplage 333.1 Affectation optimale . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    3.1.1 Dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1.2 Reprsentation matricielle . . . . . . . . . . . . . . . . . . . 33

    2

  • TABLE DES MATIRES 3

    3.2 Rsolution par flot maximum . . . . . . . . . . . . . . . . . . . . . . 343.2.1 Graphe initial des zros . . . . . . . . . . . . . . . . . . . . . 343.2.2 Adjonction darcs . . . . . . . . . . . . . . . . . . . . . . . . 343.2.3 Une chane amliorante est alterne . . . . . . . . . . . . . . 35

    3.3 Algorithme hongrois . . . . . . . . . . . . . . . . . . . . . . . . . . 353.3.1 Description sur un exemple . . . . . . . . . . . . . . . . . . . 353.3.2 Version matricielle de lalgorithme hongrois . . . . . . . . . . 37

    4 Chemins extrmaux 384.1 Problme du plus court chemin . . . . . . . . . . . . . . . . . . . . . 38

    4.1.1 Algorithme de Ford . . . . . . . . . . . . . . . . . . . . . . . 384.1.2 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . 39

    4.2 Mthode matricielle . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.2.1 Matrices et oprations symboliques . . . . . . . . . . . . . . 414.2.2 Ordonnancement par la mthode matricielle . . . . . . . . . . 424.2.3 Exemple de rsolution matricielle . . . . . . . . . . . . . . . 43

    II Exercices 44

    1 Graphes 451.1 Reprsentations dun graphe . . . . . . . . . . . . . . . . . . . . . . 451.2 Cheminements dans un graphe . . . . . . . . . . . . . . . . . . . . . 461.3 Stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471.4 Graphes particuliers . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    2 Flots et chemins dans un rseau 492.1 Flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.2 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.3 Couplage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    3 Programmation linaire 533.1 Engrais chimiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    3.1.1 Mthode gomtrique . . . . . . . . . . . . . . . . . . . . . 533.1.2 Mthode des tableaux . . . . . . . . . . . . . . . . . . . . . 543.1.3 Perturbation des donnes . . . . . . . . . . . . . . . . . . . . 543.1.4 Autre point de vue . . . . . . . . . . . . . . . . . . . . . . . 55

    3.2 Approximation du problme du profil dune route . . . . . . . . . . . 55

    4 Algorithme du simplexe 564.1 Exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564.2 Inquations linaires . . . . . . . . . . . . . . . . . . . . . . . . . . 574.3 Mthode du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . 584.4 Dualit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

    (bM) 2007 Math-2

  • Premire partie

    Thorie des graphes

    4

  • Chapitre 1

    Notions gnrales

    Dfinitions dun grapheUn graphe est un ensemble de points (appels sommets), muni dune relation bi-

    naire dont les couples sont appels arcs.1

    Notation : G = (X,U), avec :X = ensemble des sommetsU = ensemble des arcs

    FIG. 1.1 Exemple de graphe [GR1]

    X =(1 2 3 4 5

    )

    U =( (

    1 2);(1 4

    );(4 2

    );(2 3

    );(3 4

    );(4 5

    ) )

    1.1 TerminologieNotions immdiates : arte : arc non orient (ou orient dans les deux sens) ; sommets adjacents x : successeurs (x) ou prdcesseurs 1(x) ; sommets relis x : descendants ou ascendants ; arcs incidents x : entrants (x) ou sortants +(x).

    1 On ne sintresse pas la faon de placer les sommets sur un dessin.

    5

  • 6 CHAPITRE 1. NOTIONS GNRALES

    Sommets particuliers racine : sommet sans prdcesseur ; feuille : sommet sans successeur ; source : racine ascendant de tout sommet ; puits : feuille descendant de tout sommet.

    Graphes et multigraphesNous nous limiterons ici aux graphes simples : qui comportent un seul arc ou arte

    entre deux sommets.Un graphe non simple est un multigraphe. Exemple : les ponts de Knigsberg

    (Fig. 1.2).

    FIG. 1.2 Exemple de multigraphe

    1.1.1 Matrice associeLa matrice associe un graphe est dfinie par :

    Bi,j = existence de larc (i,j)

    Cette notion dexistence peut tre note 0/1 (ou False, True) pour un graphe simple.2Exemple (matrice du graphe de la Fig.1.1, p. 5) :

    B =

    0 1 0 1 00 0 1 0 00 0 0 1 10 1 0 0 00 0 0 0 0

    1.1.1.1 Quelques proprits Bkj = 0 k signifie que le sommet j est une racine. Bik = 0 k signifie que le sommet i est une feuille.

    k Bik = Card(+(i)) est le demi-degr extrieur de i (nombre darcs

    partant de i).2 Si Bij est dun autre type, cela peut reprsenter un multigraphe ou un graphe simple valu.

    Math-2 (bM) 2007

  • CHAPITRE 1. NOTIONS GNRALES 7

    k Bkj = Card((j)) est le demi-degr intrieur de j (nombre darcs

    arrivant vers j). Bij +Bji = 0 signifie que i et j ne sont pas adjacents.Curiosit : Bii = 1 signifie la prsence dune boucle (arc origine et extrmit

    confondues) au sommet i. Cest une configuration que nous avons exclue.

    1.1.2 Graphes particuliersGraphe symtrique

    Dfinition : (x, y) U = (y, x) UProprit : B est symtrique : Bij = BjiExemple : graphe simple non orient.

    Graphe antisymtriqueDfinition : (x, y) U = (y, x) / UProprit 3 : Bij + Bji 1Exemple : graphe orient simple.

    Graphe completDfinition : chaque paire de sommets est relie par un arcProprit : Bij +Bij 1

    CliqueDfinition : une clique est un graphe symtrique completProprit : Bij +Bji = 2

    TournoiDfinition : un tournoi est un graphe antisymtrique completProprit : Bij +Bji = 1 (i 6= j)

    1.1.3 Graphes associsGraphe invers G

    Dfinition : on inverse le sens des arcsProprit : Bij = Bji (cest ici la matrice transpose)

    Graphe complmentaire G

    Dfinition : (x, y) U = (x, y) / UProprit : Bij +Bij = 1.

    Sous-grapheDfinition : on obtient un sous-graphe en supprimant des sommets

    (et les arcs incidents, comme origine ou comme extrmit)Proprit : la matrice associe est une sous-matrice.

    3 Noter que B nest pas antisymtrique.

    (bM) 2007 Math-2

  • 8 CHAPITRE 1. NOTIONS GNRALES

    Graphe partielDfinition : on obtient un graphe partiel en supprimant des arcsProprit : la matrice associe (de mme dimension) comporte plus de zros.

    1.1.3.1 Exemple

    (X,U) = villes et routes de France, sous-graphe des villes de Bretagne, graphe partiel des routes nationales, sous-graphe partiel des routes nationales de Bretagne.

    1.1.4 Cheminements1.1.4.1 Chemins et chanes

    Chemins Un chemin est une suite darcs continue.4

    Exemple de cheminement (passeur, loup, chvre et chou) : Fig. 1.3, p. 8.

    FIG. 1.3 Passeur, loup, chvre, choux

    Trouver un chemin

    Algo 1.1 [Trmaux] Pour trouver un chemin entre a et b : Fig. 1.4, p. 8.

    FIG. 1.4 Algorithme de Trmaux Depuis a, suivre un chemin (quelconque) aussi loin que possible en marquant (+)

    chaque arc parcouru ; dans une impasse, on rtrograde en marquant une seconde fois (par -) larc ; si on arrive (par un arc une seule fois marqu) un sommet dj explor, on rtro-

    grade (donc en marquant -) ; soit x le sommet atteint en rtrogradant, alors :

    1. ou bien il reste un arc non marqu ;2. ou bien on repart par larc (marqu une fois) utilis la premire fois.

    On arrte lorsquon arrive en b ou bien lorsquil ny a plus aucune possibilit.

    4 en convenant de qualifier ainsi la proprit intuitive suivante : lextrmit de tout arc est lorigine dusuivant, sauf bien entendu pour le premier et le dernier.

    Math-2 (bM) 2007

  • CHAPITRE 1. NOTIONS GNRALES 9

    Cas particuliers de lalgorithme de Trmaux : Si le graphe est planaire, prendre toujours droite. Si le graphe est symtrique, tendre une ficelle entre a et b.

    FIG. 1.5 Chemins dans un graphe [GR2]

    Traitement matriciel Pour le graphe de la Fig. 1.5, de matrice associe :

    B =

    0 1 0 1 00 0 1 1 00 0 0 0 10 0 1 0 00 0 0 0 0

    les puissances successives de B sont :

    B2 =

    0 0 1 1 00 0 0 1 10 0 0 0 00 0 0 0 00 0 0 0 0

    B

    3 =

    0 0 0 1 10 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0

    B

    4 = 0

    On observe quun lment (i, j) 6= 0 indique la prsence dun chemin entre i et j : de longueur 1 dans B de longueur 2 dans B2 . . .

    Noter quon peut faire le produit matriciel ou bien en boolen (ce qui donne laprsence des chemins) ou bien en dcimal (on obtient alors aussi leur nombre). 5

    Chanes Une chane est une suite dartes continue.

    1.1.4.2 Cheminements particuliers

    Df 1.1 Chemin lmentaire : dont les sommets sont distincts. Chemin simple : dont les arcs sont distincts.

    Si on remplace chemin par chane (chemin non orient), on obtient toutes les no-tions correspondantes pour un graphe symtrique.

    5 Si on le fait en boolen, il peut tre utile de remarquer que + est un or et que * est un and.

    (bM) 2007 Math-2

  • 10 CHAPITRE 1. NOTIONS GNRALES

    Prop 1.1 Il est clair que :

    lmentaire = simple

    Eulrien Chemin eulrien : chemin simple qui passe par tous les arcs. Chane eulrienne : chane simple qui passe par toutes les artes.

    Ex 1.1 Lenveloppe postale (Fig. 1.6) peut tre trace sans lever la plume.

    FIG. 1.6 Chane eulrienne (4 2 3 1 2 5 3 4 5)

    Prop 1.2 Si G possde une chane eulrienne, alors G possde deux sommets (et deuxseulement) de degr impair (lorigine et lextrmit de la chane). 6

    Hamiltonien Chemin hamiltonien : chemin lmentaire qui passe par tous les sommets. Chane hamiltonienne : chane lmentaire qui passe par tous les sommets.

    Thm 1.1 [Knig] Dans un graphe complet, il y a au moins un chemin hamiltonien.

    1.1.4.3 Circuits

    Un circuit est un chemin simple ferm.

    Tester labsence de circuits

    Algo 1.2 Pour tester labsence de circuits : Marquer tout sommet sans successeur, marquer tout sommet dont tous les successeurs sont marqus. Si on parvient marquer tous les sommets, le graphe est sans circuits.

    Pour le graphe de la Fig. (1.5), on marque ainsi successivement : (5,3,4,2,1).

    Matriciellement cela revient observer que si on revient sur un sommet, lune desmatrices Bk comporte alors un terme diagonal non nul (car un graphe n sommetsadmet un chemin de plus de n arcs si et seulement si il comporte un circuit).

    6 ce qui veut dire que la chane nest pas ferme (ce nest pas un cycle).

    Math-2 (bM) 2007

  • CHAPITRE 1. NOTIONS GNRALES 11

    Cest le cas pour le graphe de la Fig. 1.1, p. 5.

    Circuit hamiltonien

    Ex 1.2 On peut tracer un circuit hamiltonien sur le dodcadre : Fig. 1.7, p. 11.

    FIG. 1.7 Circuit hamiltonien

    1.1.4.4 Cycles

    Un cycle est une chane simple ferme.

    Algo 1.3 La construction dun cycle peut se faire de la manire suivante :

    1. choisir x0,

    2. puis une suite darcs (x0, x1), (x1, x2), . . . en nempruntant un arc incident xique si : il y reste un nombre impair de tels arcs non encore pris ; ou bien si tous les autres arcs sont dj dans le cycle.

    Pour rechercher un cycle eulrien vrifier si, dans la matrice associe, le nombrede 1 de toute ligne et de toute colonne est pair.

    Ex 1.3 Sur le graphe des ponts de Knigsberg (Fig. 1.2, p. 6) on ne peut pas faire decycle eulrien.

    En effet :

    B =

    0 0 1 10 0 1 11 1 0 11 1 1 0

    (bM) 2007 Math-2

  • 12 CHAPITRE 1. NOTIONS GNRALES

    1.1.5 ConnexitDf 1.2 Soit sur G la relation dquivalence :

    x y si x et y sont relis par une chane 7

    Les composantes connexes sont les classes dquivalence du quotient de G par cetterelation.

    Une composante connexe peut tre considre comme un problme indpendant.Un point darticulation est un sommet dont la suppression (avec les arcs incidents)

    rend le graphe non connexe.

    Df 1.3 Si on remplace chane par chemin dans la dfinition prcdente, on obtient lescomposantes fortement connexes :

    deux sommets dune composante connexe sont relis par une chane ; deux sommets dune composante fortement connexe sont relis par un chemin.

    Graphe rduit

    Df 1.4 Le graphe rduit est le graphe : dont les sommets sont les composantes fortement connexes (dites maximales)

    qui comportent le plus de sommets, et les arcs les liens entre celles-ci.

    Dans lexemple Fig.1.8, si on calcule (en boolen) :

    (I +B)4 =

    1 1 1 1 10 1 1 1 10 1 1 1 10 1 1 1 10 0 0 0 1

    on exhibe le graphe rduit :

    1 2, 3, 4 5

    FIG. 1.8 Exemple de graphe[GR2]

    7 N.B. Une chane, que le graphe soit orient ou non.

    Math-2 (bM) 2007

  • CHAPITRE 1. NOTIONS GNRALES 13

    1.2 ReprsentationsLa faon dont on ordonne les sommets dun graphe est cruciale pour la recherche

    dinformations sur le graphe.

    1.2.1 Structures de donnesExemple (idem [GR2] Fig. 1.5, p. 9) :

    Dictionnaire Le dictionnaire dcrit les successeurs de chaque sommet :

    1 [ 2, 4 ]2 [ 3, 4 ]3 [ 5 ]4 [ 3 ]5 [ ]

    Matrice associe La matrice associe dcrit les liaisons entre sommets :

    B =

    0 1 0 1 00 0 1 1 00 0 0 0 10 0 1 0 00 0 0 0 0

    Matrice dadjacence La matrice dadjacence dcrit les arcs :

    M =

    1 1-1 1 1

    -1 -1 1-1 -1 1

    -1

    (bM) 2007 Math-2

  • 14 CHAPITRE 1. NOTIONS GNRALES

    1.2.2 Fonctions de conversionOn convient de reprsenter le dictionnaire par deux vecteurs (mthode classique

    utilise pour les maillages).Pour [GR2], p. 13, on aurait ainsi : 8

    D = [ 2,4, 3, 4,5, 2, 00, 00 ]C = [ 1, 3, 4, 6, 7, 08 ]

    Exemples de fonctions de conversion :

    function [ B ] = d2b (D, C)//// conversion : Dictionnaire -> Matrice associee

    n = max (D)B = zeros (n,n)for i = 1:nfor k = C(i) : (C(i+1) - 1)

    j = D(k)if j > 0 then B(i,j) = 1, endend

    endendfunction // ...

    function [ B ] = m2b (M)//// conversion : Incidence -> Matrice associee

    [ n, p ] = size (M)B = zeros (n,n)for a = 1:p[ gg, i ] = max (M(:,a))[ gg, j ] = min (M(:,a))B(i,j) = 1end

    endfunction // ...

    8 Les zros attirent simplement lattention . . .

    Math-2 (bM) 2007

  • CHAPITRE 1. NOTIONS GNRALES 15

    1.3 Noyaux

    1.3.1 Stabilit interne

    Df 1.5 Un sous-ensemble A de sommets est dit stable sil ne contient pas darcs :

    A (A) =

    On appelle nombre de stabilit, not (G), le nombre maximal desommets pouvant former un sous-ensemble stable.

    Df 1.6 Un sous-ensemble stable est dit maximal sil nest contenu dans aucun autrestable.

    A un stable maximal, on ne peut pas ajouter un sommet sans rompresa stabilit.

    1.3.1.1 Exemple des huit dames

    En thorie des jeux, le graphe du jeu est tel que : un sommet = un tat du jeu, un arc = un coup possible (entre deux tats).Dans le problme des huit dames sur lchiquier, ce nombre 8 est le (G) du graphe

    (symtrique) 64 sommets o une arte existe si une dame peut se dplacer (en uncoup) entre les deux sommets de larte.

    Ce problme admet 92 solutions (dont Gauss en avait trouv 72).En voici quelques-unes :

    . . . . . . .

    . . . . . . .

    . . . . . . .

    . . . . . . .

    . . . . . . . . . . . . . .. . . . . . .. . . . . . .

    . . . . . . .

    . . . . . . .

    . . . . . . . . . . . . . .. . . . . . .. . . . . . . . . . . . . .. . . . . . .

    (6 4 7 1 8 2 5 3

    ) (4 1 5 8 2 7 3 6

    )

    On peut complter la premire par rotations de pi/2 et la seconde de pi/4.

    1.3.1.2 Coloriage dune carte

    Soit colorier une carte de 10 pays (Fig. 1.9), dont la matrice binaire ( complterpar symtrie) reprsente le graphe des incompatibilits (Bij = 1 si i et j sont limi-

    (bM) 2007 Math-2

  • 16 CHAPITRE 1. NOTIONS GNRALES

    trophes) :

    B =

    0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0

    0 1 0 1 1 0 0 0 1 0 1 1 0

    1 0 0 0 1 1 1 0 0

    0 0 0 0 0

    0

    A

    B

    CH

    D

    E

    F

    I

    L

    NL

    P

    FIG. 1.9 Carte de gographie

    Le problme revient trouver une partition de X en un nombre minimum (appelnombre chromatique) de sous-ensembles stables.

    1.3.1.3 Recouvrement

    Le tableau ci-dessous indique quelques sous-ensembles stables (pays en ligne, stablesen colonne) :

    1 1 1 1 1 0 0 0 0 0 0 0 0 0 01 1 0 0 0 1 1 1 1 0 0 0 0 0 00 0 0 0 0 1 1 0 0 1 1 0 0 0 00 0 0 0 0 0 0 0 0 0 0 1 1 0 01 0 1 0 0 1 0 1 0 1 0 1 0 1 00 0 0 1 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 1 1 0 0 1 1 1 10 0 1 0 1 0 0 0 0 1 1 0 0 1 10 0 1 1 1 0 0 0 0 1 1 0 0 1 10 1 0 1 1 0 1 0 1 0 1 0 1 0 1

    On peut vrifier que quatre suffisent recouvrir tous les pays, par exemple (4,6,13,15) :

    Math-2 (bM) 2007

  • CHAPITRE 1. NOTIONS GNRALES 17

    Couleur A = 1, 6, 9, 10Couleur B = 2, 3, 5Couleur C = 4, 7Couleur D = 8

    1.3.1.4 Programmation en nombres entiers

    On peut aussi faire une formulation de ce problme de recouvrement sous formedune optimisation linaire en nombres entiers binaires.

    On pose (tableau ci-dessus) :Tik = 1 si i est color par k

    et on introduit un vecteur :

    ck = 1 si k est retenue

    Le programme linaire consiste minimiser le nombre de couleurs :

    min

    k

    ck

    sous la contrainte que chaque pays doit apparatre au moins une fois :

    k

    Tikck 1 i

    1.3.2 Noyaux1.3.2.1 Ensembles absorbants

    Df 1.7 Un sous-ensemble A de sommets (dun graphe G) est dit absorbant si chaquesommet extrieur A a un successeur (au moins un) dans A :

    x / A A (x) 6=

    Cela veut dire que, de nimporte quel sommet extrieur A, on peutentrer dans A par un seul arc (application en thorie des jeux, o un arcreprsente un coup possible).

    Df 1.8 Un sous-ensemble absorbant A est dit minimal si on ne peut lui retirer unsommet sans rompre son absorbance.

    1.3.2.2 Noyaux

    Df 1.9 Un sous-ensemble A de sommets dun graphe est un noyau sil est la foisstable et absorbant.

    Cest une notion utilise en thorie des jeux car le joueur qui se trouve dans unnoyau (ensemble des positions gagnantes) est oblig den sortir alors que son adversairepeut toujours y rentrer.

    On sen sert usuellement aussi pour effectuer un premier choix (Cf. p.19).

    Ex 1.4 Une feuille appartient tout noyau et le prdcesseur dune feuille aucun.

    (bM) 2007 Math-2

  • 18 CHAPITRE 1. NOTIONS GNRALES

    Thm 1.2 Un noyau est stable maximal.

    En effet, comme il est absorbant, on ne peut ajouter aucun sommet sans rompre lastabilit.

    Thm 1.3 [Corollaire] 9 Si G est symtrique, un sous-ensemble stable maximal estabsorbant, donc un noyau.

    En effet, maximal = tout sommet extrieur est reli : cest la dfinition de lab-sorbance dans le cas symtrique.

    Thm 1.4 Un graphe fini orient, sans circuits, a un noyau unique

    Theorme admis (la dmonstration se fait par un algorithme qui partitionne lessommets : dans le noyau et hors de lui).

    Thm 1.5 Soit F (Y, z) la fonction caractristique de lensemble Y , alors :

    Y est un noyau F (Y, t) = 1 maxz(t)

    (F (Y, z))

    En effet :1. Si Y est un noyau, alors :

    F (Y, t) = 1 = t Y = F (Y, z) = 0 pour z (t) F (Y, t) = 0 = t / Y = z (t) i.e. F (Y, z) = 1

    2. Rciproquement, si on a la relation propose : t Y = F (Y, t) = 1 = F (Y, z) = 0 : aucun z dans (t)

    (stabilit). t / Y = F (Y, t) = 0 = F (Y, z) = 1 : il y a un z dans (t)

    (absorbant).

    Thm 1.6 Lintersection de deux noyaux nest jamais un noyau.

    En effet, soient A et B deux noyaux : si A et B sont disjoints, il ny rien dmontrer. Si B inclus dans A, on peut trouver un x hors de B qui est reli B, donc rompt la stabilit de A.

    Sil ny a pas inclusion (BA 6= ), il existe un c dans AB reli un a dans A hors de B : idem.

    1.3.2.3 Algorithme de construction du noyau

    Dans le dictionnaire du graphe : Marquer toute ligne vide. Barrer toute ligne o apparat lindice dune ligne marque. Rayer lindice des lignes barre dans toute ligne non encore barre. Itrer juqu marquer ou barrer toutes les lignes.Le noyau est constitu des sommets correspondant aux lignes marques.

    9 Cest la rciproque du thorme prcdent, dans le cas symtrique.

    Math-2 (bM) 2007

  • CHAPITRE 1. NOTIONS GNRALES 19

    1.3.2.4 Exemple

    Soit effectuer un premier choix parmi 6 candidats au moyen des rsultats suivants,obtenus 4 tests :

    a | 18 13 15 14b | 17 12 14 10c | 15 11 19 13d | 12 10 9 2e | 13 16 13 6f | 10 15 10 3

    On construit le graphe orient o existe une arte (x, y) si : y a eu une meilleure note que x au moins lun des tests, y na aucune note infrieure, dans aucun des tests.

    FIG. 1.10 Noyau de slection

    Le noyau de ce graphe (ici a et e) fournit une premire slection.

    1.4 Arbres et arborescences1.4.1 ArbresProp 1.3 Etant donnes les trois proprits (dans un graphe G n sommets) :

    1. G est connexe2. G na aucun cycle3. G possde n 1 arcs.

    deux quelconques dentre elles impliquent la troisime.

    Df 1.10 Un graphe vrifiant les proprits prcdentes est appel arbre.

    1.4.1.1 Autres proprits

    Ex 1.5 Si on ajoute une arte un arbre, on cre un cycle (et un seul).

    Ex 1.6 Si on retire une arte un arbre, on rompt la connexit.

    Ex 1.7 Dans un arbre, il y a une chane (et une seule) entre deux sommets.

    (bM) 2007 Math-2

  • 20 CHAPITRE 1. NOTIONS GNRALES

    1.4.1.2 Arbre minimum

    Soit un ensemble de n sommets, dont on veut relier chaque paire par un chemin.Etant donn dautre part le cot de construction de chaque arte, on se propose de

    construire le graphe de cot minimum.

    Algorithme de Kruskal (pour la recherche de larbre minimum) :1. Initialement : aucune arte.2. Etape zro : construire les 2 artes de cots minimum.3. Pour k=3 :n-1

    choisir larte la moins coteuse qui ne ferme aucun cycle avec les artes dj retenues.

    1.4.2 ArborescencesDf 1.11 Une arborescence de racine r est un graphe sans circuit et tel que :

    1. tout sommet x, autre que r, a un seul prdcesseur ;2. la racine r na pas de prdcesseur ;

    1.4.2.1 Proprits

    Soit G une arborescence.

    1. G na pas de cycle.2. Le nombre dartes est : m = n 13. G est un arbre, donc connexe.4. G possde au moins une feuille.5. Il existe une chemin unique joignant la racine tout autre sommet.6. Deux sommets de mme niveau nont aucun descendant commun (cette proprit

    induit la notion de branche issue dun sommet).

    1.4.2.2 Branch and bound

    Un problme de prise de dcisions est reprsent par une arborescence : les feuilles sont les solutions ; chaque solution a un cot, que lon sait calculer.Bien entendu, il faut choisir la structure de cette arborescence (chaque niveau re-

    prsente une tape, et les choix peuvent tre nombreux).Par del les mthodes heuristiques, il convient de savoir rpondre aux questions

    suivantes, dont dpend lefficacit de la procdure de rsolution :

    1. comment trouver une bonne solution initiale, de dmarrage ?2. comment couper certaines branches de larborescence, qui namlioreront pas la

    solution ? (bound)3. o vaut-il mieux se brancher, en cours dexploration ? (branch)

    Math-2 (bM) 2007

  • CHAPITRE 1. NOTIONS GNRALES 21

    1.5 Graphes planairesUn graphe est planaire si on peut le dessiner sur une feuille sans que deux artes se

    coupent.

    Formule dEuler

    Prop 1.4 Dans un graphe planaire S sommets, F faces et A artes, on a :

    S + F = A+ 2

    Application : il nexiste que cinq polydres rguliers de lespace R3.

    Graphe dual

    Df 1.12 Pour obtenir le graphe dual dun graphe planaire connexe : On place un sommet dans chaque face, et on runit par une arte coupant une fois et une seule toute arte commune aux

    deux faces.

    Exemples de graphes duals (entre parenthses S et F ) : le cube (6,8) et loctadre (8,6) ; licosadre (12,20) et le dodcadre (20,12).

    Prop 1.5 Le dual dun graphe planaire est planaire.

    Nombre chromatique

    Thm 1.7 Un graphe planaire est 4-chromatique.

    Thorme de Kuratowski

    Thm 1.8 Un graphe est planaire si et seulement si il ne contient pas lun des deuxgraphes (complets) K5 et K33.

    Il est clair que K5 et K33 ne sont pas planaires (formule dEuler non vrifie). Larciproque montre quils sont, de ce point de vue, minimaux.

    FIG. 1.11 Graphes non planaires : K5,K33

    (bM) 2007 Math-2

  • Chapitre 2

    Flots

    2.1 Flot dans un rseau2.1.1 Dfinitions2.1.1.1 Rseau

    On appelle rseau (network) un graphe G = (X,U) : orient, connexe, sans circuit ; possdant une source a et un puits b ; arcs u valus par des capacits c(u) 0.Rappel : on note (S) lensemble des arcs incidents vers S (entrants) et +(S)

    lensemble des arcs sortants. 1

    2.1.1.2 Flot

    Un flot est une fonction (u) valeurs entires, dfinie sur U , avec les popritssuivantes :

    1. valeurs positives : u (u) 02. valeurs bornes 2 : u (u) c(u)3. conservation (loi de Kirchhoff) :

    x 6= a, b

    u(x)

    (u) =

    u+(x)

    (u)

    La valeur du flot est la quantit qui arrive au puits b. Cest aussi la quantit qui partde la source a, et il est parfois commode dintroduire un arc (dit de retour) :

    r = (b, a)

    de sorte que :(r) =

    u+(a)

    (u) =

    u(b)

    (u)

    1 Lensemble (S) = (S) (S) des arcs ayant une extrmit (et une seule) dans S sappelle uncocycle.

    2 Si on a galit, larc u est dit satur.

    22

  • CHAPITRE 2. FLOTS 23

    Cette quantit tant entire, on parlera souvent dunits de matire circulant dansle rseau.3

    2.1.2 ReprsentationsSoit le rseau de la Fig. 2.1.

    FIG. 2.1 Exemple de rseau [GR3]

    Sa matrice dadjacence M (sans larc de retour) scrit :1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

    -1 0 0 1 1 1 0 0 0 0 0 0 0 0 00 -1 0 0 0 0 1 1 1 0 0 0 0 0 00 0 -1 0 0 0 0 0 0 1 1 0 0 0 00 0 0 -1 0 0 -1 0 0 0 0 1 0 0 00 0 0 0 -1 0 0 -1 0 0 0 0 1 0 00 0 0 0 0 0 0 0 -1 -1 0 0 0 1 00 0 0 0 0 -1 0 0 0 0 -1 0 0 0 10 0 0 0 0 0 0 0 0 0 0 -1 -1 -1 -1

    et le vecteur C des capacits :

    45 25 20 10 15 20 20 5 15 10 10 30 10 20 30

    Exemple de flot :

    = 20 20 20 10 10 0 20 0 0 10 10 30 10 10 10

    pour lequel on peut vrifier que :3 Cette condition de type entier est simplement numrique : il existe une quantit (atomique) minimum

    pour la modification dun flot.

    (bM) 2007 Math-2

  • 24 CHAPITRE 2. FLOTS

    M = (60, 0, . . . , 0, -60) cest un flot C il est compatibleM = 60 on a sa valeur

    2.1.3 Flot maximum

    On se propose de maximiser la valeur (r) du flot.

    2.1.3.1 Coupe

    Df 2.1 Soit un ensemble B de sommets contenant b. Une coupe est un ensemble K darcs ayant leur extrmit dans B (et pas leur

    origine). La capacit dune coupe est la somme des capacits de ses arcs :

    C(K) =uK

    c(u)

    Proprit dune coupe Il rsulte de la dfinition que tout ce qui arrive en b doittraverser la coupe. Donc :

    Prop 2.1

    (r) C(K) K

    La valeur dun flot ne peut dpasser la capacit dune coupe.

    2.1.3.2 Flot maximum, coupe minimum

    Prop 2.2 Si on a trouv une coupe K telle que :

    (r) = C(K)

    alors : le flot est maximum : on ne peut rien ajouter sur cette coupe K ; C(K) est minimum : (r) ne pourrait passer sur C(K ) < C(K).

    Math-2 (bM) 2007

  • CHAPITRE 2. FLOTS 25

    2.2 Algorithme de Ford-FulkersonLalgorithme de Ford-Fulkerson construit un flot et dtermine une coupe qui vri-

    fient le critre doptimalit.

    2.2.1 DescriptionLa coupe sobtient en ralisant une partition (dynamique) des sommets en sommets

    marqus et non marqus.

    2.2.1.1 Obtention dun flot complet

    Le flot est construit par amliorations successives jusqu lobtention dun flot com-plet

    Df 2.2 Un flot est dit complet si tout chemin allant de a b comporte au moins un arcsatur

    Tant quil existe un chemin de a b nayant aucun arc satur, on peut amliorer leflot sur ce chemin.

    On le dtermine de faon systmatique en balayant les arcs depuis chaque noeud,dans un ordre convenu (arbitraire).

    2.2.1.2 Marquage des sommets

    Le marquage des sommets tente de construire une chane allant de a b.Sur cette chane, certains arcs seront parcourus dans le bon sens (arc progressifs) et

    dautres en sens contraire (rgressifs), choisis daprs la rgle : un arc progressif v doit vrifier : (v) < c(v) un arc rgressif w doit vrifier : (w) > 0

    Si on arrive marquer b, la chane ainsi construite est dite amliorante, caron peut augmenter le flot :

    en ajoutant une unit sur tout arc progressif v, en retranchant une unit sur tout arc rgressif w.

    La loi de Kirchhoff reste vrifie sur les sommets de la chane, sauf ena et en b, o on a ajout une unit. 4

    Sil est impossible de marquer b, cette partition des sommets (en marqus etnon marqus) dtermine une coupe darcs (d, f) ayant, par construction, la propritsuivante :

    si cest d qui est marqu, alors (u) = c(u), si cest f , alors (u) = 0

    i.e. :(K) = C(K)

    et on conclut daprs le lemme (flot maximum coupe minimum) : Prop. 2.2, p. 24.4 En pratique, on acclre le processus en ajoutant non pas une unit mais la quantit maximum possible,

    donne par le graphe des carts (valu par c ).

    (bM) 2007 Math-2

  • 26 CHAPITRE 2. FLOTS

    2.2.1.3 En rsum

    Lalgorithme est fini Il y a un arrt des itrations, car : le nombre de sommets est fini (et le graphe suppos sans circuit), on ne peut augmenter le flot que jusqu la limite des capacits.

    Larrt dfinit une coupe qui est lensemble K des arcs ayant une seule marque :soit leur origine (d), soit leur extrmit (f ).

    Le flot est maximum par obtention dune coupe minimale.

    Remarque La coupe ainsi dtermine nest pas forcment unique.5

    2.2.2 ExempleSoit raliser un rseau de distribution deau (avec des quantits mesures en

    nombres entiers) partir de trois rservoirs (1,2,3) vers quatre villes (4,5,6,7) : [GR3],Fig. 2.1, p. 23.

    Il sagit de maximiser la somme des quantits achemines, sous des contraintes delimitation :

    de stockage de chacun des rservoirs, de stockage en chacune des villes, de chaque conduite dacheminement existante.Le graphe est ici biparti mais lalgorithme de Ford-Fulkerson nest pas limit ce

    type de graphe.

    2.2.2.1 Obtention dun flot complet

    Flot au jug (Fig.2.2)quon amliore. . . 6 jusqu trouver un flot complet 7 (Fig. 2.3).

    2.2.2.2 Marquage

    Procdure de marquage de Ford-Fulkerson :On arrive marquer b, par la chane :

    A 3 6 2 4 B

    Do lamlioration 8 : Fig. 2.4 On reprend la procdure de marquage. On ne peut plus marquer b :

    A 1 5

    Limpossibilit de marquer b dtermine donc une coupe K : Fig. 2.5

    5Cest dire quil ne sert rien daugmenter les capacits des arcs de cette coupe : loptimum ne changerapas sil se produit dans dautres.

    6 En ajoutant systmatiquement sur le premier arc gauche (mais on peut trouver dautres flots).7 Pour obtenir un flot complet, on se restreint au graphe partiel des arcs non saturs.8 Obtenue en ajoutant non pas une unit, mais le maximum possible sur le chemin.

    Math-2 (bM) 2007

  • CHAPITRE 2. FLOTS 27

    FIG. 2.2 Flot initial au jug

    FIG. 2.3 Flot complet

    (bM) 2007 Math-2

  • 28 CHAPITRE 2. FLOTS

    FIG. 2.4 Augmentation sur chane amliorante

    FIG. 2.5 Coupe minimale obtenue

    Math-2 (bM) 2007

  • CHAPITRE 2. FLOTS 29

    2.3 Implmentations2.3.1 Optimisation linaireFormulation primale Le problme du flot maximum est un problme doptimisationlinaire sous contraintes linaires et on peut se proposer de le rsoudre comme tel.

    Soient :

    = (1,2, . . . ,m)

    M(n,m) = matrice dadjacence

    alors le problme scrit :

    max = (M | e1)

    0

    C

    Formulation duale On peut aussi rsoudre le problme dual :

    min = ( | C)

    0

    Me1

    2.3.2 Un programme classiqueLe programme classique du flot maximum utilise la notion de graphe des carts.Version scilab :

    function [ flot, G ] = fordFulk (G)//// Flot maximum : Ford - Fulkerson// Canadian Journal of Mathematics// Vol. 9, 1957, 210-218//// scilab : (bM) 2006

    [ n, rien ] = size (G)

    flot = 0it = 0while %t

    it = it + 1

    (bM) 2007 Math-2

  • 30 CHAPITRE 2. FLOTS

    sig = zeros (n, 1)gam = zeros (n, 1)del = zeros (n, 1)del(1) = max (G)

    iter = 0while %t

    iter = iter + 1k = max (sig)

    for i = 1:nif k ~= sig(i) then continue, end

    for j = 1:nif del(j) ~= 0 then continue, endif G(i,j) 0 then break, end

    for i = 1:nif del(i)

  • CHAPITRE 2. FLOTS 31

    2.4 Aspects algbriques

    2.4.1 Flots et tensions

    On suppose quil existe une fonction pi (appele potentiel) dfinie sur les sommetsde G, et on pose, pour tout arc u = (x, y) :

    (u) = pi(y) pi(x)

    appele fonction tension (dfinie sur les arcs).On a clairement :

    = Mpi

    Si le flot dans un rseau est une tension , on dit quil drive du potentiel pi.9

    Orthogonalit des flots et des tensions Des relations :

    M = 0

    = Mpi

    on dduit que :

    ( | ) = 0

    Tensions lmentaires Une tension est dite lmentaire sur un ensemble S de som-mets si :

    (u) = +1 si u +(S)(u) = 1 si u (S)

    Une tension lmentaire drive de la fonction caractristique du complmentairede S dans X :

    pi(x) = 0 si x Spi(x) = 1 si x / S

    Le potentiel pi est donc, dans ce cas particulier, associ une coupe.

    9 Analogie vidente en lectricit o le flot est une intensit.

    (bM) 2007 Math-2

  • 32 CHAPITRE 2. FLOTS

    2.4.2 Flots bornsOn dit que le flot est born lorsque la contrainte de dfinition scrit :

    0 b(u) (u) c(u)

    Le problme qui se pose alors dans lapplication de lalgorithme de Ford-Fulkersonest de trouver un flot initial de dmarrage (ce nest plus zro).

    2.4.2.1 Flots et simplexe

    Si le problme primal est en termes de flots, le dual est en termes de potentiel, eton montre que la tension est lmentaire loptimum.

    Le potentiel dont elle drive dfinit alors la coupe.

    2.4.2.2 Existence dun flot

    Theorme de Hoffmann Si la contrainte scrit :

    b c

    alors la condition :

    u(S)

    c(u)

    u+(S)

    b(u) S X

    est ncessaire et suffisante pour lexistence dun flot compatible.Il est remarquable que la condition soit suffisante.

    La dmonstration est constructive : lalgorithme (dit de Herz) minimisela somme des carts du flot existant dans le mauvais sens . . . (et montrealors quon peut lannuler sous la condition ci-dessus).

    Math-2 (bM) 2007

  • Chapitre 3

    Couplage

    3.1 Affectation optimale

    3.1.1 Dfinitions3.1.1.1 Graphe biparti

    Df 3.1 On appelle graphe biparti, not G(X,Y, U), un graphe dont lensemble dessommets est partitionn en deux classes (X,Y ) et tel que tout arc a son origine dansX et son extrmit dans Y .

    Exemple : le graphe K3,3 est un graphe biparti complet.

    Si on numrote les sommets de X dabord (1:p), puis ceux de Y(p+1:n), alors la matrice associe na dlments non nuls que dans lecoin en haut droite ainsi dfini.

    La matrice dadjacence est aussi partitionne en ses p premires lignes(contenant tous les 1) et les n-p suivantes (contenant tous les -1).

    3.1.1.2 Couplage

    Df 3.2 Un ensemble darcs est appel couplage si deux arcs ne sont jamais adjacents : un sommet x a un successeur au plus, un sommet y a un prdcesseur au plus.

    Un sommet (de X ou Y ) est dit satur sil appartient un arc du couplage.Le problme usuel est la recherche dun couplage optimum (ayant le maximum

    darcs).

    3.1.2 Reprsentation matricielleSoit raliser laffectation optimale de p individus Li p postes Cj , compte tenu

    dune table de coefficients dadquation.Affectation globalement optimale : on optimise la somme des coefficients.

    33

  • 34 CHAPITRE 3. COUPLAGE

    Dans lexemple numrique suivant [GR4] (reprsentant le coin en haut droite dela matrice du graphe) :

    A =

    7 3 5 7 106 8 76 5 1 5 11 4 11 15 4 5 2 10

    on convient que Aij = 0 est loptimum ( reprsentant limpossibilit daffectation).

    Remarque On ne change pas la solution de ce problme en retranchant de chaquecolonne son plus petit lment et en oprant de mme sur les lignes :

    A =

    1 0 4 5 30 6 00 2 0 3 4 0 8 7 1 4 0 3

    3.2 Rsolution par flot maximum3.2.1 Graphe initial des zros

    On considre dabord le graphe partiel des zros de la matrice, avec des arcs sup-poss boolens (affects ou non affects).

    En y ajoutant une entre (conduisant aux sommets de X) et une sortie (do pro-viennent les sommets de Y ), on obtient une rseau auquel on peut appliquer lalgo-rithme de Ford-Fulkerson.

    Si le flot maximum sur ce graphe partiel correspond un couplage qui sature tousles X ou tous les Y , alors cest loptimum.

    Sinon, on ajoute des arcs ce graphe partiel.

    3.2.2 Adjonction darcsOn augmente le graphe partiel en y ajoutant les arcs correspondant aux lments de

    A les plus petits restants. 1Sur ce graphe augment, on entame une procdure de marquage qui peut amliorer

    la couplage.On ritre cette opration (dadjonction darc) jusquau couplage optimum ou

    lpuisement des arcs.1 Cest dire quon accepte un optimum correspondant des termes de A autres que les zros.

    Math-2 (bM) 2007

  • CHAPITRE 3. COUPLAGE 35

    3.2.3 Une chane amliorante est alterneDf 3.3 Une chane dansG est dite alterne si elle est compose darcs alternativementsaturs et non saturs.

    Thorme

    Un couplage est maximum si et seulement siaucune chane alterne ne relie deux sommets insaturs.

    Il est facile de voir que la condition est ncessaire, car on peut amliorer le couplagesur une chane alterne :

    on y permute les arcs saturs et les non saturs,

    Exemple (non significatif pour la matrice ci-dessus) :

    3.3 Algorithme hongroisLalgorithme de Knig (algorithme hongrois) rsout le problme du couplage opti-

    mum.

    3.3.1 Description sur un exempleSur le graphe [GR4] des zros de la matrice :

    1 0 4 5 30 6 00 2 0 3 4 0 8 7 1 4 0 3

    on sature dabord les arcs :

    (L1, C2), (L2, C1), L3, C3), (L5, C4)

    et le flot est alors complet car on ne peut marquer la sortie :

    E L4 C2 L1

    (bM) 2007 Math-2

  • 36 CHAPITRE 3. COUPLAGE

    Lalgorithme hongrois amliore le processus en observant que lensemble des ran-ges de A correspondant aux Li marqus et aux Cj non marqus reprsente les arcspossibles ajouter.

    Le meilleur arc correspond ainsi au plus petit lment de la sous-matrice :

    1 . 4 5 3. . . . .. . . . .4 . 8 7. . . . .

    cest dire (L1, C1). 2

    Dans ce nouveau graphe : on constate alors que la chane :

    (L4, C2, L1, C1, L2, C5)

    est alterne (entre deux sommets insaturs). La permutation des arcs saturs et nonsaturs donne donc un arc de plus.

    Le couplage obtenu :

    (L1, C1); (L2, C5); (L3, C3); (L4, C2); (L5, C4)

    est alors maximum (sans tre unique).Sa valeur (calcule dans la matrice initiale) est :

    7 + 7 + 1 + 4 + 2 = 21

    2 Alors que la version de principe aurait ajout les deux arcs (1, 1) et (5, 2).

    Math-2 (bM) 2007

  • CHAPITRE 3. COUPLAGE 37

    3.3.2 Version matricielle de lalgorithme hongrois3.3.2.1 Couplage (partiel) initial

    Choisir une ligne contenant le moins de zros. Encadrer 0 le premier zro et barrer tous les autres sur sa ligne et sa colonne. Continuer jusqu avoir trait tous les zros.

    . 0 . . .0 . . . . 0 . .. . . .

    . . . 0 .

    3.3.2.2 Sous-matrice dadjonction dun arc Marquer les lignes ne contenant pas de zro encadr 0 Marquer les colonnes ayant un zro barr dans une ligne marque. Marquer les lignes ayant un zro encadr 0 dans une colonne marque. Barrer les lignes non marques et les colonnes marques.

    1 0 4 5 3

    0 6 0 0 2 0 3

    4 0 8 7 1 4 0 3

    3.3.2.3 Amlioration

    Prendre le plus petit des lments de la matrice restante (en enlevant les rangesbarres).

    Soustraire ce nombre des colonnes non barres et lajouter aux lignes barres.

    1 0 4 5 30 6 00 2 0 3 4 0 8 7 1 4 0 3

    0 0 3 4 20 6 00 3 0 3 3 0 7 6 2 4 0 3

    3.3.2.4 Itration

    On reprend le marquage jusqu trouver p zros encadrs 0 .

    (bM) 2007 Math-2

  • Chapitre 4

    Chemins extrmaux

    On considre un graphe G = (X,U), arcs valus, sans circuits.La valeur vij dun arc est appele sa longueur.

    4.1 Problme du plus court cheminOn se place dans le cas particulier dun rseau (entre a, sortie b), reprsentant les

    tapes dun projet, lexistence dun arc (i, j) signifiant que : ltape j est postrieure i ; une dure minimum vij est ncessaire entre les deux.

    Df 4.1 Problme du plus court chemin : trouver un chemin de a b, de longueurmaximale. 1

    4.1.1 Algorithme de FordLalgorithme ci-dessous 2 rsout le problme par une procdure de marquage des

    sommets.

    Algo 4.1 Algorithme du plus court chemin : marquer lentre par ta = 0 marquer chaque sommet j dont tous les prdcesseurs P (j) sont marqus :

    tj = maxiP (j)

    (ti + vij)

    La marque tb de la sortie est la longueur du chemin extrmal. 3

    Ex 4.1 Ecrire lalgorithme de Ford.

    On peut utiliser la matrice associe (vij) : Fig. 4.1, p. 39.On notera limportance de la numrotation des sommets (test j

  • CHAPITRE 4. CHEMINS EXTRMAUX 39

    FIG. 4.1 Algorithme de Ford

    for i = 1:nfor j = 2:n

    if v(i,j) == 0 then continue, end

    tt = t(i) + v(i,j)if t(j) < tt then

    t(j) = ttif j < i then i = j, j = 2, end // !end

    endend

    4.1.1.1 Chemin critique

    Df 4.2 Soit un chemin de a i, de longueur maximale : sa longueur di est appeledate au plus tt (du sommet i).

    En inversant le sens des arcs du graphe, on obtient les (complments la duretotale des) dates au plus tard fi (de chaque sommet).

    Df 4.3 On appelle chemin critique un chemin de a b, jalonn par des sommets i telsque :

    di = fi

    vij = dj di

    On le construit en remontant les arcs depuis b.Il nest pas forcment unique.

    4.1.2 Ordonnancement

    Le problme de lordonnancement consiste dterminer le calendrier dexcutionde tches soumises des contraintes de coordination (succession et dure).

    On dtermine alors le chemin de longueur maximale allant du dbut la fin duprojet.

    La mthode PERT4 est un autre nom (utilis en gestion de projets) de lalgorithmedu plus court chemin.

    4 Program Evaluation Research Task ou Review Technique

    (bM) 2007 Math-2

  • 40 CHAPITRE 4. CHEMINS EXTRMAUX

    4.1.2.1 Exemple

    Soit le rseau dordonnancement [GR5] dont le dictionnaire (avec les valuationsentre parenthses) scrit :

    0 1 (2), 3 (6), 4 (4), 2 (4)1 3 (3), 4 (5)2 6 (7)3 5 (6)4 2 (2), 5 (4), 6 (3)5 7 (2)6 7 (3)7 8 (4)

    4.1.2.2 Rsolution graphique

    Dates au plus tt et au plus tard :

    0 : (0,0)1 : (2,2)2 : (9,9)3 : (6,11)4 : (7,7)5 : (12,17)6 : (16,16)7 : (19,19)8 : (23,23)

    Chemin critique :

    0 1 4 2 6 7 8

    Math-2 (bM) 2007

  • CHAPITRE 4. CHEMINS EXTRMAUX 41

    4.2 Mthode matricielle4.2.1 Matrices et oprations symboliques4.2.1.1 Dfinitions

    Df 4.4 Matrice symbolique M du graphe valu : 5

    Mij =

    vij si (xi, xj) U0 si i = j si (xi, xj) / U

    Df 4.5 Oprations symboliques associes M :

    a [+] b = max(a, b)a [*] b = a+ b

    remplaant 6 laddition et la multiplication.

    Prop 4.1 Les oprations symboliques vrifient les proprits usuelles :1. distributivit2. matrice nulle :

    3. matrice identit : 0 0

    0

    4.2.1.2 Proprits

    Posons :M(p) = M [p]

    Ex 4.2 Montrer que :

    [M(2)]ij est la longueur maximale des chemins de deux arcs entre i et j.

    Cest une consquence immdiate de la formule :

    C = A[]B Cij = max(Aik +Bkj)

    Prop 4.2 La matrice M(p) est la matrice des chemins maximaux de p arcs.

    Le nombre n de sommets tant fini et le graphe suppos sans circuits, il est clairque les puissances successives de M finissent par se stabiliser.

    On a donc les cas particuliers : M(1) =M , matrice initiale ;

    5 Dans le cas dune longueur maximale pour fixer les ides. Pour une longueur minimale, on remplace par + et max par min.

    6 avantageusement, car plus rapides.

    (bM) 2007 Math-2

  • 42 CHAPITRE 4. CHEMINS EXTRMAUX

    M(n 1) = R, appele matrice de rsolution.

    Ex 4.3 On peut calculer R en O(log n) produits matriciels symboliques.

    Car il suffit en pratique de calculer M [2],M [4],M [8], . . ., jusqu lastabilisation.

    4.2.2 Ordonnancement par la mthode matricielleSoit R la matrice de rsolution. On observe que : la ligne R(1,:) donne les dates au plus tt ; llment R(1,n) est la longueur totale cherche ; la colonne R(:,n) permet de calculer les dates au plus tard.

    4.2.2.1 Calcul des marques

    Si on veut viter le calcul de R, on peut itrer un produit matrice-vecteur pourobtenir les dates.

    Ex 4.4 La suite de vecteurs (ligne) :

    V0 = M(1, :)Vk+1 = Vk []M

    converge vers les dates au plus tt.

    Ex 4.5 La suite de vecteurs (colonne) :

    Z0 = M( :,n)Zk+1 = M [] Zk

    converge vers le complment ( R(1,n)) des dates au plus tard.

    Math-2 (bM) 2007

  • CHAPITRE 4. CHEMINS EXTRMAUX 43

    4.2.3 Exemple de rsolution matricielleOn reprend le rseau dordonnancement [GR5] de la page 40.Matrice symbolique (le - est un ) :

    M =

    0 2 4 6 4 0 3 5 0 7 0 6 2 0 4 3 0 2 0 3 0 4 0

    Dates au plus tt :(0 2 9 6 7 12 16 19 23

    )Dates au plus tard :

    (0 2 9 11 7 17 16 19 23

    )Matrice de rsolution :

    R =

    0 2 9 6 7 12 16 19 23 0 7 3 5 9 14 17 21 0 7 10 14 0 6 8 12 2 0 4 9 12 16 0 2 6 0 3 7 0 4 0

    On observe que la prsence (dans M , et donc dans R) dlments au dessous dela diagonale est une indication de (mauvaise) qualit de la numrotation (on a signalci-dessus que cela activait un test de rebouclage dans lalgorithme de Ford).

    (bM) 2007 Math-2

  • Deuxime partie

    Exercices

    44

  • Sance 1

    Graphes

    Objectifs

    Quelques rsultats dillustration de la thorie des graphes.

    FIG. 1.1 Exemple de graphe

    1.1 Reprsentations dun grapheDf 1.1 Dictionnaire du graphe :

    1 : 2, 42 : 33 : 4, 54 : 25 :

    Df 1.2 Matrice associe :

    B =

    0 1 0 1 00 0 1 0 00 0 0 1 10 1 0 0 00 0 0 0 0

    45

  • 46 SANCE 1. GRAPHES

    Df 1.3 Matrice dadjacence :

    M =

    1 1 0 0 0 01 0 1 0 0 10 0 1 1 1 00 1 0 1 0 10 0 0 0 1 0

    Ex 1.1 Ecrire le principe dalgorithmes de conversion entre les diffrentes reprsenta-tions.

    Commenter rapidement : lencombrement (de la reprsentation choisie) et la com-plexit (de la fonction de conversion).

    1.2 Cheminements dans un graphe

    Ex 1.2 On se pose le problme de lexistence de chemins entre deux sommets donnsdun graphe.

    Calculer B2, B3, . . . et expliquer le rsultat.

    Ex 1.3 Pour vrifier labsence de circuit dans un graphe, on applique lalgorithme sui-vant :

    1. marquer tout sommet qui na pas de successeur ;

    2. marquer tout sommet dont tous les successeurs sont marqus.

    Quels en sont les terminaisons possibles ?

    Ex 1.4 Quelle est la structure de donnes la plus adapte ?En particulier, si on reprsente le graphe par sa matrice associe, quel est le critre

    dabsence de circuit ?

    Circuits hamiltoniens

    Ex 1.5 On considre le graphe (X,U) form par les n2 cases dun chiquier avec desartes qui relient deux cases quand un cavalier peut aller directement de lune lautre.

    Montrer que si n est impair un cavalier ne peut pas passer par toutes les cases etrevenir son point de dpart.

    Cette proprit quivaut dire que :Un graphe 2-coloriable nadmet pas de cycle de longueur impaire.

    Ex 1.6 Montrer que le graphe associ au dodcadre est hamiltonien.

    Math-2 (bM) 2007

  • SANCE 1. GRAPHES 47

    FIG. 1.2 Dodcadre

    1.3 Stabilit

    Stabilit interne

    Df 1.4 Un sous-ensemble A de sommets est dit stable sil ne contient pas darcs.

    Df 1.5 Le nombre chromatique est le nombre minimum de sous-ensembles stablesralisant une partition de X .

    1.3.0.1 Exemple

    Soit colorier une carte de 8 pays, dont la matrice binaire reprsente le graphe decontigut : Aij = 1 si i et j sont limitrophes.

    A =

    1 1 0 0 0 0 0 1 1 0 0 0 0

    0 1 0 0 0 0 0 1 0

    0 0 1 0 0

    0

    Ex 1.7 Dcrire un algorithme (raisonnable) de construction de sous-sensembles stables,donc de coloration.

    Ex 1.8 On supose avoir dtermin, de faon systmatique, les sous-sensembles stablessuivants :

    (bM) 2007 Math-2

  • 48 SANCE 1. GRAPHES

    1 4 51 4 81 5 71 7 82 5 7 62 6 7 83 4 6 83 6 7 84 5 6

    Comment peut-on conclure ?

    1.4 Graphes particuliersAborescences

    Ne pas confondre arbre (graphe non orient, connexe, sans cycle) et arborescence,qui est un graphe orient possdant une (racine).

    A toute expression forme par composition de fonctions, on peut associer une ar-borescence de la manire suivante :

    on crit lexpression en notation polonaise inverse, les feuilles sont les constantes ou les variables, les noeuds sont les symboles de fonction, les arcs relient deux fonctions qui sont composes.

    Ex 1.9 Quelle est larborescence associe :

    sin (x + y) +

    a+1a1

    (2x2 + 1 + y) dx

    Ex 1.10 Comment est parcourue larborescence lors de lvaluation ?

    Graphes planairesThm 1.1 Si un graphe connexe est planaire et si S est le nombre de sommet, A lenombre darte et F le nombre de face on a (relation dEuler) :

    S + F A = 2

    Rappel : K5 est le graphe complet 5 noeuds, i.e. cest la runion du pentagoneet du pentagone toil. K3,3 est le graphe (3 + 3) noeuds dont les artes relient troismaisons trois puits.

    Ex 1.11 Vrifier que les graphes K5 et K3,3 ne peuvent pas tre planaires.

    Math-2 (bM) 2007

  • Sance 2

    Flots et chemins dans un rseau

    Objectifs

    Thorie des Graphes.Flot maximum dans un rseau.Problme du chemin optimal.

    Rappelons quon note (x) lensemble des arcs incidents vers x (sommet ouensemble de sommets) et +(x) lensemble des arcs sortant de x.

    2.1 Flot maximumDf 2.1 On appelle rseau un graphe G = (X,U) :

    orient, connexe, sans boucle ; possdant une source a et un puits b ; arcs u valus par des capacits c(u) 0.

    Df 2.2 Un flot est une fonction (u) valeurs entires, dfinie sur U , telle que :1. u (u) 02. u (u) c(u)3. x 6= a, b

    u(x) (u) =

    u+(x) (u) (loi de Kirchhoff)

    La valeur du flot est la quantit qui arrive au puits b (cest donc aussi gal ce quipart de la source a).

    (b) =

    u+(a)

    (u) =

    u(b)

    (u)

    On se propose de maximiser la valeur du flot.

    Df 2.3 Une coupe est un ensemble E darcs qui rencontre tout chemin allant de lasource a vers le puits b.

    49

  • 50 SANCE 2. FLOTS ET CHEMINS DANS UN RSEAU

    La capacit dune coupe est la somme des capacits de ses arcs :

    C(E) = c((E)) =

    u(E)

    c(u)

    Prop 2.1 La valeur dun flot ne peut dpasser la capacit dune coupe.Thm 2.1 Le flot est maximum sil est gal la capacit miminale dune coupe.Df 2.4 Un flot est dit complet si chaque chemin allant de a b comporte au moins unarc satur.

    Algo 2.1 Lalgorithme de Ford-Fulkerson est une procdure de marquage dynamiquedes sommets dune chane allant de a b.Df 2.5 Une chane allant de a b est dite amliorante si ses arcs progressifs sont nonsaturs et ses arcs rgressifs non vides.

    ExerciceSoit raliser un rseau de distribution deau (avec des quantits mesures en

    nombres entiers), partir de trois rservoirs (1,2,3), vers trois villes (4,5,6).Il sagit de maximiser la somme des quantits achemines, compte tenu des limi-

    tations de capacit : de stockage de chacun des rservoirs (arcs partant de lentre a),de stockage en chacune des villes (arcs incidents sur la sortie b), de chaque conduitedacheminement existante.

    FIG. 2.1

    Ex 2.1 Vrifier (avec un trac du graphe ou sur une matrice) quun premier flot au jugest compatible avec les contraintes.Ex 2.2 Amliorer le flot jusqu le rendre complet ( = 10).Ex 2.3 Entamer une procdure de marquage et vrifier quon peut atteindre la sortie b.Ex 2.4 Faire lamlioration de lalgorithme de Ford-Fulkerson (alors = 11) et ca-ractriser la coupe qui en rsulte.

    Math-2 (bM) 2007

  • SANCE 2. FLOTS ET CHEMINS DANS UN RSEAU 51

    ConvergenceEx 2.5 Montrer que (sous dventuelles conditions que lon prcisera) lalgorithmecomporte un nombre fini dtapes.

    Ex 2.6 Montrer que larrt dfinit une coupe.

    Ex 2.7 Montrer qualors le flot est maximum.

    2.2 OrdonnancementDf 2.6 On considre un rseau (dit graphe dordonnancement) G = (X,U) arcsvalus (par une dure vij appele ici. . . longueur).

    Le problme est de trouver le chemin de longueur extrmale allant du sommetdentre a la sortie b.

    Algo 2.2 Algorithme de Ford : marquage ti des sommets.

    Df 2.7 Les arcs (i, j) pour lesquels on a : tj ti = vij jalonnent le chemin critique.

    ExerciceSoit raliser un projet dont les tapes (successives ou concomittantes) sont re-

    prsentes par un graphe dtapes (valu par des dures) dont le dictionnaire scrit1 :

    0 7 1 (2), 3 (6), 4 (4), 2 (4)1 7 3 (3), 4 (5)2 7 6 (7)3 7 5 (6)4 7 2 (2), 5 (4), 6 (3)5 7 7 (2)6 7 7 (3)7 7 8 (4)

    Ex 2.8 Dessiner le graphe de ce projet.Quelle est la structure de donnes suggre par le dictionnaire du graphe ?

    Ex 2.9 Calculer les dates au plus tt.Dterminer la dure optimale du projet et calculer les dates au plus tard.

    Ex 2.10 Dterminer le chemin critique.

    Mthode algbriqueDf 2.8 Matrice et oprations symboliques : [+], [*], . . . .Prop 2.2 Montrer que : M(p) =M [p]

    1Les valuations figurent entre parenthses.

    (bM) 2007 Math-2

  • 52 SANCE 2. FLOTS ET CHEMINS DANS UN RSEAU

    2.3 CouplageDf 2.9 On appelle graphe biparti, not G(X,Y, U), un graphe dont lensemble dessommets est partitionn en deux classes (X,Y ) et tel que tout arc a son origine dansX et son extrmit dans Y .

    Df 2.10 Un ensemble darcs est appel couplage si deux arcs ne sont jamais adja-cents.

    On convient de nommer arcs pais les arcs du couplage et arcs fins les autres. Le problme usuel est la recherche dun couplage maximum (ayant le maximum

    darcs).

    ExerciceSoit raliser laffectation optimale de p individus Xi p postes Yj , compte tenu

    dune table de coefficients dadquation.Dans lexemple numrique suivant :

    C =

    7 3 5 7 106 8 76 5 1 5 11 4 11 15 4 5 2 10

    on convient que Cij = 0 est loptimum ( reprsentant limpossibilit daffectation).On ne change pas la solution de ce problme en retranchant de chaque colonne son

    plus petit lment et en oprant de mme sur les lignes.On obtient :

    C =

    1 0 4 5 30 6 00 2 0 3 4 0 8 7 1 4 0 3

    Ex 2.11 Quel est, en termes matriciels, la nature du rsultat cherch ?

    Ex 2.12 Poser ce problme en termes de flot maximum et rsoudre par lalgorithme deFord-Fulkerson.

    Df 2.11 Une chane dans G est dite alterne si elle est compose darcs alternative-ment pais et fins.

    Prop 2.3 Le couplage est maximum si et seulement si aucune chane alterne ne reliedeux sommets insaturs.

    Math-2 (bM) 2007

  • Sance 3

    Programmation linaire

    Objectifs

    Initiation la programmation linaire.

    3.1 Engrais chimiquesUne usine chimique produit deux sortes dengrais minraux complexes par mlange

    de plusieurs composants.1. Le produit A, vendu 3 euros, est compos de :

    1 kg de nitrates 2 kg de sel de potassium

    2. Le produit B, vendu 5 euros, est compos de : 1 kg de nitrates, 1 kg de phosphates 3 kg de sel de potassium.

    Sachant que les quantits disponibles en stock sont : 8 kg de nitrates, 4 kg de phosphates 19 kg de sel de potassium.

    dterminer les quantits (x1, x2) de chaque produit fabriquer pour maximiser le b-nfice .

    3.1.1 Mthode gomtriqueEx 3.1 Rsoudre gomtriquement ce problme.

    Ex 3.2 Ecrire la formulation algbrique de ce problme.

    Df 3.1 On introduit des variables dcart (y1, y2, y3), reprsentant les quantits rsi-duelles de composants : forme standard.

    53

  • 54 SANCE 3. PROGRAMMATION LINAIRE

    Ex 3.3 On convient de reprsenter un point du domaine admissible au moyen de 5composantes (x1, x2, y1, y2, y3).

    Caractriser les sommetsO,M, T, P,N (en tournant dans le sens trigonomtrique)de ce domaine polygonal.

    Ex 3.4 Si on chemine le long de ON , montrer quon parvient :

    (0, 4, 4, 0, 7) = 20 + 3x1 5y2

    Ex 3.5 Quobtient-on par un calcul analogue le long de OM ?Ex 3.6 Continuer les itrations jusqu obtenir loptimum.

    3.1.2 Mthode des tableauxDf 3.2 Tableau du simplexe : on ajoute au systme des contraintes une ligne supp-mentaire reprsentant la fonction objectif :

    coefficients (changs de signe), gauche ; valeur initiale, droite.

    Le rsultat dun certain programme se trouve ci-dessous.

    1 2 3 4 51.0 1.0 1.0 0.0 0.0 8.0 30.0 1.0 0.0 1.0 0.0 4.0 42.0 3.0 0.0 0.0 1.0 19.0 5

    -3.0 -5.0 0.0 0.0 0.0 0.0

    1 4 3 4 51.0 0.0 1.0 -1.0 0.0 4.0 30.0 1.0 0.0 1.0 0.0 4.0 22.0 0.0 0.0 -3.0 1.0 7.0 5

    -3.0 0.0 0.0 5.0 0.0 20.0

    5 4 3 4 50.0 0.0 1.0 0.5 -0.5 0.5 30.0 1.0 0.0 1.0 0.0 4.0 21.0 0.0 0.0 -1.5 0.5 3.5 10.0 0.0 0.0 0.5 1.5 30.5

    Ex 3.7 Vrifier que chaque tableau est relatif une tape des itrations de lun descheminements dcrits prcdemment (lequel ?).Ex 3.8 Comment passe-t-on dun tableau au suivant ?

    Ex 3.9 Pourquoi le dernier tableau est-il . . . bien le dernier ?

    3.1.3 Perturbation des donnesEx 3.10 On dispose dsormais de 10 kg de nitrates (au lieu de 8). Quel est la nouvellesolution ?

    Ex 3.11 Mme question avec 6 kg de nitrates ? et. . . cest normal, tout a ?

    Math-2 (bM) 2007

  • SANCE 3. PROGRAMMATION LINAIRE 55

    3.1.4 Autre point de vueUne cooprative agricole ngocie le prix unitaire de chaque composant pour acheter

    la totalit du stock. On veut dterminer les prix pour que cette vente en vrac rapporteau moins autant que la vente des mlanges.

    Ex 3.12 Caractriser ce problme par rapport au prcdent.

    Ex 3.13 Que peut-on dire de sa rsolution ?

    3.2 Approximation du problme du profil dune routeRappels (de la sance 2 dOptimisation) : La fonction g et les scalaires h, sont des donnes. La fonction sera choisie plus loin. Expression minimiser :

    J(u) =

    n1

    Ji(u)

    Ji(u) =

    xixi1

    (u(x) g(x)

    )dx

    Mthode dapproximation :

    Ji(u) h

    2

    ((u(xi1) g(xi1)

    )+ (u(xi) g(xi)

    ))

    Expression numrique minimiser :

    I(U) = h

    (1

    2(u0 g0) + (u1 g1) + + (un2 gn2) +

    1

    2(un1 gn1)

    )

    Contraintes vrifier :

    |ui ui1| h 1 i n 1

    Ex 3.14 On choisit (y) = |y|. Montrer que ce problme doptimisation est quivalentau problme :

    minui,zi

    1

    2z0 + z1 + + zn2 +

    1

    2zn1

    |ui ui1| h

    zi h|ui gi| 1 i n 1

    Ex 3.15 Poser prcisment ce problme de programmation linaire (en prenant n = 4pour fixer les ides).

    Ex 3.16 Sait-on le rsoudre ? (comme prcdemment).

    (bM) 2007 Math-2

  • Sance 4

    Algorithme du simplexe

    Objectifs

    Optimisation linaire sous contraintes linaires.Aspects algbriques et gomtriques.Algorithme du simplexe.Certains rsultats (cits pour la continuit de lexpos) nont pas tredmontrs.

    4.1 Exemple

    Un manufacturier fabrique deux types de produits partir de trois composants : un produit A (5 plaques, 2 rondelles, 1 tube) rapportant 8 euros. un produit B (3 plaques, 3 rondelles, 3 tubes) rapportant 6 euros.

    Sachant quil dispose en tout de 30 plaques, 24 rondelles, 18 tubes, calculer les quan-tits x1 (de produits A) et x2 (de produits B) fabriquer pour maximiser son bnfice.

    Ex 4.1 Rappeler brivement la mthode de rsolution vue la sance prcdente : introduire les variables dcart, crire la forme canonique, itrer jusqu loptimum : le tableau final est celui de la Fig. 4.1.

    56

  • SANCE 4. ALGORITHME DU SIMPLEXE 57

    FIG. 4.1 Tableau final obtenu

    | 1 0 1/4 0 -1/4 3 || 0 0 -1/4 1 -3/4 3 || 0 1 -1/12 0 5/12 5 || 0 0 3/2 0 1/2 54 |

    4.2 Inquations linairesDf 4.1 Forme standard du systme des contraintes :

    C11 C12 C1nC21 C22 C2n

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    Cp1 Cp2 Cpn

    x1x2

    .

    .

    .

    xn

    =

    d1d2.

    .

    .

    dp

    Aspects algbriquesDf 4.2 Partition de C en matrice de base B et hors-base H .

    Df 4.3 Forme canonique du systme des contraintes : B1Cx = B1d.

    On sarrange pour que les colonnes de base soient regroupes droite :C = [H B].

    1 m m+1 m+p=nx(1 :m) x(m+1 :m+p)variables hors-base variables de base

    Df 4.4 Changement de base : passage de la matrice dune forme canonique uneautre.

    Notation des composantes du changement de base :

    r = indice (1 r m) de la composante qui entres = indice (m+ 1 m+ s m+ p) de celle qui sort

    Lentier s est donc lindice, dans B regroupe droite, de la colonne sortante.

    Df 4.5 Une solution est dite de base si les composantes hors-base sont nulles : x(1 :m)= 0.

    Ex 4.2 Quelle est lexpression de la solution de base dune forme canonique ?

    Si lune des composantes de base sannule galement, la solution est dite dgn-re.

    Df 4.6 Une solution du systme des contraintes est dite ralisable si : x(1 :n) 0.

    (bM) 2007 Math-2

  • 58 SANCE 4. ALGORITHME DU SIMPLEXE

    Thm 4.1 [Farkas-Minkowski] On a lalternative suivante : ou bien le systme des contraintes (Cx = d) admet une solution ralisable, ou bien on peut trouver un vecteur u tel que :

    Cu 0

    (d|u) < 0

    Cela veut dire : ou bien d appartient au cne dfini par les colonnes de C, ou bien il possde une composante (u) non nulle dans une direction orthogonale,

    i.e. il existe un hyperplan sparateur entre d et ce cne (le vecteur u, orthogonal cet hyperplan bien choisi, fait un angle aigu avec le cne et obtus avec d).

    Thm 4.2 [fondamental] Sil existe une solution ralisable au systme des contraintes,alors il existe une solution ralisable de base.

    Aspects gomtriquesLensemble des solutions ralisables du systme des contraintes standard constitue

    un polydre convexe (polydre des contraintes).Thm 4.3 [Thorme dquivalence] Soit le polydre des contraintes. Alors :

    x solution ralisable de base x point extrmal de

    Thm 4.4 Soit maximiser = (a | x) sur le polydre des contraintes. Alors lopti-mum est atteint en un (au moins un) point extrmal.

    4.3 Mthode du simplexeDescription

    On considre ici la forme standard (Df.4.1) :max{ = (a|x)}

    Cx = d

    x 0

    et on suppose que C contient une matrice de base, normalise I , dans ses p colonnesde droite (Df.4.3).Df 4.7 Le tableau du simplexe est constitu des coefficients des relations :

    Cx = d

    (a|x) =

    i.e. on ajoute (au systme des contraintes) une ligne (numrote p + 1) faisantintervenir la variable supplmentaire .

    Math-2 (bM) 2007

  • SANCE 4. ALGORITHME DU SIMPLEXE 59

    Maximum ou minimum Le test doptimum se fait sur le facteur de x : ce vecteurne doit contenir aucune composante ngative, dans le cas dun max comme dans celuidun min.

    En consquence : on change le signe des coefficients de lorsque cest max. la valeur de apparat avec le signe moins lorsque cest min.

    Ex 4.3 Le changement de base (Df.4.4) signifie le passage de B B par remplace-ment dune colonne de B (en numro s dans B) par une colonne v de H (en numror).

    Ecrire les formules et lalgorithme du changement de base.

    Dans la mthode des Tableaux, le changement de base nest rien dautre quunetape de llimination de Gauss-Jordan (Fig. 4.2).

    FIG. 4.2 Mthode de Gauss-Jordan

    function [ C ] = chngBas (C, p, m)//

    m1 = m+1 // +1 pour le second membrep1 = p+1 // +1 pour la fonction objectif

    piv = C(s,r)C(s,1:m1) = C(s,1:m1) / piv

    for i = 1:p1if i == s then continue, endt = C(i,r)for j = 1:m1

    if j == r then continue, endC(i,j) = C(i,j) - t * C(s,j)end

    end

    C(1:p1,r) = - C(1:p1,r) / piv

    C(s,r) = 1 / piv

    Ex 4.4 Montrer quun critre raisonnable dentre en base est :

    r = argmin C(p+ 1, 1 : m) sur les composantes Cp+1,j < 0

    et crire la fonction correspondante.

    Ex 4.5 Montrer que le critre de sortie de la base est ncessairement :

    s = argmind(1 : p)

    C(1 : p, r)sur les composantes Cir > 0

    et crire la fonction correspondante.

    (bM) 2007 Math-2

  • 60 SANCE 4. ALGORITHME DU SIMPLEXE

    Ex 4.6 Expliquer en quoi le critre dentre en base est un critre doptimalit.

    Ex 4.7 Expliquer en quoi le critre de sortie de base est un critre doptimum nonborn.

    Df 4.8 Cyclage.

    Dmarrage des itrationsExemple

    On revient au cas gnral o C ne contient pas forcment une sous-matrice I (celase produit lorsque le systme de contraintes a des ingalits dans les deux sens, ou desgalits).

    Ex 4.8 Reprendre lexemple dintroduction avec la nouvelle fonction objectif : = 11x1 + 6x2

    Ex 4.9 Peut-on rsoudre si on impose la contrainte supplmentaire : x2 1 ?

    Df 4.9 Variable artificielle : x2 y4 + z1 = 1.Df 4.10 Mthode des deux phases : on minimise dabord la somme des variablesartificielles.

    Ex 4.10 Ecrire la forme canonique (standard) pour la mthode des deux phases, etrsoudre (aprs avoir ajout une ligne, p+ 2, de minimisation de ).

    ExempleAvec lexemple ci-dessus (z1 = 1 x2 + y4), rsultat en Fig. 4.3.

    Ex 4.11 Expliciter les cas possibles loptimum des variables artificielles.

    Algorithme du simplexeEx 4.12 Lutilisation dun vecteur index(1 :p) rend inutile le stockage des co-lonnes de base (Fig. 4.4).

    Ex 4.13 Ecrire une fonction ralisant les tapes principales de lalgorithme du sim-plexe (en explicitant bien les cas de terminaison, normale ou anormale).

    Math-2 (bM) 2007

  • SANCE 4. ALGORITHME DU SIMPLEXE 61

    FIG. 4.3 Mthode des deux phases

    | 5 3 0 1 0 0 30 | y1| 2 3 0 0 1 0 24 | y2| 1 3 0 0 0 1 18 | y3| 0 1 -1 0 0 0 1 | z1| -11 -6 0 0 0 0 0 | Phi| 0 -1 1 0 0 0 -1 | Sigma| 5 0 3 1 0 0 27 | y1| 2 0 3 0 1 0 21 | y2| 1 0 3 0 0 1 15 | y3| 0 1 -1 0 0 0 1 | x2| -11 0 -6 0 0 0 6 | Phi| 0 0 0 0 0 0 0 | Sigma| 1 0 3/5 1/5 0 0 27/5 | x1| 0 0 9/5 -2/5 1 0 51/5 | y2| 0 0 12/5 -1/5 0 1 48/5 | y3| 0 1 -1 0 0 0 1 | x2| 0 0 3/5 11/5 0 0 327/5 | Phi

    (bM) 2007 Math-2

  • 62 SANCE 4. ALGORITHME DU SIMPLEXE

    FIG. 4.4 Vecteur index

    1 2 3+---------+--------+-------+----------+--

    | 5.000 3.000 0.000 | 30.000 | 4| 2.000 3.000 0.000 | 24.000 | 5| 1.000 3.000 0.000 | 18.000 | 6| 0.000 1.000 -1.000 | 1.000 | 7| -11.000 -6.000 0.000 | 0.000 | Phi| 0.000 -1.000 1.000 | -1.000 | Sigma

    1 7 3+---------+--------+-------+----------+--

    | 5.000 -3.000 3.000 | 27.000 | 4| 2.000 -3.000 3.000 | 21.000 | 5| 1.000 -3.000 3.000 | 15.000 | 6| 0.000 1.000 -1.000 | 1.000 | 2| -11.000 6.000 -6.000 | 6.000 | Phi| 0.000 1.000 0.000 | 0.000 | Sigma

    4 3+---------+--------+---------+--

    | 0.200 0.600 | 5.400 | 1| -0.400 1.800 | 10.200 | 5| -0.200 2.400 | 9.600 | 6| 0.000 -1.000 | 1.000 | 2| 2.200 0.600 | 65.400 | Phi

    Math-2 (bM) 2007

  • SANCE 4. ALGORITHME DU SIMPLEXE 63

    4.4 DualitDf 4.11 Problme dual.

    Etant donn le problme primal (P) :max{ = (a|x)}

    Cx d

    x 0

    on lui associe le problme dual (D) :min{pi = (u|d)}

    Cu a

    u 0

    Primal (P) Dual (D)Cx d Cu ax 0 u 0max = (a|x) minpi = (u|d)

    Ex 4.14 Ecrire le dual pour lexemple dintroduction et prciser sa signification.

    Ex 4.15 Rsoudre le problme dual.

    On trouve, en rsolvant par tableaux, que loptimum correspond :

    pi

    (3

    2, 0,

    1

    2, 0, 0

    )+ 3u2 + 3v1 + 5v2 = 54

    (3, 5, 0, 3, 0) + 32y1 +12y3 = 54

    3v1 + 5v2 + 3u2 pi(32 , 0,

    12 , 0, 0

    )= -54

    Noter le principe de complmentarit loptimum : y2 6= 0 = u2 = 0 u1 6= 0 & u3 6= 0 = y1 = 0 = y3

    Ex 4.16 Soient x et u deux solutions ralisables, respectivement de (P) et (D). Montrerque :

    (x) pi(u)

    Ex 4.17 Si lun des deux problmes, (P) ou (D), admet un optimum non born (+pour , pour pi), alors lautre nadmet pas de solution ralisable.Thm 4.5 Les solutions ralisables x et u sont optimales si et seulement si :

    (Cu a|x) = 0

    et si et seulement si(u|Cx d) = 0

    (bM) 2007 Math-2

  • 64 SANCE 4. ALGORITHME DU SIMPLEXE

    Algo 4.1 Algorithme dual.

    On reprend la variante de lexemple dintroduction correspondant : = 11x1 +6x2.

    On trouve, loptimum

    | 1/5 3/5 6 || -2/5 9/5 12 || -1/5 12/5 12 || 11/5 3/5 66 |avec les indices (3, 2; 1, 4, 5).

    Si on ajoute maintenant la contrainte x2 1, il vient :| 1/5 3/5 6 || -2/5 9/5 12 || -1/5 12/5 12 || 0 -1 -1 || 11/5 3/5 66 |avec les indices (3, 2; 1, 4, 5, 6).

    On est en prsence dune solution non ralisable dans le primal (cest pour celaquon avait prcdemment introduit une variable artificielle).

    Mais si on considre ce tableau comme celui du problme dual (le transposer parla pense), il fait apparatre une solution duale ralisable (115 , 35 ) et une possibilitdamlioration (par le 1 du second membre).

    Noter au passage que cet algorithme dual prend les critres en ordre inverse. Lechangement de base donne alors

    | 1/5 3/5 27/5 || -2/5 9/5 51/5 || -1/5 12/5 48/5 || 0 -1 1 || 11/5 3/5 327/5 |avec les indices (3, 6; 1, 4, 5, 2).

    Cette solution est optimum (mais cest videmment un hasard quune seule itrationait suffi).

    Math-2 (bM) 2007