All Classes and Interfaces
Class
Description
Determines when a neighbor solution, obtained by the application of a
perturbation and improvement step to a reference solution, is used to
replace the reference solution.
Determines when a neighbor solution, obtained by the application of a
perturbation and improvement step to a reference solution, is used to
replace the reference solution.
Protobuf enum
operations_research.AcceptanceStrategy.Value
At the end of each iteration, regardless of whether the step was accepted
or not, the adaptive rule updates the step_size as the minimum of two
potential step sizes defined by the following two exponents.
At the end of each iteration, regardless of whether the step was accepted
or not, the adaptive rule updates the step_size as the minimum of two
potential step sizes defined by the following two exponents.
A specialized linear expression: a * x + b
A specialized linear expression: a * x + b
All affine expressions must take different values.
All affine expressions must take different values.
An arc of a routes constraint, with its LP value.
An arc of a routes constraint, with its LP value.
An Assignment is a variable -> domains mapping, used
to report solutions to the user.
to report solutions to the user.
Specialized automaton constraint.
This constraint forces a sequence of expressions to be accepted by an
automaton.
This constraint forces a sequence of expressions to be accepted by an
automaton.
This is the base class for building an Lns operator.
A BaseObject is the root of all reversibly allocated objects.
A DebugString method and the associated <invalid input: '<' operator are implemented
as a convenience.
A DebugString method and the associated <invalid input: '<' operator are implemented
as a convenience.
Argument of the constraints of the form OP(literals).
Argument of the constraints of the form OP(literals).
Stores an assignment of variables as a list of true literals using their
signed representation.
Stores an assignment of variables as a list of true literals using their
signed representation.
An Boolean variable.
Method used to optimize a solution in Bop.
Method used to optimize a solution in Bop.
Protobuf enum
operations_research.bop.BopOptimizerMethod.OptimizerType
Contains the definitions for all the bop algorithm parameters and their
default values.
Contains the definitions for all the bop algorithm parameters and their
default values.
Defines how the different solvers are synchronized during the search.
Set of optimizer methods to be run by an instance of the portfolio optimizer.
Set of optimizer methods to be run by an instance of the portfolio optimizer.
A structure meant to store soft bounds and associated violation constants.
It is 'Simple' because it has one BoundCost per element,
in contrast to 'Multiple'.
It is 'Simple' because it has one BoundCost per element,
in contrast to 'Multiple'.
Cast constraints are special channeling constraints designed
to keep a variable in sync with an expression.
to keep a variable in sync with an expression.
Defines operators which change the value of variables;
each neighbor corresponds to *one* modified variable.
Sub-classes have to define ModifyValue which determines what the new
variable value is going to be (given the current value and the variable).
each neighbor corresponds to *one* modified variable.
Sub-classes have to define ModifyValue which determines what the new
variable value is going to be (given the current value and the variable).
Specialized circuit constraint.
The circuit constraint is defined on a graph where the arc presence are
controlled by literals.
The circuit constraint is defined on a graph where the arc presence are
controlled by literals.
A specialized constant linear expression.
A specialized constant linear expression.
A constraint is the main modeling object.
Wrapper around a ConstraintProto.
Next id: 31
Next id: 31
Solver parameters.
Solver parameters.
Internal parameters of the solver.
Statistics on the search in the constraint solver.
Statistics on the search in the constraint solver.
Information measuring how close a candidate is to establishing feasibility
and optimality; see also TerminationCriteria.
Information measuring how close a candidate is to establishing feasibility
and optimality; see also TerminationCriteria.
The cooling schedule strategy defines how to compute the current simulated
annealing temperature t given
- the initial temperature t0
- the final temperature t1
- the current search progress 0 <= p <= 1
The value of t0 and t1 is defined by the initial_temperature and
final_temperature in SimulatedAnnealingParameters, respectively.
The cooling schedule strategy defines how to compute the current simulated
annealing temperature t given
- the initial temperature t0
- the final temperature t1
- the current search progress 0 <= p <= 1
The value of t0 and t1 is defined by the initial_temperature and
final_temperature in SimulatedAnnealingParameters, respectively.
Protobuf enum
operations_research.CoolingScheduleStrategy.Value
Main modeling class.
Exception thrown when parallel arrays have mismatched lengths.
Exception thrown when an array has a wrong length.
A constraint programming problem.
A constraint programming problem.
Optimization objective.
Optimization objective.
This class performs various C++ initialization.
It is meant to be used once at the start of a program.
It is meant to be used once at the start of a program.
Simple structure that holds useful C++ flags to setup from non-C++ languages.
Wrapper around the SAT solver.
The request sent to the remote solve service.
The request sent to the remote solve service.
The response returned by a solver trying to solve a CpModelProto.
The response returned by a solver trying to solve a CpModelProto.
Just a message used to store dense solution.
Just a message used to store dense solution.
Parent class to create a callback called at each solution.
The status returned by a solver trying to solve a CpModelProto.
Specialized cumulative constraint.
The sum of the demands of the intervals at each interval point cannot exceed
a capacity.
The sum of the demands of the intervals at each interval point cannot exceed
a capacity.
A Decision represents a choice point in the search tree.
A DecisionBuilder is responsible for creating the search tree.
Define the strategy to follow when the solver needs to take a new decision.
Define the strategy to follow when the solver needs to take a new decision.
Once a variable (resp. affine expression) has been chosen, this enum
describe what decision is taken on its domain.
The order in which the variables (resp. affine expression) above should be
considered.
A DecisionVisitor is used to inspect a decision.
It contains virtual methods for all type of 'declared' decisions.
It contains virtual methods for all type of 'declared' decisions.
This struct holds all parameters for the default search.
DefaultPhaseParameters is only used by Solver::MakeDefaultPhase methods.
Note this is for advanced users only.
DefaultPhaseParameters is only used by Solver::MakeDefaultPhase methods.
Note this is for advanced users only.
A Demon is the base element of a propagation queue.
A dense matrix of numbers encoded in a flat way, row by row.
A dense matrix of numbers encoded in a flat way, row by row.
We call domain any subset of Int64 = [kint64min, kint64max].
This class can be used to represent such set efficiently as a sorted and
non-adjacent list of intervals.
This class can be used to represent such set efficiently as a sorted and
non-adjacent list of intervals.
A linear expression interface that can be parsed.
The constraint target = vars[index].
The constraint target = vars[index].
Wrapper around a linear constraint stored in the ModelBuilderHelper instance.
Details about one primal feasibility or dual feasibility polishing phase
within a solve with `use_feasibility_polishing`.
Details about one primal feasibility or dual feasibility polishing phase
within a solve with `use_feasibility_polishing`.
First solution strategies, used as starting point of local search.
First solution strategies, used as starting point of local search.
Protobuf enum
operations_research.FirstSolutionStrategy.Value
A linear floating point objective: sum coeffs[i] * vars[i] + offset.
A linear floating point objective: sum coeffs[i] * vars[i] + offset.
Protobuf type
operations_research.FlowArcProto
Protobuf type
operations_research.FlowArcProto
Holds a flow problem, see NodeProto and ArcProto for more details.
Holds a flow problem, see NodeProto and ArcProto for more details.
The type of problem to solve.
Protobuf type
operations_research.FlowNodeProto
Protobuf type
operations_research.FlowNodeProto
GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on
all vehicles in the dimension passed to its constructor.
It is intended to be used for dimensions representing time.
A break constraint ensures break intervals fit on the route of a vehicle.
For a given vehicle, it forces break intervals to be disjoint from visit
intervals, where visit intervals start at CumulVar(node) and last for
node_visit_transit[node].
all vehicles in the dimension passed to its constructor.
It is intended to be used for dimensions representing time.
A break constraint ensures break intervals fit on the route of a vehicle.
For a given vehicle, it forces break intervals to be disjoint from visit
intervals, where visit intervals start at CumulVar(node) and last for
node_visit_transit[node].
next id = 73
next id = 73
This is only used if use_scaling is true.
Heuristics to use in the primal simplex to remove fixed slack variables
from the initial basis.
General strategy used during pricing.
Supported algorithms for scaling:
EQUILIBRATION - progressive scaling by row and column norms until the
marginal difference passes below a threshold.
Like a Boolean with an extra value to let the algorithm decide what is the
best choice.
Information measuring how close a point is to establishing primal or dual
infeasibility (i.e. has no solution); see also TerminationCriteria.
Information measuring how close a point is to establishing primal or dual
infeasibility (i.e. has no solution); see also TerminationCriteria.
The low 64 bits are stored in "low", and the high 64-bits (including the
sign) are stored in "high".
The low 64 bits are stored in "low", and the high 64-bits (including the
sign) are stored in "high".
An integer variable.
An integer variable.
This is not really a constraint.
This is not really a constraint.
Interval variables are often used in scheduling.
An interval variable.
The class IntExpr is the base of all integer expressions in
constraint programming.
It contains the basic protocol for an expression:
- setting and modifying its bound
- querying if it is bound
- listening to events modifying its bounds
- casting it into a variable (instance of IntVar)
constraint programming.
It contains the basic protocol for an expression:
- setting and modifying its bound
- querying if it is bound
- listening to events modifying its bounds
- casting it into a variable (instance of IntVar)
Represents a function that accepts two int-valued arguments and produces a
long-valued result.
The class IntVar is a subset of IntExpr.
An integer variable.
The class Iterator has two direct subclasses.
Specialization of LocalSearchOperator built from an array of IntVars
which specifies the scope of the operator.
This class also takes care of storing current variable values in Start(),
keeps track of changes done by the operator and builds the delta.
The Deactivate() method can be used to perform Large Neighborhood Search.
which specifies the scope of the operator.
This class also takes care of storing current variable values in Start(),
keeps track of changes done by the operator and builds the delta.
The Deactivate() method can be used to perform Large Neighborhood Search.
The two arrays of variable each represent a function, the second is the
inverse of the first: f_direct[i] == j <=> f_inverse[j] == i.
The two arrays of variable each represent a function, the second is the
inverse of the first: f_direct[i] == j <=> f_inverse[j] == i.
Specifies the behavior of a search based on ILS.
Specifies the behavior of a search based on ILS.
All values in IterationStats assume that the primal quadratic program is a
minimization problem and the dual is a maximization problem.
All values in IterationStats assume that the primal quadratic program is a
minimization problem and the dual is a maximization problem.
This class acts as a intermediate step between a c++ decision builder
and a java one.
This library solves knapsack problems.
Problems the library solves include:
- 0-1 knapsack problems,
- Multi-dimensional knapsack problems,
Given n items, each with a profit and a weight, given a knapsack of
capacity c, the goal is to find a subset of items which fits inside c
and maximizes the total profit.
The knapsack problem can easily be extended from 1 to d dimensions.
As an example, this can be useful to constrain the maximum number of
items inside the knapsack.
Without loss of generality, profits and weights are assumed to be positive.
From a mathematical point of view, the multi-dimensional knapsack problem
can be modeled by d linear constraints:
ForEach(j:1..d)(Sum(i:1..n)(weight_ij * item_i) <= c_j
where item_i is a 0-1 integer variable.
Then the goal is to maximize:
Sum(i:1..n)(profit_i * item_i).
There are several ways to solve knapsack problems.
Problems the library solves include:
- 0-1 knapsack problems,
- Multi-dimensional knapsack problems,
Given n items, each with a profit and a weight, given a knapsack of
capacity c, the goal is to find a subset of items which fits inside c
and maximizes the total profit.
The knapsack problem can easily be extended from 1 to d dimensions.
As an example, this can be useful to constrain the maximum number of
items inside the knapsack.
Without loss of generality, profits and weights are assumed to be positive.
From a mathematical point of view, the multi-dimensional knapsack problem
can be modeled by d linear constraints:
ForEach(j:1..d)(Sum(i:1..n)(weight_ij * item_i) <= c_j
where item_i is a 0-1 integer variable.
Then the goal is to maximize:
Sum(i:1..n)(profit_i * item_i).
There are several ways to solve knapsack problems.
Enum controlling which underlying algorithm is used.
This enum is passed to the constructor of the KnapsackSolver object.
It selects which solving method will be used.
This enum is passed to the constructor of the KnapsackSolver object.
It selects which solving method will be used.
A object that can build a LinearExpr object.
A object that can build a LinearExpr object.
Protobuf type
operations_research.sat.LinearArgumentProto
Protobuf type
operations_research.sat.LinearArgumentProto
A linear Boolean constraint which is a bounded sum of linear terms.
A linear Boolean constraint which is a bounded sum of linear terms.
A linear Boolean problem.
A linear Boolean problem.
Wrapper around a linear constraint stored in the ModelBuilderHelper instance.
The linear sum vars[i] * coeffs[i] must fall in the given domain.
The linear sum vars[i] * coeffs[i] must fall in the given domain.
A linear expression (sum (ai * xi) + b).
A linear expression (sum (ai * xi) + b).
Builder class for the LinearExpr container.
Builder class for the LinearExpr container.
Some constraints supports linear expression instead of just using a reference
to a variable.
Some constraints supports linear expression instead of just using a reference
to a variable.
The objective of an optimization problem.
The objective of an optimization problem.
A list of variables, without any semantics.
A list of variables, without any semantics.
Interface to describe a boolean variable or its negation.
Load native libraries needed for using ortools-java.
Local Search Filters are used for fast neighbor pruning.
Filtering a move is done in several phases:
- in the Relax phase, filters determine which parts of their internals
will be changed by the candidate, and modify intermediary State
- in the Accept phase, filters check that the candidate is feasible,
- if the Accept phase succeeds, the solver may decide to trigger a
Synchronize phase that makes filters change their internal representation
to the last candidate,
- otherwise (Accept fails or the solver does not want to synchronize),
a Revert phase makes filters erase any intermediary State generated by the
Relax and Accept phases.
A given filter has phases called with the following pattern:
(Relax.Accept.Synchronize | Relax.Accept.Revert | Relax.Revert)*.
Filters's Revert() is always called in the reverse order their Accept() was
called, to allow late filters to use state done/undone by early filters'
Accept()/Revert().
Filtering a move is done in several phases:
- in the Relax phase, filters determine which parts of their internals
will be changed by the candidate, and modify intermediary State
- in the Accept phase, filters check that the candidate is feasible,
- if the Accept phase succeeds, the solver may decide to trigger a
Synchronize phase that makes filters change their internal representation
to the last candidate,
- otherwise (Accept fails or the solver does not want to synchronize),
a Revert phase makes filters erase any intermediary State generated by the
Relax and Accept phases.
A given filter has phases called with the following pattern:
(Relax.Accept.Synchronize | Relax.Accept.Revert | Relax.Revert)*.
Filters's Revert() is always called in the reverse order their Accept() was
called, to allow late filters to use state done/undone by early filters'
Accept()/Revert().
Filter manager: when a move is made, filters are executed to decide whether
the solution is feasible and compute parts of the new cost.
the solution is feasible and compute parts of the new cost.
Local search metaheuristics used to guide the search.
Local search metaheuristics used to guide the search.
Protobuf enum
operations_research.LocalSearchMetaheuristic.Value
The base class for all local search operators.
A local search operator is an object that defines the neighborhood of a
solution.
A local search operator is an object that defines the neighborhood of a
solution.
Statistics on local search.
Statistics on local search.
First solution statistics collected during search.
First solution statistics collected during search.
Statistics on local search filters called during the search.
Statistics on local search filters called during the search.
Statistics on local search operators called during the search.
Statistics on local search operators called during the search.
Represents an operation upon three
long
-valued operands and producing a
long
-valued result.Represents a predicate (boolean-valued function) uppon
three
long
-valued operands.Protobuf type
operations_research.pdlp.MalitskyPockParams
Protobuf type
operations_research.pdlp.MalitskyPockParams
Main modeling class.
Exception thrown when parallel arrays have mismatched lengths.
Exception thrown when an array has a wrong length.
Implements a complete cache for model elements: expressions and
constraints.
constraints.
Model solver class
Model visitor.
Sets a variable's value to the absolute value of another variable.
Sets a variable's value to the absolute value of another variable.
Sets a variable's value equal to a function on a set of variables.
Sets a variable's value equal to a function on a set of variables.
Sets a variable's value equal to a function on a set of variables and,
optionally, a constant.
Sets a variable's value equal to a function on a set of variables and,
optionally, a constant.
The class for constraints of a Mathematical Programming (MP) model.
A constraint is represented as a linear equation or inequality.
A constraint is represented as a linear equation or inequality.
A linear constraint is always of the form:
lower_bound <= sum of linear term elements <= upper_bound,
where lower_bound and upper_bound:
- Can form a singleton: lower_bound == upper_bound.
A linear constraint is always of the form:
lower_bound <= sum of linear term elements <= upper_bound,
where lower_bound and upper_bound:
- Can form a singleton: lower_bound == upper_bound.
General constraints.
General constraints.
Indicator constraints encode the activation or deactivation of linear
constraints given the value of one Boolean variable in the model.
Indicator constraints encode the activation or deactivation of linear
constraints given the value of one Boolean variable in the model.
Encodes a full MPModelProto by way of referencing to a "baseline"
MPModelProto stored in a file, and a "delta" to apply to this model.
Encodes a full MPModelProto by way of referencing to a "baseline"
MPModelProto stored in a file, and a "delta" to apply to this model.
Export options.
MPModelProto contains all the information for a Linear Programming model.
Annotations can be freely added by users who want to attach arbitrary
payload to the model's variables or constraints.
Annotations can be freely added by users who want to attach arbitrary
payload to the model's variables or constraints.
The target of an Annotation is a single entity (e.g. a variable).
MPModelProto contains all the information for a Linear Programming model.
Next id: 18.
Next id: 18.
The solver type, which will select a specific implementation, and will also
impact the interpretation of the model (i.e. are we solving the problem
as a mixed integer program or are we relaxing it as a continuous linear
program?).
A class to express a linear objective.
Quadratic constraints of the form lb <= sum a_i x_i + sum b_ij x_i x_j <= ub,
where a, b, lb and ub are constants, and x are the model's variables.
Quadratic constraints of the form lb <= sum a_i x_i + sum b_ij x_i x_j <= ub,
where a, b, lb and ub are constants, and x are the model's variables.
Quadratic part of a model's objective.
Quadratic part of a model's objective.
Protobuf type
operations_research.MPSolution
Protobuf type
operations_research.MPSolution
Next id: 12.
Next id: 12.
Protobuf type
operations_research.MPSolveInfo
Protobuf type
operations_research.MPSolveInfo
This mathematical programming (MP) solver class is the main class
though which users build and solve problems.
though which users build and solve problems.
Advanced usage: possible basis status values for a variable and the slack
variable of a linear constraint.
variable of a linear constraint.
The type of problems (LP or MIP) that will be solved and the underlying
solver (GLOP, GLPK, CLP, CBC or SCIP) that will solve them.
solver (GLOP, GLPK, CLP, CBC or SCIP) that will solve them.
The status of solving the problem.
MPSolverCommonParameters holds advanced usage parameters that apply to any of
the solvers we support.
MPSolverCommonParameters holds advanced usage parameters that apply to any of
the solvers we support.
Protobuf enum
operations_research.MPSolverCommonParameters.LPAlgorithmValues
This class stores parameter settings for LP and MIP solvers.
Enumeration of parameters that take continuous values.
Advanced usage: Incrementality options.
Enumeration of parameters that take integer or categorical values.
LP algorithm to use.
For each categorical parameter, enumeration of possible values.
Advanced usage: Scaling options.
Status returned by the solver.
Special Ordered Set (SOS) constraints of type 1 or 2.
Special Ordered Set (SOS) constraints of type 1 or 2.
Protobuf enum
operations_research.MPSosConstraint.Type
The class for variables of a Mathematical Programming (MP) model.
A variable is always constrained in the form:
lower_bound <= x <= upper_bound
where lower_bound and upper_bound:
- Can form a singleton: x = constant = lower_bound = upper_bound
A variable is always constrained in the form:
lower_bound <= x <= upper_bound
where lower_bound and upper_bound:
- Can form a singleton: x = constant = lower_bound = upper_bound
Specialized multiple circuit constraint.
Specialized NoOverlap2D constraint.
The boxes defined by [start_x, end_x) * [start_y, end_y) cannot overlap.
The boxes defined by [start_x, end_x) * [start_y, end_y) cannot overlap.
All the intervals (index of IntervalConstraintProto) must be disjoint.
All the intervals (index of IntervalConstraintProto) must be disjoint.
The negation of a boolean variable.
Protobuf enum
operations_research.pdlp.OptimalityNorm
This class encapsulates an objective.
A "three-way" boolean: unspecified, false or true.
To support 'unspecified' double value in proto3, the simplest is to wrap
any double value in a nested message (has_XXX works for message fields).
To support 'unspecified' double value in proto3, the simplest is to wrap
any double value in a nested message (has_XXX works for message fields).
This message encodes a partial (or full) assignment of the variables of a
MPModelProto problem.
This message encodes a partial (or full) assignment of the variables of a
CpModelProto.
This message encodes a partial (or full) assignment of the variables of a
MPModelProto problem.
This message encodes a partial (or full) assignment of the variables of a
CpModelProto.
Defines how a reference solution is perturbed.
Defines how a reference solution is perturbed.
Protobuf enum
operations_research.PerturbationStrategy.Value
Protobuf type
operations_research.pdlp.PointMetadata
Protobuf type
operations_research.pdlp.PointMetadata
Identifies the type of point used to compute the fields in a given proto; see
ConvergenceInformation and InfeasibilityInformation.
Protobuf enum
operations_research.pdlp.PolishingPhaseType
Parameters for PrimalDualHybridGradient() in primal_dual_hybrid_gradient.h.
Parameters for PrimalDualHybridGradient() in primal_dual_hybrid_gradient.h.
Protobuf enum
operations_research.pdlp.PrimalDualHybridGradientParams.LinesearchRule
Protobuf type
operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions
Protobuf type
operations_research.pdlp.PrimalDualHybridGradientParams.PresolveOptions
Protobuf enum
operations_research.pdlp.PrimalDualHybridGradientParams.RestartStrategy
NOLINT
The PropagationBaseObject is a subclass of BaseObject that is also
friend to the Solver class.
The PropagationBaseObject is a subclass of BaseObject that is also
friend to the Solver class.
Easy-to-compute statistics for the quadratic program.
Easy-to-compute statistics for the quadratic program.
Ruin strategy that removes a number of customers by performing a random walk
on the underlying routing solution.
Ruin strategy that removes a number of customers by performing a random walk
on the underlying routing solution.
Usual limit based on wall_time, number of explored branches and
number of failures in the search tree
number of failures in the search tree
A search limit
The default values for int64 fields is the maxima value, i.e., 2^63-1
A search limit
The default values for int64 fields is the maxima value, i.e., 2^63-1
Specialized reservoir constraint.
Maintain a reservoir level within bounds.
Maintain a reservoir level within bounds.
Specifies whether a restart was performed on a given iteration.
This class adds reversibility to a POD type.
It contains the stamp optimization. i.e. the SaveValue call is done
only once per node of the search tree.
It contains the stamp optimization. i.e. the SaveValue call is done
only once per node of the search tree.
This class adds reversibility to a POD type.
It contains the stamp optimization. i.e. the SaveValue call is done
only once per node of the search tree.
It contains the stamp optimization. i.e. the SaveValue call is done
only once per node of the search tree.
This class adds reversibility to a POD type.
It contains the stamp optimization. i.e. the SaveValue call is done
only once per node of the search tree.
It contains the stamp optimization. i.e. the SaveValue call is done
only once per node of the search tree.
----- RevPartialSequence -----
The "VRP" (Vehicle Routing Problem) constraint.
The "VRP" (Vehicle Routing Problem) constraint.
A set of linear expressions associated with the nodes.
A set of linear expressions associated with the nodes.
The arcs of a routes constraint which have non-zero LP values, in the LP
relaxation of the problem.
The arcs of a routes constraint which have non-zero LP values, in the LP
relaxation of the problem.
Dimensions represent quantities accumulated at nodes along the routes.
Manager for any NodeIndex <-> variable index conversion.
The position of a node in the set of pickup and delivery pairs.
A ResourceGroup defines a set of available Resources with attributes on
one or multiple dimensions.
For every ResourceGroup in the model, each (used) vehicle in the solution
which requires a resource (see NotifyVehicleRequiresResource()) from this
group must be assigned to exactly 1 resource, and each resource can in
turn be assigned to at most 1 vehicle requiring it.
one or multiple dimensions.
For every ResourceGroup in the model, each (used) vehicle in the solution
which requires a resource (see NotifyVehicleRequiresResource()) from this
group must be assigned to exactly 1 resource, and each resource can in
turn be assigned to at most 1 vehicle requiring it.
Attributes for a dimension.
A Resource sets attributes (costs/constraints) for a set of dimensions.
Class used to solve a secondary model within a first solution strategy.
Struct used to store a variable value.
Struct used to sort and store vehicles by their type.
Parameters which have to be set when creating a RoutingModel.
Parameters which have to be set when creating a RoutingModel.
Routing model visitor.
Parameters defining the search used to solve vehicle routing problems.
Parameters defining the search used to solve vehicle routing problems.
Parameters required for the improvement search limit.
Parameters required for the improvement search limit.
Properties used to select in which order nodes or node pairs are considered
in insertion heuristics.
Local search neighborhood operators used to build a solutions neighborhood.
Local search neighborhood operators used to build a solutions neighborhood.
In insertion-based heuristics, describes what positions must be considered
when inserting a pickup/delivery pair, and in what order they are
considered.
Underlying solver to use in dimension scheduling, respectively for
continuous and mixed models.
Used by `RoutingModel` to report the status of the search for a solution.
Used by `RoutingModel` to report the status of the search for a solution.
Protobuf enum
operations_research.RoutingSearchStatus.Value
The ruin composition strategies specifies how ruin are selected at every ILS
iteration.
The ruin composition strategies specifies how ruin are selected at every ILS
iteration.
Protobuf enum
operations_research.RuinCompositionStrategy.Value
Parameters to configure a perturbation based on a ruin and recreate approach.
Parameters to configure a perturbation based on a ruin and recreate approach.
Ruin strategies, used in perturbation based on ruin and recreate approaches.
Ruin strategies, used in perturbation based on ruin and recreate approaches.
Contains the definitions for all the sat algorithm parameters and their
default values.
Whether to expoit the binary clause to minimize learned clauses further.
Contains the definitions for all the sat algorithm parameters and their
default values.
The clauses that will be kept during a cleanup are the ones that come
first under this order.
Each time a clause activity is bumped, the clause has a chance to be
protected during the next cleanup phase.
Do we try to minimize conflicts (greedily) when creating them.
Rounding method to use for feasibility pump.
In what order do we add the assumptions in a core-based max-sat algorithm
What stratification algorithm we use in the presence of weight.
Specifies the initial polarity (true/false) when the solver branches on a
variable.
Restart algorithms.
The search branching will be used to decide how to branch on unfixed nodes.
Protobuf enum
operations_research.sat.SatParameters.SharedTreeSplitStrategy
Variables without activity (i.e. at the beginning of the search) will be
tried in this preferred order.
The type of system used to schedule CPU threads to do work in parallel.
Base class of all search limits.
The base class of all search logs that periodically outputs information when
the search is running.
the search is running.
A search monitor is a simple set of callbacks to monitor all search events
Search statistics.
Search statistics.
A sequence variable is a variable whose domain is a set of possible
orderings of the interval variables.
orderings of the interval variables.
The SequenceVarElement stores a partial representation of ranked
interval variables in the underlying sequence variable.
This representation consists of three vectors:
- the forward sequence.
interval variables in the underlying sequence variable.
This representation consists of three vectors:
- the forward sequence.
Specifies the behavior of a simulated annealing acceptance strategy.
Specifies the behavior of a simulated annealing acceptance strategy.
Ruin strategy based on the "Slack Induction by String Removals for Vehicle
Routing Problems" by Jan Christiaens and Greet Vanden Berghe, Transportation
Science 2020.
Ruin strategy based on the "Slack Induction by String Removals for Vehicle
Routing Problems" by Jan Christiaens and Greet Vanden Berghe, Transportation
Science 2020.
This class is the root class of all solution collectors.
It implements a basic query API to be used independently
of the collector used.
It implements a basic query API to be used independently
of the collector used.
This class is used to manage a pool of solutions.
Protobuf type
operations_research.pdlp.SolveLog
Protobuf type
operations_research.pdlp.SolveLog
Solver Class
A solver represents the main computation engine.
A solver represents the main computation engine.
This exceptions signal that a failure has been raised in the C++ world.
Holds semantic information stating that the 'expression' has been
cast into 'variable' using the Var() method, and that
'maintainer' is responsible for maintaining the equality between
'variable' and 'expression'.
cast into 'variable' using the Var() method, and that
'maintainer' is responsible for maintaining the equality between
'variable' and 'expression'.
This class represents a sorted list of disjoint, closed intervals.
A permutation of integers encoded as a list of cycles, hence the "sparse"
format.
A permutation of integers encoded as a list of cycles, hence the "sparse"
format.
Ruin strategy that removes a number of spatially close routes.
Ruin strategy that removes a number of spatially close routes.
A symmetry breaker is an object that will visit a decision and
create the 'symmetrical' decision in return.
Each symmetry breaker represents one class of symmetry.
create the 'symmetrical' decision in return.
Each symmetry breaker represents one class of symmetry.
EXPERIMENTAL.
EXPERIMENTAL.
Specialized assignment constraint.
The values of the n-tuple formed by the given expression can only be one of
the listed n-tuples in values.
The values of the n-tuple formed by the given expression can only be one of
the listed n-tuples in values.
Relevant readings on infeasibility certificates:
(1) https://docs.mosek.com/modeling-cookbook/qcqo.html provides references
explaining why the primal rays imply dual infeasibility and dual rays imply
primal infeasibility
Relevant readings on infeasibility certificates:
(1) https://docs.mosek.com/modeling-cookbook/qcqo.html provides references
explaining why the primal rays imply dual infeasibility and dual rays imply
primal infeasibility
Protobuf type
operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria
Protobuf type
operations_research.pdlp.TerminationCriteria.DetailedOptimalityCriteria
Protobuf type
operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria
Protobuf type
operations_research.pdlp.TerminationCriteria.SimpleOptimalityCriteria
Protobuf enum
operations_research.pdlp.TerminationReason
Checker for type incompatibilities.
The following constraint ensures that incompatibilities and requirements
between types are respected.
It verifies both "hard" and "temporal" incompatibilities.
Two nodes with hard incompatible types cannot be served by the same vehicle
at all, while with a temporal incompatibility they can't be on the same
route at the same time.
The VisitTypePolicy of a node determines how visiting it impacts the type
count on the route.
For example, for
- three temporally incompatible types T1 T2 and T3
- 2 pairs of nodes a1/r1 and a2/r2 of type T1 and T2 respectively, with
- a1 and a2 of VisitTypePolicy TYPE_ADDED_TO_VEHICLE
- r1 and r2 of policy ADDED_TYPE_REMOVED_FROM_VEHICLE
- 3 nodes A, UV and AR of type T3, respectively with type policies
TYPE_ADDED_TO_VEHICLE, TYPE_ON_VEHICLE_UP_TO_VISIT and
TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED
the configurations
UV --> a1 --> r1 --> a2 --> r2, a1 --> r1 --> a2 --> r2 --> A and
a1 --> r1 --> AR --> a2 --> r2 are acceptable, whereas the configurations
a1 --> a2 --> r1 --> ..., or A --> a1 --> r1 --> ..., or
a1 --> r1 --> UV --> ... are not feasible.
It also verifies same-vehicle and temporal type requirements.
A node of type T_d with a same-vehicle requirement for type T_r needs to be
served by the same vehicle as a node of type T_r.
Temporal requirements, on the other hand, can take effect either when the
dependent type is being added to the route or when it's removed from it,
which is determined by the dependent node's VisitTypePolicy.
In the above example:
- If T3 is required on the same vehicle as T1, A, AR or UV must be on the
same vehicle as a1.
- If T2 is required when adding T1, a2 must be visited *before* a1, and if
r2 is also visited on the route, it must be *after* a1, i.e.
between types are respected.
It verifies both "hard" and "temporal" incompatibilities.
Two nodes with hard incompatible types cannot be served by the same vehicle
at all, while with a temporal incompatibility they can't be on the same
route at the same time.
The VisitTypePolicy of a node determines how visiting it impacts the type
count on the route.
For example, for
- three temporally incompatible types T1 T2 and T3
- 2 pairs of nodes a1/r1 and a2/r2 of type T1 and T2 respectively, with
- a1 and a2 of VisitTypePolicy TYPE_ADDED_TO_VEHICLE
- r1 and r2 of policy ADDED_TYPE_REMOVED_FROM_VEHICLE
- 3 nodes A, UV and AR of type T3, respectively with type policies
TYPE_ADDED_TO_VEHICLE, TYPE_ON_VEHICLE_UP_TO_VISIT and
TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED
the configurations
UV --> a1 --> r1 --> a2 --> r2, a1 --> r1 --> a2 --> r2 --> A and
a1 --> r1 --> AR --> a2 --> r2 are acceptable, whereas the configurations
a1 --> a2 --> r1 --> ..., or A --> a1 --> r1 --> ..., or
a1 --> r1 --> UV --> ... are not feasible.
It also verifies same-vehicle and temporal type requirements.
A node of type T_d with a same-vehicle requirement for type T_r needs to be
served by the same vehicle as a node of type T_r.
Temporal requirements, on the other hand, can take effect either when the
dependent type is being added to the route or when it's removed from it,
which is determined by the dependent node's VisitTypePolicy.
In the above example:
- If T3 is required on the same vehicle as T1, A, AR or UV must be on the
same vehicle as a1.
- If T2 is required when adding T1, a2 must be visited *before* a1, and if
r2 is also visited on the route, it must be *after* a1, i.e.
Checker for type requirements.
An integer variable.
A specialized linear expression: sum(ai * xi) + b.
A specialized linear expression: sum(ai * xi) + b.