/*------------------------------------------------------------------------------- A termelésinformatikai alapjai c. tantrárgy GEIAK150-B Miskolci Egyetem, Alkalmazott Informatikai Intézeti Tanszék Dr. Kulcsár Gyula, egyetemi docens TIA gyakorlat 06 Flow Shop modell Sorba kapcsolódó munkahelyek szimulációja. Egyutas előzésnélküli többoperációs ütemezési feladat. 1. rész: Modellépítés és szimuláció. A Simulation_FS függvény 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. TIA gyakorlat 07 F2|perm|Cmax utemezesi feladat megoldasa Johnson-algoritmussal. Az algoritmus optimális megoldást eredményez (két gép esetén). ------------------------------------------------------------------------------- */ #include #include #include typedef struct { int id; //munka azonosito long* ProcT; //muveleti idok pointere long* StartT; //inditasi idok long* EndT; //befejezesi idok } T_JOB; long max_l(long a, long b) { return a > b ? a : b; } long min_l(long a, long b) { return a < b ? a : b; } void generate_job_data( T_JOB* job, int NJ, int NR); void creat_adhoc_schedule(int* s, int NJ); void Simulation_FS( T_JOB* job, int NJ, int NR, int* s, long* t0); void Johnson_alg(T_JOB* job, int NJ, int r, int* s); void print_Res_Gantt(T_JOB* job, int NJ, int NR, int* s); void print_Job_Gantt(T_JOB* job, int NJ, int NR, int* s); long Evaluate_FS(T_JOB* job, int NJ, int NR, int* s); int main(int argc, char* argv[]) { int i; //munka indexe int NJ; //munkak szama int r; //eroforrasok indexe int NR; //eroforrasok (munkahelyek) szama T_JOB* job; //munkakra mutato pointer int* s; //utemezesi vektor long Cmax; printf("\n Flow Shop modell"); printf("\n Munkak szama = "); scanf("%d", &NJ); printf("\n Munkahelyek szama = "); scanf("%d", &NR); //feltelezzuk, hogy a munkahelyek azonositoja //a technologiai sorrend szerint van kiosztva job = (T_JOB*) calloc(NJ, sizeof(T_JOB) ); for( i=0; i