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