evolib 0.2.0b4.dev8__tar.gz → 0.2.0b4.dev9__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.0b4.dev8/evolib.egg-info → evolib-0.2.0b4.dev9}/PKG-INFO +1 -1
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/config_guide.md +2 -2
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/config_parameter.md +4 -4
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/config/evonet_component_config.py +9 -5
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/config/vector_component_config.py +40 -9
- evolib-0.2.0b4.dev9/evolib/initializers/registry.py +112 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/interfaces/enums.py +1 -2
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9/evolib.egg-info}/PKG-INFO +1 -1
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/02_strategies/01_step_by_step_evolution.py +2 -2
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/05_advanced_topics/06_evolving_mutation_strength_as_a_module.py +1 -1
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/pyproject.toml +1 -1
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_config_loader.py +1 -1
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_evonet_neuron_dynamics.py +1 -1
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_initializer_evonet.py +2 -2
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_initializer_net.py +3 -3
- evolib-0.2.0b4.dev8/evolib/initializers/registry.py +0 -85
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/LICENSE +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/MANIFEST.in +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/README.md +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_core_individual.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_core_population.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_operators_crossover.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_operators_evonet_structural_mutation.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_operators_mutation.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_operators_replacement.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_operators_reproduction.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_operators_selection.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_operators_strategy.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_public_api.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_representation_evonet.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_representation_netvector.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_representation_vector.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_utils_benchmarks.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_utils_history_logger.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_utils_loss_functions.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/api_utils_plotting.rst +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/conf.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/getting_started.md +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/docs/index.md +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/api.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/config/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/config/base_component_config.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/config/component_registry.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/config/schema.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/core/README.md +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/core/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/core/individual.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/core/population.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/envs/gym_wrapper.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/globals/README.md +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/globals/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/globals/numeric.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/initializers/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/initializers/evonet_initializers.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/initializers/net_initializers.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/initializers/vector_initializers.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/interfaces/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/interfaces/enum_helpers.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/interfaces/structs.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/interfaces/types.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/io/checkpoint.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/io/serialization.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/README.md +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/crossover.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/evonet_structural_mutation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/heli.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/mutation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/replacement.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/reproduction.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/selection.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/operators/strategy.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/registry/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/registry/replacement_registry.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/registry/selection_registry.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/registry/strategy_registry.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/_apply_config_mapping.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/base.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/composite.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/dummy.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/evo_params.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/evonet.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/netvector.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/representation/vector.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/README.md +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/__init__.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/benchmarks.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/config_loader.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/fitness.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/heli_experiment_logger.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/heli_utils.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/history_logger.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/lineage_logger.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/loss_functions.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/parallel.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/plotting.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/random.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib/utils/registry.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib.egg-info/SOURCES.txt +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib.egg-info/dependency_links.txt +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib.egg-info/requires.txt +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/evolib.egg-info/top_level.txt +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/01_basic_usage/01_getting_started.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/01_basic_usage/02_mutation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/01_basic_usage/03_population_mutation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/01_basic_usage/04_fitness.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/02_strategies/02_mu_lambda_step.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/02_strategies/03_mu_lambda.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/02_strategies/04_flexible.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/01_history.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/02_plotting.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/03_compare_runs.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/04_exponential_decay_vs_static.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/05_adaptive_global_vs_static.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/06_adaptive_individual_vs_static.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/07_selection_comparison.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/08_selection_pressure.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/09_selection_vs_mutation_pressure.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/10_selection_stochastic_vs_deterministic.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/11_crossover_comparison.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/04_function_approximation/01_polynomial_sine.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/04_function_approximation/02_sine_point_approximation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/04_function_approximation/03_approximation_with_noise.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/05_advanced_topics/01_fitness_landscape_exploration.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/05_advanced_topics/02_rosenbrock_surface_path.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/05_advanced_topics/03_vector_control.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/05_advanced_topics/04_vector_control_with_obstacles.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/05_advanced_topics/05_piecewise_linear_xsys.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/06_netvector/01_netvector_sine_approximation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/06_netvector/02_netvector_modulated_output.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/06_netvector/03_netvector_gain_and_bias.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/01_sine_approximation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/02_sine_delay.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/03_delay_bitseq_echo.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/04_leaky_temporal_smoothing.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/05_image_approximation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/06_structural_xor.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/07_recurrent_bit_prediction.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/08_recurrent_timeseries.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/09_recurrent_trading.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/08_gym/01_frozen_lake.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/08_gym/02_cliff_walking.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/08_gym/03_cartpole.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/08_gym/04_lunar_lander.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/08_gym/05_bipedal_walker.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/09_meta_learning/01_lamarck_linear_mapping.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/09_meta_learning/02_meta_mapping_baldwin.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/setup.cfg +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_benchmarks.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_elitism_preserves_best_fitness.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_evonet_deepcopy.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_evonet_vector_io.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_mutation.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_population.py +0 -0
- {evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/tests/test_selection.py +0 -0
|
@@ -30,7 +30,7 @@ evolution:
|
|
|
30
30
|
modules:
|
|
31
31
|
test-vector: # logical module name
|
|
32
32
|
type: vector
|
|
33
|
-
initializer:
|
|
33
|
+
initializer: uniform
|
|
34
34
|
dim: 2
|
|
35
35
|
bounds: [-1.0, 1.0]
|
|
36
36
|
|
|
@@ -89,7 +89,7 @@ modules:
|
|
|
89
89
|
xs:
|
|
90
90
|
type: vector
|
|
91
91
|
dim: 6
|
|
92
|
-
initializer:
|
|
92
|
+
initializer: uniform
|
|
93
93
|
bounds: [0.0, 6.283185307] # [0, 2π]
|
|
94
94
|
mutation:
|
|
95
95
|
strategy: adaptive_individual
|
|
@@ -152,7 +152,7 @@ The `vector` module defines an evolvable parameter vector.
|
|
|
152
152
|
| `type` | `"vector"` | — | Module type identifier. |
|
|
153
153
|
| `dim` | `int \| list[int]` | — | Vector length (`int`) or structured dimensions (`list[int]`). Must be > 0. |
|
|
154
154
|
| `structure` | `"flat" \| "net" | `"flat"` | Structural interpretation of the vector. |
|
|
155
|
-
| `initializer` | `str` | — | Initializer name from the registry (e.g. `
|
|
155
|
+
| `initializer` | `str` | — | Initializer name from the registry (e.g. `uniform`, `zero`, `normal`, `fixed`). |
|
|
156
156
|
| `bounds` | `tuple[float, float]` | `[-1.0, 1.0]` | Hard clamp range applied after mutation. |
|
|
157
157
|
| `init_bounds` | `tuple[float, float] \| null` | `null` | Clamp applied only during initialization. Falls back to `bounds` if not set. |
|
|
158
158
|
| `shape` | `tuple[int, ...] \| null` | `null` | Optional explicit shape. If set, `dim = product(shape)`. Shape is retained as metadata. |
|
|
@@ -232,7 +232,7 @@ modules:
|
|
|
232
232
|
main:
|
|
233
233
|
type: vector
|
|
234
234
|
dim: 8
|
|
235
|
-
initializer:
|
|
235
|
+
initializer: uniform
|
|
236
236
|
bounds: [-1.0, 1.0]
|
|
237
237
|
|
|
238
238
|
mutation:
|
|
@@ -288,7 +288,7 @@ modules:
|
|
|
288
288
|
|-------------------|---------------------|---------|-------------|
|
|
289
289
|
| `dim` | list[int] | — | Layer sizes, e.g. `[4, 0, 0, 2]`. Hidden layers can start empty (0) and grow through structural mutation. |
|
|
290
290
|
| `activation` | str \| list[str] | — | If list: activation per layer. If str: used for non-input layers; input layer is treated as linear. |
|
|
291
|
-
| `initializer` | str |
|
|
291
|
+
| `initializer` | str | default | Topology preset (e.g. `default`, `unconnected`, `identity`). Parameter initialization is configured via `weights`, `bias`, and `delay`. |
|
|
292
292
|
| `weights` | dict | — | Weight init and bounds configuration (initializer, bounds, optional params). |
|
|
293
293
|
| `bias` | dict | — | Bias init and bounds configuration (initializer, bounds, optional params). |
|
|
294
294
|
| `neuron_dynamics` | list[dict] \| null | null | Optional per-layer neuron dynamics specification. Must match `len(dim)`. |
|
|
@@ -324,7 +324,7 @@ Allowed presets:
|
|
|
324
324
|
|
|
325
325
|
| Initializer | Meaning (topology only) |
|
|
326
326
|
|------------------------|-------------------------|
|
|
327
|
-
| `
|
|
327
|
+
| `default` | Standard EvoNet topology preset (uses `connection_scope`, `connection_density`, and `recurrent`). |
|
|
328
328
|
| `unconnected_evonet` | Creates neurons/layers but starts with **no connections** (use structural mutation to grow). |
|
|
329
329
|
| `identity_evonet` | Special preset intended for stable recurrent memory (may override parameters internally; see notes below). |
|
|
330
330
|
|
|
@@ -30,6 +30,7 @@ from evolib.config.base_component_config import (
|
|
|
30
30
|
EvoNetNeuronDynamicsConfig,
|
|
31
31
|
StructuralMutationConfig,
|
|
32
32
|
)
|
|
33
|
+
from evolib.interfaces.enums import RepresentationType
|
|
33
34
|
|
|
34
35
|
Bounds = Tuple[float, float]
|
|
35
36
|
|
|
@@ -208,7 +209,10 @@ class EvoNetComponentConfig(BaseModel):
|
|
|
208
209
|
model_config = ConfigDict(extra="forbid")
|
|
209
210
|
|
|
210
211
|
# Module type is fixed to "evonet"
|
|
211
|
-
type:
|
|
212
|
+
type: RepresentationType = Field(
|
|
213
|
+
default=RepresentationType.EVONET,
|
|
214
|
+
description='Fixed module discriminator; must be "evonet" for this schema.',
|
|
215
|
+
)
|
|
212
216
|
|
|
213
217
|
# Layer structure: list of neuron counts per layer [input, hidden..., output]
|
|
214
218
|
dim: list[int]
|
|
@@ -228,7 +232,7 @@ class EvoNetComponentConfig(BaseModel):
|
|
|
228
232
|
|
|
229
233
|
# Name of the initializer function (resolved via initializer registry)
|
|
230
234
|
initializer: str = Field(
|
|
231
|
-
default="
|
|
235
|
+
default="default", description="Name of the initializer to use"
|
|
232
236
|
)
|
|
233
237
|
|
|
234
238
|
# Connection topology for initialization
|
|
@@ -276,9 +280,9 @@ class EvoNetComponentConfig(BaseModel):
|
|
|
276
280
|
Parameter initialization is handled exclusively via weights/bias/delay blocks.
|
|
277
281
|
"""
|
|
278
282
|
allowed = {
|
|
279
|
-
"
|
|
280
|
-
"
|
|
281
|
-
"
|
|
283
|
+
"default",
|
|
284
|
+
"unconnected",
|
|
285
|
+
"identity",
|
|
282
286
|
}
|
|
283
287
|
|
|
284
288
|
if name not in allowed:
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
2
|
from typing import Any, Literal, Optional, Tuple, Union
|
|
3
3
|
|
|
4
|
-
from pydantic import
|
|
4
|
+
from pydantic import (
|
|
5
|
+
BaseModel,
|
|
6
|
+
ConfigDict,
|
|
7
|
+
Field,
|
|
8
|
+
ValidationInfo,
|
|
9
|
+
field_validator,
|
|
10
|
+
model_validator,
|
|
11
|
+
)
|
|
5
12
|
|
|
6
13
|
from evolib.config.base_component_config import CrossoverConfig, MutationConfig
|
|
7
14
|
from evolib.interfaces.enums import RepresentationType
|
|
@@ -21,7 +28,7 @@ class VectorComponentConfig(BaseModel):
|
|
|
21
28
|
type: vector
|
|
22
29
|
structure: flat # "flat" | "net"
|
|
23
30
|
dim: 16 # or a list for structured cases
|
|
24
|
-
initializer:
|
|
31
|
+
initializer: normal # name from the initializer registry
|
|
25
32
|
bounds: [-1.0, 1.0]
|
|
26
33
|
mutation:
|
|
27
34
|
strategy: constant
|
|
@@ -86,7 +93,7 @@ class VectorComponentConfig(BaseModel):
|
|
|
86
93
|
values: Optional[list[float]] = Field(
|
|
87
94
|
default=None,
|
|
88
95
|
description=(
|
|
89
|
-
"Explicit values for '
|
|
96
|
+
"Explicit values for 'fixed' initializer. If 'dim' is absent it "
|
|
90
97
|
"will be inferred from the length of 'values'."
|
|
91
98
|
),
|
|
92
99
|
)
|
|
@@ -102,7 +109,6 @@ class VectorComponentConfig(BaseModel):
|
|
|
102
109
|
|
|
103
110
|
# Evolution (mutation / crossover)
|
|
104
111
|
mutation: MutationConfig = Field(
|
|
105
|
-
default=None,
|
|
106
112
|
description=(
|
|
107
113
|
"Mutation configuration. By default, 'probability' is an element-wise rate "
|
|
108
114
|
"(per gene) in [0,1]; operators may optionally treat it as an apply gate."
|
|
@@ -143,18 +149,16 @@ class VectorComponentConfig(BaseModel):
|
|
|
143
149
|
@classmethod
|
|
144
150
|
def set_dim_for_fixed_vector(cls, config: dict[str, Any]) -> dict[str, Any]:
|
|
145
151
|
"""
|
|
146
|
-
If using '
|
|
152
|
+
If using 'fixed', ensure 'values' is provided and infer 'dim' if absent.
|
|
147
153
|
|
|
148
154
|
This keeps YAML concise and catches common mistakes early.
|
|
149
155
|
"""
|
|
150
156
|
initializer = config.get("initializer")
|
|
151
157
|
values = config.get("values")
|
|
152
158
|
|
|
153
|
-
if initializer == "
|
|
159
|
+
if initializer == "fixed":
|
|
154
160
|
if not values:
|
|
155
|
-
raise ValueError(
|
|
156
|
-
"When using 'fixed_vector', 'values' must be provided."
|
|
157
|
-
)
|
|
161
|
+
raise ValueError("When using 'fixed', 'values' must be provided.")
|
|
158
162
|
if "dim" not in config:
|
|
159
163
|
config["dim"] = len(values)
|
|
160
164
|
return config
|
|
@@ -181,3 +185,30 @@ class VectorComponentConfig(BaseModel):
|
|
|
181
185
|
else:
|
|
182
186
|
raise TypeError("dim must be an int or list of ints")
|
|
183
187
|
return dim
|
|
188
|
+
|
|
189
|
+
@field_validator("initializer")
|
|
190
|
+
@classmethod
|
|
191
|
+
def validate_initializer(cls, name: str, info: ValidationInfo) -> str:
|
|
192
|
+
"""Validate allowed initializer names and provide clear errors for deprecated
|
|
193
|
+
names."""
|
|
194
|
+
if not isinstance(name, str) or not name.strip():
|
|
195
|
+
raise ValueError("initializer must be a non-empty string")
|
|
196
|
+
|
|
197
|
+
name = name.strip()
|
|
198
|
+
|
|
199
|
+
allowed = {"normal", "uniform", "zero", "fixed", "adaptive"}
|
|
200
|
+
if name not in allowed:
|
|
201
|
+
raise ValueError(
|
|
202
|
+
f"Unknown initializer '{name}'. " f"Allowed: {sorted(allowed)}"
|
|
203
|
+
)
|
|
204
|
+
|
|
205
|
+
# structure-aware check (only if structure is available in the data)
|
|
206
|
+
data = info.data or {}
|
|
207
|
+
structure = data.get("structure") or "flat"
|
|
208
|
+
if structure == "net" and name != "normal":
|
|
209
|
+
raise ValueError(
|
|
210
|
+
"For structure='net', initializer must be 'normal' "
|
|
211
|
+
"(use initializer: normal and structure: net)."
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
return name
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from collections.abc import Callable
|
|
5
|
+
from typing import Any
|
|
6
|
+
|
|
7
|
+
from evolib.config.schema import FullConfig
|
|
8
|
+
|
|
9
|
+
# EvoNet presets
|
|
10
|
+
from evolib.initializers.evonet_initializers import (
|
|
11
|
+
initializer_default_evonet,
|
|
12
|
+
initializer_identity_evonet,
|
|
13
|
+
initializer_unconnected_evonet,
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
# NetVector initializer (Vector with structure='net')
|
|
17
|
+
from evolib.initializers.net_initializers import initializer_normal_net
|
|
18
|
+
|
|
19
|
+
# Vector initializers
|
|
20
|
+
from evolib.initializers.vector_initializers import (
|
|
21
|
+
initializer_adaptive_vector,
|
|
22
|
+
initializer_fixed_vector,
|
|
23
|
+
initializer_normal_vector,
|
|
24
|
+
initializer_random_vector,
|
|
25
|
+
initializer_zero_vector,
|
|
26
|
+
)
|
|
27
|
+
from evolib.interfaces.enums import RepresentationType
|
|
28
|
+
from evolib.interfaces.types import ModuleConfig
|
|
29
|
+
from evolib.representation.base import ParaBase
|
|
30
|
+
from evolib.representation.composite import ParaComposite
|
|
31
|
+
|
|
32
|
+
InitializerFunction = Callable[[FullConfig, str], ParaBase]
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _resolve_vector_initializer(name: str, *, structure: str) -> InitializerFunction:
|
|
36
|
+
"""
|
|
37
|
+
Resolve vector initializer by name and structure.
|
|
38
|
+
|
|
39
|
+
Design:
|
|
40
|
+
- 'structure: net' uses the NetVector-compatible initializer for 'normal'
|
|
41
|
+
- all other cases use vector initializers
|
|
42
|
+
"""
|
|
43
|
+
name = str(name)
|
|
44
|
+
structure = str(structure or "flat")
|
|
45
|
+
|
|
46
|
+
match name:
|
|
47
|
+
case "normal":
|
|
48
|
+
if structure == "net":
|
|
49
|
+
return initializer_normal_net
|
|
50
|
+
return initializer_normal_vector
|
|
51
|
+
case "uniform":
|
|
52
|
+
return initializer_random_vector
|
|
53
|
+
case "zero":
|
|
54
|
+
return initializer_zero_vector
|
|
55
|
+
case "fixed":
|
|
56
|
+
return initializer_fixed_vector
|
|
57
|
+
case "adaptive":
|
|
58
|
+
return initializer_adaptive_vector
|
|
59
|
+
case _:
|
|
60
|
+
raise ValueError(
|
|
61
|
+
f"Unknown vector initializer '{name}'. "
|
|
62
|
+
"Allowed: normal, uniform, zero, fixed, adaptive."
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def _resolve_evonet_initializer(name: str) -> InitializerFunction:
|
|
67
|
+
"""Resolve EvoNet topology presets via initializer name."""
|
|
68
|
+
name = str(name)
|
|
69
|
+
|
|
70
|
+
match name:
|
|
71
|
+
case "default":
|
|
72
|
+
return initializer_default_evonet
|
|
73
|
+
case "unconnected":
|
|
74
|
+
return initializer_unconnected_evonet
|
|
75
|
+
case "identity":
|
|
76
|
+
return initializer_identity_evonet
|
|
77
|
+
case _:
|
|
78
|
+
raise ValueError(
|
|
79
|
+
f"Unknown evonet initializer '{name}'. "
|
|
80
|
+
"Allowed: default, unconnected, identity."
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def resolve_initializer_fn(cfg: ModuleConfig) -> InitializerFunction:
|
|
85
|
+
"""Resolve initializer function based on module type."""
|
|
86
|
+
mod_type = getattr(cfg, "type", None)
|
|
87
|
+
init_name = getattr(cfg, "initializer", None)
|
|
88
|
+
if init_name is None:
|
|
89
|
+
raise ValueError("module.initializer must be set")
|
|
90
|
+
|
|
91
|
+
match mod_type:
|
|
92
|
+
case RepresentationType.VECTOR:
|
|
93
|
+
structure = getattr(cfg, "structure", "flat") or "flat"
|
|
94
|
+
return _resolve_vector_initializer(str(init_name), structure=str(structure))
|
|
95
|
+
case RepresentationType.EVONET:
|
|
96
|
+
return _resolve_evonet_initializer(str(init_name))
|
|
97
|
+
case _:
|
|
98
|
+
raise ValueError(f"Unsupported module type: {mod_type!r}")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def build_composite_initializer(config: FullConfig) -> Callable[[Any], ParaBase]:
|
|
102
|
+
"""Build a composite initializer used by Pop to create Para instances for each
|
|
103
|
+
module."""
|
|
104
|
+
|
|
105
|
+
def _init(_: Any) -> ParaBase:
|
|
106
|
+
modules: dict[str, ParaBase] = {}
|
|
107
|
+
for module_name, module_cfg in config.modules.items():
|
|
108
|
+
fn = resolve_initializer_fn(module_cfg)
|
|
109
|
+
modules[module_name] = fn(config, module_name)
|
|
110
|
+
return ParaComposite(modules)
|
|
111
|
+
|
|
112
|
+
return _init
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/02_strategies/01_step_by_step_evolution.py
RENAMED
|
@@ -39,7 +39,7 @@ import numpy as np
|
|
|
39
39
|
from evolib import Indiv, Pop, mse_loss, simple_quadratic
|
|
40
40
|
from evolib.operators.crossover import crossover_offspring
|
|
41
41
|
from evolib.operators.mutation import mutate_offspring
|
|
42
|
-
from evolib.operators.replacement import
|
|
42
|
+
from evolib.operators.replacement import replace_mu_plus_lambda
|
|
43
43
|
from evolib.operators.reproduction import generate_cloned_offspring
|
|
44
44
|
|
|
45
45
|
np.random.seed(42)
|
|
@@ -95,7 +95,7 @@ pop.evaluate_indivs(offspring)
|
|
|
95
95
|
print_indivs("5) Evaluate offspring: ", offspring)
|
|
96
96
|
|
|
97
97
|
# Step 6) Replacement (μ from parents + offspring)
|
|
98
|
-
|
|
98
|
+
replace_mu_plus_lambda(pop, pop.indivs + offspring)
|
|
99
99
|
print_indivs("6) Replacement: ", pop.indivs)
|
|
100
100
|
|
|
101
101
|
# Step 7) Stats / logging (increments generation)
|
|
@@ -71,7 +71,7 @@ def mu_plus_lambda_step(pop: Pop) -> None:
|
|
|
71
71
|
|
|
72
72
|
def run() -> None:
|
|
73
73
|
np.random.seed(42)
|
|
74
|
-
pop = Pop("
|
|
74
|
+
pop = Pop("06_evolving_mutation_strength_as_a_module.yaml", fitness_function=eval_fitness)
|
|
75
75
|
# initial eval
|
|
76
76
|
for ind in pop.indivs:
|
|
77
77
|
eval_fitness(ind)
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "evolib"
|
|
7
|
-
version = "0.2.0b4.
|
|
7
|
+
version = "0.2.0b4.dev9"
|
|
8
8
|
description = "A modular framework for evolutionary strategies and neuroevolution."
|
|
9
9
|
authors = [
|
|
10
10
|
{ name = "EvoLib", email = "evolib@dismail.de" }
|
|
@@ -47,7 +47,7 @@ def test_neuron_dynamics_applied_to_neurons() -> None:
|
|
|
47
47
|
"type": "evonet",
|
|
48
48
|
"dim": [1, 3, 1],
|
|
49
49
|
"activation": ["linear", "tanh", "tanh"],
|
|
50
|
-
"initializer": "
|
|
50
|
+
"initializer": "default",
|
|
51
51
|
"recurrent": "local",
|
|
52
52
|
"connection_scope": "adjacent",
|
|
53
53
|
"connection_density": 1.0,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from evolib.config.schema import FullConfig
|
|
2
|
-
from evolib.initializers.registry import
|
|
2
|
+
from evolib.initializers.registry import _resolve_evonet_initializer
|
|
3
3
|
from evolib.representation.evonet import EvoNet
|
|
4
4
|
|
|
5
5
|
|
|
@@ -34,7 +34,7 @@ def test_default_initializer_evonet_builds_expected_structure() -> None:
|
|
|
34
34
|
},
|
|
35
35
|
)
|
|
36
36
|
|
|
37
|
-
init_fn =
|
|
37
|
+
init_fn = _resolve_evonet_initializer("default")
|
|
38
38
|
para = init_fn(config, "brain")
|
|
39
39
|
assert isinstance(para, EvoNet)
|
|
40
40
|
net = para.net
|
|
@@ -3,7 +3,7 @@ from typing import cast
|
|
|
3
3
|
import numpy as np
|
|
4
4
|
|
|
5
5
|
from evolib.config.schema import FullConfig
|
|
6
|
-
from evolib.initializers.registry import
|
|
6
|
+
from evolib.initializers.registry import _resolve_vector_initializer
|
|
7
7
|
from evolib.representation.netvector import NetVector
|
|
8
8
|
from evolib.representation.vector import Vector
|
|
9
9
|
|
|
@@ -27,7 +27,7 @@ def test_normal_initializer_netvector_builds_expected_structure() -> None:
|
|
|
27
27
|
"structure": "net",
|
|
28
28
|
"dim": layer_dims,
|
|
29
29
|
"activation": activation,
|
|
30
|
-
"initializer": "
|
|
30
|
+
"initializer": "normal",
|
|
31
31
|
"bounds": (-1.0, 1.0),
|
|
32
32
|
"init_bounds": (-1.0, 1.0),
|
|
33
33
|
"mean": 0.0,
|
|
@@ -41,7 +41,7 @@ def test_normal_initializer_netvector_builds_expected_structure() -> None:
|
|
|
41
41
|
},
|
|
42
42
|
)
|
|
43
43
|
|
|
44
|
-
init_fn =
|
|
44
|
+
init_fn = _resolve_vector_initializer("normal", structure="net")
|
|
45
45
|
para = cast(Vector, init_fn(config, "brain"))
|
|
46
46
|
|
|
47
47
|
# Check shape and size
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
|
2
|
-
"""
|
|
3
|
-
Provides access to registered parameter initializers based on their name and
|
|
4
|
-
configuration.
|
|
5
|
-
|
|
6
|
-
This module dispatches initializer functions based on a string identifier
|
|
7
|
-
(e.g. "normal_initializer") and the associated module name within FullConfig.
|
|
8
|
-
|
|
9
|
-
Usage:
|
|
10
|
-
init_fn = get_initializer("ininitializer_normal_vector")
|
|
11
|
-
para = init_fn(config, module="brain")
|
|
12
|
-
"""
|
|
13
|
-
|
|
14
|
-
from typing import Any, Callable
|
|
15
|
-
|
|
16
|
-
from evolib.config.schema import FullConfig
|
|
17
|
-
|
|
18
|
-
# EvoNet-based initializer
|
|
19
|
-
from evolib.initializers.evonet_initializers import (
|
|
20
|
-
initializer_default_evonet,
|
|
21
|
-
initializer_identity_evonet,
|
|
22
|
-
initializer_unconnected_evonet,
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
# NetVector-based initializer
|
|
26
|
-
from evolib.initializers.net_initializers import initializer_normal_net
|
|
27
|
-
|
|
28
|
-
# Vector-based initializers
|
|
29
|
-
from evolib.initializers.vector_initializers import (
|
|
30
|
-
initializer_adaptive_vector,
|
|
31
|
-
initializer_fixed_vector,
|
|
32
|
-
initializer_normal_vector,
|
|
33
|
-
initializer_random_vector,
|
|
34
|
-
initializer_zero_vector,
|
|
35
|
-
)
|
|
36
|
-
from evolib.representation.base import ParaBase
|
|
37
|
-
from evolib.representation.composite import ParaComposite
|
|
38
|
-
|
|
39
|
-
# Typalias for initializer function
|
|
40
|
-
InitializerFunction = Callable[[FullConfig, str], ParaBase]
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
# Registry of known initializer functions
|
|
44
|
-
INITIALIZER_REGISTRY: dict[str, InitializerFunction] = {
|
|
45
|
-
"normal_vector": initializer_normal_vector,
|
|
46
|
-
"random_vector": initializer_random_vector,
|
|
47
|
-
"zero_vector": initializer_zero_vector,
|
|
48
|
-
"fixed_vector": initializer_fixed_vector,
|
|
49
|
-
"adaptive_vector": initializer_adaptive_vector,
|
|
50
|
-
"normal_net": initializer_normal_net,
|
|
51
|
-
"default_evonet": initializer_default_evonet,
|
|
52
|
-
"identity_evonet": initializer_identity_evonet,
|
|
53
|
-
"unconnected_evonet": initializer_unconnected_evonet,
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def get_initializer(name: str) -> InitializerFunction:
|
|
58
|
-
"""
|
|
59
|
-
Returns the initializer function for the given name.
|
|
60
|
-
|
|
61
|
-
Args:
|
|
62
|
-
name (str): Identifier of the initializer (must match registry)
|
|
63
|
-
|
|
64
|
-
Returns:
|
|
65
|
-
Callable[[FullConfig, str], ParaBase]: Initializer function
|
|
66
|
-
|
|
67
|
-
Raises:
|
|
68
|
-
ValueError: If the name is not registered
|
|
69
|
-
"""
|
|
70
|
-
if name not in INITIALIZER_REGISTRY:
|
|
71
|
-
raise ValueError(f"Unknown initializer: '{name}'")
|
|
72
|
-
|
|
73
|
-
return INITIALIZER_REGISTRY[name]
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
def build_composite_initializer(config: FullConfig) -> Callable[[Any], ParaComposite]:
|
|
77
|
-
def initializer(_: Any) -> ParaComposite:
|
|
78
|
-
return ParaComposite(
|
|
79
|
-
{
|
|
80
|
-
name: get_initializer(config.modules[name].initializer)(config, name)
|
|
81
|
-
for name in config.modules
|
|
82
|
-
}
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
return initializer
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/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
|
|
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
|
|
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
|
|
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.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/01_basic_usage/03_population_mutation.py
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
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/05_adaptive_global_vs_static.py
RENAMED
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/07_selection_comparison.py
RENAMED
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/08_selection_pressure.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/03_comparisons/11_crossover_comparison.py
RENAMED
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/04_function_approximation/01_polynomial_sine.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/05_advanced_topics/03_vector_control.py
RENAMED
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/05_advanced_topics/05_piecewise_linear_xsys.py
RENAMED
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/06_netvector/01_netvector_sine_approximation.py
RENAMED
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/06_netvector/02_netvector_modulated_output.py
RENAMED
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/06_netvector/03_netvector_gain_and_bias.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/04_leaky_temporal_smoothing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/07_evonet/07_recurrent_bit_prediction.py
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
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/09_meta_learning/01_lamarck_linear_mapping.py
RENAMED
|
File without changes
|
{evolib-0.2.0b4.dev8 → evolib-0.2.0b4.dev9}/examples/09_meta_learning/02_meta_mapping_baldwin.py
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
|