/*------------------------------------------------------------------------------- F|perm|max(Ci) Ütemezési fedadat szimulációja. Egyutas előzésnélküli többoperációs termelésütemezési feladat. A Simulation_FS adott műveleti idők és adott indítási sorrend esetében kiszámítja az operációk indítási és befejezési időpontjait. F2|perm|max(Ci) Ütemezési fedadat megoldása Johnson-algoritmussal. Az algoritmus optimális megoldást eredményez. -------------------------------------------------------------------------------*/ #include #include typedef struct { int id; long* ProcT; //vektor long* StartT; //vektor long* EndT; //vektor }T_JOB; void Simulation_FS( T_JOB* job, int NJ, int NM, int* s, long t_ref ); long Evaluation_FS( T_JOB* job, int NJ, int NM, int* s); void Print_Machine_Gantt( T_JOB* job, int NJ, int NM, int* s); void Johnson_Alg( T_JOB* job, int NJ, int* s, int m1, int m2 ); int main(int argc, char* argv[]) { int i, NJ; //number of jobs int m, NM; //number of machines T_JOB* job; //jobs int* s; //schedule long Cmax; //befejezesi idopont printf("\n Flow Shop feladat szimulacioja"); printf("\n Munkak szama: "); scanf("%d", &NJ); printf("\n Gepek szama: "); scanf("%d", &NM); //munkak job = (T_JOB*) calloc( NJ, sizeof(T_JOB)); for ( i=0; i min( job[ r[j] ].ProcT[m1], job[ r[j] ].ProcT[m2]) ) { //csere temp = r[i]; r[i] = r[j]; r[j] = temp; } //utemterv f = 0; l = NJ-1; for(i=0; i