A Evolutionary Algorithm (EA) is a method used to solve optimization problems inspired by the theory of evolution and biogenetics. EA is good at exploring large non-linear search spaces for optimal or near optimal solutions.
To model your optimisation application in the Viabl.ai Platform, create a EA Optimisation Script Object using the New EA Optimisation Tool
Use one (or more) Chromosome to represent the solution to your optimisation problem. There are 3 types of Chromosomes; Sequence, Non-Sequence and Picklist. If required an application can combine different types of Chromosomes in one EA Optimisation Object.
In a standard Non-Sequence Chromosome, the each Gene provides a numeric value (within the predefined min/max range). For example in a recipe-based problem, each gene can represent the percentage of one of the recipe's ingredients. One numeric Attribute is used to represents each Gene value.
In a Sequence Chromosome, the order of a set of integer numbers (Genes) is changeable. For example in a planning-based problem the order in which locations are visited or machines used can be optimised with each gene representing the ID index of the locations or the machines. A Sequence Chromosome must be linked to an Viabl.ai Platform Array Object, where each array element representing the value of a single Gene.
In a Picklist Chromosome, the Gene values represent a sub-set of numbers selected from a set of integers. For example, each Gene would represent the ID index of a selectable resource. A Picklist Chromosome must be linked to an Viabl.ai Platform Array Object, where each array element representing the value of a single Gene.
for Sequence & Picklist Chromosomes, you can use the special option in the Add EA Optimisation Build tool to create the Gene Array (or use Add Array tool to create this array before starting the Add EA Optimisation tools)
Create a Cost Function (in a separate JavaScript Script Object) to assess the "fitness" or "cost" of a given solution (individual) to the problem. Set the aim of EA (to maximise the "fitness" or minimise the "cost"). For example to maximise the value of product yield, less the cost of the ingredients used, whilst maintaining a valid recipe. The Cost function must be based on a "common currency" (such as real money or the relative value). Use excessively high costs to penalise "hard constraints" (which must no be violated)