|
ChangeLog
python-zibopt change log
Featured 0.7.2 dev
solver += x >= y solution = solver.minimize(objective=x) solver += x <= (y-1) + 100*(1-z) 0.7.1 dev
solution = solver.maximize(objective=x+3) 0.7 dev
0.6 dev
from zibopt import scip solver = scip.solver() x1 = solver.variable(upper=10) x2 = solver.variable(upper=10) solver += (x1 + x2) * (3*x1 - x2) <= 10 solver += 3*x1 <= 4*x2 solution = solver.maximize(objective=x1**2 + x1*x2/4) # 21.76 from zibopt import scip solver = scip.solver() x1 = solver.variable(scip.BINARY) x2 = solver.variable(scip.BINARY) solver += x1 * x2 == 0 solution = solver.maximize(objective=3*x1 + 4*x2) print(solution.objective, solution[x1], solution[x2]) # 4.0 0.0 1.0. Further, expression handling has been vastly improved and can handle these sorts of constructions now:solver += (x + y) * (3*x - y) <= 10 solver += (3*x)**2 >= 3
c = solver.constraint(x1 + 2*x2 <= 4) from zibopt import scip solver = scip.solver() x1 = solver.variable(scip.INTEGER) x2 = solver.variable(scip.INTEGER) c1 = solver.constraint(2*x1 + 2*x2 <= 4) c2 = solver.constraint(2*x1 + 2*x2 <= 3) print(solver.maximize(objective=x1+x2).objective) # 1.0 solver -= c2 print(solver.maximize(objective=x1+x2).objective) # 2.0 solver += c2 print(solver.maximize(objective=x1+x2).objective) # 1.0 solver.maximize(nsol=30) solver.display['cuts'].width = 10 0.5 beta
0.4 dev
solver += 4 <= 3*x1 + 4*x2 + 2*x3 <= 10 solver.maximize(objective=x1 + 2*x2 + x3) solver += sum(x[i] for i in rows) == 1 solver.minimize(objective=sum(cost[i] * x[i] for i in rows)) x = solver.variable(scip.INTEGER) x.priority = 1000 x = solver.variable(scip.INTEGER, priority=10) 0.3 devsolver.branching['inference'].priority = 10000 solver.branching['inference'].maxdepth = -1 solver.branching['inference'].maxbounddist = -1 solver.conflict['logicor'].priority = 10000 solver.heuristics['octane'].priority = 500 solver.heuristics['octane'].maxdepth = -1 solver.heuristics['octane'].frequency = 10 solver.heuristics['octane'].freqofs = 5 solver.presolvers['dualfix'].priority = 10000 solver.propagators['pseudoobj'].priority = 1000s.branching.keys solver.propagators['pseudoobj'].frequency = 10 solver.selectors['bfs'].stdpriority = 1000 solver.selectors['bfs'].memsavepriority = 10 solver.separators['clique'].priority = 10000 solver.separators['clique'].maxbounddist = -1 solver.separators['clique'].frequency = 10000 0.2 dev
solver.maximize(absgap=0.5, gap=100) solver.maximize(time=500) solver.branching['inference'].priority = 10000 solver.branching['mostinf'].maxdepth += 2 print(solver.branching['pscost'].maxbounddist) solver.separators['clique'].priority = 10000 solver.conflict['logicor'].priority = 10000 0.1 dev
|
► Sign in to add a comment