9 package com.google.ortools.constraintsolver;
13 import java.util.function.LongBinaryOperator;
16 import java.util.function.LongUnaryOperator;
19 private transient long swigCPtr;
20 protected transient boolean swigCMemOwn;
23 swigCMemOwn = cMemoryOwn;
28 return (obj ==
null) ? 0 : obj.swigCPtr;
31 @SuppressWarnings(
"deprecation")
32 protected
void finalize() {
36 public synchronized void delete() {
40 mainJNI.delete_RoutingModel(swigCPtr);
50 return mainJNI.RoutingModel_kNoPenalty_get();
57 return mainJNI.RoutingModel_kNoDisjunction_get();
64 return mainJNI.RoutingModel_kNoDimension_get();
71 this(mainJNI.new_RoutingModel__SWIG_0(
RoutingIndexManager.getCPtr(index_manager), index_manager),
true);
75 this(mainJNI.new_RoutingModel__SWIG_1(
RoutingIndexManager.getCPtr(index_manager), index_manager, parameters.toByteArray()),
true);
82 return mainJNI.RoutingModel_registerUnaryTransitCallback(swigCPtr,
this, callback);
86 return mainJNI.RoutingModel_registerTransitCallback(swigCPtr,
this, callback);
90 return mainJNI.RoutingModel_registerPositiveTransitCallback(swigCPtr,
this, callback);
96 public boolean addDimension(
int evaluator_index,
long slack_max,
long capacity,
boolean fix_start_cumul_to_zero, String name) {
97 return mainJNI.RoutingModel_addDimension(swigCPtr,
this, evaluator_index, slack_max, capacity, fix_start_cumul_to_zero, name);
101 return mainJNI.RoutingModel_addDimensionWithVehicleTransits(swigCPtr,
this, evaluator_indices, slack_max, capacity, fix_start_cumul_to_zero, name);
105 return mainJNI.RoutingModel_addDimensionWithVehicleCapacity(swigCPtr,
this, evaluator_index, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
109 return mainJNI.RoutingModel_addDimensionWithVehicleTransitAndCapacity(swigCPtr,
this, evaluator_indices, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
116 return mainJNI.RoutingModel_addConstantDimensionWithSlack(swigCPtr,
this, value, capacity, slack_max, fix_start_cumul_to_zero, name);
120 return mainJNI.RoutingModel_addConstantDimension(swigCPtr,
this, value, capacity, fix_start_cumul_to_zero, name);
126 public boolean addVectorDimension(
long[] values,
long capacity,
boolean fix_start_cumul_to_zero, String name) {
127 return mainJNI.RoutingModel_addVectorDimension(swigCPtr,
this, values, capacity, fix_start_cumul_to_zero, name);
134 long cPtr = mainJNI.RoutingModel_MakePathSpansAndTotalSlacks(swigCPtr,
this,
RoutingDimension.getCPtr(dimension), dimension, spans, total_slacks);
135 return (cPtr == 0) ? null :
new Constraint(cPtr,
false);
142 return new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(mainJNI.RoutingModel_GetDimensionsForGlobalCumulOptimizers(swigCPtr,
this),
false);
146 return new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(mainJNI.RoutingModel_GetDimensionsForLocalCumulOptimizers(swigCPtr,
this),
false);
153 return mainJNI.RoutingModel_hasDimension(swigCPtr,
this, dimension_name);
160 return new RoutingDimension(mainJNI.RoutingModel_getDimensionOrDie(swigCPtr,
this, dimension_name),
false);
167 long cPtr = mainJNI.RoutingModel_getMutableDimension(swigCPtr,
this, dimension_name);
175 mainJNI.RoutingModel_setPrimaryConstrainedDimension(swigCPtr,
this, dimension_name);
182 return mainJNI.RoutingModel_getPrimaryConstrainedDimension(swigCPtr,
this);
189 return mainJNI.RoutingModel_addDisjunction__SWIG_0(swigCPtr,
this, indices, penalty, max_cardinality);
196 return mainJNI.RoutingModel_addDisjunction__SWIG_1(swigCPtr,
this, indices, penalty);
203 return mainJNI.RoutingModel_addDisjunction__SWIG_2(swigCPtr,
this, indices);
210 return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_0(swigCPtr,
this, index);
217 return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_1(swigCPtr,
this, index);
224 return mainJNI.RoutingModel_getDisjunctionPenalty(swigCPtr,
this, index);
231 return mainJNI.RoutingModel_getDisjunctionMaxCardinality(swigCPtr,
this, index);
238 return mainJNI.RoutingModel_getNumberOfDisjunctions(swigCPtr,
this);
245 mainJNI.RoutingModel_ignoreDisjunctionsAlreadyForcedToZero(swigCPtr,
this);
252 mainJNI.RoutingModel_addSoftSameVehicleConstraint(swigCPtr,
this, indices, cost);
259 mainJNI.RoutingModel_setAllowedVehiclesForIndex(swigCPtr,
this,
vehicles, index);
266 return mainJNI.RoutingModel_isVehicleAllowedForIndex(swigCPtr,
this, vehicle, index);
273 mainJNI.RoutingModel_addPickupAndDelivery(swigCPtr,
this, pickup, delivery);
280 mainJNI.RoutingModel_addPickupAndDeliverySets(swigCPtr,
this, pickup_disjunction, delivery_disjunction);
287 mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfAllVehicles(swigCPtr,
this, policy);
291 mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfVehicle(swigCPtr,
this, policy, vehicle);
295 return mainJNI.RoutingModel_getPickupAndDeliveryPolicyOfVehicle(swigCPtr,
this, vehicle);
302 return mainJNI.RoutingModel_getNumOfSingletonNodes(swigCPtr,
this);
309 mainJNI.RoutingModel_setVisitType(swigCPtr,
this, index, type);
313 return mainJNI.RoutingModel_getVisitType(swigCPtr,
this, index);
317 return mainJNI.RoutingModel_getNumberOfVisitTypes(swigCPtr,
this);
324 return mainJNI.RoutingModel_unperformedPenalty(swigCPtr,
this, var_index);
331 return mainJNI.RoutingModel_unperformedPenaltyOrValue(swigCPtr,
this, default_value, var_index);
338 return mainJNI.RoutingModel_getDepot(swigCPtr,
this);
345 mainJNI.RoutingModel_setArcCostEvaluatorOfAllVehicles(swigCPtr,
this, evaluator_index);
352 mainJNI.RoutingModel_setArcCostEvaluatorOfVehicle(swigCPtr,
this, evaluator_index, vehicle);
359 mainJNI.RoutingModel_setFixedCostOfAllVehicles(swigCPtr,
this, cost);
366 mainJNI.RoutingModel_setFixedCostOfVehicle(swigCPtr,
this, cost, vehicle);
373 return mainJNI.RoutingModel_getFixedCostOfVehicle(swigCPtr,
this, vehicle);
380 mainJNI.RoutingModel_setAmortizedCostFactorsOfAllVehicles(swigCPtr,
this, linear_cost_factor, quadratic_cost_factor);
387 mainJNI.RoutingModel_setAmortizedCostFactorsOfVehicle(swigCPtr,
this, linear_cost_factor, quadratic_cost_factor, vehicle);
391 return mainJNI.RoutingModel_getAmortizedLinearCostFactorOfVehicles(swigCPtr,
this);
395 return mainJNI.RoutingModel_getAmortizedQuadraticCostFactorOfVehicles(swigCPtr,
this);
399 mainJNI.RoutingModel_ConsiderEmptyRouteCostsForVehicle(swigCPtr,
this, consider_costs, vehicle);
403 return mainJNI.RoutingModel_AreEmptyRouteCostsConsideredForVehicle(swigCPtr,
this, vehicle);
410 mainJNI.RoutingModel_setFirstSolutionEvaluator(swigCPtr,
this, evaluator);
417 mainJNI.RoutingModel_addLocalSearchOperator(swigCPtr,
this,
LocalSearchOperator.getCPtr(ls_operator), ls_operator);
424 mainJNI.RoutingModel_addSearchMonitor(swigCPtr,
this,
SearchMonitor.getCPtr(monitor), monitor);
431 mainJNI.RoutingModel_addAtSolutionCallback(swigCPtr,
this, callback);
438 mainJNI.RoutingModel_addVariableMinimizedByFinalizer(swigCPtr,
this,
IntVar.getCPtr(var), var);
445 mainJNI.RoutingModel_addVariableMaximizedByFinalizer(swigCPtr,
this,
IntVar.getCPtr(var), var);
452 mainJNI.RoutingModel_AddWeightedVariableMinimizedByFinalizer(swigCPtr,
this,
IntVar.getCPtr(var), var, cost);
459 mainJNI.RoutingModel_AddVariableTargetToFinalizer(swigCPtr,
this,
IntVar.getCPtr(var), var, target);
466 mainJNI.RoutingModel_closeModel(swigCPtr,
this);
473 mainJNI.RoutingModel_closeModelWithParameters(swigCPtr,
this, search_parameters.toByteArray());
480 long cPtr = mainJNI.RoutingModel_solve__SWIG_0(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment);
481 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
488 long cPtr = mainJNI.RoutingModel_solve__SWIG_1(swigCPtr,
this);
489 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
496 long cPtr = mainJNI.RoutingModel_solveWithParameters(swigCPtr,
this, search_parameters.toByteArray());
497 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
501 long cPtr = mainJNI.RoutingModel_solveFromAssignmentWithParameters(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment, search_parameters.toByteArray());
502 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
509 mainJNI.RoutingModel_setAssignmentFromOtherModelAssignment(swigCPtr,
this,
Assignment.getCPtr(target_assignment), target_assignment,
RoutingModel.getCPtr(source_model), source_model,
Assignment.getCPtr(source_assignment), source_assignment);
516 return mainJNI.RoutingModel_computeLowerBound(swigCPtr,
this);
523 return mainJNI.RoutingModel_status(swigCPtr,
this);
530 long cPtr = mainJNI.RoutingModel_applyLocks(swigCPtr,
this, locks);
531 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
538 return mainJNI.RoutingModel_applyLocksToAllVehicles(swigCPtr,
this, locks, close_routes);
545 long cPtr = mainJNI.RoutingModel_preAssignment(swigCPtr,
this);
546 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
550 long cPtr = mainJNI.RoutingModel_mutablePreAssignment(swigCPtr,
this);
551 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
558 return mainJNI.RoutingModel_writeAssignment(swigCPtr,
this, file_name);
565 long cPtr = mainJNI.RoutingModel_readAssignment(swigCPtr,
this, file_name);
566 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
573 long cPtr = mainJNI.RoutingModel_restoreAssignment(swigCPtr,
this,
Assignment.getCPtr(solution), solution);
574 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
581 long cPtr = mainJNI.RoutingModel_readAssignmentFromRoutes(swigCPtr,
this, routes, ignore_inactive_indices);
582 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
589 return mainJNI.RoutingModel_routesToAssignment(swigCPtr,
this, routes, ignore_inactive_indices, close_routes,
Assignment.getCPtr(assignment), assignment);
596 mainJNI.RoutingModel_assignmentToRoutes(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment, routes);
603 long cPtr = mainJNI.RoutingModel_compactAssignment(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment);
604 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
611 long cPtr = mainJNI.RoutingModel_compactAndCheckAssignment(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment);
612 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
619 mainJNI.RoutingModel_addToAssignment(swigCPtr,
this,
IntVar.getCPtr(var), var);
623 mainJNI.RoutingModel_addIntervalToAssignment(swigCPtr,
this,
IntervalVar.getCPtr(interval), interval);
630 long cPtr = mainJNI.RoutingModel_PackCumulsOfOptimizerDimensionsFromAssignment(swigCPtr,
this,
Assignment.getCPtr(original_assignment), original_assignment, SWIGTYPE_p_absl__Duration.getCPtr(duration_limit));
631 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
638 mainJNI.RoutingModel_addLocalSearchFilter(swigCPtr,
this,
LocalSearchFilter.getCPtr(filter), filter);
645 return mainJNI.RoutingModel_start(swigCPtr,
this, vehicle);
651 public long end(
int vehicle) {
652 return mainJNI.RoutingModel_end(swigCPtr,
this, vehicle);
659 return mainJNI.RoutingModel_isStart(swigCPtr,
this, index);
666 return mainJNI.RoutingModel_isEnd(swigCPtr,
this, index);
673 return mainJNI.RoutingModel_VehicleIndex(swigCPtr,
this, index);
680 return mainJNI.RoutingModel_next(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment, index);
687 return mainJNI.RoutingModel_isVehicleUsed(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment, vehicle);
694 return mainJNI.RoutingModel_nexts(swigCPtr,
this);
701 return mainJNI.RoutingModel_vehicleVars(swigCPtr,
this);
708 long cPtr = mainJNI.RoutingModel_nextVar(swigCPtr,
this, index);
709 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
716 long cPtr = mainJNI.RoutingModel_activeVar(swigCPtr,
this, index);
717 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
724 long cPtr = mainJNI.RoutingModel_VehicleCostsConsideredVar(swigCPtr,
this, vehicle);
725 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
732 long cPtr = mainJNI.RoutingModel_vehicleVar(swigCPtr,
this, index);
733 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
740 long cPtr = mainJNI.RoutingModel_costVar(swigCPtr,
this);
741 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
748 return mainJNI.RoutingModel_getArcCostForVehicle(swigCPtr,
this, from_index, to_index, vehicle);
755 return mainJNI.RoutingModel_costsAreHomogeneousAcrossVehicles(swigCPtr,
this);
762 return mainJNI.RoutingModel_getHomogeneousCost(swigCPtr,
this, from_index, to_index);
769 return mainJNI.RoutingModel_getArcCostForFirstSolution(swigCPtr,
this, from_index, to_index);
776 return mainJNI.RoutingModel_getArcCostForClass(swigCPtr,
this, from_index, to_index, cost_class_index);
783 return mainJNI.RoutingModel_getCostClassIndexOfVehicle(swigCPtr,
this, vehicle);
790 return mainJNI.RoutingModel_hasVehicleWithCostClassIndex(swigCPtr,
this, cost_class_index);
797 return mainJNI.RoutingModel_getCostClassesCount(swigCPtr,
this);
804 return mainJNI.RoutingModel_getNonZeroCostClassesCount(swigCPtr,
this);
808 return mainJNI.RoutingModel_getVehicleClassIndexOfVehicle(swigCPtr,
this, vehicle);
815 return mainJNI.RoutingModel_getVehicleClassesCount(swigCPtr,
this);
822 return mainJNI.RoutingModel_getSameVehicleIndicesOfIndex(swigCPtr,
this, node);
829 return mainJNI.RoutingModel_arcIsMoreConstrainedThanArc(swigCPtr,
this, from, to1, to2);
836 return mainJNI.RoutingModel_debugOutputAssignment(swigCPtr,
this,
Assignment.getCPtr(solution_assignment), solution_assignment, dimension_to_print);
843 long cPtr = mainJNI.RoutingModel_solver(swigCPtr,
this);
844 return (cPtr == 0) ? null :
new Solver(cPtr,
false);
851 return mainJNI.RoutingModel_checkLimit(swigCPtr,
this);
858 return new SWIGTYPE_p_absl__Duration(mainJNI.RoutingModel_RemainingTime(swigCPtr,
this),
true);
865 return mainJNI.RoutingModel_nodes(swigCPtr,
this);
872 return mainJNI.RoutingModel_vehicles(swigCPtr,
this);
879 return mainJNI.RoutingModel_size(swigCPtr,
this);
886 return mainJNI.RoutingModel_getNumberOfDecisionsInFirstSolution(swigCPtr,
this, search_parameters.toByteArray());
890 return mainJNI.RoutingModel_getNumberOfRejectsInFirstSolution(swigCPtr,
this, search_parameters.toByteArray());
897 return mainJNI.RoutingModel_isMatchingModel(swigCPtr,
this);
904 long cPtr = mainJNI.RoutingModel_makeGuidedSlackFinalizer(swigCPtr,
this,
RoutingDimension.getCPtr(dimension), dimension, initializer);
912 long cPtr = mainJNI.RoutingModel_makeSelfDependentDimensionFinalizer(swigCPtr,
this,
RoutingDimension.getCPtr(dimension), dimension);
916 public void addMatrixDimension(
long[][] values,
long capacity,
boolean fix_start_cumul_to_zero, String name) {
917 mainJNI.RoutingModel_addMatrixDimension(swigCPtr,
this, values, capacity, fix_start_cumul_to_zero, name);
936 public final static int ROUTING_FAIL = mainJNI.RoutingModel_ROUTING_FAIL_get();