Cours Recherche Op

60
1 Cours de Recherche Opérationnelle Niveau : TS. Année : 2010. Introduction : La Recherche opérationnelle est une science dont les fondements de bases et les premières applications datent de la deuxième guerre mondiale. Elle traite des problèmes résolus mathématiquement à l’époque afin de répondre à certaines exigences des responsables militaires. A la fin de la guerre les scientifiques se sont retrouvé avec une armada de méthodes qui permettent de résoudre certains problèmes, c’est à partir de là qu’ils ont pensé à développer cet acquis mais cette fois ci pour l’exploiter dans la vie quotidienne, en économie, en industrie et la recherche scientifique. La recherche opérationnelle en tant que science se partage en plusieurs filières suivant le type d’applications, ainsi elle est composée de : la Théorie des graphes, l’optimisation dans les réseaux, la programmation linéaire, la programmation non linéaire, l’optimisation combinatoire, La Modélisation, la simulation et l’aide à la décision monocritère et multicritère. Dans ce cours nous allons essayer de présenter quelques domaines de la recherche opérationnelle, nous commencerons dans un premier temps par la présentation des définitions de bases de la théorie des graphes, afin de vous familiariser avec le Jargon de ce domaine, ensuite nous entamerons la partie optimisation dans les réseaux dans laquelle on verra en détail les problèmes de cheminements leurs applications et leurs résolutions. Ensuite on passera aux principes de la programmation dynamique qu’on expliquera avec les méthodes de recherche des plus courts chemins dans les graphes. La gestion scientifique des stocks est un domaine très apprécié en recherche opérationnelle, de la nous présenterons les définitions de bases ainsi que les principes dominants.

Transcript of Cours Recherche Op

  • 1

    Cours de Recherche Oprationnelle Niveau : TS. Anne : 2010.

    Introduction :

    La Recherche oprationnelle est une science dont les fondements de bases et les premires applications datent de la deuxime guerre mondiale. Elle traite des problmes rsolus mathmatiquement lpoque afin de rpondre certaines exigences des responsables militaires. A la fin de la guerre les scientifiques se sont retrouv avec une armada de mthodes qui permettent de rsoudre certains problmes, cest partir de l quils ont pens dvelopper cet acquis mais cette fois ci pour lexploiter dans la vie quotidienne, en conomie, en industrie et la recherche scientifique.

    La recherche oprationnelle en tant que science se partage en plusieurs filires suivant

    le type dapplications, ainsi elle est compose de : la Thorie des graphes, loptimisation dans les rseaux, la programmation linaire, la programmation non linaire, loptimisation combinatoire, La Modlisation, la simulation et laide la dcision monocritre et multicritre. Dans ce cours nous allons essayer de prsenter quelques domaines de la recherche oprationnelle, nous commencerons dans un premier temps par la prsentation des dfinitions de bases de la thorie des graphes, afin de vous familiariser avec le Jargon de ce domaine, ensuite nous entamerons la partie optimisation dans les rseaux dans laquelle on verra en dtail les problmes de cheminements leurs applications et leurs rsolutions. Ensuite on passera aux principes de la programmation dynamique quon expliquera avec les mthodes de recherche des plus courts chemins dans les graphes. La gestion scientifique des stocks est un domaine trs apprci en recherche oprationnelle, de la nous prsenterons les dfinitions de bases ainsi que les principes dominants.

  • 2

    Nous terminons ce cours par la prsentation de quelques mthodes de simulation travers lesquelles on verra lapport de la recherche oprationnelle dans le domaine non dterministe et o lalatoire intervient.

    Chapitre 1 : Dfinitions de base de la thorie des graphes.

    Introduction : La thorie des graphes permet de transcrire concrtement des faits en les modlisant l'aide d'objets mathmatiques, afin de rsoudre des problmes tels : - Les problmes dordonnancement, qui ont pour but la recherche dun ordre optimal des tches pour une ralisation complexe : il sagit de trouver un ordre de ralisation des travaux, en minimisant le temps total et le cot total ; - Les emplois du temps et la rpartition des salles ; - Les problmes daffectations (organiser des quipes de travail pour quelles soient le plus efficaces possibles) ; Les problmes de maintenance (minimiser les stocks de pices de rechange, ou les cots dus larrt des machines) ; - Les problmes de comptition et de concurrence ; - Les problmes de classification de produits, ou dindividus. Le premier problme connu dutilisation dun graphe pour rsoudre un problme est celui des 7 ponts de Knigsberg , rsolu en 1735 par le mathmaticien suisse Leonhard Euler : La ville de Knigsberg (Prusse orientale) comptait 7 ponts, disposs selon la figure ci-contre.

  • 3

    Lhistoire veut que Lonard Euler, en visite dans cette ville, ait eu rsoudre le problme qui proccupait fortement ses habitants : Est-il possible de trouver un chemin qui emprunte une fois et une seule chacun des sept ponts de la ville et revenir au point de dpart? Pour cela, lide est de commencer par traduire lnonc du problme par un schma : Chaque lieu de la ville est repr par sa position gographique : N pour le nord de la ville ; S pour le sud de la ville, O pour louest et I pour le. Chaque pont sera alors reprsent par un trait reliant ces lieux entre eux.

    Cette modlisation sappelle un graphe : Quest-ce quun graphe ? Cest un ensemble de sommets et de liens entre 2 sommets que lon appelle artes. La traduction du problme de dpart en termes de proprits du graphe est alors : Peut-on circuler sur le graphe partir dun sommet en empruntant une fois et une seule chaque arte ? . Mais la thorie des graphes a rellement pris son dpart pendant la seconde guerre mondiale, plus prcisment en Angleterre en 1940, sous le nom d Operation Research . Ltat Major alli, qui devait accrotre lefficacit de ses oprations, en confia le travail au physicien Blackett. Il sagissait de rechercher la meilleure rotation des quipages dans les avions1, limplantation optimale des radars, plus tard lorganisation des convois transatlantiques

    Dfinitions de base.

    1) Gnralits sur les graphes Dfinition1: Un Graphe est un ensemble de points (appels Sommets du graphe) ventuellement relis par un ou plusieurs segment(s) appels Artes.

    Dfinition2: Un modle mathmatique est une traduction de la ralit pour pouvoir lui appliquer les outils, les techniques et les thories mathmatiques, puis gnralement, en sens

    inverse, la traduction des rsultats mathmatiques obtenus en prdictions ou oprations dans le monde rel. Ainsi la thorie des graphes sintresse aux modles mathmatiques dfinit par des graphes selon la dfinition1.

  • 4

    Sommet : Un sommet est un 'noeud' du graphe. C'est l'extrmit d'une arte. Arrte : On dsigne une arte par la pair de sommets quelle relie : {x,y} ou [x y], et on parle de larte dextrmits x et y; les sommets x et y sont alors dit adjacents, et larte et dite incidente aux sommets x et y.

    Graphe : Un graphe G est dfinit par un couple densembles, le premier reprsente lensemble des sommets X et le second reprsente lensemble des artes E. Et on crit alors G=(X,E), Le cardinal de X =n et sappel lordre du graphe G.

    Exemple : On sintresse un tournoi de football. Supposant que nous voulons organiser un tournoi de football avec 05 quipes. Nous cherchons voir quel est le nombre de matchs de football programmer ?

    Dans un premier temps en commence par la modlisation mathmatiques et la on suppose que les sommets reprsentent les diffrentes quipes et les artes reprsentent les rencontres de

    football. Donc il existe un arte relient deux sommets (x,y)X2.

    X={E1, E2, E3, E4, E5} E={(E1,E2), (E1,E3), (E1,E4), (E1,E5), (E2,E3), (E2,E4), (E2,E5), (E3,E4), (E3,E5)}

    Le graphe correspondant est :

    E1

    E2

    E3 E4

    E5

    G=(X,E)

  • 5

    Degr dun sommet : On appel degr dun sommet x, dans un graphe, G not d(x), le nombre dartes de G ayant x comme extrmit. Ou bien on dit que cest le nombre dartes incidentes au sommet x.

    Dans le graphe prcdant tous les sommets ont le mme degr est gal 4. Remarque : Pour un graphe G dordre n ; le degr dun sommet est un entier compris entre 0 et n-1.

    Graphe rgulier : Un graphe G est dit rgulier de degr r si tous les sommets sont de degr r. Le graphe prcdant est rgulier de degr 5. Thorme1 : Dans un graphe quelconque on toujours la somme des degrs est gale deux

    fois le nombre dartes m : d(x)=2m xX. Proposition1 : Dans un graphe le nombre de sommets de degr impair est toujours pair. Proposition 2 : Soit G=(X,E) un graphe dordre n >=2. Alors au moins deux sommets diffrents qui ont le mme degr. Graphe complet : Un graphe G est dit complet si et seulement si tous les sommets sont relis deux deux. Une boucle : est une arte dont les deux extrmits concident. Artes parallles : Soit G un graphe. On appel artes parallle des artes diffrentes de G ayant les mmes extrmits.

    Multi graphe : est un graphe admettant des artes parallles. Graphe simple : Soit G=(X,E) un graphe. G est simple sil nadmet pas de boucles et darcs parallles.

    E1

    E2

    E3 E4

    E5

    Exemple de graphe Simple

    E1

    E2

    E3 E4

    E5

    Exemple de graphe non Simple

  • 6

    Chaine: Une chaine est une suite fini de sommets et dartes Ch=[X0,e0,X1,e1X2,.., Xm-1,em-1,Xm]. Tel que : X0 et Xm reprsentent les extrmits de la chaine Ch, et m sa longueur l(ch)=m. Une chaine simple est une chaine dont toutes les artes sont distinctes. Une chaine lmentaire est une chaine dont tous les sommets sont distincts.

    Exemple :

    C1=[x1e1x2e2x3e3x5] est une chaine de longueur 3 avec x1 et x5 comme extrmits. Par contre : C2=[x1e1x2e2x3e3x5e4x1] est appel un cycle. Cycle : Un cycle est une chaine ferme, dont toutes les artes sont distinctes.

    Graphe connexe : Un graphe G est dit connexe, ssi, (x1,x2)X, une chaine reliant x1 x2. Sous Graphe : Soit G = (X, E) un graphe, pour un sous-ensemble de sommets A inclus dans X, le sous-graphe de G induit par A est le graphe G = (A, E(A)) dont l'ensemble des sommets est A et l'ensemble des artes E(A) est form de toutes les artes de G ayant leurs deux extrmits dans A. Autrement dit, on obtient G' en enlevant un ou plusieurs sommets au graphe G, ainsi que toutes les artes incidentes ces sommets. Graphe Partiel : Soit G = (X, E) un graphe. Le graphe G' = (X, E') est un graphe partiel de G, si E' est inclus dans E. Autrement dit, on obtient G' en enlevant une ou plusieurs artes au graphe G tout en gardant le mme ensemble de sommet X.

    Remarques : Un graphe partiel d'un sous-graphe est un sous-graphe partiel de G. Une clique : Une clique un sous-graphe complet de G. Stable : Un stable un sous-graphe de G sans artes.

    x1

    x2

    x3 x4

    x5

    G=(X,E)

    e1

    e2 e3

    e4

  • 7

    Exemples :

    Le graphe G

    Soit G=(X, E)

    X={x1, x2, x3, x4, x5}

    E={e1=(x1,x2),

    e2=(x2,x3), e3=(x1,x3),

    e4=(x3,x4), e5=(x3,x5)}

    Graphe partiel de G

    X'=X

    E'={e1, e4, e5}

    Sous-graphe de G

    X'={x1, x3, x4, x5}

    E'={e3, e4, e5}

    Sous-graphe partiel de G

    X'={x1, x2, x3, x4}

    E'={e1, e4}

    Une clique de G

    X'={x1,x2,x3}

    E'={e1, e2, e3}

    Un stable de G

    X'={x1,x4,x5}

    E'={}

    Graphe orient : En donnant un sens aux artes d'un graphe, on obtient un graphe orient. Dans ce cas lensemble des sommets X reste le mme, mais lensemble des artes E sera appel lensemble des arcs U qui est dfini par des paires ordonnes de sommets, car lorientation des arcs est importante. Ainsi dans le cas non orient larte e1=[x1 x2] est la mme que larte e1=[x2 x1], par contre, dans le cas orient larc u1=(x1,x2) est diffrent de larc u2=(x2,x1).

    Exemple :

    G=(X,U) est graphe orient

    u1

    u2 u3

    u5

    G=(X,U)

    x1

    x2

    x3 x4

    x5

  • 8

    Chemin : Dans un graphe orient, un chemin d'origine x et d'extrmit y est dfini par une suite finie d'arcs conscutifs emprunts dans le bon sens, reliant x y. La notion correspondante dans les graphes non orients est celle de chane. Un chemin lmentaire est un chemin ne passant pas deux fois par un mme sommet, c'est--dire dont tous les sommets sont distincts. Un chemin simple est un chemin ne passant pas deux fois par un mme arc, c'est--dire dont tous les arcs sont distincts. La longueur d'un chemin est le nombre d'arcs le constituant, ou bien, dans le cas d'un graphe pondr, la somme des poids des artes. Circuit : Un circuit est un chemin dont les deux extrmits sont identiques. Si le chemin est lmentaire, c'est--dire ne passe pas deux fois par un mme sommet, on parle de circuit lmentaire. Dans un circuit lmentaire, le degr des sommets est deux. Dans les graphes pondrs, le poids d'un circuit est la somme des poids des arcs qu'il contient. Si cette somme est ngative, on parle de circuit absorbant.

    Dfinition : Un graphe orient est dit fortement connexe ssi il ralise la relation R suivante : pour tout couple de sommets (xi,xj)X2 , un chemin permettant de joindre xi xj et un autre chemin permettant de joindre xj xi dans G. Nous pouvons dmontrer facilement que la relation R est une relation dquivalence, ainsi elle admet des classes dquivalences. Ces classes sont appeles des composantes fortement connexes.

    Remarque :

    1/On ne parle pas de forte connexit dans le cas non orient. 2/ il existe des algorithmes permettant de vrifier si un graphe est fortement connexe ou pas. 3/ Un graphe G est fortement connexe sil admet une seule composante fortement connexe. En dautres termes un graphe est fortement connexe si il admet un circuit passant par tous les sommets de G.

    Exemple : G1 nest pas fortement connexe car il existe un chemin entre x4 et x3 par contre il nexiste pas

    de chemin reliant x3 et x4. La composante {x1, x2, x3, x5} est une composante fortement connexe.

  • 9

    Graphe rduit : G : graphe orient admettant p composantes fortementconnexes : C1, C2, , Cp On dfinit le graphe rduit de G (not GR) par : GR=(XR,UR) avec : XR={C1,C2,,Cp} et (Ci ,Cj) UR si Il existe au moins un arc dans G ayant son extrmit initiale dans la composante fortement connexe Ci et son extrmit terminale dans la composante fortement connexe Cj.

    Reprsentation des graphes sur machines Soit G = (X,U) un graphe orient ayant n sommets. On dfini la matrice M associe, dont les lignes et les colonnes reprsentent les sommets de G, par : M = mij i,j = 1,, n tel que : mij = Nombre darcs reliant xi xj. Cette matrice est appele Matrice dadjacence sommet-sommet.

    G1=(X,U

    x1

    x2

    x3 x4

    x5

  • 10

    Exemple : La matrice dadjacence de lexemple suivant est:

    M=

    Remarque : Une boucle est toujours comptabilise deus fois.

    Dictionnaire des successeurs: Dans cette reprsentation, on dfinit le graphe par le dtail des successeurs de chaque sommet. Dictionnaire des prdcesseurs: Dans cette reprsentation, on dfinit le graphe par le dtail des prdcesseurs de chaque sommet.

    Exemple de graphe non Simple

    x1

    x2

    x3 x4

    x5

    X1 X2 X3 X4 X5 X1 2 1 0 1 0 X2 1 0 1 0 0 X3 0 1 0 1 0 X4 1 0 1 0 2 X5 0 0 0 2 0

  • 11

    Cheminement dans les graphes

    Graphe pondr : On appelle graphe pondr un graphe tel que, chaque arte e est associ un poids Pe. Les applications des graphes pondrs sont nombreuses : cartes routires avec des indications de dure, de tarif ou de distance porte sur des routes entre deux lieux, par exemple.

    Rseau : On appel rseau un graphe pondr ayant un seul sommet S avec d-g(S)=0 appel source et un seul sommet P avec d+g(P)=0 appel puit.

    Remarque : Dans le cas ou on a un graphe pondr avec plusieurs sommets xi ayant dg-(xi)=0 et plusieurs sommets yi ayant d+g(yi)=0, alors il suffit dajouter deux sommets fictifs S et P tels que : S sera reli tous les sommets xi et tous les sommets yi seront relis P. les

    pondrations des arcs fictifs ajouts seront gales 0 o linfini ( ) suivant le sens des pondrations du graphe initial.

    Chemin: Un chemin Ch est une suite darcs adjacents parcouru dans le mme sens. La longueur de ce chemin l(Ch) peut tre dfinit de deux manires diffrentes:

    1/ La longueur en termes darcs, et la on donne le nombre darcs constituants ce chemin. l(Ch)=nombre darcs de ch.

    2/ La longueur en termes de pondrations, et la on donne la somme des pondrations

    des arcs constituants ce chemin.l(Ch)= . Circuit : Un circuit est un chemin simple dont les deux extrmits concident. Ainsi on dfini la longueur dun circuit de la mme manire, par la longueur en terme darcs et la longueur en termes de pondrations.

    Circuit absorbant : Un circuit C est dit absorbant ssi, .

    Plus court chemin : On appel plus court chemin dans un rseau R, le chemin reliant S P dans R, ayant la somme des pondrations minimales de tous les chemins reliant S P dans R.

    Le Problme du plus court chemin : Le problme du plus court chemin est un problme ancien, prsent dans de nombreux domaines (trafics autoroutiers, ferroviaires, maritimes, investissement et gestion des stocks, optimisation dun rseau, intelligence artificielle, etc).

  • 12

    Le problme est simple : Comment, en partant dun point, arriver un autre point en faisant le moins de chemin possible ? Pour vous aider, prenons un exemple : Une voiture partant de Paris souhaite se rendre Toulouse. Mais lautoroute entre Paris et Toulouse est bouche. Le conducteur aimerait savoir si, en passant par Bordeaux, il mettra plus ou moins de temps que pour aller Toulouse par lautoroute. Sachant que le conducteur mettra 7 heures en passant par lautoroute, et quil mettra 5 heures pour aller Bordeaux, et 3 heures pour relier Bordeaux Toulouse. Le graphe ci-dessous rsume le problme.

    Chaque arc possde une pondration reprsentant le temps ncessaire de dplacement dun sommet vers un autre. On dit que ce graphe est un graphe orient , car les arcs ont un sens. Pour dterminer le plus court chemin entre Paris et Toulouse, il suffit dadditionner les longueurs darcs des diffrents passages pour aller de Paris Toulouse, et de les comparer. Ici, on a l (P => T) = 7 et l (P => B) + l (B => T) = 5 + 3 = 8 On peut donc voir que lautomobiliste ferait mieux de passer par lautoroute Paris-Toulouse, plutt que de faire un dtour par Bordeaux, o il perdrait une heure !

    Existence un plus court chemin : Soit R=(X,U,d) un rseau, on dit que R admet un plus court chemin, si et seulement si, R nadmet pas de circuit absorbant.

    Exemple :

  • 13

    Dans le graphe ci-dessous, le plus court chemin nexiste pas, car ce graphe admet un circuit absorbant (3,4,5,6,3). La somme des pondrations de ce circuit est gale (-3), chaque fois quand fait un passage sur ce circuit absorbant la valeur du plus court chemin diminue jusqua -.

    Proprits des plus courts chemins Proprit1 : Tout sous-chemin dun plus court chemin est un plus court chemin. Proprit2 : Sil existe un plus court chemin entre deux sommets x et y, alors il existe un plus court chemin lmentaire entre x et y.

    Il existe plusieurs algorithmes de recherche de plus cours chemin, on peut citer titre dexemple : lalgorithme de Bellmann, lalgorithme de Disjktra, lalgorithme de Bellmann-Fordetc.

    Algorithmes de recherche de plus court chemin :

    1/ Algorithme de Bellman : Lalgorithme de Bellman sapplique sur les graphes (rseaux) sans circuit, avec des pondrations quelconques. Ainsi nous devons assurer linexistence de circuit dans le graphe en question, pour cela nous dcrivons dans ce qui suit un algorithme simple permettant de vrifier si un graphe G est sans circuit ou non. Lalgorithme sappel algorithme de mise niveau.

    1.1. Algorithme de mise niveau : Le principe de cette algorithme est simple, il sagit de classer les sommets du graphe G par niveau ou par rang, si on arrive le faire alors le graphe est sans circuit, sinon on sera bloquer au niveau du circuit. Lalgorithme commence par chercher tous les sommets x de G ayant les dg-(x)=0 (cd, les sommets sans successeurs) et les mettres dans le mme niveau k, ensuite il faut supprimer tous les arcs sortants des sommets x du niveau k; et refaire la mme chose cd, chercher les nouveaux sommets ayant les dg-(x)=0, cette fois-ci on va les mettre au niveau k+1 et ainsi de suite, si on arrive class tous les sommets

    1 2 3 7

    4

    5

    6

    5 7 9

    3

    -2 -8

    4

  • 14

    de G donc le graphe est sans circuit, par contre, si on bloque quelque part dans G, cela veut dire que le graphe contient un circuit.

    Algorithme mise niveau 1- Soit un graphe quelconque G=(X,U), et k=1. V=X. 2- Choisir tous les sommets x nayant aucun prdcesseurs (c d dg-(x)=0).

    Si ses sommets existent alors les mettre

    dans le niveau k, N(k)=N(k){x} et V=V{x}. Si non Si V= alors le graphe est sans circuit Si non le graphe contient un circuit.

    3- Supprimer tous les arcs sortants de tous les sommets du niveau k. Mettre k=k+1 et aller (2).

    Exemple1: Soit le graphe suivant, contient il un circuit ?

    Appliquons lalgorithme, nous remarquons que les deux sommets 1 et 8 nont pas de prdcesseurs, car dg-(1)=0 et dg-(8)=0. Ainsi : N(1)={1,8}. On va supprimer tous les arcs sortant de 1 et 8, ont aura ainsi le graphe suivant :

    A cette tape nous constatons quil nya que les sommets 4,5 et 6 ayants dg-(4)=0, dg-

    (5)=0 et dg-(6)=0. Ainsi on aura : N(2)={4,5,6}, de la mme manire on va supprimer les arcs sortant de 4,5 et 6, on aura le graphe suivant :

    1 6 3 7

    4

    5

    2 8

    1 6 3 7

    4

    5

    2 8

    1 6 3 7

    4

    5

    2 8

  • 15

    A cette tape cest le sommet 2 qui na pas de prdcesseurs, donc : N(3)={2}. De la mme manire on aura le graphe suivant :

    De la mme manire on aura N(4)=3 et N(5)=7. Puis que nous avons russi classer tous les sommets de G, alors G nadmet pas de circuit. Et le graphe mis niveau aura lallure suivante:

    Exemple2 : Soit le graphe suivant, admet il un circuit ?

    1 6 3 7

    4

    5

    2 8

    1

    6

    3 7

    4

    5

    2

    8

    Niveau 1 Niveau 2 Niveau 3 Niveau 4 Niveau 5

    1 6 3 7

    4

    5

    2 8

  • 16

    Appliquons lalgorithme : V=X={1,2,3,4,5,6,7,8} Dans ce graphe nous remarquons que : dg-(1)=0 et dg-(8)=0 ce qui veut dire que, le niveau 1 est gale : N(1)={1,8}, do le nouveau V=V-{1,8}={2,3,4,5,6,7}. Ensuite daprs lalgorithme de mis niveau, en supprimant les arcs sortant de N(1), on aura le graphe suivant:

    Et le V={2,3,4,5,6,7} et non vide et il nexiste aucun sommet x avec les dg-(x)=0, donc ce graphe contient un circuit.

    1.2 Algorithme de Bellman : L'algorithme de Bellman est un algorithme de programmation dynamique qui permet de trouver des plus courts chemins, dans un graphe G orient pondr (accepte mme les valeurs ngatives) sans circuit, depuis un sommet source donn. Contrairement l'algorithme de Dijkstra, qui ne peut tre utilis dans un graphe avec circuit et tous les arcs ont des poids positifs ou nuls.

    Dfinition : On appel pi(x), le plus court chemin du sommet S source du graphe G, jusqu x. Le principe de cet algorithme est simple, premirement on initialise pi(S) 0, et les autres sommets de G +, ie. pi(x)= + xX. Ensuite on prend les sommets dans lordre topologique, cet ordre peut tre dduit partir de lalgorithme de mise niveau prsent

    ci-dessus. Ce choix nous permettra de ne choisir que les sommets x ayant yi comme

    prdcesseurs tel que pi(yi)+, ie. Que les plus cours chemins jusqu yi sont dj calculs. Soit x un sommet pour lequel on va calculer pi(x), et soit Y={ yi, i=1..p} lensemble des prdcesseurs direct de x. Une seule condition doit tre respecte cest que pi(yi) sont dj calcul i, i=1..p. De la nous calculons pi(x) par la formule suivante :

    pi(x)=min(pi(yi)+d(yi,x)) i, i=1..p Tel que : d(yi,x) reprsente la pondration de larc (yi,x).

    1 6 3 7

    4

    5

    2 8

  • 17

    Algorithme Soit R un rseau ayant une source S et un puit P.

    1. Initialiser pi(S)=0 et pi(x)= + xX. T=. 2. Choisir les sommets x ayant seulement S pour

    prdcesseurs, et calculer pi(x)= pi(S)+d(S,x). T=T{x}. 3. Tantque (XT)

    Faire

    Choisir un sommet Z de X ayant pour Wi prdcesseurs,

    tel que pi(Wi) sont dj calcul. pi(Z)=min(pi(Wi)+d(Wi,Z) pour tous Wi prdcesseurs de Z. T=T{Z}. Fait.

    Fin de lalgorithme

    Exemple : On considre le graphe orient G = (X, U) ci-dessous pondr par des longueurs

    darcs. On cherche dterminer les plus courts chemins de a tout autre sommet.

  • 18

    On peut appliquer lalgorithme de Bellman parce que le graphe est sans circuit, ce quon peut vrifier en effectuant la numrotation topologique (la mise niveau du graphe) qui a t fait ci-dessous. Les numros topologiques sont encadrs. Aprs avoir pos distance(a) = 0, on calcule les distances par numros topologiques croissants en appliquant la formule :

    distance(x) = MIN prdcesseurs de x (distance(y)+ longueur(y,x)) . Les distances sont indiques en gras ct des sommets et les plus courts chemins sont indiqus par les arcs en gras.

    2. Algorithme de Dijsktra : Lalgorithme de Dijkstra est un autre algorithme de recherche de distance et de plus court

    chemin. Il est plus efficace que Bellman, mais ne fonctionne que dans le cas o toutes les pondrations des arcs sont positives.

    Principe : On construit petit petit, partir de {S}, un ensemble M de sommets marqus. Pour tout sommet marqu x, lestimation d(x) est gale la distance d(S,x). A chaque tape, on slectionne un sommet non marqu y dont la distance estim d(y) est la plus petite parmi tous les sommets non marqu. On marque alors y (on rajoute y M), puis on met jour partir de y les distances estimes des successeurs non marqus de y.

  • 19

    On recommence, jusqu puisement des sommets non marqus. Lalgorithme de Dijkstra permet de trouver une chane de longueur minimale entre deux sommets dun graphe pondr orient ou non.

    Algorithme de Disjktra : Initialisation de l'algorithme : tape 1 : On affecte le poids 0 au sommet origine (S) et on attribue provisoirement un poids aux autres sommets. Rpter les oprations suivantes tant que le sommet de sortie (P) n'est pas affect d'un poids dfinitif. tape 2 : Parmi les sommets dont le poids n'est pas dfinitivement fix, choisir le sommet x de poids p minimal. Marquer dfinitivement ce sommet x affect du poids p(x). tape 3 : Pour tous les sommets y qui ne sont pas dfinitivement marqus, adjacents au dernier sommet fix x :

    3.1 Calculer la somme som du poids de x et du poids de l'arte reliant x y. 3.2 Si la somme som est infrieure au poids provisoirement affect au sommet y, affecter provisoirement y le nouveau poids som et indiquer entre parenthses le sommet x pour se souvenir de sa provenance.

    Quand le sommet P est dfinitivement marqu, le plus court chemin de S P s'obtient en crivant de gauche droite le parcours en partant de la fin P.

    Exemple : Dans le graphe orient, pondr G = (X, U) ci-dessous par des longueurs darcs, utiliser lalgorithme de Dijkstra pour dterminer une arborescence de plus cours chemins depuis le sommet a jusqu tous les autres sommets. On pourra utiliser un tableau pour indiquer les valeurs initiales des champs d (ou distance) et pre (ou antrieur) puis, pour chaque tape, les actualisations de ces valeurs effectues par lalgorithme; on indiquera aussi les pivots successifs. Par manque de temps, on peut aussi indiquer la succession des pivots et ajouter, ct de chaque sommet, les valeurs successives obtenues pour les champs d (ou dist) et pre (ou ant); le graphe de cet exercice est un peu gros pour permettre cela. On surlignera les arcs dune arborescence de plus courts chemins.

  • 20

    On applique lalgorithme de Dijkstra en initialisant puis en actualisant chaque tape les valeurs de d (ou distance) et pre (ou antrieur) dcrites dans lalgorithme. Une arborescence de plus courts chemins partir de a est indique ci-dessous.

  • 21

  • 22

    3. Algorithme de Ford-Bellamn L'algorithme de Bellman-Ford (Bell-End-Ford) (Richard Bellman, Samuel End et Lester Ford) est un algorithme de programmation dynamique qui permet de trouver des plus courts chemins, depuis un sommet source donn, dans un graphe orient pondr. Contrairement l'algorithme de Dijkstra, qui ne peut tre utilis que lorsque tous les arcs ont des poids positifs ou nuls, l'algorithme de Bellman-Ford autorise la prsence de certains arcs de poids ngatif et permet de dtecter l'existence d'un circuit absorbant, sil nen existe pas, lalgorithme donne les plus courts chemins ainsi que leurs poids.

    Les notations sont les suivantes : pi(v) contient le prdcesseur de v sur le chemin (NIL sil ny en a pas), (u,v) est le poids du plus court chemin de u vers v ( sil nexiste pas), d[v] est une variable qui est une borne suprieure du poids du plus court chemin de s vers v.

    Algorthme Ford-Bellman Step1: pour tout sommet xX faire

    Step 2: d[x]= et pi[x]=NIL. Step 3: d[S]=0 Step 4: pour i=1 |X|-1 faire Step 5: pour tout arc (x,y)U faire Step 6: si d[y]>d[x]+ w(x,y) alors Step 7: d[y]=d[x] + w(x,y) ; pi[y]=x. Step 8: pour tout arc (x,y)U faire // dtection des circuits ngatifs Step 9: si d[y] > d[x] + w(x,y) alors retourner Faux Step 10: retourner Vrai

    Fin algorithme

  • 23

    Programmation dynamique La programmation dynamique est une mthode doptimisation des systmes ou de leur reprsentation mathmatique, dans laquelle on opre par phases ou squences. Le point de dpart de cette mthode est le thorme dit Thorme doptimalit. Ce thorme, mis en valeur, il ya quelques annes, par le mathmaticien amricain R. Bellman, est simple quil

    parat presque trivial lorsquon la bien compris. Son importance et lefficacit des mthodes doptimisation squentielles auxquelles il a donnes naissance saccentuent au fur et mesure que lon saperoit que la vraie nature de nombreux problmes est squentielles c d, autorise la dcomposition en phases, chacune ne dpendant que de ses voisine les plus proches et souvent, dans le cas favorable, seulement de lantrieure ou la postrieure. Sagissant de recherche oprationnelle, donc dune politique conomique optimale, Bellman exprime, en bref, ceci : Toute politique optimale ne peut tre forme que de sous politiques optimales. La programmation est un outil gnral de rsolution de problmes. Toutefois, il ny pas de rgle pour affirmer que la programmation dynamique peut ou ne peut tre utilise pour rsoudre tel ou tel problme. Le gros du travail, si on veut utiliser cette mthode, rside tout dabord dans lobtention de lexpression rcursive de la solution en fonction de celle des sous-problmes (de taille plus petite). Notons que dans les problmes doptimisation, cette manire dobtenir la solution optimale partir des solutions optimales des sous problmes sappelle le principe doptimalit de Bellman. Il est important de souligner que ce principe, bien que naturel, nest pas toujours applicable.

    Une fois cette expression obtenue, on analyse ce qui se passe dans une implantation rcursive nave : si on se rend compte que la solution de mmes problmes est calcule plusieurs fois, on est alors dans le cadre de la programmation dynamique. Le dcoupage du problme devrait naturellement conduire la dfinition de la table (qui peut tre de dimension 1,2,3, ). Remarquez quune case de la table correspond un sous-problme. Par ailleurs, le nombre de sous-problmes peut tre trs grand. La complexit obtenue, de lalgorithme de programmation dynamique, nest pas forcment polynomial. Si on est dans le cadre de la mthode de la programmation dynamique, les tapes suivies peuvent tre rsumes comme suit :

  • 24

    a. obtention de lquation rcursive liant la solution dun problme celle de sous problmes. b. initialisation de la table: cette tape est donne par les conditions initiales de lquation obtenue ltape 1. c. remplissage de la table: cette tape consiste rsoudre les sous-problmes de tailles de plus en plus grandes, en se servant bien entendu de lquation obtenue ltape 1. d. lecture de la solution: ltape 3 ne conduit qu la valeur (optimale) du problme de dpart. Elle ne donne pas directement la solution conduisant cette valeur. En gnrale, pour avoir cette solution, on fait un travail inverse en lisant dans la table en partant de la solution finale et en faisant le chemin inverse des calculs effectus en ltape 3.

    Expliquons ce principe par exemple, et commenons par la dtection dun plus court chemin dans un graphe. Soit un graphe G = (X,U ) ayant X comme ensemble de sommets et U comme ensemble d'arcs. Le poids de larc a est un entier naturel not l(a). La longueur d'un chemin est gale la somme des longueurs des arcs qui le composent. Le problme consiste dterminer pour chaque couple (x,y) de sommets, le plus court chemin, s'il existe, qui joint x y. Nous commenons par donner un algorithme qui dtermine les longueurs des plus courts

    chemins notes (x,y). Par convention, on note (x,y)= s'il n'existe pas de chemin entre x et y. (en fait il suffit dans la suite de remplacer par un nombre suffisamment grand par exemple la somme des longueurs de tous les arcs du graphe). La construction effective des chemins sera examine ensuite. On suppose qu'entre deux sommets il y a au plus un arc. En effet, s'il en existe plusieurs, il suffit de ne retenir que le plus court.

    Les algorithmes de recherche de chemins les plus courts reposent sur l'observation trs simple (mais combien importante) suivante: Si f est un chemin de longueur minimale joignant x y et qui passe par z, alors il se dcompose en deux chemins de longueur minimale l'un qui joint x z et l'autre qui joint z y .

  • 25

    Dans la suite, on suppose les sommets numrots x1, x2,..., xn et, pour tout k > 0, on considre la proprit Pk suivante pour un chemin f ; Pk( f ) : Tous les sommets de f, autres que son origine et son extrmit, ont un indice strictement infrieur k. On peut remarquer dune part qu'un chemin vrifie P1 si, et seulement si, il se compose d'un unique arc. Dautre part la condition Pn+1 est satisfaite par tous les chemins du graphe. Notons

    par k(x,y) la longueur du plus court chemin vrifiant la proprit Pk et qui a pour origine x et pour extrmit y. Cette valeur est si aucun tel chemin n'existe. Ainsi 1(x,y)= s'il n'y a pas d'arc a entre x et y qui vaut l(a). D'autre part n-1=. Le lemme suivant permet de calculer les k+1 connaissant les k(x,y). On en dduira un algorithme itratif.

    Lemme : Les relations suivantes sont satisfaites par les k : k+1(x,y)=MIN(k(x,y), k(x,y)+ (xk,y))

    Exemple1 : Un algorithme de programmation dynamique : Floyd-Warshall : un algorithme de programmation dynamique, rsout les sous-problmes d'un problme une fois et une seule, et stocke les rsultats dans un tableau. Soit L la matrice associe un graphe G, on a donc L[i,j] reprsentant le cot de larc entre i et j. Si i=j on prendra L[i,j] = 0 et sil ny a pas darc entre les sommet i et j alors L[i,j] = . Le principe de lalgorithme et de construire une matrice D (initialise L) et qui contiendra aprs chaque itration k, les plus courts chemins entre chaque paire de sommets (i,j), ne passant que par les sommets appartenant lensemble {1,2,3,..k}. Aprs litration n, D contiendra les plus courts chemins entre chaque paire de sommets. A ltape k on calcule les nouvelle valeurs de D pour chaque paire de sommet de la faon suivante : Dk[i,j] = min ( Dk-1[i,j] , Dk-1[i,k] + Dk-1[k,j] )

    PROCEDURE Floyd ( L , var D ) D := L;

    Pour k := 1 , n Pour i := 1 , n

    Pour j := 1 , n D[i,j] := min ( D[i,j] , D[i,k] + D[k,j] ) Fpour

  • 26

    Fpour

    Fpour

    Exemple2 : Calcul de la suite de Fibonacci. Fib[0] =0 Fib[1]=0 fib[i] = fib[i-1] + fib[i-2];

    Exemple3 : Calcul de Cnp Formules : Cnp = Cn-1p-1 + Cn-1p

    C00 = Cn0 = Cnn = 1

    On peut donner un algorithme rcursif.

    Exemple4 : Le Problme du sac dos Le fameux problme dit du sac dos peut se rsoudre de plusieurs manires, parmi lesquelles, la Programmation Dynamique apporte une solution lgante et efficace.

    On dispose de N types dobjets numrots, en une quantit infinie pour chaque type. Un objet de type k a une valeur entire positive ck et occupe un volume ak (entier positif non nul). Le problme sexprime alors ainsi : Trouver le sous-ensemble dobjets de valeur maximale, dont le poids ne dpasse pas la capacit b du sac : Max z = Somme(ck*uk , k=1 N) avec Somme(ak*uk, k = 1 N) b et uk entier positif, pour tout k de 1 N. Pour pouvoir rsoudre le problme laide de la Programmation Dynamique, posons : uk : le nombre dobjets de type k inclure xk : le volume disponible ltape k xk+1 = fk(xk,uk) = xk ak*uk, k =1 N Profit ltape k : gk(xk,uk) = ck*uk, k=1 N Maximiser : Somme(ck*uk, k = 1 N)

    Nous allons essayer de rsoudre le problme global du sac dos en procdant par tapes, en partant de la dernire dcision prendre et en remontant dans le temps. 1. A ltat final, pas de profit.

  • 27

    2. A la dernire tape : remplir au mieux un sac de capacit xN avec des objets de type N. 3. Calculons lutilit maximale JN(xN) = max{cN*uN} avec xN aN*uN 0 et uN entier positif. 4. On en dduit une dcision optimale uN* = [xN /aN]. 5. A ltape k < N, calculer pour tout xk = 1 b :

    6. Jk(xk) = max{ck*uk + Jk+1(xk+1)}, avec les contraintes : xk+1 = xk ak*uk 0 et uk entier positif.

    A ltape k=1, on connat x1 (gal b) donc nul besoin de rsoudre le problme pour tout x1 possible. Lorsque lalgorithme est arriv son terme, la quantit J1(b) calcule donne le profit maximal (solution du problme) et on peut lire la suite de dcisions prendre en parcourant les tables optimales (les fonctions Jk) calcules chaque tape.

    Illustration 1: On dbute nos exemples par celui du calcul des nombres de Fibonacci. Le problme est de calculer le n premiers nombres de Fibonacci donns par la formule suivante :

    F(0)=1; F(1)= 1; F(n)= F(n-1)+ F(n-2)

    Lalgorithme implantant cette formule est alors comme suit :

    Nous avons vu que la complexit de cet algorithme est en exponentielle. La raison de cette inefficacit est due la multiplicit de calcul dun mme nombre, comme le montre la figure ci-dessous sur n =4.

  • 28

    La clef une solution plus efficace est dviter la multiplicit de rsolution du mme sous-problme. On amliore de loin la complexit temporelle si, une fois calcul, on sauvegarde un rsultat, par exemple dans une table. Et au besoin, on le prend de cette table. Cette remarque nous amne la solution suivante :

    Cette approche de rsolution est connue sous le nom de fonctions mmoire, qui est trs lie la programmation dynamique. En supprimant la rcursivit, nous crivons cet algorithme dans une forme typique de la programmation dynamique.

    Illustration 2 : Avanons un peu plus dans ce concept en prenant un autre exemple qui est celui du calcul du coefficient binomial.

  • 29

    Si on implante directement cette expression sous cette forme, on obtient la fonction suivante :

    Voyons voir lexcution de cette fonction sur un exemple de donnes: n = 5 et k = 2. Remarquez le nombre de fois, par exemple que, le terme est calcul.

    Pour viter de calculer plusieurs fois un nombre, lide est de crer un tableau o on calcule tous les nombres de petites tailles, ensuite, de tailles de plus en plus grandes avant darriver au nombre dsir. Pour ce faire, on procde comme suit :

    Pour calculer donc B(n,k), on procde comme suit:

  • 30

    On remplit le tableau B ligne par ligne comme suit :

    Remarque : Il est intressant de constater que seule la moiti de la matrice B est utilise pour calculer B[n,k]. Autrement dit, un tableau une dimension suffirait pour faire ces calculs.

  • 13

    :

    .

    :

    .

    .

    .

    .

    .

    .

    .

    :

    .

    .

  • 23

    : ( )

    .

    .

    .

    .

    .

    .

    .

    .

    .

    . .

    :

    : (

    .

  • 33

    . : (

    . : (

    . : (

    .

    .

    noitalumiS .

    .

    SKCOTS SEL RAP SEERDNEGNE SETIVITCA SED ELBMESNE

    SREIPAP )1.2

    ua emrofnoc uep "eiressarepap" enu etuot tnerng egakcotsd te egakcots eL ! REIPAP OREZ

    ednammoc ed nob elbuod noitidpxe'd siva nosiarvil ed uaeredrob noitpecr ehcif kcots ed ehcif enretni ednammoc ed nob .cte eitros ed nob

    ERIATNEVNI )2.2

    iuq ec ;nalib el resserd ruop eriotagilbo na rap eriatnevni nu tiovrp noitalsigl aL :snoitseuq xued esop

    titnauq o ruelav o

    :skcots sed noitasirolaV *

    :retic tuep no "selagl" sedohtm srueisulp etsixe lI

    siom ud sertne sel rus rdnop neyom toc OFIF noitseg OFIL noitseg dradnats toc

  • 34

    2.3) GESTION DES STOCKS

    La gestion des stocks se fera diffremment selon le poids de larticle grer par rapport la valeur du stock, il est intressant de dcomposer les stocks en familles, avec par exemple la mthode ABC (ou mthode des 80/20), selon les cas des critres diffrents peuvent tre visualiss:

    Valeur des stocks Volume des stocks Poids Dlai dapprovisionnement Dure de vie du produit (obsolescence)

    Cet outil est un des outils de base en qualit, en maintenance, elle permet de manire simple de mettre en vidence les liens de cause effet. On s'apperoit souvent en gestion des stocks, que moins de 20% des rfrences en stock reprsentent elles seules l'essentiel de la valeur de ce stock, c'est la classe A qui ncessite une gestion particulirement efficace.

    3) PRINCIPES GENERAUX DE GESTION DES STOCKS Remarque importante:

  • 35

    Dans les mthodes que nous allons tudier, nous supposerons rsolus les problmes relatifs aux caractristiques physiques des stocks (volume, place...).

    3.1) LES PRINCIPAUX SYSTEMES

    Les commandes peuvent tre passes selon quatre possibilits:

    3.1.1) En quantits fixes intervalles fixes

    Concerne la classe C uniquement : commandes en rafales mensuelles, bisannuelles ou annuelles. La gestion informatique ou trop rigide de la quincaillerie amne gnralement au rsultat inverse de celui recherch, savoir, perte de productivit, dmotivation des techniciens de maintenance...

    La technique du double bac convient particulirement bien ce type d'article.

    3.1.2) En quantits variables priodes fixes

    Concerne les classes B,A

    Les priodes T sont constantes.

    d: dlai d'approvisionnement

    P1, P2, P3: points de commande

    AVANTAGE: inventaire tous les Ti seulement

  • 36

    INCONVENIENT: ne tient pas compte de la pente des demandes: risques de ruptures et de STOCK MORT.

    Cette mthode fut de loin la plus utilise avant lavnement des systmes informatiques de gestion, cette mthode permet dviter linventaire permanent, mais elle montre videmment rapidement ses limites en cas de forte fluctuation de consommation.

    3.1.3) Quantits fixes intervalles variables.

    Concerne galement les classes B,A, mais ce modle ncessite un support de la part dun outil informatique.

    AVANTAGE: Inventaire permanent (moins de risque de ruptures et de stock mort) INCONVENIENT: Inventaire permanent (implique stock thorique = stock physique

    (magasins ferms clef))

    3.3.4) Quantits variables priodes variables

    Concerne essentiellement la classe A. Rsulte de l'utilisation d'un systme de GPAO type M.R.P.

    "" " ".

  • 73

    :

    ,

    .

    ,

    .

    , ,

    ,

    : .

    .

    : : -

    .

    , ,

    . ,

    : : 1-

    : N

    : P

    : LC

    : sC

    2 / Q

    . pC:

    . T:

    : : 2-

  • 83

    : *Q

    LT:

    . sT:

    : 3-

    : ,

    . + + =

    pT + )sT + LT( + N . P = T:

    0 = pT === 0 = pC:

    sT + LT = )Q(T = )Q( T NIM:

    : 2 / Q sC

    sC . P . Q = sT

    =

    Q / N = n: / =

    LC . ) Q / N( = LT :

    )Q( T NIM -=== sC . P . Q + LC . )Q / N( = )Q( :

    : Q

    sCP + ) 2Q / LCN -( = )Q( d / )Q( T

    :

    sCP 2/1+ )Q / LCN - ( = )Q( d / )Q( T

    :

    sCP Q = LCN ==== sCP = Q / LCN

    )1( sCP / LCN 2 = Q = *Q ==== sCP / LCN 2 = Q

    ,

    *Q / N = * n :

    N / *Q = *t :

  • 93

    .

    :() -

    .

    :

    ,

    : *Q

    :

    : pC

    : T

    . : sC

    *Q . )pC + sC / pC( = s*S :

    ,

    .

    : -

    ,

    ,

    ,

    .

    F / Q ) E F( :

    :

    : F / Q

    : N

    : F

    +/ pCsCpC = *2./ QNLCsCT

  • 04

    : E

    . : E F

    : -1

    )F / E 1 ( sC .P / LC . N 2 = Q

    : 2-

    ) F / E 1 ( / LC . N2 = Q

    .

    dS rN = *Q : *Q

    :

    : rN

    . : dS

    :

    : mC

    ( ) : P

    . : D

    sC x )d + P ( = rN

    : rN

    sC + mC . ) d + P ( = rN

    ,

    ,

  • 14

    ,

    ,

    .

    ,

    .

    : , ,

    ,

    . :

    : ,

    : , ( ) ,

    .

    " "

    , d , C M

    .

    d

    d . mC = M: ,

    : mC

    : d

    . : M

    .sS

    :

  • 24

    A B C

    AS:

    : :

    . = + *Q

    , aS

    sS + d . m C = M :

    :

    Q

    M

    aS

    C

    sS

    d

    : :

    d

    d

    . d

    : ,

    .

    .

  • 34

    ,

    .

    .

    : + =

    sS + C = M

    + d C = M

    : C

    : A

    :

    . :

    NOSLIW ED ELEDOM )4 EPICNIRP )1.4

    :SESEHTOPYH

    )erianil( etnatsnoc tse ednamed aL .slun tnos tnemennoisivorppa'd siald seL

    :snoitseuq xued xua tnadnopr ne stoc sel resiminim :TUB

    ? DNAUQ o ? NEIBMOC o

    egakcots ed toc + tnemecnal ed toc + tahca'd xirP = TC latot toc eL

  • 44

    Posons u : prix unitaire ()

    D : demande pendant une priode choisie (1 an)

    a : cot de passation d'une commande ()

    r : taux de possession (/.an)

    Q : la quantit commande

    On peut crire CT = u*D + a*D/Q + u*r*(stock moyen)

    partir des hypothses de Wilson on peut dduire que le stock moyen = Q/2 :

    Soit CT = u*D + a*D/Q + u*r*Q/2

    On cherche dterminer la quantit de rapprovisionnement (Q) qui minimise le cot total :

    On va donc dterminer quand CT = f(Q) passe par un minimum, on va driver cette fonction et touver la valeur de Q qui annule cette drive.

    dCT(Q)/dQ=0-aD/Q+u*r/2

    la drive sannule pour ur/2=aD/Q

    do Q=2aD/ur et enfin

    appele quantit conomique de rapprovisionnement.

    Exemple:

    Une entreprise fournisseur de pices pour le tlphone fabrique des relais lectriques dont un lment x est sous-trait 0,015 l'unit.

    Elle utilise 1000 x par jour, 250 jours par an. Les approvisionnements se font par le camion de l'entreprise (15 par voyage)

  • 45

    Le taux de possession est de 20% l'an.

    Calculer la quantit conomique de rapprovisionnement.

    Reprsenter graphiquement la courbe d'volution du stock.

    4.2) POINT DE COMMANDE ET STOCK DE SECURITE

    4.2.1) Consommation rgulire et dlai de livraison fixe.

    il suffit de passer la commande l'instant ti-d

    (avec d dlai de livraison).

    Application l'exemple prcdent:

    On suppose un dlai de livraison de 10 jours; On dfinit alors un stock minimum sm (ou stock de rupture ou encore de couverture) gal la consommation pendant d jours.

    Rsultat : sm = 1000*10 = 10000

    Graphiquement:

    4.2.2) CAS REEL

    En ralit il faudra un stock de scurit (stock dormant) pour pallier aux alas de consommation et de dlai d'approvisionnement.

  • 46

    Trois cas peuvent se prsenter:

    * Le dlai de livraison est constant mais la consommation est suprieure la consommation moyenne, seul un stock de scurit peut viter la rupture de stock

    * La consommation est normale, mais le dlai de livraison est plus grand que prvu, le stock de scurit est indispensable.

    * La combinaison des deux paramtres ci-dessus ncessite bien sr galement un stock de scurit

    Il faut raisonner en fonction de l'intervalle de protection, en dfinissant un stock de scurit gal u*

  • 47

    1er cas: Le dlai de livraison est constant mais la consommation est suprieure la consommation moyenne.

    A partir d'un historique sur plusieurs priodes T, si la loi de distribution des sorties est une loi normale, alors on peut calculer la consommation moyenne sur cette priode xm et l'cart type x.

    Il faut alors ramener cet cart type la priode lie au dlai d'approvisionnement d, d'aprs la rgle de proportionnalit des variances on peut crire

    x,d = Racine(d) *x

    Attention T et d doivent tre exprims dans la mme unit !

    On obtient alors :

    Ss = u*x,d Avec u choisi selon le taux de service souhait et le cot de pnurie.

    2me cas: La consommation est normale, mais le dlai de livraison est plus grand que prvu.

    Soit pj l'cart type en jours sur le dlai d'approvisionnement, il faut ramener l'cart type en "pices", il suffit pour cela de multiplier pj par la consommation journalire pour obtenir pp = pj * conso journalire.

    On obtient alors : Ss = u*pp Si les deux paramtres varient, la loi d'additiv des variances nous donne :

    =Racine(

    x,d2+pp

    2 ) Avec Ss = u* Voir exemple dapplication en 6

  • 84

    noitalumiS seuqinhceT:

    )semtsys( )emtsys( .

    )eldom( .

    ( )

    .

    .

    .

    .

    ( emtsyS)

    .

    noitalumiS (.tnemennorivne)

    .

    .

  • 94

    .

    .

    .

    .

    .

    .

    :

    01 .

    .

    .

    .

    .

    .

    . -

  • 05

    .

    .

    .

    .

    .

    .

    ( ) .

    .

    .

    .

    :

    :ledoMorP .

  • 15

    : ANERA

    .

    .

    .

    .

    .

    .

    .

    .

    : ..

    .

    .

    .

    .

  • 25

    .

    .

    .

    .

    )

    .(

    .

    .

    .

    .

    .

    .

    .

    .

  • 35

    .

    .

    ( eledom)

    .

    .

    (is eriaf euQ" ) " .

    .

    .

    .

  • 45

    .

    . .

    (euqimanyD) (euqitatS)

    )eunitnoc( )etsinimretD( (euqitsakcotS) . tercsid()

    : 1

    (euqimanyd) ( euqitats)

    ( olraC etnoM )

    : .

    . . 1

    . . 2

    . . 3

    . . 4

  • 55

    ( ) . 5

    .

    (etsinimretd) ( euqitsahcots)

    .

    .

    (.tercsid) ( eunitnoc)

    ) :

    :

    .

    :esab ed snoitinifD : tinifd no ,semtsys sed noitpircsed al reifilpmis ed nif A ed ,secip ed rigas tuep lI .emtsys el snad tnaalpd es eriatneml tejbol : tneilC ...snoitamrofnid steuqap ed ,seuqisyhp sennosrep tigas lI .tnemetiart ed noitarpo enu tnessibus stneilc sed o tnemetiart ed tinu enu : ruevreS ruetanidro nud ,noitatlusnoc ed tenibac nud ,uaerub nud ,enihcam enud ud tcerroc tnemeluord ua eriassecn ,non uo elbammosnoc tnasopmoc nu : ecruosseR elbinopsid eriomm ,ettelap ,reipap ,trof : ecivres

  • 56

    Unit de stockage : une unit dans laquelle des clients sont stocks et sont extraits conformment une politique de gestion. Dans le cas du bureau de poste, lunit de stockage est une file dont la politique de gestion est premier arriv, premier servi. Dans un stock de pices usiner on peut, au contraire utiliser une pile, base sur la politique dernier arriv, premier servi.

    Station : lensemble constitu dun ou plusieurs serveurs de une ou plusieurs units de stockage et dont le fonctionnement est autonome sans ncessairement tre indpendant des autres units. Par exemple, lensemble caissire-caisse-tapis roulant peut tre une station de lensemble de traitement qui permet aux clients dun supermarch de rgler leurs achats. Unit de transport : elle permet le transport dun lieu lautre. En fait, les units de transport relient une station une autre, ou un serveur une unit de stockage, ou inversement. Une unit de transport peut tre un tapis roulant, ou bien un robot prenant des pices dans un stock et les dposants sur une machine commande numrique.

    La perception du fonctionnement de beaucoup de systmes dpend troitement de la raison pour laquelle on sintresse lui et, en particulier de lobjectif poursuivi en tentant danalyser ce systme. Considrons par exemple le fonctionnement dun bureau de poste. Il est facile didentifier les lments physiques de ce systme (figure2):

    les postiers ;

    les automates ;

    les files dattente ; les clients ;

    et enfin le bureau de poste lui-mme.

    Figure2 : Les lments dun guichet de poste

  • 57

    Chacune de ces entits juges pertinentes peut tre dcrite simplement en donnant la liste des informations qui la concernent et sont estimes intressantes par rapport aux objectifs de ltude. Noublions pas quil peut apparatre ncessaire de simplifier le modle envisag pour permettre la mise en uvre dune simulation ou dune rsolution de modle mathmatique. Supposons que ltude vise valuer louverture dun deuxime guichet et que le taux dutilisation du postier soit considr comme le seul lment reprsentatif, en ngligeant, par exemple, le temps dattente des clients. Dans ce cas : On peut ngliger les automates et les files dattente qui leur correspondent. Pour le postier, il faut valuer le temps de traitement dun client ; en particulier, on devra choisir entre un modle dterministe ou stochastique suivant le caractre constant ou alatoire de cette dure. Dans ce dernier cas, il faut dterminer la loi de probabilit de ce temps de service.

    Pour les clients, on peut introduire la dure qui spare les arrives de deux clients successifs, ce qui, dans le cas stochastique, peut ncessiter de prciser la loi de probabilit, constate ou estime, de cette dure. Pour le bureau de poste, on doit dterminer la longueur maximale que peut avoir la file dattente des clients. Il est parfois ncessaire, pour simplifier, de considrer que la file dattente peut tre de longueur infinie. Pour estimer la dure de service au guichet, on observera le systme durant une priode suffisamment longue et pendant des priodes de fonctionnement typique . Ainsi, on tudiera le systme pendant une priode qui ne sera ni 11h-12h30, ni 16h-18h, priodes traditionnellement trs charges qui ne sont pas reprsentatives dune journe de travail. Au contraire, on pourra se restreindre ces priodes si lon projette de ne doubler leffectif de postiers que dans les priodes charges. Il faudra aussi dterminer sil est opportun de dfinir plusieurs classes de clients partir des dures de service constates. En ralisant ltude, on ne prend pas en considration une multitude dlments, tels que: Le fait que certains clients peuvent se dcourager avant datteindre le guichet et quitter la file dattente. Le fait que le postier peut tre, pendant de courtes priodes de temps, indisponible pour le traitement des demandes des clients car il rpond au tlphone ou ses collgues

  • 58

    Le fait que certains clients peuvent ne pas respecter la politique de gestion de la file dattente qui voudrait normalement que les clients soient traits selon leur ordre darrive (clients prioritaires). Le fait quun client dsigne indiffremment une pice dans un systme de production ou une personne physique peut paratre tonnant ; nanmoins, si ces deux lments ont peu de points communs dans la ralit, ils sont identiques du point de vue du modle. De mme on considrera la guichetire comme un serveur ! La file dattente de pices devant une machine dusinage, la file des achats dune mnagre sur le tapis de la caisse du supermarch, et une file dattente de clients devant un guichet de poste, sont aussi, du point de vue du modle, identiques.

    Figure2 : Le modle du guichet de poste Sur les reprsentations des modles, nous ferons figurer la frontire du systme, qui dlimite son primtre. De plus, sur la frontire du modle seront ajouts une source qui engendre les clients en entre du modle, et un puits qui permet de comptabiliser les clients qui quittent le systme, ainsi que toutes les informations statistiques sur ceux-ci. On appelle flux le mouvement des clients dun lment lautre. On peut distinguer trois types de modles, selon quils possdent ou non une entre ou une sortie. Dans le cas dun modle ne possdant ni entre ni sortie, le modle est dit ferm. Dans le cas contraire, le modle est ouvert. Si une partie dun flux reste indfiniment dans le modle alors quun autre type de flux traverse le modle (de la source vers le puits), le modle est mixte. Pour le guichet de poste, on obtient un modle comportant (figure2) : une source et un puits qui peuvent correspondre, dans la ralit la mme porte ! une file dattente ; un serveur.

  • 59

    Si un systme se compose dune machine commande numrique et dun stock de pices gr selon une politique dernier arriv, premier servi, le modle comporte une source et un puits. Il comprend aussi une file dattente de type pile ainsi quun serveur reprsentant la machine (figure3).

    Figure3 : Le modle dune machine avec un stock

    Gnration des nombre alatoire Il existe plusieurs mthodes pour gnrer des nombres alatoires. Pour toute suite de nombres alatoires gnre chacun de ces nombre doit avoir la mme probabilit que tous les autres, et il doit tre statistiquement indpendant des autres nombres de la suite. En dautres termes, ils doivent tre des observations alatoires dune distribution uniforme.

    1/ Mthode de VonNeumann A partir dun nombre naturel A quelque de C chiffres, on veut obtenir une suite de Q nombres alatoires de C chiffres. Pour cela, soit donc le nombre A de C chiffres : A=xxxxxx.

    - Elever A au carr.

    - Prendre la tranche du milieu de C chiffres, soit A1 ce nombre. - Elever A1 au carr.

    - Prendre la tranche du milieu de C chiffres, soit A2 ce nombre. - Et ainsi de suite jusqu obtenir Q nombres alatoires A1, A2,., AQ.

    Exemple : Soit A=3278, C=4. On lve A au carr : A2=10745284, on prend le tranche du milieu: A1=7452. On lve A au carr : A12=55532304, on prend le tranche du milieu: A2=5323. Et ainsi de suite

  • 60

    Remarque :

    - Si on choisit mal le nombre A par exemple A=3000, tous les nombres

    gnrs par la m thode de Vanneumann sont Ai=0000 i0.

    - Il arrive parfois quil yait Bouclage , aprs k itrations il ya une rptition priodique.

    2/ Mthode de linverse Soit x un nombre rel tel que x]0,1[, on veut obtenir partir de x une suite de Q nombres alatoires de lintervalle ]0,1[. Soit donc x]0,1[ :

    - Calculer [1/x] partie entire de 1/x, soit x1 ce nombre. - Calculer [1/x1] partie entire de 1/x1, soit x2 ce nombre. - Calculer [1/x2] partie entire de 1/x2, soit x3 ce nombre. - Et ainsi de suite jusqu obtenir Q nombres alatoires, x1,x2,., xQ dans

    lintervalle

    ]0,1[.

    Dans les langages de programmation il existe des fonctions permettant deffectuer la gnration des nombres alatoires automatiquement sans avoir recours ces mthodes dcrites ci-dessus, ces fonctions utilises sont elles mme bases sur ces mthodes ou dautres existante dans la littrature. Ainsi puisque il existe plusieurs mthodes de gnration de nombres alatoires, donc la critique de ces mthodes nous amne dfinir quelle est le critre qui permet de reprer la meilleure mthode. Gnralement, cette meilleure mthode est choisie par celle qui a la plus importante priode de rptition.