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