Java Reference

Java Reference

RoutingModel.java
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 4.0.1
4  *
5  * Do not make changes to this file unless you know what you are doing--modify
6  * the SWIG interface file instead.
7  * ----------------------------------------------------------------------------- */
8 
9 package com.google.ortools.constraintsolver;
10 
11 // Used to wrap RoutingTransitCallback2
12 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongBinaryOperator.html
13 import java.util.function.LongBinaryOperator;
14 // Used to wrap RoutingTransitCallback1
15 // see https://docs.oracle.com/javase/8/docs/api/java/util/function/LongUnaryOperator.html
16 import java.util.function.LongUnaryOperator;
17 
18 public class RoutingModel {
19  private transient long swigCPtr;
20  protected transient boolean swigCMemOwn;
21 
22  protected RoutingModel(long cPtr, boolean cMemoryOwn) {
23  swigCMemOwn = cMemoryOwn;
24  swigCPtr = cPtr;
25  }
26 
27  protected static long getCPtr(RoutingModel obj) {
28  return (obj == null) ? 0 : obj.swigCPtr;
29  }
30 
31  @SuppressWarnings("deprecation")
32  protected void finalize() {
33  delete();
34  }
35 
36  public synchronized void delete() {
37  if (swigCPtr != 0) {
38  if (swigCMemOwn) {
39  swigCMemOwn = false;
40  mainJNI.delete_RoutingModel(swigCPtr);
41  }
42  swigCPtr = 0;
43  }
44  }
45 
46  public static long getKNoPenalty() {
47  return mainJNI.RoutingModel_kNoPenalty_get();
48  }
49 
50  public static int getKNoDisjunction() {
51  return mainJNI.RoutingModel_kNoDisjunction_get();
52 }
53 
54  public static int getKNoDimension() {
55  return mainJNI.RoutingModel_kNoDimension_get();
56 }
57 
58  public RoutingModel(RoutingIndexManager index_manager) {
59  this(mainJNI.new_RoutingModel__SWIG_0(RoutingIndexManager.getCPtr(index_manager), index_manager), true);
60  }
61 
63  this(mainJNI.new_RoutingModel__SWIG_1(RoutingIndexManager.getCPtr(index_manager), index_manager, parameters.toByteArray()), true);
64  }
65 
66  public int registerUnaryTransitCallback(LongUnaryOperator callback) {
67  return mainJNI.RoutingModel_registerUnaryTransitCallback(swigCPtr, this, callback);
68  }
69 
70  public int RegisterPositiveUnaryTransitCallback(LongUnaryOperator callback) {
71  return mainJNI.RoutingModel_RegisterPositiveUnaryTransitCallback(swigCPtr, this, callback);
72  }
73 
74  public int registerTransitCallback(LongBinaryOperator callback) {
75  return mainJNI.RoutingModel_registerTransitCallback(swigCPtr, this, callback);
76  }
77 
78  public int registerPositiveTransitCallback(LongBinaryOperator callback) {
79  return mainJNI.RoutingModel_registerPositiveTransitCallback(swigCPtr, this, callback);
80  }
81 
82  public boolean addDimension(int evaluator_index, long slack_max, long capacity, boolean fix_start_cumul_to_zero, String name) {
83  return mainJNI.RoutingModel_addDimension(swigCPtr, this, evaluator_index, slack_max, capacity, fix_start_cumul_to_zero, name);
84  }
85 
86  public boolean addDimensionWithVehicleTransits(int[] evaluator_indices, long slack_max, long capacity, boolean fix_start_cumul_to_zero, String name) {
87  return mainJNI.RoutingModel_addDimensionWithVehicleTransits(swigCPtr, this, evaluator_indices, slack_max, capacity, fix_start_cumul_to_zero, name);
88  }
89 
90  public boolean addDimensionWithVehicleCapacity(int evaluator_index, long slack_max, long[] vehicle_capacities, boolean fix_start_cumul_to_zero, String name) {
91  return mainJNI.RoutingModel_addDimensionWithVehicleCapacity(swigCPtr, this, evaluator_index, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
92  }
93 
94  public boolean addDimensionWithVehicleTransitAndCapacity(int[] evaluator_indices, long slack_max, long[] vehicle_capacities, boolean fix_start_cumul_to_zero, String name) {
95  return mainJNI.RoutingModel_addDimensionWithVehicleTransitAndCapacity(swigCPtr, this, evaluator_indices, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
96  }
97 
98  public boolean addConstantDimensionWithSlack(long value, long capacity, long slack_max, boolean fix_start_cumul_to_zero, String name) {
99  return mainJNI.RoutingModel_addConstantDimensionWithSlack(swigCPtr, this, value, capacity, slack_max, fix_start_cumul_to_zero, name);
100  }
101 
102  public boolean addConstantDimension(long value, long capacity, boolean fix_start_cumul_to_zero, String name) {
103  return mainJNI.RoutingModel_addConstantDimension(swigCPtr, this, value, capacity, fix_start_cumul_to_zero, name);
104  }
105 
106  public boolean addVectorDimension(long[] values, long capacity, boolean fix_start_cumul_to_zero, String name) {
107  return mainJNI.RoutingModel_addVectorDimension(swigCPtr, this, values, capacity, fix_start_cumul_to_zero, name);
108  }
109 
110  public Constraint MakePathSpansAndTotalSlacks(RoutingDimension dimension, IntVar[] spans, IntVar[] total_slacks) {
111  long cPtr = mainJNI.RoutingModel_MakePathSpansAndTotalSlacks(swigCPtr, this, RoutingDimension.getCPtr(dimension), dimension, spans, total_slacks);
112  return (cPtr == 0) ? null : new Constraint(cPtr, false);
113  }
114 
115  public SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__GlobalDimensionCumulOptimizer_t_t GetGlobalDimensionCumulOptimizers() {
116  return new SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__GlobalDimensionCumulOptimizer_t_t(mainJNI.RoutingModel_GetGlobalDimensionCumulOptimizers(swigCPtr, this), false);
117  }
118 
119  public SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__LocalDimensionCumulOptimizer_t_t GetLocalDimensionCumulOptimizers() {
120  return new SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__LocalDimensionCumulOptimizer_t_t(mainJNI.RoutingModel_GetLocalDimensionCumulOptimizers(swigCPtr, this), false);
121  }
122 
123  public SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer GetMutableGlobalCumulOptimizer(RoutingDimension dimension) {
124  long cPtr = mainJNI.RoutingModel_GetMutableGlobalCumulOptimizer(swigCPtr, this, RoutingDimension.getCPtr(dimension), dimension);
125  return (cPtr == 0) ? null : new SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer(cPtr, false);
126  }
127 
128  public SWIGTYPE_p_operations_research__LocalDimensionCumulOptimizer GetMutableLocalCumulOptimizer(RoutingDimension dimension) {
129  long cPtr = mainJNI.RoutingModel_GetMutableLocalCumulOptimizer(swigCPtr, this, RoutingDimension.getCPtr(dimension), dimension);
130  return (cPtr == 0) ? null : new SWIGTYPE_p_operations_research__LocalDimensionCumulOptimizer(cPtr, false);
131  }
132 
133  public boolean hasDimension(String dimension_name) {
134  return mainJNI.RoutingModel_hasDimension(swigCPtr, this, dimension_name);
135  }
136 
137  public RoutingDimension getDimensionOrDie(String dimension_name) {
138  return new RoutingDimension(mainJNI.RoutingModel_getDimensionOrDie(swigCPtr, this, dimension_name), false);
139  }
140 
141  public RoutingDimension getMutableDimension(String dimension_name) {
142  long cPtr = mainJNI.RoutingModel_getMutableDimension(swigCPtr, this, dimension_name);
143  return (cPtr == 0) ? null : new RoutingDimension(cPtr, false);
144  }
145 
146  public void setPrimaryConstrainedDimension(String dimension_name) {
147  mainJNI.RoutingModel_setPrimaryConstrainedDimension(swigCPtr, this, dimension_name);
148  }
149 
151  return mainJNI.RoutingModel_getPrimaryConstrainedDimension(swigCPtr, this);
152  }
153 
154  public int addDisjunction(long[] indices, long penalty, long max_cardinality) {
155  return mainJNI.RoutingModel_addDisjunction__SWIG_0(swigCPtr, this, indices, penalty, max_cardinality);
156 }
157 
158  public int addDisjunction(long[] indices, long penalty) {
159  return mainJNI.RoutingModel_addDisjunction__SWIG_1(swigCPtr, this, indices, penalty);
160 }
161 
162  public int addDisjunction(long[] indices) {
163  return mainJNI.RoutingModel_addDisjunction__SWIG_2(swigCPtr, this, indices);
164 }
165 
166  public int[] getDisjunctionIndices(long index) {
167  return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_0(swigCPtr, this, index);
168 }
169 
170  public long[] getDisjunctionIndices(int index) {
171  return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_1(swigCPtr, this, index);
172 }
173 
174  public long getDisjunctionPenalty(int index) {
175  return mainJNI.RoutingModel_getDisjunctionPenalty(swigCPtr, this, index);
176  }
177 
178  public long getDisjunctionMaxCardinality(int index) {
179  return mainJNI.RoutingModel_getDisjunctionMaxCardinality(swigCPtr, this, index);
180  }
181 
182  public int getNumberOfDisjunctions() {
183  return mainJNI.RoutingModel_getNumberOfDisjunctions(swigCPtr, this);
184  }
185 
187  mainJNI.RoutingModel_ignoreDisjunctionsAlreadyForcedToZero(swigCPtr, this);
188  }
189 
190  public void addSoftSameVehicleConstraint(long[] indices, long cost) {
191  mainJNI.RoutingModel_addSoftSameVehicleConstraint(swigCPtr, this, indices, cost);
192  }
193 
194  public void setAllowedVehiclesForIndex(int[] vehicles, long index) {
195  mainJNI.RoutingModel_setAllowedVehiclesForIndex(swigCPtr, this, vehicles, index);
196  }
197 
198  public boolean isVehicleAllowedForIndex(int vehicle, long index) {
199  return mainJNI.RoutingModel_isVehicleAllowedForIndex(swigCPtr, this, vehicle, index);
200  }
201 
202  public void addPickupAndDelivery(long pickup, long delivery) {
203  mainJNI.RoutingModel_addPickupAndDelivery(swigCPtr, this, pickup, delivery);
204  }
205 
206  public void addPickupAndDeliverySets(int pickup_disjunction, int delivery_disjunction) {
207  mainJNI.RoutingModel_addPickupAndDeliverySets(swigCPtr, this, pickup_disjunction, delivery_disjunction);
208  }
209 
210  public void setPickupAndDeliveryPolicyOfAllVehicles(int policy) {
211  mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfAllVehicles(swigCPtr, this, policy);
212  }
213 
214  public void setPickupAndDeliveryPolicyOfVehicle(int policy, int vehicle) {
215  mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfVehicle(swigCPtr, this, policy, vehicle);
216  }
217 
218  public int getPickupAndDeliveryPolicyOfVehicle(int vehicle) {
219  return mainJNI.RoutingModel_getPickupAndDeliveryPolicyOfVehicle(swigCPtr, this, vehicle);
220  }
221 
222  public int getNumOfSingletonNodes() {
223  return mainJNI.RoutingModel_getNumOfSingletonNodes(swigCPtr, this);
224  }
225 
226  public void setVisitType(long index, int type) {
227  mainJNI.RoutingModel_setVisitType(swigCPtr, this, index, type);
228  }
229 
230  public int getVisitType(long index) {
231  return mainJNI.RoutingModel_getVisitType(swigCPtr, this, index);
232  }
233 
234  public int getNumberOfVisitTypes() {
235  return mainJNI.RoutingModel_getNumberOfVisitTypes(swigCPtr, this);
236  }
237 
238  public long unperformedPenalty(long var_index) {
239  return mainJNI.RoutingModel_unperformedPenalty(swigCPtr, this, var_index);
240  }
241 
242  public long unperformedPenaltyOrValue(long default_value, long var_index) {
243  return mainJNI.RoutingModel_unperformedPenaltyOrValue(swigCPtr, this, default_value, var_index);
244  }
245 
246  public long getDepot() {
247  return mainJNI.RoutingModel_getDepot(swigCPtr, this);
248  }
249 
250  public void setArcCostEvaluatorOfAllVehicles(int evaluator_index) {
251  mainJNI.RoutingModel_setArcCostEvaluatorOfAllVehicles(swigCPtr, this, evaluator_index);
252  }
253 
254  public void setArcCostEvaluatorOfVehicle(int evaluator_index, int vehicle) {
255  mainJNI.RoutingModel_setArcCostEvaluatorOfVehicle(swigCPtr, this, evaluator_index, vehicle);
256  }
257 
258  public void setFixedCostOfAllVehicles(long cost) {
259  mainJNI.RoutingModel_setFixedCostOfAllVehicles(swigCPtr, this, cost);
260  }
261 
262  public void setFixedCostOfVehicle(long cost, int vehicle) {
263  mainJNI.RoutingModel_setFixedCostOfVehicle(swigCPtr, this, cost, vehicle);
264  }
265 
266  public long getFixedCostOfVehicle(int vehicle) {
267  return mainJNI.RoutingModel_getFixedCostOfVehicle(swigCPtr, this, vehicle);
268  }
269 
270  public void setAmortizedCostFactorsOfAllVehicles(long linear_cost_factor, long quadratic_cost_factor) {
271  mainJNI.RoutingModel_setAmortizedCostFactorsOfAllVehicles(swigCPtr, this, linear_cost_factor, quadratic_cost_factor);
272  }
273 
274  public void setAmortizedCostFactorsOfVehicle(long linear_cost_factor, long quadratic_cost_factor, int vehicle) {
275  mainJNI.RoutingModel_setAmortizedCostFactorsOfVehicle(swigCPtr, this, linear_cost_factor, quadratic_cost_factor, vehicle);
276  }
277 
279  return mainJNI.RoutingModel_getAmortizedLinearCostFactorOfVehicles(swigCPtr, this);
280 }
281 
283  return mainJNI.RoutingModel_getAmortizedQuadraticCostFactorOfVehicles(swigCPtr, this);
284 }
285 
286  public void ConsiderEmptyRouteCostsForVehicle(boolean consider_costs, int vehicle) {
287  mainJNI.RoutingModel_ConsiderEmptyRouteCostsForVehicle(swigCPtr, this, consider_costs, vehicle);
288  }
289 
290  public boolean AreEmptyRouteCostsConsideredForVehicle(int vehicle) {
291  return mainJNI.RoutingModel_AreEmptyRouteCostsConsideredForVehicle(swigCPtr, this, vehicle);
292  }
293 
294  public void setFirstSolutionEvaluator(LongBinaryOperator evaluator) {
295  mainJNI.RoutingModel_setFirstSolutionEvaluator(swigCPtr, this, evaluator);
296  }
297 
298  public void addLocalSearchOperator(LocalSearchOperator ls_operator) {
299  mainJNI.RoutingModel_addLocalSearchOperator(swigCPtr, this, LocalSearchOperator.getCPtr(ls_operator), ls_operator);
300  }
301 
302  public void addSearchMonitor(SearchMonitor monitor) {
303  mainJNI.RoutingModel_addSearchMonitor(swigCPtr, this, SearchMonitor.getCPtr(monitor), monitor);
304  }
305 
306  public void addAtSolutionCallback(Runnable callback) {
307  mainJNI.RoutingModel_addAtSolutionCallback(swigCPtr, this, callback);
308  }
309 
311  mainJNI.RoutingModel_addVariableMinimizedByFinalizer(swigCPtr, this, IntVar.getCPtr(var), var);
312  }
313 
315  mainJNI.RoutingModel_addVariableMaximizedByFinalizer(swigCPtr, this, IntVar.getCPtr(var), var);
316  }
317 
318  public void AddWeightedVariableMinimizedByFinalizer(IntVar var, long cost) {
319  mainJNI.RoutingModel_AddWeightedVariableMinimizedByFinalizer(swigCPtr, this, IntVar.getCPtr(var), var, cost);
320  }
321 
322  public void AddVariableTargetToFinalizer(IntVar var, long target) {
323  mainJNI.RoutingModel_AddVariableTargetToFinalizer(swigCPtr, this, IntVar.getCPtr(var), var, target);
324  }
325 
326  public void closeModel() {
327  mainJNI.RoutingModel_closeModel(swigCPtr, this);
328  }
329 
331  mainJNI.RoutingModel_closeModelWithParameters(swigCPtr, this, search_parameters.toByteArray());
332  }
333 
334  public Assignment solve(Assignment assignment) {
335  long cPtr = mainJNI.RoutingModel_solve__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
336  return (cPtr == 0) ? null : new Assignment(cPtr, false);
337  }
338 
339  public Assignment solve() {
340  long cPtr = mainJNI.RoutingModel_solve__SWIG_1(swigCPtr, this);
341  return (cPtr == 0) ? null : new Assignment(cPtr, false);
342  }
343 
345  long cPtr = mainJNI.RoutingModel_solveWithParameters(swigCPtr, this, search_parameters.toByteArray());
346  return (cPtr == 0) ? null : new Assignment(cPtr, false);
347  }
348 
350  long cPtr = mainJNI.RoutingModel_solveFromAssignmentWithParameters(swigCPtr, this, Assignment.getCPtr(assignment), assignment, search_parameters.toByteArray());
351  return (cPtr == 0) ? null : new Assignment(cPtr, false);
352  }
353 
354  public void setAssignmentFromOtherModelAssignment(Assignment target_assignment, RoutingModel source_model, Assignment source_assignment) {
355  mainJNI.RoutingModel_setAssignmentFromOtherModelAssignment(swigCPtr, this, Assignment.getCPtr(target_assignment), target_assignment, RoutingModel.getCPtr(source_model), source_model, Assignment.getCPtr(source_assignment), source_assignment);
356  }
357 
358  public long computeLowerBound() {
359  return mainJNI.RoutingModel_computeLowerBound(swigCPtr, this);
360  }
361 
362  public int status() {
363  return mainJNI.RoutingModel_status(swigCPtr, this);
364  }
365 
366  public IntVar applyLocks(long[] locks) {
367  long cPtr = mainJNI.RoutingModel_applyLocks(swigCPtr, this, locks);
368  return (cPtr == 0) ? null : new IntVar(cPtr, false);
369  }
370 
371  public boolean applyLocksToAllVehicles(long[][] locks, boolean close_routes) {
372  return mainJNI.RoutingModel_applyLocksToAllVehicles(swigCPtr, this, locks, close_routes);
373  }
374 
376  long cPtr = mainJNI.RoutingModel_preAssignment(swigCPtr, this);
377  return (cPtr == 0) ? null : new Assignment(cPtr, false);
378  }
379 
381  long cPtr = mainJNI.RoutingModel_mutablePreAssignment(swigCPtr, this);
382  return (cPtr == 0) ? null : new Assignment(cPtr, false);
383  }
384 
385  public boolean writeAssignment(String file_name) {
386  return mainJNI.RoutingModel_writeAssignment(swigCPtr, this, file_name);
387  }
388 
389  public Assignment readAssignment(String file_name) {
390  long cPtr = mainJNI.RoutingModel_readAssignment(swigCPtr, this, file_name);
391  return (cPtr == 0) ? null : new Assignment(cPtr, false);
392  }
393 
395  long cPtr = mainJNI.RoutingModel_restoreAssignment(swigCPtr, this, Assignment.getCPtr(solution), solution);
396  return (cPtr == 0) ? null : new Assignment(cPtr, false);
397  }
398 
399  public Assignment readAssignmentFromRoutes(long[][] routes, boolean ignore_inactive_indices) {
400  long cPtr = mainJNI.RoutingModel_readAssignmentFromRoutes(swigCPtr, this, routes, ignore_inactive_indices);
401  return (cPtr == 0) ? null : new Assignment(cPtr, false);
402  }
403 
404  public boolean routesToAssignment(long[][] routes, boolean ignore_inactive_indices, boolean close_routes, Assignment assignment) {
405  return mainJNI.RoutingModel_routesToAssignment(swigCPtr, this, routes, ignore_inactive_indices, close_routes, Assignment.getCPtr(assignment), assignment);
406  }
407 
408  public void assignmentToRoutes(Assignment assignment, long[][] routes) {
409  mainJNI.RoutingModel_assignmentToRoutes(swigCPtr, this, Assignment.getCPtr(assignment), assignment, routes);
410  }
411 
413  long cPtr = mainJNI.RoutingModel_compactAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
414  return (cPtr == 0) ? null : new Assignment(cPtr, false);
415  }
416 
418  long cPtr = mainJNI.RoutingModel_compactAndCheckAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
419  return (cPtr == 0) ? null : new Assignment(cPtr, false);
420  }
421 
422  public void addToAssignment(IntVar var) {
423  mainJNI.RoutingModel_addToAssignment(swigCPtr, this, IntVar.getCPtr(var), var);
424  }
425 
426  public void addIntervalToAssignment(IntervalVar interval) {
427  mainJNI.RoutingModel_addIntervalToAssignment(swigCPtr, this, IntervalVar.getCPtr(interval), interval);
428  }
429 
430  public Assignment PackCumulsOfOptimizerDimensionsFromAssignment(Assignment original_assignment, SWIGTYPE_p_absl__Duration duration_limit) {
431  long cPtr = mainJNI.RoutingModel_PackCumulsOfOptimizerDimensionsFromAssignment(swigCPtr, this, Assignment.getCPtr(original_assignment), original_assignment, SWIGTYPE_p_absl__Duration.getCPtr(duration_limit));
432  return (cPtr == 0) ? null : new Assignment(cPtr, false);
433  }
434 
436  mainJNI.RoutingModel_addLocalSearchFilter(swigCPtr, this, LocalSearchFilter.getCPtr(filter), filter);
437  }
438 
439  public long start(int vehicle) {
440  return mainJNI.RoutingModel_start(swigCPtr, this, vehicle);
441  }
442 
443  public long end(int vehicle) {
444  return mainJNI.RoutingModel_end(swigCPtr, this, vehicle);
445  }
446 
447  public boolean isStart(long index) {
448  return mainJNI.RoutingModel_isStart(swigCPtr, this, index);
449  }
450 
451  public boolean isEnd(long index) {
452  return mainJNI.RoutingModel_isEnd(swigCPtr, this, index);
453  }
454 
455  public int VehicleIndex(int index) {
456  return mainJNI.RoutingModel_VehicleIndex(swigCPtr, this, index);
457  }
458 
459  public long next(Assignment assignment, long index) {
460  return mainJNI.RoutingModel_next(swigCPtr, this, Assignment.getCPtr(assignment), assignment, index);
461  }
462 
463  public boolean isVehicleUsed(Assignment assignment, int vehicle) {
464  return mainJNI.RoutingModel_isVehicleUsed(swigCPtr, this, Assignment.getCPtr(assignment), assignment, vehicle);
465  }
466 
467  public IntVar[] nexts() {
468  return mainJNI.RoutingModel_nexts(swigCPtr, this);
469 }
470 
471  public IntVar[] vehicleVars() {
472  return mainJNI.RoutingModel_vehicleVars(swigCPtr, this);
473 }
474 
475  public IntVar nextVar(long index) {
476  long cPtr = mainJNI.RoutingModel_nextVar(swigCPtr, this, index);
477  return (cPtr == 0) ? null : new IntVar(cPtr, false);
478  }
479 
480  public IntVar activeVar(long index) {
481  long cPtr = mainJNI.RoutingModel_activeVar(swigCPtr, this, index);
482  return (cPtr == 0) ? null : new IntVar(cPtr, false);
483  }
484 
485  public IntVar VehicleCostsConsideredVar(int vehicle) {
486  long cPtr = mainJNI.RoutingModel_VehicleCostsConsideredVar(swigCPtr, this, vehicle);
487  return (cPtr == 0) ? null : new IntVar(cPtr, false);
488  }
489 
490  public IntVar vehicleVar(long index) {
491  long cPtr = mainJNI.RoutingModel_vehicleVar(swigCPtr, this, index);
492  return (cPtr == 0) ? null : new IntVar(cPtr, false);
493  }
494 
495  public IntVar costVar() {
496  long cPtr = mainJNI.RoutingModel_costVar(swigCPtr, this);
497  return (cPtr == 0) ? null : new IntVar(cPtr, false);
498  }
499 
500  public long getArcCostForVehicle(long from_index, long to_index, long vehicle) {
501  return mainJNI.RoutingModel_getArcCostForVehicle(swigCPtr, this, from_index, to_index, vehicle);
502  }
503 
505  return mainJNI.RoutingModel_costsAreHomogeneousAcrossVehicles(swigCPtr, this);
506  }
507 
508  public long getHomogeneousCost(long from_index, long to_index) {
509  return mainJNI.RoutingModel_getHomogeneousCost(swigCPtr, this, from_index, to_index);
510  }
511 
512  public long getArcCostForFirstSolution(long from_index, long to_index) {
513  return mainJNI.RoutingModel_getArcCostForFirstSolution(swigCPtr, this, from_index, to_index);
514  }
515 
516  public long getArcCostForClass(long from_index, long to_index, long cost_class_index) {
517  return mainJNI.RoutingModel_getArcCostForClass(swigCPtr, this, from_index, to_index, cost_class_index);
518  }
519 
520  public int getCostClassIndexOfVehicle(long vehicle) {
521  return mainJNI.RoutingModel_getCostClassIndexOfVehicle(swigCPtr, this, vehicle);
522 }
523 
524  public boolean hasVehicleWithCostClassIndex(int cost_class_index) {
525  return mainJNI.RoutingModel_hasVehicleWithCostClassIndex(swigCPtr, this, cost_class_index);
526  }
527 
528  public int getCostClassesCount() {
529  return mainJNI.RoutingModel_getCostClassesCount(swigCPtr, this);
530  }
531 
533  return mainJNI.RoutingModel_getNonZeroCostClassesCount(swigCPtr, this);
534  }
535 
536  public int getVehicleClassIndexOfVehicle(long vehicle) {
537  return mainJNI.RoutingModel_getVehicleClassIndexOfVehicle(swigCPtr, this, vehicle);
538 }
539 
540  public int getVehicleClassesCount() {
541  return mainJNI.RoutingModel_getVehicleClassesCount(swigCPtr, this);
542  }
543 
544  public int[] getSameVehicleIndicesOfIndex(int node) {
545  return mainJNI.RoutingModel_getSameVehicleIndicesOfIndex(swigCPtr, this, node);
546 }
547 
548  public boolean arcIsMoreConstrainedThanArc(long from, long to1, long to2) {
549  return mainJNI.RoutingModel_arcIsMoreConstrainedThanArc(swigCPtr, this, from, to1, to2);
550  }
551 
552  public String debugOutputAssignment(Assignment solution_assignment, String dimension_to_print) {
553  return mainJNI.RoutingModel_debugOutputAssignment(swigCPtr, this, Assignment.getCPtr(solution_assignment), solution_assignment, dimension_to_print);
554  }
555 
556  public Solver solver() {
557  long cPtr = mainJNI.RoutingModel_solver(swigCPtr, this);
558  return (cPtr == 0) ? null : new Solver(cPtr, false);
559  }
560 
561  public boolean checkLimit() {
562  return mainJNI.RoutingModel_checkLimit(swigCPtr, this);
563  }
564 
565  public SWIGTYPE_p_absl__Duration RemainingTime() {
566  return new SWIGTYPE_p_absl__Duration(mainJNI.RoutingModel_RemainingTime(swigCPtr, this), true);
567  }
568 
569  public int nodes() {
570  return mainJNI.RoutingModel_nodes(swigCPtr, this);
571  }
572 
573  public int vehicles() {
574  return mainJNI.RoutingModel_vehicles(swigCPtr, this);
575  }
576 
577  public long size() {
578  return mainJNI.RoutingModel_size(swigCPtr, this);
579  }
580 
582  return mainJNI.RoutingModel_getNumberOfDecisionsInFirstSolution(swigCPtr, this, search_parameters.toByteArray());
583  }
584 
586  return mainJNI.RoutingModel_getNumberOfRejectsInFirstSolution(swigCPtr, this, search_parameters.toByteArray());
587  }
588 
589  public boolean isMatchingModel() {
590  return mainJNI.RoutingModel_isMatchingModel(swigCPtr, this);
591  }
592 
593  public DecisionBuilder makeGuidedSlackFinalizer(RoutingDimension dimension, LongUnaryOperator initializer) {
594  long cPtr = mainJNI.RoutingModel_makeGuidedSlackFinalizer(swigCPtr, this, RoutingDimension.getCPtr(dimension), dimension, initializer);
595  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
596  }
597 
599  long cPtr = mainJNI.RoutingModel_makeSelfDependentDimensionFinalizer(swigCPtr, this, RoutingDimension.getCPtr(dimension), dimension);
600  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
601  }
602 
603  public void addMatrixDimension(long[][] values, long capacity, boolean fix_start_cumul_to_zero, String name) {
604  mainJNI.RoutingModel_addMatrixDimension(swigCPtr, this, values, capacity, fix_start_cumul_to_zero, name);
605  }
606 
607  // Status
608  public final static int ROUTING_NOT_SOLVED = mainJNI.RoutingModel_ROUTING_NOT_SOLVED_get();
609  public final static int ROUTING_SUCCESS = mainJNI.RoutingModel_ROUTING_SUCCESS_get();
610  public final static int ROUTING_FAIL = mainJNI.RoutingModel_ROUTING_FAIL_get();
611  public final static int ROUTING_FAIL_TIMEOUT = mainJNI.RoutingModel_ROUTING_FAIL_TIMEOUT_get();
612  public final static int ROUTING_INVALID = mainJNI.RoutingModel_ROUTING_INVALID_get();
613 
614  // PickupAndDeliveryPolicy
615  public final static int PICKUP_AND_DELIVERY_NO_ORDER = mainJNI.RoutingModel_PICKUP_AND_DELIVERY_NO_ORDER_get();
616  public final static int PICKUP_AND_DELIVERY_LIFO = mainJNI.RoutingModel_PICKUP_AND_DELIVERY_LIFO_get();
617  public final static int PICKUP_AND_DELIVERY_FIFO = mainJNI.RoutingModel_PICKUP_AND_DELIVERY_FIFO_get();
618 
619 }
SWIGTYPE_p_operations_research__GlobalDimensionCumulOptimizer GetMutableGlobalCumulOptimizer(RoutingDimension dimension)
boolean isStart(long index)
IntVar[] nexts()
boolean applyLocksToAllVehicles(long[][] locks, boolean close_routes)
void addLocalSearchFilter(LocalSearchFilter filter)
Constraint MakePathSpansAndTotalSlacks(RoutingDimension dimension, IntVar[] spans, IntVar[] total_slacks)
void setAmortizedCostFactorsOfVehicle(long linear_cost_factor, long quadratic_cost_factor, int vehicle)
void ignoreDisjunctionsAlreadyForcedToZero()
boolean routesToAssignment(long[][] routes, boolean ignore_inactive_indices, boolean close_routes, Assignment assignment)
SWIGTYPE_p_absl__Duration RemainingTime()
void addAtSolutionCallback(Runnable callback)
int[] getSameVehicleIndicesOfIndex(int node)
int getVehicleClassIndexOfVehicle(long vehicle)
long unperformedPenaltyOrValue(long default_value, long var_index)
RoutingModel(long cPtr, boolean cMemoryOwn)
int getNumberOfDisjunctions()
long size()
void setPickupAndDeliveryPolicyOfAllVehicles(int policy)
Assignment solve(Assignment assignment)
IntVar[] vehicleVars()
void ConsiderEmptyRouteCostsForVehicle(boolean consider_costs, int vehicle)
IntVar applyLocks(long[] locks)
String getPrimaryConstrainedDimension()
int getVehicleClassesCount()
void addLocalSearchOperator(LocalSearchOperator ls_operator)
boolean isVehicleUsed(Assignment assignment, int vehicle)
int RegisterPositiveUnaryTransitCallback(LongUnaryOperator callback)
void addMatrixDimension(long[][] values, long capacity, boolean fix_start_cumul_to_zero, String name)
IntVar costVar()
static int getKNoDimension()
long computeLowerBound()
IntVar VehicleCostsConsideredVar(int vehicle)
void setFirstSolutionEvaluator(LongBinaryOperator evaluator)
void setAllowedVehiclesForIndex(int[] vehicles, long index)
long getArcCostForFirstSolution(long from_index, long to_index)
Assignment compactAssignment(Assignment assignment)
void setAssignmentFromOtherModelAssignment(Assignment target_assignment, RoutingModel source_model, Assignment source_assignment)
boolean costsAreHomogeneousAcrossVehicles()
void setFixedCostOfVehicle(long cost, int vehicle)
static final int ROUTING_INVALID
void setFixedCostOfAllVehicles(long cost)
Assignment readAssignment(String file_name)
long getDisjunctionMaxCardinality(int index)
void AddWeightedVariableMinimizedByFinalizer(IntVar var, long cost)
void setArcCostEvaluatorOfVehicle(int evaluator_index, int vehicle)
int getCostClassesCount()
void setArcCostEvaluatorOfAllVehicles(int evaluator_index)
RoutingModel(RoutingIndexManager index_manager, com.google.ortools.constraintsolver.RoutingModelParameters parameters)
void setPickupAndDeliveryPolicyOfVehicle(int policy, int vehicle)
int addDisjunction(long[] indices, long penalty)
Assignment readAssignmentFromRoutes(long[][] routes, boolean ignore_inactive_indices)
boolean addDimensionWithVehicleTransits(int[] evaluator_indices, long slack_max, long capacity, boolean fix_start_cumul_to_zero, String name)
SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__LocalDimensionCumulOptimizer_t_t GetLocalDimensionCumulOptimizers()
boolean hasDimension(String dimension_name)
int vehicles()
void AddVariableTargetToFinalizer(IntVar var, long target)
boolean addDimensionWithVehicleCapacity(int evaluator_index, long slack_max, long[] vehicle_capacities, boolean fix_start_cumul_to_zero, String name)
String debugOutputAssignment(Assignment solution_assignment, String dimension_to_print)
Assignment solveFromAssignmentWithParameters(Assignment assignment, com.google.ortools.constraintsolver.RoutingSearchParameters search_parameters)
static int getKNoDisjunction()
long getDisjunctionPenalty(int index)
Assignment compactAndCheckAssignment(Assignment assignment)
boolean writeAssignment(String file_name)
RoutingModel(RoutingIndexManager index_manager)
RoutingDimension getMutableDimension(String dimension_name)
static final int ROUTING_NOT_SOLVED
int registerTransitCallback(LongBinaryOperator callback)
IntVar activeVar(long index)
int getNumOfSingletonNodes()
SWIGTYPE_p_std__vectorT_std__unique_ptrT_operations_research__GlobalDimensionCumulOptimizer_t_t GetGlobalDimensionCumulOptimizers()
Definition: Assignment.java:11
void setVisitType(long index, int type)
void addVariableMinimizedByFinalizer(IntVar var)
IntVar nextVar(long index)
Assignment solve()
boolean isVehicleAllowedForIndex(int vehicle, long index)
static final int PICKUP_AND_DELIVERY_FIFO
static final int ROUTING_SUCCESS
boolean checkLimit()
static final int PICKUP_AND_DELIVERY_LIFO
void addToAssignment(IntVar var)
DecisionBuilder makeGuidedSlackFinalizer(RoutingDimension dimension, LongUnaryOperator initializer)
void addSearchMonitor(SearchMonitor monitor)
void addPickupAndDeliverySets(int pickup_disjunction, int delivery_disjunction)
long end(int vehicle)
boolean addDimensionWithVehicleTransitAndCapacity(int[] evaluator_indices, long slack_max, long[] vehicle_capacities, boolean fix_start_cumul_to_zero, String name)
void setAmortizedCostFactorsOfAllVehicles(long linear_cost_factor, long quadratic_cost_factor)
int registerUnaryTransitCallback(LongUnaryOperator callback)
long[] getAmortizedQuadraticCostFactorOfVehicles()
Assignment restoreAssignment(Assignment solution)
IntVar vehicleVar(long index)
boolean addVectorDimension(long[] values, long capacity, boolean fix_start_cumul_to_zero, String name)
SWIGTYPE_p_operations_research__LocalDimensionCumulOptimizer GetMutableLocalCumulOptimizer(RoutingDimension dimension)
int status()
DecisionBuilder makeSelfDependentDimensionFinalizer(RoutingDimension dimension)
long[] getDisjunctionIndices(int index)
static final int ROUTING_FAIL_TIMEOUT
long getArcCostForClass(long from_index, long to_index, long cost_class_index)
int addDisjunction(long[] indices)
void addIntervalToAssignment(IntervalVar interval)
long getNumberOfDecisionsInFirstSolution(com.google.ortools.constraintsolver.RoutingSearchParameters search_parameters)
long getArcCostForVehicle(long from_index, long to_index, long vehicle)
void assignmentToRoutes(Assignment assignment, long[][] routes)
static long getKNoPenalty()
Assignment mutablePreAssignment()
long next(Assignment assignment, long index)
long unperformedPenalty(long var_index)
boolean AreEmptyRouteCostsConsideredForVehicle(int vehicle)
long getFixedCostOfVehicle(int vehicle)
long getDepot()
int nodes()
boolean hasVehicleWithCostClassIndex(int cost_class_index)
Assignment PackCumulsOfOptimizerDimensionsFromAssignment(Assignment original_assignment, SWIGTYPE_p_absl__Duration duration_limit)
long getHomogeneousCost(long from_index, long to_index)
RoutingDimension getDimensionOrDie(String dimension_name)
void closeModel()
boolean addConstantDimension(long value, long capacity, boolean fix_start_cumul_to_zero, String name)
void closeModelWithParameters(com.google.ortools.constraintsolver.RoutingSearchParameters search_parameters)
long getNumberOfRejectsInFirstSolution(com.google.ortools.constraintsolver.RoutingSearchParameters search_parameters)
Assignment preAssignment()
int getCostClassIndexOfVehicle(long vehicle)
int[] getDisjunctionIndices(long index)
void addSoftSameVehicleConstraint(long[] indices, long cost)
Assignment solveWithParameters(com.google.ortools.constraintsolver.RoutingSearchParameters search_parameters)
void addPickupAndDelivery(long pickup, long delivery)
boolean addDimension(int evaluator_index, long slack_max, long capacity, boolean fix_start_cumul_to_zero, String name)
int getPickupAndDeliveryPolicyOfVehicle(int vehicle)
boolean arcIsMoreConstrainedThanArc(long from, long to1, long to2)
int addDisjunction(long[] indices, long penalty, long max_cardinality)
void addVariableMaximizedByFinalizer(IntVar var)
long[] getAmortizedLinearCostFactorOfVehicles()
static final int ROUTING_FAIL
int getNumberOfVisitTypes()
boolean addConstantDimensionWithSlack(long value, long capacity, long slack_max, boolean fix_start_cumul_to_zero, String name)
static final int PICKUP_AND_DELIVERY_NO_ORDER
int registerPositiveTransitCallback(LongBinaryOperator callback)
int VehicleIndex(int index)
Solver solver()
boolean isMatchingModel()
Definition: Solver.java:54
int getNonZeroCostClassesCount()
int getVisitType(long index)
void setPrimaryConstrainedDimension(String dimension_name)
long start(int vehicle)
boolean isEnd(long index)