def run(FILE, options=Options()): solver = sagesat.SAGE_SAT(options) (success, program) = front(FILE) if not success: return success = middle(solver, program, options) if not success: return back(solver, program, options) if solver.options.SHARPSAT: return solver.sharpSAT() else: (is_sat, model) = solver.check(500) display_results(solver, program, is_sat, model) #print("Refine time:", solver.refine_time) return is_sat
G = CubeGraph(5) G.relabel() #print(G) c_edges = set(G.edges(labels=False)) off = c_edges.difference(cycle) for (u, v) in off: print("assert disallowed_edge(x," + str(u) + "," + str(v) + ")") sys.exit() base_dir = "../../test/enum_d5_matchings/" v1 = [(1, 3), (1, 5), (1, 9), (1, 17)] v2 = [(2, 3), (2, 6), (2, 10), (2, 18)] v7 = [(3, 7), (5, 7), (6, 7), (7, 15), (7, 23)] for i in itertools.product(v1, v2, v7): name = "e_" + "_".join([str(u) + str(v) for (u, v) in i]) print(name) f = open(base_dir + name, 'w') f.write(s) for (u, v) in i: f.write("assert required_edge(x," + str(u) + "," + str(v) + ")\n") f.close() options = Options() options.DUMP_INITIAL_DIMACS = True options.DIMACS_FILE = base_dir + name + ".dimacs" spec = base_dir + name run(spec, options)