Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)