Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
cuts.h File Reference
#include <stdint.h>
#include <algorithm>
#include <array>
#include <functional>
#include <limits>
#include <string>
#include <utility>
#include <vector>
#include "absl/container/btree_map.h"
#include "absl/container/btree_set.h"
#include "absl/container/flat_hash_map.h"
#include "absl/container/flat_hash_set.h"
#include "absl/numeric/int128.h"
#include "absl/strings/str_cat.h"
#include "absl/types/span.h"
#include "ortools/base/strong_vector.h"
#include "ortools/sat/implied_bounds.h"
#include "ortools/sat/integer.h"
#include "ortools/sat/linear_constraint.h"
#include "ortools/sat/linear_constraint_manager.h"
#include "ortools/sat/model.h"
#include "ortools/sat/synchronization.h"
#include "ortools/util/strong_integers.h"

Go to the source code of this file.

Classes

struct  operations_research::sat::CutGenerator
 
struct  operations_research::sat::CutTerm
 
struct  operations_research::sat::CutData
 Our cut are always of the form linear_expression <= rhs. More...
 
class  operations_research::sat::CutDataBuilder
 Stores temporaries used to build or manipulate a CutData. More...
 
class  operations_research::sat::ImpliedBoundsProcessor
 
struct  operations_research::sat::ImpliedBoundsProcessor::BestImpliedBoundInfo
 
struct  operations_research::sat::RoundingOptions
 
class  operations_research::sat::IntegerRoundingCutHelper
 
class  operations_research::sat::CoverCutHelper
 Helper to find knapsack cover cuts. More...
 
class  operations_research::sat::BoolRLTCutHelper
 
class  operations_research::sat::SumOfAllDiffLowerBounder
 Utility class for the AllDiff cut generator. More...
 

Namespaces

namespace  operations_research
 In SWIG mode, we don't want anything besides these top-level includes.
 
namespace  operations_research::sat
 

Functions

IntegerValue operations_research::sat::GetFactorT (IntegerValue rhs_remainder, IntegerValue divisor, IntegerValue max_magnitude)
 
std::function< IntegerValue(IntegerValue)> operations_research::sat::GetSuperAdditiveRoundingFunction (IntegerValue rhs_remainder, IntegerValue divisor, IntegerValue t, IntegerValue max_scaling)
 
std::function< IntegerValue(IntegerValue)> operations_research::sat::GetSuperAdditiveStrengtheningFunction (IntegerValue positive_rhs, IntegerValue min_magnitude)
 
std::function< IntegerValue(IntegerValue)> operations_research::sat::GetSuperAdditiveStrengtheningMirFunction (IntegerValue positive_rhs, IntegerValue scaling)
 
std::function< IntegerValue(IntegerValue)> operations_research::sat::ExtendNegativeFunction (std::function< IntegerValue(IntegerValue)> base_f, IntegerValue period)
 
CutGenerator operations_research::sat::CreatePositiveMultiplicationCutGenerator (AffineExpression z, AffineExpression x, AffineExpression y, int linearization_level, Model *model)
 A cut generator for z = x * y (x and y >= 0).
 
LinearConstraint operations_research::sat::ComputeHyperplanAboveSquare (AffineExpression x, AffineExpression square, IntegerValue x_lb, IntegerValue x_ub, Model *model)
 
LinearConstraint operations_research::sat::ComputeHyperplanBelowSquare (AffineExpression x, AffineExpression square, IntegerValue x_value, Model *model)
 
CutGenerator operations_research::sat::CreateSquareCutGenerator (AffineExpression y, AffineExpression x, int linearization_level, Model *model)
 
CutGenerator operations_research::sat::CreateAllDifferentCutGenerator (const std::vector< AffineExpression > &exprs, Model *model)
 
CutGenerator operations_research::sat::CreateLinMaxCutGenerator (const IntegerVariable target, const std::vector< LinearExpression > &exprs, const std::vector< IntegerVariable > &z_vars, Model *model)
 
bool operations_research::sat::BuildMaxAffineUpConstraint (const LinearExpression &target, IntegerVariable var, const std::vector< std::pair< IntegerValue, IntegerValue > > &affines, Model *model, LinearConstraintBuilder *builder)
 
CutGenerator operations_research::sat::CreateMaxAffineCutGenerator (LinearExpression target, IntegerVariable var, std::vector< std::pair< IntegerValue, IntegerValue > > affines, const std::string cut_name, Model *model)
 
CutGenerator operations_research::sat::CreateCliqueCutGenerator (const std::vector< IntegerVariable > &base_variables, Model *model)