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

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

00001 // definicija svih funkcija i terminala koji se mogu koristiti
00002 #ifndef NODES
00003 #define NODES
00004 #include<string>
00005 using namespace std;
00006 
00007 const int MAX_JOBS = 200;   // najveci broj poslova
00008 const int MAX_TREES = 3;    // zasada :) najvise 3 stabla
00009 //#define TREES             // ako koristimo visestablenu strukturu za jobshop!
00010 //#define ADAPTATION            // ako koristimo prilagodbu operatora i cvorova
00011 
00012 // Postupak za dodavanje novog terminala:
00013 // - definirati konstantu (ovdje)
00014 // - definirati ime terminala (fitnes.cpp: konstruktor)
00015 // - omoguciti citanje terminala iz stabla (fitnes.cpp:ReadIndividual)
00016 const int ONE = 1;      // specijalni terminali
00017 const int NUL = 0;
00018 const int OFFSET = 2;   // pocetak terminala
00019 // za SINGLE
00020 const int T_N = OFFSET + 0;
00021 const int T_SP = OFFSET + 1;
00022 const int T_SD = OFFSET + 2;
00023 const int T_pt = OFFSET + 3;
00024 const int T_dd = OFFSET + 4;
00025 const int T_SL = OFFSET + 5;
00026 const int T_w = OFFSET + 6;
00027 const int T_Nr = OFFSET + 7;
00028 const int T_SPr = OFFSET + 8;
00029 const int T_L = OFFSET + 9;     // kasnjenje
00030 const int T_SLr = OFFSET + 10;  // prosjecni slack svih preostalih poslova
00031 const int T_AR = OFFSET + 11;   // (ready - clock)_+
00032 const int T_SC = OFFSET + 12;   // koliko sljedbenika
00033 const int T_LVL = OFFSET + 13;  // level of a node
00034 const int T_STP = OFFSET + 14;  // trajanje postavljanja sa prethodnog na promatrani zadatak
00035 const int T_Sav = OFFSET + 15;  // prosjecno trajanje postavljanja sa prethodnog na sve ostale zadatke
00036 const int T_CLK = OFFSET + 16;
00037 const int T_TF = OFFSET + 17;   // tardines faktor (procjena): 1 - dd_avg/SP
00038 // UNIFORM
00039 const int T_SPD = OFFSET + 18;  // brzina konkretnog stroja
00040 const int T_Msm = OFFSET + 19;  // suma brzina svih strojeva
00041 const int T_SLs = OFFSET + 20;  // slack koji uzima u obzir brzinu stroja
00042 // UNRELATED
00043 const int T_pmin = OFFSET + 21; // najkrace trajanje izvodjenja zadatka (ovisno o stroju)
00044 const int T_pavg = OFFSET + 22; // srednje trajanje izvodjenja zadatka
00045 const int T_PAT  = OFFSET + 23; // za koliko ce stroj koji daje najmanje trajanje izvodjenja biti slobodan
00046 const int T_MR = OFFSET + 24;   // za koliko ce doticni stroj biti slobodan (machine ready - clock)
00047 const int T_age = OFFSET + 25;  // koliko dugo je posao vec u sustavu (clock - ready)_+
00048 // JOBSHOP
00049 // pt   - trajanje operacije
00050 // dd   - due date posla
00051 // w    - tezina
00052 // AR   - trajanje do dolaska operacije (idle time)
00053 // CLK  - trenutno vrijeme
00054 // STP  - trajanje postavljanja
00055 // Sav  - prosjecno t. p. sa prethodne na ostale operacije (ovisno o poslu)
00056 // age  - vrijeme proteklo od dolaska posla kojemu operacija pripada
00057 const int T_NOPr = OFFSET + 26; // ukupni broj preostalih operacija posla
00058 const int T_TWK = OFFSET + 27;  // ukupno trajanje posla
00059 const int T_TWKr = OFFSET + 28; // preostalo trajanje posla (ukljucujuci i trenutnu operaciju)
00060 const int T_PTav = OFFSET + 29; // prosjecno trajanje operacija na stroju
00061 const int T_HTR = OFFSET + 30;  // head time ratio - omjer vremena provedenog u sustavu i kolicine prethodnog posla
00062                                 // HTR = age / (suma trajanja obavljenih operacija)
00063                                 // HTR = 1 ako do sada nije bilo obavljenog posla
00064 // terminali za strojeve
00065 const int T_MNOPr = OFFSET + 31;    // preostali broj operacija na stroju
00066 const int T_MNOPw = OFFSET + 32;    // broj operacija na cekanju
00067 const int T_MTWK = OFFSET + 33;     // ukupno trajanje svih operacija na stroju
00068 const int T_MTWKr = OFFSET + 34;    // trajanje preostalih operacija na stroju
00069 const int T_MTWKav = OFFSET + 35;   // prosjecno trajanje svih operacija za sve strojeve
00070 const int T_MUTL = OFFSET + 36;     // omjer rada i ukupnog vremena do sada
00071 
00072 const int TERMINALS = 37;       // broj terminala BEZ pocetna dva (OFFSET)
00073 const int ADD = 51;     // pocetak funkcija
00074 const int SUB = 52;
00075 const int MUL = 53;
00076 const int DIV = 54;
00077 const int POS = 55;     // POS(x) = max{x,0}
00078 const int SIN = 56;
00079 const int COS = 57;
00080 const int EXP = 58;
00081 const int LOG = 59;
00082 const int SQR = 60;     // SQR(x) = 1 ako x<0
00083 const int IFGT = 61;
00084 const int FUNC_START = 51;
00085 const int FUNC_END = 62;
00086 const int TOTAL_NODES = FUNC_END;   // ukupan broj terminala i funkcija (zapravo velicina polja Nodes)
00087 
00088 struct _node
00089 {   std::string name;   // ime terminala
00090     double value;       // vrijednost - zasada samo za 0 i 1
00091     bool active;        // jesu li ukljuceni u terminal set
00092     unsigned int frequency; // brojac terminala
00093 };
00094 typedef struct _node node;
00095 
00096 // definicije oznaka fitnes funkcija
00097 const int FUNCTIONS = 6;
00098 const int Twt = 0;
00099 const int Nwt = 1;
00100 const int FTwt = 2;
00101 const int ETwt = 3;
00102 const int Fwt = 4;
00103 const int Cmax = 5;
00104 
00105 #endif // NODES

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