Download presentation

Presentation is loading. Please wait.

Published byClifford Manship Modified over 2 years ago

1
1 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial “Genetic Algorithms are good at taking large, potentially huge search spaces and navigating them, looking for optimal combinations of things, solutions you might not otherwise find in a lifetime.” - Salvatore Mangano Computer Design, May 1995 Genetic Algorithms: A Tutorial

2
2 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial A Simple Example The Traveling Salesman Problem: Find a tour of a given set of cities so that each city is visited only once the total distance traveled is minimized

3
3 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Classes of Search Techniques

4
4 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Components of a GA A problem to solve, and... l Encoding technique (gene, chromosome) l Initialization procedure (creation) l Evaluation function (environment) l Selection of parents (reproduction) l Genetic operators (mutation, recombination) l Parameter settings (practice and art)

5
5 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Simple Genetic Algorithm { initialize population; evaluate population; while TerminationCriteriaNotSatisfied { select parents for reproduction; perform recombination and mutation; evaluate population; }

6
6 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial The GA Cycle of Reproduction reproduction population evaluation modification discard deleted members parents children modified children evaluated children

7
7 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Population Chromosomes could be: Bit strings ( ) Real numbers ( ) Permutations of element (E11 E3 E7... E1 E15) Lists of rules (R1 R2 R3... R22 R23) Program elements (genetic programming) ... any data structure... population

8
8 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Reproduction reproduction population parents children Parents are selected at random with selection chances biased in relation to chromosome evaluations.

9
9 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Chromosome Modification modification children l Modifications are stochastically triggered l Operator types are: Mutation Crossover (recombination) modified children

10
10 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Mutation: Local Modification Before: ( ) After: ( ) Before: ( ) After: ( ) l Causes movement in the search space (local or global) l Restores lost information to the population

11
11 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Crossover: Recombination P1 ( ) ( ) C1 P2 ( ) ( ) C2 Crossover is a critical feature of genetic algorithms: It greatly accelerates search early in evolution of a population It leads to effective combination of schemata (subsolutions on different chromosomes) *

12
12 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Evaluation l The evaluator decodes a chromosome and assigns it a fitness measure l The evaluator is the only link between a classical GA and the problem it is solving evaluation evaluated children modified children

13
13 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Deletion l Generational GA: entire populations replaced with each iteration l Steady-state GA: a few members replaced each generation population discard discarded members

14
14 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial A Simple Example The Traveling Salesman Problem: Find a tour of a given set of cities so that each city is visited only once the total distance traveled is minimized

15
15 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Representation Representation is an ordered list of city numbers known as an order-based GA. 1) London 3) Dunedin 5) Beijing 7) Tokyo 2) Venice 4) Singapore 6) Phoenix 8) Victoria CityList1 ( ) CityList2 ( )

16
16 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Crossover Crossover combines inversion and recombination: * * Parent1 ( ) Parent2 ( ) Child ( ) This operator is called the Order1 crossover.

17
17 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Mutation involves reordering of the list: * Before: ( ) After: ( ) Mutation

18
18 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial TSP Example: 30 Cities

19
19 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Solution i (Distance = 941)

20
20 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Solution j (Distance = 800)

21
21 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Solution k (Distance = 652)

22
22 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Best Solution (Distance = 420)

23
23 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Overview of Performance

24
24 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial Some GA Application Types

25
25 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial %TSPO_GA Open Traveling Salesman Problem (TSP) Genetic Algorithm (GA) % Finds a (near) optimal solution to a variation of the TSP by setting up % a GA to search for the shortest route (least distance for the salesman % to travel to each city exactly once without returning to the starting city) % % Summary: % 1. A single salesman travels to each of the cities but does not close % the loop by returning to the city he started from % 2. Each city is visited by the salesman exactly once % % Input: % XY (float) is an Nx2 matrix of city locations, where N is the number of cities % DMAT (float) is an NxN matrix of point to point distances/costs % POPSIZE (scalar integer) is the size of the population (should be divisible by 4) % NUMITER (scalar integer) is the number of desired iterations for the algorithm to run % SHOWPROG (scalar logical) shows the GA progress if true % SHOWRESULT (scalar logical) shows the GA results if true % % Output: % OPTROUTE (integer array) is the best route found by the algorithm % MINDIST (scalar float) is the cost of the best route % % Example: % n = 50; % xy = 10*rand(n,2); % popSize = 60; % numIter = 1e4; % showProg = 1; % showResult = 1; % a = meshgrid(1:n); % dmat = reshape(sqrt(sum((xy(a,:)-xy(a',:)).^2,2)),n,n); % [optRoute,minDist] = tspo_ga(xy,dmat,popSize,numIter,showProg,showResult); % % Example: % n = 50; % phi = (sqrt(5)-1)/2; % theta = 2*pi*phi*(0:n-1); % rho = (1:n).^phi; % [x,y] = pol2cart(theta(:),rho(:)); % xy = 10*([x y]-min([x;y]))/(max([x;y])-min([x;y])); % popSize = 60; % numIter = 1e4; % showProg = 1; % showResult = 1; % a = meshgrid(1:n); % dmat = reshape(sqrt(sum((xy(a,:)-xy(a',:)).^2,2)),n,n); % [optRoute,minDist] = tspo_ga(xy,dmat,popSize,numIter,showProg,showResult); % % Example: % n = 50; % xyz = 10*rand(n,3); % popSize = 60; % numIter = 1e4; % showProg = 1; % showResult = 1; % a = meshgrid(1:n); % dmat = reshape(sqrt(sum((xyz(a,:)-xyz(a',:)).^2,2)),n,n); % [optRoute,minDist] = tspo_ga(xyz,dmat,popSize,numIter,showProg,showResult); % % See also: tsp_ga, tsp_nn, tspof_ga, tspofs_ga, distmat % % Author: Joseph Kirk % % Release: 1.3 % Release Date: 11/07/11 function varargout = tspo_ga(xy,dmat,popSize,numIter,showProg,showResult) % Process Inputs and Initialize Defaults nargs = 6; for k = nargin:nargs-1 switch k case 0 xy = 10*rand(50,2); case 1 N = size(xy,1); a = meshgrid(1:N); dmat = reshape(sqrt(sum((xy(a,:)-xy(a',:)).^2,2)),N,N); case 2 popSize = 100; case 3 numIter = 1e4; case 4 showProg = 1; case 5 showResult = 1; otherwise end end % Verify Inputs [N,dims] = size(xy); [nr,nc] = size(dmat); if N ~= nr || N ~= nc error('Invalid XY or DMAT inputs!') end n = N; % Sanity Checks popSize = 4*ceil(popSize/4); numIter = max(1,round(real(numIter(1)))); showProg = logical(showProg(1)); showResult = logical(showResult(1)); % Initialize the Population pop = zeros(popSize,n); pop(1,:) = (1:n); for k = 2:popSize pop(k,:) = randperm(n); end % Run the GA globalMin = Inf; totalDist = zeros(1,popSize); distHistory = zeros(1,numIter); tmpPop = zeros(4,n); newPop = zeros(popSize,n); if showProg pfig = figure('Name','TSPO_GA | Current Best Solution','Numbertitle','off'); end for iter = 1:numIter % Evaluate Each Population Member (Calculate Total Distance) for p = 1:popSize d = 0; % Open Path for k = 2:n d = d + dmat(pop(p,k-1),pop(p,k)); end totalDist(p) = d; end % Find the Best Route in the Population [minDist,index] = min(totalDist); distHistory(iter) = minDist; if minDist 2, plot3(xy(optRoute,1),xy(optRoute,2),xy(optRoute,3),'r.-'); else plot(xy(optRoute,1),xy(optRoute,2),'r.-'); end title(sprintf('Total Distance = %1.4f, Iteration = %d',minDist,iter)); end end % Genetic Algorithm Operators randomOrder = randperm(popSize); for p = 4:4:popSize rtes = pop(randomOrder(p-3:p),:); dists = totalDist(randomOrder(p-3:p)); [ignore,idx] = min(dists); %#ok bestOf4Route = rtes(idx,:); routeInsertionPoints = sort(ceil(n*rand(1,2))); I = routeInsertionPoints(1); J = routeInsertionPoints(2); for k = 1:4 % Mutate the Best to get Three New Routes tmpPop(k,:) = bestOf4Route; switch k case 2 % Flip tmpPop(k,I:J) = tmpPop(k,J:-1:I); case 3 % Swap tmpPop(k,[I J]) = tmpPop(k,[J I]); case 4 % Slide tmpPop(k,I:J) = tmpPop(k,[I+1:J I]); otherwise % Do Nothing end end newPop(p-3:p,:) = tmpPop; end pop = newPop; end if showResult % Plots the GA Results figure('Name','TSPO_GA | Results','Numbertitle','off'); subplot(2,2,1); pclr = ~get(0,'DefaultAxesColor'); if dims > 2, plot3(xy(:,1),xy(:,2),xy(:,3),'.','Color',pclr); else plot(xy(:,1),xy(:,2),'.','Color',pclr); end title('City Locations'); subplot(2,2,2); imagesc(dmat(optRoute,optRoute)); title('Distance Matrix'); subplot(2,2,3); if dims > 2, plot3(xy(optRoute,1),xy(optRoute,2),xy(optRoute,3),'r.-'); else plot(xy(optRoute,1),xy(optRoute,2),'r.-'); end title(sprintf('Total Distance = %1.4f',minDist)); subplot(2,2,4); plot(distHistory,'b','LineWidth',2); title('Best Solution History'); set(gca,'XLim',[0 numIter+1],'YLim',[0 1.1*max([1 distHistory])]); end % Return Outputs if nargout varargout{1} = optRoute; varargout{2} = minDist; end

Similar presentations

© 2016 SlidePlayer.com Inc.

All rights reserved.

Ads by Google