Google OR-Tools v9.9
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
Google.OrTools.Sat Namespace Reference

Classes

class  AllDifferentConstraintProto
 All affine expressions must take different values. More...
 
class  AutomatonConstraint
 Specialized automaton constraint. More...
 
class  AutomatonConstraintProto
 This constraint forces a sequence of variables to be accepted by an automaton. More...
 
class  BoolArgumentProto
 Argument of the constraints of the form OP(literals). More...
 
class  BooleanAssignment
 Stores an assignment of variables as a list of true literals using their signed representation. There will be at most one literal per variable. The literals will be sorted by increasing variable index. The assignment may be partial in the sense that some variables may not appear and thus not be assigned. More...
 
class  BooleanProblemReflection
 Holder for reflection information generated from ortools/sat/boolean_problem.proto. More...
 
class  BoolVar
 Holds a Boolean variable. More...
 
class  BoundedLinearExpression
 Holds a linear constraint: expression ∈ domain More...
 
class  CircuitConstraint
 Specialized circuit constraint. More...
 
class  CircuitConstraintProto
 The circuit constraint is defined on a graph where the arc presence are controlled by literals. Each arc is given by an index in the tails/heads/literals lists that must have the same size. More...
 
class  Constraint
 Wrapper around a ConstraintProto. More...
 
class  ConstraintProto
 Next id: 31. More...
 
class  CpModel
 Wrapper class around the cp_model proto. More...
 
class  CpModelProto
 A constraint programming problem. More...
 
class  CpModelReflection
 Holder for reflection information generated from ortools/sat/cp_model.proto. More...
 
class  CpModelServiceReflection
 Holder for reflection information generated from ortools/sat/cp_model_service.proto. More...
 
class  CpObjectiveProto
 Optimization objective. More...
 
class  CpSatHelper
 
class  CpSolver
 Wrapper around the SAT solver. More...
 
class  CpSolverRequest
 The request sent to the remote solve service. More...
 
class  CpSolverResponse
 The response returned by a solver trying to solve a CpModelProto. More...
 
class  CpSolverSolution
 Just a message used to store dense solution. This is used by the additional_solutions field. More...
 
class  CpSolverSolutionCallback
 Parent class to create a callback called at each solution. More...
 
class  CumulativeConstraint
 Specialized cumulative constraint. More...
 
class  CumulativeConstraintProto
 The sum of the demands of the intervals at each interval point cannot exceed a capacity. Note that intervals are interpreted as [start, end) and as such intervals like [2,3) and [3,4) do not overlap for the point of view of this constraint. Moreover, intervals of size zero are ignored. More...
 
class  DecisionStrategyProto
 Define the strategy to follow when the solver needs to take a new decision. More...
 
class  DenseMatrixProto
 A dense matrix of numbers encoded in a flat way, row by row. That is matrix[i][j] = entries[i * num_cols + j];. More...
 
class  ElementConstraintProto
 The constraint target = vars[index]. This enforces that index takes one of the value in [0, vars_size()). More...
 
class  FloatObjectiveProto
 A linear floating point objective: sum coeffs[i] * vars[i] + offset. More...
 
class  HelperExtensions
 
interface  ILiteral
 Holds a Boolean variable or its negation. More...
 
class  IntegerVariableProto
 An integer variable. More...
 
class  IntervalConstraintProto
 This is not really a constraint. It is there so it can be referred by other constraints using this "interval" concept. More...
 
class  IntervalVar
 An interval variable. More...
 
class  IntVar
 Holds a integer variable with a discrete domain. More...
 
class  InverseConstraintProto
 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. More...
 
class  LinearArgumentProto
 
class  LinearBooleanConstraint
 A linear Boolean constraint which is a bounded sum of linear terms. Each term beeing a literal times an integer coefficient. If we assume that a literal takes the value 1 if it is true and 0 otherwise, the constraint is: lower_bound <= ... + coefficients[i] * literals[i] + ... <= upper_bound. More...
 
class  LinearBooleanProblem
 A linear Boolean problem. More...
 
class  LinearConstraintProto
 The linear sum vars[i] * coeffs[i] must fall in the given domain. The domain has the same format as the one in IntegerVariableProto. More...
 
class  LinearExpr
 Holds a linear expression: sum (ai * xi) + b. More...
 
class  LinearExprBuilder
 A builder class for linear expressions. More...
 
class  LinearExpressionProto
 Some constraints supports linear expression instead of just using a reference to a variable. This is especially useful during presolve to reduce the model size. More...
 
class  LinearObjective
 The objective of an optimization problem. More...
 
class  ListOfVariablesProto
 A list of variables, without any semantics. More...
 
class  LogCallback
 
class  LogCallbackDelegate
 
class  MultipleCircuitConstraint
 Specialized multiple circuit constraint. More...
 
class  NoOverlap2dConstraint
 Specialized NoOverlap2D constraint. More...
 
class  NoOverlap2DConstraintProto
 The boxes defined by [start_x, end_x) * [start_y, end_y) cannot overlap. Furthermore, one box is optional if at least one of the x or y interval is optional. More...
 
class  NoOverlapConstraintProto
 All the intervals (index of IntervalConstraintProto) must be disjoint. More formally, there must exist a sequence so that for each consecutive intervals, we have end_i <= start_{i+1}. In particular, intervals of size zero do matter for this constraint. This is also known as a disjunctive constraint in scheduling. More...
 
class  NotBoolVar
 
class  ObjectiveSolutionPrinter
 A specialized solution printer. More...
 
class  operations_research_sat
 
class  operations_research_satPINVOKE
 
class  PartialVariableAssignment
 This message encodes a partial (or full) assignment of the variables of a CpModelProto. The variable indices should be unique and valid variable indices. More...
 
class  ReservoirConstraint
 Specialized reservoir constraint. More...
 
class  ReservoirConstraintProto
 Maintain a reservoir level within bounds. The water level starts at 0, and at any time, it must be within [min_level, max_level]. More...
 
class  RoutesConstraintProto
 The "VRP" (Vehicle Routing Problem) constraint. More...
 
class  SatParameters
 Contains the definitions for all the sat algorithm parameters and their default values. More...
 
class  SatParametersReflection
 Holder for reflection information generated from ortools/sat/sat_parameters.proto. More...
 
class  SolutionCallback
 
class  SolveWrapper
 
class  SparsePermutationProto
 A permutation of integers encoded as a list of cycles, hence the "sparse" format. The image of an element cycle[i] is cycle[(i + 1) % cycle_length]. More...
 
class  SymmetryProto
 EXPERIMENTAL. For now, this is meant to be used by the solver and not filled by clients. More...
 
class  TableConstraint
 Specialized assignment constraint. More...
 
class  TableConstraintProto
 The values of the n-tuple formed by the given variables can only be one of the listed n-tuples in values. The n-tuples are encoded in a flattened way: [tuple0_v0, tuple0_v1, ..., tuple0_v{n-1}, tuple1_v0, ...]. More...
 
struct  Term
 Holds a term (expression * coefficient) More...
 

Enumerations

enum  CpSolverStatus {
  Unknown = 0 , ModelInvalid = 1 , Feasible = 2 , Infeasible = 3 ,
  Optimal = 4
}
 The status returned by a solver trying to solve a CpModelProto. More...
 

Functions

delegate void StringToVoidDelegate (string message)
 Used to wrap log callbacks (std::function<void(const std::string&>)
 

Detailed Description

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

<auto-generated />

This file was automatically generated by SWIG (https://www.swig.org). Version 4.2.0

Do not make changes to this file unless you know what you are doing - modify the SWIG interface file instead.

Enumeration Type Documentation

◆ CpSolverStatus

The status returned by a solver trying to solve a CpModelProto.

Enumerator
Unknown 

The status of the model is still unknown. A search limit has been reached before any of the statuses below could be determined.

ModelInvalid 

The given CpModelProto didn't pass the validation step. You can get a detailed error by calling ValidateCpModel(model_proto).

Feasible 

A feasible solution has been found. But the search was stopped before we could prove optimality or before we enumerated all solutions of a feasibility problem (if asked).

Infeasible 

The problem has been proven infeasible.

Optimal 

An optimal feasible solution has been found.

More generally, this status represent a success. So we also return OPTIMAL if we find a solution for a pure feasiblity problem or if a gap limit has been specified and we return a solution within this limit. In the case where we need to return all the feasible solution, this status will only be returned if we enumerated all of them; If we stopped before, we will return FEASIBLE.

Definition at line 209 of file CpModel.pb.cs.

Function Documentation

◆ StringToVoidDelegate()

delegate void Google.OrTools.Sat.StringToVoidDelegate ( string message)

Used to wrap log callbacks (std::function<void(const std::string&>)