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.2
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 boolean hasDimension(String dimension_name) {
116  return mainJNI.RoutingModel_hasDimension(swigCPtr, this, dimension_name);
117  }
118 
119  public RoutingDimension getDimensionOrDie(String dimension_name) {
120  return new RoutingDimension(mainJNI.RoutingModel_getDimensionOrDie(swigCPtr, this, dimension_name), false);
121  }
122 
123  public RoutingDimension getMutableDimension(String dimension_name) {
124  long cPtr = mainJNI.RoutingModel_getMutableDimension(swigCPtr, this, dimension_name);
125  return (cPtr == 0) ? null : new RoutingDimension(cPtr, false);
126  }
127 
128  public void setPrimaryConstrainedDimension(String dimension_name) {
129  mainJNI.RoutingModel_setPrimaryConstrainedDimension(swigCPtr, this, dimension_name);
130  }
131 
133  return mainJNI.RoutingModel_getPrimaryConstrainedDimension(swigCPtr, this);
134  }
135 
136  public int addDisjunction(long[] indices, long penalty, long max_cardinality) {
137  return mainJNI.RoutingModel_addDisjunction__SWIG_0(swigCPtr, this, indices, penalty, max_cardinality);
138 }
139 
140  public int addDisjunction(long[] indices, long penalty) {
141  return mainJNI.RoutingModel_addDisjunction__SWIG_1(swigCPtr, this, indices, penalty);
142 }
143 
144  public int addDisjunction(long[] indices) {
145  return mainJNI.RoutingModel_addDisjunction__SWIG_2(swigCPtr, this, indices);
146 }
147 
148  public int[] getDisjunctionIndices(long index) {
149  return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_0(swigCPtr, this, index);
150 }
151 
152  public long[] getDisjunctionIndices(int index) {
153  return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_1(swigCPtr, this, index);
154 }
155 
156  public long getDisjunctionPenalty(int index) {
157  return mainJNI.RoutingModel_getDisjunctionPenalty(swigCPtr, this, index);
158  }
159 
160  public long getDisjunctionMaxCardinality(int index) {
161  return mainJNI.RoutingModel_getDisjunctionMaxCardinality(swigCPtr, this, index);
162  }
163 
164  public int getNumberOfDisjunctions() {
165  return mainJNI.RoutingModel_getNumberOfDisjunctions(swigCPtr, this);
166  }
167 
169  mainJNI.RoutingModel_ignoreDisjunctionsAlreadyForcedToZero(swigCPtr, this);
170  }
171 
172  public void addSoftSameVehicleConstraint(long[] indices, long cost) {
173  mainJNI.RoutingModel_addSoftSameVehicleConstraint(swigCPtr, this, indices, cost);
174  }
175 
176  public void setAllowedVehiclesForIndex(int[] vehicles, long index) {
177  mainJNI.RoutingModel_setAllowedVehiclesForIndex(swigCPtr, this, vehicles, index);
178  }
179 
180  public boolean isVehicleAllowedForIndex(int vehicle, long index) {
181  return mainJNI.RoutingModel_isVehicleAllowedForIndex(swigCPtr, this, vehicle, index);
182  }
183 
184  public void addPickupAndDelivery(long pickup, long delivery) {
185  mainJNI.RoutingModel_addPickupAndDelivery(swigCPtr, this, pickup, delivery);
186  }
187 
188  public void addPickupAndDeliverySets(int pickup_disjunction, int delivery_disjunction) {
189  mainJNI.RoutingModel_addPickupAndDeliverySets(swigCPtr, this, pickup_disjunction, delivery_disjunction);
190  }
191 
192  public void setPickupAndDeliveryPolicyOfAllVehicles(int policy) {
193  mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfAllVehicles(swigCPtr, this, policy);
194  }
195 
196  public void setPickupAndDeliveryPolicyOfVehicle(int policy, int vehicle) {
197  mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfVehicle(swigCPtr, this, policy, vehicle);
198  }
199 
200  public int getPickupAndDeliveryPolicyOfVehicle(int vehicle) {
201  return mainJNI.RoutingModel_getPickupAndDeliveryPolicyOfVehicle(swigCPtr, this, vehicle);
202  }
203 
204  public int getNumOfSingletonNodes() {
205  return mainJNI.RoutingModel_getNumOfSingletonNodes(swigCPtr, this);
206  }
207 
208  public void setVisitType(long index, int type, int type_policy) {
209  mainJNI.RoutingModel_setVisitType(swigCPtr, this, index, type, type_policy);
210  }
211 
212  public int getVisitType(long index) {
213  return mainJNI.RoutingModel_getVisitType(swigCPtr, this, index);
214  }
215 
216  public int GetVisitTypePolicy(long index) {
217  return mainJNI.RoutingModel_GetVisitTypePolicy(swigCPtr, this, index);
218  }
219 
220  public int getNumberOfVisitTypes() {
221  return mainJNI.RoutingModel_getNumberOfVisitTypes(swigCPtr, this);
222  }
223 
224  public void AddRequiredTypeAlternativesWhenAddingType(int dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t required_type_alternatives) {
225  mainJNI.RoutingModel_AddRequiredTypeAlternativesWhenAddingType(swigCPtr, this, dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t.getCPtr(required_type_alternatives));
226  }
227 
228  public void AddRequiredTypeAlternativesWhenRemovingType(int dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t required_type_alternatives) {
229  mainJNI.RoutingModel_AddRequiredTypeAlternativesWhenRemovingType(swigCPtr, this, dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t.getCPtr(required_type_alternatives));
230  }
231 
232  public SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t GetRequiredTypeAlternativesWhenAddingType(int type) {
233  return new SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t(mainJNI.RoutingModel_GetRequiredTypeAlternativesWhenAddingType(swigCPtr, this, type), false);
234  }
235 
236  public SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t GetRequiredTypeAlternativesWhenRemovingType(int type) {
237  return new SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t(mainJNI.RoutingModel_GetRequiredTypeAlternativesWhenRemovingType(swigCPtr, this, type), false);
238  }
239 
240  public long unperformedPenalty(long var_index) {
241  return mainJNI.RoutingModel_unperformedPenalty(swigCPtr, this, var_index);
242  }
243 
244  public long unperformedPenaltyOrValue(long default_value, long var_index) {
245  return mainJNI.RoutingModel_unperformedPenaltyOrValue(swigCPtr, this, default_value, var_index);
246  }
247 
248  public long getDepot() {
249  return mainJNI.RoutingModel_getDepot(swigCPtr, this);
250  }
251 
252  public void setArcCostEvaluatorOfAllVehicles(int evaluator_index) {
253  mainJNI.RoutingModel_setArcCostEvaluatorOfAllVehicles(swigCPtr, this, evaluator_index);
254  }
255 
256  public void setArcCostEvaluatorOfVehicle(int evaluator_index, int vehicle) {
257  mainJNI.RoutingModel_setArcCostEvaluatorOfVehicle(swigCPtr, this, evaluator_index, vehicle);
258  }
259 
260  public void setFixedCostOfAllVehicles(long cost) {
261  mainJNI.RoutingModel_setFixedCostOfAllVehicles(swigCPtr, this, cost);
262  }
263 
264  public void setFixedCostOfVehicle(long cost, int vehicle) {
265  mainJNI.RoutingModel_setFixedCostOfVehicle(swigCPtr, this, cost, vehicle);
266  }
267 
268  public long getFixedCostOfVehicle(int vehicle) {
269  return mainJNI.RoutingModel_getFixedCostOfVehicle(swigCPtr, this, vehicle);
270  }
271 
272  public void setAmortizedCostFactorsOfAllVehicles(long linear_cost_factor, long quadratic_cost_factor) {
273  mainJNI.RoutingModel_setAmortizedCostFactorsOfAllVehicles(swigCPtr, this, linear_cost_factor, quadratic_cost_factor);
274  }
275 
276  public void setAmortizedCostFactorsOfVehicle(long linear_cost_factor, long quadratic_cost_factor, int vehicle) {
277  mainJNI.RoutingModel_setAmortizedCostFactorsOfVehicle(swigCPtr, this, linear_cost_factor, quadratic_cost_factor, vehicle);
278  }
279 
281  return mainJNI.RoutingModel_getAmortizedLinearCostFactorOfVehicles(swigCPtr, this);
282 }
283 
285  return mainJNI.RoutingModel_getAmortizedQuadraticCostFactorOfVehicles(swigCPtr, this);
286 }
287 
288  public void ConsiderEmptyRouteCostsForVehicle(boolean consider_costs, int vehicle) {
289  mainJNI.RoutingModel_ConsiderEmptyRouteCostsForVehicle(swigCPtr, this, consider_costs, vehicle);
290  }
291 
292  public boolean AreEmptyRouteCostsConsideredForVehicle(int vehicle) {
293  return mainJNI.RoutingModel_AreEmptyRouteCostsConsideredForVehicle(swigCPtr, this, vehicle);
294  }
295 
296  public void setFirstSolutionEvaluator(LongBinaryOperator evaluator) {
297  mainJNI.RoutingModel_setFirstSolutionEvaluator(swigCPtr, this, evaluator);
298  }
299 
300  public void addLocalSearchOperator(LocalSearchOperator ls_operator) {
301  mainJNI.RoutingModel_addLocalSearchOperator(swigCPtr, this, LocalSearchOperator.getCPtr(ls_operator), ls_operator);
302  }
303 
304  public void addSearchMonitor(SearchMonitor monitor) {
305  mainJNI.RoutingModel_addSearchMonitor(swigCPtr, this, SearchMonitor.getCPtr(monitor), monitor);
306  }
307 
308  public void addAtSolutionCallback(Runnable callback) {
309  mainJNI.RoutingModel_addAtSolutionCallback(swigCPtr, this, callback);
310  }
311 
313  mainJNI.RoutingModel_addVariableMinimizedByFinalizer(swigCPtr, this, IntVar.getCPtr(var), var);
314  }
315 
317  mainJNI.RoutingModel_addVariableMaximizedByFinalizer(swigCPtr, this, IntVar.getCPtr(var), var);
318  }
319 
320  public void AddWeightedVariableMinimizedByFinalizer(IntVar var, long cost) {
321  mainJNI.RoutingModel_AddWeightedVariableMinimizedByFinalizer(swigCPtr, this, IntVar.getCPtr(var), var, cost);
322  }
323 
324  public void AddVariableTargetToFinalizer(IntVar var, long target) {
325  mainJNI.RoutingModel_AddVariableTargetToFinalizer(swigCPtr, this, IntVar.getCPtr(var), var, target);
326  }
327 
328  public void closeModel() {
329  mainJNI.RoutingModel_closeModel(swigCPtr, this);
330  }
331 
333  mainJNI.RoutingModel_closeModelWithParameters(swigCPtr, this, search_parameters.toByteArray());
334  }
335 
336  public Assignment solve(Assignment assignment) {
337  long cPtr = mainJNI.RoutingModel_solve__SWIG_0(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
338  return (cPtr == 0) ? null : new Assignment(cPtr, false);
339  }
340 
341  public Assignment solve() {
342  long cPtr = mainJNI.RoutingModel_solve__SWIG_1(swigCPtr, this);
343  return (cPtr == 0) ? null : new Assignment(cPtr, false);
344  }
345 
347  long cPtr = mainJNI.RoutingModel_solveWithParameters(swigCPtr, this, search_parameters.toByteArray());
348  return (cPtr == 0) ? null : new Assignment(cPtr, false);
349  }
350 
352  long cPtr = mainJNI.RoutingModel_solveFromAssignmentWithParameters(swigCPtr, this, Assignment.getCPtr(assignment), assignment, search_parameters.toByteArray());
353  return (cPtr == 0) ? null : new Assignment(cPtr, false);
354  }
355 
356  public void setAssignmentFromOtherModelAssignment(Assignment target_assignment, RoutingModel source_model, Assignment source_assignment) {
357  mainJNI.RoutingModel_setAssignmentFromOtherModelAssignment(swigCPtr, this, Assignment.getCPtr(target_assignment), target_assignment, RoutingModel.getCPtr(source_model), source_model, Assignment.getCPtr(source_assignment), source_assignment);
358  }
359 
360  public long computeLowerBound() {
361  return mainJNI.RoutingModel_computeLowerBound(swigCPtr, this);
362  }
363 
364  public int status() {
365  return mainJNI.RoutingModel_status(swigCPtr, this);
366  }
367 
368  public IntVar applyLocks(long[] locks) {
369  long cPtr = mainJNI.RoutingModel_applyLocks(swigCPtr, this, locks);
370  return (cPtr == 0) ? null : new IntVar(cPtr, false);
371  }
372 
373  public boolean applyLocksToAllVehicles(long[][] locks, boolean close_routes) {
374  return mainJNI.RoutingModel_applyLocksToAllVehicles(swigCPtr, this, locks, close_routes);
375  }
376 
378  long cPtr = mainJNI.RoutingModel_preAssignment(swigCPtr, this);
379  return (cPtr == 0) ? null : new Assignment(cPtr, false);
380  }
381 
383  long cPtr = mainJNI.RoutingModel_mutablePreAssignment(swigCPtr, this);
384  return (cPtr == 0) ? null : new Assignment(cPtr, false);
385  }
386 
387  public boolean writeAssignment(String file_name) {
388  return mainJNI.RoutingModel_writeAssignment(swigCPtr, this, file_name);
389  }
390 
391  public Assignment readAssignment(String file_name) {
392  long cPtr = mainJNI.RoutingModel_readAssignment(swigCPtr, this, file_name);
393  return (cPtr == 0) ? null : new Assignment(cPtr, false);
394  }
395 
397  long cPtr = mainJNI.RoutingModel_restoreAssignment(swigCPtr, this, Assignment.getCPtr(solution), solution);
398  return (cPtr == 0) ? null : new Assignment(cPtr, false);
399  }
400 
401  public Assignment readAssignmentFromRoutes(long[][] routes, boolean ignore_inactive_indices) {
402  long cPtr = mainJNI.RoutingModel_readAssignmentFromRoutes(swigCPtr, this, routes, ignore_inactive_indices);
403  return (cPtr == 0) ? null : new Assignment(cPtr, false);
404  }
405 
406  public boolean routesToAssignment(long[][] routes, boolean ignore_inactive_indices, boolean close_routes, Assignment assignment) {
407  return mainJNI.RoutingModel_routesToAssignment(swigCPtr, this, routes, ignore_inactive_indices, close_routes, Assignment.getCPtr(assignment), assignment);
408  }
409 
410  public void assignmentToRoutes(Assignment assignment, long[][] routes) {
411  mainJNI.RoutingModel_assignmentToRoutes(swigCPtr, this, Assignment.getCPtr(assignment), assignment, routes);
412  }
413 
415  long cPtr = mainJNI.RoutingModel_compactAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
416  return (cPtr == 0) ? null : new Assignment(cPtr, false);
417  }
418 
420  long cPtr = mainJNI.RoutingModel_compactAndCheckAssignment(swigCPtr, this, Assignment.getCPtr(assignment), assignment);
421  return (cPtr == 0) ? null : new Assignment(cPtr, false);
422  }
423 
424  public void addToAssignment(IntVar var) {
425  mainJNI.RoutingModel_addToAssignment(swigCPtr, this, IntVar.getCPtr(var), var);
426  }
427 
428  public void addIntervalToAssignment(IntervalVar interval) {
429  mainJNI.RoutingModel_addIntervalToAssignment(swigCPtr, this, IntervalVar.getCPtr(interval), interval);
430  }
431 
433  mainJNI.RoutingModel_addLocalSearchFilter(swigCPtr, this, LocalSearchFilter.getCPtr(filter), filter);
434  }
435 
436  public long start(int vehicle) {
437  return mainJNI.RoutingModel_start(swigCPtr, this, vehicle);
438  }
439 
440  public long end(int vehicle) {
441  return mainJNI.RoutingModel_end(swigCPtr, this, vehicle);
442  }
443 
444  public boolean isStart(long index) {
445  return mainJNI.RoutingModel_isStart(swigCPtr, this, index);
446  }
447 
448  public boolean isEnd(long index) {
449  return mainJNI.RoutingModel_isEnd(swigCPtr, this, index);
450  }
451 
452  public int VehicleIndex(int index) {
453  return mainJNI.RoutingModel_VehicleIndex(swigCPtr, this, index);
454  }
455 
456  public long next(Assignment assignment, long index) {
457  return mainJNI.RoutingModel_next(swigCPtr, this, Assignment.getCPtr(assignment), assignment, index);
458  }
459 
460  public boolean isVehicleUsed(Assignment assignment, int vehicle) {
461  return mainJNI.RoutingModel_isVehicleUsed(swigCPtr, this, Assignment.getCPtr(assignment), assignment, vehicle);
462  }
463 
464  public IntVar[] nexts() {
465  return mainJNI.RoutingModel_nexts(swigCPtr, this);
466 }
467 
468  public IntVar[] vehicleVars() {
469  return mainJNI.RoutingModel_vehicleVars(swigCPtr, this);
470 }
471 
472  public IntVar nextVar(long index) {
473  long cPtr = mainJNI.RoutingModel_nextVar(swigCPtr, this, index);
474  return (cPtr == 0) ? null : new IntVar(cPtr, false);
475  }
476 
477  public IntVar activeVar(long index) {
478  long cPtr = mainJNI.RoutingModel_activeVar(swigCPtr, this, index);
479  return (cPtr == 0) ? null : new IntVar(cPtr, false);
480  }
481 
482  public IntVar VehicleCostsConsideredVar(int vehicle) {
483  long cPtr = mainJNI.RoutingModel_VehicleCostsConsideredVar(swigCPtr, this, vehicle);
484  return (cPtr == 0) ? null : new IntVar(cPtr, false);
485  }
486 
487  public IntVar vehicleVar(long index) {
488  long cPtr = mainJNI.RoutingModel_vehicleVar(swigCPtr, this, index);
489  return (cPtr == 0) ? null : new IntVar(cPtr, false);
490  }
491 
492  public IntVar costVar() {
493  long cPtr = mainJNI.RoutingModel_costVar(swigCPtr, this);
494  return (cPtr == 0) ? null : new IntVar(cPtr, false);
495  }
496 
497  public long getArcCostForVehicle(long from_index, long to_index, long vehicle) {
498  return mainJNI.RoutingModel_getArcCostForVehicle(swigCPtr, this, from_index, to_index, vehicle);
499  }
500 
502  return mainJNI.RoutingModel_costsAreHomogeneousAcrossVehicles(swigCPtr, this);
503  }
504 
505  public long getHomogeneousCost(long from_index, long to_index) {
506  return mainJNI.RoutingModel_getHomogeneousCost(swigCPtr, this, from_index, to_index);
507  }
508 
509  public long getArcCostForFirstSolution(long from_index, long to_index) {
510  return mainJNI.RoutingModel_getArcCostForFirstSolution(swigCPtr, this, from_index, to_index);
511  }
512 
513  public long getArcCostForClass(long from_index, long to_index, long cost_class_index) {
514  return mainJNI.RoutingModel_getArcCostForClass(swigCPtr, this, from_index, to_index, cost_class_index);
515  }
516 
517  public int getCostClassIndexOfVehicle(long vehicle) {
518  return mainJNI.RoutingModel_getCostClassIndexOfVehicle(swigCPtr, this, vehicle);
519 }
520 
521  public boolean hasVehicleWithCostClassIndex(int cost_class_index) {
522  return mainJNI.RoutingModel_hasVehicleWithCostClassIndex(swigCPtr, this, cost_class_index);
523  }
524 
525  public int getCostClassesCount() {
526  return mainJNI.RoutingModel_getCostClassesCount(swigCPtr, this);
527  }
528 
530  return mainJNI.RoutingModel_getNonZeroCostClassesCount(swigCPtr, this);
531  }
532 
533  public int getVehicleClassIndexOfVehicle(long vehicle) {
534  return mainJNI.RoutingModel_getVehicleClassIndexOfVehicle(swigCPtr, this, vehicle);
535 }
536 
537  public int getVehicleClassesCount() {
538  return mainJNI.RoutingModel_getVehicleClassesCount(swigCPtr, this);
539  }
540 
541  public int[] getSameVehicleIndicesOfIndex(int node) {
542  return mainJNI.RoutingModel_getSameVehicleIndicesOfIndex(swigCPtr, this, node);
543 }
544 
545  public boolean arcIsMoreConstrainedThanArc(long from, long to1, long to2) {
546  return mainJNI.RoutingModel_arcIsMoreConstrainedThanArc(swigCPtr, this, from, to1, to2);
547  }
548 
549  public String debugOutputAssignment(Assignment solution_assignment, String dimension_to_print) {
550  return mainJNI.RoutingModel_debugOutputAssignment(swigCPtr, this, Assignment.getCPtr(solution_assignment), solution_assignment, dimension_to_print);
551  }
552 
553  public Solver solver() {
554  long cPtr = mainJNI.RoutingModel_solver(swigCPtr, this);
555  return (cPtr == 0) ? null : new Solver(cPtr, false);
556  }
557 
558  public boolean checkLimit() {
559  return mainJNI.RoutingModel_checkLimit(swigCPtr, this);
560  }
561 
562  public int nodes() {
563  return mainJNI.RoutingModel_nodes(swigCPtr, this);
564  }
565 
566  public int vehicles() {
567  return mainJNI.RoutingModel_vehicles(swigCPtr, this);
568  }
569 
570  public long size() {
571  return mainJNI.RoutingModel_size(swigCPtr, this);
572  }
573 
575  return mainJNI.RoutingModel_getNumberOfDecisionsInFirstSolution(swigCPtr, this, search_parameters.toByteArray());
576  }
577 
579  return mainJNI.RoutingModel_getNumberOfRejectsInFirstSolution(swigCPtr, this, search_parameters.toByteArray());
580  }
581 
582  public boolean isMatchingModel() {
583  return mainJNI.RoutingModel_isMatchingModel(swigCPtr, this);
584  }
585 
586  public DecisionBuilder makeGuidedSlackFinalizer(RoutingDimension dimension, LongUnaryOperator initializer) {
587  long cPtr = mainJNI.RoutingModel_makeGuidedSlackFinalizer(swigCPtr, this, RoutingDimension.getCPtr(dimension), dimension, initializer);
588  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
589  }
590 
592  long cPtr = mainJNI.RoutingModel_makeSelfDependentDimensionFinalizer(swigCPtr, this, RoutingDimension.getCPtr(dimension), dimension);
593  return (cPtr == 0) ? null : new DecisionBuilder(cPtr, false);
594  }
595 
596  public void addMatrixDimension(long[][] values, long capacity, boolean fix_start_cumul_to_zero, String name) {
597  mainJNI.RoutingModel_addMatrixDimension(swigCPtr, this, values, capacity, fix_start_cumul_to_zero, name);
598  }
599 
600  // Status
601  public final static int ROUTING_NOT_SOLVED = mainJNI.RoutingModel_ROUTING_NOT_SOLVED_get();
602  public final static int ROUTING_SUCCESS = mainJNI.RoutingModel_ROUTING_SUCCESS_get();
603  public final static int ROUTING_FAIL = mainJNI.RoutingModel_ROUTING_FAIL_get();
604  public final static int ROUTING_FAIL_TIMEOUT = mainJNI.RoutingModel_ROUTING_FAIL_TIMEOUT_get();
605  public final static int ROUTING_INVALID = mainJNI.RoutingModel_ROUTING_INVALID_get();
606 
607  // PickupAndDeliveryPolicy
608  public final static int PICKUP_AND_DELIVERY_NO_ORDER = mainJNI.RoutingModel_PICKUP_AND_DELIVERY_NO_ORDER_get();
609  public final static int PICKUP_AND_DELIVERY_LIFO = mainJNI.RoutingModel_PICKUP_AND_DELIVERY_LIFO_get();
610  public final static int PICKUP_AND_DELIVERY_FIFO = mainJNI.RoutingModel_PICKUP_AND_DELIVERY_FIFO_get();
611 
612  // VisitTypePolicy
613  public final static int TYPE_ADDED_TO_VEHICLE = mainJNI.RoutingModel_TYPE_ADDED_TO_VEHICLE_get();
614  public final static int ADDED_TYPE_REMOVED_FROM_VEHICLE = mainJNI.RoutingModel_ADDED_TYPE_REMOVED_FROM_VEHICLE_get();
615  public final static int TYPE_ON_VEHICLE_UP_TO_VISIT = mainJNI.RoutingModel_TYPE_ON_VEHICLE_UP_TO_VISIT_get();
616  public final static int TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED = mainJNI.RoutingModel_TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED_get();
617 
618 }
static final int ADDED_TYPE_REMOVED_FROM_VEHICLE
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_std__vectorT_absl__flat_hash_setT_int_t_t GetRequiredTypeAlternativesWhenAddingType(int type)
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 setVisitType(long index, int type, int type_policy)
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)
int GetVisitTypePolicy(long index)
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)
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)
SWIGTYPE_p_std__vectorT_absl__flat_hash_setT_int_t_t GetRequiredTypeAlternativesWhenRemovingType(int type)
int getNumOfSingletonNodes()
Definition: Assignment.java:11
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)
static final int TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED
long[] getAmortizedQuadraticCostFactorOfVehicles()
Assignment restoreAssignment(Assignment solution)
IntVar vehicleVar(long index)
boolean addVectorDimension(long[] values, long capacity, boolean fix_start_cumul_to_zero, String name)
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)
long getHomogeneousCost(long from_index, long to_index)
RoutingDimension getDimensionOrDie(String dimension_name)
void closeModel()
void AddRequiredTypeAlternativesWhenAddingType(int dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t required_type_alternatives)
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)
static final int TYPE_ADDED_TO_VEHICLE
static final int TYPE_ON_VEHICLE_UP_TO_VISIT
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)
void AddRequiredTypeAlternativesWhenRemovingType(int dependent_type, SWIGTYPE_p_absl__flat_hash_setT_int_t required_type_alternatives)
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)