Package launcher

Source Code of launcher.Planning

package launcher;

import model.Module;
import model.PlageCreneaux;
import model.Precedence;
import model.Prof;
import model.Type;
import model.TypeEnseignement;
import model.UV;
import choco.Choco;
import choco.cp.model.CPModel;
import choco.cp.solver.CPSolver;
import choco.kernel.model.Model;
import choco.kernel.model.constraints.Constraint;
import choco.kernel.model.variables.integer.IntegerVariable;
import choco.kernel.solver.Solver;

public class Planning {

  public static void main(String[] args) {

    // constant of the model
   
    // our model
    Model m = new CPModel();
   
    // variables creee pour le test
    // creation de l'UV
    UV RechercheOperationnelle = new UV("Recherche Operetionnelle", 0, 14);
    // ------------------------------------------------------------------
    // construction des modules
    int nbModules = 2;
    Module complexite = new Module("Complexite");
    Module graphes = new Module("Graphes");
    // --------------------------------------- on a 2 module differents
    // construction des creneaux libres
    IntegerVariable cls1 = new IntegerVariable("debut 1", 0, 0);
    IntegerVariable clf1 = new IntegerVariable("fin 1", 3, 3);
    IntegerVariable cld1 = new IntegerVariable("duree 1", 3, 3);
    PlageCreneaux cl1 = new PlageCreneaux("premiere plage libre", cls1, clf1, cld1);
    //
    IntegerVariable cls2 = new IntegerVariable("debut 2", 4, 4);
    IntegerVariable clf2 = new IntegerVariable("fin 2", 6, 6);
    IntegerVariable cld2 = new IntegerVariable("duree 2", 2, 2);
    PlageCreneaux cl2 = new PlageCreneaux("deuxieme plage libre", cls2, clf2, cld2);
    //
    IntegerVariable cls3 = new IntegerVariable("debut 3", 7, 7);
    IntegerVariable clf3 = new IntegerVariable("fin 3", 10, 10);
    IntegerVariable cld3 = new IntegerVariable("duree 3", 3, 3);
    PlageCreneaux cl3 = new PlageCreneaux("troisieme plage libre", cls3, clf3, cld3);
    PlageCreneaux[] creneauxLibres = {cl1, cl2, cl3};
    // --------------------------------------  on a cree 12 creneaux en tout
    // construction des types d'enseigenement pour chaque module
    Prof profCMComplexite = new Prof("Chams");
    int nbCreneauxCMCOmplexite = 3;
    TypeEnseignement CMComplexite = new TypeEnseignement("CM Complexite", Type.CM, 1, 2, profCMComplexite);
    //
    Prof profCMGraphes = new Prof("Gueret Jussien");
    int nbCreneauxCMGraphes = 4;
    TypeEnseignement CMGraphes = new TypeEnseignement("CM graphes", Type.CM, 1, 2, profCMGraphes);
    //
    Prof profTDGrpahes = new Prof("Gueret Jussien");
    Prof profTDGraphes2 = new Prof("Prof 2");
    int nbCreneauxTDGraphes = 5;
    TypeEnseignement TDGraphes = new TypeEnseignement("TD graphes", Type.TD, 2, 2, profTDGrpahes);
    TDGraphes.addProf(profTDGraphes2);
    // -------------------------------------------------------
    // creation des creneaux a placer
   
   
    // constraints
    // repartition sur les plages horaires
    // les creneaux a placer ne doivent pas l'etre en meme temps
    Constraint c1 = Choco.disjunctive(creneauxAPlacer)
    m.addConstraint(c1);
   
    // precedences
    Constraint[] c2 = new Constraint[preced.length];
    for(int i = 0; i < c2.length; i++) {
      c2[i] = Choco.startsAfterBegin(preced[i].getCours2(), preced[i].getCours2(), preced[i].getDureeMinEntre());
    }
    m.addConstraint(c2);
   
    // indisponibilite des encadrants
    // TODO
   
    // blocs minimaux et maximaux pour les types de cours
    // TODO
   
    // preference dans les horaires
    // TODO
   
    // cours le plus tot possible dans le semestre
    // TODO
   
    // solver
    Solver s = new CPSolver();
   
    // read the model
    s.read(m);
   
    // solve the problem
    s.solve();
   
    // print the value
   
  }
}
TOP

Related Classes of launcher.Planning

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.