def test_toy_minizinc():
    model = Model()
    model.add_string('''
    var -2..2: a;
    constraint a < 0;
    solve satisfy;
    ''')
    gecode = Solver.lookup("gecode")
    inst = Instance(gecode, model)
    result = inst.solve(all_solutions=True)
    print([{"a": result[i, "a"]} for i in range(len(result))])
Example #2
0
 async def explore_async(self,
                         decision_model,
                         backend_solver_name='gecode'):
     mzn_model_name = decision_model.get_mzn_model_name()
     mzn_model_str = res.read_text('idesyde.minizinc', mzn_model_name)
     mzn_model = Model()
     mzn_model.add_string(mzn_model_str)
     backend_solver = Solver.lookup(backend_solver_name)
     instance = Instance(backend_solver, mzn_model)
     decision_model.populate_mzn_model(instance)
     result = await instance.solve_async()
     return decision_model.rebuild_forsyde_model(result)
def constraint_solve_minizinc(modstr):
    model = Model()
    model.add_string(modstr)
    gecode = Solver.lookup("gecode")
    inst = Instance(gecode, model)
    return inst.solve()
Example #4
0
from minizinc import Instance, Model, Solver
gecode = Solver.lookup("gecode")

trivial = Model()
trivial.add_string("""
    var 1..10: x;
    constraint (x mod 2) = 1;
    solve ::int_search([x], input_order, indomain_min) maximize x;
    """)
instance = Instance(gecode, trivial)

# Find and print all intermediate solutions
result = instance.solve(intermediate_solutions=True)
for i in range(len(result)):
    print(result[i, "x"])
Example #5
0
for i in range(1, max + 1):
    minizinc2 = minizinc2 + "x" + str(i) + "+"
minizinc2 = minizinc2[:-1]

minizinc += "\n" + minizinc2 + ";\n\n"

minizinc += "\nconstraint a!=0 ;\n"

minizinc += "\nsolve minimize a;\n"

print(max)
print(minizinc)

sum = 0

trivial.add_string(minizinc)
instance = Instance(gecode, trivial)

# Find and print all intermediate solutions
result = instance.solve(intermediate_solutions=True)

f = open(FileName + "_solution.txt", "w")

for j in range(1, max + 1):
    #print("x"+str(j)+" = ")
    print(result[len(result) - 1, "x" + str(j)])
    f.write("x" + str(j) + "=")
    f.write(str(result[len(result) - 1, "x" + str(j)]) + "\n")
    sum += result[len(result) - 1, "x" + str(j)]

f.write("\nnumber = " + str(sum))