def __init__(self, mdl, exchange_format=None, **kwargs): IndexerEngine.__init__(self) warnings.warn( 'Solve using \'docloud\' agent is deprecated. Consider submitting your model to DOcplexcloud. See https://ibm.biz/BdYhhK', DeprecationWarning) docloud_context = kwargs.get('docloud_context') # --- log output can be overridden at solve time, so use te one from the context, not the model's actual_log_output = kwargs.get('log_output') or mdl.log_output self._model = mdl self._connector = DOcloudConnector(docloud_context, log_output=actual_log_output) self._exchange_format = exchange_format or docloud_context.exchange_format or _DEFAULT_EXCHANGE_FORMAT mangle_names = mdl.ignore_names or mdl.context.solver.docloud.mangle_names self._printer = ModelPrinterFactory.new_printer(self._exchange_format, full_obj=True) if mangle_names: self._printer.set_mangle_names(True) # -- results. self._lpname_to_var_map = {} self._solve_details = SolveDetails.make_dummy() self._quality_metrics = {} # latest quality metrics from json # noinspection PyPep8 self.debug_dump = docloud_context.debug_dump self.debug_dump_dir = docloud_context.debug_dump_dir
def __init__(self, prioritizer='all', verbose=False, precision=default_precision, override=False, **kwargs): self.output_table_customizer = kwargs.get( 'output_processing') # wml tables, internal self.output_table_property_name = 'relaxations_output' self.default_output_table_name = 'relaxations.csv' self.output_table_using_df = True # if pandas is available of course self._precision = precision # --- if hasattr(prioritizer, 'get_priority'): self._prioritizer = prioritizer elif prioritizer == 'match': self._prioritizer = MatchNamePrioritizer(override=override) elif isinstance(prioritizer, dict): self._prioritizer = MappingPrioritizer( priority_mapping=prioritizer, override=override) elif prioritizer == 'named': self._prioritizer = NamedPrioritizer() elif prioritizer is None or prioritizer == 'all': self._prioritizer = UniformPrioritizer(override=override) elif is_function(prioritizer): self._prioritizer = FunctionalPrioritizer(prioritizer, override=override) else: print( "Cannot deduce a prioritizer from: {0!r} - expecting \"name\"|\"default\"| dict", prioritizer) raise TypeError self._cumulative = True self._listeners = [] # result data self._last_relaxation_status = False self._last_relaxation_objective = -1e+75 self._last_successful_relaxed_priority = Priority.MANDATORY self._last_relaxation_details = SolveDetails.make_dummy() self._relaxations = {} self._verbose = verbose self._verbose_listener = VerboseRelaxationListener() if self._verbose: self.add_listener(self._verbose_listener)
def __init__(self, prioritizer='all', verbose=False, precision=default_precision, override=False): self._precision = precision # --- if isinstance(prioritizer, IConstraintPrioritizer): self._prioritizer = prioritizer elif prioritizer == 'match': self._prioritizer = MatchNamePrioritizer(override=override) elif isinstance(prioritizer, dict): self._prioritizer = MappingPrioritizer( priority_mapping=prioritizer, override=override) elif prioritizer == 'named': self._prioritizer = NamedPrioritizer() elif prioritizer is None or prioritizer is 'all': self._prioritizer = UniformPrioritizer(override=override) elif is_function(prioritizer): self._prioritizer = FunctionalPrioritizer(prioritizer, override=override) else: print( "Cannot deduce a prioritizer from: {0!r} - expecting \"name\"|\"default\"| dict", prioritizer) raise TypeError self._cumulative = True self._listeners = [] # result data self._last_relaxation_status = False self._last_relaxation_objective = -1e+75 self._last_successful_relaxed_priority = Priority.MANDATORY self._last_relaxation_details = SolveDetails.make_dummy() self._relaxations = {} self._verbose = verbose self._verbose_listener = VerboseRelaxationListener() if self._verbose: self.add_listener(self._verbose_listener)