desdeo 1.2__tar.gz → 2.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. desdeo-2.1.0/LICENSE +21 -0
  2. desdeo-2.1.0/PKG-INFO +186 -0
  3. desdeo-2.1.0/README.md +143 -0
  4. desdeo-2.1.0/desdeo/__init__.py +9 -0
  5. desdeo-2.1.0/desdeo/adm/ADMAfsar.py +551 -0
  6. desdeo-2.1.0/desdeo/adm/ADMChen.py +414 -0
  7. desdeo-2.1.0/desdeo/adm/BaseADM.py +119 -0
  8. desdeo-2.1.0/desdeo/adm/__init__.py +11 -0
  9. desdeo-2.1.0/desdeo/api/README.md +73 -0
  10. desdeo-2.1.0/desdeo/api/__init__.py +15 -0
  11. desdeo-2.1.0/desdeo/api/app.py +50 -0
  12. desdeo-2.1.0/desdeo/api/config.py +90 -0
  13. desdeo-2.1.0/desdeo/api/config.toml +64 -0
  14. desdeo-2.1.0/desdeo/api/db.py +27 -0
  15. desdeo-2.1.0/desdeo/api/db_init.py +85 -0
  16. desdeo-2.1.0/desdeo/api/db_models.py +164 -0
  17. desdeo-2.1.0/desdeo/api/malaga_db_init.py +27 -0
  18. desdeo-2.1.0/desdeo/api/models/__init__.py +266 -0
  19. desdeo-2.1.0/desdeo/api/models/archive.py +23 -0
  20. desdeo-2.1.0/desdeo/api/models/emo.py +128 -0
  21. desdeo-2.1.0/desdeo/api/models/enautilus.py +69 -0
  22. desdeo-2.1.0/desdeo/api/models/gdm/gdm_aggregate.py +139 -0
  23. desdeo-2.1.0/desdeo/api/models/gdm/gdm_base.py +69 -0
  24. desdeo-2.1.0/desdeo/api/models/gdm/gdm_score_bands.py +114 -0
  25. desdeo-2.1.0/desdeo/api/models/gdm/gnimbus.py +138 -0
  26. desdeo-2.1.0/desdeo/api/models/generic.py +104 -0
  27. desdeo-2.1.0/desdeo/api/models/generic_states.py +401 -0
  28. desdeo-2.1.0/desdeo/api/models/nimbus.py +158 -0
  29. desdeo-2.1.0/desdeo/api/models/preference.py +128 -0
  30. desdeo-2.1.0/desdeo/api/models/problem.py +717 -0
  31. desdeo-2.1.0/desdeo/api/models/reference_point_method.py +18 -0
  32. desdeo-2.1.0/desdeo/api/models/session.py +49 -0
  33. desdeo-2.1.0/desdeo/api/models/state.py +463 -0
  34. desdeo-2.1.0/desdeo/api/models/user.py +52 -0
  35. desdeo-2.1.0/desdeo/api/models/utopia.py +25 -0
  36. desdeo-2.1.0/desdeo/api/routers/_EMO.backup +309 -0
  37. desdeo-2.1.0/desdeo/api/routers/_NAUTILUS.py +245 -0
  38. desdeo-2.1.0/desdeo/api/routers/_NAUTILUS_navigator.py +233 -0
  39. desdeo-2.1.0/desdeo/api/routers/_NIMBUS.py +765 -0
  40. desdeo-2.1.0/desdeo/api/routers/__init__.py +5 -0
  41. desdeo-2.1.0/desdeo/api/routers/emo.py +497 -0
  42. desdeo-2.1.0/desdeo/api/routers/enautilus.py +237 -0
  43. desdeo-2.1.0/desdeo/api/routers/gdm/gdm_aggregate.py +234 -0
  44. desdeo-2.1.0/desdeo/api/routers/gdm/gdm_base.py +420 -0
  45. desdeo-2.1.0/desdeo/api/routers/gdm/gdm_score_bands/gdm_score_bands_manager.py +398 -0
  46. desdeo-2.1.0/desdeo/api/routers/gdm/gdm_score_bands/gdm_score_bands_routers.py +377 -0
  47. desdeo-2.1.0/desdeo/api/routers/gdm/gnimbus/gnimbus_manager.py +698 -0
  48. desdeo-2.1.0/desdeo/api/routers/gdm/gnimbus/gnimbus_routers.py +591 -0
  49. desdeo-2.1.0/desdeo/api/routers/generic.py +233 -0
  50. desdeo-2.1.0/desdeo/api/routers/nimbus.py +705 -0
  51. desdeo-2.1.0/desdeo/api/routers/problem.py +307 -0
  52. desdeo-2.1.0/desdeo/api/routers/reference_point_method.py +93 -0
  53. desdeo-2.1.0/desdeo/api/routers/session.py +100 -0
  54. desdeo-2.1.0/desdeo/api/routers/test.py +16 -0
  55. desdeo-2.1.0/desdeo/api/routers/user_authentication.py +520 -0
  56. desdeo-2.1.0/desdeo/api/routers/utils.py +187 -0
  57. desdeo-2.1.0/desdeo/api/routers/utopia.py +230 -0
  58. desdeo-2.1.0/desdeo/api/schema.py +100 -0
  59. desdeo-2.1.0/desdeo/api/tests/__init__.py +0 -0
  60. desdeo-2.1.0/desdeo/api/tests/conftest.py +151 -0
  61. desdeo-2.1.0/desdeo/api/tests/test_enautilus.py +330 -0
  62. desdeo-2.1.0/desdeo/api/tests/test_models.py +1179 -0
  63. desdeo-2.1.0/desdeo/api/tests/test_routes.py +1075 -0
  64. desdeo-2.1.0/desdeo/api/utils/_database.py +263 -0
  65. desdeo-2.1.0/desdeo/api/utils/_logger.py +29 -0
  66. desdeo-2.1.0/desdeo/api/utils/database.py +36 -0
  67. desdeo-2.1.0/desdeo/api/utils/emo_database.py +40 -0
  68. desdeo-2.1.0/desdeo/core.py +34 -0
  69. desdeo-2.1.0/desdeo/emo/__init__.py +159 -0
  70. desdeo-2.1.0/desdeo/emo/hooks/archivers.py +188 -0
  71. desdeo-2.1.0/desdeo/emo/methods/EAs.py +541 -0
  72. desdeo-2.1.0/desdeo/emo/methods/__init__.py +0 -0
  73. desdeo-2.1.0/desdeo/emo/methods/bases.py +12 -0
  74. desdeo-2.1.0/desdeo/emo/methods/templates.py +111 -0
  75. desdeo-2.1.0/desdeo/emo/operators/__init__.py +1 -0
  76. desdeo-2.1.0/desdeo/emo/operators/crossover.py +1282 -0
  77. desdeo-2.1.0/desdeo/emo/operators/evaluator.py +114 -0
  78. desdeo-2.1.0/desdeo/emo/operators/generator.py +459 -0
  79. desdeo-2.1.0/desdeo/emo/operators/mutation.py +1224 -0
  80. desdeo-2.1.0/desdeo/emo/operators/scalar_selection.py +202 -0
  81. desdeo-2.1.0/desdeo/emo/operators/selection.py +1778 -0
  82. desdeo-2.1.0/desdeo/emo/operators/termination.py +286 -0
  83. desdeo-2.1.0/desdeo/emo/options/__init__.py +108 -0
  84. desdeo-2.1.0/desdeo/emo/options/algorithms.py +435 -0
  85. desdeo-2.1.0/desdeo/emo/options/crossover.py +164 -0
  86. desdeo-2.1.0/desdeo/emo/options/generator.py +131 -0
  87. desdeo-2.1.0/desdeo/emo/options/mutation.py +260 -0
  88. desdeo-2.1.0/desdeo/emo/options/repair.py +61 -0
  89. desdeo-2.1.0/desdeo/emo/options/scalar_selection.py +66 -0
  90. desdeo-2.1.0/desdeo/emo/options/selection.py +127 -0
  91. desdeo-2.1.0/desdeo/emo/options/templates.py +383 -0
  92. desdeo-2.1.0/desdeo/emo/options/termination.py +143 -0
  93. desdeo-2.1.0/desdeo/explanations/__init__.py +6 -0
  94. desdeo-2.1.0/desdeo/explanations/explainer.py +100 -0
  95. desdeo-2.1.0/desdeo/explanations/utils.py +90 -0
  96. desdeo-2.1.0/desdeo/gdm/__init__.py +22 -0
  97. desdeo-2.1.0/desdeo/gdm/gdmtools.py +45 -0
  98. desdeo-2.1.0/desdeo/gdm/score_bands.py +114 -0
  99. desdeo-2.1.0/desdeo/gdm/voting_rules.py +50 -0
  100. desdeo-2.1.0/desdeo/mcdm/__init__.py +41 -0
  101. desdeo-2.1.0/desdeo/mcdm/enautilus.py +338 -0
  102. desdeo-2.1.0/desdeo/mcdm/gnimbus.py +484 -0
  103. desdeo-2.1.0/desdeo/mcdm/nautili.py +345 -0
  104. desdeo-2.1.0/desdeo/mcdm/nautilus.py +477 -0
  105. desdeo-2.1.0/desdeo/mcdm/nautilus_navigator.py +656 -0
  106. desdeo-2.1.0/desdeo/mcdm/nimbus.py +417 -0
  107. desdeo-2.1.0/desdeo/mcdm/pareto_navigator.py +269 -0
  108. desdeo-2.1.0/desdeo/mcdm/reference_point_method.py +186 -0
  109. desdeo-2.1.0/desdeo/problem/__init__.py +83 -0
  110. desdeo-2.1.0/desdeo/problem/evaluator.py +561 -0
  111. desdeo-2.1.0/desdeo/problem/external/__init__.py +18 -0
  112. desdeo-2.1.0/desdeo/problem/external/core.py +356 -0
  113. desdeo-2.1.0/desdeo/problem/external/pymoo_provider.py +266 -0
  114. desdeo-2.1.0/desdeo/problem/external/runtime.py +44 -0
  115. desdeo-2.1.0/desdeo/problem/gurobipy_evaluator.py +562 -0
  116. desdeo-2.1.0/desdeo/problem/infix_parser.py +341 -0
  117. desdeo-2.1.0/desdeo/problem/json_parser.py +944 -0
  118. desdeo-2.1.0/desdeo/problem/pyomo_evaluator.py +487 -0
  119. desdeo-2.1.0/desdeo/problem/schema.py +1829 -0
  120. desdeo-2.1.0/desdeo/problem/simulator_evaluator.py +348 -0
  121. desdeo-2.1.0/desdeo/problem/sympy_evaluator.py +244 -0
  122. desdeo-2.1.0/desdeo/problem/testproblems/__init__.py +88 -0
  123. desdeo-2.1.0/desdeo/problem/testproblems/benchmarks_server.py +120 -0
  124. desdeo-2.1.0/desdeo/problem/testproblems/binh_and_korn_problem.py +88 -0
  125. desdeo-2.1.0/desdeo/problem/testproblems/cake_problem.py +185 -0
  126. desdeo-2.1.0/desdeo/problem/testproblems/dmitry_forest_problem_discrete.py +71 -0
  127. desdeo-2.1.0/desdeo/problem/testproblems/dtlz2_problem.py +102 -0
  128. desdeo-2.1.0/desdeo/problem/testproblems/forest_problem.py +283 -0
  129. desdeo-2.1.0/desdeo/problem/testproblems/knapsack_problem.py +163 -0
  130. desdeo-2.1.0/desdeo/problem/testproblems/mcwb_problem.py +831 -0
  131. desdeo-2.1.0/desdeo/problem/testproblems/mixed_variable_dimenrions_problem.py +83 -0
  132. desdeo-2.1.0/desdeo/problem/testproblems/momip_problem.py +172 -0
  133. desdeo-2.1.0/desdeo/problem/testproblems/multi_valued_constraints.py +119 -0
  134. desdeo-2.1.0/desdeo/problem/testproblems/nimbus_problem.py +143 -0
  135. desdeo-2.1.0/desdeo/problem/testproblems/pareto_navigator_problem.py +89 -0
  136. desdeo-2.1.0/desdeo/problem/testproblems/re_problem.py +492 -0
  137. desdeo-2.1.0/desdeo/problem/testproblems/river_pollution_problems.py +440 -0
  138. desdeo-2.1.0/desdeo/problem/testproblems/rocket_injector_design_problem.py +140 -0
  139. desdeo-2.1.0/desdeo/problem/testproblems/simple_problem.py +351 -0
  140. desdeo-2.1.0/desdeo/problem/testproblems/simulator_problem.py +92 -0
  141. desdeo-2.1.0/desdeo/problem/testproblems/single_objective.py +289 -0
  142. desdeo-2.1.0/desdeo/problem/testproblems/spanish_sustainability_problem.py +945 -0
  143. desdeo-2.1.0/desdeo/problem/testproblems/zdt_problem.py +274 -0
  144. desdeo-2.1.0/desdeo/problem/utils.py +245 -0
  145. desdeo-2.1.0/desdeo/tools/GenerateReferencePoints.py +181 -0
  146. desdeo-2.1.0/desdeo/tools/__init__.py +120 -0
  147. desdeo-2.1.0/desdeo/tools/desc_gen.py +22 -0
  148. desdeo-2.1.0/desdeo/tools/generics.py +165 -0
  149. desdeo-2.1.0/desdeo/tools/group_scalarization.py +3090 -0
  150. desdeo-2.1.0/desdeo/tools/gurobipy_solver_interfaces.py +258 -0
  151. desdeo-2.1.0/desdeo/tools/indicators_binary.py +117 -0
  152. desdeo-2.1.0/desdeo/tools/indicators_unary.py +362 -0
  153. desdeo-2.1.0/desdeo/tools/interaction_schema.py +38 -0
  154. desdeo-2.1.0/desdeo/tools/intersection.py +54 -0
  155. desdeo-2.1.0/desdeo/tools/iterative_pareto_representer.py +99 -0
  156. desdeo-2.1.0/desdeo/tools/message.py +265 -0
  157. desdeo-2.1.0/desdeo/tools/ng_solver_interfaces.py +199 -0
  158. desdeo-2.1.0/desdeo/tools/non_dominated_sorting.py +134 -0
  159. desdeo-2.1.0/desdeo/tools/patterns.py +283 -0
  160. desdeo-2.1.0/desdeo/tools/proximal_solver.py +99 -0
  161. desdeo-2.1.0/desdeo/tools/pyomo_solver_interfaces.py +477 -0
  162. desdeo-2.1.0/desdeo/tools/reference_vectors.py +229 -0
  163. desdeo-2.1.0/desdeo/tools/scalarization.py +2065 -0
  164. desdeo-2.1.0/desdeo/tools/scipy_solver_interfaces.py +454 -0
  165. desdeo-2.1.0/desdeo/tools/score_bands.py +627 -0
  166. desdeo-2.1.0/desdeo/tools/utils.py +388 -0
  167. desdeo-2.1.0/desdeo/tools/visualizations.py +67 -0
  168. desdeo-2.1.0/desdeo/utopia_stuff/__init__.py +0 -0
  169. desdeo-2.1.0/desdeo/utopia_stuff/data/1.json +15 -0
  170. desdeo-2.1.0/desdeo/utopia_stuff/data/2.json +13 -0
  171. desdeo-2.1.0/desdeo/utopia_stuff/data/3.json +15 -0
  172. desdeo-2.1.0/desdeo/utopia_stuff/data/4.json +17 -0
  173. desdeo-2.1.0/desdeo/utopia_stuff/data/5.json +15 -0
  174. desdeo-2.1.0/desdeo/utopia_stuff/from_json.py +40 -0
  175. desdeo-2.1.0/desdeo/utopia_stuff/reinit_user.py +38 -0
  176. desdeo-2.1.0/desdeo/utopia_stuff/utopia_db_init.py +212 -0
  177. desdeo-2.1.0/desdeo/utopia_stuff/utopia_problem.py +403 -0
  178. desdeo-2.1.0/desdeo/utopia_stuff/utopia_problem_old.py +415 -0
  179. desdeo-2.1.0/desdeo/utopia_stuff/utopia_reference_solutions.py +79 -0
  180. desdeo-2.1.0/pyproject.toml +283 -0
  181. desdeo-1.2/PKG-INFO +0 -16
  182. desdeo-1.2/desdeo/__init__.py +0 -9
  183. desdeo-1.2/pyproject.toml +0 -28
desdeo-2.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 The Multiobjective Optimization Group (http://www.mit.jyu.fi/optgroup/).
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
desdeo-2.1.0/PKG-INFO ADDED
@@ -0,0 +1,186 @@
1
+ Metadata-Version: 2.4
2
+ Name: desdeo
3
+ Version: 2.1.0
4
+ Summary: DESDEO is a modular and open source framework for interactive multiobjective optimization.
5
+ License-Expression: MIT
6
+ License-File: LICENSE
7
+ Keywords: optimization,decision-support,multiobjective optimization,evolutionary optimization,interactive methods
8
+ Author: Giovanni Misitano
9
+ Author-email: giovanni.a.misitano@jyu.fi
10
+ Requires-Python: >=3.12,<3.14
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Requires-Dist: bayesian-optimization (>=1.0)
15
+ Requires-Dist: coco-experiment (>=2.8.2)
16
+ Requires-Dist: cvxpy[scip] (>=1.6.4)
17
+ Requires-Dist: greenlet (>=3.1.1)
18
+ Requires-Dist: gurobipy (>=12.0.0)
19
+ Requires-Dist: moocore (>=0.1.7)
20
+ Requires-Dist: nevergrad (>=1.0.12)
21
+ Requires-Dist: numba (>=0.61.0)
22
+ Requires-Dist: numpy (>=2.2.0)
23
+ Requires-Dist: plotly (>=6.0)
24
+ Requires-Dist: polars (==1.30)
25
+ Requires-Dist: pyarrow (>=20.0.0)
26
+ Requires-Dist: pydantic (>=2.9)
27
+ Requires-Dist: pydantic-settings (>=2.9)
28
+ Requires-Dist: pymoo (>=0.6.1.2)
29
+ Requires-Dist: pyomo (>=6.8)
30
+ Requires-Dist: pyparsing (>=3.0)
31
+ Requires-Dist: requests (>=2.32.0)
32
+ Requires-Dist: scipy (>=1.11.4)
33
+ Requires-Dist: shap (>=0.47.0)
34
+ Requires-Dist: sympy (>=1.0)
35
+ Requires-Dist: tsp-solver (>=0.1)
36
+ Requires-Dist: websockets (>=15.0.1)
37
+ Project-URL: Bug tracker, https://github.com/industrial-optimization-group/DESDEO/issues
38
+ Project-URL: Documentation, https://desdeo.readthedocs.io/en/latest/
39
+ Project-URL: Homepage, https://github.com/industrial-optimization-group/DESDEO
40
+ Project-URL: Repository, https://github.com/industrial-optimization-group/DESDEO
41
+ Description-Content-Type: text/markdown
42
+
43
+ # DESDEO: the open-source software framework for interactive multiobjective optimization
44
+
45
+ [![Discord](https://img.shields.io/discord/1382614276409266206?style=flat&label=Join%20our%20Discord&labelColor=%237289da)](https://discord.gg/uGCEgQTJyY) [![Documentation Status](https://img.shields.io/readthedocs/desdeo.svg?version=desdeo2&label=Documentation)](https://desdeo.readthedocs.io/en/latest/) ![Tests](https://img.shields.io/github/actions/workflow/status/industrial-optimization-group/DESDEO/unit_tests.yaml?branch=desdeo2&label=Tests)
46
+
47
+ ## Introduction
48
+
49
+ DESDEO is an open-source framework for interactive multiobjective optimization
50
+ methods. The framework contains implementations of both scalarization- and
51
+ population-based interactive methods. There are currently no other open-source
52
+ software frameworks that focus solely on the implementation of interactive
53
+ multiobjective optimization methods.
54
+
55
+ The mission of DESDEO is to increase awareness of the benefits of interactive
56
+ multiobjective optimization methods, make interactive methods openly available,
57
+ and to function as _the_ central hub for implementations of various interactive
58
+ methods. Apart from existing methods, DESDEO offers various tools to facilitate
59
+ the development of new methods and their application as well. Another important
60
+ goal of DESDEO is to answer the needs of decision makers and practitioners when
61
+ it comes to modeling and solving real-life multiobjective optimization problems.
62
+
63
+ In the bigger picture, DESDEO will be composed of three major components:
64
+
65
+ 1. The __core-logic__, which contains the algorithmic implementation of
66
+ interactive methods, various tools related to multiobjective optimization, and
67
+ means to model a variety of multiobjective optimization problems. The core-logic
68
+ can be considered stable enough for use in research and applications.
69
+ 2. The __web-API__ (WIP), which implements a web-based application programming
70
+ interface (API) to allow the use of the various functionalities found in
71
+ DESDEO's core-logic through a web connection. The web-API implements also a
72
+ database, which is a vital component for managing and enabling
73
+ decision-support using the framework. __The
74
+ web-API is currently under heavy development, and is subject to changes.__
75
+ 3. The __web-GUI__ (WIP), which implements a web-based interface for utilizing
76
+ the interactive methods and tools for modeling and solving multiobjective
77
+ optimization problems. __The web-GUI relies heavily on the web-API, and is also being actively developed currently, and therefore subject to sudden changes.__
78
+
79
+ For developing and experimenting with interactive multiobjective optimization
80
+ methods on a "grass root" level, the __core-logic__ provides the necessary
81
+ tools. For deploying interactive methods, the __web-API__ and the __web_GUI__
82
+ play a central role.
83
+
84
+ DESDEO is an open-source project and everybody is welcome to contribute!
85
+
86
+ ## Core-logic: key features
87
+
88
+ DESDEO's core-logic offers various features that can facilitate the application and
89
+ development of new interactive multiobjective optimization methods. Some
90
+ of the key features include, but are not limited to,
91
+
92
+ - A powerful, pydantic-based, schema for modeling multiobjective optimization
93
+ problem of various kinds. Including, analytically defined problems, data-based
94
+ problems, surrogate-based problems, and simulation-based problems.
95
+ Both continuous and (mixed-)integer problems are supported as well.
96
+ - Support to interface to many popular and powerful optimization software for
97
+ solving multiobjective optimization problems. Including Gurobi, various solvers
98
+ from the COIN-OR project, and nevergrad, for instance.
99
+ - A wide assortment of modular software components for implementing existing
100
+ and new interactive multiobjective optimization methods. For example, many
101
+ scalarization functions and evolutionary operators for multiobjective
102
+ optimization are available.
103
+ - An extensive documentation suitable for both newcomers to DESDEO and
104
+ interactive multiobjective optimization in general, and seasoned veterans.
105
+
106
+ ## Web-API: key features
107
+
108
+ DESDEO's web-API is currently under active development. Once it stabilized, its
109
+ key features will be listed here. In the meantime, the interested user can
110
+ follow (and contribute!) the development progress of the web-API in [this
111
+ issue](https://github.com/industrial-optimization-group/DESDEO/issues/245).
112
+
113
+ ## Web-GUI: key features
114
+
115
+ DESDEO's web-GUI is currently in a planning stage. Once its active development
116
+ starts, an issue will be created for documenting its development, as is
117
+ currently the case with the web-API.
118
+
119
+ ## Installation instructions
120
+
121
+ DESDEO is available on PyPI to be installed via pip:
122
+
123
+ ```bash
124
+ pip install desdeo
125
+ ```
126
+
127
+ However, some of DESDEO's features rely on 3rd party optimizers, which should be available on your system.
128
+ To read more on these, and on instructions on how to install the latest version of DESDEO directly from Github,
129
+ [check out the documentation](https://desdeo.readthedocs.io/en/latest/howtoguides/installing/).
130
+
131
+ ## Documentation
132
+
133
+ Care has been taken to make sure DESDEO is well documented, making it accessible
134
+ to both newcomers and seasoned users alike. [The documentation of DESDEO is
135
+ available online.](https://desdeo.readthedocs.io/en/latest/)
136
+
137
+ ## Contributing
138
+
139
+ As DESDEO is an open source-project, anybody is welcome to contribute.
140
+ An extensive tutorial to get started contributing to DESDEO
141
+ [is available in the documentation](https://desdeo.readthedocs.io/en/latest/tutorials/contributing/).
142
+ Be sure to check it out!
143
+
144
+ For additional support for contributing to DESDEO,
145
+ be sure to check out the DESDEO channels
146
+ in the MCDM Community's Discord server. You may join the server
147
+ [through this invite](https://discord.gg/TgSnUmzv5M).
148
+
149
+ ## License
150
+
151
+ DESDEO is licensed under the MIT license. For more information,
152
+ check the `LICENSE` file.
153
+
154
+ ## Citing DESDEO
155
+
156
+ To cite DESDEO, please include the following reference:
157
+
158
+ [Misitano, G., Saini, B. S., Afsar, B., Shavazipour, B., & Miettinen, K. (2021). DESDEO: The modular and open source framework for interactive multiobjective optimization. IEEE Access, 9, 148277-148295.](https://doi.org/10.1109/ACCESS.2021.3123825)
159
+
160
+ ```
161
+ @article{misitano2021desdeo,
162
+ title={DESDEO: The modular and open source framework for interactive multiobjective optimization},
163
+ author={Misitano, Giovanni and Saini, Bhupinder Singh and Afsar, Bekir and Shavazipour, Babooshka and Miettinen, Kaisa},
164
+ journal={IEEE Access},
165
+ volume={9},
166
+ pages={148277--148295},
167
+ year={2021},
168
+ publisher={IEEE}
169
+ }
170
+ ```
171
+
172
+ __Note__: A new article describing the latest iteration of the framework,
173
+ also known as _DESDEO 2.0_ is currently being prepared. The content of
174
+ this repository's master branch is considered to be _DESDEO 2.0_.
175
+
176
+ ## Funding
177
+
178
+ Currently, DESDEO's development is partly funded by two projects granted by the
179
+ [Research Council of Finland](https://www.aka.fi/en/). The most recent ones
180
+ include:
181
+
182
+ - DESIDES (project 355346)
183
+ - UTOPIA (project 352784)
184
+ - DAEMON (project 322221)
185
+
186
+
desdeo-2.1.0/README.md ADDED
@@ -0,0 +1,143 @@
1
+ # DESDEO: the open-source software framework for interactive multiobjective optimization
2
+
3
+ [![Discord](https://img.shields.io/discord/1382614276409266206?style=flat&label=Join%20our%20Discord&labelColor=%237289da)](https://discord.gg/uGCEgQTJyY) [![Documentation Status](https://img.shields.io/readthedocs/desdeo.svg?version=desdeo2&label=Documentation)](https://desdeo.readthedocs.io/en/latest/) ![Tests](https://img.shields.io/github/actions/workflow/status/industrial-optimization-group/DESDEO/unit_tests.yaml?branch=desdeo2&label=Tests)
4
+
5
+ ## Introduction
6
+
7
+ DESDEO is an open-source framework for interactive multiobjective optimization
8
+ methods. The framework contains implementations of both scalarization- and
9
+ population-based interactive methods. There are currently no other open-source
10
+ software frameworks that focus solely on the implementation of interactive
11
+ multiobjective optimization methods.
12
+
13
+ The mission of DESDEO is to increase awareness of the benefits of interactive
14
+ multiobjective optimization methods, make interactive methods openly available,
15
+ and to function as _the_ central hub for implementations of various interactive
16
+ methods. Apart from existing methods, DESDEO offers various tools to facilitate
17
+ the development of new methods and their application as well. Another important
18
+ goal of DESDEO is to answer the needs of decision makers and practitioners when
19
+ it comes to modeling and solving real-life multiobjective optimization problems.
20
+
21
+ In the bigger picture, DESDEO will be composed of three major components:
22
+
23
+ 1. The __core-logic__, which contains the algorithmic implementation of
24
+ interactive methods, various tools related to multiobjective optimization, and
25
+ means to model a variety of multiobjective optimization problems. The core-logic
26
+ can be considered stable enough for use in research and applications.
27
+ 2. The __web-API__ (WIP), which implements a web-based application programming
28
+ interface (API) to allow the use of the various functionalities found in
29
+ DESDEO's core-logic through a web connection. The web-API implements also a
30
+ database, which is a vital component for managing and enabling
31
+ decision-support using the framework. __The
32
+ web-API is currently under heavy development, and is subject to changes.__
33
+ 3. The __web-GUI__ (WIP), which implements a web-based interface for utilizing
34
+ the interactive methods and tools for modeling and solving multiobjective
35
+ optimization problems. __The web-GUI relies heavily on the web-API, and is also being actively developed currently, and therefore subject to sudden changes.__
36
+
37
+ For developing and experimenting with interactive multiobjective optimization
38
+ methods on a "grass root" level, the __core-logic__ provides the necessary
39
+ tools. For deploying interactive methods, the __web-API__ and the __web_GUI__
40
+ play a central role.
41
+
42
+ DESDEO is an open-source project and everybody is welcome to contribute!
43
+
44
+ ## Core-logic: key features
45
+
46
+ DESDEO's core-logic offers various features that can facilitate the application and
47
+ development of new interactive multiobjective optimization methods. Some
48
+ of the key features include, but are not limited to,
49
+
50
+ - A powerful, pydantic-based, schema for modeling multiobjective optimization
51
+ problem of various kinds. Including, analytically defined problems, data-based
52
+ problems, surrogate-based problems, and simulation-based problems.
53
+ Both continuous and (mixed-)integer problems are supported as well.
54
+ - Support to interface to many popular and powerful optimization software for
55
+ solving multiobjective optimization problems. Including Gurobi, various solvers
56
+ from the COIN-OR project, and nevergrad, for instance.
57
+ - A wide assortment of modular software components for implementing existing
58
+ and new interactive multiobjective optimization methods. For example, many
59
+ scalarization functions and evolutionary operators for multiobjective
60
+ optimization are available.
61
+ - An extensive documentation suitable for both newcomers to DESDEO and
62
+ interactive multiobjective optimization in general, and seasoned veterans.
63
+
64
+ ## Web-API: key features
65
+
66
+ DESDEO's web-API is currently under active development. Once it stabilized, its
67
+ key features will be listed here. In the meantime, the interested user can
68
+ follow (and contribute!) the development progress of the web-API in [this
69
+ issue](https://github.com/industrial-optimization-group/DESDEO/issues/245).
70
+
71
+ ## Web-GUI: key features
72
+
73
+ DESDEO's web-GUI is currently in a planning stage. Once its active development
74
+ starts, an issue will be created for documenting its development, as is
75
+ currently the case with the web-API.
76
+
77
+ ## Installation instructions
78
+
79
+ DESDEO is available on PyPI to be installed via pip:
80
+
81
+ ```bash
82
+ pip install desdeo
83
+ ```
84
+
85
+ However, some of DESDEO's features rely on 3rd party optimizers, which should be available on your system.
86
+ To read more on these, and on instructions on how to install the latest version of DESDEO directly from Github,
87
+ [check out the documentation](https://desdeo.readthedocs.io/en/latest/howtoguides/installing/).
88
+
89
+ ## Documentation
90
+
91
+ Care has been taken to make sure DESDEO is well documented, making it accessible
92
+ to both newcomers and seasoned users alike. [The documentation of DESDEO is
93
+ available online.](https://desdeo.readthedocs.io/en/latest/)
94
+
95
+ ## Contributing
96
+
97
+ As DESDEO is an open source-project, anybody is welcome to contribute.
98
+ An extensive tutorial to get started contributing to DESDEO
99
+ [is available in the documentation](https://desdeo.readthedocs.io/en/latest/tutorials/contributing/).
100
+ Be sure to check it out!
101
+
102
+ For additional support for contributing to DESDEO,
103
+ be sure to check out the DESDEO channels
104
+ in the MCDM Community's Discord server. You may join the server
105
+ [through this invite](https://discord.gg/TgSnUmzv5M).
106
+
107
+ ## License
108
+
109
+ DESDEO is licensed under the MIT license. For more information,
110
+ check the `LICENSE` file.
111
+
112
+ ## Citing DESDEO
113
+
114
+ To cite DESDEO, please include the following reference:
115
+
116
+ [Misitano, G., Saini, B. S., Afsar, B., Shavazipour, B., & Miettinen, K. (2021). DESDEO: The modular and open source framework for interactive multiobjective optimization. IEEE Access, 9, 148277-148295.](https://doi.org/10.1109/ACCESS.2021.3123825)
117
+
118
+ ```
119
+ @article{misitano2021desdeo,
120
+ title={DESDEO: The modular and open source framework for interactive multiobjective optimization},
121
+ author={Misitano, Giovanni and Saini, Bhupinder Singh and Afsar, Bekir and Shavazipour, Babooshka and Miettinen, Kaisa},
122
+ journal={IEEE Access},
123
+ volume={9},
124
+ pages={148277--148295},
125
+ year={2021},
126
+ publisher={IEEE}
127
+ }
128
+ ```
129
+
130
+ __Note__: A new article describing the latest iteration of the framework,
131
+ also known as _DESDEO 2.0_ is currently being prepared. The content of
132
+ this repository's master branch is considered to be _DESDEO 2.0_.
133
+
134
+ ## Funding
135
+
136
+ Currently, DESDEO's development is partly funded by two projects granted by the
137
+ [Research Council of Finland](https://www.aka.fi/en/). The most recent ones
138
+ include:
139
+
140
+ - DESIDES (project 355346)
141
+ - UTOPIA (project 352784)
142
+ - DAEMON (project 322221)
143
+
@@ -0,0 +1,9 @@
1
+ """Configuration stuff of the DESDEO framework."""
2
+
3
+ from desdeo.core import _check_executables
4
+
5
+ # List of required executables
6
+ required_executables = ["bonmin", "cbc", "ipopt"]
7
+
8
+ # Check for executables when the library is imported
9
+ _check_executables(required_executables)