30 using SatGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS>;
32 SatGraph g(2 * num_variables);
33 for (
const auto& [x, y] : clauses) {
38 std::vector<int> comp(boost::num_vertices(g));
39 boost::strong_components(g, boost::make_iterator_property_map(comp.begin(), boost::get(boost::vertex_index, g)));
41 for (
int i = 1; i <= num_variables; ++i) {
bool two_sat_satisfiable(int num_variables, const std::vector< std::pair< int, int > > &clauses)
Returns whether a 2-SAT instance is satisfiable.
Definition sat.hpp:29