Algorithme PERT

Licenseinfo Messages postés 1 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 15 octobre 2003 - 15 oct. 2003 à 18:45
cs_mclane1 Messages postés 2 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 30 juin 2009 - 30 oct. 2003 à 21:04
Bonjour, je débute en C et j'ai bcp de mal a faire ce programme
on a des taches i
ces taches ont une durée D, D[i]
et des relation de préséance i=>j
on a P[i] correspond au nombre de precedents de i
et on a S[i] ensemble des succeseurs de i ( les j apparaissant dans les relations i=>j)
on introduit un tableau C tel que C[i] est la date de commencemetn au plus tot de i, initialisé par des zeros et modifie a chake tour d'algorithme ce tableau contiendra en fin d'exec le résultat recherché

Récupérer le nbre de taches, leur durée et les relations
et construire en meme temps les tableaux P et S

J'ai fait ca et ca marche pas encore:
#include <stdio.h>
#define max 100

int d[max],p[max],s[max][max],tsp[max],c[max];
int main(void)
{int i,j,n,k;
printf("nombre de tache :");
scanf("%d",&n);
for (i=0;i<n;i++){
printf("duree de la tache ");
printf(" no %d: ",i);
scanf("%d",&d[i]);
}
printf("donne les couples i j (-1 pour terminer)");
j=0;
while (i!=-1){
n=0;
scanf("%d %d",&i, &j);
p[j]++;
s[i][j]=1;
}
k=0;
for(i=0;i<max;i++){
if(p[i]==0){
tsp[k]=i;
k++;
}
}
i=0;
while(tsp[i]){
for(j=0;j<max;j++){
if (s[i][j]==1) {
if (c[j]<(c[i]+d[i]))
c[j]=c[i]+d[i];
p[j]=p[j]-1;
if (p[j]=0) {
tsp[k]=j;
k++;}
}
}
i++;
}
}

HELPPPPPPPPPPPPPPPPPPPPPPPPPPPPP !!!!!!!!!!!!!!!

2 réponses

cs_JCDjcd Messages postés 1138 Date d'inscription mardi 10 juin 2003 Statut Membre Dernière intervention 25 janvier 2009 4
19 oct. 2003 à 16:14
Tu dis que tu debute en C, je n'est rien compris au texte !
(successeur et trucs machins choses)

Tu peux etre plus claire svp
0
cs_mclane1 Messages postés 2 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 30 juin 2009
30 oct. 2003 à 21:04
Salut...
Je pense pouvoir t'aider...
L'algorithme PERT est l'algo suivant:
"Un ordonnancement au plus tôt peut être trouvé à l'aide de l'algorithme PERT: on crée 2 tâches fictives Debut avant toutes les tâches sans antécédent et Fin après toutes les tâches sans suivant, on étiquette DAPT de Debut à 0 et on effectue les 2 phases suivantes. Phase 1: on répète pour chaque tâche dont le DAPT est non-étiqueté: soit ANT l'ensemble des antécédents de la tâche. Si toutes les tâches de ANT sont étiquetées, on prend le max de DAPT+DUR parmi toutes les tâches de ANT et on étiquette le DAPT de la tâche avec cette valeur. Phase 2 : On étiquette FAPT de la tâche Fin avec sa valeur de DAPT+DUR et on répète pour chaque tâche dont la FAPT est non-étiqueté: soit SUIV l'ensemble des successeurs de la tâche. Si toutes les tâches de SUIV sont étiquetées, on prend le min de FAPT-DUR parmi toutes les tâches de SUIV et on étiquette la FAPT de la tâche avec cette valeur. En complément, on peut calculer la marge libre de chaque tâche (ML = FAPT-DAPT-DUR). Une tâche ayant une marge libre de 0 est dite critique: son retard provoque le retard de l'ensemble du chantier."

Mais je pense que tout ca tu le connais...
C'est a toi de le faire, et pas a qqun d'autre.
Je peux te le dire, je suis redoublant, si tu te fais aider, en exam tu seras grave embeté.
Alors demande directement à qqun de la classe...
meme à moi au pire, mais je n'ai pas reponse a tout....
mclane1@caramail.com
0
Rejoignez-nous