29 RoutingIndexManager manager =
new RoutingIndexManager(5 , 1 , 0 );
30 Assert.NotNull(manager);
32 RoutingModel routing =
new RoutingModel(manager);
33 Assert.NotNull(routing);
35 int transitCallbackIndex = routing.RegisterTransitCallback((
long fromIndex,
long toIndex) =>
39 var fromNode = manager.IndexToNode(fromIndex);
40 var toNode = manager.IndexToNode(toIndex);
41 return Math.Abs(toNode - fromNode);
44 routing.SetArcCostEvaluatorOfAllVehicles(transitCallbackIndex);
50 RoutingSearchParameters searchParameters =
51 operations_research_constraint_solver.DefaultRoutingSearchParameters();
52 searchParameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PathCheapestArc;
53 Assignment solution = routing.SolveWithParameters(searchParameters);
55 Assert.Equal(8, solution.ObjectiveValue());
62 RoutingIndexManager manager =
new RoutingIndexManager(5 , 1 , 0 );
63 Assert.NotNull(manager);
65 RoutingModel routing =
new RoutingModel(manager);
66 Assert.NotNull(routing);
68 long[][] matrix =
new long[][] {
69 new long[] { 1, 1, 1, 1, 1 },
new long[] { 1, 1, 1, 1, 1 },
new long[] { 1, 1, 1, 1, 1 },
70 new long[] { 1, 1, 1, 1, 1 },
new long[] { 1, 1, 1, 1, 1 },
72 int transitCallbackIndex = routing.RegisterTransitMatrix(matrix);
74 routing.SetArcCostEvaluatorOfAllVehicles(transitCallbackIndex);
76 RoutingSearchParameters searchParameters =
77 operations_research_constraint_solver.DefaultRoutingSearchParameters();
78 searchParameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PathCheapestArc;
79 Assignment solution = routing.SolveWithParameters(searchParameters);
81 Assert.Equal(5, solution.ObjectiveValue());
88 RoutingIndexManager manager =
new RoutingIndexManager(5 , 1 , 0 );
89 Assert.NotNull(manager);
91 RoutingModel routing =
new RoutingModel(manager);
92 Assert.NotNull(routing);
94 int transitCallbackIndex = routing.RegisterTransitCallback((
long fromIndex,
long toIndex) =>
98 var fromNode = manager.IndexToNode(fromIndex);
99 var toNode = manager.IndexToNode(toIndex);
100 return Math.Abs(toNode - fromNode);
103 routing.SetArcCostEvaluatorOfAllVehicles(transitCallbackIndex);
105 RoutingSearchParameters searchParameters =
106 operations_research_constraint_solver.DefaultRoutingSearchParameters();
107 searchParameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PathCheapestArc;
108 Assignment solution = routing.SolveWithParameters(searchParameters);
109 Assert.Equal(8, solution.ObjectiveValue());
116 RoutingIndexManager manager =
new RoutingIndexManager(5 , 1 , 0 );
117 Assert.NotNull(manager);
119 RoutingModel routing =
new RoutingModel(manager);
120 Assert.NotNull(routing);
122 long[][] matrix =
new long[][] {
123 new long[] { 1, 1, 1, 1, 1 },
new long[] { 1, 1, 1, 1, 1 },
new long[] { 1, 1, 1, 1, 1 },
124 new long[] { 1, 1, 1, 1, 1 },
new long[] { 1, 1, 1, 1, 1 },
126 IntBoolPair result = routing.AddMatrixDimension(matrix,
130 routing.SetArcCostEvaluatorOfAllVehicles(result.first);
132 RoutingSearchParameters searchParameters =
133 operations_research_constraint_solver.DefaultRoutingSearchParameters();
134 searchParameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PathCheapestArc;
135 Assignment solution = routing.SolveWithParameters(searchParameters);
137 Assert.Equal(5, solution.ObjectiveValue());
144 RoutingIndexManager manager =
new RoutingIndexManager(5 , 1 , 0 );
145 Assert.NotNull(manager);
147 RoutingModel routing =
new RoutingModel(manager);
148 Assert.NotNull(routing);
150 long[] vector = { 1, 1, 1, 1, 1 };
151 int transitCallbackIndex = routing.RegisterUnaryTransitVector(vector);
153 routing.SetArcCostEvaluatorOfAllVehicles(transitCallbackIndex);
155 RoutingSearchParameters searchParameters =
156 operations_research_constraint_solver.DefaultRoutingSearchParameters();
157 searchParameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PathCheapestArc;
158 Assignment solution = routing.SolveWithParameters(searchParameters);
160 Assert.Equal(5, solution.ObjectiveValue());
167 RoutingIndexManager manager =
new RoutingIndexManager(5 , 1 , 0 );
168 Assert.NotNull(manager);
170 RoutingModel routing =
new RoutingModel(manager);
171 Assert.NotNull(routing);
173 int transitCallbackIndex = routing.RegisterUnaryTransitCallback((
long fromIndex) =>
178 manager.IndexToNode(fromIndex);
182 routing.SetArcCostEvaluatorOfAllVehicles(transitCallbackIndex);
184 RoutingSearchParameters searchParameters =
185 operations_research_constraint_solver.DefaultRoutingSearchParameters();
186 searchParameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PathCheapestArc;
187 Assignment solution = routing.SolveWithParameters(searchParameters);
189 Assert.Equal(15, solution.ObjectiveValue());
196 RoutingIndexManager manager =
new RoutingIndexManager(5 , 1 , 0 );
197 Assert.NotNull(manager);
199 RoutingModel routing =
new RoutingModel(manager);
200 Assert.NotNull(routing);
202 long[] vector =
new long[] { 1, 1, 1, 1, 1 };
203 IntBoolPair result = routing.AddVectorDimension(vector,
207 routing.SetArcCostEvaluatorOfAllVehicles(result.first);
209 RoutingSearchParameters searchParameters =
210 operations_research_constraint_solver.DefaultRoutingSearchParameters();
211 searchParameters.FirstSolutionStrategy = FirstSolutionStrategy.Types.Value.PathCheapestArc;
212 Assignment solution = routing.SolveWithParameters(searchParameters);
214 Assert.Equal(5, solution.ObjectiveValue());
224 BoundCost boundCost =
new BoundCost();
225 Assert.NotNull(boundCost);
226 Assert.Equal(0, boundCost.bound);
227 Assert.Equal(0, boundCost.cost);
229 boundCost =
new BoundCost(97 , 101 );
230 Assert.NotNull(boundCost);
231 Assert.Equal(97, boundCost.bound);
232 Assert.Equal(101, boundCost.cost);
242 RoutingIndexManager manager =
new RoutingIndexManager(31 , 7 , 3 );
243 Assert.NotNull(manager);
245 RoutingModel routing =
new RoutingModel(manager);
246 Assert.NotNull(routing);
248 int transitIndex = routing.RegisterTransitCallback((
long fromIndex,
long toIndex) =>
252 var fromNode = manager.IndexToNode(fromIndex);
253 var toNode = manager.IndexToNode(toIndex);
254 return Math.Abs(toNode - fromNode);
256 Assert.True(routing.AddDimension(transitIndex, 100, 100,
true,
"Dimension"));
257 RoutingDimension dimension = routing.GetDimensionOrDie(
"Dimension");
264 RoutingIndexManager manager =
new RoutingIndexManager(31 , 7 , 3 );
265 Assert.NotNull(manager);
267 RoutingModel routing =
new RoutingModel(manager);
268 Assert.NotNull(routing);
270 int transitIndex = routing.RegisterTransitCallback((
long fromIndex,
long toIndex) =>
274 var fromNode = manager.IndexToNode(fromIndex);
275 var toNode = manager.IndexToNode(toIndex);
276 return Math.Abs(toNode - fromNode);
278 Assert.True(routing.AddDimension(transitIndex, 100, 100,
true,
"Dimension"));
279 RoutingDimension dimension = routing.GetDimensionOrDie(
"Dimension");
281 BoundCost boundCost =
new BoundCost(97, 43);
282 Assert.NotNull(boundCost);
283 Assert.False(dimension.HasSoftSpanUpperBounds());
284 foreach (
int v
in Enumerable.Range(0, manager.GetNumberOfVehicles()).ToArray())
286 dimension.SetSoftSpanUpperBoundForVehicle(boundCost, v);
287 BoundCost bc = dimension.GetSoftSpanUpperBoundForVehicle(v);
289 Assert.Equal(97, bc.bound);
290 Assert.Equal(43, bc.cost);
292 Assert.True(dimension.HasSoftSpanUpperBounds());
299 RoutingIndexManager manager =
new RoutingIndexManager(31 , 7 , 3 );
300 Assert.NotNull(manager);
302 RoutingModel routing =
new RoutingModel(manager);
303 Assert.NotNull(routing);
305 int transitIndex = routing.RegisterTransitCallback((
long fromIndex,
long toIndex) =>
309 var fromNode = manager.IndexToNode(fromIndex);
310 var toNode = manager.IndexToNode(toIndex);
311 return Math.Abs(toNode - fromNode);
313 Assert.True(routing.AddDimension(transitIndex, 100, 100,
true,
"Dimension"));
314 RoutingDimension dimension = routing.GetDimensionOrDie(
"Dimension");
316 BoundCost boundCost =
new BoundCost(97, 43);
317 Assert.NotNull(boundCost);
318 Assert.False(dimension.HasQuadraticCostSoftSpanUpperBounds());
319 foreach (
int v
in Enumerable.Range(0, manager.GetNumberOfVehicles()).ToArray())
321 dimension.SetQuadraticCostSoftSpanUpperBoundForVehicle(boundCost, v);
322 BoundCost bc = dimension.GetQuadraticCostSoftSpanUpperBoundForVehicle(v);
324 Assert.Equal(97, bc.bound);
325 Assert.Equal(43, bc.cost);
327 Assert.True(dimension.HasQuadraticCostSoftSpanUpperBounds());