107 1 20MB
Précis de recherche opérationnelle Méthodes et exercices d’application
Robert Faure était professeur de la chaire de recherche opérationnelle au CNAM
Bernard Lemaire est professeur émérite de la chaire de recherche opérationnelle au CNAM
Christophe Picouleau est professeur des universités au CNAM
7e édition
REMERCIEMENTS Nous remercions toutes les personnes qui ont contribué à la réalisation de cette édition du Précis de recherche opérationnelle. En particulier : Mme Nacera SEGHOUANI-BENNACER Enseignante-chercheuse à Supélec, pour le chapitre portant sur la simulation ; M. Patrick SIARRY, Professeur à l’Université Paris XII, pour le chapitre traitant des métaheuristiques ; M Daniel VANDERPOOTEN, Professeur à l’Université Paris-Dauphine pour le chapitre introductif à l’aide multicritère à la décision. Mme Agnès PLATEAU-ALFANDARI, maître de conférences au CNAM, pour ses remarques pertinentes.
Illustration de couverture ©Kentoh-Fotolia.com
© Dunod, Paris, 2014 ISBN 978-2-10-071060-7
Table
des
Matières
Avant-Propos......................................................................................... Introduction À la recherche operationnelle.................................... 1 Structures
ordonnées
et de l’algèbre de
Applications
Boole
vii ix
des treillis
en recherche
opérationnelle.................................................................................
1
1.1 Notions sur les structures ordonnées..............................................
1
1.2 Représentation ensembliste des algèbres de Boole. Application à la logique élémentaire..................................................
11
1.3 L’algèbre de Boole binaire................................................................
19
1.4 Applications élémentaires..................................................................
27
2 Notions
de complexité...................................................................
42
2.1 Complexité des Algorithmes..............................................................
42
2.2 Complexité des Problèmes. ................................................................
47
3 Éléments de la théorie des graphes : définition, concepts essentiels ; parcours des graphes.................................................. 59 3.1 Éléments de la théorie des graphes...................................................
59
3.2 Parcours des graphes.........................................................................
70
4 Applications des graphes à la recherche opéra tion nelle ................................................................................. 99 4.1 Notions de programmation dynamique (PRD)...................................
99
4.2 Applications aux chemins optimaux. .................................................. 104 4.3 Problèmes d’ordonnancement en gestion de projets. ....................... 114 4.4 Problème du flot de valeur maximale. ............................................. 128 4.5 Flot de valeur maximale à coût minimal.......................................... 134 4.6 Problèmes d’affectation.................................................................... 139 4.7 Notions d’arbre et d’arborescence................................................... 144 4.8 Applications aux arbres optimaux..................................................... 146 4.9 Les programmes de transport............................................................ 149 4.10 Recherches arborescentes............................................................... 163 iii
Table des Matières
5 Processus stochastiques et programmation dynamique stochastique................................................................ 186 5.1 Introduction aux problèmes stochastiques....................................... 186 5.2 Définition d’un processus stochastique............................................. 188 5.3 Chaînes de Markov à espace d’états discret.................................... 188 5.4 Classification des états d’une chaîne de Markov finie à l’aide du graphe des transi tions ............................................. 191 5.5 Processus de Markov à espace d’états discret................................. 197 5.6 Probabilités des états........................................................................ 200 5.7 Ergodicité........................................................................................... 202 5.8 Calcul des probabilités des états en régime permanent –théorème des coupes........................................................ 204 5.9 Processus de Markov particuliers.................................................... 208 5.10 Notion de programmation dynamique stochas tique . ................................................................................... 216
6 Fiabilité des composants, sûreté de fonctionnement des systèmes ..................................................................................... 228 6.1 Données discrètes. courbes de survie expérimentale........................ 228 6.2 Loi de survie : forme analytique. ...................................................... 233 6.3 Probabilité de consommation. approvisionnements........................... 237 6.4 Calcul des approvisionnements. ........................................................ 239 6.5 Un autre compromis : l’entretien préventif...................................... 244 6.6 Fiabilité des systèmes non réparables............................................... 250 6.7 Sûreté de fonctionnement des systèmes réparables......................... 254 6.8 Stratégie de remplacement................................................................ 259
7 Les
phénomènes d’attente.............................................................
270
7.1 Généralités sur les phénomènes d’attente. ...................................... 270 7.2 Loi des arrivées. Loi des services...................................................... 271 7.3 File à une station. Système ouvert : file M/M/1.............................. 272 7.4 File à s stations, système ouvert : file M/M/S................................. 278 7.5 Application numérique........................................................................ 280 7.6 File à s stations, cas du système fermé : file M/M/S/N...................................................................................... 286
iv
Table des Matières
7.7 Probabilité de dépasser une certaine attente : cas de la file M/M/1.......................................................................... 289
8 La
programmation linéaire...........................................................
297
8.1 Exemple de programme linéaire (pl) – Aspect géométrique................ 298 8.2 Algorithme du simplexe : méthode algébrique, méthode des tableaux. ....................................................................... 307 8.3 Dégénérescences possibles................................................................. 321 8.4 Aspect matriciel................................................................................. 324 8.5 Démarrage de l’algorithme du simplexe : problème de la base initiale .............................................................................. 330 8.6 Notions sur la méthode révisée du simplexe..................................... 340 8.7 Dualité. .............................................................................................. 342 8.8 Programme linéaire en nombres entiers ; Méthode des troncatures de gomory............................................................... 352
9 Introduction
à la théorie des jeux.............................................
367
9.1 Un jeu d’enfant. ................................................................................. 367 9.2 Jeux à deux personnes et à somme nulle. .......................................... 368 9.3 Notion de stratégies mixtes ; calcul des frequences optimales....... 372 9.4 Autre méthode de calcul : les pl des joueurs sont en dualité . .......................................................................................... 376 9.5 Exemple d’application économique ; dominance d’une straté gie , réduction d’un jeu. ........................................................... 379 9.6 Méthodologie d’étude des jeux à deux joueurs et somme nulle................................................................................... 382
© Dunod – Toute reproduction non autorisée est un délit.
10 Simulation....................................................................................... 384 10.1 Introduction..................................................................................... 384 10.2 Définitions........................................................................................ 386 10.3 Les « entrées » d’un modèle de simulation. .................................... 387 10.4 Un exemple de simulation. ............................................................... 392 10.5 Les résultats (sorties) d’une simulation et analyse statistique . ......................................................................... 393
v
Table des Matières
10.6 Langages de simulation................................................................... 398 10.7 Conclusion. ...................................................................................... 399
11 Métaheuristiques
en optimisation combinatoire.......................
400
11.1 Introduction....................................................................................
400
11.2 La tâche impartie aux métaheuristiques........................................
401
11.3 La méthode du recuit simulé...........................................................
404
11.4 La recherche tabou. .......................................................................
408
11.5 Les algorithmes génétiques............................................................
412
11.6 Les algorithmes de colonies de fourmis.........................................
415
11.7 Les méthodes hybrides. ...................................................................
417
12 Introduction à l’aide multicritère à la décision.................................. 419 12.1 Introduction..................................................................................... 419 12.2 Cadre général.................................................................................. 421 12.3 La somme pondérée........................................................................... 427 12.4 Méthodes de surclassement (Electre)............................................ 429 12.5 Optimisation multiobjectif............................................................... 435 12.6 Conclusion........................................................................................ 440
Solutions des exercices....................................................................................... 442 Solutions des exercices du chapitre 1.............................................................. 442 Solutions des exercices du chapitre 2.............................................................. 450 Solutions des exercices du chapitre 3.............................................................. 452 Solutions des exercices du chapitre 4.............................................................. 457 Solutions des exercices du chapitre 5.............................................................. 482 Solutions des exercices du chapitre 6.............................................................. 497 Solutions des exercices du chapitre 7.............................................................. 514 Solutions des exercices du chapitre 8.............................................................. 526 Solutions des exercices du chapitre 9.............................................................. 559
Bibliographie générale........................................................................... Index ......................................................................................................
vi
568 569
Avant-Propos
Le « Précis de recherche opérationnelle » a été publié pour la première fois en 1968, puis a fait l’objet de cinq autres éditions, puis d’une sixième édition en 2009 refon due et complétée. En voici une 7e édition révisée. Cet ouvrage se distingue principalement par son caractère pédagogique très mar qué, par son souci de replacer l’exposé des principales méthodes de la recherche opérationnelle dans un contexte appliqué. Il a connu, depuis sa première version, une très large diffusion qui en a fait un vecteur privilégié d’initiation et de formation à la recherche opérationnelle pour des générations d’étudiants, d’ingénieurs, de cadres. Aussi nous a-t-il semblé important de l’actualiser pour lui permettre de continuer d’assurer cette mission. Ce livre peut être abordé par un large public : il privilégie un langage d’explica tion naturelle, en évitant, sous prétexte de rigueur académique, un exposé par trop abstrait s’appuyant sur un formalisme mathématique ou un jargon qui ne le rendrait que beaucoup plus difficilement accessible. Il comporte plusieurs niveaux de lecture, les paragraphes les plus « pointus » ayant été placés en fin de chapitre. Ainsi convient-il tout à fait à une découverte de la R.O., comme on la pratique en deuxième ou troisième année de l’enseignement supérieur. Il est accessible à des lecteurs dont la formation de base est variée, pas nécessairement spécialisés en mathématiques et/ou en informatique. Certes la diffusion, désormais large, de logiciels intégrant les méthodes ici décri tes, facilite et accélère l’application de la R.O. par l’ingénieur dans l’entreprise, mais encore faut-il pour mieux les utiliser connaître les méthodes qui les sous-tendent : nous exposons ici les principales. Il convient aussi d’apprendre à formuler, modéliser les problèmes concrets que peut rencontrer l’ingénieur. Le souci des auteurs, pour la présente édition, a été de moderniser et de complé ter le contenu de ce manuel, tout en conservant le caractère pédagogique. Depuis les premières éditions, l’algorithmique a connu et continue de connaître de nombreux progrès. Ainsi dans le domaine de la complexité des algorithmes et des problèmes (qu’ils soient polynomiaux ou bien « NP-complets »), avec l’approximabilité des problèmes difficiles, avec la démonstration du caractère polynomial de la program mation linéaire (même si les algorithmes polynomiaux de résolution des programmes linéaires, les « méthodes intérieures », sortent du cadre de cet ouvrage) ; les avancées dans les structures de données et les algorithmes de « parcours des graphes » ont
p ermis de construire des algorithmes de faible complexité résolvant des problèmes classiques tant de théorie des graphes non valués (connexité, forte connexité, etc.) que d’optimisation dans les graphes valués. Dans le domaine stochastique (aléa toire), on a assisté notamment au développement de la sûreté de fonctionnement des systèmes et de l’évaluation de leurs performances. Nous avons eu le souci de présenter des méthodes spécifiques qui sont éprouvées, opérationnelles. En fin d’ouvrage le lecteur trouvera trois chapitres traitant de mé thodes générales de résolution de problèmes : d’une part un chapitre sur les techniques de simulation, d’autre part un chapitre sur les méta-heuristiques (recuit simulé, tabou, algorithmes génétiques, colonies de fourmis, etc.) qui permettent à l’ingénieur d’obtenir rapidement une première solution (généralement sous-optimale) au pro blème de R.O. qu’il doit traiter (souvent en un temps bien limité !), enfin un chapitre consacré à l’aide à la prise de décision face à plusieurs critères (analyse multicri tère). Nous nous sommes gardés du souci d’exhaustivité qui aurait conduit à un ouvrage pléthorique, pour nous limiter aux bases de la discipline et à ses problèmes centraux. Aussi des domaines, tels que : les SIAD (systèmes interactifs d’aide à la décision), les réseaux de Petri, les bases de la programmation non linéaire, la programmation convexe, les méthodes polyédrales, ne sont pas abordés ici ; toutefois leurs prérequis y sont développés. Dans le domaine des graphes nous ne traitons pas directement certains problèmes avancés (emplois du temps, tournées de véhicules, affectations de ressources et de fréquences en télécommunications, etc.), même si les modèles et algorithmes présentés ici peuvent contribuer à leur résolution. Nous serons tout à fait satisfaits si ce livre est jugé, par ses lecteurs, comme approprié à son but, qui est de transmettre des connaissances et de fournir une ouver ture d’esprit sur la modélisation et l’optimisation appliquées. Nous espérons aussi qu’il les incitera à un approfondissement !
viii
Pr B. LEMAIRE [email protected]
Pr C. PICOULEAU [email protected]
Introduction
à la recherche opérationnelle
À première vue, la recherche opérationnelle est un ensemble de techniques récentes, datant tout au plus de la Seconde Guerre mondiale. Et, en fait, c’est bien à son appli cation aux opérations militaires qu’elle doit son nom. En réalité, elle est bien plus ancienne, car, dès le xvii e siècle, Blaise Pascal et Pierre de Fermat, inventeurs de la notion d’espérance mathématique (1654), cher chaient, suivis de peu par Jacques Bernoulli puis Waldegrave, à résoudre des pro blèmes de décision dans l’incertain. Avant la fin de l’ancien régime, Gaspard Monge s’était proposé et avait résolu analytiquement un problème économique de nature combinatoire : celui des déblais et remblais (1776). Sous la monarchie de Juillet, Augustin Cournot s’était attaqué à la théorie mathématique des richesses (1838), devenant ainsi le précurseur de l’économétrie. Au début du xx e siècle, Emile Borel introduisait la théorie mathématique des jeux, sous sa forme moderne, à l’Académie des Sciences (1921-1925), tandis qu’Erlang fondait celle des files d’attente, qu’il uti lisait à la conception des réseaux téléphoniques (1917). Enfin, à la veille de la guerre 1939-1945, Leonid Kantorovitch concevait et appliquait la programmation linéaire à la planification, peu après que Dénes König eut systématisé les graphes (1936). On peut donc dire que, lorsque le physicien anglais Patrick Blackett fut, en 1940, appelé à diriger la première équipe de chercheurs opérationnels, d’illustres devan ciers l’avaient précédé. Cependant, Blackett eut l’immense mérite de trouver, notam ment, l’organisation lui permettant de traiter rapidement et avec succès les difficiles questions telles que l’implantation optimale des radars de surveillance des côtes bri tanniques ou encore de la protection des convois de navires marchands reliant la Grande Bretagne et les États-Unis, qui devaient jouer un rôle déterminant dans la bataille d’Angleterre. L’efficacité de son entreprise était due aux trois faits suivants : l’équipe qu’il avait rassemblée était très hétérogène (autrement dit elle rassemblait des compétences variées, complémentaires ; ainsi, les points de vue qu’elle exprimait étaient plus pertinents) ; aucune information (même secrète) ne fut jugée trop noble
Introduction à la recherche opérationnelle
pour échapper à sa compétence : les données, nécessaires à ses études, étaient com plètes et fiables ; enfin il réservait la décision à l’état-major (il n’y eut pas de substi tution de pouvoir : son équipe ne s’est pas arrogé le pouvoir de décision. L’amirauté britannique restait libre d’adopter les conclusions des travaux de Blackett et de son équipe, ou bien de les rejeter). Ces règles s’appliquent encore aujourd’hui, et font partie de la déontologie de la recherche opérationnelle d’entreprise. Dès la fin des hostilités, furent tentés de nombreux essais d’application à l’écono mie industrielle des méthodes jusqu’alors éprouvées seulement par les états-majors alliés. Depuis les années cinquante, nombre de publications scientifiques et tech niques témoignent de leur réussite et de leurs heureux développements. C’est pourquoi l’on peut légitimement se demander pourquoi l’apparition de la recherche opérationnelle d’entreprise a été si tardive. Il est bon de citer ici quelquesunes des principales raisons de cette naissance laborieuse : a) les modèles mathématiques qui ont, de longue date, conquis la physique et, peu à peu, bien d’autres sciences expérimentales, n’ont pas été acceptés d’emblée par les spécialistes des sciences économiques, particulièrement de la micro-économie et surtout de l’économie d’entreprise. Il ne faut pas méconnaître que les économistes avaient quelques raisons de suspecter des modèles inertes, simplistes, rigides et abs traits, d’être peu propres à représenter le milieu vivant, complexe, flexible et terri blement concret de l’économie. Toutefois, dès que la connaissance économique fut suffisamment avancée et consentit à se parer du nom de science, il fallut bien se ren dre à l’évidence : comme dans toutes les autres sciences expérimentales, parvenues à une certaine maturité, le recours à la mathématique était incontournable ; b) c’est seulement à partir des années cinquante que les problèmes économiques sont devenus irrémédiablement complexes, en raison de la taille croissante des firmes et de l’intrication extraordinaire des liens qui les unissent entre elles ; c) enfin, les acquis théoriques de la recherche opérationnelle ne seraient rien sans la puis sance de calcul : les ordinateurs sont indispensables pour résoudre les problèmes dans la pratique. Or, les premiers ordinateurs n’ont été commercialisés qu’en 1955-1956. À ce propos, il peut être utile de remarquer qu’il en va de la recherche opération nelle comme des ordinateurs. Ces derniers ont suscité des espoirs démesurés ou des craintes infondées. Il faut répéter que la machine doit être considérée comme un ins trument, un outil au service de son créateur : l’homme. Il faut se persuader que lors que l’on confie à une machine l’exécution d’opérations qui, naguère encore étaient l’apanage de l’esprit humain, le caractère de cette besogne se transforme, du même coup, radicalement : le travail intellectuel devient un simple travail d’exécution. Il n’y a donc aucune chance qu’une machine dépasse un jour son auteur, bien qu’il n’y ait pas d’impossibilité à ce qu’elle démontre une conjecture, voire découvre un théorème inconnu (par une combinaison logique inattendue...). De la même manière, la recherche opérationnelle est l’auxiliaire de la décision humaine : elle lui est, par essence, subordonnée et il n’existe pas plus de chance qu’elle la supplante un jour. C’est pourquoi on considère souvent que la recherche opérationnelle est une compo sante majeure de l’aide à la décision. x
Les domaines d’application
une définition de la r.o. Plutôt qu’un simple arsenal de méthodes mathématico-informatiques destiné à l’optimisation des processus de production et de diffusion des produits ou à celle d’organisations dans le secteur tertiaire, la recherche opérationnelle peut se définir comme l’ensemble des méthodes et techniques rationnelles d’analyse et de synthèse des phénomènes d’organisation utilisables pour élaborer de meilleures décisions. Chaque fois que des hommes, des machines, des produits se trouvent en relations actives, on dira que l’on a affaire à un phénomène d’organisation. Les problèmes relatifs à ces phénomènes d’organisation se signalent tout d’abord, généralement, par leur caractère hautement combinatoire. Pour peu que le hasard y soit mêlé et que la concurrence s’y manifeste, les situations deviennent encore plus compliquées. Il a été longtemps de mode de penser que les décisions, à propos des phénomènes d’organisation qui existent dans l’entreprise, la région, voire la nation, étaient du res sort du seul bon sens. C’est particulièrement vrai en France, où la formation des diri geants et des entrepreneurs est fortement teintée de cartésianisme et où l’on confond volontiers la puissance de l’esprit humain avec les ressources du sens commun. Aussi, la recherche opérationnelle n’est pas le moyen d’échapper aux jugements de bon sens. Bien au contraire, elle constitue la méthode adéquate pour ramener l’attention de l’homme aux domaines où sa raison individuelle peut s’exercer effi cacement, c’est-à-dire au niveau des choix – une fois résolus et explorés, par des techniques adéquates, les problèmes combinatoires, aléatoires ou concurrentiels qui dépassent l’esprit humain même le mieux constitué.
Les
domaines d’application
© Dunod – Toute reproduction non autorisée est un délit.
L’idée à retenir est que la R.O. ne s’occupe pas des problèmes dans lesquels une solution de bon sens intervient tout naturellement. Son domaine réservé est celui des situations dans lesquelles, pour une raison quelconque, le sens commun se révèle faible ou impuissant. Tels sont : 1) Les problèmes combinatoires ; 2) Les domaines de l’aléatoire ; 3) Les situations de concurrence. 1) Il est bien connu que l’homme envisage difficilement la multiplicité des combi naisons qui se présentent, dans les moindres faits de la vie, lorsque plusieurs varia bles peuvent prendre, chacune, des états différents. Ainsi, si l’on pose à l’homme de la rue cette question : combien faut-il de temps à une famille de huit personnes, prenant en commun deux repas journaliers, pour épui ser les diverses possibilités de se grouper autour de la table familiale ?, on recevra des réponses variées, dont les moins optimistes fixeront un délai de quelques mois pour la réalisation de ce modeste objectif. On sait qu’en réalité, à raison de deux xi
Introduction à la recherche opérationnelle
repas par jour (2), douze mois par an 1 3 3 4 2 , trente jours par mois 1 5 3 6 2 , il fau dra cinquante-six ans 1 7 3 8 2 pour en venir à bout, car : 8 ! 5 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8, le nombre des dispositions différentes, est déjà un nombre très grand. Soit : 8 ! = 40 320 Dans tous les problèmes fortement combinatoires (le précédent étant encore de taille modeste), l’esprit humain ne peut envisager le nombre astronomique des arran gements, permutations, combinaisons. Il lui faut un fil d’Ariane s’il veut choisir, entre telle ou telle de ces dispositions, relativement à un critère quelconque, car, même avec une puissante machine, le principe fondamental en matière combinatoire demeure de proscrire toute énumération. Pour s’en convaincre, il suffit de constater que l’énumé ration de 20! solutions (nombre des affectations de vingt personnes à vingt postes), à raison d’un million d’affectations par seconde, prendrait 77 096 ans ; le lecteur notera que même avec un ordinateur mille fois plus rapide, qui pourrait donc énumérer un milliard d’affectation par seconde, il faudrait encore 77 ans ! Or les compagnies aérien nes sont confrontées à de tels problèmes, mais à la dimension 100 ou davantage... Ou bien d’imaginer un instant qu’il est possible d’énumérer les fonctions différentes de 9 variables booléennes seulement ; or celles-ci sont au nombre de : 22 5 2512 # 1,134076087.10155, qui dépasse le nombre estimé des électrons et des protons dans l’Univers ! 9
2) Devant les problèmes de l’aléatoire, la situation du décideur n’est guère meilleure. Considérons l’exemple (d’école) qui suit : dans une grande entreprise, la moyen ne des entrées des personnels au bureau du correspondant de la sécurité sociale, est d’une personne par 4 minutes ; l’employé de ce bureau peut servir, en moyenne, une personne toutes les 3 minutes 18 secondes. On peut en conclure1 que l’em 8 3 60 ployé de bureau, recevant 5 120 clients par jour et leur consacrant 3mn 4 18 3 120 5 6 h 36 mn, sur sa journée de 8 heures, peut largement suffire à ce service. Mais cette solution par les moyennes est mauvaise, comme on le verra plus loin, car le temps perdu par les personnels, en attente d’être servis, peut atteindre de nom breuses heures qui, étant donnée la perte à la production correspondante, reviennent incroyablement plus cher que l’embauche d’un second employé, pourtant destiné seulement à absorber les pointes de trafic. Pour que cette véritable solution puisse apparaître, il est nécessaire de considé rer le phénomène aléatoire dans toute son ampleur ; il faut tenir compte de toutes les incidences du hasard et minimiser l’espérance mathématique du coût global des opérations. 1. Tant il est vrai que la croyance à la compensation est ancrée dans la conscience de l’homme social, alors que les conditions ne sont évidemment pas réunies pour qu’elle puisse jouer au niveau de l’entreprise. xii
Difficultés et dangers de l’optimisation
3) Enfin, les situations de « duel » (sinon de concurrence multiple, cas encore plus difficiles) demandent à être étudiées avec le plus grand soin. Il est bien clair, en effet, que le choix d’une stratégie, dans une situation donnée, dépend des décisions des concurrents. Et, comme celles-ci sont éventuelles, il s’agit, à la fois, d’un problème combinatoire et d’une situation de hasard. Imaginons, par exemple, qu’un fabricant A hésite, à chaque campagne de vente, entre la hausse, le maintien et la diminution de ses prix de vente, sachant parfaitement que la concurrence peut lui opposer les mêmes stratégies. Supposons, en outre, qu’il ait été en mesure de déterminer les gains (les gains étant négatifs sont des pertes) qu’il réaliserait pour chaque paire de choix (son propre choix et celui du concurrent) par rapport au chif fre normal. Ces situations sont résumées par le tableau ci-dessous :
Stratégies de A
1
5 2
Stratégies de la concurrence 1 5 2 10 21 24 6 0 22 10 21 2
© Dunod – Toute reproduction non autorisée est un délit.
On verra, dans le chapitre 9 portant sur la théorie des jeux, que la solution (nul lement immédiate) de ce problème est la suivante : le fabricant doit, au hasard, mais trois fois sur cinq, maintenir ses prix et, deux fois sur cinq, les abaisser, pendant que son concurrent, s’il est habile (ce qui est évidemment postulé) doit, quatre fois sur cinq, les maintenir et, une fois sur cinq, les diminuer, moyennant quoi A ne perdra, en moyenne, que 0,4 à chaque « coup ». Les domaines d’application de la recherche opérationnelle peuvent donc se classer en : – problèmes combinatoires ; exemples : définition des investissements les plus rentables ; optimisation des programmes de production, des niveaux d’activité, des affectations, des transports et de la logistique ; ordonnancements, etc. ; – problèmes stochastiques (c’est-à-dire où intervient le hasard) ; exemples : files d’attente, fiabilité des équipements et sûreté de fonctionnement des systèmes, gestion de la production, etc. ; – problèmes concurrentiels ; exemples : définition de politiques d’approvisionne ment, de vente, etc.
Difficultés
et dangers de l’optimisation
a) Un entrepreneur pourrait avoir le sentiment qu’en minimisant ses investissements, optimisant ses fabrications (productivité maximale, coût minimal), déterminant le prix de vente le plus convenable, etc., il fera le profit maximal. Mais le mathématicien est souvent désemparé face à un problème dans lequel existent simultanément plusieurs fonctions à optimiser. L’aide multicritère à la xiii
Introduction à la recherche opérationnelle
d écision vise à traiter de tels problèmes (à laquelle est consacré un chapitre en fin de cet ouvrage). C’est pourquoi, dans la majorité des cas, l’entrepreneur doit se borner à indiquer les limites de ses investissements, des dépenses en études et recherches, en service commercial, les capacités de fabrication et de stockage, etc., pour permettre au cher cheur opérationnel d’optimiser une seule et unique fonction, par exemple maximiser une fonction de revenu. Les limites indiquées fournissent les contraintes du problème. Par exemple, si des produits P1, P2 et P3, fabriqués en quantités respectives x1, x2 et x3, occupent res pectivement un volume de 1, 2, et 2 m3 par unité fabriquée, et si l’on dispose d’une capacité totale de stockage de 4 000 m3, on écrira : x1 1 2x2 1 2x3 < 4 000 ; c’est la contrainte de capacité de stockage. Si ces produits laissent des profits nets respectifs de 4, 12 et 3 unités monétaires et si l’on désire maximiser le revenu, on posera : [max] z 5 4x1 1 12x2 1 3x3 ; C’est la fonction économique ou critère d’optimisation du problème. Les différentes contraintes limitent, dans un espace à n dimensions (s’il y a n variables), un volume à l’intérieur ou à la périphérie duquel se trouvent les points dont les coordonnées constituent une solution possible du problème. Il reste alors à trouver et à utiliser des techniques permettant de choisir, parmi cette infinité de points, celui (ou ceux) qui donne(nt) à la fonction économique sa valeur opti male. Fréquemment il y aura unicité de la fonction (ou critère) à optimiser. Remarquons que cette idée n’est pas en opposition avec la démarche de l’analyse multicritère introduite en fin de cet ouvrage. b) On se rend compte qu’il est bien difficile d’imaginer – et, a fortiori, en général impossible de bâtir – un modèle complet du fonctionnement d’une entreprise. En conséquence, l’entrepreneur propose, souvent, au chercheur opérationnel, de se borner à un aspect de ses préoccupations (fixation des niveaux d’activité, optimi sation de la gestion des stocks, par exemple). Dans ces conditions, il ne s’agit que d’une sous-optimisation, qui risque de provoquer des perturbations sérieuses dans des domaines connexes de l’entreprise (ou de son environnement). Une sous-optimisation comporte donc des dangers ; avant de l’appliquer, il faut prendre garde à ses conséquences sur les éléments qui ne figurent pas dans le modèle. Ainsi une optimisation des stocks chez B, qui a comme fournisseur A, et C comme client, peut entraîner des difficultés inattendues chez ce fournisseur et ce client ! c) Un critère d’optimisation peut se dégrader, voire même être périmé lorsque un certain temps a passé. Cela est dû, avant tout, à la grande variabilité du monde éco nomique, aux progrès de la technique, à l’obsolescence des produits, aux fluctuations
xiv
La R.O. : une pratique à caractère scientifique
des réglementations, aux renversements de la mode, etc. et parfois, tout simplement, à la succession des saisons. Ce qui est bon pour l’année n peut devenir mauvais pour l’année n 1 1 ; ce qui est à conseiller en été peut être à rejeter en hiver... Bref, en recherche opérationnelle, l’évolution est de règle, même pour le critère de choix.
Objectifs
et critères
© Dunod – Toute reproduction non autorisée est un délit.
La définition des objectifs et la détermination du critère d’optimisation sont du res sort de l’entrepreneur. Ce serait avoir une vue technocratique de la recherche opérationnelle que d’ima giner que c’est à l’analyste de fixer les valeurs limites définissant les contraintes et de fixer le(s) critère(s) de choix. Au contraire, ce sont là des domaines qui appartiennent en propre à l’entrepre neur. Si, par exemple, l’analyste se voit confier l’étude des politiques d’exploitation d’une société concessionnaire de services, il ne peut décider, de lui-même, d’opti miser la rémunération du capital, en limitant le service aux exigences du cahier des charges, ou, au contraire, d’optimiser le service au meilleur profit des usagers, en assignant au capital tel ou tel rendement qui lui plaît. C’est aux dirigeants de la société, ou, dans certains cas, aux autorités de tutelle, de choisir entre ces deux situations opposées. Le mieux étant sans doute, dans le cas présent comme dans beaucoup d’autres, d’obtenir un éventail de solutions favorisant ainsi un choix éclairé. Car le chercheur opérationnel ne saurait non plus se substituer à l’entrepreneur, dont c’est la fonction de décider quelle solution lui paraît la plus convenable ou la plus praticable. Il faut affirmer bien haut que la R.O., loin d’entraver l’exercice des prérogatives de l’entrepreneur, autorise ce dernier à décider en meilleure connaissance de cause, donc élève finalement le niveau où se manifeste la liberté du choix.
La R.O. :
une pratique à caractère scientifique
Les méthodes et le but de la recherche opérationnelle en font bien plus une pratique à caractère scientifique qu’une science. En effet, elle ne cherche pas tant à expliquer les phénomènes qu’elle prendrait en compte en découvrant des lois, qu’à permettre d’agir sur l’évolution de ces phénomènes. Un modèle (ou, plus modestement, un schéma d’intervention) est utile voire indis pensable à un agent économique déterminé pour obtenir – de son point de vue – les meilleurs résultats possibles dans des circonstances déterminées.
xv
Introduction à la recherche opérationnelle
En tout cas, la recherche opérationnelle apparaît comme une discipline-carrefour, associant étroitement les méthodes et les résultas de l’économie d’entreprise, la mathéma tique et l’informatique. L’élaboration du schéma d’intervention (ou modèle) utilise les ressources conjuguées de l’analyse économique et de la théorie des systèmes ; elle a besoin aussi de données à collecter puis à saisir, justiciables de méthodes statistiques. Le traitement algorithmique du modèle, après que la mathématique ait permis de choisir une voie (le plus souvent un algorithme) pour atteindre une bonne solution (voire l’optimum, s’il est bien défini et accessible), entraîne un recours à l’informatique. Enfin la critique des résultats exige, une fois de plus, la réunion des différents acteurs.
Rentabilité
de la
R.O.
On se doute bien que la R.O. n’est pas gratuite. Le plus fréquemment, elle est mise en œuvre par des consultants n’appartenant pas à l’entreprise ; il s’agit donc de savoir si, au plan financier, l’application des résultats de leurs études procure ou non un bénéfice, compte tenu des charges entraînées par l’étude elle-même et quelle est la durée du « retour sur investissement ». Même dans la société la mieux administrée, un certain nombre de problèmes combinatoires peuvent être mal résolus. Nous nous permettrons de citer, à ce sujet, deux exemples empruntés à A. Kaufmann : xvi
Rentabilité de la R.O.
1) une société de transports aériens, ayant 400 vols et 600 liaisons à effectuer entre 13 villes souhaitait améliorer le plan de ses vols, conçu jusqu’alors par un bureau d’études travaillant selon une méthode « habituelle ». À première vue d’ailleurs, le programme des vols établi par cette méthode semblait donner satisfaction, mais la direction désirait en obtenir confirmation. À cause de nombreuses contraintes de caractère économique ou social (temps maximal de pilotage, temps supplémentaire passé au sol, repos obligatoire, retour périodique des équipages et des appareils au port d’attache, entretien préventif, indemnités de déplacement, etc), le calcul appa raissait comme compliqué. Néanmoins, l’ordinateur, après implémentation d’un programme d’affectation approprié, fournit, en un temps minime, un solution qui procurait un gain de 18 % par rapport au plan obtenu manuellement... 2) Une usine sidérurgique possédait trois chaînes de laminoirs, dont la première était très moderne et la dernière très vétuste. Chaque mois, un bureau de planification répartissait entre les trois chaînes les productions à réaliser, selon le carnet de commandes et les pré visions du service commercial. Un simple programme linéaire, dont la solution sur ordi nateur peut être obtenue en bien moins d’une seconde, établit une répartition qui faisait gagner 6 % du coût total de fabrication, par rapport au plan, particulièrement soigné, cal culé par le bureau compétent. Et, bien entendu, tout plan et toute modification pouvaient être désormais obtenus dans les minutes qui suivaient, quasiment en temps réel... Cependant, il est bien clair, néanmoins, qu’on ne doit pas toujours s’attendre à des gains de cet ordre, à chaque intervention. Néanmoins le « retour sur inves tissements » se chiffre en mois bien plus souvent qu’en années. Et plusieurs sousoptimisations non contradictoires peuvent conduire à des bénéfices cumulés dignes d’être pris en considération.
© Dunod – Toute reproduction non autorisée est un délit.
D’autre part, la recherche opérationnelle apparaît, de jour en jour davantage, dans un rôle moins ponctuel d’aide à la décision, qui lui convient bien mieux. Pour le jouer convenablement, il lui faut revenir à une composition plus hétérogène des équipes d’analystes (qui ne sauraient notamment se passer ni des compétences d’éco nomistes, ni d’organisateurs – au sens de spécialistes de la vie des entreprises –) et à une prolongation des interventions au-delà de la remise du rapport d’étude (main tenance, cycle de vie). En effet, le temps est révolu du rapport alambiqué, hérissé de formules et de jar gon, dont les conclusions ne seront jamais mises en application. Les analystes, après le dépôt de leur rapport, qui sera rédigé le plus simplement possible dans le langage le plus courant, devront encore convaincre les responsables de la possibilité d’agir en tenant compte de leurs recommandations et les aider à les mettre en œuvre. Le conseiller en recherche opérationnelle apporte un œil neuf et des méthodes raffinées d’analyse et de synthèse. Sa fonction n’est pas d’émettre des oracles, mais d’aider ceux qui le consultent à comprendre les implications des différentes déci sions qu’ils pourraient prendre, de les aider à choisir, puis finalement de les assister dans la mise en pratique de la décision retenue. Sans cette volonté d’accompagner l’action, il risquerait, le plus souvent, d’abandonner le décideur à ses préjugés ou ses impulsions irrationnelles ou – pire – de se substituer au décideur. xvii
Introduction à la recherche opérationnelle
R.O.
et gestion
Naguère encore, le souci d’une bonne gestion se traduisait par un soin spécial appor té à la comptabilité. Initialement, la comptabilité est l’histoire du passé de l’activité et elle comporte plusieurs buts, dont l’un est de permettre de connaître la situation financière de l’entreprise (les éléments passifs et actifs) et l’autre de fournir au fisc les bases d’imposition. Puis la comptabilité est aussi devenue un instrument de prévision. L’étude des ratios permet de surveiller le développement de l’entreprise et facilite l’élaboration de certaines décisions : le contrôle budgétaire autorise une certaine planification interne et un contrôle permanent de l’utilisation et de la croissance des ressources. La comptabilité doit concourir à une gestion de plus en plus scientifique. Une des conditions de ce développement est l’intégration des données, qui vise à saisir le fait élémentaire, une fois pour toutes, dans sa « pureté », c’est-à-dire au plus près de sa source. Il faut remarquer que cette exigence ne contrarie en rien la réalisation d’un système d’information adapté à une structure plus ou moins décentralisée de l’entre prise et s’accommode, sans difficulté, de tout système informatique correspondant au type d’organisation retenu. Par exemple, l’étude de la distribution statistique des ventes nécessitait hier une ventilation particulière des commandes des clients ; aujourd’hui, les codes-barre à une ou deux dimensions (QR-codes) ou les puces électroniques, sur lesquels ont été enregistrées les données, en vue d’établir les bons de livraison, bordereaux, factures, etc., peuvent servir, sans autre apprêt, à un rapide dépouillement.
But
et plan de l’ouvrage
Le présent ouvrage reproduit en grande partie des conférences, puis des cours, professés depuis plus de cinquante ans, principalement au CNAM, où ils ont bénéficié du meilleur accueil. Sans doute faut-il rechercher la raison de ce bon accueil dans le fait que les élèves du Conservatoire National des Arts et Métiers étant déjà pour la plupart des pra ticiens, ont, plus que d’autres élèves-ingénieurs souvent plus jeunes, le sens des réalités économiques, la connaissance de l’entreprise, et la notion des difficultés à vaincre dans ces domaines. Dans l’entreprise ou l’administration classiques, dans les groupements écono miques horizontaux ou verticaux, privés ou publics, les méthodes de gestion scien tifique et, en particulier, la recherche opérationnelle ont gagné bien du terrain. Et encore davantage en période de crise... Ces méthodes sont désormais indispensables : la société tout entière étant confrontée à l’automatisation et à l’informatisation. Car ces mots, dans le domaine industriel, n’évoquent plus seulement la création, pour les productions de masse, de chaînes où les manipulations des éléments en cours de fabrication sont effectuées mécaniquement. Il s’agit, bien davantage, de l’association des ordinateurs à la pro duction et au contrôle : xviii
But et plan de l’ouvrage
a) commande et contrôle numérique des machines-outils ou des robots en vue de l’usinage des pièces complexes, de grandes dimensions, à tolérances serrées ; b) conduite et régulation des processus dans les industries de transformation phy sique, chimique ou physico-chimique ; c) commande et contrôle en temps réel d’un ensemble de processus industriels et administratifs. Il en va de même dans le secteur tertiaire (notamment en transport et logistique). Les solutions implémentées informatiquement doivent être capables à tout moment : 1) d’élaborer des instructions ayant pour but de corriger une action en cours ou de la modifier; 2) de rendre compte sur-le-champ de leur activité aux intéressés immédiats ; 3) d’informer succinctement, au fur et à mesure, les dirigeants. Il est donc naturel que les ingénieurs des diverses spécialités, au CNAM comme ailleurs, et au premier rang, ceux qui s’occuperont justement du traitement des données et de l’optimisation, soient intéressés par les méthodes et les techniques de la recherche opérationnelle. Cet ouvrage didactique, pédagogique est destiné à leur venir en aide. L’exposé a été divisé en quatre grandes parties. • La R.O., fil d’Ariane dans les problèmes combinatoires discrets
© Dunod – Toute reproduction non autorisée est un délit.
Après avoir donné quelques éléments d’algèbre de Boole binaire, de théorie des graphes, des parcours des graphes et programmation dynamique en univers certain, on examine leurs principales applications en recherche opérationnelle. Pour l’algèbre de Boole : codage et énumération implicite. Recherches arborescentes. Pour les graphes : – problèmes de chemins de valeur optimale ; – problèmes d’ordonnancement ; – problèmes de flot maximal ; – problèmes d’affectation ; – problèmes de transport ; – problème du voyageur de commerce. La théorie des graphes constitue d’ailleurs le lien implicite entre les deux pre mières parties du livre. • La R.O. contre le hasard (stochastique)
Dans cette partie, on étudie tout d’abord, notamment au moyen des graphes, les bases de la théorie des processus stochastiques (essentiellement les chaînes et les processus de Markov) et l’on donne un aperçu de la programmation dynamique en univers aléatoire.
xix
Introduction à la recherche opérationnelle
Puis on en envisage les importantes applications : – fiabilité des équipements et sûreté de fonctionnement des systèmes ; – phénomènes d’attente. Enfin, un chapitre particulier, en fin d’ouvrage, est consacré aux méthodes de simulation. • La R.O. dans les problèmes combinatoires continus
Cette partie est entièrement dévolue à la programmation mathématique. En fait, vu le niveau auquel on se place ici, on se bornera à la programmation linéaire, selon le plan suivant : – présentation des programmes linéaires ; leur aspect géométrique ; – algorithme du simplexe ; – notion de dualité ; – paramétrisation : paramétrages de la fonction économique et du second membre. En dépit du titre de cette troisième partie, on apportera quelques indications sur les troncatures réalisables en programmation « discrète », avec les programmes li néaires en nombres entiers. • La R.O. et les situations concurrentielles
On se borne, dans cette partie, à présenter la théorie des jeux et ses liens avec la pro grammation linéaire (dualité).
La R.O.
dans sa pratique
Ce précis n’est qu’un ouvrage didactique, aussi n’abordons-nous que brièvement les conditions dans lesquelles la R.O. intervient dans la pratique. Hâtons-nous de préciser d’abord, que, dans la vie, on ne rencontre que rarement des situations assez simples pour être justiciables directement d’un des algorithmes élémentaires. Bien souvent, un problème concret nécessite la mise en œuvre d’un ensemble de méthodes, les unes s’inspirant des procédés classiques, les autres résul tant de recherches originales. Parfois, pris par le temps, l’analyste se contente d’adap ter une méta-heuristique (auxquelles nous avons réservé un chapitre en fin d’ouvrage) à son problème et n’obtient qu’une solution approchée. Pour certaines « heuristiques » (algorithmes approchés), il existe des « garanties de performance ». Répétons aussi que l’on peut avoir avantage, dans la pratique, à substituer à la notion d’optimum (mathématique), utilisée dans les schémas les plus simples, le concept de solution « très satisfaisante », ou même seulement « bonne ». C’est notamment le cas lorsqu’un critère unique et précis n’a pu être défini. Insistons enfin sur les relations entre chercheurs opérationnels et « utilisateurs ». Toute équipe de R.O. doit, sous peine d’échec, travailler en parfait accord avec les utilisateurs, et préparer, en collaboration avec eux et leur organisateur, les amélio rations et changements qu’elle préconise et dont il lui faut établir clairement l’effi cacité. Tout ceci est valable, qu’il s’agisse d’une décision exceptionnelle prise au niveau le plus élevé, ou qu’il soit tout simplement question d’améliorer des pro cédures décisionnelles répétitives. Dans ce dernier cas, il y a intérêt à instituer une collaboration, généralement acceptée, entre l’homme et la machine. xx
Structures ordonnées Applica tions
1
des treillis et de l’algèbre de Boole en recherche opérationnelle
1.1 Notions
sur les structures ordonnées1
1.1.1 Relations. Relations binaires. Propriétés On nomme relation tout sous-ensemble du « produit cartésien » de deux ou plusieurs ensembles. Ainsi, R 5 5( a, b ) ; 1 c, a 2 ; 1 c, d 2 6 est par définition un sous-ensemble de : 5( a, a ) ; ( a, b ) ; ( a, g ) ; ( a, d ) ; ( b, a ) ; ( b, b ) ; ( b, g ) ; ( b, d ) ; ( c, a ) ; ( c, b ) ; ( c, g ) ; ( c, d )6 , qui n’est autre que le produit cartésien, noté A 3 B de A 5 5 a, b, c 6 par B 5 5 a, b, g, d 6 . En particulier, une relation binaire sur un ensemble de Ε (ainsi que l’on dit par abus de langage) est un sous-ensemble du produit E 3 E. Prenons par exemple E 5 5 x, y, z 6 . Nous représentons le produit cartésien sous forme d’un tableau : 1. Ce sous chapitre ne constitue qu’un rapide rappel. Au cas où le lecteur voudrait approfondir les questions concernant les relations et les structures ordonnées, il pourra se reporter à des livres spécialisés.
Chapitre 1 • Structures ordonnées Applications des treillis
x
y
z
x
x (x, x)
(x, y)
(x, z)
x (x, x)
y ( y, x)
( y, y)
( y, z)
y
z ( z, x)
( z, y)
(z, z)
z ( z, x)
y
z
x
(x, z)
y
x (x, x)
( y, y)
(x, y)
y
( y, z)
z ( z, x)
(z, z)
Relation R1
Produit cartésien ExE
z
Relation R2
On nomme tout naturellement relation diagonale : D 5 5 1 x, x 2 ; 1 y, y 2 ; 1 z, z 2 6 . Une relation est, par définition, réflexive si elle contient la diagonale. La relation R1, est symétrique, mais elle n’est pas réflexive. Pour qu’une relation soit symé trique, il faut, quels que soient a et b, qu’elle contienne le couple (b, a) si le couple (a, b) lui appartient. La relation R2 est antisymétrique, mais elle n’est pas réflexive. Pour qu’une relation soit antisymétrique, il faut, quels que soient a et b, qu’elle ne contienne pas le couple (b, a) si le couple (a, b) lui appartient, sauf si a 5 b, c’està-dire s’il s’agit d’un élément de la diagonale. x x (x, x)
y
z
x
y
(x, y)
(x, z)
(x, x)
(x, y)
(x, t)
(y, x)
(y, y)
(y, t)
y
z
(y, z)
z
t
(z, z)
(z, z)
(t, x)
(t, y)
Relation R3
(t, t)
Relation R4
Pour qu’une relation soit transitive, il faut qu’elle contienne (a, g) si elle contient (a, b) et (b, g), quels que soient a, b, g. La relation R3 est transitive ; elle n’est pas non plus réflexive ; elle est antisymé trique. La relation R4 est transitive ; elle est réflexive ; elle est symétrique. NB : Le contraire de réflexif, symétrique, transitif est, respectivement, irréflexif, asy métrique, intransitif. Une relation est irréflexive si elle ne contient aucun élément de D ; elle est asymétrique, si elle n’est symétrique pour aucun couple ; elle est intransitive si elle n’est transitive pour aucune paire de couples ; c’est le cas de la relation R5. x x
y ( x, y)
z ( z, x)
x x (x, x)
( y, z)
y
y
z
(x, y)
(x, z)
y
( y, z)
z ( z, x) Relation R5
2
z
Relation R6
1.1 Notions sur les structures ordonnées
Il faut se garder de confondre ces qualificatifs avec non réflexif (il y a des élé ments dans la diagonale, mais non tous), non symétrique (il existe des éléments symétriques, mais tous ne le sont pas), non transitif (la transitivité existe pour cer tains couples, mais pas pour d’autres). La relation R6 est, à la fois, non réflexive, non symétrique et non transitive.
1.1.2 Préordre. Équivalence. Ordre a) une relation réflexive et transitive est une relation de préordre. Exemple. Le Criterium des champions a donné les résultats suivants (tableau 1.1) : A 1er Camille e
2 ex aequo e
4 Ernest
{
Anatole Désiré
e
5 Bernard Tableau 1.1
B
C
D
E
A (A, A)
(A, B)
B
(B, B)
C (C, A)
(C, B)
(C, C) (C, D) (C, E)
D (D, A) E
(D, B) (E, B)
(D, D) (D, E) (E, E)
(A, D) (A, E)
Tableau 1.2: relation R
© Dunod – Toute reproduction non autorisée est un délit.
Classons-les d’après la relation R « avoir obtenu un rang meilleur ou aussi bon que ». Dans le tableau 1.2, le couple (A, B) signifie qu’Anatole a obtenu un rang meilleur ou aussi bon que Bernard : A s B. La relation est évidemment réflexive, puisqu’elle contient la diagonale ; elle est aussi transitive puisque si X a obtenu un rang meilleur ou aussi bon que Y et Y un rang meilleur ou aussi bon que Z, X a évi demment un rang meilleur ou aussi bon que Z : 3 X s Y et Y s Z 4 entraîne 3 X s Z 4 . Mais elle n’est pas symétrique, bien que A s D et D a A ; par exemple, A s E, mais E O A ; elle n’est pas non plus antisymétrique, puisque 3 A s D et D s A] n’entraîne pas 3 A ; D 4 (Anatole ne peut pas être confondu avec Désiré).
b) une relation réflexive, transitive et symétrique est une relation d’équivalence. Par exemple, envisageons deux groupes de droites parallèles : d’une part A || C ; d’autre part B || D || E. Le tableau 1.3 ci-dessous correspond à la relation || : « être parallèle à ou confondu avec ». Le tableau 1.4, résulte de la partition des droites en classes d’équivalence. Il y a deux classes {A, C} et {B, D, E}. À titre d’exemple, reprenons maintenant le classement du Criterium des champions dans l’ordre d’arrivée (A et D étant indifférents). L’existence d’une relation l’équivalence (donc réflexive, symétrique et transitive), « avoir le même rang que », est manifeste pour A et D. Si l’on fait le quotient du préordre par cette relation d’équivalence, on trouve en réalité quatre classes ; {C}, {A, D}, {E}, {B} et, désormais : C s 5 A, D 6 s 5 E 6 s 5 B 6 , la relation stricte S ayant le sens : « avoir un meilleur rang que ». Posons 5 C 6 5 a, 5 A, D 6 5 b, 5 E 6 5 g et 5 B 6 5 d ; si l’on représente par le tableau 1.6 la relation sur l’ensemble {a, b, g, d}, on constate qu’elle est irréflexive, asymétrique ; en revanche, elle est transitive. 3
Chapitre 1 • Structures ordonnées Applications des treillis
A
B
A A, A
D
E
A
B, B
C C, A
B, D B, E
D
D, B
D, D D, E
E
E, B
E, D E, E
Tableau 1.3: relation ||
A
C (C, C) A
(C, A)
D
E
(C, D) (C, E) (C, B)
......
(E, E) (E, B) (B, B)
B
E
B
B, B B, D B, E
D
D, B D, D D, E
E
E, B E, D E, E
B
.............
......
E
D
Tableau 1.4: relation ||
(A, A) (A, D) (A, E) (A, B) .(D, . . .A). . . .(D, . . .D). . (D, E) (D, B)
D
B
C B, B C, C
C, C
C
C
A A, A A, C
A, C
B
C
.
,
. . .
Tableau 1.5
.
,
,
,
,
. .
. .
,
.
Tableau 1.6: relation S
c) Une relation réflexive, antisymétrique, transitive est, par définition, une relation d’ordre ( large par définition). Exemple. Considérons N* l’ensemble des entiers naturels privé du zéro, et la rela tion x | y (x divise exactement y, sans reste), étant entendu que x divise x, quel que soit x N*. En raison de cette dernière hypothèse, la relation est réflexive (ce que l’on traduit en disant que l’ordre est large). Elle est évidemment transitive, car si x | y et y | z, alors x | z. De plus, elle est antisymétrique : en effet si x | y et y | x, c’est que x 5 y. Soit X 5 {1, 2, 3, 5, 10, 20, 30} une partie de N. Le tableau 1.7 représente la rela tion x | y sur cet ensemble. 1 2 3 5 10
1
2
3
5
10
20
30
(1, 1)
(1, 2) (2, 2)
(1, 3)
(1, 5)
(1, 10) (2, 10)
(1, 20) (2, 20)
(1, 30) (2, 30)
(3, 3)
(3, 30) (5, 5)
(5, 10)
(5, 20)
(5, 30)
(10, 10)
(10, 20) (20, 20)
(10, 30)
20
(30, 30)
30 Tableau 1.7
4
1.1 Notions sur les structures ordonnées
On vérifie aisément sur le tableau la réflexivité et l’antisymétrie. On vérifie (moins facilement) la transitivité sur ce tableau par les “rectangles” dont un des sommets est sur la diagonale :
© Dunod – Toute reproduction non autorisée est un délit.
(1, 2) (2, 2) (1, 2) (2, 2) (1, 5) (5, 5) (1, 5) (5, 5)
... ... ... ... ... ... ... ...
(1, 10) (1, 10) . . . (1, 30) (1, 3) . . . (1, 30) (2, 10) (10, 10) . . . (10, 30) (3, 3) . . . (3, 30) (1, 30) (5, 10) . . . (2, 30) (1, 5) . . . (1, 20) (2, 30) (10, 10) . . . (10, 30) (5, 5) . . . (5, 20) (1, 10) (5, 10) . . . (5, 30) (1, 10) . . . (1, 20) (5, 10) (10, 10) . . . (10, 30) (10, 10) . . . (10, 20) (1, 30) (1, 2) . . . (1, 20) (2, 10) . . . (2, 20) (5, 30) (2, 2) . . . (2, 20) (10, 10) . . . (10, 20) (5, 10) . . . (5, 20) (10, 10) . . . (10, 20)
Ainsi le rectangle en haut à gauche se lit : 1/2 et 2/2 et 2/10 entraîne 1/10. Contrairement à ce qui se passe pour le tableau 1.5, la partie supérieure du tableau (au-dessus de la diagonale) ne fait pas appa raître tous les couples. C’est qu’au sens de la relation tous les éléments ne sont pas deux à deux comparables. Ainsi, par exemple, on n’a pas 2 | 3 ni 2 | 5 (et pas davantage 3 | 2 Figure 1.1 Figure 1.2 ou 5 | 2). On exprime ce fait en disant que l’ordre est partiel. Dans le cas contraire, l’ordre est total. La relation < sur N, Z, Q ou R (ou tout sous-ensemble de ceux-ci) est une relation d’ordre total. On peut donner une représentation « sagittale » de la relation (figure 1.1) : Deux éléments a et b, représentés chacun par un point, sont réunis par un arc si et seulement si a | b. Il y a autant d’arcs que de couples dans le tableau 1.7 soit 22, y compris 7 boucles. Mais on peut réduire le nombre de ces arcs, en supprimant ceux qui résultent de la réflexivité et de la transiti vité. On obtient alors un diagramme de Hasse (fig. 1.2), plus lisible. Le diagramme de Hasse d’un ensemble totalement ordonné est une Figure 1.3 chaîne (fig. 1.3) (en fait, en termes de graphes orientés, il s’agira d’un chemin). À toute relation d’ordre large correspond une et une seule relation d’ordre strict. Une relation d’ordre strict est irréflexive, asymétrique et transitive. Elle peut induire un ordre partiel ou un ordre total.
5
Chapitre 1 • Structures ordonnées Applications des treillis
Pour obtenir la représentation de la relation d’ordre strict correspondant à | (divise), c’est-à-dire la relation (divise et n’est pas égal), il suffit de supprimer la diagonale du tableau 1.7 et les boucles (arcs fermés sur eux-mêmes) de la fig. 1.1. Ici, l’ordre strict n’est que partiel (tout comme l’ordre large d’où il provient). À toute relation d’ordre a (ou a ) correspond une relation converse s (ou s) . Le diagramme de Hasse (fig 1.2) s’obtient en supprimant dans la fig. 1.1, les boucles et les arcs de transitivité : ainsi 1 divise 2 et 2 divise 10 entraîne 1 divise 10 : l’arc (1,10) est un arc de transitivité.
1.1.3 Éléments particuliers d’un ensemble ordonné Un ensemble sur lequel est définie une relation d’ordre (partiel ou total) est nommé ensemble ordonné (partiellement ou totalement). Certains éléments particuliers des ensembles partiellement ordonnés jouent un grand rôle en recherche opérationnelle. Considérons un ensemble X, partiellement ordonné par la relation a (être inférieur ou égal à) et une partie P de cet ensemble. S’il existe (bien noter cette restriction) : a) Un élément m de X qui est inférieur ou égal à tout élément x de P, m est un minorant de P. Un élément M de X qui est supérieur ou égal à tout élement x de P, est un majo rant de P. b) Un élément M de P, tel qu’il n’existe pas d’éléments de Ρ supérieur à M, est un élément maximal de P.1 n élément m de P, tel qu’il n’existe pas d’éléments de Ρ inférieur à M, est un U élément minimal de P. De même les éléments définis ci-dessous peuvent exister ou ne pas exister : c) Le plus grand élément E (ou encore : le maximum) de P est l’élément de P, tel que, pour tout xPP, on a : E s x. Le plus petit élément e (ou encore : le minimum) de P est l’élément de P, tel que, pour tout xPP, on a : e a x. d) La borne supérieure (b.s.) B de P (ou supremum de P, notée aussi sup P) est le plus petit élément de l’ensemble des majorants de P. La borne inférieure (b.i.) b de P (ou infimum de P, notée aussi inf P) est le plus grand élément de l’ensemble des minorants de P. e) L’élément universel de X est le plus grand élément de X. L’élément nul de X est le plus petit élément de X.
1. L’Académie des sciences recommande d’employer les termes « maximum, minimum, opti mum » uniquement comme substantifs ; les adjectifs correspondants étant « maximal, minimal, optimal ». Ainsi on doit dire « élément maximal » (et non pas « élément maximum »). 6
1.1 Notions sur les structures ordonnées
Insistons sur le fait que les éléments particuliers définis en a), b), c), d) et e) n’existent pas nécessairement dans un ensemble partiellement ordonné, ce qui est illustré par l’exemple ci-dessous. Exemples. Soit X 5 {1, 2, 3, 5, 10, 20, 30} un ensemble partiellement ordonné par la relation x | y (x divise y). Nous invitons le lecteur à se reporter au diagramme de Hasse associé (Fig. 1.2). 1. Prenons P 5 {2, 3, 5, 10}. P est inclus dans X Il existe un majorant de P : 30, un minorant : 1, deux éléments maximaux : 3 et 10, trois éléments minimaux : 2, 3, 5, ni plus grand élément, ni plus petit élément de P. La b.s. de P est 30, la b.i. est 1. X n’admet pas d’élément universel, mais un élément nul : 1. 2. Prenons maintenant P 5 {2, 5, 10}. Ρ compte trois majorants : 10, 20, 30, un minorant : 1, un élément maximal : 10, deux éléments minimaux : 2 et 5, un plus grand élément : 10, pas de plus petit élé ment. La borne supérieure de Ρ est 10, la borne inférieure est 1. Pour une partie réduite à deux éléments (ou « paire ») {x, y}, d’un ensemble ordonné, il peut exister une borne supérieure et/ou une borne inférieure ; la b.s., lors qu’elle existe, est notée x ~ y et la b.i. par x ` y.
1.1.4 Treillis
© Dunod – Toute reproduction non autorisée est un délit.
a) On appelle treillis (ou encore lattis ou ensemble réticulé) un ensemble partielle ment ordonné dans lequel, pour toute paire d’éléments, existent une borne supérieure (b.s.) et une borne inférieure (b.i.). À cette définition on peut substituer la définition axiomatique suivante. Soit un ensemble T, dont les éléments sont munis de deux lois de composition, ~ et ` , véri fiant, quels que soient x, y et zPT, les propriétés ci-après : 1. x ~ y 5 y ~ x (commutativité) 1r. x ` y 5 y ` x ~ ~ ~ ~ 1 2 1 2 2. x 2r. x ` 1 y ` z 2 5 1 x ` y 2 ` z y z 5 x y z (associativité) 3. x ~ x 5 x (idempotence) 3r. x ` x 5 x 4. x ~ 1 x ` y 2 5 x (absorption) 4r. x ` ( x ~ y ) 5 x alors T constitue un ensemble ordonné par la relation a telle que : 5. 3 x a y 4 équivaut à 3 x ` y 4 5 x et équivaut à 3 x ~ y 4 5 y. On appelle alors T un treillis. On peut aisément démontrer l’équivalence de ces deux définitions. Exemple. Considérons, par exemple, les diviseurs de 30 : 1, 2, 3, 5, 6, 10, 15, 30 (ils sont au nombre de 8 car 1 1 1 1 2 # 1 1 1 1 2 # 1 1 1 1 2 5 8 et 30 5 21 # 31 # 51 2 , ordonnés par la relation x | y (x divise y). Rappelons que si, n 5 p # qb # rg cest la décomposition en produit de facteurs premiers de l’entier n 1 n > 2 2 , alors n admet 1 a 1 1 2 1 b 1 1 2 1 g 1 1 2 c diviseurs (y compris 1 et n). 7
Chapitre 1 • Structures ordonnées Applications des treillis
Ces díviseurs forment un treillis dont le diagramme de Hasse est donné par la figure 1.4. La b.s. de deux éléments quelconques est leur p.p.c.m ; la b.i., leur p.g.c.d. Ainsi : 5 ~ 6 5 5 3 6 5 30 et 5 ` 6 5 1 ; 6 ~ 15 5 2 3 3 3 5 5 30 et 6 ` 15 5 3, etc. L’élément universel de ce treillis est 30, l’élément nul, 1. D’une manière générale N* 5 N 2 5 0 6 , ordonné par la rela tion x | y (x divise y), présente une structure de treillis infini. L’élément nul est toujours 1 ; il n’y a pas d’élément universel. On montre que tout treillis T ayant un nombre fini d’éléments comporte un élément nul et un élément universel. b) Un treillis, comportant un élément nul et un universel, que nous désignerons, respectivement par n et U, est complémenté si, à tout élément x de T, on peut associer au moins un élément de T, noté x tel que : Figure 1.4
6. x ~ x 5 U et 6r. x ` x 5 n.
Le treillis de la figure 1.4 est complémenté. En effet : 1 ~ 30 5 30, 1 ` 30 5 1 ; 2 ~ 15 5 30, 2 ` 15 5 1 ; 3 ~ 10 5 30, 3 ` 10 5 1 ; 5 ~ 6 5 30, 5 ` 6 5 1. Ainsi n = 1 est le complément de U = 30 et réciproquement ; de même 3 et 10 sont le complément l’un de l’autre, tout comme 5 et 6. Propriété. On a, d’après 4 : x ` 1 x ~ x 2 5 x. Or, x ` 1 x ~ x 2 5 x ` U 5 x. D’où : x ` U 5 x. De même : x ~ n 5 x. N.B. Le système d’axiomes (1 à 4), (1r à 4r) n’est pas minimal; mais il est pratique pour le calcul. On peut, en effet, montrer que l’absorption entraîne l’idempotence. c) Un treillis est distributif lorsqu’aux axiomes 1 à 4 et 1r à 4r, s’ajoute le suivant : 7. x ` 1 y ~ z 2 5 1 x ` y 2 ~ 1 x ` z 2 , quels que soient x, y et zPT.
Cet axiome entraîne (cf. Execrcice 1 ci-dessous) :
7r. x ~ 1 y ` z 2 5 1 x ~ y 2 ` 1 x ~ z 2 .
Inversement, 7r entraîne 7. Exercices.
8
1. Soit à démontrer, à partir des axiomes 1 à 4, 1r à 4r et 7, que : 7r. x ~ 1 y ` z 2 5 1 x ~ y 2 ` 1 x ~ z 2 . Grâce à 4, on peut écrire le premier membre de 7r sous la forme : 3 x ~ 1 x ` y 2 4 ~ 1 y ` z 2 , en remplaçant x par x ~ 1 x ` y 2 . Grâce à 2, cette expression est égale à : x ~ 3 1 x ` y 2 ~ 1 y ` z 2 4 (par associativité de ~ ). et, en vertu de 1r, elle est aussi égale à : x ~ 3 ( y ` x ) ~ ( y ` z ) 4 (par commutativité de ` ).
1.1 Notions sur les structures ordonnées
De ce fait, grâce à 7, le crochet est égal à y ` 1 x ~ z 2 et cette expression devient : x ~ 3 (y ` (x ~ z) 4 Remplaçons x par sa valeur d’après 4r ; l’expression devient : 3 x ` 1 x ~ z 4 ~ 3 1 y ` 1 x ~ z 2 4 ; il vient alors, en appliquant 7 : 1 x ~ y 2 ` 1 x ~ z 2 (par distributivité).
et c’est précisément le deuxième membre de 7r, qu’il fallait obtenir par un calcul fondé sur les seuls axiomes 1 à 7 et 1r à 6r. 2. Dans un treillis distributif, la complémentation est unique. Raisonnons par l’absurde et supposons que l’élément x ait deux compléments différents, x et x* ; on aurait : x ~ x 5 x ~ x* 5 U et x ` x 5 x ` x* 5 n, avec x 2 x* On peut écrire : x 5 x ` U 5 x ` 1 x ~ x* 2 5 1 x ` x 2 ~ 1 x ` x* 2 5 n ~ 1 x ` x* 2 5 x ` x*, De même :
x* 5 x* ` U 5 x* ` ( x ~ x ) 5 ( x* ` x ) ~ ( x* ` x )
5 n ~ ( x* ` x ) 5 x* ` x 5 x ` x*
© Dunod – Toute reproduction non autorisée est un délit.
Finalement x 5 x*, contrairement à l’hypothèse et ainsi la complémentation est unique. d) Un treillis à la fois distributif et complémenté est appelé treillis de Boole. Il est isomorphe à une algèbre de Boole. Une algèbre de Boole B est donc un ensemble partielle ment ordonné, doté d’un élément nul et d’un élément univer sel, dont les éléments vérifient les axiomes 1 à 4; 1r à 4r ; 6, 6r et 7 (et donc aussi 7r). La relation d’ordre est définie par l’une des quatre rela tions équivalentes suivantes : 5*. x a y équivaut à x ` y 5 x ou x ~ y 5 y ou
Figure 1.5
x ` y 5 0 ou x ~ y 5 1 0 et 1 désignant, respectivement, n et U. Une algèbre de Boole comportant un seul générateur a, différent de 0 et de 1, comporte quatre éléments (fig. 1.5). 9
Chapitre 1 • Structures ordonnées Applications des treillis
La figure 1.6 représente un hypercube, qui n’est autre que le diagramme de Hasse d’une algèbre de Boole à deux générateurs, a et b, différents de 0 et 1. Elle comporte 24 = 16 éléments. Les éléments diagonalement opposés sur la figure sont le complé ment l’un de l’autre. Ainsi : a ` b et a ~ b , a ~ b et a ` b, etc. Plus généralement une algèbre de Boole avec m atomes comporte 2m éléments.
Figure 1.6
Noter que : D 5 1 a ` b ~ 1 a ` b 2 5 1 a ~ b 2 ` 1 a ~ b 2 désigne la somme dis jonctive (ou « différence symétrique ») de a et b : D 5 a { b ;
D 5 ( a ~ b ) ` 1 a ~ b 2 5 1 a ` b 2 ~ 1 a ~ b 2 est le complément de D. Comme toute algèbre de Boole finie, l’algèbre à deux générateurs est atomique. Ses atomes, ou éléments qui couvrent 0 (c’est-à-dire sont immédiatement supérieurs à 0) sont a ` b, a ` b, a ` b et a ` b. Le théorème de Stone, dont la démonstration n’est pas immédiate1 énonce que tout algèbre de Boole est isomorphe à un « corps d’ensembles » (cf. NB ci-dessous). Ainsi, à l’algèbre de Boole de la figure 1.6, on peut faire correspondre le schéma de la figure 1.7. On suppose que a 2 b et a ` b 2 0. Alors apparaissent clairement sur la figure, dont le carré représente l’univers U, les « régions » A d B, A d B, A d B et A d B, correspondant aux atomes a ` b, a ` b, a ` b et a ` b. NB : On appelle « corps d’ensembles » une famille de parties d’un ensemble, munie des opérations ensemblistes classiques (réunion, interjection, complémentation) ; dans le cas d’un ensemble fini E, la famille de ses parties p(E) constitue le corps d’ensembles. Notons que l’algèbre de Boole de la figure 1.5 U Figure 1.7 est isomorphe au treillis des diviseurs de tout entier de la forme 1. Voir : R. FAURE et E. HEURGON, Structures ordonnées et algèbre de Boole, Gauthier-Villars, 1971. 10
1.2 Représentation ensembliste des algèbres de Boole
n 5 p # q (où p et q sont des nombres premiers différents). Pour la figure 1.6, il s’agi rait du treillis des diviseurs de n 5 p # q # r # s (p, q, r, s premiers) ; par exemple pour n 5 210 5 21 # 31 # 51 # 71. Cette isomorphie se traduit par l’identité des deux dia grammes de Hasse. Une conséquence du théorème de Stone est que toute algèbre de Boole comportant m atomes (donc finie) comporte 2m éléments.
1.2 Représentation ensembliste des algèbres de Boole. Application à la logique élémentaire 1.2.1 Principes de la logique aristotélicienne
© Dunod – Toute reproduction non autorisée est un délit.
Soit un ensemble fondamental R, appelé référentiel, dont les éléments sont suscep tibles de présenter certaines propriétés. Étant donnée une propriété p déterminée, les éléments qui la vérifient forment le sous-ensemble A(p) de R, que nous désignerons plus brièvement par A. On connaît aussi le sous-ensemble A des éléments de R qui vérifient la propriété non-p (ou, de manière équivalente, n’ont pas la propriété P). C’est le complémentaire du sous-ensemble A. Un diagramme d’Euler-Venn illustre ces définitions (figure 1.8). En logique classique, le principe de non contradiction enseigne qu’aucun élément ne peut, à la fois, vérifier et ne pas vérifier une pro priété, c’est-à-dire présenter, en même temps, la propriété p et la propriété non-p. Ce principe se traduit, en mathématique, par le fait que A et A sont disjoints. Un autre principe de la logique aristotélicienne, le principe du tiers exclu, indique que l’on ne trouvera jamais plus de deux classes en triant un ensemble d’éléments par rapport à une propriété p : les uns, qui vérifient la propriété p, constituent le sous-ensemble A du référentiel; les autres, qui ont la propriété non-p (ou de manière équivalente, ne vérifient pas la propriété p), forment le complémentaire A de A. Si l’une de ces deux classes est vide, l’autre se confond avec le référentiel.
Remarque. Si l’on prend le complément de l’ensemble A, soit A, on retombe évidemment sur l’ensemble A. La complémentation est dite, pour cette raison, involutive. Figure 1.8
1.2.2 Expression du principe de non-contradiction Considérons maintenant une propriété p, à laquelle correspond le sous-ensemble A du référentiel R, et une propriété q, à laquelle correspond le sous-ensemble B de R. Si les deux propriétés ne sont pas contradictoires, il y aura des éléments vérifiant à la fois les deux propriétés. On aura donc, dans R (fig. 1.9) : Figure 1.9
11
Chapitre 1 • Structures ordonnées Applications des treillis
– des éléments vérifiant la propriété p seule (région 2) ; – des éléments vérifiant la propriété q seule (région 1) ; – des éléments vérifiant les propriétés p et q (région 3) ; – des éléments ne vérifiant ni la propriété p, ni la propriété q (région 0). Par définition, les éléments possédant les propriétés p et q sont dits constituer l’intersection des sous-ensembles A et B (région 3) et l’on désigne ce sous-ensemble par la notation A d B, où le symbole d indique que l’on a appliqué l’opération d’intersection aux sous-ensembles A et B. On voit que : – les éléments de la région 2 forment un sous-ensemble de R qui peut être noté A d B ; – les éléments de la région 1 forment le sous-ensemble A d B ; – les éléments de la région 0 constituent le sous-ensemble A d B. De plus, le principe de contradiction peut maintenant s’exprimer par : A d A 5 [,
(1.1)
le symbole [ désignant le sous-ensemble vide (le plus souvent nommé ensemble vide).
1.2.3 Formules de de Morgan. Principe du tiers exclu Revenons aux sous-ensembles A et B précédents et préoccupons-nous de savoir si nous pouvons trouver un sous-ensemble de R dont les éléments vérifient les pro priétés p ou q. Hâtons-nous de dire que cette formulation est ambigüe. Les latins, par exemple, avaient deux mots pour exprimer la conjonction de coordination ou : vel et aut. Nous traduisons aut par : ou bien et vel simplement par : ou ; c’est dire que, dans le premier cas, il s’agit du ou exclusif (c’est-à-dire : soit l’un, soit l’autre), tandis que, dans le second, il s’agit du ou non-exclusif (ou inclusif), le ou habituel du français. Aussi quand nous voulons rechercher les éléments qui vérifient les propriétés p ou q, nous entendons retenir : – les éléments qui vérifient la propriété p seule ; – les éléments qui vérifient la propriété q seule ; – les éléments qui vérifient les propriétés p et q, à la fois. Ces éléments sont tous ceux qui, compris dans les régions 1, 2 et 3 de la figure 1.10 constituent ce que l’on appelle la réunion des sous-ensembles A et B, que l’on note : A c B. On constate, sur le diagramme, que le complément de A c B est formé par les éléments de la région 0, c’est-à-dire le sous-ensemble A d B. On a donc : 12
Figure 1.10
1.2 Représentation ensembliste des algèbres de Boole
AcB5A
d
B
(1.2)
Remplaçons, dans cette formule, A par A et B par B ; on obtient : A c B 5 A c B 5 A d B. Prenons maintenant le complémentaire de chaque membre ; il vient : A c B 5 A d B ; mais, d’après l’involution A c B 5 A c B ; on a donc :
A
d
B 5 A c B
(1.3)
Les expressions (1.2) et (1.3) sont dites formules de de Morgan. En revenant à la figure 1.8 on voit que le principe du tiers exclu s’exprime par :
A c A 5 R.
(1.4)
1.2.4 Commutativité. Idempotence. Éléments neutres Les opérations d et c sont évidemment commutatives :
A d B 5 B d A ;
(1.5)
(1.5bis) A c B 5 B c A. On montre, étant donné le contexte logique sous-jacent, qu’elles sont aussi associa tives :
A d 1B d C2 5 1A d B2
A c 1B c C2 5 1A c B2 Il n’est pas difficile de voir que :
© Dunod – Toute reproduction non autorisée est un délit.
A d A 5 A
d
C ;
(1.6)
c
C.
(1.6bis) (1.7)
et que : A c A 5 A ; (1.7bis) on dit alors que les deux opérations d et c sont idempotentes (cette propriété se tra duit par l’inutilité d’exposants et de coefficients en algèbre de Boole). Revenons à l’ensemble vide, [ ; il ne comprend aucun élément ; en conséquence, on a : (1.8) A c [ 5 A. Prenons maintenant l’intersection de A et du référentiel R ; elle est évidemment iden tique à A : (1.9) A d R 5 A. Les éléments [ et R sont, respectivement, les éléments neutres (ou unités), respectivement, des opérations c et d. 13
Chapitre 1 • Structures ordonnées Applications des treillis
1.2.5 Distributivité Les opérations d et c doivent être mutuellement distributives. C’est-à-dire que l’on a :
A d 1B c C2 5 1A d B2
et
A c 1B d C2 5 1A c B2
c
d
1A d C2
(1.10)
1 A c C 2 .
(1.10bis)
Figure 1.12 1 A c B 2
Figure 1.11 A c 1 B d C 2
Il est facile de le vérifier, par exemple au moyen des diagrammes d’Euler-Venn. Construisons, à cet effet, le sous-ensemble correspondant à l’expression formant le membre gauche de (1.10bis) : il s’agit de réunir les régions A (hachures verticales) et B d C (hachures horizontales) ; on obtient ainsi une région, comportant un type ou l’autre des hachures, qui a été entourée d’un trait gras sur la figure 1.11. Construisons maintenant le sous-ensemble correspondant au second membre de (1.10bis) : il s’agit de trouver l’intersection des réunions A c B (hachures verticales) et A c C (hachures horizontales) ; on obtient ainsi une région comportant l’un et l’autre type de hachures ; elle a été entourée d’un trait gras sur la figure 1.12 et l’on voit qu’elle coïncide avec la région distinguée de la figure 1.11.
d
1A c C2
Le lecteur est invité à vérifier lui-mème la formule (1.10), au moyen d’une construction analogue. Remarque. Il ne s’agit ici que de vérification ; elle ne se hausserait au rang d’une démonstration que si l’on prenait soin de considérer les seize cas de figure. On peut donner une démonstration, et pas seulement une vérification de (1.10), étant donné (1.10bis), considéré comme un axiome, et à condition d’ajouter les axiomes d’absorption : A d 1 A c B 2 5 A c 1 A d B 2 5 A, le lecteur pourra s’inspirer du paragraphe consacré aux treillis distributifs.
1.2.6 Vers une axiomatique On a l’habitude, en algèbre de Boole, de désigner l’ensemble vide par 0 et le référen tiel par 1 (plutot que n et U). On montre qu’un ensemble dans lequel existent deux opérations binaires, d et c, et une opération unaire, , telles que les axiomes suivants soient vérifiés : 14
1.2 Représentation ensembliste des algèbres de Boole
A c B 5 B c A AdB5BdA 1B c C2 5 1A c B2
Ac
A d 1B d C2 5 1A d B2 A c A 5 A AdA5A
c
C
d
C
Ac
Ad
A
d
(Idempotence)
f (Éléments neutres)
A c A 5 1
f (Associativité) f
A c 0 5 A Ad15A
f (Commutativité)
f (Définition du complément) AdA50 1B d C2 5 1A c B2 d 1A c C2 (Distributivité mutuelle) 1 B c C 2 5 1 A d B 2 c 1 A d C 2 f (A
c
B) 5 A 5 A
c
(A
d
B )
(Absorption)
constitue une algèbre de Boole comprenant au moins deux éléments, 0 et 1. Dans cette algèbre on a, notamment, les propriétés :
A 5 A (Involution de la complémentation)
A d B 5 A c B et A c B 5 A d B (Formules de de Morgan) On remarque que le deuxième axiome de chacune des six paires d’axiomes ci-dessus peut être obtenu à partir du premier axiome de la paire, en changeant tout signe c en d, tout signe d en c et tout 0 en 1. Les correspondances : c 4 d ; d 4 c ; 0 4 1 permettent donc de passer d’un axiome quelconque à l’axiome qui lui correspond dans la même paire. En appliquant les règles de la logique (en particulier deux des axiomes de la liste : contradiction et tiers exclu), cette propriété sera conservée. Ainsi, à toute propriété générale, établie pour une algèbre de Boole, correspond une propriété duale, obtenue en effectuant les échanges de symboles indiqués ci-dessus.
© Dunod – Toute reproduction non autorisée est un délit.
1.2.7 Implication. Inclusion On remarque que l’opération d’intersection correspond à la conjonction logique « et », l’opération de réunion à la conjonction logique « ou » (inclusif) et la complémentation à la n égation. On utilise aussi en logique l’implication : la propriété p implique la propriété q, et l’on écrit : p 1 q, si et seulement si tous les éléments qui vérifient la propriété p vérifient aussi la propriété q. Dans ces conditions, le sous-ensemble A(p) est inclus dans le sous-ensemble B(q) et l’on écrit : A ( B. 15
Chapitre 1 • Structures ordonnées Applications des treillis
La relation d’inclusion, que nous avons désignée par le symbole ( , est une rela tion d’ordre (large) : 1) elle est réflexive, car, quel que soit p, on a : p 1 p, d’où : A ( A ; 2) elle est transitive, car : d’où :
1 p 1 p et q 1 r 2 1 1 p 1 r 2 ,
d’où:
1 A ( B et B ( C 2 1 1 A ( C 2 ; 3) elle est antisymétrique, car si l’on a, à la fois : p 1 q et q 1 p, c’est que A(p) 5 B(q), A(B et s 1 A 5 B. B(A
Sur le diagramme d’Euler-Venn (figure 1.13), on remarque que, si A ( B : A c B 5 B et A d B 5 A. On verrait facilement aussi que, si A ( B : A c B 5 1 et A d B 5 0. Ce sont là quatre expressions équivalentes de l’inclusion : Figure 1.13
1 A ( B 2 3 A d B 5 A 3 A c B 5 B 3 A c B 5 1 3 A d B 5 0. L’expression de p 1 q par A c B 5 1 est fréquemment employée en logique.
Remarque. Le fait d’écrire : p 1 p, c’est-à-dire que toute proposition s’implique elle-même, revient à formuler le principe d’identité.
1.2.8 Formes canoniques
Au lieu de parler de sous-ensembles A1, A2,cd’un référentiel, nous pourrons, grâce au paragraphe 1.2.6, parler maintenant de variables A1, A2,c. Soient n variables booléennes (n, nombre fini) : A1, A2, A3,c, Ai,c, An.
Désignons par Xi la variable Ai sous l’un de ses deux aspects : Ai (affirmatif) ou Ai (négatif). On appelle minterme de l’algèbre de Boole à n variables toute expression :
X1 d X2 d X3 d cd Xi d cd Xn , où chaque variable figure sous un et un seul de ses aspects. Dualement, on appelle maxterme toute expression de la forme : X1 c X2 c X3 c cc Xi c cc Xn ,
16
1.2 Représentation ensembliste des algèbres de Boole
où chaque variable figure sous un et un seul de ses aspects. Il est facile de voir que le nombre des mintermes de n variables est 2n ; de même le nombre des maxtermes. La notion de minterme (ou atome) est très importante ; en effet, d’une part, les mintermes de n variables sont deux à deux disjoints (ils diffèrent, en effet, l’un de l’autre au moins par l’aspect d’une variable: affirmée ou niée ; d’autre part, la réunion des 2n mintermes de n variables est égale au référentiel (en effet, 2n 2 1 mintermes s’écrivent A d 1 X2 d X3 d cd Xn 2 et les 2n 2 1 autres A d 1 X2 d X3 d cd Xn 2 ; ainsi, leur réunion est X2 d X3 d cd Xn et, en diminuant à chaque fois d’une variable, on finit par tomber sur Xn c Xn 5 1). Par conséquent, les mintermes consti tuent une partition du référentiel. Tout minterme peut être désigné par m i , i étant la valeur décimale du nombre binaire obtenu en faisant correspondre 1 à toute variable affirmée et 0 à toute variable niée. Exemple. Pour quatre variables A, B, C et D, n 5 4, on a 24 mintermes, soit 16. On écrira, par exemple : m13 5
A 1
d
B 1
d
C 0
d
D 1
car la valeur décimale du nombre binaire 1101 est 13. On montre que toute fonction booléenne f 1 A1, A2, c, Ai, cAn 2 peut être mise sous une forme unique de réunion de mintermes appelée forme cano nique disjonctive. Dualement, il existe, bien entendu, une forme canonique conjonctive, qui est une intersection de maxtermes. Soit un vecteur ligne e 5 3 e0, e1, c, e2n 2 1 4 de 2n éléments, ei étant égal à 1 si le minterme mi existe dans la forme canonique disjonctive, et à 0, sinon. La forme canonique disjonctive peut donc être symbolisée par le produit scalaire : e # m 5 a ei # m i, noté plus bas : d ( e d m) ,
© Dunod – Toute reproduction non autorisée est un délit.
2n 2 1 i50
m étant le vecteur colonne : m0 m1 ( m5F V mi ( m 2n 2 1 à condition d’interpréter le produit de deux composantes comme une intersection et la somme des produits comme une réunion. 17
Chapitre 1 • Structures ordonnées Applications des treillis
Exemple. Soit la fonction booléenne , à trois variables A, B et C : 5 5 3 1A d B2
c
C4 d 1A d B2 6
c
3 1B d C2
d
Appliquons d’abord la formule généralisée de de Morgan : 5 5 3 1A c B2
d
C4 d 1A d B2 6
c
3 1B d C2
d
1A c C2 4 1A c C2 4
Développons ensuite en utilisant la distributivité de l’opération d par rapport à l’opé ration c : 5 5 3 1A d C2
5 3 1A d C2 5 (A
d
d
A
c
1B d C2 4 d 1A d B2 6
1A d B2 4 c 3 1B d C2
d
B d C) c (A
d
d
c
5 3 1B d C2
d
A4 c 3 1B d C2
1A d B2 4 c 3 1A d B d C2
B d B d C) c (A
d
c
d
C 46
1B d C d C4
B d C) c (B d C d C)
Éliminons ensuite les termes tels que X d X 5 0 et remplaçons X d X par X : 5 0 c 1A d B d C2 Le minterme A On a donc :
d
5 1A d B d C2
c c
1A d B d C2
c
1A d B d C2.
0
B d C se code 100 ; A d B d C se code 010 . 5 m4 c m2 .
On peut obtenir de deux façons : – ou bien, sous la forme d’une réunion de mintermes, en ne prenant que ceux qui n’appartiennent pas à : 5 m7 c m6 c m5 c m3 c m1 c m0 – ou bien, sous la forme d’une intersection de maxtermes, en prenant le complé mentaire de l’expression de sous la forme d’une réunion de mintermes : 5 m4 c m2 5 m4 d m2 5 M3 d M5 5 1 A c B c C 2
d
1A c B c C2
(on observe, en effet, qu’en prenant le complémentaire d’un minterme d’indice i on obtient le maxterme d’indice 2n 2 1 2 i). Dans ces conditions, on peut obtenir sous la forme d’une intersection de maxtermes de deux façons, en effet, on a d’abord : 5 5 m7 c m6 c m5 c m3 c m1 c m0 5 M0 d M1 d M2 d M4 d M6 d M7 , puis, aussi bien : 5 , intersection de tous les maxtermes, à l’exception de ceux qui figurent dans : 5 5 M0 d M1 d M2 d M4 d M6 d M7 . 18
1.3 L’algèbre de Boole binaire
1.3 L’algèbre
de
Boole
binaire
1.3.1 Fonction caractéristique. Opérations binaires Appelons fonction caractéristique fA 1 x 2 d’un élément x, par rapport à un sous-ensemble A du référentiel, une fonc tion qui prend la valeur 1 si et seulement si x H A et, sinon, la valeur 0. On voit clairement (figure 1.14) que fA 1 x 2 5 1, alors f A 1 x 2 5 0 et inversement. C’est la complémentation ou négation logique. Figure 1.14 Considérons maintenant deux sous-ensembles A et B d’un référentiel R (figure 1.15) et étudions la valeur de fA d B 1 x 2 par rapport aux valeurs de fA(x) et fB(x) pour toutes les positions possibles de x.
f A ( x ) 5 1 ; f B ( x ) 5 0 ; f A d B ( x ) 5 0
f A ( x ) 5 1 ; f B ( x ) 5 1 ; fA d B 1 x 2 5 1
f A ( x ) 5 0 ; f B ( x ) 5 1 ; fA d B 1 x 2 5 0
f A ( x ) 5 0 ; f B ( x ) 5 0 ; fA d B 1 x 2 5 0
f A ( x ) 5 0 ; f B ( x ) 5 0 ; fA c B 1 x 2 5 0
On constate que l’on a dans tous les cas possibles : f A d B ( x ) 5 f A ( x ) ? f B ( x ) avec les règles habituelles du produit, que nous appellerons néanmoins, ici produit logique, car il n’est pas difficile de découvrir qu’il s’agit bien de l’opération et, envi sagée plus haut. Effectuons maintenant l’étude pour fA c B 1 x 2 , dans les mêmes conditions (figure 1.16).
© Dunod – Toute reproduction non autorisée est un délit.
Figure 1.15
f A ( x ) 5 0 ; f B ( x ) 5 1 ; fA c B 1 x 2 5 1 19
fA 1 x 2 5 1 fB 1 x 2 5 1 fA c B 1 x 2 5 1
fA 1 x 2 5 1 fB 1 x 2 5 0 fA c B 1 x 2 5 1
Chapitre 1 • Structures ordonnées Applications des treillis
Figure 1.16
Cette fois, on remarque que l’on a :
#
fA c B 1 x 2 5 f A 1 x 2 1 fB 1 x 2
#
avec une règle spéciale qui veut que : 1 1 1 5 1 (propriété d’idempotence). Nous appellerons cette opération la somme logique ; elle correspond à l’opération ou, envisagée précédemment. En résumé, sur l’ensemble {0, 1}, nous avons une opération unaire et deux opé rations binaires, dont les tables sont données ci-dessous : Négation logique
Somme logique 1
0
1
Produit logique 1 0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
Nous utiliserons en particulier ces opérations en théorie des graphes, lors de la détermination de la « fermeture transitive » d’un graphe. Remarque. # L’élément 0 apparaît comme l’élément neutre #de l’opé#ration 1 et le 1, comme l’élément neutre de l’opération ? : 0 1 a 5 a 1 0 et 1 # a 5 a # 1, pour tout a P 5 0, 1 6 Mais, faute de symétrique pour chaque élément, tant pour la somme logique # où 1 n’a pas de symétrique ( q xP 5 0,1 6 tel que 1 1 x 5 0) que pour le produit logique où 0 n’a pas de symétrique ( q xP 5 0,1 6 tel que 0 # x 5 1), les opéra tions considérées ne confèrent pas une structure de groupe à l’ensemble {0,1}. C’est pourquoi l’on introduit souvent une nouvelle opération appelée somme disjonctive ou encore somme modulo 2, telle que ;a, bP {0, 1} :
# a ! b 5 a # b 1 a # b.
20
1.3 L’algèbre de Boole binaire
Du fait que A ! B représente la zone hachurée sur la figure 1.17, on voit que :
Figure 1.17
0
1
0
0
1
1
1
0
La somme disjonctive confère à l’ensemble {0,1} une structure de groupe abélien, car elle est associative, commutative, admet un élément neutre (0), et chaque élément a un symétrique : lui même. Or, le produit logique est associatif, commutatif et distributif par rapport à la somme disjonctive ; ces propriétés entraînent que la somme disjonctive et le produit logique munissent l’ensemble {0,1} d’une structure d’anneau abé lien, qui, en outre, est unitaire ; 1 est l’unité (ou élément neutre du produit logique). Il est alors à remarquer que, 1 admettant un symétrique pour l’opération pro duit logique, l’anneau abélien unitaire défini ci-dessus est un corps.
1.3.2 Tables de vérité Soit une fonction booléenne des variables a, b, c (valant 0 ou 1) :
#
#
#
5 1a # b 1 c2 # a # b 1 b # c # 1a 1 c2.
On la ramène par la formule de de Morgan à la forme :
# # 5 3 (a 1 b) # c 4 # a # b 1 a # b # c
© Dunod – Toute reproduction non autorisée est un délit.
#
#
5 a # b # c 1 a # b # c 5 m 4 1 m 2.
Montrons que l’on aurait pu obtenir directement sa décomposition canonique en utilisant un tableau de valeurs, où les variables a, b, c prennent toutes les valeurs possibles. Dans la colonne 15, on a fait la somme logique des valeurs contenues dans les colonnes 11 et 14, un calcul direct ayant été pratiqué à partir de la forme initiale de f.
#
On retrouve bien : 5 m4 1 m2 ; ce sont les deux seuls mintermes à apparaître dans la décomposition.
21
Chapitre 1 • Structures ordonnées Applications des treillis
123456 7
8
9
10
11
12
13
14
15 16
# # # # # a b c a b c a # b a # b 1 c a # b 1 c a # b 1 ab 1 c 2 # a # b b # c a 1 c b # c # 1 a 1 c 2 f a # b # c 000111 0 0 1 0 0 0 1 0 0 m0 001110 0
1
0
0
0
0
1
0
0 m1
010101 0
0
1
0
0
1
1
1
1 m2
011100 0
1
0
0
0
0
1
0
0 m3
100011 0
0
1
1
1
0
0
0
1 m4
101010 0
1
0
1
0
0
1
0
0 m5
110001 1
1
0
0
0
1
0
0
0 m6
111000 1
1
0
0
0
0
1
0
0 m7
1.3.3 Minimisation d’une fonction booléenne
Considérons deux fonctions des variables binaires 1 x1, x2, c, xn 2 . On dit que la fonc tion f implique la fonction g et l’on écrit : f 1 g , si f 5 1 entraîne g 5 1, c’est- à-dire si f est une partie de g : les mintermes de f figurent aussi dans ceux de g. Soit alors la fonction :
#
#
F 5 x1 # x2 1 x2 # x1 1 x1 # x3. Si l’on choisit des valeurs telles que l’un des produits x1 # x2 ou bien x 2 # x 1 ou bien # x1 x3, soit égal à 1, on a évidemment F 5 1. La fonction F est impliquée par l’un
quelconque de ces produits.
Considérons alors la fonction 1 x1, x2 2 5 x1 # x2 ; si l’on y fait x1 5 1 ou bien x2 5 1, on obtient : 1 1, x2 2 5 x2 ; 1 x1, 1 2 5 x1 ;
la fonction f n’est impliquée ni par x1, ni par x2 ; en effet : 1 x1 5 1 1 5 1 ; 1 x2 5 1 2 1 5 1.
Comme f implique F et f n’est impliqué ni par x1, ni par x2, on dit que f est un constituant premier (ou encore monôme premier) de F. Au contraire, si l’on fait x3 5 1 dans F, on obtient :
#
#
F 1 x3 5 1 2 5 x1 # x2 1 x2 1 x1
et, si l’on construit le tableau des valeurs (voir tableau ci-dessous),
22
1.3 L’algèbre de Boole binaire
x1 0 0
#
#
x2 F 5 x1 # x2 1 x2 1 x1 # # 0 5 0 1 1 1 1 5 1 1
1
0
1
1
# # # # 1 1 1 0 5 1 # #
5 0
1 0 1 1 5 1
5 1
1 0 1 0 5 1
5 0
on s’aperçoit que : 1 x3 5 1 2 1 F.
C’est que c 5 x2 # x3 ou u 5 x1 # x3 ne sont pas des constituants (monômes) pre miers de F. Il est important de pouvoir obtenir la liste de tous les constituants (monômes) premiers d’une fonction booléenne. Considérons, à cet effet, les fonctions :
# #
1 5 C # y 1 C
2 5 A # x 1 B # x.
Dans la fonction f1, C est un produit booléen (monôme) qui ne comporte la variable y sous aucun de ses aspects. On peut écrire : # 1 5 C # ( 1 1 y ) 5 C
et seul le constituant C est premier, car C # y ( C. On en déduit que :
1) dans une liste de constituants (monômes), on peut simplifier en supprimant tout constituant qui est contenu (inclus) dans un autre. Supposons maintenant que dans la fonction f2 , ni A ni B ne contiennent x ou x. On a :
# #
© Dunod – Toute reproduction non autorisée est un délit.
A #x 5 1 3 A 1 x 5 0 B#x 5 1 3 B 1 x 5 0
d’où : Or :
#
#
3 ( A 1 x 5 0 ) ou ( B 1 x 5 0 )4 3 3 ( A # x 5 1 ) ou ( B # x 5 1 )4 1 F 5 1
donc :
#
#
#
#
3 ( A 1 x 5 0 ) ou ( B 1 x 5 0 )4 3 3 ( A 1 x ) # ( B 1 x )4 5 0 ;
#
#
3 1A 1 x2 # 1B 1 x2 5 04 1 F 5 1
23
Chapitre 1 • Structures ordonnées Applications des treillis
ou :
#
#
1A # B 1 A # x 1 B # x 5 02 1 F 5 1
ou encore :
#
#
#
3 1 A 1 B 2 # 1 A 1 x 2 # 1 B 1 x 2 5 1 4 1 F 5 1.
En faisant le produit, on obtient :
#
On en déduit donc que :
#
1 A # B 1 A # x 1 B # x 5 1 2 1 F 5 1.
#
2) Lorsqu’une fonction se présente sous la forme A # x 1 B # x, on peut lui ajouter # A # B, nommé « consensus » de A # x 1 B # x, comme constituant (ce qui ne présente d’intérêt que s’il n’est pas identiquement égal à 0). Ce sont ces remarques qui constituent le fondement de la « méthode de Quine » pour l’obtention des constituants premiers. Leur application systématique et itérative permet de calculer la liste complète des constituants premiers d’une fonction. Reprenons à cet effet la fonction :
#
#
F 5 x1 # x2 1 x2 # x3 1 x1 # x3 Elle n’est pas simplifiable par la première règle. Écrivons-la sous la forme d’un tableau à double entrée pour faciliter l’application de la seconde. On a ainsi le tableau I, qui permet de comparer deux à deux les constituants initiaux de F et de calculer, selon la règle 2), des constituants supplémentaires. Ainsi, si l’on pose : A # x 5 x 1 # x 2 , c’est-à-dire A 5 x 1 et x 5 x 2,
on a aussi :
B # x 5 x 3 # x 2 , c’est-à-dire B 5 x 3 et x 5 x 2, d’où l’apparition du constituant (consensus) : A # B 5 x1 # x3. De même : x1 # x2 et x1 # x3 donnent le consensus : x2 · x3 . II
I
x1 • x2 I II
x1 • x3
x1 • x3
x2 • x3
x1 • x3
x1 • x3 x2 • x3
x2 • x3 x3
x2 • x3 x1 • x3
24
x2 • x3
x3
1.3 L’algèbre de Boole binaire
On n’écrirait, évidemment pas, le constituant supplémentaire s’il était déjà contenu dans F , en raison de l’idempotence ; on ne l’écrirait pas non plus s’il était contenu dans un des constituants déjà connus ou s’il était identique à l’un de ces constituants. Après l’achèvement du tableau I on applique la règle 1), mais ici elle ne fournit pas de simplification ; on a alors :
#
#
#
F 5 x1 # x2 1 x2 # x3 1 x1 # x3 1 x2 # x3. Avec les constituants de cette liste, on forme le tableau II ; on trouve, à deux reprises, grâce à l’application de la règle 2), le constituant nouveau x3, que l’on n’écrit qu’une fois. La règle de simplification 1) s’applique maintenant : en effet, x2 # x3 , x1 # x3 , x1 # x3 et x2 # x3 sont contenus dans x3 et il reste donc :
#
F 5 x1 # x2 1 x3. On pourrait constituer un tableau III pour examiner ces deux constituants, mais c’est inutile, car, la fonction n’étant pas de la forme f2, la règle 2) ne peut plus s’appliquer. C’est à ce moment que l’on a la liste de tous les constituants premiers de F.
Remarque. Une autre manière commode, dite « méthode de double duale », d’obtenir la liste des constituants premiers consiste à : 1) prendre le complément F de F ; 2) développer ; supprimer les termes nuls ou redondants (c-à-d absorbés) . 3) prendre alors le complément F de F et supprimer les termes nuls ou redondants. On peut prouver que l’expression obtenue après développement, puis réduc tion, constitue la liste des constituants premiers de F. Exemple.
#
#
Soit F 5 a # b # c 1 a # b # c 1 b # c . Calculons F : # # # # # # # # F 5 ( a 1 b 1 c ) # [( a 1 b 1 c ) # ( b 1 c ) \ 5 ( a 1 b 1 c ) # [( a # b 1 c )\
© Dunod – Toute reproduction non autorisée est un délit.
# # # # # 5 a # c 1 a # b 1 b # c 1 a # b # c 5 a # c 1 a # b 1 b # c, car a # b absorbe a # b # c Puis calculons F, qui n’est autre que F :
# # # # # F 5 F 5 1a 1 c2 # 1a 1 b2 # 1b 1 c2 5 1a 1 c2 # 1b 1 a # c2 #
#
5 a # b 1 b # c 1 a # c. # En fait, cette méthode équivaut à la précédente car G 5 1 1 2 donne :
#
#
G 5 1 # 2 5 C # ( A # B 1 A # x 1 B # x )
#
#
#
puis G 5 G 5 C 1 A # B 1 A # x 1 Bx, comme en page 24 on a ici obtenu, pour la fonction F, sa forme minimale. Mais ce n’est pas toujours le cas. Soit, par exemple, de nouveau :
# # F 5 a # b # c 1 a # b # c 1 b # c ;
25
Chapitre 1 • Structures ordonnées Applications des treillis
le lecteur pourra vérifier facilement, par la méthode indiquée plus haut, la liste complète des constituants premiers de cette fonction :
#
#
F 5 a # b 1 a # c 1 b # c ; or, cette liste n’est pas la forme minimale de F. En effet, si nous développons F sous la forme canonique disjonctive (somme de mintermes), nous trouvons :
# # # F 5 a # b # c 1 a # b # c 1 a # b # c 1 a # b # c .
# Si maintenant nous développons : Fr 5 a # b 1 a # c, sous forme canonique disjonctive nous aurons également : #
#
#
Fr 5 a # b # c 1 a # b # c 1 a # b # c 1 a # b # c ; ainsi Fr 5 F.
c’est donc que les deux constituants premiers a # b et a # c suffisent à représenter la fonction F. Pour mieux nous en rendre compte, dressons un tableau à double entrée dans lequel nous mentionnerons, en colonnes, les mintermes de la forme canonique et, en lignes, les constituants premiers. Marquons d’une croix, sur a • b•c a • b•c a•b•c a•b•c chaque ligne, les mintermes que l’on obtiendrait en développant a•b chacun des constituants premiers. a•c On constate que les mintermes a # b # c et a # b # c ne sont contenus, b•c respectivement, que dans a # b et # # # # # a c ; au contraire, les mintermes a b c et a b c peuvent être obtenus respectivement, soit par développement de a # b et a # c, soit encore par développement de b # c.
Les constituants premiers a # b et a # c sont des constituants (premiers) essentiels ; l’absence de l’un d’entre eux dans la forme minimale n’est pas possible, puisqu’ils engendrent des mintermes qui ne sont contenus dans aucun autre constituant premier. Il se trouve que les constituants essentiels suffisent ici à représenter la fonction et que b # c est un constituant premier redondant, donc qu’il ne faut pas faire figurer dans la forme minimale. Mais il arrive souvent que, pour obtenir une forme mini male, on doive employer, outre les constituants essentiels, un certain nombre de constituants non essentiels ; le problème qui consiste à trouver un ensemble minimal de ces constituants n’est guère plus difficile, mais sortirait de notre sujet (il s’agit du problème de « recouvrement », bien connu en recherche opérationnelle). Notons qu’une même fonction peut admettre plusieurs formes minimales (cf ci-dessous). Remarque. La manipulation des formules de l’algèbre de Boole exige parfois des calculs très longs. En effet, les problèmes rencontrés sont le plus souvent NP-complets (le lecteur se reportera au chapitre 2). Nous verrons, plus loin dans cet ouvrage, dans la partie définissant ces problèmes, qu’ils ne peuvent pas être résolus sans avoir recours à des méthodes énumératives très lourdes en temps de calcul.
26
1.4 Applications élémentaires
Cependant, pour des exemples particuliers de petite taille, un raisonnement spéci fique au problème considéré permet de s’affranchir d’une grande part de l’énumé ration. Voici un exemple où le raisonnement permet d’éviter des longueurs.
#
#
#
#
#
#
Soit : F 5 ( a 1 b ) # ( c 1 d ) # ( a # b ) 1 ( a 1 b 1 c ) # ( c 1 d ) 1 c # ( a 1 b ) . On obtient :
#
#
#
#
#
F 5 a # b # c # d 1 a # b # c puis F 5 F 5 b 1 a # c 1 a # d 1 c # d 1 a # c. On voit facilement que F ne contient que trois mintermes : a # b # c # d, a # b # c # d et a # b # c # d (soit m9, m3 et m2); d’où F en comporte treize. Il serait donc très fastidieux d’avoir recours à un tableau tel que celui de la page 26 pour cher cher les constituants essentiels et la forme minimale. Mais la simple ins pection de la liste des constituants premiers permet d’éviter ici tout calcul : b est évidemment un constituant essentiel ; a # c également, puisque a # b # c # d n’est couvert par aucun autre constituant ; de même a # c, à cause de a # b # c # d. Restent les constituants premiers a # d et c # d ; un développement ne faisant apparaître que des mintermes non couverts par b ne peut admettre b comme facteur ; d’où : a # b # d et b # cd. Mais alors, tout développement du premier (resp. second) constituant, non couvert par a # c (resp. a # c), ne peut admettre c (resp. a) comme facteur. L’un ou l’autre, ne pouvant plus servir à couvrir que le minterme a # b # c # d, peut être choisi pour être adjoint aux constituants essentiels. Ainsi y a-t-il deux formes minimales :
# # # # # # F1 5 b 1 a # c 1 a # c 1 a # d 5 b 1 a # 1 c 1 d 2 1 a # c, # # # # # # F2 5 b 1 a # c 1 a # c 1 c # d 5 b 1 a # c 1 c 1 a 1 d 2 .
© Dunod – Toute reproduction non autorisée est un délit.
1.4 Applications
élémentaires L’algèbre de Boole se prête à l’analyse et à la synthèse des circuits logiques, s’applique en électricité, en électronique et en automatique, à l’étude de certaines questions de logique, etc. Nous allons voir quelques-unes de ses applications élémentaires en recherche opérationnelle, notamment à des problèmes combinatoires. NB. Nous voulons simplement montrer, au travers des exemples suivants, comment l’algèbre de Boole permet de résoudre certains problèmes de la recherche opé rationnelle. Les méthodes présentées ne sont pas nécessairement celles utilisées en pratique pour la résolution de ces problèmes. Nous verrons en effet, au long de cet ouvrage, qu’il peut exister des méthodes plus efficaces que celles présentées ici.
1.4.1 Étude d’un itinéraire Une personne veut, partant de la ville A et y revenant, choisir parmi les moyens de transport ceux qui lui permettront de se rendre dans les villes B, C et D, de manière à ce que son absence totale soit de durée minimale.
27
Chapitre 1 • Structures ordonnées Applications des treillis
Elle peut partir de A pour B par bateau à 8h00, la durée du trajet étant de trois heures ou bien par avion, à 9h00, le trajet ne durant alors qu’une heure. Elle pourra revenir de B vers A par ces moyens respectifs en partant à 17h00 et 21h00, les durées de trajet étant inchangées. Entre B et C, elle peut prendre le train, qui met deux heures pour effectuer le trajet et part à 10h30 ; elle peut, par le même moyen, revenir de C vers B, en partant à 13h00. Entre B et D existe un service ferroviaire : départ à 11h30, retour à 14h30, durée du trajet : deux heures, et aussi un service aérien : départ à 12h00, retour à 14h00 durée du trajet : une heure. Enfin, entre C et D existe un train express, qui part de D à 12h30 et de C à 14h00, et dont le trajet dure une heure dans chaque sens. Pour être plus concrets, établissons un schéma des liaisons (figure 1.18) et un tableau récapitulatif des horaires. Affectons des variables booléennes latines aux tra jets AB, BC, BD, CD et des variables booléennes grecques aux trajets inverses. Horaires A B
a 08h00 11h00 B C c
B D
11h30 13h30 D C
a 09h00 10h00 b 10h30 12h30
a 20h00 17h00 b 15h00 13h00
a 22h00 21h00
c 12h00 13h00 d 12h30 13h30
g 15h00 14h00 d 15h00 14h00
g 16h30 14h30
Figure 1.18
Il est évident (figure 1.18) qu’il y a deux sens de circulation : ABCDBA ou ABDCBA. On pourrait évidemment énumérer toutes les solutions possibles en développant les expressions :
#
#
#
1a 1 a2 # b # d # 1g 1 g 2 # 1a 1 a2
#
#
#
et 1 a 1 a 2 # 1 c 1 c 2 # d # b 1 a 1 a 2
qui correspondent, respectivement, à ces deux sens ; on trouverait ainsi 16 possibi lités. Mais étudions plutôt les suites de deux lettres de façon à faire apparaître les changements de date si l’emploi d’un moyen oblige à attendre le lendemain pour emprunter le suivant.
28
1.4 Applications élémentaires
Nous indiquerons ces changements de date par une barre verticale : sens ABCDBA
sens ABDCBA parcours ABD : ac ; ac ; ac ; a c
parcours ABC : ab ; a k b
BCD : bd
CDB : d k g ; d k g
BDC : c k d ; c k d DCB : d k b CBA : ba ; ba
DBA : ga ; g a ; ga ; ga ;
Dans la deuxième colonne (sens ABDCBA), nous remarquons qu’il y a toujours deux changements de date. Dans la première colonne, il n’y en a qu’un si nous empruntons la suite ab. Il reste finalement à examiner les suites : abdga ; abdg a ; abd g a ; abd g a. En utilisant les moyens indiqués, le voyageur pourra partir un jour quelconque et de retour le lendemain. Il n’est pas difficile de voir que les suites : abd ga et abd g a sont équivalentes, comme faisant partir le voyageur le jour J, à 09h00 et le faisant, toutes deux, rentrer le jour J 1 1, à 20h00. J Ville Solution
d
A
B
C
D
a
d
a
d
J 1 B A
D a
d a avion
d
a
abd 09h00 10h00 10h30 12h30 14h00 15h00 14h00 15h00 17h00 20h00 abd 09h00 10h00 10h30 12h30 14h00 15h00 14h30 16h30 17h00 20h00
© Dunod – Toute reproduction non autorisée est un délit.
avion
train
train
train
bateau
La seconde solution est plus économique, mais la première procure un arrêt plus long dans la ville B, au retour.
1.4.2 Choix d’investissements Un atelier reçoit trois commandes C1, C2, C3, qui peuvent être exécutées au moyen d’au plus cinq machines M1, M2, M3, M4 et M5. On désigne par ci (i 5 1, 2, 3) la variable booléenne égale à 1 si la commande Ci est exécutée (et à 0 sinon) ; de même la variable booléenne xj 1 j 5 1, 2, c, 5 2 est égale à 1 si la machine Mj est utilisée (et à 0 sinon). 29
Chapitre 1 • Structures ordonnées Applications des treillis
Pour exécuter C1, on peut avoir recours aux machines M1 et M3 ou à la machine M4, ce qui peut s’écrire :
#
c1 5 x1 # x3 1 x4. On a, de même, pour C2 et C3 :
# #
c2 5 x2 # x4 1 x1 # x5,
c3 5 x2 # x5 1 x3. D’autre part, une contrainte technique t1 exige que l’on utilise x2 ou que l’on n’utilise pas x4 :
#
t1 5 x2 1 x4 5 x2 # x4 ; une autre contrainte technique peut s’écrire :
#
#
t2 5 x1 # x2 1 x4 # x5 1 x2 # x3. Pour que les commandes soient honorées, il faut et il suffit que l’on ait : c1 5 c2 5 c3 5 1 ; pour que les contraintes soient observées, il faut et il suffit que :
t1 5 t2 5 1. Tous les ensembles de cinq valeurs binaires (x1, x2, x3, x4, x5) tels que :
F 5 c 1 # c 2 # c 3 # t1 # t2 5 1 sont solutions du problème. Imaginons maintenant que l’achat et l’installation des machines entraîne les dépenses suivantes (en milliers d’unités monétaires) : M1 7
A1
M2 5
M3 3
M4 6
M5 2
On désire minimiser la dépense totale I, c’est-à-dire : I 5 a Aj # xj. 5
j51
Il importe donc de trouver tous les constituants premiers de F 1 x1, x2,c, x5 2 et de calculer, pour chacun d’eux, la valeur de I, de manière à pouvoir sélection ner la plus faible. En effet, un constituant premier implique la fonction (si ce constituant vaut 1) et il n’est impliqué par aucun autre constituant impliquant lui-même la fonction, si bien que les ensembles de machines représentés par les constituants premiers sont les ensembles minimaux qui couvrent la fonction, donc permettent les fabrications, tout en assurant le respect des contraintes. Cal culons d’abord F :
#
#
#
#
#
#
F 5 1 x1 # x3 1 x4 2 # 1 x2 # x4 1 x1 # x5 2 # 1 x2 # x5 1 x3 2 # 1 x2 1 x4 2 # 1 x1 # x2 1 x4 # x5 1 x2 # x3 2
#
#
#
5 x2 # x4 # x5 1 x2 # x3 # x4 1 x1 # x2 # x3 # x5 1 x1 # x2 # x3 # x4 # x5,
30
1.4 Applications élémentaires
puis, par une méthode quelconque, par exemple celle de Quine, constatons que les constituants x1 # x2 # x3 # x5 et x 1 # x 2 # x 3 # x 4 # x 5 donnent le constituant x1 # x3 # x4 # x5 (qui est le consensus de ces deux termes). Or x1 # x2 # x3 # x4 # x5 est inclus dans x1 # x3 # x4 # x5.
D’où la liste des constituants premiers de F :
#
#
#
F 5 x 2 # x 4 # x 5 1 x 2 # x 3 # x 4 1 x 1 # x 2 # x 3 # x 5 1 x 1 # x 3 # x 4 # x 5.
Seules les valeurs affirmées nous intéressent dans chacun de ces constituants premiers pour établir les prix, car elles seules impliquent des achats de machines ; d’où :
Ai
x2 # x4 # x5 x2 # x3 # x4 x1 # x3 # x5 # x4
7 x1
1
5 x2 1 1
3 x3 1 1
6 x4 1 1
2 x5 1 1
Total 13 14 12
On a volontairement omis le troisième de ces constituants premiers : il conduirait à acquérir les machines M1, M2, M3 et M5 alors qu’avec le quatrième constituant, il suffit d’acquérir M1 et M3 et M5 (il y figure x4 , ce qui signifie qu’on n’a pas à acheter M4). La dernière solution est la moins coûteuse : son coût est I = 12 (au lieu de 13 et 14 pour les deux autres). On vérifie bien que, pour : x1 5 x3 5 x5 5 1, x2 5 x4 5 0, on a :
# # c2 5 x2 # x4 1 x1 # x5 5 1 # c3 5 x2 # x5 1 x3 5 1 # t1 5 x2 1 x4 5 1 # # # # #
© Dunod – Toute reproduction non autorisée est un délit.
c1 5 x1 # x3 1 x4 5 1
t2 5 x1 x2 1 x4 x5 1 x2 x3 5 1
1.4.3 Fonction à variables binaires à optimiser sous contraintes Le chapitre 8 consacré à la programmation linéaire, définira le cadre d’application et la terminologie utilisée pour toute une famille de problèmes appelés programmes linéaires. Les méthodes permettant de résoudre l’exemple suivant (programme linéaire en variables booléennes) seront reprises aux chapitres 4 et 9. Nous exposons ci-dessous la méthode booléenne de Faure et Malgrange. Il s’agit d’une des toutes premières méthodes de recherche arborescente (1962). Elle utilise 31
Chapitre 1 • Structures ordonnées Applications des treillis
une stratégie « gourmande » dans une exploration « en profondeur d’abord » : ces termes seront précisés aux chapitres 3 et 4.
Variables booléennes (binaires) Soit à maximiser la fonction économique : F 5 3x1 + 5x2 – x3 + 2x4, où x1, x2, x3, et x4 sont des variables ne pouvant prendre que les valeurs 0 ou 1, sachant qu’elles sont soumises aux inégalités suivantes : 3x1 1 4x2 2 2x3 2x1 2 x2 1 3x3 4x1 2 x2 2 x3 exprimant les contraintes du problème.
1 2 1
x4 x4 2x4
< <
1 telle que pour toute instance du problème on ait : < r (ou bien : C* C* < r pour un problème de maximisation). Il est d’autant meilleur que r est proche Cˆ de 1 ; pour un algorithme optimal on a : r = 1. Avec ces algorithmes, nous serons assurés que, dans le pire des cas, la solution proposée sera éloignée au plus d’un facteur r de la solution optimale. Ces algorithmes répondent donc parfaitement à la problématique posée puisqu’ils sont de faible complexité et que l’erreur commise sur le coût de la solution obtenue est toujours bornée par une constante. Cependant une telle garantie n’est pas toujours aisée à obtenir ; il est même montré, qu’elle ne peut pas exister pour certains problèmes. Le lecteur pourra consulter le livre de Hochbaum cité dans la bibliographie pour les résultats concernant l’approximabilité des problèmes NP-difficiles. Dans le chapitre consacré au problème du voyageur de commerce et aux méthodes arborescentes, un algorithme approché polynomial avec garantie relative de performance est présenté. De nombreux autres exemples d’algorithmes approchés, polynomiaux, avec garantie relative de performance peuvent être trouvés dans la « littérature ».
(1) en pratique difficile, voire impossible à obtenir… 52
2.2 Complexité des Problèmes
Exemple d’un algorithme polynomial avec garantie de performance pour le problème du voyageur de commerce euclidien Nous allons ici donner l’exemple d’un algorithme polynomial ayant une garantie relative de performance pour le problème du voyageur de commerce dans le cas où les distances vérifient les inégalités triangulaires (cf. ci-dessous). Le problème du voyageur de commerce ainsi qu’un algorithme (non polynomial) fournissant une solution optimale sont présentés dans la section 4.10.1. Nous considérons G 5 ( X, A ) un graphe non orienté complet de n sommets où chaque arête [i, j] est valuée par un entier naturel cij, appelé coût de l’arête [i, j]. On suppose que les coûts satisfont l’inégalité triangulaire : pour tout triplet de sommets {i, j, k} on a : cij # cik 1 ckj. Le problème du voyageur de commerce consiste à déterminer un cycle hamiltonien de longueur minimale. L’instance suivante, comportant six sommets {a, b, c, d, e, f }, servira d’illustration pour le déroulement de l’algorithme. Voici le tableau des coûts qui est symétrique : b 1
a b c d e
c 2 3
d 3 4 2
e 2 4 2 1
f 2 2 3 2 1
L’algorithme est constitué de trois étapes, cf. Fig 2.2 ci-dessous : La première consiste en la détermination d’un arbre couvrant de coût minimal qui s’effectue en temps polynomial (le lecteur pourra se référer à la section 4.8). L’ensemble d’arêtes F 5 5 3 a, b 4 , 3 a, c 4 , 3 a, e 4 , 3 e, f 4 , 3 e, d 46 forme un arbre H 5 ( X, F ) couvrant G de coût 7, minimal, pour l’exemple traité.
© Dunod – Toute reproduction non autorisée est un délit.
1
a
f 2
b
c
2
f
a
1
e
b
f
a b
e
1
e
d arbre H
c
d
graphe H
d
c cycle C
Figure 2.2 La construction d’un cycle hamiltonien c
La seconde étape consiste à construire le graphe orienté symétrique Hr qui est déduit de H en remplaçant chacune des ses arêtes [x, y] par les deux arcs (x, y) et (y, x). Puis on construit dans Hr un circuit eulérien E (c-à-d empruntant tous les arcs de Hr une fois et une seule). Dans notre exemple : E 5 ( a, b, a, c, a, e, d, e, f, e, a) , qui a pour coût 14. 53
Chapitre 2 • Notions de complexité
Dans la dernière étape on construit un cycle hamiltonien à partir du circuit E. Ce cycle est obtenu en considérant uniquement la première occurrence de chaque sommet dans E puis en ajoutant en dernière position le sommet initial (ici : a). Le cycle C 5 ( a, b, c, e, d, f, a ) est la solution approchée, son coût est : Ĉ 5 11. Le coût de l’optimum (inconnu ici) est noté C*. Nous allons montrer que pour toute instance du problème du voyageur de commerce euclidien l’algorithme précédant construit une solution de coût Ĉ vérifiant Cˆ # 2 : notons c(H) le coût d’un arbre couvrant de coût minimal. Le coût du C* circuit eulérien E est : l ( E ) 5 2 c ( H ) . Puisque que tous les coûts vérifient l’inéˆ galité triangulaire, nous avons : l ( E ) $ C; en effet : l ( E ) 5 cab 1 ( cba 1 cac ) 1 ˆ ( cca 1 cae ) 1 ced 1 ( cde 1 cef ) 1 ( cfe 1 cea ) $ cab 1 cbc 1 cce 1 ced 1 cdf 1 cfa 5 C. D’autre part tout cycle hamiltonien est la réunion d’une chaîne élémentaire P couvrant les sommets de G et de l’arête [k, l] joignant les deux extrémités k et l de cette chaîne. Toute chaîne qui couvre les sommets de G est aussi un arbre couvrant ; ainsi en notant l(P) le coût de la chaîne P, nous avons : c ( H ) # l ( P ) puisque H est un arbre couvrant de coût minimal. Comme les valuations (coûts) des arêtes sont positives, tout cycle hamiltonien C a un coût l ( C ) 5 l ( P ) 1 ckl qui vérifie : l ( C ) $ l ( P ) $ c ( H ) . En particulier un cycle hamiltonien de longueur minimale est tel que C* $ c ( H ) . En regroupant les inégalités nous obtenons : Cˆ # l ( E ) 5 2 c ( H ) # 2 C* et ainsi Cˆ Ĉ 11 = = 1, 22. # 2. En fait, ici, C* 5 9 avec ( a, b, f, e, d, c, a) et C* C* 9 On peut montrer que l’algorithme permettant d’obtenir cette solution approchée est polynomial ; nous avons donc un algorithme polynomial avec une garantie relative de performance de rapport 2 pour le problème du voyageur de commerce euclidien (ce problème étant prouvé NP-difficile, il n’exite pas d’algorithme polynomial fournissant une solution optimale, sauf si P 5 NP : ce qui est très improbable !).
Autre exemple : un algorithme polynomial avec garantie de performance pour le problème du bin packing
Considérons n objets de même forme linéaire, dont les tailles a1, c, an vérifient : 0 , ai , A. On cherche à placer ces objets dans des boîtes de taille A de façon à utiliser un nombre minimal de boîtes. Par exemple ces objets peuvent être des livres ; la ‘taille’ de chacun est son épaisseur ; on désir les ranger dans des éta gères, chacune de longueur A ; on veut minimiser le nombre d’étagères à acheter. Ce problème connu sous le nom de bin packing (mise en boîte) est NP-difficile. L’algorithme suivant permet d’obtenir une solution approchée : les objets sont placés un à un dans les boîtes suivant l’ordre arbitraire 1, c, n. L’étape i ( i 5 1, c, n ) de l’algorithme consiste à placer l’objet i dans une des boîtes déjà partiellement remplie (sauf pour l’objet 1 rangé dans une boîte vide), si cela est possible (la somme des tailles des objets placés dans chacune des boîtes ne doit pas dépasser la capacité A). Si ce n’est pas possible, l’objet i est placé dans une nouvelle boîte.
54
2.2 Complexité des Problèmes
Nous allons montrer que cet algorithme très simple possède une garantie relative de performance. 1 n Les boîtes étant de capacité A, une solution optimale vérifie C* $ a i 51ai, A car chaque objet est placé dans une boîte. Maintenant nous montrons une propriété de l’algorithme : à toute étape de l’exécution de l’algorithme, il est impossible que A deux boîtes aient leur contenu inférieur ou égal à : en effet, si tel était le cas, les 2 objets placés dans l’une de ces deux boîtes auraient du être placés dans l’autre boîte. Ainsi, lorsque l’exécution de l’algorithme est achevée, au plus une boîte peut avoir A un contenu inférieur ou égal à , les Cˆ 2 1 autres boîtes ayant un contenu supérieur 2 Cˆ 2 1 A 1 n à , nous avons ainsi : , a ai . En regroupant les inégalités, nous obte2 2 A i 51 ˆ C21 1 n nons : , a ai # C* ; alors en divisant chaque membre par Cˆ il vient : 2 A i 51 C* C* Cˆ 1 1 1 # 2. 2 ˆ # ˆ et, Cˆ et C* étant entiers : # ˆ , soit C* 2 2C 2 C C Dans l’exemple, au pire le nombre d’étagères achetées sera toujours inférieur au double du nombre minimal. En fait, on peut montrer que le rapport d’approximation de cet, algorithme est de l’ordre de 1, 7. L’algorithme est de complexité polynomiale, nous avons donc un algorithme polynomial avec une garantie relative de performance pour le problème du bin packing (ce problème étant NP-difficile, il n’existe pas d’algorithme polynomial pour le résoudre exactement sauf si P 5 NP ) . Le lecteur pourra également se référer au chapitre 4, à la fin du paragraphe 10 de cet ouvrage où un deuxième algorithme polynomial avec une garantie relative de performance pour le problème du bin packing est présenté.
© Dunod – Toute reproduction non autorisée est un délit.
Les métaheuristiques Les métaheuristiques les plus fréquemment utilisées pour fournir des solutions approchées à des problèmes NP-difficiles ont pour principal attrait d’être suffisamment génériques pour s’adapter facilement à de nombreux problèmes. Si ces heuristiques fournissent généralement assez rapidement des solutions approchées, elles ne fournissent cependant aucune garantie sur l’écart entre le coût de la solution fournie et le coût d’une solution optimale. Des études statistiques faites sur les métaheuristiques telles que le recuit simulé et la recherche “tabou” ont montré, pour certains types de problèmes, la bonne qualité des solutions obtenues. Le recuit simulé et la recherche tabou sont deux méthodes de voisinage : c’est-à-dire des méthodes dans lesquelles, à chaque itération, à partir d’une solution courante S, un voisinage V(S) de cette solution est déterminé. Ensuite, une nouvelle solution S’ appartenant à ce voisinage V(S) est choisie, suivant un critère probabiliste. Contrairement aux classiques méthodes dites “de descente”, la nouvelle solution courante S’ peut être de 55
Chapitre 2 • Notions de complexité
moins bonne qualité que la solution précédente S. Pour chacune de ces deux méthodes, seuls deux paramètres sont à déterminer : la définition de voisinage dépendant uniquement du problème à résoudre, et la taille de la liste tabou pour la recherche tabou ou bien la vitesse de décroissance de la « température » pour le recuit simulé. Le lecteur est invité à consulter le chapitre 11 pour trouver de nombreux exemples d’application de ces métaheuristiques. D’autres méthodes ont été conçues avec de mêmes objectifs, mais sans être toujours plus efficaces que la recherche tabou ou le recuit simulé : méthodes neuronales, algorithmes génétiques, méthode de bruitage, colonies de fourmis : cf. le chapitre 11. Une tendance actuelle est de combiner des métaheuristiques entre elles pour obtenir des méthodes hybrides qui se révèlent parfois plus efficaces pour certaines classes de problèmes.
56
Exercices
EXERCICES
*2.1 Le tri par transpositions et sa complexité On veut trier, par ordre croissant, n nombres rangés dans un tableau (à une seule ligne, ou « vecteur »), par transpositions successives. Par exemple pour trier : 1
2
3
4
5
4
9
1
5
4
, on opère comme suit :
9
1
4
5 . 4 : on les transpose
4
5
9
9
1
5 , 9 : on ne les transpose pas
1
4
9 . 1 : on les transpose
5
5
1
9
fin de la 1ère phase
En fin de la 1ère phase, le nombre le plus grand (ici 9) est à sa place définitive : la case n. Puis on entreprend une seconde phase avec les n 2 1 nombres des cases 1 à n 2 1 (ici n 2 1 5 3) : 4
5
1
4
4 , 5 : on ne transpose pas
5
1
4
1
5
5 . 1 : on les transpose
© Dunod – Toute reproduction non autorisée est un délit.
En fin de seconde phase, le second plus grand nombre est à sa place. Ici, il n’y a que 3 phases (n 2 1 5 3) 4
1
1
4 . 1 : on transpose Ce tableau trié par ordre croissant est donc :
4 FIN.
1
4
5
9
1) Évaluer le nombre de comparaisons entre deux nombres effectuées dans l’exemple. Puis donner la complexité de ce tri, avec n nombres. 2) Écrire une procédure générale pour le tri par transpositions de n nombres.
57
Chapitre 2 • Notions de complexité
**2.2 Complexité du tri par fusion Considérons 2 tableaux T1 et T 2 comportant n1 et n2 éléments, respectivement. Les éléments des deux tableaux sont déjà triés, suivant un ordre croissant par exemple. L’objectif est de fusionner ces deux tableaux en un tableau T unique contenant les n 5 n1 1 n2 éléments de T1 et T 2, T devant être lui aussi trié suivant le même ordre croissant. Considérons l’algorithme suivant effectuant la fusion de T1 et T 2 (par la suite, nous noterons T 5 T1 { T 2 le résultat de cette opération) : 1. i1 d 1 ; i2 d 1 ; i d 1 ; 2. Tant que i1 < n1 et i2 < n2 3. si T1 1 i1 2 < T 2 1 i2 2 alors : T ( i ) d T1 ( i1 ) ; i1 d i1 1 1 4. sinon : T ( i ) d T 2 ( i2 ) ; i2 d i2 1 1 5. i d i 1 1 6. si i1 < n1 alors tant que i1 < n1 : T ( i ) d T1 ( i1 ) ; i1 d i11 1 ; i d i 1 1 7. sinon tant que i2 < n2 : T ( i ) d T 2 ( i2 ) ; i2 d i2 1 1 ; i d i 1 1 1) Appliquer cet algorithme aux tableaux suivants : 7
5
2 T1
8
4
1
3
9
6
T2
2) Après avoir montré que l’algorithme effectue correctement la fusion de deux tableaux triés en un seul, montrer que la complexité dans le pire des cas de cet algorithme est O(n). Quelles sont les complexités dans le meilleur des cas et dans le cas moyen ? Considérons maintenant un tableau T contenant n éléments. L’objectif est de trier les éléments de T suivant un ordre croissant par exemple. n n Si n > 2, nous notons m 5 j k (l’arrondi par défaut de ). 2 2 Nous désignons par Tgauche la première moitié de T (c’est-à-dire le tableau constitué des éléments T 1 1 2 , c, T 1 m 2 2 , et par Tdroite la seconde moitié de T (le tableau constitué des éléments T 1 m 1 1 2 , c, T 1 n 2 ). Considérons l’algorithme Tri(T) suivant : 1. Tri(T) 2. si n > 2 alors T d Tri 1 Tgauche 2 { Tri 1 Tdroite 2 3. sinon Tri 1 T 2 d T 3) Montrer que la complexité de l’algorithme est O 1 n log n 2 .
58
Éléments de la théorie des
3
graphes
3.1 Éléments
de la théorie des graphes
3.1.1 Qu’est-ce qu’un graphe ? Un des plus anciens problèmes combinatoires, est la détermination d’un itinéraire à travers la ville de Königsberg (aujourd’hui Kaliningrad) en n’utilisant qu’une fois et une seule chacun des sept ponts qui enjambaient les bras de la rivière ou conduisaient à deux îles, dont Euler montra en 1735 l’impossibilité en utilisant un argument simple, de parité, semble constituer le premier témoignage de l’emploi des graphes :
A B
C D
Figure 3.1
La preuve de l’impossiblité est donnée dans l’exercice 3.2. Plus tard, J. Petersen, avec ses graphes réguliers (1891), André Sainte-Laguë, ancien professeur du CNAM, avec la première thèse sur les réseaux (ou graphes), en 1926, et surtout Dénes König, publiant sa Theorie der endlichen und unendli chen Graphen (1936), développèrent ce concept. C’est en 1958 que Claude Berge fit paraître sa Théorie des graphes et applications, considérablement amplifiée dans
Chapitre 3 • Éléments de la théorie des graphes
Graphes et hypergraphes (1971), d’où un renouvellement, un essor des recherches, notamment en France, en Hongrie, aux États-Unis, en Union Soviétique (aujourd’hui Russie) et au Japon. La théorie des graphes est devenue l’un des instruments les plus efficaces pour représenter (modéliser), puis résoudre de nombreux problèmes discrets que pose la recherche opérationnelle. Claude Berge a reconnu que la R.O. contribue aux progrès de la théorie des graphes, en suscitant de nouvelles recherches (voir, par exemple, l’avant-propos de Graphes et hypergraphes).
3.1.2 Vocabulaire de la théorie des graphes ; connexité, a rbres Considérons les « points » A, B, C, D et E et un certain nombre de « flèches » joi gnant entre eux plusieurs couples de ces points (figure 3.2). Désormais ces points seront nommés sommets et ces flèches, arcs. B A C
E D
Figure 3.2
À chaque sommet de l’ensemble X 5 5 A, B, C, D, E 6 correspond par l’applica tion G 1 (nommée application successeurs), un sous-ensemble de X ; ainsi en suivant les arcs (flèches), on voit que : G 1 1 A 2 5 5 B,C 6 ; G 1 1 B 2 5 5 D, E 6 ; G 1 1 C 2 5 5 E 6 ; G 1 1 D 2 5 5 C 6 ; G 1 ( E ) 5 0.
le sommet E, qui n’a pas de successeur, est appelé sortie du graphe (un graphe peut comporter zéro, une ou plusieurs sorties). Si l’on remonte maintenant les arcs, on obtient l’application réciproque, nommée application prédécesseurs et notée G 2 : G 2 ( A ) 5 0 ; G 2 1 B 2 5 5 A 6 ; G 2 1 C 2 5 5 A, D 6 ; G 2 1 D 2 5 5 B 6 ; G 2 1 E 2 5 5 B, C 6 ; Le sommet A, qui n’a pas de prédécesseur, est appelé entrée du graphe. Le sommet E, qui n’a pas de successeur, est appelé sortie du graphe. Ainsi un graphe est défini lorsque l’on connaît l’ensemble X de ses sommets et l’application successeur G 1 , d’où l’écriture G 5 1 X, G 1 2 . Ou bien si l’on connaît X et G 2 ; on note alors : G 5 1 X, G 2 2 . Tout arc u peut être désigné par le couple formé par son sommet, extrémité initiale, puis son extrémité extrémale. Par exemple l’arc reliant A à B est noté :
60
3.1 Éléments de la théorie des graphes
(A, B). Soit U l’ensemble de tous les arcs du graphe ; le graphe peut aussi être noté : G 5 1 X, U 2 . Pour le graphe de la figure 3.2, on a :
© Dunod – Toute reproduction non autorisée est un délit.
U 5 5 1 A, B 2 , 1 A, C 2 , 1 B, D 2 , 1 B, E 2 , 1 C, E 2 , 1 D, C 2 6
U étant un ensemble de couples, U est donc une relation binaire sur l’ensemble X des sommets (rappel : une relation binaire sur un ensemble X est un sous-ensemble du produit cartésien X 3 X : U ( X 3 X ; le produit cartésien X 3 X est, par définition, l’ensemble de tous les couples (x, y) où x et y appar tiennent à X ). Dans certaines applications, on n’a pas besoin de noter (ou de conserver) l’orien tation initiale des arcs : à tout graphe orienté correspond un graphe non orienté. Ses arcs « désorientés » sont nommés arêtes ; ainsi l’arc (A, B), sans son orientation, donne l’arête [A, B] (qui peut être notée tout aussi bien : [B, A]). Mais si un graphe G comporte à la fois l’arc (x, y) et l’arc (y, x), le graphe non orienté associé comporte une seule arête : [x, y] (qu’on peut noter aussi : [y, x]). Dans un graphe, on appelle chemin une séquence d’arcs dont l’extrémité termi nale de chacun, sauf pour le dernier, est l’extrémité initiale du suivant. Un chemin qui se ferme sur lui-même est un circuit. On exige, le plus souvent, qu’un chemin soit simple : un chemin est simple s’il ne passe qu’une fois par chacun de ses arcs ; il est élémentaire s’il ne passe pas plus d’une fois chacun de ses sommets. (NB : un chemin élémentaire est nécessairement simple, mais la réciproque est fausse). La longueur d’un chemin est le nombre de ses arcs. Un circuit de longueur 1 est une boucle. La figure 3.3 représente un graphe dans lequel : (D, A, E, A, E, A) est un chemin, (A, C, D, A) un circuit ; en B existe une boucle. (D, A, E, A, E, A) n’est pas simple, (D, A, E, A) est simple, mais pas élémentaire ; (D, A, E) est élémentaire. Le “demi-degré extérieur” du sommet x est : dx1 5 card G 1 1 x 2 : c’est le nombre d’arcs ayant leur extrémité initiale en x (en excluant les boucles) ; le “demi-degré intérieur” du sommet x est : dx2 5 card G 2 1 x 2 : c’est le nombre d’arcs ayant leur extrémité terminale en x (boucles exclues).
Figure 3.3
Considérons maintenant le graphe de la figure 3.3 comme non orienté. C’est le graphe G 5 1 X, V 2 , où V est l’ensemble des arêtes. On appelle chaîne une suite d’arêtes, dont chacune a une extrémité commune avec l’arête précédente (sauf la première) et l’autre commune avec l’arête suivante (sauf la dernière). Ainsi [A, D, E, C] est une chaîne.
61
Chapitre 3 • Éléments de la théorie des graphes
Une chaîne qui se ferme sur elle-même (et qui est simple) est un cycle. Un graphe est connexe s’il existe au moins une chaîne entre toute paire de som mets ; s’il n’est pas connexe, les sous-ensembles maximaux (au sens de l’inclusion) de sommets tels qu’entre deux sommets quelconques d’un même sous-ensemble existe une chaîne, sont nommés « composantes connexes » du graphe. Ce concept ne fait donc pas appel à l’orientation du graphe. N.B. Nous définirons plus loin la forte connexité qui, elle, concerne les graphes orientés. Le graphe ci-dessus est connexe ; la suppression des arêtes [A, B], [A, C], [D, A], [D, E] et [E, C] le rendrait non connexe, le graphe restant comporterait p 5 2 compo santes connexes : {A, E} et {B, C, D}. Le degré d’un sommet x est le nombre d’arêtes ayant une extrémité en x : dA 5 4, dB 5 2 (la boucle est exclue), dC 5 4, etc. Un arbre est un graphe connexe et sans cycle (cette notion ne fait donc pas appel à l’orientation du graphe) ; dans la figure 3.3 si l’on supprime les arcs (A, B), (B, B), (D, A), (E, A) et (C, E), le graphe restant est un arbre (illustré par les arêtes grasses de la fig. 3.3). Un arbre de n sommets comporte n 2 1 arêtes (arcs). Insis tons sur le fait qu’un arbre n’est pas orienté a priori. Une arborescence, dans un graphe orienté, est un arbre comportant un sommet par ticulier r, nommé racine de l’arborescence ; depuis r, il existe dans l’arborescence un chemin (et un seul) vers tout autre sommet (cette notion fait donc bien appel à l’orien tation du graphe) ; en supprimant tous les arcs de la fig. 3.3 sauf les n 2 1 5 4 arcs suivants : (B, C), (C, D), (D, A) et (D, E), on obtient une arborescence de racine B. N.B. Certains informaticiens nomment “arbre” ce qui – en théorie des graphes – est une arborescence.
Figure 3.4 Matrice booléenne associée
Tout graphe peut être défini par sa matrice d’adjacence M qui est booléenne. L’existence d’un arc de X vers Y se traduit par la présence d’un 1 à l’intersection de la ligne X et de la colonne Y de la matrice M ; l’absence d’arc, par la présence d’un 0. La matrice d’adjacence relative au graphe de la figure 3.3 est donnée ci-contre. En excluant les boucles : la somme des termes de la ligne X est : d +x, de la colonne Y : d –y.
À une matrice associée symétrique (voir le chap. 1 sur les relations) corres pond un graphe symétrique : si (x, y)PU alors (y, x)PU une matrice associée antisymétrique, un graphe antisymétrique : si (x, y)PU alors (y, x) x U. Un graphe est complet si, pour tout arc (x, y), on a : [(x, y) x U] entraîne [(y, x)PU] 62
3.1 Éléments de la théorie des graphes
Le graphe complet symétrique de n sommet est noté Kn (ou clique de n sommets), en honneur au mathématicien polonais Kuratowski. Une autre manière de décrire un graphe est d’utiliser sa matrice d’incidence sommets/arcs : chaque ligne de cette matrice est associée à un sommet, et chaque colonne est associée à un arc du graphe. Dans la colonne correspondant à un arc (i, j) autre qu’une boucle, figurent la valeur 11 sur la ligne correspondant au sommet i, la valeur 21 sur la ligne corres pondant au sommet j et la valeur 0 sur toutes les autres lignes. Dans une colonne correspondant à une boucle (i, i) figurent la valeur 11 sur la ligne correspondant au sommet i et la valeur 0 sur toutes les autres lignes. La figure 3.5 donne cette matrice pour le graphe de notre exemple (les valeurs 0 ont été omises).
Figure 3.5 Matrice d'incidence
© Dunod – Toute reproduction non autorisée est un délit.
Une autre manière de représenter un graphe est d’utiliser la liste chaînée de ses successeurs1. La figure 3.5 bis donne la liste des successeurs pour notre exemple. Cette représentation compacte d’un graphe est aisée à obtenir en machine en utilisant les structures de données dynamiques existant désormais dans tous les langages de programmation. A
B
C
E
....
successeurs de A
B
B
C
..............
successeurs de B
C
D
........................
successeurs de C
D
A
E
..............
successeurs de D
E
A
C
..............
successeurs de E
Figure 3.5 bis Listes de successeurs
1. Rappelons que l’ensemble des successeurs d’un sommet x se note : G 1 ( x ) , ou bien G ( x ) . 63
Chapitre 3 • Éléments de la théorie des graphes
3.1.3 Chemins de longueur k. Fermeture transitive Considérons la matrice M du graphe de la figure 3.3. On peut se proposer de l’élever au carré, au cube, etc. On obtient ainsi M 2, M 3, M 4, c où l’élément (i, j) de M k est le nombre de chemins de longueur k allant du sommet i au sommet j (ce que l’on peut prouver par récurrence sur k). Rappelons que le produit d’une matrice A, de format p 3 q, par une matrice B, de format q 3 r, est la matrice C 5 A # B de format p 3 r, telle que cij 5 ai1 # b1j 1ai2 # b2j 1 c1 aiq # bqj.
Dans un graphe de n sommets, un plus long chemin élémentaire comporte, évidem ment, s’il existe, n – 1 arcs. Il passe alors une fois et une seule par tous les sommets du graphe : on l’appelle chemin hamiltonien. Un chemin hamiltonien qui se referme sur lui-même est un circuit hamiltonien. Dans le graphe de la figure 3.3 on n’a qu’un circuit hamiltonien : (A, B, C, D, E, A), alors qu’on avait plusieurs chemins hamiltoniens. On peut également calculer les « puissances » successives de M en utilisant comme loi « multiplicative » le produit logique et, comme loi « additive » la somme logique dont nous rappelons les tables ci-dessous. Ainsi, M [k] sera encore une matrice booléenne :
Dans ces conditions, la présence d’un 1 à l’intersection de la ligne x et de la colonne y de M [k] signifie : « il existe au moins un chemin de longueur k entre x et y ». Dans l’exemple choisi, on a les résultats suivants :
Tous les termes M[4] sont égaux à 1 car dans G il existe au moins un chemin de longueur 4 de tout sommet x vers tout sommet y : le vérifier sur la Fig. 3.3. 64
3.1 Éléments de la théorie des graphes
Si l’on fait la somme booléenne :
#
#
#
#
#
#
M 1 M 324 1 M 334 1 M 344 et, plus généralement, M 1 M 324 1 c1 M 3k 2 14, on trouve une matrice (qui, dans le cas particulier de l’exemple est entièrement for mée de 1) dans laquelle la présence d’un 1 à l’intersection de la ligne x et de la colonne y signifie : « il existe dans le graphe au moins un chemin de longueur infé rieure ou égale à k 2 1 de x vers y ». On appelle fermeture transitive d’un sommet x, d’un graphe G 5 1 X, G 2 , l’expression : ˆ 1 x 2 5 5 x 6 x G 1 x 2 x G 2 1 x 2 x c x Gn 2 1 1 x 2 , G où, pour simplifier, on a noté G 1 1 x 2 5 G 1 x 2 et Gk 1 x 2 5 G 1 Gk 2 1 1 x 2 2 . ˆ 1 x 2 désigne l’ensemble des descendants de x, c’est-à-dire des sommets acces G sibles depuis x par des chemins ( y compris x lui-même). Il est facile de montrer que l’on obtient la fermeture transitive de l’ensemble X # des sommets du graphe en calculant la matrice ( I 1 M ) 3n 2 14 (car la longueur maxi male des chemins élémentaires de G est : n21). ˆ 5 I 1# M 1# M 324 1# c1# M 3n 2 14 5 1 I 1# M 2 3n 2 14 M
où I est la matrice booléenne unité (qui ne comporte que des 1 dans la diagonale et des 0 partout ailleurs). En effet, en calcul booléen, la formule du binôme de Newton est plus simple :
# # # # # 1 A 1 B 2 3n 2 14 5 A3n 2 14 1 A3n 2 24 # B 1 A3n 2 34 # B324 1 c1 B3n 2 14. #
(À cause de l’idempotence de la somme booléenne : 1 1 1 5 1, le triangle de Pascal (des C pn) a tous ses éléments égaux à 1 en calcul booléen !) Considérons, par exemple, le graphe de la gure 3.6. On a d’abord# écrit M, puis en portant des fi 1 dans la diagonale, I 1 M. © Dunod – Toute reproduction non autorisée est un délit.
#
Figure 3.6
#
#
Calculons 1 I 1 M 2 324, 1 I 1 M 2 334, puis 1 I 1 M 2 354. Nous obtenons :
65
Chapitre 3 • Éléments de la théorie des graphes
Remarques. # • 1 I 1 M 2 3k4 est la matrice codant l’existence des chemins d’au plus k arcs dans le graphe. • M comporte, dans l’exemple, une colonne entièrement formée de 0 ; c’est une entrée du graphe (ici, le sommet A) ; elle comporte aussi une ligne consti tuée uniquement de 0 : c’est une sortie du graphe (ici, F). • Dans un graphe de n sommets, il ne peut y avoir de chemin élémentaire de longueur supérieure à n 2 1 (sans répétition de sommet), si bien que lors qu’on recherche la fermeture transitive, (ou ensemble des# descendants de tous les sommets) on peut s’arrêter à la puissance n 2 1 de I 1 M. En pratique, on peut d’ailleurs s’arrêter dès que : # # 1 I 1 M 2 3 k 4 5 1 I 1 M 2 3 k 2 1 4. ˆ Posons A 5 I 1# M. Le Donnons deux schémas possibles pour le calcul de M. premier schéma consiste à calculer : A324 5 A # A, puis A334 5 A324 # A, puis A344, c, puis A3n 2 14 5 A3n 2 24 # A, soit n 2 2 produits de matrices. Or le produit de deux matrices n 3 n requiert n3 multiplications booléennes ; en effet, soient B, C, D des matrices n 3 n telles que : D 5 B # C. Rappelons que : # # # dij 5 bi1 # c1j 1 bi2 # c2j 1 c1 bin # cnj. L’évaluation de dij requiert donc n multiplications booléennes ; or D comporte n2 termes : au total, il faut effectuer n2 3 n, soit n3 multiplications booléennes pour calculer D. ˆ on aura 1 n 2 2 2 3 n3 multiplications booléennes. La Finalement pour évaluer M, complexité de ce schéma est donc O(n4). Ainsi pour un graphe de n 5 240 sommets, l’on calculerait : A2 5 A # A, A3 5 A2 # A, c, A239 5 A238 # A soit 238 produits de matrices. On peut donc améliorer ce schéma comme suit : on a vu plus haut que : # # # 1 I 1 M 2 3n 2 14 5 1 I 1 M 2 3n4 5 c5 3 I 1 M 4 3n 1 p4 (p entier > 21 2 . ˆ 5 A239 ; comme : 27 5 128 , 239 , 28 5 256, on a aussi : Pour ce graphe M 256 ˆ M 5 A . D’où le schéma de calcul amélioré : A2 5 A # A , puis A4 5 A2 # A2 , A8 5 A4 # A4 , c, A256 5 A128 # A128. 66
3.1 Éléments de la théorie des graphes
où à chaque itération, on calcule le carré de la matrice de l’itération précédente. Ce schéma ne nécessite que 8 produits de matrices (au lieu de 238...) et dans le cas général : E* [log2(n – 1)] produits de matrices, où E*[x] désigne la partie entière de x par excès : ici n 2 1 5 239 ; puisque 27 , 239 , 28, on a : 7 , log2 239 , 8 et E* 3 log2 239 4 5 8. La complexité de la méthode matricielle avec ce schéma amé lioré n’est plus que de O(n3 log2 n), qui est effectivement moindre que O(n4). Nous allons maintenant donner l’algorithme de Roy-Warshall, de complexité moindre : O(n3) qui, lui aussi, détermine la fermeture transitive d’un graphe (cet algorithme a été aussi trouvé indépendamment par le Pr Louis Nolin). 1. A d M 2. pour i 5 1 à n faire 3. A(i, i) d 1 4. pour k 5 1 à n faire 5. pour j 5 1 à n faire 6. pour i 5 1 à n faire # 7. A 1 i, j 2 d A 1 i, j 2 1 A 1 i, k 2 3 A 1 k, j 2
La figure 3.7 illustre sur l’exemple précédent le déroulement de cet algorithme ; lors de chaque itération k on a encadré certains 1 : ils correspondent aux arcs ajou tés, lors de cette itération, au graphe courant. Les sommets sont considérés dans l’ordre A, B, C, D, E, F et les relations de réflexivité (boucles) ne sont pas prises en compte. Ci-dessous ces sommets sont notés a, b, c, d, e et f (pour éviter la confusion entre la matrice A et le sommet A). a b c d e f a
© Dunod – Toute reproduction non autorisée est un délit.
A=
a b c d e f
1 1 0 0 1 0
a b c d e f
a b c d e f
1 1 0 1 0
1 1 1 1 0
1 0 0 1 0
b 0 1 1 0 0 0
0
c
0 0
0 0 1 1 0 0
1 0 0 0 1 0 0
d 0 0 0 1 0 1
0 0 0
e
0 1 1 0 1 1
0 1 1 0
f
0 0 0 0 0 1
0 0 0 0 0
Initialisation a
0 1 1
1 0 0 0
0 0
1 0 0
0 0 0
0 1
0 1 1 0
1
0 0 0 0 0
0
1 1 0 0
0 0
1 0 0
0 0 0
0 1
0 1 1 1
1
0 0 0 0 0
k = 1 (cf a)
k = 2 (cf b)
k = 3 (cf c)
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
b 0
1 1 0 1
c 0 0
1 0 1
d 0 0 0
0 1
e 0 1 1 1 f
0
0 0 0 0 0
k = 4 (cf d)
1
0
1 1 0 1
0 0
1 0 1
0 0 0
0 1
0 1 1 1 0 0 0 0 0
k = 5 (cf e)
1
0
1 1 0 1
0 0
1 0 1
0 0 0
0 1
0 1 1 1
=M
1
0 0 0 0 0
k = 6 (cf f ) 67
Chapitre 3 • Éléments de la théorie des graphes
(2)
(3)
B
C (4)
A
4
(4)
E (3)
(3)
D
F
Figure 3.7 : Un exemple d’exécution de l’algorithme de Roy-Warshall
L’itération k 5 1 n’ajoute aucun arc car a est une entrée. L’itération 2 ajoute l’arc (a, c) car le graphe courant comporte (a, b) et (b, c), l’itération 3 ajoute les arcs (a, d ), (b, d ) et (e, d ) etc. L’itération 6 n’ajoute aucun arc car f est une sortie. La ˆ se déduit de M en égalant à 1 tous les termes de sa diagonale : M ˆ 5 M 1# I, matrice M où M est la matrice obtenue en fin d’application de l’algorithme. Le lecteur intéressé pourra consulter les ouvrages cités en bibliographie pour trouver la preuve de cet algorithme.
3.1.4 Forte connexité Cette notion, contrairement à celle de la connexité, fait appel à l’orientation du graphe. Soit la relation binaire définie sur l’ensemble des sommets X : « il existe au moins un chemin de x à y et au moins un chemin de y à x » ; elle est réflexive (de tout sommet x vers lui-même existe un chemin de longueur 0), symétrique, (par définition), et transitive : s’il existe un chemin de x à y et un chemin de y à z, la mise bout à bout ou « concaténation » de ces deux chemins fournit un chemin de x à z ; de même avec un chemin de y à x et un chemin de z à y. C’est donc une relation d’équivalence. Les classes de cette relation d’équivalence se nomment les composantes fortement connexes du graphe1. Un graphe est fortement connexe s’il comporte une seule composante fortement connexe. Si l’on ajoute l’arc (d, a) au graphe de la Figure 3.6 (ou 3.7), il devient fortement connexe.
Considérons, à titre d’exemple, le graphe de la figure 3.8 pour lequel k X k 5 n 5 7. ˆ 5 ( I 1# M ) 364, on constate qu’un nouvel arrangement Si l’on observe la matrice M des colonnes et des lignes permet de faire apparaître des matrices carrées, unique ment formées de 1, s’appuyant sur la diagonale principale.
1. Dans toute composante fortement connexe c, il existe donc un chemin entre tout couple de sommets de c. 68
3.1 Éléments de la théorie des graphes
2
1
Figure 3.8
A B CDE FG
A B F CD E G
A 1 1 1 1 1 1 1 B 1 1 1 1 1 1 1
A 1 1 1 1 1 1 1 B 1 1 1 1 1 1 1
C 0 0 1 1 1 0 1 ˆ MD 0 0 1 1 1 0 1
F 1 1 1 1 1 1 1 C 0 0 0 1 1 1 1
E 0 0 1 1 1 0 1
D 0 0 0 1 1 1 1 E 0 0 0 1 1 1 1 G 0 0 0 1 1 1 1
F 1 1 1 1 1 1 1 G 0 0 1 1 1 0 1
À chacune de ces matrices carrées correspond une composante fortement connexe du graphe. c1 5 5 A, B, F 6 et c2 5 5 C, D, E, G 6 sont les ensembles de sommets des deux composantes fortement connexes du graphe de la figure 3.8.
Remarques. 1) Lorsqu’un graphe comporte un circuit hamiltonien, il est # fortement connexe et la matrice 1 I 1 M 2 3n 2 14 ne contient que des 1. Mais le # fait que la matrice 1 I 1 M 2 3n 2 14 soit uniquement formée de 1 n’implique pas l’existence d’un circuit hamiltonien : cela veut simplement dire que le graphe est fortement connexe. Par exemple G 5 1 X, U 2 où : X 5 ({A, B, C, D} ; U 5 {(A, B) ; (B, C) ; (C, A) ; (C, D) ; (D, B)}
© Dunod – Toute reproduction non autorisée est un délit.
2) Tous les sommets appartenant à un même circuit, appartiennent nécessaire ment à la même composante fortement connexe. Un algorithme très efficace, dû à Tarjan, permet de déterminer les composantes for tement connexes d’un graphe. Cet algorithme effectue un seul parcours en profondeur du graphe (cf. 3.2.d) et est de complexité O(m), où m est le nombre d’arcs (supposé ici supérieur ou égal à n). Le lecteur pourra consulter la référence [8] pour la description et la preuve de cet algorithme. Nous conseillons au lecteur l’exercice corrigé en fin de ce chapitre donnant l’algorithme plus simple mais efficace, dû à Kosaraju et Sharis, également en O(m), aboutissant au même résultat, mais en effectuant deux parcours en profondeur.
3.1.5 Utilité du concept de graphe en recherche opérationnelle Un graphe peut représenter toutes sortes de situations dans les phénomènes d’orga nisation. Par exemple, un réseau de transport, c’est-à-dire un graphe comportant une entrée et une sortie, peut correspondre à des canalisations où circule un fluide (liquide, gaz). Dans ce cas, il vérifie la loi des nœuds ou loi de Kirchhoff, bien connue en élec tricité, et selon laquelle les quantités entrantes (par unité de temps) en un sommet sont égales aux quantités sortantes (par unité de temps) en ce même sommet (figure 3.9). Il est facile, en effet, de comprendre que, si trois canalisations apportent en un sommet A des débits respectifs de 2, 3 et 1 litres/mn, soit en tout 6 O/mn, les canalisations qui partent de A doivent avoir un débit total de 6 O/mn. 69
Chapitre 3 • Éléments de la théorie des graphes
Mais un graphe n’est pas toujours un réseau représentant des cir culations quelconques. Souvent, une flèche (arc) entre deux points implique seulement une relation de succession : par exemple, le graphe (figure 3.10) Figure 3.9 peut vouloir dire seulement que A précède B, qui, lui-même, pré cède C. Une propriété évidente, dans ce cas, est la transitivité. Si A précède B et B précède C, alors A précède C ; mais on n’a pas besoin de l’indiquer par une flèche supplémentaire entre A et C. Figure 3.10 Si dans cette interprétation, on aboutit à une figure (figure 3.11) comportant un circuit, le problème n’est pas cohérent, car on ne sau rait avoir à la fois : A précède C (par transitivité) et C précède A. Les graphes des problèmes d’ordonnancement présentés plus loin ne sau raient comporter de circuit. Figure 3.11 On dit qu’un graphe est valué si, à tout arc qui le constitue, cor respond une valeur numérique, qu’on écrit seulement, sur la figure, à proximité de cet arc. Ces valeurs peuvent être des quantités transportées, des débits, des coûts, des durées, etc. Signalons que les graphes permettent de représenter aisément les « systèmes » pou vant se trouver dans des « états », les changements d’états étant des « transitions ». Tout état est alors représenté par un sommet, toute transition par un arc. Nous rencontrerons plus loin des exemples de systèmes états/transitions : il s’agira des chaînes de Markov, puis des processus de Markov. Un autre exemple en est donné par les réseaux de Petri.
3.2 Parcours
des graphes
Nous présentons ici une méthode générale appelée parcours d’un graphe qui, appli quée à un graphe orienté ou non orienté, permet la conception de toute une famille d’algorithmes particulièrement efficaces. Ces algorithmes, appliqués à un graphe donné, en déterminent des propriétés spécifiques (par exemple si le graphe est connexe, ou encore s’il est fortement connexe) ou bien calculent des quantités caractéristiques de ce graphe (nombre de composantes connexes ; longueurs de chemins ; etc.). Le lecteur pourra constater tout l’intérêt de cette méthode au travers des exemples classiques présentés dans ce sous-chapitre. Le principe de la méthode est de parcourir un graphe, c’est-à-dire l’ensemble de ses sommets et de ses arcs (ou arêtes). Le parcours du graphe doit se faire en respec tant quelques règles simples assurant, d’une part, que tout sommet et toute arête (ou arc) ont bien été visités et, d’autre part, une complexité minimale de la procédure en évitant toute redondance. Informellement, la procédure de parcours d’un graphe peut s’énoncer de la manière qui suit : on choisit un sommet initial que l’on commence à visiter, la visite d’un sommet étant terminée lorsque l’on est allé visiter tous ses successeurs si le graphe est orienté (ou tous les sommets qui lui sont adjacents, si le graphe est non orienté). Ensuite, à chaque étape, on choisit un sommet en cours de visite et on 70
3.2 Parcours des graphes
p oursuit sa visite. Lorsqu’il n’est plus possible de poursuivre la visite d’aucun som met du graphe, pour le sommet initial choisi, la procédure s’arrête si tous les som mets du graphe sont visités ; dans le cas contraire, on reprend le parcours à partir d’un sommet non encore visité. Tout au long de la procédure de parcours d’un graphe, chaque sommet passe par trois états successifs : initialement, un sommet n’est pas atteint par le parcours, il est alors dit non marqué, puis lorsqu’un sommet est atteint pour la première fois, sa visite débute, le sommet est alors dans l’état ouvert, enfin lorsque la visite d’un sommet est terminée, le sommet est alors dans l’état fermé. Un parcours débute alors par l’ouverture d’un som met du graphe (le sommet initial) et se termine lorsque tous les sommets sont fermés. Les algorithmes effectuant des parcours de graphe se distinguent par la stratégie de choix, à chaque étape, du sommet à ouvrir, à partir duquel est poursuivie la visite. Ainsi la stratégie utilisée par un algorithme de parcours induit deux ordres pour les sommets du graphe :
© Dunod – Toute reproduction non autorisée est un délit.
• l’ordre dans lequel les sommets sont ouverts, appelé ordre de prévisite ; • l’ordre dans lequel les sommets sont fermés, appelé ordre de postvisite. La complexité algorithmique du parcours d’un graphe dépend du type de stra tégie utilisée. Cependant, dans un premier temps, si l’on suppose que le choix du sommet à ouvrir à chaque étape peut se faire en un temps constant (c’est-à-dire avec une complexité O(1), voir le chapitre 2), la complexité du parcours est O(n 1 m). En effet, si le graphe est représenté sous la forme de listes de successeurs (ou bien de listes de sommets adjacents pour un graphe non orienté) (cf. 3.1.2), chacune des n listes associées aux n sommets du graphe est parcourue entièrement une fois et une seule. Chacun des éléments d’une liste correspondant à l’un des m arcs (ou des m arêtes) du graphe, nous en déduisons la complexité annoncée. Après avoir donné deux exemples de parcours dans les graphes orientés et les graphes non orientés, nous consacrerons les deux dernières parties de ce sous-chapitre à deux stratégies de parcours sur lesquelles sont fondés de nombreux algorithmes : le parcours en largeur et le parcours en profondeur. Nous verrons qu’en utilisant des structures de données appropriées, ces deux derniers types de parcours ont une complexité O(n 1 m). En R.O. on a souvent affaire à des graphes denses : m W n ; alors celle-ci est O(m).
3.2.1 Parcours d’un graphe non orienté Dans ce paragraphe, nous donnons un algorithme générique effectuant le parcours d’un graphe non orienté. Nous allons voir ensuite, par l’intermédiaire d’un exemple, comment un tel parcours permet de déterminer efficacement les composantes connexes d’un graphe. L’algorithme est le suivant : 1. Initialement tous les sommets sont non marqués ; 2. tant qu’il existe s un sommet non marqué, ouvrir s ; 3. tant que cela est possible exécuter l’une des instructions 4 ou 5 ; 4. ouvrir un sommet y non marqué s’il est adjacent à un sommet x ouvert ; 5. fermer un sommet x si tous ses sommets adjacents sont ouverts ou fermés. 71
Chapitre 3 • Éléments de la théorie des graphes
Les figures 3.13 à 3.17 illustrent un déroulement possible de l’algorithme pour le graphe représenté dans la figure 3.12 ; remarquons que ce graphe n’est pas connexe et comporte p 5 3 composantes connexes. Dans ces figures, les sommets grisés sont les sommets ouverts et les sommets cerclés d’un trait épais et non grisés sont les sommets fermés. Tout arc (x, y) représenté par une flèche épaisse indique le sommet x à partir duquel s’effectue l’ouverture du sommet y.
Figure 3.12
Nous détaillons maintenant la façon dont le parcours est effectué, le lecteur pourra suivre ce parcours sur les figures 3.13 et 3.17. Le premier sommet ouvert est le sommet A. Ensuite, le sommet B adjacent à A est ouvert ; à noter cependant, que les sommets E ou F auraient tout aussi pu être ouverts à cette étape. Les sommets I, puis E, puis H sont ensuite successivement ouverts. Le sommet E est alors fermé (L ou F auraient pu être ouverts à cette étape), le graphe correspondant est alors le dernier de la figure 3.14. L est ensuite ouvert, puis I fermé. À ce moment, la reprise de la visite du sommet A, permet l’ouverture du sommet F. Les sommets H, A, B, F, L (fig. 3.16 en haut) sont alors successivement fermés ; remarquons encore que tout autre ordre de fermeture de ces cinq derniers sommets aurait été compatible avec l’algorithme. À ce moment, plus aucun sommet n’est ouvert : c’est la fin de la première passe mais tous les sommets ne sont pas fermés : le sommet non marqué C est alors ouvert : c’est le début de la seconde passe. Le parcours se poursuit par l’ouverture du sommet J. Puis successivement s’exécutent les ouvertures de K puis de D, la fermeture de J suivie de l’ouverture de G, puis des fermetures successives des sommets C, K, G et D (fig. 3.16, en bas). À nouveau, aucun sommet n’est ouvert, mais tous les sommets ne sont pas fermés. Le parcours se poursuit (troisième passe) par l’ouverture du sommet M, puis celles de N et O, successivement. Les sommets N, M, O sont alors successivement fermés (fig. 3.17, second graphe) ; ici encore, tout autre ordre de fermeture de ces trois derniers som mets aurait pu convenir. Tous les sommets sont fermés à cette étape de l’algorithme ; le parcours du graphe est alors terminé. 72
3.2 Parcours des graphes
Un parcours peut se résumer, d’une part par les deux ordres d’ouverture (on dit aussi de prévisite) et de fermeture (on dit aussi de postvisite) des sommets du graphe, et, d’autre part, par la forêt couvrante (une forêt est un graphe dont chaque composante connexe est une arborescence) définie par l’ensemble des arcs (x, y) telle que l’ouver ture du sommet y s’est effectuée au cours de la visite du sommet x ; elle « couvre » tous les sommets. Dans cet exemple ces deux ordres sont, en partie, arbitraires. Ce ne sera plus le cas pour les parcours en largeur ou en profondeur qui sont décrits plus loin. Début de la première passe
on a ouvert A
© Dunod – Toute reproduction non autorisée est un délit.
puis on a ouvert B
puis on a ouvert I Figure 3.13
73
Chapitre 3 • Éléments de la théorie des graphes
Pour le parcours effectué dans l’exemple fourni précédemment, la forêt obtenue est représentée par l’ensemble des arcs épais figurant au bas de la figure 3.17. L’ordre de prévisite, c’est-à-dire l’ordre dans lequel les sommets du graphe sont ouverts, correspond à la liste : PRÉVISITE 5 (A, B, I, E, H, L, F, C, J, K, D, G, M, N, O) L’ordre de postvisite, c’est-à-dire l’ordre dans lequel les sommets du graphe sont fermés, correspond à la liste : POSTVISITE 5 (E, I, H, A, B, F, L, J, C, K, G, D, N, M, O) Suite de la première passe
puis on a ouvert E
puis on a ouvert H
puis on a fermé E Figure 3.14
74
3.2 Parcours des graphes
puis on a ouvert L
© Dunod – Toute reproduction non autorisée est un délit.
puis on a fermé I
puis on a ouvert F Figure 3.15
75
Chapitre 3 • Éléments de la théorie des graphes
Figure 3.16
76
3.2 Parcours des graphes
Ici on a ouvert D puis G, puis fermé C, D, G, J, K. fin de la seconde passe Début de la troisième passe
ici on a ouvert N puis O, puis fermé O, N, et M. Fin de la troisième passe Figure 3.17 En traits gras : on a obtenu, en fin du parcours, une forêt couvrante.
Nous allons montrer, dans les exemples qui suivent, comment des algorithmes de parcours des graphes peuvent utiliser les positions relatives des sommets dans ces deux ordres et la forêt couvrante (définie précédemment), pour déterminer efficace ment certaines propriétés et/ou quantités caractéristiques du graphe parcouru.
© Dunod – Toute reproduction non autorisée est un délit.
Connexité d’un graphe Le problème de la connexité consiste à déterminer si le graphe donné est connexe et sinon à déterminer p, le nombre de composantes connexes du graphe. Si le graphe n’est pas connexe (c’est-à-dire, p > 2), il est demandé de déterminer, pour chaque sommet du graphe, la composante connexe à laquelle il appartient. Ce problème peut se formuler pour les graphes non orientés ou orientés : dans ce dernier cas, un arc est assimilé à une arête et deux arcs symétriques (x, y) et (y, x) sont fusionnés en une seule arête [x, y]. Nous montrons qu’une simple adaptation de l’algorithme de parcours donné plus haut résout ce problème. On note c(x) le numéro de la composante connexe à laquelle appartient le sommet x. Considérons l’algorithme suivant (le lecteur constatera qu’il est similaire à celui présenté plus haut) : 1. initialement tous les sommets sont non marqués ; p d 0 ; 2. tant qu’il existe s un sommet non marqué, ouvrir s ; p d p 1 1 ; 77
Chapitre 3 • Éléments de la théorie des graphes
3. tant que cela est possible exécuter l’une des instructions 4 ou 5 ; 4. ouvrir un sommet y non marqué s’il est adjacent à un sommet x ouvert ; 5. fermer un sommet x si tous ses sommets adjacents sont ouverts ou fermés ; c(x) d p. La figure 3.18 fournit le résultat de l’application de cet algorithme au graphe donné par la figure 3.12. La valeur inscrite à côté de chaque sommet x, soit c(x), indique le numéro de la composante connexe à laquelle appartient le sommet x.
Figure 3.18 La forêt couvrante importe p 5 3 arborescences : G a 3 composantes connexes.
La justification de la validité de cet algorithme se fait de la manière suivante : soit x le sommet le premier ouvert d’une composante connexe (donc dans l’ordre de prévisite). Dans la forêt couvrante (c’est-à-dire à l’ensemble des arborescences) relative au parcours effectué, x n’a pas de prédécesseur (sinon x ne pourrait pas être le premier sommet prévisité de sa composante connexe), x est donc une racine. Si un sommet y appartient à la même composante que x, il existe une chaîne du graphe reliant x et y. Il est aisé de vérifier que, dans ce cas, il y a un chemin de x à y dans la forêt couvrante. Réciproquement, si un sommet y n’appartient pas à la composante connexe de x, il n’existe pas de chaîne reliant x et y dans le graphe et, a fortiori, il n’y a pas de chemin de x à y dans la forêt couvrante relative au parcours effectué. Donc chaque arborescence de la forêt correspond à une composante connexe du graphe et réciproquement. Il est aisé de vérifier que les sommets ouverts lors des exécutions de l’instruction 2 sont les racines de la forêt couvrante : A, C et M dans la figure 3.18. Ceci termine notre démonstration. Nous pouvons facilement remarquer que la complexité de cet algorithme est iden tique à celle du parcours, soit O(m 1 n).
3.2.2 Parcours d’un graphe orienté Nous présentons dans ce paragraphe un algorithme générique effectuant le parcours d’un graphe orienté. La similitude avec l’algorithme présenté plus haut pour les graphes non orientés étant importante, le lecteur est invité à se reporter au paragraphe pré cédent pour tout ce qui concerne la terminologie utilisée. L’algorithme est le suivant. 78
3.2 Parcours des graphes
1. Initialement tous les sommets sont non marqués ; 2. tant qu’il existe s un sommet non marqué, ouvrir s ; 3. tant que cela est possible, exécuter l’une des instructions 4 ou 5 ; 4. ouvrir un sommet y non marqué s’il est successeur d’un sommet x ouvert ; 5. fermer un sommet x si tous ses sommets successeurs sont ouverts ou fermés. Les figures 3.20 et 3.21 illustrent un déroulement possible de l’algorithme pour le le graphe représenté sur la figure 3.19.
© Dunod – Toute reproduction non autorisée est un délit.
Figure 3.19
Les étapes successives du parcours sont les suivantes. A est le premier sommet ouvert, puis vient ensuite l’ouverture de B, suivie de celle de G. À l’étape suivante, F est ouvert lors de la poursuite de la visite du sommet B, ce qui justifie l’introduc tion de l’arc (B, F) dans la forêt représentative du parcours. Ensuite, le sommet A est fermé, puis le sommet D est ouvert. Les sommets B et G sont successivement fermés avant que C soit ouvert. Il vient ensuite les fermetures successives des sommets D, C et F. À cette étape, aucun sommet n’est ouvert et le sommet E est encore non mar qué. E est alors ouvert, puis n’ayant pas de successeur non marqué, E est fermé. Le parcours est alors terminé. La forêt finalement obtenue est représenté par l’ensemble des arcs épais du graphe au bas à droite de la figure 3.21. Elle comporte deux arborescences ; celle de racine E est réduite à une seul sommet. L’ordre dans lequel les sommets du graphe sont ouverts, correspond à la liste : PRÉVISITE 5 (A, B, G, F, D, C, E) et l’ordre de postvisite correspond à la liste POSTVISITE 5 (A, B, G, D, C, F, E). Nous allons montrer, dans le paragraphe suivant, comment en adaptant très sim plement l’algorithme générique que nous venons de présenter, nous obtenons un algorithme efficace permettant de déterminer l’ensemble des descendants d’un som met donné. Le lecteur est invité à constater que l’algorithme de Dijkstra, présenté au chapitre 4, qui calcule les valeurs de plus courts chemins issus d’une origine s, est un parcours de graphe utilisant une stratégie spécifique d’ouverture et de fermeture des sommets. 79
Chapitre 3 • Éléments de la théorie des graphes
Début de la première passe 1
2
on ouvre A
puis on ouvre B 4
3
puis on ouvre G
puis on ouvre F
5
6
puis on ferme A
puis on ferme B et on ouvre D Figure 3.20
80
3.2 Parcours des graphes
puis on ferme G
puis on ouvre C
7
8
Fin de la première passe début de la seconde passe 9
10
on a fermé C et on a ouvert E
on a fermé E
Fin de la seconde passe Figure 3.21
Accessibilité
© Dunod – Toute reproduction non autorisée est un délit.
Le problème de l’accessibilité dans un graphe consiste à déterminer l’ensemble des descendants d’un sommet donné s (que l’on a nommé en 3.1.3 : « fermeture transi tive » de s). Nous allons montrer ici qu’un algorithme résolvant ce problème peut être simplement obtenu en adaptant l’algorithme générique présenté précédement. Considérons l’algorithme suivant. 1. Initialement tous les sommets sont non marqués ; 2. ouvrir s ; 3. tant que cela est possible exécuter l’une des instructions 4 ou 5 ; 4. ouvrir un sommet y non marqué s’il est successeur d’un sommet x ouvert ; 5. fermer un sommet x si tous ses sommets successeurs sont ouverts ou fermés. Le résultat de l’application de cet algorithme au graphe donné par la figure 3.19, pour le sommet s 5 A, est représenté en bas à droite de la figure 3.21. Les sommets descendants de A sont les sommets appartenant à l’arborescence (en traits épais) ayant A pour racine. Cet algorithme se justifie par la propriété suivante : si s est le premier sommet ouvert dans un parcours, alors il existe un chemin du sommet s au sommet x dans l’arborescence relative au parcours, si et seulement si, il existe un chemin de s à x dans le graphe parcouru. La preuve de cette propriété est la suivante : d’une part le 81
Chapitre 3 • Éléments de la théorie des graphes
chemin de s à x existe dans l’arborescence relative au parcours seulement si ce même chemin existe dans le graphe auquel l’algorithme est appliqué ; d’autre part, s étant le premier sommet ouvert, il est aisé de vérifier que quelle que soit la manière dont le parcours est réalisé, tout sommet descendant de s dans le graphe parcouru est néces sairement un sommet de l’arborescence ayant le sommet s pour racine. Dans ce chapitre, nous avons donné différents algorithmes permettant de cal culer la fermeture transitive d’un graphe. L’algorithme le plus efficace que nous avions présenté jusqu’alors était celui dû à Roy et Warshall de complexité O(n3). L’algorithme que nous venons de présenter nous permet aussi d’obtenir la fermeture transitive d’un graphe. Il suffit pour cela d’appliquer n fois cet algorithme à partir de chacun des n sommets du graphe. Comme nous le verrons juste en dessous, il est possible d’effectuer le parcours d’un graphe avec une complexité O(n 1 m). Lorsque le graphe considéré comporte de nombreux arcs, c’est-à-dire m 5 O(n2), la complexité de ces parcours est O(n2), donc en effectuant n parcours (un depuis chacun des sommets) nous obtenons la fermeture transitive d’un graphe avec la complexité O(n3), ce qui est identique à la complexité de l’algorithme de Roy-Warshall. En revanche, si le graphe considéré comporte peu d’arcs, c’est-à-dire m 5 O(n), ce qui est le cas des graphes planaires fréquemment rencontrés en recherche opérationnelle, la complexité d’un parcours est alors O(m) 5 O(n). En effectuant n parcours, nous obtenons la fermeture transitive d’un graphe avec une complexité O(n2). Pour ce type de graphes, l’algorithme effectuant n parcours est alors plus efficace que ceux présentés au début de ce chapitre. Tarjan a donné un algorithme permettant de résoudre le problème de l’accessibi lité, de complexité O ( m 1 n ) , utilisant un seul parcours du graphe.
3.2.3 Parcours en largeur Nous définissons dans cette section une stratégie particulière de parcours de graphe appelée parcours en largeur. Ce type de parcours est défini dans ce paragraphe pour les graphes orientés, l’adaptation immédiate des algorithmes, proposés ici, aux graphes non orientés est laissée au lecteur. Nous verrons comment en utilisant une file comme structure de données, la complexité d’un algorithme de parcours en largeur est O 1 n 1 m 2 (nous rappelons plus bas en quoi consiste une file). Nous illustrerons ensuite l’efficacité des parcours en largeur en montrant comment déterminer les plus courts chemins d’un graphe depuis un sommet s donné. La stratégie pour effectuer un parcours en largeur obéit aux deux règles sui vantes : tous les successeurs non marqués du sommet en cours de visite sont ouverts successivement et leurs numéros d’ordre de prévisite seront donc consécu tifs ; le sommet visité à toute étape est, parmi les sommets ouverts, celui qui a été ouvert le premier. Comme nous l’avons montré un peu plus haut, si les opérations permettant de mettre en œuvre une stratégie particulière de parcours peuvent s’effectuer en temps constant, la complexité globale des opérations nécessaires à un parcours est O 1 n 1 m 2 . Nous allons voir comment, en utilisant une file, il est possible de réaliser cet objectif. 82
3.2 Parcours des graphes
Une file est une liste ordonnée d’éléments pour laquelle seulement deux opéra tions élémentaires peuvent être réalisées : la première opération supprime le premier élément en tête de la file ; la seconde insère un élément en queue de la file. Ces deux opérations peuvent s’effectuer en temps constant en utilisant une représentation des données appropriée (le lecteur pourra obtenir tous les détails techniques nécessaires en consultant les nombreux ouvrages traitant d’algorithmique et/ou de programmation). On n’a pas accès aux autres éléments de la file. Par suite les deux ordres “PREVISITE” (celui d’ouverture) et “ POSTVISITE” (celui de fermeture) sont identiques. TÊTE QUEUE L’algorithme générique effectuant le parcours en largeur d’un graphe orienté s’énonce de la manière suivante : 1. initialement tous les sommets sont non marqués ; 2. tant qu’il existe s un sommet non marqué, ouvrir s et insérer s dans la file ; 3. tant que la file n’est pas vide faire ; 4. supprimer le sommet x en tête de la file ; 5. ouvrir et insérer successivement en queue la file tous les sommets y non mar qués, successeurs de x ; 6. fermer le sommet x. La figure 3.22 en page suivante illustre le parcours en largeur d’un graphe orienté commençant par le sommet B. Pour chacune des étapes de l’algorithme, le contenu de la file est représenté sous le graphe correspondant (la tête de file étant à gauche).
Plus courts chemins
© Dunod – Toute reproduction non autorisée est un délit.
Nous montrons comment déterminer les plus courts chemins depuis le sommet s et les autres sommets d’un graphe. Nous rappelons que la longueur d’un chemin est le nombre d’arcs de ce chemin ; il convient de la distinguer de la valeur d’un che min pour un graphe dont les arcs sont valués. Considérons l’algorithme suivant (le lecteur pourra constater sa similitude avec l’algorithme présenté plus haut), où d(x) représente la longueur du chemin le plus court de s à x. 1. Initialement tous les sommets sont non marqués ; 2. ouvrir s et insérer s dans la file ; d(s) d 0 ; 3. tant que la file n’est pas vide faire ; 4. supprimer le sommet x en tête de la file ; 5. ouvrir et insérer successivement dans la file tous les sommets y non marqués successeurs de x ; d(y) d d(x) 1 1 ; 6. fermer le sommet x. La figure 3.23 (deux pages plus bas) illustre le déroulement de l’algorithme à partir du sommet s 5 A. Les valeurs inscrites à côté des sommets sont les longueurs des plus courts chemins issus du sommet A : ainsi les plus courts chemins de A à E comportent 3 arcs. La justification de la validité de l’algorithme se fait de la manière suivante. Nous allons montrer que pour tout sommet x du graphe, le chemin de s à x dans l’arborescence 83
Chapitre 3 • Éléments de la théorie des graphes
Début de la première passe : le sommet initial est B. Début de la première passe : le sommet initial est B.
Début de lade première passe : leen sommet initial est B. Exemple parcours largeur Début de la première passe : le sommet initial est B.
on ouvre B on ouvre B on ouvre B
on ferme B, on ouvre F puis E on ferme B, on ouvre F puis E on ferme B, on ouvre F puis E
on ouvre B
on ferme B, on ouvre F puis E
on ferme F, on ouvre C on ferme F, on ouvre C on ferme F, on ouvre C
on ferme C on ferme C Fin de la : onpremière ferme C passe Fin de la première passe : Fin de la première passe : on ferme C Fin de la première passe :
on ferme F, on ouvre C
on ouvre G on ouvre G on ouvre G Début de la seconde passe Début de la seconde passe on la ouvre G passe Début de seconde Début de la seconde passe
on ferme G; on ferme G; videG; onfile ferme file vide file vide on ferme G; file vide
on ferme A, on ouvre D on ouvre A on ferme A, on ouvre D on ouvre A on ferme A, on ouvre D on ouvre A Fin de la seconde passe : on ferme D Fin de la seconde passe : on ferme D Fin de : on ferme ferme A,Don ouvre D on ouvre A la seconde passe on Fin de la seconde passe : on ferme D
file vide : FIN file vide : FIN fileFigure vide :3.22 FIN 84
file vide : FIN
3.2 Parcours des graphes
parcours en largeur : Plus courts chemins depuis a
© Dunod – Toute reproduction non autorisée est un délit.
Début de la première passe : le sommet initial est A.
Fin de la première passe
file vide : FIN
le parcours comprend unepasse. seule passe. NB : N ici,Ble: ici, parcours comprend une seule Figure 3.23
85
Chapitre 3 • Éléments de la théorie des graphes
relative au parcours est un plus court chemin de s à x dans le graphe. Nous mon trons cette propriété en effectuant une récurrence sur la longueur du chemin de s à x dans l’arborescence. La propriété est évidemment vraie pour le sommet s : d ( s ) 5 0. Supposons-la également vérifiée pour tous les sommets situés à une distance d 2 1 de s dans l’arborescence. Il résulte de cette hypothèse que pour un sommet x à la distance d de s dans l’arborescence, un plus court chemin de s à x dans le graphe est constitué d’au moins d arcs. Le chemin de s à x dans l’arborescence est aussi un chemin du graphe, il est constitué de d arcs ; c’est donc un plus court chemin de s à x dans le graphe. Nous laissons au lecteur le soin de vérifier que les valeurs d(x) calculées par l’algo rithme correspondent effectivement au nombre d’arcs de ces chemins. La complexité de cet algorithme est évidemment identique à celle d’un parcours en largeur, c’est-à-dire O 1 n 1 m 2 en utilisant une file.
Parcours en profondeur
Nous définissons ici une autre stratégie de parcours de graphe appelée parcours en profondeur. Dans cette partie, nous déterminons ce type de parcours pour les graphes non orientés ; l’adaptation immédiate de l’algorithme générique proposé aux graphes orientés est laissée au lecteur. Nous verrons comment en utilisant une structure de données particulière appelée pile (rappelée plus bas), il est possible d’obtenir une complexité O 1 n 1 m 2 pour un algorithme effectuant un parcours en profondeur. La stratégie utilisée pour effectuer un parcours en profondeur obéit à la règle sui vante : un sommet qui était non marqué n’est ouvert que s’il est adjacent au dernier sommet précédemment ouvert ; si un tel sommet n’existe pas, le dernier sommet ouvert est alors fermé. II est possible de déterminer le dernier sommet ouvert en utilisant une pile. Dans ce cas, cette opération peut s’effectuer en temps constant. La complexité obtenue pour effectuer le parcours en profondeur d’un graphe est alors O 1 n 1 m2 . Une pile est une liste ordonnée d’éléments pour laquelle seulement deux opéra tions élémentaires peuvent s’effectuer. La première insère un élément au sommet de la pile ; la seconde opération supprime l’élément situé au sommet de la pile. On n’a donc pas accès aux éléments de la pile autres que celui situé au sommet. L’algorithme générique effectuant un parcours en profondeur d’un graphe non orienté est le suivant : 1. initialement tous les sommets sont non marqués ; 2. tant qu’il existe s un sommet non marqué, ouvrir s et insérer s au sommet de la pile ; 3. tant que la pile n’est pas vide faire ; 4. s’il existe un sommet y non marqué, adjacent au sommet x situé au sommet de la pile ; 5. alors ouvrir y et insérer y dans la pile ; 6. sinon fermer le sommet x et supprimer x de la pile. On rencontre les synonymes suivants : « empiler » pour « insérer (en haut) dans la pile » et « dépiler » pour « supprimer (du haut) de la pile ». 86
3.2 Parcours des graphes
Les figures 3.24 à 3.26 illustrent le parcours en profondeur d’un graphe. Pour chacune des étapes de l’algorithme, le contenu de la pile est représenté à la droite du graphe correspondant.
© Dunod – Toute reproduction non autorisée est un délit.
Début de la première passe
on ouvre A
on ouvre B
on ouvre C
on ferme C
on ferme B
on ouvre E
Figure 3.24
87
Chapitre 3 • Éléments de la théorie des graphes
on ouvre I
on ouvre D
on ferme D
on ferme I
Fin de la première passe
on ferme A
on ferme E
pile vide : Fin de la 1ère passe. Figure 3.25
88
3.2 Parcours des graphes
Début de la seconde passe
on ouvre H
on ouvre G
on ouvre F
on ferme F
© Dunod – Toute reproduction non autorisée est un délit.
Fin de la seconde passe
on ferme G puis H
FIN
:
Figure 3.26
89
Chapitre 3 • Éléments de la théorie des graphes
Nous allons donner quelques propriétés caractéristiques des parcours en pro fondeur (nommés aussi “Parcours en Profondeur D’Abord”, notés “P.P.D.A”.). • Première propriété : lorsqu’un sommet est ouvert il est placé dans la pile et lorsqu’il est fermé il est supprimé de la pile. L’ordre de prévisite est donc celui dans lequel les sommets sont insérés dans la pile et l’ordre de postvisite, celui dans lequel, ils en sont extraits. Il s’en suit qu’à chaque étape, les sommets ouverts sont les sommets présents dans la pile. • Deuxième propriété : à chaque étape où la pile est vide, le parcours d’une compo sante connexe du graphe est terminé. Ainsi juste avant qu’un sommet correspondant à la racine d’une arborescence soit ouvert, la pile est vide, et lorsqu’il vient d’être fermé, la pile est vide à nouveau. La racine d’une arborescence est donc toujours au fond de la pile. • Troisième propriété (utilisée pour la conception de nombreux algorithmes) : à chaque étape, les sommets présents dans la pile, considérés dans le même ordre que dans celle-ci, forment un chemin de l’arborescence relative au parcours. Cette propriété est trivialement vraie lorsque, seule, la racine est dans la pile. Supposons-la satisfaite lorsque h – 1 sommets sont dans la pile. Soit alors x le sommet au sommet de la pile. Lorsqu’un sommet y est inséré (h sommets sont alors dans la pile) un arc (x, y) est ajouté à l’arborescence et, puisque par hypothèse, il existe un chemin de la racine au sommet x, dans l’arborescence il existe aussi un chemin de la racine au sommet y ayant (x, y) comme dernier arc. À l’issue du parcours en profondeur d’un graphe non orienté, ses arêtes sont de deux types : une arête de liaison est une arête [x, y] telle que (x, y) est un arc de(s) arborescence(s) relative(s) au parcours ; les autres arêtes du graphe sont appelées arêtes de retour. Ainsi pour le parcours effectué dans notre exemple, [C, B] est une arête de liaison et [C, A] est une arête de retour. Nous montrons maintenant une propriété caractéristique des arêtes de retour. Dans un parcours en profondeur, pour toute arête de retour [x, y] avec y ayant un rang supérieur à celui de x dans l’ordre de prévisite, le sommet x est sur le chemin unique allant, dans l’arborescence, de la racine à y. La preuve est la suivante : x a été ouvert avant y et donc inséré dans la pile avant y ; si x n’est pas sur le chemin de la racine à y, d’après la propriété précèdente, au moment où y est empilé, x n’est plus dans la pile ; x est donc fermé, mais cela est impossible car l’arête [x, y] appartenant au graphe, x ne peut pas être fermé avant que y soit ouvert. Remarquons que toute arête de retour [x, y] ferme, avec le chemin de x à y de l’arborescence, un cycle. De même pour le parcours d’un graphe orienté : tout arc de retour (y, x) ferme, avec le chemin de x à y de l’arborescence, un circuit. Ainsi on peut déterminer, par un simple parcours en profondeur, si un graphe comporte des circuits ou non. De nombreux algorithmes, comme celui présenté ci-après, utilisent ces différentes propriétés.
90
3.2 Parcours des graphes
Sommets d’articulation Nous allons, à présent, montrer comment un parcours en profondeur permet de déterminer les sommets d’articulation d’un graphe. Sans perte de généralité, dans ce qui suit, nous considérons un graphe non orienté et connexe. En effet, la notion de sommet d’articulation ne fait pas appel à l’orientation du graphe. Un sommet x est appelé sommet d’articulation, si et seulement si sa suppression rend le graphe non connexe. Ainsi les sommets A et E de la figure 3.27 sont des sommets d’articulation.
© Dunod – Toute reproduction non autorisée est un délit.
Figure 3.27
Nous laissons le soin au lecteur de démontrer, à titre d’exercice, la propriété : un sommet x d’un graphe est un sommet d’articulation si et seulement si il existe deux sommets u et v différents de x, tels que toute chaîne reliant u à v passe par x. Ainsi dans notre exemple, toute chaîne de I à B passe par x 5 A (et aussi par xr 5 E) : A et E, nous l’avons déjà vu, sont des sommets d’articulation. Ces pro priétés sont utilisées plus loin lors de la justification de la validité de l’algorithme que nous proposons. Nous donnons ci-après un algorithme déterminant les sommets d’articulation d’un graphe supposé connexe. Cet algorithme effectue un parcours en profondeur à partir d’un sommet initial s (choisi arbitrairement). L’ensemble d’arcs A, déterminé au cours de l’algorithme, correspond en fin d’application de l’algorithme aux arcs de l’arborescence relative au parcours effectué. Pour chaque sommet x du graphe, deux valeurs sont calculées : prévisite(x) est le rang de x dans l’ordre de prévisite et hau teur(x) (qui est définie plus bas dans l’algorithme) ; nous verrons plus loin comment la comparaison des valeurs prévisite(x) avec les valeurs hauteur(x), permet de déter miner les sommets d’articulation. 1. Initialement tous les sommets sont non marqués ; prévisite d 1 ; A d \ ; 2. ouvrir le sommet s et insérer s au sommet de la pile ; 3. prévisite(s) d prévisite ; prévisite d prévisite 1 1 ; 4. tant que la pile n’est pas vide faire (x étant le sommet en haut de la pile) ; 5. s’il existe un sommet y non marqué, adjacent au sommet x ; 6. alors ouvrir y ; insérer y dans la pile ; 1 x, y 2 H A ; 7. prévisite(y) d prévisite ; prévisite d prévisite 1 1 ; 8. hauteur(y) d prévisite(y) ; 91
Chapitre 3 • Éléments de la théorie des graphes
9. sinon fermer le sommet x et supprimer x de la pile ; 10. pour tout sommet z successeur de x tel que 1 z, x 2 x A faire ; 11. hauteur(x) d min (hauteur(x), hauteur(z)) ; 12. si s a, au moins, deux successeurs dans A alors s est un sommet d’articulation ; 13. pour x 2 s, s’il existe y successeur de x dans A tel que hauteur(y) > prévisite(x) alors x est un sommet d’articulation Les figures 3.28 et 3.29 illustrent l’application de l’algorithme à partir du som met initial A. Les valeurs prévisite (x) et hauteur (x) sont inscrites respectivement à gauche et à droite dans le rectangle situé à côté de chaque sommet x. Le choix du sommet initial ainsi que certaines phases de l’algorithme étant arbitraires, nous allons effectuer une autre exécution de l’algorithme sur le même graphe. La figure 3.30 illustre le résultat d’une autre application de l’algorithme à partir, cette fois-ci, du sommet initial B.
on ouvre A.
on ouvre B.
on ouvre C.
ici (z, x) = (C, A) on ferme C.
on ferme B.
on ouvre E.
Figure 3.28
92
3.2 Parcours des graphes
on ouvre I.
on ouvre D.
ici (z, x) = (D, E) on ferme D.
ici (z, x) = (D, I) on ferme I
on ferme E.
on ferme A : FIN
© Dunod – Toute reproduction non autorisée est un délit.
Figure 3.29
En fin d’application, la racine A de l’arborescence a deux successeurs : A est un sommet d’articulation. I, successeur de E dans l’arborescence, a pour hauteur h 1 I 2 5 4 ; E a pour numéro d’ordre de prévisite : prévisite 1 E 2 5 4 ; puisque h(I) > prévisite (E), E est un sommet d’articulation. Voici brièvement une autre application, mais avec B comme sommet initial : En fin d’application (fig. 3.30), la racine B de l’arborescence a un seul successeur : B n’est pas un sommet d’articulation ; hauteur 1 E 2 5 4 > prévisite (A) 5 3, donc A est un sommet d’articulation ; puis h 1 I 2 5 4 > prévisite 1 E 2 5 4 : E en est un aussi. 93
Chapitre 3 • Éléments de la théorie des graphes
Figure 3.30
Nous allons maintenant montrer la validité de cet algorithme1. Nous montrons pre mièrement que le sommet s, sommet à partir duquel commence le parcours, est un som met d’articulation si et seulement si s a au moins deux successeurs dans l’arborescence relative au parcours. Soient u et v deux successeurs de s dans l’arborescence. Montrons que toute chaîne reliant u et v passe par le sommet racine s. S’il existait une chaîne reliant u et v ne passant pas par s, il existerait une arête de retour {x, y} avec x sommet de la sous-arborescence de racine u et y n’appartenant pas à cette sous-arborescence. Cela est impossible, car comme nous l’avons montré précédemment, dans un parcours en profondeur, les arêtes de retour ont leurs deux extrémités sur un même chemin de l’arborescence relative au parcours. Nous en concluons que toute chaîne reliant les sommets u et v passe par s : s est donc un sommet d’articulation. Réciproquement, supposons que la racine s de l’arborescence soit un sommet d’articulation. Il existe alors deux sommets u et v tels que toute chaîne les reliant passe par s. Si la racine s de l’arborescence a un successeur unique x, alors il existe dans l’arborescence un chemin de x à u et un chemin de x à v. Cela implique l’exis tence, dans le graphe parcouru, d’une chaîne reliant u et v passant par x et ne passant pas par s. La propriété est donc démontrée. Dans l’algorithme proposé, l’instruction 12 teste si la racine s a, au moins, deux successeurs. Considérons maintenant un sommet x 2 s. Nous allons montrer que x est un sommet d’articulation, si et seulement si, il n’existe pas d’arête de retour {u, t} telle que le sommet u soit un descendant de x (successeur non nécessairement immédiat) et le sommet t soit un prédécesseur de x dans l’arborescence relative au parcours. S’il existe une arête de retour {u, t} satisfaisant à la définition précédente, alors il existe une chaîne reliant u et t passant par le sommet x, cette chaîne correspondant au chemin allant de t à u dans l’arborescence ; il existe aussi une chaîne reliant u et t ne passant pas par le sommet x, cette chaîne est constituée de la seule arête {u, t}. La réunion de ces deux chaînes forme un cycle passant par x, le sommet x n’est donc pas un sommet d’articulation. Réciproquement, si pour tout descendant u et prédéces seur t de x dans l’arborescence, il n’existe pas d’arête de retour {u, t}, les arêtes de retour dans un parcours en profondeur ayant leurs deux extrémités sur un même che min de l’arborescence, toute chaîne reliant t et u passe nécessairement par le sommet x. x est donc un sommet d’articulation. La propriété est alors démontrée. 1. le lecteur pourra sauter cette preuve, en première lecture. 94
3.2 Parcours des graphes
Les valeurs hauteur(y), calculées par l’algorithme, déterminent pour chaque som met y de l’arborescence le premier sommet t précédant y dans l’ordre de prévisite tel que {u, t} soit une arête de retour, u étant le sommet y ou un descendant de y. L’ins truction 13 de l’algorithme permet de tester si la propriété montrée au paragraphe précédant est satisfaite. La preuve de l’algorithme est alors terminée. Rappelons que, sur l’exemple traité, pour le parcours effectué à partir de A, la racine A a deux successeurs dans l’arborescence. D’autre part, le sommet E, qui est un sommet d’articulation, est le quatrième dans la liste de prévisite et son successeur, le sommet I, a pour valeur hauteur(I) 5 4. Dans le parcours effectué à partir de B (figure 3.30), la racine B qui n’est pas un sommet d’articulation n’a qu’un seul suc cesseur dans l’arborescence. Le sommet A de rang 3 dans la liste de prévisite, a pour successeur E pour lequel hauteur(E) 5 4 > 3. En revanche, le sommet C qui n’est pas un sommet d’articulation, qui a le deuxième rang dans l’ordre de prévisite, a pour successeur dans l’arborescence le sommet A pour lequel hauteur(A) 5 1 , 2. L’algorithme proposé étant appliqué à des graphes connexes, nous avons m > n 2 1 et la complexité obtenue est O 1 n 1 m2 5 O 1 m2 . En effet, les opérations autres que celles effectuant le parcours sont en nombre inférieur à celles du parcours.
NUMEROTATION “TOPOLOGIQUE” DES SOMMETS :
Si un graphe ne comporte pas de circuit, on peut numéroter ses sommets de manière « topologique », c’est-à-dire que pour tout arc (xi, xj), on ait : i 0, c’est-à-dire de flux non nul, marquer −y le sommet x 5. En fin de marquage : si le puits p est marqué, alors le flot courant est améliorable. Si le puits p n’est pas marqué, il n’existe pas de chaîne améliorante et le flot courant est optimal. 1. Autrement dit, si l’on parcourt la chaîne de Ο vers P, les arcs directs sont parcourus dans le sens de leur orientation, tandis que les arcs indirects (ou « rétrogrades ») sont parcourus en sens inverse de leur orientation. 130
4.4 Problème du flot de valeur maximale
Inversement, il est aisé de démontrer, en se reportant à la définition d’une chaîne améliorante, qu’une chaîne améliorante existe si et seulement si le sommet Ρ est mar qué. Une telle chaîne est obtenue, à l’issue de l’application de la procédure de mar quage, en remont aut le marguage récursivement depuis P jusqu’au sommet O. Appliquons l’algorithme à notre exemple ; il est facile d’obtenir un flot initial ; nous reprenons celui de la figure précédente, en indiquant les arcs saturés par un trait gras.
© Dunod – Toute reproduction non autorisée est un délit.
Figure 4.22 Marquage des sommets
On peut remarquer que l’on ne peut pas améliorer trivialement la valeur du flot courant : tout chemin de O vers P comportant au moins un arc saturé (on dit alors que le flot est « complet »). Appliquons la procédure de marquage des sommets : l’initialisation consiste à mar quer O d’un 1 ; puis A, extrémité terminale de l’arc (Ο, A), non saturé, est marqué du signe 1O ; E, extrémité terminale de l’arc (A, E), non saturé, est marqué 1A ; B, extré mité initiale de l’arc (B, E), transportant un flot non nul, est marqué 2E ; D, extrémité terminale de l’arc (B, D), non saturé, est marqué 1B ; enfin, P, extrémité terminale de l’arc non saturé (D, P), est marqué 1D : le flot courant n’est donc pas un flot de valeur maximale. Considérons alors la chaîne améliorante [O, A, E, B, D, P] : on l’obtient à partir du puits Ρ en remontant le chaînage arrière contenue dans les marques. En effet p(P) 5 D, puis p(D) 5 B, puis p(B) 5 E, puis p(E) 5A et enfin p(A) 5 O, où p(Y ) est le prédécesseur de Y sur la chaîne améliorante.
Figure 4.23 Chaîne améliorante
131
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Si nous désirons améliorer le flot, il faudra augmenter les flux transportés par (O, A), (A, E), (B, D) et (D, P) (les arcs de la chaîne améliorante qui ont donné lieu à un marquage 1), mais il faudra diminuer d’autant le flux transporté par (B, E) (arc de la chaîne améliorante ayant donné lieu à un marquage -), de manière qu’aux sommets A, Ε, B et D, la loi Kirchhoff continue d’être respectée. Nous voyons immédiatement que l’on ne peut diminuer le flot de (B, E) que de 5 1/s ; par conséquent, nous ne pouvons augmenter les flux de chacun des autres arcs que de 5 1/s et c’est possible parce que la différence entre la capacité et la quantité transportée est supérieure à 5 pour tous ces arcs (il suffirait qu’elle soit égale) : le calcul donne d 1 5 10 et d 2 5 5. D’où d 5 5. Effectuons cette modification sur le flot ci-dessus ; pour les arcs directs : fru 5 fu 1 d et pour l’arc indirect : fru 5 fu 2 d ; on obtient la figure 4.24. On obtient un nouveau flot f9, de valeur V ( f9 ) 5 85. Appliquons la procédure de marquage à ce nouveau flot ; on ne peut pas marquer le puits P : le flot obtenu est de valeur maximale. Si l’on voulait satisfaire toutes les demandes, on pourrait augmen ter le débit maximal de la canalisation AD d’au moins 5 1/s. Bien que nous ne donnions que plus loin la démonstration de l’algorithme, nous allons déjà nous rendre compte qu’il conduit bien à une solution optimale. Considérons une ligne fermée (ou coupe), à l’intérieur de laquelle sont tous les sommets marqués. Vers l’extérieur de cette courbe ne sortent que des arcs saturés (NB : l’arc (B, D) ayant son extrémité initiale et son extrémité terminale à l’extérieur de la courbe, ne doit être considéré ni comme arc sortant, ni comme arc entrant) ; vers l’intérieur de cette courbe ne pénètrent que des arcs de flux nul, ici un seul (l’arc (B, E)). Il est évidemment impos sible de faire sortir un flot de valeur supérieure à celui qui est indiqué, puisque tous les arcs sortants sont saturés et qu’il est impossible de réduire le flot entrant, puisqu’il est nul. Comme la courbe contient la source O, c’est bien le flot maximal qui part de la source.
Figure 4.24 Flot de valeur maximale et coupe de valeur minimale.
NB. Sur cet exemple, l’optimum est obtenu en une seule itération. Bien entendu, dans le cas général, il peut y en avoir plusieurs. 132
4.4 Problème du flot de valeur maximale
4.4.2 Théorème de Ford-Fulkerson Nous allons donner le théorème, dû à Ford et Fulkerson, justifiant l’algorithme pré senté plus haut. Rappelons les définitions et notations utilisées. Nous noterons, ici, s le sommet source 1 G2 1 s 2 5 [ 2 et p le sommet puits 1 1 G 1 p 2 5 [ 2 du réseau de transport. Pour tout arc (i, j) du réseau, cij est la capa cité cet arc et wij est son flux. Les contraintes que doivent respecter un flot sont les suivantes : 1. pour tout arc (i, j), on a : 0 < wij < cij
2. pour tout sommet i 2 s, p, on a : a wji 5 a wij (loi de Kirchhoff). jHG 2 (i)
jHG 1 (i)
Par définition la valeur d’un flot F 5 ( w1, c, wm ) , notée V ( F ) , est la quantité suivante : V ( F ) 5 a wsi. (Par abus de notation, dans cette partie, nous écrivons c, m). a wsi pour a wsi.) ; on a désigné par wk le flux sur l’arc uk (k 5 1, iPG11s2
Considérons S un sous-ensemble de sommets du réseau de transport contenant la source mais ne contenant pas le puits : s H S, p x S. Cet ensemble et son complé mentaire S 5 X 2 S forment une « coupe » et C(S), la « capacité » de cette coupe, est par définition : C ( S ) 5 a cij iPS, jPS
Montrons la propriété suivante : pour toute coupe 1 S, S 2 et tout flot , on a : V ( F ) 5 a wij 2 a wji. i HS, jxS
i HS, jxS
© Dunod – Toute reproduction non autorisée est un délit.
La valeur du flot, v ( F ) , égale la somme des flux sortants de S, diminuée de la somme des flux entrants dans S. En utilisant la loi de Kirchhoff pour chaque sommet i 2 s, appartenant à l’ensemble S, et la définition de la valeur du flot nous obtenons : V ( F ) 5 a wsi 1
a a wij 2 a wji b a (''')'''* i HS, i 2s 50
La source s n’ayant pas de prédécesseur A a wjs 5 0B, il vient : V ( F ) 5 a wij 2 a wji i HS
i HS
en décomposant chacune de ces deux sommes, suivant que j appartient ou non à l’ensemble S nous avons : V ( F ) 5 a wij 2 a wji 1 a wij 2 a wji i HS, jHS
i HS, jHS
i HS, jxS
i HS, jxS
133
Chapitre 4 • Applications des graphes à la recherche opérationnelle
les deux premières sommes étant identiques (chaque arc ( i, j ) , i H S, j x S, apparaît une fois dans chacune), nous obtenons : V ( f) 5 a wij 2 a wji i HS, jxS
i HS, jxS
Cette propriété montre que pour tout ensemble de sommets S contenant la source et ne contenant pas le puits, la somme des flux sortant diminuée de la somme des flux entrant est égale à la valeur du flot. Nous allons montrer une seconde propriété reliant la valeur d’une coupe à celle d’un flot. L’énoncé de cette propriété est le suivant : Pour toute coupe C (de capacité C(S)) et tout flot (de valeur V()), on a : C ( S ) > V ( F ) . En effet, pour tout arc (i, j) nous avons : 0 < wij < cij, d’où nous obtenons : C ( S ) 5 a cij > a wij > a wij 2 a wji 5 V ( F ) . i HS, jxS
i HS, jxS
i HS, jxS
i HS, jxS
On en déduit, en raisonnant par l’absurde, que s’il existe une coupe S* et un flot f tels que : C ( S* ) 5 V ( f* ) , alors f* est un flot de valeur maximale et S*, une coupe de capacité minimale. Nous sommes maintenant en mesure de montrer le théorème de Ford-Fulkerson qui s’énonce de la façon suivante : Dans tout réseau de transport, la capacité minimale des coupes est égale à la valeur maximale des flots. Soit F le dernier flot obtenu par appplication de l’algorithme, pour lequel il n’existe donc pas de chaîne améliorante. Nous avons déjà observé que dans ce cas, après l’application de la procédure de marquage, p n’est pas marqué. Considérons alors S l’ensemble des sommets marqués. s étant marqué, et p n’étant pas marqué, l’ensemble S et son complémentaire S (les sommets non marqués) sont non vides et définissent bien une coupe. Tout arc (i, j) avec i H S, j x S est nécessairement saturé, c’est-à-dire nous avons wij 5 cij car, sinon, j aurait été marqué. D’autre part, pour tout arc (j, i) avec j x S, et i H S, on a nécessairement wji 5 0, puisque j n’a pas été marqué. Nous obtenons alors : C ( S ) 5 a cij 5 a wij 2 a wij 5 V ( F ) . *
i HS, jxS
i HS, jxS
i HS, jxS
En utilisant la propriété précédente nous arrivons au résultat annoncé. Celui-ci justifie l’algorithme puisque l’algorithme se termine lorsqu’il n’y a plus de chaîne améliorante et permet d’exhiber une coupe et un flot de même valeur. Le flot consi déré à cette étape est donc optimal (de valeur maximale).
4.5 Flot
de valeur maximale à coût minimal
Dans de nombreux problèmes, outre les capacités limitées de transport, le coût d’acheminement d’une marchandise (ou d’une certaine quantité de produit) doit être pris en compte. Le problème de la recherche d’un flot maximal(1) à coût minimal per met de prendre en compte ce second objectif dans le cadre d’un réseau de transport. D’autant que, si la valeur maximale V * d’un flot est évidemment unique, il existe 134
4.5 Flot de valeur maximale à coût minimal
fréquemment de nombreux flots différents de même valeur V * ; parmi ceux-ci, il est intéressant d’en trouver un de moindre coût. Ce problème se formalise de la manière suivante : R est un réseau de transport où s et p désignent respectivement la source et le puits. À chaque arc (i, j) sont associées deux valeurs positives : 3 cij, pij 4 où cij est la capacité et pij est le coût unitaire associés à l’arc. Le coût d’un flot F s’obtient de la façon suivante : wij # pij est le coût du flux wij circulant le long de l’arc (i, j) ; le coût de F est alors la somme de ces coûts sur tous les arcs du réseau : a wij # pij. 1i, j2 La partie gauche de la figure 4.25 montre un réseau de transport dans lequel un flot de valeur 5 et de coût 20 est déterminé. Avant de donner un algorithme de résolution pour ce problème, nous allons revenir au problème du flot maximal1. Pour tout réseau de transport R nous définissons GeF, le graphe d’écart associé au flot F (nous supposerons R antisymétrique : il ne comporte pas de couple d’arcs (i, j) et (j, i) ; (si tel n’était pas le cas, nous pourrions y remédier en scindant l’arc (i, j) en deux arcs (i, k) et (k, j), tous deux de capacité cij et de coût 12 pij 2 . Le graphe d’écart GFe et le réseau de transport R ont les mêmes sommets. Pour tout arc (i, j) de R, les arcs du graphe d’écart et leur valuation sont obtenus de la façon suivante :
© Dunod – Toute reproduction non autorisée est un délit.
1. si 0 , wij , cij, alors GFe comporte un arc (i, j) de valuation rij 5 cij 2 wij et un arc (j, i) de valuation rji 5 wij 2. si wij 5 0, GFe comporte un arc (i, j) de valuation rij 5 cij, mais pas d’arc (j, i) 3. si wij 5 cij, GFe comporte un arc (j, i) de valuation rji 5 wij, mais pas d’arc (i, j). Nous pouvons remarquer que pour le flot nul : F 5 ( 0, c, 0 ) , le graphe d’écart et le réseau de transport coïncident.
Figure 4.25 À gauche, un flot F avec 4 arcs saturés ; à droite GFe le graphe d’écart associé
D’autre part il est aisé de constater qu’à une chaîne améliorante pour R corres pond un chemin de la source au puits dans GFe et réciproquement. Ainsi un flot est maximal si et seulement si il n’existe pas de chemin de s à p dans GFe . 1. Par abréviation, nous appelons ici flot maximal, tout flot de valeur maximale. 135
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Soit l’arc (i, j) du réseau de transport ; dans le graphe d’écart GFe le coût de l’arc (i, j) (qui existe si wij , cij) est 1pij et celui de l’arc (j, i) (qui existe si wij . 0) est 2pij. La figure 4.25 illustre cette construction ; le réseau de transport et le flot sont représentés à gauche, le graphe d’écart correspondant est à droite. Nous allons maintenant donner, sans le démontrer, le théorème de Roy fournis sant une condition nécessaire et suffisante d’optimalité : un flot F est de coût mini mal parmi les flots de valeur v ( f) , si et seulement si il n’existe pas de circuit de coût strictement négatif dans GFe . (NB. : ce théorème est énoncé pour tout flot F, F n’est donc pas nécessairement de valeur maximale.)
Figure 4.26 Un flot maximal de coût minimal
Pour le flot maximal de coût 20 considéré dans la figure 4.25, le circuit (A, S, B, A) est de coût 25 : en vertu du théorème précédent, ce flot n’est donc pas de coût minimal. En effet le flot maximal représenté dans la figure 4.26 est de coût 15. Ce dernier flot est maximal car son graphe d’écart ne comporte pas de chemin de S à P. (NB : les coûts des circuits du graphe d’écart associé sont alors positifs ou nuls). Nous allons donner un algorithme calculant un flot maximal de coût minimal dû à B. Roy puis, indépendamment, à R. Busacker et P. Gowen. Comme dans l’algorithme présenté pour la recherche d’un flot de valeur maximale, à chaque étape de l’algo rithme un flot F est calculé à partir d’un flot F9 en utilisant une chaîne améliorante (cf 4.4.1). Le choix de la chaîne améliorante utilisée fait que le graphe d’écart GeF associé n’a pas de circuit de coût strictement négatif. Cet algorithme est le suivant : 1. initialement F 5 ( 0, c, 0 ) ; GFe 5 R car on part du flot nul : wij 5 0 pour tout arc (i, j) ; 2. tant qu’il existe un chemin de s à p dans GFe faire 3. déterminer C, un chemin de coût minimal de s à p 4. modifier le flux sur tout arc (i, j) de C : si d 5 min rij, le flux est augmenté de 1i, j2 HC
d si (i, j) est un arc du réseau de transport ; le flux est diminué de d si (j, i) est un arc du réseau de transport. 5. tracer le graphe d’écart GFe du flot ainsi modifié. 136
4.5 Flot de valeur maximale à coût minimal
La détermination d’un chemin de coût minimal peut se faire en utilisant l’algo rithme de Ford présenté plus haut. Le lecteur remarquera que le calcul des nouveaux flux sur le chemin C se fait de manière analogue à celle présentée dans le paragraphe précédent consacré aux flots de valeur maximale. La figure 4.27 illustre sur l’exemple précédent le déroulement de l’algorithme. Les flèches épaisses correspondent, ici à chaque étape, au chemin de coût minimal de S vers P. (et non pas à des arcs saturés, comme plus haut).
Figure 4.27 Une exécution de l’algorithme de Roy-Busacker-Gowen
1. Poser f d f102. Pour tout arc u 5 (x, y) du réseau de transport, poser v(u) d w (x, y ). 2. Construire le graphe d’écart Ge(f) (comme dans le Fig. 4.25). 3. Tant que Ge(f) comporte un chemin de s vers p 4. choisir un tel chemin, soit : m
poser e 5 min v ( u ) ; uPm 5. pour tout arc u 5 (x, y) du chemin m faire v 1 x, y 2 d v 1 x, y 2 2 e ; si v 1 x, y 2 5 0, supprimer l’arc u dans Ge 1 f 2 ;
© Dunod – Toute reproduction non autorisée est un délit.
Remarquons enfin, en revenant au problème de flot de valeur maximale, que l’on peut aisément reformuler l’algorithme de Ford-Fulkerson en termes de graphe d’écart : soit f(0) le flot initial.
v ( y, x ) d v ( y, x ) 1 e ; si v ( y, x ) était nul, ajouter u dans Ge 1 f 2
Voici un exemple du problème de flot de valeur maximale, ci-dessous, avec un flot initial (arbitraire) f(0), traité par l’algorithme de Ford-Fulkerson reformulé en termes de graphe d’écart : 137
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Figure 4.28 Réseau de transport et flot f(0) de valeur 30
Figure 4.29 Graphe d’écart Ge 1 f 102 2 .
Ge 1 f102 2 comporte un (seul) chemin m de s vers p : m 5 1 s, A, C, B, D, p 2 ; on a : e 5 min 1 10, 5, 10, 10 2 5 5. La valeur du flot va donc être augmentée de 5 unités.
Voici le nouveau graphe d’écart Ge 1 f112 2 , il ne comporte pas de chemin de s à p : le flot associé f(1) est donc optimal, il est valeur v* 5 35. On nomme désormais S l’ensemble des sommets qu’on peut atteindre depuis s par des chemins ; ici S 5 5 s, A, C 6 ; S est aussi l'ensemble des sommets marqués quand on applique la procédure de marquage de Ford-Fulkerson au flot f(1).
Figure 4.30 Graphe d’écart Ge 1 f 112 2 . avec le cocircuit ( S, S ) en pointillé
138
4.6 Problèmes d’affectation
Voici, sur le réseau de transport, le flot optimal f(1) :
Figure 4.31 Flot optimal f(1) avec la coupe minimale ( S, S )
Notes. • L’arc (B, D) ne traverse pas en fait la coupe minimale puisque B et D H S. • À la coupe minimale du réseau de transport R correspond un « co-circuit » dans Ge 1 f* 2 . L’ensemble des arcs du graphe d’écart allant des sommets de S vers ceux de S est vide : U1S 5 [. Tout arc ayant une extrémité et une seule dans S est orienté dans le sens de S vers S. Ici S 5 5 s, A, C 6 et S 5 5 B, D, p 6 .
4.6 Problèmes d’affectation
© Dunod – Toute reproduction non autorisée est un délit.
Nous les présentons ici comme une application de l’algorithme de Ford-Fulkerson. Exemple. On désire procéder aux mutations de cinq personnes A, B, C, D et Ε, et on leur offre les postes a, b, c, d et e. Ces personnes désirant maximiser leur satisfaction, décident chacune de noter de 1 à 5 les postes offerts et obtiennent le tableau suivant regroupant leurs avis (tableau 4.1) ; la note 1 est donnée au poste préféré, …, la note 5 à celui le moins apprécié : Il est évident qu’il convient, pour a b c d e maximiser la satisfaction générale, de A 1 2 3 4 5 choisir un chiffre et un seul par ligne B 1 4 2 5 3 et par colonne, de manière à ce que la somme des cinq chiffres choisis soit C 3 2 1 5 4 minimale (si chacun pouvait obtenir D 1 2 3 5 4 le poste qu’il a classé n° 1, la somme minimale serait 5) ; mais c’est ici E 2 1 4 3 5 impossible : trois personnes ont classé Tableau 4.1 le poste a en premier. On ne change pas le problème en soustrayant, ligne par ligne, puis colonne par colonne, le plus petit élément de la ligne ou de la colonne (ceci se prouve aisément). 139
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Si l’on pouvait, dans le tableau 4.3 ainsi obtenu, choisir un zéro par ligne et par colonne, on aurait déjà la solution, mais ce n’est pas possible. De plus, nous savons déjà que le « coût » de l’affectation ne sera pas inférieur à 9 (somme des chiffres ôtés aux différentes rangées pour faire apparaître un zéro par ligne : 5, puis par colonne : 4, cf tableaux 4.2 et 4.3). Remarque. Le lecteur pourrait être tenté par l’énumération des solutions (qui, ici, demeurerait envisageable puisque 5 ! 5 120). Mais il devra se souvenir que 10 ! atteint déjà 3 628 800 et qu’il faudrait plus de quatre millions de siècles pour énumérer, à la vitesse d’un million de permutations par seconde, les affectations possibles sur un Tableau 25 3 25 (cf. chapitre 2 sur la com plexité). L’algorithme hongrois, exposé ci-dessous, permet de résoudre le pro blème en un temps raisonnable (même pour la dimension n 5 100). a
b
c
d
e
A
0
1
2
1
2
2
B
0
3
1
2
0
4
3
C
2
1
0
2
1
2
4
3
D
0
1
2
2
1
3
2
4
E
1
0
3
0
2
a
b
c
d
e
A
0
1
2
3
4
B
0
3
1
4
C
2
1
0
D
0
1
E
1
0
Tableau 4.2 On a soustrait 1 : le plus petit élément de chaque ligne
Tableau 4.3 On a ensuite soustrait le plus petit élément de chaque colonne (2 en colonnes d et e)
Affectons le zéro unique de la ligne A du tableau 4.3 ; nous ne pouvons plus affecter, sur la ligne B, que le zéro de la colonne e ; affectons encore le zéro unique de la ligne C ; nous ne pouvons plus affecter aucun zéro de la ligne D, l’unique zéro qu’elle contenait ayant été exclu de l’affectation par le choix du zéro de la ligne A ; enfin, sur la ligne E, nous avons le choix entre le zéro de la colonne b et celui de la colonne d ; retenons, par exemple, le premier. Mais nous n’avons affecté que quatre personnes, pas cinq… Nous n’avons pas obtenu la solution, mais il convient de vérifier qu’il est impos sible d’affecter davantage de zéros. Pour cela, considérons le réseau de transport comportant une source fictive O et un puits fictif S, dont les arcs, tous de capacité 1, correspondent, entre les sommets A, B, C, D, E, d’une part, et les sommets a, b, c, d et e, d’autre part, aux zéros du tableau 4.3 (figure 4.32) ; les autres arcs relient O à A, B, C, D et E, ainsi que a, b, c, d et e à S ; leur capacité est 1. Associons un flot dans ce réseau de transport, à l’affectation partielle ci-dessus. Ayant affecté les zéros comme au tableau 4.4, nous fixons à 1 le flux sur les arcs (A, a), (B, e), (C, c) et (E, b), qui sont saturés. 140
4.6 Problèmes d’affectation
© Dunod – Toute reproduction non autorisée est un délit.
Figure 4.32
Par suite, (O, A), (O, B), (O, C) et (Ο, E), d’une part, (a, S), (b, S), (c, S) et (e, S), d’autre part, sont aussi saturés. La procédure de marquage permet de marquer seulement : O (+), D (+O), a (+D) et A (–a). S n’est pas marqué ; nous avons donc bien un flot maximal, ce qui veut dire que, quels que soient les choix des zéros sur le tableau 4.3, nous n’arriverons pas à affec ter plus de quatre zéros. Pour résoudre le problème, nous devons maintenant avoir recours à la méthode hongroise. a b c d e Reprenons le tableau 4.4 où on a mentionné éga lement les zéros que nous avons dû éliminer A 0 pour les choix ultérieurs, par suite d’une affecta B 0 0 tion d’un autre zéro sur la même ligne ou la même C 0 colonne : ces zéros seront dits : zéros barrés ; les zéros affectés seront dits : zéros encadrés. La D 0 transposition du marquage de Ford-Fulkerson à E 0 0 ce tableau (zéro « barré » : arc de flux nul ; zéro « encadré » : arc saturé) fournit (cf Tab. 4.5) : Tableau 4.4 a) marquer 1 toute une ligne n’ayant pas de zéro encadré (ici la ligne D) ; a b c d e b) marquer ensuite 1 toute colonne ayant un zéro A 0 barré sur une ligne marquée (ici la colonne a) ; B 0 c) marquer alors – toute ligne ayant un zéro enca 0 dré dans une colonne marquée (ici, la ligne A) C 0 et revenons à b), etc., jusqu’à ce que le marquage D 0 ne soit plus possible (c’est le cas, dès à présent, dans l’exemple). E 0 0 En effet, a) correspond à pratiquer le marquage (1) pour les sommets x tels que l’arc (O, x) n’est pas Tableau 4.5 saturé : ici, seul (O, D) est dans ce cas : on a mar qué D ; b) correspond à pratiquer le marquage (1) pour les sommets y tels qu’il existe un arc (x, y) non saturé, si x est déjà marqué. Ici, seul (D, a) est dans ce cas : a est marqué 1 ; c) correspond à pratiquer le marquage (2) pour 141
Chapitre 4 • Applications des graphes à la recherche opérationnelle
les sommets x tels qu’il existe un arc (x, y) de flux non nul (donc ici saturé puisque tous les arcs ont pour capacité 1), si y est déjà marqué ; ici on a marqué – le sommet A. Cette correspondance est détaillée plus bas : sur les graphes des figures 4.33 et 4.34. a
b
c
d
e
A
0
1
2
1
2
B
0
3
1
2
0
C
2
1
0
2
1
D
0
1
2
2
1
E
1
0
3
0
2
Tableau 4.6
a
b
c
d
e
A
0
0
1
0
1
B
1
3
1
2
0
C
3
1
0
2
1
D
0
0
1
1
0
E
2
0
3
0
2
Traçons alors un trait sur les lignes non mar quées et les colonnes marquées (tableau 4.6). Le sous-tableau restant comprend les cases asso ciées aux arcs « utiles » c’est-à-dire tels que, si l’un d’eux était ajouté au graphe précédent, on pourrait marquer de nouveaux sommets. Consi dérons le plus petit nombre du tableau restant : retranchons-le de tous les éléments non rayés et ajoutons-les aux éléments rayés deux fois (tableau 4.7). Cela revient à ajouter au graphe le (ou les) arc(s) « utile(s) » de plus faible coût : il y a en quatre ici, ceux de coût 1 (tableau 4.6), dans le tableau restant. On obtient alors le tableau 4.7. Sur le tableau 4.7, il est maintenant possible d’affecter un zéro par ligne par colonne, et cela de trois manières différentes qui constituent les solutions équivalentes du problème, en ce sens qu’elles donnent toutes, en revenant au tableau 4.1, la somme (coût) 10.
On remarquera que le coût de 10 correspond bien à la somme de la borne inférieure 9 trouvée pré cédemment, et du plus petit élément soustrait pos Tableau 4.7 térieurement au tableau. Plus généralement, soit g la borne du coût lors d’une itération quelconque ; notons XM les sommets marqués du premier niveau et YM , ceux du second niveau. On montre que la borne inférieure du coût passe de g à g 1 a ( Card XM 2 Card YM ) où a est le plus petit coût du « tableau restant », c’est-à-dire du sous-tableau dont les lignes sont marquées (XM) et dont les colonnes ne sont pas marquées ( Y M ) ; le lecteur pourra prouver que nécessairement on a : Card XM . Card YM. Au cas où le Tableau 4.7 n’aurait pas fourni la solution, il aurait fallu reprendre l’algo rithme, après avoir affecté le plus possible de zéros, (ce que l’on vérifie en résolvant un problème de flot maximal comme ci-dessus), à la procédure de marquage, et ainsi de suite jusqu’à l’obtention de la solution (qui nécessite en général plusieurs itérations). Une solution optimale consiste à affecter : A à a ; B à e ; C à c ; D à b et Ε à d. Elle a pour coût 10. Telle est la méthode hongroise, à laquelle on a donné ce nom en souvenir de deux mathématiciens hongrois, Egervary et König, qui ont contribué, avec Kuhn, à en fonder la théorie. 142
4.6 Problèmes d’affectation
Nous n’avons pas l’intention de démontrer ici la validité de l’algorithme, mais le lecteur sera sûrement intéressé de constater que la colonne rayée correspond au sommet marqué (1D) , soit a, et que les lignes non rayées correspondent également aux sommets marqués (2a) et (1O), soient A et D (figure 4.33), d’après le marquage réalisé à partir de la figure 4.32.
Figure 4.33
La figure 4.34 présente la situation de telle sorte qu’il est visible que, pour résoudre le problème, il importe de trouver l’arc de moindre coût (ou un arc de moindre coût) entre l’ensemble des sommets marqués du premier niveau, soit ΧM, et l’ensemble des sommets non marqués du second niveau, soit Y M : on vise à effectuer une augmentation du flot en utilisant cet arc (ou l’un de ces arcs) par une progression du marquage. En regroupant le tableau des coûts sous la forme correspondant à la figure 4.34, on obtient le tableau 4.8. On voit que l’on ne change rien à la situation existant entre les sommets marqués si l’on soustrait le plus petit élément des éléments non rayés de la matrice et si on l’ajoute aux éléments rayés deux fois. En effet, dans les cases YM YM (A, a) et (D, a), le coût d emeurera 0. a b c d e Mais on crée ainsi quatre arcs de coût zéro entre l’ensemble des sommets mar A 0 1 2 1 2 1 XM qués du premier niveau et l’ensemble des D 0 1 2 2 1 1 sommets non marqués du second niveau ; B 0 3 1 2 0 ce sont les arcs : (A, b) ; (A, d) ; (D, b) ; (D, e). XM C 2 1 0 2 1 Les échanges concernant le flot les plus E 1 0 3 0 2 simples sont les suivants (au choix) : 1 1) faire circuler un flux saturant de 1 sur (A, d), saturant (d, S) ; faire circuler un flux Tableau 4.8 saturant de 1 sur (O, D) et saturer (D, a) ;
© Dunod – Toute reproduction non autorisée est un délit.
Figure 4.34
143
Chapitre 4 • Applications des graphes à la recherche opérationnelle
2) ou bien faire circuler un flux saturant de 1 sur (O, D) et saturer (D, b), reporter le flux saturant de 1 de (E, b) à (E, d), ce qui sature (d, S). 3) Une troisième possibilité nous est offerte : Saturer (A, b) et (O, D) ; acheminer le flux de (O, D) sur (D, a) ; enfin reporter le flux de (E, b) à (E, d), ce qui sature (d, S). L’arc (D, e) ne permet pas de modification intéressante, car le coût de l’arc (B, d) est 2 et non 0. On a donc 3 solutions (de coût 10) : [A-a, B-e, C-c, D-b, E-d] ou [A-b, B-e, C-c, D-a, E-d] ou [A-d, B-e, C-c, D-a, E-b]. Remarques. 1. Le lecteur pourra constater l’analogie de cette méthode avec l’algorithme de Roy (Busacker-Gowen) présenté au paragraphe 4.5. En effet, un pro blème d’affectation à coût minimal peut être modélisé par un problème de flot maximal de coût minimal. Le réseau de transport associé au problème d’affectation est obtenu comme ci-dessus (fig. 4.32) de la façon suivante : la source Ο du réseau a pour successeurs les sommets correspondant aux lignes du tableau, le puits S a pour prédécesseurs les sommets correspondant aux colonnes ; tout sommet correspondant à une ligne a pour successeurs tous les sommets (qui correspondent aux colonnes) ; ainsi à toute case du tableau correspond un arc dans le réseau de transport ; les capacités des arcs valent toutes 1 ; les coûts unitaires associés aux arcs sont les suivants : 0 pour les arcs ayant la source Ο pour origine ou le puits S pour extrémité ; le coût pij associé à l’arc (i, j) est le coefficient de la case situé sur la ligne i et la colonne j du tableau initial des coûts. L’affectation partielle donnée dans le tableau 4.4 correspond au flot repré senté par la figure 4.32. Ce flot est obtenu après 4 itérations de l’algorithme de Roy (Busacker-Gowen). À chacune de ces itérations, le chemin de coût minimal dans le graphe d’écart était de coût 0. À cette étape, le flot de valeur 4 n’est pas maximal. Le chemin de coût minimal dans le graphe d’écart, cor respondant au flot représenté par la figure 4.32, est le chemin (O, D, b, E, d, P) de coût 1. Le flot suivant est alors de valeur maximale 5 et de coût mini mal 10. Ce flot correspond à l’affectation représentée dans le tableau 4.7 2. La démonstration de la validité de l’algorithme hongrois (ou « méthode hongroise ») présente une analogie intéressante avec celle de l’algorithme de Ford-Fulkerson ; le lecteur intéressé pourra se reporter à [1].
4.7 Notions d’arbre
et d’arborescence
Nous approfondissons des notions que nous avions définies au chapitre 3. Au préalable définissons le “nombre cyclomatique” d’un graphe G : V ( G ) . Si G comporte n sommets, m arcs et p composantes connexes, on pose V 1 G 2 5 m 2 n 1 p. Par récurrence on peut montrer que V 1 G 2 5 0 si et seulement si G nra pas de cycle et V 1 G 2 5 1 si et seulement si G comporte un cycle unique.
144
4.7 Notions d’arbre et d’arborescence
4.7.1 Arbre. Définition et propriétés élémentaires Étant donné un graphe non orienté de n sommets 1 n > 2 2 , on obtient un arbre en « connectant » tous les sommets sans former de cycle (c’est-à-dire en reliant les sommets deux à deux par des arêtes). Par définition, un arbre est un graphe connexe et sans cycle. Un arbre comporte n 2 1 arêtes. En effet, G est connexe entraîne p 5 1 ; G est sans cycle entraîne V ( G ) 5 0, d’ou V 5 m 2 n 1 1 et m 5 n 2 1. Une définition équivalente d’un arbre est qu’il constitue un graphe connexe de n 2 1 arêtes. En effet p 5 1 et m 5 n 2 1 entraîne V ( G ) 5 m 2 ( n 2 1 ) 1 1 5 0 : donc G est sans cycle. Une propriété qui nous sera utile pour les applications (cf. les programmes de transport) est que l’addition à un arbre d’une arête entre deux sommets (en particu lier, deux sommets non-adjacents dès que n > 3) crée un cycle et un seul. En effet, si l’on relie par une arête supplémentaire les deux sommets d’un arbre on crée un cycle unique : ces deux sommets, dans l’arbre, étant reliés par une chaîne unique, l’addi tion d’une arête crée alors un cycle et un seul. En effet V ( G ) 5 0 ; l’ajout d’une arête se traduit par : m r 5 m 1 1 et V ( Gr ) 5 V ( G ) 1 1 5 1. Il est aisé de prouver que dans un arbre deux sommets quelconques x et y sont reliés par une chaîne unique : s’il n’existait pas de chaîne entre x et y le graphe ne serait pas connexe (or un arbre est connexe par définition). S’il existait plusieurs chaînes entre x et y, on pourrait alors exhiber au moins un cycle (or un graphe est sans cycle par définition). Dans l’exemple de la figure 4.35, l’addition de l’arête [D, P] crée un cycle et un seul : [D, C, B, E, G, H, L, P, D]. Dans l’arbre, D et P sont reliés par une chaîne unique :
© Dunod – Toute reproduction non autorisée est un délit.
[D, C, B, E, G, H, L, P].
4.7.2 Arborescence
Figure 4.35
Dans un graphe G 5 (X, U), on nomme « racine », tout sommet à partir duquel part au moins un chemin vers tout autre sommet. Un graphe peut comporter 0 ou 1 ou plu sieurs racines ; ainsi dans un graphe fortement connexe, tout sommet est une racine ; dans un « réseau de transport » (cf Flot 4.4.1) la source est une racine, alors unique. On définit une « arborescence » comme un graphe qui, sans son orientation, est un arbre et, avec son orientation, comporte une racine. Cette racine est unique (sinon si r et rr étaient deux racines différentes, par r et r’ passerait un circuit et le graphe sans l’orientation comporterait un cycle, ce qui 145
Chapitre 4 • Applications des graphes à la recherche opérationnelle
contredit le fait qu’une arborescence soit, sans l’orientation, un arbre. En recherche opérationnelle on utilise fréquemment la notion d’arborescence (d’ailleurs nous avons déjà dû nous en servir plus haut). Nous en donnons plus loin (au paragraphe 4.10), une autre application : au fameux « problème du voya geur de commerce » (« Traveling Salesman Problem », ou « TSP »). Notons un abus de langage : la plupart des « arbres » des informaticiens sont en fait des arborescences, au sens de la théorie des graphes.
4.8 Applications
r
Figure 4.36
aux arbres optimaux
En recherche opérationnelle, on rencontre assez souvent des problèmes faisant appel à la notion d’arbre de valeur minimale, par exemple en optimisation des réseaux. Étant donné un graphe valué G 5 (X, V), de n sommets et connexe, on veut construire, en utilisant n 2 1 de ses arêtes, un arbre dont la somme des valeurs (ou coûts) des arêtes sera minimale. En 1956, J.B. Kruskal a donné un algorithme simple pour résoudre ce problème. Il consiste à : a) établir une liste des arêtes par valeurs croissantes ; b) choisir une arête de valeur minimale puis, successivement, au fur et à mesure de la construction de l’arbre, l’arête suivante dans la liste ne formant pas un cycle avec les arêtes retenues jusque-là. S’arrêter lorsque tous les sommets du graphe sont connec tés (ou, ce qui revient au même, lorsque le nombre d’arêtes retenues égale n 2 1). Pour un exemple se reporter à la Fig 4.37. Il s’agit du premier exemple de « méthode gourmande » (ou « gloutonne » ; en anglais : « greedy algorithm »), car à chaque pas on choisit l’élément le plus intéres sant (comme si l’on prenait le plus gros morceau dans le partage d’un gâteau). Un autre algorithme a été proposé en 1961, par G. Sollin, alors chef de travaux au CNAM, pour optimiser des réseaux de canalisation ; le voici : Initialement aucun sommet n’a été « retenu ». a) Choisir arbitrairement un sommet x en dehors de ceux qui ont déjà été retenus ; relier, par l’arête de valeur la plus faible, ce sommet x à l’un des sommets (déjà retenu ou non) auxquels il est adjacent ; soit y ce dernier sommet : y est alors « retenu », de même que x. b) Lorsque tous les sommets ont été retenus : – soit on a obtenu un arbre et le problème est résolu : cet arbre est de coût minimal. – soit on a seulement plusieurs sous-arbres. Contracter chacun en un sommet unique ; créer le multigraphe1 dont chaque sommet est associé à l’un de ces sous-arbres et dont 1. On appelle multigraphe un graphe dont deux sommets au moins sont reliés par plus d’un arête. 146
4.8 Applications aux arbres optimaux
les arêtes sont les arêtes du graphe initial, susceptibles de connecter deux à deux ces sous-arbres (elles ont la même valeur dans le graphe initial et dans le sous-graphe). Passer à a). La validité de cet algorithme est justifiée comme suit : la procédure, qui est néces sairement finie, ne peut engendrer que des sous-arbres (ou un arbre) puisque, à chaque étape, on prend un sommet x non encore retenu et donc on ne peut pas ainsi créer un cycle. On montre, par l’absurde, qu’à chaque étape de l’algorithme ces sous-arbres sont optimaux. Finalement, on construit un arbre à partir de ses sous-arbres optimaux. Exemple. Considérons un graphe G 5 (X, U ), dont les arêtes sont valuées par des coûts ; on veut trouver dans ce graphe, qui représente le projet d’un réseau de distri bution, un arbre de coût minimal (fig. 4.37).
© Dunod – Toute reproduction non autorisée est un délit.
Figure 4.37
Opérons selon l’algorithme de Kruskal : La liste par coûts croissants est : [B, E] : 1 ; [B, F] : 2 ; [A, F] : 3 ; [B, C] : 3 ; [C, E] : 3 ; [D, G] : 3 ; [E, F] : 3 ; [D, E] : 4 ; [F, G] : 4 ; etc. La première arête choisie est [B, E] ; puis [B, F], puis [A, F], puis [B, C] ; on rejette [C, E] qui forme un cycle avec les arêtes déjà retenues ; puis on prend [D, G], on rejette [E, F], puis on prend [D, E] : fin car n 2 1 5 6 arêtes ont été retenues ; l’arbre optimal a pour coût 16 (cf fig. 4.37, à droite). Opérons maintenant selon l’algorithme de Sollin : 1) choix dans X de A : sélection de l’arête [A, F] ; 2) choix dans X 2 5 A, F 6 de B : sélection de l’arête [B, E] ; 3) choix dans X 2 5 A, F, B, E 6 de C : sélection de l’arête [C, B] ; 4) choix dans X 2 5 A, F, B, E, C 6 de D : sélection de l’arête [D, G]. La liste des sommets est épuisée : on a trois sous-arbres entre lesquels subsiste un certain nombre d’arêtes (ici, toutes les autres, sauf [C, E], qui, si on l’ajoutait, forme rait un cycle dans l’un des sous-arbres) : cf fig. 4.38. Nous désignerons maintenant par a, b et g les sous-arbres {A, F}, {B, C, E} et {D, G}, considérés désormais comme les sommets d’un multigraphe (figures 4.38 et 4.39, avant et après « contraction »), formé par ces sommets et les arêtes qui les relient entre eux. Ce sont, on le voit, toutes les arêtes autres que celles déjà retenues, à l’exception de [C, E] qui ne relie pas deux sous-arbres (et, pour cette raison, ferme un cycle dans {B, C, E}). 147
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Figure 4.38
Figure 4.39
Sélectionnons, par exemple, le sommet a. L’arête de valeur la plus faible adjacente à a est [B, F], de valeur 2, qui relie a à b : on la retient. Prenons un sommet, en dehors de {a, b} ; seul reste g. L’arête de valeur la plus faible adjacente à g est [F, G], de valeur 4 : on la retient. On obtient finalement l’arbre de la figure 4.40, de coût 16, en ajoutant [B, F] et [F, G] aux trois sousFigure 4.40 arbres de la figure 4.38. Il y a d’autres solutions de même coût : [F, G] peut être remplacée par [D, E] (cf partie droite de la fig. 4.37) et [B, C] par [C, E]. Nous présentons maintenant un dernier algorithme, lui aussi très simple, dû à Prim : 1. marquer arbitrairement un sommet 2. tant qu’il existe un sommet non marqué faire 3. choisir une arête de coût minimal ayant une de ses deux extrémités marquée et l’autre non marquée et l’inclure dans l’arbre en formation ; marquer cette autre extrémité. Il est aisé de montrer que l’ensemble des arêtes choisies à l’issue de l’algorithme constitue un arbre de coût minimal. Un exemple d’exécution de l’algorithme est présenté dans la figure 4.41 Les som mets marqués sont grisés et les arêtes choisies sont en trait épais. On a pris arbitrai rement F comme sommet initial. L’arbre optimal ainsi obtenu a pour valeur (ou coût) 16, comme avec l’algorithme de Kruskal et celui de Sollin. Mais il diffère de l’arbre optimal de Sollin ; cependant en remplaçant l’arête [F, G] dans la Fig 4.40, par l’arête [D, E] de même coût (égal à 4), on obtient l’arbre optimal de Prim de la Fig 4.41 (qui est le même que celui fourni par l’algorithme de Kruskal). En utilisant des structures de données appropriées, la complexité des algorithmes présentés est O(m log m) pour l’algorithme de Kruskal et O 1 m 1 n log n 2 pour celui dû à Prim. Le lecteur pourra consulter [8] pour trouver les arguments justifiant ces complexités. 148
4.9 Les programmes de transport
© Dunod – Toute reproduction non autorisée est un délit.
Figure 4.41 Une exécution de l’algorithme de Prim
Le lecteur aura certainement remarqué que les trois algorithmes que nous venons de présenter, basés tous les trois sur une stratégie « gourmande » (on dit aussi : « glou tonne » ; en anglais : « greedy »), se révèlent particulièrement efficaces. Le lecteur consul tera les chapitres consacrés aux matroïdes dans les ouvrages traitant d’algorithmique [8] ou de théorie des graphes pour trouver les justifications théoriques de cette efficacité.
4.9 Les
programmes de transport
Les notions sur les arbres, présentées dans les paragraphes précédents, vont nous être utiles pour résoudre un problème pratique des plus courants en recherche opération nelle : celui des programmes de transport, que nous définissons ci-dessous. 149
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Entre m origines (dépôts) et n destinations (clients) constituant les sommets d’un graphe biparti, (rappelons qu’un graphe est dit biparti si ses sommets sont partagés en deux classes, à l’intérieur de chacune desquelles les sommets ne sont pas deux à deux adjacents), on peut tracer m 3 n arcs qui symbolisent les liaisons que l’on peut employer pour transporter des marchandises de chaque origine vers chaque desti nation. On pourrait aussi compléter ce graphe sans boucle par une entrée et une sortie pour obtenir un réseau de transport. Mais le problème que l’on se pose maintenant n’est plus celui du flot optimal, et cette transformation ne serait ici d’aucune utilité. En effet dans les programmes de transport, les capacités des arcs sont supposées illimitées, mais chaque arc est valué par le coût unitaire du transport sur la liaison qu’il représente. Ce que l’on cherche est une solution à coût minimal. Dès 1776, G. Monge s’était attaqué à ce problème, mais en continu, c’est-à-dire en considérant le déplacement de volumes infinitésimaux dv ; il avait dû bâtir la théo rie nouvelle des congruences de normales pour le résoudre. Aujourd’hui, on envisage le problème discret qui consiste à transporter des unités indivisibles (m3 ou tonnes par exemple) et ainsi le problème se formule en nombres entiers. Sous cette forme, c’est A. Tolstoï qui l’a publié en 1939, L.V. Kantorovitch et F.L. Hitchcock le précisant de nouveau en 1941, avec Koopmans. Pratiquement et sans perte de généralité, on se ramène toujours au cas où l’offre égale la demande : le total général des quantités disponibles aux origines correspond au total général des demandes aux différentes destinations. S’il n’en était pas ainsi, il suffirait de créer soit une destination fictive (cas de l’excès des disponibilités) soit une origine fictive (cas de l’excès des demandes), en affectant à ce sommet fictif la diffé rence entre les deux totaux généraux et en valuant les relations nouvelles par un coût nul, de manière à ne pas troubler le processus de minimisation du coût de transport des quantités effectivement transportées. À titre d’exemple, nous examinerons le problème suivant : assurer, au moindre coût, les transports des quantités demandées aux dépôts (clients) numérotés de 1 à 6, à partir des usines de I à IV, connaissant les disponibilités de ces usines et les coûts de transport unitaires de toute origine à toute destination. Matrice des coûts unitaires Quantités i j 1 2 3 4 5 6 disponibles (ai)
Quantités demandées (bj) 150
I
12
27
61
49
83
35
18
II
23
39
78
28
65
42
32
III
67
56
92
24
53
54
14
IV
71
43
91
67
40
49
9
9
11
28
6
14
5
73
4.9 Les programmes de transport
a) On observe que la somme des demandes (ici 73) est égale à la somme des dispo nibilités. On note m le nombre d’origines et n celui des destinations. b) Soient ai les quantités disponibles, bj les quantités demandées, cij les coûts de transport ; la solution du problème revient à trouver les valeurs numériques des mn nombres non négatifs xij qui représente la quantité livrée depuis l’origine i à la des tination j, tels que :
a ai 5 a bj : offre 5 demande
(4.1)
c, m 2 a xij 5 ai 1 i 5 1, 2,
(4.2)
m
n
i51
j51
toute origine i livre entièrement sa quantité disponible ai :
n
j51
à toute destination j est livrée toute sa demande bj :
a xij 5 bj ( j 5 1, 2, m
i 51
c, n )
(4.3)
et que la fonction économique (coût global du transport) :
© Dunod – Toute reproduction non autorisée est un délit.
# a a cij xij 5 z m
n
i 51 j51
(4.4)
soit minimale. Nous verrons plus tard que ce type de problème appartient à la classe des pro grammes linéaires, mais il n’est pas nécessaire de lui appliquer les méthodes géné rales de la programmation mathématique : ce que nous nous garderons de faire, même si l’on peut interpréter les méthodes particulières qui vont suivre en termes de programmation mathématique. Considérations préliminaires Pour résoudre un tel problème, on peut tout d’abord d’obtenir une solution admissible, c-à-d conforme aux relations (4.1), (4.2) et (4.3) sans se préoccuper de la fonction éco nomique (4.4). Pour qu’une telle solution soit utilisable pour la suite de l’algorithme, il convient qu’elle ne soit pas dégénérée, c’est-à-dire qu’elle comporte exactement : n # m 2 1n 1 m 2 12 5 1n 2 12 # 1m 2 12
variables nulles1, et donc m 1 n 2 1 variables positives. Nous verrons d’ailleurs que, sur le graphe biparti associé à une solution, seule une solution de base, c’est-à-dire répondant à la condition ci-dessus, fournit un arbre. Il existe une méthode extrêmement facile pour en obtenir une ; malheureusement elle n’a pas de but économique, alors que nous serons ensuite confrontés à un pro
1. Il y a n # m inconnues, liées par n 1 m relations ; mais ces n 1 m relations ne sont pas indépen dantes, puisque la somme des seconds membres des n premières est la même que la somme des seconds membres des m autres, il y a au plus n 1 m 2 1 relations indépendantes. Il doit donc y avoir, dans une solution admissible, au moins n # m 2 ( n 1 m 2 1 ) variables nulles. 151
Chapitre 4 • Applications des graphes à la recherche opérationnelle
blème économique. Décrivons-la néanmoins pour introduire les éléments théoriques de la question. Il s’agit de la procédure dite du coin Nord-Ouest, consistant à transporter d’abord sur la relation (I, 1) (qui est le coin Nord-Ouest du tableau) la quantité maximale possible, c’est-à-dire le minimum du couple (demande, disponibilité), soit ici min(9, 18) 5 9 ; puis, le dépôt 1 étant servi et l’usine I étant encore approvisionnée de 9 unités, à transporter sur la relation (I, 2), min(11, 9) 5 9. Cette fois, c’est l’usine I dont le stock est épuisé, mais il manque 2 unités au dépôt 2, qu’on acheminera sur la relation (II, 2) et ainsi de suite… On aboutit au tableau ci-dessous : On constate que, dans le cas i j 1 2 3 4 5 6 ai général, cette procédure se tra duit, à chaque choix d’une rela 0 0 0 0 I 9 9 18 tion, par l’élimination d’une 0 0 0 II 2 28 2 32 destination ou bien d’une ori 0 III 0 4 10 14 gine et, parfois, des deux (sauf 0 0 toutefois lors de la dernière IV 0 0 0 0 4 5 9 affection : au coin Sud-Est, bj pour laquelle on achève de ser 9 11 28 6 14 5 vir le dernier dépôt en épuisant solution de base obtenue par la le stock de la dernière usine). méthode du coin Nord-Ouest : tableau des [xij] Elle donne une solution sans cycle, qui est ici une solution de base. En effet, elle a conduit ici à sélectionner en tout m 1 n 2 1 relations utilisées pour les transports, alors qu’on ne transporte rien sur les autres, ce qui correspond bien à la condition selon laquelle il faut exactement n # m 2 1 n 1 m 2 1 2 5 1 n 2 1 2 1 m 2 1 2 variables nulles dans la solution. Dans l’exemple ci-dessus, m 5 4, n 5 6 ; on doit avoir 3 3 5 5 15 « zéros » (c’est-à-dire xij nuls) dans la solution : on le vérifie aisément. La figure 4.42 montre que le graphe du transport effectif est bien un arbre puisque nous avons un graphe sans cycle (ou encore connexe) de N 5 n 1 m sommets et N 2 1 5 n 1 m 2 1 arêtes (rappelons que, par définition, un arbre est connexe et sans cycle). Ses 9 arêtes représentent les 9 liaisons (i, j) telles que : xij > 0. Bien entendu, le tableau ci-dessus donnant les quantités transportées xij vérifie les équations (4.1), (4.2) et (4.3) : 1.
a ai 5 18 1 32 1 14 1 9 5 73 ; 4
i 51 6
a bj 5 9 1 11 1 28 1 6 1 14 1 5 5 73,
j51
152
car on avait pris a ai 5 a bj : l’offre est, ici, égale à la demande ; 4
6
i 51
j51
4.9 Les programmes de transport
a x1j 5 9 1 9 1 0 1 0 1 0 1 0 5 18 5 a1 ; 6
2.
j51 6
a x2j 5 0 1 2 1 28 1 2 1 0 1 0 5 32 5 a2 ; etc.
3.
j51 4
a xi1 5 9 1 0 1 0 1 0 5 9 5 b1 ;
i 51 4
a xi2 5 9 1 2 1 0 1 0 5 11 5 b2 ; etc.
i 51
et, rappelons-le, nous ne nous sommes, jusqu’à présent, pas occupé du seul problème de recherche opération nelle que contient la question, c’est-à-dire la minimisa tion du coût de transport. Dans chaque programme de transport, il y aura donc nécessairement une phase d’optimisation. Nous allons indiquer comment la théorie des graphes va faciliter le travail. Monétairement, la solution que nous avons trouvée coûte : 9 3 12 1 9 3 27 1 2 3 39 1 28 3 78 1 c 1 5 3 49 5 3 700 u.m.
Figure 4.42 Arbre associé à la solution de base du coin Nord-Ouest.
mais on peut imaginer, du moment qu’elle a ignoré le coût de transport, que des modifications ultérieures vont pouvoir améliorer ce coût... Or, comment la modification la plus élémentaire se présente-t-elle? Admettons qu’on veuille transporter une unité de marchandise sur la relation (I, 3) jusqu’à présent inutilisée. Si nous réalisions cette opération, il nous faudrait retrancher une unité transportée sur la relation (I, 2) et également sur la relation (II, 3), de manière à ne pas changer les totaux des xij sur la ligne I et dans la colonne 3 ; il faudrait aussi ajouter une unité sur la relation (II, 2) de manière à rétablir l’équilibre sur la ligne II et dans la colonne 2.
© Dunod – Toute reproduction non autorisée est un délit.
22 2 33 3 22 2 33 3 22 2 33 3 27 2761 61 61 II I 99 9 00 099 9 II I99 911 1 1 1199 9II I27 1 28 1 30 IIII II39 39 3978 78 78 21128 28 1130 30 30 IIII II 22 228 28 28 30 30 IIII II22 Extrait du tableau des [xij] (avant modification)
(modification unitaire)
22 2 33 3 II I 00 0 99 999 9 30 IIII II11 11 1119 19 19 30 30
Extrait du tableau Extrait du nouveau des coûts [cij] tableau des [xij] (après modification maximale)
D’autre part, nous sommes en mesure d’évaluer le coût marginal dI,3 de l’opéra tion, puisque nous connaissons les coûts unitaires de transport pour toutes les rela tions. On a donc dans ce cas : d I, 3 5 cI3 1 cII2 2 cI2 2 cII3 5 161 1 39 2 27 2 78 5 100 2 105 5 2 5,
153
Chapitre 4 • Applications des graphes à la recherche opérationnelle
ce qui signifie que l’on va gagner 5 unités monétaires pour chaque unité transportée sur la relation (I, 3). Sur combien d’unités ce gain peut-il porter ? On le voit, à la relation (I, 2) : on ne peut soustraire que 9 unités transportées (au lieu de 28 sur (II, 3)) ; le gain maximal résultant de cet échange portera donc sur 9 unités et se montera à 9 3 5 5 45 unités monétaires. Remarquons d’ailleurs que seul un échange libérant l’une des relations auparavant sélec tionnés conduit de nouveau à une solution de base (dans le cas présent, avec 15 zéros). Mais à quelle modification le transfert unitaire envisagé cidessus correspond-il sur le graphe de la figure 4.42 ? Simple ment à l'ajout d’un arc (I, 3), ce qui engendre un cycle et un seul dans l’arbre représentatif de la solution, comme nous l’avons souligné en 4.7.1. Ce cycle (I, 3), (3, II), (II, 2), (2, I) a deux arêtes parcourues dans le sens des flèches, deux autres parcou Figure 4.43 rues en sens inverse (fig. 4.43). Du point de vue des quantités, la loi de Kirchhoff est respectée : il y a équilibre entre 11 et 21, en chacun des quatre sommets I, 3, II et 2. Monétairement, on ajoute les coûts d’une unité sur les arcs (I, 3) et (II, 2) et l’on en retranche les coûts sur les arcs (I, 2) et (II, 3) : on retrouve exactement 25. Mais la structure d’arbre va encore faciliter les calculs. En effet, un arbre constitue un graphe sur lequel on peut définir, fixant arbitrairement le potentiel d’un sommet et les différences de potentiel entre les sommets adjacents, un ensemble unique de poten tiels (à une constante additive près). La propriété est triviale et résulte d’ailleurs du fait que, dans un arbre, il existe une chaîne et une seule entre deux sommets quelconques. Considérons alors le réseau « électrique » formé par l’arbre de la figure 4.44 ; sur chaque arc, indiquons la différence de potentiel qui est égale au coût unitaire de transport sur la relation correspondante. De plus, fixons arbitrairement à 0 le potentiel du som met II : UII 5 0. On peut ainsi, de proche en proche, calculer le potentiel de tous les autres sommets, notés Ui pour les sommets du premier niveau et Vj pour ceux du second niveau ; pour tout arc (i, j) de l’arbre on aura : Vj 2 Ui 5 cij. Mais alors, lorsque nous rajoutons la relation (I,3), Figure 4.44 du coût 61, on peut écrire : d I, 3 5 UI 1 cI, 3 2 V3 5 12 1 61 2 78 5 25. et plus précisément : d i, j 5 Ui 1 cij 2 Vj 5 cij 2 1 Vj 2 Ui 2 formule qui permettra de calculer rapidement le coût marginal di,j de toute relation (i, j) inutilisée c-à-d telle que xij 5 0, sans avoir à rechercher le cycle de substitution (ce qui peut être long). Ainsi, pour la relation (I, 6) : d I, 6 5 UI 1 cI, 6 2 V6 5 12 1 35 2 66 5 219, Ui
154
i
j
Vj
4.9 Les programmes de transport
ce qui résume en fait le calcul ci-dessous associé au cycle de substitution de la rela tion (I, 6), qui est de longueur 8 ; on obtient ce cycle en rajoutant l’arc (I, 6) à l’arbre ci-dessus : [I, 6, IV, 5III, 4, II, 2, I] : d I,6 5 cI6 2 cIV6 1 cIV5 2 cIII5 1 cIII4 2 cII4 1 cII2 2 cI2 5 35 2 49 1 40 2 53 1 24 2 28 1 39 2 27 5 219. Nous profiterons de toutes ces remarques dans les applications. On en déduit une méthode d’améliorations successives de la solution initiale, permettant de passer d’une solution de base à une autre solution de base plus éco nomique, qui nécessitera, à chaque étape, de déterminer tous les coûts marginaux di,j, pour les relations inutilisées, et, d’après les quantités déplaçables sur le cycle de substitution, le gain total correspondant à chacun de ceux qui sont négatifs. On choisira à chaque pas la meilleure modification possible. Si tous les di, j deviennent non-négatifs, on peut montrer qu’on a atteint l’optimum. Cet optimum sera unique si tous les di, j sont strictement positifs à la dernière étape ; il y aura plusieurs solutions équivalentes si certains sont égaux à 0. La démonstration de la convergence de cet algorithme, qui serait très aisée si le coût total du transport diminuait strictement à chaque étape, est compromise par le fait qu’il se présente, comme on le verra ci-dessous, des risques de retour à une solu tion déjà rencontrée antérieurement, si le coût total de transport ne varie pas pour certains échanges : il s’agit du cas de solutions dégénérées. Remarque. Jusqu’à présent nous n’avons pas encore envisagé le cas où la solution initiale obtenue ne serait pas une solution de base, c’est-à-dire com porterait plus de zéros qu’il n’en faut. Tel serait le cas du problème considéré plus haut si l’on échangeait la première ligne contre la troisième et la première colonne contre la cinquième avant d’appliquer la méthode du coin Nord-Ouest. i
j 5
1
2
3
4
6
ai
© Dunod – Toute reproduction non autorisée est un délit.
III 53 67 56 92 26 54 14
j 5
i
2
3
4
6
I
II 65 23 39 78 28 42 32 IV 40 71 43 91 67 49 9 bj 14 9 11 28 6 3
II IV bj 14
ai 14
III 14
I 65 12 27 61 49 35 18
Tableau des cij (réordonné)
1 9
2 9
18
9 28
11 28
32
2 4
5
6
5
9
Tableau des xij
On obtiendrait une solution dégénérée, avec 16 zéros au lieu de 15, dont le graphe comprendrait deux sous-arbres, ce qui ne permettrait plus de calculer tous les di,j. Bien entendu, une telle solution dégénérée peut se présenter aussi à une itéra tion quelconque de la résolution du problème. 155
Chapitre 4 • Applications des graphes à la recherche opérationnelle
La manière de remédier à cette situation est simple. Elle consiste à « reconnecter » les sous-arbres, de manière à obte nir de nouveau un arbre. Dans le présent cas (fig. 4.45), cela peut se faire de 8 de façons différentes ; par exemple on peut ajouter un arc (III, 1), repré sentant le transport fictif d’une quantité très petite, e . 0. Une fois l’optimum obtenu, on fera e 5 0. On obtient alors une solution de base, non dégénérée, pour laquelle on peut calculer les 15 di,j. Figure 4.45
i
j
5
1
III
14
I
9
2
6
9
18 28
IV 14 9
4
14 2
II
3
11
28
2
32
4
5
6
5
9
Remarque pratique importante. Lorsque, dans un problème dégénéré, si un di,j est négatif et si la seule quantité associée déplaçable vaut ε, il ne faudrait pas en conclure que l’on a atteint l’optimum et l’on doit poursuivre l’algo rithme (en veillant à ne pas retomber sur une solution antérieure). On montre en effet que le critère d’optimalité pour une solution est que tout coût marginal di,j de liaison non employée 1 xij 5 0 2 doit être positif ou nul.
Résolution pratique du problème de transport
• Première phase (obtention d’une solution de base initiale) Il est bien évident que si la solution de base initiale du problème a été construite en tenant compte des faits économiques, c’est-à-dire en essayant d’obtenir un coût total peu élevé, la procédure d’optimisation décrite au paragraphe précédent risque d’être considérablement abrégée. Les praticiens ont proposé un très grand nombre d’heuristiques pour parvenir à fournir une bonne première solution de base. Commençons par les heuristiques « gourmandes » : certains ont préconisé la procédure MINILI, consistant à affecter la quantité maximale à la relation de coût unitaire minimal dans la première ligne, puis à la relation de coût minimal, parmi celles qui subsistent, dans la seconde ligne, etc., ou encore MINICO (méthode correspondante utilisant, cette fois, les coûts unitaires minimaux en colonne). Plus utilement, l’affectation successive aux relations de coûts minimaux croissants du tableau, en partant du minimum minimorum, a ses partisans : c’est la procédure MINITAB. 156
4.9 Les programmes de transport
© Dunod – Toute reproduction non autorisée est un délit.
À titre de comparaison, le lecteur pourra essayer MINILI, qui donne un coût de 3 734 (pas de chance on a obtenu 3 700 par la méthode du coin Nord-Ouest !), MINICO, pour laquelle le coût tombe à 3 658 et MINITAB qui fournit 3 634. La fai blesse de ces trois heuristiques gourmandes provient du fait qu’on ne modifie pas le problème en ajoutant à tous les coûts d’une même ligne i (ou d’une même colonne j) une même quantité ui (resp. vj) ce qui revient à remplacer cij par crij 5 cij 1 ui 1 vj. Cette transformation bouleverse le classement des coûts cij par valeur croissante : par exemple on peut ajouter 1 000 à tous les coûts d’une même ligne (ou d’une même colonne) sans changer le classement des solutions suivant leur coût total. La méthode suivante n’a pas le même inconvénient. Une procédure, généralement très efficace, est celle de la différence maximale (ou heuristique de Balas-Hammer) qui favorise l’obtention d’une solution initiale ayant un coût total assez proche de l’optimum. Elle consiste à calculer pour chaque rangée (ligne ou colonne), la différence entre le coût le plus petit et le coût immédiatement supérieur ou égal. Puis à affecter à la relation de coût le plus petit dans la rangée présentant la différence maximale, la quantité la plus élevée possible, ce qui a pour effet de « saturer » une ligne ou une colonne. Ensuite, de reprendre le processus jusqu’à ce que toutes les rangées soient saturées. Si on sature à chaque fois une seule ligne ou une seule colonne, sauf au dernier pas, où plusieurs rangées sont saturées à la fois, on utilise bien n 1 m 2 1 relations, dans le cas général, et l’on obtient une solution de base. S’il arrive que l’on sature à la fois une ligne et une colonne (excluons le dernier pas), alors la solu tion sera dégénérée. Ci-dessus, on note D, les différences en ligne et Dc, celles en colonne. Donnons les premiers pas pour la matrice proposée plus haut : 1er pas 3 4
III 67
56 92 24
IV 71
43 91 67
40 49
9
bj
9
11
28
6
14
5
73
c
11
12 17
4
13
7
53 54 14
16
67 56 92 53 54
8
1
IV 71 43 91 40 49 bj 9 11 28 14 5
9
3
5
II
23 39 78
29
III
28 65 42 32
23
65 42 32
12 27 61
39 78
II
3
j
15
I
49 83 35 18
12
6
83 35 18
15
27 61
I
5
1
2
a1
i
ai
1
2e pas 3 5
c
2
11 12 17 13
6
67
7
• 1er pas. La différence maximale 53 2 24 5 29 est relative à la ligne III. À la rela tion (III,4), correspondant au coût le plus petit de la ligne III, on affecte la quantité 6, ce qui sature la colonne 4, qui disparaît alors du problème. Observations. On remarque que c’est une idée de « regret » qui constitue le fonde ment économique de la méthode ; plutôt que d’affecter le maximum d’unités à tran 157
Chapitre 4 • Applications des graphes à la recherche opérationnelle
sporter à la relation qui comporte le plus petit coût de la matrice (ici I, 1), puis passer à celle à laquelle correspond le plus petit coût dans le reste du tableau, et ainsi de suite (méthode MINITAB), on préfère rechercher une relation telle que, si l’on ne lui affecte pas la quantité la plus grande possible, on sera obligé, dans la suite du problème, d’affecter cette quantité, à une ou plusieurs relations de coût de beaucoup supérieur. Puis on passe à la relation qui est désignée par la différence maximale dans le tableau restant (cf tableau “2e pas” ci-dessus), et ainsi de suite. • 2e pas. Sur la matrice réduite, la différence maximale est 17, ce qui amène à affecter la quantité 18 à la relation (I, 3) saturant ainsi la ligne I, qui disparaît du problème.
j
i
1
�
2
3e pas 3 5
j
i
2 3 39 78
18
16
32
1
14
3
18
16
III 67 56
92 53 54
32
1
III 56 92
53 54
IV 71 43
91 40 49
14
3
IV 43 91
40 49
bj� 9 11 10 Dc 44 4 13
65
ai� �D � ℓ
42
II 23
39 78
6
4e pas 5 6 65 42
14
5
13
7
49
II
�
bj�
11
10
14
5
Dc
4
13
13
7
ai� ��Dℓ
40
• 3e pas. Le tableau restant fait apparaître la différence maximale 44, correspondant à la relation (II,1). On y affecte la quantité 9, ce qui sature la colonne 1, qui disparaît. • 4e pas. Au quatrième pas, le tableau restant se présente comme il est indiqué ci-dessus. Deux colonnes fournissent la même différence maximale : 13 ; les rela tions (II,3) et (IV, 5) leur correspondent, avec des affectations possibles de 10 et 9 respectivement. Trois solutions sont ici acceptables, que nous ne discuterons pas plus à fond : 1) affecter 10 à la relation (II, 3) ; 2) affecter 9 à la relation (IV, 5) ; 3) faire les deux affectations en même temps (elles sont indépendantes). Tout à fait arbitrairement,(1) décidons d’affecter 9 à la relation (IV,5), ce qui sature la ligne IV. À ce moment, grâce aux affectations pratiquées, quatre relations sont utilisées et quatre rangées sont saturées. En continuant ainsi, on affecte ensuite 11 en (II, 2), 5 en (II, 6), 5 en (III, 5), 7 en (II, 3) et, enfin, 3 en (III, 3). 1. Les autres affectations conduisant ici directement à l’optimum, nous priveraient de la possibi (1) lité d’exposer concrètement la deuxième phase de résolution des problèmes de transport. 158
4.9 Les programmes de transport
Le plan de transport [xij] qui en résulte : j i
1
2
I II
3
4
6
9
11
7
5
3
6
IV 9
11
ai 18
18
III bj
5
28
6
32
5
14
9
9
14
5
73
a) vérifie les équations (4.1), (4.2) et (4.3) : 1) a ai 5 18 1 32 1 14 1 9 5 73 4
i 51 6
a bj 5 9 1 11 1 28 1 6 1 14 1 5 5 73 et a ai 5 a bj j51
2) a x1j 5 0 1 0 1 18 1 0 1 0 1 0 5 18 5 a1 6
j51 6
a x2j 5 9 1 11 1 7 1 0 1 0 1 5 5 32 5 a2, etc. j51 4
3) a xi1 5 0 1 9 1 0 1 0 5 9 5 b1 i 51 4
a xi2 5 0 1 11 1 0 1 0 5 11 5 b2 i 51 4
a xi3 5 18 1 7 1 3 1 0 5 28 5 b3, etc. © Dunod – Toute reproduction non autorisée est un délit.
i 51
b) en outre, le nombre des relations inutilisées est de 15 ; il est précisément égal à : nm 2 1 n 1 m 2 1 2 5 6 3 4 2 1 6 1 4 2 1 2 5 24 2 9 5 15, la solution obtenue n’est donc pas dégénérée. On a bien affaire à une solution de base. Ce que l’on vérifie en traçant le graphe biparti associé : c’est bien un arbre.
• Deuxième phase : optimisation de la solution de base par la méthode du « stepping-stone ».
On ne sait pas encore si la solution obtenue optimise la fonction économique (4.4) : z 5 a a cij # xij 5 12x11 1 27x12 1 61x13 1 c i
j
1 23x21 1 39x22 1
c 1 40x45 1 49x46.
159
Chapitre 4 • Applications des graphes à la recherche opérationnelle
On peut calculer la valeur de la fonction économique pour les affectations obte nues ; on trouve :
z 5 61 3 18 1 23 3 9 1 39 3 11 1 78 3 7 1 42 3 5 1 92 3 3 1 24 3 6 1 53 3 5 1 49 3 9 5 3 535. Cette solution est donc, comme on s’y attendait, meilleure que celle du coin Nord-Ouest (3 700). Pour reconnaître si la solution de base initiale, obtenue par une procédure quelconque, est optimale, il faut bien entendu calculer les coûts margi naux relatifs aux relations inutilisées. Il est bon d’avoir recours, à cet effet, au calcul des différences de potentiel sur l’arbre représentatif de la solution ; c’est ce que nous ferons en revenant à l’exemple ci-dessus, pour le plan de transport ci-dessus. Grâce à l’arbre de la figure 4.46, on pourra calculer tous les coûts marginaux par la formule : d i,j 5 Ui 1 ci,j 2 Vj 5 cij 2 ( Vj 2 Ui ) Par exemple :
d I, 1 5 31 1 12 2 37 5 6 ; d I, 2 5 31 1 27 2 53 5 5 ; etc.
Figure 4.46
j
i I II III IV Vj
9
1
2
12
27
23
11 39
d II, 4 5 14 1 28 2 24 5 18 ; etc.
3 18 61 7 �
4
5
6
49
83
35 �
67
78 28 65 � 3 5 6 56 92 24 53
71
43
37
53
91 92
67 24
40 53
5
42 � 54 42
Ui 31 14 0 13
56
Il n’est d’ailleurs pas néces saire de tracer la figure ellemême ; on peut opérer directe ment sur la matrice, en ayant soin de diviser chaque case en deux parties, l’une, celle du bas, recevant (de façon définitive) le coût de transport de la rela tion correspondante et l’autre, celle du haut, la quantité affec tée dans la solution courante (chaque quantité xij a été cerclée dans le tableau c i-contre).
Pour calculer les potentiels Ui et Vj, on choisit alors la relation affectée du coût le plus grand [ici, (III, 3)] et l’on écrit 0 (origine des potentiels) face à la ligne III, sur la droite de la matrice, ce qui revient à poser UIII 5 0 ; on a alors : cIII, 3 5 V3 2 UIII
160
4.9 Les programmes de transport
d’où :
© Dunod – Toute reproduction non autorisée est un délit.
V3 5 cIII, 3 2 0 5 92 2 0 5 92, et, par suite, l’inscription du potentiel 92 sous la colonne 3 au bas de la matrice. Du fait que UIII 5 0, on a immédiatement V4 5 24 et V5 5 53, puisque les relations (III,4) et (III,5) sont affectées. Ayant V5 5 53, on obtient :
UIV 5 V5 2 cIV, 5 5 53 2 40 5 13, et ainsi de suite. La procédure équivaut très exactement à celle que l’on a prati quée sur l’arbre de la figure 4.48, mais elle évite le recours à un son tracé. Pour calculer alors le coût marginal d’une liaison inutilisée, on la repère d’abord sur le tableau (la partie haute de la case étant vide), par exemple (III, 2), et l’on lit cIII,2 5 56. On a : d III, 2 5 UIII 1 cIII, 2 2 V2 5 0 1 56 2 53 5 3, car on remarque que UIII est le potentiel lu sur la ligne III à droite de la matrice, alors que V2 est celui que l’on lit au bas de la colonne 2, sous la matrice. Le lecteur s’exercera à calculer de cette façon tous les coûts marginaux. Il en trouvera un seul négatif (c’est-à-dire un seul économiquement intéressant) ; c’est : d III, 6 5 0 1 54 2 56 5 22. Il faut ensuite, pour tout coût marginal négatif δij, rechercher le cycle de substi tution permettant de réaliser la modification du transport auquel il correspond. C’est le cycle unique qu’on obtient en rajoutant à l’arbre (Fig. 4.46) l’arête [ij] ; quand un tel cycle ne comporte que 4 arêtes, il est aisé de le trouver directement sur le tableau des [xij] de la solution de base courante. Dans le cas présent, posons un signe 1 dans la case (III,6) ; il nous faut un signe – en (II,6), un signe 1 en (II,3) et, enfin, un signe – en (III,3). On contrôle d’ailleurs que 54 2 42 1 78 2 92 5 22. Les cases marquées sont associées aux arcs du cycle de substitution. Cherchons maintenant la quantité maximale déplaçable : les signes –, dans les cases (II, 6) et (III, 3), permettent de constater que si l’on peut diminuer de 5 la quantité inscrite en (II,6), en revanche on ne peut diminuer que de 3 celle portée en (III,3) : finalement, il est seulement possible de déplacer trois unités. Le résultat de cette substitution sera 3 3 ( 22 ) 5 26, c’est-à-dire un gain total de 6. La solution obtenue alors a pour coût : 3 529 ; nous montrons plus bas qu’elle est optimale. S’il y avait plusieurs di, j négatifs, on calculerait le gain relatif à chacune des substi tutions possibles et l’on choisirait de réaliser celle qui apporte le gain total le plus grand. Parfois, plusieurs substitutions sont possibles simultanément et rien n’empêche alors de les réaliser ensemble ; il suffit qu’elles se traduisent par des cycles de subs titution indépendants (sans arcs ni sommets communs). Exercice. Le lecteur pourra s’exercer, en partant de la solution de base obtenue par la méthode du coin Nord-ouest. Il trouvera 5 coûts marginaux négatifs, dont les deux plus intéressants peuvent être réalisés ensemble, faisant tomber le coût total du transport à 3 607. Après avoir effectué ces substitutions simultanées, il trouvera encore deux substitutions compatibles, l’amenant au coût total de 3 529. 161
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Revenons à notre problème. Effectuons les substitutions indiquées plus haut. Nous obtenons un nouveau plan de transport (cf tableau ci-dessous), vérifiant tou jours les équations (4.1), (4.2) et (4.3) et réalisant une solution de base. Après avoir posé UII 5 0 puis établi le système de potentiels, calculons les coûts marginaux : d I, 1 5 7 1 12 2 23 5 6 ; d I, 2 5 17 1 27 2 39 5 5, etc. Ils sont tous positifs et l’on a donc atteint l’optimum. Le coût de transport total est : 3 529 5 coût de la solution antérieure – coût fourni par la substitution 5 3 535 2 6. NB : dans le tableau suivant, pour toute relation (i, j) inutilisée (c’est-à-dire telle que xij 5 0 2 , on a donné la valeur numérique du dij associé : il figure en haut de la case ij, précédé de son s igne, qui ici est le signe 1, car l’optimum est atteint. i
j
1
2
3
4
5
6
6 5 18 54 59 10 12 27 61 49 83 35 16 24 11 9 10 2 II 23 39 78 28 65 42 32 29 2 6 5 3 III 67 56 92 24 53 54 8 49 5 14 56 9 IV 71 43 91 67 40 49 I
Vj
23
39
78
12
41
42
Ui
Ui
i
17 0 12 1
j
Vj
1
23
17
I
2
39
0
II
3
78
-12
III
4
12
1
IV
5
41
6
42
L’optimum est unique du fait que tous les coûts marginaux sont, ici, strictement positifs. Si certains étaient nuls, on ferait apparaître d’autres solutions équivalentes (grâce à des substitutions de gain nul). En clair : xI,3 5 18 ; xII,1 5 9 ; xII,2 5 11 ; xII,3 5 10 ; xII,6 5 2 ; xIII,4 5 6 ; xIII,5 5 5 ; xIII,6 5 3 ; xIV,5 5 9 pour un coût minimal de 3 529 unités monétaires. Remarque(1) 1 La formulation de ce programme de transport en tant que pro gramme linéaire amène à introduire N 5 m 3 n 5 24 variables puis à écrire M 5 m 1 n 5 10 contraintes (certes liées par une relation de dépendance ; on peut supprimer l’une d’entre elle, ce qui amène à Mr 5 m 1 n 2 1 5 9 contraintes) ; ces contraintes étant en égalité, on doit introduire une variable artificielle dans chacune d’elles pour obtenir une base (artificielle) initiale ; la résolution de la « première phase » par l’algorithme du simplexe conduirait (après un minimum de m 1 n 2 1 itérations) à une base réalisable. L’avan tage de la méthode du stepping-stone, que nous venons de décrire, est d’éviter toutes les itérations de cette « première phase », puisqu’on part d’une base réa lisable ; de plus, si l’on utilise la méthode de Balas-Hammer, la base réalisable initiale, on le sait, sera « bonne », c’est-à-dire que l’on évitera de nombreuses itérations lors de la « seconde phase » pour atteindre l’optimum. (1) 1. La compréhension de cette remarque suppose la connaissance du chapitre 8 du présent livre. 162
4.10 Recherches arborescentes
Remarque 2 L’heuristique de Balas-Hammer a fourni ici une solution de coût 3 535, très voisin du coût optimal 3 529 : ceci en illustre la qualité…
4.10 Recherches
arborescentes
© Dunod – Toute reproduction non autorisée est un délit.
4.10.1 Problème du voyageur de commerce Imaginons un voyageur de commerce qui doit visiter de nombreuses villes (chacune une fois et une seule) et revenir à son point de départ. Si l’on dispose de la matrice des coûts de transport de ville à ville (qu’on pourra supposer non symétrique pour corser le problème), le voyageur de commerce recherche un circuit hamiltonien de valeur minimale. Pendant de longues années, de nombreux chercheurs ont tenté d’inventer un algo rithme conduisant à l’optimum de ce problème (NP-difficile) ; on n’en trouvait pas et l’on n’était pas certain de la validité des solutions ingénieuses proposées par les uns et les autres pour des exemples numériques relativement importants pour l’époque, modestes aujourd’hui... (entre 40 et 50 villes). Bien entendu, ces solutions étaient obtenues à l’aide d’heuristiques, car il n’était pas question d’énumérer les 1 n 2 1 2 ! circuits possibles. C’est alors que Little et al. (1963) ont appliqué au problème une procédure de recherche arborescente, qui a permis d’obtenir des solutions optimales, mais en des temps de calcul parfois assez long. De nombreux perfectionnements sont apportés continuellement à des méthodes de ce type, qui sortent du cadre de cet ouvrage ; on résout désormais, optimalement, des problèmes dépassant le millier de villes. En fait de recherches arborescentes, nous traitons ici d’abord l’exemple du voyageur de commerce (mais sans aborder la convergence et la finitude de la méthode employée). Signalons, que les initiales SEP., très employées en France pour caractériser la classe des méthodes arborescentes mises au point, en 1964-65, par B. Roy et son équipe, signifient « Séparation et Evaluation Progressives ». Nous allons juste ment donner un exemple d’un principe de séparation dichotomique, consistant à augmenter ou non un ensemble d’un élément, en mesurant l’efficacité de l’une ou de l’autre décision par l’évaluation de la borne inférieure d’un coût. Tandis que les initiales SES : « Séparation et Evaluation Séquentielle » correspondent à une stra tégie de parcours en profondeur d’abord (cf. chapitre 3) ; la méthode booléenne de Faure et Malgrange (1962) employait déjà implicitement cette stratégie (elle est décrite en fin de chapitre 1). Pour éviter des longueurs, l’exemple choisi, à n 5 5 villes, sera celui d’un voyageur de commerce demeurant dans la ville A et désireux de se rendre une fois et une seule dans les villes B, C, D, Ε et F, avant de revenir chez lui. La matrice des coûts est donnée ci-après (les tirets remplacent des valeurs infinies) ; il s’agit évidemment de déterminer, parmi les 1 n 2 1 2 ! 5 120 circuits hamiltoniens, celui de valeur minimale. L’énumération exhaustive de 1 n 2 1 2 ! est impraticable dès que n . 15 ou 20 (cf chapitre 2). 163
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Nous diviserons les itérations en blocs.
A 6 7 3 1 3 1 B 7 8 2 9 7 2 C 5 10 10 1 7 1 D 8 6 5 5 1 1 E 7 7 6 7 4 4 F 9 8 8 5 3 3 . Matrice des coûts : à 1 droite de chaque ligne on a figuré son plus petit coût.
– Bloc A. On soustrait le plus petit élément de chaque rangée (d’abord dans les lignes, puis dans les colonnes) ; la matrice résultante comporte donc au moins un zéro par rangée : alors il se pourrait que l’optimum ait un coût nul. Cette opération (comme dans les problèmes d’affectation) conduit à un problème équivalent. – Bloc B. On calcule une borne inférieure de la valeur du circuit de valeur minimale cherché. Elle est égale à la somme des valeurs soustraites de la matrice, au bloc A. En effet, si la matrice 3 permettait de trouver un cir cuit hamiltonien utilisant uniquement des arcs de coût 0, la valeur de ce circuit coïnciderait avec la somme des coûts retranchés à la matrice initiale. Dans le cas présent, cette borne vaut : B 5 1 1 1 2 1 1 1 1 1 4 1 3 2 1 1 3 1 3 1 2 2 5 20.
A B C D E F
La racine R de l’arborescence recevra la valuation B 5 20.
– Bloc C. On calcule les coûts de A B C D E F A B C D E F substitution (ou regrets) des arcs A 5 6 2 0 2 A 2 4 2 0 2 de coût nul (ou “zéros”) et l’on retient le maximum d’entre eux B 5 6 0 7 5 B 2 4 0 7 5 (ou l’un d’eux en cas d’égalité). C 4 9 9 0 6 C 1 6 9 0 6 Expliquons d’abord cette notion D 7 5 4 4 0 D 4 2 2 4 0 de regret : soit, par exemple, le 0 qui value l’arc (B, D) dans la E 3 3 2 3 0 E 0 0 0 3 0 matrice 3 ; il signifie qu’on a inté F 6 5 5 2 0 F 3 2 3 2 0 rêt à employer l’arc (B, D) qui, a 3 3 2 0 0 0 3. Après soustraction priori, est à recommander, étant 2. Après soustraction du plus petit élément de coût résiduel le plus petit sur la du plus petit élément de chaque ligne. Au de chaque colonne de la ligne B. Combien paierait-on en dessous de chaque matrice 2. plus si l’on décidait de ne pas l’uti colonne on a figuré son liser ? Comme il faudrait tout de plus petit coût. même passer par les points B et D, la meilleure solution consisterait à atteindre D par (A, D) : coût 2 – ou encore (F, D) : coût 2 – et à quitter B par (B, A) : coût 2. La somme de ces deux minima, soit 2 1 2 5 4, donne le regret (minimal) relatif au zéro de la relation (B, D). On détermine ainsi le coût de substitution (regret) pour tout zéro de la matrice 3 (cf matrice 4). Puis, on choisit d’examiner les conséquences qu’auraient la sélection ou le rejet de l’arc correspondant au plus fort Figure 4.47 des regrets minimaux. 164
4.10 Recherches arborescentes
En cas d’égalité, on se donne une règle arbitraire pour retenir l’un des regrets maximaux, par exemple le premier rencontré lors du balayage de la matrice ligne après ligne. On obtient ainsi la matrice 4, où le regret maximal, soit 4, concerne l’arc (B, D). – Bloc D. On sait à présent, après que l’on ait procédé à l’évaluation des regrets des zéros d’une matrice, et cela à toute étape du problème, qu’il reste p ossible : - soit de renoncer à utiliser l’arc (X, Y), de regret p(X, Y), le plus fort parmi les regrets. Alors la valeur de ce regret doit être ajoutée à la borne inférieure, calculée plus haut, pour obtenir une borne du coût des solutions évitant l’arc (X, Y) ; - soit de choisir d’utiliser l’arc (X, Y). Restent à exami ner les conséquences de ce choix.
A B C D E F A
2
B
4 1
C D
2
E 1 2 2
0
F
2
4. Regrets correspon
C’est ainsi que se développera l’arborescence décrivant dant aux zéros de la la recherche, par la création d’un sommet de type I : NON matrice 3. (X, Y) et d’un sommet de type II : (X, Y) : cf Fig 4.48. D’où déjà, pour le sommet de type I, correspondant à la décision NON (X, Y), c’està-dire la décision de renoncer à l’utilisation de (X, Y), ce qui a le surcoût p(X, Y) : B :5 B 1 p ( X, Y ) . Dans l’exemple cité, la borne du sommet NON (B, D) de l’arborescence est : B :5 20 1 4 5 24.
© Dunod – Toute reproduction non autorisée est un délit.
– Bloc E. 1) Au contraire, si l’on inclut l’arc (X, Y), il faut supprimer la ligne X et la colonne Y, de la matrice des coûts réduits, puis, par l’introduction d’un coût infini, inter dire l’arc qui fermerait un circuit « parasite » (c’est-à-dire un circuit qui serait de longueur inférieure à n, donc non hamiltonien). Notons que les circuits parasites n’existent plus lorsque l’on est parvenu à une matrice de dimension 1 3 1. A B C E F 2) Il faut maintenant vérifier s’il existe toujours dans la matrice réduite (matrice 5) un zéro par ligne et par colonne. Sinon, faire A 2 4 0 2 apparaître un zéro par rangée (matrice 5 bis). Dans l’exemple, C 1 6 0 6 il n’y a rien à modifier ; ici la matrice 5 bis se confond avec la D 4 2 4 0 matrice 5. 3) La borne du sommet (X, Y) de l’arborescence devient, le cas échéant : B :5 B 1 somme des éléments ôtés au § 2 du bloc E. Dans notre exemple, elle reste égale à 20.
E 0 0 0 0 F 3 2 3 0 Matrice 5 et 5 bis
4) Si l’on a atteint une matrice 1 3 1, arrêter les calculs, car on a la solution. Sinon passer au bloc suivant. 165
Chapitre 4 • Applications des graphes à la recherche opérationnelle
C’est ce qu’on doit faire en poursuivant le traitement de l’exemple. – Bloc F. 1) À cette étape du problème, inspecter d’abord les bornes des sommets pendants de l’arborescence et choisir le sommet pendant de borne la plus petite. Dans l’exemple, on a NON (B, D) : 24, et (B, D) : 20 ; on choisit donc (B, D) (cf. fig. 4.48). 2) Si ce sommet correspond au type II : (X, Y), il faut revenir au bloc C. Sinon, il faut aller au bloc G. Dans l’exemple, on ira au bloc C, puisque l’on a choisi un sommet de type II : (B, D). – Bloc G. Il s’agit du cas où l’on a choisi, au bloc F, d’après la valeur de sa borne, un sommet de type I, c’est-à-dire NON (X, Y). Dans ce cas, interdire l’arc (X, Y) en mettant un coût infini dans la case corres pondante de la matrice des coûts réduits. Puis soustraire le plus petit élément de la ligne X et de la colonne Y, ce qui correspond à l’emploi de la substitution envisagée au bloc C. Enfin, revenir au bloc C. (Ne pas modifier la borne du sommet de l’arborescence associé : la somme des éléments ainsi retranchés est égale au regret du zéro en case (X, Y), soit p(X, Y), qui a déjà été rajouté à la borne : cf. bloc D.) Suite de l’exemple (le lecteur consultera en parallèle l’arborescence p. 169).
Figure 4.48
Rappelons d’abord la situation à laquelle la procédure nous a conduit. Le problème se ramène maintenant à l’étude de la matrice 5 bis (qui se confond avec la matrice 5, dans l’exemple). Sur l’arborescence, on a créé les deux sommets NON (B, D) et (B, D) ; le premier a 24 pour valeur de la borne inférieure, le second, 20. On a choisi le som met (B, D), de type II ; il faut donc revenir au bloc C pour évaluer les regrets des zéros de la matrice.
1. Prendre en considération le regret concernant (A, E), qui est un des regrets maximaux dans la matrice 6. À partir du sommet (B, D), de A B C F A B C E F borne 20, développer la branche C 1 6 � 6 �1 2 de l’arborescence : NON (A, E), la A D 4 � 2 0 1 borne passant à 20 1 2 5 22. C E � 0 0 0 2 Supprimer la ligne A et la D colonne E de la matrice 5 bis, inter E 1 2 2 F 3 2 3 � �2 0 dire l’arc (E, A) qui fermerait un 2 F circuit parasite, d’où la matrice 7. Matrice 6. Matrice 7. Cette matrice ne comportant R egrets des zéros de la plus un zéro sur chacune de ses matrice 5 rangées, il faut soustraire 1 de la ligne C et 2 de la ligne F. 166
4.10 Recherches arborescentes
© Dunod – Toute reproduction non autorisée est un délit.
On obtient la matrice 7 bis et la borne du sommet (A, E) : 20 1 3 5 23.
A B C F
A B C E F
C 0 5 5 Choisir le sommet pendant de la borne la D 4 2 0 plus petite : c’est NON (A, E), de type I, qui E 0 0 0 a pour borne 22. 2. Il faut évidemment reprendre la matrice F 1 0 1 5 (matrice des coûts relative au sommet de l’arborescence précédant celui que l’on vient Matrice 7 bis. d’adopter) pour exécuter le bloc G, d’où la matrice 8. Revenir à C.
A 0 2 0 C 1 6 0 6
Matrice 9. Évaluation des regrets des zéros de la matrice 8. Le plus petit vaut 2, la borne de NON (D, F) devient 22 1 2 5 24. Matrice 10. Obtenue par suppression de la ligne D et de la colonne F de la matrice 8, puis interdiction de (F, B) : elle comporte au moins un zéro dans toute rangée : Borne de 1 D, F 2 5 22 1 0 5 22. Calcul du min{24, 24, 23, 22} 5 22 pour trouver le sommet pendant de plus petite borne. Repartir de (D, F), qui est de type II. 3. La matrice 11 donne les regrets de la matrice 10 ; le plus fort vaut 3 : (F, E). Borne de NON 1 F, E 2 5 22 1 3 5 25. Borne de 1 F, E 2 5 22 1 1 5 23 (passage de la matrice 12 à la matrice 12 bis). Calcul du min{24, 24, 25, 23, 23} 5 23. On décide de continuer à partir de (F, E), de borne 23. L’arc parasite est (E, B). 4. La matrice 13 des regrets de la matrice 12 bis désigne (A, B), de plus fort regret : Borne de NON 1 A, B 2 5 23 1 7 5 30. Borne de 1 A, B 2 5 23 1 0 (matrice 14). Calcul du min{24, 24, 25, 30, 23, 23} 5 23. On décide de continuer à partir de (A, B) de borne 23. L'arc parasite est (E, B). 5. La matrice 15 laisse le choix entre (C, A) et (E, C). Arbitrairement : choix de (C, A). Borne de NON 1 F, E 2 5 23 1 ` 5 1 `. Borne de 1 C, A 2 5 23 1 0 (matrice 16).
D 4 2 4 0 E 0 0 0 0 F 3 2 3 0 Matrice 8.
A B C F
A B C E F 0
A
A 0 2 C 1 6 0 E 0 0 0 F 3 3 0
0 1
C D
2
E 1 0 2
0 2
F
Matrice 9. (regrets)
A B C E 2
A
1
C
Matrice 10. l’arc (F, B) fermerait un circuit parasite avec les arcs déjà retenus : (B, D) puis (D, F )
E 1 0 2 3
F
Matrice 11. (regrets)
A B C A 0 2 C 1 6 1 E 0
0
Matrice 12.
A B C A
A 0 2 C 0 5 E 0 0 Matrice 12 bis : on a soustrait à la ligne C
A C
0
7
C 5 E 0
A B C
0
2
Matrice 13. (regrets)
Matrice 14.
167
Chapitre 4 • Applications des graphes à la recherche opérationnelle
La matrice 16 est de format 1 3 1 : se garder d’interdire l’arc (E, C). 6. Prendre (E, C). Borne de NON 1 E, C 2 5 23 1 ` 5 1 `. Borne de 1 E, C 2 5 23 1 0 5 23.
A C C E
C E 0
Matrice 15. regrets
Matrice 16.
On a le circuit hamiltonien : (B, D, F, E, C, A, B), de valeur 23. 6 bis. On remarque que la borne du sommet (A, E) est également 23 ; au numéro 5, on a d’ailleurs choisi de continuer en prenant (E, C) parce que la matrice 16 était de format 1 3 1. Il se pourrait donc qu’il existe un autre circuit hamiltonien utilisant l’arc (A, E). Revenant à la matrice 7 bis, on évalue les regrets de ses zéros et l’on choisit ainsi l’arc (C, A). On a ensuite : borne de NON 1 C, A 2 5 23 1 6 5 29 et borne de 1 C, A 2 5 23 1 1 5 24. A B C F C 6
D
2
E
0 1 0
F
1
Matrice 17 regrets.
B C F
D
2 0
E 0 0 F 0 1
B C F
D
1 0
E 0 0 F 0 0
1 Matrice 18.
Matrice 18 bis.
Toutes les autres bornes des sommets pendants de l’arborescence étant mainte nant strictement supérieures à 23, on est sûr que le circuit optimal trouvé en 6. est unique. La figure 4.49 représente l’arborescence parcourue ; elle est relativement peu étendue par rapport à l’arborescence « potentielle », celle associée aux 1 6 2 1 2 !, soit 120 circuits hamiltoniens.
Remarque. Une méthode « gourmande » pour résoudre de manière appro chée (heuristiquement) cet exemple consisterait à choisir un arc de plus petit coût, soit (A, E) de coût 1, puis, sans remettre en cause ce choix, choisir un arc de plus petit coût compatible avec (A, E) : (D, F) de coût 1, et ainsi de suite. On choisit ensuite (B, D) de coût 2, puis (C, A) de coût 5 ; on doit alors obligatoirement prendre les arcs (chers !) (E, B) de coût 7 et (F, C) de coût 8, pour fermer un circuit hamiltonien : (A, E, B, D, F, C, A) de coût 24, non optimal. Certes sur cet exemple, l’heuristique gourmande a fourni une solution proche de l’optimum : ce n’est pas le cas en général, même sur des graphes de petite taille. Ainsi, pour l’exemple ci-dessous, cf. Matrice 19, cette méthode gour mande fournit le circuit hamiltonien (A, B, D, C, A) de coût 103... alors que l’optimum (A, D, B, C, A) a pour coût seulement 5.
168
4.10 Recherches arborescentes
Le lecteur observera que dans la méthode gour mande, le choix initial d’arcs de faible coût peut avoir pour conséquence (implication) l’obligation de prendre des arcs « chers » en fin d’application de la méthode.
A
B
C
A
1
1
D 2
B
1
2
1
C
1
D
2
2 1
100 100
Matrice 19.
© Dunod – Toute reproduction non autorisée est un délit.
Figure 4.49 L’optimum est le circuit hamiltonien (B, D, F, E, C, A, B) de coût 23.
Il se pose alors la question de l’existence d’une garantie de performance pour une heuristique donnée : peut-on borner l’écart entre le coût de l’optimum c* d’un pro blème et le coût cH d’une solution heuristique calculée en temps polynomial ? Pour le problème du voyageur de commerce, on peut montrer qu’il n’existe pas de garantie relative de performance, c’est-à-dire qu’il existe des exemples (ou instances) pour lesquels le rapport cH/c* peut être rendu arbitrairement grand. En revanche, pour ce même problème du voyageur de commerce, si le tableau des coûts (ou distances) est euclidien, c’est-à-dire s’il vérifie les inégalités triangulaires : pour tout i, j, k : cij < cik 1 ckj, comme le font les distances géographiques, il existe des heuristiques pour lesquelles cH ^ c* < 2, quelle que soit l’instance considérée.
Montrons comment pour un autre problème, une heuristique gourmande (gloutonne) fournit une garantie de performance. Le problème appelé bin packing s’énonce de la façon suivante : n objets non sécables, l’objet i étant de taille ai, 0 , ai , A, sont à placer dans un nombre minimal de boîtes toutes de taille A (la somme des tailles des objets 169
Chapitre 4 • Applications des graphes à la recherche opérationnelle
placés dans une même boîte ne doit pas être supérieure à la taille de la boîte). Un algorithme glouton fournissant une solution approchée au problème est le suivant : initialement, les objets sont triés par taille décroissante : a1 > a2 > c> ai > ai 1 1 > c> an ; les objets sont placés un à un, suivant l’ordre résultant du tri effectué, dans la première boîte pouvant les contenir ; si aucune boîte déjà utilisée ne peut contenir un objet, l’objet est placé dans une boîte vide. Le mathématicien américain D. Johnson a montré que, pour toute instance du problème de bin packing, en notant cH le nombre de boîtes utilisées par une solution fournie par l’algorithme précédent et c* le nombre de boîtes utilisées dans une solution optimale, la garantie relative de performance de l’algorithme vérifie : 11 cH /c* < . Ainsi en utilisant l’heuristique gourmande proposée pour résoudre ce pro 9 blème, nous sommes assurés que le nombre de boîtes utilisées n’excède, dans le pire des cas, que de 22,3 % le nombre minimal de boîtes nécessaires. Le lecteur intéressé par ce sujet pourra consulter l’ouvrage [11] entièrement dédié à l’approximation des problèmes algorithmiquement difficiles. Après avoir introduit la notion de recherche arborescente en résolvant par l’algo rithme de Little et al. le problème du voyageur de commerce (praticable pour des ins tances ayant moins d’une centaine de villes), nous précisons maintenant cette notion et l’appliquons à deux autres problèmes. Le problème du sac à dos et la programmation linéaire en nombres entiers (ce dernier problème, déjà rencontré au chapitre 1, est repris ultérieurement dans le chapitre 8 consacré à la programmation linéaire).
4.10.2 Recherches arborescentes par séparation et évaluation Nous allons maintenant présenter une méthode générale permettant la résolution des problèmes d’optimisation NP-difficiles. Nous avons déjà signalé que seules des méthodes énumératives (qu’on souhaite le moins exhaustives possible) sont à même de résoudre ces problèmes : la méthode décrite ici a pour objectif de mener à bien l’énumération des solutions réalisables du problème traité en essayant d’éviter le plus possible l’énumération explicite de cet e nsemble. Dans cet ouvrage, cette méthode est illustrée à travers trois exemples très clas siques de la recherche opérationnelle. Deux de ces exemples ayant pour cadre la programmation linéaire en nombres entiers sont situés plus bas dans ce paragraphe ; le troisième, l’algorithme dû à Little et al., résolvant le problème du voyageur de commerce vient d’être présenté, a servi d’introduction pour ce paragraphe. Le principe de la méthode est le suivant : • Une arborescence est développée au cours de l’algorithme. Chaque sommet de cette arborescence correspond à un sous-ensemble de solutions admissibles (on dit aussi : réalisables) du problème ; la racine de l’arborescence correspondant à l’ensemble de toutes les solutions réalisables. • Évaluation. Pour chacun des sommets Si, une valeur E(Si) appelée évaluation du sommet, est calculée via, le plus souvent, une fonction appelée fonction d’évaluation. Pour un problème de maximisation, cette valeur E(Si) doit être un majorant de la valeur de la meilleure solution contenue dans l’ensemble des solutions correspondant au som 170
4.10 Recherches arborescentes
met de l’arborescence Si. Au contraire, E(Si) doit être un minorant de cette valeur dans un problème de minimisation (comme dans l’algorithme de Little et al.). • Si l’évaluation E(Si) d’un sommet est inférieure (pour un problème de maximi sation, supérieure pour un problème de minimisation) à la valeur d’une solution connue du problème, le sommet Si n’est pas exploré. Dans ce cas, Si ne peut pas contenir une solution meilleure que celle déjà obtenue. • Lorsque pour un sommet Si la (ou l’une des) meilleure(s) solution(s) de l’ensemble correspondant est obtenue ou bien s’il apparaît que Si ne contient pas de solution, l’exploration de Si est terminée et Si n’a pas de successeur dans l’arborescence. • Séparation. Lorsque l’on n’est pas dans le cas précédent, l’ensemble Si est séparé en plusieurs sous-ensembles non vides, chacun comportant moins de solutions que Si, tels que toute solution admissible contenue dans Si soit contenue dans l’un de ces sous-ensembles. Les successeurs de Si dans l’arborescence sont les sommets corres pondant à ces ensembles. Une stratégie de parcours de l’arborescence doit être adoptée. Les stratégies les plus couramment utilisées sont soit un parcours en profondeur d’abord ou “S.E.S” (cf. chapitre 3), soit un parcours où le sommet à explorer en priorité est celui (ou l’un de ceux) possédant la meilleure évaluation parmi ceux non encore explorés, ou “S.E.P”. Les principes de séparation et d’évaluation dépendent du problème traité. L’effi cacité de la méthode dépend fortement des principes utilisés. En pratique, on consi dérera comme de « bonnes » évaluations, des évaluations rapides à obtenir et dont l’écart avec la solution optimale du sous-problème associé au sommet Si considéré est petit. Par ailleurs, le développement d’une heuristique rapide permettant d’obte nir une bonne solution approchée au problème est généralement nécessaire à l’effica cité de la méthode. En effet, plus petit est l’écart entre l’évaluation d’un ensemble de solutions et la valeur d’une solution admissible connue, plus grandes sont les possi bilités d’arrêter après peu d’étapes (séparations) l’exploration du sommet considéré et plus rapide sera la résolution du problème.
© Dunod – Toute reproduction non autorisée est un délit.
Problème du sac à dos (knapsack) Le problème nommé sac à dos ou encore knapsack est l’un des problèmes les plus classiques de la recherche opérationnelle. Il peut se présenter informellement de la façon suivante. Un randonneur dispose d’un sac à dos de volume B ; il a devant lui n objets chacun de volume donné ai ; chacun de ces objets a une utilité que le randon neur note ci, ci étant un nombre entier positif ; le volume cumulé des n objets étant supérieur au volume du sac, le randonneur devra choisir parmi les objets ceux qu’il emportera ; son objectif est de maximiser la somme des utilités des objets emportés. Le problème se formalise de la manière suivante : max a ci xi n
µ
i 51 n
a ai xi < B
i 51
xi H 5 0, 1 6 , 1 < i < n. 171
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Dans la solution obtenue, les objets mis dans le sac à dos sont ceux pour lesquels la variable correspondante xi vaut 1. Ceux pour lesquels xi vaut 0 ne sont pas emportés. Sans perte de généralité, dans tout ce qui suit, nous supposerons que ai < B pour tout indice i et que : a ai . B (sinon on pourrait mettre les n objets dans le sac !). n
i 51
Nous supposerons aussi que ces objets sont indicés de sorte que : cn c2 c1 > > c> . a1 a2 an et sont donc classés par utilité décroissante. Pour illustrer l’efficacité des méthodes par séparation et évaluation, considérons le problème du sac à dos suivant : max z 5 15x1 1 18x2 1 4x3 1 7x4 1 2x5 1 x6 3x1 1 4x2 1 x3 1 3x4 1 x5 1 x6 < 5 xi H 5 0, 1 6 , 1 < i < 6. On vérifie que 15/3 . 18/4 . 4/1 . 7/3 . 2/1 . 1/1. La figure 4.50 représente l’arborescence que nous allons obtenir au long de la résolution de cet exemple :
•
Figure 4.50 Arborescence obtenue pour la résolution du problème de sac à dos.
Une borne supérieure de la solution optimale, l’évaluation de la racine de l’arbo rescence, est obtenue en “relâchant” les contraintes d’intégrité sur les variables, c’està-dire en remplaçant les contraintes xi 5 0 ou xi 5 1 par : 0 < xi < 1. Dans le cas spécifique du problème du sac à dos, la solution optimale du programme linéaire cor respondant est facilement obtenue sans même utiliser les algorithmes présentés dans le chapitre 8. Pour notre exemple, nous obtenons la solution relâchée (continue) : 172
4.10 Recherches arborescentes
© Dunod – Toute reproduction non autorisée est un délit.
x1 5 1, x2 5 1/2, x3 5 x4 5 x5 5 x6 5 0, de valeur z 5 24. L’évaluation de la racine S0 sera donc E(S0) 5 24. Cette solution continue obtenue n’étant pas entière (x2 5 0,5), l’ensemble S0 des solutions admissibles est séparé en S1 : l’ensemble des solutions telles que x2 5 1, et S2 : l’ensemble des solutions telles que x2 5 0. Le problème associé à S1 est alors : max z 5 15x1 1 4x3 1 7x4 1 2x5 1 x6 3x1 1 x3 1 3x4 1 x5 1 x6 < 1 • xi H 5 0, 1 6 , 1 < i < 6. Celui associé à S2 est : max z 5 15x1 1 4x3 1 7x4 1 2x5 1 x6 3x1 1 x3 1 3x4 1 x5 1 x6 < 5 • xi H 5 0, 1 6 , 1 < i < 6. Ces deux problèmes sont aussi des problèmes de sac à dos, nous pouvons leur appliquer le même traitement que celui effectué à S0. Nous obtenons, pour S1, la solution optimale en variables continues : 1 x1 5 , x2 5 1, x3 5 x4 5 x5 5 x6 5 0, de valeur z 5 23, 3 et, pour S2, la solution en variables continues : 1 x1 5 1, x2 5 0, x3 5 1, x4 5 , x5 5 x6 5 0, de valeur z 5 21. 3 Pour ces deux problèmes les solutions obtenues ne sont pas entières, les ensembles correspondant devront être à nouveau séparés. En appliquant le principe d’exploration consistant à examiner en priorité l’ensemble ayant la meilleure évaluation, S1 est partitionné en S3, l’ensemble des solutions telles que x1 5 1 et S4, l’ensemble des solutions telles que x1 5 0. Le pro blème associé à S3 n’admet pas de solution, la contrainte de capacité du sac à dos étant violée ; l’exploration de S3 est terminée. Le problème associé à S4 est : max z 5 4x3 1 7x4 1 2x5 1 x6 x3 1 3x4 1 x5 1 x6 < 1 • x1 H 5 0, 1 6 , 1 < i < 6
qui admet pour solution en variables continues (x1 5 0, x2 5 1,) x3 5 1, x4 5 x5 5 x6 5 0, de valeur z 5 22. Cette solution est entière, l’exploration de S4 se termine et une solution réalisable du problème initial est trouvée. Nous revenons alors au sommet S2. Son évaluation E(S2) 5 21 est inférieure à la valeur de la solution que nous venons de trouver, l’ensemble des solutions contenues dans S1, qu’on sait être a priori moins intéressantes que celles contenues dans S4, n’est donc pas exploré. Tous les sommets de l’arborescence ont alors été explorés, l’algorithme s’arrête. La solution optimale (unique) est celle obtenue pour S4 : x1 5 0, x2 5 1, x3 5 1, x4 5 x5 5 x6 5 0 d’utilité 22, de volume (maximal) 5. 173
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Remarquons qu’à l’optimum, le sac-à-dos n’est pas nécessairement plein comme c’est le cas ici. Ceci résulte du caractère non sécable des objets.
Programmation linéaire en nombres entiers L’exemple que nous allons traiter est celui présenté dans le chapitre consacré aux applications de l’algèbre de Boole au chapitre 1. Considérons le programme linéaire (PL) en nombres entiers suivant : max z 5 3x1 1 8x2 x1 1 4x2 < 20 x1 1 2x2 < 11 e 3x1 1 2x2 < 22 x1, x2 H N À chacun des sommets de l’arborescence est associé un programme linéaire(1) obtenu en ajoutant une contrainte supplémentaire au problème-père. L’évaluation calculée est la valeur optimale du programme linéaire continu correspondant (voir le chapitre 8 pour la résolution de programme linéaire continu). L’arrêt de l’explora tion se fait lorsque la solution du programme linéaire continu se trouve être entière ou bien s’il n’admet pas de solution. Dans le cas contraire, l’ensemble des solutions associé au sommet considéré est séparé en deux de la manière suivante : si xi est une variable de valeur ν non entière dans la solution continue, le premier sous-ensemble de solutions est obtenu en ajoutant la contrainte xi < :v; et le second sous-ensemble est obtenu en ajoutant la contrainte xi > 5 x1, x2 H N La solution continue de ce problème donne x1 5 0, x2 5 5 de coût z 5 40. Cette solution étant entière, l’exploration du sommet S1 s’arrête. Une première solution réalisable de coût 40 est obtenue. S2, le second successeur de la racine S0, est obtenu en ajoutant la contrainte x2 < 4 au problème initial. Le programme associé à S2 est alors : max z 5 3x1 1 8x2 x1 1 4x2 < 20 x1 1 2x2 < 11 f 3x1 1 2x2 < 22 x2 < 4 x1, x2 H N La solution continue de ce problème donne x1 5 3, x2 5 4 de coût z 5 41. Cette solution est entière, de coût égal à l’évaluation de S0, elle est donc optimale.
175
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Exercices I Programmation dynamique
**4.1 Problème du sac à dos : résolution par la programmation dynamique Un alpiniste choisit les aliments qu’il va emporter dans son sac-à-dos. Pour chacun des aliments possibles, on connaît sa valeur nutritive ci et son poids ai Nous considérons le programme linéaire en variables 0 2 1 suivant : L’alpiniste peut porter au plus b kilos. Il veut maximiser la valeur nutritive globale des aliments emportés. max z 5 a cixi n
a aixi < b i 51
n
µ
i 51
x i H 5 0, 1 6 , 1 < i < n; x i 5 1 si l’aliment i est emporté, = 0 sinon. où les coefficients ai, ci, b sont entiers et positifs. L’objectif de cet exercice est de montrer comment résoudre ce problème en utilisant un principe de programmation dynamique. Le problème est décomposé en n phases de la façon suivante : à la phase k, 1 < k < n, on calcule la valeur nutritive optimale du sac chargé à d kilos en choisissant des aliments seulement parmi les k premiers aliments zk ( d ) 5 maxb a ci xi ` a aixi < d, xi H 5 0, 1 6 r k
k
i 51
i 51
pour toutes les valeurs de d, 0 < d < b. On note z(b) la solution (valeur nutritive) optimale du problème de sac-à-dos à résoudre, en considérant ici les n aliments. 1. Montrer que z(b) 5 zn(b). Notre objectif est alors de calculer zn(b) à partir des valeurs de zn 2 1 qui seront elles-mêmes calculées à partir de zn 2 2 et ainsi de suite. 2. Montrer que la récurrence est initialisée par z1 1 d 2 5 b
c1 si a1 < d 0 si a1 . d
(ici k = 1 : on ne considère que le premier aliment) 3. Supposons qu’à la phase k, pour la valeur d, xk 5 1 soit dans une solu tion optimale. Montrer que d 2 ak > 0. En déduire que dans ce cas que : zk 1 d 2 5ck 1 zk 2 1 1 d 2 ak 2 . 176
Exercices
4. Supposons maintenant qu’à la phase k, pour la valeur d, xk 5 0 soit dans une solution optimale. Montrer que dans ce cas zk 1 d 2 5 zk 2 1 1 d 2 . 5. Déduire des questions précédentes que pour k 5 2, c, n et d 5 0, c, b on a : si ak . d, z 1d2 zk 1 d 2 5 b k 2 1 si ak < d. max 1 zk 2 1 1 d 2 , ck 1 zk 2 1 1 d 2 ak 2 2
6. Considérons l’exemple suivant : max 16x1 1 19x2 1 23x3 1 28x4 5 z 2x1 1 3x2 1 4x3 1 5x4 < 7 x1, x2, x3, x4 H 5 0, 1 6 Appliquer l’algorithme de programmation dynamique à cet exemple. On pourra tracer le graphe des décisions pour illustrer le calcul de l’optimum.
© Dunod – Toute reproduction non autorisée est un délit.
***4.2 Détermination de la plus longue sous-séquence commune à deux séquences, par application de la programmation dynamique
Soit deux séquences (ou mots) A 5 a1 can et B 5 b1 cbk. On dira que B 5 b1 cbk est une sous-séquence de A, s’il existe une suite d’indices i1, c, ik strictement croissante (mais non nécessairement consécutifs) extraite de 1, c, n telle que, pour tout j 5 1, c, k, on ait : aij 5 bj. Par exemple, la séquence B 5 cnam est une sous-séquence de la séquence A 5 reconstituames. Étant données deux séquences A et B, Ζ est une sous-séquence commune de A et B si et seulement si Ζ est une sous-séquence de A et de B. Par exemple Ζ 5 mai est une sous-séquence commune de A 5 combinatoire et B 5 optimisation. Le problème que l’on veut résoudre est la détermination d’une sous-séquence commune à deux séquences données, qui soit de longueur maximale. Ce problème admet de nombreuses applications, notamment dans l’étude de séquences d’ADN en biologie. 1. Montrer que le nombre de sous-séquences d’une séquence de longueur n est 2n (par convention la séquence vide, de longueur nulle, est une sousséquence de toute séquence). En déduire la complexité d’un algorithme qui calculerait toutes les sous-séquences de A et de B et les comparerait deux à deux pour déterminer une plus longue sous-séquence commune. L’objet de cet exercice est de concevoir un algorithme de programmation dynamique de complexité moindre. Soit une séquence A 5 a1 can, on définit le ième préfixe de A, pour i 5 0, c, n, par Ai 5 a1 cai. Par exemple, si A 5 modélisation alors A4 5 mode.
177
Chapitre 4 • Applications des graphes à la recherche opérationnelle
Soient Ai et Bj respectivement le ième préfixe d’une séquence A et le jème préfixe d’une séquence B. Soit Z 5 z1 czk une plus longue sous-séquence commune de ces deux p réfixes. 2. Montrer que si ai 5 bj alors zk 5 ai et z1 czk 2 1 est une plus longue sous-séquence commune de Ai 2 1 et de Bj 2 1. 3. Montrer que si ai 2 bj alors Ζ est une plus longue sous-séquence com mune de Ai 2 1 et de Bj, ou de Ai et de Bj 2 1. Soit f(i, j) la longueur maximale d’une sous-séquence commune de Ai et Bj. 4. Justifier l’équation de récurrence suivante : 0 si i 5 0 ou j 5 0, f 1 i, j 2 5 c f 1 i 2 1, j 2 1 2 1 1 si i, j . 0 et ai 5 bj, max 1 f 1 i, j 2 i 2 , f 1 i 2 1, j 2 2 si i, j . 0 et ai 2 bj.
Afin de ne pas calculer plusieurs fois une même valeur f(i, j), ces valeurs seront conservées un tableau bidimensionnel T. 5. Expliquer comment déduire directement la valeur T(i, j) des valeurs T(k, l), où : 0 < k < i et 0 < l < j. 6. Décrire un algorithme de complexité O(nm) pour calculer toutes les valeurs f(i, j) , i H 5 0, c, n 6 et j H 5 0, c, n 6 . 7. Appliquer cet algorithme aux deux séquences A 5 parité et B 5 arrêt. La longueur d’une plus longue sous-séquence commune étant calculée, une plus longue sous-séquence commune peut être obtenue à partir de cette valeur et du tableau T. 8. Donner le principe d’un algorithme de complexité O 1 m 1 n 2 pour cal culer une plus longue sous-séquence commune de A et B.
**4.3 D’un problème ancien à l’étagement des fusées Une bête de somme, consommant 0,5 kg de nourriture par kilomètre parcouru et pouvant transporter une charge de 100 kg au maximum, se trouve en un dépôt qui contient 500 kg de nourriture. 1. De quelle distance maximale cette bête peut-elle s’écarter de son point de départ en utilisant complètement la réserve ? (1er cas). 2. Quelle quantité maximale de nourriture pourrait-elle apporter à une dis tance de 100 km de son point initial ? (2e cas).
II Chemins optimaux *4.4 Algorithme de FORD : cas d’une minimisation On donne le graphe ci-dessous et l’on demande d’appliquer à la recherche du chemin de valeur minimale, l’algorithme de Ford, entre A et F. 178
Exercices
NB : l’arc (B, D) est valué : 22 ; les arcs (A, D) et (B, E) sont valués : 6.
*4.5 Algorithme de FORD : cas d’une maximisation On donne le graphe ci-dessous. 1. Montrer que G est sans circuit : a fortiori, G ne comporte pas de cir cuit absorbant. Pour cela vous trouverez une numérotation topologique des sommets (rappel : dans celle-ci, tout arc (xi, xj) est tel que i , j). 2. Appliquer l’algorithme de Ford pour déterminer les chemins de valeur maximale, d’origine x1 vers tous les autres sommets (traiter les sommets dans l’ordre de cette numérotation topologique).
© Dunod – Toute reproduction non autorisée est un délit.
*4.6 Algorithme de Dijkstra Un livreur de pizzas doit livrer une commande en moins de 14 minutes. Chaque arête du graphe représenté par la figure ci-dessous indique la durée, exprimée en minutes, des trajets entre les différents carrefours de son arrondissement. La société fabriquant les pizze se situe au sommet A du graphe et la livraison doit s’effectuer au sommet H. 1. Dire pour quelles raisons le livreur peut résoudre ce problème en utilisant l’algorithme de Dijkstra ; au préalable chaque arête [x,y] sera remplacée par deux arcs de sens opposés : (x,y) et (y,x) ; sauf pour celles issues de A et de H. 2. Le livreur arrivera-t-il à temps ?
179
Chapitre 4 • Applications des graphes à la recherche opérationnelle
**4.7 Méthode matricielle
1 2 3 4 5 6 7 8 9
La matrice 1 ci-dessous donne les valuations d’un graphe. Appliquer la méthode matricielle, c’est-à-dire l’adaptation de l’algorithme de Roy-Warshall, pour déterminer les « plus courts » chemins (c’est-à-dire les chemins de valeur minimale) entre tous les couples de sommets du graphe ; il est conseillé de l’implémenter, ce qui est aisé. Vous pourrez vérifier les résultats en traçant le graphe (qui est sans circuit). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5
9
4
3 2 4 1 7 4 2 9 3 9 6 7 5 5
3 10 10 6 5 11 12
1 2
9 13 4 3 14 4 15 4 3 16
III Ordonnancements
*4.8 Graphes PERT et MPM, chemin critique et marges La mise en exploitation d’un nouveau gisement minier nécessite la réalisation des opérations ci-dessous : Durée a) Obtention d’un permis d’exploitation...................................... 8 mois* b) Construction d’une piste entre route et site.............................. 3 mois 180
Exercices
c) d) e) f) g) h) i) j) k) l)
Installation de trois sondeuses.................................................. Édification de baraquements provisoires.................................. Asphaltage de la piste............................................................... Adduction d’eau....................................................................... Campagne de sondage.............................................................. Fonçage et équipement des puits.............................................. Installation au fond du matériel d’exploitation........................ Construction de logements pour le personnel.......................... Traçage et aménagement du fond............................................. Construction d’une laverie.......................................................
3 semaines 1 mois 3 semaines 6 semaines 8 mois 5 mois 2 mois 13 semaines 38 semaines 42 semaines
* Les mois seront comptés chacun pour 4 semaines. On a constaté que l’opération b devait être précédée de l’opération a et qu’elle pré cède les opérations c, d, e et f ; que les opérations c et d devaient précéder l’opération g ; que les opérations h et j, enfin, devaient être précédées par les opérations e, f, g et qu’elles précèdent les opérations i, k et l. A. 1. Tracer le graphe événements-opérations (graphe PERT), relatif à l’ensemble de ces opérations. 2. Rechercher le chemin critique. 3. Calculer les dates au plus tôt, dates au plus tard, marges totales, marges libres. B. Effectuer le même calcul en utilisant la méthode des potentiels MPM.
*4.9
© Dunod – Toute reproduction non autorisée est un délit.
Un projet comporte les tâches : A, B, …, H, I. Voici leurs durées et les contraintes auxquelles elles sont soumises : A B C D E F G H I
16 jours 14 jours 20 jours 8 jours 18 jours 25 jours 15 jours 17 jours 10 jours
peut commencer au moins 5 jours après le début global peut commencer dès le début global peut commencer au moins 31 jours après le début nécessite A et B finis nécessite B fini nécessite B et C finis nécessite D, E et F finis nécessite E et la 1re moitié de C finis nécessite D, E et F finis
1. Tracer un graphe PERT pour ce projet ; attention aux tâches fictives (8 au minimum sont nécessaires). 2. Puis calculer la durée minimale du projet ; donner le chemin critique. 181
Chapitre 4 • Applications des graphes à la recherche opérationnelle
**4.10 Modifications survenant dans le déroulement d’un projet On donne le graphe ci-dessous et l’on demande de rechercher le chemin critique. NB. Sur ce diagramme les sommets sont des événements, les arcs des opérations. On introduit alors les modifications suivantes : 1. l’opération b ne peut débuter que lorsque les 2/3 de l’opération c ont été achevés ; 2. l’opération c ne peut débuter qu’une période après le début général des opé rations ; 3. l’opération k ne peut commencer que lorsque le premier tiers de l’opération j a été exécuté ; 4. l’opération h ne peut débuter qu’après l’exécution aux 2/3 de l’opéra tion e ; 5. le début de l’opération m ne peut avoir lieu que deux périodes après l’achèvement de l’opération f. Calculer le nouveau chemin critique en utilisant la méthode des potentiels. Étudier aussi la modification du graphe PERT. Comparer les deux méthodes.
IV Flots, affectations et transport
*4.11 Problème de flot Trois dépôts A, B, C disposent respectivement de 30, 20 et 45 tonnes de marchan dises ; cinq destinations D, E, F, G et H en demandent des quantités respectives de 10, 25, 20, 25 et 15 tonnes. Des camions, faisant route entre les points désignés, offrent les disponibilités (tonnages) ci-contre.
Etablir le meilleur plan de transport.
182
Exercices
*4.12 Tracé d'un réseau de transport et flot maximal I) Un graphe de n 5 5 sommets et m 5 8 arcs est décrit par la liste des s uccesseurs: i
1
2
3
4
5
di+
2
2
3
0
1
où di1 le demi-degré extérieur du sommet i, est le nombre d’arcs partant du sommet i. j
1
2
3
4
5
6
7
8
ext(j)
2
5
1
5
1
2
5
4
Le tableau ext(j) liste, dans l’ordre lexicographique, les extrémités terminales des arcs issus du sommet 1 puis celles du sommet 2, etc. Ainsi le sommet 1 a deux successeurs : ce sont les 2 premiers éléments du tableau ext(j), donc les sommets 2 et 5. 1. Tracer ce graphe. Montrer, en détail, qu’il s’agit d’un réseau de transport (la capacité de chaque arc étant donnée à la question suivante). 2. On associe à chaque arc uj une capacité et un flux : j
1
2
3
4
5
6
7
8
capa(j)
1
3
2
5
5
3
4
12
flux(j)
1
3
2
2
2
3
4
9
Vérifier que les flux proposés forment bien un flot sur ce réseau de transport. Déterminer, obligatoirement à l’aide de l’algorithme approprié, si ce flot est maximal. Sinon, l’optimiser. Donner la valeur du flot maximal ; indiquer une coupe minimale, et rappeler sa signification concrète.
© Dunod – Toute reproduction non autorisée est un délit.
*4.13 Problème d’affectation On a tiré au hasard les éléments de la matrice ci-dessous à six lignes et six colonnes. Affecter un élément et un seul par ligne et par colonne, de manière à obtenir la somme minimale “coût” minimal des affectations. a
10 B 29 C 17 D 58 E 15 F 25 A
b
c
d
e
f
90 24 43 14 41 44
27
14 90 02 18 44 36
39 23 73 16 73 80
52 13 70 63 70 80
79 62 06 78 81
183
Chapitre 4 • Applications des graphes à la recherche opérationnelle
*4.14 Programme de transport En des dépôts 1, 2, 3, et 4 existent des quantités respectives de 500, 600, 200 et 900 tonnes de minerai à transporter. Les distances mutuelles des clients, au nombre de 6, aux dépôts 1, 2, 3, et 4 sont données par la matrice ci-dessous.
1 2 3 4
1
2
3
4
5
6
9 7 6 6
12 3 5 8
9 7 9 11
6 7 11 2
9 5 3 2
10 5 11 10
Établir le plan de transport le plus économique de manière à faire parvenir, aux points de vente 1, 2, 3, 4, 5 et 6, les quantités respectives : 400, 300, 700, 200, 400 et 200 tonnes.
*4.15 Comparaison d’heuristiques pour les programmes de transport On donne la matrice d’un programme de transport ci-dessous, comportant quatre origines et cinq destinations. Vérifier que la somme des disponibilités égale celle des demandes.
On demande de chercher la (ou les) solutions optimales(s) en utilisant, pour obte nir la première solution de base : a) la règle du coin nord-ouest ; b) la règle de la différence maximale (méthode de Balas-Hammer). Comparer ces deux méthodes du point de vue de la longueur des calculs.
184
Exercices
V ARBRES, RECHERCHES ARBORESCENTES
*4.16 On considère le graphe valué donné par la figure ci-contre et l’on demande de chercher l’arbre de valeur (ou “poids”) minimale :
1. par l’algorithme de Prim, en respectant l’ordre alphabétique. 2. par l’algorithme de Kruskal. Existe-t-il plusieurs solutions ?
*4.17 Résoudre le même problème que précédemment mais, cette fois, afin de trouver l’arbre de valeur maximale.
**4.18 On demande de déterminer un circuit hamiltonien de valeur minimale dans le graphe valué donné par la matrice des valeurs des arcs ci-dessous : A
B
C
D
E
A
1
0
1
2
B
0
4
3
5
C
1
1
4
0
D
4
7
2
1
E
0
1
2
0
NB. Le lecteur trouvera d’autres exercices portant sur les recherches arborescentes, en fin du chapitre 1 : exercices 1.4 et 1.6. 185
5
Processus stochas tiques et program tion ma dynamique stochas tique
5.1 Introduction
aux problèmes stochastiques
On dit qu’on a affaire à un problème stochastique lorsque le hasard y intervient : c’est la difficulté principale de ces problèmes. Or, le gestionnaire n’est pas totalement désarmé dans une telle situation. S’il a une connaissance statistique du passé récent et s’il estime que l’avenir proche res semblera à ce passé, il peut songer à utiliser son information pour se prémunir contre des conséquences fâcheuses du hasard. Cette attitude, toute naturelle dans les sciences expérimentales où les lois peuvent, à l’échelle humaine, être considérées comme permanentes et où les mêmes causes produisent les mêmes effets, ne peut être étendue aux phénomènes d’organisation qu’avec prudence. Ainsi, si l’on a reconnu que les ventes de l’année passée ont affecté la forme d’une certaine distribution statistique, de moyenne 500 par mois, par exemple, et s’il s’agit d’un produit en pleine expansion, on pourra estimer que la même allure statistique du phénomène se conservera cette année, la moyenne étant toutefois relevée de x % et l’on déterminera cette proportion par l’étude de la « ten dance » (trend) sur les statistiques antérieures. La projection du passé sur l’avenir ne peut donc pas se faire de façon automatique. Si les budgets de la publicité et du service commercial doivent subir une sérieuse augmentation, on se donnera pour objectif d’accroître les ventes de l’année précé dente ; mais, si un puissant concurrent vient de s’installer, sans doute faudra-t-il pré voir que le développement du marché ne profitera pas qu’aux firmes déjà en place... Dans ces conditions, les indications statistiques qui seront utilisées dans les divers chapitres relatifs à la lutte contre le hasard, quoique présentées, pour la facilité de l’exposé, comme des données résultant de l’étude directe du passé, devraient en réalité
© Dunod – Toute reproduction non autorisée est un délit.
5.1 Introduction aux problèmes stochastiques
faire d’abord l’objet d’une critique et d’un rajustement convenable avant leur projec tion sur l’avenir. Une autre méthode consisterait, dans bien des cas, tout en partant de données non rectifiées, à mettre ensuite en cause les résultats provisoires de l’optimisation mathématique, pour tenir compte des expansions ou régressions dues à la conjonc ture ou aux événements particuliers à l’entreprise et à son environnement immé diat. Une autre caractéristique commune aux chapitres en question est d’aboutir cha cun à un compromis entre le coût correspondant à l’utilisation de moyens humains ou matériels et l’espérance mathématique du gain résultant de l’usage de ces moyens, dans des conditions connues seulement en probabilité. Dans un problème de files d’attente1, par exemple, il s’agit, en général, de déter miner le nombre des stations (où les « clients » viennent chercher un « service ») de manière à ce que ces clients ne perdent qu’un temps limité. Et cela revient à minimi ser le coût total de déploiement des stations et de l’attente des clients ; donc fina lement à établir un compromis entre le coût des serveurs et le coût de l’attente des clients, ces deux coûts variant évidemment en sens inverse. Mais le coût des serveurs est simplement proportionnel à leur nombre, tandis que celui de l’attente des clients dépend de données aléatoires (l’affluence de la clientèle et la durée du service). Dans les problèmes de maintenance1 (d’entretien) des équipements, c’est l’usure qui est aléatoire, et c’est sa connaissance statistique qui peut permettre de fixer les taux d’approvisionnement, de manière à obtenir le meilleur compromis entre le coût des arrêts du système (matériel) et celui du stockage des équipements (pièces) de rechange. Tous ces problèmes font appel à la notion commune de processus stochastique. Il sera donc nécessaire de donner ici, tout d’abord, quelques notions sur ces processus. Nous serons aidés par le fait que presque tous, étant donné en R.O. le caractère dis cret (c’est-à-dire fini ou infini dénombrable) de leurs ensembles d’états, peuvent être exposés concrètement en utilisant la théorie des graphes2. La première idée de la théorie des processus stochastiques revient sans doute à A. Einstein qui, en 1905, soutint sa thèse sur le mouvement brownien. Ensuite, A. Markov, vers 1910, en étudiant l’œuvre de Pouchkine intitulée « Eugène Onéguine », décrivit de manière probabiliste l’alternance des consonnes et des voyelles sous la forme d’une “chaîne” qui porte son nom. Le Danois Erlang créa, vers 1914, la théo rie des files d’attente (pour l’aider à résoudre des problèmes de dimensionnement de standards téléphoniques). C’est à A. Kolmogorov, que l’on doit la formalisation géné rale du processus stochastique (1933). Des mathématiciens comme D.G. Kendall, P. Lévy, A. Khintchine, W. Feller, J. Doob ont entrepris, dans l’intervalle ou par la suite, de développer encore cette théorie. 1. Pour le vocabulaire technique employé ici, se reporter aux paragraphes suivants. 2. Nous insisterons sur l’importante économie de pensée que procure la théorie des graphes pour la présentation des notions utiles sur les processus stochastiques et leurs applications.
187
Chapitre 5 • Processus stochastiques et programmation…
5.2 Définition d’un
processus stochastique
Un processus stochastique (ou processus aléatoire) est une famille de variables aléa toires Xt : 5 Xt, t H T 6
où t parcourt l’ensemble T (qui représente, le plus souvent, un ensemble de temps). Si T est discret, on parle plus volontiers de suite stochastique, l’appellation de pro cessus étant alors réservée au cas de T continu. Dans les applications, Xt représentera l’état pris par un système à l’instant t : ainsi pour une file d’attente, Xt sera le nombre de clients présents à t. La lettre T a donc été choisie en raison du fait que, très souvent, elle désigne un ensemble de dates ; lorsque T est discret, t1, t2, c, tn, csont des instants don nés ; lorsque T est continu (T 5 R1 par exemple), t désigne un instant quelconque 1t > 02. Lorsque Xt peut prendre un ensemble fini ou infini dénombrable de valeurs (ou états), le processus est dit à espace d’états discret : c’est très souvent le cas en recherche opérationnelle. Si, au contraire, ses valeurs appartiennent à un ensemble continu (un intervalle de R par exemple), on dit qu’il est à espace d’états continu : c’est fréquemment le cas en physique. Un processus aléatoire 5 Xt, t H T 6 est markovien si, pour tout instant u, pour toute valeur Xu 5 x donnée, la probabilité pour que le processus prenne la valeur y (passe par l’état y) à un instant quelconque t ultérieur (c’est-à-dire pour tout t > u) ne dépend pas des valeurs prises par le processus avant l’instant u : P 3 Xt 5 y k Xs pour s , u ; Xu 5 x 4 5 P 3 Xt 5 y k Xu 5 t 4
On dit aussi que le processus est sans mémoire.
5.3 Chaînes
de
Markov
à espace d’états discret
C’est ainsi qu’on nomme une suite stochastique (le temps est donc discret) à espace d’états discret et vérifiant la propriété « sans mémoire » ci-dessus ; nous suppose rons, en outre, le processus homogène. On a donc T 5 5 t0, t1, c, tn, c6 ; le plus souvent on confondra T avec N : on étudiera les états Xt par lesquels passe un système à t 5 0, 1, 2, c Soit un ensemble d’états : e 5 5 E1, E2, c, En, c6 , fini ou infini. On dit que « le processus est passé par l’état Ek à l’instant n » si : Xn 5 k. Par définition, une chaîne de Markov possède la propriété « sans mémoire ». P 3 Xn 5 j k X0 5 i0, X1 5 i1, c, X 5 i 4 5 P 3X 5 j k X 5 i 4 5 p( n ) . n21
188
n21
n
n21
n21
ij
5.3 Chaînes de Markov à espace d’états discret
On dit alors que la chaîne est markovienne d’ordre 1. Elle serait d’ordre p si la probabilité de l’état atteint à l’instant n ne dépendait que des p états antérieurs (atteints respectivement à t 2 p, t 2 p 1 1, c, t 2 1 ) ; par une démultiplication des états, on peut ramener une chaîne d’ordre p à une chaîne d’ordre 1. Les probabilités conditionnelles P 3 Xn 5 j k Xn 2 1 5 i 4 sont appelées probabilités de transition. On fera le plus souvent l’hypothèse que la chaîne est homogène(1) : alors les probabilités de transition pij(n) seront indépendantes de l’instant n de la tran sition (c’est pourquoi on les qualifie, parfois, de stationnaires dans le temps) : pij1n2 5 P 3 Xn 5 j k Xn 2 1 5 i 4 5 pij. Ainsi, par exemple, la probabilité de passer de l’état E12 à l’état E37 entre les ins tants t 5 0 et t 5 1, ou encore entre t 5 1 321 et 1 322 est la même : elle vaut p12,37.
Dans la suite, nous supposons que l’ensemble e des états est fini, de cardinal r. Les probabilités de transition pij vérifient ; 0 < pij < 1 et : pour i = 1, 2,... n : a pij 5 1, car il est certain que si la chaîne est dans l’état Ei à r
j51
t = n – 1, elle sera dans l’un quelconque des états E1, E2,..., Er à t = n. Ainsi une chaîne de Markov homogène, à espace d’état fini, est donnée par une matrice M carrée r 3 r, à terme positifs : 3 pij 4 5 M, dont la somme des termes, pour toute ligne, est égale à un. Une telle matrice est dite stochastique. Nous désignons par (n) le vecteur (stochastique) des probabilités des états : P ( n ) 5 3 p 1 ( n ) , p 2 ( n ) , c, p r ( n ) 4 , où :
p k ( n ) 5 P 3 X n 5 k 4 et a p i ( n ) 5 1 pour tout n = 0,1,... i51 Ainsi (0) sera la distribution initiale des probabilités des états. Évaluons (1) connaissant (0) ; on peut exprimer p j 1 1 2 à l’aide de la formule des probabilités totales. Rappelons que : P 3 B 4 5 a P 3 B k Ai 4 # P 3 Ai 4 , où B est un évé pd
© Dunod – Toute reproduction non autorisée est un délit.
i
nement et les Ai forment un système complet d’événements, c’est-à-dire une par tition de l’ensemble fondamental . Ainsi, en prenant pour Ai l’événement X0 5 i : P 3 X1 5 j 4 5 a P 3 X1 5 j k X0 5 i 4 # P 3 X0 5 i 4 , soit : r
p j 1 1 2 5 a p i 1 0 2 # pij ; soit, matriciellement : i 51 P ( 1 ) 5 P ( 0 ) # M ; De même on a : P ( n ) 5 P ( n 2 1) # M i 51
r
1. (1) Un processus 5 Xt, t H T 6 est homogène si, pour tout intervalle [s, t], la probabilité P 3 Xt 5 y k Xs 5 x 4 dépend seulement de la longueur t – s de cet intervalle. Alors, pour tout u : P 3 Xt 1 u 5 y k Xs 1 u 5 x 4 5 P 3 Xt 5 y k Xs 5 x 4 . En particulier, cette probabilité est égale à : P 3 Xt 2 s 5 y k X0 5 x 4 . 189
Chapitre 5 • Processus stochastiques et programmation…
On peut écrire aussi :
P ( n 2 1) 5 P ( n 2 2) # M et ainsi de suite, jusqu’à : P (2) 5 P (1) # M e t P ( 1 ) 5 P ( 0 ) # M En remplaçant P(1) par sa valeur dans l’expression de P(2), P(2) par sa valeur dans l’expression de P 1 3 2 ,c, on obtient évidemment : P ( n ) 5 P ( 0 ) # Mn, ce qui signifie que la « situation du système » (c’est-à-dire les probabilités des états) après la nième transition ne dépend que de la distribution initiale P(0) et des probabi lités de transition, [pij] 5 M. Notons que si les probabilités de transition possèdent la propriété “sans mémoire”, ce n’est pas le cas pour les probabilités des états. Nous notons pij1n2 la probabilité de passer de l’état Ei à l’état Ej, en exactement n transitions(1). Dans ces conditions, on a évidemment pour n = 2 transitions : pij122 5 a pik # pkj r
k51
car, pour aller de Ei à Ej en exactement deux transitions, il faut passer par un état intermédiaire Ek, qui peut être n’importe lequel des r états formant l’espace d’état e (fig. 5.1). De la même façon, on a aussi pour n = 1 + (n – 1) transitions : pij1n2 5 a pik # pkj1n 2 12, r
k51
puis, d’une manière plus générale pour n = p+q transitions :
pij1p 1 q2 5 a pik1p2 # pkj1q2. k51 Cette dernière relation est appelée relation de ChapmanKolmogorov ; elle est caractéristique du fait que la chaîne est « sans mémoire ». Il est facile de montrer que la probabilité de passer de l’état Ei à l’état Ej en exactement n transitions, soit pij1n2, est égale à l’élément (i, j) de la matrice M n : 3 pij1n2 4 5 3 pij 4 n, soit M (n) 5 Mn. r
Figure 5.1
En effet, on a bien : pij122 5 a pik # pkj ; on reconnaît la formule r
k51
du produit matriciel et donc 3 pij(2) 4 5 M2. 1. (1) Nous poserons, en outre, pij(0) 5 dij, d ij étant le symbole de Kronecker (dij 5 1 si et seulement si i 5 j et dij 5 0 sinon).
190
5.4 Classification des états d’une chaîne de Markov
Par récurrence, il est aisé de montrer que, si la propriété est vraie pour n 2 1, elle
est vraie aussi pour n : supposons que 3 pij(n 2 1) 4 5 Mn 2 1. Comme pij1n2 5 a pij # pkj1n 2 12 , k51 soit : M (n) 5 M # Mn 2 1, on a aussi : M (n) 5 Mn. r
Matriciellement, la relation de Chapman-Kolmogorov M 5M(p) # M(q), vrai car Mp 1 q 5 Mp # Mq. ( p 1 q)
revient
à :
5.4 Classification des états d’une chaîne de Markov finie à l’aide du graphe des transitions À la matrice M 5 [pij], faisons correspondre le graphe G 5 (X, U), tel que X 5 e, c’est-à-dire que les sommets du graphe ne sont autres que les états de la chaîne de Markov, et U 5 5 1 Ei, Ej 2 k Ei. Ej Pe ; pij . 0 6 , c’est-à-dire qu’il existe un arc dans le graphe G de l’état Ei vers l’état Ej si la probabilité de transition pij est strictement positive. Exemple. Un système peut se trouver dans l’un des 12 états : A, B, C. c, L. On a donc e 5 5 A, B, c, L 6 , (plutôt que e 5 5 E1, E2, c, E12 6 : ceci pour alléger la notation).
Toutes les minutes, ce système subit une transition, c’est-à-dire un changement d’état (ou bien reste dans l’état antérieur). Voici la matrice M 5 3 pij 4 donnant les probabilités de transition et le graphe G 5 1 e, U 2 associé (fig 5.2) : (les cases vides correspondent à un zéro) A A 0, 1 B
B
C
D
E
H 0, 4
0, 2
0, 5
I
0, 3 0, 4
E
L
0, 3
0, 2
0, 4 1
1 0, 6
0, 3
0, 1
I
0, 2
J L
K
0, 7
M =F
K
J
1
D
© Dunod – Toute reproduction non autorisée est un délit.
G
0, 5
C
G H
F
0, 8 1
0, 4
0, 5
0, 1 0, 8
0, 1
0, 1
Le lecteur vérifiera que la somme des termes, dans toute ligne de M, vaut 1.
191
Chapitre 5 • Processus stochastiques et programmation…
Figure 5.2
On dit qu’un état Ej est « accessible » à partir de l’état Ei si, pour au moins une cer taine valeur de l’entier q, on a : pij1q2 . 0. En termes de graphe cela signifie qu’il existe un chemin de longueur q (composé de q arcs) du sommet Ei vers le sommet Ej. Deux états Ei et Ej mutuellement accessibles sont dits « communicants ». En termes de graphe : il existe alors un chemin de Ei vers Ej et un chemin de Ej vers Ei. Autrement dit, Ei et Ej appartiennent à une même composante fortement connexe du graphe. Le graphe comporte deux composantes connexes : en termes de chaînes de Markov, on dit que la chaîne comporte deux sous-chaînes, ayant pour ensemble d’états respectivement ; e1 5 5 A, B, C, D, E, F, G, K 6 et e2 5 5 I, J, L 6 .
Si l’état initial du système appartient à e1 la chaîne ne passera jamais par les états de e2, et réciproquement. La matrice M 5 3 pij 4 est alors « décomposable » :
1
2
A B
A
B
·1
·5
C
E
G
H
·5
·2
K
I
·3 ·4
D E
·7 ·2
F
·6
L
·3
0
·4
1
1
G
J
1
C
H
F
·4
·3
K I J L
NB. Ici # 4 représente : 0,4. 192
D
·4
·5
0
·1
·1
·2 ·8
1
·1
·8 ·1
5.4 Classification des états d’une chaîne de Markov
Déterminons, pour chaque sous-chaîne, les « classes d’états communicants » qui d’après la remarque ci-dessus, coïncident avec les composantes fortement connexes du graphe (cette détermination peut se faire algorithmiquement : par un algorithme fondé sur un parcours en profondeur du graphe, donc de faible complexité). Pour e1, on trouve 4 composantes fortement connexes et donc 4 classes : c1 5 5 A 6 , c2 5 5 B, H 6 , c3 5 5 C, F, G 6 , c4 5 5 D, E, K 6 .
Pour e2, on trouve 2 composantes fortement connexes et donc 2 classes : c5 5 5 I, L 6 , c6 5 5 J 6 .
© Dunod – Toute reproduction non autorisée est un délit.
On peut alors retracer le graphe en faisant apparaître l’ordre sur ces composantes fortement connexes. Rappelons que « ck précède c, » (ck < c,) si et seulement si, dans G, il existe un chemin d’un sommet quelconque de ck vers un sommet quel conque de c, ; cette relation étant réflexive, antisymétrique et transitive, il s’agit d’une relation d’ordre sur les classes, dont voici le diagramme de Hasse :
Les classes c1, c2 et c5 sont des classes d’états transitoires : si le système est ini tialement dans l’un des sommets de ces classes, il finira par le quitter définitivement (pour tout état transitoire Ei, pij1q2 S 0 quand le nombre de transitions q S ` 2 . Dans le diagramme ci-dessus toute classe transitoire ck a une classe « au dessus » d’elle, c’est-à-dire que ck précède une autre classe. Au contraire, les classes c3, c4 et c6 – qui sont des « éléments maximaux » (sans classe « au dessus » d’elles) – sont nommées « classes récurrentes » (on dit aussi persistantes ou finales) ; lorsque le système atteint un état d’une classe récurrente cr, tous les états par lesquels il passera ultérieurement appartiennent à cette même classe cr. Mais il existe des différences entre les classes récurrentes ; ainsi entre la classe c4 5 5 D, E, K 6 et la classe c3 5 5 C, F, G 6 : en effet si le système passe par l’état C lors de la kième transition, il est certain qu’il passera par F lors de la k 1 1ième, par G lors de la k 1 2ième, de nouveau par C lors de la k 1 3ième et ainsi de suite : il s’agit 193
Chapitre 5 • Processus stochastiques et programmation…
d’une « classe périodique ». Nous préciserons plus loin, dans une annexe, la notion de périodicité. Au contraire pour la classe 5 D, E, K 6 5 c4, l’évolution sera toute diffé rente : on dit qu’il s’agit d’une « classe apériodique ». On peut calculer la pro babilité pour que le système se trouve dans chacun des états de c4 au bout d’un grand nombre de transitions, sachant qu’initialement (à t = 0), le système y était déjà : p D 1 0 2 1 p E 1 0 2 1 p K 1 0 2 5 1 (ou bien si l’on est sûr qu’au bout d’un certain nombre de transitions, le système a atteint l’un des états D, E, ou K). Soit Mr la sous-matrice des probabilités des transitions entre les états de la classe c4 ; nous supposerons l’existence d’une distribution stationnaire des probabilités des états (atteinte après un grand nombre de transitions), soit P* 5 3 p *D, p *E, p *K 4 . Cette distribution étant stationnaire, on retrouve la même après une transition : P* 5 P* # Mr, soit, en posant (pour alléger les notations) P* 5 3 a, b, c 4 : D
E
5 5 5 5
a b c 1
K
D 0, 3 0, 7 0 3a, b, c4 5 3a, b, c4 Mr, où: Mr 5 E £ 0, 4 0, 2 0, 4 § K 0, 4 0, 5 0, 1 Le système P* 5 P* # Mr s’écrit : 0, 3a 1 0, 4b 0, 7a 1 0, 2b µ 0, 4b a b
0, 4c 1 0, 5c 1 0, 1c 1 c 1
(1) (2) (3) (4)
Remarquons que (4) – (1) – (2) redonne l’équation (3), si bien que ce système comporte 3 équations indépendantes, pour 3 inconnues. L’équation (5.3) fournit 9 13 b 5 c ; en reportant dans (2), il vient : a 5 c. En reportant dans (4), il vient : 4 7 a
13 9 1 1 1b c 5 1, 7 4
28 63 52 52 63 28 ; puis b 5 et a 5 , soit P* 5 B , , R : ce sont 143 143 143 143 143 143 donc les probabilités de trouver le système en D, Ε ou Κ au bout d’un grand nombre de transitions. Supprimons les 9 autres états pour garder seulement la sous-chaîne ayant comme ensemble d’états c4 et pour matrice Mr ; on constate ici que les pro babilités des états tendent vers une limite P* indépendante de la distribution initiale P(0) et strictement positive.
d’où : c 5
194
5.4 Classification des états d’une chaîne de Markov
À cause de cette propriété particulière, la sous-chaîne est qualifiée d’ergodique, car elle assure (comme en théorie cinétique des gaz) un certain équilibre statistique, qu’on nomme ergodisme.
On admettra qu’une chaîne de Markov finie est ergodique (alors P* > 0) si et seulement si elle comporte une seule classe récurrente1 et si, de plus, cette classe est a périodique (voir page suivante). Une chaîne de Markov est fortement ergodique (alors P* . 0 ) si elle est constituée d’une seule classe d’états, tous apériodiques ; cette classe unique est récurrente, il n’existe pas alors de classe transitoire ; en termes de graphes, une chaîne de Markov finie est fortement ergodique si son graphe est fortement connexe (ce qui assure l’existence d’une classe fortement connexe et d’une seule) et comporte une boucle (ce qui assure que la classe soit apériodique) ; cette condition d’apériodicité est suffisante mais elle n’est pas nécessaire : cf. la fin de ce paragraphe. Remarquons que, dans la sous-chaîne {I, J, L}, les états I et L sont transitoires, tandis qu’elle comporte une seule classe récurrente et apériodique contenant, en fait, un seul état : J. Dans ce cas, un tel état est qualifié d’« absorbant » (noter l’analogie avec les états-piège dans les automates). Notons que cette sous-chaîne est ergodique, mais pas fortement ergodique puisque : P* 5 3 0 1 0 4 I J L Remarques. • Une chaîne de Markov finie possède nécessairement au moins une classe récurrente (qui peut être apériodique ou périodique). • Pour une chaîne fortement ergodique, la matrice M* 5 lim Mn a toutes nS ` ses lignes identiques et égales au vecteur P*, ainsi : 52 63 28 1 lim Mr 5 £ 52 63 28 § 143 n S` 52 63 25 © Dunod – Toute reproduction non autorisée est un délit.
n
Cette propriété permet de comprendre le paradoxe (qui n’est qu’apparent) suivant : Nous avons vu que : P ( n ) 5 P ( 0 ) # Mn. Pour une chaîne ergodique, on sait que M n possède une limite M* quand n S `, et que P(n) tend vers une limite P* indépendante de la distribution initiale P(0). Prenons la limite de chaque membre de l’équation ci-dessus quand n tend vers l’infini, il vient : P* 5 P ( 0 ) # M*.
ce qui semble contredire notre propos : apparemment P*, dans cette relation, dépen drait de P(0). Mais il faut savoir que M* a toutes ses lignes égales à P*. 1. Elle peut donc comporter plusieurs classes transitoires.
195
Chapitre 5 • Processus stochastiques et programmation…
Ainsi, pour la sous-chaîne {D, Ε, K}, prenons une répartition initiale quelconque P(0) 5 [a, b, g] où a, b et g > 0 et a 1 b 1 g 5 1. Effectuons P ( 0 ) 3 M*, il vient :
d’où : P* 5
52 63 28 1 # 3 a, b, g 4 £ 52 63 28 § 5 P* 143 52 63 28 1 52 , 63 , 28 3 52 ( a 1 b 1 g ) , 63 ( a 1 b 1 g ) , 28 ( a 1 b 1 g ) 4 5 c d. 143 143 143 143
P*, ne dépendant pas de a, b et g, est donc bien indépendant de P(0) ! • Valeurs propres de la matrice M 5 3 pij 4 . La matrice M est une matrice à éléments positifs ou nuls ; la somme des termes de chaque ligne étant égale à 1 (on dit alors que M est « stochastique »). Toute matrice stochastique admet au moins une valeur propre égale à 1 et toutes les valeurs propres ont un module inférieur ou égal à 1. L’ordre de multiplicité de la valeur propre l 5 1 est égal au nombre de classes récurrentes de la chaîne de Markov donnée par M. Si une classe récurrente est périodique de période d, alors les d racines d ièmes de l’unité sont valeurs propres de M. Ainsi pour Mr, le polynôme caractéristique : dét(M 2 lI), est : l3 2 0, 6 l2 20, 37 l 20, 03 5 (l 2 1)(l 1 0, 3)(l 1 0, 1). Les valeurs propres de Mr sont donc : 1, 20,3 et 20,1. En particulier, on retrouve le fait que la chaîne associée à Mr comporte une seule classe (l 5 1 étant d’ordre 1) et apériodique (aucune racine d ième de l’unité parmi les valeurs propres). C F G C 0 1 0 En revanche, pour Ms 5 F £ 0 0 1 § , le polynôme caractéristique est : G 1 0 0 l 3 2 1 5 ( l 2 1 )( l 2 j )( l 2 j ) où j 5 2
1 "3 1 "3 et j 5 2 2 i 1i . 2 2 2 2
Les valeurs propres de Ms sont les racines cubiques de l’unité : 1, j, j ; la chaîne associée à Ms comporte donc une seule classe, récurrente, de période d 5 3. • Retour sur la notion de périodicité Par définition, la période di d’un état récurrent Ei est : di 5 PGCD 5 n k pij(n) . 0 6 , où pii1n2 est la probabilité que le système, partant de Ei, y repasse après n transitions ; la période di est donc aussi le PGCD des longueurs des circuits passant par Ei. 196
5.5 Processus de Markov à espace d’états discret
© Dunod – Toute reproduction non autorisée est un délit.
Ainsi pour la chaîne ci-dessus comportant une seule classe d’états (qui est donc récurrente) car son graphe est fortement connexe, la période de E4 est : d4 5 PGCD 5 4, 8, 12, c6 5 4. On vérifie que les circuits passant par E4 ont une longueur qui est un multiple de 4. L’exemple ci-dessus montre que la périodicité d 1 142 pour l’état Ei n’exige pas que : pii1n2 soit égal à 1. Ainsi p55 5 . 3 Un état Ei est dit « apériodique » si di 5 1. Une condition suffisante d’apériodi cité pour Ei est que le graphe possède une boucle au sommet Ei : alors pii112 5 pii . 0 et di 5 PGCD 5 1, c6 5 1. Cette condition n’est pas nécessaire : Pour la chaîne ci-dessous : di 5 PGCD 5 2, 3,c6 5 1. En effet il y a un circuit de longueur 2 passant par Ej, et un autre de longueur 3. Enfin on peut montrer que tous les états d’une même classe (récurrente) ont la même période : il s’agit en fait d’un résultat concernant les lon gueurs des circuits à l’intérieur d’une composante fortement connexe d’un graphe. • Si l’on résolvait le système P* # Ms 5 P*, on obtiendrait 1 p *C 5 p *F 5 p *G 5 . 3 Cela ne correspond pas à une limite aux probabilités des états P(n) quand n S `, mais seulement à une limite en moyenne : « au sens de Cesaro » (toutes les 3 transi tions, le système passe par C, F ou G). P(n) n’a pas de limite, puisqu’il oscille entre les 3 vecteurs ; [1, 0, 0] , [0, 1, 0] et [0, 0, 1].
5.5 Processus
de
Markov
à espace d’états discret
Nous avons étudié dans le paragraphe précédent les chaînes de Markov ; ce sont des processus stochastiques à temps discret et à espace d’états discret. Nous présentons 197
Chapitre 5 • Processus stochastiques et programmation…
maintenant les processus de Markov, qui sont des processus stochastiques à temps continu et à espace d’états discret : ils constituent un outil privilégié pour modéliser en recherche opérationnelle bien des problèmes : dans le domaine des phénomènes d’attente ou de la fiabilité et de la sûreté de fonctionnement, notamment. Un processus stochastique Xt caractérise l’état d’un système à l’instant t. C’est un processus de Markov à temps continu et à espace d’états discret s’il vérifie les trois propriétés suivantes : 1) le temps t est continu. Le plus souvent le temps varie de 0 à l’infini ; alors : tPT 5 R1 ; 2) Xt appartient à un espace d’états e qui est discret (c’est-à-dire, comme nous l’avons déjà dit, fini ou infini dénombrable) : Xt Pe 5 5 E1, E2, c, Em, c6 . Dans la suite on omettra de rappeler à chaque fois ce caractère discret. Mais dans ce paragraphe, e peut être infini. 3) Le processus stochastique Xt vérifie la propriété « sans mémoire » (ou prop riété de Markov) : la probabilité pour que le système passe par l’état Ej à l’instant t 1 , sachant qu’il était dans l’état Ei à l’instant t, ne dépend pas des états par les quels le système est passé entre les instants 0 et t – : P 3 Xt 1 5 Ej k Xu pour 0 < u , t , Xt 5 Ei 4 5 P 3 Xt 1 5 Ej k Xt 5 Ei 4 . 4) Nous supposerons en outre dans la suite que les processus de Markov sont « homogènes » (de même que nous l’avons fait pour les chaînes de Markov) : la probabilité de transition ci-dessus sera supposée indépendante de t et dépendra donc seulement de la durée τ d’évolution du système (entre t et t 1 ) : P 3 Xt 1 5 Ej k Xt 5 Ei 4 5 pij 1 2 . On notera M( ) 5 3 pij ( ) 4 la matrice de ces probabilités de transition. N.B. On suppose le plus souvent les processus de Markov « homogènes » car l’emploi de processus de Markov non homogènes est des plus rares dans les applications. Notons que l’on a pour les probabilités de transition : a pij 1 2 5 1 pour tout état Ei.
EjPe
En effet, sachant qu’à l’instant t le processus est dans l’état Ei, il est certain qu’à l’instant t 1 il se trouvera dans l’un quelconque des états de e (le processus ne peut pas « s’échapper » de son espace d’états), et la probabilité d’un événement certain vaut 1. Donnons maintenant la relation de Chapman-Kolmogorov pour les probabilités des transitions : pij ( u 1 ) 5 a pik ( u ) # pkj ( ) , dont voici la démonstration : Ek Pe
pij ( u 1 ) 5 P 3 X U 1 5 Ej k X 0 5 Ei 4 5 a P 3 X U 1 5 Ej et X U 5 Ek k X 0 5 Ei 4 . Ek Pe
198
5.5 Processus de Markov à espace d’états discret
En appliquant la définition des probabilités conditionnelles : P 3 U k V 4 5 P 3 U et V 4 / P 3 V 4 , le lecteur vérifiera aisément que : P 3 A et B k C 4 5 P 3 A k B et C 4 # P 3 B k C 4 . D’où :
pij ( u 1 ) 5 a P 3 X U 1 5 Ej k X 0 5 Ei et X U 5 Ek 4 # P 3 X U 5 Ek k X 0 5 Ei 4 . Ek Pe
D’après la propriété sans mémoire, la première probabilité de ce produit ne dépend pas de l’événement X0 5 Ei, qui est antérieur à ; elle est alors égale à : P 3 X U 1 5 Ej k X U 5 Ek 4 5 pkj ( ) , ceci en tenant compte de la propriété d’homogénéité. Par ailleurs, par définition : P 3 X U 5 Ek k X 0 5 Ei 4 5 pik ( u ) .
Finalement : pij ( u 1 ) 5 a pik ( u ) # pkj ( ) . EkPe Matriciellement, cette relation fournit : M ( u 1 ) 5 M ( u ) # M ( ) . Donnons maintenant l’expression des probabilités de transitions sur un intervalle de temps infinitésimal : 5 Dt. Sous des hypothèses très larges, vérifiées notam ment si e est fini, on peut montrer que les propriétés 1), 2), 3) et 4) font que : où i 2 j pij ( Dt ) 5 l ij # Dt 1 o ( Dt ) • pii ( Dt ) 5 1 2 a l ij # Dt 1 o ( Dt ) 5 1 2 qi Dt 1 o ( Dt ) Ej He j2i
© Dunod – Toute reproduction non autorisée est un délit.
Rappelons que ο(Dt) est la notation de Landau ; lim o 1 Dt 2 5 0 et que Dt S 0 ( ) o Dt lim 5 0. Dt S 0 Dt On dit que les termes en ο(Dt) sont « d’ordre supérieur à un en Dt ». Notons que lij est le taux de transition de Ei vers Ej ; en effet : lim 3 pij ( Dt ) /Dt 4 5 l ij. Dt S 0 Ce taux est nécessairement positif ou nul (puisque pij 1 Dt 2 > 0). On peut alors montrer que la probabilité que, étant dans l’état Ei à l’instant t, le processus reste constamment dans cet état entre t et t 1 vaut e 2 q i ; on peut aussi prouver que la probabilité pour que le processus, étant dans l’état Ei à l’instant t, quitte pour la première fois cet état Ei pour passer dans l’état Ej vaut : lij /qi 5 mij ( i 2 j, sinon m ij 5 0 ) . La matrice [mij] étant telle que a mij 5 1, est une matrice EjPe stochastique. Le « générateur infinitésimal » du processus de Markov est une matrice A 5 3 aij 4 où aij 5 lij pour j 2 i et aii 5 2qi. La somme des éléments de toute ligne de cette d matrice est donc nulle. En notant M( ) 5 3 pij ( ) 4 et Mr ( ) 5 B pij ( ) R, on montre dt que l’on a les équations « du passé » : Mr ( ) 5 A # M ( ) et les équations « du futur » : 199
Chapitre 5 • Processus stochastiques et programmation…
Mr ( ) 5 M( ) # A. On obtient ainsi des systèmes d’équations différentielles linéaires pour les probabilités de transition sur un intervalle de temps quelconque (que l’on ne peut résoudre analytiquement que dans des cas simples, comme c i-dessous). Donnons un exemple simple de processus de Markov : dans un bureau travaille un ingénieur. Des collègues se présentent aléatoirement à la porte de ce bureau (sans rendez-vous !) : si l’ingénieur est déjà occupé, ces collègues renoncent à attendre et reviendront une autre fois. Si notre ingénieur n’est pas déjà occupé avec un autre collègue, le visiteur entre et une discussion, de durée aléatoire..., s’engage. La probabilité pour qu’un visiteur se présente pendant un intervalle de temps Dt est : lDt 1 o(Dt) ; celle que plusieurs visiteurs se présentent est négligeable (en o(Dt). Une conversation en cours à t se terminera entre t et t 1 Dt avec la probabilité m Dt 1 ο(Dt). On peut alors associer un processus de Markov au « fonctionnement » de ce bureau ; l’ensemble des états est e 5 5 E0, E1 6 où E0 (resp. E1) désigne l’état pour lequel il n’y a pas de visite en cours dans le bureau de l’ingénieur (resp. une visite est en cours). Voici les probabilités de transition entre t et t 1 Dt : p01 1 Dt 2 5 lDt 1 o 1 Dt 2 ; p00 1 Dt 2 5 1 2 lDt 1 o 1 Dt 2 p10 ( Dt ) 5 mDt 1 o ( Dt ) ; p11 ( Dt ) 5 1 2 mDt 1 o ( Dt ) 2l l Le générateur infinitésimal est alors : A 5 c d ; on vérifie que la somme m 2m des éléments de toute ligne est nulle. On peut associer à un processus de Markov homogène un graphe G 5 1 e, U 2 où à chaque état du processus est associé un sommet du graphe et où, à chaque transi tion de probabilité non nulle (ou non négligeable), est associé un arc qui sera valué par la probabilité de la transition entre t et t 1 Dt. Ainsi pour notre exemple :
Du graphe des transitions entre t et t 1 Dt, on déduit le « graphe simplifié » G 5 1 e, Ur 2 déduit du précédent en supprimant les boucles et en valuant tout arc (Ei, Ej) par le taux lij (rappel : lij > 0, i 2 j ) .
5.6 Probabilités
des états
Dans les applications (modélisations par processus de Markov), les paramètres significatifs du fonctionnement des systèmes ainsi modélisés s’évaluent à partir des valeurs des probabilités des états : d’où l’intérêt pratique de cette notion. 200
5.6 Probabilités des états
Soit une distribution initiale des probabilités des états : P(0) 5 [p0(0), p1(0), c4 où pi(0) désigne la probabilité initiale (à t 5 0) de l’état Εi : pi(0) 5 P[X0 5 Ei]. La probabilité de l’état Ej à l’instant t est : pj(t) 5 P[Xt 5 Ej] (elle n’a de sens que si la distribution initiale P(0) a été spécifiée). Par application de la « formule des probabilités totales » (cf p. 189), on a : p j ( t ) 5 P 3 Xt 5 Ej 4 5 a P 3 Xt 5 Ej k X0 5 Ei 4 # P 3 X0 5 Ei 4 ,
soit : p j 1 t 2 5 a p i 1 0 2 # pij 1 t 2 . En posant P 1 t 2 5 3 p 0 1 t 2 , p 1 1 t 2 , c4 et i M( t ) 5 3 pij 1 t 2 4 , cette relation s’écrit matriciellement : P 1 t 2 5 P 1 0 2 # M 1 t 2 . Plus géné ralement, on peut montrer la relation : P 1 t 1 2 5 P 1 t 2 # M 1 2 . En effet la relation de Chapman-Kolmogorov : EiPe
pij 1 t 1 2 5 a pik 1 t 2 # pkj 1 2 k fournit, après multiplication de chaque membre par p(0), puis en sommant pour tous les états Ei de e : p j 1 t 1 2 5 a p i 1 0 2 # pij 1 t 1 2 5 a a p i 1 0 2 # pik 1 t 2 # pkj 1 2 i
i
k
5 a a a p i 1 0 2 # pik 1 t 2 b # pkj 1 2 5 a p k 1 t 2 # pkj 1 2 . k
i
k
En résumé : p j 1 t 1 2 5 a p k 1 t 2 # pkj 1 2 , qui s’écrit bien matriciellement : k
P ( t 1 ) 5 P ( t ) # M( ) . Posons 5 Dt dans la relation ci-dessus et utilisons les expressions des probabi lités pkj(Dt) données plus haut : p j 1 t 1 Dt 2 5 a p k 1 t 2 # pkj 1 Dt 2 5 a p k 1 t 2 # l kj # Dt 1 1 1 2 qjDt 2 # p j 1 t 2 1 o 1 Dt 2 k
k2j
Retranchons pj(t) à chaque membre, puis divisons chacun par Dt : p j ( t 1 Dt ) 2 p j ( t ) o ( Dt ) 5 a p k ( t ) # l kj 2 qjp jt 1 . Dt Dt
© Dunod – Toute reproduction non autorisée est un délit.
k2j
Prenons la limite pour Dt tendant vers 0 :
p rj ( t ) 5 a p k ( t ) # l kj 2 qj # p j ( t ) . k2j
Soit, matriciellement, Pr ( t ) 5 P ( t ) # A. Remarquons qu’on aurait pu établir directement cette relation matriciellement ; en effet en posant 5 Dt dans la relation P ( t 1 ) 5 P ( t ) # M( ) puis en retranchant P ( t ) à chaque membre et enfin en divisant chacun par Dt: P ( t 1 Dt ) 2 P ( t ) M( Dt ) 2 I 5 P(t) # . Dt Dt Par passage à la limite pour Dt tendant vers 0, il vient : Pr ( t ) 5 P ( t ) # A. 201
Chapitre 5 • Processus stochastiques et programmation…
5.7 Ergodicité Nous commencerons par prendre un exemple : celui de l’ingénieur dans son bureau. Nous connaissons les expressions des probabilités de transition entre t et t 1 Dt, c'est-à-dire sur un intervalle de temps infinitésimal Dt ; calculons maintenant ces probabilités pour un intervalle de temps quelconque, d’amplitude t. Dans l’équation de Chapman-Kolmogorov faisons τ 5 Dt et i 5 j 5 0 : p00 1 t 1 Dt 2 5 a p0k 1 t 2 # pk0 1 Dt 2 5 p00 1 t 2 1 1 2 lDt 2 1 p01 1 t 2 # mDt 1 o 1 Dt 2 . k
p00 ( t 1 Dt ) 2 p00 ( t ) o ( Dt ) D’où : 5 2 l # p00 ( t ) 1 m # p01 ( t ) 1 . Dt Dt Par passage à la limite pour Dt tendant vers 0, il vient : pr00 1 t 2 5 2 l # p00 1 t 2 1 m # p01 1 t 2 ; Or p00(t) 1 p01(t) 5 1, d’où : pr00 1 t 2 5 2 l # p00 1 t 2 1 m 1 1 2 p00 1 t 2 2 , soit : pr00 ( t ) 1 ( l 1 m ) # p00 ( t ) 5 m. Il s’agit d’une équation différentielle du premier ordre, à coefficients constants et avec second membre. Sa solution, p00(t), sera la somme de l’« intégrale générale » sans second membre, soit K # exp 3 2 1 l 1 m 2 t 4 , et d’une intégrale particulière avec le m second membre, soit m/ 1 l 1 m 2 . On a donc : p00 1 t 2 5 K e 2 1l1 m2t 1 . l1m Sachant que p00(0) 5 1, la constante Κ vaut : K 5 l/ 1 l 1 m 2 . l m Finalement p00 1 t 2 5 e 2 1l 1 m 2t 1 . l1m l1m l l e 2 1l 1 m2t 1 On en déduit p01 1 t 2 5 2 , car p01 1 t 2 5 1 2 p00 1 t 2 . l1m l1m De même on montrerait que : p10 ( t ) 5 2
m l1 m
e 2 (l1 m )t 1
m l1 m
m l e 2 (l1 m )t 1 p11 ( t ) 5 , avec p10 ( t ) 1 p11 ( t ) 5 1. l1 m l1 m Matriciellement : M( t ) 5 c
1 p00 ( t ) p01 ( t ) e 2 ( l 1 m ) t l 2l m l 5 d 1 c c d d p10 ( t ) p11 ( t ) 2 m m l1m l1m m l
Remarque importante. Si l’on fait tendre t vers l’infini, les probabilités de m ( car : e2` 5 0 ) . transition p00(t) et p10(t) ont la même limite : l1m 202
5.7 Ergodicité
De même, p01(t) et p11(t) ont la même limite :
l l1m
.
Ces limites sont les mêmes quelque soit l’état initial : E0 ou E1. Ce fait a une conséquence importante pour les probabilités des états : suppo sons qu’à t 5 0 on ait une répartition quelconque des probabilités des états, soit : p0(0) 5 a et p1(0) 5 b, soit P(0) 5 [a, b], où a et b sont des réels positifs ou nuls, tels que a 1 b 5 1. Évaluons les probabilités d’états E0 et E1 à l’instant t : p 0 ( t ) 5 a p i ( 0 ) # pij ( t ) 5 p 0 ( 0 ) # p00 ( t ) 1 p 1 ( 0 ) # p10 ( t ) 5 ap00 ( t ) 1 bp10 ( t ) . i
D’où : p 0 ( t ) 5 ( a 1 b ) et : p 1 ( t ) 5 ( a 1 b )
m l1m
l
1 e2
2 e2
(l 1 m )t
(l1 m )t
# al 2 bm , l1m
# al2 bm . On vérifie : p 0 ( t ) 1 p 1 ( t ) 5 1.
l1 m l1 m Prenons alors les limites de ces probabilités d’états quand t tend vers l’infini : l m p0(t) tend vers p *0 5 (car a 1 b 5 1). ; de même : p *1 5 l1m l1m
© Dunod – Toute reproduction non autorisée est un délit.
Ainsi, les probabilités des états tendent, ici, vers une limite positive, indépen dante de la distribution initiale. On dit alors que le processus de Markov est « forte ment ergodique ». D’une manière générale, nous dirons d’un processus de Markov (homogène) qu’il est « fortement ergodique » si toute probabilité de transition pij(t) admet, quand t tend vers l’infini, une limite positive p*j , indépendante de l’état initial Εi. La matrice M(t) aura alors pour limite la matrice M* dont toutes les lignes sont identiques et égales à 3 p*0, p*1, p*2, c4 . Ainsi dans notre exemple : M* 5 ≥
m l l1m l1m m
l
l1m l1m
¥
Par conséquent, le vecteur des probabilités des états admet une limite P*, posi tive, indépendante de la distribution initiale. En effet, puisque P ( t ) 5 P ( 0 ) # M( t ) , par passage à la limite, il vient : * P 5 P ( 0 ) # M *. Exemple. Sans perte de généralité, on peut considérer un processus de Markov, fortement ergodique, avec 3 états : e 5 5 E0, E1, E2 6 ; prenons une répartition ini tiale quelconque P(0) 5 [a, b, c] où a, b, c sont positifs ou nuls et a 1 b 1 c 5 1. Détaillons le produit matriciel ci-dessus : 203
Chapitre 5 • Processus stochastiques et programmation…
p*0 p*1 p*2 P* 5 3 a, b, c 4 # C p*0 p*1 p*2 S 5 3 p*0 1 a 1 b 1 c 2 , p*1 1 a 1 b 1 c 2 , p*2 1 a 1 b 1 c 2 4 , p*0 p*1 p*2 soit P* 5 3 p*0, p*1, p*2 4 : cette limite est, elle aussi, positive et indépendante de la dis tribution initiale P(0). Remarquons, en outre, que pour tout état Ei, on a : p *i 5 p*i . On peut donner une condition suffisante de forte ergodicité (admise ici) pour un processus de Markov : c’est que son graphe soit fortement connexe et fini. Ce qui était le cas dans notre exemple. Rappelons que « graphe fini » équivaut à : « e fini ». Nous verrons ultérieurement que, pour un processus de Markov comportant un nombre infini d’états, la forte ergodicité peut avoir lieu ou pas, selon les valeurs relatives des différents taux lij (comme plus bas, dans les processus de naissance et de mort). Précisons enfin qu’un processus de Markov est « ergodique » (on dit aussi « sim plement ergodique ») si toute probabilité de transition pij(t) admet, quand t tend vers l’infini, une limite positive ou nulle p*j indépendante de l’état initial Ei. Les états Ej, tels que p*j 5 0, sont des états transitoires.
5.8 Calcul des probabilités des états permanent –théorème des coupes
en régime
Soit un processus de Markov homogène, fortement ergodique. On dit que ce proces sus est en « régime permanent », si t est suffisamment grand pour que les probabilités des états aient atteint leur limite ; alors : p i 1 t 2 5 p *i . On se propose de calculer ces probabilités des états en régime permanent. Ce calcul peut se pratiquer soit en résolvant un système d’équations linéaires, soit en appliquant le théorème des coupes (qui conduit à un calcul plus aisé, en particulier si le graphe associé au processus de Markov présente une structure régulière).
5.8.1 Théorème des coupes On nomme « fréquence des transitions de l’état Ei vers l’état Ej en régime per manent », la quantité wij 5 p *i # l ij. Soit B un sous-ensemble d’états : B ( e. La « coupe », associée à B (ou « coupe B »), désigne l’ensemble des arcs ayant une extrémité et une seule dans B (en théorie des graphes, on utilise le terme : « cocycle associé à B », noté v(B)). Cet ensemble d’arcs comporte deux parties : v1(B) (resp. v2(B)), l’ensemble des arcs ayant leur extrémité initiale (resp. terminale) dans B et leur extrémité terminale (resp. initiale) dans B. On nomme « fréquence des transitions vers l’extérieur de B » la quantité : wB S B 5 a a p *i # l ij 5 Ei HB Ej HB
204
a
(Ei, Ej) Hv1 (B )
p *i # l ij.
5.8 Calcul des probabilités des états en régime…
De même, la « fréquence des transitions vers l’intérieur de B » est la quantité : w B S B 5 a a p *i # l ij 5 Ei HB Ej HB
a
(Ei, Ej) Hv2 (B )
p *i # l ij.
On peut alors énoncer le théorème des coupes : pour tout processus de Markov, homogène, fortement ergodique, en régime per manent, la fréquence des transitions vers l’extérieur de toute coupe B est égale à la fréquence des transitions vers l’intérieur de B. Soit, pour tout B ( e, wB S B 5 wB S B. Donnons un premier exemple d’application (bureau de l’ingénieur). En prenant B 5 {E0} et B 5 5 E1 6 , il vient :
λ
w B S B 5 w 01 5 lp *0 ; w B S B 5 w 10 5 m p *1.
D’où : lp *0 5 mp *1. Puisque p *0 1 p *1 5 1, on en déduit : p *0 5
m
et p *1 5
E0
E1
l
. µ l1m l1m On retrouve les valeurs obtenues au paragraphe précédent, en prenant la limite de p0(t) et p1(t) quand t tend vers l’infini : le lecteur appréciera le gain de temps obtenu en appliquant le théorème des coupes. Voici une démonstration du théorème des coupes : On a montré que : p i( t 1 ) 5 a p k ( t ) # p ki( ) . k
En prenant τ 5 Dt, et en exprimant les probabilités de transition p ki( ) sur cet intervalle de temps infinitésimal, il vient : p i( t 1 Dt ) 5 B a p k ( t ) # l ki Dt R 1 p i( t ) ( 1 2 q i Dt ) 1 o ( Dt ) .
© Dunod – Toute reproduction non autorisée est un délit.
k 2i
En régime permanent, les probabilités des états ont atteint leur valeur limite, soit : 1 p i t 1 Dt 2 5 p i 1 t 2 5 p *i . D’où : p *i 5 B a p *k # l ki R Dt 1 p *i ( 1 2 qi Dt ) 1 o ( Dt ) . k2i
En simplifiant dans chaque membre p *i , puis en divisant par Dt que l’on fait alors tendre vers 0, il vient : 0 5 B a p *k lki R 2 p *i a lij, car qi 5 a lij. k 2i
j2i
j2i
205
Chapitre 5 • Processus stochastiques et programmation…
Soit pour tout état Ei : a p *i # l ij 5 a p *k # l ki, c’est-à-dire a wij 5 a wki. j2i
k2i
j2i
k2i
On reconnaît (par analogie avec la loi des nœuds en électricité) la « loi de irchhoff » appliquée au sommet Ei. Les φij constituent donc un flot sur le graphe K simplifié du processus de Markov (au besoin se reporter au sous-chapitre 4.4). On montre aisément que, si la loi de Kirchhoff appliquée est vérifiée en tout sommet d’un graphe, elle est aussi vérifiée pour tout ensemble de sommets B: wB S B 5 wB S B ; ainsi le théorème est prouvé.
5.8.2 Calcul algébrique de P* Le calcul des probabilités des états en régime permanent peut aussi se faire en résol vant un système linéaire. On a vu que : Pr ( t ) 5 P ( t ) # A. En régime permanent P(t) atteint une limite P* (indépendante de la distribution initiale P(0)) : d P* 5 0 où 0 5 3 0, 0, c, 0 4 , car la dérivée d’un vecteur Alors Pr ( t ) 5 dt constant est le vecteur nul 0 ici de format 1 3 r (on a supposé que Card e 5 r : le processus comporte r états). D’où le système : 0 5 p # A ; a p *i 5 1 (ce qui s’écrit aussi : P* # 1 5 1 où 1 5 3 1, 1, c, 1 4 ). *
r
i51
On montre que pour un processus de Markov fortement ergodique, ce système admet une solution unique, strictement positive. Ainsi, pour notre exemple : l R et p *0 1 p *1 5 1. m 2m On retrouve le système l # p *0 5 m # p *1 et p *0 1 p *1 5 1, puis: 3 0, 0 4 5 3 p *0, p *1 4 # B p *0 5
2l
m l et p *1 5 . l1m l1m
Exemple. Un atelier comporte deux machines identiques ; chacune à une « fiabilité » exponentielle de taux l c’est-à-dire que la probabilité qu’une machine donnée en mar che à t, tombe en panne entre t et t 1 dt, vaut l dt 1 o(dt). Lorsque panne survient, la réparation requiert l’intervention de deux réparateurs : R1 puis R2 (et toujours dans cet ordre) ; l’atelier ne dispose que d’un seul réparateur R1 et d’un seul réparateur R2. Les durées des réparations chez R1 comme chez R2 suivent des lois exponentielles de taux respectifs m1 et m2 (la probabilité qu’une réparation, en cours à t chez R1, se termine entre t et t 1 dt vaut : m1 dt 1 o(dt) et m2 dt 1 o(dt) pour R2. Toute machine réparée est immédiatement remise en service. Les délais d’intervention des répara teurs, si ceux-ci sont disponibles, sont négligeables. On se propose de modéliser le fonctionnement de cet atelier par un processus de Markov ; on montrera qu’il est for tement ergodique, puis on calculera les probabilités des états en régime permanent 206
5.8 Calcul des probabilités des états en régime…
(par application du théorème des coupes) dans le cas où m1 5 m2 5 m. On en déduira la valeur de deux paramètres intéressants : la « disponibilité » D* de l’atelier, c’est- à-dire la probabilité, en régime permanent, qu’au moins l’une des deux machines soit en état de marche, ainsi que d : durée moyenne d’une période de disponibilité. Les états du système (atelier) sont les suivants : E0 : aucune machine en panne ;
Ε1 : une machine en panne, chez R1 ; E2 : une machine en panne, chez R2 ; E3 : deux machines en panne : l’une chez R1, l’autre attend R1 ; E4 : deux machines en panne : l’une chez R1, l’autre chez R2 ; E5 : deux machines en panne : l’une chez R2, l’autre attend R2. e 5 5 E0, E1, c, E5 6 . Ainsi:
Remarquer que lorsque deux machines sont en marche à t, la probabilité que l’une des deux tombe en panne entre t et t 1 dt est : 2ldt 1 o(dt). Le graphe est fortement connexe (en effet, il comporte un circuit hamiltonien : (0, 1, 3, 4, 5, 2, 0)) et fini : le processus est donc fortement ergodique. Pour calculer les probabilités des états en régime permanent, on pourrait résoudre 4
le système P* # A 5 0 avec a p *i 5 1, mais il est plus pratique d’utiliser le théo i 50
5 E4 6 : 2m # p *4 5 l # p *2 1 m # p *3 et : p *0 1 p *1 1 c1 p *5 5 1.
;
rème des coupes (on a posé m1 5 m2 5 m) : 5 E0 6 : 2l # p *0 5 m # p *2 ; 5 E1 6 : ( l 1 m ) # p *1 5 2l # p *0 1 m # p *4 ; 5 E2 6 : ( l 1 m ) # p *2 5 m # p *1 1 m # p *5 ; 5 E3 6 : m # p *3 5 l # p *1 ;
© Dunod – Toute reproduction non autorisée est un délit.
Voici le graphe des transitions entre t et t 1 dt, puis le graphe simplifié :
5 E5 6 : m # p *5 5 m # p *4 ;
207
Chapitre 5 • Processus stochastiques et programmation…
On a donc p *4 5 p *5 d’après (5) : puis (0) et (1) donnent : m # p *4 1 m # p *2 5 1 l 1 m 2 # p *1 et (2) et (5) donnent : m # p *4 1 m # p *1 5 1 l 1 m 2 p *2. La différence membre à membre de ces deux relations fournit : m # ( p *2 2 p *1 ) 5 2 ( l1 m ) # ( p *22 p *1 2 , d’où : p *1 5 p *2 ; (2) s’écrit alors : m # p *5 5 l # p *2 et (3) : l # p *2 5 m # p *3. D’ où : p *3 5 p *5. Finalement :
2 2l * # p 0 et p *3 5 p *4 5 p *5 5 2l2 # p *0. m m 4l 6l 2 Or, p *0 1 p *1 1 c1 p *5 5 1, soit p *0 # a1 1 1 2 b 5 1 et : m m 1 * p0 5 . 1 1 4l/m 1 6l 2 /m 2 1 1 4l/m La disponibilité D* est : D* 5 p *0 1 p *1 1 p *2 5 . 1 1 4l/m 1 6l 2 /m 2 On montre que la durée moyenne d d’une période de disponibilité (c’est-à-dire de séjour, en régime permanent, dans le sous-ensemble d’états B 5 {E0, E1, E2}) vaut : p *0 1 p *1 1 p *2 p *0 ( 1 1 4l/m ) p *B 1 1 4l/m 4l 1 m 1 m d5 5 5 5 5 5 1 . wB S B wB S B l ( p *1 1 p *2 ) 4l 2 /m 4l 2 l 4l 2
p *0 5 p *1 5
On vérifie que d est effectivement supérieure à 1/l, qui est la durée moyenne de bon fonctionnement d’une seule machine. Plus les réparations sont rapides, plus m est grand : par suite plus d est grand.
5.9 Processus
de
Markov
particuliers
5.9.1 Processus de naissance Utilisés dès 1940 par Lundberg pour des statistiques d’accidents, puis vers 1943 par Arley à propos du rayonnement cosmique, ils ont été employés vers 1950 par Kendall, Bartlett et Feller en biologie. Nous les utiliserons en recherche opération nelle, par exemple pour représenter des arrivées aléatoires de clients dans des files d’attente ou encore des occurrences de pannes d’équipements. Par définition, un processus de Markov homogène Xt est un processus de nais sance si les probabilités de transition entre t et t 1 Dt, ont pour expression : pi, i 1 1 1 Dt 2 5 l i # Dt 1 o 1 Dt 2 b pi, i 1 Dt 2 5 1 2 l i # Dt 1 o 1 Dt 2 où l i 5 l i, i 1 1 est le « taux de naissance » à partir de l’état Ei. Les probabilités de transition de i vers i 1 2, i 1 3, ... , sont négligeables. Celles de i vers i 2 1, i 2 2, ... , sont nulles.
208
5.9 Processus de Markov particuliers
© Dunod – Toute reproduction non autorisée est un délit.
Xt peut être vu comme la taille d’une « population » (au sens statistique du terme), à l’instant t, exprimée en nombres d’« individus » présents. Dans l’état Ek, k individus sont présents (on confond donc le plus souvent l’ensemble des états e avec N). La probabilité d’apparition (ou « naissance ») d’un nouvel individu entre t et t 1 Dt, lorsque la population comporte i individus à t, est : li Dt 1 ο(Dt) ; celle d’apparition de plusieurs individus entre t et t 1 Dt est négligeable (en ο(Dt)). Notons qu’ici aucune disparition (ou « mort ») ne peut se produire. Voici le graphe des transitions entre états, entre t et t 1 Dt :
Le processus est dit « ouvert » si li est strictement positif pour toute taille (état) i de la population. Alors cette taille tend vers l’infini quand t tend vers l’infini : le processus n’est pas ergodique. Toutefois, pour t fini, on peut chercher à calculer les probabilités des états pi(t), sachant qu’initialement elle est de taille nulle : X0 5 0. C’est ce que nous ferons ci-dessous pour les processus de Poisson. Indiquons que ce calcul n’est possible que si li ne croît pas « trop vite » avec i ; on montre que les probabilités des états à t (fini) n’existent que si la série a 1/l i diverge. Intuitivement, puisque 1/li est le temps moyen de séjour de l’état i, la somme 1/l 0 1 1/l 1 1 c1 1/l n représente l’espérance du temps passé dans les états 0, 1, cn. Si la série converge, la population atteint une taille moyenne infinie en un temps fini... Ce serait le cas, par exemple, pour l i 5 ( i 1 1 ) 2 # l. Au contraire, le processus est dit « fermé » s’il existe une taille N telle que lN 5 0 (sachant que li est positif pour tout i 5 0, 1, c, N 2 1 ) . La population devient « stérile » dès qu’elle a atteint la taille N. En pratique, c’est le cas des sys tèmes à capacité limitée à N unités : lorsque cette capacité est atteinte, il n’y a plus d’arrivée (naissance). Ainsi si un standard téléphonique est saturé (ses N lignes étant occupées) les appels qui arrivent alors sont perdus. Le processus fermé est ergodique (mais pas fortement ergodique) : quand t tend vers l’infini, on a : p *0 5 p *1 5 c5 p *N 2 1 5 0 et p *N 5 1. L’état N est « absor bant ».
5.9.2 Processus de Poisson Par définition, un processus de Poisson est un processus de naissance ouvert pour lequel le taux de naissance ne dépend pas de la taille de la population : li 5 l pour i 5 0, 1, 2, c 209
Chapitre 5 • Processus stochastiques et programmation…
Supposons qu’à t 5 0, la taille de la population soit nulle : X0 5 0 et exprimons les probabilités des états à t 1 Dt en fonction de celles-ci à t, et du taux de naissance l. (5.1) p0(t 1 Dt) 5 p0(t 2 # 1 1 – l D t) 1 ο(Dt) e pn(t 1 Dt) 5 pn–1(t 2 # l Dt 1 pn(t 2 # 1 1 – l D t) 1 ο(Dt) (n 5 1, 2, c). (5.2) La relation (5.1) entraîne p r0 1 t 2 5 2l # p 0 1 t 2 , d’où : p 0 1 t 2 5 K # e 2 lt. Puisque p0(0) 5 1, il vient Κ 5 1 et : p0 ( t ) 5 e 2lt.
La relation (5.2) : • pour n 5 1 fournit : p 1r ( t ) 5 l # p 0 ( t ) 2 l # p 1 ( t ) , soit p 1r ( t ) 1 l # p 1 ( t ) 5 le 2 lt, qui a pour solution p1(t) 5 lt e–lt. • Pour n 5 2, on obtient alors : p 2r ( t ) 1 l # p 2 ( t ) 5 l 2e 2 lt qui a pour solution
l 2t2 2 lt #e . 2
l 3t3 2 lt e . 6 ( lt ) 4 l4t 4 2lt e2lt. e 5 • Pour n 5 4, on trouve : 24 4! • Pour n 5 3, on trouve : p 3 ( t ) 5
On fait alors l’hypothèse de récurrence : pn ( t ) 5
( lt ) n n!
e 2lt
et l’on montre que pn11(t) a la forme analogue : p n 1 1 ( t ) 5
( lt ) n 1 1 (n 1 1)!
e2lt.
Connaissant, désormais, les probabilités des états d’un processus de Poisson, on peut calculer l’espérance et la variance du nombre de naissances entre 0 et t (ou entre et 1 t puisque le processus est homogène) : E 1 Xt 2 5 a n # p n 1 t 2 5 e `
n50
5 e 2 lt # lt # elt 5 lt.
210
an `
2 lt
n51
1 lt 2 n
n # 1n 2 12!
# lt a `
5e
2 lt
1 lt 2 n 2 1
n51 1 n
2 12!
5.9 Processus de Markov particuliers
Par abus de langage, nous dirons que le « nombre moyen » de naissances sur un intervalle de temps d’amplitude t est lt. La variance est : 2 1 E 1 Xt 2 2 5 a n2 # p n 1 t 2 2 1 lt 2 2 ; `
var Xt 5
E 1 X 2t 2
2
n50
par un calcul analogue à celui ci-dessus, il vient : var Xt 5 lt.
Rappelons, en résumé, les propriétés importantes du processus de Poisson : – il est homogène, ce qui se traduit par le fait que le taux de naissance l est indé pendant du temps ; – c’est une loi à « accroissements indépendants » : les nombres de naissances X 1 et X 2 sur deux intervalles de temps T 1 et T 2 disjoints, sont des variables aléa toires indépendantes ; – la probabilité d’occurrence « simultanée » (c’est-à-dire entre t et t 1 Dt) de plusieurs événements (naissances) est négligeable : elle est en o(Dt) ; – le processus n’est pas ergodique : le nombre de naissances Xt tend vers l’infini quand t tend vers l’infini. Remarque. Le processus (ou loi) de Poisson se rencontre fréquemment en pratique : arrivées d’usagers à un arrêt d’autobus, à un guichet de banque ; occurrence de pannes de composants électroniques (ou de certains moteurs) ; arrivées d’appels à un standard téléphonique ; arrivées de processus (requêtes) dans un système ou réseau informatique.
5.9.3 Loi exponentielle Soit un processus de Poisson de taux m ; considérons l’intervalle de temps T séparant deux événements (naissances) consécutifs. En remarquant que T sera supérieur à t si et seulement si aucune naissance n’a lieu entre 0 et t, il vient : 0 naissance sur un intervalle R 5 p 0 1 t 2 5 e 2 mt, de temps d’amplitude t la variable aléatoire T est donc régie par une loi exponentielle. La densité de proba bilité de T, notée f (t), vaut : f 1 t 2 dt 5 P 3 t , T < t 1 dt 4 5 d 1 P 3 T < t 4 2 5 d 1 1 2 e 2 mt 2 5 me 2 mtdt.
© Dunod – Toute reproduction non autorisée est un délit.
P 3 T . t 4 5 PB
La durée moyenne entre deux naissances consécutives, autrement dit E(T), est : 1 E ( T ) 5 3 t # f ( t ) # dt 5 3 t m e 2 mt dt 5 m . `
0
`
0
On peut aussi calculer var T 5 s2T. Elle est égale à :
1
. m2 Une propriété importante de la loi exponentielle est la suivante :
211
Chapitre 5 • Processus stochastiques et programmation…
cherchons la probabilité d’occurrence d’un événement entre t et t 1 dt, sachant qu’il y a eu un événement à t 5 0, puis aucun événement entre 01 et t : P 3 t , T < t 1 dt k T . t 4 5 5
P 3 t , T < t 1 dt et T . t 4 m#e
2 mt
P 3T . t 4 # dt 5 m # dt.
5
P 3 t , T < t 1 dt 4 P 3T . t 4
e 2 mt Notons la simplification par e qui a une conséquence importante : On trouve m # dt : cette valeur est indépendante de t (ce qui est lié à la propriété « sans mémoire » du processus de Markov qu’est le processus de Poisson de taux m, considéré ici). En pratique, prenons deux exemples : –mt
• supposons d’abord qu’une conversation téléphonique, se déroulant dans une cabine publique, suive une loi exponentielle et qu’à l’extérieur une personne attende que la cabine se libère... Alors, que cette personne ait attendu 10 secondes, 5 minutes ou 1 heure, la probabilité que la conversation se termine dans la seconde qui suit (dt 5 1 s) est la même ! Tout se passe comme si, à chaque instant, la conversation venait de commencer... • Considérons ensuite un équipement de fiabilité exponentielle (c’est-à-dire que si T est la date de sa panne, on a P[T > t] 5 e–mt). À tout instant, tout se passe comme si l’équipement était neuf. Aussi, pratiquer un renouvellement préventif sur un tel équipement reviendrait... à mettre à la poubelle un équipement neuf ! Terminons par une remarque. Pour la loi exponentielle, le carré du coefficient de variation : s2T/ 1 E 1 T 2 2 2 est égal à 1. Pour des lois moins dispersées que la loi expo nentielle, ce coefficient est inférieur à 1 : tel est le cas pour la loi d’Erlang-k (déduite d’un processus de Poisson de taux km, dans lequel on regroupe les événements en ( km ) ktk 2 1e2kmt ( ) groupes de k événements) dont la densité de probabilité est : f t 5 ; (k 2 1)! 1 alors E 1 T 2 5 m et s2T 5 1/km 2 ; le carré du coefficient de variation vaut donc 1/k : k étant un entier positif, on a donc : s2T/ ( E ( T )) 2 , 1. Au contraire, pour des lois plus dispersées que la loi exponentielle, ce coefficient est supérieur à 1 ; ainsi pour les lois hyper-exponentielles dont la densité de pro
babilité est : f ( t ) 5 a ai l i e i 51 s2T/ ( E ( T )) 2 . 1. r
2 li t
, où a ai 5 1 et ai . 0. Alors E(T) = a r
p
i 51
i 51
ai li
et
5.9.4 Processus de mort Soit le processus stochastique Xt, où Xt s’interprète comme la taille d’une population à l’instant t, initialement non nulle : X0 5 M. La probabilité de disparition d’un indi
212
5.9 Processus de Markov particuliers
vidu (on dit aussi mort, ou départ) entre t et t 1 Dt, lorsque la population comporte i individus est : mi Dt 1 ο(Dt). Il ne se produit pas de naissance. On a alors affaire à un processus de Markov dont voici le graphe des transitions entre t et t 1 Dt :
On suppose que m0 5 0 et mi > 0 pour i 5 1, 2, c, M. Le processus de mort est ergodique ; quand t tend vers l’infini, on a les limites : p *0 5 1 et p *1 5 p *2 5 c5 p *M 5 0. E0 est un état absorbant.
5.9.5 Processus de naissance et de mort Nous passons maintenant à ce processus, très employé pour modéliser notamment des phénomènes d’attente ou encore des systèmes sujets à des pannes réparables. Le processus de naissance et de mort est obtenu en superposant un processus de nais sance et un processus de mort. Ce processus de Markov Xt, où Xt représente la taille d’une population à l’instant t, est donné par les probabilités de transition entre t et t 1 dt ci-dessous : : une naissance entre t et t 1 dt p i, i 1 1 ( Dt ) 5 l i D t 1 o ( Dt )
• p i, i 2 1 ( Dt ) 5 mi D t 1 o ( Dt ) p i, i( Dt )
: une mort entre t et t 1 dt
5 1 2 ( l i 1 m i) D t 1 o ( Dt ) : ni naissance, ni mort entre t et t 1 dt
Voici le générateur infinitésimal associé, noté A : 2 l0
© Dunod – Toute reproduction non autorisée est un délit.
A5E
m
1
l0 2 ( l1 1 m 1 )
0
m
(
f
2
0
0c
0c U. 2 ( l2 1 m 2 ) l2 l1
f
f
Dans le cas d’un processus fermé (lN 5 0 ; li > 0 pour i 5 1, 2, c, Ν 2 1 et mi > 0 pour i 5 1, 2, c, N), on a le graphe simplifié :
213
Chapitre 5 • Processus stochastiques et programmation…
Le graphe étant fortement connexe et fini, le processus de naissance et de mort fermé est fortement ergodique (quelles que soient les valeurs relatives des taux de naissance et de mort). Rappelons qu’alors les probabilités des états tendent vers une limite : P* 5 3 p *0, p *1, c, p *N 4 solution de O = P*·A,
indépendante de la répartition initiale (d’ailleurs, nous n’avions précisé, ici, aucun état initial, ni de distribution initiale P(0)). Dans le cas d’un processus ouvert (li > 0 pour tout i 5 1, 2, c), le nombre d’états est infini. On ne peut pas savoir d’emblée si le processus est fortement ergodique ou pas ; nous ferons cependant, l’hypothèse de forte ergodicité et trou verons, a posteriori, une condition portant sur les valeurs relatives des taux de naissance et de mort pour que cette hypothèse soit vérifiée. Reprenons le graphe simplifié :
Soit Bn la « coupe » : Bn 5 5 E0, E1,c, En 2 1 6 . Plaçons-nous en régime permanent et appliquons le théorème des coupes à Bn , puis à Bn 2 1, c , puis B1 :
l n 2 1 # p *n 2 1 5 m n # p *n
l n 2 2 # p *n 2 2 5 m n 2 1 # p *n 2 1
( ( l 1 # p *1 5 m 2 # p *2 l 0 # p *0 5 m 1 # p *1
l n 2 1 # l n 2 2 # c# l 0 # p *0 5 m n # m n 2 1 # c# m 1 # p *n Le produit membre à membre de ces n relations fournit, après simplifications : p *n
l n 2 1 # l n 2 2 # c# l 0 5 m # m # c# m # p *0. n n21 1
On a ainsi pu exprimer la probabilité de l’état n en régime permanent, soit p *n, en fonction des différents taux de naissance et de mort, ainsi que de p *0. Reste à calculer p *0. 214
5.9 Processus de Markov particuliers
Cas du processus fermé, on écrit : a p *n 5 1, d’où : N
n50
p *0
lk 2 1 5 1^ c1 1 a a q m b d . k N
n
n51
k51
Ainsi, dans le cas simple : l 0 5 l 1 5 c5 l N 2 1 5 l et m 1 5 m 2 5 c5 m N 5 m (que l’on rencontrera plus loin dans les files d’attente) il vient : p *0 5 1^ c1 1 p *0 5 1
l l2 lN 1 2 1 c1 N d ; si l ≠ m, on a alors : m m m
l 1 2 amb
l 12m
N11
5
l 12m l 1 2 amb
N11
, et si l 5 m , p *0 5
1
N11
.
Cas du processus ouvert, a p *m est une série (somme infinie de termes) qui `
n50
doit converger vers 1 (la somme des probabilités des états étant égale à 1). Appli quons le critère de convergence de d’Alembert (qui est une condition suffisante de convergence) : si, à partir d’un certain rang N0 (c’est-à-dire pour tout n > N0) le rap port p *n /p *n 2 1 est inférieur ou égal à a , 1, la série est convergente. p *n ln 2 1 ln 2 1 Or * 5 m n ; la condition m , 1 peut s’interpréter ici comme suit : n p n21
© Dunod – Toute reproduction non autorisée est un délit.
à partir d’une certaine taille N0 , le taux de naissance doit être inférieur au taux de mort, pour toute coupe Bn ; sinon, on « sent » que la taille de la population s’accroîtrait jusqu’à l’infini : il ne saurait exister alors un régime permanent. On interprètera encore mieux cette condition pour les files d’attente (M/M/1 ou M/M/S, par exemple). Dans le cas simple l0 5 l1 5 l2 5 c 5 l et m1 5 m2 5 m3 5 c 5 m avec l m, (nous verrons plus loin que c’est le cas de la file M/M/1) il vient : ln p *n 5 n # p *0 ; le calcul de p *0 dans le cas ouvert conduit donc à sommer la série géo m l2 ln l métrique : p *0 # c1 1 1 2 1 c1 n 1 cd 5 1. Cette série est convergente m m m l l lorsque m , 1 et a pour somme 1^ a1 2 m b. D’où, p *0
n
l l l 5 1 2 m et p *n 5 a m b # a1 2 m b pour n 5 0, 1, 2, c
215
Chapitre 5 • Processus stochastiques et programmation…
5.10 Notion de programmation stochas tique
dynamique
Nous avons étudié au chapitre 4 la programmation dynamique se rapportant à des situations où le hasard n’intervient pas. Ici, au contraire, nous nous intéresserons aux cas où le hasard joue un rôle. Bien entendu, de ce fait, nous ne pourrons plus comparer directement les résultats de telle ou telle politique, mais seulement des espérances mathématiques de gain ou de coût. L’introduction de cette mesure des résultats impose un certain nombre de précautions et, notamment, ne peut donner des indications valables que si la loi des grands nombres s’applique dans le contexte du problème. Nous donnerons d’abord un exemple simple de la manière dont peut se pratiquer le calcul, en présence d’événements soumis au hasard.
Exemple. Supposons que nous ayons affaire à un joueur qui connaît, au début du jeu, la position qu’il occupe : A, B ou C et reçoit, en phase 1, l’autorisation de chan ger de position ou de rester dans sa position selon les flèches (arcs) pleines du dessin (fig. 5.3). Le hasard intervient ensuite en imposant au joueur un déplacement aléa toire, suivant les flèches (arcs) dessinées en pointillés sur lesquelles sont indiqués le gain correspondant à chaque déplacement puis la probabilité de celui-ci. À la fin de la phase 1, le joueur se trouve donc dans une des trois positions A, Β ou C et reçoit de nouveau – c’est la phase 2 – le droit de se déplacer à son gré, puis de participer à un nouveau tirage (fig. 5.4).
Figure 5.3
Figure 5.4
Étudions quelles doivent être les stratégies optimales de ce joueur dans un jeu comportant de nombreuses parties de même type. Appelons z2 ( y2, x2 ) l’espérance mathématique du joueur qui, se trouvant en y2, décide d’aller en x2 (cf Fig. 5.4) ; on a, en prenant y2 5 A : z2 1 A, A 2 5 2 3 0, 8 1 4 3 0, 2 5 2, 4 216
z2 1 A, B 2 5 3 3 0, 5 1 4 3 0, 5 5 3, 5
5.10 Notion de programmation dynamique stochastique
et l’on voit que le joueur doit choisir la seconde décision, comme donnant une espérance de gain plus forte que la première. Des calculs analogues pour y2 5 Β puis y2 5 C donnent les résultats suivants : z2 ( B, A ) 5 2, 4 ; z2 ( B, C ) 5 2, 8 ; puis :
z2 ( C, A ) 5 2, 4 ; z2 ( C, B ) 5 3, 5 ; z2 ( C, C ) 5 2, 8, d’où le choix x2 5 C si y2 5 Β et le choix x2 5 Β si y2 5 C. Remontons à la 1ère phase et calculons de la même manière, l’espérance z1 (y1, x1) ; on a pour y15 A : z1 1 A, A 2 5 1 3 1 3, 5 2 3 0, 7 1 1 2 1 2, 8 2 3 0, 2 1 1 1 1 3, 5 2 3 0, 1 5 5, 96 ;
z1 ( A, C ) 5 ( 2 1 2, 8 ) 3 0, 2 1 ( 5 1 3, 5 ) 3 0, 8 5 7, 76 , d’où l’on déduit que, si y1 5 A, il faut choisir x1 5 C. On obtient également : z1 ( B, A ) 5 5, 96 ; z1 ( B, B ) 5 7, 10 ; z1 ( C, B ) 5 7, 10 ; z1 ( C, C ) 5 7, 76 , d’où les stratégies : si y1 5 B, choisir : x1 5 B ; si y1 5 C, choisir : x1 5 C. Stratégies optimales :
© Dunod – Toute reproduction non autorisée est un délit.
En phase I
En phase II
Si le joueur se trouve en
il choisit
Si le joueur se trouve en
il choisit
A
C
A
B
B
B
B
C
C
C
C
B
On remarque que, dans ces calculs, on utilise déjà les résultats de la phase sui vante, c’est-à-dire qu’on admet que les déplacements futurs seront conformes aux stratégies optimales déjà déterminées : le calcul remonte du futur vers le passé. Il faut observer que l’on a été obligé, ici, de remonter du futur au passé pour effectuer les calculs, car sinon on n’aurait pas bénéficié d’une réduction du caractère combinatoire du problème : il aurait fallu énumérer 556 chemins possibles, comme si l’on ignorait la notion d’espérance mathématique. Le problème est dit « fortement ordonné ». 217
Chapitre 5 • Processus stochastiques et programmation…
Bien entendu, l’exemple n’est relatif qu’à deux phases, mais on peut imaginer un nombre élevé de phases successives. Il arrive parfois que les diverses phases se déroulent exactement selon le même schéma, contrairement à ce qui se passe dans l’exemple choisi ci-dessus ; il est alors indiqué de faire appel également à la théorie des chaînes de Markov (méthode de Howard). Le théorème d’optimalité, relatif à un phénomène s’étendant sur N périodes, s’énonce alors : une sous-stratégie optimale de Ν à N 2 n ne peut être formée que par une sous-stratégie optimale de Ν à N 2 n 1 1. On peut évidemment considérer, en avenir aléatoire, des choix discrets ou conti nus, un horizon (nombre de phases) limité ou un horizon illimité. Essayons de formuler les équations de récurrence dans le cas aléatoire, comme nous l’avons fait pour le cas certain, avec des choix discrets et un horizon limité. Nous choisirons un processus où, à chaque phase, le hasard intervient pour faire évoluer la situation, après que l’on ait pris une décision ; pour cette raison, on quali fie un tel processus de processus D.H. (décision-hasard) ; il existe, bien entendu, le processus inverse, H.D., un peu plus difficile cependant à manier. Soient donc : • E1t 2 1, E2t 2 1, c, Eit 2 1, c, Ept 2(t)1, les états dans lesquels peut se trouver le système au début de la phase t ; p(t) désigne le nombre d’états possibles lors de ce début de phase. • Dt1, Dt2, c, Dtj, c, Dtq(t), les états vers lesquels le décideur peut transférer le sys tème par la décision qu’il prend à la phase t ; • ctij, le coût de la décision de transférer le système de l’état Eit 2 1 à l’état Dtj (dans l’exemple ci-dessus ce coût était nul). Observons toutefois qu’à partir de l’état Eit 2 1, seule une partie des Dtj, soit G1 1 Eit 2 1 2 , est accessible ; • ptjk, la probabilité de passer de l’état Dtj à l’état Etk à la fin de la phase t, et r tjk le revenu résultant de ce passage (cf les arcs en pointillés de la Fig 5.3). Rappelons qu’on appelle « stratégie » la collection des décisions qui doivent être prises, pour chaque phase, quand le système est dans un état déterminé. Supposons que nous connaissions la sous-stratégie optimale du début de la phase t 1 1 jusqu’à la fin de la phase N, donc les z*t 1 Etk 2 , c’est-à-dire les p(t) valeurs opti males de l’espérance mathématique du revenu en chacun des états possibles Etk à la fin de la phase t (ou début de la phase t 1 1). Nous écrirons z*t 1 Etk 2 sous la forme plus simple z*t k . Nous voulons évaluer les 21 z*t , c’est-à-dire espérances mathématiques optimales lorsque, au début de la phase i t, le système se trouve dans l’état Eit 2 1. On a : 21 z*t t
218
1 a ptjk # ( rjkt 1 z*t k )f. p( t )
5
max
jPG1(Ett 2 1 )
e 2ctij
k51
5.10 Notion de programmation dynamique stochastique
où G 1 1 E it 2 1 2 désigne les décisions possibles à t, à partir de l’état E it 2 1. Notons que ctij est précédé du signe moins car un coût est un revenu négatif. Ces équations montrent que le calcul est mené, comme nous l’avons déjà remarqué, partant de la fin de la phase N, en remontant dans le temps de proche en proche. Le lecteur trouvera une application des processus D – H au chapitre 6, à propos de l’optimisation de stratégies de remplacement d’équipements. t�1
t D1t
E1t
�1
E1t
Cit1 t
revenu : rjk proba : pjtk
Eit
�1
coût cit j
t�1
Djt t
Dqt(t)
Ep(t�1)
Ep(t)
Ekt
Décision
Hasard
© Dunod – Toute reproduction non autorisée est un délit.
Phase t
219
Chapitre 5 • Processus stochastiques et programmation…
EXERCICES I Chaînes de MARKOV *5.1 Qualité d’un canal de transmission On considère un canal qui transmet, de façon continue, des bits d’information. Mais ce canal peut être affecté par des perturbations qui altèrent les bits transmis. Les erreurs se produisent en général par groupes, c’est-à-dire que lorsqu’un bit est altéré par une perturbation, la probabilité que le bit suivant soit aussi altéré est importante. Plus préci sément, supposons qu’à un certain moment le dernier bit transmis ait été correct : le bit suivant sera alors transmis correctement avec la probabilité p0 et altéré avec la probabi lité q0 (p01 q05 1) ; supposons maintenant que l’avant dernier bit transmis était correct et que le dernier bit transmis est faux : le bit suivant sera transmis correctement avec la probabilité p1 et altéré avec la probabilité q1 1 p1 1 q1 5 1 2 ; ainsi de suite : si depuis le dernier bit transmis correctement, k bits erronés ont été transmis, la probabilité que le bit suivant soit correct est pk et qu’il soit faux, qk 1 pk 1 qk 2 5 1 où 0 < k < N. Lorsque N bits consécutifs sont erronés depuis le dernier transmis correctement, la probabilité que le suivant soit correct est comme plus haut pN ; mais si le bit sui vant est faux (probabilité qN) une ré-initialisation fait que tout se passera ensuite comme si l’on venait de transmettre un bit faux après un bit exact. 1. Modéliser ce canal à l’aide d’une chaîne de Markov comportant n 1 1 états, E0, E1, c, Ek, c, EN : dans l’état Ek, depuis le dernier bit transmis correctement k bits erronés ont été transmis. Tracer le graphe des transitions entre états lors de la transmission d’un bit, et le valuer. À quel arc correspond la ré-initialisation ? À cet arc près, dans quel pro blème classique avez-vous rencontré des graphes de ce type ? 2. Pour N 5 3, sachant que p0 5 0,95 p15 0,20 p2 5 0,15 p3 5 0,10, a) donner la matrice M des probabilités de transition pour une transmission ; b) en supposant qu’initialement un bit ait été transmis correctement, don ner le vecteur p(0) des probabilités d’états ; calculer la probabilité pour que les deux suivants soient faux, à l’aide de M, p(0), p(1) et p(2). 3. a) La chaîne précédente admet-elle un régime permanent, au bout d’un grand nombre de transmissions de bits, indépendant de l’état initial ? (Jus tifier en détail votre réponse.) b) Si oui, calculer numériquement les probabilités p *k 1 0 < k < 3 2 de chaque état en régime permanent (supprimer la première équation qui est redondante ; exprimer les p *k en fonction de p *1, puis calculer p *1). c) En déduire la probabilité pour qu’une transmission de bit prise au hasard en régime permanent soit correcte. Que pensez-vous de la qualité de ce canal ? 220
Exercices
*5.2 Chaîne de Markov régulière (fortement ergodique) Montrer que la matrice d’une chaîne de Markov :
M5 D
0, 2
0, 2
0, 1
0
0
0, 6
0, 3
0, 1
0, 8
0, 2
0, 1
0, 2
0, 3
0, 1
0, 7 0, 1
T
élevée à la puissance n, tend vers : 457 220 458 533
M* 5
457 220 458 533 1 T lorsque n S 1 `. D 1668 457 220 458 533 457 220 458 533
NB Sans calculer explicitement M n : tracer d’abord le graphe G associé puis montrer que G est fortement connexe et que la chaîne est apério dique.
*5.3 Sous-chaînes de Markov Étant donné la matrice d’une chaîne de Markov : 0 1 2 0 1 M =2
© Dunod – Toute reproduction non autorisée est un délit.
3 4
3
4
0, 2 0 0, 4 0 0, 4 0 0, 3 0 0, 7 0 0, 6
0
0, 2
0
0, 2
0
0, 5
0
0, 5
0
0, 4
0
0, 2
0
0, 4
étudier la limite de la puissance nième de M lorsque n tend vers l’infini sans calculer explicitement Mn, en vous aidant du graphe associé.
221
Chapitre 5 • Processus stochastiques et programmation…
**5.4 États transitoires, États récurrents. Ergodicité simple Soit la matrice d’une chaîne de Markov : 0 1
2
3
4
0 1
0,2 0,1
0 0,2
0
0,8
0
0,3
0,3
0,1
M =2
0,2
0,1
0,5
0,1
0,1
3 4
0,4
0
0
0,6
0
0,2
0,1 0,2
0,1 0,4
Tracer le graphe et déterminer la classe des états transitoires et celle des états récurrents. On demande d’étudier le comportement de M n lorsque n augmente indéfiniment et de trouver P* = P* (`).
**5.5 Chaîne périodique On donne la matrice stochastique ci-dessous et l’on demande d’examiner ce qui se passe lorsqu’on l’élève à la puissance n. (NB : tracer d’abord le graphe) En particulier, existe-t-il une limite pour M n lorsque n tend vers l’infini ? 0 0 1
0 0,8
M =2
0,9
3 4
0 0,3
1
2
0, 4 0,6 0 0 0
0
0, 2 0,5 0
0
3
4
0
0
0,2
0
0,1
0
0
0,3
0,7
0
***5.6 Périodicité d’ordre 3 Soit la chaîne de Markov donnée par le graphe ci-dessous.
222
Exercices
1. Écrire la matrice des probabilités de transition M et montrer que : an an 2 1 an 1 1 2pn 1 a R. M 5 B n 1 1 an an 2 1 R où an 5 B 1 1 2 cos 3 3 an 2 1 an 1 1 an n
Expliciter M n selon que n 5 3k, 3k 1 1 ou 3k 1 2. 2. Soit P(0) 5 [l, 0, 0], calculer P(n) selon que n 5 3k ou n 5 3k 1 1 ou n 5 3k 1 2, où k est un entier positif ou nul. 1 1 1 3. Que peut-on dire de P(`) lorsque P ( 0 ) 5 B , , R ? 3 3 3
***5.7 Valeurs propres des matrices stochastiques Montrer que : 1. la matrice de l’exercice 5.2 admet une valeur propre égale à 1 ; 2. la matrice de l’exercice 5.3, admet deux valeurs propres égales à 1 ; 3. la matrice de l’exercice 5.5, admet une valeur propre égale à 1 et une valeur propre égale à –1 ; 4. la matrice de l’exercice 5.6, admet une valeur propre égale à 1, une cos 2p 2p et une troisième égale à : 1 i sin deuxième égale à : j 5 3 3 4p 4p ( 5 j ) .; qui sont les racines cubiques de 1. j 5 j2 5 cos 1 i sin 3 3 (Rappel : j3 = 1 et j 3 = 1).
II Processus de Markov
© Dunod – Toute reproduction non autorisée est un délit.
*5.8 Processus de Poisson Considérons un processus de Poisson de taux a. 1. Quelle est la probabilité que quatre événements se produisent entre t et 2t ? Entre 3t et 5t ? ( at ) n 2. On rappelle que p n ( t ) 5 e 2 lt pour toute durée d’intervalle t. n! En faisant t :5 Δt, retrouver la probabilité d’avoir respectivement 0 événe ment, 1 événement, au moins 2 événements entre et 1 Δt. 3. Soit Xt 1 t 2 5 at le nombre moyen d’événements se produisant sur un intervalle de durée t et s2Xt la variance de ce nombre. Évaluer s2Xt. 4. Quelle est la durée moyenne séparant deux « naissances » (événements) consécutifs ? Évaluer la variance de cette durée. 223
Chapitre 5 • Processus stochastiques et programmation…
**5.9 Un autre processus de naissance Pour un certain micro-organisme, la probabilité de se séparer en deux micro organismes pendant l’intervalle de temps [t, t 1 dt] est indépendante de t et égale à l dt 1 o(dt) ; la probabilité qu’il y ait plus d’une séparation dans cet intervalle est négligeable (en o(dt)). On suppose qu’il existe un seul micro-organisme à l’instant initial (t 5 0). Montrer que la probabilité pn(t) pour qu’il y ait n micro-organismes à l’instant t est : p n ( t ) 5 e2lt # ( 1 2 e2lt ) n 2 1, ( m $ 1 ) . Généraliser au cas où il y aurait N micro-organismes présents à t 5 0.
***5.10 Lien entre processus de Markov et chaîne de Markov Soit un processus de Markov fini. 1. Sachant qu’à t 5 0 le processus est dans l’état Ei, montrer que la pro babilité pour que – en quittant l’état Ei pour la première fois – le processus passe par l’état Ej est : p ij 5 l ij /q i (où q i 5 a l ij ) j 2i
Vérifier que a p ij 5 1 j 2i
2. Évaluer la probabilité d’une « trajectoire » suivie entre t 5 t0 et t 5 tn : P 3 Xt0 5 Ei0, Xt1 5 Ei1, c, Xtn 1 5 Ein 1, Xtn 5 Ein 4 , où tk est la date d’entrée dans l’état Eik et : t0 , t1 , c , tn-1 , tn On se donne p i0 ( 0 ) 5 P 3 Xt 0 5 Ei0 4 2
2
*5.11 Étude de la ligne téléphonique d’un abonné
Lorsqu’un abonné décroche son combiné pour passer un appel, une première phase s’engage (phase 1) pendant laquelle il compose au cadran le numéro de son corres pondant puis attend d’être relié à celui-ci (en fin de phase 1, le téléphone commence à sonner chez le correspondant). Le correspondant, qui n’est jamais absent et dont la ligne est toujours libre, décroche au bout d’un certain temps après le début de la sonnerie, puis une conversation s’établit (l’ensemble sonnerie et conversation for mant la phase 2). La durée aléatoire de la phase 1 (resp. 2) est régie par une loi exponentielle de taux (resp. m). Le processus formé par les instants de début d’appel par l’abonné est un pro cessus de Poisson de taux l (en neutralisant les périodes d’occupation de la ligne étudiée). 224
Exercices
L’abonné reçoit aussi des appels, lorsque la ligne est libre, arrivant suivant un pro cessus de Poisson de taux a ; la durée aléatoire d’une telle conversation est encore régie par une loi de Poisson de taux m. On remarquera que dans ce cas de réception d’un appel, la phase 1 n’a pas lieu pour la ligne étudiée. 1. Associer au fonctionnement de la ligne un processus de Markov à 3 états E0, E1, E2, ; décrire en détail chaque état. Tracer le graphe associé ; valuer chaque arc par le taux de la transition cor respondant. 2. Ce processus est-il ergodique ? Justifier. 3. Sachant que l 5 a 5 3 appels/heure, qu’une conversation dure en moyenne 3 minutes et que la phase 1 dure en moyenne 20 secondes, calcu ler numériquement les probabilités des états en régime permanent (appli quer le théorème des coupes à E0 et E1). On prendra l’heure comme unité commune de temps. Déterminer pendant combien de temps, en moyenne et par heure, la ligne est libre.
© Dunod – Toute reproduction non autorisée est un délit.
**5.12 Application des processus de naissance et de mort Une société d’informatique possédant un puissant ordinateur a installé N terminaux identiques dans certains de ses bureaux. Chaque terminal peut tomber en panne avec un taux a : la probabilité qu’un terminal en état de marche à t tombe en panne entre t et t 1 dt vaut a dt ; les pannes des différents terminaux sont indépendantes. Les bureaux souhaitant une intervention rapide après une panne, la société étudie deux politiques de maintenance entre lesquelles elle devra choisir. La politique P1 consiste à engager R réparateurs (R , N ) et à en envoyer un dès qu’une panne se produit dans un bureau, s’ils ne sont pas tous déjà occupés ; lorsque les réparateurs sont tous occupés et que des pannes surviennent, les réparations ont lieu ultérieurement dans l’ordre d’occurrence de ces pannes. La politique P2 consiste à engager un seul réparateur, et constituer un stock de S terminaux de rechange. Lorsqu’une panne survient dans un bureau et que le stock de terminaux n’est pas nul, le terminal hors d’état est immédiatement remplacé par un terminal pris dans le stock ; celui hors-service est envoyé à l’atelier de réparation où le réparateur, s’il est libre, remet ce terminal en état puis le replace dans le stock. Si le stock est nul, le bureau doit attendre la réparation de son terminal. Dans tous les cas la durée d’une réparation obéit à une loi exponentielle de taux b. On suppose négligeable le temps nécessaire au déplacement des réparateurs ou au remplacement d’un terminal par un autre.
225
Chapitre 5 • Processus stochastiques et programmation…
1 1 Soient les valeurs numériques suivantes : N 5 4, a 5 6 jours, 5 1 jour, R 5 2, b S 5 2. (Elles sont peu réalistes mais permettent des calculs simples.) 1. Étude de la politique P1 a) On désigne par Ek l’état pour lequel k terminaux sont en état de marche. Montrer que l’évolution du parc de terminaux est régie par un processus de naissance et de mort ; on tracera le graphe associé à ce processus et l’on valuera ses arcs en fonction de a et b (sans valeur numérique). Existe-t-il un régime permanent pour ce processus ? Pourquoi ? Dans la suite du pro blème, on utilisera directement les valeurs numériques. b) On suppose le régime permanent atteint. Notons alors p*k la probabilité de l’état Ek. 1 Exprimer p*k en fonction de p*0 ; puis montrer que p*0 5 ; en déduire les 805 valeurs numériques des probabilités p*. k
c) Déterminer le nombre moyen r de réparateurs inoccupés ainsi que le nombre moyen r de terminaux en panne. 2. Étude de la politique P2 a) Appelons Fk l’état pour lequel k terminaux sont en état de marche (dans les bureaux et dans le stock). Associer à l’évolution du parc des terminaux un processus de naissance et de mort ; tracer le graphe associé à ce processus et le valuer en fonction de a et b. b) On suppose le régime permanent atteint ; on note alors q*k la probabilité de l’état Fk. Calculer les valeurs numériques des probabilités q*k . c) Déterminer le nombre moyen r r de réparateurs inoccupés, le nombre moyen rr de terminaux en panne (pour le parc complet) ainsi que le nombre moyen t de terminaux en panne dans les différents services de la société. 3. Comparaison économique des deux politiques On donne les coûts suivants : – la charge salariale journalière d’un réparateur est 50 € ; – le coût estimé de non-fonctionnement d’un terminal dans un bureau est de 200 € par journée d’indisponibilité ; – le coût d’amortissement d’un terminal est évalué à 30 € par jour. Choisir la politique qui minimise le coût journalier : coût de l’inactivité des réparateurs 1 coût d’indisponibilité 1 coût d’amortissement des ter minaux. 226
Exercices
***5.13 Application de la programmation dynamique stochastique : processus D-H Au cours d’une transformation chimique, qui dure plusieurs heures, on procède à un réglage qui a lieu toutes les dix minutes. Dans l’intervalle des réglages, qui sont sup posés sans durée appréciable, la réaction évolue d’elle-même. La masse traitée peut se trouver dans les états E1, E2 ou E3. Si elle est dans l’état E1 le réglage peut l’y maintenir ou la faire passer à E2 ; si elle est dans l’état E2, le réglage peut la faire passer à E1 ou E3 ; si, enfin, elle est dans l’état E3, le réglage peut la faire passer à E1 ou E2. Or, lorsque la réaction évolue ensuite à partir de l’état E1, elle conduit 3 fois sur 10 à l’état E2 (avec une économie de 5 unités monétaires : u.m.) et 7 fois sur 10 à l’état E3 (avec une perte de 2 u.m.) ; lorsqu’elle évolue à partir de E2, une fois sur deux elle passe à E1 (gain de 1 u.m.) ou à E2 (perte de 1 u.m.) ; lorsqu’enfin elle évo lue à partir de E3, six fois sur dix il y a passage à E2 (gain de 3 u.m.) et quatre fois sur dix, on reste en E3 (perte de 2 u.m.). Quel réglage opérer, dans chaque hypothèse, de manière à obtenir la transforma tion la plus économique ? N.B. Il est indifférent que la matière traitée soit finalement sous l’un quelconque des trois états, pourvu que la durée de la transformation, prévue à l’avance, ait été observée. Quel gain réalise-t-on sur 100 réglages, en appliquant la politique optimale ?
227
2 6
Fiabilité des compo sants , sûreté de fonction ne ment des systèmes
L’usure et le renouvellement des équipements (ou composants) peuvent être envisa gés dans le cas de l’usure certaine, ce qui donne lieu à des problèmes de mathéma tiques financières classiques, l’actualisation étant alors le moyen de comparer les équipements entre eux. Nous ne nous occuperons pas ici de ce point de vue. Au contraire, lorsqu’il s’agit d’usure aléatoire, celle-ci ne peut être connue qu’en probabilité ; dans ces conditions, c’est bien à un problème de recherche opérationnelle que l’on a affaire. L’étude de ce genre de question doit conduire à un compromis entre le coût d’approvisionnement et le coût de panne des matériels. L’étude de l’usure et du renouvellement des équipements au plan théorique doit beaucoup à V. Volterra (1931), bien que des ingénieurs comme T.C. Fry s’en soient préoccupés dès 1928. Elle a fait ensuite des progrès avec M. Fréchet, W. Feller et, d’une façon générale, tous ceux qui ont travaillé dans les domaines d’application de la théorie des processus stochastiques. Nous terminerons ce chapitre par l’étude de la sûreté de fonctionnement de « sys tèmes », vus comme assemblages d’équipements (composants ou modules).
6.1 Données discrètes. expéri men tale
courbes de survie
Pour commencer, nous allons examiner comment, à partir d’un simple fichier de maintenance ou de sources comptables élémentaires, on peut définir la courbe de survie d’un matériel, car c’est de la loi de survie que nous déduirons le taux d’appro visionnement. Exemple. Considérons une société de location de voitures, comptant 500 véhicules, tous du même modèle, équipés chacun de cinq pneus identiques. Moyennant une
6.1 Données discrètes. courbes de survie expérimentale
organisation très simple, on peut connaître, sur un lot de 2 500 pneus combien ont duré moins d’un mois, de un mois à deux mois, de deux mois à trois mois, etc. Les données du problème se présentent sous la forme du tableau ci-après. En fait nous avons ici « contracté » le temps afin que l’exemple garde une taille raisonnable (en réalité les durées de vie des pneus sont, heureusement, bien supérieures). Classe de durée t
Durée
tr
Durée des pneus
Nombre de pneus n ( t21 ) 2n ( t ) restants :
Nombre cumulé de pneus défaillants
Mortalité relative n ( t21 ) 2n ( t )
pi 5
n(0)
n(t) 0
2 500
0
1
0,5
moins de 1 mois
2 495
5
5
0,002
2
1,5
de 1 mois à 2 mois
2 480
15
20
0,006
3
2,5
de 2 mois à 3 mois
2 440
40
60
0,016
4
3,5
de 3 mois à 4 mois
2 350
90
150
0,036
5
4,5
de 4 mois à 5 mois
2 190
160
310
0,064
6
5,5
de 5 mois à 6 mois
1 990
200
510
0,080
7
6,5
de 6 mois à 7 mois
1 740
250
760
0,100
8
7,5
de 7 mois à 8 mois
1 390
350
1 110
0,140
9
8,5
de 8 mois à 9 mois
790
600
1 710
0,240
10
9,5
de 9 mois à 10 mois
340
450
2 160
0,180
11
10,5
de 10 mois à 11 mois
90
250
2 410
0,100
12
11,5
de 11 mois à 12 mois
30
60
2 470
0,024
13
12,5
de 12 mois à 13 mois
10
20
2 490
0,008
14
13,5
de 13 mois à 14 mois
0
10
2 500
0,004
plus de 14 mois
0
0
2 500
0
a 51
© Dunod – Toute reproduction non autorisée est un délit.
Tableau 6.1
La sixième colonne du tableau donne le nombre de pneus restants, n(t), à chaque date t de la gestion du lot considéré : le lecteur s’y reportera avant de lire les colonnes 4 et 5. On obtient donc facilement la courbe n(t) ; un simple changement d’échelle sur l’axe des ordonnées permet de représenter la courbe de survie : n1t2
; n102 v(t) peut être interprété comme la probabilité de survie ou « fiabilité » d’un pneu à toute époque déterminée t, en raison du fait qu’on a étudié un lot assez nombreux d’équipements a priori identiques (tableau 6.1). v1t2 5
229
Chapitre 6 • Fiabilité des composants, sûreté. . .
Par exemple, la probabilité pour qu’un pneu dure plus de 8 mois est : n(8)
1 390 5 0, 556, soit encore 55,6 %. 2 500 n(0) La probabilité pour qu’un pneu cesse d’être en état de rouler entre l’époque t 2 1 et l’époque t n’est autre que : 5
pt 5
n(t 2 1) 2 n(t)
; n(0) on lit les résultats (“mortalité relative”) dans la septième colonne. Ainsi, la probabi lité pour qu’un pneu soit réformé entre 8 et 9 mois vaut : n(8) 2 n(9)
1 390 2 790 600 5 5 0, 24, 2 500 2 500 n(0) qui est une valeur très élevée (mais nos données du tableau 6.1 sont artificielles). p9 5
5
On remarque que l’on a aussi : n(t 2 1) 2 n(t)
5 v (t 2 1) 2 v (t). n(0) La probabilité pour qu’un pneu soit réformé entre t et t 1 Dt peut s’écrire : v 1 t 2 2 v 1 t 1 Dt 2 . pt 5
Or, si Dt tend vers 0, le rapport v ( t ) 2 v ( t 1 Dt )
Dt tend, par définition, vers 2v r ( t ) . Il en résulte que 2v r ( t ) . Dt est la probabilité pour qu’un pneu soit réformé entre t et t 1 Dt, lorsque Dt tend vers zéro. Il est important de connaître la “proba bilité d’avarie” pc(t), c’est-à-dire la pro babilité pour qu’un pneu encore en état à t 2 1 cesse d’être apte à rouler entre t 2 1 et t ; c’est une probabilité conditionnelle. Figure 6.1 Pour la calculer, remarquons que la pro babilité pt pour qu’un pneu cesse d’être en état entre t 2 1 et t est le produit de la probabilité pour qu’il ait survécu jus qu’à t 2 1, soit v 1 t 2 1 2 , par la probabilité d’avarie pc(t) (on note T sa date de réforme) : pc ( t ) 5 p 3 t 2 1 , T # t | T . t 2 1 4 5 pt / v ( t 2 1 ) . 230
6.1 Données discrètes. courbes de survie expérimentale
d’où : pc ( t ) 5
pt
5
n(t 2 1) 2 n(t )
v(t 2 1) n(0) Évaluons ainsi pc(9) ; on a :
pc 1 9 2 5 1 2
3
n192
n(0)
n(t 2 1) 512
5
n(t 2 1) 2 n(t ) n(t 2 1)
512
n(t) n(t 2 1)
790 . 0, 432. 1 390
n182 Ce résultat est fort significatif puisqu’il nous apprend que plus de 43 % des pneus encore en service au bout de 8 mois auront cessé d’être aptes à rouler avant la fin du neuvième mois. La formule de calcul de la “durée de vie moyenne”, approximation de l’espérance mathématique de la durée de vie E(T), s’écrit : 14
t 5 a t # pt 1
donne ici la valeur 8,334, qu’on peut toutefois rectifier1 si l’on tient compte de la durée t’ pour chaque classe (deuxième colonne) , on obtient alors : 14
1 tr 5 a tr # pt . 7, 8 ( 34 ) mois, où : tr 5 t 2 , 2 1 on calculera aussi très facilement la variance : s2t d’où un écart-type de :
14
5 a tr2 # pt 2 tr2 . 1, 98, soit . 2 1
st 5 "1, 98 . 1, 4 ( 1 ) mois. La figure 6.2 montre que : t # pt 5 t 3 v ( t 2 1 ) 2 v ( t ) 4 5 t # D v.
© Dunod – Toute reproduction non autorisée est un délit.
Si donc on fait la somme a t # pt, pour toutes les valeurs de t, on obtient une aire qui est très légèrement supérieure à l’aire sous-tendue par la courbe v(t). Dans le cas où v(t) est une fonction continue, on peut faire tendre Δν vers zéro et l’on obtient exactement l’aire comprise entre la courbe de survie et l’axe des temps. On peut donc écrire, dans ce cas : t 5 3 v ( t ) dt. `
0
14
14
14
1 1 1 1. Cette rectification donnera : tr 5 t 2 0, 5 car a at 2 b # pt 5 a t # pt 2 a pt 5 t 2 . 2 2 1 2 1 1
231
.
Chapitre 6 • Fiabilité des composants, sûreté. . .
Figure 6.2
Figure 6.3
En général, la forme même de la courbe de survie peut déjà renseigner sur le type d’équipement auquel on a affaire. Plus elle se rapproche d’une exponentielle décroissante (figure 6.3) et plus la probabilité d’avarie tend vers une constante. En effet, si l’on avait : v(t) 5 e2lt (cas d’une loi exponentielle, temps continu), on aurait : 2vr ( t ) # D t 5 v ( t ) # p c ( t ) # D t,
en désignant par p c 1 t 2 # D t la probabilité d’avarie entre t et t 1 Dt, lorsque Δt tend vers 0. La quantité pc(t), dans ce cas, sera notée plus bas : l(t). Il viendrait donc :
pc1t2 5 2
vr 1 t 2
.
v1t2
Ainsi pour la valeur particulière de v(t) 5 e2lt, cette quantité est constante : p c ( t ) 5 2 3 2 l e2lt 4 #
1 e
2lt
5 l.
Calculons la « durée de vie1 moyenne » t dans le cas d’une courbe de survie exponentielle (il s’agit en réalité, ici, de l’espérance de la durée de vie : E(T)) : t 5 3 e 2 lt # dt 5 `
0
1 ; l
or, la valeur a, correspondant à v(t) 5 0,5, est telle que : 0,5 5 e2lt ou encore : ln 2 . On a donc a , t puisque ln 2 5 0,693 est inférieur à 1. a5 l Plus la courbe de survie se rapproche d’un échelon rectangulaire, plus la probabi lité d’avarie, qui était nulle jusqu’à l’âge a 5 t, subit un saut brusque ; v(t) vaut alors 1 (figure 6.4) pour t , a puis vaut 0 pour t ù a. 1. Par abus de langage ; on devrait dire « espérance mathématique de la durée de vie » 232
6.2 Loi de survie : forme analytique
Ces remarques permettent d’affirmer que, dans le premier cas (celui de la figure 6.3) on a affaire à des pièces dites « de fatigue », dont la probabilité d’avarie est constante ; dans ces conditions, il n’y a aucun intérêt à pratiquer un entretien préventif sur ce genre de matériel, puisqu’une pièce neuve présente la même fragilité qu’une pièce usagée, comme nous le verrons plus loin. Dans le second cas (figure 6.4), on a, au contraire, affaire à des pièces constituant un lot parfaitement homogène ; les matériels dont la courbe de survie affecte une forme presque rectangulaire sont des pièces « d’usure ». Il y a intérêt à les réformer juste avant t.
Figure 6.4
6.2 Loi
de survie : forme analytique
Dans le cas « continu », c’est-à-dire le cas où l’on dispose de la loi de survie sous forme analytique (par ex. v ( t ) 5 e 2 lt ) on a les définitions et résultats suivants :
• À la mortalité relative, calculée dans le cas discret, correspond ici la densité de probabilité i(t), telle que : i ( t ) dt 5 Pr 5 t < T , t 1 dt 6 5 Pr 5 T , t 1 dt 6 2 Pr 5 T , t 6 , d’où : i ( t ) dt 5 3 1 2 v ( t 1 dt ) 4 2 3 1 2 v ( t ) 4 représente la probabilité de défaillance entre t et t 1 dt ; On remarque ainsi que : d i ( t ) # dt 5 2dv ( t ) et que : i ( t ) 5 2 v ( t ) 5 2vr ( t ) . dt t Notons que : 1 2 v ( t ) 5 3 i(u) du.
© Dunod – Toute reproduction non autorisée est un délit.
• la durée de vie est une variable aléatoire T, représentant le temps écoulé depuis la mise en service jusqu’à la défaillance de l’équipement. Si l’on pose : v ( t ) 5 Pr 5 T > t 6 , v(t) est la probabilité pour que l’équipement accomplisse sans défaillance des fonc tions déterminées pendant le temps donné t : pour cette raison, cette probabilité prend le nom de fiabilité, car elle caractérise le degré de confiance que l’on peut accorder au matériel (ce degré est décroissant, évidemment, avec t).
0
• À la probabilité d’avarie pc(t) du cas « discret », correspond, dans le cas « continu » la probabilité conditionnelle l 1 t 2 # dt, pour qu’un équipement d’âge t, subisse une défaillance entre t et t 1 dt ; en effet : Pr 5 t < T , t 1 dt 6 5 Pr5 T > t 6 # l ( t ) # dt, soit i ( t ) # dt 5 2v ( t ) # l ( t ) # dt, d’où : i(t) vr ( t ) 52 . l (t) 5 v(t) v(t) 233
Chapitre 6 • Fiabilité des composants, sûreté. . .
On nomme l(t) « taux d’avarie ». On obtient évidemment en intégrant chaque membre de cette relation : 3 l(u) du t
0
car 3 l ( u ) du 5 2 3 log v ( u ) 4 t0 . t
,
v (t) 5 e
2
0
Les courbes l(t), pour des types d’équipements (composants) donnés, ont les allures ci-dessous (courbes « en baignoire »).
Figure 6.5
Figure 6.6
Pendant une brève période, l(t) peut être initialement décroissant : il s’agit de la période d’élimination de composants affectés de défauts de fabrication (« mala dies de jeunesse »). Suit une période longue pendant laquelle l(t) est soit constant (équipements dits de fatigue, de fiabilité exponentielle), soit croissant modérément (équipements dits d’usure). Soit enfin, une phase pendant laquelle l(t) brusquement se met à croître de plus en plus vite : il s’agit d’une phase d’usure prononcée (géné ralement on remplace les équipements atteignant cette phase). • Calculons l’âge moyen ˉt d’apparition de l’avarie ou la “durée de vie moyenne” d’un équipement (qui est en réalité l’espérance mathématique E[T]). Il vient : t 5 3 t # i ( t ) # dt 5 3 t # d 3 2v ( t ) 4 5 3 2t # v ( t ) 4 0` 2 3 2v ( t ) dt 5 3 v ( t ) # dt, 0 0 `
`
`
0
`
0
car, en intégrant par parties, le terme 2t # v ( t ) est nul entre 0 et l’infini. On a supposé : lim t # v ( t ) 5 0, ce qui est physiquement évident, aucun équipement n’étant éternel. tS` C’est cette durée de vie moyenne qui est appelée MTTF ou MTF (Mean Time To Failure) par les industriels : Temps Moyen jusqu’à la Panne, qui a remplacé le terme 234
6.2 Loi de survie : forme analytique
ancien de MTBF1 désormais réservé au cas de systèmes réparables (et non pas d’un composant ou un équipement isolé). Bien entendu la loi « continue » n’est qu’une loi idéale, tirée de l’observation par le statisticien, d’après des données du même type que celles dont nous avons fait usage dans l’exemple traité plus haut (Tab. 6.1). Dans beaucoup de problèmes pratiques, on n’a pas besoin de cette loi. C’est le cas lorsque, pour exécuter un calcul sur ordinateur, il est nécessaire de « discrétiser » la loi continue qu’on vient de tirer des données expérimentales discrètes. En revanche, les méthodes statistiques sont très utiles si les données expérimentales contiennent des points aberrants ou bien des « trous ». Par des méthodes statistiques que nous ne précisons pas ici, on a pu trouver l’expression continue suivante pour l’exemple cité plus haut : v ( t ) 5 e 2 (0, 12t) , 5
ce qui correspond à une loi dite « de Weibull », de la forme v 1 t 2 5 e 2 1at2 avec les valeurs a 5 0,12 ; b 5 5. b
On a alors t 5 7,64 au lieu de la valeur expérimentale 7,8 et des écarts entre la courbe idéale et la courbe pratique (figure 6.8). Donnons quelques compléments sur la loi de Weibull. Cette loi dépend de deux paramètres positifs : b est le paramètre de « forme » (cf. courbes ci-dessous Fig 6.7) et a, celui de « durée de vie ». b La fiabilité est v ( t ) 5 e 2 (a t) . La densité de probabilité de défaillance est : i ( t ) 5 2vr ( t) 5 ab # (at ) b 2 1 # e 2 (at) . Le taux d’avarie est : l 1 t 2 5 ab # 1 at 2 b 2 1.
© Dunod – Toute reproduction non autorisée est un délit.
b
Ce taux est strictement croissant pour b . 1 ; il est constant pour b 5 1 (on retrouve alors la loi exponentielle : v(t) 5 e2at). Ce taux serait décroissant pour b , 1 (cas peu réaliste). Notons que pour b 5 2, on obtient la loi de Rayleigh-Maxwell pour laquelle le taux d’avarie croît linéairement avec t ; en effet, on a alors : l(t) 5 2 a2 t. On montre en outre que pour b 5 3,25 et a 5 1, la loi de Weibull donne une bonne approxima tion de la loi normale (gaussienne). La « durée de vie moyenne » MTTF (Mean Time To Failure), en fait E(T), vaut : 1 1 t 5 3 i ( t ) dt 5 a G a1 1 b b 0 `
où G ( x ) 5 3 tx 2 1e 2 tdt est la fonction factorielle, qui vaut 1 x 2 1 2 ! pour x entier `
0
positif, nommée aussi fonction « gamma ».
1. Voir, plus loin, le paragraphe sur la sûreté de fonctionnement des systèmes. 235
Chapitre 6 • Fiabilité des composants, sûreté. . .
Figure 6.7
Figure 6.8
La loi de Weibull, en raison de la large gamme de lois observées qu’elle permet de représenter, est l’une des plus utilisées en pratique. On utilise aussi la loi « lognormale » : cf le paragraphe 6.6.
236
6.3 Probabilité de consommation. approvisionnements
6.3 Probabilité de consommation. approvisionnements L’étude des courbes (et fonctions) de survie est de nature à favoriser la connaissance de nombreuses quantités significatives, telles que la probabilité de consommation et le taux d’approvisionnement que nous définissons ci-après : On appelle probabilité de consommation durant le temps t, la probabilité d’avoir à remplacer une quantité déterminée d’équipements défaillants. On désignera par qm(t) la probabilité d’avoir m défaillances dans l’intervalle de temps [0, t]. D’après la définition même de la courbe de survie on a : n1t2 q0 1 t 2 5 5 v1t2, n102 car, si un équipement survit à t, on n’aura pas à le remplacer jusqu’à cette date… Cherchons maintenant à évaluer q1(t). Pour cela, supposons que l’intervalle de temps [0, t] soit divisé en r sous-périodes de durée t ; pour qu’à l’époque t on n’ait qu’un remplacement à exécuter, il faut que l’équipement initial ait été défaillant entre 1 k 2 1 2 t et kt 1 1 < k < r 2 et que l’équipement neuf substitué à l’équipement remplacé ait survécu de kt à t. La probabilité pour qu’il y ait une défaillance entre 1 k 2 1 2 t et kt est égale à : pk t 5
n 3 ( k 2 1 ) t 4 2 n ( kt )
n(0) celle de survie du nouvel équipement n’est autre que : v 1 t 2 kt 2 5
le produit de ces deux probabilités : pkt # v 1 t 2 kt 2 5
n 1 t 2 kt 2 n102
;
;
n 3 1 k 2 1 2 t 4 2 n 1 kt 2
3
n 1 t 2 kt 2
n102 n102 doit être considéré pour chaque valeur de k, de 1 à r, d’où : q1 ( t ) 5 a
© Dunod – Toute reproduction non autorisée est un délit.
k 5r
k 51
n 3 ( k 2 1 ) t 4 2 n ( kt ) n(0)
3
n ( t 2 kt ) n(0)
,
5 a pk t # v ( t 2 kt ) . k 5r
k 51
D’une manière analogue, on obtiendrait la formule de récurrence : qm ( t ) 5 a qm 2 1 ( t 2 kt ) # pk t, k 5r
k 51
En présence d’une fonction v(t) continue, qm(t) est donné par la convolution :
qm ( t ) 5 2 3 qm 2 1 ( t 2 u ) # v r ( u ) # du 5 3 qm 2 1 ( t 2 u ) # i ( u ) # du 0 0 # 1 2 puisque pkt peut être remplacé par 2 vr t D t lorsque t tend vers zéro. t
t
237
Chapitre 6 • Fiabilité des composants, sûreté. . .
Lorsque la fiabilité est exponentielle : v(t) 5 e2lt, cette récurrence se résout aisé ( lt ) m ( ) ment ; on trouve : qm t 5 e 2 lt, c’est-à-dire que l’on retrouve une loi de Pois m! son. En effet, on sait que la loi exponentielle est la loi de la durée des intervalles de temps séparant deux événements consécutifs (ici : deux pannes) dans un processus de Poisson. Le taux d’approvisionnement permet le calcul, pour une période t donnée, du nombre d’équipements nécessaires pour couvrir les besoins en pièces de rechange dans une limite déterminée. Supposons, par exemple, qu’on veuille assurer le dépan nage avec la probabilité au moins égale à 95%. On aura à calculer m tel que : a qk ( t ) > 0, 95,
k 5m
k 50
On cherchera donc la plus petite valeur de m réalisant cette condition. Notons que si l’on voulait assurer le dépannage avec la probabilité 1, il faudrait avoir un stock de pièces de rechange… infini1 ! En pratique au lieu de 1, on adapte 0,99 ou 0,999 ou... Les conditions d’approvisionnement durant une période de gestion sont précisées par la considération du taux d’approvisionnement. Pour mettre en évidence cette notion, il est nécessaire de connaître, en fonction du temps, le nombre d’équipements que l’on veut maintenir en état : c’est la fonction d’utilisation (t). Soit, par exemple, à mettre en service Ν équipements au temps t 5 0, puis à porter le nombre de ces équipements à Nr au temps t 5 t1, pour le maintenir à cette valeur jusqu’à t2, puis le laisser décroître régulièrement de N à 0 entre t2 et t3. La figure 6.9 représente la fonction d’utilisation. Imaginons maintenant que l’axe des temps soit divisé en périodes égales de durée t. Pour la période 3 1 k 2 1 2 t , k t 4 , le nombre d’approvisionnement r(t) est : r 1 kt 2 5 n 1 kt 2 2 n 3 1 k 2 1 2 t 4 , si l’on appelle n(kt) le nombre d’équipements remplacés jusqu’au temps kt. À chaque période it, les équipements remplacés, au nombre de r(it), étant neufs, seront soumis à la loi de survie v 1 t 2 it 2 , si bien qu’il en restera en service au temps t : r 1 it 2 # v 1 t 2 it 2 À toute époque t, on devra avoir, si t 5 rt : 1 ( t ) 5 N # v ( t ) 1 a r ( kt ) # v ( t 2 kt ) k 5r
Figure 6.9
k 51
1. Ceci est inhérent à la nature stochastique (aléatoire) de l’occurrence des défaillances. 238
6.4 Calcul des approvisionnements
puisqu’à chaque époque t, 2t , c, kt , c, on a procédé au remplacement de r(kt) équipements. Dans le cas d’une fonction continue, on obtient une intégrale dite de Volterra : 1 ( t ) 5 N # v ( t ) 1 3 R r ( t ) # v ( t 2 t ) # dt , t
0
où R r ( t ) désigne la dérivée par rapport au temps du nombre d’équipements R ( t ) , remplacés jusqu’à t. Il est très remarquable que si l’on désire maintenir un niveau constant, égal à N0, N0 d’équipements en service, on ne tend que lentement vers le taux , qui est la limite, t pour t tendant vers l’infini, de Rr 1 t 2 . Pendant une période plus ou moins longue, le taux d’approvisionnement oscille autour de cette valeur limite, dont, au début, il s’en écarte beaucoup. Cela est dû au fait que le phénomène demeure longtemps transi toire et n’évolue que lentement vers un régime permanent.
n(t)
© Dunod – Toute reproduction non autorisée est un délit.
t 0
2 500
1 2
2 495 2 480
3
2 440
4
n(t) / n(t1)
pc(t)
0, 998
0, 002
0, 993 988
0, 006 012
2 350
0, 983 871 0, 963 115
0, 016 129 0, 036 885
5
2 190
0, 931 915
0, 068 085
6
1 990
0, 908 676
0, 091 324
7
1 740
0, 874 372
0, 125 628
8
1 390
0, 798 851
0, 201 149
9
790
0, 568 345
0, 431 655
10
340
0, 430 380
0, 569 620
11
90
0, 264 706
0, 735 294
12
30
0, 333 333
0, 666 667
13
10
0, 333 333
0, 666 667
14
0
0
6.4 Calcul
Figure 6.10
1
des approvisionnements
Reprenons l’exemple ci-dessus et calculons cette fois, pour chaque valeur de t, la quantité pc(t) ou « probabilité d’avarie ». 239
Chapitre 6 • Fiabilité des composants, sûreté. . .
Remarque. On note une « irrégularité » de la courbe représentative de pc(t). Il n’y a pas lieu de s’alarmer de cette constatation, les faibles effectifs des dernières classes ne permettant pas d’espérer des résultats d’expérience plus vraisemblables. La probabilité pour qu’un équipement, parvenu à l’âge t, soit défaillant dans l’inter valle [t, t 1 1] étant pc(t), la probabilité pour qu’il survive n’est autre que 1 2 pc ( t ) . Donc, si nous considérons les états 0, 1, 2, c, 13 (âges) du matériel, les probabilités de transition des états précédents à l’état 0 (panne suivie du remplacement) sont : 0, 002 ; 0, 006 ; c; 0, 667 ; 1, tandis que les probabilités de transition des états précédents aux états 1, 2, 3, c (survie pendant une période) sont : 0, 998 ; 0, 994 ; c; 0, 333 ; 0. Nous obtenons ainsi la matrice des probabilités de transition(1) de dimension 14 3 14, qui est stochastique et définit une chaîne de Markov (ce point est détaillé à la fin de ce paragraphe) ; le lecteur vérifiera que la somme des termes dans chaque ligne de M, vaut 1 :
0 1 2 3 4 5 6 M= 7 8 9 10 11 12 13
0 1 2 6 5 3 8 4 7 9 10 11 12 13 0, 002 0, 998 0, 006 0, 994 0, 016 0, 984 0, 037 0, 963 0, 068 0, 932 0, 091 0, 909 0, 126 0, 874 0, 201 0, 799 0, 432 0, 568 0, 570 0, 430 0, 735 0, 265 0, 667 0, 333 0, 667 0, 333 1 0
dont le graphe G est donné par la figure 6.11 ; cette chaîne est non décomposable (car G est fortement connexe) et apériodique (car G comporte une boucle), elle est donc fortement ergodique ; mais ici nous allons étudier le régime transitoire). (1) les probabilités non spécifiées, telle p02, sont nulles. 1. 240
6.4 Calcul des approvisionnements
Figure 6.11
© Dunod – Toute reproduction non autorisée est un délit.
En faisant le produit du vecteur N(0)1, dont les éléments sont les nombres d’équi pements d’âges déterminés mis en service à la date 0, par la matrice M, on obtiendra N(1)1, les éléments de ce vecteur étant les nombres d’équipements d’âges détermi nés: à remplacer (colonne 0) ou survivants (colonnes 1 à 13) à la date 1. En multi pliant N(1) par M, on obtiendra N(2)1, et ainsi de suite. Nous ferons le calcul dans l’hypothèse où l’on a, initialement, 2 500 équipements neufs : N ( 0 ) 5 3 2 500 ; 0 ; c; 0 4
Il vient successivement : N ( 1 ) 5 N ( 0 ) # M 5 3 5 ; 2 495 ; 0 ; 0 ; c; 0 4 ; N ( 2 ) 5 N ( 1 ) # M 5 3 14,98 ; 4,99 ; 2 480,03 ; 0 ; 0 ; c; 0 4 , etc. pour les âges des équipements aux périodes successives. On remarque que la pre mière composante N0(k) de chaque vecteur N(k) donne la quantité à réapprovision ner en chaque début de période : initialement, 2 500 ; après une période, 5 ; après deux périodes : 14,98 ; etc. Bien entendu, les nombres non entiers qui apparaissent sur le tableau correspondent à un calcul théorique. Dans la pratique, on remplace un nombre d’équipements évidemment entier et les effectifs des différentes classes d’âge s’expriment également en nombres entiers (cf. tableau 6.3). La « courbe » de la figure 6.12 (pour rendre plus visible l’évolution, on a réuni les points par des segments de droite) est extrêmement intéressante. Elle montre que les quantités à approvisionner oscillent très largement autour de la valeur moyenne N 2 500 5 . 300 équipements par période. La poursuite du calcul montrerait que 8, 334 t ce n’est qu’à partir d’une lointaine période que l’on aurait une différence de moins de N 1 % entre réapprovisionnements calculés et le réapprovisionnement moyen . Cela t signifie que l’on a renouvelé, en moyenne, six à sept fois le matériel avant d’être par venu à l’équilibre ( 52/8,33 < 6,24 ) .
1. les vecteurs N(0), N(1), N(2), etc., sont égaux aux vecteurs de probabilité des états : P(0), P(1), P(2), multipliés par 2 500. 241
242 166,82
208,78 238,88
262,79
281,97
9
94,75
789,70 1,58 4,73 12,55 28,60 50,74 63,70 81,01 114,20 196,81 154,68 99,23
Tableau 6.3 DES LIGNES N(0) à N(20) ET DU RÉGIME PERMANENT N*
292,80
297,56
299,36
8
1390,32 2,78 8,33 22,10 50,35 89,34 1 12,15 142,62 2 389,96 346,49 272,32 174,70 89,27
7
1740,08 3,48 10,43 27,66 63,02 111,81 140,37 178,50 251,64 433,66 340,82 218,65 111,73 117,81
6
1990,94 3,98 11,93 31,65 72,10 127,93 160,60 204,23 287,92 496,17 389,96 250,17 127,84 134,79 171,86
5
2190,25 4,38 13,12 34,82 79,32 140,74 176,68 224,68 316,74 545,85 429,00 275,22 140,64 148,28 189,07 224,26
4
2 440,35 4,88 2 350,06 4,70 14,62 14,08 38,79 37,36 88,38 85,11 156,81 196,86 151,01 250,33 189,57 352,91 241,07 608,17 339,85 477,98 585,67 306,64 460,30 29,00 156,70 165,21 150,90 210,66 159,10 249,87 202,87 291,88 240,62 333,04 281,08
3
2480,03 4,96 14,86 39,42 89,82 159,36 200,06 254,40 358,64 618,06 485,76 311,63 159,25 167,90 214,08 253,93 296,63 338,45 381,77
2
2495 4,99 14,95 39,66 90,36 160,32 201,26 255,94 360,81 621,79 488,69 313,51 160,21 168,91 215,38 255,46 298,42 340,50 384,07 377,72
1
40,74
339,57 0,68 2,03 5,40 12,30 21,82 27,39 34,83 49,11 84,63 66,51
10
10,80
89,99 0,18 0,54 1,43 3,26 5,78 7,26 9,23 13,01 22,43
11
Pour la comparaison avec le régime stationnaire, calculons p *0, d’après : 1 5 p *0 1 0, 998 p *0 1 0, 998 3 0, 994 p *0 1 0, 998 c0, 994 3 0, 984p *0 1 c3 0, 333p *0, soit : p *0 5 0, 1198, d’où : 2 500 # p *0 5 300 et, en arrondissant approximativement à l’entier le plus proche : 297 293 282 263 239 209 167 95 41 11 2 500 # P* 5 [300 299
299,96
Régim. perm.
0
2500 5 14,98 39,74 90,54 160,64 201,67 256,45 361,53 623,04 489,67 314,14 160,53 169,25 215,81 255,97 299,02 341,18 384,84 378,47 329,66
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
3
3,60
29,97 0,06 0,18 0,48 1,09 1,93 2,42 3,07 4,33
12
1]
1,20
9,98 0,02 0,06 0,16 0,36 0,64 0,80 1,02
13
Chapitre 6 • Fiabilité des composants, sûreté. . .
6.4 Calcul des approvisionnements
Il faut en tirer la conclusion, très importante, que les phénomènes permanents sont en général de peu d’intérêt en matière de renouvellement des équipements. En effet, on n’aura pas encore atteint le régime permanent lorsque, frappé d’obsolescence, l’équipement considéré sera déjà à remplacer par un nouveau type d’équipement ! On peut donc, avec avantage, se laisser guider par ce calcul simple pour dresser les tableaux de commande du matériel à renouveler, période par période, quitte à insti tuer un certain stock de sécurité, pour éviter les conséquences d’aléas éventuels. Le gain, souvent considérable, qui résulte de commandes cadencées, selon la méthode ci-dessus, pour le réapprovisionnement des équipements, est calculé comme en matière de stockage.
© Dunod – Toute reproduction non autorisée est un délit.
Figure 6.12
La matrice M ci-dessus, étant stochastique, définit une chaîne de Markov finie (à 14 états). Le graphe associé (figure 6.11) est un graphe fini fortement connexe (car il comporte un circuit hamiltonien (0, 1, 2, c, 12, 13, 0)) : ainsi, la chaîne de Markov comporte-t-elle une seule classe d’états, donc tous récurrents. De plus, le graphe quand n S 1 ` comporte une boucle : l’arc (0, 0) ; ainsi cette classe est apériodique. La chaîne de Markov est donc fortement ergodique : le vecteur de probabilités des états P(n) tend vers une limite P*, indépendante de la distribution initiale P(0) quand n S 1 `: P*=[300, 299, 297, 293, 282, 263, 239, 209, 167, 95, 41, 11, 3, 1]. Rappelons qu’entre le vecteur des âges N(n) et P(n), on a la relation : 1 # N ( n ) ; ainsi le vecteur des âges admet-il une limite N * quand P(n) 5 2 500 n S ` : N* 5 2 500 # P*. Mais, dans le cas de ce calcul d’approvisionnement, cette limite est très longue à atteindre : répétons que souvent le type d’équipement étudié devient obsolète avant que cette limite soit atteinte ! Néanmoins, ce calcul permet de positionner l’asymptote de la courbe d’approvisonnement, correspondant à la quan 243
Chapitre 6 • Fiabilité des composants, sûreté. . .
tité d’équipements N *0 (première composante du vecteur N *) : N *0 5 2 500 p *0. On 2 500 1 peut montrer que p *0 5 5 1/8,334, pour retrouver N *0 5 . 300. t t
6.5 Un
autre compromis : l’entretien préventif
Il sera commode de considérer ici qu’une machine (ou un système) comporte un organe particulièrement fragile et d’étudier quelles sont les conséquences des déci sions contraires que l’on peut prendre au sujet du remplacement de cet organe : soit attendre sa défaillance et subir, de ce fait, une panne coûteuse ; soit envisager de le remplacer à une période θ (restant à déterminer), de manière à éviter, dans une cer taine mesure, une interruption intempestive du service. • Dans le premier cas, on paie : 1) le remplacement de cet organe au prix p ; 2) le coût de la panne, soit P. Si tr est la durée de vie moyenne de l’organe considéré, le coût moyen, par unité de temps, vaut : p1P
. t • Dans le second cas, la courbe de survie présente un saut à l’époque θ (fig. 6.13) et, si v(t) est la fonction continue de survie correspondante (fonction de fiabilité), les conséquences de la panne ne se feront sentir que si l’organe fragile est défaillant avant θ, c’est-à-dire avec la probabilité 1 2 v 1 2 . On a ainsi un coût moyen par unité de temps : C1 5
C2 ( ) 5
p 1 3 1 2 v ( ) 4 # P , t
tθ étant la durée de vie moyenne d’un organe dont la courbe de survie subit un saut à θ, soit : t 5 3 v ( t ) dt.
0
En effet, nous sommes dans le cas d’une loi de probabilité tronquée : t 5 3 t # f ( t ) # dt 1 # Pr( T . ) , 0
avec : Figure 6.13
f (t) 5
244
d v ( t ) et Pr ( T . ) 5 v ( ) dt
6.5 Un autre compromis : l’entretien préventif
Montrons que les deux expressions de t ci-dessous sont bien égales : 3 t # f ( t ) # dt 5 23 t # dv ( t ) 5 2 3 tv 4 0 1 3 v ( t ) # dt 5 2v ( ) 1 3 v ( t ) # dt ; 0 0 0 0
ainsi :
t5 3 t # f ( t ) # dt 1 # v ( ) 5 2 # v ( ) 1 3 v ( t ) # dt 1 # v ( ) 5 3 v ( t ) # dt ■ 0 0 0
Pour que l’entretien préventif soit avantageux, il faut qu’il existe au moins une époque θ telle que l’on ait : C2 1 2 , C1, c’est-à-dire : p 1 3 1 2 v ( ) 4P t
ou :
,
p1P t
p # t 1 P # t 2 P # v ( ) # t , ( p 1 P) # t ;
mais :
t 5 t 2 t avec : t 5 3 v ( t ) # dt. `
Il vient donc : 2P # v ( ) # t , 2 ( p 1 P ) # t ,
d’où :
p1P P
,
v1 2 # t t
,
soit encore :
© Dunod – Toute reproduction non autorisée est un délit.
C1 , P #
v1 2 t
.
Dans ces conditions, c’est-à-dire si : C1 , P #
v1 2
, l’époque la plus favorable t pour l’entretien préventif sera évidemment la valeur θ rendant C2(θ) minimal. Or, C2(θ) est généralement une fonction tout d’abord décroissante, puis croissante de θ (on écrit plus bas, en abrégé : v, au lieu de : v(θ)). Calculons
dC2 1 2 d
; on a :
245
Chapitre 6 • Fiabilité des composants, sûreté. . .
2t # P #
dC2 1 2
5
d
Sachant que :
ou encore :
dv dt 2 3p 1 1 1 2 v 2 P 4 # d d t22
dt 5 v ( ) ; il en résulte que C2(θ) est minimal pour : d dv 2t # P # 2 3p 1 1 1 2 v 2 # P 4 # v 5 0 d 2t #
p1P vr . (6.1) 1v5 v P
Remarquons au passage que pour une fiabilité exponentielle : t 5 3 e2lt # dt 5 0
1 2 e2l
et : vr ( ) 5 2le2l .
L’équation (6.1) donne alors : 2
(1 2 e2l ) ( 2le2l ) l
#
e2l p1P
1 e2l 5
p1P , P
, P ce qui supposerait que le prix de l’équipement p soit nul ! En fait, pratiquer de l’entretien (remplacement) préventif avec un matériel de fiabilité exponentielle est absurde : le taux de panne l étant constant, cette démarche reviendrait à mettre à la poubelle des équipements neufs ! En effet, un tel équipement n’a pas d’« âge » (au sens habituel du terme). En pratique, l est constant sur une très longue période, mais la phase d’usure finit par apparaître : cf. Fig 6.5. Appliquons maintenant ces résultats à un exemple dans lequel la loi de survie serait conforme au tableau mais oublions qu’il s’agissait de pneumatiques, les consé quences économiques de la panne étant, dans ce dernier cas, trop faibles pour que le problème soit intéressant. Considérons, au contraire, et successivement, que : l) p 5 0,1 ; P 5 1 ; 2) p 5 1 ; P 5 1. Le tableau ci-dessous permet de tirer des conclusions intéressantes. soit après simplifications :
246
15
6.5 Un autre compromis : l’entretien préventif
υ() 1υ() υ / t
(1)
t /υ()
t
υ() /
t υ υ() υ()
t
C2() Cas 1 Cas 2
1 0, 998 0, 002 0, 002 0, 999
1, 001 6, 835 0, 146
1
0,102 1, 003
2 0, 992 0, 008 0, 006 1, 994
2, 010 5, 840 0,170
1, 004
0, 054 0, 506
3 0, 976 0, 024 0, 016 2,978
3, 051 4, 856 0, 201
1, 025
0, 042 0, 344
4 0, 940 0, 060 0, 036 3,936
4,187 3, 898 0, 241
1, 091
0, 041 0, 269
5 0, 876 0,124 0, 064 4, 844 5, 530 2, 990 0, 293 6 0, 796 0, 204 0, 080 5, 680 7,136 2,154 0, 370
1, 230 1, 367
0, 046 0, 232 0, 054 0, 212
7 0, 696 0, 304 0,100 6, 426 9, 233 1,408 0, 494 8 0, 556 0, 444 0,140 7, 052 12, 683 0, 782 0, 711
1, 619 2, 332
0,063 0, 203 0, 077 0, 205
9 0, 316 0, 684 0, 240 7, 488
0, 346 0, 913
0,105 0, 225
10 0,136 0, 864 0,180 7, 714
0, 120 1, 133
0, 125 0, 242
11 0, 036 0, 964 0,100 7, 800
0, 034 1, 059
0,136 0, 252
12 0, 012 0, 988 0, 024 7, 824
0, 010 1, 200
0,139 0, 254
13 0, 004 0, 996 0, 008 7,832
0,002 2
0,140 0, 255
14
0
1
0,004 7,834
0
0,140 0,255
t
C1 C1
Pour calculer t , on trace la courbe v(θ) en joignant les points (θ, v(θ)), où θ = 0, 1, c, 14, par des segments de droite : la « courbe » v(θ) est alors une ligne brisée. Puis on évalue l’aire comprise entre la courbe et l’axe des temps entre t = 0 et t = θ : t est alors la somme des aires de θ trapèzes. En outre, comme v(t) = 0 pour t > 14, on a : t14 5 tr.
© Dunod – Toute reproduction non autorisée est un délit.
1) Dans le premier cas, on a pour tout θ : C1 . P #
C1 5
1, 1
7, 834
5 0, 140 4 et P 5 1. Ici C2 ( ) 5
v () t
. En effet
0, 1 1 1 2 v ( ) t
.
247
Chapitre 6 • Fiabilité des composants, sûreté. . .
Le minimum de C2 ( ) a lieu pour θ 5 4 et l’on constate que l’on aura : p1P t Dv # 5 1,1 pour une valeur de θ très légèrement supé 1 v ( ) 5 P v ( ) D rieure à θ 5 4.
2
Il est très intéressant de pratiquer l’entretien préventif et d’adopter la date θ 5 4 ; C1 2 C2 le gain relatif est de 70 % ; C1 v ( ) 2) dans le second cas on a : C1 5 0, 255 ; on n’a donc C1 , qu’à partir de t θ 5 5 ; le minimum de C2(θ) a lieu entre l’époque 7 et 8 ; pour θ 5 7,5 on peut p1P t Dv 1 v < 1, 950, c’est-à-dire pratiquement : calculer : 2 v # p 5 2. D Il est intéressant de pratiquer l’entretien préventif, en adoptant une valeur < 7, 5 ; mais le gain relatif n’est alors que de 20 %. N.B. La comparaison des diverses courbes de survie (fiabilité) est facilitée par l’adoption d’une variable auxiliaire : ,n 1 t/a 2 x5 m ,
m étant un paramètre de dispersion. On constate, en effet, que la variable x est dis tribuée selon une loi de Laplace-Gauss. Ce passage par une loi lognormale1 est très fructueux, car les pièces de fatigue sont alors caractérisées par une valeur de para mètre m de l’ordre de 0,9, tandis que les pièces d’usure le sont par des valeurs com prises entre 0,2 et 0,6. Si v(t) est la fonction de survie, on peut calculer la « médiane », soit la valeur de t pour laquelle v(t) 5 0,5 ; appelons a cette valeur. Considérons alors la variable auxiliaire : ,n ( t/a ) ,n t 2 ,n a ,n t 2 m 5 5 x5 m m m , où m 5 ,n a. On montre que, pour beaucoup de pièces, la dérivée de la loi de survie peut s ’écrire : 1
(,n t 2 m)2 2
, m"2pt puis dt 5 m # emx 1 m # dx, la loi de survie (fiabilité) : 2
d’où, avec : t 5 e mx 1 m
dv ( t ) dt
5
e
2m2
1. Kelly a fondé l’étude de l’entretien préventif sur l’utilisation d’une représentation lognormale des courbes de survie. 248
6.5 Un autre compromis : l’entretien préventif
v (x ) 5 1 2
1
3 e x
2
x2 2
dx 5 1 2 Pr ( x ) . "2p 2` On reconnaît dans l’intégrale la fonction de répartition de la loi normale centrée réduite. Représentons (figure 6.14) un certain nombre de courbes de survie, en fonction t de a ; elles passent toutes, dans ces conditions, par le point de coordonnées : t a 5 1 ; v 5 0, 5. On remarque, de plus, que ces courbes vont de la loi rectangulaire pour m 5 0 à la loi exponentielle décroissante pour m 5 0, 84, c’est-à-dire balaient le champ habituel des courbes de survie. Il est aisé de calculer : m2
m2
t 5 e m 1 2 , soit: t 5 e m 1 2 Pr ( t 1 m) 1 em t 1 m 3 1 2 Pr ( t) 4
© Dunod – Toute reproduction non autorisée est un délit.
où :
t 5
,n 2 m . m
Figure 6.14
249
Chapitre 6 • Fiabilité des composants, sûreté. . .
On obtient alors : C2 C1
5
p 1 3 1 2 v( ) 4P t
# t
p1P
5
( p / P ) 1 Pr ( t) (p / P) 1 1
#
1 m mat 2 b 2
Pr ( t 2 m ) 1 e
# 3 1 2 Pr ( t) 4
.
Il est intéressant de constater que les pièces d’usure, pour lesquelles le coefficient m est compris entre 0,3 et 0,6, donnent des minima bien marqués du rapport C2/C1, ceci d’autant mieux que p/P est petit (nous l’avons constaté sur l’exemple numérique précédent, où l’on pourrait prendre m < 0,4, tout au moins pour la partie supérieure de la courbe de survie). Il est donc, en général, avantageux de pratiquer l’entretien préventif : une pièce d’usure (courroie, garniture de frein, chaîne, etc.) est, le plus souvent, de peu de prix devant le coût d’une panne. Au contraire, les pièces de fatigue (composants électroniques, axes, roulements, fleurets, vilebrequins, etc.), pour lesquelles le coefficient m est voisin de 0,9, ne donnent de minima significatifs du rapport C2/C1 que lorsque p/P est vraiment faible, de l’ordre de 0,05, par exemple. Or, les pièces de fatigue sont généralement coû teuses et ainsi le rapport p/P dépasse largement la limite indiquée ci-dessus, si bien que l’on n’a pas souvent intérêt à pratiquer l’entretien préventif. D’ailleurs, puisque les pièces de fatigue survivent selon une courbe qui s’appa rente à l’exponentielle décroissante, il est à peu près évident qu’on n’a pas d’avan tage à remplacer une vieille pièce par une pièce neuve de fragilité égale, comme nous l’avons déjà souligné plus haut, ceci tant que la phase d’usure n’est pas atteinte (Fig. 6.5).
6.6 Fiabilité
des systèmes non réparables
6.6.1 Fiabilité d’un système formé de composants montés en série
Figure 6.15
Nous supposerons l’indépendance de l’occurrence des pannes des composants C1, C2, c, Cn. Soient alors les variables aléatoires T1, T2, c, Tn : instants d’occur rence respectifs de ces pannes et TS : durée de vie du système-série (qui est en panne dès que l’un de ses composants est en panne).
250
6.6 Fiabilité des systèmes non réparables
La fiabilité de ce système est : VS 1 t 2 5 P 3 TS . t 4 , on a : V S ( t ) 5 P 3 T 1 . t et T 2 . t et cet T n . t 4 ; puisque T 1, T 2,c, T n sont indépendantes : V s (t) 5 P3 T1 . t 4 ? P3 T2 . t 4 ? c ? P3 Tn . t 4 5 v1 (t) ? v2 (t) ? c ? vn(t)
Monter des composants en série fragilise un système : pour fixer les idées, sup posons que l’on ait n 5 6 composants montés en série, la fiabilité au bout de 1 000 heures de chacun valant : vk(1 000) 5 0,9.
La fiabilité du système série vaut alors : VS 5 (1 000) 5 0,96, soit seulement 0,53 : même si la fiabilité individuelle de chaque composant peut être jugée cor recte, la fiabilité du système-série sera souvent inacceptable, car trop faible. Notons que, pour des fiabilités « exponentielles » : vi ( t ) 5 e 2 lit, on
, soit : l S 5 a l j : les taux de panne, dans ce cas, s’ajoutent. n
a : VS(t) 5 e
2(Σli)t
i 51
Le MTTF vaut : tS 5 1/l S ; ainsi, pour n composants de même taux de panne : li, 5 1 l, il vient tS 5 nl ; la durée de vie moyenne du système-série est alors n fois plus faible que celle d’un de ses composants...
6.6.2 Fiabilité d’un système monté en parallèle Avec les mêmes notations que ci-dessus, la fiabilité Vp(t) de ce système parallèle est : Vp 1 t 2 5 P 3 Tp . t 4 .
© Dunod – Toute reproduction non autorisée est un délit.
Ce système est en panne seulement lorsque les n composants sont en panne. D’où :
Figure 6.16
1 2 Vp ( t ) 5 P 3 Tp , t 4 5 P 3 T1 , t et T2 , t et cet Tn , t 4 5 P 3 T1 , t 4 ? P 3 T2 , t 4 ? c ? P 3 T , t 4 n
5 3 1 2 v1 ( t ) 4 ? 3 1 2 v2 ( t ) 4 ? c ? 3 1 2 vn ( t ) 4
En particulier, si n 5 2, il vient : Vp 1 t 2 5 v1 1 t 2 1 v2 1 t 2 2 v1 1 t 2 # v2 1 t 2 . Monter des composants en parallèle permet d’accroître la fiabilité d’un système ; ainsi avec n 5 3 composants et (comme ci-dessus) vk(1 000) 5 0,9, il vient : 1 2 Vp 1 1 000 2 5 3 1 2 0, 9 4 3 soit Vp 1 1 000 2 5 0, 999 : bien meilleur que 0,9 !
Doubler, tripler des composant est largement utilisé dans des systèmes embar qués, satellites, navettes spatiales, etc.
251
Chapitre 6 • Fiabilité des composants, sûreté. . .
Notons que pour des fiabilités exponentielles vi(t) 5 e2lt et pour n 5 3, 1 2 Vp 1 t 2 5 3 1 2 e2lt 4 3 d’où V p ( t ) 5 3e2lt 2 3e22lt 1 e23lt : la fiabilité du 3 3 11 1 5 l, système ne suit plus une loi exponentielle ; en outre, tp 5 2 1 6 l 2l 3l soit près du double de la durée de vie (1/l) d’un seul composant.
6.6.3 Fiabilité de montages série-parallèle La fiabilité V(t) s’obtient en combinant les résultats des deux paragraphes précé dents. Ainsi pour le système ci-dessous :
Figure 6.17
on peut remplacer les deux composants C1 et C2 par un composant unique C1,2 de fiabilité v 1 ( t ) # v 2 ( t ) . On a alors C1, 2 et C3 en parallèle : la fiabilité de ce sous-système parallèle est : ( v1 # v2 ) 1 v3 2 ( v1v2 ) # v3 et finalement ce sous-système étant en série avec C4 , il vient : V 1 t 2 5 3 v1 1 t 2 # v2 1 t 2 1 v3 1 t 2 2 v1 1 t 2 # v2 1 t 2 # v3 1 t 2 4 # v4 1 t 2 . Pour des fiabilités exponentielles, toutes de même taux l, on aurait : t5
7 1 1 1 . 5 1 2 3l 2l 4l 12l
6.6.4 Cas des systèmes quelconques On a intérêt à utiliser, pour calculer la fiabilité V(t) du système à employer, le théorème des « probabilités totales ». Par exemple, pour un système en pont de Wheatstone : Ce système fonctionne tant qu’il existe une chaîne de composants entre e et s, sans aucun composant en panne. Le théorème des probabilités totales s’écrit ici : Figure 6.18
V ( t ) 5 P 3 T . t 4 5 P 3 T . t k T5 > t 4 ? P 3 T5 > t 4 1 P 3 T . t k T5 , t 4 ? P 3 T5 , t 4 . (6.1) 252
6.6 Fiabilité des systèmes non réparables
Pour le premier terme de cette somme (6.1), on sait que la panne de T5 surviendra après t : pour évaluer P 3 T . t k T5 > t 4 , on peut alors considérer C5 comme un courtcircuit ; le système devient alors :
Figure 6.19
Figure 6.20
qui est un sous-système série/parallèle de fiabilité : 1 v1 1 v3 2 v1v3 2 # 1 v2 1 v4 2 v2v4 2 . Pour le second terme de la somme (6.1), on sait que la panne surviendra avant t : pour évaluer P 3 T . t k T5 , t 4 , on peut considérer alors que C5 est en panne ouverte : tout se passe comme si C5 avait été supprimé : On obtient un autre sous-système sérieparallèle de fiabilité :
Figure 6.21
v1v2 1 v3v4 2 v1v2v3v4. Finalement, en remarquant que : P 3 T5 > t 4 5 v5 1 t 2 et P 3 T5 , t 4 5 1 2 v5 1 t 2 ,
on obtient : V 5 3 1 v1 1 v3 2 v1v3 2 # 1 v2 1 v4 2 v2v4 2 4 # v5 1 3 v1v2 1 v3v4 2 v1v2v3v4 4 # 1 1 2 v5 2 Si vi(t) 5 v(t) pour tout i, on a : V 1 t 2 5 2v5 1 t 2 2 5v4 1 t 2 1 2v3 1 t 2 1 2v2 1 t 2 .
© Dunod – Toute reproduction non autorisée est un délit.
Pour vi(t) 5 e2lt, on obtient alors t 5
49 5 2 2 2 5 2 1 1 . 60l 5l 4l 3l 2l
L’approche utilisée ici pour évaluer V(t) est plus efficace que celle consistant à énumérer toutes les chaînes de composants de e à s, puis à appliquer la formule du crible (que nous donnons ici à l’ordre 4) : P [A1 ou A2 ou A3 ou A4] 5 P 3 A1 4 1 P 3 A2 4 1 P 3 A3 4 1 P 3 A4 4 2 P 3 A1 et A2 4 2 P 3 A1 et A3 4 2 P 3 A1 et A4 4 2 P 3 A 2 et A 3 4 2 P 3 A 2 et A 4 4 2 P 3 A 3 et A 4 4 1 P 3 A 1 et A 2 et A 3 4 1 P 3 A 1 et A 2 et A 4 4 1 P 3 A1 et A3 et A4 4 1 P 3 A2 et A3 et A4 4 2 P 3 A1 et A2 et A3 et A4 4 .
Pour l’exemple ci-dessus, on trouve les quatre chaînes : A1 5 [C1, C2] ; A2 5 [C1, C5,C4] ; A3 5 [C3, C5, C2] ; A4 5 [C3, C4]. P [A1] désigne ici la fiabilité de C1 et C2 en série, soit P 3 A1 4 5 v1 # v2. Ainsi, on aura : P 3 A 2 et A 4 4 5 v 1 # v 3 # v 4 # v 5 (et non pas v1v5v4 # v3v4 , on ne doit pas répéter v 4!). 253
Chapitre 6 • Fiabilité des composants, sûreté. . .
De même, P [A1 et A2 et A3 et A4] 5 v1 # v2 # v3 # v4 # v5. Le lecteur vérifiera (au moins dans le cas où v1 5 v) que l’on retrouve le résultat précédent.
6.7 Sûreté de fonctionnement réparables
des systèmes
Pour des systèmes de fonctionnement constant (sauf, bien sûr en période de panne), on définit plusieurs grandeurs dépendant, d’une part, de la fiabilité individuelle des composants, mais aussi de la politique de maintenance (réparations) choisie. Ces systèmes n’ont, en général, pas de panne « cataleptique » (ou binaire) comme une lampe qui peut claquer, mais ont des modes de fonctionnement dégradé, correspon dant à des pannes partielles. Notre exposé reposera sur l’exemple simple, ci-dessous, d’un système parallèle. Nous supposerons que v1(t) 5 v2(t) 5 e2lt. Lors qu’une panne de composant survient, un réparateur intervient ; la probabilité pour que la durée (aléatoire) d’une réparation dépasse t est : e2mt. Il n’y a qu’un seul réparateur pour ce système.
Figure 6.22
6.7.1 Modélisation markovienne
Le système ci-dessus a trois états : – E0 : les deux composants fonctionnent (donc le taux global de panne est 2 # l) ; – E1 : un seul composant fonctionne, l’autre est en cours de réparation ; – E2 : les deux composants sont en panne : l’un est en cours de réparation, l’autre attend d’être réparé. Voici alors le graphe des transitions entre t et t 1 dt :
Figure 6.23
Le processus de Markov, qui modélise le système, a un graphe fini, fortement connexe : il est fortement ergodique, c’est-à-dire que les probabilités des états 254
6.7 Sûreté de fonctionnement des systèmes réparables
tendent vers une limite quand t S 1 ` : P* 5 3 p *0, p *1, p *2 4 positive, indépendante de la distribution initiale P(0).
6.7.2 Disponibilité asymptotique D*
On définit la « disponibilité » asymptotique D* de ce système, comme la probabilité pour, qu’en régime permanent, le système remplisse, au moins, une fonction mini male spécifiée à l’avance. Ici, on demandera qu’au moins l’un des deux composants fonctionne. On a alors : D* 5 a p *i , où FC est l’ensemble des états pour lesquels EiPFC
cette fonction minimale est assurée. Il convient alors, pour évaluer D*, de calculer les probabilités des états en régime 0 5 P* # A S 1 2 permanent t ` : on résout le système linéaire b , où A désigne le 1 5 a p *i générateur infinitésimal du processus de Markov. Ici, on a : 0 0 22l A 5 1≥ m 2
1 2l 2(l 1 m )
0
m
2 0 l ¥.
2m
On peut aussi appliquer le théorème des coupes (pour lequel il suffit de considérer le graphe simplifié): – Pour C0 5 {E0} :
2l # p *0 5 m # p *1.
C1
C0
– Pour C1 5 {E0, E1} : l # p *1 5 m # p *2,
© Dunod – Toute reproduction non autorisée est un délit.
et : p *0 1 p *1 1 p *2 5 1. Figure 6.24
1 1 2l/m
. On vérifie que D* , 1 et que, si l / m est 1 1 2l/m 1 2l 2 /m 2 petit, c’est-à-dire que le taux de réparation est très supérieur au taux de panne, D* est voisin de 1 ; on aurait, pour l 5 0, D* 5 1 : un système sans panne est toujours disponible ! On obtient D* 5
On pourrait aussi chercher la disponibilité à l’instant t : D(t), connaissant la dis tribution initiale des probabilités des états, mais ce calcul de régime transitoire est plus délicat. 255
Chapitre 6 • Fiabilité des composants, sûreté. . .
6.7.3 MUT, MDT et MTBF Les grandeurs ci-dessous sont définies en régime permanent. Ci-dessous nous conti nuons à parler de “durées moyennes” alors que, stricto sensu, il s’agit d’espérances mathématiques. Le MUT (Mean Up Time) est la durée moyenne d’une période de fonctionnement correct du système (après réparation). Le MDT (Mean Down Time) est la durée moyenne d’une période d’indisponibi lité. Elle inclut les durées de détection, d’intervention et de réparation. Ainsi, le MTBF (Mean Time Between Failure) : moyenne du temps entre pannes, apparaît-il comme la somme du MUT et du MDT. Remarquons que la disponibilité asymptotique D* vaut alors : MUT MUT 5 . MDT 1 MUT MTBF
D* 5
Figure 6.25
On peut aisément calculer les quantités dans le cas d’une modélisation marko vienne. Rappelons la formule des temps (cf. chapitre 5) :
L’ensemble des états e étant partitionné en F et F, le temps moyen de séjour parmi les états de F, entre deux passages par ceux de F, vaut : TF 5 p *F // wF S F, où : p *F 5 a p *i et wF S F 5 a a p *i l ij. EiPF
EiPF EjPF
Pour évaluer le MUT, on prendra pour F le sous-ensemble d’états de fonction nement correct : dans ce cas, on aura p *F 5 D* ; pour le MDT, on prendra F. Ainsi dans l’exemple : F 5 5 E0, E1 6 ; F 5 5 E2 6 ; wF S F 5 l # p *1 5 wF S F 5 m # p *2 MUT 5
256
p *0 1 p *1 l # p *1
5
1 m / 2l 1 1 2 # p *1 l # p *1
5
2l 1 m 2l 2
,
6.7 Sûreté de fonctionnement des systèmes réparables
p *2
p *2
2l 1 m 1 1 1m 5 m ; MTBF 5 2l 2 l # p *1 m # p *2 ( 2 l 1 m ) /2l 2 MUT 2 l m 1 m2 5 5 On retrouve : D* 5 . MTBF ( 2 l m 1 m 2 1 2 l 2 ) /2 l 2m 2 l m 1 m 2 1 2l 2 En divisant le numérateur et le dénominateur par m2, on retrouve bien : 1 1 (2 l / m ) . D* 5 1 1 ( 2 l / m ) 1 ( 2 l 2 / m2 ) Remarquons enfin que le fonctionnement d’un système (pour lequel les durées de réparations sont petites par rapport aux temps entre défaillances) est modélisable par un processus de Markov... à deux états : MDT 5
5
Figure 6.26
où E0 désigne le macro-état de fonctionnement correct et E1, celui de défaillance. On 1 1 a les taux équivalents : l éq 5 et m éq 5 . MUT MDT MUT Dans ce cas, on a simplement : D* 5 p *0 5 car d’après le théo MUT 1 MDT rème des coupes l éq # p *0 5 m éq # p *1 et, en outre, p *0 1 p *1 5 1, conduisent à : m éq MUT 1 / MDT . , c’est-à-dire : p *0 5 5 l éq 1 m éq MUT 1 MDT 1 / MUT 1 1 / MDT
© Dunod – Toute reproduction non autorisée est un délit.
6.7.4 Fiabilité des systèmes réparables On définit dans ce cas la fiabilité V(t) comme la probabilité que la durée de fonc tionnement T en mode correct du système (à partir de t 5 0) dépasse la durée t : V 1 t 2 5 P 3 T . t 4 . Pour un système modélisé par un processus de Markov, on rend alors absorbant l’état (ou les états) correspondant à des modes de fonctionnement dégradé inaccep tables. Ainsi, dans notre exemple :
Figure 6.27
257
Chapitre 6 • Fiabilité des composants, sûreté. . .
L’arc (E2, E1) a été supprimé : l’état de panne E2 a été rendu absorbant (il com porte une boucle valuée par une probabilité de transition égale à 1). Sachant qu’à t 5 0 aucune panne n’est survenue (le système est dans l’état E0), le problème revient à calculer p0(t) et p1(t) (donc en régime transitoire), puisque : V1t2 5 p01t2 1 p1 1t2. Soit A le générateur infinitésimal du processus de Markov. On résout Pr ( t ) 5 P ( t ) # A, de préférence à l’aide de la transformée de Carson-Laplace(1) : ,( ) V s 5 s3 V ( t ) e2st dt). 0 `
p 0r ( t ) 5 22l # p 0 ( t ) 1 m # p 1 ( t ) ; p 1r ( t ) 5 2 ( l 1 m ) # p 1 ( t ) 1 2 l # p 0 ( t ) avec, comme condition initiale : p0(0) 5 1. , On trouve V ( s ) 5 est :
s # ( s 1 3l 1 m )
s2 1 s ( 3l 1 m ) 1 2l
. Or, l’original de 2
1s 1 a2 1s 1 b2
a 2 c 2at b 2 c 2bt 1 3 ae2bt 2 be2a t 4 , où : e 2 e . D’où : V 1 t 2 5 a2b a2b "D
D 5 l 2 1 6lm 1 m 2 ; a 5
s1s 1 c2
3 l 1 m 1 "D 3 l 1 m 2 "D ; b5 . 2 2
Notons que, pour m 5 0, (c’est-à-dire en l’absence de réparation), on retrouve : V ( t ) 5 2e2lt 2 e22lt
(alors "D 5 l, a 5 2l, b 5 l), expression que l’on avait aisément obtenue au paragraphe consacré aux systèmes parallèles non réparables. Le lecteur en a déjà été averti : le calcul formel d’un régime transitoire est souvent lourd, voire impraticable (même en disposant d’un logiciel du type Mathematica). Cependant, nous allons voir que le calcul du MTFF (Mean Time To First Failure) : temps moyen jusqu’à la première panne paralysante, peut se pratiquer plus aisément. Certes, si l’on a déjà évalué V(t) comme ci-dessus, on a : MTFF 5 3 V ( t ) # dt ; 0 ` 1 2gt # sachant que : 3 e dt 5 g ( g . 0 ) , il vient : 0 `
MTFF 5
( 3 l 1 m ) # "D ( a 1 b )( a 2 b ) 3 l 1 m. a b 2 d 5 5 5 2l 2 "D b a "D # a b "D # 2l 2 1
c
1. (1) Si le lecteur ne connaît pas la transformée de Carson-Laplace, il peut sauter ce développement et passer au paragraphe ci-dessous (commençant par “cependant, nous...”). 258
6.8 Stratégie de remplacement
,( ) V s ( ) (En fait, en utilisant un théorème de calcul opérationnel : 3 V t dt 5 lim s , 0 sS0 s # ( s 1 3l 1 m ) 3l 1 m 1 ) on obtient plus rapidement : MTFF 5 lim s # 2 5 2 sSo s 1 s ( 3l 1 m ) 1 2l 2l 2 `
• Mais le calcul direct du MTFF est possible sans avoir à évaluer la fiabilité V(t) (ni même la transformée de Carson-Laplace , V ( s )) , si on utilise l’absorption dans les processus de Markov. Considérons les états transitoires Ε0, Ε1, c, Ek21 (les autres états étant absorbants) ; notons tj le temps moyen passé dans l’état transi toire Ej, avant absorption ; extrayons du générateur infinitésimal A la sous-matrice carrée Atr de dimension k 3 k relative aux états transitoires. Enfin, notons Ttr le vecteur-ligne : 3 t0, t1, c, tk 2 1 4 et Ptr ( 0 ) 5 3 p 0 ( 0 ) , p 1 ( 0 ) , c, p k 2 1 ( 0 ) 4 . On montre que l’on a la relation : Ttr 5 Ptr ( 0 ) # 3 Atr 4 21. En pratique, on résout le système linéaire de k équations à k inconnues : Ttr # Atr 5 2Ptr ( 0 ) .
On calcule alors : MTFF 5 a ti k21
k50
Ainsi pour l’exemple : P ( 0 ) 5 3 1, 0 4 , Atr 5 c
22l
2l
m
2(l 1 m )
d , Ttr 5 3 t0, t1 4 .
D’où le système : 22 l # t0 1 m # t1 5 21 et 2 l # t0 2 ( l 1 m ) # t1 5 0, qui a pour solution : 1 et t1 5 . l 2l Finalement on retrouve le résultat obtenu plus haut : t0 5
l1m 2
© Dunod – Toute reproduction non autorisée est un délit.
MTFF 5 t0 1 t1 5
6.8 Stratégie
3l 1m 2l 2
.
de remplacement
Il est conseillé de relire d’abord le sous-chapitre 5.10. Considérons un équipement qui peut se trouver dans quatre états. S’il devient défaillant au cours d’une période, il est remplacé en fin de période. S’il se trouve, en début de période, dans l’état 0, il a “deux chances sur dix” d’être défaillant en cours de période et, par différence, “huit chances sur dix” de survivre. Dans l’état 1, en début de période, la probabilité pour qu’il soit défaillant au cours de la période est 0,5 ; la probabilité de survie, 0,5. Dans l’état 2, en début de période, les probabili tés respectives de défaillance et de survie sont 0,7 et 0,3. Enfin, si l’équipement se trouve dans l’état 3 en début de période, il sera sûrement défaillant avant la fin de la période et sera remplacé en fin de période. 259
Chapitre 6 • Fiabilité des composants, sûreté. . .
Étudions la stratégie de remplacement des équipements de ce type, sachant que le prix de l’équipement est de 175 unités monétaires, le coût de la panne est 300 u.m., les coûts de l’entretien 40, 60, 100 et 160 u.m., respectivement durant les pre mière, deuxième, troisième et dernière périodes de vie. Ces coûts sont dus en début de période. La figure 6.28 va nous servir pour traiter ce problème en utilisant la programma tion dynamique, car il s’agit évidemment d’un processus DH : Décision-Hasard Envisageons d’abord la phase N. Si l’équipement se trouve initialement dans l’état E0N 2 1, le gestionnaire n’a pas de véritable décision à prendre, il se retrouve en DN0 , où l’espérance mathématique des coûts n’est autre que : d’ou : z*N 0 5 135.
0, 2 3 5151 1 0, 8 3 40 5 135
Figure 6.28 Pour ne pas surcharger, les probabilités de transition ont été indiquées à la phase N 2 1, les coûts à la phase N.
Si l’équipement se trouve en E1N 2 1, le décideur a le choix entre DN0 et DN1 : soit rem placer l’équipement par un neuf ( DN0 ) , soit de le conserver pour la phase Ν ( DN1 ) . Dans le premier cas, cela coûte, en moyenne : 175 1 ( 0, 2 3 515 ) 1 ( 0, 8 3 40 ) 5 310, puisque DN0 entraîne le changement de matériel au coût de 175 ; dans le second cas : 0 1 ( 0, 5 3 535 ) 1 ( 0, 5 3 60 ) 5 297, 5.
1. Le coût 515 est la somme du prix de l’équipement (175), du coût de la panne (300) et du coût de l’entretien en première période (40). 260
6.8 Stratégie de remplacement
On voit que cette deuxième solution est préférable, d’où : z*N 1 5 297, 5. Cela signi fie que pour la phase Ν il ne faut pas changer le matériel s’il trouve dans l’état 1. *N On calcule de même z*N 2 5 z3 5 310, ce qui signifie qu’à la phase N, il faut rem placer le matériel s’il a déjà atteint l’âge 2 ou l’âge 3. Passons maintenant à la phase N 2 1. En modifiant légèrement la formule de récurrence (du § 2, ch. 5, puisqu’il n’y a ici que des coûts), on obtient : 21 z*N 5 min b cij 1 a pjk ag jk 1 z*N i k br DN 1 j
2
k
où : cij 5 175 si j 2 i et 5 0 si i 5 j ; g jk 5 515, 535, 575 et 635, si j 5 0, 1, 2, 3 et si k 5 0 ; g jk 5 40, 60, 100, 160, si k 5 j 1 1, j , 3 ; les pjk sont les probabilités de transition. On a : 21 *N # 1) z*N 5 c00 1 p00 # ( g 00 1 z*N 0 0 ) 1 p01 ( g 01 1 z1 ) 5 0 1 0, 2 3 ( 515 1 135 ) 1 0, 8 3 ( 40 1 297, 50 ) 5 400 ; 21 5 2) z*N 1
*N # min e cc10 1 p00 # ag 00 1 z*N 0 b 1 p01 ag 01 1 z1 b d ;
D0N 2 1 # D1N 2 1
*N # cc11 1 p10 # a g 10 1 z*N 0 b 1 p12 a g 12 1 z2 b d f
5 min 5 3 175 1 0, 2 3 ( 515 1 135 ) 1 0, 8 3 ( 40 1 297, 5 ) 4 ; 3 0 1 0, 5 3 ( 535 1 135 ) 1 0, 5 3 ( 60 1 310 ) 46 5 min ( 575 ; 520 ) 5 520 ;
ce résultat signifie qu’à la phase N 2 1, il ne faut pas remplacer un matériel qui est dans l’état 1 ;
© Dunod – Toute reproduction non autorisée est un délit.
21 3) z*N 5 min 5 3 575 4 ; 3 0 1 0, 7 ( 575 1 135 ) 1 0, 3 ( 100 1 310 ) 46 2 5 min ( 575, 620 ) 5 575 ;
cela indique que tout matériel dans l’état 2, au début de la phase N 2 1, doit être remplacé ; 21 4) z*N 5 min ( 575, 770 ) 5 575 ; 3 d’où l’on conclut qu’il faut aussi remplacer, au début de la phase N 2 1, tout matériel dans l’état 3. En remontant dans le temps, on peut essayer de contrôler si la stratégie ainsi définie est « permanente » (valable pour toutes les périodes) ou seulement adaptée à certaines périodes (début, fin), etc. Comme on l’a dit plus haut, la méthode de Howard permet de calculer la stratégie optimale sans calcul inutile, mais elle sort du cadre de cet ouvrage. 261
Chapitre 6 • Fiabilité des composants, sûreté. . .
Exercices
*6.1 Fiabilité et remplacement Soit un matériel de fiabilité v ( t ) 5 P 3 T . t 4 , où v ( t ) 5 ( 1 1 at ) e2at. 1. Calculer la densité de probabilité associée à l’instant de la panne, soit i(t), puis le MTTF t de ce matériel. Évaluer le taux d’avarie l(t). 2. Dès que ce matériel tombe en panne, on le remplace sans délai par un matériel neuf identique ; déterminer la probabilité pm(t) de consommer m matériels entre 0 et t. Justifier l’expression obtenue pour pm(t), en se fon dant sur un processus de Poisson de taux a.
**6.2 Fiabilité d’un montage en pont double
Calculer la fiabilité V(t) de ce pont double connaissant les fiabilités des composants : vA(t), vB(t), c, vH(t). Indication : on aura intérêt à appliquer la formule des probabilités totales : V ( t ) 5 P 3 T . t 4 5 P 3 T . T k TA . t 4 ? P 3 TA . T 4 1 P 3 T . t k T A < t 4 ? P 3 TA < t 4 où TA (resp. T ) est la variable aléatoire « durée de vie » du composant A (resp. « durée de vie » du montage en pont double). Pour évaluer le premier terme de cette somme, on pourra remplacer A par un court-circuit ; pour le second, on pourra supprimer A. NB. Poursuivre le calcul seulement dans le cas où vA(t) 5 vB(t) 5 c 5 vH(t) 5 v(t).
**6.3 Durée de vie résiduelle d’un matériel Soit un matériel de fiabilité v ( t ) 5 P 3 X . t 4 où X désigne la variable aléatoire « durée de vie du matériel ». On note r la durée de vie résiduelle moyenne, sachant que ce matériel a déjà atteint l’âge θ : r 5 E 3 X 2 k X . 4 . 262
Exercices
1. Montrer i ( t ) # dt 5 P 3 t , X < t 1 dt k X . 4 est égal à :
2vr ( t ) # dt / v ( ) , puis que : r 5 3 t # i ( t ) # dt 2 5 3 v ( t ) # dt / v ( ) . `
`
2. Dans le cas d’une fiabilité exponentielle v(t) 5 e2lt, évaluer r et com menter le résultat obtenu.
*6.4 Calcul de réapprovisionnement et chaîne de Markov Une société de location de voitures, comptant 200 véhicules, tous de même modèle, dotés chacun de cinq pneus, entreprend d’étudier la survie de ces derniers. D’après le fichier de l’atelier de maintenance, sur un échantillon initial de 1 000 pneus, on a pu établir les fréquences indiquées par le tableau ci-après. 1. Dresser la courbe de survie des pneumatiques. Calculer la vie moyenne et l’écart-type de l’âge du remplacement des pneus. Compléter le tableau par l’indication des mortalités relatives et des probabilités d’avarie. Nombre de pneus ayant duré
Nombre de pneus ayant duré
moins d'un mois
5
de 7 à 8 mois
120
de 1 à 2 mois
10
de 8 à 9 mois
70
de 2 à 3 mois
40
de 9 à 10 mois
50
de 3 à 4 mois
80
de 10 à 11 mois
25
de 4 à 5 mois
130
de 11 à 12 mois
15
de 5 à 6 mois
250
de 12 à 13 mois
3
de 6 à 7 mois
200
de 13 à 14 mois
2
© Dunod – Toute reproduction non autorisée est un délit.
2. À supposer que les 1 000 pneus soient renouvelés ensemble à une date t 5 0, étudier les conditions du réapprovisionnement à instituer pour main tenir ensuite le nombre de pneus en service à cette valeur.
*6.5 Pertinence économique de l’entretien préventif Une pièce, appartenant à un matériel, est caractérisée par la fonction de survie (fiabilité) suivante : t
1
2
3
4
5
6
7
0, 95
0, 85
0, 70
0, 50
0, 30
0, 15
0, 10
8
9
0, 05 0, 025
10 0
263
Chapitre 6 • Fiabilité des composants, sûreté. . .
Lorsque cette pièce est défaillante, elle met en panne le matériel sur lequel elle est montée. On examinera s’il y a intérêt à pratiquer l’entretien préventif dans les deux cas suivants : 1. le prix p de la pièce est cinq fois inférieur au coût P de la panne ; 2. le prix de la pièce est la moitié du coût de la panne.
**6.6 Comparaison économique de deux matériels concurrents Un matériel est payé 25 000 € à l’achat et, durant ses trois premières années de fonctionnement, nécessite des frais annuels de 3 000 € pour l’entretien. Ensuite, le coût de l’entretien s’accroît de 1 000 € chaque année. Un matériel concurrent serait payé 17 000 € à l’achat, mais son entretien revien drait à 5 000 € par an durant les quatre premières années et, ensuite, à 6 000 € pour la cinquième année, 7 000 € pour la sixième, 8 000 € pour la septième, etc. L’un et l’autre sont prévus pour durer 15 ans et sont supposés sans valeur rési duelle appréciable au bout de quelques années. Quel est le matériel le plus avantageux ? Au bout de combien d’années devient-il plus avantageux que le concurrent ? Le taux d’actualisation sera pris (pour faciliter les calculs) égal à 10 %. Les frais d’entretien sont supposés payés à la fin de chaque année.
*6.7 Priorité de réparation entre deux systèmes et chaîne de Markov Dans une entreprise, on a des systèmes de type S1 et des systèmes de type S2, qui tombent en panne avec une probabilité de 1/2 par journée pour le premier système et une probabilité de 1/3 par journée pour le système S2 (valeurs peu réalistes, mais facilitant les c alculs !). La réparation d’un système du type S1 demande une journée, celle d’un système S2 trois journées. On notera R 2(1), R 2(2), R 2(3) un système S2 en 1re, 2e, 3e semaine de réparation. L’atelier de l’entreprise se charge de la réparation dans les conditions suivantes : si, tel jour, une seule tâche se présente, on l’entreprend sans tergiverser, mais si deux tâches de type différent sont proposées, on hésite à entreprendre l’une par priorité sur l’autre… On a pour critère de minimiser l’inactivité de l’atelier de réparation. Sachant que les travaux non entrepris par l’atelier local sont immédiatement confiés à l’extérieur, déterminer la politique la meilleure.
264
Exercices
6.8 Disponibilité asymptotique d’un appareil de fonctionnement intermittent Soit un appareil fonctionnant de façon intermittente (par exemple, un appareil de signalisation). Il peut être en état de fonctionnement (état EF), inactif (état EI), en attente de réparation (état EA) ou, enfin, en réparation (état ER). On appelle : a # Dt, la probabilité pour que l’appareil fonctionnant à t, tombe en panne entre t et t 1 Dt. b # Dt, la probabilité pour que l’appareil en fonctionnement à t, devienne inactif entre t et t 1 Dt. m # Dt, la probabilité pour que l’appareil en réparation à t, soit fini d’étre réparé entre t et t 1 Dt (il sera alors rendu à l’état inactif). # l Dt, la probabilité pour que l’appareil inactif à t, soit mis en fonctionnement entre t et t 1 Dt. v # Dt, la probabilité pour que l’appareil en attente de répartition t, commence à être réparé entre t et t 1 Dt. Justifier que le processus de Markov associé admet un régime permanent pour les probabilités de ces états, indépendant des conditions initiales (d’ailleurs non spéci fiées dans cet énoncé !). Évaluer alors la probabilité de l’état EF, qui est l’utilisation asymptotique de l’appareil, notée U*.
6.9 Paramètres de la sûreté de fonctionnement d’un atelier.
© Dunod – Toute reproduction non autorisée est un délit.
On considère un atelier de fabrication comportant Ν machines identiques, d’utili sation constante (quand elles ne sont pas en panne). Chaque machine a la même fiabilité v(t) 5 e2lt. Dès qu’une machine tombe en panne, un technicien vient la réparer ; on peut faire appel à autant de techniciens qu’il est nécessaire. La probabilité pour qu’une répara tion dure plus que le laps de temps t est : e2mt. 1. Modéliser le fonctionnement de l’atelier par un processus de Markov. Quels sont les N 1 1 états de ce processus ? Tracer le graphe des transitions entre t et t 1 dt et valuer chaque arc par la probabilité de transition associée. 2. Justifier le fait que ce processus est fortement ergodique. Évaluer alors la probabilité de chaque état en régime permanent, puis le nombre moyen n de machines en marche. Quelle est la disponibilité D* de cet atelier (au moins une machine en marche) ?
265
Chapitre 6 • Fiabilité des composants, sûreté. . .
3. Pouvez-vous expliciter la simplicité des expressions obtenues à l’aide de la loi binomiale ? (Indication : considérer d’abord le cas d’un atelier avec une seule machine et un seul réparateur, puis considérer le problème comme Ν fois la répétition de ce cas élémentaire.) 4. Sur un intervalle de temps t , quelle est la durée moyenne de paralysie (indisponibilité) de l’atelier ?
6.10 Étude d’un système composé de modems, d’un ordinateur et d’un automate câblé Le système que nous décrivons a été proposé pour équiper chacun des postes asservis (PA) d’une compagnie produisant de l’électricité. Ce système reçoit des commandes en provenance de l’ordinateur du poste centralisé (PC), les traite, puis les retrans met à un automate câblé (ΕAR) qui gère les lignes à haute tension et les ouvrages hydrauliques. Le système émet vers le poste centralisé des acquittements pour les commandes reçues ainsi que diverses mesures. La qualité essentielle exigée d’un tel système est la sécurité, et, dans ce but, une étude qualitative a été réalisée. Toutefois, de façon à assurer une bonne disponibilité, certains éléments ont été doublés et des marches en fonctionnement dégradé sont possibles : – les informations échangées avec le poste centralisé sont transmises simultanément sur deux voies ; les éléments assurant ces transferts sont donc doublés (lignes, modems et cartes de couplage-modem) ; – les cartes d’entrée-sortie, destinées aux échanges avec l’automate câblé, sont réparties sur deux bacs. En cas de défaillance d’un bac, le système réalise partiel lement sa tâche avec l’autre bac. Ci-dessous, on désigne par « bac E/S » chacun de ces bacs ; – lorsque les deux voies de communication avec le poste centralisé sont défaillantes un fonctionnement en mode local est possible. Le système peut être schématiquement représenté par la figure suivante :
Nous ferons, pour le calcul de la disponibilité de ce système, les hypothèses sim plificatrices suivantes : 266
Exercices
– toute panne de l’unité centrale (U.C.) est fatale, – une panne de périphériques locaux ne perturbe pas la marche du système (on n’en tiendra donc pas compte dans le calcul), – on ne distingue pas les pannes de coupleurs ne perturbant pas le bus E/S, toute panne d’un coupleur avec l’EAP provoque la coupure de l’alimentation correspondant, – on ne considère pas les pannes transitoires et les pannes dues au logiciel. On note A, B, C les événements suivants : A : panne d’un bac coupleur avec l’automate (ΕAP) B : panne d’un modem ou d’un coupleur modem
© Dunod – Toute reproduction non autorisée est un délit.
C : panne fatale pour le système. On fera l’hypothèse que l’occurrence de ces événements est régie par des lois exponentielles de taux respectifs l1, l2, l3 , (l3 est en fait, ici, la somme des taux de panne des éléments dont la défaillance entraîne une panne fatale). On supposera de plus que, de tout état correspondant à fonctionnement dégradé ou à une panne fatale, on retourne – après réparation – à un état de fonctionnement normal : ceci se traduira, sur le graphe simplifié du processus de Markov associé, par un arc joignant chacun de ces états à l’état de fonctionnement normal (qu’on notera « État 1 »), valué par un arc de taux m ; on a en effet supposé que toutes les répara tions quelle que soit leur importance, ont des durées aléatoires régies par une même loi exponentielle de taux m. 1. Déterminer les 7 états du processus de Markov associé ; on notera : E1 : l’état de fonctionnement normal ; E5 : l’état de fonctionnement en local (mais avec les deux bacs d’Ε/S en état de marche) ; E7 : l’état pour lequel le système est en panne (fatale ou les deux bacs E/S en panne). 2. Faire la liste des événements qui causent des changements d’états (on pourra noter D une fin de réparation), pour chacun des états. Tracer alors le graphe simplifié (c’est-à-dire sans boucles et avec les arcs valués par des taux), en disposant comme suit les sommets :
267
Chapitre 6 • Fiabilité des composants, sûreté. . .
Le processus de Markov obtenu est-il fortement ergodique ? 3. Soit A l’ensemble des 3 états que l’on peut quitter par des arcs de taux 2l1 et aussi de taux l3. Déterminer ces 3 états. Soit B l’ensemble des 3 états, que l’on peut quitter par des arcs de taux l 3 1 l 1 et aussi m. Déterminer ces 3 états (en remarquant que B d A est vide). 4. On estime que le système remplit sa fonction s’il se trouve dans l’un des états E1, E2, c, Ε6. Autrement dit, sa « disponibilité asymptotique » est : D* 5 p *1 1 p *2 1 c1 p *6 où p *i est la probabilité de l’état Ei en régime permanent. On note p *A 5 a p *i et p *B 5 a p *i . Montrer que : D* 5 p *A 1 p *B. EiPA
EiPB
En appliquant le théorème des coupes à A, montrer que : p *A 5
m ; puis avec B, que : ( m 1 l 1 1 l 3 ) p *B 5 2 l 1p *A. m 1 2 l1 1 l3
En déduire D*. Vérifier que lim D* 5 1 : expliquer pourquoi. mS ` Vérifier que : D* 5 0 si m 5 0 : expliquer pourquoi. Pouvez-vous expliquer pourquoi D* ne dépend pas de l2 ? Peut-on alors envisager une modélisation plus simple (3 états) ? 5. À l’aide de cette modélisation simplifiée, évaluer le MTTF et le MUT. Commenter.
6.11 Disponibilité et fiabilité d’un système informatique Un système informatique comprend un premier ordinateur A suivi de deux proces seurs identiques B1 et B2 :
Ce système peut donc assurer sa mission si A fonctionne et si B1 ou B2 (ou les deux) fonctionnent. B1 et B2 sont en redondance sélective active : ils fonctionnent en parallèle en permanence ; si B1 tombe en panne, il est immédiatement relayé par B2 (si B2 n’est pas déjà en panne).
268
Exercices
1. a) On suppose connues les fiabilités RA(t) et RB(t), respectivement de l’ordinateur A et d’un processeur. (B1 et B2 ont la même fiabilité.) Calculer la fiabilité R(t) du système et son MTTF (durée de vie moyenne), en l’absence de toute réparation, en fonction de RA(t) et RB(t). b) Application : RA(t) 5 e2at ; RB(t) 5 e2bt : expliciter R(t) et le MTTF. 2. On désire modéliser le fonctionnement de ce système par un processus de Markov à trois états (sachant que des réparations sont possibles, cf. cidessous) : E0, E1 et E2, où E2 est une panne paralysante (A en panne, ou bien B1 et B2 sont en panne). Préciser les états E0 et E1. Dès qu’une panne paralysante est intervenue, une réparation du (ou des éléments) en panne démarre : la probabilité pour que la durée aléatoire d’une réparation dépasse t est e2mt (ceci, quel que soit le nombre d’élé ments à réparer). À partir de l’état E1, on n’entreprend pas de réparation. a) Tracer le graphe simplifié du processus de Markov associé. Valuer cha cun de ses quatre arcs par le taux convenable : vous commencerez par recenser, pour chaque état, quels sont les éléments qui fonctionnent et donc sont susceptibles de tomber en panne. Montrer, en particulier, que le taux l12 , qui value l’arc (E1, E2) égale a 1 b. b) Ce processus est-il ergodique ? Justifier votre réponse. Si oui, appliquer le théorème des coupes à E0 puis à E1 et en déduire les probabilités, en régime permanent, sachant que a 5 b et m 5 10a. 3. On considère le même système, mais en l’absence de réparations. a) Tracer et valuer le graphe (non simplifié) des transitions entre t et t 1 dt. b) Montrer que les probabilités des états à l’instant t satisfont aux équations différentielles ci-dessous, (utiliser la matrice du générateur du processus de Markov) : p 0r ( t ) 5 2 ( a 1 2b ) p 0 ( t ) • p 1 ( t ) 5 2bp 0 ( t ) 2 ( a 1 b ) p 1 ( t ) p 2r ( t ) 5 ap 0 ( t ) 1 ( a 1 b ) p 1 ( t ) . Sachant qu’à t 5 0, le système est dans l’état E0, c’est-à-dire que p0(0) 5 1, calculer p0(t) et p1(t). c) Justifier pourquoi on a l’égalité R ( t ) 5 p 0 ( t ) 1 p 1 ( t ) . Remplacer p 0 ( t ) 1 p 1 ( t ) par leur expression trouvée au 3)b) et vérifier qu’on retrouve le résultat du l)b). d) Facultatif : associer un réseau de Petri, dont le graphe des marquages accessibles (“GMA”) coïncide avec le graphe simplifié, déduit du 3)a). Donner le marquage initial (possible avec 4 places et 3 transitions).
269
7
Les phénomènes d’attente
7.1 Généralités
sur les phénomènes d’attente
Les phénomènes d’attente sont, hélas, d’observation courante dans la vie quoti dienne. Quand nous nous rendons à la poste, à la gare, à la banque, bien souvent nous devons « faire la queue » pour obtenir des timbres, un billet, de l’argent. On a l’habitude d’appeler clients les individus qui constituent la file d’attente et station le lieu (par ex. guichet) où un serveur leur procure un service déterminé. La file d’attente ne se manifeste pas toujours d’une manière physique : par exemple si, dans un atelier, des machines tombées en panne « attendent » la visite et les soins du mécanicien-réparateur, elles ne se constituent pas en file. De même, les patients qui sollicitent une consultation chez un spécialiste, ou des processus à traiter dans un système informatique. Il est néanmoins facile, à chaque fois, de déterminer quels sont les « clients », la ou les « station(s) », le ou les « serveur(s) ». Remarquons qu’il s’agit de phénomènes stochastiques. En effet, les clients arrivent en général au hasard ; par ailleurs la durée d’occupation de la station par chaque client n’est en général pas constante. Il suffit en effet que l’une de ces deux caractéristiques se présente comme un phénomène aléatoire pour qu’il s’agisse déjà d’un problème stochastique. Considérons le cas très simple (figure 7.1) où il n’existe qu’une station, donc qu’une seule file d’attente (en l’absence de priorités). Chaque client pénètre dans l’enceinte où fonctionne la station (en passant par un tambour) : il se dirige aussitôt (c’est-à-dire en temps négligeable) vers la file d’attente et y prend la dernière place (ou passe immédiatement à la station, si elle est libre) ; dès qu’un client a reçu le service qu’il attendait de la station, il s’en va aussitôt ; le premier de ceux qui atten daient dans la file entre dans la station (si la file est vide, la station reste inoccupée jusqu’à l’arrivée du prochain client).
7.2 Loi des arrivées. Loi des services
Cette matérialisation du passage des clients d’un File d’attente état dans un autre est Sortie Entrée simplement utile pour (queue) préciser le vocabulaire Station employé dans la théo rie des phénomènes Figure 7.1 d’attente. On a, en effet, coutume d’appeler file d’attente l’ensemble des clients qui attendent d’être servis, à l’exclusion de celui ou ceux en train de se faire servir.
© Dunod – Toute reproduction non autorisée est un délit.
On nomme système avec attente l’ensemble des clients qui font la queue, y com pris celui ou ceux au service. Le phénomène d’attente s’étend à tous les clients possibles (dans le cas de systèmes bouclés, nommés réseaux de files d’attente, les mêmes clients reviennent plus tard à l’entrée – par exemple des machines qui tombent en panne dans un atelier –, le nombre des clients est alors, en général, fini). Ces appellations se généralisent et prennent surtout leur intérêt dans les situations où coexistent plusieurs stations et plusieurs files d’attente. Attention : en américain “queue” désigne tout le système d’attente. Nous distinguerons donc deux types principaux de systèmes avec attente : le sys tème ouvert, dans lequel le nombre de clients potentiels est très élevé (cas des gui chets publics, des grands magasins, etc.), au point qu’on peut considérer qu’il est illimité ; le système avec attente fermé, dans lequel le nombre de client est limité (cas d’un atelier dans lequel existe un service de réparation de machines) ; dans les deux cas il peut y avoir une ou plusieurs files d’attente. La théorie des files d’attente remonte aux premiers travaux du Danois K. Erlang, en 1917, sur le calcul du nombre d’organes de chaque type à installer dans un central téléphonique automatique. Développé aussi par Engset (1918), cette théorie s’est ampli fiée sous l’impulsion de nombreux chercheurs, parmi lesquels il faut citer E. Borel, D. Kendall, A. Kolmogorov, Khintchine, LC. Palm, F. Pollaczek, L. Feller, etc. Les informaticiens l’utilisent, notamment pour l’évaluation de performances – à titre prévisionnel – des systèmes ou des réseaux informatiques depuis les années 1970.
7.2 Loi
des arrivées.
Loi
des services
Revenons au phénomène d’attente le plus simple où il n’existe qu’une queue et qu’une station. Le cas intéressant est celui où deux phénomènes aléatoires sont conjugués : les clients arrivent au hasard et le temps passé à la station par chaque client est aléatoire. Par exemple, les automobilistes arrivent au hasard à un parc de stationnement (cela veut dire : l’heure d’arrivée de chacun est aléatoire) ; ils y stationnent un temps variable qui ne peut être prévu pour chacun d’eux (c’est encore une variable aléatoire). Peut-on caractériser statistiquement la manière dont les clients arrivent au parc et la durée de leur stationnement ? L’occupation des places de ce parking ? 271
Chapitre 7 • Les phénomènes d’attente
L’expérience montre que, dans beaucoup de phénomènes d’attente, les lois des arrivées et des services sont, respectivement, poissonniennes et exponentielles. Ce ne sont évidemment pas les seules formes que peuvent affecter ces lois, mais ce sont les plus fréquentes et aussi les plus simples à employer pour obtenir un exposé facile des principes et de la théorie des phénomènes d’attente. La notation de Kendall a pour but de décrire, de manière compacte, les caractéristiques d’un système avec attente, en lui associant une chaîne de caractères comme ci-dessous : A/B/S/N/ discipline • A est le code de la loi des arrivées ; pour la loi de Poisson on a A 5 M (M, en fait ici, pour Markov) ; pour des arrivées déterministes, c’est-à-dire à intervalles constants, on a A 5 D ; pour une loi quelconque, générale, on aurait A 5 G, etc. • B est le code de la loi des services ; pour la loi exponentielle on a B 5 M ; on aurait B 5 D pour des services de durée constante, B 5 G pour une loi générale. On peut rencontrer d’autres codes, le cas Markovien étant le plus fréquent. Ainsi Ek désigne une loi d’Erlang-k (moins dispersée que la loi de Poisson), Hr désigne une loi Hyper-expotentielle d’ordre r (davantage dispersée que la loi de Poisson), Cn une loi de Cox d’ordre n. L’exposé de ces lois sort du cadre de cet ouvrage ; contentonsnous de signaler que des services régis par ces trois lois peuvent être simulés par un réseau de k (resp. r, n) guichets fictifs délivrant chacun un service régi par une loi exponentielle. Cela permet de modéliser des fils d’attente où interviennent de telles lois, à l’aide d’un processus de Markov mais moyennant une démultiplication des états. • S est le nombre de stations fonctionnant en parallèle ; en l’absence de précision, toutes ces stations sont réputées équivalentes : elles ont le même taux moyen de service. • N est la « capacité », c’est-à-dire le nombre maximal de clients admissibles dans le système (file et station(s)). Si cette indication est omise, c’est que N 5 ` : le système a une capacité illimitée (ou assez grande pour que tout se passe comme si N 5 `). • La discipline n’est spécifiée que dans la règle n’est pas « premier arrivé, premier à être servi » (PAPS ; en anglais : FIFO). D’autres disciplines existent, notamment « processeur partagé » (« round robin ») ou DAPS (en anglais LIFO) : « dernier arrivé, premier au service », qui se rencontrent en informatique.
7.3 File
à une station.
Système
ouvert : file
M/M/1
Considérons le cas où il existe une seule station, les arrivées des clients formant un processus de Poisson de taux l et le temps de service suivant une loi exponentielle de taux m. On observera que l est le nombre moyen d’arrivées par unité de temps, m, le 1 nombre moyen de clients pouvant être servis par unité de temps ; ainsi m est la durée moyenne d’un service. Nous avons étudié en détail le processus de Poisson et la loi exponentielle au chapitre 5 auquel le lecteur pourra se reporter (de 5.2.1 à 5.2.3). Nous pourrions nous contenter, pour ce qui est de la modélisation de cette file, de renvoyer le lecteur aux processus de naissance et de mort que nous avons envisagés 272
7.3 File à une station. Système ouvert : file M/M/1
également au chapitre 5. Nous reprendrons cependant ici, à titre d’exercice, le rai sonnement élémentaire de la méthode différentielle. Si n personnes ( n > 1 ) sont dans le système d’attente à t 1 Dt, cela ne peut prove nir1 que des trois situations à l’instant t ci-après : Tableau 7.1
Nombre de personnes présentes à t n1 n n1
Entrées
Sorties
Nombre de personnes présentes à t t
pendant t 1
0
n
0 0
0
n
1
n
Les probabilités d’entrée et de sortie pendant Dt étant, respectivement, l D t et m D t et les probabilités complémentaires (1 2 m D t) et (1 2 l D t), on a : pn ( t 1 Dt ) 5 pn 2 1 ( t ) 3 l # D t ( 1 2 m # D t ) 4 1 pn ( t ) 3 ( 1 2 l # D t )( 1 2 m # D t ) 4 1 pn 1 1 ( t ) 3 ( 1 2 l # D t ) # m # D t 4 , où l’on a noté pn(t) la probabilité de la situation (ou état) : n personnes sont dans le sys tème à t ; on a ici noté pn(t) – au lieu de pn(t) comme au chapitre 5 car il n’y a pas de risque de confusion, ici, entre les probabilités des états et celles des transitions – la probabilité pour que n personnes soient présentes dans le système à la date t. En négligeant les produits en Dt2 (c’est-à-dire en o(Dt)), on obtient : pn ( t 1 Dt ) 5 pn 2 1 ( t ) l # D t 1 pn ( t ) 3 1 2 ( l 1 m ) # D t 4 1 pn 1 1 ( t ) m # D t, d’où :
pn ( t 1 Dt ) 2 pn ( t )
5 l # pn 2 1 ( t ) 2 ( l 1 m ) # pn ( t ) 1 m # pn 1 1 ( t ) , Dt sauf pour n 5 0, auquel cas on a seulement les situations du tableau ci-dessous : Tableau 7.2
© Dunod – Toute reproduction non autorisée est un délit.
Nombre de personnes
Entrées
Sorties
à t t
àt
d’où :
0
0
0
1
0
1
p0 ( t 1 Dt ) 2 p0 ( t ) Dt
Nombre de personnes 0 0
5 2l p0 ( t ) 1 mp1 ( t ) ,
1. Ainsi que nous l’avons remarqué au chapitre 5 dans un processus de naissance et de mort, on n’a pas à envisager une entrée et une sortie pendant le temps Dt, la probabilité de cet événement étant négligeable : en Dt2, donc o(Dt). Le lecteur qui commettrait cette erreur par inadvertance ver rait d’ailleurs le terme correspondant disparaître ensuite de l’équation donnant pn(t 1 Dt). 273
Chapitre 7 • Les phénomènes d’attente
(on observera que, si aucun client n’est présent à t, la probabilité pour qu’il n’en sorte pas du système pendant le Dt suivant est 1, et non 1 2 m D t). Revenons au cas n > 1. On a donc, en faisant tendre Dt vers 0 : (7.1) prn ( t ) 5 lpn 2 1 ( t ) 2 ( l 1 m ) pn ( t ) 1 mpn 1 1 ( t ) et (7.2) pr0 ( t ) 5 2l p0 ( t ) 1 mp1 ( t ) Supposons le phénomène stationnaire : les probabilités des états ont alors atteint une limite. On a donc : pn ( t ) 5 p*n 5 constante ; d’où : pr0 ( t ) 5 pr1 ( t ) 5 c5 prn ( t ) 5 c5 0.
Les équations différentielles (7.1) et (7.2) se transforment alors en équations linéaires algébriques : 2lp*0 1 m p*1 5 0 et, pour n > 1 : 0 5 lp*n 2 1 2 ( l 1 m ) p*n 1 m p*n 1 1 On obtient facilement, de 2l p*0 1 mp*1 5 01 : l p*1 5 m p*0
En portant dans : lp*0 1 ( l 1 m ) p*1 1 mp*2 5 0, on obtient : p*2 et, ainsi de suite, d’où : p*n
Or,
2
l 5 a m b p*0 n
l 5 a m b p*0
(7.3)
p*0 1 p*1 1 c1 p*n 1 c5 1, d’où, d’après la formule (7.3) :
p*0
1
p*1
2
(7.4) n
l l l 1 c1 p*n 1 c5 p*0 1 m p*0 1 a m b p*0 1 c1 a m b p*0 1 c 5
p*0 C1
2
n
l l l 1 m 1 a m b 1 c1 a m b 1 cS.
1. On remarquera que la quantité de 2l pn 2 1 1 mpn est un « invariant » car elle ne dépend pas de n ; de plus, cette quantité est nulle, ce qui simplifie la résolution de la récurrence. Cet invariant découle de la conservation des fréquences de transition exprimée par le théorème des coupes (cf. chapitre 5) 274
7.3 File à une station. Système ouvert : file M/M/1
Rappelons que la somme des termes d’une progression géométrique illimitée : 1 1 q 1 q2 1 c1 qm 1 c vaut : 1/(1 2 q) si q , 1. l Or m , 1, comme nous le justifions au paragraphe suivant ; d’où: 1 , 1 5 p*0 # (7.5) l 12 m en faisant la somme de la progression géométrique illimitée (« série géométrique »). On l observera que cette série est convergente, car il est physiquement nécessaire que m , 1, autrement dit que le taux d’arrivées des clients soit inférieur au taux de service, pour qu’il n’y ait pas engorgement. Il vient alors : l p*0 5 1 2 m . La simplicité de cette formule s’explique par la notion de conservation des clients : en régime permanent le taux des entrées dans le système M/M/1 est égal à l ; celui des sorties serait égal à m si la station était occupée en permanence, mais celle-ci n’est occu pée qu’avec la probabilité 1 2 p*0. Le taux des sorties valant alors m # ( 1 2 p*0 ) est égal, en régime permanent, au taux des entrées, soit l, d’où : l 5 m ( 1 2 p*0 ) . Puis on obtient : p*n
n
l l 5 a m b # a1 2 m b .
© Dunod – Toute reproduction non autorisée est un délit.
Comme nous l’avons dit plus haut, on peut aussi traiter cette file d’attente comme un processus de naissance et de mort. L’état n (ou En) désigne la situation où n clients sont présents. Les arrivées des clients, de loi poissonienne, constituent (nous l’avons vu au chapitre 5) un processus de naissance ; de plus le taux de naissance à partir de l’état n vaut ici : l n 5 l ( n 5 0,1, 2, c) . Les départs de clients, dus aux fins de ser vices, constituent un processus de mort pour lequel m n 5 m ( n 5 1, 2, 3, c) . Voici alors le graphe des transitions entre états, entre t et t 1 Dt :
Figure 7.2
Le graphe « simplifié » est le suivant :
Figure 7.3
275
Chapitre 7 • Les phénomènes d’attente
En appliquant le théorème des coupes à B0 5 5 E0 6 , puis B1 5 B0 c 5 E1 6 , puis c, puis Bn 2 1 5 Bn 2 2 c 5 En 2 1 6 5 5 E0, E1, c, En 2 1 6 , il vient: l # p*0 5 m # p*1 ; l # p*1 5 m # p*2 ; c ; l # p*n 2 1 5 m # p*n.
On retrouve ainsi directement :
p*n
n
l 5 a m b # p*0.
Observons que le théorème des coupes nous a fourni directement l’invariant : lp*n 2 1 2 mp*n 5 0, qui avait facilité la résolution de la récurrence (portant initialement sur trois termes consécutifs : pn 2 1, pn et pn 1 1, au lieu de deux ici : pn 2 1 et pn). On aurait pu aller encore plus vite, en appliquant la relation valable pour les pro cessus de naissance et de mort fortement ergodiques (c’est le cas ici si l/m , 1 ) : n l n 2 1 ? l n 2 2 ? c? l 0 l * * * pn 5 m ? m ? c? m ? p0 soit ici : pn 5 a m b . n
n21
1
Calculons la “moyenne” de cette distribution (en fait l’espérance du nombre de clients présents) : n 5 a n # p*n 5 0 # p*0 1 1 # p*1 1 2 # p*2 1 c1 n # p*n 1 c `
0
2
3
n
l l l l 5 C a m b 1 2a m b 1 3a m b 1 c1 na m b 1 cS
Or : 2
2
n
n21
l l c1 na l b 1 c5 l C1 1 2 l 1 3a l b 1 c1 na l b m 1 2am b 1 m m m m m
1 cS
l et l’on reconnaît, dans le crochet, la dérivée, par rapport à q 5 m de la progression : q . q 1 q2 1 q3 1 c1 qn 1 c 5 q ( 1 1 q 1 q2 1 c) 5 12q En dérivant cette dernière expression par rapport à q, on obtient
le crochet vaut
1
; d’où : n 5 a n # 2
l a1 2 mb
p*n
l 5m#
1
2
l a1 2 mb
l a1 2 mb 5
1
(1 2 q )2
et ainsi
l m
l . 5 l m2l 12 m
On observera que si lS μ– ; le dénominateur tend vers 0+ et n S ` : on voit se profiler la saturation ! 276
7.3 File à une station. Système ouvert : file M/M/1
Il est facile de calculer le temps moyen qu’attend un client dans la file ; lors de son arrivée il trouve en moyenne une file de n clients qui s’écoulera en un temps 1 1 moyen n 3 m , m étant le temps moyen passé par chaque client à la station (y com pris pour celui au service, car la loi exponentielle est « sans mémoire » : pour un ser vice de loi exponentielle, tout se passe, à chaque instant, comme si ce service venait de commencer). On a donc : l . tf 5 n / m 5 m (m 2 l ) De même si lS μ–, alors tf S ` ; c’est l’engorgement. Remarque. On observe qu’on a : n 5 l# t, t étant le temps de séjour dans le système (et non dans la file). On a aussi : v 5 l# tf, v étant le nombre moyen de clients dans la file, à l’exception de celui qui se fait servir, quand le service est occupé. Ces deux relations sont les for mules de Little. Les méthodes dites de conservation (ou encore d’invariants) permettent d’expliquer, notamment, les formules de Little : n 5 l # t et v 5 l # t f . La différence entre t et tf est évidemment égale à la moyenne du temps de service : moyenne du temps d’attente dans le système – moyenne du temps d’attente dans la file 5 moyenne du temps de service. 1 l l Ainsi : t 2 tf 5 m , d’où n 2 v 5 l ( t 2 tf ) 5 m et v 5 n 2 m . Dans notre cas M/M/1 où l ne dépend pas de n, on retrouve bien tf 5 v / l 5 n / m. Lorsque l dépend de n, on définit un taux d’arrivée moyen l *eq tel que :
n 5 l *eq ? t et v 5 l *eq ? tf .
Ainsi, si la file est limitée à N personnes et comporte une station (file M/M/1/N) : l *eq 5 a l ? p*n 5 l ? ( 1 2 p*N ) ;
© Dunod – Toute reproduction non autorisée est un délit.
N21
n50
si un atelier comporte N machines, chacune de taux de panne l, et un seul répa rateur de taux m : l *eq
5 a ( N 2 n ) ? l ? p*n 5 m ? ( 1 2 p*0 ) . N21
n50
Application. Dès à présent, le lecteur peut se rendre compte des raisons pour lesquelles on attend si longtemps chez le médecin… Par exemple, si la durée d’une consultation est, en moyenne, de 15 min, le médecin convoque ses patients toutes les 20 min, mais, dans notre société où l’inexactitude est devenue la règle, ceux-ci arrivent finalement au hasard... On a : l = 3, μ = 4 (par heure). Il est alors facile de calculer : 277
Chapitre 7 • Les phénomènes d’attente
n5
l m2l
5
3
n 3 5 3 et tf 5 m 5 , 4 423
ce qui veut dire que le nombre moyen de patients (!) présents est 3 et que leur attente moyenne est de 3/4 d’heure !
7.4 File
à
S
stations, système ouvert : file
M/M/S
Lorsque S stations sont disponibles, le phénomène n’est guère plus compliqué à décrire ; tant que les stations ne sont pas toutes occupées, il n’y a pas de file d’attente: autrement dit, les taux de traitement du système d’attente sont : m lorsqu’une station est occupée, 2m lorsque deux stations sont occupées, etc., jusqu’à Sm. Reprenons le modèle d’un processus de naissance et de mort (chapitre 5). On a, bien sûr li 5 l, pour tout i, car le nombre d’arrivées ne dépend pas du nombre de clients présents dans le système. En revanche, on a : mn 5 nm, pour 1 < n , S, et mn 5 Sm, pour n > S. Ainsi l’on peut tracer le graphe simplifié de ce processus de Markov particulier :
Figure 7.4
Bien entendu, la condition pour que le système ne s’engorge pas est ici : Appliquons le théorème des coupes à B0 , puis à B1 , etc. Il vient: l # p*0 5 m # p*1 , l # p*1 5 2 m # p*2 , l # p*2 5 3 m # p*3 , c , l # p*S 2 1 5 S m # p*S. 2
3
l 1 l 1 l D’où : p*1 5 m p*0 ; p*2 5 a m b p*0 ; p*3 5 a m b p*0 , c 2 6
et, plus généralement, pour n < S : p*n Ainsi, pour n 5 S : p*s
n
1 l * 5 a b p0. n! m S
1 l * 5 a b p0. S! m
Au-delà de S clients présents, on obtient : l # p*S 1 k 5 S m # p*S 1 k 1 1. 278
l , 1. mS
7.4 File à S stations, système ouvert : file M/M/S
On obtient l’expression de p*S 1 1 (en faisant k 5 0) aisément par: p*S 1 1 5 S11
l * pS : Sm
l 1 ? a m b ? p*0. 5 S # S! puis, de proche en proche, pour n > S : n l 1 * ? a m b ? p*0. pn 5 n 2 S S S! En fait, ces expressions peuvent s’obtenir plus rapidement en appliquant la relation établie pour les processus de naissance et de mort1. Comme la somme illimitée des p*n vaut 1 : p*S 1 1
15
p*0
2
n
l 1 l 1 l C 1 a b 1 c1 a b 1 cS m m 2! n! m
('''')''''* n,S
1
s
1 l 1 l C a b 1 a b S! m SS! m
p*0
S11
1 c1 n
1 Sn 2 S S!
n
l a m b 1 cS
Ss l Dans le second crochet, le terme général égale : on reconnaît une S ! Sm S
Ss l l et de premier terme . D’où : série géométrique de raison S ! Sº Sm
Le nombre moyen de clients dans la file d’attente est: v 5 a k # p*S 1 k. En effet la file n’existe que si au moins (S + 1) clients sont présents. k51 © Dunod – Toute reproduction non autorisée est un délit.
`
Or
p*S 1 k
5
p*S
# a l b . Ainsi v 5 p*S # a ka l b 5 p*S # l a k # a l b Sm Sm Sm Sm k
`
k51
k
`
k21
.
k51
l 0 # l 1 # c# l n 2 1 l ? l ? c? l * p0, soit : p* ; pour n < S il vient : p*n 5 m 1 # m 2 # c# m n 0 1m # 2 m # c# nm c c ln * # p . Pour n > S : p*n 5 l ? l ? ? l ? l ? l ? ? l p*n 5 p* n 0 c c? Sm 0 n!m 1m ? 2m ? ? ( S 2 1 ) m ? Sm ? Sm ? ('')''* n2S fois n2S n s s l lS l 1 l l * * * s ? p 5 ? ? p 5 ? p , b a a b c’est-à-dire : n b 5a b. 0 0 car : S a m Sm S!m S Sm S n 2 S S! m 1. En effet : p*n 5
279
Chapitre 7 • Les phénomènes d’attente
D’où : v 5 p*S #
l # Sm
1 a1 2
l b Sm
2
l amb
5
S11
S # S! # a1 2
l b Sm
2
# p*0.
On obtient le temps moyen d’attente tf par la relation de Little : v 5 l# tf , d’où : tf 5
( l/m ) S S m # S! # a1 2
l b Sm
2
# p*0.
Le nombre moyen de clients présents dans le système est n ; en notant g le nombre moyen de stations (guichets) occupées, on a : n 5 v 1 g. S21
Certes l’on pourrait calculer g par : g 5 a k # k51
1 a S # p*k , (en effet si le nombre `
p*k
k5S
de clients présents est inférieur à S, le nombre de guichets occupés est égal à k : tout client est à un guichet ; sinon, tous les S guichets sont occupés, pour tout k > S). Mais ce calcul est lourd ; il est plus élégant d’appliquer la propriété de conservation des clients : en régime stationnaire (permanent) le taux des entrées dans le système, soit l, est égal au taux des sorties du système ; celui-ci serait Sm si les S guichets étaient tous occupés en permanence, ce qui est faux lorsque le nombre de clients pré sents est inférieur au nombre de guichets. En fait, le taux des sorties est le produit du taux de service d’un guichet, soit m, par le nombre moyen de guichets occupés, soit g. D’où l 5 mg et la valeur (très simple !) g 5 l/m. Ce que l’on peut vérifier à l’aide des relations de Little : on a g 5 n 2 v ; or n 5 l # t 1 l 1 et v 5 l # tf d’où g 5 l ( t 2 tf ) . Mais : t 5 tf 1 m . Finalement : g 5 l # a m b 5 m .
7.5 Application
numérique
Dans une entreprise existe un bureau spécialisé, auquel le personnel a accès pendant les heures de travail. Le chef du personnel (D.R.H.), qui a remarqué l’affluence des intéressés à ce bureau, demande qu’une étude relative au fonctionnement de ce service lui soit présentée. Ce contexte est certes artificiel, mais permet de fixer les idées. Un analyste est désigné pour déterminer le temps moyen d’attente des employés dans la file et la durée moyenne de l’entretien que chacun a avec le responsable de ce bureau. 280
7.5 Application numérique
Il s’agit bien d’un problème d’attente à une station. Le premier travail de l’analyste sera de définir les périodes pendant lesquelles le phénomène peut être considéré comme stationnaire : durant la première demi-heure et la dernière de la journée, ainsi que l’heure du repas, l’affluence au bureau est très fluctuante et faible ; au contraire, durant les autres périodes de la journée, le phéno mène stationnaire est établi et l’on peut examiner les entrées et services du point de vue statistique.
7.5.1 Études des arrivées Pendant cent intervalles de cinq minutes, successifs ou non, mais tous situés dans la période de stationnarité, le nombre de « clients » arrivant durant chaque intervalle de cinq minutes a été compté. Supposons que les résultats soient ceux du tableau ci-dessous : La moyenne de cette loi de distribution Tableau 7.3 est facile à calculer : 6
Nombre d'ouvriers arrivant pendant une période de 5 min
Féquences observées fn
0
29
1 2
34 24
3 4
9
5 6
1
3 0
© Dunod – Toute reproduction non autorisée est un délit.
100
# an 0
fn
100
5
1 ( 0 3 29 1 1 3 34 1 100
2 3 24 1 3 3 9 1 4 3 3 1 5 3 1 ) 5 1,26. L’emploi d’un test statistique va per mettre de vérifier si la loi observée se rapproche d’une loi théorique classique, en l’espèce celle de Poisson. ( lt ) n
e2lt, avec n! lt 5 1,26 et e21,26 5 0,2837 permet de calculer les fréquences théoriques d’une loi de Poisson de moyenne 1,26 arrivées/ 5 min ; ce sont cent fois les valeurs : La formule : qn ( t ) 5
q0 5 0,28 ; q1 5 0,36 ; q2 5 0,23 ; q3 5 0,09 ; q4 5 0,03 ; q5 5 0,01 (q5, en réalité, a été prise égale à la différence entre 1 et la somme des autres qn jusqu’à q4). Employons, par exemple, le test du x2 de Pearson, qui s’applique à des classes dans lesquelles, le nombre d’événements attendus est ou moins de l’ordre de 5 (il suffira de regrouper les deux dernières classes pour satisfaire grossièrement à cette exigence). Ce test consiste à calculer les carrés des différences entre les fréquences théoriques de la loi à vérifier et les fréquences observées, puis à diviser chacun de ces carrés par la fréquence théorique de la classe à laquelle les fréquences sont relatives. 281
Chapitre 7 • Les phénomènes d’attente
Tableau 7.4
2
2/fth
observées (fn)
Fréquences théoriques (fth )
0
29
28
1
1
0, 0357
1
36
2
4
0, 1111
2
34 24
23
1
0, 0435
3
9
9
1 0
0
0
4
4
4
0
0
n
Fréquences
0 0, 1903 2 calculé
Le nombre de degrés de liberté du système est d 5 c 2 1 2 p, c étant le nombre de classes (ici 5) et p le nombre de paramètres de la loi théorique tirés de l’observa tion (ici un seul : la moyenne lt) ; on a donc : d 5 5 2 1 2 1 = 3. Or, en se reportant à une table des x2, on trouve, pour 3 degrés de liberté :
x 20, 95 5 0, 352. Comme le x2 calculé (0,19) est inférieur à cette valeur, l’analyste décide d’admettre que le phénomène observé suit une loi de Poisson. (avec un seuil de confiance de 95 %). La conclusion à tirer de l’étude des arrivées est qu’elles se font « à la Poisson », 1, 26 avec un taux de < 0,25 arrivée par minute. 5 Remarque. Lorsque, pour le même nombre de degrés de liberté, le x2 calculé avec les données de l’expérience, moyennant l’hypothèse que celles-ci suivent telle ou telle loi théorique, est comparé aux valeurs inscrites sur la même ligne de la table, la valeur calculée se situe entre deux valeurs du tableau, lues dans des colonnes adjacentes, p1 et p2 ( p1 . p2 ) , cela veut dire que, si la variable suivait la loi théorique envisagée, la probabilité d’obtenir un écart dû au hasard supérieur au x2 calculé serait supérieure à p2. Si la valeur p2 est très petite (disons, inférieure à 0,05), l’hypothèse est très peu vraisemblable ; si, au contraire, elle est très grande (disons, par exemple, supérieure à 0,50), l’hypothèse est vraisemblable. Entre ces deux valeurs, y a-t-il place pour une hypothèse « assez vraisemblable » ou, du moins, « n’introduisant pas de contradiction dangereuse » ? Selon les raisons que l’on a d’être exigeant, on fixe quelquefois le seuil de rejet à 0,10, voire 0,20 ; en recherche opérationnelle, il n’est pas rare que l’on soit beaucoup plus exigeant que cela. À l’inverse, certains se méfient des x2 calculés inférieurs à x 20, 98 ou, a fortiori, x 20, 99 et rejettent l’hypothèse, car les résultats sont jugés « trop bons pour être honnêtes », les écarts dus au hasard devant, la plupart du temps, être plus importants. Nous nous garderons d’adopter systématique 282
7.5 Application numérique
ment ce point de vue. À moins d’avoir de sérieuses raisons de douter des don nées collectées, il est rare que l’on repousse, en recherche opérationnelle, une hypothèse donnant un excellent x2, le cas est d’ailleurs assez rare ! Les seuils indiqués plus haut sont arbitraires. Mais, en tout cas, avant chaque test, il convient de se donner a priori le seuil d’acceptation (le plus souvent : 0,95).
7.5.2 Études des services À cent reprises, consécutives ou non, mais prises dans la période stationnaire, on relève la durée du service, c’est-à-dire le temps passé par un client au “service”. Supposons que les résultats obtenus soient les suivants : Tableau 7.5
Durée des services
Nombre
Nombre
de services observés
Durée des services
de services observés
1 min
23
de 7 à 8 min
5
de 1 à 2 min
20
de 8 à 9 min
de 2 à 3 min
de 9 à 10 min
de 3 à 4 min
14 12
3 2
de 10 à 11 min
2
de 4 à 5 min
9
de 11 à 12 min
1
de 5 à 6 min
5
12 min
0
de 6 à 7 min
4
La moyenne est ici : 1 ( 0, 5 3 23 1 1, 5 3 20 1 2, 5 3 14 1 3, 5 3 12 1 4, 5 3 9 1 5, 5 3 5 1 6, 5 3 4 100
© Dunod – Toute reproduction non autorisée est un délit.
1 7, 5 3 5 1 8, 5 3 3 1 9, 5 3 2 1 10, 5 3 2 1 11, 5 3 1 ) 5 3, 27 min.
Le nombre de clients servis par minute est donc : 1 < 0, 30. 3, 27
On fait alors l’hypothèse que la loi des services est une loi exponentielle, de densité : 0,30 e20,30t, et de taux : m 5 0,30. Se ramenant au centre des classes : 0,5 ; 1,5 ; 2,5 etc., et réduisant à huit classes (6 degrés de liberté), on a x 2calculé 5 0, 906 ; le x20,95, lu dans la table, s’élève à 1,635 et l’analyste décide d’admettre qu’il a bien une loi exponentielle de taux : m 5 0,30. 283
Chapitre 7 • Les phénomènes d’attente
7.5.3 Premiers calculs Les formules données précédemment pour une station unique (file M/M/1) permettent de calculer : – le nombre moyen de “clients” dans le système : n5
l m2l
5
0, 25
0, 30 2 0, 25
5 5 ;
– le temps moyen d’attente dans la file pour chaque client : n 5 2 5 16 min . tf 5 m 5 0, 30 3 On se rend compte que le temps perdu par les « clients » (les employés de l’entre prise qui, pendant ce temps, n’exécutent pas leur tâche habituelle) est considérable ; pour une journée de travail de 8 h et 0,25 client par minute, attendant chacun en 2 moyenne 16 min, cela fait au total : 3 8 3 60 3 0,25 3 16
2 1 min 5 33 h . 3 3
Pourtant, le responsable du bureau n’est occupé en moyenne que : 1 8 3 60 3 0, 25 3 3,27 min < 6 h , par pour. 2
7.5.4 Optimisation du nombre de guichetiers La « solution par les moyennes » consisterait pratiquement à adopter un nombre de « préposés » permettant d’assurer le service et l’on trouverait ainsi que l’unique pré posé, c-à-d le responsable du bureau, suffit à sa tâche. La solution économique, fondée sur la recherche opérationnelle, a pour but d’éta blir un bilan total de l’opération qui consisterait à embaucher 1, 2, … autres préposés (cette décision accroissant le coût de fonctionnement du service), en vue de diminuer le temps perdu par les employés (ce résultat faisant réaliser un gain sur le temps total de travail). Définir le nombre de préposés correspondant au bilan optimal est juste ment l’objet du problème. Il ne faudrait surtout pas imaginer que si, par exemple, on double le nombre de préposés, le nombre moyen d’employés dans la file diminuera de moitié et qu’en conséquence le temps d’attente sera également diminué de moitié...
284
7.5 Application numérique
Du reste, appelant S le nombre de “stations” (ici : le nombre de préposés), et le l rapport C 5 m , on a, d’après les résultats du paragraphe 7.4 : – probabilité d’une attente nulle (probabilité de l’absence de tout client dans le système) : 1
p*0 5
CS S!a1 2
– attente moyenne dans la file :
C b S
S21
Cn 1 a n! n50
CS
tf 5
m # S # S!a1 2
2
C b S
;
? p*0 ;
– nombre moyen de clients dans le système :
n 5 C # 3 mtf 1 1 4 .
On désigne, de plus, par r le taux moyen d’inactivité des “stations”. Dans le cas qui nous occupe, on calcule facilement : – pour S 5 1, – pour S 5 2,
p*0 5 1 2 C 5 1 2 0, 833 5 0,167 ;
p*0 5
( 0, 833 )
© Dunod – Toute reproduction non autorisée est un délit.
2!a1 2
0, 833 2
– pour S 5 3, p*0 5
3!a1 2
3
On peut alors calculer aussi :
1 111
b 1
( 0, 833 ) 3
0, 833
2
111
b
0, 833 1!
0, 833
5 0, 411 ;
1!
1
( 0, 833 ) 2
5 0, 432.
2!
2 – pour S 5 1, tf 5 16 min , r 5 0,167 ; 3 285
Chapitre 7 • Les phénomènes d’attente
– pour S 5 2, tf 5 0,70 min, r 5 1,167 ;
– pour S 5 3, tf 5 0,09 min, r 5 2,167. Supposant alors que le coût de l’inactivité des préposés de ce bureau représente le salaire (et les charges) correspondant à la durée de cette inactivité, soit, par exemple, 12 euros de l’heure et que le temps perdu en attente par les employés peut être évalué à 50 euros de l’heure, on obtient les coûts totaux suivants : 2 50 12 – pour S 5 1, G ( 1 ) 5 120 3 16 3 1 480 3 0,167 3 5 1 682,70 euros ; 3 60 60 – pour S 5 2, G ( 2 ) 5 120 3 0, 70 3
50 12 1 480 3 1,167 3 5 182,03 euros ; 60 60
50 12 1 480 3 2,167 3 5 217, 03 euros. 60 60 On constate qu’il suffit d’avoir deux préposés pour atteindre le coût minimal (il faudrait connaître le taux d’absentéisme des préposés pour être à même d’examiner s’il ne serait pas plus rationnel, finalement, d’en prévoir trois). – pour S 5 3, G ( 3 ) 5 120 3 0,09 3
7.6 File file
S stations, M/M/S/N à
cas du système fermé :
Reprenons le système précédent mais imposons maintenant au nombre d’unités (clients) présentes dans le système d’être limité, par exemple par le nombre N qui apparaît alors comme la capacité du système. Nous supposons que le nombre de stations S est inférieur à ce nombre N : sinon il n’y aurait jamais d’attente. Nous nous intéressons au cas où le taux de naissance à partir de l’état En (noté n plus bas), soit ln, est proportionnel au nombre N 2 n d’unités non encore présentes dans le système : ln 5 (N 2 n) # l (où n 5 0, 1, c, N 2 1). Tel serait le cas d’un atelier comportant N machines de fonctionnement per manent (sauf panne) et S réparateurs ( S , N ) ; le taux de panne individuel de chaque machine est l et vaut (N 2 n) l si n machines sont en panne, le taux de service d’un réparateur donné étant m. Dans l’état En : • si 0 < n , S, il y a n réparations en cours et m n 5 n # m ; mais • si S < n < N, il y a S réparations en cours et m n 5 S # m. Voici le graphe simplifié du processus de naissance et de mort associé au système :
Figure 7.5
286
7.6 File à S stations, cas du système fermé : file M/M/S/N
Pour évaluer les probabilités des états en régime stationnaire (permanent) il suffit alors d’instancier le résultat général des processus de naissance et de mort : l0 ? l1 ? c? l k 2 1 p*k 5 m ? m ? c? m p*0 1 2 k
avec les valeurs de ln et mn ci-dessus, puis d’évaluer p*0, ce que nous faisons dans l’exemple ci-dessous. Notons que ce processus de Markov est fortement ergodique (les probabilités des états tendent, quand t S `, vers des limites indépendantes de leur valeur à t 5 0), car le graphe est fortement connexe et fini.
1 par 3 1 heure. On a un mécanicien pour réparer les machines, le taux de service est m 5 2 (autrement dit, il faut deux heures en moyenne au mécanicien pour réparer une machine). Le salaire, charges comprises, d’un mécanicien est 30 euros de l’heure. Trois ouvriers travaillent dans l’atelier ; mais, pour produire, chacun a besoin d’une machine (en état de marche). Lorsqu’un ouvrier est immobilisé la perte (salaire 1 charges 1 perte de production) est estimée à 50 euros par heure. Ne vaudrait-il pas mieux augmenter le nombre de mécaniciens ? Exemple. Un atelier dispose de cinq machines, tombant en panne au taux l 5
NB : ici les valeurs numériques ne sont pas réalistes, mais elles permettent des cal culs simples ! 1) Pour 5 machines et un seul mécanicien, on a : l n 5 n # l ( n 5 0, 1, c, 4 ) e mn 5 m ( n 5 1, 2, c, 5 )
Figure 7.6
où l 5
1 1 et m 5 . 2 3
© Dunod – Toute reproduction non autorisée est un délit.
5l 5 m # 4l 5 l # 4 l # 3l 5 l # 4 l # 3 l # 2l p*1 5 m p*0 ; p*2 5 m # m p*0 ; p*3 5 m # m # m p*0 ; p*4 5 m # m # m # m p*0 ; p*5 5
5l # 4l # 3l # 2l # l * p0, or : p*0 1 p*1 1 p*2 1 p*3 1 p*4 1 p*5 5 1. Il vient : m#m#m#m#m
p*1 5 p*0 a
10 * 80 160 * 640 * 1 280 * p0 ; p*2 5 p*0 ; p*3 5 p0. p0 ; p*4 5 p0 ; p*5 5 9 9 27 3 81
81 81 270 720 1 440 1920 1280 1 1 1 1 1 , et : b 5 1, d’où p*0 5 81 81 81 81 81 81 5711 p*1 5
1920 * 270 720 1440 * 1280 , p*2 5 , p*3 5 , p4 5 , p5 5 . 5711 5711 5711 5711 5711
287
Chapitre 7 • Les phénomènes d’attente
81 Le mécanicien est inoccupé les de la journée (c’est bien peu !), d’où un 5 711 coût de : 81 3 8 3 30 5 3, 40 euros/jour. 5 711 Les ouvriers ne peuvent pas travailler pendant les cas suivants : 1 280 de la journée (état E5: toutes les 5 machines en panne) ; 5 711 1 920 de la journée (état E4 : une seule machine – deux d’entre eux, pendant les 5 711 en marche) ; – les trois, pendant les
1 440 – un seul, enfin, pendant les de la journée (état E3 : deux machines en 5 711 marche). La perte totale journalière pour les ouvriers, par impossibilité de travailler, est donc : 1 920 1 440 1 280 123 1 b 3 8 3 50 5 638,77 euros/jour. 5 711 5 711 5 711 d’où un coût total se montant à : 638,77 1 3,40 5 642,17 euros par jour. 2) Dans les mêmes conditions, mais avec deux mécaniciens, on a : a3 3
Figure 7.7
on trouve : p*0 5
81 270 360 360 240 80 ; p*1 5 ; p*2 5 ; p*3 5 ; p*4 5 ; p*5 5 . 1 391 1 391 1 391 1 391 1 391 1 391
On obtient finalement un coût total de 74,536 1 310,567 5 385,10 euros par jour, moindre que le précédent. 3) Essayons d’augmenter encore le nombre de mécaniciens. Le lecteur vérifiera sans peine que le coût total s’élève à 447,67 euros par jour dans l’hypothèse où l’on a un effec tif de trois mécaniciens. On remarquera que le manque à gagner a pour expression : ( 3p*5 1 2p*4 1 1p*3 ) 3 8 3 50 1 ( 3p*0 1 2p*1 1 1p*2 ) 3 8 3 30. En conclusion, la meilleure solution est d’engager deux mécaniciens. Cependant le problème est loin d’être épuisé, car on pourrait penser aussi à paramétrer, c’està-dire à faire varier, le nombre d’ouvriers ou encore tenir compte de l’absentéisme des mécaniciens... 288
7.7* Probabilité de dépasser une certaine attente : cas de la file M/M/1
7.7* Probabilité
de dépasser une certaine attente :
cas de la file
M/M/1
Cette étoile indique qu’il s’agit d’un paragraphe d’approfondissement, qui peut être omis en première lecture. Revenons d’abord au cas d’un système ouvert à une station, c’est-à-dire la file M/M/1, en régime permanent. La probabilité que l’attente dépasse t est : P 3 Tf . t 4 5 a P 3 Tf . t 0 N 5 n 4 # P 3 N 5 n 4 , `
n51
obtenue en appliquant la formule « des probabilités totales ». Tf est une variable aléatoire ; nous noterons f (t) sa densité de probabilité : d 5 P 3 Tf < t 46 . Or, on a : P 3 Tf < t 4 5 1 2 P 3 Tf . t 4 , dt d d’où : f ( t ) 5 2 5 P 3 Tf . t 46 . dt Nous notons ici N la variable aléatoire « nombre de clients trouvés dans le sys tème par un nouveau client y arrivant » ; on montre que P 3 N 5 n 4 5 p*n, c’est-à-dire que cette probabilité coïncide avec celle de trouver n clients dans le système à un ins tant quelconque. En outre pour qu’il y ait attente, il faut que le nouveau client arrivant trouve, lors de son arrivée, au moins un client déjà présent dans le système : n > 1. Évaluons P 3 Tf . t k N 5 n 4 : l’attente Tf dépassera t pour un nouveau client arri vant, disons à u, si entre u et u 1 t le serveur a servi soit 0, soit 1, c, soit n 2 1 clients (mais pas n, sinon le nouveau client arrivé à u serait en cours de service à u 1 t, et donc plus en attente). Or les fins de service, lorsque le serveur ne connaît pas de période d’inactivité (faute de clients à servir), forment un processus de Pois son de taux m (les services représentent les intervalles de temps entre deux événe ments consécutifs de ce processus : on sait que la loi de ces services est alors une ( mt ) k ( ) loi exponentielle de taux m). En notant qk t 5 e2mt, la probabilité d’avoir n k! événements dans ce processus entre u et u 1 t, il vient :
© Dunod – Toute reproduction non autorisée est un délit.
f (t) 5
P 3 Tf . t 0 N 5 n 4 5 q0 ( t ) 1 q1 ( t ) 1 c1 qn 2 1 ( t ) 5 e2mt # C1 1
( mt ) 2 ( mt ) n 2 1 mt S 5 U.V 1 1 c1 1! 2! (n 2 1)!
dont la dérivée Ur # V 1 Vr # U vaut : 2m e
2mt
# C1 1 mt 1 c1 1!
n22 ( mt ) n 2 1! mt c ( n 2 1 ) m # ( mt ) 2mt # S1e S Cm 1 2 m 1 1 2! (n 2 1)! (n 2 1)!
289
Chapitre 7 • Les phénomènes d’attente
Le second crochet vaut : m # C1 1
n22 mt c ( mt ) S . D’où : 1 1 1! (n 2 2)!
( mt ) n21 d 5 P 3 Tf . t 0 N 5 n 46 5 2m # e2mt # dt ( n2 1 ) !
d d P 3 Tf . t 4 5 2 b a P 3 Tf . t 0 N 5 n 4 # p*n r . dt dt n51 `
f (t) 5 2
l l Rappelons que : p*n 5 a1 2 m b # a m b.
` ( mt ) n 2 1 l n l 2 mt f ( t ) 5 m # a1 2 m b # e a a b (n 2 1)! m n51
5 (m # l ) # e
2mt
` ( lt ) n 2 1 l #ma . (n 2 1)! n51
xn 2 1 5 ex, le sigma vaut elt ; il vient : Puisque a ( ) n 2 1 ! n51 l f ( t ) 5 ( m 2 l ) m e2(m 2 l )t. t l D’où : P 3 Tf . t 4 5 1 2 3 f ( u ) du 5 m e2(m2 l)t. 0 `
II est alors aisé de retrouver l’attente moyenne (qui n’est autre que l’espérance de Tf) : tf 5 E ( Tf ) 5 3 t # f ( t ) dt 5 `
l
(valeur déjà trouvée au 7.3). m ( m 2 l) Connaissant f (t), on peut calculer les moments E ( Tfk ) . En particulier : 0
l
. m (m 2 l )2 De la même manière, on peut établir que pour le temps total de séjour dans le sys tème, soit T, comprenant l’attente et le service, on a : P[T . t] 5 e2(m2l)t : on reconnaît une loi exponentielle de taux a 5 m 2 l. Aussi, la durée moyenne de séjour est : var ( Tf ) 5 E ( Tf2 ) 2 3 E ( tf ) 4 2 5
1 1 (valeur déjà trouvée au 7.3). t 5 E (T) 5 a 5 m2l En outre, on montre que le processus des sorties d’une file M/M/1 (comme d’une file M/M/S) est un processus de Poisson de taux l. Ceci est important pour les réseaux de files d’attente, dont le pionnier a été J. JACKSON, mais dont l’étude sort du cadre de cet ouvrage. Le lecteur pourra généraliser à la file M/M/S, le calcul de P[Tf . t] et celui f (t). Soit P[Tf . 0] la probabilité d’une attente non nulle ; on a : 290
7.7* Probabilité de dépasser une certaine attente : cas de la file M/M/1
P 3 Tf . 0 4 5 où :
p*S
p*S
p*0 ( l/m )
5
S!
p*S 1 1
1
2
*
pS l l 1 c5 p*S C1 1 1 a b 1 cS 5 Sm Sm 1 2 l/Sm
. On obtient : f (t) 5 P[Tf . 0] # (Sm 2 l) # e2(Sm2l)t.
Ce qui permet de retrouver : tf 5 E (Tf ) 5 3 t # f ( t ) # dt, d’où : tf 5 P 3Tf . 04 # `
0
1 . Sm 2 l
On retrouve bien l’expression de tf déjà donnée plus haut : tf 5
p*0 # ( l/m) S
#
1
S! ( 1 2 l/Sm) S # m # ( 1 2 l/Sm)
5
( l/m ) S S m # S! # ( 1 2 l/Sm) 2
# p*0.
Exemple d’application : un processeur informatique doit traiter des travaux qui arrivent aléatoirement, selon un processus de Poisson de taux l fixé. La nature de ces travaux et les caractéristiques techniques du processeur font que la durée aléa toire d’exécution de chaque travail suit une loi exponentielle de taux m. Le cahier des charges pour ce processeur exige que les deux spécifications ci dessous soient respectées : 1) le temps de « réponse » moyen (attente et exécution) doit être inférieur à une durée donnée : u ; 2) dans 90 % des cas, le temps de réponse Τ doit être inférieur à k # θ (k est un entier, en pratique de l’ordre de 2 ou 3). Nous reprenons ci-dessous les résultats établis pour la file M/M/1. Il faudra donc trouver un processeur tel que la vitesse d’exécution pour les tra vaux considérés, soit m, vérifie : 1) t 5
1 1 , u soit m . l 1 (on savait déjà que nécessairement : m . l) ; u m2l
© Dunod – Toute reproduction non autorisée est un délit.
2) P 3 T , ku 4 > 0, 9. Or : P 3 T , ku 4 5 3
ku
0
f ( t ) # dt, soit : 3
(m2l)ku
0
e2x dt, en posant x 5 ( m 2 l) t.
D’où : 1 2 e2(m2 l)ku > 0, 9, c’est-à-dire 0, 1 > e2(m2 l)ku . En prenant le loga rithme népérien de chaque membre : 22,3 > 2 ( m 2 l) # k # u. Finalement : m2l>
2, 3 ku
soit m > l 1
2, 3 ku
.
Il y a donc deux cas : • pour k . 2,3 , c’est la spécification 1 qui détermine m : m . l1 1/u ; • pour k , 2,3 , c’est la spécification 2 qui détermine m : m . l1 2, 3/ku. • pour k 5 2,3 , les deux spécifications donnent m 5 l1 1/8. 291
Chapitre 7 • Les phénomènes d’attente
EXERCICES
*7.1 La file d’attente la plus simple : file M/M/1 Dans un phénomène d’attente, les arrivées sont poissoniennes et le service exponen tiel. Un seul employé dessert un guichet ouvert de 10 heures à 16 heures, sans inter ruption. Le nombre moyen des clients est 54 par jour ; la durée moyenne du service, 5 minutes. 1. On demande de déterminer : le nombre moyen, n des clients dans le système d’attente ; le nombre moyen, v, des clients dans la file ; le temps moyen d’attente, tf. 2. Quelle est la probabilité d’attendre plus d’une demi-heure ?
**7.2 La file d’attente avec plusieurs stations banalisées : file M/M/S Le tableau ci-contre résume les observations qu’on Nombre Fréquence a faites sur un système d’attente, dans lequel la durée d'arrivées observée moyenne du service est de 8 min 3/4. 0 0 1. On envisage un service proportionnel au 1 4 1 nombre de clients présents ; quel est le nombre 2 7 maximal de stations à prévoir, dans cette hypo 13 3 thèse, de manière à couvrir sans attente le ser 18 4 vice de la clientèle (on admettra qu’il n’y a pas 5 18 d’attente appréciable si plus de 99 % des clients 6 15 sont servis immédiatement). 7 9 2. On trouve que la solution, dans l’hypothèse 8 8 précédente, est coûteuse. On envisage alors 4 9 de réduire le nombre des stations ; quel est le 10 2 nombre optimal de stations à mettre en œuvre 11 1 si le coût d’attente d’un client est de 90 uni 12 1 tés monétaires/heure, tandis que le salaire d’un 13 0 guichetier peut être estimé à 48 u.m./h ? Commentaires a) Le nombre des entrées dans le système, objet du tableau ci-dessus, a été observé pendant des périodes d’un quart d’heure. b) On pourra établir le bilan des opérations pour une journée de travail de 8 heures.
1. C’est-à-dire que le nombre de stations en opération est égal au nombre de clients présents. 292
Exercices
**7.3 Cas de plusieurs stations à taux de service différent On considère un phénomène d’attente constitué par un système ouvert à deux sta tions. Le taux moyen d’arrivée des clients est l et la loi de ces arrivées est la loi de Poisson. Les deux stations ont un taux moyen de service différent. La première sta tion S1 a un taux μ1, la seconde station S2 a un taux m2 ; toutefois, dans ces deux sta tions, la loi des durées de service est la loi exponentielle. On admet que, si un client se présente et que les deux stations sont inoccupées, il choisit l’une des stations par tirage 1 au sort donnant la même probabilité, soit , à S1 et S2 d’être choisies. En ce qui concerne 2 ces clients la règle est : premier arrivé, premier au service. 1. On demande d’établir les équations différentielles des probabilités d’état en appelant : pn(t) où n 5 0, 2, 3, 4, c (i 1), la probabilité pour qu’il y ait n clients dans le système ; p0.1(t) la probabilité pour qu’il y ait 1 client dans le système et que S1 soit inoccupée ; p1.0(t) la probabilité pour qu’il y ait 1 client dans le système et que S2 soit inoccupée. l
2. On fait l’hypothèse que c 5 m 1 m , 1, cette condition entraînant 1 2 l’existence d’un régime permanent. Donner les équations d’état en régime permanent. 3. Exprimer, p *0, p *0,1, p *1, 0, p *2, p *3, c, p *n, c en fonction de : l, m1 et m2. 4. Calculer n qui représente le nombre moyen de clients dans le système en régime permanent.
*7.4 Réparations de machines : files M/M/2/6, …, M/M/6/6
© Dunod – Toute reproduction non autorisée est un délit.
Un atelier compte six machines, chacune ayant un taux de panne poissonien égal à 1/6 (par heure). Deux mécaniciens sont chargés des réparations : les durées des répa rations, valant en moyenne à 4 heures, suivent une loi exponentielle. 1. Quel est le nombre moyen de machines en panne en régime permanent ? 2. Même question pour n 5 3, puis n 5 4, …, puis n 5 6.
**7.5 Cabinet médical : files M/M/1 et M/M/2 Un médecin spécialiste a observé que la durée moyenne d’une consultation est de 15 minutes. Il se dit qu’en convoquant ses patients à des heures fixées, séparées par un intervalle de 20 min, il verra décroître l’excessive occupation de son cabinet. La salle d’attente est très grande…
293
Chapitre 7 • Les phénomènes d’attente
En fait, la durée des consultations suit une loi exponentielle et l’arrivée des clients, qui ont toujours une bonne excuse (encombrements, difficultés à trouver un stationne ment, etc.) pour se présenter aléatoirement, peut être assimilée à une loi de Poisson de moyenne 3 arrivées par heure. 1. Calculer le temps d’attente et les probabilités (en se limitant à celle supérieures à 0,05) pour qu’il y ait 1, 2, c personnes chez le médecin. 2. Quelle est la probabilité qu’un patient (c’est le cas de le dire !) attende plus d’une heure ? plus de deux heures ? 3. a) Qu’arriverait-il si le médecin décidait de ne convoquer ses patients que toutes les 25 min car la fréquentation moyenne de son cabinet est tombée à 2,4 patients/h. ? b) Quel serait l’intervalle au-delà duquel moins de 10 % des patients auraient à attendre ? 4. Le médecin s’adjoint un jeune confrère (mais qui n’apporte pas de nou velle clientèle) ; tout patient peut-être reçu indifféremment par l’un ou l’autre des médecins. a) Pendant quelques jours, des rendez-vous étant déjà pris, l’intervalle de 20 minutes entre convocations est maintenu. Calculer le temps moyen d’attente et montrer que la probabilité d’une attente supérieure à 1 heure est négli geable. b) Pour que chacun des deux médecins assure trois consultations par heure en moyenne, il faudrait convoquer les patients à des intervalles de 10 min (il en arriverait en moyenne 6 par heure). Quels seraient alors le temps moyen d’attente ? La probabilité pour que l’attente dépasse 1 heure ? c) Les deux médecins décident de ne pas imposer à leurs patients une attente moyenne supérieure à 10 min. Combien doivent-ils recevoir de patients en moyenne par heure ? Quelle est alors la probabilité d’attendre plus d’1 heure ?
*7.6 Poste de douane et… processus de naissance et de mort À un poste de douane, habituellement peu fréquenté, un seul agent est normalement affecté au contrôle des automobiles ; toutefois dès qu’au moins trois autos sont pré sentes, un second douanier vient à la rescousse et contrôle les voitures en parallèle avec son collègue et indépendamment. Chaque voiture n’est contrôlée qu’une fois. Une étude statistique a permis d’établir que les arrivées aléatoires des autos sont régies par une loi de Poisson de taux l et, d’autre part, que les durées aléatoires des contrôles suivent une loi exponentielle, de durée moyenne 1/m.
294
Exercices
1. a) Donner la condition pour que le poste de douane ne soit pas engorgé. b) Associer un processus de Markov et tracer son graphe simplifié. On notera Ek, l’état pour lequel k voitures sont présentes. Quel processus particulier reconnaissez-vous ? (justifier en détail et exprimer lk pour tout k > 0 ; détermi ner mk selon que k < 2 ou k > 3). 2. a) On suppose l’existence d’un régime permanent. Soit alors p*k , la pro babilité de Ek. En posant C 5 l/m, exprimer p*k en fonction de p*0, C et k (distinguer k < 2 et k > 3). à l’aide de la relation a p*k 5 1 ; on écrira cette somme `
b) Évaluer
p *k
k50
sous la forme 1 5 p*0 1 p*1 1 p*2 ( 1 1 q 1 q2 1 q3 1 c) .
1 . On rappelle que pour q , 1, 1 1 q 1 q2 1 q3 1 c5 12q 22C Montrer alors que p *0 5 . 2 1 C 1 C2 3. a) Prouver que le nombre moyen d de douaniers occupés au contrôle des voitures est : d 5 2 2 ( 2 # p*0 ) 2 ( 1 # p*1 ) 2 ( 1 # p*2 ) . b) En remplaçant alors p*0 , p*1 et p*2 par leur valeur en fonction de C, prouver que d 5 C. Interpréter cette relation en terme de conservation de clients (égalité du taux d’arrivée des voitures à la douane et du taux de départ de voitures contrôlées).
© Dunod – Toute reproduction non autorisée est un délit.
*7.7 Comment améliorer un système informatique ? (Files M/M/1/S et M/M/2/S) Un ordinateur, initialement monoprocesseur, peut placer en mémoire de masse les données relatives à quatre travaux élémentaires (job), tout en traitant un cinquième en mémoire centrale. Si l’ordinateur n’est pas saturé, les travaux prennent place – lors de leur arrivée – dans la file (avec la discipline : premier arrivé, premier servi) ; sinon le sixième est régulièrement refusé. Les arrivées aléatoires des travaux suivent une loi de Poisson de taux l et les durées aléatoires des services, une loi exponen tielle de taux m. 1. Modéliser le problème à l’aide d’un processus de naissance et de mort comportant six états (indicés de 0 à 5). Tracer le graphe des transitions entre t et t 1 dt. Donner la notation de Kendall de cette file (A/B/m/n). Ce processus est-il fortement ergodique ? Justifier en détail. 2. On se place en régime permanent ; calculer les probabilités des états en fonction de l, m et p*0 (probabilité d’avoir aucun travail en traitement). Puis calculer p*0. 295
Chapitre 7 • Les phénomènes d’attente
Rappel : 1 1 a 1 a2 1 c1 ak 5 (1 2 ak 1 1) / (1 2 a) si a 2 1 ; 5 k 1 1 si a 51. 3. A.N. En moyenne, il arrive 24 travaux par minute, traité chacun en deux secondes. Quelle est l’utilisation U du processeur (probabilité que le pro cesseur soit actif)? Quel est le temps moyen d’unité centrale (processeur) perdu par heure ? Quel est le nombre moyen de travaux r refusés par heure (« déchet ») ? Vérifiez que l ( 1 2 p*5 ) 5 m # U et interpréter cette relation en termes de conservation des clients. 4. Ce déchet étant jugé inacceptable, on a le choix entre deux politiques : a) doubler la mémoire de masse (on pourra alors accepter 9 travaux au maximum dans le système) ; on notera Ur1, et rr1 (au lieu de U et r au 3.) b) installer un second processeur, travaillant en parallèle avec le premier (on pourra alors traiter deux travaux simultanément et six pourront prendre place, au maximum dans le système). Dans ce cas, Ur2 désigne le nombre moyen de processeurs actifs et rr2, le déchet. Reprendre la modélisation dans chacun de ces deux cas puis calculer Ur et le nombre moyen rr de travaux refusés par heure. Quel serait votre choix ? Donner brièvement ses implications financières. 5. On décide d’installer un second processeur (comme au 4-b) mais en augmentant en outre la mémoire de masse : a) si cette mémoire est doublée par rapport à la configuration initiale (cf. le 1), donner la notation de Kendall de cette file d’attente, évaluer Us et rs et commenter ces résultats ; b) si cette mémoire était illimitée : donner la condition d’existence d’un régime permanent et évaluer Ut et rt. Retrouver la valeur (simple) de Ut à l’aide de la notion de conservation des clients.
296
8
La programmation
linéaire
Soit un phénomène économique y, résultat de plusieurs effets élémentaires : e1, en, c, e . n
Si l’on suppose que les effets élémentaires considérés sont additifs, on a : y 5 e1 1 e2 1 c1 en ;
Par exemple, y pourrait représenter une quantité de produit, qui est fabriqué dans n ateliers ; si l’on suppose, en outre, que chacun des effets élémentaires est proportion nel à sa cause xi, on peut écrire : (8.1) y 5 a1x 1 1 a 2 x 2 1 c1 a n x n c a1, a2, , an étant les coefficients de proportionnalité. Pour notre exemple, ei représenterait la quantité fabriquée dans un atelier i, qui, elle-même, est proportionnelle au temps de fabrication xi (ai étant une vitesse de fabrication) : ei 5 a i x i. L’égalité (8.1) est du premier degré par rapport aux variables x1, x2, c, xn : on dit encore qu’elle est une fonction linéaire de ces variables. Il arrive que, dans beaucoup de problèmes, les m 1 1 effets soient tous propor tionnels aux causes (au moins de façon suffisamment approchée) ; le problème peut alors se décrire uniquement au moyen d’équations linéaires : y 1 5 a11x 1 1 a12 x 2 1 c1 a x 1n n
…………………………………………… y m 5 a m1x 1 1 am2 x 2 1 c1 a x mn n
y m 1 1 5 a m 1 1,1x 1 1 am 1 1,2 x 2 1 c1 a m 1 1, n x n Comme nous l’avons déjà précisé dans le chapitre 1, en limitant supérieurement ou inférieurement les m premiers effets : y1 < b1 ou y1 > b1 ; y2 < b2 ou y2 > b2 ; c ; y < b ou y > b , m
m
m
m e
c’est-à-dire qu’en écrivant m contraintes, on permet l’optimisation du ( m 1 1 ) effet : 3 max 4 y m 1 1 5 lj # x 1 1 l2 # x 2 1 c1 ln # x m où lj 5 am 1 1, j pour j = 1 à n est la fonction économique du problème ; ym+1 est souvent noté : z ; lj 5 am 1 1, j est le plus souvent noté cj.
Chapitre 8 • La programmation linéaire
Les m contraintes, si elles sont compatibles, délimitent dans un espace à n dimensions (autant que de variables) un hypervolume convexe1 à l’intérieur ou à la périphérie duquel se trouve(nt) le (ou les) point(s) dont les coordonnées ( x 1, x 2, c, x n ) satisfont aux contraintes. En outre les variables x1, x2, c, xn sont toujours positives ou nulles. La programmation linéaire a pour objet de résoudre le problème d’optimisation qui consiste à maximiser une fonctionnelle linéaire (la « fonction économique ») dans le domaine ainsi défini. Nous pensons qu’il sera plus adapté, au niveau que nous nous fixons, de l’exposer sur un exemple concret.
8.1 Exemple de programme géomé trique
linéaire
– Aspect
8.1.1 Problème de maximisation Une entreprise peut fabriquer, sur une machine donnée, travaillant 45 heures par semaine2 trois produits différents P1, P2 et P3. Cette machine peut fabriquer un seul type de produits à la fois ; ses temps de réglage sont négligeables. Une unité du pro duit P1 laisse un profit net de 4 euros, une de P2, un profit de 12 euros, et enfin, pour P3, de 3 euros. Les rendements de la machine sont, respectivement pour les trois pro duits, et dans le même ordre : 50, 25 et 75 unités par heure. On sait d’autre part, grâce à une étude de marché, que les possibilités de vente ne dépassent pas 1 000 unités de P1, 500 unités de P2 et 1 500 unités de P3, par semaine. On se pose le problème de répartir la capacité de production entre les trois produits, de manière à maximiser le profit hebdomadaire.
8.1.2 Formulation algébrique Posons maintenant le problème sous forme algébrique. Appelons x1, x2 et x3 les quan tités respectives (inconnues) des produits P1, P2 et P3 que nous avons à fabriquer pour obtenir le profit maximal. Les quantités des produits P1, P2 et P3 ne doivent pas dépasser, respectivement 1 000, 500 et 1 500 par semaine ; on peut donc écrire : 1) x 1 < 1 000 ;
2) x 2 < 500 ; 3) x 3 < 1 500. D’autre part, le temps employé pour produire x1 unités de P1 est en heures : 1 1 x1 3 ; celui qui correspond à la fabrication de x2 unités de P2 est : x 2 3 ; enfin, 50 25 1 pour confectionner x3 unités de P3, il faudra x 3 3 heures. Or, la somme des temps 75
1. “Convexe” signifie que si l’on prend deux points situés à l’intérieur (ou à la surface) de ce volume d, le segment les joignant ne sort pas de d. 2. Ce qui n’entraîne pas, bien sûr, que chaque ouvrier doive travailler 45 h par semaine ! 298
8.1 Exemple de programme linéaire – Aspect géométrique
de fabrication ne doit pas dépasser 45 h, disponibilité totale de la machine. On aura donc (en négligeant les durées des réglages de la machine lors des changements de gammes de produits) : 1 1 1 x1 1 x2 1 x 3 < 45 50 25 75 ou encore, en multipliant les deux membres de cette inégalité par le dénominateur commun 150 : 4) 3x 1 1 6x 2 1 2x 3 < 6 750. Les inégalités 1), 2), 3) et 4) sont les contraintes exprimées par l’énoncé ; les variables y figurent au premier degré : ces contraintes sont pour cela appelées linéaires. On les appelle par la suite : « contraintes explicites ». En réalité, il y a encore, dans l’énoncé, trois contraintes cachées ; les quantités x1, x2 et x3 ont un sens physique précis : ce sont des nombres d’unités de produits dont la fabrication est envisagée ; elles ne peuvent donc qu’être positives ou nulles ou, comme on dit, non-négatives. On écrira : 5) x 1 > 0 ; 6) x 2 > 0 ; 7) x 3 > 0. Ces contraintes sont appelées par la suite : « contraintes implicites ». Il reste enfin à exprimer l’objectif du problème, qui est de choisir x1, x2 et x3 de manière que le profit hebdomadaire soit maximal. Le profit z est égal à : 4x 1 1 12x 2 1 3x 3 ( euros ) , cette exigence pourra être notée : 8) 3 max 4 z 5 4x 1 1 12x 2 1 3x 3 ; on remarque que cette fonctionnelle, appelée fonction économique, est elle aussi linéaire.
8.1.3 Signification géométrique
© Dunod – Toute reproduction non autorisée est un délit.
Cas de n 5 2 variables Nous commencerons par examiner un sous-problème du problème précédent. Sup posons que l’entreprise ait éliminé le produit P3 de sa gamme et ait réduit l’activité de l’atelier à 35 heures par semaine. Le problème devient :
1 1 x1 1 x2 < 35 soit x1 1 2x2 < 1 750 ; 50 25 x 1 > 0 ; x 2 > 0 ; 3 max 4 z 5 4x 1 1 12x 2. Rien ne nous empêche ici de recourir à la méthode géométrique, puisque nous n’avons que deux variables et qu’il est facile de représenter le problème dans l’espace à deux dimensions (le plan) dont les axes porteront les quantités x1 et x2 . Toute solution du problème est représentée par un point du plan, de coordonnées x1 et x2, déterminées. Les contraintes x 1 > 0 et x 2 > 0 font que nous pourrons nous contenter du premier quadrant du plan dans lequel les deux coordonnées sont positives ou nulles. x1 < 1 000 ; x2 < 500 ;
299
Chapitre 8 • La programmation linéaire
Figure 8.1
Les contraintes sont aisées à représenter. Ainsi la contrainte x 1 < 1 000 signi fie que dans le quadrant positif, les points dont la coordonnée x1 excède 1 000 sont exclus du domaine des solutions. Or, x 1 5 1 000 représente une droite D1 verticale, orthogonale à l’axe Ox1 au point x 1 5 1 000 : à toutes les solutions respectant cette contrainte, sont associés des points compris entre D1 et l’axe Ox2 (et au-dessus de l’axe Ox1). On raisonnerait de même pour la contrainte x2 < 500 (la droite D2, hori zontale, a pour équation x 2 5 500). Si le problème ne comportait que les contraintes 0 < x 1 < 1 000 et 0 < x 2 < 500 le domaine « admissible », c’est-à-dire le domaine des points associés aux solu tions vérifiant ces contraintes, serait le rectangle OABC. Mais x 1 1 2x 2 5 1 750 est aussi l’équation d’une droite D3 dont l’intersection avec la droite D1 est le point E ( x 1 5 1 000, x 2 5 375 ) et l’intersection avec D2 est le point F ( x 1 5 750, x 2 5 500 ) . Le domaine des solutions admissibles d de notre problème est donc le polygone convexe OAFEC, à la frontière ou à l’intérieur duquel se trouvent les points associés à ces solutions admissibles. Jusqu’à présent nous ne nous sommes occupés que des contraintes ; pour choisir parmi les solutions admissibles une solution qui soit optimale, nous devons chercher à maximiser la fonctionnelle z 5 4x 1 1 12x 2 (« fonction économique »), cf fig. 8.2. L’ensemble (ou « lieu ») des points tels que z 5 0, est la droite Δ0 d’équation 1 x 2 5 2 x 1 ; elle n’a qu’un seul point commun avec le domaine admissible : c’est le 3 point Ο (production nulle et donc bénéfice nul !). Le lieu des points tels que z 5 4 000 est la droite Δ4 000, parallèle à Δ0 et passant par le point C ( x1 5 1 000, x2 5 0 ) . Pour une valeur donnée arbitrairement à la fonction économique, soit z 5 a, on peut a montrer que la distance de l’origine Ο à la droite Δα est : OH 5 . 2 "4 1 122 Ainsi la valeur α de la fonction économique est-elle proportionnelle à OH. Dès lors, pour maximiser z, il suffira de tracer une droite parallèle à Δ0 dont la distance à 300
8.1 Exemple de programme linéaire – Aspect géométrique
l’origine soit la plus grande possible et qui ait encore au moins un point en commun avec le polygone d des solutions admissibles OAFEC.
Figure 8.2
© Dunod – Toute reproduction non autorisée est un délit.
Il est facile de voir que cette droite est obtenue pour a 5 9 000 ; cette droite a un seul point en commun avec le polygone : c’est le point F. D’où la solution optimale :
x *1 5 750, x *2 5 500, z* 5 9 000 euros. Cette méthode géométrique permet de résoudre tous les programmes linéaires à deux variables ; en résumé, elle consiste à écarter la droite de la fonction économique pas sant par un point initial évident (ici O), parallèlement à elle-même, tant que l’inter section de la droite courante avec le polygone d des solutions admissibles n’est pas vide. La résolution s’arrête lorsque la droite courante n’a plus qu’un seul point de contact (ou une arête de contact) avec ce polygone (on a évidemment supposé que d n’est pas vide c-à-d que les contraintes ne sont pas contradictoires). N.B. Si on avait z = 4x1 + 8x2, les droites Dα seraient parallèles à FE : alors tous les points de l’arête seraient optimaux, y compris les sommets F et E.
Cas de n 5 3 variables Rien ne nous empêche ici de recourir encore à la méthode géométrique puisque nous n’avons que trois variables et qu’il est possible de représenter en clair les trois axes (orthonormés) qui porteront les quantités x1, x2 et x3. A priori, toute solution du problème est représentée par un point de l’espace, de coor données x1, x2 et x3, déterminées. Reportons nous à la formulation du 8.1.2 : Les contraintes 5), 6) et 7) signifient d’ailleurs que nous pourrons nous contenter de représenter l’octant positif de ce système de coordonnées, puisque nous avons :
x1, x2 et x 3 > 0
(figure 8.3). 301
Chapitre 8 • La programmation linéaire
Nous allons voir que les contraintes 1) à 4) s’interprètent également d’une manière très aisée. Par exemple, la contrainte 1) signifie que, dans l’octant positif, les points dont la coordonnée x1 excède 1 000 sont exclus de l’espace des solutions. Or, x 1 5 1 000 représente un plan P1 orthogonal à l’axe Οx1, le coupant au point x 1 5 1 000, x 2 5 0, x 3 5 0 ; toutes les solutions éventuelles du problème seront donc comprises, dans l’octant positif, entre le plan de base x2Ox3 et le plan x 1 5 1 000. On raisonnerait de même pour les contraintes 2) et 3). En fait, les plans :
P1 : x 1 5 1 000, P2 : x 2 5 500, P3 : x 3 5 1 500 délimitent le parallélépipède OABCDEFG, à l’intérieur ou à la surface duquel se trouvent la (ou les) solution(s) éventuelle(s). D’autre part 3x 1 1 6x 2 1 2x 3 5 6 750 est aussi l’équation d’un plan P4, dans l’espace à trois dimensions et la contrainte 4) signifie que les points-solutions doivent nécessai rement se trouver aussi à l’intérieur ou à la surface du tétraèdre OA rB rCr, formé par les trois plans de coordonnées et le plan P4 ; le plan P4 coupe Ox1 en A r (2 250, 0, 0), Ox2 en B r (0, 1 125, 0) et Ox3 en Cr (0, 0, 3 375). Il est facile de voir que le plan P4 coupe la droite FG au point Ρ (1 000, 125, 1 500) ; en effet, FG est l’intersection des plans : b
x 1 5 1 000
x 3 5 1 500 et P4 a comme équation :
3x 1 1 6x 2 1 2x 3 5 6 750 ; si l’on remplace, dans cette équation x1 et x3 par leur valeur, on obtient : d’où :
3 000 1 6x 2 1 3 000 5 6 750,
6x 2 5 750 et x 2 5 125. On établirait de même que P4, coupe GD en Q (250, 500, 1 500) et GB en R (1 000, 500, 375). C’est le solide commun au parallélépipède OABCDEFG et au tétraèdre (pyramide tri angulaire de sommet O : OA rB rCr) qui contiendra les solutions ; on constate qu’il faut enlever au parallélépipède le (petit) tétraèdre GPQR. Finalement, pour satisfaire aux contraintes, un point solution doit nécessairement se trouver à l’intérieur ou à la surface du polyèdre OABCDEFPQR, noté d. Figure 8.3
302
8.1 Exemple de programme linéaire – Aspect géométrique
Jusqu’à présent, nous ne nous sommes occupés que des contraintes ; pour choisir entre les solutions que nous venons de déterminer celle (celles) qui est (sont) opti male(s), nous devons chercher à maximiser la fonction économique :
z 5 4x 1 1 12x 2 1 3x 3. Pour chaque point M ( x 1 5 j , x 2 5 h, x 3 5 u) de l’espace des solutions, z a une valeur donnée : z ( j , h, u ) 5 4 j 1 12 h 1 3 u. Par exemple, pour le point C (0, 500, 0), on a : z 5 ( 4 3 0 ) 1 ( 12 3 5 000 ) 1 ( 3 3 0 ) 5 6 000. Mais, les points qui, tel C, donnent à z la valeur 6 000 forment un plan P(z 56 000) d’équation :
4x 1 1 12x 2 1 3x 3 5 6 000. Représentons ce plan, qui coupe les axes Ox1, Ox2 et Ox3 aux points I (1 500, 0, 0), C (0, 500, 0) et J (0, 0, 2 000) (figure 8.4). Son intersection avec le polyèdre d est le pentagone STUVC. Tout plan Pz, quelle que soit la valeur de z : z 5 4x 1 1 12x 2 1 3x 3, représente un plan parallèle au plan P(z 56 000). La distance de l’origine à un plan Pz est : OH 5
z
© Dunod – Toute reproduction non autorisée est un délit.
"42 1 122 1 32 z 5 . 13 On a donc : z 5 13 # OH. Dès lors, pour maximiser z, il suffira de tracer un plan parallèle au plan ICJ, dont la distance à l’origine soit la plus grande possible et qui ait encore au moins un point commun avec le polyèdre OABCDEFPQR. Il est facile de voir que ce plan est obtenu pour z 5 11 500.
Figure 8.4
303
Chapitre 8 • La programmation linéaire
Il coupe Ox1 en α (2 875 ; 0 ; 0), Ox2 en β (0 ; 958,33 ; 0) et Ox3 en γ (0; 0; 3 833,33). Son unique point de contact avec le polyèdre des solutions est le point Q (250, 500, 1 500), d’où la solution optimale : x *1 5 250 ; x *2 5 500 ; x *3 5 1 500 ; z * 5 11 500.
8.1.4 Raisonnement économique On remarque qu’un raisonnement purement économique suffit, ici, à résoudre la question. En effet, les rendements horaires peuvent aussi être exprimés en unités monétaires ; ils sont respectivement, pour les produits P1, P2 et P3 : 4 euros 3 50 5 200 euros/h, 12 euros 3 25 5 300 euros/h ; 3 euros 3 75 5 225 euros/h. Il apparaît donc que, si l’on désire maximiser le profit, il faut fabriquer d’abord la plus grande quantité possible du produit P2, puisqu’il fournit le profit horaire le plus élevé ; s’il reste du temps, on fabriquera ensuite des unités P3, dont le rendement monétaire vient au second rang ; en dernier lieu, si l’on n’a pas épuisé le temps de production (45 h), il faudra produire des unités de P1. En fait, ce raisonnement s’appuie sur le fait que, si l’on voulait fabriquer les quantités maximales des trois produits, on devrait faire fonctionner la machine pen dant 60 heures. Comme on dispose de 45 heures seulement, il est indispensable de les employer au mieux. Il n’est pas difficile de voir que la solution consiste à fabriquer toutes les uni tés P2, ce qui occupe la machine durant 20 heures, puis toutes les unités de P3, ce qui occupe encore la machine pendant 20 heures ; finalement, il ne reste plus que 5 heures pour fabriquer des unités de P1, ce qui correspondant à une quantité de 5 3 50 5 250 unités de P1. Le résultat s’établit donc ainsi : unités de P1 : 250 ; unités de P2 : 500 ; unités de P3 : 1 500 ; profit total : ( 250 3 4 ) 1 ( 500 3 12 ) 1 ( 1 500 3 3 ) 5 11 500 euros/semaine. Mais la méthode que nous venons d’utiliser n’a pas un caractère général. Notre but est d’introduire un algorithme permettant la résolution générale des programmes linéaires.
8.1.5 Difficultés de généralisation Évidemment la résolution géométrique ne peut pas s’étendre au cas d’un nombre de variables supérieur à trois, puisqu’il n’est pas possible d’effectuer des représen tations géométriques dans un espace à n dimensions dès que n dépasse 3. D’autre part, même avec seulement 3 variables, le raisonnement économique échoue lorsque le nombre de contraintes augmente. Supposons seulement que nous ajoutions ici une contrainte de capacité de stockage : x 1 1 2x 2 1 2x 3 < 4 000
304
8.1 Exemple de programme linéaire – Aspect géométrique
© Dunod – Toute reproduction non autorisée est un délit.
On peut encore espérer, par des raisonnements du type « fausse hypothèse », et des substitutions mutuelles d’unités des différents produits, se tirer d’affaire et trouver le nouvel optimum (point W) que confirmerait la construction géométrique :
x1 5 375 ; x2 5 500 ; x3 5 2 625/2 ; z 5 11 437, 5. Notons qu’en W, la variable x3 n’a pas une valeur entière. En effet, la présence d’une nouvelle contrainte conduit à tronquer le polyèdre des solutions, qui se réduit alors au solide OABCDEFXWR et c’est le point W dont les coordonnées forment la solution optimale. Mais, avec m contraintes (m grand), il n’est plus possible de s’y retrouver dans des raisonnements de ce type, qui deviennent par trop combinatoires. Il faut donc tenter d’utiliser les informations obtenues jusqu’ici pour tenter de géné raliser le problème par une autre voie. Nous allons énoncer, dans le théorème qui suit, une propriété qui nous permettra de caractériser une solution optimale d’un programme linéaire (PL). Théorème. Si l’ensemble des contraintes d’un programme linéaire forme un polyèdre1 non vide, il existe (au moins) une solution optimale qui est un sommet de ce polyèdre. Preuve. Le polyèdre formé par les contraintes du PL étant supposé non vide, le PL admet au moins une solution optimale. Nous allons supposer dans un premier temps, que cette solution est unique. Ci-dessous, z désigne un point du polyèdre (et non pas la fonction économique) La démonstration se fait par récurrence sur la dimension d du polyèdre. Si d 5 0, le polyèdre se réduit à un point qui est aussi un sommet, le résultat est donc vérifié. Supposons maintenant d . 0. Montrons que le point représentatif de la solution ne peut se trouver à l’intérieur du polyèdre. Soit z un point situé à l’intérieur du polyèdre et supposons que z corresponde à la solution optimale. Considérons Pz l’hyperplan passant par z et dont la direction est fixée par les coefficients de la fonction écono mique. Pz partage le polyèdre en deux parties non vides. Il existe alors un point z r à l’intérieur de l’une de ces deux parties, correspondant à une solution réalisable du PL dont la valeur sera strictement supérieure à la valeur du point z. Cela contredit le fait que z soit la solution optimale. La solution optimale est donc située sur une face du polyèdre. Une face d’un polyèdre de dimension d étant un polyèdre de dimension dr , d, en appliquant à nouveau le même raisonnement, nous avons montré le résul tat, mais seulement lorsque la solution optimale est unique. ❑ Dans le cas général où la solution optimale n’est pas nécessairement unique (cf le N.B. du cas de n = 2 variables), un raisonnement analogue peut s’appliquer, dans lequel le point z r considéré correspond à une solution de valeur supérieure ou égale (mais non nécessairement strictement) à la valeur du point z. Le théorème est alors démontré. L’ensemble des contraintes d’un PL ne forme pas toujours un polyèdre convexe. En effet, il peut arriver que cet ensemble comporte des points à l’infini et donc forme un polytope convexe ouvert (un polyèdre étant un polytope fermé). Dans ce dernier 1. Par définition un polyèdre est fini (il ne possède pas de points à l’infini). 305
Chapitre 8 • La programmation linéaire
cas, bien que des solutions réalisables du PL existent, il n’existe pas nécessairement de solution optimale (les solutions optimales peuvent être rejetées à l’infini). Alors, si une solution optimale finie existe, on peut montrer avec une démonstration similaire à la précédente qu’il existe une solution optimale située en un sommet du polytope. Mais, dans les applications de R.O. ce cas est pratiquement exclu : les ressources, les temps, les capacités, etc. y sont en effet finis ! Dans d’autres cas, les contraintes capacités peuvent être contradictoires : alors le polyèdre est vide et le PL est impossible. On pourrait alors en déduire qu’il suffit de déterminer les coordonnées de tous les sommets du polyèdre et de calculer la valeur de la fonction économique qui corres pond à chacun d’eux : il resterait à choisir la plus grande de ces valeurs. Mais, s’il y a n variables et m contraintes, il y a n 1 m plans, dont les intersections n à n sont au nombre de : (m 1 n)! C nn 1 m 5 , m!n! pour n 5 15 et m 5 10, on a 3 268 760 points d’intersection et pourtant il ne s’agit encore que d’un petit programme linéaire. Même avec de très puissants ordinateurs, d’aujourd’hui ou de demain, l’énumération de tous les sommets est impraticable dès que n et m dépassent 20 : elle conduirait à des durées prohibitives sur des P.L. de taille industrielle, pouvant dépasser des milliards d’années, ou plus !1 Il est exclu d’énumérer dans le combinatoire ! L’algorithme le plus connu pour la résolution des programmes linéaires : l’algo rithme du simplexe, au lieu de calculer la valeur de z pour tous les sommets (donc en les énumérant), la calcule seulement pour une suite de sommets telle que la valeur de z pour le nième ne soit pas inférieure à la valeur z pour le ( n 2 1 ) ième. Ainsi, on est sûr de parvenir à l’optimum au bout d’un nombre de pas fini, puisque le nombre de sommets est fini, à condition que la valeur de la fonction économique z augmente strictement pour un certain nombre de ces pas. Rappelons que l’on maximise z. Les sommets qui constituent la suite envisagée sont adjacents, c’est-à-dire le kième et le ( k 1 1 ) ième sont les extrémités d’une même arête ; il est donc nécessaire que, quelque soit le sommet de départ, on puisse toujours trouver, étant donné un sommet auquel on est parvenu, un sommet adjacent dont les coordonnées donnent une valeur non inférieure à z, tant qu’on n’est pas arrivé à l’optimum. Or, ceci est possible, en raison d’une propriété des polyèdres engendrés par des contraintes linéaires : la « convexité ».
1. Les points d’intersection ne sont pas tous des sommets du polyèdre des solutions dans l’espace à n dimensions ; autrement dit, les coordonnées de certains de ces points ne vérifient pas une ou plusieurs contraintes. Ainsi, le polyèdre que nous avons considéré plus haut, comme exemple, ne compte que 10 sommets, alors qu’il existe @37 5 35 points d’intersection des plans 3 à 3. Mais ce fait ne restreint pas le problème, puisqu’il faudrait examiner toutes les intersections pour détermi ner les sommets « admissibles » c’est-à-dire vérifiant toutes les contraintes. 306
8.2 Algorithme du simplexe : méthode algébrique…
© Dunod – Toute reproduction non autorisée est un délit.
Considérons d’abord (figure 8.5) une montagne en forme de pain de sucre. Partant d’un point quelconque C, on peut toujours atteindre le som met S, pourvu qu’on monte toujours (les itiné raires comportant des paliers horizontaux limités sont autorisés). Ce n’est pas vrai pour une mon tagne qui présenterait un sommet « parasite » S r, Figure 8.5 Figure 8.6 auquel on risquerait de parvenir en appliquant la méthode précédente (figure 8.6). Cela s’explique par le fait que la première montagne est convexe (si l’on joint deux points quelconques de l’intérieur ou de la sur face, le segment de droite qui les joint est tout entier contenu dans le volume), tandis que la seconde ne l’est pas. Or, tout polyèdre (non vide) engendré par des contraintes linéaires est nécessairement convexe et l’on peut trou ver au moins un chemin (figure 8.7) qui, à partir de n’importe quel sommet, conduise Figure 8.7 (de sommet en sommet adjacent) au sommet donnant la valeur maximale à la fonction éco nomique (autrement dit : il existe toujours au moins un sommet adjacent, situé, par rapport à l’origine au-delà du plan (ou sur le plan) de la fonction économique correspondant à un sommet quelconque, à moins que ce der nier ne soit l’optimum). Ici c’est le chemin CGHS. En bref, l’algorithme du simplexe a un fondement purement géométrique : il consiste, en disposant d’un point de départ, qui est un sommet du polyèdre, supposé connu, de passer lors de toute itération d’un sommet M à un sommet voisin M r – c’est-à-dire à décrire une arête du polyèdre – en lequel la valeur de la fonction économique, est meilleure (ou au moins aussi bonne) qu’en M. Lorsqu’on atteint un sommet Q pour lequel aucun sommet voisin n’est meilleur, alors l’algorithme s’arête : le sommet Q est optimal.
8.2 Algorithme
du simplexe : méthode algébrique,
méthode des tableaux
8.2.1 Méthode algébrique du simplexe On commence par ramener le programme linéaire (PL) à une forme « standard » pour laquelle toutes les contraintes sont en égalités et les seconds membres sont positifs (ceci moyennant l’introduction de nouvelles variables, dites « variables d’écart »). Toutes les variables sont positives ou nulles. La fonction économique est à maximi ser (ce qui n’est pas restrictif car minimiser une fonction équivaut à maximiser son opposée). Reportons nous au PL formulé au 8.1.2. 307
Chapitre 8 • La programmation linéaire
Ainsi, la contrainte x 1 < 1 000 signifie que x1 étant inférieur (resp : égal) à 1 000, il faut lui ajouter une quantité positive (resp. nulle) que nous noterons x4, pour ame ner sa valeur à 1 000 :
x 1 < 1 000 équivaut à : x 1 1 x 4 5 1 000 et x 4 > 01. La variable x4 est nommée « variable d’écart » et représente, dans le contexte de l’exemple, l’écart à la saturation du marché en produit P1. Les contraintes (1) à (5) peuvent s’écrire sous forme d’équations en introduisant des variables d’écart x4, x5, x6 et x7 : (1) x1 (2) (3) e (4) (5)
1 x4
x2
x3
3x 1 1 6x 2 1 2x 3 x1
,
x2
,
x3
5 1 000 1 x5
5 1 x6
500
5 1 500
1 x 7 5 6 750
, x4 , x5 , x6 , x7 >
0
(x7 représente 150 fois le nombre d’heures de travail par semaine non employées : l’atelier est disponible 45 heures par semaine ; le facteur 150 vient du fait que pour chasser les dénominateurs de (4), on a multiplié chaque membre par 150 ; ainsi : 6 750 5 45 3 150 ) . Les variables d’écart2 ont une contribution nulle à la fonction économique z :
z 5 4x 1 1 12x 2 1 3x 3 1 0x 4 1 0x 5 1 0x 6 1 0x 7. En effet ne pas saturer un marché, ou encore ne pas utiliser des machines à 100 %, cela ne rapporte aucun bénéfice. Prenons comme solution initiale le sommet O : x 1 5 0, x 2 5 0, x 3 5 0 (c’est la solution « du mois d’août » : on ne fabrique rien, on ne gagne rien ; mais cette solu tion est admissible au sens mathématique puisque les contraintes du PL sont véri fiées). Les m 5 4 variables qui sont alors positives (autant que de contraintes) sont x4, x5, x6 et x7. On les nomme variables de base en O. De même, les variables nulles au sommet Ο : x1, x2 et x3 sont nommées variables hors-base en Ο (on écarte de cet exposé introductif les cas de dégénérescence – dits de « seconde espèce » – où une variable de base serait nulle : tel serait le cas si, par exemple, quatre plans délimitant des contraintes étaient concourants en un même sommet. Ce cas sera traité en détail plus loin). On peut exprimer facilement les variables de base en Ο (qui forment l’ensemble @o) en fonction des variables hors base en O, de même que la fonction économique z : 1. Si l’on avait affaire à une contrainte en sens inverse, par exemple 2x 1 1 x 2 1 5x 3 > 1 000, on retrancherait une variable d’écart (x8) pour obtenir 2x 1 1 x 2 1 5x 3 2 x 8 5 1 000 et x 8 > 0. 2. On aurait pu noter différement les variables d’écart : x 1, x 2, x 3 et x 4. 308
8.2 Algorithme du simplexe : méthode algébrique…
x 4 5 1 000 2 x 1 x5 5
500
z 5
0
2
x2
2 x3 @0 = {x4, x5, x6, x7} O e x 6 5 1 500 x 7 5 6 700 2 3x 1 2 6x 2 2 2x 3 1 4x 1 1 12x 2 1 3x 3
L’examen de z montre que, pour augmenter sa valeur numérique, il faut donner à l’une des variables hors base, actuellement nulle au sommet considéré (O), une valeur positive. Puisque dans z, x2 a le coefficient (bénéfice marginal) le plus élevé, nous choisissons d’accroître x2 en posant x 2 5 u, où θ est un paramètre que nous prenons positif croissant ; nous gardons, pour cette itération, les autres variables hors base nulles : x 1 5 x 3 5 0. Le système devient : x 4 5 1 000 x 5 5 500 2
u
e x 6 5 1 500 x 7 5 6 750 2 6u z 5 0 1 12u Jusqu’à quelle valeur peut-on accroître θ (c’est-à-dire x2) ? Le bénéfice global z est proportionnel à θ : l’entreprise peut-elle devenir très riche en donnant à θ une valeur très élevée ? En fait non, car il ne faut pas oublier que toutes les variables sont positives ou nulles, et doivent le demeurer (« contraintes implicites » ) : x 5 > 0 entraîne u < 500
© Dunod – Toute reproduction non autorisée est un délit.
x 7 > 0 entraîne u < 6 750/6 5 1 125 Ainsi, la plus grande valeur de θ qui respecte la positivité de toutes les variables est u 5 500 (et non pas 1 125 qui rendrait x5 négatif). Si l’on pose donc u 5 500, il vient numériquement : x 4 5 1 000 x5 5
0
x1 5
0
x 2 5 500
e x 6 5 1 500 x 3 5 0 x 7 5 3 750 z 5 6 000 On reconnaît alors les coordonnées du sommet C : le programme de production (0, 500, 0) qui engendre un bénéfice z 5 6 000 euros. On vient donc de trouver un procédé algébrique qui nous a permis de passer d’un sommet (O) d’un polyèdre à un sommet « voisin » (C), en décrivant une arête de ce polyèdre : l’arête OC, en augmentant z. 309
Chapitre 8 • La programmation linéaire
Pour pouvoir encore progresser il convient d’exprimer les variables de base en C, c’est-à-dire celles qui sont positives en C, en fonction des variables hors-base en C. Or, désormais, x2 est devenue positive et x5 s’est annulée : on va donc falloir procéder à un échange : la variable x2 entrant dans la base et la variable x5 sortant de la base. Repartons du système associé au sommet Ο et transformons-le pour obtenir celui associé au sommet C : x 4 5 1 000 2 x 1 500
x5 5
2
x2
2 x3 O e x 6 5 1 500 x 7 5 6 750 2 3x 1 2 6x 2 2 2x 3
(*)
0 1 4x 1 1 12x 2 1 3x 3
z 5
Nous allons exprimer les variables de bases en C (celles positives en ce sommet) en fonction des variables hors base (celles nulles en C). On commence, à partir de l’équation de l’échange, qui est la relation qui a fixé la valeur maximale à donner à la variable entrante (ici x2), à exprimer la variable entrante en fonction de la variable sortante (ici x5) (et, éventuellement, des autres variables hors base) ; il vient :
x 2 5 500 2 x 5. Puis chacune des autres variables qui restent en base : x4, x6, x7, de même que z doit être exprimée en fonction des variables hors base en C, c’est-à-dire : x1, x5 et x3. Pour ce faire, il suffit dans l’expression de chacune des autres variables de base en O de substituer à la variable x2 (la variable entrante) son expression issue de l’équation de l’échange (ici x 2 5 500 2 x 5 ) . Ici seules x7 et z sont concernées (x2 étant absente de l’expression de x4 et x6 ci-dessus). Il vient donc : x 4 5 1 000 2 x2 5 500 x 6 5 1 500
(*)
x1 2 2
x3
@c = {x4, x2, x6, x7} C g x 7 5 6 750 2 3x 1 2 2x 3 2 5 3 750 2 3x 1 2 2x 3 1
x5 6 ( 500 2 x 5 ) 6x 5
0 1 4x 1 1 3x 3 1 12 ( 500 2 x 5 ) 5 6 000 1 4x 1 1 3x 3 2 12x 5 On peut alors, partant du sommet C (où le bénéfice est de 6 000 euros), pratiquer une nouvelle itération afin d’accroître ce bénéfice. La variable entrante est la variable hors base qui a le plus grand coefficient positif1 dans l’expression de z en fonction des variables hors base ; soit ici x1. On pose donc x 1 5 u où θ est positif croissant, en gardant x3 5 x5 5 0 (x3 et x5 étant nulles en C). Il vient : z
5
1. On pourrait se contenter de choisir comme variable entrante, une variable hors-base ayant un coefficient positif dans l’expression de z en fonction des variables hors-base. 310
8.2 Algorithme du simplexe : méthode algébrique…
x 4 5 1 000 2 u x 2 5 500 e x 6 5 1 500 x 7 5 3 750 2 3u z 5 6 000 1 4u L’accroissement du bénéfice étant proportionnel à u, on a intérêt à prendre u le plus grand possible.
Pour respecter la positivité des variables, on prend au mieux u 5 1 000: x4 alors s’annule et sort de la base ; l’équation de l’échange est x 4 5 1 000 2 x 1 ; en subs tituant dans les autres équations du système associé au sommet C, à x1 la valeur 1 000 2 x 4, il vient, avec @B = {x1, x2, x6, x7} : x1 x2
5 5
x6
5
B g x7
5 5
z
5 5
1 000
x4
2
500
1 500
3 750
750
6 000
10 000
2 2 2 1 1
x3
2x 3 2x 3 3x 3
3x 3
2 1 1 2
3 ( 1 000 2 x 4 ) 3x 4
4 ( 1 000 2 x 4 ) 4x 4
2
x5
1
6x 5
1 2 2
6x 5
12x 5
(*)
12x 5
On reconnaît en effet le système associé au sommet Β : l’expression des variables de base en Β : x1, x2, x6, x7, en fonction des variables hors base en Β : x3, x4, x5.
© Dunod – Toute reproduction non autorisée est un délit.
Puisque z, ainsi exprimé, comporte encore un coefficient positif : 3, sur une variable hors base (x3), on peut pratiquer une nouvelle itération ; on pose x3 5 u positif et croissant, et x 4 5 x 5 5 0 ; il vient : x 1 5 1 000 x 2 5 500 e x 6 5 1 500 2 u x 7 5 750 2 2u z 5 10 000 1 3u On prend u 5 375 : en effet la variable x7 est la première à s’annuler quand u croît ; x7 est donc la variable sortante ; l’équation de l’échange est : x 7 5 750 2 2x 3 1 3x 4 1 6x 5 ; 3 1 d’où : x 3 5 375 1 x 4 1 3x 5 2 x 7. 2 2 En substituant à x3 cette valeur dans les autres équations du système associé à B, il vient, avec @R = {x1, x2, x6, x3} : 311
Chapitre 8 • La programmation linéaire
Rh
x1 5
1 000
x2 5
500
x6 5
1 125
x3 5
375
x4
2
2 x5 3 1 2 x 4 2 3x 5 1 x7 (*) 2 2 1
3 1 x 4 1 3x 5 2 x7 2 2
3 1 x 4 2 3x 5 2 x7 2 2 On reconnaît le sommet R (1 000, 500, 375) où le bénéfice vaut : 11 125 euros. Nouvelle (et dernière) itération : la variable hors base x4 ayant dans z un coef ficient positif (1/2), entre en base : on pose x 4 5 u, positif croissant et on garde x 5 5 x 7 5 0 ; il vient : 5 11 125
z
1
3 3 1 u, x 3 5 375 1 u, z 5 11 125 1 u. 2 2 2 3 La variable sortante est donc x6 (avec u 5 1 125^ a b 5 750 ) . 2 3 1 L’équation de l’échange est : x 6 5 1 125 2 x 4 2 3x 5 1 x 7 ; d’où, en l’inversant : 2 2 3 1 2 1 x 4 5 1 125 2 3x 5 2 x 6 1 x 7 et donc : x 4 5 750 2 2x 5 2 x 6 1 x 7. 3 3 2 2 En substituant à x4 cette valeur dans les autres équations du système associé à R, il vient, avec @Q = {x1, x2, x3, x4}. 2 1 x6 2 x7 x1 5 250 1 2x 5 1 3 3 x2 5 500 2 x 5 x 1 5 1 000 2 u, x 2 5 500, x 6 5 1 125 2
Qh
x3 5
1 500
x4 5
750
x6 2 1 x6 1 x7 2 3 3
2 2
2x 5
1 4 x6 2 x7 3 3 On reconnaît le sommet Q : x 1 5 250, x 2 5 500, x 3 5 1 500 avec un bénéfice de z 5 11 500 euros. Le sommet est optimal : il n’est pas possible d’améliorer z par le procédé ci-dessus car tous les coefficients des variables (hors base) figurant dans z sont négatifs ; on peut alors démontrer, en utilisant un argument de convexité et de dualité que, dans ces conditions, l’optimum est effectivement atteint : nous y revien drons plus loin dans le paragraphe 8.7 consacré à la dualité. Systématisons la procédure ci-dessus employée dans l’algorithme du simplexe. Nous avons vu que l’algorithme consiste à progresser d’un sommet initial vers un sommet adjacent en ayant soin de ne pas diminuer la valeur de la fonction éco z
312
5 11 500
2
4x 5 2
8.2 Algorithme du simplexe : méthode algébrique…
nomique ; d’autre part, nous savons aussi que toutes les variables (principales ou d’écart) doivent demeurer non-négatives. Nous repartons ci-dessous du sommet ini tial O, et présentons sous forme de tableaux le système associé à O. i
j
4 Sommet O
5 6 7 ∆j
A
1
A
2
A
3
A
4
A
5
A
6
A
7
1 0
0
0
1
0
0
0
1 000
1
0
0
1
0
0
500
0
1
0
0
1
0
1 500
3
0 6
2
0
0
0
1
6 750
4
12
3
0
0
0
0
z0
© Dunod – Toute reproduction non autorisée est un délit.
Reprenons, dans ces conditions, la représentation matricielle initiale et notons les colonnes par un indice j 5 1, 2, c, 7 , de manière que les vecteurs-colonnes puissent être dénommés A 1, A 2, c, A 7 : notons aussi b le vecteur second membre. Inscrivons maintenant, à gauche et face à la valeur qu’elle a dans la solution (base) initiale, l’indice i de la variable xi (ici, au départ : x4 5 1 000, x5 5 500, x6 5 1 500, x7 5 6 750 ; les indices i sont donc : 4, 5, 6 et 7) ; ces indices i serviront à désigner les lignes de la matrice ; ils sont associés aux variables de base : la colonne tout à gauche est donc un descriptif de la base. Lors de toute itération, l’élément de la matrice situé à l’intersection d’une ligne i et d’une colonne j sera désigné par aij ; l’élément de la colonne b situé sur la ligne i sera simplement désigné par bi. Initialement, la colonne b coïncide avec la colonne des seconds membres des contraintes, notée traditionnellement b comme ci-dessus. Enfin, écrivons séparément la ligne de la fonction économique : z 5 4x 1 1 12x 2 1 3x 3, dont les coefficients seront écrits dans la ligne du bas ; le coefficient en colonne Aj sera noté dans la suite : Dj. Lors de toute itération, z sera exprimé uniquement en fonction des variables hors base ; par suite Dj = 0 si xj est une variable de base NB. Sur la ligne des Dj dans les colonnes Α4, Α5, Α6, Α7, on a écrit des 0, car la fonc tion économique peut s’écrire : 4x 1 1 12x 2 1 3x 3 1 0x 4 1 0x 5 1 0x 6 1 0x 7 5 z 2 0, car les variables d’écart sont de profit nul. De plus, initialement, z 5 0. Les formules du changement(1) de coordonnées, réalisé par la sortie d’un vecteur As de la base et l’entrée d’un vecteur Ae sont les suivantes (autrement dit : xs est la variable sortante et xe, la variable entrante) : bs • nouvelle valeur de la fonction économique : zr 5 z 1 ase # De , z étant l’ancienne valeur ; le coefficient ase est nommé « pivot ». (1) Le lecteur pourra préférer les règles pratiques de transformation : p. 317. 313
Chapitre 8 • La programmation linéaire
• nouvelles valeurs des variables de base (l’élément de la ligne k dans le vecteur second membre b est la valeur de xk) : brk 5 bk 2 ake
bs ase
(k 2 s)
et brs 5
bs ase
(valeur de la variable entrante xe)
bk (resp. bs) étant l’ancienne valeur ; • nouvelle valeur de l’élément de la ligne k et de la colonne A ( k 2 s ) : as, ark, 5 ak, 2 ake , ase ak étant l’ancienne valeur ; • nouvelle valeur de l’élément de la ligne s de la colonne A : as, ars, 5 ase , as étant l’ancienne valeur : on divise la ligne s, celle du pivot, par le pivot : ase qui est nécessairement positif, cf le second critère de Dantzig. Dans ces conditions, comme à chaque pas on désire que zr soit supérieur (ou égal) bs à z, il faudra prendre Δe positif ( ase sera positif, car bs . 0 est positif ou – excep tionnellement – nul et le pivot ase sera pris positif). Heuristiquement, on a intérêt à
prendre De . 0 le plus élevé possible. C’est pourquoi le premier critère de Dantzig s’énonce ainsi : « Pour déterminer la colonne Ae qui doit entrer dans la base, on choisit celle qui comporte le Dj positif le plus grand ». Si tous les Dj sont négatifs ou nuls: fin, l’opti mum est atteint (propriété admise ici). Le premier critère de Dantzig vise à minimiser le nombre d’itérations effectuées au cours du déroulement de l’algorithme. Mais ceci n’est pas toujours le cas, il existe même des exemples, certes rares, pour lesquels l’utilisation de ce critère peut être particulièrement désastreuse et l’algorithme ne jamais se terminer. C’est pourquoi d’autres critères ont été donnés évitant ceci. Citons le critère de Bland : pour déter miner la colonne Ae, qui doit entrer dans la base, on choisit celle pour laquelle l’indice j est le plus petit, parmi celles pour lesquelles Dj . 0. Bland a montré que l’utilisation de ce critère assurait la terminaison de l’algorithme. En pratique, des stratégies mixtes combinant les deux critères de Bland et Dantzig, ou bien encore d’autres stratégies basées sur des tirages aléatoires peuvent être utilisées.
On veut encore que, pour tout k, brk soit non-négatif : bs bs brk 5 bk 2 ake # ase > 0. Cela s’écrit aussi : bk > ake # ase . 314
8.2 Algorithme du simplexe : méthode algébrique…
bs bs Si l’on prend ase positif, alors βk, qui est positif, est sûrement plus grand que ake # ase
lorsque ake est négatif. Au contraire, lorsque ake est positif, on peut diviser les deux membres de l’inégalité par ake et l’on a : bs ase
0
x1 ,
1 x2
5 16 1 x3 5 3
x2 , x1 , x2 , x3 >
0
Les tableaux successifs conduisant à la solution se présentent de la manière suivante : (les suivre en parallèle avec la figure 8.8) : ci i
1 2 1 2 3
(0) b
ci i
1 2 1 2 3
(1)
0 1
3 2 1 0 0
4
0 1
0 2 1 0 3
13
0 1 0
16
0 2
7
0 3 1 0 0 0 1 Sommet j 6 4 0 0 0 O
3
0 2 0 1 3 1 0 0 0 1
0 2
3
s
↑
© Dunod – Toute reproduction non autorisée est un délit.
↑
ci i
e 1 2 1 2 3
0 1
0 0 1 1 6
4 2
0 1 0
1 3 2 2
6 1 1 0 0 0 1 Sommet j 0 0 0 2 0 C
↑
s
↑
↑
s
6 1
z 0
Sommet j 0 4 0 0 6 D ↑
(2)
ci i
6
0 3
7 2
4 2
3 z 32
6 1
e 1 2 1 2 1 1 0 0 6 6 1 3 0 1 4 4 1 1 1 0 6 6
3 z 18
3
(3)
1
1
0
5
0
2
Sommet j 0 0 0 2 0 B
z 32
e
321
Chapitre 8 • La programmation linéaire
N.B. Lors de chaque itération (pas), on a cerclé le pivot. Sur le troisième tableau, on constate que D3 5 0, alors que la colonne 3 est hors base. Bien qu’on ait atteint la valeur optimale de la fonction économique, si l’on considère que D3 est le plus grand des Δj non-négatifs correspondant aux variables hors base (troi sième tableau), on peut faire entrer la variable x 3 dans la base, d’où sort la variable x 1, et l’on a alors D1 5 0 (quatrième tableau). Ce fait traduit que la fonction écono mique z 5 6x 1 1 4x 2 est parallèle à l’hyper plan (ici, la droite) limitant le demi-plan Figure 8.8 déterminé par la contrainte 3x 1 1 2x 2 < 16 ; les sommets Β et C sont tous deux optimaux. L’enveloppe convexe de ces sommets, c’està-dire le segment BC, est telle que chacun de ses points donne à z la valeur optimale 32. C’est le cas dit de « dégénérescence de première espèce ».
8.3.2 Dégénérescence de deuxième espèce Pour certains programmes linéaires, une (ou plusieurs) variable(s) de la base opti male peut être nulle. Voici un exemple détaillé : ajoutons au programme précédent la contrainte : x 1 1 4x 2 < 22 soit x 1 1 4x 2 1 x 4 5 22
et prenons comme fonction économique : 3 max 4 z 5 x 1 1 x 2 (au lieu de 3 max 4 z 5 6x1 1 4x2)
Il en résulte la figure 8.9. Traitons néanmoins le programme par la méthode des tableaux. On obtient les résultats suivants, ayant choisi arbitrairement, au deuxième tableau, de faire sortir la variable x 4 de la base (on avait le choix entre x2 et x 4). ci
j1 2 1 2 3 4
i
ci
0 1
3 2 1 0 0 0
4
1 2
0 2
3 2 0 1 0 0
16
0 2
6
0 3
1 0 0 0 1 0
3
0 3
0 4
1 4 0 0 0 1
22
0 4
Sommet O
1 1 0 0 0 0
s
↑
↑
s
i
i
j 1
3
4
i
i/ ie
1/ 2
0
0
0
2
0 ) pour i 5 1, 2, c, m ; s F.S. c a ij j n j51 c x j > 0 pour j 5 1, 2, , n ; max z 5 a cjx j f n
j51
Notons A 5 3 aij 4 la matrice m 3 n des coefficients des premiers membres des contraintes explicites ; b, le vecteur-colonne m 3 1 des seconds membres de ces contraintes ; c, le vecteur-ligne 1 3 n des coefficients de la fonction économique ; x, le vecteur-colonne n 3 1 des variables du PL. La forme standard s’écrit alors matriciellement : F.S. U A # x 5 b ( où b > 0 ) ; x > 0 ; max z 5 c # x V . On remarquera que le résultat du produit c # x est une matrice de dimensions 1 3 1, donc comportant un élément unique, égal à z. En désignant par Aj la jième colonne de la matrice A ( j 5 1, 2, c, n ) , le système des contraintes explicites peut s’écrire sous forme d’une combinaison linéaire des vecteurs-colonne extraits de A : x1 # A1 1 x2 # A2 1 c1 xn # An 5 b. Indiquons maintenant comment ramener tout PL à la forme standard : • si l’objectif du PL est de minimiser z, on le remplace par maximiser z r, où z r 5 2z ; • si le signe d’une variable n’est pas connu à l’avance : par exemple pour x j > 2273, on pose x jr 5 x j 1 273 et l’on aura : x jr > 0. Mais si l’on ne connaît pas de borne inférieure pour xj (comme ci-dessus), on peut poser x j 5 x jr 2 xsj avec x jr et xsj posi tifs ou nuls. En effet tout nombre réel xj peut être représenté comme la différence de deux nombres positifs ou nuls ; 324
8.4 Aspect matriciel
• si une contrainte i comporte un second membre négatif : bi , 0, on multiplie par 21 chaque membre de cette contrainte ; • si certaines contraintes sont initialement en inégalité, on peut les ramener à des égalités par introduction de nouvelles variables, nommées « variables d’écart » . Ainsi 3x 1 1 4x 2 < 5 équivaut à : 3x 1 1 4x 2 1 x e 5 5 et x e > 0.
De même, 2x 1 1 7x 2 > 11 équivaut à : 2x 1 1 7x 2 2 x er 5 11 et x er > 0. Donc, dans le cas de contraintes a aijx j < bi, on ajoute une variable d’écart, tan dis que dans le cas inverse : a aijx j > bi, on retranche une variable d’écart (après avoir rendu bi positif, si nécessaire). Observons que ces variables d’écart, tout comme les variables « principales » (c’est-à-dire les variables d’origine, introduites pour for muler le problème) sont toutes positives ou nulles. Ainsi, lors de la résolution, on ne fera pas de distinction entre les variables d’écart et les variables principales. Nous ferons les deux hypothèses suivantes sur la forme standard FS : 1) le nombre de lignes de A (contraintes explicites) est inférieur au nombre de colonnes de A (qui est égal au nombre de variables) : m , n. Remarquons que, si les contraintes explicites du PL étaient initialement des inégali tés, on introduit une variable d’écart dans chacune, soit en tout m variables d’écart. Alors le nombre total de variables devient nécessairement supérieur à m. Cette hypo thèse est donc, en pratique, peu limitative. 2) Nous supposerons que l’on peut extraire de A, m colonnes différentes qui, regroupées dans une matrice carrée B, sont telles que le déterminant de B n’est pas nul (ce qui équivaut à dire que les m vecteurs-colonnes ainsi extraits, sont indépen dants ; on dit alors que le « rang » de la matrice A est égal à m). Remarquons à nouveau que si les contraintes explicites du PL étaient initialement des inégalités, les m colonnes de A associées aux variables d’écart forment la matrice m3m: 61 0 0 c 0 0
© Dunod – Toute reproduction non autorisée est un délit.
• 0
61 0
0
61
c c
0
0 µ
c f ( ( ( 0 0 0 c 61 Cette matrice diagonale a pour déterminant le produit des éléments diagonaux, qui vaut donc 11 ou 21 : il est donc non nul. À nouveau, cette hypothèse est, en pratique, peu restrictive. Dans ces conditions, le système linéaire A # x 5 b de m équations à n inconnues admet au moins une solution (et, en général, une infinité). C’est un système « sous déterminé » comportant plus d’inconnues que d’équations. Notons que si l’on connaît deux solutions différentes xr et xs de ce système, alors tout x de la forme x 5 l # xr 1 ( 1 2 l ) # xs, où 0 < l < 1, est aussi une solution du système ; x est nommé : “combinaison linéaire convexe” de xr et de xs. 325
Chapitre 8 • La programmation linéaire
Base Par définition, une « base » d’un PL est un ensemble de m vecteurs-colonne indépen dants, extraits de A. Ainsi si l’on découpe A en colonne : A A1
A2
A3
...
An
et que l’on ait extrait de A les m colonnes d’indices j1, j2, c, jm , à la base B est asso ciée une matrice carrée m 3 m, de déterminant non nul :
xj1
B
Aj1
...
Aj2
Ajm
xB 5 D
xj2 ( xjm
T
Les « variables de base » sont les variables x j1, x j2, c, x jm associées aux colonnes constituant la base ; on note xB le vecteur colonne des m variables de base. Les n 2 m autres variables sont dites « variables hors base » et l’on note xN leur vecteur-colonne.
Réécriture du programme linéaire associée à une base B Par permutation des colonnes de A, on place en tête (calées à gauche) les colonnes de base qui forment la sous-matrice B, puis on place, immédiatement à droite de celles-ci, les colonnes hors base (qui forment la sous-matrice N ). On permute dans le même ordre les variables ; ainsi A 5 ( B, N ) xB et x 5 a x b : N
...
Aj2
...
Ajm
A Aj1
B
N
Alors le système des contraintes explicites A # x 5 b, calculé par blocs, devient : ( B, N ) # a
xB # # xN b 5 b, soit B xB 1 N xN 5 b.
Donnons un exemple de cette réécriture (avec m 5 2 contraintes) : e 326
2x 1 1 3x 2 2 x 3 1 x 4 1 3x 5 5 12 7x 1 2 x 2 1 2x 3 1 5x 4 1 x 5 5 6
8.4 Aspect matriciel
soit :
A1
A2
A3
A4
A5
2
3
1
1
3
7
1
2
5
1
x1 x2 x3 12 soit A . x b. 6 x4 x5
.
Les m 5 2 colonnes A2 et A5 forment une base B 5 ( A2, A5 ) 5 a
déterminant de cette matrice n’est pas nul : dét B 5 6. La réécriture fournit : A2
A5
A1
A3
A4
3
3
2
1
1
1
1
7
2
5
B soit :
3 3 1 1
.
x2 2 1 1 x5 7 2 5
N
.
x2
.
x5 x1 x3 x4
3 3
21 1
x
b puisque le
B
x
N
12 6
b
x1 12 x3 c’est-à-dire B. xB N . xN b. 6 x4
Solution de base
Posons xN 5 0, il reste alors B # xB 5 b, qui est un système de m équations à m inconnues, de déterminant non nul (système de Cramer), admettant une solution unique :
© Dunod – Toute reproduction non autorisée est un délit.
xB 5 B 2 1 # b • si xB vérifie aussi les contraintes « implicites » de positivité, c’est-à-dire si xB est positif ou nul, xB est alors une « solution de base admissible ». Reprenons l’exemple ci-dessus ; pour la base B 5 ( A2, A5 ) , on obtient la solution de base associée en posant x 1 5 x 3 5 x 4 5 0, soit xN 5 0. Il reste le système :
1 or B 1 1 or B 1 6 6
1 3 11 3 3 1 3
3 3 1 1 1 x , d’où : x22 1 , d’où : x5 6 x5 6
3 31 1 1 11 1
. . 3 3 3 3
x2 12 , 6 , xx52 12 6 x5
. .
12 1 x : on n’a pas xB 0 : B 12 6 1 5 xB : on n’a pas xB 0 : 6 5
cette solution de base n’est pas admissible car x2 5 21 , 0. Par contre avec la base Br 5 ( A2, A3 ) on obtient une solution de base admissible car xB 5 6 , puisque ici 6 on a : xB > 0. 327
Chapitre 8 • La programmation linéaire
D’une manière générale une « solution admissible » (on dit aussi « réalisable » ou même « faisable » : mauvaise re-traduction de l’anglais « feasible ») est une solution (pas nécessairement de base) du système : A # x 5 b, avec x > 0. Le théorème suivant (que nous admettons sans démonstration) précise la correspon dance entre les sommets du polyèdre et les solutions de base admissibles : il fait le lien entre l’aspect géométrique et l’aspect algébrique en programmation linéaire. Théorème. À toute solution de base admissible correspond un sommet du polyèdre des solutions admissibles et un seul. La réciproque n’est vraie qu’en l’absence de dégénérescence de deuxième espèce, c’est-à-dire si xB est strictement positif (aucune variable de base nulle). • À titre d’exemple, reprenons le problème restreint de l’atelier (deux produits, 35 heures de travail hebdomadaire) c
5 1 000
1 x3
x1 1 x2
x 1 1 2x 2
1 x4
5
500
1 x 5 5 1 750
où x3, x4 et x5 sont des variables d’écart.
Le lecteur vérifiera que : 3 4 5 1 0 0
1 000 3
0 0 1
1 750 5
– au sommet Ο correspond la base BO 5 C 0 1 0 S et xBO 5 C 500 S 4 2 3 5 0 1 0
500
2 0 1
750
2
– au sommet A correspond la base BA 5 C 1 0 0 S et xBA 5 C 1 000 S 3
328
5
8.4 Aspect matriciel
1 2 3 1 0 1
750 1
– au sommet F correspond la base BF 5 C 0 1 0 S et xBF 5 C 500 S 2 1 2 0 1 2 4 1 0 0
250 3 1 000 1
– au sommet Ε correspond la base BE 5 C 0 1 1 S et xBE 5 C 375 S 2 1 2 0 1 4 5 1 0 0
1 000 1
1 0 1
750
125
4
– au sommet C correspond la base BC 5 C 0 1 0 S et xBC 5 C 500 S 4 5
Remarquons qu’aux sommets G, H et I (I étant l’intersection de la droite FE avec l’axe Ox1) qui sont à l’extérieur du domaine admissible d correspondent des bases non admis sibles c’est-à-dire pour lesquelles certaines variables de bases seraient négatives :
© Dunod – Toute reproduction non autorisée est un délit.
1 2 5 1 0 0
1 000 1
1 2 1
2250
5
2 3 4 0 1 0
875
2
1 0 0
2375
BG 5 C 0 1 0 S et xB G 5 C 500 S 2
BH 5 C 2 0 1 S et xB H 5 C 1 000 S 3 4
1 3 4 1 1 0
1 750 1
1 0 0
500
BI 5 C 0 0 1 S et xB I 5 C 2750 S 3 4
On peut aussi illustrer le cas de dégénérescence de deuxième espèce en se reportant à l’exemple du paragraphe 8.3.2 et la Fig. 8.9 : au sommet B, par lequel passent trois droites, on peut associer trois bases différentes (données ci-dessous par la liste des variables de base) : b1 5 5 x 1, x 2, x 3, x 1 6 , b2 5 5 x 1, x 2, x 3, x 4 6 et b3 5 5 x 1, x 2, x 3, x 2 6 .
8.4.2 Fonction économique
Matriciellement z peut s’écrire z 5 c # x, où c est le vecteur-ligne 1 3 n des coeffi cients (initiaux) de la fonction économique. Rappelons que les coefficients initiaux des variables d’écart sont nuls, et que x est le vecteur-colonne n 3 1 des variables du PL. 329
Chapitre 8 • La programmation linéaire
Dans le problème de l’atelier (3 produits, 45 h/semaine), on a : c 5 [4,12, 3, 0, 0, 0, 0] et xT 5 3 x1, x2, x3, x4, x5, x6, x7 4 T. On peut aussi sépa rer, dans le vecteur c, les coefficients associés aux variables de base qui forment le sous vecteur-ligne 1 3 m noté cB, des autres coefficients qui, eux, sont associés aux variables hors-base et forment le sous vecteur-colonne 1 3 ( n 2 m ) , notés cN. xB Ainsi z 5 c # x 5 ( cB, cN ) # a x b 5 cB # xB 1 cN # xN. N
Pour exprimer z seulement en fonction des variables hors-base, il suffit de tirer l’expression de xB à partir du système : B # xB 1 N # xN 5 b. En multipliant à gauche par B21 chaque membre, il vient : B 2 1 # B # xB 1 B 2 1 # N # xN 5 B 2 1 # b, d’où xB 5 B 2 1 # b 2 B 2 1 # N # xN, qui est la forme matricielle de l’expression des variables de base en fonction des variables hors-base. Substituons alors à xB cette expression dans la relation z 5 cB # xB 1 cN # xN. Il vient : z 5 cB # ( B21 # b 2 B21 # N # xN ) 1 cN # xN, soit : z 5 cB # B21 # b 1 ( cN 2 cB # B21 # N ) # xN 5 ,zB 1 DN # xN.
La valeur numérique ,zB de la fonction économique pour la solution de base xB s’obtient en faisant xN 5 0 ; elle est donc : ,zB 5 cB # B 2 1 # b. Puisque z est désormais exprimé seulement en fonction des variables hors-base, le coefficient de toute variable hors-base xj, dans cette dernière expression de z, n’est autre que le coefficient noté plus haut Δj. Ainsi le vecteur 1 3 ( n 2 m ) des Δj, noté DN, est : DN 5 cN 2 cB # B21 # N soit, composante par composante : Dj 5 cj 2 cB # ( B21 # N ) j où y j 5 ( B21 # N ) j est la colonne associée à la variable hors-base xj, dans la matrice B21 # N (dans la méthode des tableaux, c’est la colonne associée à la variable hors-base xj). On a donc : Dj 5 cj 2 a ci # aij, i
où la sommation est faite pour tous les indices i des m variables de base, et aij est l’élément i du vecteur-colonne y j 5 ( B21 # N ) j du tableau courant.
8.5 Démarrage de l’algorithme problème de la base initiale
du simplexe :
8.5.1 Cas « favorable » Plaçons-nous dans le cas où toutes les m contraintes d’un programme linéaire sont ini tialement sous forme d’inéquations, comportant p variables principales, du type : c # a aij x j < bi où bi est positif ou nul ( i 5 1, 2, , m ) . p
j51
330
8.5 Démarrage de l’algorithme du simplexe…
Tel est le cas dans notre exemple du problème de l’atelier. Dans chacune des m contraintes, on ajoute une variable d’écart :
# a aij xj 1 x i 5 bi. p
j51
Les m variables d’écart xi forment une base de matrice identité I (dont les élé ments diagonaux sont égaux à 1 et les non diagonaux égaux à 0). Les p 5 n 2 m variables principales : x1, x2, c, xp sont hors-base. Le sommet associé est l’origine Ο (dans l’espace des variables principales : Rp ) . L’expression des variables de base en fonction des variables hors-base est immé diate : x i 5 bi – a aij # x j, ( i 5 1, 2, c, m ) . p
j51
Enfin, l’expression initiale de la fonction économique : z 5 a cj # x j fait que z est p
j51
directement exprimée uniquement en fonction des variables hors-base : z 5 a cj # x j 1 ( 0 # x 1 1 0 # x 2 1 c1 0 # x m ) p
j51
a22
1
0
a2p
0
1
m
i bi
0
b1
0
b2
(0)
m
am1
am2
...
...
a21
a1p
... ... ...
...
2
2
...
a12
1
...
a11
p
...
1
... ... ...
...
2
...
1
...
i
amp
0
0
...
© Dunod – Toute reproduction non autorisée est un délit.
Le tableau associé à cette base initiale est :
...
1
bm
c1
c2
...
cp
0
0
...
0
z0
Le lecteur se reportera à notre exemple de l’atelier pour l’illustration de ce cas.
8.5.2 Cas où une solution est connue à l’avance Il arrive fréquemment qu’un « système » dont on veut optimiser la marche possède déjà un point de fonctionnement, c’est-à-dire dans le cadre d’un programme linéaire, une solution admissible (on rappelle qu’une telle solution vérifie les m + n contraintes du PL). Cette solution ne sera utilisable, pour la résolution par l’algoritme du simplexe, que s’il s’agit d’une solution de base réalisable, c’est-à-dire comportant, au plus, m variables positives (les autres étant nulles) et telles que les m colonnes de la matrice A associées à ces variables forment une matrice régulière (inversible), notée B. Le démarrage de l’algorithme du simplexe nécessite de connaître l’expression des m variables de base et de z, en fonction des variables hors-base. 331
Chapitre 8 • La programmation linéaire
Rappelons que le programme linéaire (après introduction des variables d’écart) s’écrit : A # x 5 b , x > 0 , max z 5 c # x. Avec la base, de matrice B, il vient : B # xB 1 N # xN 5 b et z 5 cB # xB 1 cN # xN. Supposons que l’on connaisse B21, il vient l’expression cherchée (cf 8.4.2) : b
xB 5 B21 # b 2 B21 # N # xN
z 5 cB # B21 # b 1 ( cN 2 cB # B21 # N ) xN 5 ,zB 1 DN # xN
à partir de laquelle on peut démarrer la résolution. Le tableau associé s’écrit (sous forme matricielle) : I # xB
1
b # 0 xB
B 2 1 # N # xN DN # x N
1
B 2 1 # b ( le second membre est b 5 B 2 1 # b ) z 2 ,zB ( ,zB 5 cB # B 2 1 # b )
5 5
Remarquons que, pour obtenir les expressions ci-dessus, il suffit de connaître B21 # N et B21 # b (et donc, pas nécessairement, B21 explicitement). Voici un exemple de ce cas ; soit le PL ci-dessous : x1
2x 1 e x1 x1 x1
1 1
,
1
x2 6x 2 x2 3x 2
2 1 1
,
1
x3
4x 3 x3 x3 5x 3
1 1
, 1
x4
2x 4
5 1 1
x4 x4
,
1
x5 2x 5 x5 4x 5
5 5 > 5
1
7 19 0 z 3 MAX 4
Soit la « solution » : x 1 5 0, x 2 5 2, x 3 5 1, x 4 5 0 et x 5 5 3. Le lecteur vérifira aisément qu’il s’agit bien d’une solution admissible. Examinons s’il s’agit d’une solu tion de base ; elle comporte bien m 5 3 variables positives : x2, x3 et x5 (une solution qui comporterait plus de m variables positives ne saurait être de base). La matrice Β 1 21 0 associée est formée des colonnes A2, A3 et A5 de la matrice A : B 5 C 0
4
1S ;
6 1 2 on vérifie que Β est régulière, puisque dét B 5 I. Le calcul de B21 fournit : 7 2 21
B21 5 C 6
2
224 27
21 S. Nous invitons le lecteur à vérifier que B–1 · B = I.
4
Le système des contraintes explicites : B # xB 1 N # xN 5 b s’écrit : 1 21 0 x2 1 1 1 x1 C 0 4 1 S # C x 3 S 1 C 2 2 S # B R 5 C 7 S. x4 6 1 2 1 0 19 x5 21 21 # # # Le produit à gauche par B fournit : I xB 1 B N xN 5 B21 # b, soit :
332
8.5 Démarrage de l’algorithme du simplexe…
1 0 0
10
11
2 x1 C 0 1 0 S # C x3 S 1 C 9 10 S # B R 5 C 1 S. x4 0 0 1 3 x5 234 238 2 x2
On retrouve dans le second membre b 5 B21 # b 5 C 1 S , c’est-à-dire les valeurs pro 3 posées dans la solution que nous avons « parachutée » ci-dessus. Sous forme algébrique, ce système s’écrit : x2 1 c
10x 1 1 11x 4 5 2 1 9x 1 1 10x 4 5 1
1
x3
x 5 2 34x 1 2 38x 4 5 3
Reste à exprimer z 5 x 1 1 3x 2 1 5x 3 1 x 4 1 4x 5 uniquement en fonction des variables hors-base ; ceci est aisé, puisque le système ci-dessus fournit l’expression de chaque variable de base en fonction des variables hors base : z 5 x 1 1 3 ( 2 2 10x 1 2 11x 4 ) 1 5 ( 1 2 9x 1 2 10x 4 ) 1 x 4 1 4 ( 3 1 34x 1 1 38x 4 ) , soit : z 5 23 1 62x 1 1 70x 4. Pour ce faire, nous aurions aussi pu procéder matriciellement : z 5 c B # ( B 2 1 # b ) 1 3 c N 2 c B # ( B 2 1 # N ) 4 # xN ; 10
or nous avons déjà calculé ci-dessus B21 # N 5 C 9
11
2
10 S et B21 # b 5 C 1 S ;
234 238
puisque cB 5 3 3, 5, 4 4 et cN 5 3 1, 1 4 , il vient : 2
10
z 5 3 3, 5, 4 4 # C 1 S 1 c 3 1, 1 4 2 3 3, 5, 4 4 # C 9
10 S s # B
234 238
x1 R 5 23 1 62x 1 1 70x 4. x4
Le tableau correspondant à cette solution de base est le suivant :
∆
↑
© Dunod – Toute reproduction non autorisée est un délit.
3
11
3
i
1
2
3
4
5
(0) B1 .b
2
10
1
0
11
0
2
3
9
0
1
10
0
1
5
34
0
0
38
1
3
62
0
0
70
0
z 23
↑
e
333
Chapitre 8 • La programmation linéaire
La base proposée n’est pas optimale ; en faisant entrer x4 en base on obtient l’optimum en une seule itération : z* 5 30 et x1 5 0, x2 5 0,9, x3 5 0, x4 5 0,1 et x5 5 6,8.
8.5.3 Cas d’une base « évidente » : B 5 I Soit le programme linéaire : y1 e y1
3y4
1
y2 ,
6y4
1
y3
,
y2
2y4
1
,
y3
2 y1
y4
2 3 1 000y1 1 500y2 1 1 500y3 1 750y4 4
5 2 y2
5 2 y3 5
, y1 , y2 , y3 >
4
12 3
0
5 z 3 max 4
Les variables d’écart y 1, y 2 et y 3 forment certes une base de matrice Br 5 2I ; mais cette base n’est pas admissible. En effet si l’on annule les variables hors base : y1, y2, y3, et y4, il vient : y 1 5 24, y 2 5 212, y 3 5 23, ce qui viole les contraintes de non-négativité des variables (les contraintes dites « implicites »). En revanche, les variables y1, y2 et y3 forment une base « évidente », c’est-à-dire de matrice B 5 I . Après avoir exprimé z en fonction des variables hors base : z 5 214 500 1 2 250y 4 2 1 000y 1 2 500y 2 2 1 500y 3, l’optimum s’obtient alors en une itération (cf 8.7.4 pour le détail des calculs). Le programme ci-dessus est en fait le « dual » du programme linéaire associé à notre exemple de l’atelier ; il sera traité in extenso dans un paragraphe 8.7 consacré à la notion de dualité. Il arrive que l’on puisse se ramener au cas d’une base évidente. Aussi pour le PL ci-dessous (issu d’un problème d’optimisation de découpes) : 3y 1
y2 y2 y2
1
d y 1
,
2y 3 y3
1
,
36 24 0
> > >
16y 1 1 27y 2 1 10y 3 5 z 3 min 4
il suffit de diviser la première contrainte par 3 et la seconde par 2 pour avoir une base B 5 I, associée aux variables y1 et y3 : y1 d y 1
216y1
1
, 2
1/3y2 1/2y2 1 y2 , 27y2
2
2
y3 y3
10y3
,
y1 2
y1
,
y2 y2
5 5 >
12 12 0
5 zr 3 max 4
l’expression de z r (5 2z ) en fonction des variables hors-base fournit : z r 5 216 # ( 12 2 1/3y 2 1 y 1 ) 2 27y 2 2 10 # ( 12 2 1/2y 2 1 y 2 ) , soit: z r 5 2312 2 50/3y 2 2 16y 1 2 10y 2. Ainsi, ici, la base « évidente » se révèle être l’optimum... trouvé en 0 itération ! 334
8.5 Démarrage de l’algorithme du simplexe…
8.5.4 Cas général : emploi de variables artificielles Un programme linéaire peut comporter 3 types de contraintes (Ρ), (Q) et (R) :
les contraintes du types (P) sont de la forme : a aijx j < bi où bi est positif p
j51
(ou nul) ; après introduction d’une variable d’écart x i , il vient : a aij # xj 1 x i 5 bi, p
j51
les contraintes du type Q sont de la forme : a akj # x j > bk (où bk est positif ou nul) ; p
j51
après introduction d’une variable d’écart xk , il vient : a aij # xj 2 xk 5 bk. p
j51
Enfin les contraintes de type (R) sont celles qui, à l’origine, sont en équation :
# a aij xj 5 bl ( bl > 0 ) , donc dans lesquelles on n’introduit pas de variable d’écart. p
j51
Voici un exemple avec m 5 3 contraintes explicites : la première de type (P) ; la deuxième, de type (Q) ; la troisième de type (R). x1
1
2x1 1
e x1 x1
1
,
2x2 1
© Dunod – Toute reproduction non autorisée est un délit.
2x 1 1
e x1 x1
1
,
2x 2 1 x2
1
x2
,
x2
(R)
x3
> 0 5 z 3 max 4
1
x1
x3
x3 x3
5 4
,
x2
soit : 1
(P)
> 1
1
4x1 1 5x2 1 3x3
x1
< 5
x3
x2
x2
x3
5 5
2
,
x1
(Q)
,
x2
5 1
x2
> 0
5 4
4x 1 1 5x 2 1 3x 3 1 0x 1 1 0x 2 5 z 3 max 4
Si toutes les contraintes étaient de type (P), on serait dans le cas « favorable », traité plus haut au 8.5.1. Nous allons constituer une base initiale de matrice B 5 I ; on peut inclure dans cette base les variables d’écart ajoutées dans les contraintes de type (P) ; en effet la colonne associée à chacune de ces variables d’écart est unitaire ; ainsi dans l’exemple 1 ci-dessus la colonne associée à x 1 est : C 0 S . 0
335
Chapitre 8 • La programmation linéaire
On complète cette base en introduisant dans chaque contrainte de type (Q) ou (R), une nouvelle variable, de coefficient égal à 1, nommée « variable artificielle » dont la colonne associée est unitaire. Ainsi pour notre exemple, en notant xar et xas les deux variables artificielles néces saires pour constituer une base de matrice B 5 I, il vient : x1
d
1
2x1 1
2x2 1 x3 1 x1 x2
x1
1
x2
x1
,
x2
1
,
x3 x3
5 5 2
,
x1
,
5 1
x2 1 xar x2
,
xar
1
xas 5 4
,
xas > 0
Les variables artificielles, comme les autres variables du programme linéaire sont positives ou nulles. Cependant remarquons que : – si xar n’est pas nulle, on a : 2x1 1 x2 1 x3 2 x 2 2 1 et que, – si xas n’est pas nulle, on a : x 1 1 x 2 2 4. Ainsi la positivité d’une variable artificielle fait que la contrainte dans laquelle elle a été introduite est violée... Indiquons maintenant comment traiter un tel cas :
8.5.5 Méthode des deux phases Il convient alors, partant d’une base comportant une ou plusieurs variables arti ficielles, d’obtenir, en itérant l’algorithme du simplexe, si possible une base sans variable artificielle (dans cette solution de base les variables artificielles seront nulles car hors base, et l’on obtiendra un sommet admissible du polyèdre d). Pour tenter d’atteindre ce but, on substitue à la fonction économique z, une autre fonction économique z r qui est la somme des variables artificielles (zr 5 xar 1 xas) dans l’exemple. L’objectif sera de minimiser z r. À l’optimum de ce nouveau pro gramme linéaire, deux cas sont possibles : Puisque pour toute solution admissible, z r est positif ou nul : – soit z r 5 0 : on a obtenu alors un sommet du polyèdre d, à partir duquel on reprend la résolution du PL initial (donc avec la fonction économique z, à maximiser) ; – soit z r . 0 : toute base admissible du nouveau PL comporte au moins une variable artificielle de valeur strictement positive ; alors le PL d’origine est impossible (le polyèdre d est vide : les contraintes sont contradictoires). Ainsi, pour l’exemple, il convient d’abord d’exprimer la fonction économique z r en fonction des variables hors-base (sachant que la base initiale est formée des variables x 1, xar et xas ) : zr 5 xar 1 xas 5 ( 1 2 2x1 2 x2 2 x3 1 x 2 ) 1 ( 4 2 x1 2 x2 ) , soit : zr 5 5 2 3x1 2 2x2 2 x3 1 x 2. On maximisera donc : zs 5 2z r 5 25 1 3x 1 1 2x 2 1x3 2 x 2.
336
s
↑
8.5 Démarrage de l’algorithme du simplexe…
i
1
2
3
1
2
a a
(0)
1
1
2
1
1
0
2
1
1
1
1
1
0
0 0
0 0
5
a
0 1
0
0
1
4
3
2
1
0
1
0
0
z (5)
2
3
1
2
a
a
a
j
↑
1
e
1
1
0
3/ 2 1/ 2
1
1 0
1/ 2 1/ 2
0
a
↑
s
i
j
(1)
1/ 2 1/ 2 0 0 1/ 2 1/ 2 0
9/ 2
1/ 2 1/ 2 0
1/ 2 1/ 2 1
7/ 2
1/ 2 1/ 2 0
1/ 2 3/ 2 0
z 7/ 2
1
↑
1/ 2
e
i
1
2
3
1
2
a
a
(2)
1
1
1
1
0
0
1
0 1
1
0
0
0
0
1 1
1 4
2
0
1
1
0
1
1
2
7
0
0
0
0
0
1 1
z 0
À l’optimum de la phase 1, nous sommes dans le premier cas : z r 5 0 (car zr 5 2zs ). C’est-à-dire que la base associée aux variables x 1, x 1 et x 2 est admissible pour le pro gramme d’origine ; c’est à partir de cette base que l’on va résoudre le PL d’origine, dont la fonction économique est : z 5 4x 1 1 5x 2 1 3x 3. Il suffit alors d’exprimer z en fonction des variables hors-base, après avoir annulé (définitivement) les variables artificielles, soit xar 5 xas 5 0 : z 5 4 # ( 4 2 x2 ) 1 5x2 1 3x3 5 16 1 x2 1 3x3. Voici le tableau associé (où les colonnes ar et as ne figurent plus car xa' et xa" sont définitivement nulles) : 1 2 2 1 3 i s
↑
© Dunod – Toute reproduction non autorisée est un délit.
j
1
0
1
1
1
0
1
1
1
0
0
2
0
1
1
0 0
1 4
1
7
0
1
3
0
0
z 16
j
↑
e
337
Chapitre 8 • La programmation linéaire
i
1
2
3
1
2
3
0
1
1
1
0
1
1
1
0
0
0
1 4
2
0
2
0
1
1
8
0
2
0
3
0
z 19
j
On a obtenu, en une itération, lors de la phase 2, l’optimum du PL d’origine : x 1 5 4 , x 2 5 0 , x 3 5 1 et z* 5 19. ( x 2 5 8 ; x 1 5 x 3 5 0 ) .
8.5.6 Variante. Méthode du « grand M » Nous donnons cette variante à titre d’exercice seulement : les logiciels de P.L. uti lisant la méthode des 2 phases. On peut combiner les deux phases 1 et 2 en introduisant les variables artificielles comme ci-dessus dans les contraintes, puis en les introduisant aussi dans la fonction économique d’origine : chaque variable artificielle y sera munie d’un coefficient –M, « très négatif » : c’est-à-dire qu’on peut prendre la valeur M arbitrairement supé rieure à tout autre coefficient intervenant dans le PL. Ainsi, si une variable artificielle n’est pas nulle, elle donnera à cette nouvelle fonction économique une valeur numérique très « mauvaise » car très négative (de valeur absolue très grande). En maximisant la nouvelle fonction économique, notée ˆz , l’algorithme aura ten dance à faire sortir les variables artificielles de la base ; si, à l’optimum de ce PL, toutes les variables artificielles sont nulles, alors ˆz coïncide avec la fonction écono mique d’origine z. Mais si à l’optimum du PL (avec la fonction économique ˆz ) une ou plusieurs variable(s) artificielle(s) est (sont) en base et non nulles, cela signifie que le PL d’origine est impossible. Ainsi, pour notre exemple, [MAX] ˆz 5 z 2 Mxar 2 Mxas, soit : [MAX] ˆz 5 4x1 1 5x2 1 3x3 2 Mxar 2 Mxas. La base initiale étant associée aux variables x 1, x ar et x as, l’expression de ˆz , en fonc tion des variables hors-base initialement, est : ˆz 5 4x 1 1 5x 2 1 3x 3 2 M ( 1 2 2x 1 2 x 2 2 x 3 1 x 2 ) 2 M ( 4 2 x 1 2 x 2 ) ˆz 5 25M 1 ( 3M 1 4 ) x 1 1 ( 2M 1 5 ) x 2 1 ( M 1 3 ) x 3 2 Mx 2
La valeur initiale de la fonction économique est donc : 25M : très négative. 338
8.5 Démarrage de l’algorithme du simplexe…
D’où le tableau : 1
2
3
1
2
1
1
2
a a
1
1
0
0
5
a
2
1
1
1
1
0
1 0
0
1
0 0
0 1 0
1
4
0 M
0
0
z 5M
2
a
a
j
3M 2M M
↑
s
(0)
i
4 5 3 ↑
i
1
2
3
1
0
0
3/ 2
1/ 2
1
4
1 1
1
1/ 2
1/ 2
0
M
a
0
1/ 2 1/ 2
cj j
4 0
5
3
M/ 2 M/ 2 3
0 0 0
1
1/ 2 1/ 2 1/ 2 1/ 2 1/ 2 1/ 2 0
(1)
a
0 0
9/ 2 1/ 2
1
7/ 2
M M
M/ 2 3M/ 2 0 2 2
z 2 7/ 2M
ci
s
↑
e
↑
e
(2)
ci
i
1
2
3
1
2
a
a
0
1
0
1
1
1
0
0
1
1
4
1
1
1
0
0
0
1
4
0
2
0
1
1
0 0
1
1
2
7
4
5
3
0
0
M M
0
1
3
0
0
M M 4
j
z 16
cj
© Dunod – Toute reproduction non autorisée est un délit.
s
↑
On fait entrer x2 , plutôt que x2 , en base car, alors, la variable artificielle x as sort de la base :
↑
e
On observe qu’à ce stade les variables artificielles sont sorties de la base : on peut les annuler définitivement (ce qui revient à supprimer les colonnes ar et as dans le tableau ci-dessus) ; on remarque aussi qu’alors, ˆz et z coïncident. La dernière itéra tion étant alors identique à celle de la phase 2 du paragraphe précédent, n’est pas reproduite ici. 339
Chapitre 8 • La programmation linéaire
Remarque. L’évaluation des Δj dans la variante « méthode du grand M » est facilitée par l’application de la formule que nous avons prouvée plus haut (cf. paragraphe 8.4) : Dj 5 cj 2 a ci # aij (pour xj hors-base),
où la sommation est étendue aux indices des variables de base ; les αij étant les coefficients du tableau courant ; ci désigne ici le coefficient (initial) de la iième variable de base. Ainsi après une itération, on a : D2 5 c2 2 ( c1 # a12 1 c1 # a22 1 cas # a32 ) 3/2 5 5 2 3 0, 4, 2 M 4 # C 1/2 S 5 M/2 1 3 1/2
Pour appliquer plus facilement cette formule on a indiqué immédiatement à gauche de chaque variable de base xi son coefficient initial dans ˆz , soit ci , et l’on a intercalé entre le tableau principal et la ligne des Δˆ j , les valeurs des coefficients initiaux cj de ˆz . En pratique, les logiciels de programmation linéaire implémentant l’algo rithme du simplexe utilisent la méthode en deux phases. En effet, lors de la phase 1, en minimisant la somme des variables artificielles, la variante dite du « grand M » conduit à utiliser des nombres dont les ordres de grandeur sont très différents, ce qui est source de difficultés numériques.
8.6 Notions
sur la méthode révisée du simplexe
La méthode révisée du simplexe est une amélioration de l’algorithme du simplexe visant, d’une part, à réduire la masse de calculs et, d’autre part, à améliorer la préci sion des résultats.1 Considérons une base admissible du programme linéaire (PL) [A # x 5 b ; x > 0 ; max z 5 c # x], de matrice B. Le système des contraintes A # x 5 b s’écrit alors : B # xB 1 N # xN 5 b. Pour obtenir la valeur numérique de la solution (sommet) associée à cette base, on annule les variables hors-base : xN 5 0 ; il reste donc à résoudre un premier système linéaire B # xB 5 b, système de Cramer (c’est-à-dire à déterminant non nul) de m équations à m inconnues. En particulier si l’on connaît l’inverse de la matrice B, soit B21, on obtient directement : xB 5 B2 1 # b. 1. entachés par des erreurs dues à l’utilisation de l’arithmétique flottante en informatique. 340
8.6 Notions sur la méthode révisée du simplexe
Dans la méthode des tableaux, on représente en fait le système B # xB 1 N # xN 5 b sous la forme : I # xB 1 B2 1 # N # xN 5 B2 1 # b (où I est la matrice identité m × m), ce qui revient à multiplier chaque membre du système, à gauche, par B21. Mais, en fait, une seule colonne hors-base (l’une des colonnes de B21 # N) est utile lors de l’ité ration : c’est la « colonne entrante » qui permet ensuite de déterminer, à l’aide du second critère de Dantzig, la variable sortante. Aussi, le calcul de la valeur courante des autres colonnes hors-base (celles de B21 # N), qui sont au nombre de n 2 m, est-il inutile pour pratiquer l’itération. Dans la méthode révisée du simplexe, on évite ces calculs inutiles : on calcule seulement les coefficients de la colonne entrante, c’est- à-dire du vecteur-colonne B21 # Ne 5 ye, où Ne est la colonne d’indice e de la matrice Ν (sous-matrice de A). Ceci revient à résoudre un second système linéaire : B # ye 5 Ne (si l’on ne connaît pas B21, ou bien si l’on ne souhaite pas calculer expli citement cet inverse). Ainsi on résout un nouveau système linéaire, mais de même matrice B que le premier système, celui qui nous a permis de calculer la solution de base xB. Les m coefficients de ye sont notés : αi1,e, αi2,e,c, αim,e, sachant que la base est com posée des colonnes Ai1, Ai2,c, Aim (extraites de A). Il est alors aisé, connaissant ye, de déterminer, à l’aide du second critère de Dantzig, la variable sortante xs. Pour déterminer la variable entrante xe, on peut préalablement appliquer, par exemple, le premier critère de Dantzig, ce qui suppose la connaissance des coefficients Dj (c’est-à-dire de l’expression de z en fonction des variables hors-base). Nous allons montrer que les Dj peuvent être obtenus par la résolution d’un troisième système linéaire, à nouveau de matrice B. Nous avons vu que z 5 ,zB 1 DN # xN où ,zB 5 cB # B 2 1 et DN 5 cN 2 cB # B2 1 # N.
© Dunod – Toute reproduction non autorisée est un délit.
Posons p 5 cB # B21 : ce vecteur ligne 1 3 m est nommé vecteur des « multiplica teurs du simplexe ». Le calcul de p revient à résoudre le système linéaire p # B 5 cB Remarquons que, s’il a la même matrice Β que les deux systèmes précédents, il fait intervenir un vecteurligne d’inconnues : p 5 [pι, p2,c, pm] multipliant à gauche la matrice B, alors que, dans les deux systèmes précédents, on avait un vecteur-colonne m 3 1 multi pliant à droite la matrice B. Une fois calculé p, le calcul de DN est trivial : DN 5 cN 2 p # N et l’on peut alors déterminer la variable entrante. Ainsi dans la méthode révisée du simplexe, chaque itération se résume à résoudre trois systèmes linéaires, de même matrice B, régulière. La résolution numérique de tels systèmes est du domaine de l’analyse numérique ; elle a été très investiguée et bénéficie de multiples variantes de résolution efficaces et précises. Il existe donc de nombreuses variantes de la méthode révisée du simplexe. Une voie possible est de calculer B21. Dans la variante EFI (forme explicite de l’inverse), on calcule explicitement B21 à partir de l’inverse de la matrice de la base de l’itération précédente, B21 étant représentée en mémoire centrale. Cette variante est adaptée aux programmes linéaires de taille modérée. 341
Chapitre 8 • La programmation linéaire
Pour les programmes linéaires de plus grande taille, on utilise plutôt la variante PFI (forme produit de l’inverse), où B21 est utilisée, mais implicitement. L’avantage de la méthode révisée (par rapport à la version initiale de l’algorithme du simplexe, par exemple implémentée par la méthode des tableaux) est double : – Une réduction de la masse des calculs : lors de chaque itération on explicite une seule colonne hors-base : ye, la colonne entrante, au lieu des n 2 m colonnes hors base dans la version initiale de l’algorithme du simplexe. – Des gains de précision sont obtenus ; en arithmétique flottante les erreurs de tron cature se cumulent, ce qui peut amener, au fil des itérations, à des calculs imprécis, voire même faux. Ainsi lorsque l’on connaît l’ensemble des variables de base, on peut recalculer B21 directement à partir des données initiales (donc non entachées d’erreurs au fil des itérations). On recalcule ainsi B21 (« réinversion ») en pratique, toutes les 15 à 20 itérations environ. L’analyse numérique nous fournit, ici aussi, des méthodes efficaces et précises pour recalculer B21. La méthode révisée du simplexe est celle qui est implémentée dans les logiciels uti lisant l’algorithme du simplexe. Il existe d’autres méthodes pour résoudre les programmes linéaires (développées efficacement à partir de 1985) : les méthodes dites « intérieures », dont l’exposé sort du cadre de cet ouvrage (elles relèvent des techniques de la programmation non linéaire). Leur complexité (dans le pire des cas) est polynomiale, ce qui n’est pas le cas de l’algorithme du simplexe. À l’heure actuelle aucune de ces deux approches ne surclasse en pratique l’autre ; d’ailleurs certains logiciels très performants les implé mentent toutes deux et, lors de la résolution d’un problème, toutes les deux sont exécutées indépendamment, en parallèle : il s’opère ainsi une « course » (dont le « gagnant » varie selon les instances traitées).
8.7 Dualité 8.7.1 Définition du dual Une des remarques les plus fructueuses que l’on peut faire à propos de la program mation linéaire, est qu’à chaque programme linéaire on peut associer, par la règle donnée ci-dessous, un autre programme linéaire, nommé « programme dual ». Le premier programme linéaire est alors appelé « programme primal ». Leurs proprié tés, nous le verrons, sont étroitement liées. Reprenons l’exemple précédent : x1 f
342
3x1 x1 4x1
x2 + , +
6x2 x2 12x2
+ , +
x3 2x3 x3 3x3
< < < < > =
1 000 500 1 500 6 750 0 z [max]
8.7 Dualité
Il est de la forme : A # x < b , x > 0 , c # x 5 z [max] , que l’on appelle « forme standard de passage au dual ». Dans ce cas, les composantes du vecteur b ne sont pas astreintes à être positives, comme lors de la résolution du primal. Par définition, le programme dual de notre exemple est : y1
y2
e y1 1 000y1
, +
y2 500y2
, +
y3 y3 1 500y3
+ + + , +
3y4 6y4 2y4 y4 6 750y4
> > > > =
4 12 3 0 z r [min]
Ainsi le primal comporte n = 3 variables, positives ou nulles et m = 4 contraintes explicites. Dans le programme dual on a nr 5 m 5 4 variables, elles aussi positives ou nulles, et m r 5 n 5 3 contraintes explicites. L’objectif du primal est une maxi misation, celui du dual est une minimisation. Les « seconds membres » du dual ne sont autres que les coefficients de la fonction économique du primal, c’est-à-dire le vecteur c (transposé) ; de même, les coefficients de la fonction économique du dual ne sont autres que les « seconds membres » du primal, c’est-à-dire le vecteur b (transposé). Enfin les matrices des coefficients du primal : A, et celle du dual : Ar, sont : 1 0 A = D m3n 0 3
0 1 0 6
0 0 T ; 1 2
1 Ar = C0 n3m 0
0 1 0
0 0 1
3 6S 2
On constate que la matrice Ar du dual est la transposée de la matrice du primal : Ar 5 AT . Enfin, on remarque que les contraintes, dans la forme standard du primal, sont des inégalités de sens : < , soit : a aij # x j < bi où i = 1, 2,c, m .
© Dunod – Toute reproduction non autorisée est un délit.
n
j51
Celles du dual sont de sens inverse : > , soit : a y i # aij > cj où j = 1, 2,c, n . m
i51
On peut résumer matriciellement cette règle de passage : le primal, sans introduc tion de variable d’écart et s’il ne comporte pas de contrainte en égalité, peut s’écrire : (P) A # x < b , x > 0 , 3 max 4 z 5 c # x où bi (i 5 1, 2,c, m) est ici de signe quelconque, les formats étant les suivants : pour A : m 3 n ; pour b : m 3 1 ; pour x : 1 3 n ; pour c : 1 3 n.
343
Chapitre 8 • La programmation linéaire
Le programme dual, en notant y le vecteur-ligne 1 3 m des variables duales, est par définition : (D) y # A > c , y > 0 , 3 min 4 zr 5 y # b . Pour notre exemple, il vient pour le primal : 1 0 D 0 3
0 1 0 6
0 1 000 x1 0 500 T ? B x2 R < C1 500S ; 1 x3 6 750 2
x1 x1 B x2 R > 0 ; [max] z = [4, 12, 3] ? B x2 R x3 x3
et pour le dual : 3 y1, y2, y3, y4 4 # D
i
1
0
0
0 3
0 6
1 2
0
1
0
T > 3 4, 12, 3 4 ,
3 y1, y2, y3, y4 4 > 0 ;
1 000
min z r 5 3 y 1, y 2, y 3, y 4 4 # C 500S . 1 500 6 750
En développant, on retrouve l’expression du dual donnée plus haut. ❑ À titre d’exercice, indiquons comment passer au dual pour le PL suivant : 2x 1 x1
3x 1
e 3 min 4
1 2 2
x1
,
2 2x 1
1
x2 5x 2
2x 2
2 1 1
x2
,
3x 2
1
4x 3 6x 3
< >
10 2
7x 3
5
x3
>
0
4x 3
5
z
5
Il convient de ramener chaque contrainte, si nécessaire, à la forme : ax 1 1 bx 2 1 gx 3 < d (où δ, ici, peut être négatif), de s’assurer de ce que toutes les variables du primal sont positives ou nulles, et - enfin - de ramener la fonction économique, si nécessaire, à une maximisation. En particulier ici on remplacera la contrainte en égalité : 3x1 – 2x2 + 7x3 = 5, par deux inéquations de sens contraires : 3x 1 2 2x 2 1 7x 3 < 5 et 3x 1 2 2x 2 1 7x 3 > 5 cette dernière inéquation (de même que : x 1 2 5x 2 1 6x 3 > 2) doit être multipliée par –1 pour obtenir une inégalité de la forme ax 1 1 bx 2 1 gx 3 < d ; de même on ramène la fonction économique à une maximisation en la multipliant par –1. Ainsi le primal devient, sous forme standard de passage au dual : 344
8.7 Dualité
2x1
1
2 x1
1
3x1
(P) f
2x2
x1
,
2x1
2
2
x2
,
3x2
2
22
>
0
5
zr
On a donné, ci-dessus, le dual que le lecteur obtiendra en appliquant la règle de pas sage que nous avons détaillée plus haut.
8.7.2 Liens entre le primal et le dual Donnons maintenant des propriétés importantes liant le primal et le dual. 1) D’abord, si l’on a la curiosité de chercher le dual du dual pour notre premier exemple, il nous faudra commencer par ramener les contraintes du dual à des in équations de la forme
0
y1
,
y2
,
y3
,
y4
2 1 000y 1
2
500y 2
2
1 500y 3
2
6 750y 4
3 max 4
Nommons t1, t2 et t3 les nouvelles variables duales : 2 t1
> 21 000 2
dual du f dual
t2 t3
> 21 500
6t2
2 2t3
> 26 750
t1
,
t2
,
t3
2 4t1 2 12t2 2 3t3
> 0 3 min 4
3 3
0 y2 > 2y2 = z9 [min]
On vérifie (par exemple graphiquement) que l’optimum de Ρ est rejeté à l’infini. Le dual est impossible (son polyèdre est vide) car la somme de ses deux contraintes explicites fournit : 23y 2 > 6, soit : y 2 < 22, qui est contradictoire avec y 2 > 0. – Illustration du cas 3
(P) d
x1
–
–x1
+
x1
,
2x1
+
x2 < x2 < x2 > x2 =
3
(1)
– 4
(2)
0 z [max]
(D) d
y1
–
– y1
+
y1
,
3y1
–
y2 > y2 >
2
(19)
1
(29)
0 y2 > 4y2 = z9 [min]
(P) n’a pas de solution admissible : (1) + (2) entraîne 0 < 21 : impossible. (D) non plus, car (1r) + (2r) entraîne 0 > 3 : impossible.
346
8.7 Dualité
8.7.3 Critère d’optimalité Supposons que le primal et le dual aient des solutions admissibles (cas 1). Soit x une solution admissible du primal et y une solution admissible du dual (ces solutions n’étant pas nécessairement des solutions de base). On montre aisément(1) que la valeur de la fonction économique du primal pour tout x est majorée par celle du dual pour tout y : z ( x ) < z r ( y ) soit : c # x < y # b. On en déduit aisément (par l’absurde) que s’il existe une solution admissible , x du primal et une solution admissible du dual , y telles que : z(, x ) 5 z r( , y ) soit : c # , x5, y # b, alors , x est une solution optimale du primal et , y , une solution optimale du dual.
© Dunod – Toute reproduction non autorisée est un délit.
8.7.4 Correspondance entre l’optimum du primal et l’optimum du dual (cas 1) Nous allons tout d’abord résoudre le programme dual du problème de l’atelier. Le lecteur observera que les variables d’écart doivent présenter un coefficient –1, en raison du sens des inégalités au dual : > ; on rappelle que les variables d’écart doivent être non négatives. Il se pose le problème de la solution de départ (de la base initiale). Dans la résolution du primal nous avions annulé les variables x1, x2 et x3 (variables hors-base) et obtenu x4 = 1 000, x5 = 500, x6 = 1 500 et x7 = 6 750, c’est-à-dire que la base initiale était formée des m = 4 variables d’écart ; de plus les colonnes A4, A5, A6 et Α7 étaient unitaires (et juxtaposées, constituant une matrice identité 4 3 4). Mais, au dual, si l’on pratiquait de même, on aurait y5 = – 4, y6 = –12 et y7 = –3 : non admissible. Cependant, pour la résolution du dual, nous avons une base initiale admissible évidente puisque les colonnes 1, 2 et 3 du dual sont unitaires : les variables y1, y2 et y3 forment cette base et la matrice de base est : B 5 I. Il convient alors d’exprimer z r uniquement en fonction des variables hors-base, c’est-à-dire y4, y5, y6 et y7 : z r 5 1 000y 1 1 500y 2 1 1 500y 3 1 6 750y 4 zr 5 1 000 # ( 4 2 3y4 1 y5 ) 1 500 # ( 12 2 6y4 1 y6 ) 1 1 500 # ( 3 2 2y4 1 y7 ) 1 6 750y4 z r 5 14 500 2 2 250y 4 1 1 000y 5 1 500y 6 1 1 500y 7 Enfin au lieu de minimiser z r, nous maximiserons son opposé (ce qui est équivalent) : z s 5 2z r 5 214 500 1 2 250y 4 2 1 000y 5 2 500y 6 2 1 500y 7. 1. (1) En effet : 3 A # x < b et y > 0 4 entraîne : y # ( A # x ) < y # b (5 z r ( y )) et 3 y # A > c et x > 0 4 entraîne : ( y # A ) # x > c # x (5 z ( x )) , d’où : z ( x ) < y # A # x < z r ( y ) .
347
Chapitre 8 • La programmation linéaire
s
↑
Pour la formulation de ce dual, le lecteur se reportera au paragraphe 8.7.1. Le tableau initial pour ce dual est le suivant : (1)
y1
y2
y3
y4
y5
y6
y7
y1
1
0
0
3
1
0
0
4
4/ 3*
y2
0 0
1
0
0
1
0
12
12/ 6
0
1
6 2
0
0
1
3
3/ 2
0
0
0
y3 i
2250 1000 500 1500
z 14 500
↑
e
La fonction économique du dual comporte un seul coefficient positif : Δ4 = 2250 : y4 entre en base ; puis on détermine la variable sortante : y1. On obtient alors une nouvelle base, dont voici le tableau : y1
y2
y3
(2)
y1
y2
y3
y4
y5
y6
y7
0
0
1
1/ 3
0
0
y2
1/ 3 2
1
0
0
2
1
0
4/ 3 4
y3
2/ 3
0
1
0
2/ 3
0
1
1/ 3
750
0
0
0
y4
i
250 500 1500
z 11 500
On a atteint l’optimum : y1 = 0 , y2 = 4 , y3 = 1/3 , y4 = 4/3 , y1 5 0, y2 5 0, y3 5 0 ; zs 5 211 500. Puisque z s 5 211 500, on a z r 5 11 500. Rappelons le tableau optimal du primal : x2
x1
x2
x3
x4
x1
1
0
0
0
x2
0
1
0
0
x1
0
0
0
1
2
0
0
1
0
0
0
0
0
0
x3
j
348
x1
x5
x3
x6
x4
x7
2 2/ 3 1/ 3 0 1 0
250 500 750
2/ 3 1/ 3 0 1
1500
4 1/ 3 4/ 3
z 11 500
8.7 Dualité
On a renommé les variables d’écart du dual : y 1, y 2 et y 3 (au lieu de y 5, y 6 et y 7) ; de même pour celles du primal : x 1, x 2, x 3 et x 4, (au lieu de x4, x5, x6 et x7). On constate alors à l’optimum du primal et du dual que : 1) la valeur de zr 5 11 500 de l’optimum du dual égale celle de l’optimum du pri mal ; 2) les valeurs des variables de base au dual : y2, y3 et y4 sont égales, au signe près, aux valeurs de D 2, D 3 et D 4 au primal ; 3) les valeurs des D jr du dual : D 1,r D 1r , D 2r et D 3r sont égales, au signe près, aux valeurs de x 1, x1, x2 et x3 au primal. On montre que cette correspondance entre l’optimum du primal et l’optimum du dual est générale : yi 5 2 Di et x i 5 2 D ir pour i 5 1, 2, c, m c y j 5 2 Dj et xj 5 2 D jr pour j 5 1, 2, c, n. De plus, si xj est dans la base optimale du primal (resp. hors-base), alors y j est hors base au dual (resp. dans la base). De même si yi est dans la base du dual (resp. horsbase), alors x i est hors-base au primal (resp. dans la base). On le montrera au 8.7.5. 4) On peut donner aussi une correspondance entre les coefficients akl du tableau optimal du primal et arkl, ceux du tableau optimal du dual, en se limitant aux colonnes hors-base (les colonnes de base sont triviales, puisque unitaires) :
© Dunod – Toute reproduction non autorisée est un délit.
r 5 2 a l ,k . ak,l 5 2 a rl ,k et ak,l Une manière pratique d’appliquer cette règle de correspondance est de condenser en un tableau unique le tableau optimal et celui du dual : On y a réordonné la base optimale du primal : x1, x2, x3, x 1 ; x 2, x 3, x 4 (en mettant en tête les variables de base, puis les variables hors-base) et le tableau optimal du primal en conséquence (en échangeant sa troisième et sa quatrième ligne) et l’on a fait figu rer la ligne de la fonction économique à l’optimum du primal (les Δj et z) au-dessus du tableau (au lieu d’au-dessous). On y a aussi réordonné la base optimale du dual : y 1, y 2, y 3, y1 ; y 2, y 3, y 4 (en mettant en tête les variables hors-base, puis les variables de base) et le tableau optimal du dual en conséquence (en plaçant en dernière ligne, sa première ligne, puis en réor donnant les colonnes dans l’ordre ci-dessus. Enfin le vecteur des seconds membres a été placé à gauche du tableau au lieu d’à droite. Le tableau optimal du dual est alors placé immédiatement au-dessous de celui du primal. On déduit alors le sous-tableau non trivial du tableau optimal du dual (c’est-à-dire les colonnes hors-base, les seconds membres et les Dr des variables hors-base), à partir du sous-tableau non trivial du tableau optimal du primal, en transposant ce dernier sous-tableau, puis en multipliant par –1 tous les éléments du sous-tableau transposé ; les deux sous-tableaux non triviaux, respectivement du primal et du dual, sont encadrés d’un trait épais : 349
Chapitre 8 • La programmation linéaire
x4
x1
x2
x3
x1
x2
0
0
0
0
4 1/ 3 4/ 3 11500
1
0
0
2 2/ 3 1/ 3
250
x1
0
1
0
0 0
0
500
x2
0
0
1
0
0
0
0
1
0 2
0
2
1
0
1 2/ 3
0
1
0 0
1/ 3
0
0
1
0
0
0
y2
y3
y4
1
x3
0
1500 0 1 2/ 3 1/ 3 750 ↑
↑
y2
4
2
1
y3
1/ 3
2/ 3
0
y4
4/ 3
1/ 3
0
0
z 11500 250 500 1500 750 y1
y2
y3
y1
z
x3 Primal x1
Dual
Les sous-tableaux relatifs aux variables de base, respectivement du primal (x1, x2, x3 et x 1) et du dual (y2, y3 et y4), sont qualifiés de « triviaux » car constitués de colonnes unitaires (formant une matrice identité, de format m 3 m au primal et n 3 n au dual), et de la partie de la ligne des coefficients de la fonction économique (resp. D et Dr) associée à ces variables de base ; ces coefficients sont donc tous nuls.
8.7.5 Relations d’exclusion Considérons deux programmes linéaires en dualité : le primal (P) [A # x < b , x > 0 , max z = c∙x] et le dual (D) [y # A > c , y > 0 , min zr 5 y # b]. Alors : , , , x 1, , x et y , ( x 5 3 , y 5 3, y 1, , y 2, c, , x 2, c, , y m 4 ), solutions admissibles x n 4 et , respectivement du primal et du dual, sont des solutions optimales si et seulement si : , yi # , xi 5 0
, y i # £ bi 2 a aij # , xj ≥ 5 0 n
soit :
(i = 1, 2,c, m)
(1)
j51
f , y j#, xj 5 0
£ a, y i # aij 2 cj ≥ # , x i 5 0 ( j = 1, 2,cn) m
soit :
(2)
i51
Appliquons ces relations à notre exemple, le problème de l’atelier : y1 ? (1 000 2 x1) 5 0 ; y2 ? (500 2 x2) 5 0 ; y3 ? (1 500 2 x3) 5 0 ; c y4 ? (6 750 2 3x1 2 6x2 2 2x3) 5 0 (1) (y1 1 3y4 2 4) ? x1 5 0 ; (y2 1 6y4 2 12 ) ? x2 5 0 ; (y3 1 2y4 2 3) # x3 5 0 (2) 350
8.7 Dualité
Les relations d’exclusion permettent : • de trouver aisément l’optimum de dual, si l’on connaît l’optimum du primal et réciproquement (on suppose évidemment ici que l’on ne connaît pas le tableau opti mal, sinon on appliquerait la règle de correspondance du paragraphe précédent!), comme suit : Reprenons le sous-problème de notre exemple de l’atelier à n = 2 variables : ( P ) 3 x1 < 1 000 ; x2 < 500 ; x1 1 2x2 < 1 750 ; x1, x2 > 0 ; max z 5 4x1 1 12x2 4
il a pour dual : ( D )3 y1 1 y3 > 4; y2 1 2y3 > 12; y1, y2. y3 > 0; min zr 5 1 000y1 1 500y2 1 1750y34 .
Les relations d’exclusion s’écrivent :
y1 ? (1 000 2 x1) 5 0 ; y2 ? (500 2 x2) 5 0 ; y3 ? (1 750 2 x1 2 2x2) 5 0
(1)
(y1 1 y3 2 4) ? x1 5 0 ; (y2 1 2y3 2 12 ) ? x2 5 0
(2)
b
On a résolu (graphiquement) (P) : x *1 5 750 , x *2 5 500 , z * 5 9 000 Reportons ces valeurs dans les relations d’exclusion ; il vient le système linéaire :
© Dunod – Toute reproduction non autorisée est un délit.
y1 ? (1 000 2 750) 5 0 ; y2 ? (500 2 500) 5 0 ; y3 ? (1 750 2 1 750) 5 0 b (y1 1 y3 2 4) ? 750 5 0 ; (y2 1 2y3 2 12 ) ? 500 5 0
(1) (2)
On trouve aisément : y1 = 0 et, en reportant dans (2) : y3 = 4, y2 = 4. On sait en outre qu’à l’optimum z r = z, d’où z r = 9 000. L’optimum de (D) a donc été facilement obtenu. • Les relations d’exclusion permettent aussi de tester si une solution admissible du primal (ou du dual) est optimale ou pas. Il suffit alors de reporter les valeurs des variables du primal (resp. du dual) dans le système des relations d’exclusion, puis de déterminer si l’on obtient une solution admissible du dual (resp. du primal) : si oui, la solution testée du primal est optimale, sinon elle ne l’est pas. Ainsi, sur le même exemple, testons si la solution admissible x1 = 850 ; x2 = 450 est optimale (certes, nous connaissons d’avance le résultat, puisque la solution optimale du problème de l’atelier est unique, mais omettons le provisoirement). Il vient : y1 ∙ (1 000 2 850) = 0 ; y2 ∙ (500 2 450) = 0 ; y3 ∙ (1 750 2 1 750) = 0 , d’où y1 = y2 = 0. Puis : (y3 2 4) ∙ 850 = 0 et (2y3 2 12) ∙ 450 = 0. Il y a contradiction : y3 ne saurait être égal à la fois à 4 et à... 6. La solution admissible de (P) : x1 5 850 et x2 5 450 n’est donc pas optimale. Pour terminer soulignons que les relations d’exclusion s’appliquent à des solutions admissibles de (P) et (D), mais pas nécessairement de base (comme dans notre cal cul ci-dessus). Ainsi pour l’exemple du 8.3.1, pour lequel tous les points du segment [B,C] sont optimaux, le lecteur pourra vérifier ainsi que la solution x1 = 2,2 ; x2 = 4,7 ; x 1 5 1,2 (qui n’est pas de base) est optimale : le point (2,2 ; 4,7) étant sur [B, C].
351
Chapitre 8 • La programmation linéaire
Enfin ces relations impliquent que : – si une contrainte du primal n’est pas saturée (x i 2 0), alors la variable duale associée à cette contrainte est nulle : yi = 0 ; – si une contrainte du dual n’est pas saturée (y j 2 0), alors la variable primale associée à cette contrainte est nulle : xj = 0 ; – si une variable du primal xj est non nulle, alors la variable d’écart du dual y j est nulle. – si une variable du dual yi est non nulle, alors la variable d’écart du primal x i est nulle.
8.8 Programme linéaire en nombres entiers Méthodes des troncatures de gomory En pratique il arrive fréquemment que dans un programme linéaire certaines variables soient astreintes à être entières, comme nous l’avons déjà vu en fin du cha pitre 1. On parle alors de « programme linéaire en nombres entiers » (PLNE). Ainsi une entreprise ne saurait construire 1, 45 entrepôts, acquérir x2 = 2, 37 camions ou encore affréter x3 = 0, 41 avion. . . comme pourrait lui indiquer la solution opti male d’un PL en variables continues ! Malheureusement l’arrondi des variables, que ce soit par excès ou par défaut, peut ne pas être optimal ou, pire, ne pas être admissible (comme dans l’exemple du paragraphe suivant). Aussi ne pourra-t-on pas se contenter d’arrondir les variables pour passer de l’optimum du PL continu à celui du PLNE. En outre, dans la modélisation de nombreux problèmes de recherche opérationnelle, il se révèle nécessaire d’introduire des variables binaires : xj = 0 ou 1, pour représenter des contraintes non classiques, comme par exemple des discontinuités dans une courbe de tarif d’un transporteur ou dans le cas de charges fixes, s’ajoutant à un coût d’activité proportionnel au niveau de cette activité, dès lors que ce niveau n’est pas nul ; ou, plus classiquement, pour le choix d’entrepôts à construire sur des sites à déterminer dans une liste des sites possibles ; ou encore pour le choix de matériels à acquérir ou pas. Quelques modèles classiques sont importants pour les applications en logistique comme dans les plannings de transport de personnes (autobus, métros, trains, avions) : le problème du sac à dos ou knapsack (déjà traité dans cet ouvrage), le problème de par titionnement, le problème de recouvrement (consulter, par exemple, [Roseaux, tome 3]). Voici un exemple de « knapsack » : un camion peut transporter une charge maximale de b = 14 tonnes, de n = 4 marchandises différentes. Le poids de chacune des 4 marchandises est respectivement de 4, 6, 8 et 10 tonnes. Enfin, le bénéfice attendu de la vente de chacune des marchandises, après son transport, vaut respectivement : 2 000, 2 700, 3 600 et 4 400 euros. Déterminer le chargement du camion permettant de maximiser le bénéfice. Le problème s’écrit : c
352
4x 1
1
6x 2
1
8x 3
1
10x 4
1 , où i 5 1, 2, n
n
j51
j51
Voici une application du problème de partitionnement à un problème de tour nées. Soient quatre points e1, e2, e3, e4 représentant quatre clients à qui l’on doit livrer respectivement 2, 4, 8 et 10 tonnes de marchandise, à partir d’un entrepôt central e0, ceci avec un camion de capacité C = 16 tonnes. Le tableau (symétrique) des dis tances (en km) est le suivant : e0 e1 e2 e3 e4 e0
.
e1 15
15 8
.
12 9
e3
12 25 5 8 12 . 10 20 12 25 10 . 6
e4
9
e2
5
20 6
.
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 e1
1
0
0
0
1
1
1
0
0
1
1
e2
1
0
0
1
0
0
1
1
1
1 A
e3
0 0
0
1
0
0
1
0
1
0
1
0
e4
0
0
0
1
0
0
1
0
1
0
1
cj 30 16 24 18 35 52 29 30 37 49 34 On peut, ici, énumérer toutes les tournées « admissibles » Pj, c’est-à-dire respectant la contrainte de capacité (la somme des quantités livrées aux clients d’une même tournée doit être inférieure ou égale à 16 tonnes) ; cette énumération des 11 tour nées admissibles n’a été possible que parce que cet exemple est de très petite taille. Donnons le détail du calcul du coût cj de la tournée Pj ; ainsi pour la tournée P11 qui concerne les clients e1, e2 et e4 (puisque a1, 11 = a2, 11 = a3, 11 = 1), on cherche l’iti néraire de longueur (en km) minimale qui, partant de e0, permet de passer une fois et une seule chez ces trois clients, puis de revenir à e0. Ceci revient à résoudre le « problème du voyageur de commerce » (TSP) pour une instance de très petite taille, puisque comportant seulement quatre points ; on vérifie que, parmi les 3 cycles hamiltoniens du graphe ci-contre, celui de la lon gueur minimale est : 354
8.8 Programme linéaire en nombres entiers…
[e0, e2, e1, e4, e0] avec 34 km. Dans un exemple de taille industrielle, l’énumération exhaus 5 12 9 8 tive des tournées admissibles serait impraticable et l’on e4 e2 procéderait à une génération progressive de tournées « inté 20 ressantes », sans les énumérer toutes : il s’agit là d’une tech nique de « génération de colonnes » permettant de traiter certains PL comportant, a priori, un très grand nombre de colonnes (dont l’exposé sort du cadre de cet ouvrage). Les problèmes de tournées peuvent être résolus, de manière approchée, par des heuristiques « gourmandes » comme la méthode des écartements de Fletcher. Voici la formulation de notre problème de tournées en tant que problème de par titionnement avec 11 variables binaires : 15
e0
e1
x1
+ x5 + x6 + x7 + x10 + x11 = + x8 + x9 + x10 + x11 = x5 + x2 + x6 + x8 + x10 = e x3 + x7 + x9 + x11 = x4 30x1 + 16x2 + 24x3 + 18x4 + 35x5 + 52x6 + 29x7 + 30x8 + 37x9 + 49x10 + 34x11 =
1 1 1 1 z
La solution optimale de ce problème est : x3 = x11 = 1 ; elle a pour coût z* = 58. Elle correspond aux deux tournées [e0, e2, e1, e4, e0] et [e0, e3, e0]. Nous passons maintenant à une méthode de résolution différente de celles évo quées ci-dessus, fondée uniquement sur la programmation linéaire et permettant de traiter des PL en variables entières.
8.8.1 Méthode des troncatures de Gomory 12x1
© Dunod – Toute reproduction non autorisée est un délit.
Soit à résoudre le PL : d
2
x1
,
x1
1
8x2
2x2
<
Ε(aij), car Ε(aij) est le plus grand entier inférieur ou égal à aij. Prenons une variable hors-base xj; puisqu’elle est positive ou nulle, on a aij # x j > E ( aij ) # x j.
Sommons toutes ces relations pour x j Pn; il vient : a aij # x ij > a E ( aij ) # x j. Par ajout de xi à chaque membre, il vient :
x jPn
x jPn
bi 5 x i 1 a aij # x j > x i 1 a E ( aij ) # x j. x jPn
(8.1)
x jPn
On a aussi bi > E ( bi ) . Si xi doit être entier, de même que xj pour tout x j PN, on a donc : E ( bi ) > x i 1 a E ( aij ) # x j x jPn
356
(8.2)
8.8 Programme linéaire en nombres entiers…
Introduisons la partie fractionnaire fi de bi : bi 5 E(bi) 19 19 5 19 par exemple 5 2 1 donc E a b 5 2 et f a b 5 7 7 7 7 pour la partie fractionnaire fij de aij : aif 5 E(aij) 1 La relation (1) s’écrit :
1 fi où 0 < fi , 1 ; 5 ; il en va de même 7 fij où 0 < fij , 1.
x i 1 a ( E ( aij ) 1 f ij ) # x j 5 bi
(8.2bis)
x jPn
Introduisons une variable d’écart si > 0 dans la relation (8.2) : x i 1 a E ( aij ) # x j 1 si 5 E ( bi )
(8.2ter)
x jPn
La soustraction membre à membre (8.2bis) et (8.2ter) fournit :
# a f ij x j 2 si 5 f i
(8.3)
x jPn
Considérons maintenant une variable de base xi qui, à l’optimum du PL continu, ne serait pas entière ; alors on a : fi . 0 . Pour passer aux valeurs numériques des variables à cet optimum, on annule les variables hors-base : xj = 0 pour x j Pn; (8.3) donne alors –si = fi, or –si est négatif ou nul, tandis que fi est strictement positif. Ainsi la contrainte (3) n’est pas vérifiée à l’optimum du PL continu ; si on la rajoute aux contraintes du PL, elle supprime une partie du domaine admissible $, d’où son nom de « troncature » ; on peut démontrer que la partie supprimée ne contient pas de point à coordonnées qui seraient toutes entières. Notons que l’on peut faire subir à l’expression (2) de la fonction économique : z 1 a Dj # x j 5 z*,
(8.4)
x jPn
© Dunod – Toute reproduction non autorisée est un délit.
un traitement analogue à celui de la relation (2). Revenons à notre exemple. Les relations (8.3) s’écrivent : 5 1 1 1 x 3 1 x 4 2 s1 5 f a b 5 3 12 4 4 3 1 1 pour i = 2 : x 4 2 s2 5 f a b 5 2 2 2 pour i = 1 :
1 1 x4 2 s2 5 dans notre programme 2 2 linéaire ; pour cette nouvelle contrainte, la solution courante du primal n’est pas admissible. Mais nous pouvons l’intégrer au primal1, à condition d’ajouter dans Nous choisissons d’intégrer la seconde :
1. Cette contrainte est « duale-admissible » et pourrait être directement intégrée au dual. Notre démarche, ici, est seulement didactique. 357
Chapitre 8 • La programmation linéaire
cette nouvelle contrainte une variable artificielle, notée a2, pour compléter la base précédente b 5 {x1, x2}; en effet, nous avons désormais 3 contraintes explicites. 1 1 Comme plus haut : La nouvelle contrainte devient : x 4 2 s2 1 a2 5 et la 2 2 fonction économique (cf 8.5.6) :
↑
z r 5 x 1 1 x 2 2 M # a 2 (où M est un coefficient positif très grand); a2 étant une variable de base, il convient d’abord d’exprimer z r en fonction des variables hors-base, 11 M M 5 1 soit : x3, x4 et s2 ; ce qui donne : zr 5 a 2 b 2 x3 1 a 2 bx4. 4 2 2 12 6 ci
xi
x1
x2
1
x1
1
0
1
x2
0
1
M
a2
0 cj
s2
a2
1/ 12 1/ 3
0
0
5/4
0
1/2
0
0
3/ 2
0
0
1/2
1
1
1/ 2
1
1
0
0
0
M
0
0 1/ 12 M/ 2 M 5/ 6
x3
x4
0
z 11 M 4 2
↑
e
En une itération, on fait sortir de la base courante la variable artificielle a2 et on obtient une base sans variable artificielle (a2 sera donc prise nulle ultérieurement) : ci
xi
x1
x2
x3
x4
s2
1
x1
1
0
1/ 12
0
2/ 3 2/ 3
1
x2
0
1
0
1
0
x4
0
0
0 0
1
2
1 2
1
1
0
0
0
M
0
0
cj
1/ 12 0
a2
5/ 3 M 5/ 3
11/ 12 1 1 z 23 12
(comme la variable artificielle a2 est nulle, on a : z coïncide désormais avec z'). Dans la suite on supprimera donc la colonne a2 de ce tableau. 11 La variable de base x1 vaut ; x1 n’étant pas entière, on peut en déduire une nou 12 11 1 2 velle troncature : x 3 1 s2 2 t1 5 , où t1 est une nouvelle variable d’écart. 3 12 12 358
8.8 Programme linéaire en nombres entiers…
s
↑
À nouveau, cette contrainte n’est pas « primal-admissible » : pour l’intégrer au primal, on y ajoute une variable artificielle, notée a1. Elle devient : 11 1 2 x 3 1 s2 2 t1 1 a1 5 . 3 12 12 # et la fonction économique est z s 5 x 1 1 x 2 2 M a1 (à maximiser). Le nouveau tableau est le suivant : ci
xi
x1
x2
x3
x4
s2
t1
a1
1
x1
1
0
1/ 12
0
2/ 3
0
0
11/12
1
x2
0
1
0
0
1
0
0
1
0
x4
0
0
0
1
2
0
0
1
M
a1
0
0
1/ 12
0
2/ 3
1
1
11/12
1
1
0
0
0
0
M
0
M 1 12
0
2M 5 3
M
0
cj
0
j
z 23 11M 12
↑
e
© Dunod – Toute reproduction non autorisée est un délit.
En faisant entrer en base x3, la variable artificielle a1 sort de la base : ci
xi
x1
x2
x3
x4
s2
t1
a1
1
x1
1
0
0
0
0
1
1
0
1
x2
0
1
0
0
1
0
0
1
0
x4
0
0
0
1
2
0
0
1
0
x3
0
0
1
0
8
12
12
11
cj
1
1
0
0
0
0
M
j
0
0
0
0
1
1
M
z 1
1 ici z s 5 z car a1 5 0. Puisque désormais a1 = 0, on peut supprimer la colonne a1. On est alors à l’optimum de PLNE puisque toutes les variables sont entières : x1 = 0 , x2 = 1, x3 = 11, x4 = 1 ; z* = 1.
8.8.2 Interprétation graphique On aurait pu, certes, profiter du fait que le PLNE ne comporte initialement que 2 variables pour le résoudre graphiquement. Mais notre propos est, ici, seulement d’illustrer comment, à chaque itération, la troncature élimine du domaine admissible 359
Chapitre 8 • La programmation linéaire
initial d, une partie ne contenant pas de point à coordonnées toutes entières (points indiqués en gras sur les figures ci-après).
Figure 8.11
Pour obtenir l’équation de la droite qui tronque d(0) et ainsi obtenir d(1), il suf 1 1 fit, dans la première troncature : x 4 2 s2 5 , de ne faire figurer que les variables 2 2 principales : x1, x2, et s. Après introduction de la variable d’écart x4 dans la seconde 3 1 contrainte du PL initial, on avait : 2x2 + x4 = 3 d’où x 4 5 2 x 2, que nous repor 2 2 3 1 tons dans la troncature : a 2 x 2 b 2 s2 5 soit x2 + s2 = 1 qui équivaut (s2 étant 2 2 une variable d’écart) à la contrainte nouvelle : x 2 < 1; la droite tronquant d(0) pour obtenir d(1) est donc : x2 = 1. Pour la seconde troncature (passage de d(1) à d(2)), 11 1 2 il vient : x 3 1 s2 2 t1 5 ; or, d’après la première contrainte du PL initial : 3 12 12 1 1 2 12x1 – 8x2 + x3 = 3, d’où : x 3 5 2 x 1 1 x 2. De plus nous avions, au pas 3 12 4 2 2 2 précédent, x2 + s2 = 1, d’où s2 5 2 x 2. La seconde troncature s’écrit donc : 3 3 3 1 2 2 11 2 , soit x1 + t1 = 0 , d’où la nouvelle a 2 x 1 1 x 2 b 1 a 2 x 2 b 2 t1 5 3 3 3 4 12
contrainte : x 1 < 0 ; la droite tronquant d(1) pour obtenir d(2), qui n’est autre que le segment [O, C], est donc : x1 = 0. Note. Le nombre de contraintes (troncatures) rajoutées au fil des itérations peut être exponentiel par rapport à la taille du programme linéaire d’origine : la méthode de Gomory n’est pas polynomiale. Indiquons que – plus généralement – le problème de la programmation linéaire en nombres entiers est NP-difficile (le lecteur se repor tera au chapitre 2, paragraphe 2.2.1, complexité des problèmes). Même dans des cas « simples » comme le problème du sac à dos en variables entières (knapsack), c’est360
Exercices
à-dire un PL comportant une seule contrainte, le problème reste NP-difficile (pour des données quelconques).
EXERCICES *8.1 Formulation et résolution graphique d’un P.L. Une brasserie A produit 2 types de bière pour lesquels elle utilise 3 matières pre mières : maïs, houblon et malt. Le tableau ci-dessous résume les données du problème. Maïs
Houblon
Malt
Bénéfice
Bière blonde
2,5 kg
125 g
175 kg
65 €
Bière brune
7,5 kg
125 g
10 kg
115 €
Quantités disponibles
240 kg
5 kg
595 kg
Pour fabriquer 1 tonneau de bière blonde, le brasseur utilise 2,5 kg de maïs, 125 g de houblon et 17,5 kg de malt. La fabrication de ce tonneau lui rapporte alors un béné fice de 65 €. Le tableau se lit de manière analogue pour la bière brune. 1. Déterminer la fabrication optimale du brasseur graphiquement ; vérifier par la méthode des tableaux. 2. Une brasserie concurrente (notée B) demande au brasseur A de lui ven dre 50 % de son stock de houblon (et ce, bien entendu, avant que la fabri cation déterminée au 1) ne soit lancée). À quel prix minimum A devra-t-il lui vendre cette quantité de houblon ? Expliquer clairement votre raisonnement.
© Dunod – Toute reproduction non autorisée est un délit.
*8.2 Méthode des tableaux du simplexe et paramétrages Dans une carrière, trois tailles t1, t2 et t3 sont susceptibles de fournir une extraction maximale journalière de respectivement e1 = 200, e2 = 500 et e3 = 300 tonnes de trois minerais. La production journalière est d’abord stockée dans un local abrité, d’une contenance maximale de 1 800 m3 et l’on indique les volumes spécifiques respectifs des trois minerais : 1,8 ; 2 et 2,2 m3/t. Le lendemain, les minerais sont lavés : la laverie débite respectivement 80, 90 et 100 tonnes à l’heure pour les produits extraits des tailles t1, t2 et t3 ; en outre, son horaire journalier est limité à 10 heures de travail. Enfin, les profits unitaires réalisés sont, respectivement : p1 = 4, p2 = 5, p3 = 6 unités monétaires par tonne de minerai. 361
Chapitre 8 • La programmation linéaire
1. Quelle est la meilleure répartition des quantités de minerais à extraire ? 2. On conteste le profit réalisé sur le minerai extrait de la taille 1 : com ment l’optimum est-il modifié si ce profit varie autour de 4 unités moné taires ? Poser : c1 = 4(1 + l). Les calculs pour la question 3 étant longs, le lecteur est invité à consulter le corrigé. 3. La quantité maximale, extraite de t3 a été mal évaluée. Comment la répartition optimale évolue-t-elle si l’on pose : e3 = 300(1 + μ) ? NB. Cet exercice couvre une grande partie de ce chapitre de P.L. Le niveau de la question 2 est de 2 étoiles ; celui de la 3ème, de 3 étoiles.
*8.3 Contrainte redondante. Dualité Soit à maximiser la fonctionnelle linéaire : 5x1 1 4x2 1 3x3 1 sous les contraintes : x1 1 x2 1 x3 1 e
x4
5
x4
> >
60 6 12 60 10 42 0
(1) (2) (3) (4) (5) (6)
1. Écrire les six inéquations donnant x1 en fonction des autres variables et montrer que l’une d’entre elles est redondante (c-à-d isoler le terme en x1 dans les six inéquations). 2. Utilisant le fait qu’il reste une inéquation seulement du type x 1 < f ( x 2, x 3 ) et plusieurs du type x1 > wi ( x2, x3 ) , montrer que, quel que soit i : wi ( x 2, x 3 ) < f ( x 2, x 3 ) .
363
Chapitre 8 • La programmation linéaire
3. Mettre les deux inéquations qui subsistent sous la forme : x3 < g(x2 ) x 3 > c( x 2 ) et en déduire les bornes numériques de x2. 4. Montrer qu’il faut prendre x2 = 0 pour minimiser F et en tirer les bornes numériques de x3. 5. Revenant aux inéquations initiales qui ne contiennent plus x2, détermi ner les bornes numériques de x1, puis choisir x1 et x3 de manière à minimi ser F, tout en respectant l’ensemble des contraintes.
**8.7 Problème de découpe Une papeterie fabrique du papier en rouleaux de largeur donnée, qui est imposée par les caractéristiques de la machine de fabrication. Par contre, les commandes des clients font état de diverses largeurs. Ainsi, le rouleau de largeur standard, 215 cm ici, doit-il être coupé, ce qui entraîne des pertes. Le problème que le papetier veut résoudre est celui de la minimisation des pertes à la coupe (c’est-à-dire de la surface des chûtes). On pourra considérer, dans la suite, que la longueur des rouleaux est quasiment infinie.
On suppose que la papeterie a reçu les commandes suivantes : Largeurs (en cm) Longueurs commandées (en cm) A
95
180
B
84
90
C
60
90
On précise que les commandes doivent être au moins satisfaites, mais on n’exige pas qu’elles le soient, exactement : les longueurs découpées en surplus, sur une des largeurs commandées, ne sont pas considérées comme des chutes (elles seront commercialisées ultérieurement). 364
Exercices
1. Donner, sous la forme d’un tableau, les 6 possibilités de coupe (« plans de coupe ») standard en fonction des largeurs commandées, ainsi que les pertes sur la largeur (exprimées en cm). On justifiera le fait qu’on ne considère que 6 pos sibilités, à énumérer dans l’ordre lexicographique : 1) AA, 2) AΒ, … 6) CCC. 2. a) En notant xj la longueur découpée suivant le plan de coupe j ( j = l, 2, …, 6), modéliser ce problème sous forme de programme linéaire. b) Donner son dual et poser le premier tableau de la résolution de ce dual. c) Trouver une solution optimale du dual quasi évidente (qu’implique la 3e contrainte du dual). 3. En divisant chaque contrainte du primal par un entier convenable, faire apparaître une base évidente (avec B = I ) et poser le tableau associé. Est-il optimal ? (NB : introduire les variables d’écart seulement APRES ces divi sions.) Comparer cette démarche avec l’emploi de variables artificielles pour le primal sous sa forme du 2). 4. Par inspection des contraintes exprimant que les longueurs découpées, respectivement en largeur 95 cm (A) et 84 cm (B), sont au moins égales aux longueurs respectives commandées, et en tenant compte des coefficients de la fonction économique, trouver par un raisonnement direct le (ou les) opti mum(s). On justifiera le fait que les variables x3, x5 et x7 sont les variables de base à l’optimum. Donner alors la surface des chûtes en m2. 5. Donner la matrice de base Β associée à la solution du 4) pour laquelle la longueur découpée en largeur 95 cm vaut exactement 180 m. Calculer Β–1, puis dresser le tableau du simplexe associé. Conclure. 6. a) A l’aide du 5), déterminer sans calcul les valeurs optimales des variables duales. b) Retrouver ces valeurs, à l’aide des relations d’exclusion, connaissant l’opti mum du primal.
© Dunod – Toute reproduction non autorisée est un délit.
**8.8 Démarrage de l’algorithme du simplexe : problème de la base initiale Soit le programme linéaire (PL) : x1 1 3x2 1 5x3 x1
d
3x 1
2x 1 x1
1
x2
2
1
x2
1
1
7x 2
x3
3x 3
1
x4
1
x4
1
4x5
5 5
1
3x 4
1
1
x4
1
x5
2x 5
5 5
z 3 max 4 1
8
20
, x2 , x3 , x4 , x5 > 0 1. Vérifier que la solution x1 = 0 ; x2 = 2 ; x3 = 1 ; x4 = 0 ; x5 = 3 est une solution de base ; on notera B la matrice formée des colonnes associées aux variables de cette base. 2. Exprimer chacune des variables de base en fonction des variables hors base (il sera nécessaire de calculer B–1). 365
Chapitre 8 • La programmation linéaire
3. Donner l’expression de la fonction économique, z, en fonction des variables hors base ; est-on à l’optimum du P.L. ? 4. Dresser le tableau du simplexe correspondant à cette solution de base ; au besoin itérer l’algorithme du simplexe pour obtenir l’optimum, que l’on donnera en détail.
**8.9 Problème de Klee et Minty (1972) Il s’agit ici d’un cas extrême, pour lequel le 1er critère de Dantzig conduit à un nombre très grand d’itérations (énumératif) (c’est pourquoi on peut lui substituer le critère de Bland, par exemple). Soit les programmes linéaires ci-dessous : x1
PL 2 d
20x 1 x1
0
1
x2
5
z 3 max 4
x1
PL 3 e 200x 1 x1
100x 1
i21
PLnf
a14p1 1 a24p2 1 a34p3 > p1 1 p2 1 p3 5
g;
( dans le cas où q1 ( si q2 g; ( si q3 g ; ( si q4 g; 1
5 1) 5 1) 5 1) 5 1)
Mais, si nous posons comme hypothèse l’existence d’un point-selle a32 , nous avons, avec β31 , β33 , β34 . 0 et β12 , β22 > 0 : a31 = a32 + β31 ; a33 = a32 + β33 ; a34 = a32 + β34 , car un point-selle est le plus petit élément dans sa ligne (ici d’indice i = 3). Et : a12 = a32 – β12 ; a22 = a32 – β22 , car un point selle est le plus grand élement dans sa colonne (ici d’indice j = 2). 1. Il s’agit de l’espérance mathématique de gain de A, pour un coup donné. 370
9.2 Jeux à deux personnes et à somme nulle
Nous pourrons écrire : a11p1
+
a21p2
+
(a32 + β31)p3
>
g
(a32 – β12)p1
+
(a32 – β22)p2
+
a32p3
>
g
a13p1
+
a23p2
+
(a32 + β33)p3
>
g
a14p1
+
a24p2
+
(a32 + β34)p3
g
p1
+
p2
+
p3
> =
Ir e
1
La deuxième inégalité peut être mise aussi sous la forme : a32 – (β12p1 + β22p2) > g, dont le premier membre atteint son maximum pour p1 = p2 = 0 (car : β12, β22 . 0 et p1, p2 > 0). Alors on a : p3 = 1. Ainsi, a32 > g : la valeur du jeu est inférieure ou égale au point-selle. Au contraire, pour le joueur B, joueur minimisant, sa perte doit être la plus faible possible : a11q1 + a12q2 + a13q3 + a21q1 + a22q2 + a23q3 + II d a31q1 + a32q2 + a33q3 + q2 + q3 + q1 + Avec les mêmes notations que ci-dessus, on obtient :
IIr d
a14q4 a24q4 a34q4 q4
< < < =
g g g 1.
a11p1
+
(a32 – β12)q2
+
a13q3
+
a14q4
> > = >
g g g 1 0 373
Chapitre 9 • Introduction à la théorie des jeux
[min] g sous les contraintes : –q1 + 2q2 + q3 < g q1 – 2q2 + 2q3 < g pour B : II e 3q1 + 4q2 – 3q3 < g q2 + q3 = 1 q1 + q2 , q3 > 0 q1 , Ce sont deux programmes linéaires paramétrés (par g). Nous pouvons éliminer des inéquations de II l’une des variables, par exemple q3 > 0, en substituant à q3 sa valeur : q 3 5 1 2 q 1 2 q 2 Il vient : –2q1 –q1 IIr e 6q1 q1 q1
q2 4q2 7q2 q2 q2
+ – + + ,
q3 q3
+ ,
g–1 g–2 g+3 1 0
< < < = >
Introduisons des variables d’écart pour ramener les inéquations à des équations :
IIs d
–2q1
+
q2
–q1 6q1
– +
4q2 7q2
q1
+
q2
+
q4 +
q5 +
+
q6
q3
=
g – 1 (1)
= =
g – 2 (2) g + 3 (3)
=
1
Nous allons maintenant simplifier le système, en soustrayant la deuxième équation : (2) de la première (1), et de la troisième (3), de manière à faire disparaître la valeur inconnue g ; nous avons choisi de soustraire la deuxième équation car g – 2 , g – 1 < g + 3 : ainsi obtiendrons-nous des seconds membres positifs. On a : –q1 7q IIt c 1 q1
+ + +
5q2 11q2 q2
+ +
q3
q4
– –
q5 q5
+
q6
= = =
1 5 11
Si, compte tenu de ces trois égalités, on minimise la fonction –q1 – 4q2 + q5 + 2, qui est égale à g, on obtient un programme linéaire ; en fait, nous maximiserons l’opposé, soit q1 + 4q2 – q5 – 2, qu’on résoudra en utilisant la méthode des tableaux. Nous prenons donc comme fonction économique z = q1 + 4q2 – q5, qui est à maximiser. 1. Cette équation signifie que le point représentatif de toute solution dans le système d'axes q1, q2, q3 se trouve dans le plan q1 1 q2 1 q3 5 1. 374
9.3 Notion de stratégies mixtes
Note. On remarque que l’équation initiale Sqk = 1 est finalement conservée, l’une de ses variables (ici q3) jouant le rôle d’une variable d’écart. Il serait dangereux d’éli miner cette équation, car on n’obtiendrait pas nécessairement un programme équiva lent. Mais, même en la maintenant, étant donné qu’on a éliminé arbitrairement l’une des variables principales des autres équations, il peut se présenter des difficultés en cas dégénérescence. Voici la résolution par la méthode des tableaux du simplexe. 1
5
0 1 1 0
1
0 6
7 11 0 0 1 1
5
0 3
1 1 1 0 0 0
1
1 4 0 0 1 0
z 0
0 4
1
s
↑
s
↑
1 2 3 4 5 6
2
3
4
5
6
1/ 5 1/ 5 0
1/ 5
0 11/ 5 6/ 5
1
14/ 5
0
1 1/ 5 1/ 5
0
4/ 5
0
0 4/ 5 1/ 5 0
4
2
1/ 5 1
0
0
6
46/5
0
0
3
6/ 5 9/ 5
z 4/ 5
↑
↑
e
e Finalement:
1
2
3
4
2
0
1
0
1
1
1
0
0
3
0
0 0
0
0
0
j
1
4
5
6
7/46 4/23 1/46 11/46 3/23 5/46
6/23 7/23
1/23 3/23
10/23
17/4610/23 9/46
z 31/23
2/23
Pour le tableau ci-dessus, les Δj des variables hors base sont tous négatifs : l’optimum est atteint. Les résultats sont donc : q1 5
7 6 10 ; q2 5 ; q3 5 ; q 4 5 q 5 5 q 6 5 0. 23 23 23
31 15 , d’où: g 5 2 ( Z*2 2 ) 5 , 23 23 31 15 . g 5 2 q1 2 4q2 1 q5 1 2 5 2 125 23 23
© Dunod – Toute reproduction non autorisée est un délit.
Z* 5
car :
Connaissant la valeur de g, la résolution du système I fournit : 9 17 10 ; p3 5 ; p2 5 , 23 46 46 valeurs qu’on peut aussi lire, au signe près, sur la ligne des Δj du tableau optimal du système II. 15 Il faut remarquer que : g 5 , 1 ; on constate bien qu’à l’intersection de la stra 23 tégie-ligne du maximin et de la stratégie-colonne du minimax, on trouve une valeur p1 5
375
Chapitre 9 • Introduction à la théorie des jeux
qui, dans le cas général, diffère de la valeur du jeu, contrairement à ce qui se produit quand le jeu est à point-selle unique. On notera : 1) que ce problème conduit à poser un type particulier de programme linéaire, ce qui découle de son caractère combinatoire ; 2) que la connaissance des fréquences (probabilités) p1, p2, c, et q1, q2, c, à adopter respectivement pour les stratégies 1, 2, c, et I, II, c, par les adver saires, se double de la mise en évidence d’une valeur du jeu, g, qui représente le gain (resp. la perte) moyen(ne) de chacun des joueurs, ce qui restitue la notion d’équilibre rencontrée précédemment ; cela veut dire qu’aucun des joueurs n’a intérêt à s’écarter des fréquences calculées, de même que, dans un jeu à point-selle, il n’a pas d’intérêt à s’écarter de la stratégie pure correspondant à ce point-selle. 3) qu’il est très important de tirer au hasard, tout en espectant les fréquences, la succession des stratégies pures employées, de manière à laisser toujours l’adversaire dans l’ignorance du coup suivant (le tirage doit avoir lieu comme dans les méthodes de simulation, cf. chapitre 11).
9.4 Autre méthode de calcul : les p.l. des deux joueurs sont
en dualité
La méthode précédente peut se révéler délicate d’emploi, dans certains problèmes présentant des dégénérescences. C’est pourquoi nous donnons, ci-dessous, une méthode plus systématique, dans laquelle toutes les variables subsistent jusqu’à la fin des calculs. Reprenons la matrice 3 de l’exemple précédent. Le maximin est –1, le minimax, 2 : la valeur g du jeu est comprise entre ces deux limites, et on ne peut donc pas, a priori, affirmer qu’elle est positive. En revanche, si l’on ajoutait 2 à tous les éléments de la matrice (ce qui ne change rien quant aux situations relatives des deux joueurs), on aurait : gr 5 g 1 2, d’où : maximin = 1, minimax = 4 et donc l’assurance que gr est strictement positif. En fait pour être sûr que g′ est strictement positif, il suffit d’ajouter aux éléments de la matrice du jeu un nombre tel que tous deviennent strictement positifs. Par exem ple, dans le cas qui nous occupe, si l’on ajoute 4, on aura la matrice 3 bis :
3 A
5 7
B 6 2
5 6
8
1
Matrice 3bis 376
9.4 Autre méthode de calcul : les p.l. des deux joueurs sont en dualité
On se souviendra, lorsqu’on aura trouvé la valeur gr du jeu correspondant à cette matrice, que : g 5 gr 2 4. Écrivons alors les programmes linéaires relatifs au nouveau jeu : 3q1 5q1 7q1 B f q1 q1 [min] gr
+ 6q2 + 2q2 + 8q2 + q2 , q2
+ 5q3 + 6q3 + q3 + q3 , q3
gr gr gr 1 > 0 < < < =
+ 5p2 + 2p2 + 6p2 + p2 , p2
3p1 6p1 5p1 A f p1 p1 [max] gs
+ 7p3 + 8p3 + p3 + p3 , p3
gs gs gs 1 > 0 > > > =
Pour B nous pouvons diviser chacune des inéquations ci-dessus par gr sans en changer leur sens, puisque gr . 0. De même, par gs pour A, puisque gs . 0 (nous montrons plus bas que : gr 5 gs). On obtient, en posant x j 5 q j / g r et y i 5 p i / g s : 3x1 + 5x1 + 7x1 + B f x1 ,
6x2 + 2x2 + 8x2 + x2 ,
5x3 6x3 x3 x3
< < < >
3y1 + 6y1 + 5y1 + A f y1 ,
1 1 1 0
5y2 + 2y2 + 6y2 + y2 ,
7y3 8y3 y3 y3
> > > >
1 1 1 0
1 y1 + y5 + y3 = 1 [min]. [max] gs gr et, bien entendu, B désirant minimiser gr qui est positif, il maximisera son inverse : x2 +
x1 +
x3 =
1 5 x1 1 x2 1 x3. gr Par suite, les deux programmes linéaires obtenus sont en dualité : le dual du pro gramme de B est le programme de A et réciproquement. En particulier, à l’optimum, on a : 1 1 5 et donc : g9 5 g 0 5 g. gr gs Résolvons le programme B (plutôt que celui de A, qui nécessiterait l’introduction de trois variables artificielles) :
s
↑
© Dunod – Toute reproduction non autorisée est un délit.
z5
1
2
3
1
2
3
0
1
3
6
5
1
0
0
1
0
2
5
2
6
0
1
0
0
3
7
8
1
0
0
1
1 1
1
1
1
0
0
0
z0
↑
e
377
Chapitre 9 • Introduction à la théorie des jeux
s
↑
Nous donnons sans commentaire les tableaux successifs, en faisant remarquer sim plement qu’au départ il est indiqué de pivoter sur l’élément maximal de la matrice, soit 8 (D1, D2, D3 étant égaux à 1, on a ici choisi D2 : x2 est entré en base). 1
2
3
1
2
3
0
17/4
1
0
0
23/4
0
1
�3/4 �1/ 4
3/ 4
1/8
1/ 8
0
1
0
2
�9/ 4 13/4
1
2
7/ 8
1
1/ 8
0
0
1/ 8
0
7/ 8
0
0 �1/8
après 1 itération
1/ 4
z � 1/ 8
↑
s
↑
e
1 9 �� 17
2
1 4 1 � � 17
3
2
3 3 �� 17
1 � 17
1
3
0
2
107 � 17
0
0
23 �� 17
1
13 � 17
7 � 17
1
2
16 � 17
1
0
1 �� 34
0
5 � 34
2 � 17
10 � 17
0
0
7 �� 37
0
1 � 34
3 z� � 17
1
2
1 2 3 13 12 9 1 � 107 107 107 23 17 13 0 � 107 107 107 16 7 37 0 � 214 107 214
après 2 itérations
0
0
↑
e
1
3
0
0
1
1
1
0
1
2
0
1
0
0
après 3 itérations On a donc :
378
3
0 �
17 10 9 � � 214 107 214
107 107 15 23 1 , d’où gr 5 et g 5 . 245 5 107 23 23 23 gr
10 107 7 107 6 107 z�
23 107
9.5 Exemple d’application économique
D’autre part : q 1 5 x 1r # g r 5
7 107 6 7 10 5 ; de même : q2 5 3 ; q3 5 . 107 23 23 23 23
23 1 Enfin, par dualité, on a : y 1 5 2D1 , y 2 5 2D2 , y 3 5 2D3 et , soit 5 107 gs 107 gs 5 , (on retrouve évidemment g r 5 g s 5 g). 23 p1 5 2D1 # gs 5
107 10 17 17 9 3 ; p3 5 . 5 ; et de même : p2 5 23 46 214 23 46
Les résultats sont, naturellement, les mêmes que ceux fournis par la première méthode.
9.5 Exemple d’application économique dominance d’une stratégie, réduction d’un
jeu
Une firme F est établie depuis peu sur le marché ; ses dirigeants ont remarqué que, s’ils faisaient varier leur prix de vente par rapport à ceux de la concurrence C, les variations des résultats s’établissaient comme l’indique le tableau ci-après : C 5 % 0 % 5 % F
5 %
2
4
4
p1
0%
1
0
3
p2
5 %
3
2
0
p3
q1
q2
q3
© Dunod – Toute reproduction non autorisée est un délit.
Quelle stratégie mixte la firme F doit-elle adopter face à la concurrence ? On a, pour les stratégies de la concurrence C : –2q1 – q1 e –3q1 q1 q1
–
4q2
+ + ,
2q2 q2 q2
– –
4q3 3q3
+ ,
q3 q3
< < < = >
g g g 1 0.
on voit immédiatement que : – q1 – 3q3 < g entraîne : –2q1 – 4q2 – 4q3 < g ; en effet : –2q1 – 4q2 – 4q3 = – q1 – 3q3 – (q1 + 4q2 + q3), d’où, puisque q1 + 4q2 + q3 est positif, : –2q1 – 4q2 – 4q3 , – q1 – 3q3 < g et: –2q1 – 4q2 – 4q3 , g. 379
Chapitre 9 • Introduction à la théorie des jeux
On dit, dans ces conditions, que la première stratégie de F est dominée par sa deuxième stratégie : une ligne est dominée par une autre ligne si les coefficients de l’inégalité qu’exprime cette ligne sont supérieurs aux coefficients de l’inéga lité qu’exprime cette autre ligne. Lorsque la dominance est stricte, c’est-à-dire lorsque les coefficients de la ligne dominante sont strictement supérieurs à ceux, correspondants, de la ligne dominée, on peut, sans modifier ni la valeur du jeu ni les fréquences à calculer, supprimer la ligne dominée. On dira encore que la première stratégie de F est récessive et, l’ayant supprimée, on posera p1 = 0 et le tableau se réduira à : ce qui correspond, pour la firme F, à résoudre : 1
0
3
p2
3
2
0
p3
q1
q2
q3
p2 + –p2 – 3p3 > g 2p3 > g avec c c –3p2 p2 , > g
p3 = 1 et p3 > 0
On voit également que : 2 p2 2 3p3 > g entraîne : 2p3 > g ;
en effet : 2p3 = – p2 – 3p3 + (p2 + 5p3) d’où, puisque p2 + 5p3 est positif : 2p3 . 2p2 2 3p3 > g, 2p3 . g.
soit :
(9.1)
On peut donc éliminer la deuxième stratégie de C, c’est-à-dire poser : q2 = 0. Il s’agit, cette fois, d’une dominance stricte de colonnes. Rappelons que l’on reconnaît qu’une colonne en domine une autre si les coefficients de la première sont inférieurs à ceux, correspondants, de la seconde. Il ne nous reste finalement que le tableau réduit ci-dessous pour lequel : maximin = 3 et minimax = -1 (donc sans point-selle). Les programmes suivants en résultent : �1
�3
p2
�3
0
p3
q1
q3
(I) b
–p2 – 3p3 > g p2 + avec b p2 , –3p2 > g
(II) b
q1 + – q1 – 3q3 < g avec b q1 , –3q1 < g
p3 = 1 p3 > 0 q3 = 1 q3 > 0
Une méthode rapide, pour résoudre l’un de ces programmes, est la méthode graphique. Prenons, par exemple, le premier et remplaçons p3 par 1 – p2. Il vient : –p2 – 3p3 = –p2 – 3(1 – p2) = 2p2 – 3 380
9.5 Exemple d’application économique
d’où : [max g] 2p2 – 3 > g d –3p2 >g p2 >0 p2 0).
La valeur de g, sur la figure 9.1 où sont repré sentées les droites g = –3p2 et g = 2p2 – 3, en fonction de p2 (0 < p2 < 1), est le maximum des valeurs compatibles avec les deux inéquations : g q , qui permet de modéliser les situations de pré férence stricte (P), préférence faible (Q) et indifférence (I ). On a donc (cf. aussi figure 12.1) : g ( a) > g ( b ) 1 p c g ( b ) 1 q , g ( a) , g ( b ) 1 p g ( b ) 2 q < g ( a) < g ( b ) 1 q
3 3 3
aPb aQb aI b
Fig. 12.1 Pseudo-critère
Observons que si l’on ne souhaite pas introduire la situation de préférence faible, il suffit de poser q 5 p (ce qui donne lieu à un quasi-critère). De plus, si l’on pose q 5 p 5 0 on se retrouve dans le cas particulier du vrai-critère. 422
12.2 Cadre général
Exemple 2 « Choix d’un logement » (suite) L’évaluation des critères g1, g2 et g3 est entachée d’une part d’arbitraire irréductible qui devrait conduire à prendre des précautions lorsqu’on compare deux logements. Ainsi, l’évaluation du temps de trajet (g2 ) ne peut être effectuée de façon suffisam ment précise (et à quel moment de la journée effectuer cette mesure ?) pour que l’on puisse donner un sens à une différence de quelques minutes. De même, le montant du loyer (g1 ), bien qu’il puisse apparaître relativement précis puisqu’annoncé contrac tuellement, recèle en fait des incertitudes (montant réel des charges) et n’appré hende pas complètement la totalité du coût du logement (taxe d’habitation, frais de fonctionnement non inclus dans ces charges,…). Enfin, une différence de quelques m2 sur le critère superficie (g3 ) n’est certainement guère perceptible. Pour toutes ces raisons, il apparaît pertinent de définir des seuils d’indifférence en-deçà desquels toute différence de performance sur un critère ne sera pas jugée significative. Nous fixerons ainsi q1 5 50, q2 5 5 et q3 5 3. Par souci de simplicité, nous fixerons qj 5 pj, ( j 5 1,2,3) utilisant donc nos critères comme des quasi-critères.
12.2.3 Espace des décisions – Espace des critères
© Dunod – Toute reproduction non autorisée est un délit.
Dans la suite, on considère : – un ensemble A d’actions potentielles, – une famille de p critères : g1, c, gp ( p > 2 ) . L’espace des décisions permet de représenter l’ensemble A des actions. Cet espace est défini formellement lorsque A est défini implicitement. Ainsi, il s’agit de Rn, Zn ou 5 0,1 6 n si A est défini à l’aide de n variables de décision. Il peut aussi s’agir d’un ensemble d’arrangements particuliers d’arcs d’un graphe (chemins, circuits,…). En revanche, cet espace n’est pas défini lorsque A est défini explicitement par une liste nominative (exhaustive). Il est plus aisé de travailler dans un espace toujours défini formellement : l’espace des critères où chaque action a P A est représentée par ses performances sur les p critères : ( g1 ( a) , c, gp ( a)) . De plus, il s’agit bien là de l’espace « significatif », puisque, dans une approche multicritère, l’appréciation d’une action s’effectue pré cisément à travers les valeurs qu’elle prend sur chaque critère. Soit donc Z l’espace des critères (à ne pas confondre avec Z) ; on a Z ( Rp. L’image de A dans l’espace des critères est notée ZA. À chaque action a P A corres pond un vecteur critère (ou point) z P Z A avec z(a) = (g1(a), … , gp(a)). On a : Z A 5 g ( A ) 5 5 z P Z : z j 5 gj ( a) ( j 5 1, c, p ) , a P A 6
Exemple 1 « Choix d’un produit » (suite)
L’ensemble A des actions est représenté par la liste des 4 produits candidats. On peut représenter ces actions dans l’espace des critères en associant à chaque action son vecteur critère (cf. figure 12.2). 423
Chapitre 12 • Introduction à l’aide multicritère à la décision
Fig. 12.2 Représentation des actions dans l’espace des critères – Exemple 1
Exemple 3 « Plan de production » (suite) L’ensemble A des actions est caractérisé, dans l’espace des décisions, par les contraintes suivantes : x 1 1 4x 2 < 40 3x 1 1 2x 2 < 60 d x > 4 1 (x1 > 0) x2 > 0 où xi représente la quantité de produit Pi à fabriquer (i 5 1,2). Notons que la pre mière contrainte de non-négativité : x 1 > 0 est redondante du fait de la dernière contrainte principale : x 1 > 4. Les deux critères (ou fonctions objectifs) à considérer sont :
– la marge totale (bénéfice) engendrée, exprimée en milliers d’euros (à maximiser) : max z 1 5 2x 1 1 3x 2 – la quantité totale de matière toxique utilisée, exprimée en unités de produit M1 (à minimiser) : min x 1 1 3x 2 que l’on exprimera, de façon équivalente, comme un critère à maximiser : max z 2 5 2x 1 2 3x 2 Afin de caractériser ZA, l’image de A dans l’espace des critères, réexprimons en fonction de z1 et z2 les contraintes caractérisant A (en n’oubliant pas la contrainte de non-négativité non redondante x 2 > 0). Pour ce faire, on s’appuie sur l’expression des valeurs des fonctions objectifs z1 et z2 en fonction des variables de décision x1 et x2 424
12.2 Cadre général
1 2 (ce qui permet de déduire : x 1 5 z 1 1 z 2 et x 2 5 2 z 1 2 z 2 ). 3 3 Ainsi, ZA est caractérisé par : 2z 1
d
7z 1 z1 z1
5z 2 1 5z 2 1 z2 1 2z 2
2
< 120 < 180 > 4 < 0
Les représentations de l’ensemble des actions dans l’espace des décisions et dans l’espace des critères sont proposées en figure 12.3.
Figure 12.3 Espace des décisions (a) et espace des critères (b) – Exemple 3.
12.2.4 Le concept de dominance
© Dunod – Toute reproduction non autorisée est un délit.
Pour comparer deux actions quelconques a et b, il convient de comparer les deux vecteurs de performances correspondants : g ( a) 5 ( g1 ( a) , c, gj ( a) , c, gp ( a)) et g ( b ) 5 ( g1 ( b ) , c, gj ( b ) , c, gp ( b )) Le seul cas où une comparaison peut être effectuée, sans information supplémen taire, est le cas de dominance : aDb 3 gj ( a ) > gj ( b ) ( j 5 1, c, p ) (1) où D est la relation binaire de dominance au sens large, dont la partie stricte, notée D(1), est telle que : aDb
3
aDb
et non ( bDa )
3 gj ( a) > gj ( b ) ( j 5 1, c, p ) , avec au moins l’une des inégalités strictes. Une action a P A est dite efficace si il n’existe pas d’action b P A qui domine strictement a, c’est-à-dire telle que bDa. (1) Noter l’analogie avec l’ordre large sur R : > et l’ordre strict : >. 425
Chapitre 12 • Introduction à l’aide multicritère à la décision
Exemples 1, 2 et 3 (suite) Dans l’exemple 2, une comparaison par paire des actions permet d’établir que ,4D,6 (cf. Tableau 12.2). Ainsi, en s’appuyant sur les trois critères considérés, on peut écarter du choix ,6 qui est dominé strictement. Tous les autres logements: ,1. c. ,5 constituent l’ensemble des actions efficaces. Dans le cas bicritère (p 5 2), on peut utiliser la représentation graphique dans l’espace des critères pour identifier les vecteurs critères (ou points) non dominés. En effet, considérant un point à tester, il suffit de représenter le « cône de dominance » associé à ce point (c’est-à-dire, pour des critères à maximiser, l’orthant positif ayant pour origine ce point – cf. exemples ci-dessous). Il reste alors à observer si ce cône contient ou non au moins un point correspondant à une action réalisable. Ainsi dans l’exemple 1, la représentation graphique en figure 12.4 permet de constater que le cône de dominance de d contient le point associé à l’action b, ce qui signifie que bDd : b domine strictement d. En revanche, le cône de dominance associé à chacun des trois autres points est vide, ce qui signifie que a, b et c sont efficaces.
Fig. 12.4 Cônes de dominance associés aux différents points – Exemple 1
Considérant maintenant l’exemple 3, l’examen de la figure 12.3(b) permet de constater que les seuls points qui ont un cône de dominance vide sont ceux situés sur les segments [za,zd] et [zd,zc]. L’ensemble des solutions efficaces correspond à l’image inverse de ces segments dans l’espace des décisions, à savoir l’ensemble des solutions situées sur les segments [a,d] et [d,c] (cf. figure 12.3(a)). La relation de dominance est le plus souvent trop pauvre pour guider le choix comme le montrent les exemples précédents. Afin de progresser vers la recomman dation d’une meilleure action, il convient de prendre parti vis-à-vis des conflits entre critères. Pour celà, il faut recueillir et utiliser de l’information sur les préférences du décideur (par exemple des poids) et les intégrer dans un mécanisme d’agrégation. On peut distinguer deux grandes familles de mécanismes d’agrégation : 426
12.3 La somme pondérée
– les fonctions d’agrégation, telles que la somme pondérée. – les relations de préférence globale telles que la méthode ELECTRE.
12.3 La
somme pondérée
12.3.1 Présentation La façon la plus naturelle d’agréger différents critères est de recourir à une somme pondérée. Il s’agit alors de construire un critère unique g agrégeant les p critères g1, c, gp. L’évaluation de toute action a P A est donnée par : g ( a) 5 a l j # gj ( a) avec l j . 0 ( j 5 1, c, p ) (et, éventuellement, a l j 5 1 ) p
p
j51
j51
où l j est le « poids » associé au critère gj ( j 5 1, c, p ) . Dans un contexte de choix, il suffit alors de sélectionner l’action a* telle que : g ( a* ) > g ( a) 4a P A c’est-à-dire l’action dont l’évaluation, au sens de g, est la meilleure.
12.3.2 Avantages de la somme pondérée 1. Il s’agit de la façon la plus connue et la plus simple d’agréger différents critères. 2. Toute solution optimale selon une somme pondérée est efficace : En effet, soit a* une solution optimale pour un jeu de poids particulier ( lr1, c, lrp ) . Supposons que a* ne soit pas efficace. Il existerait alors b P A telle que bDa*. p p On a alors a j51 lrjgj ( b ) . a j51 lrjgj ( a* ) ; puisque pour tout j on aurait : gj (b) > gj (a), ce qui contredit l’optimalité de a*.
© Dunod – Toute reproduction non autorisée est un délit.
12.3.3 Limites de la somme pondérée 1. L’interprétation des poids n’est pas très claire car ils intègrent à la fois la notion d’importance relative des critères et un facteur de normalisation des échelles des cri tères. Un poids plus élevé ne correspond donc pas nécessairement à un critère plus important, comme l’illustrent les exemples ci-dessous. Exemple 2 « Choix d’un logement » (suite) Supposant que les critères Prix (g1 ) et Temps de trajet (g2 ) soient jugés d’impor tance semblable et que le critère Superficie (g3 ) soit considéré deux fois moins important. Comment traduire cette information préférentielle par un jeu de poids ? L’intuition naturelle consistant à attribuer une valeur identique à cha cun des deux premiers critères et une valeur deux fois plus petite au troisième 427
Chapitre 12 • Introduction à l’aide multicritère à la décision
critère (par exemple l 1 5 0,4, l 2 5 0,4 et l 3 5 0,2) ne convient pas. Cela conduirait en effet à accorder un rôle prépondérant au critère g1 dans la somme pondérée simple ment parce que celui-ci est exprimé sur une échelle comportant des valeurs beaucoup plus élevées que celles des échelles des deux autres critères. Il conviendrait donc de nor maliser ces poids pour prendre en compte l’hétérogénéité des échelles. Il existe néan moins de nombreuses façons d’effectuer cette normalisation, dont aucune ne s’impose et qui, chacune, conduirait à un jeu de poids différent. 2. La logique d’agrégation sous-jacente est totalement compensatoire. Une très mauvaise note sur un critère peut être compensée par une ou plusieurs bonnes notes sur d’autres critères. On préfère souvent utiliser des mécanismes d’agrégation qui tolèrent les compensations lorsque les écarts sont faibles et les rejettent lorsque les écarts sont forts (logique d’agrégation partiellement compensatoire). 3. Certaines solutions efficaces peuvent ne pas apparaître comme solutions opti males d’une somme pondérée, quel que soit le jeu de poids choisi. Il s’agit là d’une limite très importante, car certaines solutions qui pourraient s’avérer intéressantes sont éliminées a priori par la démarche de la somme pondérée. Exemple 1 « Choix d’un produit » (fin) Considérons les trois produits a, b et c qui restent candidats après l’élimination de d (qui est dominé). Nous allons montrer qu’il n’existe aucun jeu de poids qui permette de faire apparaître b comme solution optimale d’une somme pondérée. En effet pour que b soit optimal, on devrait avoir simultanément g ( b ) $ g ( a) et g ( b ) $ g ( c ) , c’està-dire respectivement 10l 1 1 10l 2 > 18l 1 1 4l 2 et 10l 1 1 10l 2 $ 4l 1 1 18l 2 ou 3 4 encore l 2 > l 1 et l 2 < l 1, ce qui est clairement incompatible (car l 1 . 0). En 4 3 fait, on observera en se reportant à la figure 12.2 que si l 1 $ l 2 alors a est le choix suggéré par la somme pondérée et que si l 2 $ l 1 alors c est le choix suggéré par la somme pondérée (et donc a ou b si l 1 5 l 2 ). Pourtant de nombreuses personnes pourraient préférer b à a et c, car b est plus équilibré. Une fonction d’agrégation de type somme pondérée ne peut modéliser ce type de préférence pour cet exemple. 4. De très légères variations sur les valeurs des poids peuvent conduire à des solu tions radicalement différentes. Ainsi, dans l’exemple précédent, le jeu de poids (0,51 ; 0,49) conduit à choisir a alors que le jeu de poids (0,49 ; 0,51) conduit à choisir c. Deux jeux de poids fort proches, et en pratique équivalents, conduisent ici à des solu tions radicalement opposées ! 5. Il n’y a pas de correspondance intuitive entre les valeurs des poids et la solu tion optimale proposée par une somme pondérée. Le résultat peut même apparaître très contre-intuitif. Dans l’exemple précédent, les jeux de poids très équilibrés ( l 1 . l 2 . 0,5 ) conduisent à choisir soit a soit c qui sont fort déséquilibrés. En dépit des avantages de la somme pondérée, les limites précédemment citées conduisent à envisager d’autres mécanismes d’agrégation.
428
12.4 Méthodes de surclassement (Electre)
12.4 Méthodes
de surclassement
(Electre)
Ces méthodes ont été introduites dans les années 60 par B. Roy et al. : – à l’occasion de nombreuses applications réelles, – pour dépasser les limites de la somme pondérée. Ces méthodes ne concernent que le cas où l’ensemble des actions A est défini explicitement par une liste. Nous présenterons ici une version légèrement simplifiée de la méthode ELECTRE I qui permet de sélectionner un sous-ensemble aussi restreint que possible des actions les meilleures. Soulignons que d’autres méthodes de surclassement furent ensuite développées sur des principes similaires (autres méthodes ELECTRE, méthodes PROMETHEE, MELCHIOR, ORESTE, TACTIC,…).
12.4.1 Le concept de relation de surclassement Considérons deux actions a et b de A. On dira que aSb (a surclasse b) est établi si on peut trouver des arguments suffisamment probants pour accepter, en accord avec les préférences du décideur, l’assertion suivante : « a est au moins aussi bon que b » Les raisons pour accepter aSb sont fondées sur : – les vecteurs de performance des deux actions : ( g1 ( a) , c, gp ( a)) et ( g1 ( b ) , c, gp ( b )) – l’information préférentielle qui permet de relativiser le rôle joué par chaque cri tère (poids, seuils).
© Dunod – Toute reproduction non autorisée est un délit.
Remarques : – S peut être perçue comme résultant d’un enrichissement de la relation de dominance : en effet aDb entraîne aSb (c’est-à-dire D # S ) – S est réflexive : 4a P A, aSa – S n’est pas nécessairement transitive : aSb et bSc n’entraînent pas nécessai rement aSc Dans certains cas, on ne pourra établir ni aSb ni bSa, ce qui conduit à une situa tion d’incomparabilité. Ainsi, lorsqu’on compare deux actions, quatre situations peuvent survenir (cf. figure 12.5). Soulignons que l’introduction de la situation d’in comparabilité est une spécificité importante des approches fondées sur la construc tion d’une relation de préférence globale. En effet, les approches fondées sur une fonction d’agrégation conduisent à toujours comparer deux actions à travers les éva luations de ces actions sur cette fonction. Les approches relationnelles conduisent 429
Chapitre 12 • Introduction à l’aide multicritère à la décision
donc à des modèles de préférence plus fins dans la mesure où ils n’imposent pas de comparer des actions qui seraient trop dissemblables. En revanche, ces modèles sont plus difficiles à exploiter pour dégager une recommandation.
Fig. 12.5 4 situations de comparaison
Les méthodes de surclassement peuvent généralement se décomposer en deux phases : 1. construction de la relation de surclassement, 2. exploitation de la relation de surclassement pour déterminer une recommandation.
12.4.2 Construction de la relation de surclassement Afin d’établir la probance de l’assertion aSb, on s’appuiera sur les deux principes fondamentaux suivants : Principe de concordance : Une majorité de critères, compte-tenu de leur impor tance, doit supporter l’assertion aSb (principe majoritaire), Principe de non discordance : Parmi les critères qui ne supportent pas l’asser tion aSb, aucun ne doit exprimer un désaccord trop fort (principe de respect des minorités). Concordance Pour chaque critère g j, on examine sa contribution à l’assertion aSb en bâtissant un indice de concordance partielle cj ( a,b ) P 3 0,1 4 ( j 5 1, c, p ) tel que :
– cj (a,b) 5 1 lorsque le critère gj supporte totalement l’assertion aSb – cj (a,b) 5 0 lorsque le critère gj ne supporte pas du tout l’assertion aSb – 0 , cj ( a,b ) , 1 dans les cas intermédiaires Plus précisément, on a (cf. figure 12.6) : 1 1 3 gj ( b ) # gj ( a) 1 qj cj ( a,b ) 5 c
430
0 0 p 2 (g (b) 2 g (a)) pj j2 ( gj ( b )j 2 gj ( a) ) j pj 2 j pjq2 qj
3
gj ( b ) $ gj ( a) 1 pj
3
gj ( a) 1 qj # gj ( b ) # gj ( a) 1 pj
12.4 Méthodes de surclassement (Electre)
où qj et pj représentent respectivement les seuils d’indifférence et de préférence asso ciés au critère gj.
Fig. 12.6 Indice de concordance partiel
Pour évaluer la contribution globale de l’ensemble des critères à l’assertion aSb, on construit un indice de concordance globale C ( a,b ) P 3 0,1 4 défini par : C ( a,b ) 5 a k j # cj ( a,b ) p
j51
où kj est le poids associé à gj, avec : a k j 5 1. j
Remarque : Les poids kj sont appliqués à des « indices » définis sur une échelle commune variant entre 0 et 1. Ils reflètent donc uniquement l’impor tance relative des critères, ce qui rend leur signification claire. On notera que les poids l j utilisés dans la somme pondérée sont de nature différente car ils intègrent à la fois l’importance relative des critères et un facteur de normali sation des échelles des critères (cf. remarque 1 de la section 12.3.3).
© Dunod – Toute reproduction non autorisée est un délit.
Exemple 2 « Choix d’un logement » (suite) Les indices de concordance partielle sont reportés dans les trois matrices (cf. tableaux 12.3). Ils sont, ici, égaux à 0 ou 1 car les seuils de préférence pj ont été choisis égaux aux seuils d’indifférence qj. Rappelons que nous avons fixé ces seuils d’indifférence comme suit : q1 5 50, q2 5 5 et q3 5 3. Nous avons également défini tivement écarté ,6 qui est dominé par ,4.
Tab. 12.3
Matrices de concordance partielle
431
Chapitre 12 • Introduction à l’aide multicritère à la décision
Observons, par exemple, que l’on a c1 ( ,4,,1 ) 5 1, ce qui signifie que le critère g1 supporte l’assertion ,4S,1. En effet, bien que le coût du logement ,4 soit supérieur à celui du logement ,1 (720 € contre 700 € – cf. tableau 12.2), la différence de 20 € est jugée négligeable compte tenu du seuil d’indifférence q1 5 50. Afin de construire l’indice de concordance globale, il convient de fixer les poids. Rappelons que lorsque nous avons tenté de fixer des poids pour utiliser la somme pondérée pour ce même exemple, nous avons considéré que les critères Loyer (g1 ) et Temps de trajet (g2 ) étaient jugés d’importance semblable et que le critère Superficie (g3 ) était considéré deux fois moins important. Nous pouvons ici fixer les poids sans difficulté à partir de cette information préférentielle : k1 5 0,4, k2 5 0,4 et k3 5 0,2. La matrice de concordance globale en découle immédiatement (cf. Figure 12.4).
Tab. 12.4 Matrice de concordance globale
Discordance Parmi les critères qui ne sont pas concordants avec l’assertion aSb, certains peuvent exprimer une forte opposition, un veto, conduisant à rejeter aSb. Un critère gj pourra ainsi opposer son veto à l’assertion aSb lorsque gj(a) est beaucoup plus faible que gj(b). On définit donc pour chaque critère gj un seuil de veto vj où v j $ pj ( j 5 1, c, p ) . Dès qu’il existe un critère gj tel que gj ( b ) $ gj ( a) 1 v j, l’assertion aSb est rejetée. Notons que plus le seuil vj est faible, plus le pouvoir de veto de gj est grand. Exemple 2 « Choix d’un logement » (suite) Supposons que l’on associe respectivement à chaque critère les trois seuils de veto suivants : v1 5 400, v2 5 20 et v3 5 40. Cela signifie en particulier pour le critère Loyer (g1 ) qu’un logement qui coûterait 400 € de plus qu’un autre ne peut pas être jugé globalement « au moins aussi bon » que cet autre logement, indépendamment des performances, éventuellement très bonnes, qu’il atteint sur les autres critères. Ainsi, en se reportant au tableau 12.2, on constate que le critère g1 oppose son veto à l’assertion « ,3S,5 » (car g1 ( ,3 ) 5 1 000 $ g1 ( ,5 ) 1 v 1 5 600 1 400 ) , même si ,3 est significativement meilleur que ,5 sur les deux autres critères. Le choix d’une valeur élevée v3 5 40 pour le critère Superficie (g3 ) indique que, compte tenu de l’écart maximum de superficie qui n’est que de 25 m2 dans le tableau de perfor mances, on ne souhaite pas donner à ce critère un pouvoir de veto. La matrice de discordance présentée au tableau 12.5 indique par la valeur 1 toutes les situations de discordance. 432
12.4 Méthodes de surclassement (Electre)
Tab. 12.5 Matrice de discordance
Test de surclassement Afin d’accepter aSb on doit vérifier les deux conditions suivantes : 1. une condition de concordance : C ( a,b ) > s 2. une condition de non discordance : gj ( b ) , gj ( a) 1 v j 4j P 5 1, c, p 6 où s représente le seuil de concordance. La condition de concordance s’inspirant d’un principe de type majoritaire, il est légitime d’imposer s . 0.5. En pratique, on prend des valeurs entre 0,6 et 0,9. Remarque : ELECTRE I utilise en fait une condition de non discordance un peu plus complexe. Cette condition étant d’autant moins exigeante que C(a,b) est grand. Exemple 2 « Choix d’un logement » (suite)
© Dunod – Toute reproduction non autorisée est un délit.
Choisissons un seuil de concordance s 5 0,8. On en déduit la matrice de surclasse ment et le graphe de surclassement correspondant présentés en figure 12.7.
Fig. 12.7 Matrice et graphe de surclassement
12.4.3 Exploitation de la relation de surclassement Une fois que la relation de surclassement est construite, il convient de l’exploiter afin de dégager le sous-ensemble des actions les meilleures. Considérant le graphe correspondant, on s’intéressera à un sous-ensemble d’actions N ( A, appelé noyau du graphe, vérifiant les deux propriétés suivantes : 433
Chapitre 12 • Introduction à l’aide multicritère à la décision
– deux sommets quelconques d’un noyau ne peuvent pas être adjacents : 4a P N, 4b P N, non(aSb) et non(bSa) – pour tout sommet hors du noyau, il existe un arc depuis un sommet du noyau vers ce sommet : 4b x N
Ea P N : a Sb
Un noyau est donc un sous-ensemble d’actions incomparables tel que toute action ne faisant pas partie du noyau est surclassée par au moins une action du noyau. Tout graphe sans circuit admet un noyau unique. Un graphe avec circuit peut admettre aucun, un ou plusieurs noyaux. L’algorithme suivant permet de détecter le noyau d’un graphe G sans circuit. (0) Représenter G par son « dictionnaire des précédents » (ce dictionnaire associe à chaque sommet la liste de ses précédents ou « prédécesseurs ») Tant que possible faire (1) Marquer tout sommet dont la liste est vide (sans prédécesseurs) (2) Barrer tout sommet qui contient au moins un sommet marqué dans sa liste (3) Supprimer des listes les sommets barrés L’ensemble des sommets marqués à l’issue de l’algorithme constitue le noyau. Lorsque le graphe contient des circuits, on peut, par exemple, réduire les cir cuits (c’est-à-dire contracter en un sommet unique tous les sommets faisant par tie d’un même circuit et préserver les arcs avec les sommets extérieurs au circuit). Cette opération de réduction revient à considérer que les sommets d’un même circuit sont indifférents. On peut alors déterminer le noyau sur le graphe réduit (qui, par construction, ne contient pas de circuit). En pratique, il ne suffit pas d’exécuter une fois l’ensemble de ce processus et de prendre le noyau résultant comme recommandation. Il convient de procéder à une analyse de robustesse consistant à répéter le processus en faisant varier les paramètres critiques du modèle (seuil de concordance, poids, seuils de veto…). La recomman dation sera constituée des actions apparaissant régulièrement dans le noyau. Exemple 2 « Choix d’un logement » (fin) L’application de l’algorithme de détection du noyau au graphe de surclassement de la figure 12.7 conduit au noyau (unique) N 5 5 ,4,,5 6 . Afin d’esquisser une ana lyse de robustesse, on peut envisager de modifier le seuil de concordance. En fixant ce seuil s à 0,6 on obtient un graphe de surclassement beaucoup plus riche. Le lecteur vérifiera qu’après avoir réduit les circuits du graphe précédent, on obtient comme noyau de ce nouveau graphe l’ensemble N r 5 5 ,3,,4 6 . Il semble donc que le logement ,4, qui reste présent dans chacun des noyaux, constitue un choix inté ressant. (pour les trois critères choisis par le décideur) : 434
12.5 Optimisation multiobjectif
12.5 Optimisation
multiobjectif
1
Nous nous intéressons ici au cas où l’ensemble A des actions potentielles est défini implicitement (cf. section 12.2.1). Nous nous restreindrons au cas de la programma tion linéaire multiobjectif, sans considérer par exemple les problèmes d’optimisation combinatoire multiobjectif (plus court chemin multiobjectif, affectation multi objectif, etc.). De plus, nous ne présenterons qu’une façon (parmi bien d’autres) de rechercher un meilleur compromis dans ce contexte. Soit donc le programme linéaire multiobjectif suivant, exprimé sous forme matricielle (on note, ici, D la matrice notée A aux chapitres 8 et 9) : max z 1 5 c 1 # x, c
max z 2 5 c 2 # x, c, D#x < b x>0
max z p 5 c p # x
où x 5 ( x 1, c, x n ) t est le vecteur-colonne des variables de décision, et n z j 5 cj # x 5 a c ji x i représente la j e fonction objectif ( j 5 1, c, p ) , i51
D est la matrice des contraintes et b est le vecteur-colonne des seconds membres. Dans la suite, on notera X plutôt que d le domaine (convexe) des solutions admis sibles : X 5 5 x : x . 0 et D # x < b 6 . Remarque : La notation « max », ici quelque peu abusive, signifie en fait que l’on recherche un meilleur compromis en regard de p fonctions objectifs, cha cune étant à maximiser.
12.5.1 Tableau des gains, point idéal Une première idée naturelle pour progresser vers la recherche de ce compromis consiste à optimiser indépendamment chacun des p programmes linéaires suivants :
© Dunod – Toute reproduction non autorisée est un délit.
( PL j ) b
( j 5 1, c, p ) max z j 5 c j # x xPX
Soit x*j une solution optimale du programme (PLj) et z *j la valeur opti male de sa fonction objectif ( j 5 1, c, p ) . On constitue le tableau des gains en donnant la valeur de chacune des solutions x*i sur chaque fonction objectif z k 5 ck # x ( i 5 1, c, p ; k 5 1, c, p ) – cf. tableau 12.6. Le point z * 5 ( z *1, c, z *p ) , dont les coordonnées correspondent aux valeurs opti males de chaque fonction objectif est appelé point idéal (ou zénith). Ces coordon nées se situent donc sur la diagonale du tableau des gains.
1. Conseil au lecteur : lire auparavant le chapitre 8 sur la programmation linéaire. 435
Chapitre 12 • Introduction à l’aide multicritère à la décision
Tab. 12.6 Tableau des gains
Soit nj 5 mink 51,c, p 5 c j # x*k 6 la valeur minimale de la jème colonne du tableau des gains, l’intervalle 3 nj, z *j 4 constitue une bonne approximation, facile à calculer, des valeurs prises par le jème critère. En pratique, il sera intéressant de fournir au
décideur ces intervalles pour chaque fonction objectif afin qu’il appréhende mieux le domaine des valeurs possibles. Le point (n1, n2,..., np) est appelé nadir. Exemple 3 « Plan de production » (suite) Considérons chacun des deux problèmes
max z 1 5 2x 1 1 3x 2 s.c. les contraintes: sous x 1 1 4x 2 < 40 ( PL 1 ) f 3x 1 1 2x 2 < 60 > 4 x1 x 1, x 2 > 0
max z 2 5 2x 1 2 3x 2 s.c. x 1 1 4x 2 < 40 ( PL 2 ) f 3x 1 1 2x 2 < 60 > 4 x1 x 1, x 2 > 0
*1 * dont les solutions optimales sont x *1 1 5 16, x 2 5 6, z 1 5 50, pour (PL1) et *2 *2 * x 1 5 4, x 2 5 0, z 2 5 24, pour (PL2). Le tableau des gains est présenté au tableau 12.7. Le point idéal z* 5 (50, –4) et le point nadir n 5 (n1,n2) 5 (8, –34) sont représentés à la figure 12.8.
Tab. 12.7 Tableau des gains – Exemple 3
436
12.5 Optimisation multiobjectif
Fig. 12.8 Point idéal z* et point nadir n – Exemple 3
12.5.3 Solutions efficaces extrêmes et non extrêmes
© Dunod – Toute reproduction non autorisée est un délit.
Afin de guider le choix d’une solution de meilleur compromis, on pourrait, mal gré les limites soulignées en section 12.3.3, utiliser une fonction d’agrégation de type somme pondérée. Ceci reviendrait à maximiser une fonction objectif de type p a j51 l jz j, ce qui présenterait l’avantage de n’avoir à résoudre qu’un programme
linéaire. De plus, dans le cas particulier de la programmation linéaire multiobjectif, l’une des limites essentielles de la somme pondérée (celle qui exprime que certaines solutions efficaces ne peuvent pas apparaître comme solution optimale d’une somme pondérée – cf. remarque 3 de la section 12.3.3) ne s’applique pas. Ceci tient au fait que l’image de l’ensemble des solutions dans l’espace des critères est un ensemble convexe (ce qui n’était pas le cas de notre exemple présenté en figure 12.2). Nous montrons cependant sur notre exemple que l’utilisation de la somme pondérée n’est guère adaptée. Exemple 3 « Plan de production » (suite)
Nous avons observé précédemment que l’ensemble des solutions efficaces corres pond à l’ensemble des points situés sur les segments [za, zd] et [zd, zc] (cf. figure 12.8). Il est clair que chacun de ces points peut apparaître comme solution optimale d’une somme pondérée l 1z1 1 l 2z2 pour un jeu de poids particulier (l 1,l 2 ) . Pour les solutions efficaces correspondant à des sommets du polyèdre – à savoir a, c et d dont les images respectives dans l’espace des critères sont les sommets za, zc et zd – 437
Chapitre 12 • Introduction à l’aide multicritère à la décision
il existe une infinité de jeux de poids qui permettent de les faire apparaître comme solution optimale d’une somme pondérée. Ces solutions efficaces extrêmes sont donc relativement faciles à faire apparaître. En revanche, l’infinité de solutions efficaces non extrêmes qui se trouvent sur une arête (ou plus généralement à l’intérieur d’une facette) du polyèdre peuvent certes apparaître optimales, mais chacune pour un jeu de poids unique seulement. Ainsi, l’ensemble des vecteurs critères non dominés situés sur le segment ]z d, z c[ apparaissent comme solutions optimales (multiples) d’un seul 7 15 jeu de poids (en l’occurrence l 1 5 , l 2 5 ). Il apparaît fort peu vraisemblable 12 12 de faire exprimer ce jeu de poids particulier à un décideur! De plus, même si l’on y parvenait, la résolution du programme linéaire qui en résulterait ne permettrait pas d’explorer finement l’infinité de solutions optimales ; les algorithmes de résolution tels que l’algorithme du simplexe ne donneraient d’ailleurs comme solution opti male que l’un des deux sommets c ou d… Nous constatons donc que les solutions efficaces non extrêmes sont très difficiles à explorer à l’aide d’une somme pondérée. Pourtant ces solutions ne sont pas moins intéressantes que les solutions efficaces extrêmes. Nous nous fixons donc comme but de pouvoir explorer l’ensemble de toutes les solutions efficaces, et ceci sans devoir résoudre des problèmes plus complexes que des programmes linéaires.
12.5.5 Méthodes fondées sur des points d’aspiration Dans ce type de méthodes, le décideur doit fournir de l’information préféren tielle s’exprimant sous forme de niveaux d’aspiration sur chacun des critères. Ces niveaux d’aspiration correspondent, pour chaque critère, à des valeurs souhaitées par le décideur. Soit donc z j la valeur souhaitée sur le jème critère ( j 5 1, c, p ) et z 5 ( z 1, c, z p ) le point d’aspiration associé. Nous allons chercher à déterminer, dans l’espace des critères, le point non dominé le plus « proche » possible de ce point d’aspiration z. Autrement dit, nous allons pro jeter z sur la frontière des points non dominés. Pour ce faire, nous allons résoudre le problème suivant formulé dans l’espace des critères (rappelons que ZA est l’ensemble des points admissibles dans cet espace) : min max 5 l j ( z j 2 z j )6 où : z 5 ( z 1, c,z j, c,z p ) z P ZA
j51,c,p
Il reste maintenant à déterminer la valeur des zpoids l j. Ces poids visant à nor maliser les écarts z j 2 z j, nous allons fixer l j 5 z *j 21 nj ( j 5 1, c, p ) . La réso lution du problème précédent en utilisant ce choix de valeur des poids revient, géométriquement, à projeter z sur la frontière des points non dominés selon la direc tion indiquée par les points z* (zenith) et n (nadir), c’est-à-dire parallèlement à la droite joignant z* et n. Dans l’espace des décisions, le problème précédent s’écrit : min
X PX
438
max 5 l j ( z j 2 c j # x )6
j51,c, p
12.5 Optimisation multiobjectif
Les contraintes x P X sont linéaires. Seule la fonction objectif est non linéaire. Ce programme peut cependant être reformulé de façon équivalente par le programme linéaire suivant :
d
min s.c.
> l j ( z j 2 c j # x ) ( j 5 1, c, p ) xPX
En effet, on introduit ici une nouvelle variable µ que l’on contraint à prendre une valeur supérieure à chacun des p arguments du max (dans la formule maxj51,c,p 5 l j ( z j 2 c j # x )6) . Cette variable étant minimisée, elle représente bien le maximum de ces arguments. Soulignons finalement que ces méthodes fondées sur des points d’aspiration sont utilisées le plus souvent de façon interactive. Ainsi, l’utilisateur fixe un pre mier point d’aspiration. Observant la réponse du modèle, il ajuste ses préférences en fixant un second point d’aspiration. Il poursuit ainsi son exploration de l’ensemble des solutions efficaces, appréhendant de mieux en mieux les solutions candidates intéressantes. Ce processus interactif se termine lorsqu’il estime avoir trouvé un bon compromis. Exemple 3 « Plan de production » (fin) Supposons que le décideur, au vu des informations fournies par le tableau des gains (cf. tableau 12.7), décide de fixer un premier point d’aspiration z1 5 ( 30, 2 10 ) . Ces niveaux correspondent, sur le critère économique, à une valeur souhaitée pour la marge totale égale à 300 000 € et, sur le critère écologique, à une consommation souhaitée de matière toxique égale à M1 de 10 unités. Les poids à utiliser sont l 1 5
1
© Dunod – Toute reproduction non autorisée est un délit.
z *1 2 n1 gramme linéaire à résoudre est alors :
5
1 1 1 5 . Le pro et l 2 5 * 42 30 z 2 2 n2
min s.c.
1 ( 30 2 ( 2x 1 1 3x 2 )) 42 1 ( 210 2 ( 2x 1 2 3x 2 )) > 30 x 1 1 4x 2 < 40 3x 1 1 2x 2 < 60 > 4 x1 x 1, x 2 > 0
> i
439
Chapitre 12 • Introduction à l’aide multicritère à la décision
dont la solution optimale est x 1 < 12,94, x2 5 0 et < 0,1 correspondant aux valeurs suivantes sur les critères : z 1 < 25,88 et z 2 < 212,94. La réponse du modèle, quand on lui fournit le point d’aspiration z 1, est donc le point non-dominé z1 5 (25,88 ; 212,94). Comme on peut le vérifier sur la figure 12.9, cela correspond bien à projeter ce point z 1 sur la frontière des points non-dominés, selon la direction indiquée par les points z* et n.
Fig. 12.9 Exploration des points non dominés – Exemple 3
Supposons que le décideur souhaite explorer un autre type de solutions et exprime un second point d’aspiration z 2 5 ( 40, 230 ) . La résolution du nouveau pro gramme linéaire fournit la solution optimale x 1 < 18,11, x 2 < 2,84 et < 20,11 correspondant aux valeurs suivantes sur les critères : z 1 < 44,73 et z 2 < 226,62. La réponse du modèle, quand on lui fournit le point d’aspiration z 2, est donc le point non-dominé z2 5 ( 44,73; 226,62 ) (cf. figure 12.9). On constate ici que le point d’aspiration fourni est sous-estimé car il correspond à un vecteur critère dominé. Le modèle projette donc ce point (dans l’autre sens) sur la frontière non dominée c’està-dire sur le segment [zc, zd]. Cette situation de sous-estimation peut se détecter en observant que la variable prend une valeur négative à l’optimum.
12.6 Conclusion Ce chapitre ne constitue qu’une introduction à l’aide multicritère à la décision. Nous y avons présenté les concepts fondamentaux et introduit quelques méthodes multi critères représentatives. L’une des idées principales à retenir est que l’agrégation de 440
12.6 Conclusion
plusieurs critères par une somme pondérée, bien que fort utilisée en pratique du fait de sa simplicité, présente de gros inconvénients comme indiqué en section 12.3.3. Cela justifie de s’intéresser à d’autres méthodes pour prendre en compte des critères multiples. Parmi les domaines que nous n’avons pas abordés figure l’optimisation com binatoire multiobjectif. Il s’agit, par exemple, de rechercher dans un graphe repré sentant un réseau de communication un chemin joignant deux sommets identifiés et réalisant le meilleur compromis entre différents critères (coût, durée). Dans ce même contexte, on peut également souhaiter engendrer l’ensemble des chemins effi caces afin de permettre au décideur d’appréhender les arbitrages possibles entre les différents critères. Cette extension multiobjectif du problème du plus court chemin s’applique également aux autres problèmes d’optimisation combinatoire classiques (arbre couvrant, affectation, flots,…). Le lecteur souhaitant approfondir le domaine de l’aide multicritère à la décision trouvera ci-après les références de quelques ouvrages généraux.
Bibliographie Bouyssou D., Marchant T., Pirlot M., Tsoukiás A. et Vincke Ph. – Evaluation and decision models with multiple criteria : Stepping stones for the analyst, Springer, Berlin, 2006. Collette Y. et Siarry P. – Optimisation multiobjectif Eyrolles, Paris, 2002. Ehrgott M. – Multicriteria Optimization, Springer, Berlin, 2005. Pomerol J.Ch. et Barba-Romero S. – Choix multicritère dans l’entreprise, Hermès, Paris, 1993. Roy B. – Méthodologie Multicritère d’Aide à la Décision : Méthodes et Cas, Economica, Paris, 1985. english translation : Multicriteria Methodology for Decision Aiding, Kluwer Academic Publishers, 1996. Roy B. et Bouyssou D. – Aide Multicritère à la Décision : Méthodes et Cas, Economica, Paris, 1993. Steuer R.E. – Multiple criteria optimization : theory, computation, and application, Wiley, New York, 1986. Vallin Ph. et Vanderpooten D. – Aide à la décision : une approche par les cas, Ellipses, Paris, 2000. 2e édition 2002. Vincke Ph. – L’aide multicritère à la décision, Ellipses, Paris, 1989. english translation : Multicriteria decision-aid, Wiley, 1992.
441
Solutions Solutions des exercices du chapitre 1
1.1 (1) entraîne : A + Β = 1 : (2) entraîne : C ! D 5 1 soit C # D 1 C # D 5 1 ; (3) est l’impli cation : E 1 C, soit E 1 C 5 1 ; (4) entraîne A # D 1 A # D 5 1 ; (5) est l’implication
B 1 E et A, soit B 1 A # E 5 1. Chacune de ces équations booléennes sera égale à 1 si et seulement si leur produit est égal à 1 : ( 1 ) # ( 2 ) # ( 3 ) # ( 4 ) # ( 5 ) 5 1. Il est plus rapide, en utilisant l’associativité et la commutativité du produit booléen, de calculer comme suit ce produit : ( 1 ) # ( 5 ) 5 1, soit ( A 1 B ) # ( B 1 A # E ) 5 1, entraîne A # B 1 A # E 5 1, c’est-à-dire # A ( B 1 E ) 5 1 : A étant en facteur du produit est nécessairement égal 1 ; alors (4) entraîne
D = 1 ; en reportant dans (2), il vient C 5 1, soit C = 0 ; enfin en reportant dans (3), il vient E 5 1, soit E = 0, puis avec (5) B 5 1, soit B = 0. La liste des cadeaux respectant les exigences de ce joyeux bambin (mais est-ce bien rai sonnable ?) est associée à A = D = 1 et B = C = E = 0 : elle comporte le jeu électronique et le Playmobil. 1.2 On introduit les cinq variables booléennes : D, S, T, I, C ; chacune est égale à 1 si le per sonnage associé dit la vérité (ainsi D = 1 si le directeur de secteur dit la vérité), ou à 0 s’il ment (alors D = 0, soit D 5 1). Le dialogue comporte trois déclarations (et le début d’une quatrième, interrompue par le général), soit d1 , d2 et d3. • d1 entraîne : S # C # D 1 S # C # D 5 1. • d2 est plus compliqué à coder : – soit le directeur et la sécrétaire disent la vérité ; alors selon que l’inspecteur dit la vérité ou, au contraire, ment, il vient : D#S#I#T 1 D#S#I#T 5 1 – soit le directeur et la secrétaire mentent tous deux : D#S#I#T 1 D#S#I#T 5 1
mais pour que D # S # I # T, ou bien D # S # I # T, soit égal à 1, il faudrait avoir 3 des 4 variables nulles et donc 3 menteurs ; or l’on sait qu’il y en a au plus 2 ... On n’aura donc pas à tenir compte de cette relation.
Solutions des exercices du chapitre 1
– soit un seul des deux ment : (D # S 1 D # S) # (I # T 1 I # T) 5 1 soit ( D # S 1 D # S ) # ( I 1 T ) # ( I 1 T ) 5 1, qui donne : ( D # S 1 D # S ) 1 ( I # T 1 I # T ) 5 1
mais si I # T 5 1, alors I = 0 et Τ = 0 ; compte tenu de ce qu’en outre soit le directeur soit la sécrétaire ment, on aurait alors 3 menteurs ; on abandonne ces deux cas ; il reste : ( D # S 1 D # S ) # I # T 5 1, soit : #
D # S # I # T 1 D # S # I # T 5 1.
Au total, d2 se formule par :
D # S # I # T 1 D # S # I # T 1 D # S # I # T 1 D # S # I # T 5 1, (que l’on pourrait simplifier en tenant compte de d1).
• d3 entraîne : I # S 1 I # S 5 1. Pour la résolution, on exprime que les équations booléennes traduisant d1, d2 et d3 sont simultanément vraies ; chaque équation étant égale à 1, le produit de ces équations doit être égal à 1 : ( S # C # D 1 S # C # D ) # ( D # S # I # T 1 D # S # I # T 1 D # S # I # T 1 D # S # I # T ) # ( I # S 1 I # S ) 5 1 ; en développant et en éliminant les monômes booléens nuls ou associés à des combinaisons de 3 menteurs, il reste : 1 5 C # D # S # I # T,
soit : D # S # T 5 1 et C # I 5 1. La solution est unique (car on a obtenu un seul monôme booléen après développement et réduction du produit ci-dessus) : D = S = T = 1 et C = I = 0. Seuls le conseiller et l’inspecteur mentent... 1 1 2 3 4 1 1.3 1) T 11 5 A1 # L1 ; T12 5 T12 5 T11 5 T12 5 0 ; T13 5 A1 # L1 , etc. • À t = 2, conflit possible pour les séries 1 et 2 sur la machine 1 :
© Dunod – Toute reproduction non autorisée est un délit.
A1L1 1 A1 # L1 1 A2 # L2 < 1, or ( A1 1 A1 ) # L1 5 L1, soit : L1 1 A2 # L2 < 1 • À t = 3, conflit possible pour les séries 1 et 2 sur la machine 1 :
(1).
A1 # L1 1 A2 # L2 1 A2 # L2 < 1 et pour les séries 2 et 3 sur la machine 2 :
soit : A1 # L1 1 L2 < 1
(2),
A2 # L2 1 A2 # L2 1 A3 # B3 # L3 < 1 ainsi que pour les séries 1 et 3 sur la machine 3 :
soit : L2 1 A3 # B3 # L3 < 1
(3) ;
A1 # L1 1 A3 # B3 # L3 < 1 (4). • À t = 4, conflit possible entre les séries 2 et 4 sur la machine 1 : A2 # L2 1 A4 # L4 # M4 < 1 (5),
443
Solutions
et pour les séries 2, 3, 4 sur la machine 2 : A2 # L2 1 A3 # B3 # L3 1 A4 # L4 # M4 < 1 (6), ainsi que pour les séries 3, 4 sur la machine 3 : A3 # B3 # L3 1 A4 # L4 # M4 < 1 (7). • À t = 5, conflit possible pour les séries 3, 4 sur la machine 2 : A3 # B3 # L3 1 A4 # L4 # M4 < 1 (8), et pour les séries 3, 4 sur la machine 3 : A3 # B3 # L3 1 A4 # L4 # M4 < 1 (9). 2) En posant A1 = A3 = B3 = L2 = L1 = 1 et A2 = 0 , il vient : (1) 1 1 1 0 < 1 : oui
(2) 1 0 1 1 < 1 : oui (3) 1 0 1 L3 < 1 : oui
(6) 1 0 1 0 1 A4 # L4 # M4 < 1 :
oui
(7) 1
oui
(8) 1
(9) 1 (4) 1 0 1 L3 < 1 : oui (5) 1 1 1 A4 # L4 # M4 < 1 soit A4 # L4 # M4 5 0 . e
0 1 A4 # L4 # M4 < 1 :
0 1 A4 # L4 # M4 < 1 : 0 1 A4 # L4 # M4 < 1 :
oui oui
L1 5 1 : la 1ère série est exécutée sur la machine 1 lors de t = 1 et t = 2. A1 5 1
L2 5 1 : la 2e série est exécutée sur la machine 1 lors de t = 3 et 4. A2 5 1 A3 = B3 = 1 : la 3e série est exécutée au temps t = 3 sur les machines 2 ou 3 (2 solutions). e
L4 5 1
M4 5 1
A4 # L4 # M4 5 0 ; soit : A4 5 0 µ L4 5 0
M4 5 1
L4 5 1
M4 5 0
la 4e série est exécutée au temps t = 5 sur la machine 1, ou 2, ou 3.
soit : A4 5 1 •
L4 5 0
M4 5 1
L4 5 1
M4 5 0
la 4e série est exécutée au temps t = 4 sur la machine 2 ou 3. Au total, 10 solutions : 2 (pour la série 3) 3 5 (pour la série 4). 3) La machine 1 est utilisée pour les séries 1 et 2 (t = 1, 2 puis 3 et 4). Si L3 = 1, la machine 2 est utilisée pour la série 3 : il faut alors utiliser M3 pour la série A4. 2 solutions : A4 = 0, L4 = 0, M4 = 1 : s4 sur M3 à t = 5 ; A4 = 1, L4 = 0, M4 = 1 : s4 sur M3 à t = 4.
444
Solutions des exercices du chapitre 1
Si L3 5 0 ( L3 5 1 ) : la machine 3 est utilisée pour la série 3 : il faut alors utiliser la machine 2 pour la série 4. 2 solutions : A4 = 0, L4 = 1, M4 = 0 : s4 sur M2 à t = 5 ; A4 = 1, L4 = 1, M4 = 0 : s4 sur M2 à t = 4. On trouve 4 solutions au total dans ce cas. 4) On fixe L3 = 0 ; de plus on veut finir à t = 4. Il reste la solution unique : A4 = 1, L4 = 0, M4 = 1 : on effectuera s1 sur M1 à t = 1 et 2 , s2 sur M2 à t = 3 et 4 , s3 sur M3 à t = 3 , s4 sur M2 à t4. 1.4 1) En développant F sous forme canonique disjonctive, il vient 9 minterms :
© Dunod – Toute reproduction non autorisée est un délit.
F 5 abcd 1 abcd 1 abcd 1 abcd 1 abcd 1 abcd 1 abcd 1 abcd 1 abcd Utilisons, par exemple, la méthode de Quine pour trouver les monômes (ou constituants) premiers : Initialement (k = 0), on forme un tableau à double entrée ; chacune des ses 4 lignes et de ses 4 colonnes est associée à l’un des monômes de F figurant dans l’énoncé. Puis on forme leur consensus 2 à 2 (lorsqu’il existe) et on l’ajoute s’il n’est pas contenu dans (absorbé par) un des 4 monômes de F : on en trouve deux : abd et bc. N.B. : toutes les cases de la diagonale sont hachurées car un monôme ne peut pas former un consensus avec luimême ; on hachure aussi les cases qui correspondraient à une répétition : si l’on a déjà formé le consensus de abc et de bcd, il est inutile de former celui de … bcd et abc. Puis (k = 1) on associe une ligne et une colonne à chaque consensus retenu (ici : abd et bc) et l’on recommence : on trouve un seul consensus à retenir : bd. Finalement (k = 2) on crée une ligne et une colonne associées à bd ; on forme les consensus comme ci-dessus : on trouve bc, mais qui a déjà été obtenu : FIN. On supprime ensuite les monômes absorbés par un autre : ainsi abc est absorbé par bc ; bcd, par bd ; abd, par bd. Les monômes restants sont les monômes premiers de F : F 5 ab 1 bc 1 bd 1 cd. Ensuite formons un tableau dont les lignes sont associées aux monômes premiers et les colonnes, aux minterms. Ceci pour reconnaître quels sont les minterms couverts (absorbés) par les monômes premiers.
445
Solutions
abcd abcd abcd abcd abcd abcd a bcd abcd abc d ab bc bd cd Nous reconnaissons tout de suite les monômes premiers « essentiels » : ab, bd et cd, car chacun d’eux couvre un minterm (au moins) qui n’est couvert par aucun autre monôme premier (cf les points gras cerclés dans le tableau ci-dessus). En revanche, le monôme premier bc est redondant car il est le consensus des monômes premiers essentiels : bd et cd. La forme minimale de F est (unique ici) : F 5 ab 1 bd 1 cd . 2) Il est absolument inutile de recommencer les calculs pour G. En effet, dans la forme canonique de G, seul le minterm abcd (le dernier du tableau précédent) aura disparu. En conséquence, ab ne sera plus un monôme premier. Or bc, qui reste monôme premier pour G, continuera à être couvert par bd + cd, d’où la forme minimale (à nouveau unique) : G 5 bd 1 cd. 1.5 1) On commence par substituer à toute variable xi ayant un coefficient négatif dans l’une des inégalités et dans la fraction économique, 1− xi : 2 x1 + 3 x2 + x3 + x4 ≤ 5 3 x1 + 2 x2 + 2 x3 + x4 ≤ 7 x1 + x2 + x3 + x4 ≤ 3 2 x1 + 4 x2 + x3 + 3 x4 − 4 = F[MAX] 2) Rangeons les coefficients de la fonction de la fraction économique dans l’ordre décroissant de leur contribution à la valeur de : F = 4 x2 + 3 x4 + 2 x1 + x3 − 4 (d’où F # 6 5 4 1 3 1 2 1 1 2 4). Posons : 4x 2 1 3x 4 1 2x 1 1 x 3 5 Fr
446
Solutions des exercices du chapitre 1
c’est cet ordre que nous allons tenter de donner aux variables de valeur 1. Ci-dessous nous présentons les calculs à l’aide d’une arborescence (ce qui est équivalent au calcul en tableau de la page 33). Première phase : obtention d’une « bonne » solution admissible a. x2 ayant le plus grand coefficient dans F, on a intérêt semble-t-il, à prendre x2 = 1 (et donc x2 = 0 ) si c’est possible (c’est-à-dire si les contraintes sont respectées). Les contraintes deviennent : 2 x1 + x3 + x4 ≤ 5 3 x1 + 2 x3 + x4 ≤ 5 x1 + x3 + x4 ≤ 3
et Fr : 3 x4 + 2 x1 + x = F' On remarque que dans chaque contrainte ci-dessus, le coefficient de toute variable est inférieur au second membre : le choix de x2 = 1 n’a pas d’implication sur les valeurs des autres variables. (Si l’on avait : 2 x1 + 7 x3 + x4 ≤ 5 puisque 7 > 5, une implication serait x3 = 0 ; mais ce n’est pas le cas ici.) b. x4 ayant le second plus grand coefficient dans F : 3, on prend x4 = 1 . Les contraintes deviennent : 2 x1 + x3 ≤ 5 3 x1 + 2 x3 ≤ 4 x1 + x3 ≤ 2
et Fr :
© Dunod – Toute reproduction non autorisée est un délit.
2 x1 + x3 + 3 = F' . À nouveau on n’a pas d’implication. c. x1 ayant alors le plus grand coefficient dans F, on prend x1 = 1 . Les contraintes deviennent : x3 ≤ 3 2 x3 ≤ 1 x3 ≤ 2 et F : x3 + 5 = F' 447
Solutions
La seconde contrainte implique : x3 = 0 . Finalement on a obtenu la solution x4 = x1 = 1, x2 = x3 = 0 de valeur F = 5. Mais nous ne savons pas, pour l’instant, si cette solution est optimale ou non.
etc.
Deuxième phase : recherche de la solution optimale On va remettre en cause les choix effectués, en partant du dernier, puis de l’avant dernier, c′. Si on prend x1 = 0 (en gardant x2 = x4 = 1 ), les contraintes deviennent : x3 ≤ 5 2 x3 ≤ 4 x3 ≤ 3 et F′ : x3 + 3 = F'
Manifestement F′≤ 4 (au mieux ; si x3 = 1) alors qu’on connaît une solution de valeur F' = 5 : il n’existe pas de meilleure solution avec x1 = 0 . On va remonter alors à la mise en cause du choix précédent. b′. Si on prend x4 = 0 (en gardant x2 = 1 ), les contraintes deviennent : 2 x1 + x3 ≤ 4 3 x1 + 2 x3 ≤ 5 x1 + x3 ≤ 3 et F′ : 2 x1 + x3 = F′ Manifestement F' ≤ 3. On va alors alors remonter alors à la mise en cause du premier choix. a′. Si on prend x2 = 0 (c’est-à-dire x2 = 1) : 2 x1 + x3 + x4 ≤ 1 3 x1 + 2 x3 + x4 ≤ 7 x1 + x3 + x4 ≤ 2 et F' : 2 x1 + x3 + x4 − 4 = F' .
448
Solutions des exercices du chapitre 1
Manifestement désormais F'≤ 0 . La deuxième phase s’achève sans qu’on n’ait trouvé une meilleure solution que notre « bonne » solution de la phase 1, qui s’avère ici être optimale : F ′* = 5, x1 = x4 = 1, x2 = x4 = 0 En revenant à F = F′ – 4, on obtient la valeur optimale F* = 1.
6 x2 = 1
0
6 x4 = 1
x4 = 0 3
6 x1 = 1 6
x2 = 0
x1 = 0 4
x3 = 0
© Dunod – Toute reproduction non autorisée est un délit.
5
NB : la gestion de cette arborescence peut s’effectuer à l’aide d’une pile.
449
Solutions
Solutions des exercices du chapitre 2
2.1 1) On effectue n 2 1 comparaisons lors de la 1ère phase, n 2 2 comparaisons lors de la 2ème, ..., 1 comparaison lors de la ( n 2 1 ) ème phase. La complexité est : ( n 2 1 ) 1 ( n 2 2 ) 1 c, 1 1 5 n ( n 2 1 ) /2, soit en O(n2). Le lecteur trouvera dans l’exercice suivant un tri de complexité moindre, en O(n log n). Supposons que l’on doive trier n = 1 000 éléments : par un tri par transpositions on effectuera plus de 500 000 comparaisons et seulement de l’ordre de 10 000 comparaisons pour un tri en O(n log n) (nous approximons ici log 1 000 par log 1 024, c’est-à-dire log 210 = 10). 2) Les n cases du tableau sont notées : Tab(1), Tab(2), ..., Tab(n). pour i 5 1 à n 2 1 pour j 5 1 à n 2 i si Tab ( j ) . Tab ( j 1 1 ) alors élt d Tab ( j 1 1 ) ; Tab ( j 1 1 ) d Tab ( j ) ; Tab ( j ) d élt ; fin si fin pour fin pour 2.2 1) Le nombre d’éléments du tableau étant 9, l’algorithme commence par trier d’une part le tableau 7 5 2 8 et le tableau 4 1 3 9 6 avant de fusionner ces deux tableaux en utilisant l’algorithme présenté à la question précédente. Appliquons l’algorithme de tri au tableau de gauche : 7 5 2 8 . Ce tableau comportant plus de deux éléments, l’algorithme doit être exécuté pour les tableaux 7 5 et 2 8 avant qu’ils soient fusionnés. L’algorithme appliqué à 7 5 commence par séparer ce tableau en deux tableaux 7 et 5 . Ces deux tableaux étant de taille unitaire, ils constituent chacun un tableau trié ; le résultat de leur fusion est alors 5 7 . De même, l’application de l’algorithme de tri au tableau 2 8 donnera 2 8 et la fusion des deux tableaux 5 7 et 2 8 aura pour résultat 2 5 7 8 . Le tableau 4 1 3 9 6 est d’abord scindé en deux tableaux : 4 1 et 3 9 6 . Pour le tableau 4 1 , après une nouvelle séparation et une fusion, le tableau résultat est 1 4 . Le tableau 3 9 6 est lui séparé en 3 et 9 6 . L’algorithme de tri est appliqué à ce dernier tableau de deux éléments et le tableau résultant est 6 9 ; sa fusion avec 3 donne 3 9 6 , qui luimême fusionné avec 1 4 fournit le tableau 1 3 4 6 9 . Finalement, la fusion des deux tableaux 2 5 7 8 et 1 3 4 6 9 donne comme résultat 1 2 3 4 5 6 7 8 9 . 2) Montrons qu’après k passages dans la boucle de l’instruction 2, les k premiers éléments du tableau Τ ont été correctement insérés. Notons premièrement qu’à chacun des passages un et un seul élément est inséré dans le tableau. Soit a le dernier élément inséré et supposons qu’à cette étape T1 ( i1 ) < T 2 ( i2 ) (le raisonnement est évidemment identique dans le cas 450
Solutions des exercices du chapitre 2
contraire), T1(i1) est donc inséré en position k de Τ : si a est un élément de T1, c’est-à-dire a = T1(i1 – l), puisque T1 est trié, on a a < T1 ( i1 ) ; si a est un élément de T2 c’est-à-dire l’élé ment T2(i2 – l), à l’étape précédente on avait T1 ( i1 ) . T2 ( i2 2 1 ) 5 a, ainsi l’élément T1(i1) est donc bien correctement inséré dans T. La boucle de l’instruction 2 se termine lorsque tous les éléments de l’un des deux tableaux (mais pas des deux) ont été insérés. Supposons que ce soit l’ensemble des éléments de T2 qui soit dans Τ avant que tous les éléments de T1 soient insérés (ici aussi, l’autre cas est analogue). Le premier élément non encore inséré de T1 a une valeur supérieure au dernier élément de T2, sinon il aurait été inséré avant celui-ci. Τ est donc trié, et contient tous les éléments de T1 et T2. L’insertion d’un élément dans Τ demande un nombre constant d’opérations élémentaires, que se soit dans le corps dans la boucle de l’instruction 2 ou dans l’instruction de la ligne 6, n éléments sont insérés, la complexité est donc O(n) que se soit dans le pire des cas, dans le meilleur des cas ou dans le cas moyen. 3) Supposons dans un premier temps que n, la taille du tableau, soit de la forme n = 2k, k étant un entier. Dans ce cas, à chaque étape, un tableau est séparé en deux tableaux de tailles égales. Ainsi, au premier niveau, le tableau est séparé en 2 tableaux de taille 2k–1, au deuxième niveau, il y aura 22 = 4 tableaux de taille 2k–2, et ainsi de suite jusqu’au moment où chaque tableau est de taille 1 et n’est donc plus séparé. À ce stade nous sommes arrivés au niveau k = log2n de séparation et il y a n tableaux. À tout niveau b il y a donc 2b tableaux de taille 2k–b ; nous avons vu que la fusion de deux t tableaux de taille nécessitait O(t) opérations ; à chaque niveau, les opérations de fusion 2 nécessitent donc O(2b2k–b) = O(2k). Puisque il y a k niveaux, l’ensemble des opérations de fusion nécessite O(k2k) = O(n log n) opérations élémentaires. Le nombre d’opérations néces saires à la séparation du tableau est O(n) puisque la séparation s’arrête quand chaque tableau est de taille unitaire. Le nombre d’opérations pour l’ensemble de l’algorithme est donc O(n log n) + O(n) = O(n log n).
© Dunod – Toute reproduction non autorisée est un délit.
Lorsque n n’est pas de la forme n = 2k, soit k l’entier tel que 2k 2 1 , n , 2k. Le nombre d’opérations exécutées par l’algorithme est moindre que celui nécessaire pour un tableau de taille 2k. La complexité de l’algorithme est donc O(n log n).
451
Solutions
Solutions des exercices du chapitre 3
1 1 2 2 3.1 1) G ( A ) 5 5 F, C 6 ; G ( B ) 5 5 A, B, C, D 6 ; G ( A ) 5 5 B, F 6 ; G ( B ) 5 5 B 6 2) dA2 5 2 ; dB2 5 1 ; dC2 5 3 ; dD2 5 2 ; dE2 5 2 ; dF2 5 2 dA1 5 2 ; dB1 5 4 ; dC1 5 1 ; dD1 5 3 ; dE1 5 0 ; dF1 5 2 ;
E est une “sortie” car le sommet E n’a pas de successeur : dE1 5 0 car G(1E) 5 [ . Si l’on supprime la boucle (B, B), alors B devient une entrée. NB : la somme des demi-degrés intérieurs (resp. extérieurs) de tous les sommets est égale au nombre d’arcs : en effet cette somme revient à compter les arcs par leur extrémité initiale (resp. terminale), ici m = 12. 3) (B, D, C, D, E) est un chemin simple : aucun de ses arcs n’est emprunté plusieurs fois ; mais ce chemin n’est pas élémentaire : il passe deux fois par D. 4) Puisque le graphe comporte une sortie, le sommet E qui est sans successeur, aucun circuit ne peut passer par E ; en particulier, pas un circuit hamiltonien. Si G comporte un chemin hamiltonien, celui-ci doit partir de l’entrée B (supprimer la boucle) pour arriver à la sortie E. On trouve alors facilement le chemin hamiltonien (B, A, C, D, F, E). 5) G comportant une sortie, il n’est pas fortement connexe : depuis E il n’existe pas de chemin vers les autres sommets. Mais l’ajout de l’arc (E, B) le rendrait fortement connexe. 6) B est nécessairement la racine des arborescences cherchées. En voici deux : B
B D
A A
D
F
E
C F
C
E
Une troisième arborescence (particulière, car sans ramification) est le chemin hamiltonien du 4. 3.2 On cherche un parcours (non orienté) passant par tous les points une fois et une seule. En termes de graphes : une chaîne (ou un cycle) eulérienne. Supposons le problème possible avec le point (sommet) de départ d différent du point (sommet) d’arrivée a. Dans le diagramme les degrés de d et de a seraient alors impairs ; les autres sommets étant des points de passage, leur degré serait pair. Si d et a étaient confondus, tous les sommets du diagramme auraient un degré pair. Bref le problème est possible si ce diagramme comporte au plus 2 sommets de degré impair. Or dans le diagramme des 7 ponts, les 4 sommets ont un degré impair (dA = dC = dD = 3 et dB = 5) : le problème est impossible. Avec un huitième pont ajouté entre A et D, le problème est possible en partant de B et en finissant en C (ou l’inverse). 3.3 1) Toute arête a deux extrémités : si l’on somme tous les degrés des sommets on compte chaque arête deux fois ; cette somme vaut donc 2m (rappel : m désigne le nombre d’arêtes du graphe) 452
Solutions des exercices du chapitre 3
2) Supposons, par l’absurde, qu’il existe un graphe comportant un seul sommet (noté x1) de degré impair (noté d1), tandis que les degrés des autres sommets sont pairs : d2 + d3, ..., dn. On vient de montrer que : d1 + (d2 + d3 + ... + dn) est pair car égal à 2m ; or (d2 + d3 + ... + dn) étant une somme de nombres tous pairs est paire ; par suite, la somme d1 + (d2 + d3 + ... + dn) est impaire, ce qui contredit le résultat du 1) : « d1 + d2 + ... + dn » est pair. Il est donc impossible d’avoir un seul sommet de degré impair. Plus généralement, on peut montrer que, pour tout graphe, le nombre de sommets de degré impair, est pair. 3.4 On a tracé le graphe non orienté associé à la matrice :
Figure 3.7
© Dunod – Toute reproduction non autorisée est un délit.
Figure 3.8
1) En nommant A, B, c, I les sommets suivant l’ordre des lignes et colonnes de la matrice, la figure 3.7 suivante correspond à un tracé du graphe. La suite des opérations sui vantes correspond à un parcours possible de ce graphe : A est ouvert, Β est ouvert à partir de A, F est ouvert à partir de A, F est fermé, G est ouvert à partir de Β, I est ouvert à partir de A, D est ouvert à partir de G, Ε est ouvert à partir de G, C est ouvert, H est ouvert à partir de C. L’ordre de Prévisite est alors (A, B, F, G, I, D, E, C, H). La forêt correspondant à ce parcours est représentée par la figure 3.2. Cette forêt comprenant deux arborescences, le nombre de composantes connexes du graphe est donc deux. 2) Pour déterminer les sommets d’articulation, nous effectuons un parcours en profon deur du graphe, et calculons les valeurs prévisite et hauteur pour chacun des sommets de la manière décrite dans la partie dédiée à ce problème.
Figure 3.9
453
Solutions
En initialisant le parcours par l’ouverture du sommet A, nous aboutissons aux numérotations de la figure 3.9. Les racines A et C de la forêt que nous avons obtenue ont un unique succes seur dans leur arborescence et ne sont donc pas par conséquent des sommets d’articulation. Le sommet B, qui a pour ordre de prévisite 2, a pour successeur le sommet G pour lequel la hauteur calculée est 3; or 3 > 2 donc Β est un sommet d’articulation. G est aussi un sommet d’articulation puisque son successeur Ε dans l’arborescence a une hauteur 3 égale à la valeur de prévisite de G. Les autres sommets du graphe ne sont pas des sommets d’articulation puisque tous leurs successeurs dans l’arborescence ont des hauteurs inférieures au rang du sommet dans la liste de prévisite. 3.5 1) Supposons que le graphe ait un cycle de longueur impaire. Nous pouvons noter [x1, x2, c, x2n+1, x1] ce cycle. Si x 1 PX alors x 2 PY puisqu’une arête relie x1 et x2. Alors x 3 PX , et ainsi de suite. Donc tous les sommets d’indice impair sont des élément de X. Mais {x1, x2n+1} est une arête du cycle ayant ses deux extrémités dans l’ensemble X, donc le graphe ne peut pas être biparti. Supposons maintenant que tous les cycles du graphe soient de longueur paire. Effectuons un parcours de ce graphe en colorant les sommets de la manière suivante : le sommet initia lisant le parcours est coloré en bleu. À chaque fois qu’un sommet est ouvert, il est coloré en bleu si le sommet ayant permis son ouverture est coloré en rouge, et réciproquement le som met est coloré en rouge si le sommet ayant permis son ouverture est coloré en bleu. Ainsi à la fin du parcours chaque sommet est soit bleu soit rouge. Les arêtes du graphe correspondant à un arc de la forêt relative au parcours ont leurs deux extrémités de couleurs différentes étant donné la manière dont les sommets ont été colorés. Considérons les autres arêtes [x, y] : il y a une chaîne reliant x et y dans la forêt relative au parcours. L’ajout de l’arête [x, y] à cette chaîne correspond à un cycle, de longueur paire par hypothèse. La chaîne reliant x et y dans la forêt a donc un nombre impair d’arêtes. Cette chaîne appartenant à la forêt, ses sommets sont colorés alternativement en bleu et rouge, les deux sommets extrémités de cette chaîne ont donc des couleurs différentes. Donc pour toute arête du graphe, l’une de ses extrémités est rouge et l’autre est bleue. En par titionnant l’ensemble des sommets suivant leur couleur, nous vérifions alors que le graphe est biparti. 2) Nous venons de voir dans la démonstration précédente comment un parcours permet de colorer avec deux couleurs les sommets d’un graphe biparti. Pour vérifier qu’un graphe est biparti, il suffit donc d’effectuer un parcours et de vérifier que chaque arête a ses deux extrémités de couleurs différentes. 3.6 1) Si (y, x) est un arc arrière, en ajoutant cet arc au chemin allant de x à y dans l’arborescence du parcours nous obtenons un circuit dans le graphe donné. Réciproquement, considérons un circuit du graphe. Soit x le premier sommet visité de ce circuit dans l’ordre de prévisite et y le prédécesseur de x dans ce circuit. Le sommet y étant aussi un descendant de x il y a nécessairement un chemin de x à y dans l’arborescence du fait que le parcours s’effectue en profondeur (cette propriété a été montrée dans le cas des graphes non orientés, il est laissé le soin au lecteur de vérifier que la démonstration donnée est encore valide pour les graphes orientés), et de ce fait (y, x) est un arc arrière. 2) Nous avons vu que la complexité d’un parcours en profondeur est O(max(m, n)). La détection d’un arc arrière (y, x) peut se faire simultanément au parcours sans ajouter d’opéra tion supplémentaire. Il suffit lors de la visite du sommet y, au cours de l’examen du sommet x (successeur de y) de vérifier que x est ouvert. 454
Solutions des exercices du chapitre 3
3) (E, G) et (F, A) sont des arcs-arrière : ils ferment respectivement les circuits (E, G, C, D, E) et (F, A, B, F). 3.7 Voici le parcours en profondeur du graphe de l’application, depuis A, puis dans une seconde phase depuis E, donné par les 2 arborescences (ou « forêt ») et aussi par les différents états de la pile associée à ce parcours : 2
1
π(B) = 4
8 = π(E)
E
B
π(A) = 5
A
F
H
π(F) = 7 graphe g
G
D
π(G) = 6
π(D) = 3
C π(C) = 2
A
E
B
F C
D
G
H
© Dunod – Toute reproduction non autorisée est un délit.
pile vide
E début phase 2
A début phase 1
F E
B A
C B A
π(H) = 1
H C B A
C B A
B A
D B A
B A
A fin phase 1
G F E
F E
E fin phase 2
NB Ici (G, E ) et (C, A) sont des arcs-arrières : ils ferment les circuits (G, E, F, G ) et (C, A, B, C ). (A, H ) est un arc-avant. (D, C), (E, B) et (G, D) sont des arcs-transverses. 455
Solutions
Voici maintenant gt, le graphe-miroir de g et la forêt constituée de 3 arborescences de son parcours en profondeur ; le sommet initial est celui de plus fort rang dans le premier parcours en profondeur : cʼest E puisque p ( E ) 5 8. 2
1
E
B
A
F
3
H G
D
C
E
A
G
C
F
B
1
2
D
H
3
Dans la première passe de ce second parcours en profondeur, on visite seulement les 3 sommets {E, F, G}. Ensuite le second sommet non encore visité est A puisque p ( A ) 5 5 : A est le sommet initial de la seconde passe ; on visite alors {A, B, C, D}. Enfin il reste un seul sommet non encore visité : H qui est le sommet initial de la troisième passe... et final puisque il était seul. Le graphe initial comporte donc 3 composantes fortement connexes :
K1 = {E, F, G} , K2 = {A, B, C, D} , K3 = {H}
Le sommet H est le seul dans sa composante fortement connexe car H est une sortie du graphe initial. À titre de vérification (visuelle) dans le graphe initial : les trois sommets E, F et G appartenant à un même circuit : (E, F, G, E) appartiennent à la même composante forte ment connexe ; il en va de même pour A, B, C et D avec le circuit (A, B, D, C, A).
456
Solutions des exercices du chapitre 4
Solutions des exercices du chapitre 4 4.1 1) Chaque phase k fait intervenir le sous-ensemble de variables x1, c, xk, la phase n fait donc intervenir l’ensemble des variables du problème. Les valeurs zk(d ) correspondent aux problèmes pour lesquels le second membre de l’inégalité a pour valeur d : ainsi pour d = b et k = n, nous retrouvons le problème initial, donc z(b) = zk(b). 2) Les problèmes de la phase k = 1 sont de la forme : z1(d ) = max c1x1 avec a1x 1 < d où c1 est positif et où d est un paramètre entier variant de 0 à b. Lorsque a1 . d, la seule valeur possible de la variable x1 est x1 = 0 et alors z1(d ) = 0 ; inversement, lorsque a1 < d, les deux valeurs 0 ou 1 sont possibles pour x1, donc c1x1 est maximal lorsque x1 = 1 et a pour valeur z1(d ) = c1. k 21
3) À la phase k, si xk = 1, on a a ai x i 5 a ai x i 1 ak < d. Les coefficients a1 ainsi que les k 21 k
variables xi étant positifs, on a bien ak < d. Nous avonc donc d’une part a ai x i < d 2 ak , et k k 21 i51
i51
d’autre part max a ci x i 5 max a a ci x i b 1 ck . La valeur de xk étant fixée, les variables sont i51 i51 x1, c, xk – 1 , ce qui correspond à résoudre les problèmes (paramétrés par d ) : i51
max a ci x i 5 z k 2 1 ( d 2 ak ) ; k 21
i51
ainsi nous avons bien : z k ( d ) 5 z k 2 1 ( d 2 ak ) 1 ck . k
k 21
i51
i51
4) Durant la phase k, si xk = 0, on a : a ai x i 5 a ai x i < d et d’autre part :
max a ci x i 5 max a ci x i. Les variables étant x1, c , xk
k 21
i51
i51
les problèmes (paramétrés par d) à résoudre sont :
max a ci x i 5 z k 2 1 ( d ) et nous obtenons zk(d) = zk – 1(d) . k 21
© Dunod – Toute reproduction non autorisée est un délit.
– 1,
k
i51
5) Lorsque ak . d, nécessairement xk = 0 et, ainsi que nous venons de le voir dans la question précédente, zk(d ) = zk–1(d ) ; si ak < d, xk peut a priori prendre l’une des deux valeurs 0 ou 1 ; si xk = 0, alors comme nous venons de le voir, zk(d ) = zk–1(d ) ; dans le cas contraire, lorsque xk = 1, nous avons vu que : z k ( d ) 5 ck 1 z k 2 1 ( d 2 ak ) ; en comparant ces deux possibilités, il vient : z k ( d ) 5 max ( z k 2 1 ( d ) , ck 1 z k 2 1 ( d 2 ak )) . 6) Nous devons déterminer z4(7). Commençons par effectuer la phase k = 1, c’est-à-dire calculer z1(0), z1(1), c, z1(7) ; a1 = 2, nous obtenons alors z1(0) = z1(1) = 0 avec x1 = 0 et z1(2), c, z1(7) = 16 avec x1 = 1. Effectuons la phase k = 2 : puisque a2 = 3, nous obtenons z2(0) = z1(0) = 0, z2(1) = z1(1) = 0, et z2(2) = z1(2) = 16 avec x2 = 0 ; calculons z2(3), nous avons : 457
Solutions
z2(3) = max (z1(3), 19 + z1(3 – 3 = 0)) = max(16, 19) = 19, ce maximum étant obtenu pour x2 = 1 ; de la même manière, nous obtenons : z2(4) = max (z1(4), 19 + z1(1)) = max(16, 19) = 19, avec x2 = 1 ; z2(5) = max (z1(5), 19 + z1(2)) = max(16, 19 + 16) = 35, ce maximum étant obtenu avec x1 = x2 = 1 ; de même nous obtenons : z2(6) = max (z1(6), 19 + z1(3)) = max(16, 35) = 35 et z2(7) = max (z1(7), 19 + z1(4)) = max(16, 35) = 35, obtenu avec x1 = x2 = 1. Effectuons maintenant la phase k = 3 : Puisque a3 = 4, nous obtenons z3(0) = z2(0) = 0 , z3(1) = z2(1) = 0 , z3(2) = z2(2) = 16 , et z3(3) = z2(3) = 19 avec x3 = 0 ; nous avons : z3(4) = max (z2(4), 23 + z2(0)) = max(19, 23) = 23, obtenu avec x3 = 1 ; z3(5) = max (z2(5), 23 + z2(1)) = max(35, 23) = 35, obtenu avec x3 = 0 ; z3(6) = max (z2(6), 23 + z2(2)) = max(35, 23 + 16) = 39, obtenu pour x3 = 1 ; z3(7) = max (z2(7), 23 + z2(3)) = max(35, 23 + 19) = 42, obtenu pour x3 = 1 ; Pour finir, la phase k = 4 consistera uniquement au calcul de z4(7) = z(7), la solution du pro blème w nous obtenons, puisque a 4 5 5 < 7 : z4(7) = max (z3(7), 28 + z3(2)) = max(42, 28 + 16) = 44, et cette solution est obtenue avec x4 = 1, x3 = 0 venant du calcul de z3(2) = 16, x2 = 0 car pour le calcul de z2(2) nous avions z2(2) = z1(2), et x1 = 1 venant du calcul z1(2) = 16. Le tableau et le graphe de décisions suivants résument l’ensemble des calculs (on y ajoute les z4(d) pour d < 7) :
z k (d)
k1
k2
k3
k4
d0
0
0
0
0
d1
0
0
0
0
d2
16
16
16
16
d3
16
19
19
19
d4
16
19
23
23
d5
16
35
35
35
d6
16
35
d7
16
35
39 42
39 44
En résumé, l’optimum est : x1 = 1, x2 = x3 = 0, x4 = 1 et z* = 44. Le lecteur se convaincra aisément que résoudre ce problème est équivalent à chercher un chemin de valeur maximale du sommet α au sommet ω dans le « graphe de décisions » ci-dessus (il est formé des arcs figurés par un trait double). L’alpiniste emportera donc seulement les aliments 1 et 4. 458
Solutions des exercices du chapitre 4
4.2 1) Chaque caractère d’une séquence de longueur n peut être soit conservé soit supprimé pour former une sous-séquence. Il y a donc 2n sous-séquences possibles. Tester si deux séquences de longueur x sont identiques peut se faire avec un algorithme de complexité, dans le pire des cas, O(x). Ainsi un algorithme consistant à énumérer les 2n sous-séquences de A et les 2m sous-séquences Β et à les comparer deux à deux serait de com plexité O(min(m,n) . 2n + m ), prohibitive : ne pas énumérer dans le combinatoire ! 2) Si zk , la dernière lettre de la plus longue sous-séquence commune Z, n’était pas ai = bj, on pourrait ajouter zi après zk dans Z et on obtiendrait une sous-séquence commune Zai plus longue que Z, ce qui est contradictoire. Donc zk = ai = bj et z1 czk – 1 est une sousséquence commune à Ai – 1 et Bj – 1. Elle est de longueur maximale car s’il existait S une sous-séquence commune à Ai – 1 et Bj – 1 de longueur supérieure, la séquence Sai serait une sous-séquence commune à Ai et Bj de longueur supérieure à Ζ qui est de longueur maximale : contradiction. 3) zk, la dernière lettre de Z, ne peut pas être la dernière lettre de Ai et de Bj puisque ai 2 bj. Alors Z est une plus longue sous-séquence commune de Ai – 1 et Bj ou de Ai et Bj – 1. 4) Si i = 0 ou j = 0 l’une des séquences Ai ou Bj est la séquence vide qui est de longueur 0 ; il est donc évident que f (i, j) = 0. Lorsque ai = bj, nous avons vu en 2) que z1 czk–1 est une plus longue sous-séquence commune de Ai – 1 et Bj – 1. Comme f (i – 1, j – 1) est la longueur de z1 c zk – 1, il s’en suit que z1 czk – 1 zk est la plus longue sous-séquence commune à Ai et Bj ; elle est de longueur f (i, j) = f (i – 1, j – 1) + 1. Nous avons montré en 3) que lorsque ai 2 bj, la plus longue sous-séquence commune de Ai et Bj est une plus longue sous-séquence commune de Ai – 1 et Bj de longueur f (i – 1, j), ou de Ai et Bj – 1 de longueur f (i, j – 1). Il s’en suit donc que :
© Dunod – Toute reproduction non autorisée est un délit.
f (i, j ) = max (f (i – 1, j), f (i, j – 1)). 5) Si ai = bj, alors T(i, j ) = 1 + T(i – 1, j – 1). Si ai 2 bj, alors T(i, j ) = max (T(i – 1, j ), T(i, j – 1)). 6) L’algorithme suivant, de complexité O(mn), permet de calculer les valeurs T(i, j ) : Pour j ← 1 à n faire T(0, j ) ← 0 pour i ← 1 à m faire T(i, 0) ← 0 pour j ← 1 à n faire si ai = bj alors T(i, j ) ← 1 + T(i – 1, j – 1) sinon T(i, j ) ← max (T(i – 1, j ), T(i, j – 1))
459
Solutions
7) Nous obtenons le tableau suivant :
p
a
r
i
t
e
a1
a2
a3
a4
a5
a6
0
0
0
0
0
0
0
A B a
b1
0
0
1
1
1
1
1
r
b2
0
0
1
2
2
2
2
r
b3
0
0
1
2
2
2
2
e
b4
0
0
1
2
2
2
3
t
b5
0
0
1
2
2
3
3
La plus longue sous-séquence commune est donc de longueur 3. C’est : art, comme nous le montrons dans la question suivante. 8) En partant de l’élément T (n, m) du tableau, la détermination d’une sous-séquence com mune de longueur maximale se fait à rebours, depuis le dernier caractère jusqu’au premier, de la manière suivante ; si ai = bj alors on conserve la lettre ai et on se place dans la posi tion (case) T (i – 1, j – 1) ; si ai 2 bj, on se place dans la position du tableau T ( i – l, j) ou T (i, j – 1) de valeur maximale. Ainsi dans notre exemple en partant de T (6, 5) on suit la trajectoire suivante (cette trajectoire n’est pas unique) : on se positionne en T (5, 5) puisque a6 5 e 2 b5 5 t (on aurait aussi bien pu se positionner en T (6, 4) car Τ (5, 5) = T (6, 4) = 3), ensuite a5 = b5 et le caractère t est conservé et l’on se positionne en T (4, 4), puis en T (3, 4), puis en T (3, 3) où la lettre r est conservée ; ensuite on se positionne en T (2, 2) puis en T (2, 1), le caractère a est conservé et l’on arrive en T (0, 0) et l’algorithme s’arrête. La plus longue sous-séquence commune reconnue est donc : art. 4.3 Ce problème connu depuis l’Antiquité, jouit d’un certain regain d’actualité, car il est analogue à celui de l’étagement des fusées. Les anciens le traitaient par des méthodes arithmétiques, voire géométriques. Mais il peut constituer aussi une application de la programmation dynamique. 1) Nous remarquerons simplement que le nombre de voyages effectués par l’animal décroît de deux chaque fois que la charge disponible diminue de 100 kg. Cela peut per mettre de décomposer le problème en « phases », selon qu’après 2n + 1 voyages il reste n 3 100 , 1 n 2 1 2 3 100 , c , 100 kg de nourriture disponible. • Partant du point A où 500 kg de nourriture sont disponibles, on va chercher le point B où l’on peut apporter 400 kg : pour cela la bête parcourra (500 – 400)/0,5 = 200 km constitués de 4 allers-retours entre A et B, suivis d’un aller AB ; soit au total 9 fois la distance AB ; ainsi la distance de A à B vaut : 200/9 = 22,22 km.
• Partant de B, on va chercher le point C où on peut apporter 300 kg : pour cela la bête parcourra (400 – 300)/0,5 = 200 km constitués de 3 allers-retours entre B et C, suivis d’un aller BC ; soit au total 7 fois la distance BC ; ainsi la distance de B à C vaut : 200/7 = 28,56 km. • Puis pour constituer un stock de 200 kg en D, la bête fera 2 allers-retours ente C et D, suivis d’un aller CD ; ainsi CD = 200/5 = 40 km. 460
Solutions des exercices du chapitre 4
• Puis pour constituer un stock de 100 kg en E, la bête fera 1 aller-retour ente C et D, suivis d’un aller DE ; ainsi DE = 200/3 = 66,67 km. • Finalement de E, la bête ira en un seul voyage à F, parcourant ainsi EF = 200 km. Arrivée en F, elle aura consommé tout le stock initial de nourriture, soit 500 kg. • La distance totale entre A et F vaut 22,22 + 28,56 + 40 + 66,67 + 200 = 357,45 km. La distance maximale : 357,45 km , est illustrée par la figure ci-dessous: A
22,22 km
B
28,56 km
C
40 km
66,67 km
D
E
200 km
F
500 kg
400 kg
300 kg 200 kg 100 kg
0 kg distance
0
22,22
50,78
90,78
157,45
357,45
2) Une fois cette question résolue, celle de la deuxième question en découle, en effet, la route ABCDEF est optimale, qu’elle soit ou non tronquée avant son extrémité ; comme c’est la route « économique », elle continuera d’être empruntée par l’animal. À une distance de 90,78 km, il peut apporter au maximum 200 kg de nourriture, d’où 3 voyages de 100 – 90,78 = 9,21 km et une consommation de 13,81 kg. À une distance de 100 km, il apportera donc une réserve de 200 2 13, 81 5 186,19 kg au plus (point T).
© Dunod – Toute reproduction non autorisée est un délit.
kg A 500 400
B C
300
D
200
E
100 22,2
50,78
90,78 100
km
461
Solutions
4.4 Appliquons l’algorithme de Ford : Initialement, lA 5 0 , l B 5 l C 5 l D 5 l E 5 l F 5 1 ` puis examinons tour à tour les arcs permettant de faire décroître les l i : 1 A , D 2 : l A 5 0 , l D 5 6 , l B 5 l C 5 l E 5 l F 5 1` 1 A , B 2 : l A 5 0 , l B 5 3 , l C 5 1` , 1 B, E 2 : l A 5 0 , l B 5 3 , l C 5 1 ` , 1 D, F 2 : l A 5 0 , l B 5 3 , l C 5 1 ` , 1 A , C 2 : lA 5 0 , lB 5 3 , lC 5 8 , lD
( B, D) : l A 5 0 , l B 5 3 , l C 5 8 , ( D, F) : lA 5 0 , l B 5 3 , l C 5 8 , 1 D, C 2 : l A 5 0 , l B 5 3 , l C 5 3 , ( C, E) : l A 5 0 , l B 5 3 , l C 5 3 ,
l D 5 6 , l E 5 l F 5 1`
l D 5 6 , l E 5 9 , l F 5 1` l D 5 6 , l E 5 9 , l F 5 13
5 6 , l E 5 9 , l F 5 13
l D 5 1 , l E 5 9 , l F 5 13 lD 5 1 , lE 5 9 , lF 5 8
lD 5 1 , lE 5 9 , lF 5 8
lD 5 1 , lE 5 4 , lF 5 8 ( D, F) : l A 5 0 , l B 5 3 , l C 5 3 , l D 5 1 , l E 5 4 , l F 5 6 Aucun arc ne permet plus de faire décroître les l, (A, B, D, C, E, F) est alors un chemin minimal de A à F, son coût est l F 5 6 . C’est aussi un chemin hamiltonien. 4.5 1) Nous allons vérifier qu’il existe N, une numérotation topologique des sommets de G : N(x1) = 1, N(x2) = 2, N(x5) = 3, N(x3) = 4, N(x6) = 5, N(x8) = 6, N(x4) = 7, N(x7) = 8, N(x9) = 9, N(x10) = 10, est bien une telle numérotation (le numéro de l’origine de tout arc est inférieur au numéro de son extrémité). G est donc sans circuit. (Cf la fin du paragraphe 3. 2 du cours). 2) Initialement, l ( x 1 ) 5 0 , l ( x 2 ) 5 c5 l( x 10 ) 5 2 `. Examinons tout à tour les sommets suivant l’ordre topologique : x 1 : l ( x 1 ) 5 0, l ( x 2 ) 5 3, l ( x 3 ) 5 5, l ( x 4 ) 5 4, l ( x 5 ) 5 c5 l ( x 10 ) 5 2 ` x 2 : l 1 x 1 2 5 0, l 1 x 2 2 5 3, l 1 x 3 2 5 6, l 1 x 4 2 5 4, l 1 x 5 2 5 11, l 1 x 6 2 5 c5 l 1 x 10 2 5 2 ` x 5 : l ( x 1 ) 5 0, l ( x 2 ) 5 3, l ( x 3 ) 5 13, l ( x 4 ) 5 4, l ( x 5 ) 5 11, l ( x 6 ) 5 l ( x 7 ) 5 2 ` l ( x 8 ) 5 16, l ( x 9 ) 5 l ( x 10 ) 5 2 ` x 3 : l ( x 1 ) 5 0, l ( x 2 ) 5 3, l ( x 3 ) 5 13, l ( x 4 ) 5 15, l ( x 5 ) 5 11, l ( x 6 ) 5 20, l ( x 7 ) 5 16, l ( x 8 ) 5 16, l ( x 9 ) 5 l ( x 10 ) 5 2 ` x 6 : l ( x 1 ) 5 0, l ( x 2 ) 5 3, l ( x 3 ) 5 13, l ( x 4 ) 5 15, l ( x 5 ) 5 11, l ( x 6 ) 5 20, l ( x 7 ) 5 16, l ( x 8 ) 5 22, l ( x 9 ) 5 29, l ( x 10 ) 5 2 ` x 8 : l ( x 1 ) 5 0, l ( x 2 ) 5 3, l ( x 3 ) 5 13, l ( x 4 ) 5 15, l ( x 5 ) 5 11, l ( x 6 ) 5 20, l ( x 7 ) 5 16, l ( x 8 ) 5 22, l ( x 9 ) 5 29, l ( x 10 ) 5 23 x 4 : l ( x 1 ) 5 0, l ( x 2 ) 5 3, l ( x 3 ) 5 13, l ( x 4 ) 5 15, l ( x 5 ) 5 11, l ( x 6 ) 5 20, l ( x 7 ) 5 19, l ( x 8 ) 5 22, l ( x 9 ) 5 29, l ( x 10 ) 5 23 x 7 : l ( x 1 ) 5 0, l ( x 2 ) 5 3, l ( x 3 ) 5 13, l ( x 4 ) 5 15, l ( x 5 ) 5 11, l ( x 6 ) 5 20, l ( x 7 ) 5 19, l ( x 8 ) 5 22, l ( x 9 ) 5 29, l ( x 10 ) 5 23
462
Solutions des exercices du chapitre 4
x 9 : l ( x 1 ) 5 0, l ( x 2 ) 5 3, l ( x 3 ) 5 13, l ( x 4 ) 5 15, l ( x 5 ) 5 11, l ( x 6 ) 5 20, l ( x 7 ) 5 19, l ( x 8 ) 5 22, l ( x 9 ) 5 29, l ( x 10 ) 5 34 3 x2
8 2
3
x1
13
0
2 15
11
x6
7
x3 x4
x5
20 4
x7
22
x8
2
x10
9
34
x9 19
29
Ci-dessus : l’arborescence des chemins de valeur maximale de x1 vers les autres sommets. NB : Nous avons détaillé à l’extrême les calculs ; en pratique il vaut mieux les présenter en tableau. 4.6 1) Le problème du livreur consiste à trouver un plus court chemin de A à H. Chacune des arêtes du graphe d’origine est dédoublée en deux arcs d’orientations opposées qui sont valués par les durées de trajets entre les carrefours correspondants (sauf pour les arcs issus de A et ceux aboutissant en H). Le graphe obtenu est donc orienté et avec des valuations positives. 2) Appliquons l’algorithme : Initialement, l A 5 0 , l B 5 l C 5 l D 5 l E 5 l F 5 l G 5 l H 5 1 ` puis examinons tour à tour les sommets (l X est une valeur provisoire ; l x , définitive) : l A 5 0 , l B 5 2 , l C 5 1` , l D 5 5 , l E 5 7 , l F 5 l G 5 l H 5 1` l A 5 0 , l B 5 2 , l C 5 11 , l D 5 5 , l E 5 6 , l F 5 l G 5 l H 5 1 `
l A 5 0 , l B 5 2 , l C 5 11 , l D 5 5 , l E 5 6 , l F 5 9 , l G 5 l H 5 1 `
l A 5 0 , l B 5 2 , l C 5 10 , l D 5 5 , l E 5 6 , l F 5 9 , l G 5 10, l H 5 1 ` l A 5 0 , l B 5 2 , l C 5 10 , l D 5 5 , l E 5 6 , l F 5 9 , l G 5 10, l H 5 14
© Dunod – Toute reproduction non autorisée est un délit.
l A 5 0 , l B 5 2 , l C 5 10 , l D 5 5 , l E 5 6 , l F 5 9 , l G 5 10, l H 5 14
l A 5 0 , l B 5 2 , l C 5 10 , l D 5 5 , l E 5 6 , l F 5 9 , l G 5 10, l H 5 14 l A 5 0 , l B 5 2 , l C 5 10 , l D 5 5 , l E 5 6 , l F 5 9 , l G 5 10, l H 5 14 Ainsi en prenant le trajet A, B, E, F, H la livraison sera faite en 14 mn.
463
Solutions
k=0
k=1
k=3
k=2
k = 4 et 5
k=6
8
B = 2 9 9
4
4
2 4
3
8
7
6
5
G
4
10 = G 8
3
3 4
D
6
4
E
3
6
8
7
4
F
4
5
8
8
A
C
H 8
A = 0
10 = C 11
8
B
14 = H
9 = F
5 = D
4.7 Voici le résultat final : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
464
1
2
3
4
5
6
0
5 0
9
4
8 3
7 10 12 10 16 13 17 20 15 15 18 2 5 7 5 11 8 12 15 10 10 13
0
4 0 0
7
8
1 4 19 7 4 0 3 18 0 0 3 9
9 10 11 12 13 14 15 16
16 10 7 19 15 9 14 16 2 9 9 12 10 15 9 6 18 14 8 7 9 5 8 10 13 0 6 0 9 5 1 2 0 0 4 0 3 0 4
9 12 12 15 14 8 11 5 8 14 17 5 6 9 7 4 0 3 0
Solutions des exercices du chapitre 4
La première ligne de ce tableau, associée à x1, donne pour tout descendant xj de x1 ( j = 2, 3, ..., 16) la valeur minimale (coût) des chemins de x1 à xj. En particulier le chemin optimal de x1 à x16 a pour coût λ16 = 18 , c’est le chemin : (x1, x4, x7, x15, x16). 4.8 Pour tracer le graphe PERT, définissons d’abord les événements du programme.
Mais nous ne pouvons admettre des arcs différents de même origine et de même extrémité, d’où l’introduction des opérations fictives. La tâche fictive (5,6) ci-dessous n’est pas indispen sable ; elle a été introduite pour une meilleure lisibilité.
© Dunod – Toute reproduction non autorisée est un délit.
Les opérations critiques sont : a, b, d, g, h, ℓ. La durée totale est de 142 semaines. Les intervalles de flottement et marges sont portés sur la figure, ainsi que les dates demandées. Le tableau utilisé dans la méthode des potentiels se présente de la façon suivante :
0
a
32
0
D:0
0
48
g
80
h
44
e :3
80 h : 20 44
e :3
142 Fin 80 h : 20 80 h : 20 100 i : 8
44 d : 4 44
f :6
80 j : 13 44
f :6
80 j : 13 80 j : 13 100 k : 38
48 g : 32
100 : 42
44 c : 3
b
44
c
44
d
44
e
44
f
a : 32 32 b : 12 32 b : 12 32 b : 12 32 b : 12
48 g : 32
100
i
80
j
100
k
100
On retrouve bien le chemin critique : (D, a, b, d, g, h, f, Fin) de durée 142 semaines. Le diagramme de GANTT ci-dessous permettrait de réaliser l’étalement du personnel :
465
Solutions
4.9 On remarque que la tâche B intervient plusieurs fois en préalable à d’autres tâches (ici 3 fois ; avec D, E et F ), mais chaque fois en compagnie de tâches différentes : ainsi
B, avec A, précède D ; B seule précède E ; B, avec C, précède F.
Pour éviter toute erreur, il faut alors ne pas fusionner l’événement « fin de B » avec l’événe ment « fin de A » et l’événement « fin C » ; si on le faisait, alors on introduirait une contrainte étrangère au problème ; « E est précédée par B, mais aussi par A et C » ce qui est faux. Puis de la fin de B, on a fait partir des tâches fictives φ : une vers la fin de A, l’autre vers la fin de C. De même pour E qui, avec D et F, précède G et I, mais qui, avec la première moitié de C, précède H ; on a donc laissé « libre » la fin de E (i.e. on n’a fusionné cet événement ni avec la fin de D et F ni avec la fin de la première moitié de C). Puis de la fin de E, on a fait partir deux tâches fictives : une vers la fin de D et de F. Remarquons que, au contraire, puisque D et F interviennent toujours ensemble en préa lable à d’autres tâches (ici G et I), on n’introduit pas d’erreur en fusionnant les deux événe ments « fin de D » et « fin de F ». D’autre part la tâche C a dû être découpée en 2 tâches C1 et C2, chacune de durée 10 : C1 désigne la première moitié de C et C2, la seconde. Enfin deux tâches différentes (comme ici G et I) ne peuvent pas être représentées par deux arcs ayant le même sommet initial et le même sommet terminal (si on le faisait, elles devien draient confondues, indistinguables). Il convient alors de laisser libre soit le début de G soit la fin de G, ou encore le début de I ou la fin de I. On a choisi ici arbitrairement, la fin de G. Chaque sommet du graphe PERT a été représenté par un disque comportant trois champs (parties) : en haut, on trouve le numéro de l’événement, en bas à gauche sa date au plus tôt et en bas à droite sa date au plus tard (qui, sur le chemin critique, égale la date au plus tôt). Enfin de même qu’il y a un sommet « début du projet », il faut créer un sommet unique « fin du pro jet », qui est précédé par les tâches terminales : celles qui ne sont préalables à aucune autre. 2 5 24
φ 1 0 0
3
8 21 40
A 16
φ
5 3 14 23
B 14
φ
φ
0
7 32 46
E 18 0
4
3 3
C1 10
5 13 13
10 63 63
15
0
10
I
0
φ C2 10
6 23 23
φ
0
φ 12 63 63
F 25
0
466
G
� 48 48
D 8
φ
H 11 32 46
17
Solutions des exercices du chapitre 4
Le chemin critique est (1, 4, 5, 6, 9, 10, 12) ; les tâches C1 et C2 (c’est-à-dire C), F et G sont critiques. Le projet dure au minimum 63 jours. 4.10 Voici le graphe PERT, avec le chemin critique ;
puis, moyennant la liste des tâches antérieures : a , d ; b, d , e, f, g ; f, j , m ; c, e , h, i ; g, h , j, k ; i, k , ,, le tableau des potentiels (avant modifications) :
0
a
0
b
0
c
2
d
9
e
9
f
9
g
0
D:0
0
D:0
0
D:0
0
a :2
0
b:5
0
b:5
0
b:5
2
d :7
2
d:7
2
d:7
m
28
F
12
h
12
i
20
j
20
k
22
26
0
c:3 e :3
0
c:3
9
g:4
9
g:4
12
i :7
9
e :3
12
h : 8 12 h : 8 20 k : 2
9 20
9
f : 5 22 : 5 j : 6 26 m : 2
© Dunod – Toute reproduction non autorisée est un délit.
Les modifications sont immédiates dans le tableau des potentiels :
0
a
3
b
1
c
2
d
9
e
9
f
9
g
0
D:0
0
D:0
0
D:1
0
a :2
3
b:5
3
b:5
3
b:5
1
c:2
2
d :7
2
d :7
2
d :7
23
25
m
28
F
11
h
12
i
19
j
21
k
9
e:2
1
c:3
9
g:4
9
g:4
1
c:3
9
e:3
11
h : 8 11 19
21 k : 2 19
j:6
25 m : 2
i :7
f :7
23 : 5
h : 8 12
9
j:2
467
Solutions
Elles sont aussi évidentes dans le graphe relatif à cette méthode (en pratique, on n’a pas besoin de tracer de graphe et on utilise le tableau).
On voit qu’avec la méthode de MPM il suffit de modifier trois chiffres et d’ajouter deux arcs. … La modification du graphe événements-opérations PERT n’est pas aussi aisée : elle néces site l’adjonction de six nouveaux événements et porte le nombre d’arcs à vingt (au lieu de treize) ; plusieurs des anciens arcs ont dû être effacés :
En conclusion la méthode des potentiels est supérieure à la méthode PERT : le calcul de l’ordonnancement y est plus aisé, de même que la prise en compte de modifications (qui, en pratique, surviennent toujours lors de l’exécution de tout projet !).
468
Solutions des exercices du chapitre 4
4.11 Traçons le réseau de transport, puis éta blissons d’abord un flot complet, c’est-à-dire pour lequel tout chemin allant de la source O au puits S, comporte au moins un arc saturé : Procédons ensuite au marquage qui, dans le cas de figure ci-dessus, aboutit à marquer le puits S du réseau. On sait que, dans ces condi tions, on n’a pas obtenu le flot maximal. On voit que la chaîne OCHAEBFS ci-dessous, extraite du graphe, se prête à des modifications. En respectant la loi de Kirchhoff, on pourra augmenter le flot total de 5 unités (le transport de certains arcs est augmenté de 5, celui des arcs dirigés dans le sens inverse du parcours OS de la chaîne est diminué de 5).
Chaîne améliorante
La figure en bas de cette page tient compte des modifications effectuées sur la chaîne ; la pro cédure de marquage n’aboutit plus à S. On a donc une solution optimale (une autre solution optimale évidente sature toutes les destinations sauf E), de valeur 90. On remarquera que la coupe (Γ), dont font partie tous les sommets non marqués, reçoit bien un flot optimal : tous les arcs allant de sommets marqués vers des sommets non marqués sont saturés ; le seul arc allant d’un sommet non marqué à un sommet marqué transporte un flot nul : c’est (B, H ). © Dunod – Toute reproduction non autorisée est un délit.
10
+A
D
-G
A
30 15 20 B O 5 40 0 5 20 5
+O
C
Γ
0 5
5 10
10
D
10 E
F G
+C
25 15
S
25
E
C
F
H 15
Sommet non marqués
A
O
FLOT H OPTIMAL +A
Sommet marqués
0
+
S
B
G COUPE MINIMALE ( Γ)
NB : ci-dessus, les arcs en traits épais sont des arcs saturés. 469
Solutions
4.12 Voici le tracé du graphe : x3
x1 [3]
[5] 2
[1]
[2]
x3
2 [3]
3
x5
1
x2
[12] 9
x5
x4
2
3
[5]
x2
Flot initial
(de valeur 9)
x1 [4], 4
1) Ce graphe est bien un « réseau de transport » : il est fini, sans boucle, comporte un sommet-source (x3) et un sommet-puits (x4) et tout arc est valué par un entier positif (nommé : « capacité »). 2) Les flux proposés forment bien un flot : tout flux sur un arc est supérieur ou égal à zéro et inférieur ou égal à sa capacité : en tout sommet autre que la source et le puits, on vérifie la loi de Kirchhoff : la somme des flux entrant sur le sommet égale celle des flux sortant ; ainsi en x1 il entre 2 + 2 = 4 et repart 1 + 3 = 4, etc. Le flot proposé est complet: tout chemin de la source au puits comporte au moins un arc saturé (il n’est donc pas trivialement améliorable). Appliquons la procédure de marquage de Ford-Fulkerson : on l’initialise en marquant la source x3 du signe + ; puis x1 est marqué +x3, car l’arc (x3, x1) n’est pas saturé ; puis x2 est mar qué –x1 car l’arc (x2, x1) est de flux non nul ; puis x5 est marqué +x2 car l’arc (x2, x5) n’est pas saturé ; enfin x4 est marqué +x5. Puisque le puits est marqué, le flot proposé n’est pas optimal. Voici la chaîne améliorante μ (qu’on trouve en remontant le marquage, depuis le puits). +x3
x1
2 +
x3
+x2
x5
[5] 2
+x5
x4
2 [5]
x2
470
9 [12]
x1
chaîne améliorante µ
Solutions des exercices du chapitre 4
Les arcs « directs » de μ sont ceux qu’on rencontre dans le sens de leur orientation lors qu’on parcourt la chaîne de la source jusqu’au puits ; ce sont : (x3, x1), (x2, x5), (x5, x4) (ces arcs ont donné lieu à un marquage +). Ici il y a un seul arc « indirect » : (x2, x1) (qui a donné lieu à un marquage 2). Les capacités résiduelles des arcs directs sont : 522, 522, 1229 : la plus petite capacité résiduelle est donc δ+ = 3 ; le flux de l’arc indirect (x2, x1) est : 2, donc δ2 = 2. Le flot peut être amélioré de δ = min (δ+, δ2): sur tout arc direct, le flux est augmenté de δ, soit ici de 2 unités ; sur tout arc indirect, le flux est diminué de δ (22 unités sur (x2, x1)). Le flot amélioré, de valeur 9 + δ = 11 , est le suivant : + x3 [5]
+
[3]
4
3
+ x2 [2]
x3
[1]
0 [3]
coupe minimale
x1
x5
1
[12] 11
x4
4
3
[5]
x2 [4] 4
Appliquons lui la procédure de marquage : on marque la source x3 puis x1 : aucun autre sommet ne peut être marqué (x2 ne peut pas être marqué –x1, car le flux sur l’arc (x2, x1) est désormais nul). Le puits n’étant pas marqué ce flot est optimal ; il a pour valeur v * 5 11. La coupe minimale est constituée des arcs dont l’extrémité initiale est marquée : x1 ou x3, et l’extrémité terminale est non marquée ; elle constitue le goulet d’étranglement du réseau de transport ; voici la raison intuitive de l’optimalité du flot final : tous les arcs qui traversent la coupe dans le sens direct (de la source vers le puits) sont saturés ; ceux dans le sens indirect sont de flux nul (ici, un seul (x2, x1)).
© Dunod – Toute reproduction non autorisée est un délit.
* 4.13 Soustrayons des éléments de chaque ligne le plus petit élément de celle-ci : on obtient le tableau 1 ; puis opérons de même pour les colonnes b et e ne contenant pas encore de zéro; il vient le tableau 2.
a
b
c
d
e
f
0
80
17
4
29
42
B 16
11
66
77
10
C 15
41
60
0
D 52
8
0
E
0
26
F
0
19
A
a
b
c
d
e
A
0
72
17
4
19
f 42
0
B
16
3
66
77
0
0
71
68
C
15
33
60
0
61
68
12
10
57
D
52
0
0
12
0
57
63
29
58
55
E
0
18
63
29
48
55
56
11
58 55 ↑10
F
0
11
56
11
48
55
↑8 Tableau 1
Tableau 2
471
Solutions
Essayons alors d’affecter le maximum de zéros. On obtient le tableau 2. Avant de continuer à appliquer l’algo rithme hongrois, il faut vérifier que l’on a bien obtenu un couplage maximal. À cet effet, on peut établir un réseau de transport, dont la capacité de tout arc est 1. On constate que la procédure de marquage échoue ; on a donc un flot maximal et, partant, un cou plage maximal. Dans ces conditions, on applique à la matrice précédente l’algorithme hongrois. On marque les lignes Ε et F, ce qui conduit à marquer ensuite la colonne a, puis la ligne A.
a
b
c
d
e
A
0
72
17
4
19
f 42 �
B
16
3
66
77
0
0
C
15
33
60
0
61
68
D
52
0
0
12
0
57
E
0
18
63
29
48
F
0
11 56
11
48
55 � 55 �
Graphe associé au tableau 2 sur les arcs gras le flux vaut 1 (0 sur les maigres)
� Tableau 2 bis
On raye alors les lignes non marquées B, C, D et la colonne marquée a (tab. 2 bis). Le plus petit élément du tableau restant est 4 ; on l’enlève à tous les éléments de ce tableau res tant et on l’ajoute aux éléments rayés deux fois (Tab. 3). On fait ainsi apparaître un nouveau zéro (ligne A, colonne d ) mais l’affectation reste la même ; il est facile de vérifier que le cou plage est encore maximal ; le sommet d de la deuxième colonne du réseau de transport peut être marqué +A, le sommet c de la première colonne, –D, mais le marquage s’arrête là :
�0 E
a
b
c
d
e
A
0
68
13
0
15
B
20
3
66
77
0
C
19
33
60
0
61
D
56
0
0
12
0
f 38 0 68 � 0 57
E
0
14
59
25
44
51
F �a A �d C
7
52
7
44
51
B
F
0
Tableau 3
D
�E (ou � F) a d �A f e b c
Graphe associé au tableau 3
472
S
Solutions des exercices du chapitre 4
L’algorithme hongrois permet de marquer les lignes Ε et F, puis la colonne a, ensuite la ligne A, puis la colonne d et enfin, la ligne C (cf. Tab. 3). Après avoir rayé les lignes non marquées Β et D, ainsi que les colonnes marquées a et d, le plus petit élément du tableau res tant est 7 ; on le soustrait des éléments non rayés et on l’ajoute aux éléments rayés 2 fois (Tab. 4). L’affectation, telle qu’elle est réalisée sur le tableau 4 constitue un couplage maximal, comme on le vérifie sur le graphe associé ou tableau 4 :
a
b
c
d
e
A
0
61
6
0
8
B
27
3
66
94
0
f 31 0
C
19
26
53
0
54
61
D
63
0
0
19
0
57
E
0
7
52
25
37
44
F
0
0
45
7
37
44
�0 E
�E a d �A
F �a A �d C
� 0
f e
B
Tableau 4
S
b
D
c
Le couplage ne portant que sur cinq lettres, on applique donc, une nouvelle fois, Graphe associé au tableau 4 l’algorithme hongrois. L’élément non rayé plus petit est maintenant 6. On obtient sans difficulté le tableau 5 ci-dessous : Ce tableau permet d’obtenir une affectation d’un zéro par ligne et par colonne. Elle donne donc la solution optimale qui, ici, est unique. L’affectation optimale est : A S c ; B S f ; C S d ; D S e ; E S a ; F S b En revenant à la matrice de l’énoncé, on voit qu’elle a pour valeur : V * 5 27 1 13 1 02 1 16 1 15 1 44 5 117.
© Dunod – Toute reproduction non autorisée est un délit.
Remarque 1. En affectant par ordre croissant des coûts (« méthode gourmande »), on obtiendrait une solution de coût : V = 172. En employant une méthode de regret une solution de coût : V = 154 ; On constate la supériorité de l’algorithme hongrois, le coût de la solution optimal n’étant que : V * 5 117.
Remarque 2.
a
b
c
d
e
A
0
55
0
0
2
f 25
B
33
3
66 100
0
0
C
19
20
47
0
48
55
D
69
0
0
19
0
57
E
0
1
46
25
31
38
F
6
0
45
13
37
44
Montrons sur un exemple 4 × 4 la nécessité Tableau 5 de vérifier, avant application de l’algorithme hongrois, que l’on a un couplage maximal. La matrice ci-dessous contient deux zéros par ligne, sauf sur la ligne C où elle en pos sède 3, et au moins un zéro par colonne. 473
Solutions
a
A B C D
b
d
c
On peut donc affecter le zéro (A, a) marqué ①, ce qui entraîne la suppression de quatre zéros. Il reste alors un seul zéro dans les lignes Β et D. 0 0 0 On peut alors affecter le zéro (B, c) marqué ②, ce qui entraîne 0 0 0 la suppression d’un autre zéro. Il ne reste plus alors qu’un 0 zéro sur chacune des lignes C et D. On peut donc affecter le 0 0 zéro (C, d) marqué ③, ce qui entraîne la suppression du der nier zéro figurant encore dans la matrice. Si l’on applique alors le marquage hongrois, on voit que l’on peut marquer toutes les lignes et toutes les colonnes... alors que le problème n’est pas résolu. C’est que l’on a affaire à un couplage non maximal, ainsi que le prouve le fait que, sur le réseau de transport associé à ce tableau, on peut marquer S :
O
A -a
a +D
B
b
C
+A
couplage amélioré : +b S
c
+O
D
d
L’amélioration du couplage, par la chaîne ODaAbS donne l’une des trois solutions opti males équivalentes : A S b ; B S c ; C S d ; D S a . Les 2 autres solutions optimales sont : 3 A b ; Ba ; Cc ; Dd 4 et 3 Ab ; Bc ; Ca ; Dd 4 .
4.14 1) Il s’agit d’un problème de transport classique. On prend comme unité la centaine de tonnes. On rappelle que, si ; x 11 , x 12, c, x 16 , x 21 , x 22 , c, x 26 , c, x 41, x 42 , c, x 46
sont les quantités à transporter des origines 1, 2, c, 4 aux destinations 1, 2, 3, c, 6 on a : x 11 1 x 12 1 c 1 x 16 5 5 x 21 1 x 22 1 c 1 x 26 5 6 cccccccccc 4 équations en ligne : x 41 1 x 42 1 c 1 x 46 5 9
6 équations en colonne :
et l’on doit minimiser :
x 11 1 x 21 1 x 31 1 x 41 5 4
x 12 1 x 22 1 x 32 1 x 42 5 3 cccccccccc x 16 1 x 26 1 x 36 1 x 46 5 2
F 5 9x 11 1 12x 12 1 9x 13 1 c1 7x 21 1 c1 6x 31 1 c1 6x 41 1 c1 10x 46. La théorie des équations linéaires nous apprend que le système de solutions comportera au moins 24 2 ( 4 1 6 2 1 ) 5 15 valeurs nulles. 474
Solutions des exercices du chapitre 4
Si nous employons la méthode de Balas-Hammer, nous tombons sur la solution de base indiquée par le tableau 1.
1
2
3
4
5
6
∆l
9
12
9
6
9
10
3
3
0
7
3
7
7
5
5
2
2
2
6
5
9
11
11
2
2
6
8
11
2
3 2
0
0
∆c 0
2
2
4
1
10 5I
2 4 III
0
2
2
4
0 0
2
2 2
-
1 2 3 4
i\j
-
1
-
1
2
1
4
3
6
5
3IV
3 1VI 4 3V bj 4
0
0
0
1
3
3
2
5
V
VI
-
2I
1VII
6 2
1IX 3
ai 5
5VIII
2
0
-
1
II
0 4 IV
2II 2
7
9
4III 4
2
Coût total : 116 Tableau 1
Le détail du calcul des δij est traité dans l’exercice suivant 4.16 On obtient ici : δ11 = 3 ; δ12 = 7 ; δ14 = 4 ; δ15 = 7 ; δ16 = 3 ; δ21 = 3 ; δ24 = 7 ; δ25 = 5 ; δ32 = 0 ; δ34 = 9 ; δ35 = 1 ; δ36 = 4 ; δ42 = 3 ; δ43 = 2 ; δ46 = 3. La solution obtenue est optimale car tous les δij sont positifs ou nuls, mais elle n’est pas unique, car δ32 = 0 permet d’en obtenir une seconde solution de base (tableau 2) de même coût : 116.
© Dunod – Toute reproduction non autorisée est un délit.
1
2
3
4
5
6
5
I 2
II III
1
IV
3 4
2
2
2
1 3
5 6
7
2
4
2
4
9 2
Tableau 2
4.15 On vérifie que ; offre = demande = 3 549 1) a) La règle du coin nord-ouest donne la solution de base ci-dessous ; il s’agit bien d’une solution de base, puisqu’elle comporte exactement : 475
Solutions
mn – (n + m – 1) = 5 × 4 – (5 + 4 – 1) = 12 xij nuls (cases non affectées). Cette solution sera désignée par la dénomination : tableau 1. Le calcul des coûts marginaux des substitutions unitaires possibles à partir de cette solution de base, fournit (voir l’arbre 1) les résultats suivants (nous nous bor nons à indiquer les δij négatifs) :
1
1
2
800
96
2
343
liaison liaison liaison liaison liaison
5 896
50
389
782
3
401 542 943
4
928 928 800 439
50
Nombre d’unités déplaçables (ν) (2, 1) 343 (3, 1) 343 (3, 2) 343 (3, 3) 50 (4, 1) 343
On peut supposer qu’il est indiqué d’effectuer d’abord la substitution dont l’influence sur le coût total est la plus forte : (3, 1) – cf tableau 2 – et l’on peut constater immédiatement que la substitution (3, 3) peut être exé cutée aussitôt après – cf tableau 3. Le tableau 3 (arbre 2) présente deux substitutions utiles : δ14 = 0 + 49 – 90 = – 41 et δ15 = 0 + 13 – 103 = –90
790 1 470
Coût total : 181 721 Tableau 1
Rappel : δij = Cij – (vj – ui) δ21 = 51 + 27 – 113 = –35 δ31 = 0 + 11 – 113 = –102 δ32 = 0 + 47 – 103 = –56 δ33 = 0 + 14 – 94 = –80 δ41 = 39 + 52 – 113 = –22
Pour le calcul des potentiels des sommets de l’arbre associé à la solution de base (Tab. 1), on a a = 0, puis calculé les autres posé 3 potentiels de proche en proche : vj – ui = cij pour tout arc de l’arbre.
Arbre 1
4
3
Influence sur le coût total (ρ) – 12 005 – 34 986 – 19 208 – 4 000 – 7 546
1
2
3
4
5
1 457 439 2
50 732 58 542
3 343
928
4 Tableau 2
ν ρ (1, 4) 8 –328 (1, 5) 457 – 41 130
4
1 2 3 1 457 439 2 3 343
782 50 8 542
4 Arbre 2
476
5
928 Tableau 3
Solutions des exercices du chapitre 4
On tombe sur le tableau 4 après avoir effectué la seconde de ces substitutions. Il ne comporte (arbre 3) qu’une substitution intéressante: δ12 = 0 + 47 – 91 = – 44, avec ν = 85 et ρ = –3 740
1 1
4
2 3 439
2
5 457
782
3 800
50 8
4
85 928
Tableau 4 Arbre 3
Après avoir effectué cette substitution, on obtient le tableau 5, dans lequel apparaît (arbre 4) une seule relation de coût marginal négatif : δ44 = 0 + 77 – 85 = –11, avec ν = 8 et ρ = – 88
1 1
4
2 3 354
2
5 542
1
782
3 800 85 50 8 4
1
+46
2
+46
2 3 346 +106 +45
+17
3 800 93 50 928
4
Tableau 5
+36
+42
+57
4 +16
5 550
782
+33
+11
+44
8 920
Tableau 6 (coût : 97 777)
Arbre 4
© Dunod – Toute reproduction non autorisée est un délit.
On obtient finalement le tableau 6, pour lequel on vérifie que les coûts marginaux δij donnés en petits chiffres sont tous strictement positifs ; il s’agit donc de l’unique solution optimale. b) La règle de la différence maximale donne évidemment une solution de base initiale bien meilleure que la règle du coin nord-ouest.
1
2
3
4
5
1
21
11
84
49
13
896
2
8
2
27
52
43
29
42
782
2
2
36 13
3
11
47
14
80
93
943
3
3
69 III 13
4
52
94
76
74
54
928
2
2
�max
800
439
50
790
1470
10
36
29
20
29
I
II
45 6
V
2
IV
VII et VIII
20
II
12 39
VI
477
Solutions
On obtient ainsi le tableau 7, dont le coût total est seulement 101 605, c’est-à-dire à moins de 4 % de l’optimum : On calcule δ32 = c32 – c12 + c15 – c35 = –44 1 2 3 4 5 La substitution porte sur v = 85 unités :
439 � I
1 2 3 4
800 V
457 � II
1
1
3
2
4
354�
5
542�
2 782 III 3 800 85� 50 8� � 50 85 � 8 928 IV VII VIII 4 � � 928 Pour cette solution δ44 = –11. Le cycle de est donné ci-dessus. Cette substi VI substitution tution, avec v = 8, fournit le tab. 6 : l’optimum.
Tableau 7 En conclusion : la méthode de la différence maximale (Bales-Hammer) est bien supérieure à la méthode du coin Nord-Ouest (et aux méthodes «gourmandes» décrites en 4.9). Lorsqu’elle ne fournit pas l’optimum, elle donne une solution qui en est proche.
*4.16 1) Pour appliquer l’algorithme de Prim, choisis sons arbitrairement le sommet A comme sommet initial. L’arête [A, B] est celle de poids le moins élevé issue de A, elle est donc retenue dans la solution. L’arête [H, B] est retenue dans la solution car elle est de poids minimal parmi celles ayant une et une seule extrémité dans {A, B}. Ensuite [F, B] est sélectionnée, puis [F, E], [I, E], [I, D], [E, G] et finalement [C, G]. La figure ci-contre représente l’arbre optimal de poids 22 obtenu. Il n’est pas unique. 2) Passons à l’algorithme de Kruskal. À cet effet, établissons la liste des arêtes par ordre de valeurs croissantes : (pour simplifier : [X,Y] est noté XY) BH CG DI DE AE
: : : : :
1 3 5 6 8
: : : : :
EI EG EF FI EH
: : : : :
1 3 5 7 9
: : : : :
BF AH CD BG CF
: : : : :
2 4 5 7 9
: : : : :
AB FH DG CI FG
: : : : :
2 4 6 8 10
On prend successivement, dans l’ordre ci-dessus, les arêtes qui ne forment pas de cycle avec les précédentes : BH, EI, BF, AB, CG, EG, puis on élimine AH et FH, qui forment des cycles avec les précédentes ; enfin, on retient DI et EF. On retrouve la même solution que ci-dessus, mais on peut aussi remplacer DI par CD, de même valeur : il existe plusieurs arbres optimaux. *4.17 Appliquons l’algorithme de Prim. Choisissons le sommet A comme sommet initial. L’arête [A, E] est celle de poids le plus élevé issue de A, elle est donc retenue dans la solution. L’arête [H, E] est retenue dans la solution car elle est de poids maximal parmi celles ayant une et une seule extrémité dans {A, E}. Ensuite [E, D] est sélectionnée, puis [G, D], [G, F], [F, C], [C, I] et finalement [B, G]. Nous obtenons ainsi un arbre optimal, de poids 63. 478
Solutions des exercices du chapitre 4
4.18 Il s’agit du problème du voyageur de commerce (en anglais : travelling salesman problem, « TSP ») qu’on résout par l’algorithme de LITTLE et al. (historiquement une des premières méthodes de recherche arborescente, nommée « Branch and Bound »). Plus bas on écrit : « C.H. » pour circuit hamiltonien.
• Initialisation Partant du tableau initial des coûts, on commence par faire apparaître un « zéro » (coût réduit nul) dans chaque ligne en retranchant à chaque ligne son plus petit élément ; puis un « zéro » dans chaque colonne en retranchant, à chaque colonne du tableau obtenu, son plus petit élément. On dit alors que le tableau des coûts est « réduit ». Ainsi on retranche 1 à tous les éléments de la ligne D, puis 1 à tous ceux de la colonne B. Le coût de tout C.H. est au moins égal à la somme des éléments retranchés, soit 2 : la borne b0 associée à la racine s0 de l’arborescence est b0 = 2. On obtient le tableau « réduit » suivant :
© Dunod – Toute reproduction non autorisée est un délit.
Tableau initial après réduction
Tab. 0
Arb. 1
• 1ère itération Puis on calcule le regret de chaque « zéro » (cf Tab. 0) et l’on considère l’arc de coût réduit nul dont le regret est maximal, c’est ici (B,A) ; son regret vaut : c 0BD 1 c 0EA 5 3 1 0 5 3 On va alors séparer l’ensemble s0 de tous les C.H. en deux sous-ensembles s1 et s2. Ceux qui n’empruntent pas l’arc (B,A) forment le sous-ensemble s1 ; la borne inférieure de leur coût b1 , est égale à la borne inférieure précédente b0 = 2, augmentée du regret de (B,A) : 3, soit b1 = 5. Les C.H. qui empruntent l’arc (B,A) forment le sousensemble s2. Les implications du choix de (B,A) sont de supprimer la ligne B et la colonne A et d’interdire l’arc parasite (A,B) (on pose donc c 2AB 5 `, cf Tab. 2) et de faire apparaître (au moins) un zéro par ligne et par colonne si le tableau restant n’est pas réduit ; mais, ici, on constate qu’il est réduit). Par suite b2 = b0 = 2 : l’arborescence Arb. 1 illustre cette séparation. • 2ème itération On va séparer s2 car il a la plus faible borne parmi les sommets pendants ; son tableau de coûts réduits
Tab. 2
479
Solutions
est donné ci-dessous (Tab. 2) ; on y a indiqué aussi le regret de chaque « zéro », le regret maximal est 2, relatif à l’arc (A,C). On sépare donc s2 en deux sous-ensembles s3 et s4. s3 est l’ensemble des C.H. passant par (B,A) mais évitant (A, C), de borne b3 = b2 + rA2 C p 4A C = 2 + 2 = 4 ; s4 est l’ensemble des C.H. passant par (B,A) et (A,C). On supprime alors dans le tableau de s2 (Tab. 2) la ligne A, la colonne C et on interdit l’arc parasite (C,B) qui formerait avec les deux arcs déjà retenus, un circuit de longueur 3 : pas un C.H. (on pose donc c 4CB : 5 `) ce qui donne le nouveau tableau (Tab.4). L’arborescence Arb. 2 illustre cette nouvelle séparation :
Tab. 6 Tab. 4
Tab. 69
Arb. 2
Le tableau restant (Tab. 4) étant réduit, on a b4 = b2 =2.
• 3ème itération On va séparer le sommet qui a la plus faible borne parmi les sommets pendants, soit s4. L’arc (D,E) a le plus fort regret (il vaut 5) : on va séparer s4 en s5 et s6 ; b5 = b4 + r 4DE = 2 + 5 = 7. Le tableau associé à s6 (Tab. 6) est obtenu en supprimant la ligne D et la colonne E et en interdisant l’arc parasite (E,D) ; mais, cette fois, le tableau restant (Tab. 5) n’est pas réduit (il ne comporte pas un « zéro » dans chaque ligne et chaque colonne) : il faut retrancher 4 aux éléments de sa ligne C (pour le réduire) ; par suite : b6 = b4 + 4 = 6 : cf Tab. 6′. Remarquons qu’on n’a alors plus le choix ; les arcs (C,D) et (E,B) doivent être pris ; avec ceux précédemment pris ils forment le C.H. (B,A,C,D,E,B), de coût 6. Mais il n’est pas nécessairement optimal. • 4ème itération Cette fois le sommet pendant de plus faible borne (s3) n’est pas le fils (s6) du sommet qu’on vient de séparer (s4) d’où un SAUT vers le sommet s3 (dans le nom anglais “Branch and Bound”, Bound a les deux sens : borne et bond/saut). Le tableau relatif à s3 s’obtient à partir de celui de s2, simplement en posant c 3A , C 5 `, puis en le réduisant : on retranche 1 en ligne A et 1 en colonne C ; la somme des éléments retranchés (1+1) est précisément le regret de l’arc (A,C), qui a déjà été pris en compte pour évaluer la borne de s3 (= b2 + r 3AC) qui vaut bien 2. Il serait donc faux de l’ajouter à nouveau à b3.
480
Tab. 3
Solutions des exercices du chapitre 4
Tab. 8 Arb. 3
• 5ème itération On sépare s3, qui est le sommet pendant de plus faible borne, à l’aide de l’arc (A,D), qui a le plus fort regret parmi les « zéros » (r 3AD 5 1, cf Tab. 3), en s7 (refus de (A,D)), avec (b7 = b3 + r 3AD 5 4 1 1 5 5) , et en s8 (on accepte (A,D)) ; après suppression de la ligne A et de la colonne D et l’interdiction de l’arc parasite (D,B) obtenue en faisant c 8DB 5 1 `, on obtient le tableau Tab. 8, qui se trouve être « réduit » ; par suite b8 = b3 = 4.
© Dunod – Toute reproduction non autorisée est un délit.
• 6ème itération On sépare le sommet pendant de plus faible borne : s8, à l’aide de (D,C) de regret 1, en s9 3 5 4 + 1 = 5) et en s10 (après suppression de la ligne D et (refus de (D,C), avec b9 = b8 + rDC de la colonne C dans le tableau Tab. 8, et de l’arc parasite (C,B) obtenu en posant c10 CB 5 1 `, on obtient le tableau 10 qui se trouve être réduit ; par suite b10 = b8 = 4). On constate alors le choix forcé de (C,E) et (E,B) ; on obtient le C.H. (B,A,D,C,E,B) de coût 4 : il est optimal car tous les sommets de l’arborescence ont une borne supérieure à 4. On arrête-là la recherche arborescente.
Tab. 10
Le C. H. optimal est : (B, A, D, C, E, B) de coût 4. L’optimum est unique ; tout autre C.H. a un coût au moins égal à 5.
Arb. 4
481
Solutions
Solutions des exercices du chapitre 5
5.1 1) État Ek : depuis le dernier bit transmis correctement, k bits faux ont été transmis.
Réinitialisation : arc (N, 1) ; si cet arc n’existait pas (pN = 1), on aurait affaire à un graphe d’un problème de renouvellement. 2) a) 0 1 2 3
0 0, 95 0, 05
0
0
M 1 0, 20
0
0, 80
0
2 0, 15
0
0
0, 85
0
0
3 0, 10 0, 90
b) P(0) = [l ; 0 ; 0 ; 0] , P(1) = [0,95 ; 0,05 ; 0 ; 0] = P(0) # M P(2) = [0,91 ; 0,05 ; 0,04 ; 0] = P(1) # M La probabilité cherchée est p 2(2) = 0,04. (En fait, c’est q0 # q1 : on pouvait ainsi l’obtenir plus rapidement.) 3) a) Cette chaîne de Markov est régulière. En effet, son graphe est fini fortement connexe (il comporte un circuit hamiltonien (0, 1, 2, 3, 0)) : la chaîne comporte une seule classe d’états, donc récurrents ; de plus cette classe est apériodique car le graphe comporte une boucle en E0. D’où : P* 5 P* # M, soit en posant P* 5 3 a, b, c, d 4 : 0,95a + 0,2b + 0,15c + 0,1d 0,05a + 0,9d 0,8b 0,85c a + b + c + d d’où c = 0,8b, puis d = 0,68b ; en reportant dans (2) :
= = = = =
a b c d 1
0,05a = b(1 – 0,612) = 0,388 d’où a = 7,76b.
482
(1) (2) (3) (4) (5)
Solutions des exercices du chapitre 5
(5) fournit alors b : b(7,76 + 1 + 0,8 + 0,68) = 1 , d’où b = 1/10,24. Finalement P* 5 [0,7578 ; 0,0977 ; 0,0781 ; 0,0664].
c) La probabilité p cherchée est : p 5 p*0 # p0 1 p*1 # p1 1 p*2 # p2 1 p*3 # p3, or P* 5 P* # M s’écrit : p0 q0 0 0 3 p*0 ; p*1 ; p*2 ; p*3 4 # E
p1 0 q1 0 p2 0 0 q2
U , d’où : p *0 # p0 1 p *1 # p1 1 p *2 # p2 1 p *3 # p3 5 p *0.
p3 q3 0 0
Donc p 5 p *0 5 0,7578 : cette valeur est beaucoup trop faible : un canal qui ne trans mettrait correctement que 3 bits sur 4 serait à réformer d’urgence ! Dans un cas réel, le cahier des charges imposerait que p = 0,999... (en fixant le nombre de 9 après la virgule). 5.2 On montre aisément que G est fortement connexe ; en outre G comporte 4 boucles : la chaîne est donc régulière puisque comportant une seule classe dʼétats, apériodique. On a donc P* = P(0) # M* et P* = P* # M. Cette relation peut s’écrire P* # (M – I) = 0. Pour obtenir P* 5 3 p *1 , p *1 , c, p *n 4 , il suffit de résoudre le système :
b
P* # ( M 2 I) 5 0
p *0 1 p *1 1 c1 p *n 5 1,
qui s’écrit ici :
© Dunod – Toute reproduction non autorisée est un délit.
20,8 p *0
1 0,1p *2
1
0,6p *3 5 0
1
0,2p *3 5 0
0,2p *0
2
0,9p *1
g 0,3p 0*
1
0,8p *1
2 0,8p *2
1
0,1p *3 5 0
0,3p *0
1
0,1p *1
1 0,7p *2
2
0,9p *3 5 0
p *0
1
p *1
1
p *2 1
p *3
5 1
qui a bien pour solution : p *0 5
457
1 668
, p *1 5
220
1 668
, p *2 5
458
1 668
, p *3 5
553
1 668
.
Rappelons que pour une chaîne régulière, M * 5 lim M n est une matrice dont toutes les nS` lignes sont identiques, chacune étant égale au vecteur-ligne P*.
483
Solutions
5.3 Construisons d’abord le graphe représen tatif. Nous constatons aisément qu’il n’est pas connexe. Il existe, en réalité, une décomposition des états en deux classes d'états disjointes : la première comprend les états 1 et 3 ; la seconde, les états 0,2 et 4. Il n’y a pas de passage possible entre états qui appartiennent à deux classes dif férentes. Ces classes sont évidemment les com posantes connexes du graphe. Si l’on regroupe lignes et colonnes, comme le montre la matrice suivante, apparaissent deux matrices carrées non nulles, s’appuyant sur la diagonale principale : les autres éléments sont nuls.
1
3
0
2
4
0,3
0,7
0
0
0
3 0,5 M50H M5 0 0 2 2 0 4 4 0
0,5
0
0
0
0
0,2
0,4
X 0,4
0
0,6
0,2
0,2
0
0,4
0,2
0,4
1 3
1
On verrait, en calculant :
lim 3 M 4 n nS`
que les sous-matrices carrées sont séparément ergodiques :
5 12
lim 3 M 4 5 nS `
484
5 12
7 12
7 12
0
0
0
0
0
0
0
0
0
0
0
0
11 29
8 29
10 29
11 29
8 29
10 29
11 29
8 29
10 29
Solutions des exercices du chapitre 5
Remarque. Plus généralement, les matrices stochastiques de la forme : A 0 B R 0 où A et sont des matrices carrées, se décomposent d’une manière analogue ; c’est pourquoi on les dit réductibles. On a évidemment : 0
An
0
0 0 car A et sont des matrices stochastiques.
n
B
A
n
R 5B
R
5.4 Dès que l’on a tracé le graphe représentatif, on s’aperçoit qu’il comporte deux composantes fortement connexes : le passage de tout état de l’ensemble d’états transitoire e2, à un état de l’ensemble des états récurrents e1 est possible, l’inverse ne l’étant pas. Bien entendu, un rangement convenable des lignes et colonnes de M fait apparaître aussi la propriété :
0
3
1
2
4
00 0,2
0,8
0
0
0
33 0,4
0,6
0
0
0
M M5 = 11 G0,1
0,3
0,2
0,3
0,1W
2 2 0,2
0,1
0,1
0,5
0,1
4 4 0,2
0,1
0,1
0,2
0,4
0,8
0,2
0,4
4
© Dunod – Toute reproduction non autorisée est un délit.
B
0
C
D
n
R 5B
An
0
En
Dn
0,1
0,1 0,2 0,1 1 0,2 0,1 0,1 0,3 2 0,5
0
A
Plus généralement, toute matrice stochastique de la forme : B d’une manière analogue. On a : C A
3 0,3 0,1
0,2 0,1
0,2
0,6
0,4
0
D
R est décomposable
R avec : En 5 En 2 1 # A 1 Dn 2 1 # C et E1 5 C.
La matrice stochastique A a une limite A* lorsque n augmente indéfiniment ; on a aussi : lim Dn 5 0 ; comme la puissance ne d’une matrice stochastique est encore une matrice sto nS` chastique, si Dn → 0 lorsque n augmente indéfiniment, En est une matrice stochastique (la somme des termes de chacune de ses lignes égale à 1). lim nS ` B
0,2
0,8
0,4
0,6
n
R 5 B
Dans l’exemple précédent A* 5 lim An 5 lim n S `. nS `
1/3
2/3
1/3
2/3
R
485
Solutions
On montre aisément que lim Dn 5 0 (en effet, la probabilité – partant d’un état tran nS` sitoire – de trouver le système dans un état transitoire après n transitions tend vers 0 quand n → ∞). Prenons la limite pour n → ∞ de chaque membre de : En 5 En 2 1 # A 1 Dn 2 1 # C.
Il vient, en posant E * 5 lim En il vient : E * 5 E * # A 1 0, puisque lim Dn 5 0 et que nS` nS` lim En 5 lim En 2 1. nS` nS` E * est aussi une matrice stochastique ; on peut donc poser : e*1 1 2 e*1
e*1 1 2 e*1
E * 5 De*2 1 2 e*2 T ; d’où
e*1 1 2 e*1
e*4 1 2 e*4
e*4 1 2 e*4
# B
De*2 1 2 e*2 T = De*2 1 2 e*2 T e*4 1 2 e*4
0,2
0,8
0,4
0,6
R
D’où : e*1 5 0,2e*1 1 0,4 ( 1 2 e*1 ) et e*1 5 1/3. De même, on trouve e*2 5 e*4 5 1/3. 1/3 Ainsi E* 5 ≥1/3
1/3
2/3 2/3¥. 2/3
Finalement :
0
3
1
2
4
0
1/3
2/3
0
0
0
3
1/3
2/3
0
0
0
M* 5 lim M n 5 1 G1/3 nS ` 2 1/3
2/3
0
0
0W
2/3
0
0
0
2/3
0
0
0
4
1/3
Cette chaîne est “simplement ergodique” car elle comporte des états transitoires de probabilité-limite nulle, et on a : Π(`) 5 3 1/3 2/3 0 0 0 4 . NB. Une propriété analogue peut être montrée pour les matrices de la forme
B
A
0
D
R, qui sont aussi décomposables (ou « réductibles »).
5.5 Sur le graphe représentatif, on voit clairement que tout état de e1 (0 ou 3) est suivi d’un état de e2 (1, 2 ou 4) ; cela veut dire que le système oscille perpétuellement entre e1 et e2. La matrice M peut être sous la forme :
486
Solutions des exercices du chapitre 5
3
0
1
2
4
3
0
0
0,2
0,5
0,3
0
0
0
0,4
0,6
0
M51
G0,2
0,8
0
0
0W
2
0,1
0,9
0
0
0
4
0,7
0,3
0
0
0
par rangement convenable des lignes et colonnes, la matrice est du type : B
0
A
0
R où les
matrices nulles s’appuyant sur la diagonale sont carrées ; les matrices de ce type sont dites périodiques. On calculerait facilement : B et B
0
A
0
0
A
0
2n
R
5 B
( A)n
0
0
( A )n
0
( A)nA
( A)nA
0
2n 1 1
R
5 B
R
R
Numériquement, dans l’exemple précédent :
3 0
1 5 6 6
© Dunod – Toute reproduction non autorisée est un délit.
1 5 6 6
lim 2n nS` M 5
1
2
4
0
0
0
0
0
0
3 0
0 0
22 35 3 60 60 60
1
0 0
22 35 3 60 60 60
2
0 0
22 35 3 60 60 60
4
et :
487
Solutions
3 0
1
4
22 35 3 60 60 60
0 0
3
22 35 3 60 60 60
0
0
0
0
1
1 5 6 6
0
0
0
2
1 5 6 6
0
0
0
4
0 0 1 5 6 6
lim M2n 1 1 5 nS `
2
Il n’y a donc pas, à proprement parler, de limite de m lorsque n tend vers l’infini. 0
1
0
5.6 1) M 5 D 0
0
1 T est une matrice dite de « permutation ».
1 0 0 Par récurrence : supposons que M n ait la forme donnée dans l’énoncé ; montrons que Mn+1 a alors la forme analogue : an M n 1 1 5 Mn # M 5 D an 1 1 an 2 1
an 2 1
an 1 1
an
an 2 1 T
an 1 1
an
0
1
0
an 1 1
# D 0 0 1 T 5 D an 2 1 1
0
0
an
an
an 2 1
an 1 1 an 2 1
an T an 1 1
2p ( n 2 1 ) 2p ( n 1 1 ) En remarquant que an 2 1 5 an 1 2 (car cos , puisque 5 cos 3 3 2p (n 1 1) 2p (n 1 2) 5 1 2p et que cos x = cos(x + 2p) ), il vient : 3 3 an 1 1 M n 1 1 5 D an 1 2 an
an an 1 1 an 1 2
an 1 2
am
am 2 1
an T 5 D am 1 1 an 1 1
am 2 1
am 1 1 am 2 1 T , où m 5 n 1 1.
am am 1 1
am
1
0
0
0
1
0
0
0
1
M 3k 5 D 0
1
0 T 5 I ; M 3k 1 1 5 M 5 D 0
0
1 T ; M 3k 1 2 5 D 1
0
0T.
0
0
1
0
0
1
0
488
1
0
Solutions des exercices du chapitre 5
2) P(3k) = [1, 0, 0] ; P(3k + 1) = [0, 1, 0] ; P(3k + 2) = [0, 0, l] . On observe que P(n) oscille entre ces trois vecteurs, selon que n = 3k ou n = 3k + 1 ou n = 3k + 2 : P(n) n’a pas de limite dans ce cas. 3) Avec ce choix très particulier de P(0), il vient : B
111
333
R 5 P ( 0 ) 5 P ( 1 ) 5 P ( 2 ) 5 c5 P ( ` )
ce vecteur de probabilités est un « point fixe » de M. 5.7 Indications. On a les équations caractéristiques respectives suivantes : 1) ( l 2 1 )( l 3 1 0,4 l 2 1 0,23 1 0,038 ) 5 0 ; 2) ( l 2 1 ) 2 ( l 3 1 0,4 l 2 2 0,008 ) 5 0 ; 3) l ( l 2 1 )( l 1 1 )( l 2 2 0,16 ) 5 0 ; 4) ( l 2 1 )( l 2 1 l 1 1 ) 5 0.
Dans le premier cas, outre les racines réelles 1 et –0, 2 c, et on a deux racines imagi naires : 20,1 1 0,3i "2 et 20,1 1 0,3i "2. Dans le deuxième, toutes les racines sont réelles : 1 ; 1 ; –0,2 ; –0,1 ( 1 1 "5 ) ;
–0,1 ( 1 2 "5 ) ; 20,1( 1 2 "5 ) . Noter que l 5 1 est racine double. Dans le troisième, les racines sont également réelles : 1 ; –1 ; 0,4 ; –0,4 et 0. Dans le dernier cas, la seule racine réelle est : 1, les deux autres sont imaginaires conjuguées : j 5 2
1
2
1i
"3 2
et j2 5 j 5 2
1 2
2i
"3 2
. Le polynôme caractéristique
est : l3 – 1 = 0 ; ses racines sont les racines cubiques de l’unité, soit : 1, j et j2. Rappelons
© Dunod – Toute reproduction non autorisée est un délit.
que cette chaîne est périodique, de période 3. D’une manière générale, pour une chaîne de Markov comportant une classe d’états récurrents périodiques, (de période d), dans les racines de l’équation caractéristiques figurent les racines d ièmes de l’unité : ei.2kp/d où : k = 0, 1, c, d – 1. En outre, si une chaîne de Markov possède p classes d’états récurrents, l = 1 est racine d’ordre p de l’équation caractéristique (c’est-à-dire que l’on peut mettre (l – 1)p en facteur dans cette équation).
5.8 1) p4 ( t ) 5 p 4 ( 2t ) 5
(a t)4
4! (2 a t)4 4!
# e 2 at : car la longueur de l’intervalle [t, 2t] est t. # e 2 2at : car la longueur de l’intervalle [3t, 5t] est 2t.
489
Solutions
( Dt ) 0
2) p0 ( Dt ) 5
0! x2 x3
x1
#
e 2 a Dt 5 1 2 a D t 1 o ( Dt ) , car le développement de e–x en série :
1 2 1 c fournit pour x petit le développement 1! 2! 3! e–x = 1 – x + o(x). La probabilité d’avoir un événement entre o et o 1 Dt est : Dt p ( Dt ) 5 e 2 aDt 5 aDt 1 0 ( Dt ) 1! La probabilité d’avoir deux événements entre θ et θ + Δt est :
e2x 5 1 2
( Dt ) 2
( Dt ) 2
3 1 2 aDt 1 o ( Dt ) 4 5 e 5 2! 2 cette probabilité, du second ordre en Δt, est négligeable. p2 ( Dt ) 5
2 aDt
( Dt ) 2 2
limité :
1 o ( Dt2 ) 5 o ( Dt2 )
3) n ( t ) 5 E ( Xt ) 5 a t, où Xt est la variable aléatoire « nombre d’événements sur un intervalle de temps de longueur t. » Par définition : s 2Xt 5 var ( Xt ) 5 E ( X2t ) 2 ( E ( Xt )) 2. E(Xt) étant connu, il reste à évaluer E ( X 2t ) : E ( X 2t ) 5 a n2 # pn ( t ) 5 a n ( n 2 1 ) # pn ( t ) 1 a n # pn ( t ) . `
`
n51
`
n51
Le premier sigma vaut : a n ( n 2 1 ) `
n52
(a t)n
en effet on a : n! = n # (n – 1) # (n – 2)!.
n!
n51
e
, soit ( a t ) 2e 2 at a `
2 at
(a t)n2 2
n52 ( n
2 2)!
;
5 a Or : a 5 eat (en posant m = n – 2) ; on reconnaît la série qui ` n52 ( n 2 2 ) ! m50 m! x1 x2 c xm ). définit l’exponentielle (rappelons que ex 5 1 1 1 1 5 a 1! 2! m! m50 `
(a t)n2 2
`
(a t)m
Finalement : E ( X 2t ) 5 3 ( a t ) 2e 2 at # eat 1 E ( Xt ) 4 et :
s 2X t 5 3 ( a t ) 2 1 a t 2 ( a t ) 2 4 5 a t. 4) La durée Τ séparant deux événements consécutifs est régie par la loi exponentielle de taux α ; elle vaut donc en “moyenne” (espérance) : 1/α. ` 1 1 var T 5 E ( T 2 ) 2 c a d 5 3 t2 # ( a e 2 at ) dt 2 a . Posons αt = u, il vient : 0 2
var T 5
2 2u 3 u # e # du 2 2
1
a
`
0
1
a
2
5
2!
a
2
2
1
a
2
5
1
a2
.
5.9 1) Il s’agit du processus de naissance dit de « Yule ».
490
Solutions des exercices du chapitre 5
On reconnaît un processus de naissance ouvert. D’où : b
b
p1 ( t 1 dt ) 5 ( 1 2 l dt ) # p1 ( t ) pn ( t 1 dt ) 5 ( n 2 1 ) l dt # pn 2 1 ( t ) 1 ( 1 2 nl dt ) # pn ( t ) pour n > 2 p r ( t ) 5 2l # p1 ( t )
(1)
p rn ( t ) 5 ( n 2 1 ) l # pn 2 1 ( t ) 1 nl # pn ( t )
(2)
D’où : p 1(t) = e–lt , puis p2r ( t ) 2 2l p2 ( t ) 5 l e 2 lt , qui a pour solution : p 1(t) = e–lt – e–2lt (sachant que p 2(0) = 0). Soit: p 2(t) = e–lt(1 – e–lt) : p 2(t) a bien la forme donnée dans l’énoncé. Par récurrence : supposons que l’on ait p n–1(t) = e–lt(1 – e–lt)n–1. En reportant cette valeur dans (2), puis en intégrant cette équation différentielle on trouve effectivement : p n(t) = e–lt (1 – e–lt)n. On vérifie alors que le nombre moyen de micro-organismes présents à t est : E(Xt) = elt. On retrouve l’idée commune de croissance « exponentielle » pour une population (bio logique). 2) Lorsqu’il y a initialement N micro-organismes présents à t = 0, il vient : pN 1 n ( t ) 5 @nn 1 N 2 1 e2Nlt # ( 1 2 e2lt ) n (le calcul est plus commode si l’on utilise une transformée, comme celle de Laplace ou de Carson-Laplace).
© Dunod – Toute reproduction non autorisée est un délit.
5.10 1) Supposons, pour simplifier, que de Ei on ne puisse atteindre que deux états, soit Ε1 et E2. On note, alors, li1 = α et li2 = β. On a ici qi = α + β. Soient les deux variables aléatoires Y1 et Y2 telles que : P[Y1 . t] = e–αt et P[Y2 . t] = e–βt ; par conséquent : F1 ( t ) 5 P 3 Y1 < t 4 5 1 2 e 2 at , et F2 ( t ) 5 P 3 Y2 < t 4 5 1 2 e 2 bt sont les fonctions de répartition de ces deux variables aléatoires. Leurs densités de probabilité sont respectivement : f1 ( t ) 5 Fr ( t ) 5 a e 2 at et f2 ( t ) 5 b e 2 bt.
La probabilité pi1 cherchée, est la probabilité que la valeur de Y1 soit inférieure à celle de Y2 : pi1 = P[Y1 , Y2]. Détaillons cette probabilité : supposons que Y1 ait une valeur comprise entre t – dt et t,
alors Y2 doit avoir une valeur supérieure à t. D’où pi1 5 3 P 3 t 2 dt , Y1 < t et Y2 . t 4 . `
0
Les deux variables aléatoires Y1 et Y2 étant indépendantes, il vient : pi1 5 3 P 3 t 2 dt , Y1 < t 4 # P 3 Y2 . t 4 5 3 f1 ( t ) dt # 3 1 2 F2 ( t ) 4 `
0
`
0
491
Solutions ` ` l i1 a pi1 5 3 a e 2 at dt # e 2 bt 5 a 3 e 2 (a 1 b )t # dt 5 5 . a 1b l i1 1 l i2 0 0
b
De même, on calculerait pi2 5
a 1b
5
l i2 l i1 1 l i2
.
Plus généralement on a : pij 5 l ij ^ a a lijb 5 l ij / qi. j2i
2) Désignons par A l’événement : « Xtn 5 Ein » et par B, l’événement : « Xt 5 E et Xt 5 E et cet Xt 5 E ». n21
in 2 1
n22
in 2 2
0
i0
La probabilité qn de la trajectoire est alors Ρ[A et B]. Or, par définition d’une probabilité conditionnelle : Ρ[A et B] = P[A | B] # P[B]. Ainsi : qn 5 PBXtn 5 Ein 0 Xt0 5 Ei0 , c, Xtn 2 1 5 Ein 2 1 R # qn 2 1
Par application de la propriété sans mémoire : qn 5 PBXtn 5 Ein 0 Xtn 2 1 5 Ein 2 1 R # qn 2 1 ,
soit qn 5 pin 2 1, in # qn 2 1 ; finalement : qn 5 pin 2 1, in # pin 2 2, in 2 1 # c# pi 0 i1 # q0. Or q0 5 P 3 X0 5 Ei 0 4 5 pi 0( 0 ) . Soit : pn 5 pi ( 0 ) # pi , i # pi , i # c# p , i . 0
0 1
in 2 1 n
1 1
avec (cf. question précédente) : pik, ik 1 1 5
l ik ik 1 1
a l ik j
5
lik, i k 1 1 qik
j2i
5.11 1) E0 : la ligne de l’abonné est libre ; E1 : phase 1 en cours (l’abonné compose un numéro) ; E2 : phase 2 en cours. Voici le graphe simplifié du processus de Markov associé :
2) Ce graphe étant fini et fortement connexe, le processus de Markov associé est forte ment ergodique.
492
Solutions des exercices du chapitre 5
1 3) La durée moyenne d’une phase 1 est v (puisque cette durée est régie par une loi expo nentielle de taux ω). 20 3 1 1 –1 –1 v 5 3 600 h, d’où : ω = 180 h ; m 5 60 h , d’où μ = 20 h . Appliquons le théorème des coupes à {E0}, puis à {E1} : m # p*2 5 ( l 1 a ) # p*0
l 1 (a) l d’où: p*0 # B1 1 v 1 R 51. m
d l # p*0 5 v # p*1 p*0 1 p*1 1 p*2 5 1 60
Numériquement : p*0 5
79
, p*1 5
1
79
, p*2 5
18
79
.
60 La ligne est libre dans l’état E0 , soit avec la probabilité en régime permanent : p*0 5 , soit 79 60 3 600 3 5 2 734 secondes par heure (soit environ 46 mn/h) : environ les 3/4 du temps. 79 5.12 1) On a, en tout, Ν = 4 terminaux ; il y a donc N + 1 = 5 états ( Ek, 0 < k < 4 ) . Le graphe des transitions entre t et t + dt est fini et fortement connexe : le processus est fortement ergodique.
2) En notant p*i la probabilité de l’état Ei en régime permanent : 2b * 2b 2b b p 5 12p*0 , p*2 5 p*1 5 72p*0 , p*3 5 p*2 5 288p*0 , p*4 5 p*3 5 432p*0 . a 0 2a 4a 3a p*0 # ( 1 1 12 1 72 1 288 1 432 ) 5 1 d’où : p*0 5 1/805
© Dunod – Toute reproduction non autorisée est un délit.
p*1 5
et p*1 5
12
805
, p*2 5
72
805
3) r 5 1 # p*3 1 2p*4 5
, p*3 5
288 805
288 1 864 805
r 5 4p*0 1 3p*1 1 2p*2 1 p*3 5
et p*4 5
432 805
.
5 1,4311 réparateurs inoccupés
4 1 36 1 144 1 288
5 0,5863 terminaux en panne. 805 4) En tout N + S = 6 terminaux ; il y a donc 7 états ( notés Fk , 0 < k < 6 ) a) graphe simplifié : 493
Solutions
b b b b b) q*1 5 q*0 5 6q*0 , q*2 5 q*1 5 18q*0 , q*3 5 q*2 5 36q*0 , q*4 5 q*3 5 54q*0 , a 2a 4a 3a q*5 5 q*0 # a
b 243 * p*0 5 81q*0 , q*0 5 q*5 5 q0 . 4a 4a 2 b
2 1 12 1 36 1 72 1 108 1 162 1 243 2
c) r r 5 0 # ( q*0 1 c1 q*5 ) 1 1 # q*6 5
243
635
b 5 1, d’où : q*0 5
2
635
.
5 0,3827
NB r 2 r r 1 1. rr 5 6q*0 1 5q*1 1 4q*2 1 3q*3 1 2q*4 1 1q*5 5 t 5 4q*0 1 3q*1 1 2q*2 1 q*3 5
810
635
8 1 36 1 72 1 72
5 1,2756 188
5 0,2961. 635 635 3) Coût journalier de P1 : 500r 1 2 000r 1 300N 5 3 088 €/j 5
P2 : 500 r r 1 2 000t 1 300 ( N 1 S ) 5 2 584 €/j. La seconde politique est préférable. 5.13 Sur le graphique ci-après, les déplacements dus aux réglages sont indiqués en traits gras, ceux qui correspondent à des transitions concernant l’évolution du système sans inter vention extérieure sont figurés en traits ponctués ; les probabilités de transfert et les gains sont indiqués sur les arcs.
494
Solutions des exercices du chapitre 5
Les variables de décision sont les xi , les variables de position les yi ; les espérances mathématiques de gain seront désignés par Z. On a, en unités monétaires (u.m.) :
E1 , E1 0,3 5 0,7 (2) 0,1 Z n1 E1 , E2 0,5 1 0,5 (0) 0
E1 , E1 0,3 (5 1) 0,7 (2 0,1) 0,47 Z n2 E1 , E2 0,5 (1 0,1) 0,5 (1 1) 0,55
E2 , E1 0,1 Z n1 E2 , E3 0,6 3 0,4 (2)
E2 , E1 0,47 Z n2 E2 , E3 0,6 (3 1) 0,4 (2 0,1)
Z n1
Z n2
Z n1
Z n2
1
E3 , E1 0,1 Z n1 E3 , E2 0
1,64
E3 , E1 0,47 Z n2 E3 , E2 0,55
Z n1
Z n2
Puis pour n – 3, n – 4, …, n – 10 : max zn 2 3 ( E1 ) 5 1,095 E1 S E2
max zn 2 3 ( E2 ) 5 2,204 E2 S E3
max zn 2 3 ( C ) 5 1,095 E3 S E2 ,
représentent les décisions optimales à n – 3. max zn 2 4 ( E1 ) 5 1,6495 E1 S E2
max zn 2 4 ( E2 ) 5 2,7604 E2 S E3
max zn 2 4 ( C ) 5 1,6495 E3 S E2
max z n 2 10 ( E1 ) 5 4,982 7 max z n 2 10 ( E2 ) 5 6,093 8 S E1 E2 S E3 E2 d’où l’on tire la politique optimale :
max z n 2 10 ( E3 ) 5 4,982 7 E3 S E2
Remarquons maintenant que : VEn12 k 5 3 0,5 0,5 0 4
# D21 1 VEn 2 k 1 1 T 5 0,5 aVEn 2 k 1 1 1 VEn 2 k 1 1 b 3
01
2
3
VEn22 k 1 1
0 1 VEn22 k 1 1 VEn12 k 5 3 0 0,6 0,4 4
© Dunod – Toute reproduction non autorisée est un délit.
1 1 VEn22 k 1 1
# D 3 1 VEn 2 k 1 1 T 5 1 1 0,6VEn 2 k 1 1 1 VEn 2 k 1 1 3
22 1
3
3
VEn22 k 1 1
VEn12 k 5 VEn12 k
495
Solutions
d’où l’on a : d n 2 k 5 V En22 k 2 V En12 k 5 1 1 0,1 aV En22 k 1 1 2 V En12 k 1 1 b 5 1 1 0,1d n2k 1 1 Si n est assez grand : d n 2 k 5 1 1 0,1 1 0,01 1 0,001 1 c< De plus,
10 9
.
1 VEn22 k 5 0,5aVEn22 k 1 1 1 VEn32 k 1 1 b 5 0,5a2VEn22 k 1 1 1 d n 2 k 1 1 b 5 VEn22 k 1 1 1 d n 2 k 1 1, 2 Par suite : VEn22 k < 0,55 1 ( k 2 2 ) VEn32 k < 0,55 1 k # On vérifie que : pour k = 10 : V En32 k 5 0,55 1 V En22 k 5 0,55 1 et l’on a, pour k = 100 :
50 9
40 9
5
5
9
9
< 6,10 u.m. < 5,00 u.m.
V En32 k < 56,10 u.m.; V En22 k < 55,00 u.m. NB. On remarquera toutefois que l’évolution la moins bonne donne une perte de 1,1 unité monétaire par période.
496
Solutions des exercices du chapitre 6
Solutions des exercices du chapitre 6
6.1 1) i ( t ) # dt 5 P 3 t , T < t 1 dt 4 5 dF( t ) où : F( t ) 5 P 3 T < t 4 . Or F( t ) 5 1 2 v ( t ) . Donc i( t ) 5 2v r ( t ) . Ici i( t ) 5 ( a ) # e 2at 1 ( 1 1 at ) ( 2ae 2at ) 5 a 2 # t # e 2at .
MTTF 5 t 5 3 t # i ( t ) 5 3 v ( t ) # dt ; ici : 0 en posant x 5 at. 0 `
` 1 ` t 5 3 a2 # t2 # e2at dt 5 3 x 2 # e2x # dx, a 0 0
`
On montre aisément que : 3 x n # e2x # dx 5 n! ( pour n entier). D’où t 5 `
0
Le taux d’avarie est ( t ) 5 2
v r( t )
5
v(t )
a 2t
1 1 at
2! 2 5 . a a
. Pour t S `, ( t ) S a .
2) p m ( t ) 5 3 p m 2 1 ( u ) # i( t 2 u ) # du , avec p 0 ( t ) 5 v ( t ) . t
0
t
On calcule d’abord P1 ( t ) 5 3 p o ( u )
# i (t
2 u)
# du :
o
p 1 ( t ) 5 3 ( 1 1 au ) t
# e 2au # a 2 ( t
0
2 u)
# e 2a ( t 2 u ) # du
2 5 e 2 at 3 a ( 1 1 au ) ( t 2 u ) du 5 e 2at 3 a 2 3 2au 2 1 u ( at 2 1 ) 1 t 4 # du t
t
0
0
Soit p 1 ( t ) 5 e 2at # a 2 # B2a
t3 3
1a
t3 2
2
t2 2
1 t 2R 5 B
a 2t 2 2
1
a 3t 3 6
R # e 2at .
© Dunod – Toute reproduction non autorisée est un délit.
De même on calcule : p2 ( t ) 5 B
a4t 4 24
1
a5t 5
120
R # e2at 5 B
( at ) 4 4!
1
( at ) 5 5!
R # e2at
Puis par récurrence, on fait l’hypothèse que : pn ( t ) 5 B
( at ) 2m 2m!
1
( at ) 2m 1 1 ( 2m 1 1 ) !
R # e2at
et l’on montre que pm 1 1 ( t ) a la forme analogue (obtenue en remplaçant m par m + 1 dans l’expression de pm(t)) .
497
Solutions
NB. L’expression pm ( t ) 5 3 pm 2 1 ( u ) # i ( t 2 u ) # du étant un produit de convolution, la 0 résolution de cette récurrence serait facilitée si l’on utilisait la transformée de Laplace (ou celle de Carson-Laplace). t
On trouve ici une loi d’Erlang-2, obtenue en regroupant par « paquets » de deux événe ments consécutifs, les événements se produisant dans un processus de Poisson de taux a : ( at ) 2m # e2at est la probabilité d’occurence de 2m pm ( t ) 5 p2m ( t ) 1 p2m 1 1 ( t ) , où : p2m ( t ) 5 2m! événements entre 0 et t dans ce processus de Poisson de taux a (et paramètre at). 6.2
V (t) 5 P 3 T . t 4 5 P 3 T . t 0 TA . t 4 # P 3 TA . t 4 1 P 3 T . t 0 TA < t 4 # P 3 TA < t 4. Pour évaluer le premier terme de cette somme, on peut remplacer A par un « court circuit ». On a alors C et F en parallèle, suivis d’un pont simple (dont la fiabilité a été calcu lée au chapitre 6, paragraphe 6.4) :
Posons pour simplifier v A ( t ) 5 a, v B ( t ) 5 b, c, v H ( t ) 5 h. La fiabilité du montage en parallèle de C et F vaut : c 1 f 2 cf. D’où l’expression (1) : P 3T , t 0 TA . t 4 5 ( c 1 f 2 cf ) # 3 ( de 1 g h 2 de g h ) ( 1 2 b ) 1 ( d 1 g 2 dg ) # ( e 1 h 2 e h ) b 4 (1)
498
Solutions des exercices du chapitre 6
Pour évaluer le second terme de V(t), on supprime A ; on retrouve alors un pont simple, en regroupant C et D qui sont en série, de même que F et G.
P3T . t 0 TA < t 4 5 3 cde 1 f g h 2 cde f g h 4( 1 2 b ) 1 3 cd 1 f g 2 cdf g 4 3e 1 h 2 e h 4 # b
# 3 cd
1 f g 2 cdf g 4
# (2)
Finalement V(t) est la somme des expressions (1) et (2). Si v ( t ) 5 v pour chacun des 8 composants, il vient V 5 v 3 ( 2 1 4v 2 10v 2 1 7v 3 1 12v 4 2 4v 5 ) . Si v 5 1 (fiabilité parfaite), on obtient V 5 1 comme attendu. Si v 5 0, évidemment on a V 5 0.
6.3 1) i ( t ) # dt 5 P 3 t , X < t 1 dt 0 X . 4 . Or P 3 A 0 B 4 5 P 3 A et B 4 / P 3 B 4 . Donc i ( t ) # dt 5 P 3 t , X < t 1 dt 4 / P 3 X . 4 : car on sait qu’ici : t . . Soit : i ( t ) # dt 5 i( t ) # dt / v ( ) 5 2v r ( t ) # dt / v ( ) .
r 5 E 3 X 2 0 X . 4 5 E 3 X 0 X . 4 2
5 3 3 t # i ( t ) dt 4 2 5 3 v ( t ) # dt / v ( ) `
`
NB Si θ = 0, on retrouve r0 5 t 5 3 n ( t ) # dt
`
2) Si v ( t ) 5 e 2t , r 5 3
`
© Dunod – Toute reproduction non autorisée est un délit.
e
0
2t
`
# dt / e 2 5 B2 e R ^ e 2 soit : 2t
r 5
e 2
1
^ e 2 5 .
On retrouve la propriété “sans mémoire” de la loi exponentielle : peu importe la durée de vie écoulée, tout se passe comme si, à chaque instant, le matériel était neuf et donc l’espé rance de la durée de vie résiduelle est égale à l’espérance de la durée de vie depuis t = 0, 1 soit : .
499
Solutions
6.4 1) Il est facile de compléter le tableau initial par le calcul de n(t), et celui de la mortalité n(t 2 1) 2 n(t) relative : p ( t ) 5 5 P 3 t 2 1 , T # t 4 ainsi que de la probabilité d’avarie : n(0) n(t) . 5 P3 t 2 1 , T # t 0 T . t 2 1 4 pc ( t ) 5 1 2 n(t 2 1) où T est la variable aléatoire “durée de vie” d’un pneu.
t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
n(t)
Nombre de pneus ayant duré moins d'un mois de 1 à 2 mois de 2 à 3 mois de 3 à 4 mois de 4 à 5 mois de 5 à 6 mois de 6 à 7 mois de 7 à 8 mois de 8 à 9 mois de 9 à 10 mois de 10 à 11 mois de 11 à 12 mois de 12 à 13 mois de 13 à 14 mois
5 10 40 80 130 250 200 120 70 50 25 15 3 2
La durée de vie moyenne :
1000 995 985 945 865 735 485 285 165 95 45 20 5 2 0
p(t)
0, 005 0, 010 0, 040 0, 080 0, 130 0, 250 0, 200 0, 120 0, 070 0, 050 0, 025 0, 015 0, 003 0, 002
pc(t)
0, 005 0, 010 0, 041 0, 085 0, 151 0, 341 0, 413 0, 422 0, 435 0, 527 0, 556 0, 750 0, 600 1
t 5 a t pt t51
vaut 6,62 mois. On pourrait en déduire la consommation moyenne (au bout d’un temps très long) : 1 000 6,62
5 151 pneus/mois.
2) On peut définir une chaîne de Markov homogène, de matrice M, telle que si Π(0) représente la distribution des âges à la date 0 : P( 1) 5 P( 0) # M
P ( 2 ) 5 P ( 1 ) # M 5 P ( 0 ) # M2
…………………
P ( n ) 5 P ( 0 ) # Mn 500
Solutions des exercices du chapitre 6
Voici cette matrice :
0,005 0,995 0,010 0 0,990 0,041 0 0 0,959 0 0,085 0 0 0,915 0 0,151 0 0 0 0,849 0 0 0 0,341 0 0 0,659 0,413 0 0 0 0 0 0 0,587 0,422 0 0 0 0 0 0 0 0,578 0,435 0 0 0 0 0 0 0 0 0,565 0,527 0 0 0 0 0 0 0 0 0 0,473 0,556 0 0 0 0 0 0 0 0 0 0 0,444 0,750 0 0 0 0 0 0 0 0 0 0 0 0,250 0,600 0 0 0 0 0 0 0 0 0 0 0 0 0,400 1 0 0 0 0 0 0 0 0 0 0 0 0 0
M
La matrice M étant ergodique, on aura, en régime permanent : avec A 5 M 2 I .
P* # A 5 0 (1)
On peut se servir des relations (1), auxquelles on ajoute : p *0 1 p *1 1 c1 p *n 5 1
pour calculer p *0, et de là, tous les p *i. Il vient :
p *0 3 0,995 5 p *1 ; p *1 3 0,990 5 p *2 ; c ; p *12 3 0,400 5 p *13 ,
d’où :
p *0 1 0,995p *0 1 ( 0,995 3 0,990 ) p *0 1 c1 ( 0,995 3 0,990 3 c3 0,400 ) p *0 5 1
et : p *0 5
1
< 0,151. 6,62 On peut en déduire :
30 mn] 5
514
3 4
1
2
(une demi-heure).
3
e
22
5
3 3 4e2
4 car m 5 3 ) . On calculera pour S = 4, 5, 6, 7, et 8 : p *0 5
1
S 21
1 a n! S! ( 1 2 c /s ) 0 S
c
S
c
n
et tf 5
c2 S S! ( 1 2 c /S ) 2
6
# p *0
4
5
0, 0377 4, 452
0, 0466
0, 0489 0, 0496
1, 032
0, 289
Temps perdu par les clients (heures)
12, 36
2, 82
0, 79
0, 24
0
Temps perdu par les stations
8
16
24
32
40
Coût total
498, 8
448, 9
415, 6
519, 2
540
0 t f (en mn)
Le nombre optimal de stations (et aussi de serveurs) est de six.
516
7
8 0, 05
0, 0888 ordre 103
Solutions des exercices du chapitre 7
7.3 1) Voici le schéma de ce système :
© Dunod – Toute reproduction non autorisée est un délit.
On le modélise par le processus de Markov ci-dessous (on a posé : m = m1 + m2).
p 0 ( t 1 dt ) 5 ( 1 2 ldt ) # p 0 ( t ) 1 m 1 # p 01 ( t ) 1 m 2 # p10 ( t ) 1 o ( dt ) 1 p 01 ( t 1 dt ) 5 3 1 2 ( l 1 m 1 ) dt 4 # p 01 ( t ) 1 l dt # p 0 ( t ) 1 m 2 # p 2 ( t ) 1 o ( dt ) 2 1 p 10 ( t 1 dt ) 5 3 1 2 ( l 1 m 2 ) dt 4 # p 10 ( t ) 1 l dt # p0 ( t ) 1 m 1 # p 2 ( t ) 1 o ( dt ) 2 h p 2 ( t 1 dt ) 5 3 1 2 ( l 1 m 1 1 m 2 ) dt 4 # p 2 ( t ) 1 ldt # 3 p 01 ( t ) 1 p 10 ( t ) 4 1 ( m 1 1 m 2 ) # p3 ( t ) 1 o ( dt ) . . . ... pn ( t 1 dt ) 5 3 1 2 ( l 1 m ) dt 4 # pn ( t ) 1 l dt # pn 2 1 ( t ) 1 m dt # pn 1 1 ( dt ) 1 o ( dt ) , où n > 3
D’où :
517
Solutions
pr0 ( t ) 5 2 l # p 0 ( t ) 1 m 1 # p 01 ( t ) 1 m 2 # p 10 ( t ) l # p 0 ( t ) 1 m2 # p 2 ( t ) 2 l ip 1r 0 ( t ) 5 2 ( l 1 m 2 ) # p 01 ( t ) 1 # p 0 ( t ) 1 m 1 # p 2 ( t ) 2 p 01 r ( t ) 5 2 ( l 1 m 1 ) # p 01 ( t ) 1
# p 2 ( t ) 1 l 3 p 01 ( t ) 1 p 10 ( t ) 4 1 m # p 3 ( t )
p 2r ( t ) 5 2 ( l 1 m ) . . . p nr ( t ) 5 2 ( l 1 m )
...
# p n ( t ) 1 l # p n 2 1 ( t ) 1 m # p n 1 1, où n > 3
2) En régime permanent, il vient :
lp *0 5 m 1 # p *01 1 m 2 # p *10 ( l 1 m 1 ) # p *01 5
l # p *0 1 m2 # p *2 2
i ( l 1 m 2 ) # p *10 5
l # p *0 1 m1 # p *2 2
( l 1 m ) # p *2 5 l # 3 p *01 1 p *10 4 1 m # p *3 . . . ... ( l 1 m ) # p *n 5 l # p *n 2 1 1 m # p *n 1 1
En appliquant le théorème des coupes on montre aisément que : n22
l p *n 5 a m b
# p *2 , où n > 3.
(1)
Avec la coupe {E0, E01, E10}, il vient : m # p *2 5 l # ( p *01 1 p *10 ) Avec la coupe {E0}, on retrouve :
(2)
l # p *0 5 m 1 # p *01 1 m 2 # p *10 En outre avec la coupe {E01}, on retrouve :
(3)
l
(4) # p *0 1 m 2 # p *2 2 Le système de trois équations : (2), (3) et (4), permet d’exprimer p *0, p *01 et p *02 en fonction de p *2 soit : ( l 1 m 1 ) # p *01 5
p *0 5 a
On trouve a 5
518
2m1 m2 l
2
# p *2 , p *01 5 b # p *2 , p *10 5 g # p *2 . ; b 5
m2 l
; g 5
m1 l
Solutions des exercices du chapitre 7
Puisque (1) permet d’exprimer p *n en fonction de p *2 on peut alors obtenir p *2 en écri vant que la somme des probabilités des états égale 1 :
l l2 p*2 # £ a 1 b 1 g 1 a1 1 m 1 2 1 cb § 5 1. m
l l On reconnaît dans la parenthèse la série géométrique de raison q 5 m 5 ; m1 1 m2 l cette série converge pour , 1 : on retrouve ainsi la condition d’existence m1 1 m2 d’un régime permanent, alors : 1
1 2 l /m
¢ §.
Le nombre moyen de clients présents dans le système est : n 5 0 # p *0 1 1 # ( p *01 1 p *10 ) 1 2 # p *2 1 3 # p *3 1 c
5 p*2 # £ b 1 g 2
p *2 5 1^ £ a 1 b 1 g 1 °
l m m l2 ° 1 1 2 # m 1 3 # 2 1 c¢ § 1 l l m
On reconnaît dans la parenthèse la série dérivée de la série géométrique ; convergente l 1 pour m , 1, elle a alors pour somme : . ( 1 2 l /m ) 2 Remarquons aussi que b 1 g 5 D’où : n 5 p *2 # £
m /l ( 1 2 l /m ) 2
m . l
§.
© Dunod – Toute reproduction non autorisée est un délit.
N.B. Même si m1 5 m2 5 m /2, ce système n'est pas équivalent à la file M/M/1. 7.4 l 5
1
6
h 2 1, m 5
2 l h 2 1 et m 5 . 3 4 1
Avec 2 mécaniciens Soit Ek le nombre de machines en panne. Voici le graphe simplifié du processus de naissance et de mort modélisant cet atelier :
519
Solutions
Ce processus étant fini et son graphe fortement connexe, est fortement ergodique (quelles que soient les valeurs relatives de l et m). Il vient : 6l 30l 2 * 120l 3 * * p *1 5 m p *0 ; p *2 5 p ; p 5 p0 ; 3 2m 2 0 4m 3 p *4 5 Numériquement : p *0 5
81
360l 4
p *0 ; p *5 5
8m 4
3 025
; p *1 5
324
3 025
p *5 5
720l 5 16m 5
; p *2 5
480
p *0 ; p *6 5
540
3 025
; p *6 5
720l 3 36m 6
p *0 .
; p *3 5 p *4 5
160
3 025 3 025 Le nombre moyen de machines en état de marche est :
720
3 025
;
.
m ( 2 ) 5 6 # p *0 1 5 # p *1 1 4 # p *2 1 3 # p *3 1 2 # p *4 1 1 # p *5 5 2, 759.
Avec 3 mécaniciens :
Un calcul analogue fournit : m ( 3 ) 5 3, 381.
On remarque que le nombre moyen de machines opérationnelles croît sensiblement (+20 %) quand on passe de deux à trois mécaniciens : il s’améliore encore (de +5 %) si l’on passe de trois à quatre mécaniciens. Au-delà, les améliorations sont marginales. Pour optimiser le nombre de mécaniciens il faudrait connaître le manque à gagner horaire provoqué par une machine en panne ainsi que le coût horaire (salaire + charges) d’un mécanicien. 7.5 1) l = 3 arrivées/h ; m = 4 consultations/h. En supposant la salle d’attente suffisamment vaste, on peut modéliser ce cabinet médical par n 3 l l une file M/M/1. Alors tf 5 5 d’heure et p *n 5 a m b # p *0 ; d’où : 4 m (m 2 l ) p *0 5 0,25 ; p *1 5 0,19 ; p *2 5 0,14 ; p *3 5 0,11 ; p *4 5 0,08 ; p *5 5 0,06.
2) P 3 Tf . t 4 5 520
l 2 (m 2 l ) t e . mµ
Avec 4 mécaniciens, puis 5, puis 6 : On trouve : m ( 4 ) 5 3,563 ; m ( 5 ) 5 3,597 ; m ( 6 ) 5 3,600
Solutions des exercices du chapitre 7
Pour t = 1 heure, cette probabilité vaut 0,276 ; pour t = 2 heures, elle vaut 0,101 : 10 % des patients attendent en moyenne plus de deux heures : c’est énorme. Ils méritent bien d’être appelés « patients » ! 60
5 2,4 arrivées par heure, m étant inchangé ; trf 5 22,5 minutes : 25 l’attente moyenne est moitié moindre... mais le médecin reçoit moins de patients ; d’ailleurs la probabilité qu’il soit inoccupé passe de p *0 5 0, 25 à p 0r* 5 0,4 ; autrement dit il n’est plus occupé que 36 minutes par heure (au lieu de 45) et un patient arrivant aura une attente nulle avec la probabilité 0,4. 3) a) Alors lr 5
lr b) En résolvant m e 2 (m 2 lr)t 5 0,1, on trouve t = 68 mn. : irréaliste. 4) a) On a alors une file M/M/2 :
n21 l * l l * * # p *1 pour n > 2. 5 m p0 ; p2 5 p 1 et p n 5 a b 2m 2m En exprimant toutes les probabilités en fonction de p *1 (plutôt que de p *0), il vient :
p *1
2
p*1 # £
m l
1 °1 1
l 2m
1 °
l 2m
La série géométrique est convergente pour p *1 5 1^ £
Numériquement :
¢ 1 ° l
2m
l 2m
¢ 1 c¢ § 5 1
, 1, ce qui est vérifié ici :
3
8
, 1. D’où :
m 1 §. 1 l 1 2 l /2m
5 0,45 ; p *1 5 0,34 ; p *2 5 0,13 ; p *3 5 0,05 11 trf s’obtient en faisant S = 2 dans la formule donnant l’attente moyenne pour la file M/M/S : p *0 5
© Dunod – Toute reproduction non autorisée est un délit.
5
3
Il vient : trf 5 2,28 mn a5
l trf 5 a m b
9
220
S
1
S! S m ( 1 2 l /Sm ) 2
p *0.
hb.
P 3 Tf . t 4 5 P 3 Tf . 0 4 # e 2 (mS 2 l)t où :
n ` 1 l * # P3 Tf . 0 4 5 a p n 5 a m b # p *0 5 S m # ( 1 2 l /Sm ) # tf. ( 1 2 l /Sm) S! n5S
521
Solutions
Pour S = 2 et t = 1 heure, il vient : 3 9 9 P 3 T f . 0 4 5 8 a1 2 b 5 8 220 44
et P 3 T f . 1 4 5
9
44
# e 2 5 5 0,0014 : probabilité négligeable.
b) l s 5 6 arrivées par heure ; p *0 5 2
m /l s cm /l s 1 1/ ( 1 2 l s/2m ) d
5
1 7
6 1 # 1 5 9 h , soit 19,29 mn . ts f 5 a b 4 16 ( 1/4 ) 2 7 28
La probabilité d’attendre plus d’une heure est alors : 6 9 P 3 T f . 1 4 5 P 3 T f . 0 4 # e 2 2 5 8a1 2 b # # e 2 2 5 0,087. 8 28
c) On veut réaliser tf
2, soit :
k
# p *0 5 4 # a l b # p *0 2m
2
l 2m
1 2 c /2
1 °
¢ 1 c¢ § , car : 1 = a p *k . 2m
¢§ 5
`
l
k 50
22c
2 1 c 1 c2
.
d 5 0 # p *0 1 1 # ( p *1 1 p *2 ) 1 2 # ( p *3 1 p *4 1 p *5 1 c) 5 ( p *1 1 p *2 ) 1 2 3 1 2 ( p *0 1 p *1 1 p *2 ) 4 5 2 2 2p *0 2 p *1 2 p *2 2 ( 2 1 c 1 c 2 ) 2 ( 2 1 c 1 c 2 )( 2 2 c ) 2c 1 c 2 1 c 3 d5 5 5 c : 2 1 c 1 c2 2 1 c 1 c2
3) a)
résultat simple, bien connu pour la file M/M/S : cf son interprétation en 3) b). b) En régime permanent, le taux des arrivées des voitures à la douane (soit l) est égal au taux de départ des voitures contrôlées ; celui-ci est égal au nombre moyen de douaniers actifs ( d ) , multiplié par le taux de contrôle de chaque douanier (m) : l 5 d # m , soit c 5 d .
Il s’agit d’une file M/M/1/5. Le processus est fortement ergodique car il a un nombre fini d’états et son graphe est fortement connexe. k l 0 # l 1 # l 2 # c # l k 21 l * * # 2) p k 5 p 0 5 a m b # p *0 m 1 # m 2 # m 3 # c# m k
© Dunod – Toute reproduction non autorisée est un délit.
7.7 1) Etat Ek : k jobs présents (un en traitement, k – 1 en attente si k > 1 ). Ici une nais sance est l’arrivée d’un job et une mort, la fin de traitement d’un job.
La somme des probabilités des états est égale à 1 :
p *0
l # c1 1 m
l
5
1 a m b d 5 1 , soit p *0 :
l 1 2 am b l 12 m
6
5 1 # ( s i l Z m) .
523
Solutions 6
l l 1 et p 5 ° 1 2 m ¢ ^ £ 1 2 ° m ¢ § ( si l 5 m , on aurait p *0 5 . ) 6 * 0
l 3) A.N. l = 24 arrivées/mn ; m = 30 traitements/mn ; m 5 0,8 .
D’où : p *0 5 0,271 et U 5 1 2 p *0 5 0,729. Le temps moyen d’U.C. perdu par heure est 0,271 3 1 h, soit 16mn 16s par heure. Le déchet : r 5 1440 # p *5 (en effet il arrive 24 3 60 = 1 440 jobs par heure refusés dans la proportion égale à p *5), soit r 5 127 jobs refusés par heure, en moyenne. Notons que l ( 1 2 p *5 ) est le taux de jobs acceptés dans le système ; m est le débit maximal du système et m # U est le débit réel du système (U étant la probabilité que l’U.C. soit active). En régime permanent le taux des entrées dans le système, soit l ( 1 2 p *5 ) est égal au taux des sorties du système, soit U # m. On peut vérifier algébriquement la relation l ( 1 2 p *5 ) 5 m # U comme suit : l Posons a 5 m , ceci revient à vérifier que : l 12a 12a 5# S 012 . m C1 2 a 6 12a 1 2 a6 Soit a 3 ( 1 2 a 6 ) 2 ( a 5 2 a 6 ) 4 0 3 1 2 a 6 2 ( 1 2 a ) 4 : cette égalité est vérifiée puisque chaque membre est égal à α – α6. 4) a) Si l’on double la mémoire de réserve, on peut modéliser le système par la file M/M/1/9 ; les dix états sont : Ek (k = 0, 1, c, 9), Ek étant associé à k jobs présents dans le système. 1 2 l /m
5 0,224 ; le déchet devient : rr1 5 1440 # p *9 5 43,3 jobs 1 2 ( l /m ) 10 refusés par heure ; l’utilisation du processeur est alors Ur1 5 1 2 p *0 5 0,776. Alors p *0 5
b) On a la file M/M/2/6 : le graphe simplifié du processus de naissance et de mort associé est le suivant :
k21
p*k 5 °
524
l 2m
¢
# p *1
et p*0 5
m l
# p*1.
Solutions des exercices du chapitre 7 2
6
5
m l l * * # c1 ° l ¢ ¢ § 5 1. a p k 5 1 entraîne : p1 £ l 1 ° 1 1 2m 1 ° 2m ¢ 1 2m k 50 Soit
p *1
# £m l
1
1 2 ( l /2m ) 6 1 2 l /2m
§ 5 1 , d’où :
p *1 5 0,3437 , p *0 5 0,4296 et p *6 5 0,0035 .
Le déchet est rr2 5 1440 # p *6 . 5 jobs/h. L’utilisation des processeurs est : Ur2 5 0 # p *0 1 1 # p *1 1 2 ( p *2 1 c1 p *6 ) 5 p *1 1 2 ( 1 2 p *0 2 p *1 ) , soit Ur2 5 0,7971. Le déchet est nettement plus faible avec cette seconde architecture ; mais elle est plus chère que la précédente. Ur2 est voisin de Ur1, car la charge globale de travail est voisine dans chacun des deux cas. 5) a) On a la file M/M/2/10. 1 2 ( l /2m ) 10 m m À nouveau : p *1 5 1^ £ l 1 § et p *0 5 l 1 2 ( l /2m )
# p *1 .
p *1 5 0,3429 , p *0 5 0,4286 et p *10 5 0,00009 ; le déchet rs est très faible : rs 5 0,13 jobs/h .
© Dunod – Toute reproduction non autorisée est un délit.
L’utilisation des processeurs est Us 5 p *1 1 2 ( 1 2 p *0 2 p *1 ) 5 0,7999 : valeur très voisine de 0,8 : la valeur maximale. b) En effet, avec une mémoire illimitée, on a la file M/M/2 (/∞) qui admet un régime per l l , 1 (vérifié ici, car manent si 5 0,4). Alors le déchet est nul : rt 5 0. On obtient : 2m 2m m p*1 5 1^ £ l 1
1 1 2 ( l /2m )
§ e t p *0 5
15 m * 12 p . Soit : p *1 5 e t p *0 5 . D’où : l 1 35 35
Ut 5
28
35
5 0,8.
En régime permanent le taux des entrées dans le système (ici égal aux taux l des arrivées, car il n’y a plus de déchet) est égal au taux des sorties du système ; celui-ci est égal au nombre moyen de processeurs actifs, soit Ut, multiplié par le taux de service de chaque processeur, soit m. D’où : l l 5 Ut # m et Ut 5 m 5 0,8.
525
Solutions
Solutions des exercices du chapitre 8 8.1 1) On note x1 (resp. x2) le nombre de tonneaux de bière blonde (resp. brune) fabriqués par le brasseur : 2,5x 1 1
7,5x 2
20 4 ( 2 r ) 1 3 12y2 1 8y3 > 20 4 ( 1r ) où ( 1r ) 5 4 3 ( 1 ) ; on a donc ( 2 ) 1 ( 1 ) puisque 12y2 1 8y3 > 10y2 1 5y3 > 20. 3 3y 2 1 y 3 > 3 4 ( 3 ) 1 3 3y 2 1 12y 3 > 3 4 ( 4r ) , où ( 4r ) 5 3 3 ( 4 ) . Donc ( 3 ) 1 ( 4 ) 3 3 ( 2 ) 1 3 6y2 1 3y3 > 13 4 ( 2 r ) 1 3 12y2 1 4y3 > 12 4 ( 3 r ) ; où ( 3 r ) 5 4 3 ( 3 ) . Donc ( 2 ) 1 ( 3 ) On a donc : ( 2 ) 1 ( 1 ) et, par transitivité, ( 2 ) 1 ( 3 ) et ( 2 ) 1 ( 4 ). Ainsi les contraintes (1), (3) et (4) sont redondantes. La solution ( y1 5 0 ; y2 5 2 ; y3 5 0 ) , pour minimiser : Zr 5 12y1 1 5y2 1 7y3 est alors évidente au sommet A, où Z' = 10. y3
4
B
�dual 3 Z� � 28
© Dunod – Toute reproduction non autorisée est un délit.
2,5
2 Z� � 21 (2) 1
(1)
Z� � 14
(3) 1/4 0
(4)
y2
A 1
5/3
2 Z� � 10
545
Solutions
On remarque que les contraintes dominées : (1), (3) et (4) sont représentées par des segments de droite situés au dessous de BA qui est associé à la contrainte (2) plus contraignante que les trois autres. 8.4 1) Les équations et inéquations exprimant ce problème s’écrivent :
7x1 1 5x2 1 2x3 250
2,2
1
2
x2
1
x1
>
7
2
x2
2
4 1
2 7 6
et l’on voit que ( 3 r ) entraîne ( 2 r ) , car :
x2
3
2
x3 4 3x3 4 x3 3 3 x3 20 1 x3 5
1
7x3
( 1r ) (2 r ) (3 r ) ( 4r ) ( 5r ) ( 6r )
13 4 4 x 1 < £4 2 2x 2 2 x 3§ , £4 2 2x 2 2 x 3§ 1 a2 1 x 3 b 5 6 2 2x 2 1 3x 3 ; 3 3 3
l’inéquation stricte , est vraie car x 3 > 0 et donc a2 1
13
x 3 b est positif. 3 Pour éliminer x1 on écrit que chacun de ses majorants (cf 2ʹ et 3ʹ) est supérieur à chacun de ses minorants. 2) Lorsque l’on a supprimé ( 2 r ) , on peut écrire que le second membre de ( 3 r ) , borne supé rieure de x1 , est supérieur ou égal au second membre des inégalités ( 1r ) , ( 4r ) , ( 5r ) et ( 6r ) . Ainsi x1 est « éliminé » : 3 3 4 x2 2 23 1 x 3 < 4 2 2x 2 2 x3 4 3 5 3 3 4 23 2 x2 1 x 3 < 4 2 2x 2 2 x3 4 20 3 g 1 1 4 x 3 < 4 2 2x 2 2 1 2 x2 1 x3 2 3 5 7 4 x 2 2 7x 3 < 4 2 2x 2 2 7 2 x3 , 3 6 ce qui fournit :
13
x2 1
5 5 x2 4 h 3 x2 2 5 x2 6 552
1 1 2
7
12 89
60 23 15 17 3
x3 < 7
( 1s )
x3 < 7
( 2s )
x3 < 3
( 3s )
x 3 < 23 ( 4s ) .
Solutions des exercices du chapitre 8
On constate sans peine que ( 3s ) entraîne ( 2s ) ; car
3
5
3 d
2
5
6
x2 1 x2 2
23 15
17 3
3
x3
et
23
89
en multipliant 15 60 21 39 161 21 ( 1s ) par 3 et ( 3s ) par 7, on voit que ( 3s ) entraîne aussi ( 1s ) car et . . . 2 12 15 5 3) Il reste donc : 2
.
45
.
23
2
17
1
9
45
46 5
34
x2 x 2.
L'élimination de x3 conduit à : 9
17
1
5
34
x2
23 1 x 3 ; x 1 > 1 1 x 3 ; x 1 > 7 2 x 3 . 4 3 20 5 La première est toujours vérifiée, ainsi que la troisième, puisque l’on connaît des bornes 9 45 de x3 : x3 ≤ et x 3 > . 17 23 De la deuxième et l’avant-dernière, on tire : 94
© Dunod – Toute reproduction non autorisée est un délit.
Mais, de plus, on a :
d’où :
85
< x1
1 2 x1 et x1 > 1 1 a1 2 x1 b , 7 7 5 x1 >
7
. 6 Comme on doit minimiser x1, on prendra la plus petite borne possible dans l’intervalle 7 56 5 7 B , R, soit , puis x3 5 , qui est également la plus petite valeur possible, compte tenu 6 17 6 6 de la valeur imposée à x1 :
553
Solutions
Finalement : x *1 5
7
6
5 1 x3 > 1 2 x1 5 . 7 6 ; x *2 5 0 ; x *3 5
5
6
et min F 5 x*1 1 x*2 1 x*3 5 2 .
8.7 Dans 215 cm, on peut disposer : 2 deux fois la largeur A, avec une chute : 215 2 2 × 95 5 25 cm ; 2 une fois A et une fois B, avec une chute : 215 2 (95 1 84) 5 36 cm ; 2 une fois A et deux fois C, avec une chute : 215 2 (95 1 2 × 60) 5 0 : pas de chute ; 2 il n’est donc pas intéressant de considérer seulement une fois A et une fois C ; 2 deux fois B, ce qui donne une chute de 215 2 2 × 84 5 47 cm ; 2 deux fois B et deux fois C, ce qui donne une chute de 215 2 (84 1 2 × 60) 5 11 cm ; 2 trois fois C, ce qui donne une chute de 215 2 (3 × 60) 5 35 cm. En résumé :
Plan
« Chute » ou perte
de coupe
j 1 2
AA AB
(en cm)
Longueur découpée selon ce plan
25 36
x1 x2 x3
3 4
ACC BB
0 47
5 6
BCC
11
x5
CCC
35
x6
x4
On a noté xj, la longueur de rouleau découpée suivant le plan de coupe j. 2x1
1
x2
1
x2 e
x1
,
x2
x3 1
,
2x3 x3
2x4
1 1
,
x4
,
x5
2x5 x5
1
,
3x6 x6
> 180 (A) > 90 (B) > 90 (C) > 0
min 25x1 1 36x2 1 0x3 1 47x4 1 11x5 1 35x6 5
z
(« coût ») ;
On peut satisfaire (A) à coût nul, en prenant x3 5 180 ; alors (C) est satisfaite. Le « moins cher » pour satisfaire (B) est de prendre x5 5 90, car x5 a le plus petit coût parmi les variables figurant dans B. Dans la suite on retranche une variable d’écart à chacune des trois contraintes ci-dessus : x 1 dans (A), x 2 dans (B) et x 3 dans (C).
554
Solutions des exercices du chapitre 8
Ce raisonnement reste valable si, au lieu de prendre x3 5 180, on prend x3 > 180 : cela vient du fait que les longueurs découpées en excédent de la commande, ne sont pas considé rées comme des chutes (mais utilisées pour des commandes ultérieures...). La solution générale est donc : b
#
B
1 0
£0 1
0
0§
2 2 21
xB
x5 5 90
£0 1 2 0 0 0 0 3
1
x3
5
u >0
2 1 0 0 21
£ x5 §
21
z 5 990
N
1
x3
#
dét B 5 21, B
x3 5 180 1 u
1 dét B
21
xN x1 x2
0
#
0 21 § 0 0
1 0
0 0
#
F
x4
x6 V x1
5
b
180
5 £ 90 § . 90
x2
0
° 0 21 0 ¢ 5 ° 0 1 0¢. 22 22 1 2 2 21
Remarque. Ici on a B 2 1 5 B, mais c’est une coïncidence ! (B est une matrice « involutive »). Multiplions à gauche par B21 ; il vient : xB 1 B 2 1 # N # xN 5 B 2 1 # b : x1
x3
2 1 0
C x5 S 1 C 0 1 2 x3
0 21 0
0
0 21 S
4 4 4 23 22 22
Passons à la fonction économique :
x2
#
180 x4 F V 5 C 90 S . x6 450 x 1
x2
© Dunod – Toute reproduction non autorisée est un délit.
Z r 5 cB # xB 1 cN # xN , or xB 5 B 2 1 # b 2 B 2 1 # N # xN
Z r 5 ( cB # B 2 1 ) # b 1 ( cN 2 cB # B 2 1 # N ) xN 5 Z 1 DN # xN . 3 5 5 1 2 4 6 1 2 Ici : cB 5 ( 0, 211, 0 ) et cN 5 ( 225, 236, 247, 235, 0, 0 ) . D’où : 180
Zr 5 3 0, 211, 0 4 # C 90 S 450
1 (voir en page suivante)
555
Solutions
x1
° 3 225, 236, 247, 2350, 0, 0 4 2 3 0, 211, 0 4
2 1 0
0 21
# C0 1 2
0
x2
0
0 21 S ¢
4 4 4 23 22 22
x
# F 4V x 6
x1
x2
Z r 5 2990 1 ( 3 225, 236, 247, 235, 0, 0 4 1 3 0, 11, 22, 0, 0, 211 4) # xN , soit : Zr 5 2990 2 25x1 2 25x2 2 25x4 2 35x6 ) 1 0x1 2 11x2. Le tableau associé est le suivant : ci
i
1
2
3
4
5
6
1
2
3
0
x3
2
1
1
0
0
0
1
0
0
180
11
x5
0
1
0
2
1
0
0
1
0
90
0
x
4
4
0
4
0
3
2
2
1
270
0
25
0
35
0
11
0
3
25 25
c e Puisque D1 5 0 (et x 1 hors base), en faisant entrer x 1 dans la base on obtiendrait une solu tion équivalente ; mais les coefficients de la colonne 1 sont tous négatifs ou nuls : la solution est alors rejetée à l’infini : ceci est dû à la chute nulle pour le plan de coupe 3 : ACC. L’énoncé du problème est critiquable ; on pourrait le compléter en exigeant de ne pas décou per plus de 20 % en excédent de chaque commande. L’introduction de x 1 en base conduit à poser x 1 5 u > 0 ; il vient : x3 5 180 1 u
c x5
5 90
(avec u > 0) et Z 5 2Zr 5 990.
x3 5 270 1 2u On retrouve ainsi la forme générale des solutions, obtenue par un raisonnement direct, plus haut. 8.8 1) On vérifie d’abord que la solution proposée est “admissible” : elle vérifie bien les contraintes. La solution proposée comporte m 5 3 variables positives : x2, x3 et x5. Vérifions que la matrice B associée est régulière (B est formée des colonnes 2, 3 et 5), donc que son déterminant est non nul : 1 21 0 dét B 5 † 1 7
2) Rappelons que B 2 1 5 556
1
dét B
3 1† 5 1 0 2
# B matrice transposée R. des cofacteurs
Solutions des exercices du chapitre 8
On pourrait aussi calculer B21 en résolvant le système littéral de 3 équations à 3 inconnues : x a x 2 y 5 a B # £ y S 5 C b S soit c x
1 3y 1
z
5 b
z c 7x 1 2z 5 c On exprime alors x, y et z en fonction de a, b, c. Or : a x Cy S 5 B21 # CbS c z Ainsi dans l’expression obtenue de x, y et z, les coefficients sur a, b et c sont ils les coef ficients de B 21. On trouve : B
21
6 5
5 £
2 21 2 21 § .
221 27 4 L’expression des variables de base en fonction des variables hors-base s’écrit matriciellement : 1 4 1 1
xB 5 B 2 1 # b 2 B 2 1 # N # xN , où N 5 C 3 3 S ; d’où : 2 1
xB 5 B 21 # b 2 B 21 # N x2
2
C x3 S 5 C 1 S 2 C x5
3
10
11
# xN x1
6
2 21
1 1
10 S # B R car B 2 1 # N 5 C 5 2 21 S # C 3 3 S x4 221 27 4 2 1 234 238 9
x2 5 2 2 10x1 2 11x4
© Dunod – Toute reproduction non autorisée est un délit.
Soit : c x3 5 1 2
9x1
2
10x4
x5 5 3 1 34x1 1 38x4 3) En remplaçant dans Ζ les variables hors base par leur expression ci-dessus, il vient : Ζ 5 23 1 62x1 1 70x4. Puisque D1 5 62 et D4 5 70 sont positifs, la solution de base courante n’est pas optimale. 4) Voici le tableau correspondant à cette solution de base :
557
Solutions
s
d
x1
x2
x3
x4
x5
i / ie
x2
10
1
0
11
0
2
2/11
x3
9
0
1
10
0
1
x5
34
0
0
38
1
3
1/10 * 0
62
0
0
70
0
Z 23
c e
En faisant entrer x4 en base (d’après le 1er critère de Dantzig), x3 sort de la base. La nou velle base ainsi obtenue est optimale : x1
x2
x3
x4
x5
x2
0,1
1
1,1
0
0
0,9
x4
0,9
0
0,1
1
0
0,1
x5
0,2
0
3,8
0
1
6,8
1
0
7
0
0
Z 30
La solution optimale est : x1 5 0 , x2 5 0,9 , x3 5 0 , x4 5 0,1 , x5 5 6,8 et Ζ 5 30. 8.9 1) La solution optimale de PL2 est x *2 5 100 , x *1 5 0 , Z *2 5 100. Elle est obtenue après 3 itérations (si l’on applique le premier critère de Dantzig pour déterminer la variable entrante). Celle de PL3 est x *3 5 1002 , x *1 5 x *2 5 0 et Z*3 5 10 000 , obtenue après 7 itéra tions. 2) La solution optimale de PLn est x *n 5 100n 2 1 ; x *1 5 x *2 5 c5 x *n 2 1 5 0 , obtenue après 2n21 itérations, avec Z*n 5 100n 2 1. 3) En faisant entrer en base initialement xn , c’est-à-dire la variable qui a le coefficient Dj le plus PETIT positif (contrairement au 1er critère de Dantzig qui fait choisir le Dj le plus GRAND positif), on obtient l’optimum... en une seule itération ! et de xn. En effet la base optimale est formée des variables x , x , c, x 1
2
L’expression de xn en fonction des variables hors base est : x n 5 100
n21
n21
n21
n21
2
a2 # a 10n 2 j # x j b j51
2 xn
Exprimons alors Z 5 a 10n 2 j # xj 1 xn , en fonction des variables hors base : x1, x2, c, xn 2 1 et x n . j51 n21
Il vient : Z 5 2 a 10n 2 j # x j 2 x n 1 100n 2 1 j51
Ainsi Dj 5 210n 2 j pour j 5 1, 2, c, n 2 1 et Dj 5 21 pour j 5 n. Les Dj des variables hors base étant négatifs, on est bien à l’optimum de PLn. 558
Solutions des exercices du chapitre 9
Solutions des exercices du chapitre 9 9.1 1) Les minimums en ligne sont 3, 27 et 22 ; le maximin est 3 (= a12). Les maximums en colonne sont 6, 3, 5 et 4 ; le minimax est 3 (= a12). Ce jeu comporte un point-selle : a12 = 3 (on vérifie que cet élément est le plus petit dans sa ligne et le plus grand dans sa colonne). La valeur du jeu est donc g = 3. A a intérêt à toujours jouer la ligne du maximin, donc sa stratégie 1. B a intérêt à toujours jouer la colonne du minimax, donc sa stratégie 2. 2) Le jeu comporte quatre points-selle : a12 = a14 = a32 = a34 = 3. Dans le cas de points-selle multiples, ceux-ci sont disposés comme les sommets d’un quadrillage. On montre que si n lignes et m colonnes comportent des points-selle, le tableau comportent m 3 n pointsselle. Le joueur A a intérêt à jouer chaque ligne comportant un point-selle avec la fréquence 1 1 1 1 (ici : ) et B chaque colonne comportant un point-selle avec la fréquence (ici : ) . m n 2 2 9.2 1)
On s’aperçoit tout de suite que la troi sième colonne correspond à une stratégie récessive ; en effet en la comparant avec la première colonne :
B
A
q1
q2
q3
p1
2
1
3
p2
2
3
1
p3
1
0
2
3 . 2 ; 21 . 22 ; 2 . 21. Par suite q3 = 0. B
© Dunod – Toute reproduction non autorisée est un délit.
Il suffira donc de résoudre le jeu réduit ci contre : Or maximin 5 21 , minimax = 2 : ce jeu est sans A point-selle. 2) Le programme, pour B, est : min g 2q1 2 q2 < g
Bf
22q1
1 3q2
2q1
q1 q1
maximin
q1
q2
p1
2
21
21
p2
22
3
22
p3
21
0
21
2
3
minimax
< g < g
1
,
q2 q2
5 1 > 0
Comme : q1 + q2 = 1, on remplacera q2 par 1 – q1 dans les inéquations précédentes, d’où : 2q1
Bd
2 2q1
2 1
( 1 2 q1 )
3 ( 1 2 q1 )
2 q1
0
>
3
2
1
2
4p1 1 c
24p1
> > 2
5
2
5
2
Solutions des exercices du chapitre 9
5 5 p1 > et p < , 8 8
d’où : soit :
p1 5
On a alors :
p2 5 5
5
8
,
8
.
3
3 ; p2 5 ; p3 5 0 . 8 8 Le fait que p3 = 0 ne signifie pas, ici, qu’il y a une dominance en ligne : on ne peut pas dire que la ligne 1 ou bien la ligne 2 domine la ligne 3. Cependant si l’on fait la combinaison 1 1 linéaire : 3 ligne 1 1 3 ligne 2 , après suppression de la colonne 3 (qui est une stratégie 2 2 récessive), on trouve : 0 1 . Cette nouvelle ligne domine la ligne 3 restante, soit : 21, 0 . p1 5
Ainsi :
9.3 1) Première méthode de résolution Écrivons le programme relatif au joueur Β : 2q1 1 3q2 2 2q3 2 q4 < g 2q1
Syst. I e 2q1 q1
1 2 1
,
q1
5q2 1 4q3 2 2q4 < g 5q2 q2
1
,
q2
q3
q3
1 3q4 1
,
q4
q4
B
5 1
> 0
A
et remplaçons q4 par 1 – q1 – q2 – q3 . On obtient : 1
q2
1
q3
3q1
1 4q2
2
q3
2 1 < g
2 8q2
2 3q3
1 3 < g
© Dunod – Toute reproduction non autorisée est un délit.
2q1
q1
1 7q2
1 6q3
,
,
q2
q3
q2
q3
q4
p1
2
3
2
1
p2
1
5
4
2
p3
2
5
0
3
< 1 ( 3 q4 5 1 2 q1 2 q2 2 q3 > 0 )
q1 e q1
q1
< g
2 2 < g
> 0
Pour la résolution, nous omettrons la première contrainte, pour la vérifier seulement a posteriori (en relâchant cette contrainte, on pourrait avoir à l’optimum q1 1 q2 1 q3 . 1, ce qui impliquerait que q4 serait... négatif ; comme nous le verrons ce n’est pas le cas ici, avec le tableau du jeu ci-dessus). Ajoutons les variables d’écart q5, q6 et q7, non-négatives ; il vient : 3q1 c q1 2q1
1 4q2
1 7q2
2 8q2
2 1
q3
1
q5 2 1 5 g
6q3 1 q6 2 2 5 g
2 3q3
1 q7
1 3
5 g
d’où, en soustrayant la dernière équation des deux premières : 561
Solutions
b
4q1 1 12q2 1 2q3 1 q5 2 q7 2 4 5 0 2q1 1 15q2 1 9q3 1 q6 2 q7 2 5 5 0.
On aura donc à résoudre le programme linéaire : 4q1 1 12q2 1 2q3 1
c
2q1 1 15q2 1 9q3 1 3 min 2q1 2 8q2 2 3q3 1
q5
2 q7
q6
2 q7
5 4 5 5
5 g23
q7 4
Il revient au même de chercher le maximum de Ζ = [q1 + 8q2 + 3q3 – q7] sous les mêmes contraintes, qui est l’opposé de g – 3. La méthode des tableaux donne (notez l’absence d’une colonne 4 : q4 a été substituée) :
"
s
1
2
3
1 5
2 6
3 7
5
4
12
2
1
0
1
4
4/12 1/3 *
6
2
15
9
0
1
1
5
5/15 1/3 *
cj
1
8
3
0
0
1
j
1
8 c e
3
0
0
1
ci
i
0 0
j
Z0
Noter l’égalité des deux rapports 4/12 et 5/15 : une dégénérescence de deuxième espèce (cf 8.3.2) va apparaître. ci
i
0
5
8
2
j
cj
1 36 15 2 15
2
1
8
1 15
0
*j
d’où q2 5
1
3 1
0 1
3 78 15 9 15
1 5 1 0
3
0
27 15
0
2 6 12 15 1 15
3 7 3 15 1 15
0
1
8 15
et q1 = q3 = (q5 = q6 = q7) = 0 ; on voit donc que : q4 5
7 15 2
3
0 1 3
Z
8 3
(qui est bien positif !)
car Z 5 2 ( g 2 3 ) , c-à-d g 5 3 2 Z. 3 NB. On observe qu’à l’optimum, la variable de base q5 est nulle : il s’agit d’une dégéné rescence (de deuxième espèce). et que g 5
562
Solutions des exercices du chapitre 9
Pour obtenir les valeurs de p1, p2 et p3, on pourrait résoudre le programme : 2p1 2
p2 1 2p3 >
3p1 1 5p2 2 5p3 > Syst. II i22p1 1 4p2 2p1
2 2p2
p1 1 p1 ,
> 1 3p3
p2 1 p2 ,
>
p3 5 p3 >
1
3 1
3 1
3 1
3 1 0.
On pourrait aussi se servir du fait que q1 et q3 sont nuls, d’où la simplification : 3p1 1 5p2 2 5p3 > e 2p1 2 2p2 1 3p3 > p1 1 p1 ,
p2 1 p2 ,
p3 5 p3 >
1
3 1
3 1 0.
On peut aussi, plus simplement, utiliser les propriétés de la dualité. En revenant au tableau 8 7 . ; p3 5 2D3* 5 optimal, on voit que : p1 5 2D1* 5 0 ; p2 5 2D2* 5 15 15 Mais ce n’est qu’une solution de base. L’autre ap1 5
9
; p2 5
10
; p3 5
31
b serait four 39 78 26 nie en faisant sortir de la base la variable 5 au lieu de la variable 6 lors de la 1ère itération ci-dessus. Tous les points de l’arête joignant les deux sommets associés à ces deux solutions de base sont des solutions optimales.
© Dunod – Toute reproduction non autorisée est un délit.
Voici d’ailleurs le détail des deux itérations (le premier tableau de la page précédente est inchangé : il suffit d’y cercler 12, le pivot cette fois, au lieu de 15) :
ci
i
8 s 0
1
2
3
5
6
7
2
1/3
1
1/6
1/12
6
3
0
13/2
5/4
0 1
1/12 1/4
cj
1
8
3
0
0
1
j
5/3
0
5/3
2/3
0
1/3
5
6
7
j
↑
1/3 0 8 Z3
e
ci
i
8 3
1
2
3
2
16/39
1
0
3
6/13
0
1
1
8
3
0
0
j
cj j
1/39 7/78 1/26 5/26 2/13 1 0 0 3/26
1/3563 0
9/26 10/39 31/78 Z
8
5/4
0 1
1/12 1/4
3
0
0
1
5/3
2/3
0
1/3
5
6
7
8
2
1/3
1
1/6
1/12
s 0
6
3
0
13/2
cj
1
8
j
5/3
0
Solutions
↑
1/3 0 8 Z3
e
ci
i
8 3
1
2
3
2
16/39
1
0
3
6/13
0
1
cj
1
8
3
1/39 7/78 1/26 5/26 2/13 1 0 0
j
35/39
0
0
8 9/26 10/39 31/78 Z 3
j
1/3
3/26
0
Pour bien comprendre ce qui se passe, considérons le triangle PQR représentant la partie utile du plan p1 1 p2 1 p3 5 1, car c’est dans cette partie du plan que se trouvent toutes les solutions. 1 La trace du plan 2p1 2 p2 1 2p3 5 3 sur le plan PQR est CD. Comme il limite le demi-espace fermé situé du côté opposé à l’origine par rapport à ce plan, la partie convenable de PQR est désormais située à gauche de CD. La trace du plan vertical 1 22p1 1 4p2 5 sur le plan PQR est 3 EF et la partie utile du triangle est à droite de EF.
1 1 Les traces des plans 3p1 1 5p2 2 5p3 5 et 2p1 2 2p2 1 3p3 5 sont confondues et 3 3 constituées par le segment AB. Du fait que l’un des demi-espaces fermés permis serait vers le haut et l’autre vers le bas, les solutions sont sur AB, dont la partie à retenir, compte tenu des limitations apportées ci-dessus, est le segment AG. 8 7 Il n’y a donc que deux solutions de base : l’une au point A ap1 5 0 ; p2 5 ; p3 5 b, 15 15 10 31 9 l’autre au point G ap1 5 ; p2 5 ; p3 5 b. 39 78 26
Les coordonnées de tous les points de l’arête AG (fermeture convexe des sommets A et G) satisfont aux relations du système II. Posons u > 0, v > 0 avec u 1 v 5 1 La solution générale est : p1 5 0u 1
564
9
26
v, p2 5
8
15
u1
10
39
v, p3 5
7
15
u1
31 78
v.
Solutions des exercices du chapitre 9
2) Deuxième méthode de résolution On peut aussi résoudre, par la méthode de division par la valeur du jeu (après s’être ramené à un jeu à valeur positive gr). L’avantage en est que les deux programmes linéaires associés aux joueurs A et Β sont en dualité : on transforme le problème en ajoutant 5 à tous les éléments de la matrice du jeu, afin d’être certain d’avoir une valeur de jeu modifié, gr, qui soit positive : gr 5 g 1 5 . 0. 1
5 qr1 1 qr2 1 qr3 1 qr4 : après avoir divisé tous les éléments des gr lignes par gr, de sorte que, quel que soit i : qi qri 5 . gr On cherche alors max
7qr1 1
B
8qr2 1 3qr3 1 4qr4 < 1
4qr1 1 10qr2 1 9qr3 1 3qr4 < 1 1 5qr3 1 8qr4 < 1 7qr1 1 3 max 4 Z r 5 qr1 1 qr2 1 qr3 1 qr4 5 gr
A
Syst. I f
7
8
3
4
4
10
9
3
7
0
5
8
jeu modifié
arij 5 aij 1 5
D’où après ajout des variables d’écart qr5, qr6 et qr7 :
s
1
2
3
4
5
6
7
0
5
7
8
3
4
1
0
0
1
0
6
4
10
9
3
0
1
0
1
0
7
7
0
5
8
0
0
1
1
1
1
1
1
0
0
0
Z 0
↑
© Dunod – Toute reproduction non autorisée est un délit.
e
On obtient après une itération : 1
s
2
0
5
19/5
0
1
2
2/5
1
0
7
7
0
3/5
0
3
4
21/5 8/5 9/10 3/10 5
8
1/10 7/10 ↑
5
6
7
1
0
1/5
(1/5) / (8/5) = 1/8 *
0
4/5 1/10
0
1/10
(1/10) / (3/10) = 1/3
0
0
1
1
0
1/10
0
1
/
8
= 1/8 *
Z 1/10
e
565
Solutions
puis en faisant entrer la variable 4r en base, on a le choix de faire sortir 5r ou bien 7r. En choisissant 7r il vient l’optimum :
1
2
3
4
5
0
1
0
0
0
5
12/5
0
1
2
11/80
1
26/5 57/80
1
4
7/8
0
5/8
1
0
1/80
0
27/80
0
0
6
7 0
4/5 1/5 1/10 3/80 0
1/16
1/8
1/8 Z
1/10 7/80
3 16
g 163
Comme pour la méthode utilisée plus haut, on tombe sur une dégénérescence de deuxième 7 1 espèce. Par dualité il vient : pr1 5 2D5 r 5 0 ; pr2 5 2D6 r 5 . Or : ; pr3 5 2D7 r 5 10 80 pi 16 1 # 5 8 , p3 5 16 # 7 5 7 . pri 5 , d’où : pi 5 gr # pri et : pi 5 0 , p2 5 3 10 3 80 15 15 gr En faisant sortir de la base la variable 5r (au lieu de 7r) dans le tableau obtenu après une itération, il vient :
s
1
2
3
4
5 5/8
1
4
19/8
0
21/8
1
1
2
5/16
1
27/16
0
0
7
12
0
26
0
5
31/16
0
7/16
17/16 0
6
7 0
1/8
0
1/16
4
1
0
1/4
0
Z
1/2 3/16 1/4
↑
3 16
e
et après une itération où l’on fait entrer en base 3 r et sortir 7r, il vient l’autre optimum :
1
4
1
2
1
3
1 121 104 97 208 6 13 35 208
566
2
3
4
0
0
1
1
0
0
0
1
0
0
0
0
5 6 7 25 21 5 208 52 208 1 27 57 416 104 416 2 1 5 26 13 26
27 5 31 416 104 416
1 8 1 16 0 Z
16 3 g 3 16
Solutions des exercices du chapitre 9
On retombe évidemment sur les deux solutions de base optimales (déjà obtenues par la 1re méthode) : 1 q2 5
16 3
# 1 5 1 ; q4 5 16 # 1 5 2 ; q1 5 q3 5 0 ; (car qj 5 gr # qrj ). 16
p1 5 0 ; p2 5 g5 2 q2 5 p1 5
1 Zr
255
3
16 3
16 3
8
3
3
# 1 5 8 ; p3 5 16 # 7 5 7 : comme déjà vu plus haut. 10
2
15 3
3
15
5
1
80
15
.
3
16
# 1 5 1 ; q4 5 16 # 1 5 2 ; q1 5 q3 5 0 .
16
# 27 5 9 ; p2 5 16 # 5 5 10 ; p3 5 16 # 31 5 31 ;
3
3
16
3
3
8
416
26
3
104
3
39
3
416
78
car p1 5 gr # ( 2D5 ) , p2 5 gr # ( 2D6 ) et p3 5 gr # ( 2D7 ) , par dualité. On retrouve : g 5 gr 2 5 5
16 3
255
1
3
.
567
Bibliographie générale
Nous fournissons ici, outre les références bibliographiques citées tout au long de ce précis de recherche opérationnelle, une liste d’ouvrages dans lesquels le lecteur pourra approfondir les notions élémentaires de recherche opérationnelle que les auteurs se sont essayés de transmettre dans les différentes parties constituant ce document. Les références bibliographiques relatives aux chapitres 10, 11 et 12 sont situées à la fin de chacun de ces chapitres. R.K. Ahuja, T.L. Magnanti et J.B. Orlin, Networks Flows, Prentice Hall, 1993. A. Alj et R. Faure, Guide de la recherche opérationnelle, tome 1 : les fondements, 1986, tome 2 : les applications, Masson, 1997. C. Berge, Graphes, Dunod, 1983. V. Chvatal, Linear programming, Freeman, 1983. E. Cinlar, Introduction to stochastic process, Prentice Hall, 1975. T. Cormen, C. Leiserson, R. Rivest et C. Stein, Introduction à l’algorithmique, Dunod, 2002. M.R. Garey and D.S. Johnson, Computers and intractability, a guide to the theory of NP-completeness, Freeman, 1979. M. Gondran et M. Minoux, Graphes et algorithmes, Tec et Doc, 2009. Groupe Gotha, Modèles et Algorithmes en Ordonnancement, Ellipses, 2004.
D.S. Hochbaum, Approximation algorithms for NP-hards, Problems, PWS Publishing Compagny, 1997. R. Jain, The art of computer systems performance analysis, Wiley, 1991. L. Kleinrock, Queueing systems, volume 1 : theory, volume 2 : computers applications, Wiley, 1976. M. Minoux, Programmation mathématique, théorie et algorithmes, 2 tomes, Tec et Doc, 2008. A. Pagès et M. Gondran, Fiabilité des systèmes, Eyrolles, 1980. Roseaux, Exercices et problèmes résolus de recherche opérationnelle, tome 1 : graphes, leurs usages, leurs algorithmes, 3e édition, 2005 ; tome 2 : phénomènes aléatoires en recherche opérationnelle, 2e édition, 2004 ; tome 3 : programmation linéaire et extensions, problèmes classiques, 3e édition, 2009, Dunod.
Index A absorbant 195 absorption 7, 15 accessibilité 81 actualisation 102 affectation 139 algèbre de Boole 9 algorithme(s) approché 52 de Bellman 113 de colonies de fourmis 415 de Dijkstra 111 de Ford 111 de Kruskal 146 de Prim 148 de Sollin 147 du recuit simulé 406 génétiques 412 anneau abélien 21 antisymétrique 2 apériodique 197 approvisionnements 239 arborescence 62, 73, 145 arbre 62, 145 de valeur minimale 146 arc arrière 97 associativité 7 atomes 10 avarie probabilité d’– 230, 239 taux d’– 234
B Balas-Hammer 157 base 326 Bellman 113 bin packing 169 Bland 314 Boole algèbre de 9 treillis de 9 borne
inférieure 6 supérieure 6 boucle(s) 6, 61 Busacker 136 Busacker-Gowen 137
C capacité 128 résiduelle 130 chaîne 5, 61 chaîne améliorante 130 Chapman-Kolmogorov 190, 198, 201 chemin(s) 5, 61 critique 119 de valeur minimale 105 hamiltonien 64 circuit hamiltonien 64, 163 classe(s) d’états transitoires 193 périodique 194 récurrentes 193 clauses 50 co-circuit 139 commutativité 7 complémenté 8 complet 62 complexité dans le cas moyen 46 dans le meilleur des cas 46 dans le pire des cas 46 composantes 62 connexes 62 fortement connexes 68 Concordance 430 connexe 62 connexité 77 conservation 277 constituant premier 22 contraintes 297 du type cumulatif 115 du type disjonctif 115
du type potentiel 115 convexe 307 corps d’ensembles 10 coupe 132 minimale 134 coupes (théorème des –) 204 courbes « en baignoire » 234 coûts de substitution 164 Cramer 327, 340 critère 421 critère de Dantzig 315 cycle 62
D Dantzig (critère de –) 314 dégénérescence 321, 322 dépiler 86 descendants 66 Dijkstra (algorithme de –) 111 diagramme de Hasse 5 différence symétrique 10 Discordance 432 disponibilité asymptotique D* 255 diversification 410 dominance 380, 383, 425 dual 334 dualité 342, 377 durée de vie moyenne 231, 232
E échantillonnage préférentiel 397 échéancier 386 Egervary 142 élément maximal 6 minimal 6 élémentaire 61
Index
empiler 86 entrée 66 entretien préventif 244 énumération implicite 33 équivalence 3 ergodicité 202 ergodique 195 Espace des décisions 423 espace d’états 188 état(s) accessible 192 communicants 192 Euler-Venn 11 évaluation 170 événements 116
F Faure et Malgrange 163 méthode booléenne 31 fermeture transitive 65 fiabilité 229 de montages sérieparallèle 252 des systèmes réparables 257 d’un système en parallèle 251 d’un système en série 251 file(s) 82 d’attente 187, 270 M/M/1 272 M/M/S 278 flot 128 maximale à coût minimal 134 valeur d’un 128 flux 128 fonction caractéristique 19 d’évaluation 170 Ford (algorithme de –) 105 Ford et Fulkerson 130 Ford-Fulkerson (théorème de –) 133 forêt couvrante 73 forme canonique conjonctive 16 canonique disjonctive 17 570
normale 381 standard 307, 324 formules de Little 277 fortement ergodique 195, 203
G garantie de performance 169 générateur infinitésimal 199 génération de colonnes 355 Gomory 352 troncatures de – 355 Gowen 136 graphe d’écart 135 d’état 385 groupe abélien 21
H Hasse (diagramme de –) 5 hauteur(x) 91 heuristiques 401 heuristiques « gourmandes » 156 homogène 189 Howard (méthode de –) 261
I idempotence 7 implication 15 inclusion 16 intensification 410 intersection 12 involutive 11
J jeu à somme nulle 368
K knapsack 171, 352 König 142 Kruskal (algorithme de –) 146 Kuhn 142
L linéaire 297 Little (formules de –) 277 lognormale 248 loi de Kirchhoff 128 de Poisson 238 de Rayleigh-Maxwell 235 de survie 233 de Weibull 235 exponentielle 211 longueur 61
M majorant 7 marge libre 127 marges 116, 127 marge totale 127 matrice stochastique 189 matrice d’adjacence 62 maximin 372 maximum 6 maxterme 16 MDT (Mean Down Time) 256 métaheuristiques 55, 401 méthode(s) booléenne de Faure et Malgrange 31 de Howard 261 des deux phases 336 des potentiels 122 de voisinage 55 hongroise 141 intérieures 342 matricielle 109 PERT 117 révisée 340 minimax 372 minimum 6 minorant 7 minterme 16 monôme premier 22 Morgan 12 mortalité relative 230 MPM 122
Index
MTBF (Mean Time Between Failure) 235, 256 MTFF 234 MTTF 235 multicritère à la décision 419 MUT (Mean Up Time) 256
N niveau d’aspiration 410 nombre de stabilité 102 noyau de synchronisation 386 NP-complets 50 NP-difficile 51
O ordonnancement 114 ordre 4 ordre topologique 113 ou exclusif 12
© Dunod – Toute reproduction non autorisée est un délit.
P parcours d’un graphe 70 en largeur 71, 82 en profondeur 71 partiel 5 partitionnement 353 périodicité 196 PERT 117 pièce(s) de fatigue 250 d’usure 250 pile 86 pivot 314, 316 point d’équilibre 372 selle 369 points d’aspiration 438 Poisson 209 loi de – 238 polyèdre 305 convexe 305 polytope 305 postvisite 71, 79 préordre 3 prévisite 71, 79
Prim (algorithme de –) 148 Principe de concordance 430 Principe de non discordance 430 probabilité(s) d’avarie 230, 239 de consommation 237 des états 200 de transition 189 problème de décision 48 d’optimisation 48 processus D.H. (décision-hasard) 218 de mort 212 de naissance 208 de naissance et de mort 213 markovien 188 sans mémoire 188 stochastique 187, 188 produit logique 19 programmation dynamique 99 stochastique 216 programme(s) de transport 149 dual 342 primal 342 propriété « sans mémoire » 198 pseudo-aléatoires 387 pseudo-critère 422 puits 128
Q quotient 3
R racine(s) 78, 145 rang 325 Rayleigh-Maxwell (loi de –) 235 récessive 380 recherche tabou 55, 408 recouvrement 352 recuit simulé 55, 404
réduction de variance 397 référentiel 11 réflexive 3 regrets 164 relation 1 binaire 1 d’exclusion 350 relation de surclassement 429 réseau de transport 128 Roy 136, 163
S sac à dos 170, 171 satisfiabilité 50 saturés 130 SEP 163 séparation 171 serveur 270 SES 163 simple 61 simplexe 306 simulation à événements discrets 385 analogique 385 numérique 385 Sollin (algorithme de –) 147 solution admissible 33, 328 de base 151, 327 somme disjonctive 10 logique 20 somme pondérée 427 sommets d’articulation 91 sortie 66 source 128 sous-chaînes 192 sous déterminé 325 sous-stratégie 218 stable 102 station 270 stepping-stone 159 stratégie(s) 367 de remplacement 259 « gourmande » 149 mixte 372, 373 pures 368 571
Index
symétrique 2 système(s) d’attente 271 réparables 254
T tâches 114 fictives 119, 120 taille de la donnée 44 taux d’avarie 234 théorème
572
de Ford-Fulkerson 130 des coupes 204 total 5 transitive 3 treillis 7 de Boole 9 troncatures de Gomory 355
V valeur du jeu 369, 376
variable(s) artificielle(s) 335, 336 de base 308, 326 d’écart 325 hors-base 308, 326 voisinage 403 voyageur de commerce 163
W Weibull (loi de) 235