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;
31 @SuppressWarnings(
"deprecation")
36 public synchronized void delete() {
40 mainJNI.delete_RoutingModel(swigCPtr);
47 return mainJNI.RoutingModel_kNoPenalty_get();
51 return mainJNI.RoutingModel_kNoDisjunction_get();
55 return mainJNI.RoutingModel_kNoDimension_get();
63 this(mainJNI.new_RoutingModel__SWIG_1(
RoutingIndexManager.
getCPtr(index_manager), index_manager, parameters.toByteArray()),
true);
67 return mainJNI.RoutingModel_registerUnaryTransitCallback(swigCPtr,
this, callback);
71 return mainJNI.RoutingModel_registerTransitCallback(swigCPtr,
this, callback);
75 return mainJNI.RoutingModel_registerPositiveTransitCallback(swigCPtr,
this, callback);
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);
83 return mainJNI.RoutingModel_addDimensionWithVehicleTransits(swigCPtr,
this, evaluator_indices, slack_max, capacity, fix_start_cumul_to_zero, name);
87 return mainJNI.RoutingModel_addDimensionWithVehicleCapacity(swigCPtr,
this, evaluator_index, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
91 return mainJNI.RoutingModel_addDimensionWithVehicleTransitAndCapacity(swigCPtr,
this, evaluator_indices, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
95 return mainJNI.RoutingModel_addConstantDimensionWithSlack(swigCPtr,
this, value, capacity, slack_max, fix_start_cumul_to_zero, name);
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);
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);
107 long cPtr = mainJNI.RoutingModel_MakePathSpansAndTotalSlacks(swigCPtr,
this,
RoutingDimension.
getCPtr(dimension), dimension, spans, total_slacks);
108 return (cPtr == 0) ? null :
new Constraint(cPtr,
false);
112 return new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(mainJNI.RoutingModel_GetDimensionsForGlobalCumulOptimizers(swigCPtr,
this),
false);
116 return new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(mainJNI.RoutingModel_GetDimensionsForLocalCumulOptimizers(swigCPtr,
this),
false);
120 return mainJNI.RoutingModel_hasDimension(swigCPtr,
this, dimension_name);
124 return new RoutingDimension(mainJNI.RoutingModel_getDimensionOrDie(swigCPtr,
this, dimension_name),
false);
128 long cPtr = mainJNI.RoutingModel_getMutableDimension(swigCPtr,
this, dimension_name);
133 mainJNI.RoutingModel_setPrimaryConstrainedDimension(swigCPtr,
this, dimension_name);
137 return mainJNI.RoutingModel_getPrimaryConstrainedDimension(swigCPtr,
this);
141 return mainJNI.RoutingModel_addDisjunction__SWIG_0(swigCPtr,
this, indices, penalty, max_cardinality);
145 return mainJNI.RoutingModel_addDisjunction__SWIG_1(swigCPtr,
this, indices, penalty);
149 return mainJNI.RoutingModel_addDisjunction__SWIG_2(swigCPtr,
this, indices);
153 return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_0(swigCPtr,
this, index);
157 return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_1(swigCPtr,
this, index);
161 return mainJNI.RoutingModel_getDisjunctionPenalty(swigCPtr,
this, index);
165 return mainJNI.RoutingModel_getDisjunctionMaxCardinality(swigCPtr,
this, index);
169 return mainJNI.RoutingModel_getNumberOfDisjunctions(swigCPtr,
this);
173 mainJNI.RoutingModel_ignoreDisjunctionsAlreadyForcedToZero(swigCPtr,
this);
177 mainJNI.RoutingModel_addSoftSameVehicleConstraint(swigCPtr,
this, indices, cost);
181 mainJNI.RoutingModel_setAllowedVehiclesForIndex(swigCPtr,
this,
vehicles, index);
185 return mainJNI.RoutingModel_isVehicleAllowedForIndex(swigCPtr,
this, vehicle, index);
189 mainJNI.RoutingModel_addPickupAndDelivery(swigCPtr,
this, pickup, delivery);
193 mainJNI.RoutingModel_addPickupAndDeliverySets(swigCPtr,
this, pickup_disjunction, delivery_disjunction);
197 mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfAllVehicles(swigCPtr,
this, policy);
201 mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfVehicle(swigCPtr,
this, policy, vehicle);
205 return mainJNI.RoutingModel_getPickupAndDeliveryPolicyOfVehicle(swigCPtr,
this, vehicle);
209 return mainJNI.RoutingModel_getNumOfSingletonNodes(swigCPtr,
this);
213 mainJNI.RoutingModel_setVisitType(swigCPtr,
this, index, type);
217 return mainJNI.RoutingModel_getVisitType(swigCPtr,
this, index);
221 return mainJNI.RoutingModel_getNumberOfVisitTypes(swigCPtr,
this);
225 return mainJNI.RoutingModel_unperformedPenalty(swigCPtr,
this, var_index);
229 return mainJNI.RoutingModel_unperformedPenaltyOrValue(swigCPtr,
this, default_value, var_index);
233 return mainJNI.RoutingModel_getDepot(swigCPtr,
this);
237 mainJNI.RoutingModel_setArcCostEvaluatorOfAllVehicles(swigCPtr,
this, evaluator_index);
241 mainJNI.RoutingModel_setArcCostEvaluatorOfVehicle(swigCPtr,
this, evaluator_index, vehicle);
245 mainJNI.RoutingModel_setFixedCostOfAllVehicles(swigCPtr,
this, cost);
249 mainJNI.RoutingModel_setFixedCostOfVehicle(swigCPtr,
this, cost, vehicle);
253 return mainJNI.RoutingModel_getFixedCostOfVehicle(swigCPtr,
this, vehicle);
257 mainJNI.RoutingModel_setAmortizedCostFactorsOfAllVehicles(swigCPtr,
this, linear_cost_factor, quadratic_cost_factor);
261 mainJNI.RoutingModel_setAmortizedCostFactorsOfVehicle(swigCPtr,
this, linear_cost_factor, quadratic_cost_factor, vehicle);
265 return mainJNI.RoutingModel_getAmortizedLinearCostFactorOfVehicles(swigCPtr,
this);
269 return mainJNI.RoutingModel_getAmortizedQuadraticCostFactorOfVehicles(swigCPtr,
this);
273 mainJNI.RoutingModel_ConsiderEmptyRouteCostsForVehicle(swigCPtr,
this, consider_costs, vehicle);
277 return mainJNI.RoutingModel_AreEmptyRouteCostsConsideredForVehicle(swigCPtr,
this, vehicle);
281 mainJNI.RoutingModel_setFirstSolutionEvaluator(swigCPtr,
this, evaluator);
293 mainJNI.RoutingModel_addAtSolutionCallback(swigCPtr,
this, callback);
297 mainJNI.RoutingModel_addVariableMinimizedByFinalizer(swigCPtr,
this,
IntVar.
getCPtr(var), var);
301 mainJNI.RoutingModel_addVariableMaximizedByFinalizer(swigCPtr,
this,
IntVar.
getCPtr(var), var);
305 mainJNI.RoutingModel_AddWeightedVariableMinimizedByFinalizer(swigCPtr,
this,
IntVar.
getCPtr(var), var, cost);
309 mainJNI.RoutingModel_AddVariableTargetToFinalizer(swigCPtr,
this,
IntVar.
getCPtr(var), var, target);
313 mainJNI.RoutingModel_closeModel(swigCPtr,
this);
317 mainJNI.RoutingModel_closeModelWithParameters(swigCPtr,
this, search_parameters.toByteArray());
321 long cPtr = mainJNI.RoutingModel_solve__SWIG_0(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment);
322 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
326 long cPtr = mainJNI.RoutingModel_solve__SWIG_1(swigCPtr,
this);
327 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
331 long cPtr = mainJNI.RoutingModel_solveWithParameters(swigCPtr,
this, search_parameters.toByteArray());
332 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
336 long cPtr = mainJNI.RoutingModel_solveFromAssignmentWithParameters(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment, search_parameters.toByteArray());
337 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
345 return mainJNI.RoutingModel_computeLowerBound(swigCPtr,
this);
349 return mainJNI.RoutingModel_status(swigCPtr,
this);
353 long cPtr = mainJNI.RoutingModel_applyLocks(swigCPtr,
this, locks);
354 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
358 return mainJNI.RoutingModel_applyLocksToAllVehicles(swigCPtr,
this, locks, close_routes);
362 long cPtr = mainJNI.RoutingModel_preAssignment(swigCPtr,
this);
363 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
367 long cPtr = mainJNI.RoutingModel_mutablePreAssignment(swigCPtr,
this);
368 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
372 return mainJNI.RoutingModel_writeAssignment(swigCPtr,
this, file_name);
376 long cPtr = mainJNI.RoutingModel_readAssignment(swigCPtr,
this, file_name);
377 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
381 long cPtr = mainJNI.RoutingModel_restoreAssignment(swigCPtr,
this,
Assignment.
getCPtr(solution), solution);
382 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
386 long cPtr = mainJNI.RoutingModel_readAssignmentFromRoutes(swigCPtr,
this, routes, ignore_inactive_indices);
387 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
391 return mainJNI.RoutingModel_routesToAssignment(swigCPtr,
this, routes, ignore_inactive_indices, close_routes,
Assignment.
getCPtr(assignment), assignment);
395 mainJNI.RoutingModel_assignmentToRoutes(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment, routes);
399 long cPtr = mainJNI.RoutingModel_compactAssignment(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment);
400 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
404 long cPtr = mainJNI.RoutingModel_compactAndCheckAssignment(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment);
405 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
409 mainJNI.RoutingModel_addToAssignment(swigCPtr,
this,
IntVar.
getCPtr(var), var);
413 mainJNI.RoutingModel_addIntervalToAssignment(swigCPtr,
this,
IntervalVar.
getCPtr(interval), interval);
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);
426 return mainJNI.RoutingModel_start(swigCPtr,
this, vehicle);
429 public long end(
int vehicle) {
430 return mainJNI.RoutingModel_end(swigCPtr,
this, vehicle);
434 return mainJNI.RoutingModel_isStart(swigCPtr,
this, index);
438 return mainJNI.RoutingModel_isEnd(swigCPtr,
this, index);
442 return mainJNI.RoutingModel_VehicleIndex(swigCPtr,
this, index);
446 return mainJNI.RoutingModel_next(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment, index);
450 return mainJNI.RoutingModel_isVehicleUsed(swigCPtr,
this,
Assignment.
getCPtr(assignment), assignment, vehicle);
454 return mainJNI.RoutingModel_nexts(swigCPtr,
this);
458 return mainJNI.RoutingModel_vehicleVars(swigCPtr,
this);
462 long cPtr = mainJNI.RoutingModel_nextVar(swigCPtr,
this, index);
463 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
467 long cPtr = mainJNI.RoutingModel_activeVar(swigCPtr,
this, index);
468 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
472 long cPtr = mainJNI.RoutingModel_VehicleCostsConsideredVar(swigCPtr,
this, vehicle);
473 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
477 long cPtr = mainJNI.RoutingModel_vehicleVar(swigCPtr,
this, index);
478 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
482 long cPtr = mainJNI.RoutingModel_costVar(swigCPtr,
this);
483 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
487 return mainJNI.RoutingModel_getArcCostForVehicle(swigCPtr,
this, from_index, to_index, vehicle);
491 return mainJNI.RoutingModel_costsAreHomogeneousAcrossVehicles(swigCPtr,
this);
495 return mainJNI.RoutingModel_getHomogeneousCost(swigCPtr,
this, from_index, to_index);
499 return mainJNI.RoutingModel_getArcCostForFirstSolution(swigCPtr,
this, from_index, to_index);
503 return mainJNI.RoutingModel_getArcCostForClass(swigCPtr,
this, from_index, to_index, cost_class_index);
507 return mainJNI.RoutingModel_getCostClassIndexOfVehicle(swigCPtr,
this, vehicle);
511 return mainJNI.RoutingModel_hasVehicleWithCostClassIndex(swigCPtr,
this, cost_class_index);
515 return mainJNI.RoutingModel_getCostClassesCount(swigCPtr,
this);
519 return mainJNI.RoutingModel_getNonZeroCostClassesCount(swigCPtr,
this);
523 return mainJNI.RoutingModel_getVehicleClassIndexOfVehicle(swigCPtr,
this, vehicle);
527 return mainJNI.RoutingModel_getVehicleClassesCount(swigCPtr,
this);
531 return mainJNI.RoutingModel_getSameVehicleIndicesOfIndex(swigCPtr,
this, node);
535 return mainJNI.RoutingModel_arcIsMoreConstrainedThanArc(swigCPtr,
this, from, to1, to2);
539 return mainJNI.RoutingModel_debugOutputAssignment(swigCPtr,
this,
Assignment.
getCPtr(solution_assignment), solution_assignment, dimension_to_print);
543 long cPtr = mainJNI.RoutingModel_solver(swigCPtr,
this);
544 return (cPtr == 0) ? null :
new Solver(cPtr,
false);
548 return mainJNI.RoutingModel_checkLimit(swigCPtr,
this);
552 return new SWIGTYPE_p_absl__Duration(mainJNI.RoutingModel_RemainingTime(swigCPtr,
this),
true);
556 return mainJNI.RoutingModel_nodes(swigCPtr,
this);
560 return mainJNI.RoutingModel_vehicles(swigCPtr,
this);
564 return mainJNI.RoutingModel_size(swigCPtr,
this);
568 return mainJNI.RoutingModel_getNumberOfDecisionsInFirstSolution(swigCPtr,
this, search_parameters.toByteArray());
572 return mainJNI.RoutingModel_getNumberOfRejectsInFirstSolution(swigCPtr,
this, search_parameters.toByteArray());
576 return mainJNI.RoutingModel_isMatchingModel(swigCPtr,
this);
580 long cPtr = mainJNI.RoutingModel_makeGuidedSlackFinalizer(swigCPtr,
this,
RoutingDimension.
getCPtr(dimension), dimension, initializer);
585 long cPtr = mainJNI.RoutingModel_makeSelfDependentDimensionFinalizer(swigCPtr,
this,
RoutingDimension.
getCPtr(dimension), dimension);
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);
596 public final static int ROUTING_FAIL = mainJNI.RoutingModel_ROUTING_FAIL_get();