Lin-Kernighan heuristic for the TSP and minimum weight perfect matching
源代码在线查看: lk.h
/*4:*/ #line 664 "./lk.w" extern const char*lk_rcs_id; /*132:*/ #line 2657 "./lk.w" /*:132*/ #line 666 "./lk.w" /*17:*/ #line 1061 "./lk.w" #define REP_ARRAY 1 #define REP_TWO_LEVEL 2 #define REP_SPLAY_0 3 #define REP_SPLAY_1 4 #define REP_SPLAY_2 5 #define REP_SPLAY_3 6 #define REP_TWO_LEVEL_DEBUG 7 #define CAND_NN 1 #define CAND_NQ 2 #define CAND_DEL 4 /*:17*/ #line 667 "./lk.w" /*16:*/ #line 1048 "./lk.w" extern int verbose,iterations,should_show_tour,should_show_version; extern int representation,construction_algorithm; extern long start_heuristic_param; extern int candidate_expr,cand_nn_k,cand_nq_k,cand_del_d; extern char*PostScript_filename,*lower_bound_name,*upper_bound_name; extern void(*sort)(void*a,size_t n,size_t es,int(*cmp)(const void*,const void*)); extern int noround; extern double lower_bound_value,upper_bound_value; extern int extra_backtrack; extern long random_seed; /*:16*//*39:*/ #line 1311 "./lk.w" extern int max_generic_flips; /*:39*//*65:*/ #line 1804 "./lk.w" extern tsp_instance_t*tsp_instance; /*:65*//*70:*/ #line 1902 "./lk.w" extern int*original_city_num; /*:70*//*80:*/ #line 2046 "./lk.w" extern int begin_data_structures_mark; /*:80*//*97:*/ #line 2270 "./lk.w" extern int(*tour_next)(int); extern int(*tour_prev)(int); extern int(*tour_between)(int,int,int); extern void(*tour_flip)(int,int,int,int); extern void(*tour_set)(int const*); extern void(*tour_setup)(int n); extern void(*tour_cleanup)(void); /*:97*//*109:*/ #line 2446 "./lk.w" extern length_t incumbent_len; /*:109*//*133:*/ #line 2659 "./lk.w" /*:133*/ #line 668 "./lk.w" /*7:*/ #line 713 "./lk.w" int lk_main(int argc,char**argv); /*:7*//*134:*/ #line 2661 "./lk.w" /*:134*//*140:*/ #line 2810 "./lk.w" int lk_double_cmp(const void*a,const void*b); int lk_length_t_cmp(const void*a,const void*b); /*:140*/ #line 669 "./lk.w" /*:4*/