예제 #1
0
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
예제 #2
0
    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)