Sei sulla pagina 1di 70

Tabu Search (Busca Tabu) e

Algoritmos Genticos
Prof. Alexandre Monteiro
Recife

Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: alexandrecordel@gmail.com
greinaldo@fbv.edu.br

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878

Tabu Search (Busca Tabu)


Meta - heursticas

Tabu Search

Fred Glover e Pierre Hansen.

um mtodo de busca local

explorar o espao de solues movendo-se de uma soluo


para outra que seja seu melhor vizinho.
uma estrutura de memria para armazenar as solues
geradas

Ou caractersticas destas

Algoritmo BT

Comeando com uma soluo inicial s0, a cada iterao,


Um subconjunto V da vizinhana N(s) da soluo corrente s
explorado
O membro s0 de V com melhor valor nesta regio segundo a
funo f(:) torna-se a nova soluo corrente
mesmo que s0 seja pior que s.

Evitando Ciclos

existe uma lista tabu T, a qual uma lista de


movimentos proibidos.
A lista tabu clssica contm os movimentos reversos
aos ltimos |T| movimentos realizados
|T| funciona como uma fila de tamanho fixo,
isto , quando um novo movimento adicionado lista, o
mais antigo sai.

Assim, na explorao do subconjunto V da vizinhana


N(s) da soluo corrente s, ficam excludos da busca os
vizinhos s0 que so obtidos de s por movimentos m que
constam na lista tabu

Funo de Aspirao

A lista tabu

por um lado, reduz o risco de ciclagem


por outro, tambm pode proibir movimentos
para solues que ainda no foram visitadas

Funo de aspirao um mecanismo que retira, sob certas


circunstncias,

o status tabu de um movimento.

Aspirao por Objetivo

Mais precisamente, para cada possvel valor v da


funo objetivo existe um nvel de aspirao A(v):
uma soluo s0 em V pode ser gerada se f(s0) <
A(f(s)), mesmo que o movimento m esteja na lista
tabu.
A funo de aspirao A tal que,
para cada valor v da funo objetivo, retorna outro
valor A(v) que representa o valor que o algoritmo
aspira ao chegar de v.
Um exemplo simples de aplicao desta idia
considerar A(f(s)) = f(s*) onde s* a melhor soluo
encontrada at ento.
Neste caso, aceita-se um movimento tabu somente se
ele conduzir a um vizinho melhor que s*. Esta a
chamada aspirao por objetivo.

Critrio de Parada

Duas regras so normalmente utilizadas de forma a


interromper o procedimento.
Pela primeira, pra-se quando atingido um certo
nmero mximo de iteraes sem melhora no valor da
melhor soluo.
Pela segunda, quando o valor da melhor soluo chega
a um limite inferior conhecido (ou prximo dele).
Esse segundo critrio evita a execuo desnecessria
do algoritmo quando uma soluo tima encontrada
ou quando uma soluo julgada suficientemente boa.

Parmetros Principais

a cardinalidade |T| da lista tabu,

a funo de aspirao A,

a cardinalidade do conjunto V de solues vizinhas testadas


em cada iterao e
BTmax, o nmero mximo de iteraes sem melhora no
valor da melhor soluo.

Estratgias de Intensificao

Uma estratgia tpica retornar uma soluo


j visitada para explorar sua vizinhana de
forma mais efetiva.
Outra estratgia consiste em incorporar
atributos das melhores solues j encontradas
estimular componentes destas solues a tornar
parte da soluo corrente.

Um critrio de trmino

tal como um nmero fixo de iteraes, utilizado


para encerrar o perodo de intensificao.

Busca Tabu

Fred Glover (1986) & Pierre Hansen


(1986)

1 Idia: Utilizar heurstica de

descida

1 Idia: Utilizar heurstica de

descida

1 Idia: Utilizar heurstica de

descida

Problema: Fica-se preso no primeiro timo local

2 Idia: Mover para o melhor

vizinho

O melhor vizinho pode ser de piora!

2 Idia: Mover para o melhor

vizinho

Problema: Ciclagem

3 Idia: Criar Lista Tabu

TABU

3 Idia: Criar Lista Tabu

Problemas com uma Lista Tabu de


solues.

computacionalmente invivel armazenar todas as


solues geradas!
Idia: Armazenar apenas as ltimas |T| solues geradas
Observao: Uma lista com as |T| ltimas solues evita
ciclos de at |T| iteraes
Problema: Pode ser invivel armazenar |T| solues e testar
se uma soluo est ou no na Lista Tabu
Idia: Criar uma Lista Tabu de movimentos reversos

Problema: Uma Lista Tabu de movimentos pode ser


muito restritiva (impede o retorno a uma soluo j gerada
anteriormente e tambm a outras solues ainda no geradas ).

Algoritmos Genticos
Meta - heursticas

Algoritmos Genticos

So tcnicas de busca e otimizao.


a metfora da teoria da evoluo das espcies iniciada pelo
Fisiologista e Naturalista ingls Charles Darwin.

Desenvolvido por John Holland (1975) e seus alunos.

Popularizado por David Goldberg (1989).

Princpio bsico: Evoluo natural

A evoluo natural pode ser vista como um processo de


otimizao no qual:

Indivduos e populaes competem entre si por


recursos
- Alimento
- gua
- Abrigo

Teoria da Evoluo

1859 - Charles Darwin publica o livro A


Origem das Espcies:

Charles
Darwin

As espcies evoluem pelo


princpio da seleo
natural e sobrevivncia do
mais apto.

Teoria da Evoluo

1865- Gregor Mendel apresenta experimentos


do cruzamento gentico de ervilhas.

Pai da gentica.
.
Gregor
Mendel

A Teoria da Evoluo comeou a partir da


conceituao integrada da seleo natural
com a Gentica.

Introduo

Principal motivao para o estudo da computao evolutiva


atravs de algoritmos genticos :

Otimizao de processos complexo e que


possuem um grande nmero de variveis

O que otimizar?

26

Otimizao

a busca da melhor soluo para um dado problema.

Consiste em tentar vrias solues e usar a


informao obtida para conseguir solues
cada vez melhores.

Exemplo de otimizao:

Telespectador atravs de ajuste na antena


da televiso otimiza a imagem buscando
vrias solues at alcanar uma boa
imagem.

Otimizao

As tcnicas de otimizao, geralmente, apresentam:

Espao de busca: onde esto todas


as possveis solues do problema;
Funo objetivo: utilizada para
avaliar as solues produzidas,
associando a cada uma delas uma
nota.

Introduo

Idia principal da Computao Evolutiva o seguinte:

Indivduos mais bem sucedidos na sobrevivncia e


atrao de um parceiro tero, relativamente,
mais descendentes
-

Espalham seus genes

Indivduos mal sucedidos geram poucos ou


nenhum descendente
-

Tendem a desaparecer

29

Computao Evolutiva

Sistemas utilizados para a resoluo de


problemas
Utilizam modelos computacionais baseados na
teoria da evoluo natural

Pesquisas tiveram incio na dcada de 50

Principal tcnica:
Algoritmos genticos

30

Algoritmos Genticos (AGs)

Mtodos adaptativos que podem ser utilizados para resolver


problemas de busca e otimizao
Os AGs so baseados nos processos genticos de organismos
biolgicos

Populaes de solues evoluem, ao longo das


geraes
- De acordo com os princpios de seleo natural

31

Algoritmos Genticos

Origem:

Desenvolvido por John Holland e sua equipe


na dcada de 50
- Popularizado por David Goldberg

Objetivo:

Desenvolver sistemas artificiais baseados


nos mecanismos dos sistemas naturais

32

Algoritmos Genticos

Podem encontrar solues para problemas do mundo real,


dada as seguintes condies:

Problemas devem ser adequadamente


codificados
Deve haver uma forma de avaliar as
solues apresentadas

33

Algoritmos Genticos

Funcionamento:

Populao inicial

Populao final

Avaliao
Populao atual
Reproduo

Seleo

34

Algoritmos Genticos

Utilizam uma populao de solues


candidatas (indivduos)

Otimizao ocorre em diversas geraes

A cada gerao, acontece:


Mecanismos de seleo selecionam os
indivduos mais aptos
Operadores de reproduo geram novos
indivduos
35

Algoritmos Genticos

Cada indivduo representa uma possvel soluo para um dado


problema
A cada indivduo associado um valor de aptido

Mede o quo boa a soluo que ele representa

Indivduos mais aptos tm mais oportunidades de serem


reproduzidos

36

Princpios bsicos dos AGs

Indivduo

Codificao

Funo de aptido

Reproduo

37

Indivduo

Possvel soluo para um dado problema

Tambm chamado de cromossomo ou string

Codificado

como vetor de caractersticas

Populao

Conjunto de indivduos

38

Codificao

Cada indivduo codificado por um conjunto


de parmetros (genes)
Genes podem assumir valores:
-

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

Parmetros so combinados para formar strings


ou vetores (cromossomos)
Exemplo:

Xi = [ 2 1 8 0 -2 -4 1 ]
39

Codificao

Gentipo

Conjunto de parmetros representado por um


cromossomo (hereditrio, genoma)

Fentipo

Produto da interao de todos os genes (o homem


produto do meio)

40

Funo de aptido

Mede o grau de aptido de um indivduo

Aptido = probabilidade do indivduo sobreviver para a


prxima gerao

Depende do objetivo da aplicao que se deseja


resolver

Uma mesma tarefa pode ter diferentes objetivos


Ex. projeto de ponte
- Menor Custo
- Menor tempo de construo
- Maior capacidade de carga

41

Funo de aptido

aplicada ao fentipo do indivduo


O gentipo precisa ser decodificado,
recuperando o fentipo associado

Cada aplicao tem sua prpria funo de


aptido
42

Reproduo

Permite obteno de novos indivduos

Utiliza operadores genticos

Transformam a populao
- Crossover (cruzamento ou recombinao)
- Mutao

43

Crossover

Recombinao de caractersticas dos pais durante a reproduo

Permite que as prximas geraes herdem essas


caractersticas

Funcionamento

Escolhe dois indivduos e troca trechos dos


cromossomos entre eles

Explorao rpida do espao de busca

44

Crossover

Diversas variaes

Um ponto
- Mais comum

Dois pontos
Multi-pontos
Uniforme

45

Crossover 1 ponto
Ponto de crossover

Pai 1

Pai 2

0 1 0 0 0 1 1 Pais

Filho A

0 0 1 0 1 0 1

Filho B

0 1 0 0 1 0 1 Filhos

0 0 1 0 0 1 1

46

Crossover de 2 pontos

Pai 1

Pai 2

0 1 0 0 0 1 1 Pais

Filho A

0 0 1 0 1 0 1

Filho B

0 1 0 0 1 1 1 Filhos

0 0 1 0 0 0 1

47

Crossover uniforme
Gerar uma mscara de bits aleatrios e combinar os
bits dos pais de acordo com a mscara gerada
1 => Pai 1 e 0 => Pai 2

Mascara: 0 1 0 1 0 0 0

Pai 1

Pai 2

0 1 0 0 0 1 1 Pais

Filho A

0 0 1 0 1 0 1

Filho B

0 1 1 0 1 0 1 Filhos

0 0 0 0 0 1 1
48

Problema
Mximo global

f(x) = x sen(10 x) + 1

3,0
Mximo local
2,0
1,0
0,0

-1,0
-1,0

Mximo global:
x = 1,85055
f(x) = 2,85027

-0,5

0,0

0,5
x

1,0

1,5

2,0

As Geraes do Problema

f(x) = x seno(10x) + 1.0

3,0

Populao Inicial

2,5
2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0

-0,5

0,0

0,5

1,0

x
Populao gerada aleatriamente

1,5

2,0

As Geraes do Problema

f(x) = x sen(10x) + 1.0

3,0

Primeira Gerao

2,5
2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0

-0,5

Pouca melhoria

0,0

0,5

1,0

1,5

2,0

As Geraes do Problema
3,0

Gerao 25

f(x) = x sen(10x) + 1.0

2,5
2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0

-0,5

0,0

0,5

1,0

1,5

2,0

A maioria dos indivduos encontraram o mximo global

As Geraes do Problema 2

Funo objetivo

3,0

Mdia
Melhor

2,5
2,0
1,5
1,0
0,5

10

15

20

25

Gerao

Na gerao 15 o AG j encontrou o ponto mximo

Mutao

Introduo e manuteno da diversidade


gentica
Aplicado a cada indivduo aps crossover
Altera aleatoriamente um ou mais genes no
cromossomo
Assegura que a probabilidade de atingir
qualquer ponto do espao de busca nunca ser
zero
Taxa de mutao pequena Pm 0.001

54

Mutao

Antes da mutao
0 1 0 0 0 1 1

Aps a mutao
0 1 1 0 0 1 1

55

Seleo

Escolhe preferencialmente, embora no exclusivamente,


indivduos com maiores notas de aptido

Procura manter a diversidade da populao

Indivduos mais aptos tm mais oportunidades de serem


reproduzidos

56

Seleo pela roleta


Mtodo da Roleta baseado em Aptido Relativa
Indivduo Aptido Aptido
Si
f(Si)
Relativa
S1 10110

2.23

0.14

S2 11000

7.27

0.47

S3 11110

1.05

0.07

S4 01001

3.35

0.21

S5 00110

1.69

0.11

S1

S5
S4

S2

S3

57

Elitismo

Indivduo de maior desempenho automaticamente


selecionado
Evita modificaes deste indivduo pelos operadores genticos

Utilizado para que os melhores indivduos no


desapaream da populao pela manipulao
dos operadores genticos

58

Critrio de parada

Tempo de execuo

Nmero de geraes

Valor de aptido mnimo e/ou mdio

Convergncia

Nas ltimas k iteraes no houve melhora


nas aptides

59

Escolha de parmetros

Escolhidos de acordo com o problema

Quantos cromossomos em uma populao


- Poucos efeito pequeno do crossover
- Muitos aumenta tempo de computao

Taxa de mutao
- Baixa mudanas lentas
- Alta traos desejados no so mantidos (caos)

60

Escolha de parmetros

Outros parmetros

Quantos indivduos selecionados para


reproduo?
Quantos pontos de crossover?
Critrio para medir aptido?

Manter limites no tamanho da populao e complexidade


da anlise

Algoritmo pode se tornar ineficiente

61

Aplicaes

Otimizao de funo numrica

Otimizao combinatria

Projetos

Determinao de rvores Filogenticas


Projeto de pontes

Aprendizado de Mquina
Determinao dos parmetros de Redes Neurais
Artificiais em problemas de Bioinformtica

62

Aplicaes de AGs

O desenvolvimento de um AG inclui os seguintes passos:

Especificar o problema, limites e critrio


timo
Representar o domnio do problema como
um cromossomo
Definir a funo de avaliao
Construir os operadores genticos
Rodar o AG

63

Algoritmos Genticos
Caixeiro Viajante

O Problema

Dado um nmero de cidades, encontrar o


caminho mais curto passando por todas as
cidades uma nica vez
Funo Objetivo = Distncia Total Percorrida

Representao

Crossover

Crossover baseado em posio

So selecionadas n cidades.
Cada filho mantm a posio das cidades selecionadas de um pai

Crossover

Crossover baseado em ordem

So selecionadas n cidades.
Cada filho herda a ordem das cidades selecionadas de um pai

Mutao

Mutao baseada na troca de posio de uma cidade

Mutao baseada na troca da ordem de duas cidades

Algoritmos Genticos
Referncia Bsica da Aula

Estefane Lacerda Introduo aos Algoritmos Genticos. Em


Sistemas Inteligentes Aplicaes a Recursos Hdricos e Cincias
Ambientais, 1999
http://www.dca.ufrn.br/~estefane/metaheuristicas/index.html
Stuart Russell and Peter Norvig, Artificial Intelligence - A Modern
Approach. Prentice Hall, 1995.

Potrebbero piacerti anche