-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathmain.cpp
More file actions
52 lines (47 loc) · 1.11 KB
/
main.cpp
File metadata and controls
52 lines (47 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include "./cnf.hpp"
#include <vector>
#include "./cdcl.hpp"
void testWatchedLits(){
CNF cnf;
cnf.addClause({1,2,-3});
cnf.addClause({2,3});
cnf.addClause({-2});
CdclSolver solver(3,cnf);
solver.propagate();
}
void testUNSAT() {
CNF cnf;
cnf.addClause({1,2});
cnf.addClause({-1,-2});
cnf.addClause({-1,2});
cnf.addClause({1,-2});
CdclSolver solver(2,cnf,true);
std::cout << solver.solve();
solver.printAssignment();
}
int main(){
testWatchedLits();
CNF cnf;
Clause c1 = {1};
Clause c2 = {-1, 2};
Clause c3 = {-3, 4};
Clause c4 = {-5, -6};
Clause c5 = {-1,-5,7};
Clause c6 = {-2,-5,6,-7};
cnf.addClause(c1);
cnf.addClause(c2);
cnf.addClause(c3);
cnf.addClause(c4);
cnf.addClause(c5);
cnf.addClause(c6);
CdclSolver solver(7, cnf);
std::cout << "Satisfiable: " << solver.solve() << std::endl;
solver.printAssignment();
CNF c;
int nlits = ReadFromFile("cnfFiles/examples/CBS_k3_n100_m403_b10_0.cnf", c);
CdclSolver solver2(nlits, c);
std::cout << "Satisfiable: " << solver2.solve(10000) << std::endl;
solver2.printAssignment();
testUNSAT();
}