ruck
🧬 Modularised Evolutionary Algorithms For Python with Optional JIT and Multiprocessing (Ray) support. Inspired by PyTo…
Heuristic global optimization algorithms in Python
git clone https://github.com/sharma-n/global_optimization.gitsharma-n/global_optimizationGlobal optimization attempts to find the global minima / maxima of a function or set of functions. The functions may have more than one local minima and hence global optimization differs from local optimization in that it cannot be easily solved by using something like gradient descent. Moreover, in a lot of cases explicitly calculating the derivatives of the functions may be intractable.
Heuristic Global Optimization aims to solve the global optimization problem using heuristics to find an approximate solution, unlike classical algorithms which aim to find exact solutions. This repository aims to be a collection of such algorithms, providing both the theory behind the algorithms as well as Python implementations.
Surrogate Optimization goes one step further, with the goal of providing the best possible solution within the minimum number of function evaluations. This is especially useful when the function to be optimized can be computationally very expensive, for example, the loss of a neural network trained with a set of hyperparameters. Choosing the hyperparameters which minimize the loss function of a neural network within a given number of epochs is better done using surrogate optimization than random guessing.
| Path Finding | Travelling Salesman Probem |
|---|---|
![]() |
![]() |
6. Multi Objective Optimization & NSGA II.ipynb for more details).| Kursawe Function | Viennet Function |
|---|---|
![]() |
![]() |
| Greedy Search | Tabu Search |
|---|---|
![]() |
![]() |
| Total distance | Optimal Path |
|---|---|
![]() |
![]() |
The code is available as separate Jupyter notebooks, which can be run independent on one another.
The 11. NN Hyperparameter Optimization.ipynb notebook requires the pySOT package installed, which can be done using:
$ pip install pySOT
The theoretical details for a lot of the algorithms have been taken from the course Surrogate and Metaheuristic Global Optimization offered in NUS, taught by Prof. Christine Shoemaker. Prof. Shoemaker's team is also responsible for the development of the pySOT package.
more like this
🧬 Modularised Evolutionary Algorithms For Python with Optional JIT and Multiprocessing (Ray) support. Inspired by PyTo…
A simple simulation in Unity, which uses genetic algorithm to optimize forces applied to cubes
Artificial life. Particles driven by cellular automata, fighting on a grid and evolving through genetic algorithms.
Fractal structures grown from a single point, using either cellular automata rules or convolutional kernels.
search projects, people, and tags