1 /*===========================================================================*/
2 /*                                                                           */
3 /* This file is part of a demonstration application for use with the         */
4 /* SYMPHONY Branch, Cut, and Price Library. This application is a solver for */
5 /* Capacitated Network Routing Problems.                                     */
6 /*                                                                           */
7 /* (c) Copyright 2000-2013 Ted Ralphs. All Rights Reserved.                  */
8 /*                                                                           */
9 /* This application was developed by Ted Ralphs (ted@lehigh.edu)             */
10 /*                                                                           */
11 /* This software is licensed under the Eclipse Public License. Please see    */
12 /* accompanying file for terms.                                              */
13 /*                                                                           */
14 /*===========================================================================*/
15 
16 #ifndef _CNRP_CONST_H
17 #define _CNRP_CONST_H
18 
19 #define LENGTH 255
20 #define KEY_NUM 41
21 #define DEAD 2
22 #define NEAR_INS -1
23 #define FAR_INS -2
24 #define DEPOT_PENALTY 20
25 #define RRR 6378.388
26 #define MY_PI 3.141592
27 #define LINE_LEN 80
28 
29 /*---------------- problem types --------------------------------------------*/
30 #define NONE      0
31 #define VRP       1
32 #define TSP       2
33 #define BPP       3
34 #define CSTP      4
35 #define CTP       5
36 
37 /*---------------- distance types -------------------------------------------*/
38 #define _EXPLICIT 0
39 #define _EUC_2D   1
40 #define _EUC_3D   2
41 #define _MAX_2D   3
42 #define _MAX_3D   4
43 #define _MAN_2D   5
44 #define _MAN_3D   6
45 #define _CEIL_2D  7
46 #define _GEO      8
47 #define _ATT      9
48 
49 /*---------------- message types --------------------------------------------*/
50 #define CNRP_DATA        1
51 #define DISPLAY_DATA     2
52 #define NUMROUTES        3
53 #define COORD_DATA       4
54 
55 /*---------------- cut types ------------------------------------------------*/
56 #define SUBTOUR_ELIM_SIDE       0
57 #define SUBTOUR_ELIM_ACROSS     1
58 #define SUBTOUR_ELIM            2
59 #define CLIQUE                  3
60 #define FLOW_CAP                4
61 #define X_CUT                   5
62 #define TIGHT_FLOW              6
63 #define MIXED_DICUT             7
64 #define OPTIMALITY_CUT_FIXED    8
65 #define OPTIMALITY_CUT_VARIABLE 9
66 
67 /*---------------- tsp cut routines -----------------------------------------*/
68 
69 #define NO_TSP_CUTS    0
70 #define SUBTOUR        1
71 #define BLOSSOM        2
72 #define COMB           4
73 #define ALL_TSP_CUTS   7
74 
75 #define NUM_RANDS 6
76 
77 #define ACTIVE_NODE_LIST_BLOCK_SIZE 100
78 #define DELETE_POWER 3
79 #define DELETE_AND 0x07
80 
81 /*-------------- base variable selection rules ------------------------------*/
82 #define EVERYTHING_IS_EXTRA 0
83 #define SOME_ARE_BASE       1
84 #define EVERYTHING_IS_BASE  2
85 
86 /*--------- constants used in creating the edges lists for the root ---------*/
87 #define CHEAP_EDGES      0
88 #define REMAINING_EDGES  1
89 
90 /*--------- constants for saving the small graph ----------------------------*/
91 #define SAVE_SMALL_GRAPH 1
92 #define LOAD_SMALL_GRAPH 2
93 
94 /*--------- constants for defining which set of exchange heuristics to do --*/
95 #define FIRST_SET        1
96 #define SECOND_SET       2
97 
98 #endif
99