├── .gitignore ├── LICENSE ├── README.md ├── optimization_tutorial ├── __init__.py ├── _images │ └── optimizer_table.png ├── app.py ├── optimizers │ ├── __init__.py │ ├── bayesian_optimization │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── bayesian_optimization_0.gif │ │ │ ├── bayesian_optimization_1.gif │ │ │ ├── bayesian_optimization_2.gif │ │ │ ├── bayesian_optimization_3.gif │ │ │ ├── bayesian_optimization_4.gif │ │ │ ├── bayesian_optimization_5.gif │ │ │ ├── xi_0.gif │ │ │ ├── xi_1.gif │ │ │ ├── xi_2.gif │ │ │ ├── xi_3.gif │ │ │ ├── xi_4.gif │ │ │ └── xi_5.gif │ │ └── bayesian_optimization_app.py │ ├── downhill_simplex │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── alpha_0.gif │ │ │ ├── alpha_1.gif │ │ │ ├── alpha_2.gif │ │ │ ├── alpha_3.gif │ │ │ ├── alpha_4.gif │ │ │ ├── alpha_5.gif │ │ │ ├── beta_0.gif │ │ │ ├── beta_1.gif │ │ │ ├── beta_2.gif │ │ │ ├── beta_3.gif │ │ │ ├── beta_4.gif │ │ │ ├── beta_5.gif │ │ │ ├── downhill_simplex_0.gif │ │ │ ├── downhill_simplex_1.gif │ │ │ ├── downhill_simplex_2.gif │ │ │ ├── downhill_simplex_3.gif │ │ │ ├── downhill_simplex_4.gif │ │ │ ├── downhill_simplex_5.gif │ │ │ ├── gamma_0.gif │ │ │ ├── gamma_1.gif │ │ │ ├── gamma_2.gif │ │ │ ├── gamma_3.gif │ │ │ ├── gamma_4.gif │ │ │ ├── gamma_5.gif │ │ │ ├── sigma_0.gif │ │ │ ├── sigma_1.gif │ │ │ ├── sigma_2.gif │ │ │ ├── sigma_3.gif │ │ │ ├── sigma_4.gif │ │ │ └── sigma_5.gif │ │ └── downhill_simplex_app.py │ ├── evolution_strategy │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── crossover_rate_0.gif │ │ │ ├── crossover_rate_1.gif │ │ │ ├── crossover_rate_2.gif │ │ │ ├── crossover_rate_3.gif │ │ │ ├── crossover_rate_4.gif │ │ │ ├── crossover_rate_5.gif │ │ │ ├── evolution_strategy_0.gif │ │ │ ├── evolution_strategy_1.gif │ │ │ ├── evolution_strategy_2.gif │ │ │ ├── evolution_strategy_3.gif │ │ │ ├── evolution_strategy_4.gif │ │ │ ├── evolution_strategy_5.gif │ │ │ ├── mutation_rate_0.gif │ │ │ ├── mutation_rate_1.gif │ │ │ ├── mutation_rate_2.gif │ │ │ ├── mutation_rate_3.gif │ │ │ ├── mutation_rate_4.gif │ │ │ ├── mutation_rate_5.gif │ │ │ ├── population_0.gif │ │ │ ├── population_1.gif │ │ │ ├── population_2.gif │ │ │ ├── population_3.gif │ │ │ ├── population_4.gif │ │ │ └── population_5.gif │ │ └── evolution_strategy_app.py │ ├── forest_optimization │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── forest_optimization_0.gif │ │ │ ├── forest_optimization_1.gif │ │ │ ├── forest_optimization_2.gif │ │ │ ├── forest_optimization_3.gif │ │ │ ├── forest_optimization_4.gif │ │ │ ├── forest_optimization_5.gif │ │ │ ├── xi_0.gif │ │ │ ├── xi_1.gif │ │ │ ├── xi_2.gif │ │ │ ├── xi_3.gif │ │ │ ├── xi_4.gif │ │ │ └── xi_5.gif │ │ └── forest_optimization_app.py │ ├── generate_basic_gifs.py │ ├── grid_search │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── grid_search_0.gif │ │ │ ├── grid_search_1.gif │ │ │ ├── grid_search_2.gif │ │ │ ├── grid_search_3.gif │ │ │ ├── grid_search_4.gif │ │ │ ├── grid_search_5.gif │ │ │ ├── step_size_0.gif │ │ │ ├── step_size_1.gif │ │ │ ├── step_size_2.gif │ │ │ ├── step_size_3.gif │ │ │ ├── step_size_4.gif │ │ │ └── step_size_5.gif │ │ └── grid_search_app.py │ ├── hill_climbing │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── distribution_0.gif │ │ │ ├── distribution_1.gif │ │ │ ├── distribution_2.gif │ │ │ ├── distribution_3.gif │ │ │ ├── distribution_4.gif │ │ │ ├── distribution_5.gif │ │ │ ├── epsilon_0.gif │ │ │ ├── epsilon_1.gif │ │ │ ├── epsilon_2.gif │ │ │ ├── epsilon_3.gif │ │ │ ├── epsilon_4.gif │ │ │ ├── epsilon_5.gif │ │ │ ├── hill_climbing_0.gif │ │ │ ├── hill_climbing_1.gif │ │ │ ├── hill_climbing_2.gif │ │ │ ├── hill_climbing_3.gif │ │ │ ├── hill_climbing_4.gif │ │ │ ├── hill_climbing_5.gif │ │ │ ├── hill_climbing_distribution_0.gif │ │ │ ├── hill_climbing_distribution_1.gif │ │ │ ├── hill_climbing_distribution_10.gif │ │ │ ├── hill_climbing_distribution_11.gif │ │ │ ├── hill_climbing_distribution_12.gif │ │ │ ├── hill_climbing_distribution_13.gif │ │ │ ├── hill_climbing_distribution_2.gif │ │ │ ├── hill_climbing_distribution_3.gif │ │ │ ├── hill_climbing_epsilon_0.gif │ │ │ ├── hill_climbing_epsilon_1.gif │ │ │ ├── hill_climbing_epsilon_10.gif │ │ │ ├── hill_climbing_epsilon_11.gif │ │ │ ├── hill_climbing_epsilon_12.gif │ │ │ ├── hill_climbing_epsilon_2.gif │ │ │ ├── hill_climbing_n_neighbours_0.gif │ │ │ ├── hill_climbing_n_neighbours_1.gif │ │ │ ├── hill_climbing_n_neighbours_10.gif │ │ │ ├── hill_climbing_n_neighbours_11.gif │ │ │ ├── hill_climbing_n_neighbours_12.gif │ │ │ ├── hill_climbing_n_neighbours_2.gif │ │ │ ├── n_neighbours_0.gif │ │ │ ├── n_neighbours_1.gif │ │ │ ├── n_neighbours_2.gif │ │ │ ├── n_neighbours_3.gif │ │ │ ├── n_neighbours_4.gif │ │ │ └── n_neighbours_5.gif │ │ └── hill_climbing_app.py │ ├── optimizer_template.py │ ├── overview_parameters_template.py │ ├── parallel_random_annealing │ │ ├── _images │ │ │ ├── parallel_random_annealing_0.gif │ │ │ ├── parallel_random_annealing_1.gif │ │ │ ├── parallel_random_annealing_2.gif │ │ │ ├── parallel_random_annealing_3.gif │ │ │ ├── parallel_random_annealing_4.gif │ │ │ └── parallel_random_annealing_5.gif │ │ └── parallel_random_annealing_app.py │ ├── parallel_tempering │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── n_iter_swap_0.gif │ │ │ ├── n_iter_swap_1.gif │ │ │ ├── n_iter_swap_2.gif │ │ │ ├── n_iter_swap_3.gif │ │ │ ├── n_iter_swap_4.gif │ │ │ ├── n_iter_swap_5.gif │ │ │ ├── parallel_tempering_0.gif │ │ │ ├── parallel_tempering_1.gif │ │ │ ├── parallel_tempering_2.gif │ │ │ ├── parallel_tempering_3.gif │ │ │ ├── parallel_tempering_4.gif │ │ │ ├── parallel_tempering_5.gif │ │ │ ├── population_0.gif │ │ │ ├── population_1.gif │ │ │ ├── population_2.gif │ │ │ ├── population_3.gif │ │ │ ├── population_4.gif │ │ │ └── population_5.gif │ │ └── parallel_tempering_app.py │ ├── parameters_dicts.py │ ├── parameters_info.py │ ├── particle_swarm_optimization │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── cognitive_weight_0.gif │ │ │ ├── cognitive_weight_1.gif │ │ │ ├── cognitive_weight_2.gif │ │ │ ├── cognitive_weight_3.gif │ │ │ ├── cognitive_weight_4.gif │ │ │ ├── cognitive_weight_5.gif │ │ │ ├── inertia_0.gif │ │ │ ├── inertia_1.gif │ │ │ ├── inertia_2.gif │ │ │ ├── inertia_3.gif │ │ │ ├── inertia_4.gif │ │ │ ├── inertia_5.gif │ │ │ ├── particle_swarm_optimization_0.gif │ │ │ ├── particle_swarm_optimization_1.gif │ │ │ ├── particle_swarm_optimization_2.gif │ │ │ ├── particle_swarm_optimization_3.gif │ │ │ ├── particle_swarm_optimization_4.gif │ │ │ ├── particle_swarm_optimization_5.gif │ │ │ ├── population_0.gif │ │ │ ├── population_1.gif │ │ │ ├── population_2.gif │ │ │ ├── population_3.gif │ │ │ ├── population_4.gif │ │ │ ├── population_5.gif │ │ │ ├── social_weight_0.gif │ │ │ ├── social_weight_1.gif │ │ │ ├── social_weight_2.gif │ │ │ ├── social_weight_3.gif │ │ │ ├── social_weight_4.gif │ │ │ └── social_weight_5.gif │ │ └── particle_swarm_optimization_app.py │ ├── pattern_search │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── n_positions_0.gif │ │ │ ├── n_positions_1.gif │ │ │ ├── n_positions_2.gif │ │ │ ├── n_positions_3.gif │ │ │ ├── n_positions_4.gif │ │ │ ├── n_positions_5.gif │ │ │ ├── pattern_search_0.gif │ │ │ ├── pattern_search_1.gif │ │ │ ├── pattern_search_2.gif │ │ │ ├── pattern_search_3.gif │ │ │ ├── pattern_search_4.gif │ │ │ ├── pattern_search_5.gif │ │ │ ├── pattern_size_0.gif │ │ │ ├── pattern_size_1.gif │ │ │ ├── pattern_size_2.gif │ │ │ ├── pattern_size_3.gif │ │ │ ├── pattern_size_4.gif │ │ │ ├── pattern_size_5.gif │ │ │ ├── reduction_0.gif │ │ │ ├── reduction_1.gif │ │ │ ├── reduction_2.gif │ │ │ ├── reduction_3.gif │ │ │ ├── reduction_4.gif │ │ │ └── reduction_5.gif │ │ └── pattern_search_app.py │ ├── powells_method │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── iters_p_dim_0.gif │ │ │ ├── iters_p_dim_1.gif │ │ │ ├── iters_p_dim_2.gif │ │ │ ├── iters_p_dim_3.gif │ │ │ ├── iters_p_dim_4.gif │ │ │ ├── iters_p_dim_5.gif │ │ │ ├── powells_method_0.gif │ │ │ ├── powells_method_1.gif │ │ │ ├── powells_method_2.gif │ │ │ ├── powells_method_3.gif │ │ │ ├── powells_method_4.gif │ │ │ └── powells_method_5.gif │ │ └── powells_method_app.py │ ├── random_annealing │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── annealing_rate_0.gif │ │ │ ├── annealing_rate_1.gif │ │ │ ├── annealing_rate_2.gif │ │ │ ├── annealing_rate_3.gif │ │ │ ├── annealing_rate_4.gif │ │ │ ├── annealing_rate_5.gif │ │ │ ├── distribution_0.gif │ │ │ ├── distribution_1.gif │ │ │ ├── distribution_2.gif │ │ │ ├── distribution_3.gif │ │ │ ├── distribution_4.gif │ │ │ ├── distribution_5.gif │ │ │ ├── epsilon_0.gif │ │ │ ├── epsilon_1.gif │ │ │ ├── epsilon_2.gif │ │ │ ├── epsilon_3.gif │ │ │ ├── epsilon_4.gif │ │ │ ├── epsilon_5.gif │ │ │ ├── n_neighbours_0.gif │ │ │ ├── n_neighbours_1.gif │ │ │ ├── n_neighbours_2.gif │ │ │ ├── n_neighbours_3.gif │ │ │ ├── n_neighbours_4.gif │ │ │ ├── n_neighbours_5.gif │ │ │ ├── random_annealing_0.gif │ │ │ ├── random_annealing_1.gif │ │ │ ├── random_annealing_2.gif │ │ │ ├── random_annealing_3.gif │ │ │ ├── random_annealing_4.gif │ │ │ ├── random_annealing_5.gif │ │ │ ├── start_temp_0.gif │ │ │ ├── start_temp_1.gif │ │ │ ├── start_temp_2.gif │ │ │ ├── start_temp_3.gif │ │ │ ├── start_temp_4.gif │ │ │ └── start_temp_5.gif │ │ └── random_annealing_app.py │ ├── random_restart_hill_climbing │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── distribution_0.gif │ │ │ ├── distribution_1.gif │ │ │ ├── distribution_2.gif │ │ │ ├── distribution_3.gif │ │ │ ├── distribution_4.gif │ │ │ ├── distribution_5.gif │ │ │ ├── epsilon_0.gif │ │ │ ├── epsilon_1.gif │ │ │ ├── epsilon_2.gif │ │ │ ├── epsilon_3.gif │ │ │ ├── epsilon_4.gif │ │ │ ├── epsilon_5.gif │ │ │ ├── n_iter_restart_0.gif │ │ │ ├── n_iter_restart_1.gif │ │ │ ├── n_iter_restart_2.gif │ │ │ ├── n_iter_restart_3.gif │ │ │ ├── n_iter_restart_4.gif │ │ │ ├── n_iter_restart_5.gif │ │ │ ├── n_neighbours_0.gif │ │ │ ├── n_neighbours_1.gif │ │ │ ├── n_neighbours_2.gif │ │ │ ├── n_neighbours_3.gif │ │ │ ├── n_neighbours_4.gif │ │ │ ├── n_neighbours_5.gif │ │ │ ├── random_restart_hill_climbing_0.gif │ │ │ ├── random_restart_hill_climbing_1.gif │ │ │ ├── random_restart_hill_climbing_2.gif │ │ │ ├── random_restart_hill_climbing_3.gif │ │ │ ├── random_restart_hill_climbing_4.gif │ │ │ └── random_restart_hill_climbing_5.gif │ │ └── random_restart_hill_climbing_app.py │ ├── random_search │ │ ├── _images │ │ │ ├── random_search_0.gif │ │ │ ├── random_search_1.gif │ │ │ ├── random_search_2.gif │ │ │ ├── random_search_3.gif │ │ │ ├── random_search_4.gif │ │ │ └── random_search_5.gif │ │ └── random_search_app.py │ ├── repulsing_hill_climbing │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── distribution_0.gif │ │ │ ├── distribution_1.gif │ │ │ ├── distribution_2.gif │ │ │ ├── distribution_3.gif │ │ │ ├── distribution_4.gif │ │ │ ├── distribution_5.gif │ │ │ ├── epsilon_0.gif │ │ │ ├── epsilon_1.gif │ │ │ ├── epsilon_2.gif │ │ │ ├── epsilon_3.gif │ │ │ ├── epsilon_4.gif │ │ │ ├── epsilon_5.gif │ │ │ ├── n_neighbours_0.gif │ │ │ ├── n_neighbours_1.gif │ │ │ ├── n_neighbours_2.gif │ │ │ ├── n_neighbours_3.gif │ │ │ ├── n_neighbours_4.gif │ │ │ ├── n_neighbours_5.gif │ │ │ ├── repulsing_hill_climbing_0.gif │ │ │ ├── repulsing_hill_climbing_1.gif │ │ │ ├── repulsing_hill_climbing_2.gif │ │ │ ├── repulsing_hill_climbing_3.gif │ │ │ ├── repulsing_hill_climbing_4.gif │ │ │ ├── repulsing_hill_climbing_5.gif │ │ │ ├── repulsion_factor_0.gif │ │ │ ├── repulsion_factor_1.gif │ │ │ ├── repulsion_factor_2.gif │ │ │ ├── repulsion_factor_3.gif │ │ │ ├── repulsion_factor_4.gif │ │ │ └── repulsion_factor_5.gif │ │ └── repulsing_hill_climbing_app.py │ ├── simulated_annealing │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── annealing_rate_0.gif │ │ │ ├── annealing_rate_1.gif │ │ │ ├── annealing_rate_2.gif │ │ │ ├── annealing_rate_3.gif │ │ │ ├── annealing_rate_4.gif │ │ │ ├── annealing_rate_5.gif │ │ │ ├── distribution_0.gif │ │ │ ├── distribution_1.gif │ │ │ ├── distribution_2.gif │ │ │ ├── distribution_3.gif │ │ │ ├── distribution_4.gif │ │ │ ├── distribution_5.gif │ │ │ ├── epsilon_0.gif │ │ │ ├── epsilon_1.gif │ │ │ ├── epsilon_2.gif │ │ │ ├── epsilon_3.gif │ │ │ ├── epsilon_4.gif │ │ │ ├── epsilon_5.gif │ │ │ ├── n_neighbours_0.gif │ │ │ ├── n_neighbours_1.gif │ │ │ ├── n_neighbours_2.gif │ │ │ ├── n_neighbours_3.gif │ │ │ ├── n_neighbours_4.gif │ │ │ ├── n_neighbours_5.gif │ │ │ ├── simulated_annealing_0.gif │ │ │ ├── simulated_annealing_1.gif │ │ │ ├── simulated_annealing_2.gif │ │ │ ├── simulated_annealing_3.gif │ │ │ ├── simulated_annealing_4.gif │ │ │ ├── simulated_annealing_5.gif │ │ │ ├── start_temp_0.gif │ │ │ ├── start_temp_1.gif │ │ │ ├── start_temp_2.gif │ │ │ ├── start_temp_3.gif │ │ │ ├── start_temp_4.gif │ │ │ └── start_temp_5.gif │ │ └── simulated_annealing_app.py │ ├── stochastic_hill_climbing │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ │ ├── distribution_0.gif │ │ │ ├── distribution_1.gif │ │ │ ├── distribution_2.gif │ │ │ ├── distribution_3.gif │ │ │ ├── distribution_4.gif │ │ │ ├── distribution_5.gif │ │ │ ├── epsilon_0.gif │ │ │ ├── epsilon_1.gif │ │ │ ├── epsilon_2.gif │ │ │ ├── epsilon_3.gif │ │ │ ├── epsilon_4.gif │ │ │ ├── epsilon_5.gif │ │ │ ├── n_neighbours_0.gif │ │ │ ├── n_neighbours_1.gif │ │ │ ├── n_neighbours_2.gif │ │ │ ├── n_neighbours_3.gif │ │ │ ├── n_neighbours_4.gif │ │ │ ├── n_neighbours_5.gif │ │ │ ├── p_accept_0.gif │ │ │ ├── p_accept_1.gif │ │ │ ├── p_accept_2.gif │ │ │ ├── p_accept_3.gif │ │ │ ├── p_accept_4.gif │ │ │ ├── p_accept_5.gif │ │ │ ├── stochastic_hill_climbing_0.gif │ │ │ ├── stochastic_hill_climbing_1.gif │ │ │ ├── stochastic_hill_climbing_2.gif │ │ │ ├── stochastic_hill_climbing_3.gif │ │ │ ├── stochastic_hill_climbing_4.gif │ │ │ └── stochastic_hill_climbing_5.gif │ │ └── stochastic_hill_climbing_app.py │ └── tree_structured_parzen_estimators │ │ ├── _generate_parameter_gifs.py │ │ ├── _images │ │ ├── gamma_tpe_0.gif │ │ ├── gamma_tpe_1.gif │ │ ├── gamma_tpe_2.gif │ │ ├── gamma_tpe_3.gif │ │ ├── gamma_tpe_4.gif │ │ ├── gamma_tpe_5.gif │ │ ├── tree_structured_parzen_estimators_0.gif │ │ ├── tree_structured_parzen_estimators_1.gif │ │ ├── tree_structured_parzen_estimators_2.gif │ │ ├── tree_structured_parzen_estimators_3.gif │ │ ├── tree_structured_parzen_estimators_4.gif │ │ └── tree_structured_parzen_estimators_5.gif │ │ └── tree_structured_parzen_estimators_app.py └── overview_app.py ├── optimization_tutorial_new └── mkdocs_pages │ ├── docs │ ├── css │ │ └── extra.css │ ├── index.md │ └── optimizers │ │ └── hill_climbing │ │ ├── assets │ │ ├── ackley_function.gif │ │ └── sphere_function.gif │ │ └── page.md │ └── mkdocs.yml ├── requirements.txt └── scripts ├── __init__.py └── search_path_gif ├── __init__.py └── search_path_gif.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | **/_plots/ 30 | **/_data/ 31 | **/_gifs/ 32 | 33 | 34 | # PyInstaller 35 | # Usually these files are written by a python script from a template 36 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 37 | *.manifest 38 | *.spec 39 | 40 | # Installer logs 41 | pip-log.txt 42 | pip-delete-this-directory.txt 43 | 44 | # Unit test / coverage reports 45 | htmlcov/ 46 | .tox/ 47 | .nox/ 48 | .coverage 49 | .coverage.* 50 | .cache 51 | nosetests.xml 52 | coverage.xml 53 | *.cover 54 | *.py,cover 55 | .hypothesis/ 56 | .pytest_cache/ 57 | 58 | # Translations 59 | *.mo 60 | *.pot 61 | 62 | # Django stuff: 63 | *.log 64 | local_settings.py 65 | db.sqlite3 66 | db.sqlite3-journal 67 | 68 | # Flask stuff: 69 | instance/ 70 | .webassets-cache 71 | 72 | # Scrapy stuff: 73 | .scrapy 74 | 75 | # Sphinx documentation 76 | docs/_build/ 77 | 78 | # PyBuilder 79 | target/ 80 | 81 | # Jupyter Notebook 82 | .ipynb_checkpoints 83 | 84 | # IPython 85 | profile_default/ 86 | ipython_config.py 87 | 88 | # pyenv 89 | .python-version 90 | 91 | # pipenv 92 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 93 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 94 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 95 | # install all needed dependencies. 96 | #Pipfile.lock 97 | 98 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 99 | __pypackages__/ 100 | 101 | # Celery stuff 102 | celerybeat-schedule 103 | celerybeat.pid 104 | 105 | # SageMath parsed files 106 | *.sage.py 107 | 108 | # Environments 109 | .env 110 | .venv 111 | env/ 112 | venv/ 113 | ENV/ 114 | env.bak/ 115 | venv.bak/ 116 | 117 | # Spyder project settings 118 | .spyderproject 119 | .spyproject 120 | 121 | # Rope project settings 122 | .ropeproject 123 | 124 | # mkdocs documentation 125 | /site 126 | 127 | # mypy 128 | .mypy_cache/ 129 | .dmypy.json 130 | dmypy.json 131 | 132 | # Pyre type checker 133 | .pyre/ 134 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Simon Blanke 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /optimization_tutorial/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/__init__.py -------------------------------------------------------------------------------- /optimization_tutorial/_images/optimizer_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/_images/optimizer_table.png -------------------------------------------------------------------------------- /optimization_tutorial/app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import streamlit as st 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "overview_app.py")) 8 | 9 | 10 | st.set_page_config(page_title="Optimization Tutorial", layout="wide") 11 | 12 | st.markdown( 13 | """ 14 | 28 | """, 29 | unsafe_allow_html=True, 30 | ) 31 | 32 | 33 | from overview_app import overview_app 34 | from optimizers import ( 35 | hill_climbing_app, 36 | stochastic_hill_climbing_app, 37 | repulsing_hill_climbing_app, 38 | simulated_annealing_app, 39 | downhill_simplex_app, 40 | random_search_app, 41 | grid_search_app, 42 | random_restart_hill_climbing_app, 43 | powells_method_app, 44 | pattern_search_app, 45 | random_annealing_app, 46 | parallel_tempering_app, 47 | parallel_random_annealing_app, 48 | particle_swarm_optimization_app, 49 | evolution_strategy_app, 50 | bayesian_optimization_app, 51 | tree_structured_parzen_estimators_app, 52 | forest_optimization_app, 53 | ) 54 | 55 | 56 | app_d = { 57 | "Hill Climbing Optimizer": hill_climbing_app, 58 | "Stochastic Hill Climbing Optimizer": stochastic_hill_climbing_app, 59 | "Repulsing Hill Climbing Optimizer": repulsing_hill_climbing_app, 60 | "Simulated Annealing Optimizer": simulated_annealing_app, 61 | "Downhill Simplex Optimizer": downhill_simplex_app, 62 | "Random Search Optimizer": random_search_app, 63 | "GridSearch Optimizer": grid_search_app, 64 | "Random Restart Hill Climbing Optimizer": random_restart_hill_climbing_app, 65 | "Powell's Method": powells_method_app, 66 | "Pattern Search": pattern_search_app, 67 | # "Random Annealing Optimizer": random_annealing_app, 68 | "Parallel Tempering Optimizer": parallel_tempering_app, 69 | # "Parallel Annealing Optimizer": parallel_random_annealing_app, 70 | "Particle Swarm Optimizer": particle_swarm_optimization_app, 71 | "Evolution Strategy Optimizer": evolution_strategy_app, 72 | "Bayesian Optimizer": bayesian_optimization_app, 73 | "Tree Structured Parzen Estimators": tree_structured_parzen_estimators_app, 74 | "Forest Optimizer": forest_optimization_app, 75 | } 76 | 77 | 78 | choice_0 = st.sidebar.radio( 79 | " ", options=("Overview", "Optimization Algorithms"), index=0 80 | ) 81 | 82 | gfo_versions = ["1.0"] 83 | gfo_version = st.sidebar.selectbox( 84 | "Gradient-Free-Optimizers Version:", 85 | options=["1.0"], 86 | index=int(len(gfo_versions) - 1), 87 | ) 88 | 89 | if choice_0 == "Overview": 90 | overview_app() 91 | elif choice_0 == "Optimization Algorithms": 92 | st.sidebar.write("") 93 | choice_opt = st.sidebar.radio("Optimization Algorithms:", options=app_d, index=0) 94 | app_d[choice_opt](gfo_version) 95 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/__init__.py: -------------------------------------------------------------------------------- 1 | from .hill_climbing.hill_climbing_app import hill_climbing_app 2 | from .stochastic_hill_climbing.stochastic_hill_climbing_app import ( 3 | stochastic_hill_climbing_app, 4 | ) 5 | from .repulsing_hill_climbing.repulsing_hill_climbing_app import ( 6 | repulsing_hill_climbing_app, 7 | ) 8 | from .simulated_annealing.simulated_annealing_app import simulated_annealing_app 9 | from .downhill_simplex.downhill_simplex_app import downhill_simplex_app 10 | from .random_search.random_search_app import random_search_app 11 | from .grid_search.grid_search_app import grid_search_app 12 | from .random_restart_hill_climbing.random_restart_hill_climbing_app import ( 13 | random_restart_hill_climbing_app, 14 | ) 15 | from .powells_method.powells_method_app import powells_method_app 16 | from .pattern_search.pattern_search_app import pattern_search_app 17 | from .random_annealing.random_annealing_app import random_annealing_app 18 | from .parallel_tempering.parallel_tempering_app import parallel_tempering_app 19 | from .parallel_random_annealing.parallel_random_annealing_app import ( 20 | parallel_random_annealing_app, 21 | ) 22 | from .particle_swarm_optimization.particle_swarm_optimization_app import ( 23 | particle_swarm_optimization_app, 24 | ) 25 | from .evolution_strategy.evolution_strategy_app import evolution_strategy_app 26 | from .bayesian_optimization.bayesian_optimization_app import bayesian_optimization_app 27 | from .tree_structured_parzen_estimators.tree_structured_parzen_estimators_app import ( 28 | tree_structured_parzen_estimators_app, 29 | ) 30 | from .forest_optimization.forest_optimization_app import forest_optimization_app 31 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_generate_parameter_gifs.py: -------------------------------------------------------------------------------- 1 | def warn(*args, **kwargs): 2 | pass 3 | 4 | 5 | import os 6 | import copy 7 | import warnings 8 | 9 | warnings.warn = warn 10 | 11 | 12 | from gradient_free_optimizers import BayesianOptimizer 13 | 14 | 15 | from surfaces.test_functions import SphereFunction, AckleyFunction 16 | from gradient_free_optimization_plots import search_path_gif 17 | 18 | 19 | n_iter = 150 20 | random_state = 0 21 | optimizer_class = BayesianOptimizer 22 | 23 | sphere_function = SphereFunction(n_dim=2) 24 | ackley_function = AckleyFunction() 25 | 26 | 27 | hill_climbing_sphere_function_template_d = { 28 | "path": "_images", 29 | "optimizer": optimizer_class, 30 | "n_iter": n_iter, 31 | "objective_function": sphere_function, 32 | "search_space": sphere_function.search_space(min=-5, max=10), 33 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 34 | "random_state": random_state, 35 | } 36 | 37 | hill_climbing_ackley_function_template_d = { 38 | "path": "_images", 39 | "optimizer": optimizer_class, 40 | "n_iter": n_iter, 41 | "objective_function": ackley_function, 42 | "search_space": ackley_function.search_space(min=-5, max=10), 43 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 44 | "random_state": random_state, 45 | } 46 | 47 | 48 | def generate_gifs_xi_(): 49 | xi_0_d = copy.copy(hill_climbing_sphere_function_template_d) 50 | xi_1_d = copy.copy(hill_climbing_sphere_function_template_d) 51 | xi_2_d = copy.copy(hill_climbing_sphere_function_template_d) 52 | 53 | xi_10_d = copy.copy(hill_climbing_ackley_function_template_d) 54 | xi_11_d = copy.copy(hill_climbing_ackley_function_template_d) 55 | xi_12_d = copy.copy(hill_climbing_ackley_function_template_d) 56 | 57 | para1 = 0.1 58 | para2 = 0.5 59 | para3 = 0.9 60 | 61 | xi_0_d["opt_para"] = {"xi": para1} 62 | xi_0_d["name"] = "xi_0.gif" 63 | 64 | xi_1_d["opt_para"] = {"xi": para2} 65 | xi_1_d["name"] = "xi_1.gif" 66 | 67 | xi_2_d["opt_para"] = {"xi": para3} 68 | xi_2_d["name"] = "xi_2.gif" 69 | 70 | xi_10_d["opt_para"] = {"xi": para1} 71 | xi_10_d["name"] = "xi_3.gif" 72 | 73 | xi_11_d["opt_para"] = {"xi": para2} 74 | xi_11_d["name"] = "xi_4.gif" 75 | 76 | xi_12_d["opt_para"] = {"xi": para3} 77 | xi_12_d["name"] = "xi_5.gif" 78 | 79 | search_path_gif(**xi_0_d) 80 | search_path_gif(**xi_1_d) 81 | search_path_gif(**xi_2_d) 82 | 83 | search_path_gif(**xi_10_d) 84 | search_path_gif(**xi_11_d) 85 | search_path_gif(**xi_12_d) 86 | 87 | 88 | generate_gifs_xi_() 89 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/bayesian_optimization_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/xi_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/xi_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/xi_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/xi_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/xi_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/xi_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/xi_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/xi_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/xi_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/xi_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/bayesian_optimization/_images/xi_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/bayesian_optimization/_images/xi_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/alpha_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/alpha_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/alpha_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/alpha_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/alpha_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/alpha_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/alpha_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/alpha_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/alpha_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/alpha_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/alpha_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/alpha_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/beta_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/beta_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/beta_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/beta_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/beta_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/beta_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/beta_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/beta_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/beta_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/beta_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/beta_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/beta_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/downhill_simplex_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/gamma_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/gamma_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/gamma_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/gamma_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/gamma_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/gamma_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/gamma_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/gamma_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/gamma_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/gamma_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/gamma_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/gamma_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/sigma_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/sigma_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/sigma_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/sigma_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/sigma_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/sigma_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/sigma_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/sigma_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/sigma_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/sigma_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/downhill_simplex/_images/sigma_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/downhill_simplex/_images/sigma_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/crossover_rate_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/evolution_strategy_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/mutation_rate_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/population_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/population_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/population_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/population_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/population_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/population_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/population_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/population_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/population_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/population_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/_images/population_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/evolution_strategy/_images/population_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/evolution_strategy/evolution_strategy_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | from parameters_info import ( 12 | population_intro_, 13 | mutation_rate_intro_, 14 | crossover_rate_intro_, 15 | ) 16 | from parameters_dicts import ( 17 | population_parallel_temp_d, 18 | mutation_rate_d, 19 | crossover_rate_d, 20 | ) 21 | 22 | explanation_ = """ 23 | Evolution strategy mutates and combines the best individuals of a population across a 24 | number of generations without transforming them into an array of bits 25 | (like genetic algorithms) but uses the real values of the positions. 26 | """ 27 | 28 | para_d = dict() 29 | para_d.update(population_parallel_temp_d) 30 | para_d.update(mutation_rate_d) 31 | para_d.update(crossover_rate_d) 32 | 33 | 34 | para_df = pd.DataFrame.from_dict( 35 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 36 | ) 37 | 38 | 39 | good_ = """ 40 | - Expect good results for convex and nonconvex optimization problems. 41 | """ 42 | bad_ = """ 43 | - Algorithm performance can worsen in case of bad initial positions. 44 | - Population based optimizers generally need a higher minimum number of iterations 45 | to find a good solution (compared to non-population-based algorithms). 46 | """ 47 | info_ = """ 48 | - If `mutation_rate`/`crossover_rate` is high the algorithm behaves like a population 49 | of hill climbers 50 | - If `crossover_rate`/`mutation_rate` is high the exploration of the search space will worsen. 51 | """ 52 | 53 | 54 | implementation_ = """ 55 | The mutation part of the evolution strategy optimizer is a regular hill climbing algorithm. 56 | The crossover works by combining the best positions to get new ones. The worst positions 57 | are removed to preserve the number of individuals in the population. 58 | """ 59 | 60 | overview_app_args_d = { 61 | "title": "Evolution Strategy", 62 | "_name_": "evolution_strategy", 63 | "explanation_": explanation_, 64 | "here_": here_, 65 | "implementation_": implementation_, 66 | "good_": good_, 67 | "bad_": bad_, 68 | "info_": info_, 69 | "para_df": para_df, 70 | } 71 | population_args_d = { 72 | "title": "population", 73 | "_name_": "population", 74 | "explanation_": population_intro_, 75 | "here_": here_, 76 | } 77 | mutation_rate_args_d = { 78 | "title": "mutation_rate", 79 | "_name_": "mutation_rate", 80 | "explanation_": mutation_rate_intro_, 81 | "here_": here_, 82 | } 83 | crossover_rate_args_d = { 84 | "title": "crossover_rate", 85 | "_name_": "crossover_rate", 86 | "explanation_": crossover_rate_intro_, 87 | "here_": here_, 88 | } 89 | 90 | app_d = { 91 | "Overview": (overview_app, overview_app_args_d), 92 | "population": (parameter_app, population_args_d), 93 | "mutation_rate": (parameter_app, mutation_rate_args_d), 94 | "crossover_rate": (parameter_app, crossover_rate_args_d), 95 | } 96 | 97 | 98 | def evolution_strategy_app(gfo_version): 99 | optimizer_app(app_d) 100 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_generate_parameter_gifs.py: -------------------------------------------------------------------------------- 1 | def warn(*args, **kwargs): 2 | pass 3 | 4 | 5 | import os 6 | import copy 7 | import warnings 8 | 9 | warnings.warn = warn 10 | 11 | 12 | from gradient_free_optimizers import ForestOptimizer 13 | 14 | 15 | from surfaces.test_functions import SphereFunction, AckleyFunction 16 | from gradient_free_optimization_plots import search_path_gif 17 | 18 | 19 | n_iter = 150 20 | random_state = 0 21 | optimizer_class = ForestOptimizer 22 | 23 | sphere_function = SphereFunction(n_dim=2) 24 | ackley_function = AckleyFunction() 25 | 26 | 27 | hill_climbing_sphere_function_template_d = { 28 | "path": "_images", 29 | "optimizer": optimizer_class, 30 | "n_iter": n_iter, 31 | "objective_function": sphere_function, 32 | "search_space": sphere_function.search_space(min=-5, max=10), 33 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 34 | "random_state": random_state, 35 | } 36 | 37 | hill_climbing_ackley_function_template_d = { 38 | "path": "_images", 39 | "optimizer": optimizer_class, 40 | "n_iter": n_iter, 41 | "objective_function": ackley_function, 42 | "search_space": ackley_function.search_space(min=-5, max=10), 43 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 44 | "random_state": random_state, 45 | } 46 | 47 | 48 | def generate_gifs_xi_(): 49 | xi_0_d = copy.copy(hill_climbing_sphere_function_template_d) 50 | xi_1_d = copy.copy(hill_climbing_sphere_function_template_d) 51 | xi_2_d = copy.copy(hill_climbing_sphere_function_template_d) 52 | 53 | xi_10_d = copy.copy(hill_climbing_ackley_function_template_d) 54 | xi_11_d = copy.copy(hill_climbing_ackley_function_template_d) 55 | xi_12_d = copy.copy(hill_climbing_ackley_function_template_d) 56 | 57 | para1 = 0.1 58 | para2 = 0.5 59 | para3 = 0.9 60 | 61 | xi_0_d["opt_para"] = {"xi": para1} 62 | xi_0_d["name"] = "xi_0.gif" 63 | 64 | xi_1_d["opt_para"] = {"xi": para2} 65 | xi_1_d["name"] = "xi_1.gif" 66 | 67 | xi_2_d["opt_para"] = {"xi": para3} 68 | xi_2_d["name"] = "xi_2.gif" 69 | 70 | xi_10_d["opt_para"] = {"xi": para1} 71 | xi_10_d["name"] = "xi_3.gif" 72 | 73 | xi_11_d["opt_para"] = {"xi": para2} 74 | xi_11_d["name"] = "xi_4.gif" 75 | 76 | xi_12_d["opt_para"] = {"xi": para3} 77 | xi_12_d["name"] = "xi_5.gif" 78 | 79 | search_path_gif(**xi_0_d) 80 | search_path_gif(**xi_1_d) 81 | search_path_gif(**xi_2_d) 82 | 83 | search_path_gif(**xi_10_d) 84 | search_path_gif(**xi_11_d) 85 | search_path_gif(**xi_12_d) 86 | 87 | 88 | generate_gifs_xi_() 89 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/forest_optimization_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/xi_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/xi_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/xi_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/xi_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/xi_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/xi_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/xi_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/xi_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/xi_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/xi_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/_images/xi_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/forest_optimization/_images/xi_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/forest_optimization/forest_optimization_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | from parameters_info import ( 12 | tree_regressor_intro_, 13 | xi_intro_, 14 | warm_start_smbo_intro_, 15 | ) 16 | from parameters_dicts import ( 17 | tree_regressor_d, 18 | xi_forest_opt_d, 19 | warm_start_smbo_d, 20 | ) 21 | 22 | explanation_ = """ 23 | The forest-optimizer calculates the expected improvement of the position space with a 24 | tree-based model. This optimization technique is very similar to bayesian-optimization 25 | in every part, except its model. 26 | """ 27 | 28 | para_d = dict() 29 | para_d.update(tree_regressor_d) 30 | para_d.update(xi_forest_opt_d) 31 | para_d.update(warm_start_smbo_d) 32 | 33 | 34 | para_df = pd.DataFrame.from_dict( 35 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 36 | ) 37 | 38 | 39 | good_ = """ 40 | - Very good performance 41 | """ 42 | bad_ = """ 43 | - High computational load compared to non-smb-optimizers. 44 | - Should only be used for 45 | computationally expensive objective-functions. 46 | - A large search space forces random sampling of the position space, which 47 | decreases optimizer performance. 48 | """ 49 | info_ = """ 50 | - High values of `xi` improves the exploration of the search space. 51 | """ 52 | 53 | 54 | implementation_ = """ 55 | The forest-optimizer shares most of its code base with the bayesian-optimizer. Only its model, to 56 | calculate the expected score and its standard deviation is different. Tree based models do not 57 | calculate the standard deviation by them self. A modification is necessary to determine the 58 | standard deviation from the impurity of the trees in the ensemble. 59 | """ 60 | 61 | overview_app_args_d = { 62 | "title": "Forest Optimization", 63 | "_name_": "forest_optimization", 64 | "explanation_": explanation_, 65 | "here_": here_, 66 | "implementation_": implementation_, 67 | "good_": good_, 68 | "bad_": bad_, 69 | "info_": info_, 70 | "para_df": para_df, 71 | } 72 | tree_regressor_args_d = { 73 | "title": "tree_regressor", 74 | "_name_": "tree_regressor", 75 | "explanation_": tree_regressor_intro_, 76 | "here_": here_, 77 | } 78 | xi_args_d = { 79 | "title": "xi", 80 | "_name_": "xi", 81 | "explanation_": xi_intro_, 82 | "here_": here_, 83 | } 84 | warm_start_smbo_args_d = { 85 | "title": "warm_start_smbo", 86 | "_name_": "warm_start_smbo", 87 | "explanation_": warm_start_smbo_intro_, 88 | "here_": here_, 89 | } 90 | 91 | app_d = { 92 | "Overview": (overview_app, overview_app_args_d), 93 | # "tree_regressor": (parameter_app, tree_regressor_args_d), 94 | "xi": (parameter_app, xi_args_d), 95 | # "warm_start_smbo": (parameter_app, warm_start_smbo_args_d), 96 | } 97 | 98 | 99 | def forest_optimization_app(gfo_version): 100 | optimizer_app(app_d) 101 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_generate_parameter_gifs.py: -------------------------------------------------------------------------------- 1 | def warn(*args, **kwargs): 2 | pass 3 | 4 | 5 | import os 6 | import copy 7 | import warnings 8 | 9 | warnings.warn = warn 10 | 11 | 12 | from gradient_free_optimizers import GridSearchOptimizer 13 | 14 | 15 | from surfaces.test_functions import SphereFunction, AckleyFunction 16 | from gradient_free_optimization_plots import search_path_gif 17 | 18 | 19 | n_iter = 150 20 | random_state = 0 21 | optimizer_class = GridSearchOptimizer 22 | 23 | sphere_function = SphereFunction(n_dim=2) 24 | ackley_function = AckleyFunction() 25 | 26 | 27 | hill_climbing_sphere_function_template_d = { 28 | "path": "_images", 29 | "optimizer": optimizer_class, 30 | "n_iter": n_iter, 31 | "objective_function": sphere_function, 32 | "search_space": sphere_function.search_space(min=-5, max=10), 33 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 34 | "random_state": random_state, 35 | } 36 | 37 | hill_climbing_ackley_function_template_d = { 38 | "path": "_images", 39 | "optimizer": optimizer_class, 40 | "n_iter": n_iter, 41 | "objective_function": ackley_function, 42 | "search_space": ackley_function.search_space(min=-5, max=10), 43 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 44 | "random_state": random_state, 45 | } 46 | 47 | 48 | def generate_gifs_step_size_(): 49 | step_size_0_d = copy.copy(hill_climbing_sphere_function_template_d) 50 | step_size_1_d = copy.copy(hill_climbing_sphere_function_template_d) 51 | step_size_2_d = copy.copy(hill_climbing_sphere_function_template_d) 52 | 53 | step_size_10_d = copy.copy(hill_climbing_ackley_function_template_d) 54 | step_size_11_d = copy.copy(hill_climbing_ackley_function_template_d) 55 | step_size_12_d = copy.copy(hill_climbing_ackley_function_template_d) 56 | 57 | para1 = 3 58 | para2 = 25 59 | para3 = 120 60 | 61 | step_size_0_d["opt_para"] = {"step_size": para1} 62 | step_size_0_d["name"] = "step_size_0.gif" 63 | 64 | step_size_1_d["opt_para"] = {"step_size": para2} 65 | step_size_1_d["name"] = "step_size_1.gif" 66 | 67 | step_size_2_d["opt_para"] = {"step_size": para3} 68 | step_size_2_d["name"] = "step_size_2.gif" 69 | 70 | step_size_10_d["opt_para"] = {"step_size": para1} 71 | step_size_10_d["name"] = "step_size_3.gif" 72 | 73 | step_size_11_d["opt_para"] = {"step_size": para2} 74 | step_size_11_d["name"] = "step_size_4.gif" 75 | 76 | step_size_12_d["opt_para"] = {"step_size": para3} 77 | step_size_12_d["name"] = "step_size_5.gif" 78 | 79 | search_path_gif(**step_size_0_d) 80 | search_path_gif(**step_size_1_d) 81 | search_path_gif(**step_size_2_d) 82 | 83 | search_path_gif(**step_size_10_d) 84 | search_path_gif(**step_size_11_d) 85 | search_path_gif(**step_size_12_d) 86 | 87 | 88 | generate_gifs_step_size_() 89 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/grid_search_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/grid_search_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/grid_search_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/grid_search_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/grid_search_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/grid_search_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/grid_search_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/grid_search_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/grid_search_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/grid_search_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/grid_search_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/grid_search_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/step_size_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/step_size_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/step_size_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/step_size_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/step_size_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/step_size_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/step_size_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/step_size_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/step_size_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/step_size_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/_images/step_size_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/grid_search/_images/step_size_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/grid_search/grid_search_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | from parameters_info import ( 12 | step_size_intro_, 13 | ) 14 | from parameters_dicts import ( 15 | step_size_d, 16 | ) 17 | 18 | explanation_ = """ 19 | The grid search explores the search space by starting from a corner and progressing `step_size`-steps 20 | per iteration. Increasing the `step_size` enables a more uniform exploration of the search space. 21 | """ 22 | 23 | para_d = dict() 24 | para_d.update(step_size_d) 25 | 26 | 27 | para_df = pd.DataFrame.from_dict( 28 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 29 | ) 30 | 31 | 32 | good_ = """ 33 | - Best method for exploring the search space completly 34 | """ 35 | bad_ = """ 36 | - Does not adapt its behaviour to the optimization problem. 37 | """ 38 | info_ = """ 39 | - Increasing the `step_size` is advised for better exploration. 40 | """ 41 | 42 | 43 | implementation_ = """ 44 | The implementation of this grid-search was realized by 45 | [Thomas Gak-Deluen](https://github.com/tgdn) and his team. The algorithm 46 | works by choosing a direction in the beginning and moving through the search space 47 | one 2-dimensional-plane at a time. 48 | """ 49 | 50 | overview_app_args_d = { 51 | "title": "Grid Search", 52 | "_name_": "grid_search", 53 | "explanation_": explanation_, 54 | "here_": here_, 55 | "implementation_": implementation_, 56 | "good_": good_, 57 | "bad_": bad_, 58 | "info_": info_, 59 | "para_df": para_df, 60 | } 61 | step_size_args_d = { 62 | "title": "step_size", 63 | "_name_": "step_size", 64 | "explanation_": step_size_intro_, 65 | "here_": here_, 66 | } 67 | 68 | 69 | app_d = { 70 | "Overview": (overview_app, overview_app_args_d), 71 | "step_size": (parameter_app, step_size_args_d), 72 | } 73 | 74 | 75 | def grid_search_app(gfo_version): 76 | optimizer_app(app_d) 77 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/distribution_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/distribution_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/distribution_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/distribution_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/distribution_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/distribution_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/distribution_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/distribution_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/distribution_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/distribution_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/distribution_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/distribution_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/epsilon_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/epsilon_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/epsilon_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/epsilon_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/epsilon_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/epsilon_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/epsilon_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/epsilon_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/epsilon_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/epsilon_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/epsilon_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/epsilon_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_10.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_11.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_12.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_13.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_distribution_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_10.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_11.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_12.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_epsilon_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_10.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_11.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_12.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/hill_climbing_n_neighbours_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/hill_climbing/_images/n_neighbours_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/optimizer_template.py: -------------------------------------------------------------------------------- 1 | import streamlit as st 2 | 3 | 4 | def optimizer_app(app_d): 5 | st.sidebar.write("") 6 | radio_select = st.sidebar.radio("Algorithm details:", options=list(app_d.keys())) 7 | 8 | _app_, args_d = app_d[radio_select] 9 | _app_(args_d) 10 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/overview_parameters_template.py: -------------------------------------------------------------------------------- 1 | import os 2 | import streamlit as st 3 | 4 | 5 | def overview_app(argument_d): 6 | title = argument_d["title"] 7 | _name_ = argument_d["_name_"] 8 | explanation_ = argument_d["explanation_"] 9 | here_ = argument_d["here_"] 10 | implementation_ = argument_d["implementation_"] 11 | good_ = argument_d["good_"] 12 | bad_ = argument_d["bad_"] 13 | info_ = argument_d["info_"] 14 | para_df = argument_d["para_df"] 15 | 16 | st.title(title) 17 | st.components.v1.html( 18 | """
""", 19 | height=10, 20 | ) 21 | st.write("") 22 | col1, col2, col3 = st.columns((2, 1, 1)) 23 | 24 | col1.header("Introduction") 25 | col1.markdown(explanation_) 26 | 27 | col2.image(os.path.join(here_, "_images/" + _name_ + "_0.gif")) 28 | col3.image(os.path.join(here_, "_images/" + _name_ + "_1.gif")) 29 | col2.image(os.path.join(here_, "_images/" + _name_ + "_2.gif")) 30 | col3.image(os.path.join(here_, "_images/" + _name_ + "_3.gif")) 31 | col2.image(os.path.join(here_, "_images/" + _name_ + "_4.gif")) 32 | col3.image(os.path.join(here_, "_images/" + _name_ + "_5.gif")) 33 | 34 | col1.header("About the implementation") 35 | col1.markdown(implementation_) 36 | 37 | col1.header("Characteristics") 38 | col1.success(good_) 39 | col1.error(bad_) 40 | col1.info(info_) 41 | 42 | col1.header("Parameters") 43 | col1.table(para_df) 44 | 45 | 46 | def parameter_app(argument_d): 47 | title = argument_d["title"] 48 | _name_ = argument_d["_name_"] 49 | explanation_ = argument_d["explanation_"] 50 | here_ = argument_d["here_"] 51 | 52 | st.title(title) 53 | st.components.v1.html( 54 | """
""", 55 | height=10, 56 | ) 57 | st.write("") 58 | col1, col2, col3, col4 = st.columns((1, 1, 1, 1)) 59 | 60 | col1.write("") 61 | col1.markdown(explanation_) 62 | 63 | col2.image(os.path.join(here_, "_images", _name_ + "_0.gif")) 64 | col3.image(os.path.join(here_, "_images", _name_ + "_1.gif")) 65 | col4.image(os.path.join(here_, "_images", _name_ + "_2.gif")) 66 | col2.image(os.path.join(here_, "_images", _name_ + "_3.gif")) 67 | col3.image(os.path.join(here_, "_images", _name_ + "_4.gif")) 68 | col4.image(os.path.join(here_, "_images", _name_ + "_5.gif")) 69 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_random_annealing/_images/parallel_random_annealing_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_random_annealing/parallel_random_annealing_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pandas as pd 3 | import streamlit as st 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | 8 | explanation_ = """ 9 | """ 10 | 11 | para_d = { 12 | "Parameter": ["epsilon", "distribution", "n_neighbours"], 13 | "Type": ["float", "string", "int"], 14 | "default": ["0.03", "normal", "3"], 15 | "typical range / possible values": [ 16 | "0.01 ... 0.3", 17 | "normal, laplace, logistic, gumbel", 18 | "1 ... 10", 19 | ], 20 | } 21 | para_df = pd.DataFrame(para_d) 22 | 23 | 24 | properties_ = """ 25 | - ... 26 | """ 27 | 28 | 29 | implementation_ = """ 30 | """ 31 | 32 | 33 | def parallel_random_annealing_app(gfo_version): 34 | st.title("Parallel Random Annealing") 35 | st.components.v1.html( 36 | """
""", 37 | height=10, 38 | ) 39 | st.write("") 40 | col1, col2, col3 = st.columns((2, 1, 1)) 41 | 42 | col1.markdown(explanation_) 43 | 44 | col2.image(os.path.join(here_, "_images/parallel_random_annealing_0.gif")) 45 | col3.image(os.path.join(here_, "_images/parallel_random_annealing_1.gif")) 46 | col2.image(os.path.join(here_, "_images/parallel_random_annealing_2.gif")) 47 | col3.image(os.path.join(here_, "_images/parallel_random_annealing_3.gif")) 48 | 49 | col1.subheader("About the implementation") 50 | col1.markdown(implementation_) 51 | 52 | col1.subheader("Available parameters") 53 | col1.table(para_df) 54 | 55 | col1.subheader("Use case") 56 | col1.markdown(properties_) 57 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/n_iter_swap_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/parallel_tempering_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/population_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/population_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/population_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/population_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/population_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/population_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/population_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/population_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/population_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/population_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/_images/population_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/parallel_tempering/_images/population_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parallel_tempering/parallel_tempering_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | from parameters_info import ( 12 | n_iter_swap_intro_, 13 | population_intro_, 14 | ) 15 | from parameters_dicts import ( 16 | n_iter_swap_parallel_temp_d, 17 | population_parallel_temp_d, 18 | ) 19 | 20 | explanation_ = """ 21 | Parallel Tempering initializes multiple simulated annealing searches with different 22 | temperatures and chooses to swap those temperatures with a probability based on 23 | its temperature and difference of current scores. 24 | """ 25 | 26 | para_d = dict() 27 | para_d.update(population_parallel_temp_d) 28 | para_d.update(n_iter_swap_parallel_temp_d) 29 | 30 | 31 | para_df = pd.DataFrame.from_dict( 32 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 33 | ) 34 | 35 | 36 | good_ = """ 37 | - Not as dependend of a good initial position as simulated annealing 38 | - Similar computational load to regular simulated annealing 39 | """ 40 | bad_ = """ 41 | - Population based optimizers generally need a higher minimum number of iterations 42 | to find a good solution (compared to non-population-based algorithms). 43 | """ 44 | info_ = """ 45 | - The parameter `n_iter_swap` should be increased if `population` is increased. 46 | """ 47 | 48 | 49 | implementation_ = """ 50 | The population of the parallel tempering optimizer consists of multiple initializations 51 | of the simulated annealing optimizer class. Each of those receives a random starting temperature. 52 | The algorithm calculates the probability of swapping temperatures 53 | for every combination of annealer instances. 54 | """ 55 | 56 | overview_app_args_d = { 57 | "title": "Parallel Tempering", 58 | "_name_": "parallel_tempering", 59 | "explanation_": explanation_, 60 | "here_": here_, 61 | "implementation_": implementation_, 62 | "good_": good_, 63 | "bad_": bad_, 64 | "info_": info_, 65 | "para_df": para_df, 66 | } 67 | population_args_d = { 68 | "title": "population", 69 | "_name_": "population", 70 | "explanation_": population_intro_, 71 | "here_": here_, 72 | } 73 | n_iter_swap_args_d = { 74 | "title": "n_iter_swap", 75 | "_name_": "n_iter_swap", 76 | "explanation_": n_iter_swap_intro_, 77 | "here_": here_, 78 | } 79 | 80 | 81 | app_d = { 82 | "Overview": (overview_app, overview_app_args_d), 83 | "population": (parameter_app, population_args_d), 84 | "n_iter_swap": (parameter_app, n_iter_swap_args_d), 85 | } 86 | 87 | 88 | def parallel_tempering_app(gfo_version): 89 | optimizer_app(app_d) 90 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/parameters_dicts.py: -------------------------------------------------------------------------------- 1 | epsilon_d_ = { 2 | "epsilon": ["float", "0.03", "0.01 ... 0.3"], 3 | } 4 | distribution_d_ = { 5 | "distribution": ["string", "normal", "normal, laplace, logistic, gumbel"], 6 | } 7 | n_neighbours_d_ = { 8 | "n_neighbours": ["int", "3", "1 ... 10"], 9 | } 10 | p_accept_d_ = { 11 | "p_accept": ["float", "0.1", "0.01 ... 10"], 12 | } 13 | repulsion_factor_d = { 14 | "repulsion_factor": ["float", "5", "2 ... 10"], 15 | } 16 | annealing_rate_d = { 17 | "annealing_rate": ["float", "0.97", "0.9 ... 0.99"], 18 | } 19 | start_temp_d = { 20 | "start_temp": ["float", "1", "0.5 ... 1.5"], 21 | } 22 | alpha_d = { 23 | "alpha": ["float", "1", "0.5 ... 2"], 24 | } 25 | gamma_d = { 26 | "gamma": ["float", "2", "0.5 ... 5"], 27 | } 28 | beta_d = { 29 | "beta": ["float", "0.5", "0.25 ... 3"], 30 | } 31 | sigma_d = { 32 | "sigma": ["float", "0.5", "0.25 ... 3"], 33 | } 34 | step_size_d = { 35 | "step_size": ["int", "1", "1 ... 1000"], 36 | } 37 | n_iter_restart_d = { 38 | "n_iter_restart": ["int", "10", "5 ... 20"], 39 | } 40 | iters_p_dim_d = { 41 | "iters_p_dim": ["int", "10", "5 ... 15"], 42 | } 43 | n_positions_d = { 44 | "n_positions": ["int", "4", "2 ... 8"], 45 | } 46 | pattern_size_d = { 47 | "pattern_size": ["float", "0.25", "0.1 ... 0.5"], 48 | } 49 | reduction_d = { 50 | "reduction": ["float", "0.9", "0.75 ... 0.99"], 51 | } 52 | population_parallel_temp_d = { 53 | "population": ["int", "5", "3 ... 15"], 54 | } 55 | n_iter_swap_parallel_temp_d = { 56 | "n_iter_swap": ["int", "10", "5 ... 50"], 57 | } 58 | population_pso_d = { 59 | "population": ["int", "10", "4 ... 15"], 60 | } 61 | inertia_d = { 62 | "inertia": ["float", "0.5", "0.25 ... 0.75"], 63 | } 64 | cognitive_weight_d = { 65 | "cognitive_weight": ["float", "0.5", "0.25 ... 0.75"], 66 | } 67 | social_weight_d = { 68 | "social_weight": ["float", "0.5", "0.25 ... 0.75"], 69 | } 70 | temp_weight_d = { 71 | "temp_weight": ["float", "0.2", "0.05 ... 0.3"], 72 | } 73 | population_evo_strat_d = { 74 | "population": ["int", "10", "4 ... 15"], 75 | } 76 | mutation_rate_d = { 77 | "mutation_rate": ["float", "0.7", "0.1 ... 0.9"], 78 | } 79 | crossover_rate_d = { 80 | "crossover_rate": ["float", "0.3", "0.1 ... 0.9"], 81 | } 82 | gpr_bayes_opt_d = { 83 | "gpr": ["class", "0.3", "-"], 84 | } 85 | xi_bayes_opt_d = { 86 | "xi": ["float", "0.3", "0.1 ... 0.9"], 87 | } 88 | warm_start_smbo_d = { 89 | "warm_start_smbo": ["pandas dataframe", "None", "-"], 90 | } 91 | max_sample_size_d = { 92 | "max_sample_size": ["int", "10000000", "-"], 93 | } 94 | sampling_d = { 95 | "sampling": ["dict", "{'random': 1000000}", "-"], 96 | } 97 | gamma_tpe_d = { 98 | "gamma_tpe": ["float", "0.2", "0.05 ... 0.75"], 99 | } 100 | tree_regressor_d = { 101 | "tree_regressor": [ 102 | "string", 103 | "extra_tree", 104 | "extra_tree, random_forest, gradient_boost", 105 | ], 106 | } 107 | tree_para_d = { 108 | "tree_para": ["dict", "{'n_estimators': 100}", "-"], 109 | } 110 | xi_forest_opt_d = { 111 | "xi": ["float", "0.03", "0.001 ... 0.1"], 112 | } 113 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/cognitive_weight_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/inertia_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/particle_swarm_optimization_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/population_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/particle_swarm_optimization/_images/social_weight_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/n_positions_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/n_positions_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/n_positions_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/n_positions_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/n_positions_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/n_positions_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/n_positions_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/n_positions_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/n_positions_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/n_positions_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/n_positions_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/n_positions_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_search_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_search_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_search_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_search_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_search_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_search_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_search_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_search_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_search_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_search_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_search_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_search_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_size_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_size_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_size_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_size_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_size_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_size_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_size_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_size_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_size_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_size_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/pattern_size_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/pattern_size_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/reduction_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/reduction_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/reduction_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/reduction_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/reduction_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/reduction_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/reduction_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/reduction_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/reduction_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/reduction_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/_images/reduction_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/pattern_search/_images/reduction_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/pattern_search/pattern_search_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | from parameters_info import ( 12 | n_positions_intro_, 13 | pattern_size_intro_, 14 | reduction_intro_, 15 | ) 16 | from parameters_dicts import ( 17 | n_positions_d, 18 | pattern_size_d, 19 | reduction_d, 20 | ) 21 | 22 | explanation_ = """ 23 | The pattern search works by initializing a cross-shaped collection of positions in the 24 | search space. When all positions in the cross are evaluated the center of the cross moves 25 | to the best position. This leads to new positions inside the cross that have not been 26 | evaluated. If non of the positions have a better score than the center position the cross 27 | shrinks by the `reduction`-factor creating new positions inside the cross. 28 | """ 29 | 30 | para_d = dict() 31 | para_d.update(n_positions_d) 32 | para_d.update(pattern_size_d) 33 | para_d.update(reduction_d) 34 | 35 | 36 | para_df = pd.DataFrame.from_dict( 37 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 38 | ) 39 | 40 | 41 | good_ = """ 42 | - Expect good results for convex and nonconvex optimization problems. 43 | """ 44 | bad_ = """ 45 | - After converging to a solution the algorithm will not continue to explore 46 | the search space. 47 | """ 48 | info_ = """ 49 | - The `n_positions` should be increased for high number of search space dimensions. 50 | """ 51 | 52 | 53 | implementation_ = """ 54 | Similar to a population based optimization algorithm the pattern search has a list of information 55 | about the positions and their scores to form the pattern. 56 | As the pattern moves through the search space this information gets updated. 57 | """ 58 | 59 | overview_app_args_d = { 60 | "title": "Pattern Search", 61 | "_name_": "pattern_search", 62 | "explanation_": explanation_, 63 | "here_": here_, 64 | "implementation_": implementation_, 65 | "good_": good_, 66 | "bad_": bad_, 67 | "info_": info_, 68 | "para_df": para_df, 69 | } 70 | n_positions_args_d = { 71 | "title": "n_positions", 72 | "_name_": "n_positions", 73 | "explanation_": n_positions_intro_, 74 | "here_": here_, 75 | } 76 | pattern_size_args_d = { 77 | "title": "pattern_size", 78 | "_name_": "pattern_size", 79 | "explanation_": pattern_size_intro_, 80 | "here_": here_, 81 | } 82 | reduction_args_d = { 83 | "title": "reduction", 84 | "_name_": "reduction", 85 | "explanation_": reduction_intro_, 86 | "here_": here_, 87 | } 88 | 89 | 90 | app_d = { 91 | "Overview": (overview_app, overview_app_args_d), 92 | "n_positions": (parameter_app, n_positions_args_d), 93 | "pattern_size": (parameter_app, pattern_size_args_d), 94 | "reduction": (parameter_app, reduction_args_d), 95 | } 96 | 97 | 98 | def pattern_search_app(gfo_version): 99 | optimizer_app(app_d) 100 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_generate_parameter_gifs.py: -------------------------------------------------------------------------------- 1 | def warn(*args, **kwargs): 2 | pass 3 | 4 | 5 | import os 6 | import copy 7 | import warnings 8 | 9 | warnings.warn = warn 10 | 11 | 12 | from gradient_free_optimizers import PowellsMethod 13 | 14 | 15 | from surfaces.test_functions import SphereFunction, AckleyFunction 16 | from gradient_free_optimization_plots import search_path_gif 17 | 18 | 19 | n_iter = 150 20 | random_state = 0 21 | optimizer_class = PowellsMethod 22 | 23 | sphere_function = SphereFunction(n_dim=2) 24 | ackley_function = AckleyFunction() 25 | 26 | 27 | hill_climbing_sphere_function_template_d = { 28 | "path": "_images", 29 | "optimizer": optimizer_class, 30 | "n_iter": n_iter, 31 | "objective_function": sphere_function, 32 | "search_space": sphere_function.search_space(min=-5, max=10), 33 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 34 | "random_state": random_state, 35 | } 36 | 37 | hill_climbing_ackley_function_template_d = { 38 | "path": "_images", 39 | "optimizer": optimizer_class, 40 | "n_iter": n_iter, 41 | "objective_function": ackley_function, 42 | "search_space": ackley_function.search_space(min=-5, max=10), 43 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 44 | "random_state": random_state, 45 | } 46 | 47 | 48 | def generate_gifs_iters_p_dim_(): 49 | iters_p_dim_0_d = copy.copy(hill_climbing_sphere_function_template_d) 50 | iters_p_dim_1_d = copy.copy(hill_climbing_sphere_function_template_d) 51 | iters_p_dim_2_d = copy.copy(hill_climbing_sphere_function_template_d) 52 | 53 | iters_p_dim_10_d = copy.copy(hill_climbing_ackley_function_template_d) 54 | iters_p_dim_11_d = copy.copy(hill_climbing_ackley_function_template_d) 55 | iters_p_dim_12_d = copy.copy(hill_climbing_ackley_function_template_d) 56 | 57 | para1 = 5 58 | para2 = 8 59 | para3 = 15 60 | 61 | iters_p_dim_0_d["opt_para"] = {"iters_p_dim": para1} 62 | iters_p_dim_0_d["name"] = "iters_p_dim_0.gif" 63 | 64 | iters_p_dim_1_d["opt_para"] = {"iters_p_dim": para2} 65 | iters_p_dim_1_d["name"] = "iters_p_dim_1.gif" 66 | 67 | iters_p_dim_2_d["opt_para"] = {"iters_p_dim": para3} 68 | iters_p_dim_2_d["name"] = "iters_p_dim_2.gif" 69 | 70 | iters_p_dim_10_d["opt_para"] = {"iters_p_dim": para1} 71 | iters_p_dim_10_d["name"] = "iters_p_dim_3.gif" 72 | 73 | iters_p_dim_11_d["opt_para"] = {"iters_p_dim": para2} 74 | iters_p_dim_11_d["name"] = "iters_p_dim_4.gif" 75 | 76 | iters_p_dim_12_d["opt_para"] = {"iters_p_dim": para3} 77 | iters_p_dim_12_d["name"] = "iters_p_dim_5.gif" 78 | 79 | search_path_gif(**iters_p_dim_0_d) 80 | search_path_gif(**iters_p_dim_1_d) 81 | search_path_gif(**iters_p_dim_2_d) 82 | 83 | search_path_gif(**iters_p_dim_10_d) 84 | search_path_gif(**iters_p_dim_11_d) 85 | search_path_gif(**iters_p_dim_12_d) 86 | 87 | 88 | generate_gifs_iters_p_dim_() 89 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/iters_p_dim_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/powells_method_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/powells_method_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/powells_method_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/powells_method_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/powells_method_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/powells_method_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/powells_method_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/powells_method_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/powells_method_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/powells_method_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/_images/powells_method_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/powells_method/_images/powells_method_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/powells_method/powells_method_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | from parameters_info import ( 12 | iters_p_dim_intro_, 13 | ) 14 | from parameters_dicts import ( 15 | iters_p_dim_d, 16 | ) 17 | 18 | explanation_ = """ 19 | This powell's method implementation works by optimizing each search space dimension at a 20 | time with a hill climbing algorithm. This works by setting the 21 | search space range for all dimensions except one to a single value. The hill climbing 22 | algorithms searches the best position within this dimension. 23 | After `iters_p_dim` iterations the next dimension is searched, while the 24 | search space range from the previously searched dimension is set to the best position, 25 | This way the algorithm finds new best positions one dimension at a time. 26 | """ 27 | 28 | para_d = dict() 29 | para_d.update(iters_p_dim_d) 30 | 31 | 32 | para_df = pd.DataFrame.from_dict( 33 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 34 | ) 35 | 36 | 37 | good_ = """ 38 | - Expect good results for convex and nonconvex optimization problems. 39 | """ 40 | bad_ = """ 41 | - After converging to a solution the algorithm will not continue to explore 42 | the search space. 43 | """ 44 | info_ = """ 45 | - The first few iterations in each dimension are random initialization 46 | steps. 47 | """ 48 | 49 | 50 | implementation_ = """ 51 | The powell's method implemented in Gradient-Free-Optimizers does only see one dimension at a time. 52 | This differs from the original idea of creating (and searching through) 53 | one search-vector at a time, that spans through multiple dimensions. 54 | """ 55 | 56 | overview_app_args_d = { 57 | "title": "Powell's Method", 58 | "_name_": "powells_method", 59 | "explanation_": explanation_, 60 | "here_": here_, 61 | "implementation_": implementation_, 62 | "good_": good_, 63 | "bad_": bad_, 64 | "info_": info_, 65 | "para_df": para_df, 66 | } 67 | iters_p_dim_args_d = { 68 | "title": "iters_p_dim", 69 | "_name_": "iters_p_dim", 70 | "explanation_": iters_p_dim_intro_, 71 | "here_": here_, 72 | } 73 | 74 | 75 | app_d = { 76 | "Overview": (overview_app, overview_app_args_d), 77 | "iters_p_dim": (parameter_app, iters_p_dim_args_d), 78 | } 79 | 80 | 81 | def powells_method_app(gfo_version): 82 | optimizer_app(app_d) 83 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/annealing_rate_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/distribution_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/distribution_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/distribution_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/distribution_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/distribution_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/distribution_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/distribution_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/distribution_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/distribution_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/distribution_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/distribution_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/distribution_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/epsilon_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/epsilon_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/epsilon_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/epsilon_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/epsilon_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/epsilon_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/epsilon_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/epsilon_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/epsilon_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/epsilon_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/epsilon_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/epsilon_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/n_neighbours_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/random_annealing_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/random_annealing_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/random_annealing_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/random_annealing_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/random_annealing_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/random_annealing_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/random_annealing_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/random_annealing_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/random_annealing_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/random_annealing_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/random_annealing_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/random_annealing_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/start_temp_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/start_temp_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/start_temp_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/start_temp_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/start_temp_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/start_temp_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/start_temp_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/start_temp_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/start_temp_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/start_temp_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_annealing/_images/start_temp_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_annealing/_images/start_temp_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/distribution_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/epsilon_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_iter_restart_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/n_neighbours_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_restart_hill_climbing/_images/random_restart_hill_climbing_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_restart_hill_climbing/random_restart_hill_climbing_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | from parameters_info import ( 12 | epsilon_intro_, 13 | distribution_intro_, 14 | n_neighbours_intro_, 15 | n_iter_restart_intro_, 16 | ) 17 | from parameters_dicts import ( 18 | epsilon_d_, 19 | distribution_d_, 20 | n_neighbours_d_, 21 | n_iter_restart_d, 22 | ) 23 | 24 | explanation_ = """ 25 | Random restart hill climbing works by starting a hill climbing search and jumping to a random 26 | new position after `n_iter_restart` iterations. 27 | Those restarts should prevent the algorithm getting stuck in local optima. 28 | """ 29 | 30 | para_d = dict() 31 | para_d.update(epsilon_d_) 32 | para_d.update(distribution_d_) 33 | para_d.update(n_neighbours_d_) 34 | para_d.update(n_iter_restart_d) 35 | 36 | 37 | para_df = pd.DataFrame.from_dict( 38 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 39 | ) 40 | 41 | 42 | good_ = """ 43 | - Expect good results for convex and nonconvex optimization problems. 44 | """ 45 | bad_ = """ 46 | - Worse than regular hill climbing algorithm for convex optimization 47 | - Does not intelligently decide when to restart 48 | """ 49 | info_ = """ 50 | - Similar to random search for low values of `n_iter_restart` 51 | """ 52 | 53 | 54 | implementation_ = """ 55 | The random restart hill climbing inherits its behaviour from the regular hill climbing and 56 | expands it by jumping to a random position during the iteration step. 57 | """ 58 | 59 | overview_app_args_d = { 60 | "title": "Random Restart Hill Climbing Optimizer", 61 | "_name_": "random_restart_hill_climbing", 62 | "explanation_": explanation_, 63 | "here_": here_, 64 | "implementation_": implementation_, 65 | "good_": good_, 66 | "bad_": bad_, 67 | "info_": info_, 68 | "para_df": para_df, 69 | } 70 | epsilon_args_d = { 71 | "title": "epsilon", 72 | "_name_": "epsilon", 73 | "explanation_": epsilon_intro_, 74 | "here_": here_, 75 | } 76 | distribution_args_d = { 77 | "title": "distribution", 78 | "_name_": "distribution", 79 | "explanation_": distribution_intro_, 80 | "here_": here_, 81 | } 82 | n_neighbours_args_d = { 83 | "title": "n_neighbours", 84 | "_name_": "n_neighbours", 85 | "explanation_": n_neighbours_intro_, 86 | "here_": here_, 87 | } 88 | n_iter_restart_args_d = { 89 | "title": "n_iter_restart", 90 | "_name_": "n_iter_restart", 91 | "explanation_": n_iter_restart_intro_, 92 | "here_": here_, 93 | } 94 | 95 | 96 | app_d = { 97 | "Overview": (overview_app, overview_app_args_d), 98 | "epsilon": (parameter_app, epsilon_args_d), 99 | "distribution": (parameter_app, distribution_args_d), 100 | "n_neighbours": (parameter_app, n_neighbours_args_d), 101 | "n_iter_restart": (parameter_app, n_iter_restart_args_d), 102 | } 103 | 104 | 105 | def random_restart_hill_climbing_app(gfo_version): 106 | optimizer_app(app_d) 107 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_search/_images/random_search_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_search/_images/random_search_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_search/_images/random_search_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_search/_images/random_search_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_search/_images/random_search_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_search/_images/random_search_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_search/_images/random_search_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_search/_images/random_search_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_search/_images/random_search_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_search/_images/random_search_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_search/_images/random_search_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/random_search/_images/random_search_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/random_search/random_search_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | 12 | 13 | explanation_ = """ 14 | The random search explores by choosing a new position at random after each iteration. 15 | Some random search implementations choose a new position within a large hypersphere around 16 | the current position. The implementation in hyperactive is purely random across the 17 | search space in each step. 18 | """ 19 | 20 | para_d = dict() 21 | para_d.update({}) 22 | 23 | 24 | para_df = pd.DataFrame.from_dict( 25 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 26 | ) 27 | 28 | 29 | good_ = """ 30 | - Very good as a first method of optimization or to start exploring the search space 31 | - For a short optimization run to get an acceptable solution 32 | """ 33 | bad_ = """ 34 | - Does not adapt its behaviour to the optimization problem. 35 | """ 36 | info_ = """ 37 | - This algorithm is often selected if we do not have much information about the 38 | optimization problem. 39 | - It is often used as a reference to compare its results to more sophisticated algorithms 40 | (like bayesian optimization). 41 | """ 42 | 43 | 44 | implementation_ = """ 45 | The random search is a very simple algorithm that has no parameters to change its behaviour. 46 | In each iteration the random position is selected via random.choice 47 | from a list of possible positions. 48 | """ 49 | 50 | overview_app_args_d = { 51 | "title": "Random Search", 52 | "_name_": "random_search", 53 | "explanation_": explanation_, 54 | "here_": here_, 55 | "implementation_": implementation_, 56 | "good_": good_, 57 | "bad_": bad_, 58 | "info_": info_, 59 | "para_df": para_df, 60 | } 61 | 62 | 63 | app_d = { 64 | "Overview": (overview_app, overview_app_args_d), 65 | } 66 | 67 | 68 | def random_search_app(gfo_version): 69 | optimizer_app(app_d) 70 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/distribution_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/epsilon_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/n_neighbours_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsing_hill_climbing_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/repulsing_hill_climbing/_images/repulsion_factor_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/annealing_rate_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/distribution_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/distribution_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/distribution_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/distribution_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/distribution_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/distribution_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/distribution_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/distribution_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/distribution_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/distribution_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/distribution_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/distribution_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/epsilon_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/n_neighbours_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/simulated_annealing_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/simulated_annealing/_images/start_temp_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/distribution_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/epsilon_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/n_neighbours_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/p_accept_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/stochastic_hill_climbing/_images/stochastic_hill_climbing_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_generate_parameter_gifs.py: -------------------------------------------------------------------------------- 1 | def warn(*args, **kwargs): 2 | pass 3 | 4 | 5 | import os 6 | import copy 7 | import warnings 8 | 9 | warnings.warn = warn 10 | 11 | 12 | from gradient_free_optimizers import TreeStructuredParzenEstimators 13 | 14 | 15 | from surfaces.test_functions import SphereFunction, AckleyFunction 16 | from gradient_free_optimization_plots import search_path_gif 17 | 18 | 19 | n_iter = 150 20 | random_state = 0 21 | optimizer_class = TreeStructuredParzenEstimators 22 | 23 | sphere_function = SphereFunction(n_dim=2) 24 | ackley_function = AckleyFunction() 25 | 26 | 27 | hill_climbing_sphere_function_template_d = { 28 | "path": "_images", 29 | "optimizer": optimizer_class, 30 | "n_iter": n_iter, 31 | "objective_function": sphere_function, 32 | "search_space": sphere_function.search_space(min=-5, max=10), 33 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 34 | "random_state": random_state, 35 | } 36 | 37 | hill_climbing_ackley_function_template_d = { 38 | "path": "_images", 39 | "optimizer": optimizer_class, 40 | "n_iter": n_iter, 41 | "objective_function": ackley_function, 42 | "search_space": ackley_function.search_space(min=-5, max=10), 43 | "initialize": {"warm_start": [{"x0": 8, "x1": 8}], "vertices": 4}, 44 | "random_state": random_state, 45 | } 46 | 47 | 48 | def generate_gifs_gamma_tpe_(): 49 | gamma_tpe_0_d = copy.copy(hill_climbing_sphere_function_template_d) 50 | gamma_tpe_1_d = copy.copy(hill_climbing_sphere_function_template_d) 51 | gamma_tpe_2_d = copy.copy(hill_climbing_sphere_function_template_d) 52 | 53 | gamma_tpe_10_d = copy.copy(hill_climbing_ackley_function_template_d) 54 | gamma_tpe_11_d = copy.copy(hill_climbing_ackley_function_template_d) 55 | gamma_tpe_12_d = copy.copy(hill_climbing_ackley_function_template_d) 56 | 57 | para1 = 0.05 58 | para2 = 0.1 59 | para3 = 0.75 60 | 61 | gamma_tpe_0_d["opt_para"] = {"gamma_tpe": para1} 62 | gamma_tpe_0_d["name"] = "gamma_tpe_0.gif" 63 | 64 | gamma_tpe_1_d["opt_para"] = {"gamma_tpe": para2} 65 | gamma_tpe_1_d["name"] = "gamma_tpe_1.gif" 66 | 67 | gamma_tpe_2_d["opt_para"] = {"gamma_tpe": para3} 68 | gamma_tpe_2_d["name"] = "gamma_tpe_2.gif" 69 | 70 | gamma_tpe_10_d["opt_para"] = {"gamma_tpe": para1} 71 | gamma_tpe_10_d["name"] = "gamma_tpe_3.gif" 72 | 73 | gamma_tpe_11_d["opt_para"] = {"gamma_tpe": para2} 74 | gamma_tpe_11_d["name"] = "gamma_tpe_4.gif" 75 | 76 | gamma_tpe_12_d["opt_para"] = {"gamma_tpe": para3} 77 | gamma_tpe_12_d["name"] = "gamma_tpe_5.gif" 78 | 79 | search_path_gif(**gamma_tpe_0_d) 80 | search_path_gif(**gamma_tpe_1_d) 81 | search_path_gif(**gamma_tpe_2_d) 82 | 83 | search_path_gif(**gamma_tpe_10_d) 84 | search_path_gif(**gamma_tpe_11_d) 85 | search_path_gif(**gamma_tpe_12_d) 86 | 87 | 88 | generate_gifs_gamma_tpe_() 89 | -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/gamma_tpe_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_0.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_1.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_2.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_3.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_4.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial/optimizers/tree_structured_parzen_estimators/_images/tree_structured_parzen_estimators_5.gif -------------------------------------------------------------------------------- /optimization_tutorial/optimizers/tree_structured_parzen_estimators/tree_structured_parzen_estimators_app.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import pandas as pd 4 | 5 | here_ = os.path.dirname(os.path.realpath(__file__)) 6 | 7 | sys.path.append(os.path.join(here_, "..")) 8 | 9 | from optimizer_template import optimizer_app 10 | from overview_parameters_template import overview_app, parameter_app 11 | from parameters_info import ( 12 | gamma_tpe_intro_, 13 | warm_start_smbo_intro_, 14 | ) 15 | from parameters_dicts import ( 16 | gamma_tpe_d, 17 | warm_start_smbo_d, 18 | ) 19 | 20 | explanation_ = """ 21 | Tree of Parzen Estimators also chooses new positions by calculating the expected improvement. 22 | It does so by calculating the ratio of probability being among the best positions and 23 | the worst positions. Those probabilities are determined with a kernel density estimator, 24 | that is trained on alrady evaluated positions. 25 | """ 26 | 27 | para_d = dict() 28 | para_d.update(gamma_tpe_d) 29 | para_d.update(warm_start_smbo_d) 30 | 31 | 32 | para_df = pd.DataFrame.from_dict( 33 | para_d, orient="index", columns=("type", "default", "typical range/possible values") 34 | ) 35 | 36 | 37 | good_ = """ 38 | - Very good performance 39 | """ 40 | bad_ = """ 41 | - High computational load compared to non-smb-optimizers. 42 | - Should only be used for 43 | computationally expensive objective-functions. 44 | - A large search space forces random sampling of the position space, which 45 | decreases optimizer performance. 46 | """ 47 | info_ = """ 48 | - High values of `xi` improves the exploration of the search space. 49 | """ 50 | 51 | 52 | implementation_ = """ 53 | Similar to other sequence-model-based optimization algorithms the positions and scores 54 | of previous evaluations are saved as features and targets to train a machine learning algorithm. 55 | For the tree structured parzen estimators we use two kernel density estimators that get 56 | the training data from the best and worst positions to calculate the expected improvement. 57 | """ 58 | 59 | overview_app_args_d = { 60 | "title": "Tree Structured Parzen Estimators", 61 | "_name_": "tree_structured_parzen_estimators", 62 | "explanation_": explanation_, 63 | "here_": here_, 64 | "implementation_": implementation_, 65 | "good_": good_, 66 | "bad_": bad_, 67 | "info_": info_, 68 | "para_df": para_df, 69 | } 70 | gamma_tpe_args_d = { 71 | "title": "gamma_tpe", 72 | "_name_": "gamma_tpe", 73 | "explanation_": gamma_tpe_intro_, 74 | "here_": here_, 75 | } 76 | warm_start_smbo_args_d = { 77 | "title": "warm_start_smbo", 78 | "_name_": "warm_start_smbo", 79 | "explanation_": warm_start_smbo_intro_, 80 | "here_": here_, 81 | } 82 | 83 | app_d = { 84 | "Overview": (overview_app, overview_app_args_d), 85 | "gamma_tpe": (parameter_app, gamma_tpe_args_d), 86 | # "warm_start_smbo": (parameter_app, warm_start_smbo_args_d), 87 | } 88 | 89 | 90 | def tree_structured_parzen_estimators_app(gfo_version): 91 | optimizer_app(app_d) 92 | -------------------------------------------------------------------------------- /optimization_tutorial_new/mkdocs_pages/docs/css/extra.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | font-size: 60px !important; 3 | margin: 0rem 0rem 2rem 0rem !important; 4 | /* border-bottom: solid 1px rgb(0, 0, 0, 0.15); */ 5 | } 6 | 7 | h2 { 8 | padding: 0px 0px 3px 0px !important; 9 | margin: 3rem 0rem 1rem 0rem !important; 10 | border-bottom: solid 3px rgb(70, 150, 236); 11 | } 12 | 13 | h3 { 14 | padding: 0px 0px 0px 3px !important; 15 | margin: 2rem 0rem 0rem 0rem !important; 16 | border-left: solid 3px rgb(70, 150, 236); 17 | } 18 | 19 | 20 | 21 | @media only screen and (min-width: 76.25em) { 22 | .md-main__inner { 23 | max-width: 80%; 24 | } 25 | 26 | .md-sidebar--primary { 27 | left: 1; 28 | 29 | } 30 | 31 | .md-sidebar--secondary { 32 | right: 5; 33 | margin-left: 5; 34 | -webkit-transform: none; 35 | transform: none; 36 | } 37 | 38 | 39 | } -------------------------------------------------------------------------------- /optimization_tutorial_new/mkdocs_pages/docs/index.md: -------------------------------------------------------------------------------- 1 | # Optimization Tutorial 2 | 3 | 4 | ## About 5 | 6 | -------------------------------------------------------------------------------- /optimization_tutorial_new/mkdocs_pages/docs/optimizers/hill_climbing/assets/ackley_function.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial_new/mkdocs_pages/docs/optimizers/hill_climbing/assets/ackley_function.gif -------------------------------------------------------------------------------- /optimization_tutorial_new/mkdocs_pages/docs/optimizers/hill_climbing/assets/sphere_function.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/optimization_tutorial_new/mkdocs_pages/docs/optimizers/hill_climbing/assets/sphere_function.gif -------------------------------------------------------------------------------- /optimization_tutorial_new/mkdocs_pages/docs/optimizers/hill_climbing/page.md: -------------------------------------------------------------------------------- 1 | # Hill Climbing 2 | 3 | ## Introduction 4 | 5 | 6 | ![Image title](assets/ackley_function.gif){: style="height:32vh" align="right"} Hill climbing is a heuristic search algorithm used for mathematical optimization problems. It belongs to the family of local search algorithms and is used for finding a solution that maximizes or minimizes a particular objective function. 7 | 8 | 9 | ## Explanation 10 | 11 | 12 | ### Pseudo Code 13 | 14 | 15 | 16 | ## Parameters 17 | 18 | ### Epsilon 19 | 20 | ### N-Neighbours 21 | 22 | ### Distribution 23 | 24 | 25 | ## Visualization 26 | 27 | ![Image title](assets/ackley_function.gif){: style="height:42vh"} 28 | ![Image title](assets/sphere_function.gif){: style="height:42vh"} 29 | -------------------------------------------------------------------------------- /optimization_tutorial_new/mkdocs_pages/mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Optimization Tutorial 2 | repo_url: https://github.com/SimonBlanke/optimization-tutorial 3 | 4 | markdown_extensions: 5 | - attr_list 6 | - md_in_html 7 | - pymdownx.highlight: 8 | anchor_linenums: true 9 | - pymdownx.inlinehilite 10 | - pymdownx.snippets 11 | - pymdownx.superfences 12 | - pymdownx.arithmatex: 13 | generic: true 14 | - admonition 15 | - pymdownx.details 16 | - toc: 17 | title: On this page 18 | 19 | plugins: 20 | - glightbox 21 | - macros 22 | 23 | theme: 24 | name: material 25 | 26 | icon: 27 | repo: fontawesome/brands/square-github 28 | 29 | palette: 30 | # Palette toggle for light mode 31 | - scheme: default 32 | primary: blue grey 33 | accent: deep purple 34 | toggle: 35 | icon: material/brightness-5 36 | name: Switch to dark mode 37 | 38 | # Palette toggle for dark mode 39 | - scheme: slate 40 | primary: blue grey 41 | accent: deep purple 42 | toggle: 43 | icon: material/brightness-3 44 | name: Switch to light mode 45 | 46 | features: 47 | - navigation.indexes 48 | 49 | extra_css: 50 | - css/extra.css 51 | 52 | extra_javascript: 53 | - javascripts/mathjax.js 54 | - https://polyfill.io/v3/polyfill.min.js?features=es6 55 | - https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js 56 | 57 | extra: 58 | social: 59 | - icon: fontawesome/brands/twitter 60 | link: https://twitter.com/blanke_simon 61 | - icon: fontawesome/brands/github 62 | link: https://github.com/SimonBlanke/ 63 | - icon: fontawesome/brands/linkedin 64 | link: https://www.linkedin.com/in/simon-blanke/ 65 | 66 | nav: 67 | - Home: 68 | - Optimization Tutorial: index.md 69 | 70 | - Optimization Algorithms: 71 | - Optimization Template: optimizers/hill_climbing/page.md 72 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy 2 | pandas 3 | streamlit==1.29.0 4 | -------------------------------------------------------------------------------- /scripts/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/scripts/__init__.py -------------------------------------------------------------------------------- /scripts/search_path_gif/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SimonBlanke/optimization-tutorial/19b77c29b87f6db52bccd0316e32b6e809078db9/scripts/search_path_gif/__init__.py --------------------------------------------------------------------------------