Evolutionary Computation
Evolutionary Computation Tutorial: Multi-objective optimisation implementation using Java
Shan He
School for Computational Science University of Birmingham
Modules 02411 and 22313: EC Evolutionary Computation Outline
Outline of Topics
Existing EA/MOEA libraries and toolboxes
Java MOEA framework
How to Evaluate MOEAs?
Notable Companies used Evolutionary Computation
Conclusion Evolutionary Computation Existing EA/MOEA libraries and toolboxes
Existing EA/MOEA frameworks and toolboxes I Matlab I Matworks Global Optimisation Toolbox I Genetic Algorithm Optimization Toolbox (GAOT) I Java I ECJ: Java Evolutionary Computation Toolkit I Watchmaker Framework for Evolutionary Computation I JGAP: Java Genetic Algorithm Package I MOEA framework I C/C++ I ParadisEO I Evolving Objects (EO): an Evolutionary Computation Framework I Open BEAGLE I Python I PyGMO I DEAP I inspyred: Bio-inspired Algorithms in Python Evolutionary Computation Java MOEA framework
What is MOEA framework
I “A free and open source Java library for developing and experimenting with multiobjective evolutionary algorithms (MOEAs) and other general-purpose multiobjective optimization algorithms” from MOEA framework web page I Many state-of-the-art multiobjective evolutionary algorithms are included:
I Genetic algorithms: NSGA-II I Differential evolution I Particle swarm optimization I Genetic programming and Grammatical evolution I Other features: I Easy to use: minimum effor to define a problem, a algorithm and a experiment I Modular design: constructing new optimization algorithms from existing components I Very good documentation Evolutionary Computation Java MOEA framework
How to use MOEA?
I Download the compiled binaries from Sourceforge
I Unzip and add libraries to Eclipse
I To define a new problem, extend the AbstractProblem class I Use Executor, Instrumenter and Analyzer classes
I Executor: class for constructing and executing runs of an algorithm I Instrumenter: class for analyzing the performance of algorithms I Analyzer: class for analysing the resulting Pareto approximation set and how it compares against a known reference set. Evolutionary Computation Java MOEA framework
Example: multi-objective optimization in structural design Problem: design of a four bar plan truss with two objectives:
I Minimise the volume of the truss
I Minimise its joint displacement Evolutionary Computation Java MOEA framework
Example: multi-objective optimization in structural design Mathematical formulation: ( √ √ f1(x) = L(2x1 + 2x2 + x3 + x4) min √ √ f (x) = FL ( 2 + 2 2 − 2 2 + 2 ) 2 E x1 x2 x3 x4 such that:
√(F /σ) ≤ x1 ≤ 3(F /σ) 2(F /σ) ≤ x ≤ 3(F /σ) √ 2 (1) 2(F /σ) ≤ x3 ≤ 3(F /σ) (F /σ) ≤ x4 ≤ 3(F /σ)
where xi , i = 1, 2, 3, 4 are the cross sectional areas of the four bars, the acting force F = 10kN, Young’s modulus of elasticity E = 2 × 105 kN/cm2, the length L = 200cm, the only nonzero stress component σ = 10kN/cm2. Evolutionary Computation How to Evaluate MOEAs?
MOEAs Test Functions
I ZDT benchmark: 6 problems, e.g., ZDT1 - ZDT6
I DTLZ benchmark: 7 problems, e.g., DTLZ1 - DTLZ7
I WFG benchmark: 9 problems, e.g., WFG1 - WFG9
I CEC2009 competition benchmark: 10 problems, e.g., UF1 - UF10
I One example: ZDT1:
f1 = x1 q f = g · 1.0 − f1 2 g (2) 9 Pn g(x2, ··· , xn) = 1.0 + n−1 i=2 xi 0 ≤ xi ≤ 1, i = 1, ··· , n Evolutionary Computation How to Evaluate MOEAs?
MOEAs Test Functions: ZDT1 Pareto Front of ZDT1: Evolutionary Computation How to Evaluate MOEAs?
Multiobjective optimisation performance assessment
I We need to design performance metrics or indicators to evaluate the algorithms’ performance. I What characteristics should good Pareto optimal solutions have:
I Minimize the distance of the Pareto front produced by the algorithm with respect to the true Pareto front if it is known I Maximize the spread of solutions found, so that we can have a distribution of vectors as smooth and uniform as possible. I Maximize the amount of elements of the Pareto optimal set found. I A myriad of ways of metrics, but can be classified as three kinds for measuring:
I Convergence: converge to true Pareto front I Spread: maintain diversity of solution mainly in objective space I Both Convergence and Spread Evolutionary Computation How to Evaluate MOEAs?
Multiobjective optimisation performance assessment
I A few popular indicators
I The hypervolume indicator: defines the size of multidimensional space that a set of solutions cover, without counting the same area twice. I Spread: calculates how uniformly spread across the objective space the solutions are within their set. I The cover function: calculates the proportion of one solution set that is dominated by another set. Thus, if C(X , Y ) = 0.9, 90% of solutions in Y are dominated by solutions in X. I The Purity function: unifies the solutions returned by a set of algorithms on a particular problem, and returns the proportion of each that remain nondominated in the set. I A comprehensive indicators are listed in this paper: Yen, G.G. and He, Z.N. Performance Metric Ensemble for Multiobjective Evolutionary Algorithms, IEEE Trans on Evolutionary Computation, 18(1), Feb. 2014 (link to the paper) Evolutionary Computation How to Evaluate MOEAs?
Example: the hypervolume indicator
I Also called S metrics, essentially calculates how much of the objective space is dominated by a given nondominated set A
I Formal definition: Let X be set of decision vectors for the considered problem and A = {x1, x2,, xt} ∈ X a set of t decision vectors. The hypervolume indicator or S metrics S(A) gives the volume enclosed by the union of the polytopes p1, p2, ··· , pt , where each pi is formed by the intersection of the following hyperplanes arising out of xi, along with the axes: for each axis in the objective space there exist a hyperplane perpendicular to the axis and passing through the point (f1(xi ), f2(xi ), ··· , fk (xi )). Evolutionary Computation How to Evaluate MOEAs?
Example: the hypervolume indicator Pareto Front of ZDT1:
f1(x) Minimising f1(x) and f2(x)
A B C PA D E PC PD PE
f2(x) Evolutionary Computation Notable Companies used Evolutionary Computation
Notable Companies used Evolutionary Computation
I SolveIT Software:
I Founded by Zbigniew Michalewicz, author of Genetic Algorithms + Data Structures I Uses Genetic Algorithm, PSO and other metaheurstic algorithms for advanced planning and scheduling optimization I Widely used in industries of wine, grain handling and mining such as Rio Tinto Group and BHP Billiton I 150 employees and 5 international offices I Acquired by Schneider Electric in 2012 but price was not divulged I Their Hybrid Optimisation System
I Red Cedar Technology
I DecisionVis Evolutionary Computation Conclusion
Conclusion
I Use library to solve your optimisation problems
I Use performance metrics to evaluate your algorithm and solutions