def main(): logger.info('Starting...') file_path = DATASETS_PATH / 'cordeau-laporte' / 'a2-16.txt' solver = jit.Solver( loader_kwargs={ 'file_path': file_path, }, algorithm=jit.MilpAlgorithm, algorithm_kwargs={ # 'solver': lp.XPRESS(msg=1, path=str(BASE_PATH / 'tmp' / 'xpressmp' / 'bin' / 'optimizer')), # 'solver': lp.GUROBI_CMD(msg=1), # 'solver': lp.CPLEX_CMD(msg=1, path=str(BASE_PATH / 'tmp' / 'cplex' / 'bin' / 'x86-64_osx' / 'cplex')), 'solver': lp.SCIP(msg=1), # 'solver' :lp.PULP_CBC_CMD(msg=1, threads=4), }, storer=jit.StorerSet, storer_kwargs={ 'storer_cls_set': { jit.PromptStorer, jit.GraphPlotStorer, }, }) result = solver.solve() # noqa logger.info('Finished...')
def test_scip(self, ilp): """Test method for SCIP.""" try: ilp.solve(pulp.SCIP()) assert round(pulp.value(ilp.objective), 0) == 5 except pulp.solvers.PulpSolverError: pytest.fail(f"Solver not installed")
def _get_solver(solver_name, timelimit): if solver_name == "cplex": return pulp.CPLEX_PY(msg=0, timeLimit=timelimit) elif solver_name == "gurobi": return pulp.GUROBI(msg=0, timeLimit=timelimit) elif solver_name == "glpk": return pulp.GLPK(msg=0, options=["--tmlim", str(timelimit)]) elif solver_name == "cbc": return pulp.COIN(msg=0, maxSeconds=timelimit) elif solver_name == "scip": return pulp.SCIP(msg=0, options=["-c", f"set limits time {timelimit}"]) raise ValueError("Invalid Solver Name")