Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
operations_research::bop Namespace Reference

Classes

class  AdaptiveParameterValue
 
class  AssignmentAndConstraintFeasibilityMaintainer
 
class  BacktrackableIntegerSet
 
class  BopAdaptiveLNSOptimizer
 
class  BopCompleteLNSOptimizer
 
struct  BopConstraintTerm
 
class  BopOptimizerBase
 
class  BopRandomFirstSolutionGenerator
 
class  BopSolution
 
class  BopSolver
 Solver of Boolean Optimization Problems based on Local Search. More...
 
class  ConstraintBasedNeighborhood
 
class  GuidedSatFirstSolutionGenerator
 
class  IntegralSolver
 
struct  LearnedInfo
 
class  LinearRelaxation
 
class  LocalSearchAssignmentIterator
 
class  LocalSearchOptimizer
 
class  LubyAdaptiveParameterValue
 
class  NeighborhoodGenerator
 
class  NonOrderedSetHasher
 
class  ObjectiveBasedNeighborhood
 
class  OneFlipConstraintRepairer
 
class  OptimizerSelector
 
class  PortfolioOptimizer
 
class  ProblemState
 
class  RelationGraphBasedNeighborhood
 
class  SatCoreBasedOptimizer
 
class  SatWrapper
 

Typedefs

typedef util_intops::StrongVector< SparseIndex, BopConstraintTermBopConstraintTerms
 

Enumerations

enum class  BopSolveStatus {
  OPTIMAL_SOLUTION_FOUND , FEASIBLE_SOLUTION_FOUND , NO_SOLUTION_FOUND , INFEASIBLE_PROBLEM ,
  INVALID_PROBLEM
}
 Status of the solve of Bop. More...
 

Functions

std::ostream & operator<< (std::ostream &os, BopOptimizerBase::Status status)
 
 DEFINE_STRONG_INDEX_TYPE (OptimizerIndex)
 
const OptimizerIndex kInvalidOptimizerIndex (-1)
 
 DEFINE_STRONG_INDEX_TYPE (ConstraintIndex)
 
 DEFINE_STRONG_INDEX_TYPE (EntryIndex)
 
 DEFINE_STRONG_INDEX_TYPE (SearchIndex)
 
 DEFINE_STRONG_INDEX_TYPE (TermIndex)
 
 DEFINE_STRONG_INDEX_TYPE (VariableIndex)
 
 DEFINE_STRONG_INT64_TYPE (SolverTimeStamp)
 
std::string GetSolveStatusString (BopSolveStatus status)
 
std::ostream & operator<< (std::ostream &os, BopSolveStatus status)
 
 DEFINE_STRONG_INDEX_TYPE (SparseIndex)
 
BopOptimizerBase::Status LoadStateProblemToSatSolver (const ProblemState &problem_state, sat::SatSolver *sat_solver)
 
void ExtractLearnedInfoFromSatSolver (sat::SatSolver *solver, LearnedInfo *info)
 
void SatAssignmentToBopSolution (const sat::VariablesAssignment &assignment, BopSolution *solution)
 

Detailed Description

BopAdaptiveLNSOptimizer

Neighborhood generators.

Typedef Documentation

◆ BopConstraintTerms

Enumeration Type Documentation

◆ BopSolveStatus

Status of the solve of Bop.

Enumerator
OPTIMAL_SOLUTION_FOUND 

The solver found the proven optimal solution.

FEASIBLE_SOLUTION_FOUND 

The solver found a solution, but it is not proven to be the optimal solution.

NO_SOLUTION_FOUND 

The solver didn't find any solution.

INFEASIBLE_PROBLEM 

The problem is infeasible.

INVALID_PROBLEM 

The problem is invalid.

Definition at line 34 of file bop_types.h.

Function Documentation

◆ DEFINE_STRONG_INDEX_TYPE() [1/7]

operations_research::bop::DEFINE_STRONG_INDEX_TYPE ( ConstraintIndex )

◆ DEFINE_STRONG_INDEX_TYPE() [2/7]

operations_research::bop::DEFINE_STRONG_INDEX_TYPE ( EntryIndex )

◆ DEFINE_STRONG_INDEX_TYPE() [3/7]

operations_research::bop::DEFINE_STRONG_INDEX_TYPE ( OptimizerIndex )

◆ DEFINE_STRONG_INDEX_TYPE() [4/7]

operations_research::bop::DEFINE_STRONG_INDEX_TYPE ( SearchIndex )

◆ DEFINE_STRONG_INDEX_TYPE() [5/7]

operations_research::bop::DEFINE_STRONG_INDEX_TYPE ( SparseIndex )
Todo
(user): Remove.

◆ DEFINE_STRONG_INDEX_TYPE() [6/7]

operations_research::bop::DEFINE_STRONG_INDEX_TYPE ( TermIndex )

◆ DEFINE_STRONG_INDEX_TYPE() [7/7]

operations_research::bop::DEFINE_STRONG_INDEX_TYPE ( VariableIndex )

◆ DEFINE_STRONG_INT64_TYPE()

operations_research::bop::DEFINE_STRONG_INT64_TYPE ( SolverTimeStamp )

◆ ExtractLearnedInfoFromSatSolver()

void operations_research::bop::ExtractLearnedInfoFromSatSolver ( sat::SatSolver * solver,
LearnedInfo * info )

Extracts from the sat solver any new information about the problem. Note that the solver is not const because this function clears what is considered "new".

This should never be called if the problem is UNSAT.

Fixed variables.

Binary clauses.

Definition at line 109 of file bop_util.cc.

◆ GetSolveStatusString()

std::string operations_research::bop::GetSolveStatusString ( BopSolveStatus status)
inline

Fallback. We don't use "default:" so the compiler will return an error if we forgot one enum case above.

Definition at line 52 of file bop_types.h.

◆ kInvalidOptimizerIndex()

const OptimizerIndex operations_research::bop::kInvalidOptimizerIndex ( - 1)

◆ LoadStateProblemToSatSolver()

BopOptimizerBase::Status operations_research::bop::LoadStateProblemToSatSolver ( const ProblemState & problem_state,
sat::SatSolver * sat_solver )

Loads the problem state into the sat_solver. If the problem has already been loaded in the sat_solver, fixed variables and objective bounds are updated. Returns the status of the load:

  • CONTINUE: State problem successfully loaded.
  • OPTIMAL_SOLUTION_FOUND: Solution is proved optimal. If a feasible solution exists, this load function imposes the solution to be strictly better. Then when SAT proves the problem is UNSAT, that actually means that the current solution is optimal.
  • INFEASIBLE: The problem is proved to be infeasible.
    Note
    the sat_solver will be backtracked to the root level in order to add new constraints.

Definition at line 98 of file bop_util.cc.

◆ operator<<() [1/2]

std::ostream & operations_research::bop::operator<< ( std::ostream & os,
BopOptimizerBase::Status status )
inline

Definition at line 111 of file bop_base.h.

◆ operator<<() [2/2]

std::ostream & operations_research::bop::operator<< ( std::ostream & os,
BopSolveStatus status )
inline

Definition at line 69 of file bop_types.h.

◆ SatAssignmentToBopSolution()

void operations_research::bop::SatAssignmentToBopSolution ( const sat::VariablesAssignment & assignment,
BopSolution * solution )

Only extract the variables of the initial problem.

Definition at line 132 of file bop_util.cc.