evolib 0.2.0b2.dev1__tar.gz → 0.2.0b2.dev3__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 (459) hide show
  1. {evolib-0.2.0b2.dev1/evolib.egg-info → evolib-0.2.0b2.dev3}/PKG-INFO +1 -1
  2. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/api.py +2 -0
  3. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/evonet_component_config.py +35 -1
  4. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/population.py +14 -2
  5. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/strategy.py +21 -0
  6. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/evonet.py +18 -6
  7. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/plotting.py +109 -2
  8. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3/evolib.egg-info}/PKG-INFO +1 -1
  9. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib.egg-info/SOURCES.txt +1 -0
  10. evolib-0.2.0b2.dev3/examples/07_evonet/04_recurrent_bitseq.py +103 -0
  11. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/pyproject.toml +1 -1
  12. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/LICENSE +0 -0
  13. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/MANIFEST.in +0 -0
  14. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/README.md +0 -0
  15. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_core_individual.rst +0 -0
  16. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_core_population.rst +0 -0
  17. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_crossover.rst +0 -0
  18. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_evonet_structural_mutation.rst +0 -0
  19. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_mutation.rst +0 -0
  20. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_replacement.rst +0 -0
  21. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_reproduction.rst +0 -0
  22. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_selection.rst +0 -0
  23. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_strategy.rst +0 -0
  24. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_public_api.rst +0 -0
  25. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_representation_evonet.rst +0 -0
  26. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_representation_netvector.rst +0 -0
  27. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_representation_vector.rst +0 -0
  28. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_utils_benchmarks.rst +0 -0
  29. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_utils_history_logger.rst +0 -0
  30. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_utils_loss_functions.rst +0 -0
  31. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_utils_plotting.rst +0 -0
  32. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/conf.py +0 -0
  33. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/config_guide.md +0 -0
  34. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/config_parameter.md +0 -0
  35. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/getting_started.md +0 -0
  36. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/index.md +0 -0
  37. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/PIL/__init__.py +0 -0
  38. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/__init__.py +0 -0
  39. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
  40. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/annotated_types/__init__.py +0 -0
  41. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/asyncio/__init__.py +0 -0
  42. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/collections/__init__.py +0 -0
  43. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/concurrent/__init__.py +0 -0
  44. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
  45. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/ctypes/__init__.py +0 -0
  46. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/cycler/__init__.py +0 -0
  47. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/email/__init__.py +0 -0
  48. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/__init__.py +0 -0
  49. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/config/__init__.py +0 -0
  50. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
  51. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
  52. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
  53. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
  54. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
  55. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/registry/__init__.py +0 -0
  56. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/representation/__init__.py +0 -0
  57. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
  58. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/html/__init__.py +0 -0
  59. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/importlib/__init__.py +0 -0
  60. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
  61. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
  62. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/jinja2/__init__.py +0 -0
  63. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/json/__init__.py +0 -0
  64. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/logging/__init__.py +0 -0
  65. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/__init__.py +0 -0
  66. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/common/__init__.py +0 -0
  67. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/helpers/__init__.py +0 -0
  68. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/presets/__init__.py +0 -0
  69. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/rules_block/__init__.py +0 -0
  70. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/rules_core/__init__.py +0 -0
  71. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/rules_inline/__init__.py +0 -0
  72. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
  73. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
  74. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
  75. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
  76. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
  77. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
  78. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
  79. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
  80. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/mdurl/__init__.py +0 -0
  81. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
  82. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/__init__.py +0 -0
  83. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
  84. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
  85. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
  86. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
  87. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
  88. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
  89. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
  90. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
  91. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
  92. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
  93. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
  94. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
  95. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
  96. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
  97. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
  98. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
  99. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
  100. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
  101. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/os/__init__.py +0 -0
  102. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/packaging/__init__.py +0 -0
  103. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/__init__.py +0 -0
  104. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/_internal/__init__.py +0 -0
  105. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/deprecated/__init__.py +0 -0
  106. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/plugin/__init__.py +0 -0
  107. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/v1/__init__.py +0 -0
  108. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic_core/__init__.py +0 -0
  109. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
  110. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
  111. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
  112. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/rich/__init__.py +0 -0
  113. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/sys/__init__.py +0 -0
  114. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/typing_inspection/__init__.py +0 -0
  115. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/unittest/__init__.py +0 -0
  116. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/urllib/__init__.py +0 -0
  117. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/xml/__init__.py +0 -0
  118. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
  119. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
  120. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
  121. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/yaml/__init__.py +0 -0
  122. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/zipfile/__init__.py +0 -0
  123. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
  124. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/zoneinfo/__init__.py +0 -0
  125. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/__init__.py +0 -0
  126. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/__init__.py +0 -0
  127. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/__pycache__/__init__.py +0 -0
  128. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/__init__.py +0 -0
  129. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/__pycache__/__init__.py +0 -0
  130. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/base_component_config.py +0 -0
  131. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/component_registry.py +0 -0
  132. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/schema.py +0 -0
  133. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/vector_component_config.py +0 -0
  134. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/PIL/__init__.py +0 -0
  135. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/__init__.py +0 -0
  136. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
  137. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/asyncio/__init__.py +0 -0
  138. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/collections/__init__.py +0 -0
  139. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/concurrent/__init__.py +0 -0
  140. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
  141. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/ctypes/__init__.py +0 -0
  142. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/cycler/__init__.py +0 -0
  143. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/email/__init__.py +0 -0
  144. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/__init__.py +0 -0
  145. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
  146. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
  147. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
  148. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
  149. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
  150. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/html/__init__.py +0 -0
  151. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/importlib/__init__.py +0 -0
  152. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
  153. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
  154. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/jinja2/__init__.py +0 -0
  155. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/json/__init__.py +0 -0
  156. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/logging/__init__.py +0 -0
  157. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
  158. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
  159. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
  160. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
  161. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
  162. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
  163. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
  164. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
  165. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
  166. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/__init__.py +0 -0
  167. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
  168. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
  169. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
  170. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
  171. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
  172. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
  173. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
  174. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
  175. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
  176. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
  177. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
  178. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
  179. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
  180. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
  181. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
  182. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
  183. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
  184. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
  185. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/os/__init__.py +0 -0
  186. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/packaging/__init__.py +0 -0
  187. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
  188. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
  189. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
  190. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/sys/__init__.py +0 -0
  191. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/unittest/__init__.py +0 -0
  192. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/urllib/__init__.py +0 -0
  193. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/xml/__init__.py +0 -0
  194. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
  195. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
  196. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
  197. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/yaml/__init__.py +0 -0
  198. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/zipfile/__init__.py +0 -0
  199. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
  200. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/__init__.py +0 -0
  201. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/README.md +0 -0
  202. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/__init__.py +0 -0
  203. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/__pycache__/__init__.py +0 -0
  204. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/individual.py +0 -0
  205. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/globals/README.md +0 -0
  206. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/globals/__init__.py +0 -0
  207. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/globals/__pycache__/__init__.py +0 -0
  208. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/globals/numeric.py +0 -0
  209. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/PIL/__init__.py +0 -0
  210. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/__init__.py +0 -0
  211. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
  212. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/asyncio/__init__.py +0 -0
  213. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/collections/__init__.py +0 -0
  214. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/concurrent/__init__.py +0 -0
  215. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
  216. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/ctypes/__init__.py +0 -0
  217. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/cycler/__init__.py +0 -0
  218. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/email/__init__.py +0 -0
  219. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/__init__.py +0 -0
  220. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
  221. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
  222. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
  223. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
  224. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
  225. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
  226. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/html/__init__.py +0 -0
  227. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/importlib/__init__.py +0 -0
  228. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
  229. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
  230. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/jinja2/__init__.py +0 -0
  231. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/json/__init__.py +0 -0
  232. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/logging/__init__.py +0 -0
  233. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
  234. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
  235. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
  236. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
  237. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
  238. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
  239. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
  240. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
  241. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
  242. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/__init__.py +0 -0
  243. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
  244. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
  245. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
  246. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
  247. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
  248. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
  249. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
  250. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
  251. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
  252. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
  253. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
  254. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
  255. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
  256. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
  257. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
  258. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
  259. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
  260. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
  261. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/os/__init__.py +0 -0
  262. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/packaging/__init__.py +0 -0
  263. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
  264. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
  265. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
  266. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/sys/__init__.py +0 -0
  267. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/unittest/__init__.py +0 -0
  268. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/urllib/__init__.py +0 -0
  269. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/xml/__init__.py +0 -0
  270. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
  271. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
  272. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
  273. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/yaml/__init__.py +0 -0
  274. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/zipfile/__init__.py +0 -0
  275. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
  276. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/__init__.py +0 -0
  277. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/__init__.py +0 -0
  278. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/__pycache__/__init__.py +0 -0
  279. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/evonet_initializers.py +0 -0
  280. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/net_initializers.py +0 -0
  281. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/registry.py +0 -0
  282. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/vector_initializers.py +0 -0
  283. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/__init__.py +0 -0
  284. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/__pycache__/__init__.py +0 -0
  285. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/enums.py +0 -0
  286. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/structs.py +0 -0
  287. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/types.py +0 -0
  288. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/io/checkpoint.py +0 -0
  289. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/io/serialization.py +0 -0
  290. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/README.md +0 -0
  291. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/__init__.py +0 -0
  292. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/__pycache__/__init__.py +0 -0
  293. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/crossover.py +0 -0
  294. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/evonet_structural_mutation.py +0 -0
  295. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/mutation.py +0 -0
  296. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/replacement.py +0 -0
  297. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/reproduction.py +0 -0
  298. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/selection.py +0 -0
  299. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/__init__.py +0 -0
  300. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/__pycache__/__init__.py +0 -0
  301. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/replacement_registry.py +0 -0
  302. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/selection_registry.py +0 -0
  303. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/strategy_registry.py +0 -0
  304. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/PIL/__init__.py +0 -0
  305. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/__init__.py +0 -0
  306. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
  307. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/annotated_types/__init__.py +0 -0
  308. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/asyncio/__init__.py +0 -0
  309. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/collections/__init__.py +0 -0
  310. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/concurrent/__init__.py +0 -0
  311. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
  312. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/ctypes/__init__.py +0 -0
  313. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/cycler/__init__.py +0 -0
  314. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/email/__init__.py +0 -0
  315. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/__init__.py +0 -0
  316. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/config/__init__.py +0 -0
  317. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
  318. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
  319. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
  320. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
  321. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
  322. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/registry/__init__.py +0 -0
  323. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/representation/__init__.py +0 -0
  324. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
  325. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/html/__init__.py +0 -0
  326. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/importlib/__init__.py +0 -0
  327. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
  328. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
  329. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/jinja2/__init__.py +0 -0
  330. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/json/__init__.py +0 -0
  331. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/logging/__init__.py +0 -0
  332. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/__init__.py +0 -0
  333. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/common/__init__.py +0 -0
  334. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/helpers/__init__.py +0 -0
  335. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/presets/__init__.py +0 -0
  336. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_block/__init__.py +0 -0
  337. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_core/__init__.py +0 -0
  338. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_inline/__init__.py +0 -0
  339. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
  340. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
  341. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
  342. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
  343. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
  344. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
  345. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
  346. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
  347. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/mdurl/__init__.py +0 -0
  348. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
  349. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/__init__.py +0 -0
  350. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
  351. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
  352. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
  353. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
  354. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
  355. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
  356. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
  357. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
  358. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
  359. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
  360. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
  361. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
  362. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
  363. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
  364. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
  365. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
  366. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
  367. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
  368. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/os/__init__.py +0 -0
  369. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/packaging/__init__.py +0 -0
  370. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/__init__.py +0 -0
  371. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/_internal/__init__.py +0 -0
  372. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/deprecated/__init__.py +0 -0
  373. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/plugin/__init__.py +0 -0
  374. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/v1/__init__.py +0 -0
  375. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic_core/__init__.py +0 -0
  376. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
  377. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
  378. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
  379. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/rich/__init__.py +0 -0
  380. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/sys/__init__.py +0 -0
  381. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/typing_inspection/__init__.py +0 -0
  382. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/unittest/__init__.py +0 -0
  383. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/urllib/__init__.py +0 -0
  384. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/xml/__init__.py +0 -0
  385. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
  386. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
  387. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
  388. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/yaml/__init__.py +0 -0
  389. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/zipfile/__init__.py +0 -0
  390. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
  391. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/zoneinfo/__init__.py +0 -0
  392. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/__init__.py +0 -0
  393. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/__init__.py +0 -0
  394. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/__pycache__/__init__.py +0 -0
  395. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/_apply_config_mapping.py +0 -0
  396. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/base.py +0 -0
  397. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/composite.py +0 -0
  398. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/evo_params.py +0 -0
  399. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/netvector.py +0 -0
  400. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/vector.py +0 -0
  401. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/README.md +0 -0
  402. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/__init__.py +0 -0
  403. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/__pycache__/__init__.py +0 -0
  404. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/benchmarks.py +0 -0
  405. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/config_loader.py +0 -0
  406. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/copy_indiv.py +0 -0
  407. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/fitness.py +0 -0
  408. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/history_logger.py +0 -0
  409. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/loss_functions.py +0 -0
  410. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/random.py +0 -0
  411. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/registry.py +0 -0
  412. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib.egg-info/dependency_links.txt +0 -0
  413. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib.egg-info/requires.txt +0 -0
  414. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib.egg-info/top_level.txt +0 -0
  415. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/01_basic_usage/01_getting_started.py +0 -0
  416. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/01_basic_usage/02_mutation.py +0 -0
  417. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/01_basic_usage/03_population_mutation.py +0 -0
  418. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/01_basic_usage/04_fitness.py +0 -0
  419. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/02_strategies/01_step_by_step_evolution.py +0 -0
  420. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/02_strategies/02_mu_lambda_step.py +0 -0
  421. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/02_strategies/03_mu_lambda.py +0 -0
  422. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/02_strategies/04_flexible.py +0 -0
  423. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/01_history.py +0 -0
  424. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/02_plotting.py +0 -0
  425. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/03_compare_runs.py +0 -0
  426. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/04_exponential_decay_vs_static.py +0 -0
  427. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/05_adaptive_global_vs_static.py +0 -0
  428. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/06_adaptive_individual_vs_static.py +0 -0
  429. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/07_selection_comparison.py +0 -0
  430. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/08_selection_pressure.py +0 -0
  431. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/09_selection_vs_mutation_pressure.py +0 -0
  432. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/10_selection_stochastic_vs_deterministic.py +0 -0
  433. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/11_crossover_comparison.py +0 -0
  434. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/04_function_approximation/01_polynomial_sine.py +0 -0
  435. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/04_function_approximation/02_sine_point_approximation.py +0 -0
  436. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/04_function_approximation/03_approximation_with_noise.py +0 -0
  437. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/01_fitness_landscape_exploration.py +0 -0
  438. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/02_rosenbrock_surface_path.py +0 -0
  439. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/03_vector_control.py +0 -0
  440. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/04_vector_control_with_obstacles.py +0 -0
  441. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/05_piecewise_linear_xsys.py +0 -0
  442. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/06_evolving_mutation_strength_as_a_module.py +0 -0
  443. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/06_netvector/01_netvector_sine_approximation.py +0 -0
  444. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/06_netvector/02_netvector_modulated_output.py +0 -0
  445. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/06_netvector/03_netvector_gain_and_bias.py +0 -0
  446. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/07_evonet/01_sine_approximation.py +0 -0
  447. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/07_evonet/02_image_approximation.py +0 -0
  448. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/07_evonet/03_structural_xor.py +0 -0
  449. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/07_evonet/resize_all_images.py +0 -0
  450. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/setup.cfg +0 -0
  451. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_benchmarks.py +0 -0
  452. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_config_loader.py +0 -0
  453. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_elitism_preserves_best_fitness.py +0 -0
  454. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_evonet_vector_io.py +0 -0
  455. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_initializer_evonet.py +0 -0
  456. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_initializer_net.py +0 -0
  457. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_mutation.py +0 -0
  458. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_population.py +0 -0
  459. {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_selection.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolib
3
- Version: 0.2.0b2.dev1
3
+ Version: 0.2.0b2.dev3
4
4
  Summary: A modular framework for evolutionary strategies and neuroevolution.
5
5
  Author-email: EvoLib <evolib@dismail.de>
6
6
  License: MIT License
@@ -42,6 +42,7 @@ from evolib.utils.loss_functions import (
42
42
  )
43
43
  from evolib.utils.plotting import (
44
44
  plot_approximation,
45
+ plot_bit_prediction,
45
46
  plot_diversity,
46
47
  plot_fitness,
47
48
  plot_fitness_comparison,
@@ -60,6 +61,7 @@ __all__ = [
60
61
  "plot_fitness",
61
62
  "plot_approximation",
62
63
  "save_combined_net_plot",
64
+ "plot_bit_prediction",
63
65
  "plot_history",
64
66
  "plot_diversity",
65
67
  "plot_mutation_trends",
@@ -13,7 +13,8 @@ config resolution.
13
13
 
14
14
  from typing import Literal, Optional, Tuple, Union
15
15
 
16
- from pydantic import BaseModel, Field, field_validator
16
+ from evonet.activation import ACTIVATIONS
17
+ from pydantic import BaseModel, Field, field_validator, validator
17
18
  from pydantic_core import core_schema
18
19
 
19
20
  from evolib.config.base_component_config import (
@@ -55,6 +56,16 @@ class EvoNetComponentConfig(BaseModel):
55
56
  # Either a single activation function or one per layer
56
57
  activation: Union[str, list[str]] = "tanh"
57
58
 
59
+ # Whitelist for random activation selection
60
+ activations_allowed: Optional[list[str]] = Field(
61
+ default=None,
62
+ description="Whitelist of activation names applied to "
63
+ "neurons in hidden layers.",
64
+ )
65
+
66
+ # Recurrent connections
67
+ recurrent: Optional[Literal["none", "direct", "local", "all"]] = "none"
68
+
58
69
  # Name of the initializer function (resolved via initializer registry)
59
70
  initializer: str = Field(..., description="Name of the initializer to use")
60
71
 
@@ -101,3 +112,26 @@ class EvoNetComponentConfig(BaseModel):
101
112
  if isinstance(act, list) and dim and len(act) != len(dim):
102
113
  raise ValueError("Length of 'activation' list must match 'dim'")
103
114
  return act
115
+
116
+ @validator("activations_allowed", each_item=True)
117
+ def validate_activation_name(cls, act_name: str) -> str:
118
+ """Ensure only valid activation function names are allowed."""
119
+ if act_name not in ACTIVATIONS:
120
+ raise ValueError(
121
+ f"Invalid activation function '{act_name}'. "
122
+ f"Valid options are: {list(ACTIVATIONS.keys())}"
123
+ )
124
+ return act_name
125
+
126
+ @validator("recurrent")
127
+ def validate_recurrent(cls, recurrent: Optional[str]) -> str:
128
+ """Ensure recurrent preset is valid and normalized."""
129
+ if recurrent is None:
130
+ return "none"
131
+ allowed = {"none", "direct", "local", "all"}
132
+ if recurrent not in allowed:
133
+ raise ValueError(
134
+ f"Invalid recurrent preset '{recurrent}'. "
135
+ f"Valid options are: {sorted(allowed)}"
136
+ )
137
+ return recurrent
@@ -442,8 +442,16 @@ class Pop:
442
442
  if indiv.age < self.max_indiv_age
443
443
  ]
444
444
 
445
+ if not survivors:
446
+ survivors = [self.best()]
447
+ print(
448
+ f"[Warning] All individuals exceeded max_age={self.max_indiv_age}. "
449
+ "Keeping best individual to prevent population collapse."
450
+ )
451
+
445
452
  removed_count = len(self.indivs) - len(survivors)
446
- self.indivs = survivors
453
+ if removed_count > 0:
454
+ self.indivs = survivors
447
455
 
448
456
  return removed_count
449
457
 
@@ -649,6 +657,10 @@ class Pop:
649
657
  if sort:
650
658
  self.sort_by_fitness()
651
659
 
660
+ def step(self) -> None:
661
+ """Alias for run_one_generation()."""
662
+ return self.run_one_generation()
663
+
652
664
  def run(
653
665
  self,
654
666
  *,
@@ -743,7 +755,7 @@ class Pop:
743
755
  on_generation_start(self)
744
756
 
745
757
  self.run_one_generation(strategy=strategy)
746
- self.print_status(verbosity=1 if verbosity >= 1 else 0)
758
+ self.print_status(verbosity)
747
759
 
748
760
  if on_generation_end:
749
761
  on_generation_end(self)
@@ -44,6 +44,9 @@ def evolve_mu_plus_lambda(pop: "Pop") -> None:
44
44
  if not pop.indivs:
45
45
  raise ValueError("Population is empty.")
46
46
 
47
+ # Age all current individuals
48
+ pop.age_indivs()
49
+
47
50
  # Update mutation/crossover parameters
48
51
  pop.update_parameters()
49
52
 
@@ -64,6 +67,9 @@ def evolve_mu_plus_lambda(pop: "Pop") -> None:
64
67
  # Select the best individuals
65
68
  replace_mu_lambda(pop, combined)
66
69
 
70
+ # Remove individuals that exceed max_age
71
+ pop.remove_old_indivs()
72
+
67
73
  pop.update_statistics()
68
74
 
69
75
 
@@ -79,6 +85,9 @@ def evolve_mu_comma_lambda(pop: "Pop") -> None:
79
85
  if not pop.indivs:
80
86
  raise ValueError("Population is empty.")
81
87
 
88
+ # Age all current individuals
89
+ pop.age_indivs()
90
+
82
91
  pop.evaluate_fitness()
83
92
 
84
93
  # Update mutation/crossover parameters
@@ -138,6 +147,9 @@ def evolve_steady_state(pop: "Pop") -> None:
138
147
  "to your YAML configuration."
139
148
  )
140
149
 
150
+ # Age all current individuals
151
+ pop.age_indivs()
152
+
141
153
  # Select parents (configurable)
142
154
  if (
143
155
  pop.config.selection is not None
@@ -166,6 +178,9 @@ def evolve_steady_state(pop: "Pop") -> None:
166
178
  # Replace worst individuals (excluding elites)
167
179
  replace_steady_state(pop, offspring, num_replace=pop.lambda_)
168
180
 
181
+ # Remove individuals that exceed max_age
182
+ pop.remove_old_indivs()
183
+
169
184
  # Update population statistics (including aging, diversity, fitness metrics)
170
185
  pop.update_statistics()
171
186
 
@@ -192,6 +207,9 @@ def evolve_flexible(pop: "Pop") -> None:
192
207
  if pop._replacement_fn is None:
193
208
  raise ValueError("Replacement function not configured.")
194
209
 
210
+ # Age all current individuals
211
+ pop.age_indivs()
212
+
195
213
  # Fitness
196
214
  pop.evaluate_fitness()
197
215
 
@@ -223,5 +241,8 @@ def evolve_flexible(pop: "Pop") -> None:
223
241
  # Replacement (via configured strategy)
224
242
  pop._replacement_fn(pop, offspring)
225
243
 
244
+ # Remove individuals that exceed max_age
245
+ pop.remove_old_indivs()
246
+
226
247
  # Update statistics
227
248
  pop.update_statistics()
@@ -19,7 +19,10 @@ from evolib.config.base_component_config import StructuralMutationConfig
19
19
  from evolib.config.evonet_component_config import EvoNetComponentConfig
20
20
  from evolib.interfaces.enums import MutationStrategy
21
21
  from evolib.interfaces.types import ModuleConfig
22
- from evolib.operators.evonet_structural_mutation import mutate_structure
22
+ from evolib.operators.evonet_structural_mutation import (
23
+ mutate_structure,
24
+ resolve_recurrent_kinds,
25
+ )
23
26
  from evolib.operators.mutation import (
24
27
  adapt_mutation_probability_by_diversity,
25
28
  adapt_mutation_strength,
@@ -111,6 +114,7 @@ class EvoNet(ParaBase):
111
114
  # Apply crossover config
112
115
  apply_crossover_config(evo_params, cfg.crossover)
113
116
 
117
+ # Activation functions per layer
114
118
  if isinstance(cfg.activation, list):
115
119
  activations = cfg.activation
116
120
  else:
@@ -119,11 +123,16 @@ class EvoNet(ParaBase):
119
123
  activations = ["linear"] + [cfg.activation] * (len(cfg.dim) - 1)
120
124
 
121
125
  for layer_idx, num_neurons in enumerate(self.dim):
126
+ if num_neurons == 0:
127
+ continue
122
128
 
123
129
  activation_name = activations[layer_idx]
124
130
 
125
131
  if activation_name == "random":
126
- activation_name = random_function_name()
132
+ if cfg.activations_allowed is not None:
133
+ activation_name = random_function_name(cfg.activations_allowed)
134
+ else:
135
+ activation_name = random_function_name()
127
136
 
128
137
  self.net.add_layer()
129
138
 
@@ -137,10 +146,13 @@ class EvoNet(ParaBase):
137
146
  # Hidden Layer
138
147
  role = NeuronRole.HIDDEN
139
148
 
140
- if num_neurons > 0:
141
- self.net.add_neuron(
142
- count=num_neurons, activation=activation_name, role=role
143
- )
149
+ recurrent_kinds = resolve_recurrent_kinds(cfg.recurrent)
150
+ self.net.add_neuron(
151
+ count=num_neurons,
152
+ activation=activation_name,
153
+ role=role,
154
+ recurrent=recurrent_kinds if role != NeuronRole.INPUT else None,
155
+ )
144
156
 
145
157
  def calc(self, input_values: list[float]) -> list[float]:
146
158
  return self.net.calc(input_values)
@@ -277,6 +277,10 @@ def plot_approximation(
277
277
  true_label: str = "Target",
278
278
  pred_marker: str | None = None,
279
279
  true_marker: str | None = None,
280
+ pred_lw: int = 2,
281
+ true_lw: int = 2,
282
+ pred_ls: str = "--",
283
+ true_ls: str = "-",
280
284
  x_vals: Sequence[float] | np.ndarray | None = None,
281
285
  y_limits: tuple[float, float] | None = None,
282
286
  dpi: int = 150,
@@ -377,9 +381,23 @@ def plot_approximation(
377
381
  ax.set_xlabel(xlabel)
378
382
  ax.set_ylabel(ylabel)
379
383
 
380
- ax.plot(x_vals, y_true, color="black", label=true_label, marker=true_marker, lw=2)
381
384
  ax.plot(
382
- x_vals, y_pred, color="red", label=pred_label, marker=pred_marker, lw=2, ls="--"
385
+ x_vals,
386
+ y_true,
387
+ color="black",
388
+ label=true_label,
389
+ marker=true_marker,
390
+ lw=true_lw,
391
+ ls=true_ls,
392
+ )
393
+ ax.plot(
394
+ x_vals,
395
+ y_pred,
396
+ color="red",
397
+ label=pred_label,
398
+ marker=pred_marker,
399
+ lw=pred_lw,
400
+ ls=pred_ls,
383
401
  )
384
402
 
385
403
  if support_points is not None:
@@ -535,6 +553,95 @@ def save_combined_net_plot(
535
553
  combined.save(path)
536
554
 
537
555
 
556
+ def plot_bit_prediction(
557
+ pred_values: list[int],
558
+ true_bits: list[int],
559
+ save_path: str,
560
+ input_bits: list[int] | None = None,
561
+ title: str = "Bit Prediction",
562
+ show: bool = False,
563
+ dpi: int = 150,
564
+ ) -> None:
565
+ """
566
+ Visualize bit sequence prediction over time.
567
+
568
+ This plot combines two views:
569
+ - A raster plot (top) showing discrete input/target/predicted bits
570
+ - A line/scatter plot (bottom) showing target vs. predicted values
571
+
572
+ Parameters
573
+ ----------
574
+ true_bits : list[int]
575
+ Ground truth sequence of bits (0/1).
576
+ pred_values : list[float]
577
+ Predicted values (will be shown as continuous in line plot,
578
+ and rounded to 0/1 in raster plot).
579
+ input_bits : list[int], optional
580
+ Optional input sequence of bits (0/1). If given, it is shown
581
+ in the raster plot above target and prediction.
582
+ save_path : str
583
+ File path to save the plot image.
584
+ title : str, optional
585
+ Title of the figure. Default is "Bit Prediction".
586
+ show : bool, optional
587
+ If True, show the plot window interactively. Default: False.
588
+ dpi : int, optional
589
+ Resolution for saving the figure.
590
+
591
+ Notes
592
+ -----
593
+ - This function is specialized for visualization of
594
+ bit prediction tasks. For general regression or function
595
+ approximation, use `plot_approximation`.
596
+ """
597
+ pred_round = np.rint(pred_values).astype(int)
598
+
599
+ # build raster data
600
+ rows = []
601
+ row_labels = []
602
+ if input_bits is not None:
603
+ rows.append(np.asarray(input_bits, dtype=int))
604
+ row_labels.append("Input")
605
+ # if true_bits is not None:
606
+ # rows.append(np.asarray(true_bits, dtype=int))
607
+ # row_labels.append("Target")
608
+ rows.append(pred_round)
609
+ row_labels.append("Pred")
610
+
611
+ # encode to 4-class grid: (row, value)
612
+ grid = np.vstack(rows)
613
+
614
+ # plotting
615
+ fig, axes = plt.subplots(2, 1, figsize=(10, 6), constrained_layout=True)
616
+
617
+ # raster view
618
+ axes[0].imshow(grid, aspect="auto", interpolation="nearest", cmap="Greys")
619
+ axes[0].set_yticks(range(len(row_labels)))
620
+ axes[0].set_yticklabels(row_labels)
621
+ axes[0].set_xticks([])
622
+ axes[0].set_title(title)
623
+
624
+ # line/scatter view
625
+ x = np.arange(len(true_bits))
626
+ axes[1].plot(x, true_bits, "ko", label="Target", markersize=4)
627
+ axes[1].plot(x, pred_values, "r-", label="Prediction", alpha=0.7)
628
+ axes[1].set_xlim(0, len(true_bits))
629
+
630
+ axes[1].set_ylim(-0.2, 1.2)
631
+ axes[1].set_xlabel("Time step")
632
+ axes[1].set_ylabel("Value")
633
+ axes[1].legend(loc="upper right")
634
+
635
+ # save/show
636
+ if save_path:
637
+ os.makedirs(os.path.dirname(save_path), exist_ok=True)
638
+ plt.savefig(save_path, dpi=dpi)
639
+
640
+ if show:
641
+ plt.show()
642
+ plt.close()
643
+
644
+
538
645
  def save_current_plot(filename: str, dpi: int = 300) -> None:
539
646
  """Save the current matplotlib figure to file."""
540
647
  plt.savefig(filename, dpi=dpi)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: evolib
3
- Version: 0.2.0b2.dev1
3
+ Version: 0.2.0b2.dev3
4
4
  Summary: A modular framework for evolutionary strategies and neuroevolution.
5
5
  Author-email: EvoLib <evolib@dismail.de>
6
6
  License: MIT License
@@ -445,6 +445,7 @@ examples/06_netvector/03_netvector_gain_and_bias.py
445
445
  examples/07_evonet/01_sine_approximation.py
446
446
  examples/07_evonet/02_image_approximation.py
447
447
  examples/07_evonet/03_structural_xor.py
448
+ examples/07_evonet/04_recurrent_bitseq.py
448
449
  examples/07_evonet/resize_all_images.py
449
450
  tests/test_benchmarks.py
450
451
  tests/test_config_loader.py
@@ -0,0 +1,103 @@
1
+ """
2
+ Example: Recurrent Bit Sequence Prediction
3
+
4
+ This example demonstrates how an EvoNet with recurrent connections
5
+ can be evolved to predict the next bit in a fixed binary sequence.
6
+ A warm-up phase is used to let the network state settle before
7
+ fitness is measured. Visualization combines a raster plot of
8
+ input/target/prediction bits with a line plot of prediction quality.
9
+ """
10
+
11
+ from evolib import Population, Individual, plot_bit_prediction
12
+ from evolib.representation.evonet import EvoNet
13
+
14
+ FRAME_FOLDER = "04_frames"
15
+ CONFIG_FILE = "configs/04_recurrent_bitseq.yaml"
16
+
17
+ #input_seq = [0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1] * 4
18
+ #target_seq = [1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0] * 4
19
+
20
+ def lfsr_sequence(length: int, seed: int = 0b10011, taps=(5, 2)) -> list[int]:
21
+ """
22
+ Generate a binary sequence using an n-bit LFSR.
23
+
24
+ Parameters
25
+ ----------
26
+ length : int
27
+ Number of output bits to generate.
28
+ seed : int, optional
29
+ Initial state (must be non-zero). Default: 0b10011.
30
+ taps : tuple[int], optional
31
+ Tap positions (1-based, e.g. (5, 2) for x^5 + x^2 + 1).
32
+
33
+ Returns
34
+ -------
35
+ list[int]
36
+ Generated bit sequence.
37
+ """
38
+ n = max(taps)
39
+ if seed == 0:
40
+ raise ValueError("Seed must be non-zero for LFSR.")
41
+ state = seed & ((1 << n) - 1)
42
+
43
+ seq = []
44
+ for _ in range(length):
45
+ bit = state & 1
46
+ seq.append(bit)
47
+ # compute feedback from taps
48
+ fb = 0
49
+ for t in taps:
50
+ fb ^= (state >> (t - 1)) & 1
51
+ state = (state >> 1) | (fb << (n - 1))
52
+ return seq
53
+
54
+
55
+ input_seq = lfsr_sequence(44)
56
+ target_seq = input_seq[1:] + [input_seq[0]] # nächstes Bit als Ziel
57
+ warmup_steps = 5
58
+
59
+
60
+ def fitness_bitseq(indiv: Individual) -> float:
61
+ """
62
+ Evaluate how well the EvoNet predicts the next bit in a fixed sequence.
63
+ Errors from the first `warmup_steps` are ignored to allow network state to settle.
64
+ """
65
+ net: EvoNet = indiv.para["brain"].net
66
+ net.reset(full=True)
67
+
68
+ total_error = 0.0
69
+ for t in range(len(input_seq)):
70
+ output = net.calc([input_seq[t]])[0]
71
+ if t >= warmup_steps:
72
+ error = output - target_seq[t]
73
+ total_error += error**2
74
+
75
+ return total_error / (len(input_seq) - warmup_steps)
76
+
77
+
78
+ def save_plot(pop: Population) -> None:
79
+ """
80
+ Save visualization of the best individual's predictions
81
+ at the current generation.
82
+ """
83
+ best = pop.best()
84
+ y_preds = [best.para["brain"].net.calc([bit])[0] for bit in input_seq]
85
+
86
+ plot_bit_prediction(
87
+ true_bits=target_seq,
88
+ pred_values=y_preds,
89
+ input_bits=input_seq,
90
+ title=f"Bit Prediction (gen={pop.generation_num}, MSE={best.fitness:.4f})",
91
+ save_path=f"{FRAME_FOLDER}/gen_{pop.generation_num:03d}.png",
92
+ )
93
+
94
+ best.para["brain"].net.print_graph("test.png",fillcolors_on=True)
95
+
96
+
97
+ if __name__ == "__main__":
98
+ pop = Population(CONFIG_FILE, fitness_function=fitness_bitseq)
99
+ pop.run(verbosity=1, on_generation_end=save_plot)
100
+
101
+ best = pop.best()
102
+ best.para["brain"].net.print_graph("test.png",fillcolors_on=True)
103
+
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "evolib"
7
- version = "0.2.0b2.dev1"
7
+ version = "0.2.0b2.dev3"
8
8
  description = "A modular framework for evolutionary strategies and neuroevolution."
9
9
  authors = [
10
10
  { name = "EvoLib", email = "evolib@dismail.de" }
File without changes
File without changes
File without changes