00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SOSHybridGA.h,v 1.3 2003/01/08 18:57:11 meierb Exp $ 00008 00009 Purpose : 00010 00011 RCS-Log: 00012 $Log: SOSHybridGA.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.1 2000/08/20 23:09:00 taeubig 00023 Added Hybrid Genetic Algorithm 00024 00025 00026 * #end# ************************************************************* */ 00027 00028 #ifndef SOSHYBRIDGA_H 00029 #define SOSHYBRIDGA_H 00030 00031 // system header files 00032 00033 // project header files 00034 #include "SSchedAlgorithm.h" 00035 00036 class SOSHybridGA : public SSchedAlgorithm 00037 { 00038 public: 00039 virtual ~SOSHybridGA() {}; 00040 virtual void startup(); 00041 virtual double innerLoop(const leda_list<STSysSchedEvent>&); 00042 virtual const leda_string getDescription() const; 00043 virtual const leda_string &getName() const; 00044 virtual const SClassification &getClassification() const; 00045 virtual SLeaBibEntry &getLeaBibEntry() const; 00046 private: 00047 double makespan(const leda_array<double>& schedule); 00048 void buildSchedule(const leda_array<int>& chrom, 00049 leda_array<double>& schedule); 00050 00051 leda_array<double> _procTime; 00052 leda_array<double> _schedule; 00053 leda_array<leda_array<int> > _opOrder; 00054 }; 00055 00056 #endif // SOSHYBRIDGA_H