9 package com.google.ortools.constraintsolver;
13 import java.util.function.LongBinaryOperator;
16 import java.util.function.LongUnaryOperator;
19 private transient long swigCPtr;
28 return (obj ==
null) ? 0 : obj.swigCPtr;
35 public synchronized void delete() {
39 mainJNI.delete_RoutingModel(swigCPtr);
46 return mainJNI.RoutingModel_kNoPenalty_get();
50 return mainJNI.RoutingModel_kNoDisjunction_get();
54 return mainJNI.RoutingModel_kNoDimension_get();
62 this(mainJNI.new_RoutingModel__SWIG_1(
RoutingIndexManager.
getCPtr(index_manager), index_manager, parameters.toByteArray()),
true);
66 return mainJNI.RoutingModel_registerUnaryTransitCallback(swigCPtr,
this, callback);
70 return mainJNI.RoutingModel_registerTransitCallback(swigCPtr,
this, callback);
74 return mainJNI.RoutingModel_registerPositiveTransitCallback(swigCPtr,
this, callback);
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);
82 return mainJNI.RoutingModel_addDimensionWithVehicleTransits(swigCPtr,
this, evaluator_indices, slack_max, capacity, fix_start_cumul_to_zero, name);
86 return mainJNI.RoutingModel_addDimensionWithVehicleCapacity(swigCPtr,
this, evaluator_index, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
90 return mainJNI.RoutingModel_addDimensionWithVehicleTransitAndCapacity(swigCPtr,
this, evaluator_indices, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
94 return mainJNI.RoutingModel_addConstantDimensionWithSlack(swigCPtr,
this, value, capacity, slack_max, fix_start_cumul_to_zero, name);
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);
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);
106 long cPtr = mainJNI.RoutingModel_MakePathSpansAndTotalSlacks(swigCPtr,
this,
RoutingDimension.
getCPtr(dimension), dimension, spans, total_slacks);
107 return (cPtr == 0) ? null :
new Constraint(cPtr,
false);
111 return new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(mainJNI.RoutingModel_GetDimensionsForGlobalCumulOptimizers(swigCPtr,
this),
false);
115 return new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(mainJNI.RoutingModel_GetDimensionsForLocalCumulOptimizers(swigCPtr,
this),
false);
119 return mainJNI.RoutingModel_hasDimension(swigCPtr,
this, dimension_name);
123 return new RoutingDimension(mainJNI.RoutingModel_getDimensionOrDie(swigCPtr,
this, dimension_name),
false);
127 long cPtr = mainJNI.RoutingModel_getMutableDimension(swigCPtr,
this, dimension_name);
132 mainJNI.RoutingModel_setPrimaryConstrainedDimension(swigCPtr,
this, dimension_name);
136 return mainJNI.RoutingModel_getPrimaryConstrainedDimension(swigCPtr,
this);
140 return mainJNI.RoutingModel_addDisjunction__SWIG_0(swigCPtr,
this, indices, penalty, max_cardinality);
144 return mainJNI.RoutingModel_addDisjunction__SWIG_1(swigCPtr,
this, indices, penalty);
148 return mainJNI.RoutingModel_addDisjunction__SWIG_2(swigCPtr,
this, indices);
152 return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_0(swigCPtr,
this, index);
156 return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_1(swigCPtr,
this, index);
160 return mainJNI.RoutingModel_getDisjunctionPenalty(swigCPtr,
this, index);
164 return mainJNI.RoutingModel_getDisjunctionMaxCardinality(swigCPtr,
this, index);
168 return mainJNI.RoutingModel_getNumberOfDisjunctions(swigCPtr,
this);
172 mainJNI.RoutingModel_ignoreDisjunctionsAlreadyForcedToZero(swigCPtr,
this);
176 mainJNI.RoutingModel_addSoftSameVehicleConstraint(swigCPtr,
this, indices, cost);
180 mainJNI.RoutingModel_setAllowedVehiclesForIndex(swigCPtr,
this,
vehicles, index);
184 return mainJNI.RoutingModel_isVehicleAllowedForIndex(swigCPtr,
this, vehicle, index);
188 mainJNI.RoutingModel_addPickupAndDelivery(swigCPtr,
this, pickup, delivery);
192 mainJNI.RoutingModel_addPickupAndDeliverySets(swigCPtr,
this, pickup_disjunction, delivery_disjunction);
196 mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfAllVehicles(swigCPtr,
this, policy);
200 mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfVehicle(swigCPtr,
this, policy, vehicle);
204 return mainJNI.RoutingModel_getPickupAndDeliveryPolicyOfVehicle(swigCPtr,
this, vehicle);
208 return mainJNI.RoutingModel_getNumOfSingletonNodes(swigCPtr,
this);
212 mainJNI.RoutingModel_setVisitType(swigCPtr,
this, index, type);
216 return mainJNI.RoutingModel_getVisitType(swigCPtr,
this, index);
220 return mainJNI.RoutingModel_getNumberOfVisitTypes(swigCPtr,
this);
224 return mainJNI.RoutingModel_unperformedPenalty(swigCPtr,
this, var_index);
228 return mainJNI.RoutingModel_unperformedPenaltyOrValue(swigCPtr,
this, default_value, var_index);
232 return mainJNI.RoutingModel_getDepot(swigCPtr,
this);
236 mainJNI.RoutingModel_setArcCostEvaluatorOfAllVehicles(swigCPtr,
this, evaluator_index);
240 mainJNI.RoutingModel_setArcCostEvaluatorOfVehicle(swigCPtr,
this, evaluator_index, vehicle);
244 mainJNI.RoutingModel_setFixedCostOfAllVehicles(swigCPtr,
this, cost);
248 mainJNI.RoutingModel_setFixedCostOfVehicle(swigCPtr,
this, cost, vehicle);
252 return mainJNI.RoutingModel_getFixedCostOfVehicle(swigCPtr,
this, vehicle);
256 mainJNI.RoutingModel_setAmortizedCostFactorsOfAllVehicles(swigCPtr,
this, linear_cost_factor, quadratic_cost_factor);
260 mainJNI.RoutingModel_setAmortizedCostFactorsOfVehicle(swigCPtr,
this, linear_cost_factor, quadratic_cost_factor, vehicle);
264 return mainJNI.RoutingModel_getAmortizedLinearCostFactorOfVehicles(swigCPtr,
this);
268 return mainJNI.RoutingModel_getAmortizedQuadraticCostFactorOfVehicles(swigCPtr,
this);
272 mainJNI.RoutingModel_ConsiderEmptyRouteCostsForVehicle(swigCPtr,
this, consider_costs, vehicle);
276 return mainJNI.RoutingModel_AreEmptyRouteCostsConsideredForVehicle(swigCPtr,
this, vehicle);
280 mainJNI.RoutingModel_setFirstSolutionEvaluator(swigCPtr,
this, evaluator);
292 mainJNI.RoutingModel_addAtSolutionCallback(swigCPtr,
this, callback);
296 mainJNI.RoutingModel_addVariableMinimizedByFinalizer(swigCPtr,
this,
IntVar.
getCPtr(var), var);
300 mainJNI.RoutingModel_addVariableMaximizedByFinalizer(swigCPtr,
this,
IntVar.
getCPtr(var), var);
304 mainJNI.RoutingModel_closeModel(swigCPtr,
this);
308 mainJNI.RoutingModel_closeModelWithParameters(swigCPtr,
this, search_parameters.toByteArray());
312 long cPtr = mainJNI.RoutingModel_solve__SWIG_0(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment);
313 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
317 long cPtr = mainJNI.RoutingModel_solve__SWIG_1(swigCPtr,
this);
318 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
322 long cPtr = mainJNI.RoutingModel_solveWithParameters(swigCPtr,
this, search_parameters.toByteArray());
323 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
327 long cPtr = mainJNI.RoutingModel_solveFromAssignmentWithParameters(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment, search_parameters.toByteArray());
328 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
336 return mainJNI.RoutingModel_computeLowerBound(swigCPtr,
this);
340 return mainJNI.RoutingModel_status(swigCPtr,
this);
344 long cPtr = mainJNI.RoutingModel_applyLocks(swigCPtr,
this, locks);
345 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
349 return mainJNI.RoutingModel_applyLocksToAllVehicles(swigCPtr,
this, locks, close_routes);
353 long cPtr = mainJNI.RoutingModel_preAssignment(swigCPtr,
this);
354 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
358 long cPtr = mainJNI.RoutingModel_mutablePreAssignment(swigCPtr,
this);
359 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
363 return mainJNI.RoutingModel_writeAssignment(swigCPtr,
this, file_name);
367 long cPtr = mainJNI.RoutingModel_readAssignment(swigCPtr,
this, file_name);
368 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
372 long cPtr = mainJNI.RoutingModel_restoreAssignment(swigCPtr,
this,
Assignment.
getCPtr(solution), solution);
373 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
377 long cPtr = mainJNI.RoutingModel_readAssignmentFromRoutes(swigCPtr,
this, routes, ignore_inactive_indices);
378 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
382 return mainJNI.RoutingModel_routesToAssignment(swigCPtr,
this, routes, ignore_inactive_indices, close_routes,
Assignment.
getCPtr(assignment), assignment);
386 mainJNI.RoutingModel_assignmentToRoutes(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment, routes);
390 long cPtr = mainJNI.RoutingModel_compactAssignment(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment);
391 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
395 long cPtr = mainJNI.RoutingModel_compactAndCheckAssignment(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment);
396 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
400 mainJNI.RoutingModel_addToAssignment(swigCPtr,
this,
IntVar.
getCPtr(var), var);
404 mainJNI.RoutingModel_addIntervalToAssignment(swigCPtr,
this,
IntervalVar.
getCPtr(interval), interval);
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);
417 return mainJNI.RoutingModel_start(swigCPtr,
this, vehicle);
420 public long end(
int vehicle) {
421 return mainJNI.RoutingModel_end(swigCPtr,
this, vehicle);
425 return mainJNI.RoutingModel_isStart(swigCPtr,
this, index);
429 return mainJNI.RoutingModel_isEnd(swigCPtr,
this, index);
433 return mainJNI.RoutingModel_VehicleIndex(swigCPtr,
this, index);
437 return mainJNI.RoutingModel_next(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment, index);
441 return mainJNI.RoutingModel_isVehicleUsed(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment, vehicle);
445 return mainJNI.RoutingModel_nexts(swigCPtr,
this);
449 return mainJNI.RoutingModel_vehicleVars(swigCPtr,
this);
453 long cPtr = mainJNI.RoutingModel_nextVar(swigCPtr,
this, index);
454 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
458 long cPtr = mainJNI.RoutingModel_activeVar(swigCPtr,
this, index);
459 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
463 long cPtr = mainJNI.RoutingModel_VehicleCostsConsideredVar(swigCPtr,
this, vehicle);
464 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
468 long cPtr = mainJNI.RoutingModel_vehicleVar(swigCPtr,
this, index);
469 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
473 long cPtr = mainJNI.RoutingModel_costVar(swigCPtr,
this);
474 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
478 return mainJNI.RoutingModel_getArcCostForVehicle(swigCPtr,
this, from_index, to_index, vehicle);
482 return mainJNI.RoutingModel_costsAreHomogeneousAcrossVehicles(swigCPtr,
this);
486 return mainJNI.RoutingModel_getHomogeneousCost(swigCPtr,
this, from_index, to_index);
490 return mainJNI.RoutingModel_getArcCostForFirstSolution(swigCPtr,
this, from_index, to_index);
494 return mainJNI.RoutingModel_getArcCostForClass(swigCPtr,
this, from_index, to_index, cost_class_index);
498 return mainJNI.RoutingModel_getCostClassIndexOfVehicle(swigCPtr,
this, vehicle);
502 return mainJNI.RoutingModel_hasVehicleWithCostClassIndex(swigCPtr,
this, cost_class_index);
506 return mainJNI.RoutingModel_getCostClassesCount(swigCPtr,
this);
510 return mainJNI.RoutingModel_getNonZeroCostClassesCount(swigCPtr,
this);
514 return mainJNI.RoutingModel_getVehicleClassIndexOfVehicle(swigCPtr,
this, vehicle);
518 return mainJNI.RoutingModel_getVehicleClassesCount(swigCPtr,
this);
522 return mainJNI.RoutingModel_getSameVehicleIndicesOfIndex(swigCPtr,
this, node);
526 return mainJNI.RoutingModel_arcIsMoreConstrainedThanArc(swigCPtr,
this, from, to1, to2);
530 return mainJNI.RoutingModel_debugOutputAssignment(swigCPtr,
this,
Assignment.
getCPtr(solution_assignment), solution_assignment, dimension_to_print);
534 long cPtr = mainJNI.RoutingModel_solver(swigCPtr,
this);
535 return (cPtr == 0) ? null :
new Solver(cPtr,
false);
539 return mainJNI.RoutingModel_checkLimit(swigCPtr,
this);
543 return new SWIGTYPE_p_absl__Duration(mainJNI.RoutingModel_RemainingTime(swigCPtr,
this),
true);
547 return mainJNI.RoutingModel_nodes(swigCPtr,
this);
551 return mainJNI.RoutingModel_vehicles(swigCPtr,
this);
555 return mainJNI.RoutingModel_size(swigCPtr,
this);
559 return mainJNI.RoutingModel_getNumberOfDecisionsInFirstSolution(swigCPtr,
this, search_parameters.toByteArray());
563 return mainJNI.RoutingModel_getNumberOfRejectsInFirstSolution(swigCPtr,
this, search_parameters.toByteArray());
567 return mainJNI.RoutingModel_isMatchingModel(swigCPtr,
this);
571 long cPtr = mainJNI.RoutingModel_makeGuidedSlackFinalizer(swigCPtr,
this,
RoutingDimension.
getCPtr(dimension), dimension, initializer);
576 long cPtr = mainJNI.RoutingModel_makeSelfDependentDimensionFinalizer(swigCPtr,
this,
RoutingDimension.
getCPtr(dimension), dimension);
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);
587 public final static int ROUTING_FAIL = mainJNI.RoutingModel_ROUTING_FAIL_get();