SemOpt  0.2alpha5-SCC
main.cpp
1 
9 #include "semopt.h"
10 
14 bool debug = false;
15 bool externalsat = true;
16 string satsolver;
17 int labellingconditions = 0;
18 bool manualopt = false;
19 string inputfile;
20 string semantics;
21 
22 time_t start;
23 
24 #ifndef UNIT_TEST
25 
26 int main(int argc, char *argv[])
27 {
28  //debug = true; // more verbose
29  inputfile = string("test-input/scc-test.dl");
30  AF framework = AF();
31  if (!framework.readFile(inputfile))
32  {
33  return -1;
34  }
35 
36  Preferred p = Preferred();
37 
38  SetArguments A_set1 = SetArguments();
39  A_set1.add_Argument(framework.getArgumentByName("a1"));
40  A_set1.add_Argument(framework.getArgumentByName("a2"));
41  A_set1.add_Argument(framework.getArgumentByName("a3"));
42  A_set1.add_Argument(framework.getArgumentByName("a4"));
43  A_set1.add_Argument(framework.getArgumentByName("a5"));
44  A_set1.add_Argument(framework.getArgumentByName("a6"));
45 
46  SetArguments C_set1 = SetArguments();
47  C_set1.add_Argument(framework.getArgumentByName("a1"));
48  C_set1.add_Argument(framework.getArgumentByName("a6"));
49 
50  p.prefSAT(&A_set1, &C_set1);
51 
52  cout << "First example" << endl;
53  int extension_counter = 1;
54 
55  for (Preferred::iterator it = p.begin(); it != p.end(); it++)
56  {
57  cout << "Extension number " << extension_counter++ << endl;
58  for (SetArgumentsIterator itarg = (*it).inargs()->begin();
59  itarg != (*it).inargs()->end(); itarg++)
60  {
61  cout << (*itarg)->getName() << endl;
62  }
63  cout << "An alternative way to print out this extension" << endl;
64  cout << *((*it).inargs()) << endl;
65  }
66  cout << "End of first example" << endl << endl;
67 
68 
69  SetArguments A_set2 = SetArguments();
70  A_set2.add_Argument(framework.getArgumentByName("a1"));
71  A_set2.add_Argument(framework.getArgumentByName("a2"));
72  A_set2.add_Argument(framework.getArgumentByName("a3"));
73  A_set2.add_Argument(framework.getArgumentByName("a4"));
74  A_set2.add_Argument(framework.getArgumentByName("a5"));
75  A_set2.add_Argument(framework.getArgumentByName("a6"));
76 
77  SetArguments C_set2 = SetArguments();
78  C_set2.add_Argument(framework.getArgumentByName("a2"));
79  C_set2.add_Argument(framework.getArgumentByName("a3"));
80  C_set2.add_Argument(framework.getArgumentByName("a4"));
81 
82  p.prefSAT(&A_set2, &C_set2);
83 
84  cout << "Second example" << endl;
85  extension_counter = 1;
86  for (Preferred::iterator it = p.begin(); it != p.end(); it++)
87  {
88  cout << "Extension number " << extension_counter++ << endl;
89  cout << *((*it).inargs()) << endl;
90  }
91  cout << "End of second example" << endl << endl;
92 
93  return 0;
94 }
95 #endif