Tabu Search (Busca Tabu) e
Algoritmos Genéticos
Prof. Alexandre Monteiro
Recife
‹#›
Contatos

Prof. Guilherme Alexandre Monteiro Reinaldo

Apelido: Alexandre Cordel

E-mail/gtalk: [email protected]
[email protected]

Site: http://www.alexandrecordel.com.br/fbv

Celular: (81) 9801-1878
Tabu Search (Busca Tabu)
Meta - heurísticas
Tabu Search

Fred Glover e Pierre Hansen.

é um método de busca local


explorar o espaço de soluções movendo-se de uma solução
para outra que seja seu melhor vizinho.
uma estrutura de memória para armazenar as soluções
geradas
•Ou características destas
Algoritmo BT




Começando com uma solução inicial s0, a cada iteração,
Um subconjunto V da vizinhança N(s) da solução corrente s
é explorado
O membro s0 de V com melhor valor nesta região segundo a
função f(:) torna-se a nova solução 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 clássica contém 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 exploração do subconjunto V da vizinhança
N(s) da solução corrente s, ficam excluídos da busca os
vizinhos s0 que são obtidos de s por movimentos m que
constam na lista tabu
Função de Aspiração

A lista tabu
•por um lado, reduz o risco de ciclagem
•por outro, também pode proibir movimentos
para soluções que ainda não foram visitadas

Função de aspiração é um mecanismo que retira, sob certas
circunstâncias,
•o status tabu de um movimento.
Aspiração por Objetivo




Mais precisamente, para cada possível valor v da
função objetivo existe um nível de aspiração A(v):
• uma solução s0 em V pode ser gerada se f(s0) <
A(f(s)), mesmo que o movimento m esteja na lista
tabu.
A função de aspiração A é tal que,
• para cada valor v da função objetivo, retorna outro
valor A(v) que representa o valor que o algoritmo
aspira ao chegar de v.
Um exemplo simples de aplicação desta idéia é
considerar A(f(s)) = f(s*) onde s* é a melhor solução
encontrada até então.
Neste caso, aceita-se um movimento tabu somente se
ele conduzir a um vizinho melhor que s*. Esta é a
chamada aspiração por objetivo.
Critério de Parada




Duas regras são normalmente utilizadas de forma a
interromper o procedimento.
Pela primeira, pára-se quando é atingido um certo
número máximo de iterações sem melhora no valor da
melhor solução.
Pela segunda, quando o valor da melhor solução chega
a um limite inferior conhecido (ou próximo dele).
Esse segundo critério evita a execução desnecessária
do algoritmo quando uma solução ótima é encontrada
ou quando uma solução é julgada suficientemente
boa.
Parâmetros Principais

a cardinalidade |T| da lista tabu,

a função de aspiração A,


a cardinalidade do conjunto V de soluções vizinhas testadas
em cada iteração e
BTmax, o número máximo de iterações sem melhora no
valor da melhor solução.
Estratégias de Intensificação


Uma estratégia típica é retornar à uma solução
já visitada para explorar sua vizinhança de
forma mais efetiva.
Outra estratégia consiste em incorporar
• atributos das melhores soluções já encontradas
• estimular componentes destas soluções a tornar
parte da solução corrente.

Um critério de término
• tal como um número fixo de iterações, é utilizado
para encerrar o período de intensificação.
Busca Tabu
Fred Glover (1986) & Pierre Hansen
(1986)
1ª Idéia: Utilizar heurística de
descida
1ª Idéia: Utilizar heurística de
descida
1ª Idéia: Utilizar heurística de
descida
Problema: Fica-se preso no primeiro ótimo local
2ª Idéia: Mover para o melhor
vizinho
O melhor vizinho pode ser de piora!
2ª Idéia: Mover para o melhor
vizinho
Problema: Ciclagem
3ª Idéia: Criar Lista Tabu
TABU
3ª Idéia: Criar Lista Tabu
Problemas com uma Lista Tabu de
soluções.

É computacionalmente inviável armazenar todas as
soluções geradas!
• Idéia: Armazenar apenas as últimas |T| soluções geradas
• Observação: Uma lista com as |T| últimas soluções evita
ciclos de até |T| iterações
• Problema: Pode ser inviável armazenar |T| soluções e testar
se uma solução está ou não na Lista Tabu
• Idéia: Criar uma Lista Tabu de movimentos reversos

Problema: Uma Lista Tabu de movimentos pode ser
muito restritiva (impede o retorno a uma solução já gerada
anteriormente e também a outras soluções ainda não geradas).
Algoritmos Genéticos
Meta - heurísticas
Algoritmos Genéticos


São técnicas de busca e otimização.
É a metáfora da teoria da evolução das espécies iniciada pelo
Fisiologista e Naturalista inglês Charles Darwin.

Desenvolvido por John Holland (1975) e seus alunos.

Popularizado por David Goldberg (1989).

Princípio básico: 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
Teoria da Evolução

1859 - Charles Darwin publica o livro “A
Origem das Espécies”:
.
Charles
Darwin
“As espécies evoluem pelo
princípio da seleção
natural e sobrevivência do
mais apto.”
Teoria da Evolução

1865- Gregor Mendel apresenta experimentos
do cruzamento genético de ervilhas.
•Pai da genética.
.
Gregor
Mendel

A Teoria da Evolução começou a partir da
conceituação integrada da seleção natural
com a Genética.
Introdução

Principal motivação para o estudo da computação evolutiva
através de algoritmos genéticos é:
•Otimização de processos complexo e que
possuem um grande número de variáveis

O que é otimizar?
26
Otimização

É a busca da melhor solução para um dado problema.
•Consiste em tentar várias soluções e usar a
informação obtida para conseguir soluções
cada vez melhores.

Exemplo de otimização:
•Telespectador através de ajuste na antena
da televisão otimiza a imagem buscando
várias soluções até alcançar uma boa
imagem.
Otimização

As técnicas de otimização, geralmente, apresentam:
Espaço de busca: onde estão todas as
possíveis soluções do problema;
• Função objetivo: utilizada para avaliar as
soluções produzidas, associando a cada
uma delas uma nota.
Introdução

Idéia principal da Computação Evolutiva é o seguinte:
• 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
-
Tendem a desaparecer
29
Computação Evolutiva

Sistemas utilizados para a resolução de
problemas
•Utilizam modelos computacionais baseados na
teoria da evolução natural

Pesquisas tiveram início na década de 50

Principal técnica:
•Algoritmos genéticos
30
Algoritmos Genéticos (AGs)


Métodos adaptativos que podem ser utilizados para resolver
problemas de busca e otimização
Os AGs são baseados nos processos genéticos de organismos
biológicos
•Populações de soluções evoluem, ao longo
das gerações
- De acordo com os princípios de seleção natural
31
Algoritmos Genéticos

Origem:
•Desenvolvido por John Holland e sua
equipe na década de 50
- Popularizado por David Goldberg

Objetivo:
• Desenvolver
sistemas artificiais baseados
nos mecanismos dos sistemas naturais
32
Algoritmos Genéticos

Podem encontrar soluções para problemas do mundo real,
dada as seguintes condições:
• Problemas
devem ser adequadamente
codificados
• Deve
haver uma forma de avaliar as
soluções apresentadas
33
Algoritmos Genéticos

Funcionamento:
População inicial
População final
Avaliação
População atual
Seleção
Reprodução
34
Algoritmos Genéticos

Utilizam uma população de soluções
candidatas (indivíduos)

Otimização ocorre em diversas gerações

A cada geração, acontece:
•Mecanismos de seleção selecionam os
indivíduos mais aptos
•Operadores de reprodução geram novos
indivíduos
35
Algoritmos Genéticos


Cada indivíduo representa uma possível solução para um dado
problema
A cada indivíduo é associado um valor de aptidão
•Mede o quão boa é a solução que ele representa

Indivíduos mais aptos têm mais oportunidades de serem
reproduzidos
36
Princípios básicos dos AGs

Indivíduo

Codificação

Função de aptidão

Reprodução
37
Indivíduo

Possível solução para um dado problema
• Também
chamado de cromossomo ou string
 Codificado
como vetor de características
 População
• Conjunto
de indivíduos
38
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 ]
39
Codificação

Genótipo
•

Conjunto de parâmetros representado por um
cromossomo (hereditário, genoma)
Fenótipo
•
Produto da interação de todos os genes (o homem é
produto do meio)
40
Função de aptidão

Mede o grau de aptidão de um indivíduo
• Aptidão = probabilidade do indivíduo sobreviver para a
próxima geração

Depende do objetivo da aplicação que se deseja
resolver
Uma mesma tarefa pode ter diferentes objetivos
• Ex. projeto de ponte
•
- Menor Custo
- Menor tempo de construção
- Maior capacidade de carga
41
Função de aptidão

É 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
42
Reprodução

Permite obtenção de novos indivíduos

Utiliza operadores genéticos
•Transformam a população
- Crossover (cruzamento ou recombinação)
- Mutação
43
Crossover

Recombinação de características dos pais durante a reprodução
•Permite que as próximas gerações herdem essas
características

Funcionamento
• Escolhe
dois indivíduos e troca trechos dos
cromossomos entre eles

Exploração rápida do espaço de busca
44
Crossover

Diversas variações
•Um ponto
- Mais comum
•Dois pontos
•Multi-pontos
•Uniforme
45
Crossover 1 ponto
Ponto de crossover
Pai 1
0 1 0 0 0 1 1 Pais
Filho A
0 1 0 0 1 0 1 Filhos
Pai 2
0 0 1 0 1 0 1
Filho B
0 0 1 0 0 1 1
46
Crossover de 2 pontos
Pai 1
0 1 0 0 0 1 1 Pais
Filho A
0 1 0 0 1 1 1 Filhos
Pai 2
0 0 1 0 1 0 1
Filho B
0 0 1 0 0 0 1
47
Crossover uniforme
• Gerar uma máscara de bits aleatórios e combinar os
bits dos pais de acordo com a máscara gerada
• 1 => Pai 1 e 0 => Pai 2
Mascara: 0 1 0 1 0 0 0
Pai 1
0 1 0 0 0 1 1 Pais
Filho A
0 1 1 0 1 0 1 Filhos
Pai 2
0 0 1 0 1 0 1
Filho B
0 0 0 0 0 1 1
48
Problema
Máximo global
f(x) = x sen(10 px) + 1
3,0
Máximo local
2,0
1,0
0,0
-1,0
-1,0
Máximo global:
x = 1,85055
f(x) = 2,85027
-0,5
0,0
0,5
x
1,0
1,5
2,0
As Gerações do Problema
f(x) = x seno(10px) + 1.0
3,0
População 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
População gerada aleatóriamente
1,5
2,0
As Gerações do Problema
3,0
Primeira Geração
f(x) = x sen(10px) + 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
x
Pouca melhoria
1,0
1,5
2,0
As Gerações do Problema
3,0
f(x) = x sen(10px) + 1.0
2,5
Geração 25
2,0
1,5
1,0
0,5
0,0
-0,5
-1,0
-1,0
-0,5
0,0
0,5
x
1,0
1,5
2,0
A maioria dos indivíduos encontraram o máximo global
As Gerações do Problema 2
Função objetivo
3,0
Média
Melhor
2,5
2,0
1,5
1,0
0,5
0
5
10
15
20
25
Geração
Na geração 15 o AG já encontrou o ponto máximo
Mutação




Introdução e manutenção da diversidade
genética
• Aplicado a cada indivíduo após crossover
Altera aleatoriamente um ou mais genes no
cromossomo
Assegura que a probabilidade de atingir
qualquer ponto do espaço de busca nunca será
zero
Taxa de mutação pequena Pm @ 0.001
54
Mutação
Antes da mutação
0 1 0 0 0 1 1
Após a mutação
0 1 1 0 0 1 1
55
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
56
Seleção pela roleta
Método da Roleta baseado em Aptidão Relativa
Indivíduo Aptidão Aptidão
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


Indivíduo de maior desempenho é automaticamente
selecionado
Evita modificações deste indivíduo pelos operadores genéticos
•Utilizado para que os melhores indivíduos não
desapareçam da população pela manipulação
dos operadores genéticos
58
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
59
Escolha de parâmetros

Escolhidos de acordo com o problema
• Quantos
cromossomos em uma população
- Poucos  efeito pequeno do crossover
- Muitos  aumenta tempo de computação
• Taxa
de mutação
- Baixa  mudanças lentas
- Alta  traços desejados não são mantidos (caos)
60
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 complexidade
da análise
• Algoritmo
pode se tornar ineficiente
61
Aplicações

Otimização de função numérica

Otimização combinatória
•

Projetos
•

Determinação de Árvores Filogenéticas
Projeto de pontes
Aprendizado de Máquina
• Determinação dos parâmetros de Redes Neurais
Artificiais em problemas de Bioinformática
62
Aplicações de AGs

O desenvolvimento de um AG inclui os seguintes passos:
•Especificar o problema, limites e critério
ótimo
•Representar o domínio do problema como
um cromossomo
•Definir a função de avaliação
•Construir os operadores genéticos
•Rodar o AG
63
Algoritmos Genéticos
Caixeiro Viajante
O Problema

Dado um número de cidades, encontrar o
caminho mais curto passando por todas as
cidades uma única vez
• Função Objetivo = Distância Total Percorrida
Representação
Crossover

Crossover baseado em posição


São selecionadas n cidades.
Cada filho mantém a posição das cidades selecionadas de um pai
Crossover

Crossover baseado em ordem


São selecionadas n cidades.
Cada filho herda a ordem das cidades selecionadas de um pai
Mutação

Mutação baseada na troca de posição de uma cidade

Mutação baseada na troca da ordem de duas cidades
Algoritmos Genéticos –
Referência Básica da Aula

Estefane Lacerda – Introdução aos Algoritmos Genéticos. Em
Sistemas Inteligentes – Aplicações a Recursos Hídricos e Ciências
Ambientais, 1999
• http://www.dca.ufrn.br/~estefane/metaheuristicas/index.html

Stuart Russell and Peter Norvig, Artificial Intelligence - A Modern
Approach. Prentice Hall, 1995.
Download

s 0