90 likes | 168 Views
Motivation. Typically , an evolutionary optimisation framework considers the EA to be used to evolve a population of candidate solutions to the problem at hand
E N D
Motivation • Typically, • an evolutionary optimisation framework considers the EA to be used to evolve a population of candidate solutions to the problem at hand • candidate solution encodes a complete solution (a complete set of problem control parameters, a complete schedule in JSP, a complete tour for TSP, etc. • Here, • EA does not handle the solved problem as a whole • EA is employed within the iterative optimisation framework • its role is to evolve the best modification of the current solution prototype in each iteration
Outline of POEMS algorithm generate(Prototype); repeat BestSequence EA(Prototype); if(apply_to(BestSequence, Prototype) is_better_than Prototype); then Prototype apply_to(BestSequence, Prototype); until(POEMS termination condition); return Prototype;
Implementation Issues • Action Sequence Representation • linear chromosomes of maximal length MaxGenes • gene = (action_type, parameters) • noop • void action with no effect on the prototype, regardless of the values of its parameters • one or more noop actions allowed in a chromosome • variable effective length of chromosomes • Genetic Operators • Tournament selection • Crossover – generalised uniform • Mutation – action_type or parameterschanged (1 gene per sequence) • Evolutionary Model • Generational / Steady-state
Simple Generational EA initialize(OldPop); BestSequence best_of(OldPop); repeat NewPop BestSequence; // elitism repeat Parents select(OldPop); Children cross_over(Parents); mutate(Children); evaluate(Children); NewPop Children; until(NewPop is completed); BestSequence = best_of(NewPop); switch(OldPop, NewPop); until(EA termination condition); return BestSequence;
Steady-state EA initialize(Population); repeat Parents select(Population); Children cross_over(Parents); mutate(Children); evaluate(Children); Replacement = find replacement(Population); Population[Replacement] Child1; Replacement = find replacement(Population); Population[Replacement] Child2; until(EA termination condition); BestSequence best of(Population); return BestSequence;
Elementary Functions • Binary String Optimisation Problems • invert(gene) … inverts the specified gene of the prototype • linkage independent • Travelling Salesman Problem • move(city1, city2) moves city1 right after city2 in the tour • invert(city1, city2) inverts a subtour between city1 and city2 • swap(city1, city2) swaps city1 and city2 • Job Shop Scheduling Problem • …
Example of POEMS execution: TSP Initial tour 965.134 after iteration 1 after iteration 2 after iteration 3 Final tour 824.8
Example of Evolved Solutions Initial prototype of length 4403 Initial prototype of length 3655