SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... ·...

58
SISEE Genetic Algorithms MEE Thursday, April 7, 2011

Transcript of SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... ·...

Page 1: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

SISEEGenetic Algorithms

MEE

Thursday, April 7, 2011

Page 2: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Algoritmos Genéticos

2

Os Algoritmos Genéticos trabalham com populações de soluções que são combinadas para obter novas soluções, e assim sucessivamente até obter uma solução satisfatória.

Thursday, April 7, 2011

Page 3: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE

45

Analogia entre a evolução natural e os algoritmos genéticos

Analogia com a NaturezaAnalogia com a NaturezaAnalogia com a Natureza

Evolução Natural ⇔ Algoritmos Genéticos

Indivíduo — Solução

Genótipo (cromossomas) — Representação da Solução

Reprodução Sexual — Operador de Recombinação (p.ex. cruzamento)

Mutação — Operador Mutação

População — Conjunto de Soluções

Gerações — Ciclos

Thursday, April 7, 2011

Page 4: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Algoritmos Genéticos

4

Thursday, April 7, 2011

Page 5: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Parâmetros dos AG

5

•Tamanho da população•Taxa de cruzamento•Taxa de mutação•Taxa de substituição•Critérios de paragem

Thursday, April 7, 2011

Page 6: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Parâmetros dos AG

6

Tamanho da População

• Determina • a qualidade da solução• o tempo de processamento

• Considera-se geralmente o tamanho da população estável

Thursday, April 7, 2011

Page 7: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Parâmetros dos AG

7

Taxa de Cruzamento

• Define a probabilidade de 2 indivíduos serem cruzados para gerar descendência

• Valor típico: 20 - 30%

Thursday, April 7, 2011

Page 8: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Parâmetros dos AG

8

Taxa de Mutação

• Mutação permite gerar indivíduos com melhores características

• Permite fugir de máximos/mínimos locais do problema

• Valor típico: 1%

Thursday, April 7, 2011

Page 9: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Parâmetros dos AG

9

Taxa de Substituição

• Define percentagem da população a substituir entre gerações

• Valores elevados -> excessiva renovação

• Valores baixos -> estagnação

Thursday, April 7, 2011

Page 10: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Parâmetros dos AG

10

Critérios de Paragem

• Encontrar uma solução com um valor de aptidão (“fitness”) pré-definido

• Atingir um determinado limite temporal

• Atingir um determinado número de gerações

Thursday, April 7, 2011

Page 11: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Avaliação e Aptidão

11

• A aptidão (“fitness”) dum indivíduo é calculada usando uma função de avaliação.

• Esta função é específica de cada problema.• Retorna um valor numérico que traduz o

mérito da solução.• O seu cálculo deve ser simples já que se

aplica a todos os elementos da população para cada geração.

Thursday, April 7, 2011

Page 12: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Selecção

12

• Escolha de N indivíduos para posterior reprodução

• Métodos determinísticos seleccionam com base na aptidão dos indivíduos• Arriscam-se a convergir em mínimos locais• Processo custoso em populações grandes

• Métodos estocásticos introduzem grau de aleatoriedade.• Garantem que um certo número de soluções

menos aptas são escolhidas

Thursday, April 7, 2011

Page 13: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Operadores

•Operadores de Cruzamento

•Operadores de Mutação

13

Thursday, April 7, 2011

Page 14: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Operadores de Cruzamento

14

• Principal operador dos AG• Combina material genético de dois

progenitores previamente seleccionados• Cromossomas representados por sequências

• operador • escolhe aleatoriamente 1 ou 2 pontos de corte• aplica uma máscara das posições a trocar• mistura partes resultantes dos 2 progenitores

• Nem sempre os descendentes são viáveis

Thursday, April 7, 2011

Page 15: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE

47

Operações de Cruzamento

Dois Exemplos do operador de cruzamento

Thursday, April 7, 2011

Page 16: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Operadores de Mutação

16

• Trazem de volta à população genes perdidos na selecção

• Fornecem novos genes que não pertenciam à população original

• A mutação pode ocorrer em 1 ou mais genes, trocando o gene existente por outro gene viável.

Thursday, April 7, 2011

Page 17: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE

48

Operador de Mutação

Exemplo de Mutação

Thursday, April 7, 2011

Page 18: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE

46

Esqueleto típico de um algoritmo genético

Gerar P0

t ← 0Avalia Pt

enquanto ! Condição de final Pt faz P’t ← Selecciona Pt

P’’t ← Aplica operadores de re-combinação P’t P’’’t ← Aplica operadores de mutação P’’t Avalia P’’’t Pt+1 ← Selecciona Sobreviventes de Pt e de P’’’t t ← t + 1Fimretorna Melhor Solução Global

iteraçãoPopulação de soluções potenciais

População inicial

Avaliar e seleccionar os mais aptos

Gera

r nov

os in

divídu

os

Avaliar a sua aptidão

nova iteração

Thursday, April 7, 2011

Page 19: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE

49

Problema - Exemplo

• Considere o problema de sequenciamento de 5 tarefas numa única máquina.

• Para cada tarefa j (j=1, …, 5), seja pj o tempo de processamento, dj a data de entrega e wj a penalização (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=2p2=4p3=1p4=3p5=3

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

Thursday, April 7, 2011

Page 20: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE

50

Problema Exemplo (cont)

Para visualizar uma sequência é muitas vezes utilizado um diagrama de Gantt, onde as linhas estão associadas às tarefas e as colunas aos períodos de tempo. Para a sequência de tarefas [3,1,2,5,4] obtém-se o calendário representado a seguir.

Duraçãop1=2p2=4p3=1p4=3p5=3

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

Thursday, April 7, 2011

Page 21: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE

51

Problema - Exemplo (cont)

1. Supondo o seguinte par de indivíduos, são seleccionados 2 pontos de cruzamento (4º e 7º). 2. Os genes situados entre os dois pontos de cruzamento, inclusive, são copiados para os seus descendentes, sendo as restantes posições preenchidas por um caracter H.

Método de Recombinação usado

A=123456789 A’=HHH4567HHB=452187693 B’=HHH1876HH

Thursday, April 7, 2011

Page 22: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Problema - Exemplo (cont)

22

3. De seguida, e começando no segundo ponto de cruzamento do progenitor B define-se uma nova ordem para os genes:

[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 posições em A’ com H serão preenchidas pela sequência anterior começando pelo segundo ponto de cruzamento:

Método de Recombinação usado (cont.)

A’=218456793

B era 452187693

Thursday, April 7, 2011

Page 23: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Problema - Exemplo (cont)

23

5. Da mesma forma para gerar o segundo descendente B’, define-se uma nova sequência a partir de A:

[8 9 1 2 3 4 5 6 7].

6. Eliminando os genes já definidos em B’, obtém-se a sequência: [9 2 3 4 5]. A seguir substitui-se nas lacunas (H) de B’ a sequência obtida, começando no 2º ponto de cruzamento obtendo-se o descendente B’.

Método de Recombinação usado (cont.)

B’=345187692

A era 123456789

Thursday, April 7, 2011

Page 24: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Problema - Exemplo (cont)

24

A=123456789 A’=218456793->

B=452187693 B’=345187692

• No operador de cruzamento com manutenção de ordem (Order Crossover) os genes a substituir de um dos progenitores aparecerão na ordem em que estão no outro progenitor.

• Os outros operadores com pontos de corte poderão produzir sequências não viáveis quando aplicados a este tipo de problemas (tarefas repetidas por exemplo)

Thursday, April 7, 2011

Page 25: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Operador de Cruzamento Uniforme

• Permite usar mais pontos de corte• Gera aleatoriamente as posições dos genes a

trocar, usando uma máscara binária com a dimensão dos cromossomas

• Na máscara o 1 implica a troca do gene nessa posição e o 0 o contrário.

25

P1 = 10110010 P2 = 11010110M = 01110110

D1 = 11010110D2 = 10110010

Progenitores

Máscara aleatória

Descendentes

Thursday, April 7, 2011

Page 26: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplos de Aplicação

26

Máximo de uma função• Considerar a função f(x)= x2 (x inteiro e no intervalo [0,63]. • O objectivo será maximizar o valor da função.• Codificação das soluções por uma string com 6 dígitos

binários.• quadro que nos dá os elementos da população e o valor

da função de avaliação (igual a f(x)).

Thursday, April 7, 2011

Page 27: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Máximo de uma função

27

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 máscara 101010.

• A selecção é feita com elitismo puro - os 4 elementos da solução com maiores valores de f(x) são seleccionados e serão os novos elementos 1, 2, 3 e 4 da geração seguinte.

• Se aparecerem elementos repetidos são eliminados.

Thursday, April 7, 2011

Page 28: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Máximo de uma função

28

Elemento nº População pós Cruzamento

Solução x f(x)

1 100101 37 13692 001001 9 813 010011 19 3614 001100 12 144

5 (cr. 1-2) 001101 13 1696 (cr. 1-2) 100001 33 10897 (cr. 3-4) 011001 25 6258 (cr. 3-4) 000110 6 36

Resultado após o 1º cruzamento:

101010Máscara Selecção

Thursday, April 7, 2011

Page 29: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Máximo de uma função

29

Foram seleccionados os elementos 1, 3, 6 e 7 que passam a constituir a nova geração:

Thursday, April 7, 2011

Page 30: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Máximo de uma função

30

Repetindo o ciclo de cruzamento, obtem-se:Elemento nº População pós

CruzamentoSolução x f(x)

1 100101 37 13692 010011 19 3613 100001 33 10894 011001 25 625

5 (cr. 1-2) 000111 7 496 (cr. 1-2) 110001 49 24017 (cr. 3-4) 011001 9 818 (cr. 3-4) 110001 49 2401

101010Máscara Selecção

Thursday, April 7, 2011

Page 31: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Máximo de uma função

31

Foram seleccionados os elementos 1, 3, 4 e 6 que passam a consituir a nova geração:

Thursday, April 7, 2011

Page 32: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Máximo de uma função

• Após 2 ciclos de cruzamento • o factor de avaliação médio da população subiu

de 488,75 para 1371.• o melhor elemento passou de um factor de

aptidão de 1369 para 2401• Será que convergiremos rapidamente para a

solução óptima?• Podemos já garantir que esta não será

encontrada por cruzamento de genes. Porquê?

32

Conclusões:

Thursday, April 7, 2011

Page 33: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Máximo de uma função

33

Conclusões:

Bit 5

Por muitas recombinações que se façam, nunca o bit 5 poderá ter o valor 1. A solução óptima (111111) é inatingível apenas por cruzamento. Mutações!

Thursday, April 7, 2011

Page 34: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Máximo de uma função

• Pouca diversidade pode levar à estagnação• Os elementos 1 e 2 têm 5 genes idênticos• Os elementos 3 e 4 têm 4 genes idênticos

• Os seus descendentes acabarão por ter cromossomas iguais aos seus progenitores

• Sem uma mutação favorável não será possível melhorar a solução.

34

Conclusões:

Thursday, April 7, 2011

Page 35: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Sequenciamento de tarefas

35

• Considere-se o sequenciamento de 9 tarefas {1,2,3,4,5,6,7,8,9} numa máquina.

• As tarefas impares são executadas por uma ferramenta fi e as tarefas pares são executadas com uma ferramenta fp.

• O objectivo é minimizar o número de trocas de ferramentas.

Thursday, April 7, 2011

Page 36: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Sequenciamento de tarefas

36

• A codificação será feita por uma sequência de 9 dígitos

• A função de avaliação procurará minimizar o número de trocas de ferramentas (o nº de passagens de par para ímpar e vice-versa),

• Escolher-se-ão os elementos da população com menor valor dessa função.

• Aconselha-se a utilização de um operador de cruzamento com manutenção de ordem, pois os outros operadores originariam soluções não viáveis (com tarefas repetidas e com tarefas ausentes).

Thursday, April 7, 2011

Page 37: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Sequenciamento de tarefas

37

Suponhamos a seguinte população inicial:

Aplique-se o operador de cruzamento com manutenção de ordem e 2 pontos de corte (entre o 2º e 3º genes e entre o 6º e 7º genes).

Thursday, April 7, 2011

Page 38: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Sequenciamento de tarefas

38

Após o cruzamento obteremos:

Thursday, April 7, 2011

Page 39: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - Sequenciamento de tarefas

39

Por selecção elitista, obteremos:

• Obtivemos um elemento melhor que o melhor da geração anterior (nº3)

• A média das funções de avaliação diminuiu• Nunca chegaremos à solução óptima só por

cruzamento. Porquê?

Thursday, April 7, 2011

Page 40: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE MATLAB - A função ga

40

Chamar a função ga a partir da linha de comando:

Sintaxe:[x fval] = ga(@fitnessfun, nvars, options)

em quefitnessfun - função objectivo ou de fitnessnvars - nº das suas variáveis independentes options - estrutura especificando as opções (opcional)

Resultados:x - ponto em que o resultado é atingidofval - valor final da função de fitness

Thursday, April 7, 2011

Page 41: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE A função ga

41

Em que situações usar a função ga a partir da linha de comando?

•Quando se pretende retornar os resultados directamente na zona de trabalho (workspace) do MATLAB;

•Quando se quer correr o algoritmo genético repetidas vezes com diferentes opções, chamando-o a partir de uma M-file.

Thursday, April 7, 2011

Page 42: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE A função ga

42

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

Exemplo:

Resultado:

x = 0.0027 -0.0052

fval = 0.0068

Thursday, April 7, 2011

Page 43: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE A função ga a partir duma M-file

43

É possível usar a linha de comando para correr várias vezes um AG com diferentes opções, 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 população, exceptuando os descendentes de elite, que é composta por descendentes de crossover.

Thursday, April 7, 2011

Page 44: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE A função ga a partir duma M-file

44

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

Thursday, April 7, 2011

Page 45: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Matlab - Optimization Tool

45

Thursday, April 7, 2011

Page 46: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Matlab - Optimization Tool

46

Thursday, April 7, 2011

Page 47: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Escrita de funções a optimizar

• Criar uma M-file que calcule a função a optimizar

• A M-file deve aceitar um vector, cujo comprimento é o nº de variáveis independentes

47

Thursday, April 7, 2011

Page 48: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Escrita de funções a optimizar

48

Exemplo

function z = my_fun(x)z = x(1)^2 - 2*x(1)*x(2) + 6*x(1) + x(2)^2 - 6*x(2);

Função a minimizar:

A M-file deverá aceitar um vector x de comprimento 2, correspondendo às variáveis x1 e x2.

Passos:1. Seleccionar File/New2. Seleccionar M-File3. Introduzir na M-file o seguinte código:

4. Salvar a M-file no directório do MATLAB

Thursday, April 7, 2011

Page 49: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Escrita de funções a optimizar

49

Exemplo de invocação da função:

>> my_fun([2 3])

ans =

-5

Thursday, April 7, 2011

Page 50: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Maximização e minimização

• As funções de optimização do toolbox de AG minimizam as funções objectivo ou de fitness.

• Ou seja, resolvem problemas do tipo

• Se quisermos operar uma maximização basta minimizarmos -f(x).

50

Thursday, April 7, 2011

Page 51: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo

51

Achar o mínimo da função de Rastringin

Mínimo local

Máximo local

Mínimoglobal [0,0]

Mínimoglobal

Thursday, April 7, 2011

Page 52: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo

1. >> optimtool(‘ga’)

2. Na Optimization Tool• No campo Fitness Function introduzir:

@rastriginsfcn• No campo Number of variables introduzir: 2

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

52

Thursday, April 7, 2011

Page 53: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo

53

Resultados:

Motivo da paragem do algoritmo

Valor final da função de

fitness

Valores das variáveis independentes que corrspondem ao valor final da função de fitness

Thursday, April 7, 2011

Page 54: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo

54

Obtenção de gráficos

Thursday, April 7, 2011

Page 55: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exercício 1

55

1.Criar uma M-file com o seu código

2.Achar o seu mínimo usando AG

Thursday, April 7, 2011

Page 56: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exercício 1

56

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

M-file:

Resultado:

Thursday, April 7, 2011

Page 57: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exercício 2

57

No Help do MATLABabrir a secção > 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• ...

Thursday, April 7, 2011

Page 58: SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... · ... define-se uma nova sequência a partir de A: [8 9 1 2 3 4 5 6 7]. 6. ... 2 001001

ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva

SISEE Exemplo - mínimos globais e locais

58

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

Objectivo: encontrar o mínimo global da função

Thursday, April 7, 2011