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