14 #ifndef OR_TOOLS_SAT_ROUTING_CUTS_H_
15 #define OR_TOOLS_SAT_ROUTING_CUTS_H_
22 #include "ortools/sat/cp_model.pb.h"
51 const std::vector<std::pair<int, int>>& arcs,
52 int min_subset_size,
int stop_at_num_components,
53 std::vector<int>* subset_data,
54 std::vector<absl::Span<const int>>* subsets);
64 int num_nodes, std::vector<int> tails, std::vector<int> heads,
65 std::vector<Literal> literals, Model*
model);
72 std::vector<int> heads,
73 std::vector<Literal> literals,
74 std::vector<int64_t> demands,
88 int num_nodes,
const std::vector<int>& tails,
const std::vector<int>& heads,
89 const std::vector<AffineExpression>& arc_capacities,
90 std::function<
void(
const std::vector<bool>& in_subset,
91 IntegerValue* min_incoming_flow,
92 IntegerValue* min_outgoing_flow)>
CutGenerator CreateStronglyConnectedGraphCutGenerator(int num_nodes, std::vector< int > tails, std::vector< int > heads, std::vector< Literal > literals, Model *model)
CutGenerator CreateCVRPCutGenerator(int num_nodes, std::vector< int > tails, std::vector< int > heads, std::vector< Literal > literals, std::vector< int64_t > demands, int64_t capacity, Model *model)
void GenerateInterestingSubsets(int num_nodes, const std::vector< std::pair< int, int >> &arcs, int min_subset_size, int stop_at_num_components, std::vector< int > *subset_data, std::vector< absl::Span< const int >> *subsets)
CutGenerator CreateFlowCutGenerator(int num_nodes, const std::vector< int > &tails, const std::vector< int > &heads, const std::vector< AffineExpression > &arc_capacities, std::function< void(const std::vector< bool > &in_subset, IntegerValue *min_incoming_flow, IntegerValue *min_outgoing_flow)> get_flows, Model *model)
Collection of objects used to extend the Constraint Solver library.