Você está na página 1de 47

Algoritmos MetaHeursticos

Oswald
Kevin
Tiago

Introduo
O que so heursticas?
O que so meta-heursticas?

O que so heursticas?
Heursticas so procedimentos utilizados para

determinao de uma soluo para um


problema NP-Difcil, em tempo computacional
razovel. (Polinomial).

O que so meta-heursticas?
Heursticas Genricas
Frameworks
Quando so aplicadas/Porque utilizada :
No h muita informao sobre a aparncia da
soluo tima
H pouca informao heurstica disponvel
Fora bruta desconsiderado por ter um
espao de soluo muito grandes.

O que so meta-heursticas?
Heursticas de Construo e Melhoramento.
Presena de passo estocstico

O que so meta-heursticas?
timo
Local

timo
Local

timo
Local

Espao de Solues de Buscadas x Espao de Solues


Factveis

Tipos de Meta-heursticas (Mlian et


Al)
Meta-heursticas Construtivas
Meta-heursticas de Relaxao
Meta-heursticas de Busca por entornos
Meta-heursticas Evolutivas
Outras meta-heursticas

Meta-heursticas Construtivas
Este
tipo de meta-heurstica estabelece estratgias

para construo de uma soluo atravs da


definio, de forma cuidadosa, de cada uma de suas
componentes.
Estratgia Gulosa H um processo interativo em
que a cada passo adiciona um elemento soluo
parcial, de forma a obter os melhores resultados
possveis.
GRASP Meta-heursticas com duas fases: Fase de
Construo (Ideia gulosa + processo estocstico) e
Busca Local (busca de vizinhana para procura de
melhores solues).

Meta-heursticas de Relaxao
Meta-heursticas de relaxao realizam

alteraes na modelagem original do


problema de forma a ficar mais simples.
(Problema relaxado).
Solucionar o problema relaxado mais fcil
Eliminao de restries de integralidade das
variveis em um problema de programao
linear inteira.
Relaxao Lagrangeana

Meta-heursticas de Busca por


Entorno
Meta-heursticas
de Busca por Entornos podem ser

definidas como procedimentos que percorrem o


espao de busca levando em conta, em cada passo,
a vizinhana da soluo em mos.
Aspectos importantes:
Estrutura de entorno grande x pequena
Clculo da funo objetivo Tcnicas de Relaxao ,

Clculo de custo levando em conta soluo anterior


Gerao da Soluo Inicial Processos Construtivos.
Critrio de Parada Tempo total de Execuo, Tempo que
no foi obtido progresso, Nmero de movimentos
efetuados

Meta-heursticas de Busca por


Entorno

hill-climbing (Montona) Meta-heurstica simples que

parte uma soluo inicial e em cada iterao, realiza


um movimento que conduz a uma soluo melhor que
de sua vizinhana, at encontrar a melhor.
hill-climbing (Verso Gulosa) Muda a soluo inicial S
para a melhor soluo da vizinhana de S.
Partida Mltipla Diversas solues iniciais e Diversas
buscas montonas.
VNS (Variable Neighbourhood Search) Realiza busca
montona alterando sistematicamente a estrutura de
entornos, com apoio de um conjunto C de estruturas
de entornos definidas.

Meta-heursticas de Busca por


Entorno

local Guiada A busca local guiada penaliza (fazendo


Busca

alteraes na funo objetivo) os elementos que aparecem


com frequncia nas solues timas locais de forma incentivar
a explorao de diversas regies do espao de busca.
Busca Tabu Tem como principal caracterstica a capacidade
de explorao do histrico do processo de busca, organizando
em estruturas que se chama memria adaptativa. A
construo e a explorao da memria adaptativa levam em
conta 4 dimenses: frequncia, presena no estado
recente, qualidade e influncia. Um dos critrios de
explorao que, durante a escolha de vizinhana, tambm
pode haver uma lista de vizinhos de uma soluo em que
sero proibidas de serem exploradas (lista tabu).
Simulated Anneling - Metalurgia

Meta-heursticas Evolutivas

evolutivas lidam com uma populao (um


Meta-heursticas

conjunto de solues) que evolui atravs da interao


entre seus elementos, procurando preservar as
caractersticas desejveis, sem comprometer a diversidade
dentro da populao.
Algoritmos Genticos (Mutao + Combinao) de
Cromossomos
Algoritmos Memticos (Mutao + Combinao + Busca
por Entorno) de Agentes
Estimao de Distribuio Construo aleatrio de
Populao -> Seleo dos mais aptos em um conjunto S ->
Estima distribuio de probabilidade E de S -> Cria uma
nova populao com base em E

Outras meta-heursticas
Meta-heursticas de Decomposio -> Intermedirio entre Mtodo Construtivos

e de Relaxao + Diviso em subproblemas + Integrao destes subproblemas


Redes Neurais Artificiais Transforma um conjunto de Entradas em um valor
aproximado de uma funo objetivo.
Colnia de Formigas Rota entre fonte de alimentao + formigueiro ,
Feromnio.
Otimizao Extrema Extino de Indivduos mal-adaptados
Particle Swarm Optimization - Comportamento Social dos pssaros, Percorrem
o espao de busca com comportamento aleatrio com critrio de
Individualidade + Sociabilidade.
Busca Local Iterada Aplica busca local para um conjunto de solues e pega a
melhor soluo encontrada.
Fuzzy Adaptative Neighbourhood Search - Lgica Fuzzy de Conjuntos
Harmony Search
Search Based Software Test Procura o melhor conjunto de entradas para criar
testes.

ALGORITMOS
GENTICOS

INTRODUO
Depois de cientistas ficaram desiludidos com as
tentativas clssicas e neoclssicas em
modelagem inteligncia, eles olharam em outras
direes.
Duas reas de destaque surgiram, conexionismo
ou connectionism (redes neurais e
processamento paralelo) e computao
evolutiva.
Esta apresentao baseada em computao
evolutiva (algoritmos genticos e programao
gentica)

O QUE SO ALGORITMOS GENTICOS?


So tcnicas de otimizao e busca utilizadas
em computao para encontrar solues exatas
ou aproximadas em problemas de busca.
Usam tcnicas inspiradas por Biologia evolutiva
tal como herana, mutao, seleo e Crossover
(ou recombinao).

O QUE SO ALGORITMOS GENTICOS?


Descrevem uma populao de representaes
abstratas (chamadas cromossomos ou gentipos
ou genomas), solues fativis (chamadas
indivduos ou criaturas ou fentipos) e um
problema de otimizao para solues melhores.

O QUE SO ALGORITMOS GENTICOS?


Em outras palavras:
AGs manipulam uma populao de indivduos.
Os indivduos so possveis solues do
problema.
Os indivduos so combinados (crossover) uns
com os outros, produzindo filhos que podem
sofrer ou no mutao.
As populaes evoluem atravs de sucessivas
geraes at encontrar a soluo tima.

CARACTERSTICAS DE ALGORITMOS
GENTICOS
um algortmo estoctico, ou no
determinstico, ou seja, dada uma certa entrada,
ela produzir sempre a mesma sada, com a
mquina responsvel sempre pela mesma
sequncia de estados.
Trabalha com uma populao de solues
simultaneamente.

CARACTERSTICAS DE ALGORITMOS
GENTICOS
So fceis de serem implementados em
computadores.
Adaptam-se bem a computadores paralelos.
So facilmente hibridizados com outras tcnicas,
por exemplo, usados com GRASP para avaliar a
otimizao de objetos em 3D.

A Funo de Aptido
Definida sobre a representao
gentica, mede a qualidade da
soluo representada.

REQUISITOS DE ALGORITMOS GENTICOS

O PROCEDIMENTO GERAL DE
ALGORITMOS GENTICOS
1) A populao criada com um grupo de
indivduos gerado aleatoriamente.
2) Os indidduos nesta populao so avaliados.
3) A funo de aptido fornecida pelo
programador, que concede uma pontuao aos
indivduos com base em quo bom eles
executam uma determinada tarefa.
4) Dois indivduos so selecionados baseado nas
suas aptidos; maior a aptido, maior chance de
ser selecionado.

O PROCEDIMENTO GERAL DE
ALGORITMOS GENTICOS
5) Estes dois indivduos ento reproduzem para
criar um ou mais proles, aps o qual os proles
so mutados de forma aleatria.
6) O processo continua at que seja encontrada
uma soluo adequada, ou um certo nmero de
geraes tenha passado, dependendo das
necessidades do programador.

O PROCEDIMENTO DETALHADO DE
ALGORITMOS GENTICOS
Roteiro
Inicializao
Seleo
Reproduo
Terminao

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Inicializao
Muitas solues individuais so geradas de
forma aleatoria para formar a populao inicial
Tamanho da populao depende da natureza do
problema; geralmente de centenas a milhares
de solues
A populao gerada de forma aleatria abrange
toda a gama de solues possveis (espao de
busca)
Ocasionalmente, as solues podem ser
buscadas onde h uma maior probabilidade de
encontrar solues timas

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Seleo
A cada gerao sucessiva, uma proporo da
populao existente selecionada para produzir
uma nova gerao.
Solues individuais so selecionadas a partir
de um processo baseado em aptido, usando a
funo de aptido, onde solues mais aptas
tm uma maior chance a serem selecionadas.
Alguns mtodos de seleo avaliama taxa de
aptido de cada soluo para selecionar a
soluo tima enquanto outros avaliam apenas
uma amostra aleatria da populao.

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Exemplo - Funo de Aptido
Cromossomos binrios com 5 bits
0 = 00000
31 = 11111
Aptido:
Por simplicidade, ser a prpria funo objetivo:
aptido(00011) = f(3) = 9

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Exemplo

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Exemplo1 - Seleo Proporcional a aptido (Roleto)
Cada indivduo da populao representado na
roleta proporcionalmente ao seu fator de
aptido
Assim, aos indivduos de alta aptido dada
uma poro maior da roleta, enquanto aos
indivduos de aptido mais baixa dada uma
poro relativamente menor da roleta.
Finalmente, a roleta girada um determinado
nmero de vezes, dependendo do tamanho da
populao, e so escolhidos, como indivduos
que participaro da prxima gerao, aqueles
sorteados na roleta.

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Exemplo1 - Seleo Proporcional a aptido (Roleto)

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Exemplo2 - Seleo por Torneio
Escolhe-se n (tipicamente 2) indivduos
aleatoriamente da populao e o melhor
selecionado.

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Exemplo2 - Seleo por Torneio

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo

O prximo passo gerar a populao da


segunda gerao atravs dos indivduos
selecionados.
Os operadores genticos para realizar isso so:
Crossover e Mutao

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo - Crossover
Combinam pais selecionados para reproduo
de filhos.
Principais mecanismos de busca do algoritmos
genticos.
Permite explorar reas desconhecidas do
espao de busca.
Se o crossover aplicado, o pais trocam suas
caldas, gerando dois filhos, caso contrrio os
dois filhos sero cpias exatas dos pais.

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo - Exemplo: Crossover de 1 Ponto

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo - Mutao (Recombinao)
Mutao inverte os valores dos bits
aplicada com dada probabilidade,
denominada taxa de mutao (aprox. 1%) em
cada um dos bits do cromossomo.
A taxa de mutao no deve ser alta nem
baixa, mas o sufficiente para assegurar a
diversidade de cromossomos na populao.

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo - Mutao (Recombinao)

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo - As Demais Geraes

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo - As Demais Geraes

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo - Crossover de Dois Pontos
Considerado melhor que o crossover de 1 ponto.

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Reproduo - Crossover de 4 pontos

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Terminao
Este processo de gerao repetido at uma
condio de parada atingida.
As condies de parada mais comuns so:
Uma soluo encontrada que satisfaz a
critria mnima
Um nmero fixo de geraes atingido
Oramento alocado (tempo de
computao/dinheiro) atingido
A soluo do invidduo mais apto est chegando
ou chegou a um planalto tal que iteraes
sucessivas no produzam nenhum resultado
melhor.

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Terminao - Elitismo (Dominance)
O crossover ou mutao podem destruir o
melhor indivduo
Por que perder a melhor soluo encontrada?
Elitismo transfere a cpia do melhor indivduo
para a gerao seguinte

O PROCEDIMENTO DETALHADO DE ALGORITMOS


GENTICOS
Pseudo-Cdigo - Seleo
Roulette Wheels Selection Pseudo-code

APLICAES DE ALGORITMOS GENTICOS


Otimizao: Usados em uma grande variedade
de problemas de otimizao combinatria
Programao Automtica: Para desenvolver
programas de computador para tarefas
especficas e outras estruturas computacionais,
tais como automatos celulares e redes de
ordenao
Aprendizagem de Mquina: Usados em muitas
aplicaes de aprendizagem, incluindo
classificao e predio de tarefas (previso do
tempo ou estrutura de protenas)
Economia: Usados para modelar processos de
inovao, desenvolvimento de estratgias de
lances e na predio de mercados econmicos