computação evolutiva oderson dias de mello

Post on 16-Apr-2015

117 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Computação Evolutiva

Oderson Dias de Mello www.oderson.com

Introdução

Como otimizar soluções para um processo complexo com um grande número de variáveis?

Indagações de alguns séculos atrás...

Como explicar a diversidade dos animais?

Como explicar sua evolução? Qual é a influência dos antepassados? Qual é a influência do meio ambiente?

Evolução natural A evolução natural pode ser vista como

um processo de otimização no qual: Indivíduos e populações competem entre si

por recursos Alimento Água Abrigo

Terminologia Biológica Em Algoritmos Genéticos são utilizados termos

biológicos como analogia com a biologia.

Cromossomo: codificação de uma possível solução

– indivíduo.

Genes: codificação de uma característica particular.

Genótipo Conjunto de parâmetros representado por um

cromossomo.

Fenótipo Produto da interação de todos os genes.

História da Teoria da Evolução

1809: Jean-Baptiste Lamarck Lei do uso e do desuso.

pelo uso e desuso de suas aptidões, a natureza força os seres a se adaptarem para sobreviverem.

Lei dos caracteres adquiridos. Os serem mais fortes são mais capazes de “trasmitir” suas aptidões às novas

gerações.

História da Teoria da Evolução

1859: Charles Darwin É pela lei da Seleção

Natural que os seres mais adaptados ao seus ambientes sobrevivem.

Contra lei do uso de desuso.

Os caracteres adquiridos são herdados pelas gerações seguintes.

O homem vem do macaco...

História da Teoria da Evolução

1865: Gregor Mendel Formalizou a “herança de características”,

com a teoria do DNA (ervilhas). 1901: Hugo De Vries

Só a seleção natural não é responsável pela produção de novas (mais adaptadas) espécies. Tem que haver uma mudança genética!

Formalizou o processo de geração de diversidade: Teoria da Mutação.

Hipótese Lamarkiana

Fenótipo ou características adquiridas durante a vida de um organismo podem ser transmitidos geneticamente para os seus descendentes.

Aprendizagem local pode alterar o cromossomo e, portanto, a adaptabilidade dos indivíduos.

Exemplo: aquisição de defeitos do fenótipo provocado por

intoxicação química e poluição ambiental.

Hipótese Baldwiniana (1896)

Seleção orgânica

A capacidade de aprendizagem e adaptação pode favorecer a reprodução. Portanto, o conhecimento adquirido pode guiar a evolução genética.

Exemplo: uma aprendizagem local pode alterar somente a adaptação dos indivíduos mas não o seu cromossomo.

Hipótese Waddingtoniana (1942)

Assimilação genética

A plasticidade fenotípica que permite obter novas características comportamentais.

Ativam genes adormecidos ou não expressos que serão transmitidos para gerações seguintes.

Motivação“...Se variações úteis para qualquer

organismo devam ocorrer para que ele venha a existir, certamente indivíduos assim caracterizados terão a melhor chance de serem preservados na luta por sobrevivência; e do forte princípio de hereditariedade, eles tenderão a produzir gerações com características similares. Este princípio de preservação, eu batizei, para ser sucinto, de Seleção Natural.”

(Darwin, 1859)

Evolução natural Indivíduos mais bem sucedidos na

sobrevivência e atração de um parceiro terão, relativamente, mais descendentes (espalham seus genes).

Indivíduos mal sucedidos geram poucos ou nenhum descendente.

Ambientação

ModeloComputacional

Natureza

ModeloBiológico

Teoria de Darwin

Teoria de Computação Evolutiva

Computação Evolutiva Área da Computação Inteligente

que engloba um conjunto de métodos computacionais inspirados na Teoria da Evolução das Espécies.

Conferências na área de Computação Evolutiva International Conferences on

Genetic Algorithms Parallel Problem Solving from

Nature Annual Conferences on Evolutionary

Programming IEEE International Conferences on

Evolutionary Computation

Computação evolutiva Em 1975 Jonh Holland idealizou os algoritmos

genéticos. Adaptation in Natural & Artificial Systems

MIT Press, 1975 (2a ed. 1992). Porque a evolução é uma boa metáfora?

Muitos problemas computacionais envolvem busca através de um grande número de possíveis soluções e requerem que o programa seja adaptativo, apto a agir em um ambiente dinâmico.

A evolução biológica é uma busca massivamente paralela em um enorme espaço

problema. soluções desejadas = organismos mais adaptados.

COMPUTAÇÃO EVOLUTIVA analogia com processos naturais possíveis soluções = indivíduos melhores indivíduos = melhores chance

de sobrevivência e reprodução = sobrevivência do mais apto

solução ótima esperada = indivíduo mais apto

Características Comuns Usam um processo de evolução

baseado na teoria de Darwin para resolver problemas computacionais.

Inspirados na Teoria da Evolução: os indivíduos mais adaptados sobrevivem.

Elementos Chaves dos Algoritmos Evolutivos Uma população de indivíduos. A noção de função de adaptação. Um ciclo de nascimento e morte

baseados na função de adaptação. A noção de herança.

Visão Geral doAlgoritmo Evolutivo

1. Gerar uma população inicial aleatoriamente

2. Fazer até um critério de parada: selecionar indivíduos para pais (função

de adaptação) produzir filhos selecionar indivíduos para morrer

(função de adaptação)

3. Retornar um resultado

Visão Geral doAlgoritmo Evolutivo

população depais

população defilhos

solução

seleção

recombinação

Algoritmos Genéticos Desenvolvido por John Holland e sua equipe

em 1975 e popularizado por David Goldberg. Objetivo:

Desenvolver sistemas artificiais baseados nos mecanismos dos sistemas naturais.

O processo de evolução executado por um algoritmo genético corresponde a um processo de busca em um espaço de soluções potenciais para alcançar o objetivo proposto.

CARACTERÍSTICASCARACTERÍSTICAS Classe dos algoritmos probabilísticos, mas

eles não são métodos de busca puramente aleatórios, pois combinam elementos de procura direcionada e estocástica.

A cada geração, soluções relativamente “boas” se reproduzem, enquanto que soluções relativamente “ruins” são eliminadas.

Para fazer a distinção entre diferentes soluções é empregada uma função-objetivo (de avaliação ou de adaptabilidade) que simula o papel da pressão exercida pelo ambiente sobre o indivíduo.

CARACTERÍSTICASCARACTERÍSTICAS Utilizam uma população de soluções

candidatas (indivíduos). Otimização ocorre em várias

gerações. A cada geração:

mecanismos de seleção selecionam os indivíduos mais aptos.

operadores de reprodução geram novos indivíduos.

CARACTERÍSTICASCARACTERÍSTICAS

Cada indivíduo representa uma possível solução para um dado problema.

A cada indivíduo é associado um escore de aptidão, que mede o quão boa é a solução que ele representa.

Indivíduos mais aptos têm mais oportunidades de serem reproduzidos.

Quando que se deve usar um Algoritmo Genético? Quando o espaço de buscas é

muito grande (nestes casos, a enumeração de todas as possíveis soluções torna-se impraticável) ...

… e quando os métodos tradicionais – por exemplo programação linear – não são aplicáveis.

Aplicabilidade Problemas difíceis de otimização:

Otimização de funções com restrições lineares e não-lineares.

Avaliação de crédito e análise de risco. Previsão financeira. Gestão de recursos. Problema do caixeiro viajante. Planejamento da operação de usinas hidrelétricas. Jogos. Programação genética.

Obs.: Algoritmos Genéticos são paralelos por natureza.

De que modo os algoritmos genéticos diferem de outras técnicas?

Trabalham com uma população de soluções, em vez de uma só solução.

Usam regras de transição probabilísticas em vez de regras determinísticas.

Evitam problemas de continuidade, existência de derivada, etc.

Algoritmos Genéticos

População atual

Reprodução

Avaliação

Seleção

População inicial População final

Indivíduos Material genético. Conjunto de atributos da solução. Cada atributo é uma seqüência de

bits, e o indivíduo é como a concatenação das seqüências de bits.

Codificação binária, real, códigos.

Codificação Cada indivíduo é codificado por um conjunto de

parâmetros (genes) Genes podem assumir valores:

Binários (0; 1) Inteiros (-2; -1; 0 ; 1; 2; 3...) Reais (-2,33; 0; 3,45; 2,5 x 1024)

Parâmetros são combinados para formar strings ou vetores (cromossomos)

Exemplo:Xi = [ 2 1 8 0 -2 -4 1 ]

Codificação binária Cada cromossomo é uma string de

bits – 0 ou 1 Cromossomo A = 1 0 1 1 0 0 1 0 1 1 Cromossomo B = 1 1 1 1 1 1 0 0 0 0

Exemplo de uso: problema da mochila. Codificação: Cada bit diz se um

elemento está ou não na mochila.

Codificação inteira Mais usado em problemas de ordenação. Cada cromossomo é uma string de números

que representa uma posição numa seqüência. Cromossomo A: 1  5  3  2  6  4  7  9  8 Cromossomo B: 8  5  6  7  2  3  1  4  9

Exemplo de uso: problema do caixeiro viajante. Codificação: os cromossomos descrevem a ordem

em que o caixeiro irá visitar as cidades.

Problema do Caixeiro Viajante (TSP)

Um caixeiro viajante deve visitar N cidades em sua área de vendas.

O caixeiro começa de uma base, visita cada cidade uma única vez e retorna à sua cidade no final.

A cada viagem esta associado um custo. O caixeiro deve percorrer a rota mais curta.

1

34

2 5

6

7

TSP: Implementação Cromossomo - Enumerado

Objetivo - minimizar o caminho total (tour).

4 5 2 1 6 3

Codificação por valor. Usado em problemas onde “valores

mais complicados” são necessários. Cada cromossomo é uma seqüência

de valores: Cromossomo A:

1.2324 5.3243  0.4556  2.3293 2.4545 Cromossomo B:

ABDJEIFJDHDIERJFDLDFLFEGT Cromossomo C:

(back), (back), (right), (forward), (left)

Representação Restrição: determinar de modo não

ambíguo uma solução. Exemplos comuns:

vetor de bits matrizes árvores etc.

1 0 1 0 0 1 1 0 0 0 1 1 1 0 1

A B C

População Conjunto de indivíduos que estão sendo

cogitados como solução. Populações pequenas têm grandes chances

de perder a diversidade necessária para exploração adequada do espaço de soluções.

Populações grandes perdem grande parte de sua eficiência pela demora nos cálculos da função de adaptação.

Existe o compromisso qualidade da solução versus tempo.

População inicial

Aleatoriamente escolhida ou não.

Compromisso entre velocidade de

convergência e variedade.

Estrutura básica de um Algoritmo Genético

População

Avaliação da Aptidão

Seleção

Cruzamento

Mutação

Operadores genéticos

Critério de Parada?

Retornar Melhor Indivíduo

Não

Sim

Função de Adaptação (de Aptidão) Mede a adaptação do indivíduo ou quão

boa é a solução dada por este indivíduo. Aptidão = probabilidade do indivíduo

sobreviver para a próxima geração. Representação do problema: diferencia

uma solução boa de uma ruim. É aplicada ao fenótipo do indivíduo.

O genótipo precisa ser decodificado, recuperando o fenótipo associado.

Cada aplicação tem sua própria função de aptidão.

Função de aptidão Heurística de busca no espaço de estado.

Em alguns problemas, encontrar um indivíduo válido é uma problema de otimização, portanto necessitam de heurísticas para gerá-lo.

Exemplo 1: projeto de ponte: menor custo. menor tempo de construção. maior capacidade de carga.

Exemplo 2: Timetabling (horários escolares).

Cuidados com o custo computacional.

Seleção Escolhe preferencialmente, embora

não exclusivamente, indivíduos com maiores notas de aptidão. Procura manter a diversidade da

população. Indivíduos mais aptos têm mais

oportunidades de serem reproduzidos.

Seleção

Objetivo: propagar material genético dos indivíduos mais

adaptados. Problemática da convergência prematura

(compromisso entre rapidez e diversidade): Um indivíduo super adaptado no começo não deve ser

valorizado demais. Indivíduos ruins no começo não podem ser desprezados.

Tipos: Roleta (ranking probabilístico): pselect(i) = f(i) / f(j).

Ranking por ordenação. Torneio binário (eliminatórias 2 a 2). Elitista (n melhores indivíduos são selecionados). Biclassista ( pb % dos melhores e pw % dos piores

indivíduos) Outros.

SELEÇÃO COMPETITIVA

Seleciona k indivíduos e pega o melhor deles para a próxima geração.

Repete o processo n vezes. Seleção de Boltzmann.

4

1

32

Roleta

n. cadeia aptidão % do total

1 01101 169 14,4

2 11000 576 49,2

3 01000 64 5,5

4 10011 361 30,9

1170 100,0Total

Seleção pela roleta

Indivíduo Si

S3 11110

S4 01001

S5 00110

S1 10110

S2 11000

Aptidãof(Si)

1.05

3.35

1.69

2.23

7.27

AptidãoRelativa

0.14

0.47

0.07

0.21

0.11

S1

S2S3

S4

S5

Método da Roleta baseado em Aptidão Relativa

Exemplo

Indivíduosfunção de adaptação

% função de adaptação

10101010110101010111

12 23,08

00001001010101110010

8 15,38

00001100001011011101

9 17,31

00000110010010000010

6 11,54

11100011100010011111

12 23,08

00010101001000010000

5 9,62

Total 52 100,00

Roleta

23%

15%

17%12%

23%

10%

Problemas da Roleta Tecnicamente resulta numa

distribuição proporcional de indivíduos.

Convergência muito rápida.

Variância baixa.

Torneio binário

Escolhe-se um par de indivíduos da população.

O melhor tende a sobreviver, e o pior tende a morrer, segundo uma probabilidade.

Repete-se este processo N vezes (N é o tamanho da população).

Torneio binárioInício

k = 0.75Repita N vezes

Escolha 2 indivíduos da população aleatoriamenter = valor aleatório entre 0 e 1Se r < k

O melhor indivíduo é escolhidoSe não

O pior indivíduo é escolhidoFim Se

Fim RepitaFim Início

Exemplo de seleção com torneio binário

estrutura fitness

A

B

C

D

8

2

4

5

estrutura fitness

A

C

A

D

8

4

8

5

Antes Depois

4 torneios: (A,D) (B,C) (A,B) (C,D)

4 vencedores: A C A D

Elitismo Indivíduo de maior desempenho é

automaticamente selecionado. Evita modificações deste indivíduo pelos

operadores genéticos. Existem várias formas e graus de elitismo. Por

exemplo, uma percentagem dos melhores elementos da atual geração são copiados para a geração seguinte.

Algoritmo

população inicial

pais selecionados

filhos gerados

nova população

seleção (função de adaptação)

operadoresgenéticos

cruz repr mut

nova pop.completa?

não

sim

satisfeito c/a solução?

não

início

soluçãofim

sim

Reprodução / Operadores Permite obtenção de novos

indivíduos. Preserva características úteis. Introduz variedade e novidades. Estratégias:

Parentes únicos: clonar + mutação Parentes múltiplos: recombinação +

mutação

ponto único ponto duplo

Reprodução/recombinação Função:

combinar e/ou perpetuar material genético dos indivíduos mais adaptados

Tipos: assexuada (=duplicação) sexuada (crossover)

Reprodução Reprodução sexual, genes são

intercambiados entre dois pais – crossover.

Os filhos são sujeitos a modificações, na qual bits elementares são mudados – mutação.

Métodos de Recombinação Cruzamento: cria novos indivíduos

misturando características de dois indivíduos pais (crossover).

Cópia de segmentos entre os pais. Crossovers multiponto, dois

pontos, um ponto, uniforme e inversão.

Exemplo de crossover

pai

mãe filho 2

filho 1

Antes de recombinar Depois de recombinar

1110100111 010 1110100111

0100011011010 0011011010100

100

Crossover 1 ponto

Filhos

10 0 0 0 11 0 10 00 1 1

10 0 0 0 110 1000 1 1

Pais

Pai 1 Pai 2

Filho A Filho B

Ponto de crossover

Crossover de 2 pontos

Filhos

10 0 0 0 11 0 10 00 1 1

10 0 0 00 1010 1 1

Pais

Pai 1 Pai 2

Filho A Filho B

0 1

 

Cruzamento em dois pontos

1 1 1 0 0 1 0 1

1 0 0 0 0 0 0 1

1 1 1 0

0 1 0

1

1 0 0 0

0 0 0

1

Individuo 1

Individuo 2

Descendente 1

Descendente 2

Indivíduo 1

Indivíduo 2

Cruzamento uniforme

Os filhos são formados a partir dos bits dos pais (sorteado).

Crossover uniforme

Filhos

10 0 0 0 11 0 10 00 1 1

10 0 110 0000 1 1

Pais

Pai 1 Pai 2

Filho A Filho B

Sorteio: 0 1 0 1 0 0 0

1 0

Problema das N-Rainhas

Definição: Colocar N rainhas em um tabuleiro N x N de forma

que nenhuma seja atacada pelas outras. A forma geral de uma solução é uma permutação de

um vetor de inteiros [1, . . . , N]. A solução para o problema de 8 rainhas mostrada

abaixo é representada pelo vetor [4, 2, 7, 3, 6, 8, 5, 1].

Histórico

Complexidade

1

10

100

1000

10000

100000

1000000

10000000

100000000

4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

# de rainhas

Pas

sos

Resultados

0,01

0,1

1

10

100

1000

10000

5 10 15 16 17 18 19 20 21 22 23 25

Número de rainhas

Tem

po

(se

gu

nd

os)

Algoritmo 1 Algoritmo 2 Algoritmo 3 Algoritmo 4

Conclusões

O PROLOG conseguiu resolver instâncias de

até 25 rainhas em menos de 1000 segundos

(Amzi 3.4 - Pentium II 266 MHz - 128 Mb)

Quando o número de rainhas é impar, a busca

é bem mais rápida do que quando temos um

número par de rainhas.

Exemplo?- tempo(10). . . . . . . . . Q . . . . . . Q . . . . . . . Q . . . . . . . . . . . . Q . . . Q . . . . . . . . . . . . . . . . Q . . . Q . . . . . . . . . . . . Q . . . . . . . Q . . . . . . . . . . . . . . . . Q

0.330002yes?- queens(10,S).S = [5,7,9,3,8,2,4,6,1,10]

RecombinaçãoExemplo:

+ =

X

X

Reprodução Quanto mais “estruturada” a representação

mais difícil é definir o cruzamento.

Mutação Esta operação altera aleatoriamente

alguma característica do indivíduo. Cria novas características que não

existiam. Mantém diversidade na população. Assegura que a probabilidade de

atingir qualquer ponto do espaço de busca nunca será zero.

Mutação Com probabilidade Pm, mudar um

gene de 0 para 1, ou de 1 para 0. Este operador costuma ser usado

com uma probabilidade muito baixa, por exemplo, 0.001.

Antes de mutação Depois de mutação1100101111 1100101101

gene 9 sofreu uma mutação

Mutação

10 0 0 0 11

10 1 10 0 1

Antes da mutação

Após a mutação

Mutação

Mutação de 1 bit01100 ->00100

Mutação de grupo de bits01100 -> 01011

Mutação de todos os bits01100 -> 10011

Mutação O objetivo da mutação é evitar que as

soluções na população fiquem apenas num mínimo local.

Filho1 antes : 1101111000011110 Filho2 antes : 1101100100110110 Filho1 depois : 1100111000011110 Filho2 depois : 1101101100110110

MutaçãoExemplo:

Mutação Objetivo:

gerar diversidade (para escapar de ótimos locais). Tipos:

generativa

destrutiva

swap

swap de seqüência Observação:

A taxa de mutação pode diminuir com o tempo para garantir a convergência.

Permutação

Permutação de dois genes:

000110001010

Troca do bit 4 com o bit 8:

000010011010

Inversão

antes da inversão

1 0 0 | 1 0 1 0 | 0 1 0

depois da inversão

1 0 0 | 0 1 0 1 | 0 1 0

Substituição Objetivo:

garantir uma convergência adequada. Tipos:

Simples: a nova geração SUBSTITUI a antiga. Elitista: a nova geração se MISTURA com a antiga.

Critérios de substituição no caso elitista: os piores. os mais semelhantes. os melhores. os pais. aleatoriamente. ...

Probabilidades Dinâmicas Nas primeiras gerações a população inicializada aleatoriamente já contém

grande diversidade, portanto a probabilidade de mutação (diversidade) deve ser baixa. Ao contrário, a probabilidade de cruzamento (procura local) deve ser elevada.

À medida que o processo avança a população perde diversidade e pode estagnar em mínimos locais pelo que se deve reduzir a probabilidade de cruzamento e aumentar a probabilidade de mutação.

CruzamentoMutação0.8

0.05

t

Evitando a convergência prematura

Escalonamento da função de avaliação. Normaliza a função de avaliação “bruta”.

Diminuição do escore dos indivíduos mais semelhantes.

Algoritmos genéticos paralelos.

Algoritmos genéticos paralelos

k populações são iniciadas e evoluem paralelamente.

A cada n-ésima geração, as populações trocam indivíduos.

LIDANDO COM O PROBLEMA DE CONVERGÊNCIA PREMATURA

Estratégia de prevenção de incesto.

Uso de cruzamento uniforme. Detecção de cromossomos

duplicados na população. Usando um conhecimento prévio

das características da função.

MECANISMO DE AMOSTRAGEM

diversidade da população

pressão seletiva

convergência para sub-ótimos

OUTRO MÉTODO DE AMOSTRAGEM

Introdução artificial de pesos. Crença que convergência prematura é

causada pela presença de super indivíduos que são muito melhores que a média da população.

Tais indivíduos aumentam muito seu número de descendentes nas próximas gerações eliminando a possibilidade de cromossomos desejáveis.

Algoritmos GenéticosResumo

Balanço Explotação-Exploração Pressão de seleção: explotação.

Reduz o espaço de busca. Reprodução: exploração.

Expande o espaço de busca. Balanço

Seleção forte + taxas de mutação altas Seleção fraca + taxas de mutação

baixas

Escolha de parâmetros Escolhidos de acordo com o problema.

Quantos cromossomos em uma população?

Poucos efeito pequeno do cruzamento. Muitos aumenta tempo de computação.

Taxa de mutação? Baixa mudanças lentas. Alta traços desejados não são mantidos

(caos).

Escolha de parâmetros Outros parâmetros:

Quantos indivíduos selecionados para reprodução?

Quantos pontos de crossover? Critério para medir aptidão?

Manter limites no tamanho da população e na complexidade da análise. Algoritmo pode se tornar ineficiente.

Critério de parada Tempo de execução. Número de gerações. Valor de aptidão mínimo e/ou

médio. Convergência:

Nas últimas k iterações não houve melhora nas aptidões.

Análise de SemelhançaOs indivíduos começados por 11*** correspondem aos de maior valor.

11*** representa os seguintes indivíduos:

11000 576

11001 625

11011 729

01*** representa os seguintes indivíduos:

01000 64

01100 144

01101 169

Cromossomo Adaptabilidade

01101 16911000 57601000 6410011 36101100 14411001 62511011 72910000 256

DEFINIÇÃO DE ESQUEMA Um esquema é construído pela introdução do

símbolo ‘*’ dentro do alfabeto genético. Um esquema representa todos os

cromossomos que coincidem em todas as posições que não contém o símbolo ‘*’.

Exemplos: (*,1,0) representa dois cromossomos: (1,1,0) e

(0,1,0). (*,1,*) representa quatro cromossomos: (1,1,0);

(1,1,1); (0,1,0) e (0,1,1). (*,*,*) representa todos os cromossomos de

tamanho 3.

Esquemasn. cadeia aptidão % do total1 01101 169 14,42 11000 576 49,23 01000 64 5,54 10011 361 30,9

esquema 1****, melhor que 0****

ESQUEMAS Cada esquema representa 2r

cromossomos, onde r é o número de símbolos ‘*’.

Cada cromossomo de tamanho m é representado por 2m esquemas.

Exemplo: o cromossomo (1,0,0) é representado por (1,0,0); (*,0,0); (1,*,0); (1,0,*); (*,*,0); (*,0,*); (1,*,*) e (*,*,*).

ExemploO cromossomo 1010 tem os seguintes esquemas:

101* 101010*0 10**1*10 1*1*1**0 1****010 *01* 24 = 16*0*0 *0****10 **1****0 ****

Ordem

Uma População com n indivíduos contém n.2m esquemas.

O(H), a ordem de um esquema H, é o número de símbolos fixos (diferente de *) presentes no esquema.

O(011*1**) = 4O(*01*010*) = 5

Por que converge? Esquemas

“subpartes” comuns recorrentes. Teorema dos esquemas

O número de esquemas bem adaptados cresce exponencialmente.

“Hipóstese da Construção de Blocos” A otimalidade é obtida por

justaposição de pequenos esquemas altamente adaptados.

TEOREMA“Esquemas acima da média, pequenos e de baixa ordem, recebem aumento exponencial em gerações subseqüentes de um algoritmo genético.”

HIPÓTESE DE CONSTRUÇÃO DE BLOCO

“Um algoritmo genético busca performance próximo ao ótimo através da justaposição de esquemas pequenos, de baixa ordem e de alta performance, chamados blocos de construção.”

CONTRA-EXEMPLO: DECEPÇÃO

Suponha que: sejam acima da média os dois esquemas pequenos

e de baixa ordem: S1=(111********) e S2=(*********11).

que a combinação de S1 e S2 dê S3=(111******11). S3 é muito menos adaptado que S4=(000******00). (11111111111) é a solução ótima.

O algoritmo pode tentar convergir para pontos como (00011111100).

DECEPÇÃO: Quando algum bloco de construção

pode enganar o algoritmo genético e levar a uma convergência para pontos subótimos.

Está fortemente ligado com o conceito de epistasia.

PROPOSTAS PARA O PROBLEMA DE DECEPÇÃO

Conhecimento da função Operador “Inversão”

s = {(1,0)(2,0)(3,0)|(4,1)(5,1)(6,0)(7,1)|(8,0)(9,0)}

s’ = {(1,0)(2,0)(3,0)|(7,1)(6,0)(5,1)(4,1)|(8,0)(9,0)}

(11***1) {(1,1)(2,1)(3,*)(4,*)(5,*)(6,1)} poderia ser invertido para: {(1,1)(2,1)(6,1)(3,*)(4,*)(5,*)}.

TEORIA x PRÁTICA

A codificação do problema para Algoritmos Genéticos opera num espaço diferente que o do problema real.

Existe um limite no hipotético número ilimitado de iterações.

Existe um limite no hipotético número ilimitado do tamanho da população.

Convergência prematura é comum resultando em soluções subótimas.

Exemplo: Robótica Evolutiva

Exemplo: Robótica Evolutiva

Objetivo: navegação sem colisões.

Robôs

Simples Complexo

EXEMPLO: REDE DE COMUNICAÇÃO

Indivíduo: grafo (potencial solução). Objetivo: redução de custos ou

sobrevivenciabilidade. Solução inicial: heurística ou aleatória. Conhecimento específico do

problema: Por exemplo: deseja-se árvores.

mutação: retirar um arco e acrescentar outro que una os dois subgrafos disjuntos.

Requisitos para usar AG

Representações das possíveis soluções do problema no formato de um código genético.

 População inicial que contenha diversidade suficiente para permitir ao algoritmo combinar características e produzir novas soluções.

Existência de um método para medir a qualidade de uma solução potencial.

Requisitos para usar AG

Um procedimento de combinação de soluções para

gerar novos indivíduos na população.

 Um critério de escolha das soluções que permanecerão

na população ou que serão retirados desta.

  Um procedimento para introduzir periodicamente

alterações em algumas soluções da população. Desse

modo mantém-se a diversidade da população e a

possibilidade de se produzir soluções inovadoras para

serem avaliadas pelo critério de seleção dos mais

aptos.

Recordando...Recordando...ALGORITMOALGORITMO

CRUZAMENTO ("CROSS-OVER") Os indivíduos selecionados na etapa anterior são cruzados com elementos randômicos da população atual.

Questões centrais Como representar os indivíduos? Quem é a população inicial? Como definir a função objetivo? Quais são os critérios de seleção? Como aplicar/definir o operador de

reprodução? Como aplicar/definir o operador de

mutação? Como garantir a convergência e ao

mesmo tempo a solução ótima?

ALGORITMOS GENÉTICOS APLICADOS NO

SEQÜENCIAMENTO DA OPERAÇÃO DE TURBINAS EM

USINAS HIDRELÉTRICAS

Erinaldo Faria dos SantosErinaldo Faria dos Santos

Oderson Dias de MelloOderson Dias de Mello

Takaaki OhishiTakaaki Ohishi

INICIANDO A POPULAÇÃO

Aleatoriamente. Utilizando um conhecimento prévio sobre a distribuição do ótimo em potencial.

. :1 cromossomo

cada para acumulada adeprobabilid aCalcular

.)(

:1 cromossomo

cada para seleção de adeprobabilid aCalcular

.)( :população da totalaptidão aEncontrar

.1 cromossomo

cada para )( aptidão da valor oCalcular

1

_

1

i

jjii

i

iii

i

sizepop

ii

i

i

pq,pop_size),(iv

qF

vevalp,pop_size),(iv

p

vevalF

,pop_size),(iv

veval

GIRANDO A ROLETA POP_SIZE VEZES

Cada rodada um cromossomo é selecionado para uma nova população assim: Geramos um número aleatório (r)

entre 0 e 1.

.

que tal

ésimo-i o osselecionam não se

; osselecionam então Se

ii

i

i

qrq

sizepopiv

vqr

1

1

)_2(

CROSSOVER - CRUZAMENTO Probabilidade pc. Gere os números aleatórios r (real) em

[0..1] e pos (inteiro) em [1..m-1]. Se r<pc selecione o cromossomo para

cruzamento. Antes: (b1b2...bposbpos+1...bm) e

(c1c2...cposcpos+1...cm). Depois:(b1b2...bposcpos+1...cm) e

(c1c2...cposbpos+1...bm).

MUTAÇÃO Para cada bit de todos os

cromossomos na população atual (depois do cruzamento) faça: Gere um número aleatório (r) entre 0

e 1. Se r<pm mude o bit.

Critérios de parada Número de gerações. Número de avaliações da função

objetivo. Genótipo:

Convergência dos alelos. Fenótipo:

Tamanho do ganho na função objetivo após n iterações.

O Problema

Determinar o número de turbinas que devem operar em cada usina hidrelétrica, para todos os intervalos de tempo do próximo dia, de forma a minimizar as perdas de energia, sujeito a restrições de atendimento das demandas e limites de geração de potência das turbinas.

Turbina

Modelo Matemático

Legenda:

km

td(t)

titiI

itiPF

iiP

iiP

titiP

k

i

usina da diária energética meta :

tempono carga de demanda:

desligado)0 ligado,(1 tempono turbinada estados devetor :),(

turbinana perdas de função:)],([

turbinapela gerada máxima potência:)(

turbinapela gerada mínima potência:)(

tempono turbinapela gerada potência:),(

max

min

.1

1}1,0{

.1

1

1

1),(

),()].,([

maxmin

1

1

1 1

,T,t

,N;,ii,tI

,T,t

,N;,i(i).I(i,t)PP(i,t)(i).I(i,t)P

U.,km,t)P(i,t).I(i

,T.,td(t)tiP(i,t).Isujeito à:

tiItiPFMin

kik

T

t

N

i

T

t

N

ii

Proposta: Tendo em vista que o problema exposto

tem natureza combinatorial (2NxT soluções possíveis), propusemos o desenvolvimento de um algoritmo genético para encontrar uma boa solução.

Como estudo de caso empregaremos o algoritmo à um problema “real” brasileiro com 3 usinas, totalizando 11 turbinas que operam em intervalos de uma hora.

Espaço de busca: 211x24 3x1079.

524

Curva de cargay = 0,001x6 - 0,0824x5 + 2,4399x4 - 33,635x3 + 213,62x2 - 502,31x + 690,11

0

100

200

300

400

500

600

700

800

900

1000

 1    2    3    4    5    6    7    8    9   10  11  12  13  14  15  16  17  18  19  20  21  22  23  24 

horas

dem

and

a

Características do Algoritmo Genético Cromossomo - 264 posições Seleção por ranking pc=0.25 pm=0.01 Tamanho da população: 50 Gerações: 1000 Tempo de execução: 140-470 s

FitnessJurumirim

0,0

0,5

1,0

1,5

2,0

2,5

3,0

3,5

4,0

4,5

5 15 25 35 45 55

Potência [MW]

Per

da

[MW

]

Total

Canal Fuga

Hidráulica

Rendimento

Polinômio (Total)

Manuseio de restriçõesOpções:

1. Penalizar2. Factibilizar3. Descartar

Evolução da perda com população inicial aleatória (escala logarítmica)

100

101

102

103

102

103

104

105

106

107

Gerações

Pe

rda

Ene

rgét

ica

Evolução da Perda Energética do Melhor Indivíduo e da Média

Melhor Ind. na Pop.Média

Evolução da perda com população baseada na curva de carga (escala logarítmica)

100

101

102

103

102

103

104

105

106

Gerações

Per

da E

nerg

étic

a

Evolução da Perda Energética do Melhor Indivíduo e da Média

Melhor Ind. na Pop.Média

Programa (sem custos de partida)

Número de turbinas ligadas – sem custos de partida (usina 1)

Número de turbinas ligadas – sem custos de partida (usina 2)

Número de turbinas ligadas – sem custos de partida (usina 3)

Programa (com custos de partida)

Perdas + custos de partida

Número de turbinas ligadas – com custos de partida (usina 1)

Número de turbinas ligadas – com custos de partida (usina 2)

Número de turbinas ligadas – com custos de partida (usina 3)

Computação Evolutiva

Oderson Dias de Mello www.oderson.com

top related