Setting Alloy before adding constraints...
[Benchmarks_CSolver.git] / killerSudoku / csolversudoku.py
index 3a17e98f7a98e3fabc4ac3d7bb5374c012edda11..8a0d900d1330578e370f86f3092fb7977c188b78 100644 (file)
@@ -42,6 +42,8 @@ def generateEqualityConstraint(csolverlb, solver, e1, e2):
 def generateKillerSudokuConstraints(N, killerRules, solverOption):
        csolverlb = ps.loadCSolver()
        solver = csolverlb.createCCSolver()
+       if solverOption == Solver.ALLOY:
+               csolverlb.setAlloyEncoder(solver)
        s1 = [ i for i in range(1, N+1)]
        set1 = (c_long* len(s1))(*s1)
        s1 = csolverlb.createSet(solver, c_uint(1), set1, c_uint(N))
@@ -232,10 +234,11 @@ def generateKillerSudokuConstraints(N, killerRules, solverOption):
                        valid([problem[i + k % root, j + k // root] for k in range(N)])
        
        #Serializing the problem before solving it ....
+       print "Done with encoding ...."
        if solverOption == Solver.SERIALISE:
                csolverlb.serialize(solver)
-       if solverOption == Solver.ALLOY:
-               csolverlb.setAlloyEncoder(solver)
+
+       print "start solving the problem ..."
        if csolverlb.solve(solver) != 1:
                return None
        result = [[0 for i in range(N)] for i in range(N)]