Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função...

28
Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função – função objectivo sujeita a um conjunto de restrições o admissível R é o conjunto de pontos que satisfazem as restrições olução admissível é qualquer ponto de R Solução óptima é um ponto de R a que corresponde o maior (menor) valor da função objectivo plos: alinhamento de sequências, squenciação, epesquisa de motivos,.

Transcript of Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função...

Page 1: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

OptimizaçãoOs problemas de optimização têm como objetivo maximizar ou minimizar

uma função definida sobre um certo domínio

Optimizar (max ou min) função – função objectivosujeita a um conjunto de restrições

Região admissível R é o conjunto de pontos que satisfazem as restrições

Solução admissível é qualquer ponto de R

Solução óptima é um ponto de R a que corresponde o maior (menor) valor da função objectivo

Exemplos: alinhamento de sequências, squenciação, epesquisa de motivos,...

Page 2: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Algoritmos heurísticos

Ex: TSP

1

24

3

5

6

7

12

12

10

12 97

9

6

11 1011

8

3

HEURÍSTICA DE MELHORAMENTO - parte de uma solução admissível e procura melhorá-la através de sucessivas pequenas alterações

Page 3: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Heurística de melhoramento local (TSP)

1

24

3

5

6

7

12

12

10

12 97

9

6

11 1011

8

1-2-3-4-5-6-7Distância =69

1

24

3

5

6

7

12

12

10

12 97

9

6

11 1011

8

1-3-2-4-5-6-7Distância =68

3

3

Trocar 2-3

Page 4: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Heurística de melhoramento local (TSP)

1

24

3

5

6

7

12

12

10

12 97

9

6

11 1011

81-2-4-3-5-6-7-1 Distância =65

Troca 4-5

Iteração 1

1-2-3-4-5-6-7-1 Distância =69

Troca 2-3

1-3-2-4-5-6-7-1 Distância =68

Troca 3-4

1-2-3-5-4-6-7-1 Distância =65

Troca 5-6

1-2-3-4-6-5-7-1 Distância =66

3

Page 5: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Heurística de melhoramento local (TSP)

1-2-4-3-5-6-7-1 Distância =65

Iteração 2

1-2-4-6-5-3-7-1 Distância =64

Apenas a troca 3-5-6 leva a um melhoramento no valor da solução

Mais nenhuma troca leva a melhoramentos

Page 6: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Heurística de melhoramento local (TSP)

Solução da heurística1-2-4-6-5-3-7-1Distância =64

1

24

3

5

6

7

12

12

10

12 97

9

6

11 1011

8

3

Solução óptima1-2-4-6-7-5-3-1Distância =63

1

24

3

5

6

7

12

12

10

12 97

9

6

11 1011

8

3

Page 7: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Metaheuristicas

Metaheurística – método heurístico para resolver de forma genérica problemas de optimização.

As metaheurísticas fornecem uma estrutura e uma estratégia para desenvolver algoritmos heurísticos para problemas específicos

Desvantagens heurística de melhoramento local – pára num óptimo localConsiderar várias soluções iniciais, escolhidas aleatoriamente

Metaheurística – combina melhoramento local com estratégias que permitam escapar aos óptimos locais

Page 8: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Metaheuristicas

Pesquisa Tabu - Pesquisa “inteligente”, que pretende imitar o comportamento humano e aplicar algumas regras de aprendizagem. Algumas alternativas de pesquisa podem ser excluídas – lista tabu.Uso de memória – o passado, recente ou mais afastado, vai influirdeterminantemente no processo de pesquisa, guiando-a em funçãodas soluções já visitadas.

Simulated Annealing (arrefecimento simulado) técnica de busca local probabilística, com analogia na termodinâmica

Algoritmo genético - faz uma analogia entre o processo de encontrar soluções óptimas ou de boa qualidade para problemas complexos e a teoria da evolução das espécies baseada no princípio da sobrevivência dos indivíduos mais aptos de uma população.

Page 9: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Algoritmos genéticos“As espécies evoluem pelo principio da seleção natural e sobrevivência do mais apto.” Charles Darwin”

Holland (1975)*

Uma criança herda alguns dos cromossomas de cada um dos progenitoresHerança de “boas” características maior probabilidade de sobrevivência

Maior probabilidade de sobrevivência “boas” características transmitidas aos descendentes

A população tende a melhorar ao longo do tempo

Mutações (ocorrem ocasionalmente) alteração característica de um cromossoma

Mutação traz vantagem maior probabilidade de sobrevivência

Imitar algumas etapas da selecção natural incorporando-as num algoritmo computacional.

Page 10: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Algoritmos genéticos População de indivíduos de uma geração

Processo de selecção de indivíduos para reprodução, baseado na sua aptidão

Cruzamento dos pares de indivíduos seleccionados,mais algumas transformações...

População da geração seguinte.

Este processo repete-se por um número especificado de gerações.

Page 11: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Algoritmos genéticos

Os indivíduos são representados por cromossomas;

Seleccionam-se os mais aptos para darem origem à geração seguinte (selecção para reprodução)

Os indivíduos seleccionados passam por uma série de transformações. (cruzamento e mutação)

Selecção, cruzamento e mutação operadores genéticos.

Page 12: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

População

Algoritmos genéticos

Indivíduo solução do problema

Geração

conjunto de soluções

iteração do algoritmo

Aptidãodo indivíduo

função de avaliaçãoda solução

Page 13: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Algoritmos genéticos

Codificação das soluções (cromossomas);

Criação de uma população inicial;

Função de avaliação das soluções em termos da sua aptidão(função objectivo);

Utilizar operadores (genéticos) na construção de uma nova geração Selecção, Mutação, Cruzamento

Page 14: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

AlgoritmoGerar a população inicial (cromossomas)

Enquanto critério de paragem não for satisfeito

Seleccionar os indivíduos mais aptos (progenitores)

Criar nova população (partindo dos cromossomasseleccionados e aplicando os operadores cruzamento e mutação)Avaliar a população

Output cromossoma mais apto na população actual

Avaliar a população (cromossomas)

Desvios relativamente à teoria da evolução: um adulto (solução) pode ser usado para reprodução em várias gerações.

Inicialização

Iteração

Page 15: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Algoritmos genéticos

- Qual a melhor codificação para as soluções?

-População inicial ( conjunto soluções) pode ser gerada aleatoriamente.

- Qual a dimensão da população?

- Seleccionar alguns elementos da população para cruzamento. Quais?

-Como fazer o cruzamento?

-Reter, apenas, elementos da população que correspondem a soluçõesadmissíveis? reter apenas os mais aptos (?!)

- Em cada iteração, como fazer a substituição da população?

- Regra de paragem, qual? – nº de iterações, pré-fixado, sem melhoramento do valor da “melhor” solução

Algumas questões:

Page 16: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Representação das soluções

Exemplos :

Exemplo: Listas de dígitos binários (0,1,1,0,....)

Listas de dígitos inteiros (6,8,2,3,...)Listas de dígitos reais (2.2, 4.6,...)

Listas de regras (R1, R2,...)

Para uma boa implementação de um AG é necessário uma boa representação das soluções do problema.

Lista de elementos

População inicial pode ser gerada aleatoriamente, atirando uma moeda ao ar tantas vezes quantas as necessárias, isto é,dimensão do cromossoma × dimensão da população

Page 17: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Em muitos casos a aptidão de um cromossoma é o valor da função objectivo da solução que ele codifica

A aptidão de um cromossoma deve medir a qualidade da solução associada

A função aptidão pode depender da função objectivo

Função aptidão

Page 18: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

SelecçãoA selecção dos progenitores é feita com base na aptidão, indivíduos mais aptos têm maior probabilidade de se reproduzirem

Os indivíduos seleccionados são sujeitos ao operador cruzamento

Roleta enviesada

Exemplo de selecção

4 cromossomas designados por A,B C e D

Para cada cromossoma existe uma secção na roleta proporcional à taxa de aptidão desse cromossoma face à aptidão total.

31,9%25,2%

37,3%6,6

AC

D

Operadores genéticos

Page 19: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Cruzamento

Selecciona-se aleatoriamente uma posição para o cruzamento Trocar os elementos em posições seguintes à do cruzamento

Exemplo de Cruzamento Simples

1 0 0 0 1 0 1

1 1 0 1 1 1 01 1 0 0 1 0 1posição 2

1 0 0 1 1 1 0

O cruzamento de dois cromossomas combina as características dos dois transmitindo aos descendentes essa informação.

Pares de indivíduos são cruzados com uma determinada probabilidade.

Operadores genéticos

Nota: Com listas binárias é “fácil” fazer o cruzamento

Page 20: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Mutação

Cada descendente é sujeito a mutação com uma detreminada probabilidade

Exemplo de Mutação Simples

posição 2 1 0 0 1 1 1 0 1 1 0 1 1 1 0

Selecciona-se aleatoriamente uma posição do cromossoma e substitui-se o elemento nessa posição pelo seu complementar

O algoritmo vai explorar uma “nova” zona da região admissível

Operadores genéticos

Page 21: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

(Goldberg,89) max f(x) = x2 , x [0,31], x inteiro

Codificação das soluções - listas binárias

31 na base 10 31, 3101+1100

Listas binárias31 na base 2 11111 124 + 123+122+ 121+120 = 31

12 na base 2 01100 024 + 123+122+ 021+020 = 8+4= 12

x [0,31], na base 2 (a4,a3,a2,a1,a0) com ai=0 ou 1

x = a424 + a323+a222+ a121+a02

Exemplo

Nota: cada ai é um gene

Page 22: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Dimensão da população = 4em cada iteração (geração) temos 4 indivíduos

Função Aptidão dada por f(x) = x2 por exemplo x = 8 tem aptidão f(8)=64 e x = 0 tem aptidão f(0)=0.

População inicial gerada aleatoriamenteLançando uma moeda ao ar 20 vezes (porquê?), cara 1 coroa 0

Lista nº População inicial(gerada aleatoriamente)

Valor de x f(x)População inicial(gerada aleatoriamente)

Lista nº x f(x)

1 0 1 1 0 1 13 1692 1 1 0 0 0 24 5763 0 1 0 0 0 8 644 1 0 0 1 1 19 361

Exemplo

Page 23: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Selecção e reproduçãoA probabilidade de selecção do indivíduo i pode ser dada por

Exemplo: lista nº1 (indivíduo 1) f(1)=169; =1170; p1=169/1170=0.14

De acordo com estas probabilidades, constrói-se a roleta enviesada. Gira-se a roleta 4 vezes para seleccionar 4 progenitores.

Lista nº População inicial(gerada aleatoriamente)

x f(x)pseleccionar

ii

ff

frequência observada

roleta

frequência esperada

ff i

1 0 1 1 0 1 13 169 0.14 0.58 12 1 1 0 0 0 24 576 0.49 1.97 23 0 1 0 0 0 8 64 0.06 0.22 04 1 0 0 1 1 19 361 0.31 1.23 1

Soma 1170Média 293Máximo 576

Exemplo

)f(x)f(x

ii

)f(xi

Page 24: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Cruzamento 1º) emparelham-se aleatoriamente os progenitores seleccionados;2º) para cada par, o ponto de cruzamento é seleccionado aleatoriamente

0 1 1 0 1 2 4 0 1 1 0 0 12 1441 1 0 0 0 1 4 1 1 0 0 1 25 6251 1 0 0 0 4 2 1 1 0 1 1 27 7291 0 0 1 1 3 2 1 0 0 0 0 16 256

Soma 1754Média 439Máximo 729

Progenitoresselecionados

(ponto de cruzamento)par Ponto de

cruzamentoNova população x f(x)

Exemplo

Nota: Pode considerar-se que cada nova geração substituiu a antiga em bloco.

Nesta geração, a aptidão média aumentou de 293 para 439,

a aptidão máxima aumentou de 576 para 729.

Page 25: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Mutação Considere-se a probabilidade de mutação pm= 0.001 e o cruzamentodos indivíduos 1 e 2;

Gerem-se aleatoriamente dez números, xi, entre 0 e 1;Se xi<0.001 vai ocorrer uma mutação no gene i;Caso contrário não ocorre mutação no gene iExemplo. Supondo que a8<0.001 e ai>=0.001, i8 Nenhuma mutação em C1, uma mutação no gene 3 de C2

Exemplo

C1: 01100C2: 11001

Após cruzamento

C1: 01100C2: 11101

MutaçãoX1=12X2=25

X1=12X2=29

Nova população

0 1 1 0 01 1 1 0 11 1 0 1 11 0 0 0 0

Page 26: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

 Rudolph (1994) prova, usando Cadeias de Markov finitas, que um algoritmo genético converge assimptoticamente para o óptimo global desde que se use elitismo.

Rudolph, G. (1994) “Convergence Analysis of Canonical Genetic Algorithms”, IEEE Transactions on Neural Networks 5 (1) pp 96-101.

Num AG não existe garantia de que o elemento mais apto (“melhor” solução)passe para a geração seguinte.

O elitismo consiste na selecção obrigatória para a geração seguinte do indivíduo que representa a melhor solução até ao momento.

Convergência

Page 27: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Nas iterações iniciais podem ocorrer situações em que existem alguns indivíduos muito aptos numa população de aptidão média reduzida. Estes indivíduos podem levar o AG a convergir prematuramente (para uma solução de má qualidade). Para evitar a convergência prematura e estimular a competição selectiva mais tarde, existem técnicas de calibração da função de aptidão que modificam a escala de aptidão.Caso a população inicial não inclua indivíduos correspondentes a soluções admissíveis pode-se recorrer, por exemplo, a uma heurística construtiva para obter indivíduos correspondentes a soluções admissíveis .

Empiricamente, vários autores sugerem dimensão da população da ordem dim_pop=30. Alander (1992)* sugere n dim_pop 2n) sendo n a dimensão do cromossoma binário.

A eficiência de um AG pode ser melhorada incorporando no AG outra técnica heurística – hibridização.

Questões

Page 28: Optimização Os problemas de optimização têm como objetivo maximizar ou minimizar uma função definida sobre um certo domínio Optimizar (max ou min) função.

Pode-se definir vários tipos de cruzamento múltiplo (multi-point crossover).Exemplo:

Questões

1 0 0 0 1 1 0

1 1 0 1 1 0 11 1 0 0 1 0 1

1 0 0 1 1 1 0

Em geral, a população de uma geração é totalmente substituída pelos descendentes da geração anterior. Podem perder-se indivíduos de boa qualidade de uma geração para outra. Mecanismos para contrariar estas desvantagens são, por exemplo o elitismo e a substituição incremental.substituição incremental – a população da geração seguinte é constituída criando apenas r (valores pequenos para r) filhos por cruzamento que vão substituir r membros da população corrente.

posições 2 e 5