Google OR-Tools v9.11
a fast and portable software suite for combinatorial optimization
Loading...
Searching...
No Matches
circuit.h File Reference
#include <functional>
#include <memory>
#include <utility>
#include <vector>
#include "absl/container/btree_set.h"
#include "absl/container/flat_hash_map.h"
#include "ortools/base/logging.h"
#include "ortools/base/types.h"
#include "ortools/graph/strongly_connected_components.h"
#include "ortools/sat/integer.h"
#include "ortools/sat/model.h"
#include "ortools/sat/sat_base.h"
#include "ortools/util/rev.h"
#include "ortools/util/strong_integers.h"

Go to the source code of this file.

Classes

class  operations_research::sat::CircuitPropagator
 
struct  operations_research::sat::CircuitPropagator::Options
 
class  operations_research::sat::NoCyclePropagator
 Enforce the fact that there is no cycle in the given directed graph. More...
 
class  operations_research::sat::CircuitCoveringPropagator
 

Namespaces

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

Functions

template<class IntContainer >
int operations_research::sat::ReindexArcs (IntContainer *tails, IntContainer *heads, absl::flat_hash_map< int, int > *mapping_output=nullptr)
 
void operations_research::sat::LoadSubcircuitConstraint (int num_nodes, const std::vector< int > &tails, const std::vector< int > &heads, const std::vector< Literal > &literals, Model *model, bool multiple_subcircuit_through_zero)
 
std::function< void(Model *)> operations_research::sat::ExactlyOnePerRowAndPerColumn (const std::vector< std::vector< Literal > > &graph)
 
std::function< void(Model *)> operations_research::sat::CircuitCovering (const std::vector< std::vector< Literal > > &graph, const std::vector< int > &distinguished_nodes)