00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00012
00013
00014
00015
00016
00017 #ifndef _VRPH_H
00018 #define _VRPH_H
00019
00020
00021 #define VRPH_TSP 1
00022 #define VRPH_CVRP 2
00023
00024
00025 #define VRPH_FUNCTION 1
00026 #define VRPH_UPPER_ROW 2
00027 #define VRPH_FULL_MATRIX 3
00028 #define VRPH_LOWER_ROW 4
00029 #define VRPH_UPPER_DIAG_ROW 5
00030 #define VRPH_LOWER_DIAG_ROW 6
00031
00032
00033 #define VRPH_TWOD_COORDS 2
00034 #define VRPH_THREED_COORDS 3
00035
00036
00037 #define VRPH_EXPLICIT 0
00038 #define VRPH_EUC_2D 1
00039 #define VRPH_EUC_3D 2
00040 #define VRPH_MAX_2D 3
00041 #define VRPH_MAX_3D 4
00042 #define VRPH_MAN_2D 5
00043 #define VRPH_MAN_3D 6
00044 #define VRPH_CEIL_2D 7
00045 #define VRPH_GEO 8
00046 #define VRPH_EXACT_2D 9
00047
00048
00049 #define VRPH_MIN(X,Y) ((X) < (Y) ? (X) : (Y))
00050 #define VRPH_MAX(X,Y) ((X) < (Y) ? (Y) : (X))
00051 #define VRPH_ABS(a) (((a) < 0) ? -(a) : (a))
00052
00053
00054 #define VRPH_RANDOM_SEARCH 1
00055 #define VRPH_REGRET_SEARCH 2
00056
00057
00058 #define VRPH_EPS_EXE "epstopdf"
00059
00060
00061 #ifdef HAS_PLPLOT
00062 #include "plplot.h"
00063 #endif
00064
00065
00066 #define VRPH_BLACK 0
00067 #define VRPH_RED 1
00068 #define VRPH_YELLOW 2
00069 #define VRPH_GREEN 3
00070 #define VRPH_AQUA 4
00071 #define VRPH_PINK 5
00072 #define VRPH_WHEAT 6
00073 #define VRPH_GRAY 7
00074 #define VRPH_BROWN 8
00075 #define VRPH_BLUE 9
00076 #define VRPH_VIOLET 10
00077 #define VRPH_CYAN 11
00078 #define VRPH_TURQUOISE 12
00079 #define VRPH_MAGENTA 13
00080 #define VRPH_SALMON 14
00081 #define VRPH_WHITE 15
00082
00083
00084 #define VRPH_DEFAULT_PLOT 0
00085 #define VRPH_BLACK_AND_WHITE 1
00086 #define VRPH_COLOR 2
00087 #define VRPH_BOXED 4
00088 #define VRPH_NO_TITLE 8
00089 #define VRPH_BARE_BONES 16
00090 #define VRPH_NO_POINTS 32
00091 #define VRPH_NO_DEPOT_EDGES 64
00092 #define VRPH_WEIGHTED 128
00093
00094
00095
00096
00097
00098 #define VRPH_ADD_ENTROPY 0
00099
00100
00101 #define VRPH_FORBID_TINY_MOVES 1
00102 #define VRPH_MAX_NUM_LAMBDAS 100
00103 #define VRPH_STRING_SIZE 200
00104 #define VRPH_DEPOT 0
00105 #define VRPH_PI 3.14159265358979323846264
00106 #define VRPH_RRR 6378.3888
00107 #define VRP_INFINITY (1<<30)
00108 #define VRP_INFEASIBLE VRP_INFINITY
00109 #define VRPH_EPSILON .00001
00110 #define VRPH_DEFAULT_DEVIATION .01
00111 #define VRPH_MAX_NUM_ROUTES 10000
00112
00113 #define VRPH_LI_PERTURB 0
00114
00115 #define VRPH_OSMAN_PERTURB 1
00116
00117 #define VRPH_MAX_SERVICE_DAYS 10
00118
00119 #include "RNG.h"
00120 #include <stdlib.h>
00121 #include <stdio.h>
00122 #include <math.h>
00123 #include <time.h>
00124 #include <string.h>
00125 #include <memory.h>
00126 #include <assert.h>
00127 #include "VRPDebug.h"
00128 #include "VRPHeuristic.h"
00129 #include "VRPUtils.h"
00130 #include "VRPNode.h"
00131 #include "VRPRoute.h"
00132 #include "VRPMove.h"
00133 #include "VRPSolution.h"
00134 #include "VRPTabuList.h"
00135 #include "VRP.h"
00136 #include "Postsert.h"
00137 #include "Presert.h"
00138 #include "Concatenate.h"
00139 #include "SwapEnds.h"
00140 #include "Flip.h"
00141 #include "Swap.h"
00142 #include "MoveString.h"
00143 #include "OnePointMove.h"
00144 #include "TwoPointMove.h"
00145 #include "TwoOpt.h"
00146 #include "ClarkeWright.h"
00147 #include "Sweep.h"
00148 #include "OrOpt.h"
00149 #include "ThreeOpt.h"
00150 #include "CrossExchange.h"
00151 #include "VRPGenerator.h"
00152 #include "ThreePointMove.h"
00153
00154 void VRPH_version();
00155
00156 #endif
00157
00158