choco.chocosamples
Class EmploiTime

java.lang.Object
  |
  +--choco.chocosamples.EmploiTime

public class EmploiTime
extends java.lang.Object


Nested Class Summary
(package private)  class EmploiTime.DomainVar
          comme dans le carre magique , on applique une heuristique concernant le choix des valeurs du domaine des variables.
(package private)  class EmploiTime.Problemm
           
 
Field Summary
private  boolean ameliore
           
private  IntVar[][] CMidi
           
private static int[][] contraintesMidi
           
private static int[][] contraintesSoir
           
private  int[][] CreneauxEnseignant
           
private  IntVar[][] CSoir
           
private static int deb
           
private  EmploiTime.DomainVar dom
           
private  int[][] E
           
private  IntVar[] EnsembleSeances
           
private static int fin
           
private static java.util.logging.Logger logger
           
private  int[] ModuleDispatche
           
private  int[] ModuleGroupe
           
private  int[][][][] Modules
           
private  int[][] ModulesIncompatibles
           
private  int nbCoursTotal
           
private  int nbCreneaux
           
private  int nbCreneauxHebdo
           
private  int nbEns
           
private  int nbGroupe
           
private  int nbJour
           
private  int nbType
           
private  EmploiTime.Problemm pb
           
 
Constructor Summary
EmploiTime(int nbJour, int nbCreneaux, boolean vitesse, int[][] CEp, int[][] E, int[][][][] MM, int[][] ModulesIncompatibles, int[] MG, int[] MD)
           
 
Method Summary
 int[] copie(int[][] t, int i)
           
 int[] CreneauxEnseignantAssociéCours(int[][] CreneauxEnseignantp, int[][] Ep, int module)
          Renvoie tous les créneaux de disponibilité d'un enseignants associé à un numéro de module.
 int[][] disponibilite(int[][] tab)
           
 int[] EnseignantAssocieASeance(int module)
           
 int[] indiceSeance(int[] enseignant, int uneSeance)
          Renvoie la position de la séance dans la variable de l' enseignant associé.
static void main(java.lang.String[] args)
           
 int member(int element, int[] tabElement)
           
 int moduleAssocieSeance(int uneSeance)
          Renvoie le module associé à un numéro de séance
 int nbSeanceParEns(int ens)
          Renvoie le nombre de séances étudié par un enseignant.
 int nbSeancePourModule(int module)
          Renvoie le nombre de séances d' un module
 int nbSeancePourModuleInc(int a)
          Renvoie le nombre de séances d'un module incompatible
 int nbSeancePourUnTypeSeanceUnTypeGroupe(int typeSeance, int numGroupe)
          Renvoie le nombre de séances de tous les modules incompatibles en fonction du type de seance et de groupe.
 int nbSeancePourUnTypeSeanceUnTypeGroupeModuleInc(int typeSeance, int numGroupe, int i)
          Renvoie le nombre de séances d'un module incompatible en fonction du numero de module ,de type de seance et de groupe.
 int nbSeances()
           
 int nbSeanceTotalPourTypeDeSeance(int typeSeance)
          Renvoie le nombre de séances de de tous les modules incompatibles de type
 int nbSeanceTotalPourTypeDeSeanceModuleInc(int typeSeance, int i)
          Renvoie le nombre de séances d'un module incompatible en fonction du numero de module ,de type de seance.
 int positionSeanceDansModule(int module, int uneSeance)
          Renvoie la position de la séance dans le module.
 int positionSeanceDansSeances(int module, int uneSeance)
          Renvoie la position de la séance dans Seances contenues dans vars.
 void resolve()
          Procédure de résolution du Problème de l' emploi du temps.
 int[] union(int[] tab1, int[] tab2)
          Renvoie l' union de 2 tableaux d'entiers.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static java.util.logging.Logger logger

nbJour

private int nbJour

nbCreneaux

private int nbCreneaux

CreneauxEnseignant

private int[][] CreneauxEnseignant

nbEns

private int nbEns

nbCreneauxHebdo

private int nbCreneauxHebdo

dom

private EmploiTime.DomainVar dom

ameliore

private boolean ameliore

pb

private EmploiTime.Problemm pb

nbType

private int nbType

nbGroupe

private int nbGroupe

E

private int[][] E

Modules

private int[][][][] Modules

ModulesIncompatibles

private int[][] ModulesIncompatibles

nbCoursTotal

private int nbCoursTotal

EnsembleSeances

private IntVar[] EnsembleSeances

contraintesMidi

private static int[][] contraintesMidi

CMidi

private IntVar[][] CMidi

contraintesSoir

private static int[][] contraintesSoir

CSoir

private IntVar[][] CSoir

deb

private static int deb

fin

private static int fin

ModuleGroupe

private int[] ModuleGroupe

ModuleDispatche

private int[] ModuleDispatche
Constructor Detail

EmploiTime

public EmploiTime(int nbJour,
                  int nbCreneaux,
                  boolean vitesse,
                  int[][] CEp,
                  int[][] E,
                  int[][][][] MM,
                  int[][] ModulesIncompatibles,
                  int[] MG,
                  int[] MD)
Method Detail

member

public int member(int element,
                  int[] tabElement)

main

public static void main(java.lang.String[] args)

disponibilite

public int[][] disponibilite(int[][] tab)

copie

public int[] copie(int[][] t,
                   int i)

nbSeances

public int nbSeances()

EnseignantAssocieASeance

public int[] EnseignantAssocieASeance(int module)

positionSeanceDansSeances

public int positionSeanceDansSeances(int module,
                                     int uneSeance)
Renvoie la position de la séance dans Seances contenues dans vars.

Parameters:
module - le numero du module
uneSeance - le numero de la séance.

nbSeancePourModule

public int nbSeancePourModule(int module)
Renvoie le nombre de séances d' un module

Parameters:
module - le numero du module

positionSeanceDansModule

public int positionSeanceDansModule(int module,
                                    int uneSeance)
Renvoie la position de la séance dans le module. contenues dans vars.

Parameters:
module - le numero du module
uneSeance - le numero de la séance.

indiceSeance

public int[] indiceSeance(int[] enseignant,
                          int uneSeance)
Renvoie la position de la séance dans la variable de l' enseignant associé.

Parameters:
enseignant - le tableau d'indice de séances auquel il participe
uneSeance - un numero de la séance.

union

public int[] union(int[] tab1,
                   int[] tab2)
Renvoie l' union de 2 tableaux d'entiers.

Parameters:
tab1 -
tab2 -

nbSeancePourUnTypeSeanceUnTypeGroupeModuleInc

public int nbSeancePourUnTypeSeanceUnTypeGroupeModuleInc(int typeSeance,
                                                         int numGroupe,
                                                         int i)
Renvoie le nombre de séances d'un module incompatible en fonction du numero de module ,de type de seance et de groupe.

Parameters:
i - indice d'un groupe de modules incompatibles.
typeSeance - (0 pour un cours ,1 pour un TD ,2 pour un TP) et de groupe
numGroupe - le numero de groupe

nbSeancePourUnTypeSeanceUnTypeGroupe

public int nbSeancePourUnTypeSeanceUnTypeGroupe(int typeSeance,
                                                int numGroupe)
Renvoie le nombre de séances de tous les modules incompatibles en fonction du type de seance et de groupe.

Parameters:
typeSeance - (0 pour un cours ,1 pour un TD ,2 pour un TP)
numGroupe - numero de groupe

nbSeancePourModuleInc

public int nbSeancePourModuleInc(int a)
Renvoie le nombre de séances d'un module incompatible

Parameters:
a - indice d'un groupe de modules incompatibles.

moduleAssocieSeance

public int moduleAssocieSeance(int uneSeance)
Renvoie le module associé à un numéro de séance

Parameters:
uneSeance - numero de seance

CreneauxEnseignantAssociéCours

public int[] CreneauxEnseignantAssociéCours(int[][] CreneauxEnseignantp,
                                            int[][] Ep,
                                            int module)
Renvoie tous les créneaux de disponibilité d'un enseignants associé à un numéro de module.

Parameters:
module - numero de module

nbSeanceParEns

public int nbSeanceParEns(int ens)
Renvoie le nombre de séances étudié par un enseignant.

Parameters:
ens - numero d'enseignant.

nbSeanceTotalPourTypeDeSeanceModuleInc

public int nbSeanceTotalPourTypeDeSeanceModuleInc(int typeSeance,
                                                  int i)
Renvoie le nombre de séances d'un module incompatible en fonction du numero de module ,de type de seance.

Parameters:
i - indice d'un groupe de modules incompatibles.
typeSeance - (0 pour un cours ,1 pour un TD ,2 pour un TP).

nbSeanceTotalPourTypeDeSeance

public int nbSeanceTotalPourTypeDeSeance(int typeSeance)
Renvoie le nombre de séances de de tous les modules incompatibles de type

Parameters:
typeSeance - (0 pour un cours ,1 pour un TD ,2 pour un TP).

resolve

public void resolve()
Procédure de résolution du Problème de l' emploi du temps. en plusieurs étapes: -Contraintes de disponibilité d' enseignants. -contraintes d 'incompatibilités de modules. -contraintes des modules dont les séances sont regroupées. -contraintes des modules dont les séances sont dispatchées. -Contraintes des créneaux du ModulesIncompatiblesdi et du soir.