Ingénierie Numérique - Ordonnancement

download Ingénierie Numérique - Ordonnancement

of 20

Transcript of Ingénierie Numérique - Ordonnancement

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    1/20

    Institut Suprieur des Matriaux et Mcaniques Avancs

    44 avenue F.A Bartholdi 72000 Le MansTl: 02 43 21 40 00 Fax: 02 43 21 40 39e-mail: [email protected]

    http://www.ismans.fr

    Projet : Ingnierie numrique MATLAB.

    Recherche de chemin critique en ordonnancementRecherche de chemin critique en ordonnancement

    Tuteur : Monsieur El Kaabouchi

    Chef de Projet : Meyer Michal

    Groupe: Chauvet FlorianeAllard Jean-FranoisBazin FrdricBianchini Rmi

    Celli Marc-Antoine Anne 2008/2009Girault Nicolas

    mailto:[email protected]:[email protected]://www.ismans.fr/http://www.ismans.fr/mailto:[email protected]
  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    2/20

    Table des matires

    I Abstract..........................................................................................................................................................2II Remerciements.............................................................................................................................................2III Introduction................................................................................................................................................3IV Prsentation gnrale...................................................................................................................................3

    IV.1 Dfinition de l'ordonnancement..........................................................................................................3IV.2 Dfinition des taches...........................................................................................................................3IV.3 Dfinition des contraintes...................................................................................................................3IV.4 Chemin critique...................................................................................................................................4IV.5 Mise en uvre ....................................................................................................................................4

    V Algorithme....................................................................................................................................................5V.1 Dmarche et problmes rencontrs.......................................................................................................5

    V.1.i Premire approche du sujet......................................................................................................................5

    V.1.ii Premire dmarche..................................................................................................................................5V.1.iii Un problme d'ordre...............................................................................................................................5V.1.iv Deuxime dmarche...............................................................................................................................7V.1.v Problme de la rcursivit sous Matlab...................................................................................................7V.1.vi Dmarche itrative..................................................................................................................................7

    V.2 Algorithmes...........................................................................................................................................7V.2.i Premier Algorithme .................................................................................................................................7

    a) Algorithme.......................................................................................................................................................7 b) Conclusion.......................................................................................................................................................8

    V.2.ii Algorithme en rcursif.............................................................................................................................8a) Algorithme.......................................................................................................................................................8

    V.2.iii Algorithme en itratif...........................................................................................................................10a) Dclaration des matrices utilises lors de l'algorithmique............................................................................10Dclaration de la matrice M1...........................................................................................................................10a) Dclaration de la matrice intermdiaire M2..................................................................................................11

    V.2.iv Algorithme en rcursif..........................................................................................................................12a) Algorithme.....................................................................................................................................................12 b) Conclusion.....................................................................................................................................................13

    V.2.v Algorithme en itratif............................................................................................................................13a) Algorithme ....................................................................................................................................................14 b) RsultatMATRICE FINALEil nous reste plus ka faire la difference entre duree o plus tard et duree o plus tot. Pour chaque resultat nul, latache appartien o chemin critique. Sinon, le resultat obtenu nous donne la marge associe a chke tache........16c) Conclusion et commentaires..........................................................................................................................16

    V.2.vi Exemple pour une installation industrielle...........................................................................................17a) Tableau des tches.........................................................................................................................................17 b) Rsultat obtenu avec Matlab.........................................................................................................................17

    VI Applications sur l'ordonnancement : Le Viaduc de Millau.........................................................................18VI.1 Exemples de tches...........................................................................................................................18VI.2 Intrt de l'ordonnancement ...........................................................................................................19VI.3 Deux types d'ordonnancement..........................................................................................................19

    VII Conclusion .............................................................................................................................................19VIII Annexes..................................................................................................................................................20

    VIII.1 Algorithme prsence......................................................................................................................20VIII.2 Fichiers Matlab..............................................................................................................................20

    Projet: Ordonnancement 1

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    3/20

    IAbstract

    II Remerciements

    Nous tenons remercier M. EL KABOUCHI , notre tuteur, pour sa disponibilit, et ses conseils. Nous souhaitons galement remercier M. PUJOS pour les renseignements qu'il a pu nous apporter.

    Projet: Ordonnancement 2

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    4/20

    III Introduction

    L'objectif de ce projet est de dterminer le chemin critique en ordonnancement ainsi que les margesassocies chaque tches. En effet, l'ordonnancement est une technique qui permet de grer l'ordre destches dans lequel elles doivent tre effectues afin de ne pas perturber l'chance d'un projet. Ce dossier tudiera dans un premier temps la thorie de l'ordonnancement. Dans une seconde partie il abordera lesquestions de l'algorithmique en rapport au problme de l'ordonnancement, afin de dterminer le chemincritique. Puis il voquera le dveloppement d'une application sous le logiciel Matlab pouvant traiter tous lestypes de problmes d'ordonnancement. Une interprtation d'un exemple simple fournit comme directive pour le projet sera donne, puis le traitement d' un exemple plus complexes sera abord, ce qui permettra de prendre plus de recul sur l'ordonnancement et sa relation au programme Matlab. Pour finir le dossier

    abordera une application de l'ordonnancement dans le milieu industriel.

    IVPrsentation gnrale

    IV.1 Dfinition de l'ordonnancement

    Un problme d'ordonnancement est un sous problme de planification. Ce problme permet deraliser dans le temps, la ralisation des tches compte tenu des contraintes temporelles (dlais et contraintesd'enchanement). La thorie d'ordonnancement s'intresse au calcul des dates d'excution optimales destches. De manire plus prcise, on parle d'ordonnancement lorsqu'on fixe la date de dbut et de fin dechacune des tches.

    IV.2 Dfinition des taches

    Une tches est une entit lmentaire de travail localise dans le temps par une date de dbutt i et/ou de finc i , dont la ralisation ncessite une durep i= ci t i

    Lorsque les taches ne sont soumises aucune contrainte de cohrence technologique (par exemple lescontraintes d'enchainement), elles sont dites indpendantes.A chaque tache, on peut associer deux dates diffrentes : la date au plus tt et la date au plus tard.La date au plus tt est la date laquelle la tacha pourra tre commence au plus tt, en tenant compte dutemps ncessaire l'excution des taches prcdentes.Et la date au plus tard est la date laquelle la tache doit tre commence tout prix si l'on ne veut pasretarder l'ensemble du projet.

    IV.3 Dfinition des contraintes

    Les contraintes expriment des restrictions sur les valeurs que peuvent prendre simultanment les variables dedcision. On distingue deux types de contraintes temporelles :

    Les contraintes de temps allou, qui sont issues d'impratifs de gestion et

    et dpendantes des dates limites des tches ou de la dure totale du projet.

    Projet: Ordonnancement 3

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    5/20

    Les contraintes de cohrence technologique, appeles contraintes d'antriorit, qui dcrivent l'ordre relatif qui doit tre respect entre les tches.

    IV.4 Chemin critique

    Le chemin critique dtermine la dure minimale du projet.On dit qu'une tache de A vers B est critique si ladiffrence entre la date au plus tard de B et la date au plus tt de A est gale la dure de tche accomplir.Les tches critiques, ainsi dtermines, dfinissent le chemin critique, qui est le chemin sur lequel aucunetche ne doit avoir de retard, pour ne pas retarder l'ensemble du projet.

    IV.5 Mise en uvre

    On attache une importance mettre en vidence les liaisons qui existent entre ces diffrentes tches et dfinir le chemin critique. Le but est de trouver la meilleure organisation possible, pour raliser un projetdans les meilleurs dlais. Pour construire un graphe d'ordonnancement, on procde de la manire suivante :

    Dans une premier temps, il faut crer un tableau contenant deux colonnes.La premire colonne contient le nom des taches et dans la deuxime colonne on inscrit les contraintes c'est dire les taches qui doivent tre effectues avant la tache considre.

    Exemple : On doit excuter sept taches a,b,c,d,e,f ,g soumises aux contraintes de succession rapportes dansle tableau ci-dessous :

    Tches Contraintesa - b -c -d b achevee b achevef a et d achevesg c,e et f acheves

    Puis on traduit le tableau sous forme de graphe en liant les taches qui se suivent. Pour effectuer une tache, ilfaut que les contraintes soient acheves. Donc dans notre graphe, toutes les tches dans la colonne contrainteseront suivies des tches qu'elles contraignent.

    Projet: Ordonnancement 4

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    6/20

    Prenons l'exemple pour comprendre:

    La tache b est dans la colonne contrainte. Elle contraint les taches d et e. Et donc dans le graphe la tache bsera suivie des taches d et e.Puis on fait de mme pour toutes les taches, et ainsi notre graphe d'exemple se construit :

    VAlgorithme

    V.1 Dmarche et problmes rencontrs

    Premire approche du sujet

    A la lecture du sujet, nous avons fait un rapprochement avec le cours de Monsieur Raynal, Professeur de

    Management l'ISMANS. En effet, lors de ce cours nous avions pu voir l'une des mthodesd'ordonnancement, qui tait le PERT ( Programm Evaluation and Review Technique - techniqued'ordonnancement et de contrle des programmes).

    Premire dmarche

    A l'aide de cette mthode, nous avons mis au point un algorithme permettant de calculer: le jour au plus tt o la tche peut tre effectue, le jour au plus tard o une tche peut tre effectue,

    afin de pouvoir dduire la marge associe chaque tche, c'est dire la dure maximale de retard possiblesur une tche. Cette dure est la diffrence entre le jour au plus tt et le jour au plus tard o la tche peut treeffectue, sans que cela perturbe la dure totale du projet.

    Un problme d'ordre

    Mais nous avons eu un problme lors de la ralisation de l'algorithme du jour au plus tard, car nous noussommes rendus compte que si les tches n'taient pas ordonnes, l'algorithme ne fonctionnait pas.Aprs une recherche sur internet,nous avons envisag d'effectuer un algorithme pour ordonner les tches par niveau : Mthode des niveaux(http://www.logistiqueconseil.org/Fiches/Logistique/Pert.pdf ) Cette mthode permet de distinguer lesdiffrents niveaux qui apparaissent dans le problme d'ordonnancement. On effectue des manipulations sur les lignes d'un tableau,et les niveaux du problme d'ordonnancement se distinguent.

    A l'aide de cette mthode, on peut en dduire le graphe des niveaux suivant pour notre exemple.

    Projet: Ordonnancement 5

    Illustration 1: Graphe des tches de l'exemple

    b

    c

    a

    e

    d

    f

    g

    Dpart

    Fin

    http://www.logistiqueconseil.org/Fiches/Logistique/Pert.pdfhttp://www.logistiqueconseil.org/Fiches/Logistique/Pert.pdfhttp://www.logistiqueconseil.org/Fiches/Logistique/Pert.pdf
  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    7/20

    Aprs la comprhension de la mthode des niveaux, nous avons ralis la matrice suivante pour l'exemple :

    Construction de la matrice :

    A=

    0 0 0 0 0 0 0

    0 0 0 0 0 0 0

    0 0 0 0 0 0 0

    0 1 0 0 0 0 0

    0 1 0 0 0 0 0

    1 0 0 1 0 0 0

    0 0 1 0 1 1 0

    Les lignes correspondent aux tches raliser, et les colonnes aux tches ralises, sachant que le nombre delignes et de colonnes correspond aux nombres tches ordonnancer.Pour expliquer la construction de la matrice, prenons l'exemple :

    a b c d e f g

    A=

    abc

    d e f g

    0 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0

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

    f a et d achevesg c,e et f acheves

    La tche f est raliser, pour cela il faut que les tches a et d soient ralises. Ainsi dans la matrice a(6,1)eta(6,4) prennent la valeur 1. De mme pour les autres tches.

    Projet: Ordonnancement 6

    Illustration 2: Graphe des tches de l'exemple avec les niveaux

    b

    c

    a

    e

    d

    f

    g

    Dpart

    Fin

    Niveau 1 Niveau 2 Niveau 4Niveau 3

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    8/20

    Deuxime dmarche

    Mais suite la premire runion de tutorat, nous avons t orient vers une nouvelle piste o ordonner lestches n'tait pas ncessaire. Nous nous sommes alors dirigs vers la construction d' une nouvelle matriceM2, elle permet d' intgrer directement les dures associes pour effectuer les tches.Ce qui a permis cette fois-ci d'aboutir des algorithmes permettant de calculer le jour au plus tt et le jour au plus tard de chaque tche.

    Problme de la rcursivit sous Matlab

    Cependant, ces algorithmes mis au point, utilisent des principes de rcursivit, or le logiciel MATLAB poseun problme au bout de 500 rcursivits. Ceci peut entrainer des erreurs dans le cas des problmesd'ordonnancement comportant de nombreuses tches couples entre elles (majorit des cas industriels). Lorsde nos runion de tutorat, nous avons t rdig vers une mthode itrative pour viter ce problme desaturation.

    Dmarche itrative

    Nous nous sommes donc dirigs vers une mthode itrative.Dans cette mthode, nous utilisons de plusieurs matrices pour rsoudre le problme d'ordonnancement. M1 est la matrice qui reprsente le tableau du problme. C'est l'utilisateur en rpondant chaque

    questions poses par le programme qui va la remplir. M2 est la matrice qui dfinie les dures des tches.

    Pour dterminer le jour au plus tard, on procde de la manire suivante :Aprs avoir crit la matrice M2, on crit ensuite la matrice M3, dans laquelle on calcule le maximum descolonnes pour obtenir le rsultat, cest notre matrice de sortie.Puis nous utilisons une matrice qui sert de stockage du chemin que lon est en train de parcourir, c'est lamatrice M4. Elle permet de pouvoir continuer le chemin. Cette matrice permet davoir une dmarche de proche en proche pour obtenir le rsultat.Et enfin une dernire matrice, M5, sert la mise en place dune condition darrt sur chaque nud, c'est--dire que tant que les chemins qui aboutissent un mme nud ne sont pas entirement faits, on ne calcule pas le jour max de ce nud.Et de manire analogue, on construira les matrices M6, M7 et M8 pour dterminer le jour au plus tard.

    V.2Algorithmes

    Premier Algorithme

    a) Algorithme

    Ordonnancement ( T: TABLEAU[0,N][1,6])% N nombre de tches

    Pr-condition: % a dfinir Post-condition: % a dfinir

    % dbut de l'algorithme permettant de dfinir le jour le plus court de chaque tche.

    Projet: Ordonnancement 7

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    9/20

    Ralisation:

    iNTant que iNRpter SiT(i,3)=0

    AlorsT(i,4)T(i,2)SinonT(i,4)T(i,2) + MAX(T(i,3))% on prend la valeur maximale des contraintes prsentes la ligne i et la colonne 3

    du tableau d'entreFin Si

    ii+1Fin Tant que

    => Utilisation du MAX

    MAX ( TABLEAU[0,N][1,6], ): ENTIER k2 j1

    r : premier charactere% a sera le rsultat du MAXmNombre_caractre(T(i,3))

    Tant quek mRpter Si disp(ch(j)) disp(ch(k))% disp correspond la fonction qui assimile un caractre un

    nombre.Alorskk+1 et rdisp(ch(j))Sinonjj+1Fin Si

    Fin tant que

    b) Conclusion

    Ce premier algorithme fonctionne seulement si les tches sont ordonnes, c'est dire si elles sont mis dansl'ordre chronologique ds le dpart.

    Algorithme en rcursif

    a) Algorithme

    DUREE_MAX( B[j,k]):ENTIER % On fixe k et on fait varier les ligne et on regarde quand M(j,k) est diffrent de 0. Si c'est le cas on prendcette valeur et on l'additionne la dure max B[x,j-1] en fixant j (on regarde sur la colonne j-1) et en faisantvarier les lignes x.A:M1 ?B: M2 ?C: M3 ?

    Prcondition:B remplitPost-condition:

    D claration d e variables: C: TABLEAU [ENTIER] [1, N+1] [1, N]

    Projet: Ordonnancement 8

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    10/20

    j: ENTIER k: ENTIER

    Ralisation:

    j1Si k=1Alorsrsultat 0SinonTant queJ N+1

    Rpter Si B[j;k] =0AlorsC[j,k]0SinonC[j,k] B[j;k]+DUREE_MAX( B[j,k-1])Fin Si jj+1

    Fin Rpter A[k+1;4] MAX(C[i;k])% on prend la valeur maximale de la colonne k que l'on fait varie

    Fin Si

    JOUR_MAXI ( M1: TABLEAU [ENTIER] [1, N+1] [1, 6]: ENTIER; M2: TABLEAU [ENTIER] [1, N+1][1, N]: ENTIER): M1: TABLEAU [ENTIER] [1, N] [1, 6]: ENTIER

    Prcondition:M2 remplitPost-condition:le rsulta de la ligne i et de la colonne 4 contient la dure minimal o la tache i peut

    tre effectu.

    Dclaration de variables: k: ENTIER

    Ralisation:

    k1

    Tant quek NRpter M1[k+1;4]DUREE_MAX(M3[i;k]) % on calcule la dure maximale sur la colonne k (qui

    correspond regarder le jour minimal de la tche k dans M2 ou k+1 dans M1 (mme tche)

    kk+1Fin Rpter

    Fin JOUR_MAXI

    b) Conclusion

    Nous n'avons pas continu avec cette mthode, car le logiciel Matlab aurait bloqu au bout de 500rcursivits, et nous aurions t limit 25 tches.

    Projet: Ordonnancement 9

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    11/20

    Algorithme en itratif

    a) Dclaration des matrices utilises lors de l'algorithmique

    Pour ce programme nous avons besoin de dfinir des matrices:

    Dclaration de la matrice M1

    N=input ('Entrer le nombre de taches:') % N reoit le nombre de tchesM=zeros(N+1,1) % M matrice remplie de 0 de N+1 ligne et de une colonne

    Pour i = 2 jusqu' i =N+1

    M(i,1) = input (['Entrer le nom de la tache ' num2str(i-1) ':']) % M (i,1) reprsente le coefficient de la i me ligne, premire colonne de la matrice M

    % La premire colonne de la matrice M1 est remplie par le nom de chaque tche.M(i,2) = input (['Entrer la dure de la tache ' num2str(i-1) ':']) % M (i,2) reprsente le coefficient de la i me ligne, deuxime colonne de la matrice M % La seconde colonne de la matrice M1 est remplie par la dure associe chaque tche.k=input(' Combien avez-vous de contraintes:') % k correspond au nombre de tches effectuer avant la tche correspondante la ligne i.

    Si k1Pour j =1 jusqu' j=k M(i,j+2) = input(['Entrer la tache effectuer avant la tache ' num2str(i-1) ':'])% prend le nom de la tche effectuer avant la tche

    correspondante a la ligne i

    FinSinonSi k 1

    M(i,3)=0% si il n'y pas de tches effectuer avant la tche correspondante la ligne i,le nom de la tche effectuer avant est gal zro.

    Fin SiFin si

    Fin

    Pour notre exemple: M1

    M1=

    0 0 0 0 01 6 0 0 02 3 0 0 03 6 0 0 04 2 2 0 05 4 2 0 06 3 1 4 07 1 3 5 6

    Projet: Ordonnancement 10

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    12/20

    Dclaration de la matrice intermdiaire M2

    M2=zeros(N+1,N)% Matrice de 0 de N+1 lignes et N colonnes.m= size(M,2)% Donne le nombre de colonne de la matrice.

    p1q1Tant quep N

    Si p=1Tant queq N-1

    Si M(p,1)=M(q+1,3)M2(p,q)=M(q+1,2)

    Fin Siq q+1

    Fin Tant que

    q1Sinon Tant queq N

    Pour u=3 jusqu' u=mSi M(p,1) = M(q+1,u)

    M2(p,q) = M(q+1,2)Fin Si

    Finqq+1

    Fin Tant queq1

    Fin Si

    pp+1Fin

    Pour notre exemple: M2

    M2=

    6 3 6 0 0 0 00 0 0 0 0 3 00 0 0 2 4 0 00 0 0 0 0 0 10 0 0 0 0 3 00 0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 0

    Projet: Ordonnancement 11

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    13/20

    Nous avons galement besoin de dfinir dM3, qui est de la mme dimension que M2, est la matrice finale,sur laquelle on fait le maximum des colonnes.

    M3 pour l'exemple:

    M3=

    6 3 6 0 0 0 00 0 0 0 0 3 00 0 0 2 4 0 00 0 0 0 0 0 10 0 0 0 0 3 00 0 0 0 0 0 10 0 0 0 0 0 10 0 0 0 0 0 0

    Dclaration de la matrice M4:M4[N+1,N] est la matrice qui stocke le jour maximale de chaque chemin calcul. D'autre part elle

    permet de se rappeler quel chemin nous faisons.

    M4initial =

    0 0 0 0 0 0 0 00 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0

    de M5

    M5[2,N] est la matrice qui pose la condition sur chaque noeud. C'est a dire qu'elle permet le franchissement d'un

    Projet: Ordonnancement 12

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    14/20

    noeud, une fois que tous les chemins la joignant sont calcul.

    a) Algorithme

    REMPLISSAGE_M4(M2,M4):M4

    Prcondition:Post-condition:

    Dclaration d e variables: j: ENTIER

    Ralisation: j1

    Tant quejNRpeter Si M2[1;j]0

    AlorsM4[1,j]M2[1;j]Fin Si

    jj+1Fin Rpter

    Fin REMPLISSAGE_M4

    REMPLISSAGE_M5(M2,M5):M5

    Prcondition: Post-condition:

    Dclaration de variables:v: ENTIER w: ENTIER

    Ralisation:v1w1

    Tant quev NRpter Tant quew N

    Rpter Si M2[w,v]0AlorsM5[1;v]M5[1;v]+1Fin Si

    ww+1Fin rpter

    vv+1Fin rpter

    FIN REMPLISSAGE_M5

    exemple de remplissage M5 :

    Chaque valeur correspond au nombre de chemin arrivant sur une tache.C'est a dire, il y a un chemin qui arrive sur a, 1 sur b,..., 2 sur f, 3 sur g.

    M5= 1 1 1 1 1 2 30 0 0 0 0 0 0

    Projet: Ordonnancement 13

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    15/20

    JOUR_MAX(M2,M3,M4,M5): M3

    Prcondition:Post-condition:

    Dcla ration de variables: p: ENTIER k: ENTIER m: ENTIER

    Ralisation:

    p1k1m1

    Tant quep N+1%on est sur la ligne p de M4Rpter Tant que k N % on est sur la colne k de M4

    Rpter Si M4[p;k] 0%on regarde les valeur non nulles de M4 a la ligne p et la colone k Alors Tant quem N

    Rpter si M3[k+1;m] 0AlorsM3[k+1,m]M3[k+1;m]+M4[p;k]

    % la matrice M3 prend la valeur de son chemin, qui etait stock dans M3, plus celle de M4 qui correspond au jour Max%des taches antecedantes.

    Et M5[2,m]M5[2;m]+1% on increment la colonne equivalente dans M5, signifiant qu'un chemin supplementaire a ete calcul.

    Et Si M5[1,m] = M5[2,m]% on regarde si tous les chemins precedants la tache ont ete calcul.

    alorsM4[p+1,m]max(M3[1...n+1;m])% on active un nouveau chemin a calculer dans M4. Ce chemin prend le jour max de la tache antecedante.

    Fin SiFin Si

    mm+1Fin Rpter

    M1Fin Si

    kk+1Fin Rpter

    pp+1 k1Fin Rpter

    FIN JOUR_MAX

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    16/20

    Alors Si M5T[mt,2] = M5T[mt,1]AlorsM4T[Pt+1,mt-1] = MIN(M3T[mt,:])

    %n active un nouveau chemin a calculer dans M4T. Ce chemin prend le jour min de la tache suivante.

    Fin SiFin SIFin Si

    mtmt+1Fin Rpter

    mt1Fin Siktkt+1

    Fin Tant quePtPt+1kt1Fin Tant que

    b) Rsultat MATRICE FINALE il nous reste plus ka faire la difference entre duree o plus tard et duree o plus tot. Pour chaque resultat nul, latache appartien o chemin critique. Sinon, le resultat obtenu nous donne la marge associe a chke tache

    c) Conclusion et commentaires

    Cet algo nous permet d'obtenir les tache qui appartien o chemin critike rechercher AINSI QUE LESMARGE DE TEMPS ASSOCIER A CHAQUE TACHE. En effet, il nous donne une matrice finale danslakelle on trouve.....

    Exemple pour une installation industrielle

    a) Tableau des tches

    Les tches et leur dures, ainsi que leur contraintes associes sont prsentes dans le tableau suivant:

    Description des oprations Dure des tches en heures Contraintes1- Descente en temprature et en pression

    10

    2- Dmontage des circuits

    infrieurs

    16 1

    3- Remontage refroidisseur 30 7,44- Remontage des circuitsinfrieurs

    40 8

    5- Nettoyage refroidisseur etremplacement des tubes

    18 2

    6- Rgnration du catalyseur 14 37- Essai de tenue en pression 17 98- Dmontage du refroidisseur 15 1

    9- Inspection colonne infrieure et 25 3

    Projet: Ordonnancement 15

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    17/20

    rparation des tubes10- Remontage du catalyseur 20 5,611- Dmarrage rel

    b) Rsultat obtenu avec Matlab

    VIApplications sur l'ordonnancement : Le Viaduc de Millau

    Depuis la fin des anne 80, la stratgie dans les entreprises prend une place importante.

    L'organisation des taches accomplir pour raliser un projet doit tre efficace. De ce fait, l'ordonnancementdes tches joue un rle essentiel afin de pouvoir respecter l'chance du projet.A travers ce projet, il nous a t possible de mettre en uvre une mthode d 'ordonnancement et ainsi tester nos algorithmes sur un exemple simple, limit quelques tches. Il serait maintenant intressant d'utiliser cetalgorithme sur des problmes plus industriels prsentant de nombreuses tches. Par exemple sur laconstruction d'un grand ouvrage d'art tel que du Viaduc de Millau. En effet la construction de ce Viaduc s'estfait en une multitude tapes, toutes s'effectuant dans un ordre prcis et certaines pouvant se raliser simultanment.

    Projet: Ordonnancement 16

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    18/20

    VI.1 Exemples de tches

    Construction des piles: - Semelle de soutien- lvation de la pile simultanment pour toutes les- lvation de la grue piles

    Assemblage du tablier Mise en place des bquilles provisoires simultanment

    Mise en place du tablier par poussageSoudure du tablier Mise en place des pilonnes suprieurs et des haubans simultanment pour tous les

    pilonnesSuppression des bquilles provisoiresPose de l'enrob

    VI.2 Intrt de l'ordonnancement

    L'ordonnancement permetde grer dans le temps les interventions successives des centaines de sous traitant impliqus dans laralisation du Viaduc de Millau.Exemples pour les piles : - matre d'ouvrage

    - livraison du btons- fourniture des semelles de construction- grues

    de connaitre les dates auxquelles un bureau de certification peut certifier un nouvel quipement spcial dans

    Projet: Ordonnancement 17

    Illustration 3: Viaduc de Millau

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    19/20

    un atelier.d'identifier des priodes au cours desquelles l'activit d'une quipe peut tre accrue ou doit tre diminuefaute de ressources suffisantesde savoir l'incidence sur les cot de dveloppement.

    VI.3 Deux types d'ordonnancement

    En conception et en exploitation: - l'analyse des tches, leur dfinitions, leur dures- les antriorits- la planification- le chemin critique

    En contrle de projet: - Suivi des dlais et des cot

    - Prise de dcisions ( affectation des ressources par exemple)

    VII Conclusion

    VIIIAnnexes

    VIII.1 Algorithme prsence

    presence (Ch: CHAINE, CAR: CARACTERE):BOOLEEN

    si premier(ch)= ensemble vide

    alors r

  • 8/6/2019 Ingnierie Numrique - Ordonnancement

    20/20

    VIII.2 Fichiers Matlab

    Projet: Ordonnancement 19