|
Data Structures |
struct | CCtsp_lpnode |
struct | CCtsp_lpedge |
struct | CCtsp_lpadj |
struct | CCtsp_lpgraph |
struct | CCtsp_predge |
struct | CCtsp_pricegroup |
struct | CCtsp_extraedge |
struct | CCtsp_sparser |
struct | CCtsp_segment |
struct | CCtsp_lpclique |
struct | CCtsp_lpdomino |
struct | CCtsp_skeleton |
struct | CCtsp_lpcut |
struct | CCtsp_lpcut_in |
struct | CCtsp_lp_result |
struct | CCtsp_lpcuts |
struct | CCtsp_bigdual |
struct | CCtsp_tighten_info |
struct | CCtsp_branchobj |
struct | CCtsp_cutnode |
struct | CCtsp_cuttree |
struct | CCtsp_genadj |
struct | CCtsp_genadjobj |
struct | CCtsp_edgegenerator |
struct | CCtsp_xnorm_pricer_val |
struct | CCtsp_xnorm_pricer |
struct | CCtsp_statistics |
struct | CCtsp_lp |
struct | CCtsp_lprow |
struct | CCtsp_cutselect |
struct | CCtsp_cutinfo |
struct | CCtsp_PROB_FILE |
struct | CCtsp_qsparsegroup |
Defines |
#define | CCtsp_MIN_VIOL (0.002) |
#define | CCtsp_CUTS_DELTA |
#define | CCtsp_CUTS_NEXT_TOL (0.01) |
#define | CCtsp_CUTS_NEXT_ROUND (0.001) |
#define | CCtsp_TENTATIVE_CUTS_NEXT_TOL (0.1) |
#define | CCtsp_TENTATIVE_CUTS_NEXT_ROUND (0.01) |
#define | CCtsp_PRICE_RCTHRESH (-0.00001) |
#define | CCtsp_PRICE_MAXPENALTY (0.10) |
#define | CCtsp_PHASE1_RCTHRESH (-0.000000001) |
#define | CCtsp_PHASE1_MAXPENALTY (0.00000001) |
#define | CCtsp_EDGE_LIFE (1000000) /* 1000000 */ /* 200 */ |
#define | CCtsp_CUT_LIFE (10) |
#define | CCtsp_DUAL_DUST (0.01) |
#define | CCtsp_EDGE_DUST (0.000001) |
#define | CCtsp_CUT_BATCH (250) |
#define | CCtsp_STORE_BATCH (250) /* 50 */ |
#define | CCtsp_INTTOL (0.0001) |
#define | CCtsp_BRANCH_MIDDLE 1 |
#define | CCtsp_BRANCH_STRONG 2 |
#define | CCtsp_HOST_PORT ((unsigned short) 24846) |
#define | CCtsp_PROB_PORT ((unsigned short) 24847) |
#define | CCtsp_CUT_PORT ((unsigned short) 24868) |
#define | CCtsp_DOMINO_PORT ((unsigned short) 24869) |
#define | CCtsp_LP_MAXDOUBLE 1e30 |
#define | CCtsp_COMBRHS(c) (3*(c)->cliquecount - 2) |
#define | CCtsp_DOMINORHS(c) (3*(c)->dominocount + 1) |
#define | CC_FOREACH_NODE_IN_CLIQUE(i, c, tmp) |
#define | CCtsp_NEWCUT_AGE (-1) |
#define | CCtsp_CUT_INNODELIST(t) ((t)&4) |
#define | CCtsp_CUT_ROOT 0 |
#define | CCtsp_CUT_PNODE 1 |
#define | CCtsp_CUT_QNODE 2 |
#define | CCtsp_CUT_LEAF 4 |
#define | CCtsp_CUT_EXTERN 5 |
#define | CCtsp_BBTASK_BRANCH 'b' |
#define | CCtsp_BBREQ_BRANCHDONE 'B' |
#define | CCtsp_BBTASK_CUT 'c' |
#define | CCtsp_BBREQ_CUTDONE 'C' |
#define | CCtsp_BBREQ_DEADNODE 'D' |
#define | CCtsp_BBREQ_HELLO 'H' |
#define | CCtsp_BBREQ_NOBRANCH 'N' |
#define | CCtsp_BBREQ_TASK 'T' |
#define | CCtsp_BBREQ_TOUR 'U' |
#define | CCtsp_BBTASK_WAIT 'w' |
#define | CCtsp_BBTASK_EXIT 'x' |
#define | CCtsp_BBREQ_EXIT 'X' |
#define | CCtsp_BBTASK_TENTATIVE_CUT 'i' |
#define | CCtsp_BBREQ_TENTATIVE_CUTDONE 'I' |
#define | CCtsp_BBTASK_TENTATIVE_BRANCH 'j' |
#define | CCtsp_BBREQ_TENTATIVE_BRANCHDONE 'J' |
#define | CCtsp_POOL_GETCUTS 'G' |
#define | CCtsp_POOL_PUTCUTS 'P' |
#define | CCtsp_POOL_SAVECUTS 'S' |
#define | CCtsp_POOL_EXIT 'X' |
#define | CCtsp_PRICE_COMPLETE_GRAPH -1 |
#define | CCtsp_GEN_PRICE_EPSILON 0.0001 |
#define | CCtsp_GEN_USE_ADJ 50 |
#define | CCtsp_PROB_FILE_NAME_LEN 128 |
#define | CCtsp_Pdelete 'D' |
#define | CCtsp_Pread 'R' |
#define | CCtsp_Pwrite 'W' |
#define | CCtsp_Pmaster 'M' |
#define | CCtsp_Pexit 'X' |
#define | CCtsp_Pcuts 'c' |
#define | CCtsp_Pdual 'd' |
#define | CCtsp_Pedges 'e' |
#define | CCtsp_Pfixed 'f' |
#define | CCtsp_Pfull 'g' |
#define | CCtsp_Pheader 'h' |
#define | CCtsp_Phistory 'i' |
#define | CCtsp_Ptour 't' |
#define | CCtsp_Pwarmstart 'w' |
#define | CCtsp_DOMINO_WORK 'A' |
#define | CCtsp_DOMINO_GRAPH 'G' |
#define | CCtsp_DOMINO_NO 'N' |
#define | CCtsp_DOMINO_RECEIVE 'R' |
#define | CCtsp_DOMINO_SEND 'S' |
#define | CCtsp_DOMINO_WAIT 'W' |
#define | CCtsp_DOMINO_YES 'Y' |
#define | CCtsp_DOMINO_EXIT 'X' |
Typedefs |
typedef CCtsp_lpnode | CCtsp_lpnode |
typedef CCtsp_lpedge | CCtsp_lpedge |
typedef CCtsp_lpadj | CCtsp_lpadj |
typedef CCtsp_lpgraph | CCtsp_lpgraph |
typedef CCtsp_predge | CCtsp_predge |
typedef CCtsp_pricegroup | CCtsp_pricegroup |
typedef CCtsp_extraedge | CCtsp_extraedge |
typedef CCtsp_sparser | CCtsp_sparser |
typedef CCtsp_segment | CCtsp_segment |
typedef CCtsp_lpclique | CCtsp_lpclique |
typedef CCtsp_lpdomino | CCtsp_lpdomino |
typedef CCtsp_skeleton | CCtsp_skeleton |
typedef CCtsp_lpcut | CCtsp_lpcut |
typedef CCtsp_lpcut_in | CCtsp_lpcut_in |
typedef CCtsp_lp_result | CCtsp_lp_result |
typedef CCtsp_lpcuts | CCtsp_lpcuts |
typedef CCtsp_bigdual | CCtsp_bigdual |
typedef CCtsp_tighten_info | CCtsp_tighten_info |
typedef CCtsp_branchobj | CCtsp_branchobj |
typedef CCtsp_cutnode | CCtsp_cutnode |
typedef CCtsp_cuttree | CCtsp_cuttree |
typedef CCtsp_genadj | CCtsp_genadj |
typedef CCtsp_genadjobj | CCtsp_genadjobj |
typedef CCtsp_edgegenerator | CCtsp_edgegenerator |
typedef CCtsp_xnorm_pricer_val | CCtsp_xnorm_pricer_val |
typedef CCtsp_xnorm_pricer | CCtsp_xnorm_pricer |
typedef CCtsp_statistics | CCtsp_statistics |
typedef CCtsp_lp | CCtsp_lp |
typedef CCtsp_lprow | CCtsp_lprow |
typedef CCtsp_cutselect | CCtsp_cutselect |
typedef CCtsp_cutinfo | CCtsp_cutinfo |
typedef CCtsp_PROB_FILE | CCtsp_PROB_FILE |
typedef CCtsp_qsparsegroup | CCtsp_qsparsegroup |
Functions |
int | CCtsp_bfs_brancher (char *probloc, int id, double lowerbound, CCtsp_cutselect *sel, CCtsp_cutselect *tsel, double *upbound, int *bbcount, int usecliques, CCdatagroup *mydat, int *ptour, CCtsp_lpcuts *pool, int ncount, int *besttour, unsigned short hostport, double *branchzeit, int save_proof, int tentative_branch_num, int longedge_branching, double *timebound, int *hit_timebound, int silent, CCrandstate *rstate) |
int | CCtsp_bfs_restart (char *probloc, char *restart_name, CCtsp_cutselect *sel, CCtsp_cutselect *tsel, double *upbound, int *bbcount, int usecliques, CCdatagroup *dat, int *ptour, CCtsp_lpcuts *pool, int ncount, int *besttour, unsigned short hostport, double *branchzeit, int save_proof, int tentative_branch_num, int longedge_branching, double *timebound, int *hit_timebound, int silent, CCrandstate *rstate) |
int | CCtsp_easy_dfs_brancher (CCtsp_lp *lp, CCtsp_cutselect *sel, int depth, double *upbound, int *bbcount, int usecliques, int *besttour, int longedge_branching, int simple_branching, int silent, CCrandstate *rstate) |
int | CCtsp_do_interactive_branch (CCtsp_lp *lp, int silent, CCrandstate *rstate) |
int | CCtsp_block_combs (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x, int silent) |
int | CCtsp_fastblossom (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x) |
int | CCtsp_ghfastblossom (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x) |
int | CCtsp_exactblossom (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x, CCrandstate *rstate) |
int | CCtsp_find_branch (CCtsp_lp *lp, int nwant, int *ngot, CCtsp_branchobj **bobj, double *val, int **cyc, int usecliques, int longedge_branching, int silent) |
int | CCtsp_find_fast_branch (CCtsp_lp *lp, int *ngot, CCtsp_branchobj **bobj, double *val, int **cyc, int usecliques, int longedge_branching, int silent) |
int | CCtsp_find_branch_edge (CCtsp_lp *lp, int *n0, int *n1, double *val, int **cyc, int branchtype, int silent) |
int | CCtsp_check_integral (CCtsp_lp *lp, double *val, int **cyc, int *yesno, int silent) |
int | CCtsp_find_branch_cliques (CCtsp_lp *lp, int nwant, int longedge_branching, int *ngot, CCtsp_lpclique **bcliques, double **bval, int silent) |
int | CCtsp_execute_branch (CCtsp_lp *lp, CCtsp_branchobj *b, int silent, CCrandstate *rstate) |
int | CCtsp_execute_unbranch (CCtsp_lp *lp, CClp_warmstart *warmstart, int silent, CCrandstate *rstate) |
int | CCtsp_add_branchhistory_to_lp (CCtsp_lp *lp) |
int | CCtsp_bb_find_branch (char *probname, int probnum, int ncount, CCdatagroup *dat, int *ptour, double *upperbound, CCtsp_lpcuts *pool, int nwant, int *ngot, CCtsp_branchobj **b, int usecliques, int longedge_branching, int *prune, int *foundtour, int *besttour, int silent, CCrandstate *rstate) |
int | CCtsp_splitprob (CCtsp_lp *lp, CCtsp_branchobj *b, int child0, int child1, int silent, CCrandstate *rstate) |
int | CCtsp_bb_splitprob (char *probname, int probnum, int ncount, CCdatagroup *dat, int *ptour, double initial_ub, CCtsp_lpcuts *pool, CCtsp_branchobj *b, int child0, int child1, double *val0, double *val1, int *prune0, int *prune1, int silent, CCrandstate *rstate) |
int | CCtsp_dumptour (int ncount, CCdatagroup *dat, int *perm, char *probname, int *tour, int silent) |
void | CCtsp_init_branchobj (CCtsp_branchobj *b) |
void | CCtsp_free_branchobj (CCtsp_branchobj *b) |
void | CCtsp_print_branchhistory (CCtsp_lp *lp) |
int | CCtsp_init_cliquehash (CCtsp_lpcuts *cuts, int size) |
int | CCtsp_register_clique (CCtsp_lpcuts *cuts, CCtsp_lpclique *c) |
unsigned int | CCtsp_hashclique (CCtsp_lpclique *c) |
void | CCtsp_free_cliquehash (CCtsp_lpcuts *cuts) |
void | CCtsp_unregister_clique (CCtsp_lpcuts *cuts, int c) |
void | CCtsp_clique_eq (CCtsp_lpclique *c, CCtsp_lpclique *d, int *yes_no) |
int | CCtsp_init_dominohash (CCtsp_lpcuts *cuts, int size) |
int | CCtsp_register_domino (CCtsp_lpcuts *cuts, CCtsp_lpdomino *c) |
unsigned int | CCtsp_hashdomino (CCtsp_lpdomino *d) |
void | CCtsp_free_dominohash (CCtsp_lpcuts *cuts) |
void | CCtsp_domino_eq (CCtsp_lpdomino *c, CCtsp_lpdomino *d, int *yes_no) |
void | CCtsp_unregister_domino (CCtsp_lpcuts *cuts, int c) |
int | CCtsp_clique_to_array (CCtsp_lpclique *c, int **ar, int *count) |
int | CCtsp_clique_delta (CCtsp_lpgraph *g, double *x, CCtsp_lpclique *c, double *delta) |
int | CCtsp_copy_lpcut_in (CCtsp_lpcut_in *c, CCtsp_lpcut_in *new) |
int | CCtsp_segment_to_subtour (CCtsp_lpcut_in **cut, int a, int b, int ncount) |
int | CCtsp_array_to_subtour (CCtsp_lpcut_in **cut, int *ar, int acount, int ncount) |
int | CCtsp_array_to_lpclique (int *ar, int acount, CCtsp_lpclique *cliq) |
int | CCtsp_seglist_to_lpclique (int nseg, int *list, CCtsp_lpclique *cliq) |
int | CCtsp_shrunk_set_to_lpclique (int cnt, int *set, int *wset, CC_SRKexpinfo *expand, CCtsp_lpclique *cliq) |
int | CCtsp_add_nodes_to_lpclique (CCtsp_lpclique *cin, CCtsp_lpclique *cout, int addcount, int *adda) |
int | CCtsp_delete_nodes_from_lpclique (CCtsp_lpclique *cin, CCtsp_lpclique *cout, int delcount, int *del) |
int | CCtsp_lpcut_to_lpcut_in (CCtsp_lpcuts *cuts, CCtsp_lpcut *c, CCtsp_lpcut_in *new) |
int | CCtsp_copy_lpclique (CCtsp_lpclique *c, CCtsp_lpclique *new) |
int | CCtsp_copy_lpdomino (CCtsp_lpdomino *c, CCtsp_lpdomino *new) |
int | CCtsp_create_lpcliques (CCtsp_lpcut_in *c, int cliquecount) |
int | CCtsp_max_node (CCtsp_lpcut_in *c) |
int | CCtsp_build_dp_cut (CCtsp_lpcut_in **cut, int ndomino, int *Acount, int **A, int *Bcount, int **B, int handlecount, int *handle) |
void | CCtsp_mark_clique (CCtsp_lpclique *c, int *marks, int marker) |
void | CCtsp_mark_domino (CCtsp_lpdomino *c, int *marks, int marker) |
void | CCtsp_mark_clique_and_neighbors (CCtsp_lpgraph *g, CCtsp_lpclique *c, int *marks, int marker) |
void | CCtsp_mark_domino_and_neighbors (CCtsp_lpgraph *g, CCtsp_lpdomino *c, int *marks, int marker) |
void | CCtsp_mark_clique_and_neighbors_double (CCtsp_lpgraph *g, CCtsp_lpclique *c, double *marks, double marker) |
void | CCtsp_mark_cut (CCtsp_lpcut_in *c, int *marks, int marker) |
void | CCtsp_mark_cut_and_neighbors (CCtsp_lpgraph *g, CCtsp_lpcut_in *c, int *marks, int marker) |
void | CCtsp_is_clique_marked (CCtsp_lpclique *c, int *marks, int marker, int *yes_no) |
void | CCtsp_clique_count (CCtsp_lpclique *c, int *count) |
void | CCtsp_clique_marked_count (CCtsp_lpclique *c, int *marks, int marker, int *count) |
void | CCtsp_init_lpcut_in (CCtsp_lpcut_in *c) |
void | CCtsp_init_lpcut (CCtsp_lpcut *c) |
void | CCtsp_init_lpclique (CCtsp_lpclique *c) |
void | CCtsp_init_lpdomino (CCtsp_lpdomino *c) |
void | CCtsp_print_lpcut_in (CCtsp_lpcut_in *c) |
void | CCtsp_print_lpclique (CCtsp_lpclique *c) |
void | CCtsp_print_lpdomino (CCtsp_lpdomino *d) |
void | CCtsp_lpclique_compare (CCtsp_lpclique *a, CCtsp_lpclique *b, int *diff) |
int | CCtsp_cutting_multiple_loop (CCtsp_lp *lp, CCtsp_cutselect *sel, int savelp, int maxlocal, int update_tol, const char *dombossname, int silent, CCrandstate *rstate) |
int | CCtsp_cutting_loop (CCtsp_lp *lp, CCtsp_cutselect *sel, int savelp, const char *dombossname, int silent, CCrandstate *rstate) |
int | CCtsp_subtour_loop (CCtsp_lp *lp, int silent, CCrandstate *rstate) |
int | CCtsp_blossom_loop (CCtsp_lp *lp, int silent, CCrandstate *rstate) |
int | CCtsp_subtour_and_blossom_loop (CCtsp_lp *lp, int silent, CCrandstate *rstate) |
int | CCtsp_pricing_loop (CCtsp_lp *lp, double *bnd, int silent, CCrandstate *rstate) |
int | CCtsp_call_x_heuristic (CCtsp_lp *lp, double *val, int *outcyc, int silent, CCrandstate *rstate) |
int | CCtsp_bb_cutting (char *probname, int probnum, int prob_newnum, int ncount, CCdatagroup *dat, int *ptour, double *upbound, CCtsp_lpcuts *pool, CCtsp_cutselect *sel, double *val, int *prune, int *foundtour, int *besttour, int level, int silent, CCrandstate *rstate) |
int | CCtsp_cutselect_set_tols (CCtsp_cutselect *s, CCtsp_lp *lp, int level, int silent) |
void | CCtsp_init_cutselect (CCtsp_cutselect *s) |
void | CCtsp_init_tentative_cutselect (CCtsp_cutselect *s) |
void | CCtsp_init_simple_cutselect (CCtsp_cutselect *s) |
void | CCtsp_init_fast_cutselect (CCtsp_cutselect *s) |
int | CCtsp_connect_cuts (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x) |
int | CCtsp_segment_cuts (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x) |
int | CCtsp_shrink_subtours (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x) |
int | CCtsp_exact_subtours (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x) |
int | CCtsp_tighten_lp (CCtsp_lpcuts *cuts, CCtsp_tighten_info *stats, CCtsp_lpcut_in **cutsout, int *cutcount, int ncount, int ecount, int *elist, double *x, double testtol, int maxcuts, double *viol, CCrandstate *rstate) |
int | CCtsp_double_decker_lp (CCtsp_lpcuts *cuts, CCtsp_tighten_info *stats, CCtsp_lpcut_in **cutsout, int *cutcount, int ncount, int ecount, int *elist, double *x, double testtol, int maxcuts, double *viol, CCrandstate *rstate) |
int | CCtsp_cliquetree_lp (CCtsp_lpcuts *cuts, CCtsp_tighten_info *stats, CCtsp_lpcut_in **cutsout, int *cutcount, int ncount, int ecount, int *elist, double *x, double testtol, int maxcuts, double *viol, CCrandstate *rstate) |
int | CCtsp_star_lp (CCtsp_lpcuts *cuts, CCtsp_tighten_info *stats, CCtsp_lpcut_in **cutsout, int *cutcount, int ncount, int ecount, int *elist, double *x, double testtol, int maxcuts, double *viol, CCrandstate *rstate) |
int | CCtsp_handling_lp (CCtsp_lpcuts *cuts, CCtsp_tighten_info *stats, CCtsp_lpcut_in **cutsout, int *cutcount, int ncount, int ecount, int *elist, double *x, double testtol, int maxcuts, double *viol, CCrandstate *rstate) |
int | CCtsp_teething_lp (CCtsp_lpcuts *cuts, CCtsp_tighten_info *stats, CCtsp_lpcut_in **cutsout, int *cutcount, int ncount, int ecount, int *elist, double *x, double testtol, int maxcuts, double *viol, CCrandstate *rstate) |
int | CCtsp_domino_trial (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x, CCrandstate *rstate) |
int | CCtsp_file_cuts (char *cutfile, CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int *tour) |
int | CCtsp_file_cuts_write (const char *cutfile, CCtsp_lpcuts *cuts, int *tour) |
int | CCtsp_test_pure_comb (int ncount, CCtsp_lpcut_in *c, int *yes_no, int *handle) |
int | CCtsp_test_pseudocomb (int ncount, CCtsp_lpcut_in *c, int handle, int *yes_no) |
int | CCtsp_test_teeth_disjoint (int ncount, CCtsp_lpcut_in *c, int handle, int *yes_no) |
int | CCtsp_find_pure_handle (int ncount, CCtsp_lpcut_in *c, int *handle) |
int | CCtsp_truncate_cutlist (CCtsp_lpcut_in **cuts, int ncount, int ecount, int *elist, double *x, int maxcuts, CCrandstate *rstate) |
int | CCtsp_buildcut_begin (CCtsp_cutinfo *cuts, int init_cliquecount) |
int | CCtsp_buildcut_addclique (CCtsp_cutinfo *cuts, int *arr, int size) |
int | CCtsp_buildcut_finish (CCtsp_cutinfo *cuts, int rhs) |
int | CCtsp_new_domino (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x, const char *bossname) |
void | CCtsp_buildcut_abort (CCtsp_cutinfo *cuts) |
int | CCtsp_init_cutpool (int *ncount, char *poolfilename, CCtsp_lpcuts **pool) |
int | CCtsp_write_cutpool (int ncount, const char *poolfilename, CCtsp_lpcuts *pool) |
int | CCtsp_search_cutpool (CCtsp_lpcuts *pool, CCtsp_lpcut_in **cuts, int *cutcount, double *maxviol, int ncount, int ecount, int *elist, double *x, int nthreads, CCrandstate *rstate) |
int | CCtsp_search_remotepool (char *remotehost, unsigned short remoteport, CCtsp_lpcut_in **cuts, int *cutcount, double *maxviol, int ncount, int ecount, int *elist, double *x) |
int | CCtsp_read_cuts (CC_SFILE *f, int *ncount, CCtsp_lpcuts *cuts, int readmods, int buildhash) |
int | CCtsp_read_lpcut_in (CC_SFILE *f, CCtsp_lpcut_in *c, int ncount) |
int | CCtsp_read_lpclique (CC_SFILE *f, CCtsp_lpclique *c, int ncount) |
int | CCtsp_read_lpdomino (CC_SFILE *f, CCtsp_lpdomino *d, int ncount) |
int | CCtsp_write_cuts (CC_SFILE *f, int ncount, CCtsp_lpcuts *cuts, int writemods) |
int | CCtsp_send_newcuts (int ncount, CCtsp_lpcuts *pool, char *remotehost, unsigned short remoteport) |
int | CCtsp_write_lpcut_in (CC_SFILE *f, CCtsp_lpcut_in *c, int ncount) |
int | CCtsp_write_lpcut (CC_SFILE *f, CCtsp_lpcuts *cuts, CCtsp_lpcut *c, int ncount) |
int | CCtsp_write_lpclique (CC_SFILE *f, CCtsp_lpclique *c, int ncount) |
int | CCtsp_write_lpdomino (CC_SFILE *f, CCtsp_lpdomino *c, int ncount) |
int | CCtsp_copy_cuts (CC_SFILE *f, CC_SFILE *t, int copymods) |
int | CCtsp_search_cutpool_cliques (CCtsp_lpcuts *pool, CCtsp_lpclique **cliques, int *cliquecount, int ncount, int ecount, int *elist, double *x, double maxdelta, int maxcliques, double **cliquevals, CCrandstate *rstate) |
int | CCtsp_branch_cutpool_cliques (CCtsp_lpcuts *pool, CCtsp_lpclique **cliques, int *cliquecount, int ncount, int ecount, int *elist, double *x, int nwant, double **cliquevals, int silent) |
int | CCtsp_get_clique_prices (CCtsp_lpcuts *pool, int **p_cliquenums, double **p_cliquevals, double mindelta, double maxdelta, int *p_cliquecount, int ncount, int ecount, int *elist, double *x) |
int | CCtsp_get_clique (CCtsp_lpcuts *pool, int cliquenum, CCtsp_lpclique **p_clique) |
int | CCtsp_add_to_cutpool (CCtsp_lpcuts *pool, CCtsp_lpcuts *cuts, CCtsp_lpcut *c) |
int | CCtsp_add_to_cutpool_lpcut_in (CCtsp_lpcuts *pool, CCtsp_lpcut_in *cut) |
int | CCtsp_display_cutpool (CCtsp_lpcuts *pool) |
int | CCtsp_price_cuts (CCtsp_lpcuts *pool, int ncount, int ecount, int *elist, double *x, double *cutval) |
int | CCtsp_price_cuts_threaded (CCtsp_lpcuts *pool, int ncount, int ecount, int *elist, double *x, double *cutval, int numthreads) |
int | CCtsp_register_cliques (CCtsp_lpcuts *cuts, CCtsp_lpcut_in *c, CCtsp_lpcut *new) |
int | CCtsp_register_dominos (CCtsp_lpcuts *cuts, CCtsp_lpcut_in *c, CCtsp_lpcut *new) |
int | CCtsp_add_cut_to_cutlist (CCtsp_lpcuts *cuts, CCtsp_lpcut *c) |
void | CCtsp_free_cutpool (CCtsp_lpcuts **pool) |
void | CCtsp_free_lpcut_in (CCtsp_lpcut_in *c) |
void | CCtsp_free_lpclique (CCtsp_lpclique *c) |
void | CCtsp_free_lpdomino (CCtsp_lpdomino *c) |
void | CCtsp_unregister_cliques (CCtsp_lpcuts *cuts, CCtsp_lpcut *c) |
void | CCtsp_unregister_dominos (CCtsp_lpcuts *cuts, CCtsp_lpcut *c) |
void | CCtsp_delete_cut_from_cutlist (CCtsp_lpcuts *cuts, int ind) |
int | CCtsp_test_pure_double_decker (CCtsp_lpcut_in *c, int *yes_no, int *handle1, int *handle2) |
int | CCtsp_comb_to_double_decker (CCtsp_lpgraph *g, CC_GCgraph *h, double *x, CCtsp_lpcut_in *c, CCtsp_lpcut_in **d) |
int | CCtsp_comb_to_star (CCtsp_lpgraph *g, CC_GCgraph *h, double *x, CCtsp_lpcut_in *c, CCtsp_lpcut_in **d) |
int | CCtsp_test_pure_simple_cliquetree (int ncount, CCtsp_lpcut_in *c, int *yes_no) |
int | CCtsp_comb_to_cliquetree (CCtsp_lpgraph *g, CC_GCgraph *h, double *x, CCtsp_lpcut_in *c, CCtsp_lpcut_in **d) |
int | CCtsp_comb_handling (CCtsp_lpgraph *g, CC_GCgraph *h, double *x, CCtsp_lpcut_in *c, CCtsp_lpcut_in **d) |
int | CCtsp_exact_price (CCtsp_lp *lp, CCbigguy *bound, int complete_price, int phase1, int silent) |
int | CCtsp_edge_elimination (CCtsp_lp *lp, int eliminate_sparse, int silent) |
int | CCtsp_exact_dual (CCtsp_lp *lp) |
int | CCtsp_verify_infeasible_lp (CCtsp_lp *lp, int *yesno, int silent) |
int | CCtsp_verify_lp_prune (CCtsp_lp *lp, int *yesno, int silent) |
void | CCtsp_free_bigdual (CCtsp_bigdual **d) |
void | CCtsp_free_edgegenerator (CCtsp_edgegenerator *eg) |
int | CCtsp_init_edgegenerator (CCtsp_edgegenerator *eg, int ncount, CCdatagroup *dg, CCtsp_genadj *adj, int nneighbors, int silent, CCrandstate *rstate) |
int | CCtsp_reset_edgegenerator (CCtsp_edgegenerator *eg, double *node_piest, int silent) |
int | CCtsp_generate_edges (CCtsp_edgegenerator *eg, int nwant, int *pngot, int *elist, int *elen, int *finished, int silent, CCrandstate *rstate) |
int | CCtsp_edgelist_to_genadj (int ncount, int ecount, int *elist, int *elen, CCtsp_genadj **adj, CCtsp_genadjobj **adjobjspace) |
int | CCtsp_edge_comb_grower (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x, CCtsp_tighten_info *stats) |
int | CCtsp_pr_cliquetree (CCtsp_lpcut_in **cuts, int *cutcount, int ncount, int ecount, int *elist, double *x, CCtsp_tighten_info *stats) |
CCtsp_PROB_FILE * | CCtsp_prob_read (char *f, int n) |
CCtsp_PROB_FILE ** | CCtsp_prob_read_name (char *f) |
CCtsp_PROB_FILE *** | CCtsp_prob_write (char *f, int n) |
CCtsp_PROB_FILE **** | CCtsp_prob_write_name (char *fname) |
int | CCtsp_prob_file_delete (char *f, int n) |
int | CCtsp_prob_getname (CCtsp_PROB_FILE *p, char *name) |
int | CCtsp_prob_getid (CCtsp_PROB_FILE *p, int *id) |
int | CCtsp_prob_getparent (CCtsp_PROB_FILE *p, int *parent) |
int | CCtsp_prob_getub (CCtsp_PROB_FILE *p, double *ub) |
int | CCtsp_prob_getlb (CCtsp_PROB_FILE *p, double *lb) |
int | CCtsp_prob_getexactlb (CCtsp_PROB_FILE *p, CCbigguy *lb) |
int | CCtsp_prob_getnnodes (CCtsp_PROB_FILE *p, int *nnodes) |
int | CCtsp_prob_getchildren (CCtsp_PROB_FILE *p, int *child0, int *child1) |
int | CCtsp_prob_getreal (CCtsp_PROB_FILE *p, int *real) |
int | CCtsp_prob_getprocessed (CCtsp_PROB_FILE *p, int *processed) |
int | CCtsp_prob_getinfeasible (CCtsp_PROB_FILE *p, int *infeasible) |
int | CCtsp_prob_gettour (CCtsp_PROB_FILE *p, int ncount, int **tour, int silent) |
int | CCtsp_prob_getedges (CCtsp_PROB_FILE *p, int ncount, int *nedges, int **elist, int **elen, int silent) |
int | CCtsp_prob_getcuts (CCtsp_PROB_FILE *p, int *ncount, CCtsp_lpcuts *cuts, int silent) |
int | CCtsp_prob_getwarmstart (CCtsp_PROB_FILE *p, CClp_warmstart **w, int silent) |
int | CCtsp_prob_getfulladj (CCtsp_PROB_FILE *p, int ncount, int *fullcount, CCtsp_genadj **adj, CCtsp_genadjobj **adjspace, int silent) |
int | CCtsp_prob_getfixed (CCtsp_PROB_FILE *p, int ncount, int *ecount, int **elist, int silent) |
int | CCtsp_prob_getexactdual (CCtsp_PROB_FILE *p, int ncount, CCtsp_bigdual **d, int silent) |
int | CCtsp_prob_gethistory (CCtsp_PROB_FILE *p, int *depth, CCtsp_branchobj **history, int silent) |
int | CCtsp_prob_rclose (CCtsp_PROB_FILE *p) |
int | CCtsp_prob_putname (CCtsp_PROB_FILE *p, char *name) |
int | CCtsp_prob_putid (CCtsp_PROB_FILE *p, int id) |
int | CCtsp_prob_putparent (CCtsp_PROB_FILE *p, int parent) |
int | CCtsp_prob_putub (CCtsp_PROB_FILE *p, double ub) |
int | CCtsp_prob_putlb (CCtsp_PROB_FILE *p, double lb) |
int | CCtsp_prob_putexactlb (CCtsp_PROB_FILE *p, CCbigguy lb) |
int | CCtsp_prob_putnnodes (CCtsp_PROB_FILE *p, int nnodes) |
int | CCtsp_prob_putchildren (CCtsp_PROB_FILE *p, int child0, int child1) |
int | CCtsp_prob_putreal (CCtsp_PROB_FILE *p, int real) |
int | CCtsp_prob_putprocessed (CCtsp_PROB_FILE *p, int processed) |
int | CCtsp_prob_putinfeasible (CCtsp_PROB_FILE *p, int infeasible) |
int | CCtsp_prob_puttour (CCtsp_PROB_FILE *p, int ncount, int *tour) |
int | CCtsp_prob_putedges (CCtsp_PROB_FILE *p, int ncount, int nedges, int *elist, int *elen) |
int | CCtsp_prob_putcuts (CCtsp_PROB_FILE *p, int ncount, CCtsp_lpcuts *cuts) |
int | CCtsp_prob_putwarmstart (CCtsp_PROB_FILE *p, CClp_warmstart *w) |
int | CCtsp_prob_putfulladj (CCtsp_PROB_FILE *p, int ncount, int fullcount, CCtsp_genadj *adj) |
int | CCtsp_prob_putfixed (CCtsp_PROB_FILE *p, int ncount, int ecount, int *elist) |
int | CCtsp_prob_putexactdual (CCtsp_PROB_FILE *p, CCtsp_bigdual *d, int ncount) |
int | CCtsp_prob_puthistory (CCtsp_PROB_FILE *p, int depth, CCtsp_branchobj *history) |
int | CCtsp_prob_wclose (CCtsp_PROB_FILE *p) |
int | CCtsp_prob_copy_section (CCtsp_PROB_FILE *f, CCtsp_PROB_FILE *t, char section, int silent) |
char * | CCtsp_problabel (const char *probloc) |
void | CCtsp_free_qsparsify (CCtsp_qsparsegroup **pqs) |
int | CCtsp_qsparsify (CCtsp_qsparsegroup **pqs, struct CCtsp_lpgraph *g, int *pnzlist, int *scount, struct CCtsp_sparser **slist, int *savedcount) |
int | CCtsp_copy_skeleton (CCtsp_skeleton *old, CCtsp_skeleton *new) |
int | CCtsp_construct_skeleton (CCtsp_lpcut_in *c, int nodecount) |
int | CCtsp_read_skeleton (CC_SFILE *f, CCtsp_skeleton *skel, int ncount) |
int | CCtsp_write_skeleton (CC_SFILE *f, CCtsp_skeleton *skel, int ncount) |
void | CCtsp_init_skeleton (CCtsp_skeleton *skel) |
void | CCtsp_free_skeleton (CCtsp_skeleton *skel) |
void | CCtsp_compare_skeletons (CCtsp_skeleton *a, CCtsp_skeleton *b, int *diff) |
int | CCtsp_teething (CCtsp_lpgraph *g, double *x, CCtsp_lpcut_in *cut, CCtsp_lpcut_in **newcut) |
int | CCtsp_teething_list (CCtsp_lpgraph *g, double *x, CCtsp_lpclique *handle, int nbig, CCtsp_lpclique **bigteeth, CCtsp_lpcut_in **newcut) |
int | CCtsp_tighten_lpcut_in (CCtsp_lpgraph *g, CCtsp_lpcut_in *c, double *x, CCtsp_lpcut_in *d, CCtsp_tighten_info *stats, double *pimprove) |
int | CCtsp_tighten_lpcut (CCtsp_lpgraph *g, CCtsp_lpclique *cliques, CCtsp_lpcut *c, double *x, CCtsp_lpcut_in *d, CCtsp_tighten_info *stats, double *pimprove) |
void | CCtsp_init_tighten_info (CCtsp_tighten_info *stats) |
void | CCtsp_print_tighten_info (CCtsp_tighten_info *stats) |
int | CCtsp_bb_init_lp (CCtsp_lp **lp, char *probname, int probnum, int ncount, CCdatagroup *dat, int *ptour, double initial_ub, CCtsp_lpcuts *pool, int silent, CCrandstate *rstate) |
int | CCtsp_init_lp (CCtsp_lp **lp, char *probname, int probnum, char *probfilename, int ncount, CCdatagroup *dat, int ecount, int *elist, int *elen, int excount, int *exlist, int *exlen, int exvalid, int *ptour, double initial_ub, CCtsp_lpcuts *pool, int silent, CCrandstate *rstate) |
int | CCtsp_build_lpgraph (CCtsp_lpgraph *g, int ncount, int ecount, int *elist, int *elen) |
int | CCtsp_build_lpadj (CCtsp_lpgraph *g, int estart, int eend) |
int | CCtsp_find_edge (CCtsp_lpgraph *g, int from, int to) |
int | CCtsp_inspect_full_edges (CCtsp_lp *lp) |
int | CCtsp_resparsify_lp (CCtsp_lp *lp, int silent) |
int | CCtsp_lpcut_nzlist (CCtsp_lpgraph *g, CCtsp_lpcut *c, CCtsp_lpclique *cliques, CCtsp_lpdomino *dominos, int do_mods) |
int | CCtsp_update_result (CCtsp_lp *lp) |
int | CCtsp_get_lp_result (CCtsp_lp *lp, double *lb, double *ub, int *ecount, int **elist, double **x, double **rc, double **node_pi, double **cut_pi) |
int | CCtsp_lpcut_in_nzlist (CCtsp_lpgraph *g, CCtsp_lpcut_in *c) |
int | CCtsp_process_cuts (CCtsp_lp *lp, int *pnadded, int tighten, int silent, CCrandstate *rstate) |
int | CCtsp_infeas_recover (CCtsp_lp *lp, int silent, CCrandstate *rstate) |
int | CCtsp_add_cut (CCtsp_lp *lp, CCtsp_lpcut_in *d, CCtsp_lprow *cr) |
int | CCtsp_add_nzlist_to_lp (CCtsp_lp *lp, int nzlist, int rhs, char sense, CCtsp_lprow *cr) |
int | CCtsp_addbad_variables (CCtsp_lp *lp, CCtsp_edgegenerator *eg, double *ppenalty, int *pnadded, double rcthresh, double maxpenalty, int phase1, int *feasible, int silent, CCrandstate *rstate) |
int | CCtsp_eliminate_variables (CCtsp_lp *lp, int eliminate_sparse, int silent) |
int | CCtsp_add_vars_to_lp (CCtsp_lp *lp, CCtsp_predge *prlist, int n) |
int | CCtsp_add_multiple_rows (CCtsp_lp *lp, CCtsp_lprow *cr) |
int | CCtsp_delete_cut (CCtsp_lp *lp, int i) |
int | CCtsp_reduced_cost_nearest (CCtsp_lp *lp, int k, int *ecount, int **elist, double **elen, int sparse) |
int | CCtsp_write_probfile_sav (CCtsp_lp *lp) |
int | CCtsp_write_probfile_id (CCtsp_lp *lp) |
int | CCtsp_write_probroot_id (char *probloc, CCtsp_lp *lp) |
int | CCtsp_write_probleaf_id (CCtsp_lp *lp) |
int | CCtsp_read_probfile (CCtsp_lp *lp, char *fname, char *probloc, int *ncount, int silent) |
int | CCtsp_read_probfile_id (CCtsp_lp *lp, char *fname, int id, int *ncount, int silent) |
int | CCtsp_dump_rc_nearest (CCtsp_lp *lp, int k, char *fname, int sparse) |
int | CCtsp_dump_x (CCtsp_lp *lp, char *fname) |
int | CCtsp_depot_valid (CCtsp_lp *lp, int ndepot, int *yesno) |
double | CCtsp_cutprice (CCtsp_lpgraph *g, CCtsp_lpcut_in *c, double *x) |
void | CCtsp_init_tsp_lpcuts_struct (CCtsp_lpcuts *c) |
void | CCtsp_init_tsp_lp_struct (CCtsp_lp *lp) |
void | CCtsp_free_tsp_lp_struct (CCtsp_lp **lp) |
void | CCtsp_init_lpgraph_struct (CCtsp_lpgraph *g) |
void | CCtsp_free_lpgraph (CCtsp_lpgraph *g) |
void | CCtsp_init_statistics (CCtsp_statistics *stats) |
void | CCtsp_output_statistics (CCtsp_statistics *stats) |
void | CCtsp_add_cuts_to_queue (CCtsp_lp *lp, CCtsp_lpcut_in **c) |
void | CCtsp_init_lprow (CCtsp_lprow *cr) |
void | CCtsp_free_lprow (CCtsp_lprow *cr) |
int | CCtsp_solve_sparse (int ncount, int ecount, int *elist, int *elen, int *in_tour, int *out_tour, double *in_val, double *optval, int *success, int *foundtour, char *name, double *timebound, int *hit_timebound, int silent, CCrandstate *rstate) |
int | CCtsp_solve_dat (int ncount, CCdatagroup *indat, int *in_tour, int *out_tour, double *in_val, double *optval, int *success, int *foundtour, char *name, double *timebound, int *hit_timebound, int silent, CCrandstate *rstate) |
int | CCtsp_x_greedy_tour (CCdatagroup *dat, int ncount, int ecount, int *elist, double *x, int *cyc, double *val, int silent) |
int | CCtsp_x_greedy_tour_lk (CCdatagroup *dat, int ncount, int ecount, int *elist, double *x, int *cyc, double *val, int silent, CCrandstate *rstate) |