RCPSP en CPLEX avec 3 types de contraintes de précédences

Fermé
nani93 Messages postés 1 Date d'inscription samedi 26 mars 2016 Statut Membre Dernière intervention 23 avril 2016 - Modifié par KX le 23/04/2016 à 18:15
Bonjour à tous ,
j'essaye de faire un programme en cplex du problème rcpsp (gestion de projet sous contraintes de ressources )
sachant que j'ai trois types de contraintes de précédences (debutdebut,debutfin ,finfin )

voila mon programme !!!
le problème c'est que ça me donne tjrs "pas de solution "
aidez moi s'il vous plait :)

/*********************************************
* OPL 12.5 Model
* Author: W7
* Creation Date: 21 avr. 2016 at 20:37:13
*/
using CP;

int NbTasks = ...;
int NbRsrcs = ...;
range RsrcIds = 0..NbRsrcs-1;
int Capacity[r in RsrcIds] = ...;
tuple Task {
    key int id;
    int pt;
    int dmds[RsrcIds];
    {int} pred ;
    int p_type;
}
{Task} Tasks = ...;
dvar interval itvs[t in Tasks]
size t.pt;

cumulFunction rsrcUsage[r in RsrcIds] =
    sum (t in Tasks: t.dmds[r]>0)
        pulse(itvs[t], t.dmds[r]);
    execute {
        cp.param.FailLimit = 10000;
    } minimize max(t in Tasks) endOf(itvs[t]);
    
    subject to {
        forall (r in RsrcIds)
        rsrcUsage[r] <= Capacity[r]; //capacité    
        forall (t1 in Tasks, t2id in t1.pred)
            if (t1.p_type ==1)
                endBeforeStart(itvs[t1], itvs[<t2id>]);
            else if (t1.p_type ==2)    
                startAtStart (itvs[t1], itvs[<t2id>]);
            else if  (t1.p_type ==3)    
        endAtEnd (itvs[t1], itvs[<t2id>]);
    } 
    
    execute {
        for (var t in Tasks) {
            writeln("Task " + t.id + " starts at " + itvs[t].start);
        }
    }



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également: