#include //qqq #include //qqq #include //qqq #include //qqq #define PENALTY 10000 #define MAXMACHINES 110 #define MAXJOBIS 210 #define MAXOPER 2100 #define MAXRUNS 100 #define RAND_MAXI 2147483647.0 #define MIN(a,b) ((a) < (b) ? (a) :(b)) long init_makespan ; long rndi ; long guess_modified ; long interchanges , UB_global , lateness_global, TABU_SIZE, KAPPA ; long test_strategy ; long BEST_WIP ; long BEST_FLOWTIME; long BEST_MKSP_WIP ; long BEST_MKSP_FLOW ; long which_jobg[MAXOPER] ; long *best_solution; long *best_tails ; long *BEST_SCHEDULE; long *BEST_SCHEDULE_global ; long *best_intro ; long total_reopt; long **job_operations ; long **machine_operations ; long setup_oper[550][550] ; long setup_onemachine[550][550] ; #define mymaxK 12 #define myfirstK 10 #define MYLONGRUN 1 long BESTGMAKESPAN, BESTGLATENESS ; long LONGRUN ; double CPUtiMe, tiMer1, tiMer2; //qqq struct tms cpu; //qqq long _n_; long predlist[10000] ; double PERCEN , SETUPNUMBER ; long Total_sequenced_machines ; double status_1 , status_2 , status_3, status_4 ; double my_critical_machines ; double total_schedules , multiple_critical_machines ; double failures , trials ; double my_moves , my_adjacent , my_forward , my_backward ; double non_imp_f ; double non_imp_b ; double non_improving ; double improving_moves ; double moves_lbr ; double moves_rbr ; double CURRENT_TIME ; double cpu_times [ MAXRUNS ] ; double my_bounds [ MAXRUNS ] ; double machine_critical [ MAXMACHINES ] ; char filename [ 80 ] ; FILE *input_file ; FILE *output_file ; FILE *machine_file ; long INFEASIBLE ; double lamda1 ; double lamda2 ;