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_RegisterPositiveUnaryTransitCallback(swigCPtr,
this, callback);
90 return mainJNI.RoutingModel_registerTransitCallback(swigCPtr,
this, callback);
94 return mainJNI.RoutingModel_registerPositiveTransitCallback(swigCPtr,
this, callback);
100 public boolean addDimension(
int evaluator_index,
long slack_max,
long capacity,
boolean fix_start_cumul_to_zero, String name) {
101 return mainJNI.RoutingModel_addDimension(swigCPtr,
this, evaluator_index, slack_max, capacity, fix_start_cumul_to_zero, name);
105 return mainJNI.RoutingModel_addDimensionWithVehicleTransits(swigCPtr,
this, evaluator_indices, slack_max, capacity, fix_start_cumul_to_zero, name);
109 return mainJNI.RoutingModel_addDimensionWithVehicleCapacity(swigCPtr,
this, evaluator_index, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
113 return mainJNI.RoutingModel_addDimensionWithVehicleTransitAndCapacity(swigCPtr,
this, evaluator_indices, slack_max, vehicle_capacities, fix_start_cumul_to_zero, name);
120 return mainJNI.RoutingModel_addConstantDimensionWithSlack(swigCPtr,
this, value, capacity, slack_max, fix_start_cumul_to_zero, name);
124 return mainJNI.RoutingModel_addConstantDimension(swigCPtr,
this, value, capacity, fix_start_cumul_to_zero, name);
130 public boolean addVectorDimension(
long[] values,
long capacity,
boolean fix_start_cumul_to_zero, String name) {
131 return mainJNI.RoutingModel_addVectorDimension(swigCPtr,
this, values, capacity, fix_start_cumul_to_zero, name);
138 long cPtr = mainJNI.RoutingModel_MakePathSpansAndTotalSlacks(swigCPtr,
this,
RoutingDimension.getCPtr(dimension), dimension, spans, total_slacks);
139 return (cPtr == 0) ? null :
new Constraint(cPtr,
false);
146 return new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(mainJNI.RoutingModel_GetDimensionsForGlobalCumulOptimizers(swigCPtr,
this),
false);
150 return new SWIGTYPE_p_std__vectorT_operations_research__RoutingDimension_p_t(mainJNI.RoutingModel_GetDimensionsForLocalCumulOptimizers(swigCPtr,
this),
false);
157 return mainJNI.RoutingModel_hasDimension(swigCPtr,
this, dimension_name);
164 return new RoutingDimension(mainJNI.RoutingModel_getDimensionOrDie(swigCPtr,
this, dimension_name),
false);
171 long cPtr = mainJNI.RoutingModel_getMutableDimension(swigCPtr,
this, dimension_name);
179 mainJNI.RoutingModel_setPrimaryConstrainedDimension(swigCPtr,
this, dimension_name);
186 return mainJNI.RoutingModel_getPrimaryConstrainedDimension(swigCPtr,
this);
193 return mainJNI.RoutingModel_addDisjunction__SWIG_0(swigCPtr,
this, indices, penalty, max_cardinality);
200 return mainJNI.RoutingModel_addDisjunction__SWIG_1(swigCPtr,
this, indices, penalty);
207 return mainJNI.RoutingModel_addDisjunction__SWIG_2(swigCPtr,
this, indices);
214 return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_0(swigCPtr,
this, index);
221 return mainJNI.RoutingModel_getDisjunctionIndices__SWIG_1(swigCPtr,
this, index);
228 return mainJNI.RoutingModel_getDisjunctionPenalty(swigCPtr,
this, index);
235 return mainJNI.RoutingModel_getDisjunctionMaxCardinality(swigCPtr,
this, index);
242 return mainJNI.RoutingModel_getNumberOfDisjunctions(swigCPtr,
this);
249 mainJNI.RoutingModel_ignoreDisjunctionsAlreadyForcedToZero(swigCPtr,
this);
256 mainJNI.RoutingModel_addSoftSameVehicleConstraint(swigCPtr,
this, indices, cost);
263 mainJNI.RoutingModel_setAllowedVehiclesForIndex(swigCPtr,
this,
vehicles, index);
270 return mainJNI.RoutingModel_isVehicleAllowedForIndex(swigCPtr,
this, vehicle, index);
277 mainJNI.RoutingModel_addPickupAndDelivery(swigCPtr,
this, pickup, delivery);
284 mainJNI.RoutingModel_addPickupAndDeliverySets(swigCPtr,
this, pickup_disjunction, delivery_disjunction);
291 mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfAllVehicles(swigCPtr,
this, policy);
295 mainJNI.RoutingModel_setPickupAndDeliveryPolicyOfVehicle(swigCPtr,
this, policy, vehicle);
299 return mainJNI.RoutingModel_getPickupAndDeliveryPolicyOfVehicle(swigCPtr,
this, vehicle);
306 return mainJNI.RoutingModel_getNumOfSingletonNodes(swigCPtr,
this);
313 mainJNI.RoutingModel_setVisitType(swigCPtr,
this, index, type);
317 return mainJNI.RoutingModel_getVisitType(swigCPtr,
this, index);
321 return mainJNI.RoutingModel_getNumberOfVisitTypes(swigCPtr,
this);
328 return mainJNI.RoutingModel_unperformedPenalty(swigCPtr,
this, var_index);
335 return mainJNI.RoutingModel_unperformedPenaltyOrValue(swigCPtr,
this, default_value, var_index);
342 return mainJNI.RoutingModel_getDepot(swigCPtr,
this);
349 mainJNI.RoutingModel_setArcCostEvaluatorOfAllVehicles(swigCPtr,
this, evaluator_index);
356 mainJNI.RoutingModel_setArcCostEvaluatorOfVehicle(swigCPtr,
this, evaluator_index, vehicle);
363 mainJNI.RoutingModel_setFixedCostOfAllVehicles(swigCPtr,
this, cost);
370 mainJNI.RoutingModel_setFixedCostOfVehicle(swigCPtr,
this, cost, vehicle);
377 return mainJNI.RoutingModel_getFixedCostOfVehicle(swigCPtr,
this, vehicle);
384 mainJNI.RoutingModel_setAmortizedCostFactorsOfAllVehicles(swigCPtr,
this, linear_cost_factor, quadratic_cost_factor);
391 mainJNI.RoutingModel_setAmortizedCostFactorsOfVehicle(swigCPtr,
this, linear_cost_factor, quadratic_cost_factor, vehicle);
395 return mainJNI.RoutingModel_getAmortizedLinearCostFactorOfVehicles(swigCPtr,
this);
399 return mainJNI.RoutingModel_getAmortizedQuadraticCostFactorOfVehicles(swigCPtr,
this);
403 mainJNI.RoutingModel_ConsiderEmptyRouteCostsForVehicle(swigCPtr,
this, consider_costs, vehicle);
407 return mainJNI.RoutingModel_AreEmptyRouteCostsConsideredForVehicle(swigCPtr,
this, vehicle);
414 mainJNI.RoutingModel_setFirstSolutionEvaluator(swigCPtr,
this, evaluator);
421 mainJNI.RoutingModel_addLocalSearchOperator(swigCPtr,
this,
LocalSearchOperator.getCPtr(ls_operator), ls_operator);
428 mainJNI.RoutingModel_addSearchMonitor(swigCPtr,
this,
SearchMonitor.getCPtr(monitor), monitor);
435 mainJNI.RoutingModel_addAtSolutionCallback(swigCPtr,
this, callback);
442 mainJNI.RoutingModel_addVariableMinimizedByFinalizer(swigCPtr,
this,
IntVar.getCPtr(var), var);
449 mainJNI.RoutingModel_addVariableMaximizedByFinalizer(swigCPtr,
this,
IntVar.getCPtr(var), var);
456 mainJNI.RoutingModel_AddWeightedVariableMinimizedByFinalizer(swigCPtr,
this,
IntVar.getCPtr(var), var, cost);
463 mainJNI.RoutingModel_AddVariableTargetToFinalizer(swigCPtr,
this,
IntVar.getCPtr(var), var, target);
470 mainJNI.RoutingModel_closeModel(swigCPtr,
this);
477 mainJNI.RoutingModel_closeModelWithParameters(swigCPtr,
this, search_parameters.toByteArray());
484 long cPtr = mainJNI.RoutingModel_solve__SWIG_0(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment);
485 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
492 long cPtr = mainJNI.RoutingModel_solve__SWIG_1(swigCPtr,
this);
493 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
500 long cPtr = mainJNI.RoutingModel_solveWithParameters(swigCPtr,
this, search_parameters.toByteArray());
501 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
505 long cPtr = mainJNI.RoutingModel_solveFromAssignmentWithParameters(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment, search_parameters.toByteArray());
506 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
513 mainJNI.RoutingModel_setAssignmentFromOtherModelAssignment(swigCPtr,
this,
Assignment.getCPtr(target_assignment), target_assignment,
RoutingModel.getCPtr(source_model), source_model,
Assignment.getCPtr(source_assignment), source_assignment);
520 return mainJNI.RoutingModel_computeLowerBound(swigCPtr,
this);
527 return mainJNI.RoutingModel_status(swigCPtr,
this);
534 long cPtr = mainJNI.RoutingModel_applyLocks(swigCPtr,
this, locks);
535 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
542 return mainJNI.RoutingModel_applyLocksToAllVehicles(swigCPtr,
this, locks, close_routes);
549 long cPtr = mainJNI.RoutingModel_preAssignment(swigCPtr,
this);
550 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
554 long cPtr = mainJNI.RoutingModel_mutablePreAssignment(swigCPtr,
this);
555 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
562 return mainJNI.RoutingModel_writeAssignment(swigCPtr,
this, file_name);
569 long cPtr = mainJNI.RoutingModel_readAssignment(swigCPtr,
this, file_name);
570 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
577 long cPtr = mainJNI.RoutingModel_restoreAssignment(swigCPtr,
this,
Assignment.getCPtr(solution), solution);
578 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
585 long cPtr = mainJNI.RoutingModel_readAssignmentFromRoutes(swigCPtr,
this, routes, ignore_inactive_indices);
586 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
593 return mainJNI.RoutingModel_routesToAssignment(swigCPtr,
this, routes, ignore_inactive_indices, close_routes,
Assignment.getCPtr(assignment), assignment);
600 mainJNI.RoutingModel_assignmentToRoutes(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment, routes);
607 long cPtr = mainJNI.RoutingModel_compactAssignment(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment);
608 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
615 long cPtr = mainJNI.RoutingModel_compactAndCheckAssignment(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment);
616 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
623 mainJNI.RoutingModel_addToAssignment(swigCPtr,
this,
IntVar.getCPtr(var), var);
627 mainJNI.RoutingModel_addIntervalToAssignment(swigCPtr,
this,
IntervalVar.getCPtr(interval), interval);
634 long cPtr = mainJNI.RoutingModel_PackCumulsOfOptimizerDimensionsFromAssignment(swigCPtr,
this,
Assignment.getCPtr(original_assignment), original_assignment, SWIGTYPE_p_absl__Duration.getCPtr(duration_limit));
635 return (cPtr == 0) ? null :
new Assignment(cPtr,
false);
642 mainJNI.RoutingModel_addLocalSearchFilter(swigCPtr,
this,
LocalSearchFilter.getCPtr(filter), filter);
649 return mainJNI.RoutingModel_start(swigCPtr,
this, vehicle);
655 public long end(
int vehicle) {
656 return mainJNI.RoutingModel_end(swigCPtr,
this, vehicle);
663 return mainJNI.RoutingModel_isStart(swigCPtr,
this, index);
670 return mainJNI.RoutingModel_isEnd(swigCPtr,
this, index);
677 return mainJNI.RoutingModel_VehicleIndex(swigCPtr,
this, index);
684 return mainJNI.RoutingModel_next(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment, index);
691 return mainJNI.RoutingModel_isVehicleUsed(swigCPtr,
this,
Assignment.getCPtr(assignment), assignment, vehicle);
698 return mainJNI.RoutingModel_nexts(swigCPtr,
this);
705 return mainJNI.RoutingModel_vehicleVars(swigCPtr,
this);
712 long cPtr = mainJNI.RoutingModel_nextVar(swigCPtr,
this, index);
713 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
720 long cPtr = mainJNI.RoutingModel_activeVar(swigCPtr,
this, index);
721 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
728 long cPtr = mainJNI.RoutingModel_VehicleCostsConsideredVar(swigCPtr,
this, vehicle);
729 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
736 long cPtr = mainJNI.RoutingModel_vehicleVar(swigCPtr,
this, index);
737 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
744 long cPtr = mainJNI.RoutingModel_costVar(swigCPtr,
this);
745 return (cPtr == 0) ? null :
new IntVar(cPtr,
false);
752 return mainJNI.RoutingModel_getArcCostForVehicle(swigCPtr,
this, from_index, to_index, vehicle);
759 return mainJNI.RoutingModel_costsAreHomogeneousAcrossVehicles(swigCPtr,
this);
766 return mainJNI.RoutingModel_getHomogeneousCost(swigCPtr,
this, from_index, to_index);
773 return mainJNI.RoutingModel_getArcCostForFirstSolution(swigCPtr,
this, from_index, to_index);
780 return mainJNI.RoutingModel_getArcCostForClass(swigCPtr,
this, from_index, to_index, cost_class_index);
787 return mainJNI.RoutingModel_getCostClassIndexOfVehicle(swigCPtr,
this, vehicle);
794 return mainJNI.RoutingModel_hasVehicleWithCostClassIndex(swigCPtr,
this, cost_class_index);
801 return mainJNI.RoutingModel_getCostClassesCount(swigCPtr,
this);
808 return mainJNI.RoutingModel_getNonZeroCostClassesCount(swigCPtr,
this);
812 return mainJNI.RoutingModel_getVehicleClassIndexOfVehicle(swigCPtr,
this, vehicle);
819 return mainJNI.RoutingModel_getVehicleClassesCount(swigCPtr,
this);
826 return mainJNI.RoutingModel_getSameVehicleIndicesOfIndex(swigCPtr,
this, node);
833 return mainJNI.RoutingModel_arcIsMoreConstrainedThanArc(swigCPtr,
this, from, to1, to2);
840 return mainJNI.RoutingModel_debugOutputAssignment(swigCPtr,
this,
Assignment.getCPtr(solution_assignment), solution_assignment, dimension_to_print);
847 long cPtr = mainJNI.RoutingModel_solver(swigCPtr,
this);
848 return (cPtr == 0) ? null :
new Solver(cPtr,
false);
855 return mainJNI.RoutingModel_checkLimit(swigCPtr,
this);
862 return new SWIGTYPE_p_absl__Duration(mainJNI.RoutingModel_RemainingTime(swigCPtr,
this),
true);
869 return mainJNI.RoutingModel_nodes(swigCPtr,
this);
876 return mainJNI.RoutingModel_vehicles(swigCPtr,
this);
883 return mainJNI.RoutingModel_size(swigCPtr,
this);
890 return mainJNI.RoutingModel_getNumberOfDecisionsInFirstSolution(swigCPtr,
this, search_parameters.toByteArray());
894 return mainJNI.RoutingModel_getNumberOfRejectsInFirstSolution(swigCPtr,
this, search_parameters.toByteArray());
901 return mainJNI.RoutingModel_isMatchingModel(swigCPtr,
this);
908 long cPtr = mainJNI.RoutingModel_makeGuidedSlackFinalizer(swigCPtr,
this,
RoutingDimension.getCPtr(dimension), dimension, initializer);
916 long cPtr = mainJNI.RoutingModel_makeSelfDependentDimensionFinalizer(swigCPtr,
this,
RoutingDimension.getCPtr(dimension), dimension);
920 public void addMatrixDimension(
long[][] values,
long capacity,
boolean fix_start_cumul_to_zero, String name) {
921 mainJNI.RoutingModel_addMatrixDimension(swigCPtr,
this, values, capacity, fix_start_cumul_to_zero, name);
940 public final static int ROUTING_FAIL = mainJNI.RoutingModel_ROUTING_FAIL_get();