You are on page 1of 58

SISEE

Genetic Algorithms
MEE

Thursday, April 7, 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, April 7, 2011

SISEE

Analogia entre a evoluo natural e os


algoritmos genticos

Analogia com a Natureza


Evoluo Natural

Algoritmos Genticos

Indivduo

Soluo

Gentipo (cromossomas)

Representao da Soluo

Reproduo Sexual

Operador de Recombinao
(p.ex. cruzamento)

Mutao

Operador Mutao

Populao

Conjunto de Solues

Geraes

Ciclos

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

45

SISEE

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

Algoritmos Genticos

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, April 7, 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, April 7, 2011

SISEE

Parmetros dos AG

Taxa de Cruzamento
Define a probabilidade de 2 indivduos

serem cruzados para gerar descendncia


Valor tpico: 20 - 30%

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 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, April 7, 2011

SISEE

Parmetros dos AG

Taxa de Substituio
Define percentagem da populao a

substituir entre geraes


Valores elevados -> excessiva

renovao
Valores baixos -> estagnao

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

SISEE

Parmetros dos AG

Critrios de Paragem
Encontrar uma soluo com um valor

de aptido (fitness) pr-definido


Atingir um determinado limite

temporal
Atingir um determinado nmero de

geraes

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

10

SISEE

Avaliao e Aptido

A aptido (fitness) dum indivduo

calculada usando uma funo de avaliao.


Esta funo especfica 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

Thursday, April 7, 2011

11

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

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

12

SISEE

Operadores

Operadores de Cruzamento
Operadores de Mutao

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

13

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

Thursday, April 7, 2011

14

SISEE

Operaes de Cruzamento

Dois Exemplos do
operador de
cruzamento

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

47

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

Thursday, April 7, 2011

16

SISEE

Operador de Mutao
Exemplo de Mutao

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

48

Gerar novos indivduos

SISEE

Populao inicial
Gerar P0
Populao de
t0
solues
iterao
potenciais
Avalia Pt
enquanto ! Condio de 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
Avalia Pt
Avaliar a sua aptido
Pt+1 Selecciona Sobreviventes de Pt e de Pt
tt+1
nova iterao
Fim
retorna Melhor Soluo Global

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

Esqueleto tpico de um algoritmo


gentico

46

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.

O objectivo minimizar a soma pesada dos

atrasos wjTj.

(T - atrasos)

Tempos de processamento:
p1=2
p2=4
p3=1
p4=3
p5=3
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

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

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

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

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

50

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

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

A=HHH4567HH
B=HHH1876HH
51

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

Thursday, April 7, 2011

22

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

Thursday, April 7, 2011

23

SISEE

Problema - Exemplo (cont)


A=123456789

A=218456793
->

B=452187693

B=345187692

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.

Os outros operadores com pontos de corte

podero produzir sequncias no viveis


quando aplicados a este tipo de problemas
(tarefas repetidas por exemplo)

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

24

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 o 1 implica a troca do gene
nessa posio e o 0 o contrrio.

Progenitores
Mscara aleatria
Descendentes
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

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

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.
Codificao 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)).

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

26

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 da soluo 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
so
eliminados.
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

27

SISEE

Exemplo - Mximo de uma funo


Resultado aps o 1 cruzamento:

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

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

100101
001001
010011
001100
001101
100001
011001
000110

101010

37
9
19
12
13
33
25
6

f(x)

1369
81
361
144
169
1089
625
36
Seleco
28

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

Thursday, April 7, 2011

29

SISEE

Exemplo - Mximo de uma funo

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

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

Thursday, April 7, 2011

37
19
33
25
7
49
9
49

f(x)

1369
361
1089
625
49
2401
81
2401
Seleco
30

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

Thursday, April 7, 2011

31

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

Thursday, April 7, 2011

32

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

Thursday, April 7, 2011

33

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

Thursday, April 7, 2011

34

SISEE

Exemplo - Sequenciamento de tarefas

Considere-se

o sequenciamento de 9
tarefas {1,2,3,4,5,6,7,8,9} numa mquina.

As tarefas impares so executadas por

uma ferramenta fi e as tarefas pares so


executadas com uma ferramenta fp.
O objectivo minimizar o nmero de

trocas de ferramentas.

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

35

SISEE

Exemplo - Sequenciamento de tarefas

A codificao 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

Thursday, April 7, 2011

36

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

Thursday, April 7, 2011

37

SISEE

Exemplo - Sequenciamento de tarefas


Aps o cruzamento obteremos:

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

38

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

Thursday, April 7, 2011

39

SISEE

MATLAB - A funo ga

Chamar a funo ga a partir da linha de comando:


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

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

40

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-file.

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

41

SISEE

A funo ga

Exemplo:
>> [x fval] = ga(@rastriginsfcn, 2)
Resultado:
x =

0.0027

-0.0052

fval =
0.0068

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

42

SISEE

A funo ga a partir duma M-file

possvel usar a linha de comando para correr vrias


vezes um AG com diferentes opes, usando uma M-file.
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)


especifica a % da populao, exceptuando os descendentes de
elite, que composta por descendentes de crossover.
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

43

SISEE

A funo ga a partir duma M-file


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

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

44

SISEE

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

Matlab - Optimization Tool

45

SISEE

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

Matlab - Optimization Tool

46

SISEE

Escrita de funes a optimizar

Criar uma M-file que calcule a funo

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

comprimento o n de variveis
independentes

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

47

SISEE

Escrita de funes a optimizar

Exemplo
Funo a minimizar:
A M-file 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-file 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-file no directrio do MATLAB


ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

48

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

Thursday, April 7, 2011

49

SISEE

Maximizao e minimizao

As funes de optimizao do toolbox

de AG minimizam as funes objectivo


ou de fitness.
Ou seja, resolvem problemas do tipo
Se quisermos operar uma maximizao

basta minimizarmos -f(x).

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

50

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

Thursday, April 7, 2011

51

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

Thursday, April 7, 2011

52

SISEE

Exemplo
Resultados:

Motivo da
paragem do
algoritmo

Valor final
da funo de
fitness

Valores das variveis independentes que


corrspondem ao valor final da funo de fitness
ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

53

SISEE

Exemplo
Obteno de grficos

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

54

SISEE

Exerccio 1

1.Criar uma M-file com o seu cdigo


2.Achar o seu mnimo usando AG

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

55

SISEE

Exerccio 1

M-file:
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

Thursday, April 7, 2011

56

SISEE

Exerccio 2

No Help do MATLAB
abrir a seco

> Genetic Algorithm & Direct Search Toolbox


> User Guide
> Genetic Algorithm Examples
> Improving Your results

Estudem e experimentem com os exemplos:

Example - Global versus local minima Selection


Population diversity
Reproduction options
Mutation and Crossover
...

ISEP-DEI, 2007 Carlos Ramos, 2010 Antnio Silva

Thursday, April 7, 2011

57

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

Thursday, April 7, 2011

58

You might also like