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.
- {evolib-0.2.0b2.dev1/evolib.egg-info → evolib-0.2.0b2.dev3}/PKG-INFO +1 -1
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/api.py +2 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/evonet_component_config.py +35 -1
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/population.py +14 -2
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/strategy.py +21 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/evonet.py +18 -6
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/plotting.py +109 -2
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3/evolib.egg-info}/PKG-INFO +1 -1
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib.egg-info/SOURCES.txt +1 -0
- evolib-0.2.0b2.dev3/examples/07_evonet/04_recurrent_bitseq.py +103 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/pyproject.toml +1 -1
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/LICENSE +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/MANIFEST.in +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/README.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_core_individual.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_core_population.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_crossover.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_evonet_structural_mutation.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_mutation.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_replacement.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_reproduction.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_selection.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_strategy.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_public_api.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_representation_evonet.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_representation_netvector.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_representation_vector.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_utils_benchmarks.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_utils_history_logger.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_utils_loss_functions.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_utils_plotting.rst +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/conf.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/config_guide.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/config_parameter.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/getting_started.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/index.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/PIL/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/annotated_types/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/asyncio/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/collections/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/concurrent/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/ctypes/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/cycler/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/email/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/config/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/registry/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/representation/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/html/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/importlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/jinja2/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/json/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/logging/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/common/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/helpers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/presets/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/rules_block/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/rules_core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/rules_inline/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/mdurl/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/os/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/packaging/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/_internal/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/deprecated/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/plugin/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic/v1/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pydantic_core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/rich/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/sys/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/typing_inspection/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/unittest/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/urllib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/xml/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/yaml/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/zipfile/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/zoneinfo/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/base_component_config.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/component_registry.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/schema.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/config/vector_component_config.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/PIL/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/asyncio/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/collections/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/concurrent/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/ctypes/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/cycler/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/email/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/html/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/importlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/jinja2/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/json/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/logging/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/os/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/packaging/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/sys/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/unittest/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/urllib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/xml/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/yaml/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/zipfile/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/.mypy_cache/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/README.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/core/individual.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/globals/README.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/globals/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/globals/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/globals/numeric.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/PIL/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/asyncio/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/collections/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/concurrent/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/ctypes/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/cycler/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/email/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/html/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/importlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/jinja2/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/json/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/logging/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/os/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/packaging/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/sys/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/unittest/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/urllib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/xml/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/yaml/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/zipfile/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/.mypy_cache/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/evonet_initializers.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/net_initializers.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/registry.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/initializers/vector_initializers.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/enums.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/structs.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/interfaces/types.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/io/checkpoint.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/io/serialization.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/README.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/crossover.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/evonet_structural_mutation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/mutation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/replacement.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/reproduction.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/operators/selection.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/replacement_registry.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/selection_registry.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/registry/strategy_registry.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/PIL/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/_typeshed/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/annotated_types/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/asyncio/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/collections/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/concurrent/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/concurrent/futures/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/ctypes/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/cycler/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/email/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/config/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/globals/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/initializers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/interfaces/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/operators/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/registry/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/representation/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/evolib/utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/html/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/importlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/importlib/metadata/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/importlib/resources/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/jinja2/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/json/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/logging/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/common/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/helpers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/presets/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_block/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markdown_it/rules_inline/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/markupsafe/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/_api/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/axes/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/backends/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/projections/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/style/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/matplotlib/tri/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/mdurl/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/multiprocessing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/_core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/_typing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/_utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/char/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/f2py/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/fft/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/lib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/linalg/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/ma/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/matrixlib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/polynomial/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/random/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/rec/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/strings/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/testing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/testing/_private/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/numpy/typing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/os/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/packaging/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/_internal/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/deprecated/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/plugin/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic/v1/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pydantic_core/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pyexpat/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pyparsing/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/pyparsing/diagram/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/rich/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/sys/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/typing_inspection/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/unittest/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/urllib/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/xml/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/xml/etree/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/xml/parsers/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/xml/parsers/expat/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/yaml/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/zipfile/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/zipfile/_path/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/3.12/zoneinfo/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/.mypy_cache/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/_apply_config_mapping.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/base.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/composite.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/evo_params.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/netvector.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/representation/vector.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/README.md +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/__pycache__/__init__.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/benchmarks.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/config_loader.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/copy_indiv.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/fitness.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/history_logger.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/loss_functions.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/random.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/utils/registry.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib.egg-info/dependency_links.txt +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib.egg-info/requires.txt +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib.egg-info/top_level.txt +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/01_basic_usage/01_getting_started.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/01_basic_usage/02_mutation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/01_basic_usage/03_population_mutation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/01_basic_usage/04_fitness.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/02_strategies/01_step_by_step_evolution.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/02_strategies/02_mu_lambda_step.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/02_strategies/03_mu_lambda.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/02_strategies/04_flexible.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/01_history.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/02_plotting.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/03_compare_runs.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/04_exponential_decay_vs_static.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/05_adaptive_global_vs_static.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/06_adaptive_individual_vs_static.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/07_selection_comparison.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/08_selection_pressure.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/09_selection_vs_mutation_pressure.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/10_selection_stochastic_vs_deterministic.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/03_comparisons/11_crossover_comparison.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/04_function_approximation/01_polynomial_sine.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/04_function_approximation/02_sine_point_approximation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/04_function_approximation/03_approximation_with_noise.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/01_fitness_landscape_exploration.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/02_rosenbrock_surface_path.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/03_vector_control.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/04_vector_control_with_obstacles.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/05_piecewise_linear_xsys.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/05_advanced_topics/06_evolving_mutation_strength_as_a_module.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/06_netvector/01_netvector_sine_approximation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/06_netvector/02_netvector_modulated_output.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/06_netvector/03_netvector_gain_and_bias.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/07_evonet/01_sine_approximation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/07_evonet/02_image_approximation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/07_evonet/03_structural_xor.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/examples/07_evonet/resize_all_images.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/setup.cfg +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_benchmarks.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_config_loader.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_elitism_preserves_best_fitness.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_evonet_vector_io.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_initializer_evonet.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_initializer_net.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_mutation.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_population.py +0 -0
- {evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/tests/test_selection.py +0 -0
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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,
|
|
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)
|
|
@@ -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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/docs/api_operators_evonet_structural_mutation.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/annotated_types/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/concurrent/futures/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/config/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/globals/__init__.py
RENAMED
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/initializers/__init__.py
RENAMED
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/interfaces/__init__.py
RENAMED
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/operators/__init__.py
RENAMED
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/registry/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/evolib/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/importlib/metadata/__init__.py
RENAMED
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/importlib/resources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/common/__init__.py
RENAMED
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/helpers/__init__.py
RENAMED
|
File without changes
|
{evolib-0.2.0b2.dev1 → evolib-0.2.0b2.dev3}/evolib/.mypy_cache/3.12/markdown_it/presets/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|