本文整理汇总了Python中pyomo.opt.SolverFactory.compile_instance方法的典型用法代码示例。如果您正苦于以下问题:Python SolverFactory.compile_instance方法的具体用法?Python SolverFactory.compile_instance怎么用?Python SolverFactory.compile_instance使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pyomo.opt.SolverFactory
的用法示例。
在下文中一共展示了SolverFactory.compile_instance方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: solve
# 需要导入模块: from pyomo.opt import SolverFactory [as 别名]
# 或者: from pyomo.opt.SolverFactory import compile_instance [as 别名]
def solve(self,
solver,
io,
io_options,
solver_options,
symbolic_labels,
load_solutions):
""" Optimize the model """
assert self.model is not None
opt = SolverFactory(solver, solver_io=io)
opt.options.update(solver_options)
if io == 'nl':
assert opt.problem_format() == ProblemFormat.nl
elif io == 'lp':
assert opt.problem_format() == ProblemFormat.cpxlp
elif io == 'mps':
assert opt.problem_format() == ProblemFormat.mps
#elif io == 'python':
# print opt.problem_format()
# assert opt.problem_format() is None
try:
if isinstance(opt, PersistentSolver):
opt.compile_instance(self.model, symbolic_solver_labels=symbolic_labels)
if opt.warm_start_capable():
results = opt.solve(
self.model,
symbolic_solver_labels=symbolic_labels,
warmstart=True,
load_solutions=load_solutions,
**io_options)
else:
results = opt.solve(
self.model,
symbolic_solver_labels=symbolic_labels,
load_solutions=load_solutions,
**io_options)
return opt, results
finally:
opt.deactivate()
del opt
return None, None
示例2: ExtensiveFormAlgorithm
# 需要导入模块: from pyomo.opt import SolverFactory [as 别名]
# 或者: from pyomo.opt.SolverFactory import compile_instance [as 别名]
#.........这里部分代码省略.........
def solve(self,
check_status=True,
exception_on_failure=True,
output_solver_log=False,
symbolic_solver_labels=False,
keep_solver_files=False,
io_options=None):
# TODO: Does this import need to be delayed because
# it is in a plugins subdirectory
from pyomo.solvers.plugins.solvers.persistent_solver import \
PersistentSolver
if self.instance is None:
raise RuntimeError(
"The extensive form instance has not been constructed."
"Call the build_ef() method to construct it.")
start_time = time.time()
if self.get_option("verbose"):
print("Queuing extensive form solve")
self.objective = None
self.gap = None
self.bound = None
self.termination_condition = None
self.termination_message = None
self.solver_status = None
self.solution_status = None
self.solver_results = None
self.time = None
self.pyomo_time = None
if isinstance(self._solver, PersistentSolver):
self._solver.compile_instance(
self.instance,
symbolic_solver_labels=symbolic_solver_labels)
solve_kwds = {}
solve_kwds['load_solutions'] = False
if keep_solver_files:
solve_kwds['keepfiles'] = True
if symbolic_solver_labels:
solve_kwds['symbolic_solver_labels'] = True
if output_solver_log:
solve_kwds['tee'] = True
solver_options = self.get_option("solver_options")
if len(solver_options) > 0:
if type(solver_options) is tuple:
solve_kwds["options"] = {}
for name_val in solver_options:
assert "=" in name_val
name, val = name_val.split("=")
solve_kwds["options"][name.strip()] = val.strip()
else:
solve_kwds["options"] = solver_options
if io_options is not None:
solve_kwds.update(io_options)
self.objective_sense = \
find_active_objective(self.instance).sense
if (not self.get_option("disable_warmstart")) and \
(self._solver.warm_start_capable()):
action_handle = self._solver_manager.queue(self.instance,
示例3: ExtensiveFormAlgorithm
# 需要导入模块: from pyomo.opt import SolverFactory [as 别名]
# 或者: from pyomo.opt.SolverFactory import compile_instance [as 别名]
#.........这里部分代码省略.........
print("Extensive form written to file="+filename)
if self.get_option("verbose") or self.get_option("output_times"):
print("Time to write output file=%.2f seconds"
% (time.time() - start_time))
return filename, smap_id
def solve(self,
check_status=True,
exception_on_failure=True,
io_options=None):
if self.instance is None:
raise RuntimeError(
"The extensive form instance has not been constructed."
"Call the build_ef() method to construct it.")
start_time = time.time()
if self.get_option("verbose"):
print("Queuing extensive form solve")
self.objective = undefined
self.gap = undefined
self.bound = undefined
self.pyomo_solve_time = undefined
self.solve_time = undefined
self.termination_condition = undefined
self.solver_status = undefined
self.solution_status = undefined
self.solver_results = undefined
if isinstance(self._solver, PersistentSolver):
self._solver.compile_instance(
self.instance,
symbolic_solver_labels=self.get_option("symbolic_solver_labels"))
solve_kwds = {}
solve_kwds['load_solutions'] = False
if self.get_option("keep_solver_files"):
solve_kwds['keepfiles'] = True
if self.get_option("symbolic_solver_labels"):
solve_kwds['symbolic_solver_labels'] = True
if self.get_option("output_solver_log"):
solve_kwds['tee'] = True
if io_options is not None:
solve_kwds.update(io_options)
self.objective_sense = \
find_active_objective(self.instance).sense
if (not self.get_option("disable_warmstart")) and \
(self._solver.warm_start_capable()):
action_handle = self._solver_manager.queue(self.instance,
opt=self._solver,
warmstart=True,
**solve_kwds)
else:
action_handle = self._solver_manager.queue(self.instance,
opt=self._solver,
**solve_kwds)
if self.get_option("verbose"):
print("Waiting for extensive form solve")
results = self._solver_manager.wait_for(action_handle)