Mathematical optimization

Mathematical optimization

Differential Evolution is an effective, general purpose, black box optimization tool. In this new example we show how to look for the global minimum of the Rastrigin function using Vita and DE.

Read more »


Completely revised Titanic classification example

Titanic: Machine Learning from Disaster is a well known getting started prediction competition promoted by Kaggle.

The revised example is a step by step guide illustrating the basic elements of classification with genetic programming and the Vita library.


Slides from C++ Day (Pavia, Italy - 2018)

Slides from the C++Day 2018 (Pavia - Italy) talk are available here: Lessons Learned Developing Evolutionary Algorithms in C++.

The C++ Day is a fall event dedicated to C++ development where professionals, students and companies meet and share experience. The C++ Day has been co-organized with the University of Pavia, in particular with the Physics Department.


Nonogram puzzle

An example of a nonogram puzzle

Nonograms, also known as Japanese puzzles, are logic puzzles that are sold by many news paper vendors. The challenge is to fill a grid with black and white pixels in such a way that a given description for each row and column, indicating the lengths of consecutive segments of black pixels, is adhered to. Although the Nonograms in puzzle books can usually be solved by hand, the general problem of solving Nonograms is NP-hard.

Read more »


Solving a Tetris-puzzle with GAs

The puzzle in the picture comes from a Stackoverflow's question (https://stackoverflow.com/q/47858717/3235496)

The general challenge posed is to tile a given region with a given set of polyominoes.


GAs aren't the most appropriate tool for this kind of puzzle. GAs tend to produce good but sub-optimal solutions and this behaviour is acceptable only for some combinatorial optimization problems.

Anyway the last example proposed finds a solution almost always (often in a short time) and GAs prove themselves a general, viable path especially when previous knowledge isn't available.

Read more »


Hello World! Genetic Algorithms


Writing a GAs system from scratch is a great learning experience but for real tasks don't reinvent the wheel.

It's not just a matter of subtleties: issues in a fresh implementation can easily go unnoticed because GAs are fault-tolerant by their very nature… at the expense of performance.

Read more »


A genetic programming approach to Forex Expert Advisor generation

A genetic programming approach to Forex Expert Advisor generation

An example of how to use Genetic Programming to evolve a simple software agent, more specifically a MQL5 Expert Advisor (EA), operating on the Forex exchange market.

Read more »