00001 /* #start# *********************************************************** 00002 00003 Scheduling Simulator 00004 Lehrstuhl f"ur Effiziente Algorithmen 00005 Technische Universit"at M"unchen 00006 00007 File : $Id: SJobShop.h,v 1.6 2003/01/24 10:04:59 hall Exp $ 00008 00009 Purpose : 00010 00011 RCS-Log: 00012 $Log: SJobShop.h,v $ 00013 Revision 1.6 2003/01/24 10:04:59 hall 00014 brdCast stuff 00015 00016 Revision 1.5 2003/01/08 18:57:13 meierb 00017 added randomized release times 00018 00019 Revision 1.2 2002/12/16 23:32:09 meierb 00020 *** empty log message *** 00021 00022 Revision 1.1.1.1 2002/12/02 22:26:19 meierb 00023 my_schedule 00024 00025 Revision 1.3 2002/11/10 18:05:42 taeubig 00026 namespace and header include changes 00027 00028 Revision 1.2 2002/11/07 12:33:25 taeubig 00029 Added class keyword to friend declaration 00030 00031 Revision 1.1 2002/08/29 12:59:59 taeubig 00032 Added the sources 00033 00034 Revision 1.1 2000/05/29 19:44:31 taeubig 00035 Moved environment related files into subdirectory env 00036 00037 Revision 1.11 2000/05/24 12:46:08 taeubig 00038 New compiler (gcc-2.95) and new Qt (2.1) 00039 Replaced "list" by "leda_list" etc. 00040 00041 Revision 1.10 2000/01/13 16:44:10 zoidl 00042 added javadoc comments 00043 00044 Revision 1.9 1999/12/28 23:33:09 zoidl 00045 SShopJob::setNumOfOperations() is dead, long live 00046 SGeneralShopMod::setNumOperations() 00047 00048 Revision 1.8 1999/12/01 14:28:22 zoidl 00049 corrected declaration of getModifer() 00050 00051 Revision 1.7 1999/11/30 16:07:12 zoidl 00052 also flow shops work now 00053 00054 Revision 1.6 1999/11/30 00:02:11 zoidl 00055 now job shops work, too 00056 00057 Revision 1.5 1999/11/17 14:57:37 schickin 00058 frame for shop models added 00059 00060 Revision 1.4 1999/02/12 11:55:42 hall 00061 impl. SEnvironment slice 00062 00063 Revision 1.3 1999/02/10 15:05:43 schickin 00064 model-directory can be compiled now 00065 00066 Revision 1.2 1999/01/29 10:03:38 schickin 00067 Project-Headers added. 00068 00069 00070 * #end# ************************************************************* */ 00071 00072 #ifndef SJOBSHOP_H 00073 #define SJOBSHOP_H 00074 00075 // system header files 00076 #include <LEDA/array2.h> 00077 00078 // project header files 00079 #include "SGeneralShop.h" 00080 #include "SJobShopMod.h" 00081 #include "../jobs/SJob.h" 00082 00091 class SJobShop : public virtual SGeneralShop { 00092 TYPEINFO1(SJobShop, "J", SGeneralShop); 00093 friend class SJobShopMod; 00094 public: 00097 SJobShop(); 00100 virtual ~SJobShop(); 00101 00102 // inherited by SEnvironment (via SGeneralShop) 00103 00111 virtual double getRemProcTimeOn(SJob& job, 00112 const SMachines& machines) const; 00113 00116 virtual int getNumOfMachines() const 00117 { return _numMach; }; 00118 00121 virtual SEnvironmentMod& getModifier() 00122 { return _mod; }; 00123 00124 // inherited by SGeneralShop 00125 00131 virtual leda_list<int> getAvailOperations(const SShopJob& job) const; 00132 00139 virtual double getPartialProcTime(const SShopJob& job, int op, 00140 const SMachines& mach) const; 00141 00144 virtual int getNumOperations(const SShopJob& job) const; 00145 00152 virtual leda_list<int> getMachinesFor(const SShopJob& job, int op) const; 00153 virtual int getNextOperation(const SShopJob& job) const; 00154 00155 // new methods 00156 00163 virtual const leda_array<int>& getWorkPlan(const SJob& job) const; 00164 00165 protected: 00171 leda_array< leda_array<double>* > _partTimes; 00172 00175 int _numMach; 00176 00177 private: 00181 leda_array< leda_array<int>* > _workPlan; 00182 00183 SJobShopMod _mod; 00184 }; 00185 00186 #endif //SJOBSHOP_H 00187 00188