def start(self):
   start_time = timeit.default_timer()
   try:
     self._decomposer.decompose()
   except Exception, e:
     logging.exception("Decomposition failed.")
     return
Exemple #2
0
 def solve(self, params=None):
   if not self._model:
     raise Error()
   if params and not isinstance(params, OptimizationParameters):
     raise TypeError()
   if not params:
     params = OptimizationParameters()
   self._optimization_params = params
   logging.info("Optimize model %s with %d rows and %d columns.",
                self._model.get_name(), self._model.get_num_rows(),
                self._model.get_num_columns())
   self._pipeline = pipeline.Pipeline()
   self._executor = executor_manager.get_instance_of(params.executor.executor,
                                                     self._pipeline)
   logging.info("Executor: %s", self._executor.__class__.__name__)
   try:
     self._driver = drivers.get_instance_of(params.driver.driver, self._model, params, self._pipeline)
   except Exception:
     logging.exception("Cannot create driver instance.")
     return
   logging.info("Driver: %s", self._driver.__class__.__name__)
   logging.info("Default backend solver is %d", params.driver.default_backend_solver)
   start_time = timeit.default_timer()
   try:
     self._executor.start()
     solution = self._driver.start()
   except KeyboardInterrupt:
     self._executor.stop()
     self._driver.stop()
     return
   except Exception, e:
     logging.exception("Driver failed.")
     self._executor.stop()
     return
 def run(self):
   model = mp_model.build(self._args.file)
   decomposer = decomposers.get_instance_of(self._args.decomposer_id, model)
   try:
     decomposer.decompose()
   except Exception, e:
     logging.exception('Cannot decompose the model.')
     return
Exemple #4
0
 def execute(self, request):
   model = request.get_model()
   logging.debug('Solve model %s that has %d row(s) and %d column(s)'
                 ' with solver %s',
                 model.get_name(), model.get_num_rows(),
                 model.get_num_columns(), request.get_solver_id())
   solver = backend_solvers.get_instance_of(request.get_solver_id())
   if not solver:
     raise Error("Cannot instantiate backend solver by id: %d" %
                 request.get_solver_id())
   try:
     solver.load_model(model)
     solver.solve()
   except Error, e:
     # TODO: send back a report.
     logging.exception("Cannot execute given request: cannot solve the model.")
     return None
 def run(self):
   try:
     model = mp_model.build(self._args.file)
   except Exception, e:
     logging.exception('Cannot read the model.')
     return