• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/examples/iprojekt/SchedulingEvalOp.h

00001 #ifndef SchedulingEvalOp_h
00002 #define SchedulingEvalOp_h
00003 
00004 #include "matrice.h"
00005 
00006 class SchedulingEvalOp : public EvaluateOp
00007 {
00008 public:
00009     FitnessP evaluate(IndividualP individual);
00010     void registerParameters(StateP);
00011     bool initialize(StateP);
00012     ~SchedulingEvalOp();
00013 
00014 protected:
00015 
00016     enum environment
00017     {   SINGLE,
00018         UNIFORM,
00019         UNRELATED,
00020         JOBSHOP
00021     };
00022 
00023     unsigned int edited,total,nItems;
00024 //  RPN Evaluator;
00025   //void write(std::string &output);
00026   //void ReadTerminals(void);
00027   //void DefineNodeNames(void);
00028   void ReadConstraints(Matrica &Constraints, int set, int jobs, Matrica &Precedence);
00029   void MakeSetup(Matrica &Duration, int set, int jobs, double faktor, Matrica &Setup);
00030   double NodeLevel(int set, int node);
00031   //void StartTerminalStatistic(Beagle::GP::Context& ioContext, double dSubsetSize=0);
00032   //void GetTerminalStatistic(double *pValues);
00033   //void UpdateTerminalStatistic(double &dFitness);
00034   //void ReadIndividual(Beagle::GP::Individual& inIndividual);
00035   //void CalcTimedTerminals(uint &nNiz, uint &nPoslova, uint &nJob, double &dClock, uint nMachine=0, uint nMachines=1);
00036   double EvaluateSingle(TreeP);
00037   //void EvaluateUniform(double &dRawFitness);
00038   //void EvaluateUnrelated(double &dRawFitness);
00039   //void EvaluateJobShop(double &dRawFitness);
00040   //int Before(const void *arg1, const void *arg2);
00041 
00042 protected:
00043   unsigned int sets,max_jobs,total_jobs,max_machines,max_length;
00044   unsigned int m_fitness;   // koja fitnes funkcija? definicije u nodes.h
00045   unsigned int m_BestSubset;    // koliko najboljih jedinki gledamo za statistiku terminala
00046   unsigned int m_SubsetSize;    // vlastita proracunata velicina (default vrijednost)
00047   unsigned int m_InSubset;      // koliko ih trenutno ima u matrici
00048   unsigned int m_WorstInSubset; // koji je najlosiji
00049   double m_WorstSubsetFitness;  // fitnes najlosije jedinke u podskupu najboljih
00050   double m_BestSubsetFitness;   // treba li komentar?
00051   environment m_Environment;    // okruzenje: single, uniform, unrelated, job shop
00052   unsigned int m_SortSet;       // oznaka skupa za potrebe qsort-a
00053   unsigned int m_PopSize;       // ukupna velicina populacije
00054 
00055   bool m_Normalized;        // je li fitnes normiran brojem i trajanjem poslova
00056   bool m_Evaluation;        // pisanje rezultata za svaki skup u datoteku
00057   bool m_TermUsage;         // prikupljanje statistike koristenja terminala
00058   bool m_editing;           // editiranje?
00059   bool m_LEF;               // limited error fitness (1 ili 0)
00060   double m_LEFVal;          // vrijednost za LEF
00061   bool m_setup;             // postoje li trajanja postavljanja izmedyu poslova
00062   double m_setup_faktor;    // prosjecni odnos izmedju trajanja postavljanja i trajanja posla
00063   bool m_dynamic;           // dinamicka okolina?
00064   bool m_constrained;       // ogranicenja u rasporedu?
00065   bool m_stsampling;        // stochastic sampling?
00066   double m_sampling;        // koliki postotak test skupova se uzima
00067   bool *pSamples;           // koji tocno skupovi idu
00068   bool m_Idleness;          // uzimamo li u obzir i cekanje operacija (job shop)
00069   bool *pRasporedjen;
00070   double *pVrijednosti, *pArray, *pSlack, *pSlackSpeed, *pArrival, *pLevel, *pSetupAvg;
00071   double *pOperationReady, *pJobReady, *pTotalWorkRemaining, *pTotalWorkDone, *pTotalMachineWork;
00072   double *pMachineWorkRemaining, *pMachineValues;
00073   unsigned int *pIndex, *pUsed, *pLastJob, *pPTimeMinMachine, *pMachineScheduled, *pOperationsScheduled;
00074   unsigned int *pOperationsWaiting;
00075   Matrica N,Duration,Deadline,WeightT,WeightF,WeightE,WeightN,Ready,Constraints,Machines,Speed;
00076   Matrica SP,SD,Fitness,Schedule,Precedence,Level,Setup,Terminals,MachineReady,PTimeAvg,PTimeMinMachine;
00077   Matrica SortedReady, Values, Durations, MachineIndex;
00078   std::string in_file;
00079 };
00080 typedef boost::shared_ptr<SchedulingEvalOp> SchedulingEvalOpP;
00081 
00082 #endif // SchedulingEvalOp_h

Generated on Wed Sep 21 2011 13:46:53 for ECF by  doxygen 1.7.1