description.rst 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. Description
  2. =====================================
  3. .. image:: _static/logo_macop.png
  4. :width: 350 px
  5. :align: center
  6. Context
  7. ------------
  8. Based on its generic behaviour, each **Macop** algorithm runs can be represented as an interactive loop where you can interact with and specify your needs at each step:
  9. .. image:: _static/documentation/macop_behaviour.png
  10. :width: 450 px
  11. :align: center
  12. The package is strongly oriented on combinatorial optimisation (hence discrete optimisation) but it remains possible to extend for continuous optimisation.
  13. Motivation
  14. ~~~~~~~~~~
  15. Flexible discrete optimisation package allowing a quick implementation of your problems. In particular it meets the following needs:
  16. - **Common basis:** the interaction loop during the solution finding process proposed within the package is common to all heuristics. This allows the user to modify only a part of this interaction loop if necessary without rendering the process non-functional.
  17. - **Hierarchy:** a hierarchical algorithm management system is available, especially when an algorithm needs to manage local searches. This hierarchy remains transparent to the user. The main algorithm will be able to manage and control the process of searching for solutions.
  18. - **Flexibility:** although the algorithms are dependent on each other, it is possible that their internal management is different. This means that the ways in which solutions are evaluated and updated, for example, may be different.
  19. - **Abstraction:** thanks to the modular separability of the package, it is quickly possible to implement new problems, solutions representation, way to evaluate, update solutions within the package.
  20. - **Extensible:** the package is open to extension, i.e. it does not partition the user in these developer choices. It can just as well implement continuous optimization problems if needed while making use of the main interaction loop proposed by the package.
  21. - **Easy Setup:** as a pure Python package distributed is ``pip`` installable and easy to use.
  22. Target Audience
  23. ~~~~~~~~~~~~~~~
  24. This package would meet the expectations of people wishing to:
  25. - Solve a problem using an evolutionary algorithm but without developing their own frawmework. They can rely on what the package already proposes but also on its generic and flexible contribution in order to adapt their own content;
  26. - Conduct research work leading to the rapid modification of meta-heuristics and the interaction of different algorithms. More precisely:
  27. - test new combinations of algorithms. Changing algorithms during evaluations, e.g. different local searches;
  28. - provide reinforcement learning during searches (e.g. adaptive operator choice strategy).
  29. - test new multi-objective methods quickly thanks to the proposed algorithmic hierarchy allowing to easily decompose the multi-objective problem into single-objective sub-problems.
  30. - Take advantage of a system for launching calculations from a backup in order to avoid any loss in case of unwanted program interruption;
  31. - Quickly model a problem that is still unknown, i.e. the type of solution and the evaluation function, while taking advantage of the interaction loop proposed by the package.
  32. Installation
  33. ------------
  34. Just install package using `pip` Python package manager:
  35. .. code:: bash
  36. pip install macop