Trabalho Final - Algoritmos Metaheurísticos

47
Algoritmos Meta- Heurísticos Oswald Kevin Tiago

description

Trabalho Final sobre algoritmo metaheurísticas de projeto e análise de algoritmos

Transcript of Trabalho Final - Algoritmos Metaheurísticos

Algoritmos Meta-Heursticos

Algoritmos Meta-HeursticosOswald KevinTiagoIntroduoO 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 GenricasFrameworksQuando 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 Localtimo Localtimo LocalEspao de Solues de Buscadas x Espao de Solues FactveisTipos de Meta-heursticas (Mlian et Al)Meta-heursticas ConstrutivasMeta-heursticas de RelaxaoMeta-heursticas de Busca por entornosMeta-heursticas EvolutivasOutras meta-heursticas

Meta-heursticas ConstrutivasMeta-heursticas de RelaxaoMeta-heursticas de Busca por EntornoMeta-heursticas de Busca por EntornoMeta-heursticas de Busca por EntornoMeta-heursticas EvolutivasOutras meta-heursticasMeta-heursticas de Decomposio -> Intermedirio entre Mtodo Construtivos e de Relaxao + Diviso em subproblemas + Integrao destes subproblemasRedes 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-adaptadosParticle 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 ConjuntosHarmony Search Search Based Software Test Procura o melhor conjunto de entradas para criar testes.

14ALGORITMOS GENTICOSDepois 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)INTRODUO 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.

O QUE SO 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.

CARACTERSTICAS DE ALGORITMOS GENTICOSDefinida sobre a representao gentica, mede a qualidade da soluo representada.

A Funo de AptidoPor exemplo, no Problema da Mochila, pretende-se maximizar o valor total de objetos que pode ser colocado na mochila. Uma representao da soluo pode ser um array de bits, onde cada bit representa um objeto diferente, e o valor do bit (0 ou 1) representa se ou no o objeto colocado na mochila. No todas as represtnaes so vlidas, porque o tamanho dos objetos pode exceder a capacidade da mochila. Portanto, a aptido (fitness) da soluo a soma dos valores de todos os objetos na mochila se a representao for vlida. Em alguns casos, difcil de definir a expresso de aptido; nestas situaes, algoritmos genticos so usados.

REQUISITOS 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 GENTICOS5) 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 GERAL DE ALGORITMOS GENTICOSRoteiroInicializaoSeleoReproduoTerminaoO PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSMuitas solues individuais so geradas de forma aleatoria para formar a populao inicialTamanho da populao depende da natureza do problema; geralmente de centenas a milhares de soluesA 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 GENTICOSInicializaoA 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 GENTICOSSeleoCromossomos binrios com 5 bits0 = 0000031 = 11111Aptido: Por simplicidade, ser a prpria funo objetivo:aptido(00011) = f(3) = 9O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSExemplo - Funo de AptidoO PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSExemplo

Cada indivduo da populao representado na roleta proporcionalmente ao seu fator de aptidoAssim, 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 GENTICOSExemplo1 - Seleo Proporcional a aptido (Roleto) O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSExemplo1 - Seleo Proporcional a aptido (Roleto)

Escolhe-se n (tipicamente 2) indivduos aleatoriamente da populao e o melhor selecionado.

O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSExemplo2 - Seleo por Torneio

O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSExemplo2 - Seleo por Torneio

O prximo passo gerar a populao da segunda gerao atravs dos indivduos selecionados.Os operadores genticos para realizar isso so: Crossover e MutaoO PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSReproduoCombinam 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 GENTICOSReproduo - CrossoverO PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSReproduo - Exemplo: Crossover de 1 Ponto

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 GENTICOSReproduo - Mutao (Recombinao)O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSReproduo - Mutao (Recombinao)

O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSReproduo - As Demais Geraes

O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSReproduo - As Demais Geraes

Considerado melhor que o crossover de 1 ponto.

O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSReproduo - Crossover de Dois Pontos

O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSReproduo - Crossover de 4 pontos

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 mnimaUm nmero fixo de geraes atingidoOramento alocado (tempo de computao/dinheiro) atingidoA 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 GENTICOSTerminaoO crossover ou mutao podem destruir o melhor indivduoPor que perder a melhor soluo encontrada?Elitismo transfere a cpia do melhor indivduo para a gerao seguinteO PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSTerminao - Elitismo (Dominance)Roulette Wheels Selection Pseudo-code

O PROCEDIMENTO DETALHADO DE ALGORITMOS GENTICOSPseudo-Cdigo - Seleo

Otimizao: Usados em uma grande variedade de problemas de otimizao combinatriaProgramao Automtica: Para desenvolver programas de computador para tarefas especficas e outras estruturas computacionais, tais como automatos celulares e redes de ordenaoAprendizagem 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 emergentes

APLICAES DE ALGORITMOS GENTICOS