00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SOSPermutationGA.h,v 1.3 2003/01/08 18:57:11 meierb Exp $ 00008 00009 Purpose : 00010 00011 RCS-Log: 00012 $Log: SOSPermutationGA.h,v $ 00013 Revision 1.3 2003/01/08 18:57:11 meierb 00014 added randomized release times 00015 00016 Revision 1.1.1.1 2002/12/02 22:26:19 meierb 00017 my_schedule 00018 00019 Revision 1.1 2002/08/29 12:59:58 taeubig 00020 Added the sources 00021 00022 Revision 1.2 2001/07/04 15:13:30 taeubig 00023 cleanup and Qt dialog for preferences 00024 00025 Revision 1.1 2000/07/27 03:46:05 taeubig 00026 Added Permutation Genetic Algorithm for Open Shop Problems 00027 00028 00029 * #end# ************************************************************* */ 00030 00031 #ifndef SOSPermutationGA_H 00032 #define SOSPermutationGA_H 00033 00034 // system header files 00035 00036 // project header files 00037 #include "SSchedAlgorithm.h" 00038 00039 class SOSPermutationGA : public SSchedAlgorithm 00040 { 00041 public: 00042 virtual ~SOSPermutationGA() {}; 00043 virtual void startup(); 00044 virtual double innerLoop(const leda_list<STSysSchedEvent>&); 00045 virtual const leda_string getDescription() const; 00046 virtual const leda_string &getName() const; 00047 virtual const SClassification &getClassification() const; 00048 virtual SLeaBibEntry &getLeaBibEntry() const; 00049 private: 00050 double makespan(const leda_array<double>& schedule); 00051 void buildSchedule(const leda_array<int>& chrom, 00052 leda_array<double>& schedule, 00053 double &makespan); 00054 void recombination(leda_array< leda_array<int> > &chromosome, 00055 leda_array<double> &ms); 00056 00057 leda_array<double> _procTime; 00058 leda_array<double> _schedule; 00059 }; 00060 00061 #endif // SOSPermutationGA_H