Você está na página 1de 59

SISEE

Genetic Algorithms MEE

Thursday, May 19, 2011

SISEE

Algoritmos Genticos

Os Algoritmos Genticos trabalham com populaes de solues que so combinadas para obter novas solues, e assim sucessivamente at obter uma soluo satisfatria.

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Analogia entre a evoluo natural e os algoritmos genticos

Analogia com a Natureza Evoluo Natural Indivduo Gentipo (cromossomas) Reproduo Sexual Mutao Populao Geraes
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Algoritmos Genticos Soluo Representao da Soluo Operador de Recombinao (p.ex. cruzamento) Operador Mutao Conjunto de Solues Ciclos
45

Thursday, May 19, 2011

SISEE

Algoritmos Genticos

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Parmetros dos AG

Tamanho da populao Taxa de cruzamento Taxa de mutao Taxa de substituio Critrios de paragem

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Parmetros dos AG

Tamanho da Populao
Determina
a

qualidade da soluo o tempo de processamento


Considera-se geralmente o tamanho

da populao estvel

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Parmetros dos AG

Taxa de Cruzamento
Dene a probabilidade de dois

indivduos serem cruzados para gerar descendncia Controla a renovao da populao


Valor tpico: 20 - 30%

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Parmetros dos AG

Taxa de Mutao
Mutao permite gerar indivduos

com melhores caractersticas


Permite fugir de mximos/mnimos

locais do problema
Valor tpico: 1%

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Parmetros dos AG

Taxa de Substituio
Dene percentagem da populao a

substituir entre geraes


Valores elevados -> excessiva

renovao
Valores baixos -> estagnao

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Parmetros dos AG

Critrios de Paragem
Encontrar uma soluo com um valor

de aptido (tness) pr-denido


Atingir um determinado limite

temporal
Atingir um determinado nmero de

geraes

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

10

Thursday, May 19, 2011

SISEE

Avaliao e Aptido

A aptido (tness) dum indivduo

calculada usando uma funo de avaliao.


Esta funo especca de cada problema. Retorna um valor numrico que traduz o

mrito da soluo.
O seu clculo deve ser simples j que se

aplica a todos os elementos da populao para cada gerao.

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

11

Thursday, May 19, 2011

SISEE

Seleco

Escolha de N indivduos para posterior

reproduo
Mtodos determinsticos seleccionam com

base na aptido dos indivduos


Arriscam-se a convergir em mnimos locais Processo custoso em populaes grandes

Mtodos estocsticos introduzem grau de

aleatoriedade.

Garantem que um certo nmero de solues menos aptas so escolhidas


12

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Operadores

Operadores de Cruzamento Operadores de Mutao

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

13

Thursday, May 19, 2011

SISEE

Operadores de Cruzamento

Principal operador dos AG Combina material gentico de dois

progenitores previamente seleccionados


Cromossomas representados por sequncias

operador

escolhe aleatoriamente 1 ou 2 pontos de corte aplica uma mscara das posies a trocar mistura partes resultantes dos 2 progenitores

Nem sempre os descendentes so viveis

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

14

Thursday, May 19, 2011

SISEE
Dois Exemplos do operador de cruzamento

Operaes de Cruzamento

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

47

Thursday, May 19, 2011

SISEE

Operadores de Mutao

Trazem de volta populao genes

perdidos na seleco
Fornecem

novos genes que pertenciam populao original

no

A mutao pode ocorrer em 1 ou mais

genes, trocando o gene existente por outro gene vivel.

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

16

Thursday, May 19, 2011

SISEE

Operador de Mutao
Exemplo de Mutao

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

48

Thursday, May 19, 2011

SISEE

Esqueleto tpico de um algoritmo gentico

Populao inicial Gerar P0 Populao de t0 solues iterao potenciais Avalia Pt enquanto ! Condio final Pt faz Avaliar e seleccionar os mais aptos Pt Selecciona Pt Pt Aplica operadores de re-combinao Pt Pt Aplica operadores de mutao Pt Avaliar a sua aptido Avalia Pt Pt+1 Selecciona Sobreviventes de Pt e de Pt nova iterao tt+1 Fim retorna Melhor Soluo Global
46

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

Gerar novos indivduos

SISEE

Problema - Exemplo

Considere o problema de sequenciamento de

5 tarefas numa nica mquina.

Para cada tarefa j (j=1, , 5), seja pj o tempo

de processamento, dj a data de entrega e wj a penalizao (por unidade de tempo) no caso da tarefa j se atrasar. atrasos wjTj. (T - atrasos)

O objectivo minimizar a soma pesada dos

Tempos de processamento: p1=2 p2=4 p3=1 p4=3 p5=3


ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Datas de entrega d1=5 d2=7 d3=11 d4=9 d5=8


49

Thursday, May 19, 2011

SISEE

Problema Exemplo (cont)

Para visualizar uma sequncia muitas vezes utilizado um diagrama de Gantt, onde as linhas esto associadas s tarefas e as colunas aos perodos de tempo. Para a sequncia de tarefas [3,1,2,5,4] Durao obtm-se o calendrio representado a p1=2 seguir.
p2=4 p3=1 p4=3 p5=3

Datas d1=5 d2=7 d3=11 d4=9 d5=8

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

50

Thursday, May 19, 2011

SISEE

Problema - Exemplo (cont)


Mtodo de Recombinao usado

1. Supondo o seguinte par de indivduos, so seleccionados 2 pontos de cruzamento (4 e 7). 2. Os genes situados entre os dois pontos de cruzamento, inclusive, so copiados para os seus descendentes, sendo as restantes posies preenchidas por um caracter H.

A=123456789 B=452187693

A=HHH4567HH B=HHH1876HH
51

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Problema - Exemplo (cont)

Mtodo de Recombinao usado (cont.)


3. De seguida, e comeando no segundo ponto de cruzamento do progenitor B define-se uma nova ordem para os genes: B era 452187693 [9 3 4 5 2 1 8 7 6] 4. Depois de remover os genes 4, 5, 6 e 7 j definidos no filho A, ficamos com os genes [9 3 2 1 8]. As posies em A com H sero preenchidas pela sequncia anterior comeando pelo segundo ponto de cruzamento:

A=218456793
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

22

Thursday, May 19, 2011

SISEE

Problema - Exemplo (cont)

Mtodo de Recombinao usado (cont.)


5. Da mesma forma para gerar o segundo descendente B, define-se uma nova sequncia a partir de A: [8 9 1 2 3 4 5 6 7].
A era 123456789

6. Eliminando os genes j definidos em B, obtm-se a sequncia: [9 2 3 4 5]. A seguir substitui-se nas lacunas (H) de B a sequncia obtida, comeando no 2 ponto de cruzamento obtendo-se o descendente B.

B=345187692
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

23

Thursday, May 19, 2011

SISEE

Problema - Exemplo (cont)


A=123456789 -> B=452187693 B=345187692 A=218456793

No operador de cruzamento com manuteno

de ordem (Order Crossover) os genes a substituir de um dos progenitores aparecero na ordem em que esto no outro progenitor. podero produzir sequncias no viveis quando aplicados a este tipo de problemas (tarefas repetidas por exemplo)
24

Os outros operadores com pontos de corte

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Operador de Cruzamento Uniforme

Permite usar mais pontos de corte Gera aleatoriamente as posies dos genes a

trocar, usando uma mscara binria com a dimenso dos cromossomas Na mscara, 1 implica a troca do gene nessa posio e 0 o contrrio.

Progenitores Mscara aleatria Descendentes


ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

P1 = 10110010 P2 = 11010110 M = 01110110 D1 = 11010110 D2 = 10110010


25

Thursday, May 19, 2011

SISEE

Local & global minima

Genetic Algorithms use a set of starting points (the population) and iteratively generates better points from the population. As long as the initial population covers several basins, G.A. can examine several basins.
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

26

Thursday, May 19, 2011

SISEE

Exemplos de Aplicao

Mximo de uma funo


Considerar a funo f(x)= x2 (x inteiro e no intervalo [0,63]. O objectivo ser maximizar o valor da funo. Codicao das solues por uma string com 6 dgitos

binrios.
Quadro que nos d os elementos da populao e o valor

da funo de avaliao (igual a f(x)):

Factor de avaliao mdio da populao = 488.75


ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

27

Thursday, May 19, 2011

SISEE

Exemplo - Mximo de uma funo

Admita-se que:
o cruzamento se d sempre entre os elementos 1

e 2, originando os elementos 5 e 6, e entre os elementos 3 e 4, originado os elementos 7 e 8. usado um cruzamento uniforme, com mscara 101010. a seleco feita com elitismo puro - os 4 elementos com maiores valores de f(x) so seleccionados e sero os novos elementos 1, 2, 3 e 4 da gerao seguinte. se aparecerem elementos repetidos sero eliminados.
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

28

Thursday, May 19, 2011

SISEE

Exemplo - Mximo de uma funo


Resultado aps o 1 cruzamento:
f(x)

Elemento n Populao ps Soluo x Cruzamento

5 6 7 8

1 2 3 4 (cr. 1-2) (cr. 1-2) (cr. 3-4) (cr. 3-4)


Mscara

100101 001001 010011 001100 001101 100001 011001 000110

37 9 19 12 13 33 25 6

1369 81 361 144 169 1089 625 36


Seleco
29

101010

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Exemplo - Mximo de uma funo

Foram seleccionados os elementos 1, 3, 6 e 7 que passam a constituir a nova gerao:

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

30

Thursday, May 19, 2011

SISEE

Exemplo - Mximo de uma funo


f(x)

Repetindo o ciclo de cruzamento, obtem-se:


Elemento n Populao ps Soluo x Cruzamento

5 6 7 8

1 2 3 4 (cr. 1-2) (cr. 1-2) (cr. 3-4) (cr. 3-4)

100101 010011 100001 011001 000111 110001 011001 110001

37 19 33 25 7 49 9 49
Repetidos

1369 361 1089 625 49 2401 81 2401


Seleco
31

Mscara 101010
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, May 19, 2011

SISEE

Exemplo - Mximo de uma funo

Foram seleccionados os elementos 1, 3, 4 e 6 que passam a consituir a nova gerao:

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

32

Thursday, May 19, 2011

SISEE

Exemplo - Mximo de uma funo

Concluses:
Aps 2 ciclos de cruzamento o factor de avaliao mdio da populao subiu de 488,75 para 1371. o melhor elemento passou de um factor de aptido de 1369 para 2401 Ser que convergiremos rapidamente para a

soluo ptima? Podemos j garantir que esta no ser encontrada por cruzamento de genes. Porqu?
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

33

Thursday, May 19, 2011

SISEE

Exemplo - Mximo de uma funo

Concluses:

Bit 5

Por muitas recombinaes que se faam, nunca o bit 5 poder ter o valor 1. A soluo ptima (111111) inatingvel apenas por cruzamento. Mutaes!
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

34

Thursday, May 19, 2011

SISEE

Exemplo - Mximo de uma funo

Concluses:
Pouca

diversidade estagnao

pode

levar

Os elementos 1 e 2 tm 5 genes idnticos Os elementos 3 e 4 tm 4 genes idnticos

Os seus descendentes acabaro por ter

cromossomas progenitores

iguais

aos

seus

Sem uma mutao favorvel no ser

possvel melhorar a soluo.


ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

35

Thursday, May 19, 2011

SISEE

Exemplo - Sequenciamento de tarefas

Considere-se

o sequenciamento de 9 tarefas {1,2,3,4,5,6,7,8,9} numa mquina. uma ferramenta e as tarefas pares so executadas com uma ferramenta fp.

As tarefas impares so executadas por

O objectivo minimizar o nmero de

trocas de ferramentas.

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

36

Thursday, May 19, 2011

SISEE

Exemplo - Sequenciamento de tarefas

A codicao ser feita por uma sequncia de

9 dgitos A funo de avaliao procurar minimizar o nmero de trocas de ferramentas (o n de passagens de par para mpar e vice-versa), Escolher-se-o os elementos da populao com menor valor dessa funo. Aconselha-se a utilizao de um operador de cruzamento com manuteno de ordem, pois os outros operadores originariam solues no viveis (com tarefas repetidas e com tarefas ausentes).
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

37

Thursday, May 19, 2011

SISEE

Exemplo - Sequenciamento de tarefas

Suponhamos a seguinte populao inicial:

Aplique-se o operador de cruzamento com manuteno de ordem e 2 pontos de corte (entre o 2 e 3 genes e entre o 6 e 7 genes).
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

38

Thursday, May 19, 2011

SISEE

Exemplo - Sequenciamento de tarefas


Aps o cruzamento obteremos:

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

39

Thursday, May 19, 2011

SISEE

Exemplo - Sequenciamento de tarefas


Por seleco elitista, obteremos:

Obtivemos um elemento melhor que o

melhor da gerao anterior (n3) A mdia das funes de avaliao diminuiu Nunca chegaremos soluo ptima s por cruzamento. Porqu?
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

40

Thursday, May 19, 2011

SISEE

MATLAB - A funo ga

Chamar a funo ga a partir da linha de comando:


Sintaxe: [x fval] = ga(@tnessfun, nvars, options) em que tnessfun - funo objectivo ou de tness nvars - n das suas variveis independentes options - estrutura especicando as opes (opcional) Resultados: x - ponto em que o resultado atingido fval - valor nal da funo de tness

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

41

Thursday, May 19, 2011

SISEE

A funo ga

Em que situaes usar a funo ga a partir da linha de comando?


Quando se pretende retornar os resultados

directamente na zona (workspace) do MATLAB;

de

trabalho

Quando se quer correr o algoritmo gentico

repetidas vezes com diferentes opes, chamando-o a partir de uma M-le.

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

42

Thursday, May 19, 2011

SISEE
Exemplo:

A funo ga

>> [x fval] = ga(@rastriginsfcn, 2) Resultado: x = 0.0027 -0.0052

fval = 0.0068

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

43

Thursday, May 19, 2011

SISEE

A funo ga a partir duma M-le

possvel usar a linha de comando para correr vrias vezes um AG com diferentes opes, usando uma M-le.
options = gaoptimset('Generations',300); strm = RandStream('mt19937ar','Seed',6525); RandStream.setDefaultStream(strm); record=[]; for n=0:.05:1 options = gaoptimset(options,'CrossoverFraction', n); [x fval]=ga(@rastriginsfcn, 10,[],[],[],[],[],[],[],options); record = [record; fval]; end

A taxa de Crossover (Crossover fraction / Reproduction options) especica a % da populao, exceptuando os descendentes de elite, que composta por descendentes de crossover.
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

44

Thursday, May 19, 2011

SISEE

A funo ga a partir duma M-le


plot(0:.05:1, record); xlabel('Crossover Fraction'); ylabel('fval')

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

45

Thursday, May 19, 2011

SISEE

Matlab - Optimization Tool

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

46

Thursday, May 19, 2011

SISEE

Matlab - Optimization Tool

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

47

Thursday, May 19, 2011

SISEE

Escrita de funes a optimizar

Criar uma M-le que calcule a funo

a optimizar
A M-le deve aceitar um vector, cujo

comprimento o n de variveis independentes

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

48

Thursday, May 19, 2011

SISEE
Exemplo

Escrita de funes a optimizar

Funo a minimizar:
A M-le dever aceitar um vector x de comprimento 2, correspondendo s variveis x1 e x2.

Passos:
1. Seleccionar File/New 2. Seleccionar M-File 3. Introduzir na M-le o seguinte cdigo:
function z = my_fun(x) z = x(1)^2 - 2*x(1)*x(2) + 6*x(1) + x(2)^2 - 6*x(2);

4. Salvar a M-le no directrio do MATLAB


ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

49

Thursday, May 19, 2011

SISEE

Escrita de funes a optimizar


Exemplo de invocao da funo:

>> my_fun([2 3]) ans = -5

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

50

Thursday, May 19, 2011

SISEE

Maximizao e minimizao

As funes de optimizao do toolbox

de AG minimizam as funes objectivo ou de tness.


Ou seja, resolvem problemas do tipo Se quisermos operar uma maximizao

basta minimizarmos -f(x).

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

51

Thursday, May 19, 2011

SISEE

Exemplo
Achar o mnimo da funo de Rastringin
Mnimo global

Mximo local Mnimo local

Mnimo global [0,0]


ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

52

Thursday, May 19, 2011

SISEE

Exemplo

1. >> optimtool(ga) 2. Na Optimization Tool

No campo Fitness @rastriginsfcn

Function

introduzir:

No campo Number of variables introduzir: 2

3. Clicar em Start na rea Run solver and view results

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

53

Thursday, May 19, 2011

SISEE

Exemplo
Resultados:

Motivo da paragem do algoritmo

Valor nal da funo de tness

Valores das variveis independentes que corrspondem ao valor nal da funo de tness
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

54

Thursday, May 19, 2011

SISEE

Exemplo
Obteno de grcos

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

55

Thursday, May 19, 2011

SISEE

Exerccio 1

1.Criar uma M-le com o seu cdigo 2.Achar o seu mnimo usando AG

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

56

Thursday, May 19, 2011

SISEE
M-le:

Exerccio 1

function y = simple_objective(x) y = (4 - 2.1*x(1)^2 + x(1)^4/3)*x(1)^2 + x(1)*x(2) + ... (-4 + 4*x(2)^2)*x(2)^2

Resultado:

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

57

Thursday, May 19, 2011

SISEE
No Help do MATLAB abrir as seces

Exerccio 2

> Global Optimization Toolbox > Demos > Genetic Algorithm e > Global Optimization Toolbox > Users Guide > Using the Genetic Algorithm > GA examples

Estudem e experimentem com os exemplos:



Thursday, May 19, 2011

Example - Global versus local minima Selection Population diversity Reproduction options Mutation and Crossover ...
58

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

SISEE

Exemplo - mnimos globais e locais


Objectivo: encontrar o mnimo global da funo

Em Global Optimization toolbox User Manual, pags. 5.72-76


ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

59

Thursday, May 19, 2011

Você também pode gostar