From 662dd28fbc4fad49b488ebce43cdbdc2d02495ce Mon Sep 17 00:00:00 2001 From: JuanBC Date: Sat, 5 Mar 2022 14:29:55 -0300 Subject: [PATCH 01/16] tools to other repo! --- docs/source/_dynamic/CHANGELOG.rst | 51 +++++++++ tools/checkapidocsdir.py | 167 ---------------------------- tools/checkheader.py | 162 ---------------------------- tools/checktestdir.py | 168 ----------------------------- tox.ini | 19 ++-- 5 files changed, 59 insertions(+), 508 deletions(-) create mode 100644 docs/source/_dynamic/CHANGELOG.rst delete mode 100644 tools/checkapidocsdir.py delete mode 100644 tools/checkheader.py delete mode 100644 tools/checktestdir.py diff --git a/docs/source/_dynamic/CHANGELOG.rst b/docs/source/_dynamic/CHANGELOG.rst new file mode 100644 index 0000000..a83a5db --- /dev/null +++ b/docs/source/_dynamic/CHANGELOG.rst @@ -0,0 +1,51 @@ +.. FILE AUTO GENERATED !! + +Version 0.6 +----------- + + +* Support for Python 3.10. +* All the objects of the project are now immutable by design, and can only + be mutated troughs the ``object.copy()`` method. +* Dominance analysis tools (\ ``DecisionMatrix.dominance``\ ). +* The method ``DecisionMatrix.describe()`` was deprecated and will be removed + in version *1.0*. +* New statistics functionalities ``DecisionMatrix.stats`` accessor. +* + The accessors are now cached in the ``DecisionMatrix``. + +* + Tutorial for dominance and satisfaction analysis. + +* + TOPSIS now support hyper-parameters to select different metrics. + +* Generalize the idea of accessors in scikit-criteria througth a common + framework (\ ``skcriteria.utils.accabc`` module). +* New deprecation mechanism through the +* ``skcriteria.utils.decorators.deprecated`` decorator. + +Version 0.5 +----------- + +In this version scikit-criteria was rewritten from scratch. Among other things: + + +* The model implementation API was simplified. +* The ``Data`` object was removed in favor of ``DecisionMatrix`` which implements many more useful features for MCDA. +* Plots were completely re-implemented using `Seaborn `_. +* Coverage was increased to 100%. +* Pipelines concept was added (Thanks to `Scikit-learn `_\ ). +* New documentation. The quick start is totally rewritten! + +**Full Changelog**\ : https://github.com/quatrope/scikit-criteria/commits/0.5 + +Version 0.2 +----------- + +First OO stable version. + +Version 0.1 +----------- + +Only functions. diff --git a/tools/checkapidocsdir.py b/tools/checkapidocsdir.py deleted file mode 100644 index d7f23bd..0000000 --- a/tools/checkapidocsdir.py +++ /dev/null @@ -1,167 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# License: BSD-3 (https://tldrlegal.com/license/bsd-3-clause-license-(revised)) -# Copyright (c) 2016-2021, Cabral, Juan; Luczywo, Nadia -# Copyright (c) 2022, QuatroPe -# All rights reserved. - -# ============================================================================= -# DOCS -# ============================================================================= - -"""Tool to check if each python module has a corresponding API docs.""" - -# ============================================================================= -# IMPORTS -# ============================================================================= - -import inspect -import pathlib - -import attr - -import typer - -# ============================================================================= -# CONSTANTS -# ============================================================================= - -VERSION = "0.1" - -# ============================================================================= -# FUNCTIONS -# ============================================================================= - - -def check_apidoc_structure(apidoc_dir, reference_dir): - - apidoc_dir = pathlib.Path(apidoc_dir) - reference_dir = pathlib.Path(reference_dir) - - if not apidoc_dir.exists(): - raise OSError(f"'{apidoc_dir}' do no exist") - if not reference_dir.exists(): - raise OSError(f"'{reference_dir}' do no exist") - - reference = list(reference_dir.glob("**/*.py")) - - result = {} - for ref in reference: - - # essentially we remove the parent dir - *dirs, ref_name = ref.relative_to(reference_dir).parts - - if ref_name == "__init__.py": - ref_name = "index.py" - - search_dir = apidoc_dir - for subdir in dirs: - search_dir /= subdir - - search = search_dir / f"{ref_name[:-3]}.rst" - - result[str(ref)] = (str(search), search.exists()) - - return result - - -# ============================================================================= -# CLI -# ============================================================================= - - -@attr.s(frozen=True) -class CLI: - """Check if the structure of API doc directory is equivalent to those of - the project. - - """ - - footnotes = "\n".join( - [ - "This software is under the BSD 3-Clause License.", - "Copyright (c) 2021, Juan Cabral.", - "For bug reporting or other instructions please check:" - " https://github.com/quatrope/scikit-criteria", - ] - ) - - run = attr.ib(init=False) - - @run.default - def _set_run_default(self): - app = typer.Typer() - for k in dir(self): - if k.startswith("_"): - continue - v = getattr(self, k) - if inspect.ismethod(v): - decorator = app.command() - decorator(v) - return app - - def version(self): - """Print checktestdir.py version.""" - typer.echo(f"{__file__ } v.{VERSION}") - - def check( - self, - test_dir: str = typer.Argument( - ..., help="Path to the api-doc structure." - ), - reference_dir: str = typer.Option( - ..., help="Path to the reference structure." - ), - verbose: bool = typer.Option( - default=False, help="Show all the result" - ), - ): - """Check if the structure of test directory is equivalent to those - of the project. - - """ - try: - check_result = check_apidoc_structure(test_dir, reference_dir) - except Exception as err: - typer.echo(typer.style(str(err), fg=typer.colors.RED)) - raise typer.Exit(code=1) - - all_tests_exists = True - for ref, test_result in check_result.items(): - - test, test_exists = test_result - - if test_exists: - fg = typer.colors.GREEN - status = "" - else: - all_tests_exists = False - fg = typer.colors.RED - status = typer.style("[NOT FOUND]", fg=typer.colors.YELLOW) - - if verbose or not test_exists: - msg = f"{ref} -> {test} {status}" - typer.echo(typer.style(msg, fg=fg)) - - if all_tests_exists: - final_fg = typer.colors.GREEN - final_status = "Test structure ok!" - exit_code = 0 - else: - final_fg = typer.colors.RED - final_status = "Structure not equivalent!" - exit_code = 1 - - typer.echo("-------------------------------------") - typer.echo(typer.style(final_status, fg=final_fg)) - raise typer.Exit(code=exit_code) - - -def main(): - """Run the checkapidocdir.py cli interface.""" - cli = CLI() - cli.run() - - -if __name__ == "__main__": - main() diff --git a/tools/checkheader.py b/tools/checkheader.py deleted file mode 100644 index b505454..0000000 --- a/tools/checkheader.py +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# License: BSD-3 (https://tldrlegal.com/license/bsd-3-clause-license-(revised)) -# Copyright (c) 2016-2021, Cabral, Juan; Luczywo, Nadia -# Copyright (c) 2022, QuatroPe -# All rights reserved. - -# ============================================================================= -# DOCS -# ============================================================================= - -"""Tool to check if the headers of all python files are correct.""" - - -# ============================================================================= -# IMPORTS -# ============================================================================= - -import inspect -import pathlib -from typing import List, OrderedDict - -import attr - -import typer - -# ============================================================================= -# CONSTANTS -# ============================================================================= - -VERSION = "0.1" - -# ============================================================================= -# FUNCTIONS -# ============================================================================= - - -def lines_rstrip(text): - return "\n".join(line.rstrip() for line in text.splitlines()) - - -def check_file_header(fpath, header_tpl): - if not isinstance(fpath, pathlib.Path): - fpath = pathlib.Path(fpath) - - lines = len(header_tpl.splitlines()) - with open(fpath) as fp: - fheader = "".join(fp.readlines()[:lines]) - fheader = lines_rstrip(fheader) - - header_ok = fheader == header_tpl - - return header_ok - - -# ============================================================================= -# CLI -# ============================================================================= - - -@attr.s(frozen=True) -class CLI: - """Check if python files contain the appropriate header.""" - - footnotes = "\n".join( - [ - "This software is under the BSD 3-Clause License.", - "Copyright (c) 2021, Juan Cabral.", - "For bug reporting or other instructions please check:" - " https://github.com/quatrope/scikit-criteria", - ] - ) - - run = attr.ib(init=False) - - @run.default - def _set_run_default(self): - app = typer.Typer() - for k in dir(self): - if k.startswith("_"): - continue - v = getattr(self, k) - if inspect.ismethod(v): - decorator = app.command() - decorator(v) - return app - - def version(self): - """Print checktestdir.py version.""" - typer.echo(f"{__file__ } v.{VERSION}") - - def check( - self, - sources: List[pathlib.Path] = typer.Argument( - ..., help="Path to the test structure." - ), - header_template: pathlib.Path = typer.Option( - ..., help="Path to the header template." - ), - verbose: bool = typer.Option( - default=False, help="Show all the result" - ), - ): - """Check if python files contain the appropriate header.""" - - results = OrderedDict() - - try: - - header_tpl = lines_rstrip(header_template.read_text()) - - for src in sources: - if src.is_dir(): - for fpath in src.glob("**/*.py"): - results[fpath] = check_file_header(fpath, header_tpl) - elif src.suffix in (".py",): - results[src] = check_file_header(src, header_tpl) - else: - raise ValueError(f"Invalid file type {src.suffix}") - - except OSError as err: - typer.echo(typer.style(str(err), fg=typer.colors.RED)) - raise typer.Exit(code=1) - - all_headers_ok = True - for fpath, header_ok in results.items(): - if header_ok: - fg = typer.colors.GREEN - status = "HEADER MATCH" - else: - all_headers_ok = False - fg = typer.colors.RED - status = typer.style( - "HEADER DOES NOT MATCH", fg=typer.colors.YELLOW - ) - if verbose or not header_ok: - msg = f"{fpath} -> {status}" - typer.echo(typer.style(msg, fg=fg)) - - if all_headers_ok: - final_fg = typer.colors.GREEN - final_status = "All files has the correct header" - exit_code = 0 - else: - final_fg = typer.colors.RED - final_status = "Not all headers match!" - exit_code = 1 - - typer.echo("-------------------------------------") - typer.echo(typer.style(final_status, fg=final_fg)) - - raise typer.Exit(code=exit_code) - - -def main(): - """Run the checkheader.py cli interface.""" - cli = CLI() - cli.run() - - -if __name__ == "__main__": - main() diff --git a/tools/checktestdir.py b/tools/checktestdir.py deleted file mode 100644 index 2dc5e29..0000000 --- a/tools/checktestdir.py +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# License: BSD-3 (https://tldrlegal.com/license/bsd-3-clause-license-(revised)) -# Copyright (c) 2016-2021, Cabral, Juan; Luczywo, Nadia -# Copyright (c) 2022, QuatroPe -# All rights reserved. - -# ============================================================================= -# DOCS -# ============================================================================= - -"""Tool to check if each python module has a corresponding test module.""" - -# ============================================================================= -# IMPORTS -# ============================================================================= - -import inspect -import pathlib - -import attr - -import typer - -# ============================================================================= -# CONSTANTS -# ============================================================================= - -VERSION = "0.1" - -# ============================================================================= -# FUNCTIONS -# ============================================================================= - - -def check_test_structure(test_dir, reference_dir): - - test_dir = pathlib.Path(test_dir) - reference_dir = pathlib.Path(reference_dir) - - if not test_dir.exists(): - raise OSError(f"'{test_dir}' do no exist") - if not reference_dir.exists(): - raise OSError(f"'{reference_dir}' do no exist") - - reference = list(reference_dir.glob("**/*.py")) - - result = {} - for ref in reference: - if ref.name == "__init__.py": - continue - - # essentially we remove the parent dir - *dirs, ref_name = ref.relative_to(reference_dir).parts - while ref_name.startswith("_"): - ref_name = ref_name[1:] - - search_dir = test_dir - for subdir in dirs: - search_dir /= subdir - - search = search_dir / f"test_{ref_name}" - - result[str(ref)] = (str(search), search.exists()) - - return result - - -# ============================================================================= -# CLI -# ============================================================================= - - -@attr.s(frozen=True) -class CLI: - """Check if the structure of test directory is equivalent to those of the - project. - - """ - - footnotes = "\n".join( - [ - "This software is under the BSD 3-Clause License.", - "Copyright (c) 2021, Juan Cabral.", - "For bug reporting or other instructions please check:" - " https://github.com/quatrope/scikit-criteria", - ] - ) - - run = attr.ib(init=False) - - @run.default - def _set_run_default(self): - app = typer.Typer() - for k in dir(self): - if k.startswith("_"): - continue - v = getattr(self, k) - if inspect.ismethod(v): - decorator = app.command() - decorator(v) - return app - - def version(self): - """Print checktestdir.py version.""" - typer.echo(f"{__file__ } v.{VERSION}") - - def check( - self, - test_dir: str = typer.Argument( - ..., help="Path to the test structure." - ), - reference_dir: str = typer.Option( - ..., help="Path to the reference structure." - ), - verbose: bool = typer.Option( - default=False, help="Show all the result" - ), - ): - """Check if the structure of test directory is equivalent to those - of the project. - - """ - try: - check_result = check_test_structure(test_dir, reference_dir) - except Exception as err: - typer.echo(typer.style(str(err), fg=typer.colors.RED)) - raise typer.Exit(code=1) - - all_tests_exists = True - for ref, test_result in check_result.items(): - - test, test_exists = test_result - - if test_exists: - fg = typer.colors.GREEN - status = "" - else: - all_tests_exists = False - fg = typer.colors.RED - status = typer.style("[NOT FOUND]", fg=typer.colors.YELLOW) - - if verbose or not test_exists: - msg = f"{ref} -> {test} {status}" - typer.echo(typer.style(msg, fg=fg)) - - if all_tests_exists: - final_fg = typer.colors.GREEN - final_status = "Test structure ok!" - exit_code = 0 - else: - final_fg = typer.colors.RED - final_status = "Structure not equivalent!" - exit_code = 1 - - typer.echo("-------------------------------------") - typer.echo(typer.style(final_status, fg=final_fg)) - raise typer.Exit(code=exit_code) - - -def main(): - """Run the checktestdir.py cli interface.""" - cli = CLI() - cli.run() - - -if __name__ == "__main__": - main() diff --git a/tox.ini b/tox.ini index e359b6a..b0ea4e5 100644 --- a/tox.ini +++ b/tox.ini @@ -10,7 +10,7 @@ envlist = py37, py38, py39, - py10, + py310, coverage # ============================================================================= @@ -35,7 +35,7 @@ deps = flake8 flake8-black flake8-builtins commands = - flake8 setup.py tests/ skcriteria/ tools/ {posargs} + flake8 setup.py tests/ skcriteria/ {posargs} [testenv:coverage] @@ -61,28 +61,25 @@ commands = [testenv:check-testdir] skip_install = True deps = - attrs - typer + https://github.com/quatrope/qafan/archive/refs/heads/master.zip commands = - python tools/checktestdir.py check tests/ --reference-dir skcriteria/ {posargs} + check-testdir check tests/ --reference-dir skcriteria/ {posargs} [testenv:check-apidocsdir] skip_install = True deps = - attrs - typer + https://github.com/quatrope/qafan/archive/refs/heads/master.zip commands = - python tools/checkapidocsdir.py check docs/source/api/ --reference-dir skcriteria/ {posargs} + check-apidocsdir check docs/source/api/ --reference-dir skcriteria/ {posargs} [testenv:check-headers] skip_install = True deps = - attrs - typer + https://github.com/quatrope/qafan/archive/refs/heads/master.zip commands = - python tools/checkheader.py check skcriteria/ tests/ tools/ setup.py --header-template .header-template {posargs} + check-headers check skcriteria/ tests/ setup.py --header-template .header-template {posargs} [testenv:check-manifest] From 55c127dc4eea6c1faefde8939d4c409fa8822e09 Mon Sep 17 00:00:00 2001 From: juanbc Date: Tue, 29 Mar 2022 00:38:39 -0300 Subject: [PATCH 02/16] start building 0.7 --- docs/source/api/index.rst | 2 -- docs/source/changelog.rst | 8 ++++++++ docs/source/index.rst | 1 + skcriteria/core/plot.py | 2 +- skcriteria/core/stats.py | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 docs/source/changelog.rst diff --git a/docs/source/api/index.rst b/docs/source/api/index.rst index 83613fb..06a96c4 100644 --- a/docs/source/api/index.rst +++ b/docs/source/api/index.rst @@ -36,5 +36,3 @@ :maxdepth: 2 utils/index - - diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst new file mode 100644 index 0000000..01da4a2 --- /dev/null +++ b/docs/source/changelog.rst @@ -0,0 +1,8 @@ +.. _changelog: + +========================== +Changelog +========================== + +.. Here we render the CHANGELOG.md of the repository as a main page +.. include:: _dynamic/CHANGELOG.rst \ No newline at end of file diff --git a/docs/source/index.rst b/docs/source/index.rst index 4be4522..78520c2 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -39,6 +39,7 @@ Contents :maxdepth: 2 :caption: Misc + changelog bibliography diff --git a/skcriteria/core/plot.py b/skcriteria/core/plot.py index 0ccb8b1..b207b6d 100644 --- a/skcriteria/core/plot.py +++ b/skcriteria/core/plot.py @@ -19,7 +19,7 @@ import seaborn as sns -from skcriteria.utils import AccessorABC +from ..utils import AccessorABC # ============================================================================= diff --git a/skcriteria/core/stats.py b/skcriteria/core/stats.py index 620ddc1..44ccf11 100644 --- a/skcriteria/core/stats.py +++ b/skcriteria/core/stats.py @@ -16,7 +16,7 @@ # IMPORTS # =============================================================================k -from skcriteria.utils import AccessorABC +from ..utils import AccessorABC # ============================================================================= # STATS ACCESSOR From 01da1f9e6425344900f7fa69a38a263e30c688e2 Mon Sep 17 00:00:00 2001 From: juanbc Date: Tue, 29 Mar 2022 01:11:07 -0300 Subject: [PATCH 03/16] inverter implemethed --- skcriteria/preprocessing/invert_objectives.py | 133 +++++++++--------- 1 file changed, 68 insertions(+), 65 deletions(-) diff --git a/skcriteria/preprocessing/invert_objectives.py b/skcriteria/preprocessing/invert_objectives.py index 3d6f67d..8bed037 100644 --- a/skcriteria/preprocessing/invert_objectives.py +++ b/skcriteria/preprocessing/invert_objectives.py @@ -12,9 +12,6 @@ """Implementation of functionalities for inverting minimization criteria and \ converting them into maximization ones. -In addition to the main functionality, an agnostic MCDA function is offered -that inverts columns of a matrix based on a mask. - """ # ============================================================================= @@ -25,63 +22,63 @@ import numpy as np from ..core import Objective, SKCTransformerABC -from ..utils import doc_inherit +from ..utils import deprecated, doc_inherit # ============================================================================= # FUNCTIONS # ============================================================================= -def invert(matrix, mask): - """Inverts all the columns selected by the mask. - - Parameters - ---------- - matrix: :py:class:`numpy.ndarray` like. - 2D array. - mask: :py:class:`numpy.ndarray` like. - Boolean array like with the same elements as columns has the - ``matrix``. - - Returns - ------- - :py:class:`numpy.ndarray` - New matrix with the selected columns inverted. The result matrix - dtype float. - - Examples - -------- - .. code-block:: pycon - - >>> from skcriteria import invert - >>> invert([ - ... [1, 2, 3], - ... [4, 5, 6] - ... ], - ... [True, False, True]) - array([[1. , 2. , 0.33333333], - [0.25 , 5. , 0.16666667]]) - - >>> invert([ - ... [1, 2, 3], - ... [4, 5, 6] - ... ], - ... [False, True, False]) - array([[1. , 2. , 0.33333333], - [0.25 , 5. , 0.16666667]]) - array([[1. , 0.5, 3. ], - [4. , 0.2, 6. ]] +class SKCObjectivesInverterABC(SKCTransformerABC): + + _skcriteria_abstract_class = True + + def _invert(self, matrix, minimize_mask): + raise NotImplementedError() + + @doc_inherit(SKCTransformerABC._transform_data) + def _transform_data(self, matrix, objectives, dtypes, **kwargs): + # check where we need to transform + minimize_mask = np.equal(objectives, Objective.MIN.value) + + # execute the transformation + inv_mtx = self._invert(matrix, minimize_mask) + + # new objective array + inv_objectives = np.full( + len(objectives), Objective.MAX.value, dtype=int + ) + + # we are trying to preserve the original dtype as much as possible + # only the minimize criteria are changed. + inv_dtypes = np.where(minimize_mask, inv_mtx.dtype, dtypes) + + kwargs.update( + matrix=inv_mtx, objectives=inv_objectives, dtypes=inv_dtypes + ) + return kwargs + + +class NegateMinimize(SKCObjectivesInverterABC): + r"""Transform all minimization criteria into maximization ones. + + The transformations are made by calculating the inverse value of + the minimization criteria. :math:`\min{C} \equiv \max{-{C}}`. """ - inv_mtx = np.array(matrix, dtype=float) + _skcriteria_parameters = [] + + @doc_inherit(SKCObjectivesInverterABC._invert) + def _invert(self, matrix, minimize_mask): + inv_mtx = np.array(matrix, dtype=float) - inverted_values = 1.0 / inv_mtx[:, mask] - inv_mtx[:, mask] = inverted_values + inverted_values = -inv_mtx[:, minimize_mask] + inv_mtx[:, minimize_mask] = inverted_values - return inv_mtx + return inv_mtx -class MinimizeToMaximize(SKCTransformerABC): +class InvertMinimize(SKCObjectivesInverterABC): r"""Transform all minimization criteria into maximization ones. The transformations are made by calculating the inverse value of @@ -96,24 +93,30 @@ class MinimizeToMaximize(SKCTransformerABC): _skcriteria_parameters = [] - @doc_inherit(SKCTransformerABC._transform_data) - def _transform_data(self, matrix, objectives, dtypes, **kwargs): - # check where we need to transform - minimize_mask = np.equal(objectives, Objective.MIN.value) + @doc_inherit(SKCObjectivesInverterABC._invert) + def _invert(self, matrix, minimize_mask): + inv_mtx = np.array(matrix, dtype=float) - # execute the transformation - inv_mtx = invert(matrix, minimize_mask) + inverted_values = 1.0 / inv_mtx[:, minimize_mask] + inv_mtx[:, minimize_mask] = inverted_values - # new objective array - inv_objectives = np.full( - len(objectives), Objective.MAX.value, dtype=int - ) + return inv_mtx - # we are trying to preserve the original dtype as much as possible - # only the minimize criteria are changed. - inv_dtypes = np.where(minimize_mask, inv_mtx.dtype, dtypes) - kwargs.update( - matrix=inv_mtx, objectives=inv_objectives, dtypes=inv_dtypes - ) - return kwargs +@deprecated( + reason="Use 'skcriteria.preprocessing.InvertMinimize' instead", + version=0.7, +) +@doc_inherit(InvertMinimize) +class MinimizeToMaximize(InvertMinimize): + r"""Transform all minimization criteria into maximization ones. + + The transformations are made by calculating the inverse value of + the minimization criteria. :math:`\min{C} \equiv \max{\frac{1}{C}}` + + Notes + ----- + All the dtypes of the decision matrix are preserved except the inverted + ones thar are converted to ``numpy.float64``. + + """ From 76ca43cc12a9d25df467d3e14c9a4ff4f169a95c Mon Sep 17 00:00:00 2001 From: juanbc Date: Sun, 10 Apr 2022 19:08:35 -0300 Subject: [PATCH 04/16] invert objectives done --- skcriteria/preprocessing/invert_objectives.py | 42 +++++-- tests/madm/test_simple.py | 4 +- tests/preprocessing/test_invert_objectives.py | 116 ++++++++++++++++-- tests/test_pipeline.py | 6 +- 4 files changed, 143 insertions(+), 25 deletions(-) diff --git a/skcriteria/preprocessing/invert_objectives.py b/skcriteria/preprocessing/invert_objectives.py index 8bed037..cd6585d 100644 --- a/skcriteria/preprocessing/invert_objectives.py +++ b/skcriteria/preprocessing/invert_objectives.py @@ -9,10 +9,8 @@ # DOCS # ============================================================================= -"""Implementation of functionalities for inverting minimization criteria and \ -converting them into maximization ones. - -""" +"""Implementation of functionalities for convert minimization criteria into \ +maximization ones.""" # ============================================================================= # IMPORTS @@ -24,16 +22,37 @@ from ..core import Objective, SKCTransformerABC from ..utils import deprecated, doc_inherit + # ============================================================================= -# FUNCTIONS +# Base Class # ============================================================================= +class SKCObjectivesInverterABC(SKCTransformerABC): + """Abstract class capable of invert objectives. + This abstract class require to redefine ``_invert``, instead of + ``_transform_data``. -class SKCObjectivesInverterABC(SKCTransformerABC): + """ _skcriteria_abstract_class = True def _invert(self, matrix, minimize_mask): + """Invert the minimization objectives. + + Parameters + ---------- + matrix: :py:class:`numpy.ndarray` + The decision matrix to weights. + minimize_mask: :py:class:`numpy.ndarray` + Mask with the same size as the columns in the matrix. True values + indicate that this column is a criterion to be minimized. + + Returns + ------- + :py:class:`numpy.ndarray` + A new matrix with the minimization objectives inverted. + + """ raise NotImplementedError() @doc_inherit(SKCTransformerABC._transform_data) @@ -59,6 +78,9 @@ def _transform_data(self, matrix, objectives, dtypes, **kwargs): return kwargs +# ============================================================================= +# -x +# ============================================================================= class NegateMinimize(SKCObjectivesInverterABC): r"""Transform all minimization criteria into maximization ones. @@ -66,6 +88,7 @@ class NegateMinimize(SKCObjectivesInverterABC): the minimization criteria. :math:`\min{C} \equiv \max{-{C}}`. """ + _skcriteria_parameters = [] @doc_inherit(SKCObjectivesInverterABC._invert) @@ -78,6 +101,9 @@ def _invert(self, matrix, minimize_mask): return inv_mtx +# ============================================================================= +# 1/x +# ============================================================================= class InvertMinimize(SKCObjectivesInverterABC): r"""Transform all minimization criteria into maximization ones. @@ -103,11 +129,13 @@ def _invert(self, matrix, minimize_mask): return inv_mtx +# ============================================================================= +# DEPRECATED +# ============================================================================= @deprecated( reason="Use 'skcriteria.preprocessing.InvertMinimize' instead", version=0.7, ) -@doc_inherit(InvertMinimize) class MinimizeToMaximize(InvertMinimize): r"""Transform all minimization criteria into maximization ones. diff --git a/tests/madm/test_simple.py b/tests/madm/test_simple.py index 6131b88..825245d 100644 --- a/tests/madm/test_simple.py +++ b/tests/madm/test_simple.py @@ -25,7 +25,7 @@ import skcriteria from skcriteria.madm import RankResult from skcriteria.madm.simple import WeightedProductModel, WeightedSumModel -from skcriteria.preprocessing.invert_objectives import MinimizeToMaximize +from skcriteria.preprocessing.invert_objectives import InvertMinimize from skcriteria.preprocessing.scalers import SumScaler # ============================================================================= @@ -89,7 +89,7 @@ def test_WeightedSumModel_kracka2010ranking(): ) transformers = [ - MinimizeToMaximize(), + InvertMinimize(), SumScaler(target="both"), ] for t in transformers: diff --git a/tests/preprocessing/test_invert_objectives.py b/tests/preprocessing/test_invert_objectives.py index b3f8f72..7d58ca5 100644 --- a/tests/preprocessing/test_invert_objectives.py +++ b/tests/preprocessing/test_invert_objectives.py @@ -20,34 +20,124 @@ import numpy as np +import pytest import skcriteria -from skcriteria.preprocessing.invert_objectives import MinimizeToMaximize +from skcriteria.preprocessing.invert_objectives import ( + InvertMinimize, + NegateMinimize, + SKCObjectivesInverterABC, +) + +# ============================================================================= +# TEST CLASSES ABC +# ============================================================================= + + +def test_SKCObjectivesInverterABC__invert_not_implemented(decision_matrix): + class Foo(SKCObjectivesInverterABC): + _skcriteria_parameters = [] + + def _invert(self, matrix, minimize_mask): + return super()._invert(matrix, minimize_mask) + + transformer = Foo() + dm = decision_matrix(seed=42) + + with pytest.raises(NotImplementedError): + transformer.transform(dm) # ============================================================================= -# TEST CLASSES +# INVERT # ============================================================================= -def test_MinimizeToMaximize_simple(): +def test_NegateMinimize_all_min(decision_matrix): - dm = skcriteria.mkdm( - matrix=[[1, 2, 3], [4, 5, 6]], objectives=[min, max, min] + dm = decision_matrix( + seed=42, + min_alternatives=10, + max_alternatives=10, + min_criteria=20, + max_criteria=20, + min_objectives_proportion=1.0, + ) + expected = skcriteria.mkdm( + matrix=-dm.matrix, + objectives=np.full(20, 1, dtype=int), + weights=dm.weights, + alternatives=dm.alternatives, + criteria=dm.criteria, ) + inv = NegateMinimize() + + result = inv.transform(dm) + + assert result.equals(expected) + + +def test_NegateMinimize_50percent_min(decision_matrix): + + dm = decision_matrix( + seed=42, + min_alternatives=10, + max_alternatives=10, + min_criteria=20, + max_criteria=20, + min_objectives_proportion=0.5, + ) + + minimize_mask = dm.iobjectives == -1 + expected_mtx = np.array(dm.matrix, dtype=float) + expected_mtx[:, minimize_mask] = -expected_mtx[:, minimize_mask] + + inv_dtypes = np.where(dm.iobjectives == -1, float, dm.dtypes) + expected = skcriteria.mkdm( - matrix=[[1, 2, 1 / 3], [1 / 4, 5, 1 / 6]], objectives=[max, max, max] + matrix=expected_mtx, + objectives=np.full(20, 1, dtype=int), + weights=dm.weights, + alternatives=dm.alternatives, + criteria=dm.criteria, + dtypes=inv_dtypes, ) - inv = MinimizeToMaximize() + inv = NegateMinimize() result = inv.transform(dm) assert result.equals(expected) -def test_MinimizeToMaximize_all_min(decision_matrix): +def test_NegateMinimize_no_change_original_dm(decision_matrix): + + dm = decision_matrix( + seed=42, + min_alternatives=10, + max_alternatives=10, + min_criteria=20, + max_criteria=20, + min_objectives_proportion=0.5, + ) + + expected = dm.copy() + + inv = NegateMinimize() + dmt = inv.transform(dm) + + assert ( + dm.equals(expected) and not dmt.equals(expected) and dm is not expected + ) + + +# ============================================================================= +# INVERT +# ============================================================================= + + +def test_InvertMinimize_all_min(decision_matrix): dm = decision_matrix( seed=42, @@ -65,14 +155,14 @@ def test_MinimizeToMaximize_all_min(decision_matrix): criteria=dm.criteria, ) - inv = MinimizeToMaximize() + inv = InvertMinimize() result = inv.transform(dm) assert result.equals(expected) -def test_MinimizeToMaximize_50percent_min(decision_matrix): +def test_InvertMinimize_50percent_min(decision_matrix): dm = decision_matrix( seed=42, @@ -98,14 +188,14 @@ def test_MinimizeToMaximize_50percent_min(decision_matrix): dtypes=inv_dtypes, ) - inv = MinimizeToMaximize() + inv = InvertMinimize() result = inv.transform(dm) assert result.equals(expected) -def test_MinimizeToMaximize_no_change_original_dm(decision_matrix): +def test_InvertMinimize_no_change_original_dm(decision_matrix): dm = decision_matrix( seed=42, @@ -118,7 +208,7 @@ def test_MinimizeToMaximize_no_change_original_dm(decision_matrix): expected = dm.copy() - inv = MinimizeToMaximize() + inv = InvertMinimize() dmt = inv.transform(dm) assert ( diff --git a/tests/test_pipeline.py b/tests/test_pipeline.py index 618c410..52c4699 100644 --- a/tests/test_pipeline.py +++ b/tests/test_pipeline.py @@ -22,7 +22,7 @@ from skcriteria import pipeline from skcriteria.madm.similarity import TOPSIS -from skcriteria.preprocessing.invert_objectives import MinimizeToMaximize +from skcriteria.preprocessing.invert_objectives import InvertMinimize from skcriteria.preprocessing.scalers import StandarScaler from skcriteria.preprocessing.weighters import Critic @@ -35,7 +35,7 @@ def test_pipeline_mkpipe(decision_matrix): dm = decision_matrix(seed=42) steps = [ - MinimizeToMaximize(), + InvertMinimize(), StandarScaler(target="matrix"), Critic(correlation="spearman"), Critic(), @@ -60,7 +60,7 @@ def test_pipeline_mkpipe(decision_matrix): def test_pipeline_slicing(): steps = [ - MinimizeToMaximize(), + InvertMinimize(), StandarScaler(target="matrix"), Critic(correlation="spearman"), Critic(), From d7e33799a3880cbbd4f69378e5652ede5b4a5787 Mon Sep 17 00:00:00 2001 From: juanbc Date: Sun, 10 Apr 2022 19:48:37 -0300 Subject: [PATCH 05/16] some fixes in tutorials about objectives inversion --- docs/source/conf.py | 2 +- docs/source/tutorial/quickstart.ipynb | 74 +++++++++++++++------------ 2 files changed, 42 insertions(+), 34 deletions(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 8eeb311..dbf8a3e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -97,7 +97,7 @@ # General information about the project. project = skcriteria.NAME -copyright = "2016-2021, Juan B. Cabral - Nadia A. Luczywo" +copyright = "2016-2022, Juan B. Cabral - Nadia A. Luczywo" author = "Juan BC" # The version info for the project you're documenting, acts as replacement for diff --git a/docs/source/tutorial/quickstart.ipynb b/docs/source/tutorial/quickstart.ipynb index 27eda2b..329acc2 100644 --- a/docs/source/tutorial/quickstart.ipynb +++ b/docs/source/tutorial/quickstart.ipynb @@ -477,8 +477,8 @@ { "data": { "text/plain": [ - "(array(['car 0', 'car 1'], dtype=object),\n", - " array(['autonomy', 'comfort', 'price'], dtype=object))" + "(_ACArray(['car 0', 'car 1'], dtype=object),\n", + " _ACArray(['autonomy', 'comfort', 'price'], dtype=object))" ] }, "execution_count": 10, @@ -603,7 +603,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -642,7 +642,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -681,7 +681,7 @@ }, { "data": { - "image/png": "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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAD4CAYAAAD2FnFTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABi40lEQVR4nO2dd3iUVdqH7zPpPaRQUiAhoZNC71KkdxQEUexrd4tlddW17brq6q69F1QsSFF6b1KkBQgJEAiBhFSSkJBO6pzvjzfwsRggzJmQdu7rmouZed/5zZMwmec9z3mKkFKi0Wg0Gs2lmOrbAI1Go9E0TLSD0Gg0Gk2NaAeh0Wg0mhrRDkKj0Wg0NaIdhEaj0WhqxLa+DbAWPj4+MigoqL7N0Gg0mkbFvn37zkgpfWs61mQcRFBQEFFRUfVthkaj0TQqhBCnLndMh5g0Go1GUyPaQWg0Go2mRrSD0Gg0Gk2NNJk9CI1G07CpqKggNTWV0tLS+jalWeLo6EhAQAB2dna1fo12EBqN5rqQmpqKm5sbQUFBCCHq25xmhZSSnJwcUlNTCQ4OrvXrdIhJo9FcF0pLS/H29tbOoR4QQuDt7X3NqzftIDQazXVDO4f6w5LfvQ4xaTQXIaWktMLMuYoqKqvMeLnYY2tj4XWU2QyV56DiHJirwMUHTDaWSUkzpZWlnKs8h0Ti5eiFSejrO03doh2EpllTWlHF5qNZ/HYih0Pp+cRlFFBaYb5w3CSgtbsjIS1dGRTqw+BQH7q2ccdkquFqrKwI4tdA0jbIiIHMw1BV9v/HTbbg5ge+nSBkOLQfDi27QA1XdoXlhWxK3sT+rP3E5cRxPO84lebKC8dtTba0cm5FhxYdGNBmAAP9BhLkEWTNX40GWLJkCR07dqRr1671bUq9oB2EplkSl1HAl9sTWXvoNIVllbg52NLFz51b+7alpZsjTnYmbEyCrMIy0vLOcTitgNdXHwWgva8Ldw0M4qaeAbg62ELqPtj1ERxbBRUl4OgBbSKg7x/AxRfsnA0nUJgBeSmQEQ1rnzUMadUd+j0AYTPAzomo01H8cPQHfk35lXJzOS0cWtDZqzNzusyhhWMLHG0dkVKSVZJFenE6h84cYkvKFgDCfMKY3WU2Y9qNwc6m9pkqmsuzZMkSJk6c2GgcRFZWFi1btrSanmgqE+V69+4tdasNzdVIyCrk7Q3HWRmTgauDLeO6t2ZKpD8DQryxqWlVcBFZBaVsic/mh93JRKfk4WYveNQrirvPvoO9kxt0mwbht0BgfzBdJfyTlwLH10HUV5B5iEpHD+a3ac+b8gyeTt6MCx7H+ODxhPmEXTV2nFKYwtbUrcw/Op+kgiR8nXz5U88/MSlkUoMKQ8XFxdGlS5d6tWHq1KmkpKRQWlrKn/70J+6//34AXF1dKSoqAmDRokWsWLGC+++/n4kTJ+Lh4YGHhweLFy+msLCQBx98kJKSEkJCQvjqq69o0aIFw4YNo1+/fmzevJm8vDy+/PJLhgwZQmlpKQ899BBRUVHY2try3//+l+HDh/P111+zZMkSiouLOX78OE8++STl5eXMmzcPBwcHVq1axdmzZ5kxYwb79+8H4Pjx48ycOfPC40vZunUr7733HosWLbrsz1/T/4EQYp+UsndN5+sVhKZZUF5p5sPNCXy4OQEHWxOPjQjlvsHt8XCu/ZV2S3dHbukdyC0RPhz45R0+iK7ktdO9+MnlC16Z3JvBXdvW3iDPQOhzL8URM1mw/i90jV3K7YkHGO8ZgMvQf+IQPKTWUoFugdzW5TZu7Xwru9J38WH0hzy/43kWxi/kuX7P0cW7fr+Ua+KNPW9wNPeoVTU7e3Xm6b5PX/Gcr776Ci8vL86dO0efPn24+eab8fb2rvHcgQMHMnnyZCZOnMj06dMBCA8P5/3332fo0KG88MILvPzyy7zzzjsAVFZWsmfPHlatWsXLL7/Mhg0b+PDDDxFCEBsby9GjRxk9ejTx8fEAHDp0iAMHDlBaWkpoaChvvPEGBw4c4C9/+Qvffvstf/7zn/Hw8CA6OprIyEjmzp3L3Xfffdmf7eWXX2bz5s3ExsYSFhZmwW/w9zScywuNpo6Izyxk6oc7eHfjcSZF+LHt6RE8MbrTNTmHC6Ttg0+G0OPI63w5MJe5s7tidmzB7d/G8vrqo1RWma+uUc3e03u5adnNvH1mNztufJqymz7HywwO306GrW8Zm9zXgEmYGOg/kHnj5/GPQf8gpTCF2atm80PcDzSVSIEq7733HhEREfTv35+UlBSOHz9e69fm5+eTl5fH0KFDAbjzzjvZunXrheM33XQTAL169SIpKQmA7du3c/vttwPQuXNn2rVrd8FBDB8+HDc3N3x9ffHw8GDSpEkAhIWFXXj9fffdx9y5c6mqquKnn35i9uzZNdq2bds2Nm3ahJSSl19+ufa/kKtQpysIIcRY4F3ABvhCSvn6JccdgG+BXkAOMFNKmSSECALigGPVp+6SUj5Yl7ZqmiYbjmTyx/kHcLa34dM5vRjTrbXlYjELYOkj4NIS5vwCISMYDgzo0pZXVhzhk19PsO9ULu/f2pPWHo5XlJp/dD6v73mdALcAvh33LZEtI40DncbB8j/Dpn9A8k6Y9hm41HyFezlMwsTU0KkMDxzOc9uf47U9r7Evcx8vD3wZV3tXi350a3O1K/26YMuWLWzYsIGdO3fi7OzMsGHDLtQFXBzGs7TS28HBAQAbGxsqKyuvcvb/nw9gMpkuPDaZTBdef/PNN/Pyyy8zYsQIevXqddnVzsVO4eeff+bQoUN0797dop/jYupsBSGEsAE+BMYBXYFbhRCX7vTcC5yVUoYCbwNvXHTshJQysvqmnYPmmpBS8vnWk/xhXhShLV1Z+cchljsHsxk2/RN+/gME9oMHt0HIiAuHHe1s+Ne0MN6dFcnh9AJu+mgHJ7KLapSqNFfy2u7XeHX3qwz2H8xPE3/6f+cA4OAGN38BE9+GxG3w1Rhjv8ICPBw8eG/Eezze63E2Jm/knrX3kHMuxyKtpkB+fj4tWrTA2dmZo0ePsmvXrgvHWrVqRVxcHGazmV9++eXC825ubhQWFgLg4eFBixYt2LZtGwDz5s27sJq4HEOGDOH7778HID4+nuTkZDp16lRrmx0dHRkzZgwPPfTQZcNL27dvZ+PGjRceW3MVUZchpr5AgpTypJSyHJgPTLnknCnAN9X3FwE3Cl1Jo1FESslrq4/y6qo4xnVvzU/3D6CV+5Wv6C+L2QzL/whb34Qec+D2n8HZq8ZTp0T6s/DBAZRXmbnlk50cSsv/n+MV5gr+uvWv/HD0B+7seifvDn8XFzuX3wsJAb3vgTuWQlGW4SSy4y0y3yRM3N39bj648QMS8xO5a81dpBelW6TV2Bk7diyVlZV06dKFZ555hv79+1849vrrrzNx4kQGDhxImzZtLjw/a9Ys3nzzTXr06MGJEyf45ptveOqppwgPDyc6OpoXXnjhiu/58MMPYzabCQsLY+bMmXz99df/s3KoDbfddhsmk4nRo0fXeLwmZ7B48WIOHTp0Te9TI1LKOrkB0zHCSucfzwE+uOScQ0DARY9PAD5AEFAMHAB+BYZc5j3uB6KAqLZt20qNxmw2y9dWxcl2T6+Qz/8SK6uqzJaLVVVJufQxKV90l3LjP6Q0107rZHaRHPjaRtnthTVy/6lcKaWUFVUV8oktT8juX3eX3xz6pvY2ZMRI+e9QKd8IljLziCU/xQX2Z+6XA34YIG9ccKNMKUhR0rKEI0fU7G+uvPnmm/L555+v8dj27dslUONtxowZvzu/pv8DIEpe5nu8oWYxZQBtpZQ5QohewBIhRDcpZcHFJ0kpPwM+AyPNtR7s1DQw/rs+nk9+PcFt/dryypRulrd2kBJWPQn7v4EhT8Dw52osaKuJYB8XFj80kJmf7eSer/fy0/39+CL+VdYmreXJ3k9yR7c7am9H6zC4Zw3MHQ/zboJ71xkZUBbQo2UP5o6Zyz1r7+HBDQ/yzdhv8Ha6tv0NzfVl2rRpnDhxgk2bNtV43N/f/0LI61JMV0u1rg2X8xyqN2AAsPaix38D/nbJOWuBAdX3bYEzVNdmXHLeFqD3ld6vV69eV/XEmqbNvJ1Jst3TK+TTiw6qrRyklPLXfxsrh7XP13rlcClJZ4pkr3+sl91e+kV2/Xyg/Dzmc8vtyYiV8l+BUr7XS8qiM5brSCkPZB6Qvef1ljOXz5RF5UVKWteCXkHUP9e6gqjLPYi9QAchRLAQwh6YBSy75JxlwJ3V96cDm6SUUgjhW73JjRCiPdABOFmHtmoaOduPn+HFZYcZ0bklr04Lq7kVRm05vMTYlA67BUa9UuuVw6W083Zhzo0FFJVV4ZD1F27teJflNrXuDrPnQ14y/DgTKsuu/prLENkykv8M+w9Hc4/yxJYnqDJXWW6XpklTZw5CSlkJPIqxSogDFkgpDwshXhFCTK4+7UvAWwiRADwOPFP9/A1AjBAiGmPz+kEpZW5d2app3CRkFfHQ9/sI9XXl3VmRV62IviJp++GXByGgL0x+32LnALAnYw9fH/8HvSMOkFfoxF8XxajVI7QbCDd9Bql7Yc0zVz//CtwQcAPP93+eHek7+DD6QyUtTdOlTvcgpJSrgFWXPPfCRfdLgRk1vG4xsLgubdM0DUrKK3lgXhQOtia+uLM3bo4KPYhKcuGnOUb/pFnfg52FmU9AZnEmT/z6BO3c2zF3/NN83zqL11cfpcd2T+4b0t5yG7tNhfQ/w453wL839LjNYqnpHadz6MwhPo/9nO4+3RnRdsTVX6RpVuhKak2j5qVlhzl5ppj3ZvUg0MvZciEpYdljUJQJt3wDrpY3PKsyV/HMtmcoqyrj7eFv42bvxgM3tGdst9a8tvoou04q1iKM+DsE3wAr/gIZB5Wk/tbvb3Tz7sZz25/jVMEpNbs0TQ7tIDSNlmUH01kQlcrDw0IYGOqjJrb3Czi6Aka+BP49laQ+j/2cqMwonu33LMEexnhHIQRvzginnbczf54fTX5JheVvYGML0+ca8yUW3WvMm7AQBxsH3h72NjYmG57e+jQVZgW7mikLFy6kS5cuDB8+vNavSUpK4ocffqhDq6yDdhCaRklyTgnP/hxLz7ae/HlkRzWxzMOw9jkIHQX9H1aSOpB1gI8Pfsz44PFMCfnfulA3RzvemRlJdlEZLy0/rPQ+uPjA1I8g5zhsUKuabePahhf6v8DhnMN8EfuFml3NkC+//JLPP/+czZs31+r8ysrKWjuIrKwsVfOU0A5C0+iQUvL04hgE8O6sHthZOvENoKoSljxkzHCY+vHV23RfgdLKUp7f/jxtXNrw9/5/r7EGIzzAk0eHh/LLgTRWx2ZYbjdA+2HQ9wHY/TEkbr3q6VdidNBoxgeP57ODn3E4R9F5NWC+/fZbwsPDiYiIYM6cOYBxNT9ixAjCw8O58cYbSU5OBuCuu+7ioYceon///rRv354tW7Zwzz330KVLF+666y4AXnnlFbZv3869997LU089RWlpKXfffTdhYWH06NHjgtP4+uuvmTx5MiNGjODGG2/kmWeeYdu2bURGRvL2229f1t7Zs2cTExNTt7+UK9BQC+U0msvy094Udp7M4V/TwtT2HQB2fmDE8Wd8A66+SlIfHfyI5MJkvhj9xRWb4j06IpRNR7N49pdYegd54et2ba0X/oeRL8GJjbDkYXjoN3B0t1jq2X7PEnU6iue2PcdPk37CwUbBrqux+hk4HWtdzdZhMO71yx4+fPgw//znP/ntt9/w8fEhN9dIjHzssce48847ufPOO/nqq6/44x//yJIlSwA4e/YsO3fuZNmyZUyePJkdO3bwxRdf0KdPnwutNjZt2sRbb71F7969+c9//nPZ9t779+8nJiYGLy8vtmzZwltvvcWKFSsua++2bdvYuHEjr7zyyhVnPNQlegWhaVRkFpTy6qo4+gV7MauPZRXFF8g5AVteg84ToeulbcKujSM5R/j28Lfc1OEm+rXpd8Vz7WxMvD0zguKyKl5deUTpfbF3hqmfQH4qbH5VScrDwYNXBr3CifwTfBX7lZpdDZBNmzYxY8YMfHyM/SovL6On1s6dOy+00Z4zZw7bt2+/8JpJkyYhhCAsLIxWrVoRFhaGyWSiW7duF1pyX8yV2nuPGjXqwnvWhpdeegkwurPGxlrZmdYSvYLQNCpeWHqI8kozr98crlYMZzbDsj+CjQOMf0up3qHCXMGLv72Il6MXT/R+olavCW3pxoND2/PepgRu6RPIwBCFTfbAPtDnXtjzGUTONsadWsgg/0GMCxrHF7FfMKH9BNq6X8MQpGvhClf6DYmLW3Bf2p67Ni29L8bFpYbGjJdh+/btF9prSCl55ZVXWLhw4TW9nzXQKwhNo2Hz0SzWHs7kzyM7EuxT+z+2GoldAKe2w+hXwL3N1c+/Aj8d/YmjuUd5tt+zuNvXPsTz8PBQAr2c+PsSw+kpMeLv4OwNKx6/5kFDl/Jknyexs7HjX7v/1aQGDY0YMYKFCxeSk2OkGZ8PMQ0cOJD58+cD8P333zNkSO2n+V1Kbdt7X9xGvCbOrx7OY7XurNeIdhCaRkF5pZl/rDhCe18X7h0crCZWVgTrXwS/ntDjGhrn1UBuaS4fRX/EIL9B3Nj2xmt6raOdDa9M7s6J7GI+36bYScbJE0a/CmlRRoNBBVo6t+TRyEfZkb6D9afWq9nVgOjWrRvPPfccQ4cOJSIigscffxyA999/n7lz5xIeHs68efN49913LX6P2rb3Dg8Px8bGhoiIiN9tUu/YseN/5jvA/68irjuXa9LU2G66WV/T5vOtJ2S7p1fITUcz1cU2vGw04kverSz1ym+vyIhvIuSJsycs1njg2yjZ6flVMj2vRM0Ys1nKuROkfL2dlCW5SlIVVRVy+rLp8sYFN8pzFefU7KpGN+urHSNHjqyxfbcQQh46dEhJuyE169NorMKZojLe3XCc4Z18Gd7J8gpnAHIT4bcPIHwmBPZVkjqWe4xFxxdxa+dbae9pefuM5yZ0wWyG/66zbCjQBYSAsa/DuTzY9h8lKVuTLX/t81cySzL5Lu47Nbs0tcZsNvPSSy+xbdu23922bt2Kh4fHdbVHb1JrGjz/WRfPuYoqnp946cRaC1j/AphsjPRQBaSU/Hvvv3G3d+fBCLWJuIFeztwxoB1f7kjknsHBdGljeaoqrbsbG9W7P4U+f4AW7SyW6tO6D8MChvFF7Bfc1OEmvBxrn4GjsQyTycSgQYPq24wL6BWEpkFzIruIBVEp3N6/HSG+l68tqBWp+yBuGQz6E7j7KUn9lv4be07v4aGIh/BwUL+qe3REKG4Otry++qiyljHcyAY2/UNZ6i+9/kJpZSmfHvxU3S5No0M7CE2D5r/r43GwNfHoiFB1sY0vg7MPDHhEScYszby7/138Xf2Z0fF3zYgtwtPZnsdGdODX+Gy2Hz+jJubhDwMehtiFRvtyBdp7tuemDjex4NgC3cyvGaIdhKbBcigtn5UxGdw7OBgfV8Wq3pNbIPFXY3yog5uS1IZTG4jLjePhyIexs1FoL34JdwxsR0ALJ95Yc1Q9vXTQn420143qmS/nf84PD+i5Ec0N7SA0DZa31h3Dw8mOP9ygMD8BjFbeG18B9wDofY+SVKW5kvcPvE+IRwgTgieo2XUJDrY2/HFEB2LT8tkYp9ikzdHdcBInN0PyLiUpHycfZneezZqkNSScTVCzS9Oo0A5C0yDZm5TLlmPZPDQsBHeVIUAAx1ZB2j4Y9rTSECCA5SeWk1SQxGM9HsPGZKNmVw1M6+lPWy9n3tkYr76K6HOvMfxoy2vKdt3V7S6cbJ34JOYTZa3GwAsvvMCGDRvq24x6R2cxaRok7208jo+rPXcOCFITkhJ+fQO82kPEbCWpSnMln8d+TlfvrnU2fc3OxsRjI0J5alEMG+KyGNW1leVi9i7Ghvy65+HUTmg3wGIpT0dPbutyG1/EfsHx8ON0aNHBcrsaOFVVVVYpSps3bx75+fk1HuvRo0eDyla6HHoFoWlwRKfkse34Gf4wpD1O9opX6QkbjW6tgx83Bu0osCZpDSmFKdwffn+NrbytxbQe/rTzduadDVZYRfS23irijq534GznzCcHG+cqIikpic6dO3PbbbfRpUsXpk+fTklJCQBBQUE8/fTT9OzZk4ULF3LXXXdd6KC6d+9eBg4cSEREBH379qWwsJCqqiqeeuop+vTpQ3h4OJ9++vssr/j4eB577LEab05OTtf1Z7cUvYLQNDg+2JSAh5Mdt/W3PIcfMFYPW9809h7CZypJmaWZL2K+INQzlOGBtZ8cZgm2NiYeG9GBJxceZP2RTEZ3a225mL2zsRex7jmrrCJmd57N57Gfk3A2gdAWlmeWvbz8MEfSCyx+fU109XPnxUndrnjOsWPH+PLLLxk0aBD33HMPH330EU8++SQA3t7e7N9vZH2tWbMGgPLycmbOnMlPP/1Enz59KCgowMnJiS+//BIPDw/27t1LWVkZgwYNYvTo0QQH/38bmMcff5z33nuPgoL//TknTZpEz55qUwuvF3oFoWlQxGUUsCEuk7sHBeHqoHj9cmoHpOwywiy29kpSm5M3cyL/BPeF3YdJ1P2fzdRIPwK9nPjk1xNWWEXcY2Q07XhH2a47ut6Bk60Tcw/PVdaqDwIDAy+Edm6//fb/ae09c+bvLyKOHTtGmzZt6NOnDwDu7u7Y2tqybt06vv32WyIjI+nXrx85OTkcP378f17bokULHnvssd9pvvjii9b8keoUvYLQNCg+3JyAq4Mtdw0MUhfb+ha4tISec5RkpJR8GvMpbd3aMiZojLpdtcDWxsQfhrTnhaWHiTp1lj5BClXM9s7G5Lkt/4KsOGjZxWIpT0dPbu5wM/OPzuexHo/R2sWy1c3VrvTriktDgxc/vpZ23FJK3n//fcaMufLn4fwq4nzn1okTJ9KrV69rsLh+0SsITYMh6UwxK2MzuL1/Ozyd1a74ST9gpHgOfBTs1OK9O9N3Epcbx71h92Jrun7XVDN6BeLlYs8nW06oi/X9A9g5w473lKXmdJ2DRPLtkW/V7brOJCcns3PnTgB++OEHBg8efMXzO3XqREZGBnv37gWgsLCQyspKxowZw8cff0xFRQVg7DcUFxf/7vVeXl7/s4poTKsH0A5C04D4akcidiYT9wwKUhf77QNwcIdedytLfXPkG3ycfJjYfqK6XdeAk70Ndw4IYuPRLI6dvvzsgFrh7AU97zDmYOSnKkn5ufoxLngci+IXkV9Wc5ZOQ6VTp058+OGHdOnShbNnz/LQQw9d8Xx7e3t++uknHnvsMSIiIhg1ahSlpaXcd999dO3alZ49e9K9e3ceeOCByw4QeuKJJ3Bzc2PChAn07t27Ln6suuNybV4b2023+27cnC0uk52fXy2fWBCtLpaXIuVLLaRc86yyVHxuvOz+dXf52cHP1O2ygNwi4/fy+E9W+L2cPWW138vRnKOy+9fd5acHP631a+q73XdiYqLs1q1bvbz3s88+K/fs2VMv730xut23plHy/e5kzlVUqQ8DAthdnYbZ7wFlqW+PfIujjaPVei5dKy1c7JnZJ5Cl0Wmczi9VE/NsC2HTYd/XUKp25d/JqxOD/Qfzfdz3lFeVq9nVDHjxxRcvbHQ3JrSD0NQ75ZVmvvktiSEdfNRaXQOUFcK+b6DrFOMLUYEz586w8uRKpoROwdPRU80uBe4ZFEyVlHy/2wrN8vo/DOVFcEB9xsOcrnPILc1lTdIadbuuA0FBQfUythOMUFVjRDsITb2z/GA6WYVl3DdEsecSwP55UFYAAx5Vlvrx6I9UmiuZ01UtC0qVtt7O3Ni5FT/sTqa0okpNzC8S2g6APZ+BWU1rQJsBhHiE8N2R72qdilvb8zTWx5LfvXYQmnpFSslXOxLp0NKVGzr4qImZq4zwUtsBEKCWSlhWVcaCYwsYFjiMdu6KBXtW4J5BQeQUl7P8YLq6WL8H4GwSxK9VkhFCMLvLbOJy44jOjr7q+Y6OjuTk5GgnUQ9IKcnJycHR8dp6kek6CE29ciAlj8PpBfxzanf19hUJGyHvlPK0OIB1SevIK8tjdhe1/k3WYkCIN51auTF3RxLTewWo/a46TwJ3f9j9MXQer2TXxPYTeWf/O3x35Dt6tOxxxXMDAgJITU0lOztb6T01luHo6EhAQMA1vUY7CE298t3OU7g62DK1h7+62N4vwLUVdFZPR51/bD5B7kH0a91P3S4rIITgrkFB/O3nWPYk5tKvvbflYja20Oc+Y4BS5hFoZfkoV2c7Z6Z3mM63R77ldPHpKxbO2dnZ/U8rCk3Dp05DTEKIsUKIY0KIBCHEMzUcdxBC/FR9fLcQIuiS422FEEVCiCfr0k5N/ZBbXM6K2Aym9fBXb6tx9hQcXwc971RuqxGXE0dMdgy3dLqlTpvyXStTI/3xdLbj69+S1MV63QW2jrBHfZTorM6zkEjmH52vbpemQVFnDkIIYQN8CIwDugK3CiEuvVS5FzgrpQwF3gbeuOT4f4HVdWWjpn5ZGJVCeaWZ21Wb8gHsmwtCQK87laV+OvYTjjaOTA6ZrG6XFXGyt2FGrwDWH8kkq1Ax5dXZC7rfDDELoVStaZ6fqx83BNzALwm/UFFVoWaXpkFRlyuIvkCClPKklLIcmA9MueScKcA31fcXATeK6ks2IcRUIBE4XIc2auoJs1ny/e5k+gZ50am12ghQKstg/7fQaTx4XFuM9VIKywtZlbiKccHj8HDwULOrDri1b1sqzZKFUWrV0IBRZV5RDIcWKUvN6DiD3NJcNqdsVrdL02CoSwfhD6Rc9Di1+rkaz5FSVgL5gLcQwhV4Gnj5Sm8ghLhfCBElhIjSG1+Ni63Hs0nOLeH2AVZYPRxZCiU5xgQ1RZadWMa5ynPM7KzWHryuaO/ryoD23szfm4zZrJgNFNAbWnWHqLlGa3QFBvkNoo1LGxbGL1SzSdOgaKhpri8Bb0spi650kpTyMyllbyllb19f3+tjmcYqfLfrFD6u9oxVmXVwnr1fGhPjgocpyUgpWXBsAWE+YXTzrp9uo7Vhdr+2pOSeY1vCGTUhIYy9iNMxkL5fScrGZMPNHW5mV8YukguS1ezSNBjq0kGkAYEXPQ6ofq7Gc4QQtoAHkAP0A/4thEgC/gw8K4RQr3zSNAhSz5aw6WgWM/sEYm+r+BE8HWvMfOh9L5jUtKIyoziZf5JbOt2iZlMdM7pbK7xc7PnBGpXV4bcYXV73fa0sNa3DNGyEDYuOq4esNA2DunQQe4EOQohgIYQ9MAtYdsk5y4Dzu4rTgU3V/aOGSCmDpJRBwDvAv6SUH9ShrZrryI97jCvMW/uqtcIAjNWDrSNEqtcrzD86H3d7d8YGjVW3qw5xsDU2qzfEZZFZoLhZ7egB3W+C2MXKm9UtnVsyNGAoSxOW6s3qJkKdOYjqPYVHgbVAHLBASnlYCPGKEOJ8esiXGHsOCcDjwO9SYTVNi8oqMwuiUhneqSUBLZzVxMqKIHYhdLvJyMpRIOdcDpuSNzEldAqOttdWbVof3Nq3LVVmycKolKuffDV63WNsVscuUJaa0cnYrN6YslHdLk29U6d7EFLKVVLKjlLKECnlq9XPvSClXFZ9v1RKOUNKGSql7CulPFmDxktSyrfq0k7N9WPLsWyyC8uY2Sfw6idfjSNLjcZzPe9QllpxcgWVspKbQm9St+s6EOTjwqBQb37ck0KV6ma1f09oHQZRXytvVg/0G4ifix+LjukwU1OgoW5Sa5ooC6JS8HG1Z3jnlupi0d+DVwi07a8kI6VkScISwn3CCW0Rqm7XdeLWvm1JyzvH1uOKGXznN6szYyFNbbPaJEzc3PFmdp/ezakCK+yRaOoV7SA0140zRWVsOprFTT0DsLNR/OjlnIBTO6DH7cYXnAKHcw6TkJfA1A5T1Wy6zozu2hofV3t+3G2FrKGwW8DOxSg4VGRa6DRshS2L4xer26WpV7SD0Fw3lhxIo9IsmdFLrZgNMFYPwgQRtypL/XL8FxxtHBv85vSl2NuauKlnAJuOZpFTVKYm5ugO3abB4SVQ/vvZyteCr7MvQwKGsPzkcirNNY/h1DQOtIPQXBeklPy0N4UebT3p0EqxctpcBdE/QOhIcG+jJHWu8hyrElcxqt0o3OwV7aoHbu4ZQKVZsjTaCm3AI2dDeSHErVCWmhI6hTPnzvBb+m/qdmnqDe0gNNeFg6n5HM8q4pbeVticPrEJCjOM8JIiG5M3UlRRxLQO09Ttqgc6tXYjPMCDRfus0Hqj7QBoEWSszhS5wf8GWji0YGnCUnW7NPWGdhCa68KCqBQc7UxMDFe74geMcZnO3tBxnLLUkuNLCHANoFcrtQFD9cn0XgEcySjgcLranGlMJoiYDYlbIU9tX8POxo4J7SewOWUz+WWKdmnqDe0gNHXOufIqlkenM757G9wc7dTEinPg6EoIn6nc1ju1MJXdp3czJXQKJtF4/xQmhfthZyNYvO/SRgUWEDELkHDwJ2WpySGTqTBXsDpRN2RurDTevwpNo2HN4QwKyyqZYY3wUuxCMFdA5G3KUktPLEUgmBJyaZPhxkULF3tGdmnF0ug0KqrMimLtIGgIHPxBuSais1dnOrboyLITlzZQ0DQWtIPQ1DkLo1Jp6+VMv2C1amcAor+DNpHQuruSjFmaWZqwlAF+A2jjaoWwVz0zvVcAOcXlbDlmha7GkbMh9ySk7FaSEcJwvrFnYjmRd0LdLs11RzsITZ1yOr+UnSdzmNbDH5NJcTpb1lGjOZ8VUlsPZB0goziDSSGTlLUaAjd09MXH1YFF+6zQeqPLZKMmwgqb1RPaT8BW2LL0hN6sboxoB6GpU1bEpCMlTI70Uxc7tMiofeimnnG0OnE1jjaOjAgcoW5XA8DOxsS0Hn5sjLNCTYSDK3SbCod+gfISJSlvJ28GBwxmxYkVuiaiEaIdhKZOWXYwne7+7oT4uqoJSWnsPwTfAG6tlKQqzBWsTVrLsMBhONspNgxsQNzcy6iJWHbQijURR9VrIqaGTCX7XDY703eq26W5rmgHoakzEs8UE5Oaz+QIK6we0vbD2SToPl1Zalf6LvLK8hgXrJ4m25Do3Nqd7v7uLN5vjZqIgeDZ1ihIVOSGgBvwdPDUm9WNEO0gNHXG8oPpCAGTrOEgDi0CG3voor5nsDpxNW72bgz2H6xuVwNjaqQ/h9IKSMi64jDGq2MyGf2ZEn+FwkwlKTsbO8YEjWFLyhaKK9TaeGiuL9pBaOoEKSVLo9PoE+RFGw8nNTFzFRxaDB1Gg5OnktS5ynNsTN7IqHajsLdRq6NoiEyO8EMIWBZthZqI8FtAmuHwz8pSE9pPoLSqlE3Jm9Tt0lw3tIPQ1AlHMgo4kV1snfBS0nYoyoTuNytLbU3dSkllSZMLL52npbsjA0O8WRKdjlSsY8C3E7QOhxj1QUIRvhH4ufix8uRKZS3N9UM7CE2dsOxgOrYmwfgwK9QYHFoE9q7QUb3b6urE1fg4+dCnVR91uxooUyL9Sc4tITolT10sbAak7zfaqytgEibGtx/ProxdnDl3Rt0uzXVBOwiN1TGbJSsOZjCkgw9eLophnMoyY3Jc5wlgr5ZxVFBewLbUbYwNGouNyUbNrgbM2O6tsbc1WafDa9h0QBgZZIpMCJ5AlaxibdJadbs01wXtIDRWZ1/yWdLyzlmn9iFhI5TmWyV7aeOpjZSby5tseOk87o523Ni5JSti0qlUbb3h7gdBg40wk2LIKrRFKB1bdGTVyVVqNmmuG9pBaKzOsuh0HGxNjOraWl3s0CJw8oKQ4cpSqxNXE+AaQJhPmLpdDZwpkf6cKSpne4IVwjlhMyD3hBFqUmRC+wnEnIkhucAKU/A0dY52EBqrUlFlZlVsBiO7tsLVwVZNrKwIjq4yqnpt1LrAnjl3ht2ndzMueBxCcURpY2B4Z1/cHG1ZZo0wU9cpRopx7CJlqfHB4wFYlahXEY0B7SA0VmVHwhlyisutk710bDVUnrNKeGlt0lrM0nzhC6qp42Brw/jubVh7+DTnyqvUxJw8jRTjQ4uNlGMFWru0plerXqw8uVI9y0pT52gHobEqyw6m4+Zoy7BOvupihxaBu78x6UyR1Ymr6dCiA6EtQtXtaiRM6eFHcXkV6+PUCt0AoyaiKNMonFNkQvsJJBUkcST3iLpdmjpFOwiN1SitqGLd4UzGdmuNg61illBJLiRsgO43GVW9CqQVpXEw+2CzWT2cp1+wN63dHa1TNNdhDDi4WyXMNLrdaGxNtnqzuhGgHYTGamw+mkVRWSVTIv3VxY4sBXOlVcJL5yeajQ1Sr6NoTNiYBJMi2rDlWDZni8vVxOwcjTbgR5ZBxTklKQ8HDwb7D2Z14mqqFENWmrpFOwiN1VganY6PqwMDQrzVxQ4tBu9QaBOhLLUqcRURvhEEuAWo29XImBLpT6VZsjI2Q10sfIbR4TV+jbLUhPYTyD6Xzd7Mvep2aeoM7SA0VqGgtIJNx7KYGN4GG9XBQAXpRnuNsBmgmHGUcDaB42ePN/nah8vRzc+d0JauLLVGmCloCLi2hhj1orlhAcNwtnXWrTcaONpBaKzCusOZlFearTQY6GdAWiW8tCpxFSZhYkzQGHW7GiFCCKZE+LE36SypZ9WG/2CyMfphHV8H584qSTnaOjKy3Ug2nNpAWZXigCNNnaEdhMYqLI1OI9DLiR6BnupihxYZoSUftYwjKSWrE1fTr3U/fJx81O1qpJx32itirBBmCpsO5gqIW64sNT54PEUVRWxP3a5ul6ZOqJWDEEL8LISYIITQDkXzO84UlfHbiRwmhfupF6HlnID0A0Z4SZHYM7GkFqU22/DSedp5uxAR6Gmdojm/HuDV3irZTP3a9MPL0UsXzTVgavuF/xEwGzguhHhdCNGpDm3SNDJWxWZQZZbWyV6KXQQI6HaTstTqxNXYm+wZ2W6kul2NnMkRfhzJKCAhq1BNSAgj9Je4FQpPK0nZmmwZ1W4Uv6b+qgcJNVBq5SCklBuklLcBPYEkYIMQ4jchxN1CiMv2QBBCjBVCHBNCJAghnqnhuIMQ4qfq47uFEEHVz/cVQkRX3w4KIdSn1GvqjGXR6XRq5Uan1m5qQlIa4aV2A8FDzdlUmatYk7SGIQFDcLNXtKsJMDG8TfUgIWt1eJVw+BdlqfHB4ymrKtODhBootQ4ZCSG8gbuA+4ADwLsYDmP9Zc63AT4ExgFdgVuFEF0vOe1e4KyUMhR4G3ij+vlDQG8pZSQwFvhUCKHY2EdTF6SeLSHq1FnrbE6fjoUz8dVfQGrszdzLmXNnmn146Tyt3B3pH+zNsoNWGiTUKswqYabIlpG0dmmtw0wNlNruQfwCbAOcgUlSyslSyp+klI8Brpd5WV8gQUp5UkpZDswHplxyzhTgm+r7i4AbhRBCSlkipaysft4R0E1bGijLDxobn5PCrTR32mQLXacqS61OXI2zrTNDA4aq29VEmBLpR1JOCbFp+epiYdMhLQpyE5VkTMLEuOBx7ErfxdlStcwojfWp7QricyllVynla1LKDDDCQwBSyt6XeY0/kHLR49Tq52o8p9oh5APe1fr9hBCHgVjgwYscxgWEEPcLIaKEEFHZ2dm1/FE01mTZwXR6tPWkrbfaMB/MZohdDCEjwNlLSaq8qpz1p9ZzY9sbcbR1VLOrCTGuexvsbIR1wkznx78eWqwsNT54PJWykvWnagxGaOqR2jqIf9bw3E5rGnIpUsrdUspuQB/gb0KI3/2lSyk/k1L2llL29vW1QnM4zTVxPLOQuIwC63RuTdkNBalWyV7anradwvJCHV66BA9nO4Z29GVFTAZms+Ki3DMQAvtbxUF0atGJYI9gHWZqgFzRQQghWgshegFOQogeQoie1bdhGOGmK5EGBF70OKD6uRrPqd5j8AByLj5BShkHFAHdr/J+muvMsoPpmARMCLfS3GlbJ+ik3lBvdeJqPB086e/XX92uJsakCD9OF5SyJylXXSxsOmQdgczDSjJCCMYFj2N/5n5OF6tlRmmsy9VWEGOAtzC+3P8L/Kf69jjw7FVeuxfoIIQIFkLYA7OAZZecswy4s/r+dGCTlFJWv8YWQAjRDuiMkT2laSBIKVl2MJ2BIT60dFMM41RVGBkxncaCw+W2tGpHSUUJW1K2MCZoDHYmtSFDTZFRXVvhZGfDsoPWGCQ0FYSN1QYJSaSeV93AuKKDkFJ+I6UcDtwlpRx+0W2ylPLnq7y2EngUWAvEAQuklIeFEK8IISZXn/Yl4C2ESMBwOudTYQcDB4UQ0cAvwMNSSivMTtRYi5jUfE7llFgnvHTyVyjJsUp4aXPKZkqrSnV46TI429sysmsrVsVmUF6pOK/a1RfaDzXCTIqZUe3c29HVu6sOMzUwrpg6KoS4XUr5HRAkhHj80uNSyv9e6fVSylXAqkuee+Gi+6XA774VpJTzgHlXNl1TnyyNTsfexsSY7laaO+3oAaHqBW2rElfRyrkVPVr2ULeriTI5wo/lB9PZnpDNiM6t1MS6T4elD0NqFAT2UZIaHzyet6LeIik/iSCPIDW7NFbhaiEml+p/XQG3Gm6aZkiVWbIiJp1hnXzxcFIM41ScM/r6dJkEtg5KUnmlefyW9hvjg8dj0l1hLsvQjsb/m1WymbpMBBsHw8krMiZoDAJxYX6Hpv654gpCSvlp9b8vXx9zNI2B3Yk5ZBWWWac4Ln4tlBdZpXPr+uT1VMpKHV66Cva2JsZ1b82yg+mcK6/CyV5h+p+jB3QcbewhjfmX0fHVQs7Pq16VuIoHIx5U7+ulUaa2hXL/FkK4CyHshBAbhRDZQojb69o4TcNkWXQ6LvY23KgangDjytOlJQTfoCy16uQqgtyD6OzVWd2uJs7kCD9KyqvYeNQK86q7TzfmVSdtU5YaFzyOpIIkjuYeVbdLo0xt1+GjpZQFwESMbKJQ4Km6MkrTcCmvNLP60GkjG0blyhOgNB/i11XPnVbTyizOZF/mPsYHj9dXnrWgX3tvWro5WCfM1HEM2LtZb161sNVhpgZCbR3E+VDUBGChlNIKtfqaxsjW+Gzyz1VYp3Nr3AqoKrNKeGlN0hokUoeXaomNSTAh3JhXnX+uQk3Mzgk6T4C4ZVCpNvzH09GTAX4DWJ20GrNUzLLSKFNbB7FCCHEU6AVsFEL4AqV1Z5amobLsYDotnO0Y3MEKA3gOLQLPdhBwuW4ttWd14mq6enfV2S/XwOQIP8qrzKw9bIXitLDpxoowYYOy1LjgcZwuPk10VrS6XRolatvu+xlgIEaH1QqgmN833tM0cUrKK1l/JJNxYW2ws1HMEirKMuofwqYrz50+VXCKwzmHGR+sXoXdnIgM9KStlzPLrVE0134YOHlZJcw0ou0IHGwcdE1EA+Ba/so7AzOFEHdgVD2PrhuTNA2V9UcyOVdRxRRrFMcdXgKyympzpwWi2c6dthQhBJMj/NiRcIbsQsW50DZ20G0aHFsNZUVKUi52LgwLHMb6U+upMCuGvzRK1DaLaR5Gy43BGM3z+gDqcQFNo2L5wXTaeDjSJ0it2ypghJdadoNWl44IuTaklKw6uYperXrR2sUKRXvNjMmRfpglrIyx0iChynOGk1BkXPA4cktz2Z2xW90ujcXUdgXRGxgkpXxYSvlY9e2PdWmYpmGRV1LOr/HZTAxvg8mkmCV09pTRvTXsZmW7juYeJakgSW9OW0jHVm50bu1mnd5Mgf3B3d8qRXND/IfgZuems5nqmdo6iEOAvjxrxqw+dJqKKsnkCCtkL51vEd1d3UGsTlyNrbBldDsd8bSUSRF+7E/OIyW3RE3IZDJSlhM2Qolat1h7G3tubHcjG5M3Ulqp82Hqi9o6CB/giBBirRBi2flbXRqmaVgsi06nvY8L3f3d1cUOLYaAvtAiSEnGLM2sTlrNQP+BeDp6qtvVTDnfcHG5NcJM3aeDucJIeVVkXPA4iiuK2ZamXoCnsYzaOoiXgKnAv/j/lt//qRuTNA2NzIJSdiXmMCnCT70ILSsOMg9ZZe50dFY0p4tP6/CSIoFezvRo62mdork2EeAdapVspr6t++Ll6KXDTPVIbdNcf8WooLarvr8X2F+HdmkaEMsPpiMl1um9FLsIhMnIeFFkVeIqHG0cGRE4Qt2uZs7kCD+Oni7keGahmpAQxioiaTsUqDkcW5MtY4LG8GvKrxSVq2VGaSyjtllMfwAWAZ9WP+UPLKkjmzQNjOUH0+nu706Ir9owH6Q0NjCDh4JrSyWpCnMF65LWMSxwGM52ivOwNUwIb4NJYJ3N6rDpgDQa+CkyPng85eZyNqVsUrdLc83UNsT0CDAIKACQUh4H1P7CNY2CpDPFHEzNt85goLT9cDbJKuGl3Rm7OVt2VoeXrERLN0cGhviw7GA6UnH4Dz4djFCTFcJMEb4R+Lv666K5eqK2DqJMSll+/kH1OFDFT5GmMXD+inJiuDXCSwvBxh46T1SWWnVyFW72bgz2H6xulwYwwkyncko4mGqFVmvdp0P6fsg5oSQjhGBs0Fh2pe8it9QKc7Q110RtHcSvQohnASchxChgIbC87szSNATOz53uG+yFn6eTmpi5Cg7/DB1Gg5OnklRpZSkbkzcyqt0o7G3s1ezSXGBM99bY25iss1nd/Sbj30NXnExcK8YFj6NKVrEuaZ2ylubaqK2DeAbIBmKBBzDGiD5fV0ZpGgZxGYUkZBVZJ7yUtN2YGWCF8NLW1K2UVJbo8JKV8XCyY2gnX1bEpFNlVgwQeARA24HGqlExZNWxRUdCPEJ0NlM9UNssJjPGpvTDUsrpUsrPpXKgUtPQWRqdhq1JMD6sjbpY7AJjZkDHscpSK0+uxNfJlz6t1GYga37P5Ag/sgrL2J2Yoy4WdjOcOWakNSsghGBc8Dj2Z+0noyhD3S5NrbmigxAGLwkhzgDHgGPV0+ReuD7maeqLKrNkaXQ6Qzv64uWiGMapKIUjy4y503Zqoar8sny2pm1lbPBYbBSHDGl+z8gurXC2t7FOh9eu08Bka5XN6vOdetckrVHW0tSeq60g/oKRvdRHSuklpfQC+gGDhBB/qXPrNPXG7sQcTheUMrWHFVprxK+BsgIIv0VZat2pdVSaK5nYXn2jW/N7nOxtGN21FatiT1NeqTiwx8Ub2g839iEUAw6B7oGE+YTpMNN15moOYg5wq5Qy8fwTUsqTwO3AHXVpmKZ+WXIgDRd7G0Z2scLc6diF4NraKnOnV5xYQbBHMF28uqjbpamRyZF+5J+rYNvxbHWxsOmQnwwpe5SlxgWPIy43jsT8xKufrLEKV3MQdlLKM5c+KaXMBuzqxiRNfVNaUcXq2NOM7d5Gfe50SS7ErzW+KBRDQulF6ezP2s/E9hP13Ok6ZHCoL57OdtYpmus8AWwdrdLhdUzQGARCryKuI1dzEOUWHtM0YjYfzaKwrJKpPayQvXRkqdG8LWyGstT5Yik9Oa5usbc1Ma57G9YfyaSkvFJNzMENOo4xqqqr1LRaOrekT+s+rE5crV7Mp6kVV3MQEUKIghpuhUDY9TBQc/355UAavm4ODAyxwtzp2IXg09GorFVASsnKkyuJ9I0kwC1A3S7NFZkc4UdJeRUb4rLUxbpPh+JsSNqqLDUueBxJBUkcyT2ibpfmqlzRQUgpbaSU7jXc3KSUOsTUBMkvqWDLsWwmR/hhozoYKC8ZTu0wNqcVQ0LxZ+NJyEvQm9PXib7BXrRyd7BO0VyH0eDgbpVsplHtRmFrsmX1SR1muh4oTp7XNDVWHcqgvMrM1EgrZC+d/0KwQnhp5cmVxmCgID0Y6HpgYxJMCvfj1/gs8ksU50LbORopznHLjZRnBTwcPBjsN5g1SWswS8UsK81V0Q5C8z/8ciCN9r5WGAwkJcQsgMB+yoOBqsxVrExcySD/QbRwbKFml6bWTI70o6JKsuawFYrTut9spDonrFeWGhc8jsySTPZn6okDdY12EJoLpOWdY09iLtMi/dWzhDIPQXacVWof9mXuI6skS4eXrjNh/h4EeTtbJ5speCi4+FolzDQscBhOtk46m+k6oB2E5gJLo9MAmGKN8FLMAqOKtqv6YKAVJ1fgbOvM0MCh6nZpao0QgskRfuw8kUNWoeJcaBtb6Dq1umhSbSiRs50zwwKGse7UOirMiuEvzRWpUwchhBgrhDgmhEgQQjxTw3EHIcRP1cd3CyGCqp8fJYTYJ4SIrf5Xjwy7Diw9kE7Ptp609VYcwGM2G3OnQ0ca1bQKlFWVsf7Ueka2G4mTrWJHWc01MznSD7OElTFWCDOFTYfKUjiqPtthXPA48sry2JW+S90uzWWpMwchhLABPgTGAV2BW4UQXS857V7grJQyFHgbeKP6+TPAJCllGHAnMK+u7NQYxGUUcCyzkGnWaK1xagcUpFklvLQ1dStFFUVMaD9B3S7NNRPa0o0ubdytE2YK6AsegVYpmhvkPwg3ezcdZqpj6nIF0RdIkFKerB42NB+Ycsk5U4Bvqu8vAm4UQggp5QEp5flP5GGMORQOdWhrs2fJAaNz6wRrDAaK+QnsXaGjejvuFSdW4OPkQ7/W/dTt0ljE5Ag/DiTncSqnWE3IZDLmRJzYBMW/a9BwTdjb2DOq3Sg2Jm/kXOU5Nbs0l6UuHYQ/kHLR49Tq52o8R0pZCeQDl8Ykbgb2SynLLn0DIcT9QogoIURUdrYV+sY0UyqrzPx8II1hnazQubW8GA4vga5TwF4tVJVbmsvW1K2MDx6vO7fWI1N7+CEELN6fpi4WPgvMlUYBpSIT20+kpLKEDac2qNulqZEGvUkthOiGEXZ6oKbjUsrPpJS9pZS9fX19r69xTYitx7PJLixjeq9AdbG45VBeCJG3KUutPLmSSlnJ1NCp6nZpLKaNhxODQ31YvC8Vs+ogoVZdwa8HHPhe2a5erXoR4BrA0oSlylqamqlLB5EGXPyNE1D9XI3nVM+59gByqh8HAL8Ad0gp1Qbbaq7IwqhUvFzsGdG5pbrYge+gRTC0G6gkI6VkScISunl3o0OLDup2aZSY3iuAtLxz7DpphUFCkbdBZixkxCjJmISJyaGT2X16N+lFVtgj0fyOunQQe4EOQohgIYQ9MAtYdsk5yzA2oQGmA5uklFII4QmsBJ6RUu6oQxubPWeLy9kQl8nUSH/sbRU/DmdPQdI24wtAsY7iaO5R4s/G69VDA2FMt9a4OdqycF+qulj3m8HGHqLVVxFTQqYgECw9oVcRdUGdOYjqPYVHgbVAHLBASnlYCPGKEGJy9WlfAt5CiATgcYzZ11S/LhR4QQgRXX2zwuWt5lKWRqdRUSWZ3ssKDfAO/ggIiJilLLUkYQl2Jjs9d7qB4Ghnw+QIP1YfyqCgVLH2wNnLaAMeswAq1ZpC+7n60bdNX5YmLNWtN+qAOt2DkFKuklJ2lFKGSClfrX7uBSnlsur7pVLKGVLKUCll3+phREgp/ymldJFSRl50s0JbSc2lLNqfSjc/d7r6KbbWMJsh+gdoPxQ81fYyyqvKWZm4khFtR+Dh4KFml8ZqTO8VQGmFmVXWqImIvA3O5RqFc4pMCZlCWlEa+zL3qdul+R8a9Ca1pm6JyyjgUFoBM6yxeji1A/JOQeTtylK/pv5Kflm+Di81MCIDPQlt6WqdMFPICHBrY5Uw08h2I3Gxc2FJwhJ1uzT/g3YQzZiFUanY2QgmW6O1RvT3RkvnzuoFbUsSltDSqSUD2gxQt0tjNYQQTO8VwL5TZzmRXaQmZrKB8JlwfD0UZipJOdk6MTZoLOtPrae4QrFWQ/M/aAfRTCmvNLMkOo2RXVqp1z6UFRqT47rfpFz7kF2SzY60HUwKmaRrHxogN/Xwx8YkWGyNVUSP20FWGYWVikwNncq5ynOsS1qnbpfmAtpBNFM2H8sit7jcOpvTh5dARYlVah9WnFxBlaxiSuilRfeahkBLd0eGdvTl5/1pVKnWRPh0MNpvRH9vtIdXIMI3giD3IB1msjLaQTRTFuxNwdfNgaEdrVBgeGAeeHeAgD5KMlJKfkn4hQjfCII9gtXt0tQJ03sFcLqglK3xVuheEDkbso9CapSSjBCCKaFT2J+1n6T8JHW7NIB2EM2StLxzbD6WxS29A7C1UfwIZB6GlN3Q6y7l2oeozCgS8xOZ3nG6mk2aOmVkl1b4uNrz/e5kdbGw6Ubfrn1zlaWmhk7FVtiyKF69GaDGQDuIZshPe5KRwKw+bdXFouaCjYNxJajIwmMLcbN3Y0zQGHW7NHWGva2JW3oHsuloJul5io3yHNyMkbSHFsO5s0pSPk4+DG87nCUnllBW9bvWbRoL0A6imVFRZWb+3hSGdvQl0Etx7kN5sbHB2G2qUfykQM65HNYnr2dyyGQ996ERcGvftkjgp70pVz33qvS+25gTcVB9s3pGxxnkl+Wz/pT6aFONdhDNjo1xWWQVljG7rxVWD4cWG3OGe92tLLX0xFIqzZXM6DhD3S5NnRPo5cwNHXyZvzeZyirFCuY2EeDX0wgzKW5W92vTj7ZubVl4TL1brEY7iGbHD3uSae3uaJ3GfFFzwbcLtO2vJGOWZhbFL6Jny56EeIao26W5Lszu15bMgjI2HbVCk4Pe9xib1ck7lWRMwsT0jtPZn7WfhLMJ6nY1c7SDaEYk55SwNT6bmX0C1Ten06Mhfb8RHlDcnN6VsYuUwhRmdNKrh8bEjZ1b0srdwTqb1d1vMgoto9Q3q6eETsHOZMfCeL2KUEU7iGbEj3uTMQmY1dcKcx/2zQVbJ6MaVpFF8YvwdPBkVLtR6nZprhu2NiZm9mnL1uPZpOSWqInZuxifpSNLoVitpbiXoxcj241k+YnletqcItpBNBPKK80sjEphROdWtPFQ3AQuK4TYRUbbZidPJanskmw2J29mSsgUHGz0VNnGxqw+gQhg/l4rrCJ63w1VZXDwB2WpWzreQmFFIWuT1qrb1YzRDqKZsO7Iac4UlXNbPytsTscsgPIi4w9akV8SfqFSVurah0aKn6cTIzq35Ke9qVSobla36gaB/WDf18qb1b1a9aK9R3u9Wa2IdhDNhHk7T+Hv6cQNqpXTUsLeL6F1GPj3UpKqNFeyMH4hfVv3JcgjSM0uTb1xW792nCkqY1WsFdqA974HchLgxCYlGSEEMzrOIOZMDIfPHFa3q5miHUQz4HB6PrsTc7ljQDtsTGobyiRtg6zD0PcB5c3pTcmbOF18mtld1IvsNPXH0I6+BPu48NWOJKTilT/dpoFLS9j1sbJdU0On4mLnwry4ecpazRXtIJoBX+9IwsnOxjqV07s+AWdvo/pVke/jvsff1Z9hAcPU7dLUGyaT4O5BQRxMyWN/cp6amK0D9LkPEtZDdrySlKu9K9NCp7E2cS1ZJXremCVoB9HEySkqY+nBdG7q6Y+Hs52aWG4iHFtlFMbZOSpJHck5wv6s/dza+Vbd1rsJcHPPANwdbflqe6K6WO97jPYtu9VXEbO7zKZKVjH/6Hx1u5oh2kE0cX7ck0x5pZm7BwWpi+39whj00uc+Zanv477HydaJaR2mqdulqXdcHGy5tW9bVh/KIPWsYsqrqy+Ez4DoH6EkV0kq0C2Q4YHDWRi/UKe8WoB2EE2Yiioz83adYkgHH0JbuqmJlRXB/nnQdSq4t1GSOnPuDKsTVzMlZAru9oqzsDUNhjsGBiGE4Nudp9TF+j8MleeMjCZF5nSdQ15ZHitOrlC3q5mhHUQTZmVMBpkFZdwzyAqzFaK/h7J86P+QstSCYwuoMFfozekmhr+nE2O7t+bHPckUl1WqibXqBsFDYc/nUFWhJNWrVS+6eHXhuyPfqW+iNzO0g2iiSCn55NcTdGjpqj4UqKoSfvsA2g6AgN5KUiUVJfx49EeGBQ7TQ4GaIPcODqawtJLF+60wknTAI1CYblRXKyCEYE7XOZzMP8nOdLVeT80N7SCaKFuPn+Ho6ULuv6E9JtXU1iNLID8ZBv5R2a4lCUvIK8vjnu73KGtpGh4927YgMtCTuTuSMKuOJA0dBd6hsOsj5cK5sUFj8XHy4du4b9VsamZoB9FE+fTXE7Ryd2BKpL+akJSw4x3w6QgdxypJVZor+fbIt0T6RtKjZQ81uzQNlnsHB5N4ppj1cZlqQiYT9HsQ0vYpd3m1s7FjVqdZ7EjbwfGzx9XsakZoB9EEiUnN47cTOdw7OBh7W8X/4hOb4HSssXowqWmtP7WetKI07u6u3qJD03AZ1701bb2c+WhzgnrMP/I2cPaBbf9RtmtW51k42TrxRewXylrNBe0gmiCfbj2JW3XaoTI73gXX1hB+i5KMlJK5h+YS5B7EsMBh6nZpGiy2NiYeHBrCwdR8diSodWbF3hkGPAwJG4wW8wp4OHgws9NM1iStIaXACpPwmgHaQTQxTmYXsTo2g9v6t8PNUbEwLnUfJP5qZC7ZqnVa3ZG+g7jcOO7ufjcmoT92TZ2be/nTyt2BDzdbYWhPn/vAwcMqq4g7ut6BrbDlq8NfqdvVDNB/qU2MDzYl4GBrw31DrJAh9Ovr4NQC+tyrJCOl5OODH9PGpQ2T2k9St0vT4HGwteEPQ9qz82QO+06dVRNz9IC+f4C45ZB9TEnK19mXaR2msTRhKZnFinskzQDtIJoQiWeKWRKdxu392+LjqjhbIW0fHF8HAx4FB7Uiu53pO4nJjuG+sPuws1Fc1WgaDbf2bUsLZzs+ssYqov/DYOcE299Wlrqr212YpZlvjnyjblcTRzuIJsQHmxKwtzVx/w1WmOv867/B0RP63q8kc3710NqlNdNCdVuN5oSLgy33Dg5m49EsDqbkKYp5Gz2aYn6CM2oOJ8AtgAntJ7Dg2AKyS7LV7GriaAfRRDiVY6webuvXDl83xdVD+gGIX2OsHhzVWmHsythFdHY093XXq4fmyF2DgmnhbMd/1qt1ZgVg0J/B1tEIfSryYPiDVJmr+Dz2c3W7mjB16iCEEGOFEMeEEAlCiGdqOO4ghPip+vhuIURQ9fPeQojNQogiIcQHdWljU+H9TQnYmgQP3NBeXWzLG0bct591Vg8tnVvqpnzNFFcHWx4aFsLW+Gz2Jqk13sPVF/o9YIy7zTyiJBXoHsjUDlNZFL+IjCIrDDpqotSZgxBC2AAfAuOArsCtQoiul5x2L3BWShkKvA28Uf18KfB34Mm6sq8pEZ9ZyM/7U5nTvx0t3dXacJO8C+JXG3UPjh5KUltTt3Ig6wAPhD+AvY29ml2aRsuc/kH4ujnw1tpj6nURA/9o7Ilt+ZeyXQ+EPwDApzGfKms1VepyBdEXSJBSnpRSlgPzgSmXnDMFOL9TtAi4UQghpJTFUsrtGI5CcxX+veYYLva2PDI8VE1IStjwEri2Um7KV2Wu4p3979DOvZ1ePTRznOxteGRYCLsTc9XrIpy9jB5NccuV6yJau7RmRscZLElYQnJBsppdTZS6dBD+wMXVKKnVz9V4jpSyEsgHvGv7BkKI+4UQUUKIqOzs5rnZFJWUy4a4TB4cFkILF8Wr9Pg1RkuDoU+DvYuS1IqTK0jIS+CxHo9hZ9J7D82dW/u1xd/TidfXxKn3aOr/kJF+veFF5R5Nfwj/A/Y29rx34D01m5oojXqTWkr5mZSyt5Syt6+vYsfSRoiUkjfWHMXXzUF9IJC5Cja8DF4h0PMOJamyqjI+jP6Qbt7dGN1utJpdmiaBg60NT47pyKG0ApZEp6mJOXoYFzEnt8Dx9UpSPk4+3NntTtYmrSU6K1rNriZIXTqINCDwoscB1c/VeI4QwhbwABTXoM2H9Ucy2Zt0lj/d2AFne1s1sYM/QnYcjHgeFLONfoz7kYziDP7c688IodhJVtNkmBLhT3iAB2+uPca58io1sd73gld7WPe80Y5egbu73Y2Pkw9vRr2p50VcQl06iL1AByFEsBDCHpgFLLvknGXAndX3pwObpP4fqhWlFVX8c2UcoS1dmdkn8OovuKJYgbF6COhjTIxT4My5M3wS8wlD/IfQv01/Nbs0TQqTSfDc+C5k5Jfy5faTamK29jDqH3DmGOz/WknK2c6ZP/b4IzHZMaw9tVbNriZGnTmI6j2FR4G1QBywQEp5WAjxihBicvVpXwLeQogE4HHgQiqsECIJ+C9wlxAitYYMqGbNl9sTSc4t4cVJXbGzUfxv3PpvKM6GcW8od2x9d/+7lFWV8dc+f1WzSdMk6dfemzHdWvHxlhNkFSrmoHSeAO0GwebXoDRfSWpyyGQ6tujIO/veoayqTM2uJkSd7kFIKVdJKTtKKUOklK9WP/eClHJZ9f1SKeUMKWWolLKvlPLkRa8NklJ6SSldpZQBUkq1xOcmxOn8Uj7cnMDorq0Y0kFx7+XMcdj1MfS4Hfx7KUnFZseyJGEJc7rMIcgjSM0uTZPlb+O6UFEl+dfKODUhIWDMq1CSA5vV0l5tTDb8tc9fSStK46tY3cjvPI16k7q58vrqOCrNkucnKC6qpIQ1fwM7Z7jxRSUpszTz+p7X8XHy4f5wtQI7TdMmyMeFB4e2Z0l0Or+dOKMm5tfDaCa55zPltNd+bfoxLmgcX8R+odNeq9EOopGxI+EMS6LTuX9Ie9p6O6uJxS2DhPUw7BmjSlWBxccXE3Mmhj/3/DOu9q5qdmmaPA8PD6WtlzN/X3KI8kqzmtiIv4OzN6x8HMxqWk/2eRI7Gzv+tftfesMa7SAaFefKq/jbz7EEeTvz6AjForhzZ2HVU9AmAvo+oCSVWZzJf6P+S7/W/ZgcMvnqL9A0exztbHh5SjdOZBfz+TbFDWsnTxj9qtGBeL9ah9aWzi15rMdj7EjfwfpTaim0TQHtIBoR72yIJzm3hNduCsfRzkZNbN3fofgMTH4fbCxPkZVS8uruV6kwV/DCgBd0Wqum1gzv1JJx3Vvz3sbjnMguUhMLvwWChsD6F6EgXUlqZqeZdPHqwmt7XiO/TG3zu7GjHUQj4VBaPp9vO8mtfQMZEFLrYvOaOfkrHJgHAx8zVhAKbEjewOaUzTwS+Qht3a0w4lTTrHh5cjcc7Wx4auFBqlQqrIWASe9CVTks+6NShbWtyZaXB75MXmker+15zXKbmgDaQTQCSiuqeHLhQbxdHXhmXBdFsQJY9hi0CDb2HhTIOZfDP3f9ky5eXZjTdY6aXZpmSUt3R16Z0o39yXl8oRpq8g6BUS8b+2oH5ilJdfHuwv3h97Py5Eo2ntqoZlcjRjuIRsCba49x9HQh/54ejoeTYl+j1X+F/BSY9qkxoctCpJS8+NuLFJUX8ergV7E1KVZya5otkyP8GNOtFf9ZH8/xzEI1sT5/MEJNa56FvJSrn38F7gu/j85enXll1yucLVUcm9pI0Q6igbM1Ppsvtydy54B2DO/UUk3s0GKjpcYNT0HbfkpSC44t4NfUX3m89+N0aNFBzS5Ns0YIwT+nhuHqYMsf50dTWqHQhsNkgikfABJ+vl+pDYedyY5XB79KQXkBL+x4oVlmNWkH0YDJLS7nyYUH6dDSlb+NVwwt5aXAir+Af2+4Qa3K+WTeSd6KeotBfoOY3Xm2ml0aDRjzImaEE5dRwD9XKtbEtgiCCf+F5N9gi9oeQscWHXmi1xNsSd3CvCNqYavGiHYQDZQqs+RP8w+QV1LBO7Mi1bKWKstg4Z1Gx9abPlPKWiquKObxLY/jZOvEPwb9Q2ctaazGiM6teOCG9ny3K5kVMWqZSETMNLoDbPsPJKjtIdzW5TZGBI7g7X1vE5Mdo2ZXI0M7iAbKf9YdY9vxM/xjaje6+alNdmP1X40c8akfGxt5FiKl5O87/k5iQSJvDn0TX+fm12JdU7c8OaYTPdt68sziWE6qpr6OexN8OxuhpnzLW4wLIXhl0Cu0cmnFU78+RV5pnppdjQjtIBogaw5l8NGWE9zaty0z+yimju77BvZ9DYP/Al3VitjmHp7L+lPr+UvPv9CvjdoehkZTE3Y2Jt6f3RN7WxP3fRNFfkmF5WL2znDLN1BZCvNvhfJii6U8HDx484Y3OXPuDH/Z8hcqqhTsakRoB9HAOJyezxMLDhIR6MlLkxV7LZ36DVY9Ce2HGe0IFNiaupV397/L6HajubPbnVd/gUZjIf6eTnw6pxcpZ0t45If9VFQptM/w7QQ3fwkZMbDkIaVWHGG+Ybw86GWiMqN4dferzWLTWjuIBkTq2RLunrsXdyc7Pr29Fw62CvsO2cfgx1vBsy1Mnwsmy7UOnTnEk78+SacWnfS+g+a60CfIi1enhbE94QwvLz+s9mXcaSyM/gccWQpb1Lq+Tmw/kfvC7mPx8cXNYtNaJ683EPJKyrlr7l7OVVSx+KGBtPZwtFys8DR8Nx1s7OH2xcagdwtJKUjhkY2P4OXoxUcjP8LZTrFBoEZTS27pHciJrCI+3XoSX1dH/jRSIZ16wKPGRdPWN8GlJfSzvOPwYz0eIzE/kTej3qSFYwsmhUyy3K4Gjl5BNACKyiq595soknNK+GxObzq2crNcrDgHvrvZ6JF/2wIj5c9CThef5oEND1Alq/h45Mf4OPlYbpdGYwFPj+3MzT0DeHtDPF9tT7RcSAiY+A50ngirn4LoHy2WMgkTb9zwBn1b9+XvO/7O5uTNltvVwNEOop4pKqvkzq/2EJ2Sx7uzItX6LBXnwLdTICcBZn1n9Mq3kNPFp7l37b3kluby0Y0fEewRbLldGo2FmEyCN24OY2y31ryy4gjz9yjMabCxNfYjgofC0kfg8BKLpRxsHHhvxHt09e7Kk78+yW/pv1luVwNGO4h65GLn8MGtPRgX1sZysQvO4TjM+gFCRlgsdd455JTm8OmoTwn3DbfcLo1GEVsbE+/eGsnQjr4883Msc3corCTsHI2/j4A+sOhuiP7BYikXOxc+HvkxQR5BPLrxUTYlb7LcrgaKdhD1RFZBKTM/3Wkd55CbCF+N/n/nEHqjxVIJZxOYs3rOBecQ4avW7VWjsQYOtjZ8dkcvxnZrzcvLj/DexuOWb1w7uBp7c8E3GJlNuz+12C4PBw++GvMVXby78PiWx1l+YrnFWg0R7SDqgYSsQqZ99BuJZ4r54s7eas4hbT98OcrYc5izRMk57D29lztW30GVuYq5Y+Zq56BpUDjY2vDB7B7c3DOA/66P59lfYi2fRufgCrf+VL0n8VdY97zRacACPBw8+HzU5/Ru1Ztntz/LZzGfNZkUWO0grjMb4zK56aPfKK8ys+CBAWoN+GIXwdcTjK6s966HdgMskpFSsjB+IQ+sfwBfZ1++G/8dXbwVez9pNHWArY2JN6eH88jwEH7ck8LtX+4mp6jMMjE7R5jxDfS5D357H36cBaWWDQhytnPmw5EfMrH9RN4/8D5Pb32ac5XnLLOrASGaiqfr3bu3jIqKqm8zLktllZn/ro/noy0n6Obnzie39yLQy8KU0coyWPsc7P0c2g4wPuRurSySKqko4Z+7/snyk8sZ5DeIN254Aw8HxdYeGs11YGl0Gn9dFIOPqwPv3RpJr3aWp3Oz90tjJdEiGKZ/BW0s23eTUjL38Fze2fcOnb0688YNbzT4BA8hxD4pZe8aj2kHUfecyinmqUUx7EnMZVafQF6qnqJlEVlxRtw0/YCR2z3yJbCxbEbE4TOHeW77c5zMP8lDkQ/xQPgDmIReVGoaDzGpeTzyw37S80p5bEQojw4PxdbGws9w0nZYfJ8Rrh35EvR7yGgfbgFbU7fy3PbnKKsq4+k+T3NTh5sabIGpdhD1hNksmbfrFK+vPoqtSfDS5G7c3CvAMrGqSvjtPaN9sYObkdNtYW+l8qpyPjn4CV8d+gpvR2/+MegfDPQfaJldGk09U1hawYtLD/PzgTQiAj3517Tulje4LMk1Ji4eXWEMHpr4NvhYVqCXVZLFs9ufZXfGbm4IuIFn+z2Lv6u/ZXbVIdpB1AP7Tp3lleWHOZiazw0dfXn9pjD8PC2c4HZyC6z5G2QdgS6TjV73rtfeSVVKya+pv/Lm3jdJLkxmSsgU/tr3r7jbu1tml0bTgFh2MJ1Xlh/mbEkFdw8M4k8jO+DmaMHqWkrY/y2s/ztUnDMaXQ76s9H87xoxSzPfx33P+wfeB+DBiAe5vcvt2NvYX7tddYR2ENeRxDPFvLMhnqXR6bR0c+CZcZ2Z1sPfsuVl5hHY/KpxNePZFka/avGq4dCZQ7y3/z12Zuwk2COYp/s8zSD/QRZpaTQNlfySCl5fc5Qf9yTTwtmOR4aHcnv/dpaFdIuyYO2zELsQXFvDsKehxxyLQroZRRm8tuc1Nqdsxt/Vn0ciH2F88HhsFHqkWQvtIK4DxzML+WjLCZZGp2FnY+IPQ9rz0LAQXBwsaHeVcRC2vgVxy8DeFYY8Dv0fMbIurgEpJQezD/JpzKdsT9uOu707D0U8xMzOM7EzKc621mgaMDGpeby51pip0sbDkXsHBzOrb1tcLfl7PPUbbHgJUnYbrWsGPAqRt1m0ovgt7Tfe2f8OcblxhHiEcGe3O5nQfkK9rii0g6gjKqrMbIzLYt6uJHYk5OBkZ8OcAe34w5D2+Lo5XJtYZRnELYc9n0PKLnDwgP4PQr8Hr7nZXmllKasTVzP/2HyO5BzB08GTO7vdyaxOs3C1d702uzSaRsz242d4b9Nx9iTm4uZoyy29A5nVJ5AO19rvTEqIX2M0+0vbB05e0OsuY2rdNQ7hMksz65LW8Xns58SfjcfXyZcZHWcwNXQqbVwVaqIsRDsIK1JllkSnnGVpdDorYzLIKS7H39OJ2f3aMqtPIN6u1+AYqioheaexhD2yFErzwKu9kZcdeRs4edZaqqKqgr2n97IycSUbTm2gpLKEEI8Qbu18K5NCJukurJpmzcGUPD7fdpK1h09TUSWJDPRkUoQfo7u2urZ0cymNv9nfPoD41SDN0G4QdJsGncaDR+03oaWU7MzYybeHv73Qy6l/m/6MDhrNsMBh1605pnYQiuQUlbH1eDZbjmWzNT6bsyUVONiaGNmlFVN7+DO8k2/tU+sKMuDERji+Hk5uNgpz7Fygy0QInwnth9c6tS6jKINtadvYnrad3Rm7Kakswc3OjZHtRjIpZBK9W/VusKl1Gk19kFNUxi8H0li0L5WjpwsB6NzajdFdWzEo1IeIQM/a71cUZMDBH4zOsDnHjef8ekCnCdB+KLSJBNvahY7SitJYmrCUZSeWkVaUhkAQ7hvO8MDh9GvTj85enbE11c10Bu0groHiskqOZxVxMCWP6JQ8DiSfJSmnBABvF3uGdvRlaCdfRnRuefUMidICo24hbR+kRUHqXsir7kbp1sZoixE6CjqMAnuXK0rll+WTkJdAbHYsMWdiiMmOIbMkE4A2Lm0Y7D+YIf5DGOg/EAebawxvaTTNkFM5xaw/ksm6w5lEncrFLMHexkR4gAe9g7wI8/egU2s3grydr34BmB1vJJMcXWn8rQPYOoJ/b2jbH9pEQKtuRiHeFS4ApZTEn41nc8pmNiVvIi43DgAnWyfCfcPp2bInnb0607FFR/xc/axSt1RvDkIIMRZ4F7ABvpBSvn7JcQfgW6AXkAPMlFImVR/7G3AvUAX8UUq59krvZamDSM4pYe5viSRkFXEiq4j0/NILx3zdHOgR6ElkW08Gh/rQ3c8Dk+kKV+RZcRD1lTGY5Ew8FGb8/zF3fwjobXxgQoZDq+5Gj/rLcPjMYX5J+IWT+Sc5mXeSnNKcC8f8Xf0J8wkj3DecgX4Dae/RXq8UNBoF8krK2Zt0lqikXPYk5RKbmk+l2fhudLA10aGVKyG+roT5e3DfkPZXFivKNsJQ528ZMSCr+zzZOYNvZ/DpaDiO3ndfUSqrJIv9WfvZn2nc4s/GIzHscrZ1JrRFKEHuQfRv09/iwUVXchB1NlFOCGEDfAiMAlKBvUKIZVLKIxeddi9wVkoZKoSYBbwBzBRCdAVmAd0AP2CDEKKjlNKyblpX4FxFFfP3pBDS0oW+wV6EtnQltKUrYQGe+Hk4XtsXb0mO0T7Yp6MxB9qno/Fh8OsB7te2+XS6+DSrTq4i2DOYIQFDaO/RnhDPELp5d8PbSWFmhEaj+R2ezvaM6tqKUV2NljWlFVUkZBVx9HQhx04XcPR0IVFJZ8nIL726g3D1NdLRz6ekl5dAdpyRtp51BDIPG1Xb5UVXdRAtnVsyNmgsY4PGAlBcUUxCXgLHzx4n/mw8CXkJ7ErfhUmY6mSyXZ2tIIQQA4CXpJRjqh//DUBK+dpF56ytPmenEMIWOA34As9cfO7F513u/SxdQZirrxKuuDKovZixKrDC1XyVuQqTMOmVgUbTgDCbpXW+Kwwxi1t5/E5Kmi0ON9XLCgLwB1IuepwK9LvcOVLKSiFEPuBd/fyuS177u/QAIcT9wPnhskVCiGPWMf2K+ABnrsP7XCsN0a6GaBNou64Vbde10djsane5F9Slg6hzpJSfAZ9dz/cUQkRdztvWJw3RroZoE2i7rhVt17XRlOyqy9adaUDgRY8Dqp+r8ZzqEJMHxmZ1bV6r0Wg0mjqkLh3EXqCDECJYCGGPsem87JJzlgF3Vt+fDmySxqbIMmCWEMJBCBEMdAD21KGtGo1Go7mEOgsxVe8pPAqsxUhz/UpKeVgI8QoQJaVcBnwJzBNCJAC5GE6E6vMWAEeASuCRushgspDrGtK6BhqiXQ3RJtB2XSvarmujydjVZArlNBqNRmNd9PgwjUaj0dSIdhAajUajqRHtIBQQQjwhhJBCiOvTdvHKtrwphDgqhIgRQvwihPCsZ3vGCiGOCSEShBDP1Kct5xFCBAohNgshjgghDgsh/lTfNl2MEMJGCHFACLGivm05jxDCUwixqPqzFVddAFvfNv2l+v/vkBDiRyHEtQ1Ksa4tXwkhsoQQhy56zksIsV4Icbz63xYNwCaLvh+0g7AQIUQgMBpIrm9bqlkPdJdShgPxwN/qy5CL2qyMA7oCt1a3T6lvKoEnpJRdgf7AIw3ErvP8CYirbyMu4V1gjZSyMxBBPdsnhPAH/gj0llJ2x0iAmVWPJn0NjL3kuWeAjVLKDsDG6sf1bZNF3w/aQVjO28BfgQaxyy+lXCelrKx+uAujdqS+6AskSClPSinLgfnAlHq0BwApZYaUcn/1/UKML7sGMUVeCBEATAC+qG9bziOE8ABuwMg2REpZLqXMq1ejDGwBp+raKWcgvb4MkVJuxcjAvJgpwDfV978Bpta3TZZ+P2gHYQFCiClAmpTyYH3bchnuAVbX4/vX1GalQXwRn0cIEQT0AHbXsynneQfjgsNcz3ZcTDCQDcytDn19IYS4cl/6OkZKmQa8hbFyzwDypZTr6tOmGmglpTzfyvk00Ko+jamBWn8/aAdxGYQQG6pjnJfepgDPAi80MJvOn/McRijl++ttX2NBCOEKLAb+LKUsaAD2TASypJT76tuWS7AFegIfSyl7AMVc/3DJ/1Adz5+C4bz8ABchxO31adOVqC78bRBRBrj274dG3YupLpFSjqzpeSFEGMaH82B1p9UAYL8Qoq+U8nR92HSRbXcBE4EbZf0WuDTYVilCCDsM5/C9lPLn+ranmkHAZCHEeMARcBdCfCelrO8vvlQgVUp5fpW1iHp2EMBIIFFKmQ0ghPgZGAh8V69W/S+ZQog2UsoMIUQbIKu+DQLLvh/0CuIakVLGSilbSimDpJRBGH9EPevaOVwNYQxn+iswWUpZUp+2ULs2K9cdYXj0L4E4KeV/69ue80gp/yalDKj+PM3CaDlT386B6s90ihCiU/VTN2J0N6hPkoH+Qgjn6v/PG2l4G/sXtxC6E1haj7YAln8/aAfRdPgAcAPWCyGihRCf1Jch1Zth59usxAELpJSH68ueixgEzAFGVP+Ooquv2jWX5zHgeyFEDBAJ/Ks+jalezSwC9gOxGN9h9dbaQgjxI7AT6CSESBVC3Au8DowSQhzHWPG8fiWN62STRd8PutWGRqPRaGpEryA0Go1GUyPaQWg0Go2mRrSD0Gg0Gk2NaAeh0Wg0mhrRDkKj0Wg0NaIdhEaj0WhqRDsIjUaj0dTI/wE1hWT1zH6R1wAAAABJRU5ErkJggg==", "text/plain": [ "
" ] @@ -720,7 +720,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -761,7 +761,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -796,7 +796,7 @@ "\n", "To solve these problems, we will use two processors:\n", "\n", - "- First `MinimizeToMaximize` which inverts the minimizing objectives.\n", + "- First `InvertMinimize` which inverts the minimizing objectives.\n", " by dividing out the inverse of each criterion value ($1/C_j$).\n", "- Second, `SumScaler` which will divide each criterion value by the total sum \n", " of the criteria, taking all of them into the range $[0, 1]$.\n", @@ -893,7 +893,7 @@ } ], "source": [ - "inverter = invert_objectives.MinimizeToMaximize()\n", + "inverter = invert_objectives.InvertMinimize()\n", "dmt = inverter.transform(dm)\n", "dmt" ] @@ -1012,7 +1012,7 @@ "outputs": [ { "data": { - "image/png": "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iNR7ams8qybtjRIsEZFaUIPnOfrai0hDof/vPKu6X38lWCIiIiIiIk7i0jlYxpgRwP8AX+Bta+1Tx5y/DngG2Fx+6BVr7duujElEpCH7+uuv6dixI127dvV0KCIiUgMJD33v1PqynjrXqfWB2hqX9WAZY3yBV4Gzga7AFcaYir7KE6y1yeUfSq5ERFzo66+/ZtmyZZ4Oo8p27Njh6RBERKSaGnpb48ohgn2BNdbaddbaImA8cIEL7yci0uBceOGF9O7dm27duvHWW28dPh4WFnb484kTJ3Ldddcxe/ZsJk2axF/+8heSk5NZu3YtaWlp9O/fn8TERC666CJ2794NwGmnncaDDz5I37596dixIzNmzAAck62vv/56evToQc+ePZk+fToA48aN48ILL+SMM84gISGBV155heeff56ePXvSv39/cnNzWbt2Lb169Toc1+rVq496fazff/+dO+64w6lfLxERqT61NdXjyiGCLYBNR7zOBvpVUO5iY8wpwCrgfmvtpgrKiIh4tafnP82K3BVOrbNzZGce7PvgCcu8++67REZGcuDAAfr06cPFF19MVFRUhWUHDhzIyJEjOe+887jkkksASExM5OWXX+bUU0/l0Ucf5fHHH+fFF18EoKSkhPnz5zN58mQef/xxpkyZwquvvooxhszMTFasWMGZZ57JqlWrAFiyZAmLFy+msLCQ9u3b8/TTT7N48WLuv/9+PvjgA+677z4iIiJIS0sjOTmZ9957j+uvv77SZ3v88ceZPn06mZmZ9OjRowZfQRERcQa1NdXj6X2wvgU+tdYeNMbcCrwPDDu2kDHmFuAWgFatWrk3QhERL/bSSy/x1VdfAbBp0yZWr15daaN3rD179pCXl8epp54KwJgxY7j00ksPnx81ahQAvXv3JisrC4CZM2dy9913A9C5c2dat259uNEbOnQo4eHhhIeHExERwfnnnw9Ajx49yMjIAOCmm27ivffe4/nnn2fChAnMnz+/wthmzJjBtGnTAEfjN3HixCp/TWpD7Y33cfZ8k7rKFfNkRKpKbU31uDLB2gy0POJ1PH8sZgGAtXbXES/fBv5bUUXW2reAtwBSUlKsc8MUEam9k/U0ucKvv/7KlClTmDNnDiEhIZx22mmH9+k4cknZmu4VFRgYCICvry8lJSVVLg/g4+Nz+LWPj8/h6y+++GIef/xxhg0b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", + "image/png": "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iNR7ams8qybtjRIsEZFaUIPnOfrai0hDof/vPKu6X38lWCIiIiIiIk7i0jlYxpgRwP8AX+Bta+1Tx5y/DngG2Fx+6BVr7duujElEpCH7+uuv6dixI127dvV0KCIiUgMJD33v1PqynjrXqfWB2hqX9WAZY3yBV4Gzga7AFcaYir7KE6y1yeUfSq5ERFzo66+/ZtmyZZ4Oo8p27Njh6RBERKSaGnpb48ohgn2BNdbaddbaImA8cIEL7yci0uBceOGF9O7dm27duvHWW28dPh4WFnb484kTJ3Ldddcxe/ZsJk2axF/+8heSk5NZu3YtaWlp9O/fn8TERC666CJ2794NwGmnncaDDz5I37596dixIzNmzAAck62vv/56evToQc+ePZk+fToA48aN48ILL+SMM84gISGBV155heeff56ePXvSv39/cnNzWbt2Lb169Toc1+rVq496fazff/+dO+64w6lfLxERqT61NdXjyiGCLYBNR7zOBvpVUO5iY8wpwCrgfmvtpgrKiIh4tafnP82K3BVOrbNzZGce7PvgCcu8++67REZGcuDAAfr06cPFF19MVFRUhWUHDhzIyJEjOe+887jkkksASExM5OWXX+bUU0/l0Ucf5fHHH+fFF18EoKSkhPnz5zN58mQef/xxpkyZwquvvooxhszMTFasWMGZZ57JqlWrAFiyZAmLFy+msLCQ9u3b8/TTT7N48WLuv/9+PvjgA+677z4iIiJIS0sjOTmZ9957j+uvv77SZ3v88ceZPn06mZmZ9OjRowZfQRERcQa1NdXj6X2wvgU+tdYeNMbcCrwPDDu2kDHmFuAWgFatWrk3QhERL/bSSy/x1VdfAbBp0yZWr15daaN3rD179pCXl8epp54KwJgxY7j00ksPnx81ahQAvXv3JisrC4CZM2dy9913A9C5c2dat259uNEbOnQo4eHhhIeHExERwfnnnw9Ajx49yMjIAOCmm27ivffe4/nnn2fChAnMnz+/wthmzJjBtGnTAEfjN3HixCp/TWpD7Y33cfZ8k7rKFfNkRKpKbU31uDLB2gy0POJ1PH8sZgGAtXbXES/fBv5bUUXW2reAtwBSUlKsc8MUEam9k/U0ucKvv/7KlClTmDNnDiEhIZx22mmH9+k4cknZmu4VFRgYCICvry8lJSVVLg/g4+Nz+LWPj8/h6y+++GIef/xxhg0b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", "text/plain": [ "
" ] @@ -1097,19 +1097,19 @@ "
\n", "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 VWFordVWFord
Rank21Rank21
\n", @@ -1272,7 +1272,15 @@ "pipelines combine one or several transformers and one decision-maker the\n", "facilitate the execution of the experiments.\n", "\n", - "So, let's import the necessary modules for *TOPSIS* and the *pipelines*:" + "So, let's import the necessary modules for *TOPSIS* and the *pipelines*:\n", + "\n", + "
\n", + "Distances and InvertMinimize\n", + "\n", + "Since `TOPSIS` uses distances as a comparison metric, it is not recommended to \n", + "use the `InvertMinimize` transformer. Instead we use `NegateMinimize`.\n", + "\n", + "
" ] }, { @@ -1301,7 +1309,7 @@ { "data": { "text/plain": [ - "SKCPipeline(steps=[('minimizetomaximize', MinimizeToMaximize()), ('vectorscaler', VectorScaler(target='matrix')), ('sumscaler', SumScaler(target='weights')), ('topsis', TOPSIS())])" + "SKCPipeline(steps=[('negateminimize', NegateMinimize()), ('vectorscaler', VectorScaler(target='matrix')), ('sumscaler', SumScaler(target='weights')), ('topsis', TOPSIS(metric='euclidean'))])" ] }, "execution_count": 29, @@ -1311,7 +1319,7 @@ ], "source": [ "pipe = mkpipe(\n", - " invert_objectives.MinimizeToMaximize(),\n", + " invert_objectives.NegateMinimize(),\n", " scalers.VectorScaler(target=\"matrix\"), # this scaler transform the matrix\n", " scalers.SumScaler(target=\"weights\"), # and this transform the weights\n", " similarity.TOPSIS(),\n", @@ -1342,19 +1350,19 @@ "
\n", "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 VWFordVWFord
Rank21Rank21
\n", @@ -1386,9 +1394,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "extra({'similarity', 'ideal', 'anti_ideal'})\n", - "Ideal: [0.48507125 0.04642383 0.40249224]\n", - "Anti-Ideal: [0.12126781 0.01856953 0.20124612]\n", + "extra({'anti_ideal', 'similarity', 'ideal'})\n", + "Ideal: [ 0.48507125 0.04642383 -0.20124612]\n", + "Anti-Ideal: [ 0.12126781 0.01856953 -0.40249224]\n", "Similarity index: [0.35548671 0.64451329]\n" ] } @@ -1438,14 +1446,14 @@ "\n", "\n", "pipe_vector = mkpipe(\n", - " invert_objectives.MinimizeToMaximize(),\n", + " invert_objectives.InvertMinimize(),\n", " scalers.VectorScaler(target=\"matrix\"), # this scaler transform the matrix\n", " scalers.SumScaler(target=\"weights\"), # and this transform the weights\n", " electre.ELECTRE1(p=0.65, q=0.35),\n", ")\n", "\n", "pipe_sum = mkpipe(\n", - " invert_objectives.MinimizeToMaximize(),\n", + " invert_objectives.InvertMinimize(),\n", " scalers.SumScaler(target=\"weights\"), # transform the matrix and weights\n", " electre.ELECTRE1(p=0.65, q=0.35),\n", ")" @@ -1590,8 +1598,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Scikit-Criteria version: 0.5.dev0\n", - "Running datetime: 2021-12-14 19:12:24.761023\n" + "Scikit-Criteria version: 0.6dev0\n", + "Running datetime: 2022-04-10 19:40:55.536290\n" ] } ], @@ -1624,7 +1632,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.7" } }, "nbformat": 4, From c61729ce1577bbda26304b47802d3c3ba2456422 Mon Sep 17 00:00:00 2001 From: juanbc Date: Sun, 10 Apr 2022 21:08:18 -0300 Subject: [PATCH 06/16] more changes into tutorial --- docs/source/tutorial/quickstart.ipynb | 30 +++++++++++------------ docs/source/tutorial/sufdom.ipynb | 34 +++++++++++++-------------- skcriteria/__init__.py | 2 +- tests/core/test_data.py | 2 +- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/docs/source/tutorial/quickstart.ipynb b/docs/source/tutorial/quickstart.ipynb index 329acc2..5a68a05 100644 --- a/docs/source/tutorial/quickstart.ipynb +++ b/docs/source/tutorial/quickstart.ipynb @@ -1097,19 +1097,19 @@ "
\n", "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 VWFordVWFord
Rank21Rank21
\n", @@ -1350,19 +1350,19 @@ "
\n", "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 VWFordVWFord
Rank21Rank21
\n", @@ -1394,7 +1394,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "extra({'anti_ideal', 'similarity', 'ideal'})\n", + "extra({'similarity', 'anti_ideal', 'ideal'})\n", "Ideal: [ 0.48507125 0.04642383 -0.20124612]\n", "Anti-Ideal: [ 0.12126781 0.01856953 -0.40249224]\n", "Similarity index: [0.35548671 0.64451329]\n" @@ -1598,8 +1598,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Scikit-Criteria version: 0.6dev0\n", - "Running datetime: 2022-04-10 19:40:55.536290\n" + "Scikit-Criteria version: 0.7dev0\n", + "Running datetime: 2022-04-10 21:06:20.171375\n" ] } ], diff --git a/docs/source/tutorial/sufdom.ipynb b/docs/source/tutorial/sufdom.ipynb index 14564b6..a517697 100644 --- a/docs/source/tutorial/sufdom.ipynb +++ b/docs/source/tutorial/sufdom.ipynb @@ -198,7 +198,7 @@ { "data": { "text/plain": [ - "Filter(criteria_filters={'ROE': }, ignore_missing_criteria=False)" + "Filter(criteria_filters={'ROE': }, ignore_missing_criteria=False)" ] }, "execution_count": 3, @@ -761,7 +761,7 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -1228,7 +1228,7 @@ { "data": { "text/plain": [ - "SKCPipeline(steps=[('filterge', FilterGE(criteria_filters={'ROE': 2}, ignore_missing_criteria=False)), ('filternondominated', FilterNonDominated(strict=True)), ('minimizetomaximize', MinimizeToMaximize()), ('sumscaler', SumScaler(target='weights')), ('vectorscaler', VectorScaler(target='matrix')), ('topsis', TOPSIS(metric='euclidean'))])" + "SKCPipeline(steps=[('filterge', FilterGE(criteria_filters={'ROE': 2}, ignore_missing_criteria=False)), ('filternondominated', FilterNonDominated(strict=True)), ('negateminimize', NegateMinimize()), ('sumscaler', SumScaler(target='weights')), ('vectorscaler', VectorScaler(target='matrix')), ('topsis', TOPSIS(metric='euclidean'))])" ] }, "execution_count": 15, @@ -1244,7 +1244,7 @@ "pipe = mkpipe(\n", " filters.FilterGE({\"ROE\": 2}),\n", " filters.FilterNonDominated(strict=True),\n", - " invert_objectives.MinimizeToMaximize(),\n", + " invert_objectives.NegateMinimize(),\n", " scalers.SumScaler(target=\"weights\"),\n", " scalers.VectorScaler(target=\"matrix\"),\n", " TOPSIS(),\n", @@ -1271,23 +1271,23 @@ "
\n", "\n", - "\n", + "
\n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", " \n", " \n", - " \n", - " \n", - " \n", - " \n", - " \n", + " \n", + " \n", + " \n", + " \n", + " \n", " \n", " \n", "
 PEJNAAFNPEJNAAFN
Rank3421Rank3421
\n", @@ -1325,8 +1325,8 @@ "name": "stdout", "output_type": "stream", "text": [ - "Scikit-Criteria version: 0.6dev0\n", - "Running datetime: 2022-02-21 15:21:22.346578\n" + "Scikit-Criteria version: 0.7dev0\n", + "Running datetime: 2022-04-10 21:06:10.855758\n" ] } ], @@ -1359,7 +1359,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.9.7" } }, "nbformat": 4, diff --git a/skcriteria/__init__.py b/skcriteria/__init__.py index 73b78ba..a3257ed 100644 --- a/skcriteria/__init__.py +++ b/skcriteria/__init__.py @@ -30,7 +30,7 @@ __all__ = ["mkdm", "DecisionMatrix", "Objective"] -__version__ = ("0", "6dev0") +__version__ = ("0", "7dev0") NAME = "scikit-criteria" diff --git a/tests/core/test_data.py b/tests/core/test_data.py index 0f68408..733f630 100644 --- a/tests/core/test_data.py +++ b/tests/core/test_data.py @@ -75,7 +75,7 @@ def test_objective_to_string(): # ============================================================================= -def test__ACArray(decision_matrix): +def test__ACArray(): with warnings.catch_warnings(): # see: https://stackoverflow.com/a/46721064 From bf73cdd8230b07bd4b4d2f796fb065039291c480 Mon Sep 17 00:00:00 2001 From: juanbc Date: Wed, 4 May 2022 20:30:46 -0300 Subject: [PATCH 07/16] elecre2 a medias --- skcriteria/madm/electre.py | 148 ++++++++++++++++++++++++++++++++++++- tests/madm/test_electre.py | 78 ++++++++++++++++++- 2 files changed, 223 insertions(+), 3 deletions(-) diff --git a/skcriteria/madm/electre.py b/skcriteria/madm/electre.py index fcef009..ce50306 100644 --- a/skcriteria/madm/electre.py +++ b/skcriteria/madm/electre.py @@ -27,8 +27,9 @@ # IMPORTS # ============================================================================= -import numpy as np +import itertools as it +import numpy as np from ._base import KernelResult, SKCDecisionMakerABC from ..core import Objective @@ -149,7 +150,7 @@ class ELECTRE1(SKCDecisionMakerABC): _skcriteria_parameters = ["p", "q"] - def __init__(self, p=0.65, q=0.35): + def __init__(self, *, p=0.65, q=0.35): self._p = float(p) self._q = float(q) @@ -179,3 +180,146 @@ def _make_result(self, alternatives, values, extra): return KernelResult( "ELECTRE1", alternatives=alternatives, values=values, extra=extra ) + + +# ============================================================================= +# ELECTRE 2 +# ============================================================================= + + +# p0 (electre1), p1, p2 +# q0 (electre1), q1 + + +def weight_summatory(matrix, weights, objectives): + + alt_n = len(matrix) + + alt_combs = it.combinations(range(alt_n), 2) + + result = np.full((alt_n, alt_n), False, dtype=bool) + + for a0_idx, a1_idx in alt_combs: + + # sacamos las alternativas + a0, a1 = matrix[[a0_idx, a1_idx]] + + # vemos donde hay maximos y donde hay minimos estrictos + maxs, mins = (a0 > a1), (a0 < a1) + + # armamos los vectores de a \succ b teniendo en cuenta los objetivs + a0_s_a1 = np.where(objectives == Objective.MAX.value, maxs, mins) + a1_s_a0 = np.where(objectives == Objective.MAX.value, mins, maxs) + + # sacamos ahora los criterios + result[a0_idx, a1_idx] = np.sum(weights * a0_s_a1) >= np.sum( + weights * a1_s_a0 + ) + result[a1_idx, a0_idx] = np.sum(weights * a1_s_a0) >= np.sum( + weights * a0_s_a1 + ) + + return result + + +def electre2( + matrix, objectives, weights, p0=0.65, p1=0.5, p2=0.35, q0=0.65, q1=0.35 +): + """Execute ELECTRE2 without any validation.""" + + matrix_concordance = concordance(matrix, objectives, weights) + matrix_discordance = discordance(matrix, objectives) + matrix_wsum = wsum(matrix, objectives, weights) + + # creamos los grafos debiles (w) y fuertes(s) + outrank_s = ( + (matrix_concordance >= p0) & (matrix_discordance <= q0) & matrix_wsum + ) | ((matrix_concordance >= p1) & (matrix_discordance <= q1) & matrix_wsum) + + outrank_w = ( + (matrix_concordance >= p2) & (matrix_discordance <= q0) & matrix_wsum + ) + + len(matrix) + + import ipdb + + ipdb.set_trace() + + +class ELECTRE2(SKCDecisionMakerABC): + """Find a the rankin solution through ELECTRE-2.""" + + _skcriteria_parameters = ["p0", "p1", "p2", "q0", "q1"] + + def __init__(self, *, p0=0.65, p1=0.5, p2=0.35, q0=0.65, q1=0.35): + p0, p1, p2, q0, q1 = map(float, (p0, p1, p2, q0, q1)) + + if not (1 >= p0 >= p1 >= p2 >= 0): + raise ValueError( + "Condition '1 >= p0 >= p1 >= p2 >= 0' must be fulfilled. " + "Found: p0={p0}, p1={p1} p2={p2}.'" + ) + if not (1 >= q0 >= q1 >= 0): + raise ValueError( + "Condition '1 >= q0 >= q1 >= 0' must be fulfilled. " + "Found: q0={q0}, q1={q1}.'" + ) + + self._p0, self._p1, self._p2, self._q0, self._q1 = (p0, p1, p2, q0, q1) + + @property + def p0(self): + """Concordance threshold 0.""" + return self._p0 + + @property + def p1(self): + """Concordance threshold 1.""" + return self._p1 + + @property + def p2(self): + """Concordance threshold 2.""" + return self._p2 + + @property + def q0(self): + """Discordance threshold 0.""" + return self._q0 + + @property + def q1(self): + """Discordance threshold 1.""" + return self._q1 + + @doc_inherit(SKCDecisionMakerABC._evaluate_data) + def _evaluate_data(self, matrix, objectives, weights, **kwargs): + ( + ranking, + kernel, + outrank, + matrix_concordance, + matrix_discordance, + ) = electre2( + matrix, + objectives, + weights, + self.p0, + self.p1, + self.p2, + self.q0, + self.q1, + ) + return ranking, { + "kernel": kernel, + "outrank": outrank, + "matrix_concordance": matrix_concordance, + "matrix_discordance": matrix_discordance, + } + + @doc_inherit(SKCDecisionMakerABC._make_result) + def _make_result(self, alternatives, values, extra): + return KernelResult( + "ELECTRE1", alternatives=alternatives, values=values, extra=extra + ) diff --git a/tests/madm/test_electre.py b/tests/madm/test_electre.py index 8131c51..1fb13b4 100644 --- a/tests/madm/test_electre.py +++ b/tests/madm/test_electre.py @@ -23,7 +23,13 @@ import pytest import skcriteria -from skcriteria.madm.electre import ELECTRE1, concordance, discordance +from skcriteria.madm.electre import ( + ELECTRE1, + ELECTRE2, + concordance, + discordance, + weight_summatory, +) from skcriteria.preprocessing.scalers import SumScaler, scale_by_sum # ============================================================================= @@ -180,3 +186,73 @@ def test_kernel_sensibility_barba1997decisiones(): f"alternatives in kernel. {kernels_len}" ) kernels_len.append(klen) + + +# ============================================================================= +# ELECTRE II +# ============================================================================= + + +def test_weight_summatory(): + + matrix = scale_by_sum( + [ + [6, 5, 28, 5, 5], + [4, 2, 25, 10, 9], + [5, 7, 35, 9, 6], + [6, 1, 27, 6, 7], + [6, 8, 30, 7, 9], + [5, 6, 26, 4, 8], + ], + axis=0, + ) + objectives = [1, 1, -1, 1, 1] + weights = [0.25, 0.25, 0.1, 0.2, 0.2] + expected = [ + [False, True, True, True, True, True], + [False, False, False, False, True, False], + [False, True, False, True, True, True], + [False, True, False, False, True, True], + [False, True, False, False, False, False], + [False, True, True, False, True, False], + ] + + results = weight_summatory(matrix, objectives, weights) + np.testing.assert_array_equal(results, expected) + + +def test_electre2_cebrian2009localizacion(): + """ + Data From: + Cebrián, L. I. G., & Porcar, A. M. (2009). Localización empresarial + en Aragón: Una aplicación empírica de la ayuda a la decisión + multicriterio tipo ELECTRE I y III. Robustez de los resultados + obtenidos. + Revista de Métodos Cuantitativos para la Economía y la Empresa, + (7), 31-56. + + """ + dm = skcriteria.mkdm( + matrix=[ + [6, 5, 28, 5, 5], + [4, 2, 25, 10, 9], + [5, 7, 35, 9, 6], + [6, 1, 27, 6, 7], + [6, 8, 30, 7, 9], + [5, 6, 26, 4, 8], + ], + objectives=[1, 1, -1, 1, 1], + weights=[0.25, 0.25, 0.1, 0.2, 0.2], + ) + + scaler = SumScaler("both") + dm = scaler.transform(dm) + + kselector = ELECTRE2() + result = kselector.evaluate(dm) + + import ipdb + + ipdb.set_trace() + + assert np.all(result.kernelwhere_ == [4]) From d47da23558bf96752eb0f59b9a7921931ebb72ee Mon Sep 17 00:00:00 2001 From: juanbc Date: Thu, 5 May 2022 14:52:48 -0300 Subject: [PATCH 08/16] electre 2 works --- skcriteria/madm/_base.py | 38 ++++++++++-- skcriteria/madm/electre.py | 120 ++++++++++++++++++++++++++++--------- tests/madm/test_base.py | 26 +++++++- tests/madm/test_electre.py | 50 +++++++++++++--- 4 files changed, 190 insertions(+), 44 deletions(-) diff --git a/skcriteria/madm/_base.py b/skcriteria/madm/_base.py index 8bd54d3..1e71ad4 100644 --- a/skcriteria/madm/_base.py +++ b/skcriteria/madm/_base.py @@ -104,8 +104,8 @@ def __init_subclass__(cls): if result_column is None: raise TypeError(f"{cls} must redefine '_skcriteria_result_column'") - def __init__(self, method, alternatives, values, extra): - self._validate_result(values) + def __init__(self, method, alternatives, values, extra, allow_ties=False): + self._validate_result(values, allow_ties) self._method = str(method) self._extra = Bunch("extra", extra) self._result_df = pd.DataFrame( @@ -113,12 +113,18 @@ def __init__(self, method, alternatives, values, extra): index=alternatives, columns=[self._skcriteria_result_column], ) + self._allow_ties = allow_ties @abc.abstractmethod - def _validate_result(self, values): + def _validate_result(self, values, allow_ties): """Validate that the values are the expected by the result type.""" raise NotImplementedError() + @property + def allow_ties(self): + """If true two alternatives can share the same ranking.""" + return self._allow_ties + @property def values(self): """Values assigned to each alternative by the method. @@ -209,17 +215,37 @@ class RankResult(ResultABC): _skcriteria_result_column = "Rank" @doc_inherit(ResultABC._validate_result) - def _validate_result(self, values): + def _validate_result(self, values, allow_ties): + original_values = values + + if allow_ties: + values = np.unique(values) + length = len(values) expected = np.arange(length) + 1 if not np.array_equal(np.sort(values), expected): - raise ValueError(f"The data {values} doesn't look like a ranking") + raise ValueError( + f"The data {original_values} doesn't look like a ranking" + ) @property def rank_(self): """Alias for ``values``.""" return self.values + @property + def untied_rank_(self): + """Ranking whitout ties. + + if the ranking has ties this property assigns unique and consecutive + values in the ranking. This method only assigns the values using the + command ``numpy.argsort(rank_) + 1``. + + """ + if self.allow_ties: + return np.argsort(self.rank_) + 1 + return self.rank_ + def _repr_html_(self): """Return a html representation for a particular result. @@ -252,7 +278,7 @@ class KernelResult(ResultABC): _skcriteria_result_column = "Kernel" @doc_inherit(ResultABC._validate_result) - def _validate_result(self, values): + def _validate_result(self, values, allow_ties): if np.asarray(values).dtype != bool: raise ValueError(f"The data {values} doesn't look like a kernel") diff --git a/skcriteria/madm/electre.py b/skcriteria/madm/electre.py index ce50306..ef68da2 100644 --- a/skcriteria/madm/electre.py +++ b/skcriteria/madm/electre.py @@ -31,7 +31,7 @@ import numpy as np -from ._base import KernelResult, SKCDecisionMakerABC +from ._base import KernelResult, RankResult, SKCDecisionMakerABC from ..core import Objective from ..utils import doc_inherit @@ -114,6 +114,8 @@ def electre1(matrix, objectives, weights, p=0.65, q=0.35): with np.errstate(invalid="ignore"): outrank = (matrix_concordance >= p) & (matrix_discordance <= q) + # TODO: remove loops + kernel = ~outrank.any(axis=0) return kernel, outrank, matrix_concordance, matrix_discordance @@ -151,8 +153,14 @@ class ELECTRE1(SKCDecisionMakerABC): _skcriteria_parameters = ["p", "q"] def __init__(self, *, p=0.65, q=0.35): - self._p = float(p) - self._q = float(q) + p, q = float(p), float(q) + + if not (1 >= p >= 0): + raise ValueError(f"p must be a value between 0 and 1. Found {p}") + if not (1 >= q >= 0): + raise ValueError(f"q must be a value between 0 and 1. Found {q}") + + self._p, self._q = p, q @property def p(self): @@ -187,17 +195,11 @@ def _make_result(self, alternatives, values, extra): # ============================================================================= -# p0 (electre1), p1, p2 -# q0 (electre1), q1 - - -def weight_summatory(matrix, weights, objectives): +def weights_outrank(matrix, weights, objectives): alt_n = len(matrix) - alt_combs = it.combinations(range(alt_n), 2) - - result = np.full((alt_n, alt_n), False, dtype=bool) + outrank = np.full((alt_n, alt_n), False, dtype=bool) for a0_idx, a1_idx in alt_combs: @@ -212,14 +214,14 @@ def weight_summatory(matrix, weights, objectives): a1_s_a0 = np.where(objectives == Objective.MAX.value, mins, maxs) # sacamos ahora los criterios - result[a0_idx, a1_idx] = np.sum(weights * a0_s_a1) >= np.sum( + outrank[a0_idx, a1_idx] = np.sum(weights * a0_s_a1) >= np.sum( weights * a1_s_a0 ) - result[a1_idx, a0_idx] = np.sum(weights * a1_s_a0) >= np.sum( + outrank[a1_idx, a0_idx] = np.sum(weights * a1_s_a0) >= np.sum( weights * a0_s_a1 ) - return result + return outrank def electre2( @@ -229,22 +231,80 @@ def electre2( matrix_concordance = concordance(matrix, objectives, weights) matrix_discordance = discordance(matrix, objectives) - matrix_wsum = wsum(matrix, objectives, weights) + matrix_wor = weights_outrank(matrix, objectives, weights) # creamos los grafos debiles (w) y fuertes(s) outrank_s = ( - (matrix_concordance >= p0) & (matrix_discordance <= q0) & matrix_wsum - ) | ((matrix_concordance >= p1) & (matrix_discordance <= q1) & matrix_wsum) + (matrix_concordance >= p0) & (matrix_discordance <= q0) & matrix_wor + ) | ((matrix_concordance >= p1) & (matrix_discordance <= q1) & matrix_wor) outrank_w = ( - (matrix_concordance >= p2) & (matrix_discordance <= q0) & matrix_wsum + (matrix_concordance >= p2) & (matrix_discordance <= q0) & matrix_wor ) - len(matrix) + # TODO: remove loops + + # Here we create the ranking loop + + # here we store the final rank + ranking = np.zeros(len(matrix), dtype=int) + + # copy to not destroy outrank_s and outrank_w + current_outrank_s = np.copy(outrank_s) + current_outrank_w = np.copy(outrank_w) + + # The alternatives still not ranked + alt_snr_idx = np.arange(len(matrix)) + + # the current rank + current_rank_position = 1 + + while len(current_outrank_w) or len(current_outrank_s): - import ipdb + kernel_s = ~current_outrank_s.any(axis=0) + kernel_w = ~current_outrank_w.any(axis=0) - ipdb.set_trace() + # kernel strong - kernel weak + kernel_smw = kernel_s & ~kernel_w + + # if there is no kernel, all are on equal footing and we need to assign + # the current rank to the not evaluated alternatives. + # After that, we can stop the loop + if not np.any(kernel_smw): + ranking[ranking == 0] = current_rank_position + break + + # we create the container that will have the value of the ranking only + # in the places to be assigned, in the other cases we leave 0 + rank_to_asign = np.zeros(len(matrix), dtype=int) + + # we have to take into account that the graphs are getting smaller + # and smaller so we need alt_snr_idx to see which alternatives still + # need to be rank + rank_to_asign[alt_snr_idx[kernel_smw]] = current_rank_position + + # we add the ranking to the global ranking + # (where you do not have to add + 0) + ranking = ranking + rank_to_asign + + # remove kernel from graphs + to_keep = np.argwhere(~kernel_smw).flatten() + + current_outrank_s = current_outrank_s[to_keep][:, to_keep] + current_outrank_w = current_outrank_w[to_keep][:, to_keep] + alt_snr_idx = alt_snr_idx[to_keep] + + # next time we will assign the current ranking + 1 + current_rank_position += 1 + + return ( + ranking, + matrix_concordance, + matrix_discordance, + matrix_wor, + outrank_s, + outrank_w, + ) class ELECTRE2(SKCDecisionMakerABC): @@ -297,10 +357,11 @@ def q1(self): def _evaluate_data(self, matrix, objectives, weights, **kwargs): ( ranking, - kernel, - outrank, matrix_concordance, matrix_discordance, + matrix_wor, + outrank_s, + outrank_w, ) = electre2( matrix, objectives, @@ -312,14 +373,19 @@ def _evaluate_data(self, matrix, objectives, weights, **kwargs): self.q1, ) return ranking, { - "kernel": kernel, - "outrank": outrank, "matrix_concordance": matrix_concordance, "matrix_discordance": matrix_discordance, + "matrix_wor": matrix_wor, + "outrank_s": outrank_s, + "outrank_w": outrank_w, } @doc_inherit(SKCDecisionMakerABC._make_result) def _make_result(self, alternatives, values, extra): - return KernelResult( - "ELECTRE1", alternatives=alternatives, values=values, extra=extra + return RankResult( + "ELECTRE2", + alternatives=alternatives, + values=values, + extra=extra, + allow_ties=True, ) diff --git a/tests/madm/test_base.py b/tests/madm/test_base.py index 9388702..c943723 100644 --- a/tests/madm/test_base.py +++ b/tests/madm/test_base.py @@ -133,8 +133,8 @@ class test_ResultBase_original_validare_result_fail: class Foo(ResultABC): _skcriteria_result_column = "foo" - def _validate_result(self, values): - return super()._validate_result(values) + def _validate_result(self, values, allow_ties): + return super()._validate_result(values, allow_ties) with pytest.raises(NotImplementedError): Foo("foo", ["abc"], [1, 2, 3], {}) @@ -159,6 +159,28 @@ def test_RankResult(): assert np.all(result.alternatives == alternatives) assert np.all(result.rank_ == rank) assert np.all(result.extra_ == result.e_ == extra) + assert np.all(result.untied_rank_ == rank) + + +def test_RankResult_ties(): + method = "foo" + alternatives = ["a", "b", "c"] + rank = [1, 2, 1] + extra = {"alfa": 1} + + result = RankResult( + method=method, + alternatives=alternatives, + values=rank, + extra=extra, + allow_ties=True, + ) + + assert np.all(result.method == method) + assert np.all(result.alternatives == alternatives) + assert np.all(result.rank_ == rank) + assert np.all(result.extra_ == result.e_ == extra) + assert np.all(result.untied_rank_ == [1, 3, 2]) @pytest.mark.parametrize("rank", [[1, 2, 5], [1, 1, 1], [1, 2, 2], [1, 2]]) diff --git a/tests/madm/test_electre.py b/tests/madm/test_electre.py index 1fb13b4..273f382 100644 --- a/tests/madm/test_electre.py +++ b/tests/madm/test_electre.py @@ -18,6 +18,7 @@ # IMPORTS # ============================================================================= +from pickletools import pybytes_or_str import numpy as np import pytest @@ -28,7 +29,7 @@ ELECTRE2, concordance, discordance, - weight_summatory, + weights_outrank, ) from skcriteria.preprocessing.scalers import SumScaler, scale_by_sum @@ -114,7 +115,7 @@ def test_discordance_cebrian2009localizacion(): assert np.allclose(results, expected, atol=1.0e-3, equal_nan=True) -def test_electre1_cebrian2009localizacion(): +def test_ELECTRE1_cebrian2009localizacion(): """ Data From: Cebrián, L. I. G., & Porcar, A. M. (2009). Localización empresarial @@ -147,7 +148,7 @@ def test_electre1_cebrian2009localizacion(): assert np.all(result.kernelwhere_ == [4]) -def test_kernel_sensibility_barba1997decisiones(): +def test_ELECTRE1_kernel_sensibility_barba1997decisiones(): """ Data From: Barba-Romero, S., & Pomerol, J. C. (1997). @@ -188,12 +189,26 @@ def test_kernel_sensibility_barba1997decisiones(): kernels_len.append(klen) +def test_ELECTRE1_invalid_p_and_q(): + with pytest.raises(ValueError): + ELECTRE1(p=10) + + with pytest.raises(ValueError): + ELECTRE1(q=10) + + with pytest.raises(ValueError): + ELECTRE1(p=-1) + + with pytest.raises(ValueError): + ELECTRE1(q=-1) + + # ============================================================================= # ELECTRE II # ============================================================================= -def test_weight_summatory(): +def test_weight_outrank(): matrix = scale_by_sum( [ @@ -217,11 +232,11 @@ def test_weight_summatory(): [False, True, True, False, True, False], ] - results = weight_summatory(matrix, objectives, weights) + results = weights_outrank(matrix, objectives, weights) np.testing.assert_array_equal(results, expected) -def test_electre2_cebrian2009localizacion(): +def test_ELECTRE2_cebrian2009localizacion(): """ Data From: Cebrián, L. I. G., & Porcar, A. M. (2009). Localización empresarial @@ -251,8 +266,25 @@ def test_electre2_cebrian2009localizacion(): kselector = ELECTRE2() result = kselector.evaluate(dm) - import ipdb + assert np.all(result.rank_ == [3, 2, 1, 3, 1, 2]) - ipdb.set_trace() - assert np.all(result.kernelwhere_ == [4]) +@pytest.mark.parametrize( + "p0, p1, p2", + [(1, 2, 3), (0, 0.5, 1), (1, 0.5, 0.75)], +) +def test_ELECTRE2_invalid_ps(p0, p1, p2): + with pytest.raises(ValueError): + ELECTRE2(p0=p0, p1=p1, p2=p2) + + +@pytest.mark.parametrize( + "q0, q1", + [ + (1, 2), + (0, 0.5), + ], +) +def test_ELECTRE2_invalid_qs(q0, q1): + with pytest.raises(ValueError): + ELECTRE2(q0=q0, q1=q1) From 6ab4e920ed07d28f9eb9d1395d5346552280d1cc Mon Sep 17 00:00:00 2001 From: juanbc Date: Thu, 5 May 2022 17:31:46 -0300 Subject: [PATCH 09/16] electre 2 done --- skcriteria/madm/electre.py | 105 +++++++++++++++++++++++++++---------- tests/madm/test_electre.py | 17 ++---- 2 files changed, 82 insertions(+), 40 deletions(-) diff --git a/skcriteria/madm/electre.py b/skcriteria/madm/electre.py index ef68da2..d35fd5c 100644 --- a/skcriteria/madm/electre.py +++ b/skcriteria/madm/electre.py @@ -31,6 +31,8 @@ import numpy as np +from scipy import stats + from ._base import KernelResult, RankResult, SKCDecisionMakerABC from ..core import Objective from ..utils import doc_inherit @@ -224,45 +226,32 @@ def weights_outrank(matrix, weights, objectives): return outrank -def electre2( - matrix, objectives, weights, p0=0.65, p1=0.5, p2=0.35, q0=0.65, q1=0.35 +def _electre2_ranker( + alt_n, original_outrank_s, original_outrank_w, invert_ranking ): - """Execute ELECTRE2 without any validation.""" - - matrix_concordance = concordance(matrix, objectives, weights) - matrix_discordance = discordance(matrix, objectives) - matrix_wor = weights_outrank(matrix, objectives, weights) - - # creamos los grafos debiles (w) y fuertes(s) - outrank_s = ( - (matrix_concordance >= p0) & (matrix_discordance <= q0) & matrix_wor - ) | ((matrix_concordance >= p1) & (matrix_discordance <= q1) & matrix_wor) - - outrank_w = ( - (matrix_concordance >= p2) & (matrix_discordance <= q0) & matrix_wor - ) - - # TODO: remove loops # Here we create the ranking loop # here we store the final rank - ranking = np.zeros(len(matrix), dtype=int) + ranking = np.zeros(alt_n, dtype=int) # copy to not destroy outrank_s and outrank_w - current_outrank_s = np.copy(outrank_s) - current_outrank_w = np.copy(outrank_w) + outrank_s = np.copy(original_outrank_s) + outrank_w = np.copy(original_outrank_w) # The alternatives still not ranked - alt_snr_idx = np.arange(len(matrix)) + alt_snr_idx = np.arange(alt_n) # the current rank current_rank_position = 1 - while len(current_outrank_w) or len(current_outrank_s): + # TODO: explicar que es esto + last_is_kernel = False - kernel_s = ~current_outrank_s.any(axis=0) - kernel_w = ~current_outrank_w.any(axis=0) + while len(outrank_w) or len(outrank_s): + + kernel_s = ~outrank_s.any(axis=0) + kernel_w = ~outrank_w.any(axis=0) # kernel strong - kernel weak kernel_smw = kernel_s & ~kernel_w @@ -276,7 +265,7 @@ def electre2( # we create the container that will have the value of the ranking only # in the places to be assigned, in the other cases we leave 0 - rank_to_asign = np.zeros(len(matrix), dtype=int) + rank_to_asign = np.zeros(alt_n, dtype=int) # we have to take into account that the graphs are getting smaller # and smaller so we need alt_snr_idx to see which alternatives still @@ -290,20 +279,70 @@ def electre2( # remove kernel from graphs to_keep = np.argwhere(~kernel_smw).flatten() - current_outrank_s = current_outrank_s[to_keep][:, to_keep] - current_outrank_w = current_outrank_w[to_keep][:, to_keep] + outrank_s = outrank_s[to_keep][:, to_keep] + outrank_w = outrank_w[to_keep][:, to_keep] alt_snr_idx = alt_snr_idx[to_keep] # next time we will assign the current ranking + 1 current_rank_position += 1 + else: + last_is_kernel = True + + if invert_ranking: + max_value = np.max(ranking) + ranking = (max_value + 1) - ranking + + return ranking, last_is_kernel + + +def electre2( + matrix, objectives, weights, p0=0.65, p1=0.5, p2=0.35, q0=0.65, q1=0.35 +): + """Execute ELECTRE2 without any validation.""" + + matrix_concordance = concordance(matrix, objectives, weights) + matrix_discordance = discordance(matrix, objectives) + matrix_wor = weights_outrank(matrix, objectives, weights) + + # weak and strong graphs + outrank_s = ( + (matrix_concordance >= p0) & (matrix_discordance <= q0) & matrix_wor + ) | ((matrix_concordance >= p1) & (matrix_discordance <= q1) & matrix_wor) + + outrank_w = ( + (matrix_concordance >= p2) & (matrix_discordance <= q0) & matrix_wor + ) + + # number of alternatives + alt_n = len(matrix) + + # TODO: remove loops + + # calculo del ranking directo + + ranking_direct, last_is_kernel_direct = _electre2_ranker( + alt_n, outrank_s, outrank_w, invert_ranking=False + ) + ranking_inverted, last_is_kernel_inverted = _electre2_ranker( + alt_n, outrank_s.T, outrank_w.T, invert_ranking=True + ) + + # join the two ranks + score = (ranking_direct + ranking_inverted) / 2.0 + ranking = stats.rankdata(score, method="dense") return ( ranking, + ranking_direct, + ranking_inverted, matrix_concordance, matrix_discordance, matrix_wor, outrank_s, outrank_w, + score, + last_is_kernel_direct, + last_is_kernel_inverted, ) @@ -357,11 +396,16 @@ def q1(self): def _evaluate_data(self, matrix, objectives, weights, **kwargs): ( ranking, + ranking_direct, + ranking_inverted, matrix_concordance, matrix_discordance, matrix_wor, outrank_s, outrank_w, + score, + last_is_kernel_direct, + last_is_kernel_inverted, ) = electre2( matrix, objectives, @@ -373,11 +417,16 @@ def _evaluate_data(self, matrix, objectives, weights, **kwargs): self.q1, ) return ranking, { + "ranking_direct": ranking_direct, + "ranking_inverted": ranking_inverted, "matrix_concordance": matrix_concordance, "matrix_discordance": matrix_discordance, "matrix_wor": matrix_wor, "outrank_s": outrank_s, "outrank_w": outrank_w, + "score": score, + "last_is_kernel_direct": last_is_kernel_direct, + "last_is_kernel_inverted": last_is_kernel_inverted, } @doc_inherit(SKCDecisionMakerABC._make_result) diff --git a/tests/madm/test_electre.py b/tests/madm/test_electre.py index 273f382..bd2e488 100644 --- a/tests/madm/test_electre.py +++ b/tests/madm/test_electre.py @@ -18,7 +18,6 @@ # IMPORTS # ============================================================================= -from pickletools import pybytes_or_str import numpy as np import pytest @@ -191,7 +190,7 @@ def test_ELECTRE1_kernel_sensibility_barba1997decisiones(): def test_ELECTRE1_invalid_p_and_q(): with pytest.raises(ValueError): - ELECTRE1(p=10) + ELECTRE1(p=1.5) with pytest.raises(ValueError): ELECTRE1(q=10) @@ -266,25 +265,19 @@ def test_ELECTRE2_cebrian2009localizacion(): kselector = ELECTRE2() result = kselector.evaluate(dm) - assert np.all(result.rank_ == [3, 2, 1, 3, 1, 2]) + assert np.all(result.rank_ == [3, 2, 1, 3, 1, 3]) + np.testing.assert_allclose(result.e_.score, [2.0, 1.5, 1.0, 2.0, 1.0, 2.0]) @pytest.mark.parametrize( - "p0, p1, p2", - [(1, 2, 3), (0, 0.5, 1), (1, 0.5, 0.75)], + "p0, p1, p2", [(1, 2, 3), (0, 0.5, 1), (1, 0.5, 0.75), (-1, 0.5, 0.25)] ) def test_ELECTRE2_invalid_ps(p0, p1, p2): with pytest.raises(ValueError): ELECTRE2(p0=p0, p1=p1, p2=p2) -@pytest.mark.parametrize( - "q0, q1", - [ - (1, 2), - (0, 0.5), - ], -) +@pytest.mark.parametrize("q0, q1", [(1, 2), (0, 0.5), (-1, 0.9)]) def test_ELECTRE2_invalid_qs(q0, q1): with pytest.raises(ValueError): ELECTRE2(q0=q0, q1=q1) From 5a6fe93ae454d90f6cd5821426048af69bd70eb7 Mon Sep 17 00:00:00 2001 From: juanbc Date: Thu, 5 May 2022 17:48:25 -0300 Subject: [PATCH 10/16] now the results always support tied values and has tools to deal with it --- skcriteria/madm/_base.py | 37 +++++++++++++++++-------------------- skcriteria/madm/electre.py | 1 - skcriteria/utils/rank.py | 2 +- tests/madm/test_base.py | 27 +++------------------------ 4 files changed, 21 insertions(+), 46 deletions(-) diff --git a/skcriteria/madm/_base.py b/skcriteria/madm/_base.py index 1e71ad4..386a4b6 100644 --- a/skcriteria/madm/_base.py +++ b/skcriteria/madm/_base.py @@ -104,8 +104,8 @@ def __init_subclass__(cls): if result_column is None: raise TypeError(f"{cls} must redefine '_skcriteria_result_column'") - def __init__(self, method, alternatives, values, extra, allow_ties=False): - self._validate_result(values, allow_ties) + def __init__(self, method, alternatives, values, extra): + self._validate_result(values) self._method = str(method) self._extra = Bunch("extra", extra) self._result_df = pd.DataFrame( @@ -113,18 +113,12 @@ def __init__(self, method, alternatives, values, extra, allow_ties=False): index=alternatives, columns=[self._skcriteria_result_column], ) - self._allow_ties = allow_ties @abc.abstractmethod - def _validate_result(self, values, allow_ties): + def _validate_result(self, values): """Validate that the values are the expected by the result type.""" raise NotImplementedError() - @property - def allow_ties(self): - """If true two alternatives can share the same ranking.""" - return self._allow_ties - @property def values(self): """Values assigned to each alternative by the method. @@ -157,6 +151,13 @@ def extra_(self): e_ = extra_ + @property + def has_ties_(self): + """True if two alternatives shares the same ranking.""" + values = self.values + return len(np.unique(values)) != len(values) + + # CMP ===================================================================== @property @@ -215,18 +216,14 @@ class RankResult(ResultABC): _skcriteria_result_column = "Rank" @doc_inherit(ResultABC._validate_result) - def _validate_result(self, values, allow_ties): - original_values = values + def _validate_result(self, values): - if allow_ties: - values = np.unique(values) + cleaned_values = np.unique(values) - length = len(values) + length = len(cleaned_values) expected = np.arange(length) + 1 - if not np.array_equal(np.sort(values), expected): - raise ValueError( - f"The data {original_values} doesn't look like a ranking" - ) + if not np.array_equal(np.sort(cleaned_values), expected): + raise ValueError(f"The data {values} doesn't look like a ranking") @property def rank_(self): @@ -242,7 +239,7 @@ def untied_rank_(self): command ``numpy.argsort(rank_) + 1``. """ - if self.allow_ties: + if self.has_ties_: return np.argsort(self.rank_) + 1 return self.rank_ @@ -278,7 +275,7 @@ class KernelResult(ResultABC): _skcriteria_result_column = "Kernel" @doc_inherit(ResultABC._validate_result) - def _validate_result(self, values, allow_ties): + def _validate_result(self, values): if np.asarray(values).dtype != bool: raise ValueError(f"The data {values} doesn't look like a kernel") diff --git a/skcriteria/madm/electre.py b/skcriteria/madm/electre.py index d35fd5c..e308c73 100644 --- a/skcriteria/madm/electre.py +++ b/skcriteria/madm/electre.py @@ -436,5 +436,4 @@ def _make_result(self, alternatives, values, extra): alternatives=alternatives, values=values, extra=extra, - allow_ties=True, ) diff --git a/skcriteria/utils/rank.py b/skcriteria/utils/rank.py index 85b200d..a66d887 100644 --- a/skcriteria/utils/rank.py +++ b/skcriteria/utils/rank.py @@ -63,7 +63,7 @@ def rank_values(arr, reverse=False): """ if reverse: arr = np.multiply(arr, -1) - return stats.rankdata(arr, "ordinal").astype(int) + return stats.rankdata(arr, "dense").astype(int) # ============================================================================= diff --git a/tests/madm/test_base.py b/tests/madm/test_base.py index c943723..f3c43f3 100644 --- a/tests/madm/test_base.py +++ b/tests/madm/test_base.py @@ -133,8 +133,8 @@ class test_ResultBase_original_validare_result_fail: class Foo(ResultABC): _skcriteria_result_column = "foo" - def _validate_result(self, values, allow_ties): - return super()._validate_result(values, allow_ties) + def _validate_result(self, values): + return super()._validate_result(values) with pytest.raises(NotImplementedError): Foo("foo", ["abc"], [1, 2, 3], {}) @@ -162,28 +162,7 @@ def test_RankResult(): assert np.all(result.untied_rank_ == rank) -def test_RankResult_ties(): - method = "foo" - alternatives = ["a", "b", "c"] - rank = [1, 2, 1] - extra = {"alfa": 1} - - result = RankResult( - method=method, - alternatives=alternatives, - values=rank, - extra=extra, - allow_ties=True, - ) - - assert np.all(result.method == method) - assert np.all(result.alternatives == alternatives) - assert np.all(result.rank_ == rank) - assert np.all(result.extra_ == result.e_ == extra) - assert np.all(result.untied_rank_ == [1, 3, 2]) - - -@pytest.mark.parametrize("rank", [[1, 2, 5], [1, 1, 1], [1, 2, 2], [1, 2]]) +@pytest.mark.parametrize("rank", [[1, 2, 5], [1, 2]]) def test_RankResult_invalid_rank(rank): method = "foo" alternatives = ["a", "b", "c"] From fd93d1bb657988165cab9c45d601ff5d6a32c6bb Mon Sep 17 00:00:00 2001 From: juanbc Date: Thu, 5 May 2022 19:01:43 -0300 Subject: [PATCH 11/16] better kernel --- skcriteria/madm/_base.py | 42 ++++++++++++++++++++++++++++-------- skcriteria/utils/rank.py | 1 + tests/madm/test_base.py | 44 ++++++++++++++++++++++++++++++++++---- tests/madm/test_electre.py | 2 +- 4 files changed, 75 insertions(+), 14 deletions(-) diff --git a/skcriteria/madm/_base.py b/skcriteria/madm/_base.py index 386a4b6..9cb57ac 100644 --- a/skcriteria/madm/_base.py +++ b/skcriteria/madm/_base.py @@ -17,13 +17,14 @@ # ============================================================================= import abc +from collections import Counter import numpy as np import pandas as pd from ..core import SKCMethodABC -from ..utils import Bunch, doc_inherit +from ..utils import Bunch, doc_inherit, deprecated # ============================================================================= # DM BASE @@ -151,13 +152,6 @@ def extra_(self): e_ = extra_ - @property - def has_ties_(self): - """True if two alternatives shares the same ranking.""" - values = self.values - return len(np.unique(values)) != len(values) - - # CMP ===================================================================== @property @@ -225,6 +219,17 @@ def _validate_result(self, values): if not np.array_equal(np.sort(cleaned_values), expected): raise ValueError(f"The data {values} doesn't look like a ranking") + @property + def has_ties_(self): + """True if two alternatives shares the same ranking.""" + values = self.values + return len(np.unique(values)) != len(values) + + @property + def ties_(self): + """Counter object that counts how many times each value appears.""" + return Counter(self.values) + @property def rank_(self): """Alias for ``values``.""" @@ -285,10 +290,29 @@ def kernel_(self): return self.values @property - def kernelwhere_(self): + def kernel_size_(self): + """How many alternatives has the kernel""" + return np.sum(self.kernel_) + + @property + def kernel_where_(self): """Indexes of the alternatives that are part of the kernel.""" return np.where(self.kernel_)[0] + @property + @deprecated( + reason=("Use 'kernel_where_' instead"), + version=0.7, + ) + def kernelwhere_(self): + """Indexes of the alternatives that are part of the kernel.""" + return self.kernel_where_ + + @property + def kernel_alternatives_(self): + """Return the names of alternatives in the kernel.""" + return self._result_df.index[self._result_df.Kernel].to_numpy() + def _repr_html_(self): """Return a html representation for a particular result. diff --git a/skcriteria/utils/rank.py b/skcriteria/utils/rank.py index a66d887..7dd8bf2 100644 --- a/skcriteria/utils/rank.py +++ b/skcriteria/utils/rank.py @@ -22,6 +22,7 @@ from scipy import stats + # ============================================================================= # RANKER # ============================================================================= diff --git a/tests/madm/test_base.py b/tests/madm/test_base.py index f3c43f3..38962b7 100644 --- a/tests/madm/test_base.py +++ b/tests/madm/test_base.py @@ -16,6 +16,8 @@ # IMPORTS # ============================================================================= +from collections import Counter + import numpy as np from pyquery import PyQuery @@ -145,21 +147,28 @@ def _validate_result(self, values): # ============================================================================= -def test_RankResult(): +@pytest.mark.parametrize( + "rank, has_ties, untied_rank", + [ + ([1, 2, 3], False, [1, 2, 3]), + ([1, 2, 1], True, [1, 3, 2]), + ], +) +def test_RankResult(rank, has_ties, untied_rank): method = "foo" alternatives = ["a", "b", "c"] - rank = [1, 2, 3] extra = {"alfa": 1} result = RankResult( method=method, alternatives=alternatives, values=rank, extra=extra ) - + assert result.has_ties_ == has_ties + assert result.ties_ == Counter(result.rank_) assert np.all(result.method == method) assert np.all(result.alternatives == alternatives) assert np.all(result.rank_ == rank) assert np.all(result.extra_ == result.e_ == extra) - assert np.all(result.untied_rank_ == rank) + assert np.all(result.untied_rank_ == untied_rank) @pytest.mark.parametrize("rank", [[1, 2, 5], [1, 2]]) @@ -268,6 +277,33 @@ def test_RankResult_repr_html(): # ============================================================================= +@pytest.mark.parametrize( + "kernel, kernel_size, kernel_where, kernel_alternatives", + [ + ([False, False, False], 0, [], []), + ([False, False, True], 1, [2], ["c"]), + ([True, True, False], 2, [0, 1], ["a", "b"]), + ([True, True, True], 3, [0, 1, 2], ["a", "b", "c"]), + ], +) +def test_KernelResult(kernel, kernel_size, kernel_where, kernel_alternatives): + method = "foo" + alternatives = ["a", "b", "c"] + extra = {"alfa": 1} + + result = KernelResult( + method=method, alternatives=alternatives, values=kernel, extra=extra + ) + + assert np.all(result.method == method) + assert np.all(result.alternatives == alternatives) + assert np.all(result.extra_ == result.e_ == extra) + assert np.all(result.kernel_ == kernel) + assert np.all(result.kernel_size_ == kernel_size) + assert np.all(result.kernel_where_ == kernel_where) + assert np.all(result.kernel_alternatives_ == kernel_alternatives) + + @pytest.mark.parametrize("values", [[1, 2, 5], [True, False, 1], [1, 2, 3]]) def test_KernelResult_invalid_rank(values): method = "foo" diff --git a/tests/madm/test_electre.py b/tests/madm/test_electre.py index bd2e488..8b12ac6 100644 --- a/tests/madm/test_electre.py +++ b/tests/madm/test_electre.py @@ -144,7 +144,7 @@ def test_ELECTRE1_cebrian2009localizacion(): kselector = ELECTRE1() result = kselector.evaluate(dm) - assert np.all(result.kernelwhere_ == [4]) + assert np.all(result.kernel_where_ == [4]) def test_ELECTRE1_kernel_sensibility_barba1997decisiones(): From a68d9e3316213efa12344099cb2980f19ece76d5 Mon Sep 17 00:00:00 2001 From: juanbc Date: Thu, 5 May 2022 23:33:15 -0300 Subject: [PATCH 12/16] coverage up to 100% --- skcriteria/madm/_base.py | 2 +- skcriteria/madm/electre.py | 17 +++-------------- tests/madm/test_base.py | 4 ++++ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/skcriteria/madm/_base.py b/skcriteria/madm/_base.py index 9cb57ac..3a41277 100644 --- a/skcriteria/madm/_base.py +++ b/skcriteria/madm/_base.py @@ -24,7 +24,7 @@ import pandas as pd from ..core import SKCMethodABC -from ..utils import Bunch, doc_inherit, deprecated +from ..utils import Bunch, deprecated, doc_inherit # ============================================================================= # DM BASE diff --git a/skcriteria/madm/electre.py b/skcriteria/madm/electre.py index e308c73..864bdad 100644 --- a/skcriteria/madm/electre.py +++ b/skcriteria/madm/electre.py @@ -245,9 +245,6 @@ def _electre2_ranker( # the current rank current_rank_position = 1 - # TODO: explicar que es esto - last_is_kernel = False - while len(outrank_w) or len(outrank_s): kernel_s = ~outrank_s.any(axis=0) @@ -285,14 +282,12 @@ def _electre2_ranker( # next time we will assign the current ranking + 1 current_rank_position += 1 - else: - last_is_kernel = True if invert_ranking: max_value = np.max(ranking) ranking = (max_value + 1) - ranking - return ranking, last_is_kernel + return ranking def electre2( @@ -320,10 +315,10 @@ def electre2( # calculo del ranking directo - ranking_direct, last_is_kernel_direct = _electre2_ranker( + ranking_direct = _electre2_ranker( alt_n, outrank_s, outrank_w, invert_ranking=False ) - ranking_inverted, last_is_kernel_inverted = _electre2_ranker( + ranking_inverted = _electre2_ranker( alt_n, outrank_s.T, outrank_w.T, invert_ranking=True ) @@ -341,8 +336,6 @@ def electre2( outrank_s, outrank_w, score, - last_is_kernel_direct, - last_is_kernel_inverted, ) @@ -404,8 +397,6 @@ def _evaluate_data(self, matrix, objectives, weights, **kwargs): outrank_s, outrank_w, score, - last_is_kernel_direct, - last_is_kernel_inverted, ) = electre2( matrix, objectives, @@ -425,8 +416,6 @@ def _evaluate_data(self, matrix, objectives, weights, **kwargs): "outrank_s": outrank_s, "outrank_w": outrank_w, "score": score, - "last_is_kernel_direct": last_is_kernel_direct, - "last_is_kernel_inverted": last_is_kernel_inverted, } @doc_inherit(SKCDecisionMakerABC._make_result) diff --git a/tests/madm/test_base.py b/tests/madm/test_base.py index 38962b7..d9cff3b 100644 --- a/tests/madm/test_base.py +++ b/tests/madm/test_base.py @@ -303,6 +303,10 @@ def test_KernelResult(kernel, kernel_size, kernel_where, kernel_alternatives): assert np.all(result.kernel_where_ == kernel_where) assert np.all(result.kernel_alternatives_ == kernel_alternatives) + with pytest.deprecated_call(): + assert np.all(result.kernelwhere_ == kernel_where) + + @pytest.mark.parametrize("values", [[1, 2, 5], [True, False, 1], [1, 2, 3]]) def test_KernelResult_invalid_rank(values): From 43e747b7052da4552da53538a79e77629c8fd57e Mon Sep 17 00:00:00 2001 From: juanbc Date: Thu, 5 May 2022 23:59:11 -0300 Subject: [PATCH 13/16] changelog updated --- CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55da962..185394a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,25 @@ +## Version 0.7 + +- **New method**: `ELECTRE2`. + +- Now the `RankingResult`, support repeated/tied rankings and some were + implemented to deal with these cases. + + - `RankingResult.has_ties_` to see if there are tied values. + - `RankingResult.ties_` to see how often values are repeated. + - `RankingResult.untided_rank_` to get a ranking with no repeated values. + repeated values. + +- `KernelResult` now implements several new properties: + + - `kernel_alternatives_` to know which alternatives are in the kernel. + - `kernel_size_` to know the number of alternatives in the kernel. + - `kernel_where_` was replaced by `kernel_where_` to standardize the api. + + ## Version 0.6 - Support for Python 3.10. From f90b2b68458a560dbe0ea9090a4d7e8b8ca49616 Mon Sep 17 00:00:00 2001 From: juanbc Date: Fri, 6 May 2022 00:01:41 -0300 Subject: [PATCH 14/16] black --- docs/source/_dynamic/CHANGELOG.rst | 25 +++++++++++++++++++++++++ docs/source/conf.py | 2 +- tests/madm/test_base.py | 1 - 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/docs/source/_dynamic/CHANGELOG.rst b/docs/source/_dynamic/CHANGELOG.rst index a83a5db..07addc2 100644 --- a/docs/source/_dynamic/CHANGELOG.rst +++ b/docs/source/_dynamic/CHANGELOG.rst @@ -1,5 +1,30 @@ .. FILE AUTO GENERATED !! +Version 0.7 +----------- + + +* + **New method**\ : ``ELECTRE2``. + +* + Now the ``RankingResult``\ , support repeated/tied rankings and some were + implemented to deal with these cases. + + + * ``RankingResult.has_ties_`` to see if there are tied values. + * ``RankingResult.ties_`` to see how often values are repeated. + * ``RankingResult.untided_rank_`` to get a ranking with no repeated values. + repeated values. + +* + ``KernelResult`` now implements several new properties: + + + * ``kernel_alternatives_`` to know which alternatives are in the kernel. + * ``kernel_size_`` to know the number of alternatives in the kernel. + * ``kernel_where_`` was replaced by ``kernel_where_`` to standardize the api. + Version 0.6 ----------- diff --git a/docs/source/conf.py b/docs/source/conf.py index a7ccf3f..55889c6 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -57,7 +57,7 @@ "sphinx.ext.autosummary", "nbsphinx", "sphinxcontrib.bibtex", - "sphinx_copybutton" + "sphinx_copybutton", ] # ============================================================================= # EXTRA CONF diff --git a/tests/madm/test_base.py b/tests/madm/test_base.py index d9cff3b..05bdfcf 100644 --- a/tests/madm/test_base.py +++ b/tests/madm/test_base.py @@ -307,7 +307,6 @@ def test_KernelResult(kernel, kernel_size, kernel_where, kernel_alternatives): assert np.all(result.kernelwhere_ == kernel_where) - @pytest.mark.parametrize("values", [[1, 2, 5], [True, False, 1], [1, 2, 3]]) def test_KernelResult_invalid_rank(values): method = "foo" From da542bece8f03303a0afe8a9b955cf82a52285b5 Mon Sep 17 00:00:00 2001 From: juanbc Date: Fri, 6 May 2022 21:32:42 -0300 Subject: [PATCH 15/16] docs done --- CHANGELOG.md | 7 +++-- docs/source/_dynamic/CHANGELOG.rst | 9 ++++-- docs/source/refs.bib | 29 ++++++++++++++++++ skcriteria/madm/_base.py | 4 +-- skcriteria/madm/electre.py | 49 +++++++++++++++++++++++++++--- 5 files changed, 86 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 185394a..36b171a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,11 @@ ## Version 0.7 - **New method**: `ELECTRE2`. - +- **New preprocessin strategy:** A new way to transform from minimization to + maximization criteria: `NegateMinimize()` which reverses the sign of the + values of the criteria to be minimized (useful for not breaking distance + relations in methods like *TOPSIS*). Additionally the previous we rename the + `MinimizeToMaximize()` transformer to `InvertMinimize()`. - Now the `RankingResult`, support repeated/tied rankings and some were implemented to deal with these cases. @@ -13,7 +17,6 @@ - `RankingResult.ties_` to see how often values are repeated. - `RankingResult.untided_rank_` to get a ranking with no repeated values. repeated values. - - `KernelResult` now implements several new properties: - `kernel_alternatives_` to know which alternatives are in the kernel. diff --git a/docs/source/_dynamic/CHANGELOG.rst b/docs/source/_dynamic/CHANGELOG.rst index 07addc2..141db55 100644 --- a/docs/source/_dynamic/CHANGELOG.rst +++ b/docs/source/_dynamic/CHANGELOG.rst @@ -4,9 +4,12 @@ Version 0.7 ----------- -* - **New method**\ : ``ELECTRE2``. - +* **New method**\ : ``ELECTRE2``. +* **New preprocessin strategy:** A new way to transform from minimization to + maximization criteria: ``NegateMinimize()`` which reverses the sign of the + values of the criteria to be minimized (useful for not breaking distance + relations in methods like *TOPSIS*\ ). Additionally the previous we rename the + ``MinimizeToMaximize()`` transformer to ``InvertMinimize()``. * Now the ``RankingResult``\ , support repeated/tied rankings and some were implemented to deal with these cases. diff --git a/docs/source/refs.bib b/docs/source/refs.bib index ee87afd..f0349de 100644 --- a/docs/source/refs.bib +++ b/docs/source/refs.bib @@ -30,6 +30,35 @@ @article{roy1968classement publisher = {EDP Sciences} } +@book{gomez2004tomada, + author = {Gomes, Luiz and González-Araya, Marcela and Carignano, Claudia}, + year = {2004}, + month = {11}, + pages = {}, + title = {Tomada de decisões em cenários complexos}, + isbn = {85-221-0354-2}, + publisher = {Thomson} +} + + +@article{roy1971methode, + title = {La m{\'e}thode Electre II}, + author = {Roy, Bernard and Bertier, Patrice}, + journal = {Note de travail}, + volume = {142}, + year = {1971} +} + +@article{roy1973methode, + title = {La M{\'e}thode ELECTRE II(Une application au m{\'e}dia-planning...)}, + author = {Roy, Bertier and Bertier, Patrice}, + year = {1973}, + journal = {VII {\`e}me Conf{\`e}rence internationale de recherch{\'e} op{\'e}rationalle}, + publisher = {Metra international} +} + + + % skcriteria.madm.moora @article{brauers2006moora, diff --git a/skcriteria/madm/_base.py b/skcriteria/madm/_base.py index 3a41277..8419e48 100644 --- a/skcriteria/madm/_base.py +++ b/skcriteria/madm/_base.py @@ -221,7 +221,7 @@ def _validate_result(self, values): @property def has_ties_(self): - """True if two alternatives shares the same ranking.""" + """Return True if two alternatives shares the same ranking.""" values = self.values return len(np.unique(values)) != len(values) @@ -291,7 +291,7 @@ def kernel_(self): @property def kernel_size_(self): - """How many alternatives has the kernel""" + """How many alternatives has the kernel.""" return np.sum(self.kernel_) @property diff --git a/skcriteria/madm/electre.py b/skcriteria/madm/electre.py index 864bdad..a9cb532 100644 --- a/skcriteria/madm/electre.py +++ b/skcriteria/madm/electre.py @@ -124,7 +124,7 @@ def electre1(matrix, objectives, weights, p=0.65, q=0.35): class ELECTRE1(SKCDecisionMakerABC): - """Find a the kernel solution through ELECTRE-1. + """Find a kernel of alternatives through ELECTRE-1. The ELECTRE I model find the kernel solution in a situation where true criteria and restricted outranking relations are given. @@ -198,7 +198,16 @@ def _make_result(self, alternatives, values, extra): def weights_outrank(matrix, weights, objectives): + """Calculate a matrix of comparison of alternatives where the value of \ + each cell determines how many times the value of the criteria weights of \ + the row alternative exceeds those of the column alternative. + Notes + ----- + For more information about this matrix please check "Tomada de decisões em + cenários complexos" :cite:p:`gomez2004tomada`, p. 100 + + """ alt_n = len(matrix) alt_combs = it.combinations(range(alt_n), 2) outrank = np.full((alt_n, alt_n), False, dtype=bool) @@ -230,8 +239,6 @@ def _electre2_ranker( alt_n, original_outrank_s, original_outrank_w, invert_ranking ): - # Here we create the ranking loop - # here we store the final rank ranking = np.zeros(alt_n, dtype=int) @@ -294,7 +301,6 @@ def electre2( matrix, objectives, weights, p0=0.65, p1=0.5, p2=0.35, q0=0.65, q1=0.35 ): """Execute ELECTRE2 without any validation.""" - matrix_concordance = concordance(matrix, objectives, weights) matrix_discordance = discordance(matrix, objectives) matrix_wor = weights_outrank(matrix, objectives, weights) @@ -340,7 +346,40 @@ def electre2( class ELECTRE2(SKCDecisionMakerABC): - """Find a the rankin solution through ELECTRE-2.""" + """Find the rankin solution through ELECTRE-2. + + ELECTRE II was proposed by Roy and Bertier (1971-1973) to overcome ELECTRE + I's inability to produce a ranking of alternatives. Instead of simply + finding the kernel set, ELECTRE II can order alternatives by introducing + the strong and the weak outranking relations. + + Notes + ----- + This implementation is based on the one presented in the book + "Tomada de decisões em cenários complexos" :cite:p:`gomez2004tomada`. + + Parameters + ---------- + p0, p1, p2 : float, optional (default=0.65, 0.5, 0.35) + Matching thresholds. These are the thresholds that indicate the extent + to which an alternative can be considered equivalent, good or very good + with respect to another alternative. + + These thresholds must meet the condition "1 >= p0 >= p1 >= p2 >= 0". + + q0, q1 : float, optional (default=0.65, 0.35) + Discordance threshold. Threshold of the degree to which an alternative + is equivalent, preferred or strictly preferred to another alternative. + + These thresholds must meet the condition "1 >= q0 >= q1 >= 0". + + References + ---------- + :cite:p:`gomez2004tomada` + :cite:p:`roy1971methode` + :cite:p:`roy1973methode` + + """ _skcriteria_parameters = ["p0", "p1", "p2", "q0", "q1"] From 2629dad68e2cd0280fec3c25b6e85cd24b6e9807 Mon Sep 17 00:00:00 2001 From: juanbc Date: Sat, 7 May 2022 00:15:01 -0300 Subject: [PATCH 16/16] 0.7 in __init__ --- skcriteria/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skcriteria/__init__.py b/skcriteria/__init__.py index a3257ed..6d04dae 100644 --- a/skcriteria/__init__.py +++ b/skcriteria/__init__.py @@ -30,7 +30,7 @@ __all__ = ["mkdm", "DecisionMatrix", "Objective"] -__version__ = ("0", "7dev0") +__version__ = ("0", "7") NAME = "scikit-criteria"