Professional Documents
Culture Documents
un ensemble de couples 7 7 (lisez la tche L doit tre termine pour que la tche M puisse tre commence ) dfinissant la relation de prcdence.
$. Un arrangement squentiel des tches qui respecte les contraintes de prcdence. %. Pour chaque tche, une date de commencement au plus tt, tenant compte des dures de toutes les tches qui doivent tre acheves avant que la tche en question puisse commencer.
Notez bien que $ et % sont les rponses deux questions trs diffrentes. Dans $, on vous demande de trouver une des dispositions squentielles possibles (il y en a gnralement plusieurs), comme si une seule personne ou quipe devait raliser toutes les tches. On appelle cela le WUL WRSRORJLTXH des tches selon la relation de prcdence, qui est une relation dordre partiel. Dans %, il sagit au contraire de trouver quelle date chaque tche pourrait commencer si celles qui doivent la prcder taient excutes sans prendre aucun retard et en exploitant tous les paralllismes possibles. On peut reprsenter la relation par un graphe. Les sommets correspondent aux tches ; chaque relation 7L 7M donne lieu un arc reliant le sommet L au sommet M. Par exemple, le graphe ci-dessuos exprime les contraintes 73 71, 71 70, 71 74, 70 72 et 74 72 :
0 3 1 4 2
DONNEES INITIALES. La lecture des donnes permet dassocier LPPpGLDWHPHQW chaque tche L :
', 3 et 6 sont des tableaux1 Q lments (les lments de ' et 3 sont des nombres, ceux de 6 sont des ensembles de nombres). On introduira en outre un tableau & dfini par : &L : date de commencement au plus tt de 7L.
sa dure 'L ; le QRPEUH 3L des prdcesseurs immdiats de 7L (les tches 7N qui figurent dans des couples 7N 7L) ; lHQVHPEOH 6L des successeurs immdiats de 7L (les tches 7M figurant dans des couples 7L 7M). Pour la reprsentation de cet ensemble, voir la section (QVHPEOHV la fin du sujet.
Ce tableau sera initialis par des zros. Modifi chaque tour de lalgorithme, il contiendra en fin dexcution le rsultat cherch. ALGORITHME. On gre un HQVHPEOH GH 7kFKHV 6DQV 3UpGpFHVVHXU (763, pour les intimes). Pour sa reprsentation, voir la section (QVHPEOHV la fin du sujet. ,QLWLDOLVDWLRQ. Placer dans 763 toutes les tches sans prdcesseur.
Notez bien quil ny a pas besoin ici dun tableau nomm 7. Comme on la dit, 7 nest quun raccourci commode pour dire la tche numro L .
1
,WpUDWLRQV.
- choisir une tche 7 de 763 (peu importe laquelle), indiquer qu elle peut tre excute et l enlever de 763. Sa date de commencement au plus tt n est autre que la valeur actuelle de & .
&RQFOXVLRQ
- parcourir l ensemble 6 des successeurs de 7 . Pour chaque lment 7 de 6 faire - &M max { &M , &L + 'L } - 3M 3M - 1 - si 3M = 0, faire entrer 7M dans 763
Les itrations s arrtent lorsque 763 est vide (cela finit toujours par arriver). Alors : - si toutes les tches ont t excutes, le programme a fini son travail ; - sinon, c est qu il y a une boucle dans les relations de prcdence ; il faut annoncer cette anomalie.
PROGRAMMATION. Votre programme devra effectuer les oprations suivantes : 2. Lire des couples de nombres L M jusqu la rencontre d une valeur conventionnelle indiquant la fin. Chacun de ces couples exprime une contrainte 7L 7M. En mme temps, construire de proche en proche les tableaux 6 et 3 (la lecture de la relation 7L 7M doit modifier 6L et 3M). 3. Excuter l algorithme dcrit ci-dessus, afin de trouver la date de commencement au plus tt des diffrentes tches. Affichez des couples L &L o L est un numro de tche et &L sa date de commencement au plus tt. Cet affichage se fera au moment o la tche L est extraite de 763, ce qui affichera les tches dans l un des arrangements squentiels possibles. Pour terminer, affichez la date d achvement (au plus tt) du projet tout entier. EXEMPLE D EXECUTION. Les interventions de l utilisateur sont soulignes : Nombre de taches : 5 dure de la tache 0 : dure de la tache 1 : dure de la tache 2 : dure de la tache 3 : dure de la tache 4 : donne des couples i j 3 1 1 0 1 4 20 15 30 10 25 (-1 pour terminer) : 0 2 4 2 -1 1. Lire le nombre Q de tches, puis la dure 'L de chaque tche 7L.
Tri et dates des taches : tache 3 (date : 0) tache 1 (date : 10) tache 4 (date : 25) tache 0 (date : 25) tache 2 (date : 50) Date d'achvement du projet : 80 ENSEMBLES. La mthode explique ci-dessus comporte un sous-problme clairement identifi : comment reprsenter des HQVHPEOHV de nombres, et leurs oprations associes : faire entrer un nombre dans un ensemble ; faire sortir un nombre d un ensemble ; dtecter qu un ensemble est vide ou rendre vide un ensemble ; effectuer une certaine action pour chaque membre d un ensemble. Puisque nous connaissons un majorant 0 du nombre possible d lments, nous pouvons reprsenter ici un ensemble par un tableau dclar de taille 0, contenant les valeurs de l ensemble, associ une variable entire indiquant le nombre effectif de ses lments. Par exemple, avec 0 = 10, l ensemble { 2, 12, 8, 15, 9 } sera reprsent par la structure :
5 2 12 8 15 9
-/
3DJH