BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH)

Documentos relacionados
Meta-heurísticas. Métodos Heurísticos José António Oliveira meta-heurísticas

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Minicurso SBSE 2012:

IA Colônia de Formigas. Prof. Ricardo Britto DIE-UFPI

Inteligência de Enxame: ACO

Inteligência Computacional Aplicada a Engenharia de Software

A Otimização Colônia de Formigas

Análise e Complexidade de Algoritmos

Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu.

Algoritmos e Estrutura de Dados III. Árvores

CT-234. Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

5COP096 TeoriadaComputação

UM ALGORITMO BASEADO EM ITERATED LOCAL SEARCH PARA O PROBLEMA DE ROTEAMENTO DE VEÍCULOS PERIÓDICO

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

O QUE É E COMO FUNCIONA O CREDIT SCORING PARTE I

Organizaçãoe Recuperaçãode Informação GSI521. Prof. Dr. Rodrigo Sanches Miani FACOM/UFU

Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 14

Projeto e Análise de Algoritmos Projeto de Algoritmos Heurísticas e Algoritmos Aproximados

Pesquisa Operacional Aplicada à Mineração

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

INVESTIGAÇÃO OPERACIONAL EM AÇÃO

Algoritmos Genéticos

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Árvores Balanceadas. Árvore binária completamente balanceada. Ocorre quando a árvore está cheia ou quase cheia com o nível n-1 completo

A equação da posição em função do tempo t do MRUV - movimento retilíneo uniformemente variado é:

Computadores de Programação (MAB353)

SIMULAÇÃO DE GESTÃO EMPRESARIAL

ESTRUTURAS DE DADOS II

Complexidade de Algoritmos. Edson Prestes

Projeto de Redes Neurais e MATLAB

Morfologia Matemática Binária

Complexidade de Algoritmos. Edson Prestes

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Hashing. Estruturas de Dados. Motivação

APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Dificuldades de Modelos de PNL. Onde está a solução ótima? Outro exemplo: Condição ótima Local vs. Global Quinta-feira, 25 de abril

Aula 03 Custos de um algoritmo e funções de complexidade

Árvores Binárias de Busca

PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA. 09/abril de 2014

Planejamento operacional de lavra

2 Atualidade de uma base de dados

Integrais Duplas e Coordenadas Polares. 3.1 Coordenadas Polares: Revisão

Planejando o aplicativo

O método de Monte Carlo: algumas aplicações na Escola Básica

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

A Otimização Nuvem de Partículas (particle swarm)

Guia de Atividades para Introdução do Powersim no Processo Ensinoaprendizagem de Equações Diferenciais Ordinárias

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

4 Orbitais do Átomo de Hidrogênio

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

Simulação Computacional de Sistemas, ou simplesmente Simulação

Sistemas Operacionais

Pesquisa Operacional Programação em Redes

CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Relatório Trabalho Prático 2 : Colônia de Formigas para Otimização e Agrupamento

ICC Introdução para JavaScript

Teste de Software Parte 1. Prof. Jonas Potros

Algoritmos e Estrutura de Dados. Aula 13 Estrutura de Dados: Árvores de Pesquisa Binária Prof. Tiago A. E. Ferreira

Algoritmos e Pseudocódigo

PROBLEMAS FÁCEIS E DIFÍCEIS. Prof. André Vignatti DINF - UFPR

Perfil de investimentos

UNIVERSIDADE DE SÃO PAULO. Faculdade de Arquitetura e Urbanismo

Análise de Algoritmos: Melhor caso, pior caso, caso médio

Busca em Espaço de Estados

2. Método de Monte Carlo

4 Avaliação Econômica

Como melhorar a Qualidade de Software através s de testes e nua. Cláudio Antônio de Araújo 22/11/2008

Utilização de Sistemas Distribuídos em MMOGs (Massive MultiPlayer Online Games) Mauro A. C. Júnior

Processos de Design de IHC (Parte II)

CAP. I ERROS EM CÁLCULO NUMÉRICO

Dó Dó# - Ré Ré# - Mi Fá Fá# - Sol Sol# - Lá Lá# - Si Dó

GESTOR ONLINE Gestor Online Principais Recursos:

GASTAR MAIS COM A LOGÍSTICA PODE SIGNIFICAR, TAMBÉM, AUMENTO DE LUCRO

Respostas dos Exercícios Cap. 2 Russell & Norvig

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

Inteligência Artificial. Metodologias de Busca

CAPÍTULO 2. Grafos e Redes

Cadernos do CNLF, Vol. XVI, Nº 04, t. 3, pág. 2451

BCC202 - Estrutura de Dados I

6. Programação Inteira

por João Gomes, Director Executivo do Instituto de Planeamento e Desenvolvimento do Turismo e Professor Associado da Universidade Fernando Pessoa

SISTEMA. Tecnologia. Software. Hardware. Prazos. Pessoas. Qualidade. Custo GERENCIAMENTO DE RISCO: COMO GARANTIR O SUCESSO DOS PROJETOS DE TI?

SUMÁRIO. Introdução... 3

Sumário executivo. Em conjunto, as empresas que implementaram

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

4.4. UML Diagramas de interacção

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Além do Modelo de Bohr

CPG: sincronização entre diferentes dispositivos

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Capítulo 2 Endogamia. Acasalamentos Preferenciais. Introdução

2 DESCRIÇÃO DO PROBLEMA ESTUDADO

Sistema Click Principais Comandos

Transcrição:

BUSCA LOCAL ITERADA (ILS ITERATED LOCAL SEARCH) Francisco A. M. Gomes 1º sem/2009 MT852 Tópicos em pesquisa operacional

Iterated local search (ILS) Método que gera uma sequência de soluções obtidas por uma heurística de busca local. De forma mais geral, pode ser aplicado quando possuímos um método otimização local. É mais eficiente que a busca com recomeços (na qual escolhemos aleatoriamente vários pontos que pertencem ao espaço de soluções e aplicamos o algoritmo de busca local).

Busca com recomeços Algoritmo: Seja S o conjunto de soluções factíveis para o problema em questão. Dado um conjunto de soluções iniciais s 1, s 2,..., s m S. Para cada solução inicial s k, aplica-se um algoritmo de busca local, obtendo s k * S, mínimo local mais próximo de s k. O melhor s k* é considerado a solução do problema. Dificuldades: Não é eficiente quando resolvemos problemas grandes, porque: As soluções têm custo médio acima do ótimo (por um percentual fixo). A distribuição dos custos das soluções tem um pico em torno da média que fica mais pronunciado à medida em que o problema cresce.

Princípio da busca local iterada Idéia do algoritmo: Fazer uma busca no espaço S* dos mínimos locais do problema. Ingredientes do algoritmo: Um método de busca local que parta de s e atinja s *. Um método para sair de s * e atingir outro mínimo local s * que usa Uma estratégia de perturbação para gerar s a partir de s *. O algoritmo de busca local para obter s * a partir de s. Um teste para decidir se s * deve ou não ser aceito.

Representação gráfica da ILS

ILS - Algoritmo 1 s 0 Gera_Solução_Inicial; 2 s * Busca_Local(s 0 ); 3 Enquanto não é satisfeito um critério de parada, 3.1 s Perturbação(s *, histórico); 3.2 s * Busca_Local(s ); 3.3 s * Critério_de_Aceitação(s *, s *, histórico); 4 Fim-Enquanto;

Problema do caixeiro viajante (TSP) Dados: V = {v 1,..., v m } conjunto de cidades (nós) A = {(r, s) r, s V} conjunto de arestas (caminhos entre cidades) c rs = custo associado à aresta (r, s) Propósito: O caixeiro deve visitar todas as cidades Passando uma só vez em cada cidade Com o menor custo possível TSP simétrico

Solução inicial A solução inicial pode ser gerada: aleatoriamente; usando-se um algoritmo guloso ou heurística de construção. Geralmente, é melhor usar uma boa solução inicial. Se permitimos que o número de iterações seja muito grande, a solução inicial perde importância.

Solução inicial para o TSP Normalmente, usa-se uma heurística de construção: método da inserção mais barata; método do vizinho mais próximo; muitas outras presentes na literatura.

Heurística da inserção mais barata Escolher dois nós, v n1 e v n2 (os mais distantes, por exemplo). Ligar esses nós por meio das arestas (n1, n2) e (n2, n1). Guardar os nós em s, na ordem em que são percorridos (ex: s={n1, n2}). Guardar em V os demais nós do problema. Enquanto V, Escolher um nó v k V. Calcular o custo de inserir v k entre cada par de nós sucessivos de s. Introduzir v k em s, na posição em que o aumento do custo seja o menor possível. Retirar v k de V.

Heurística do vizinho mais próximo Escolher um nó, v n1. Guardar este nó em s. Guardar em V os demais nós do problema. Enquanto V, Escolher o nó v k V mais próximo do último nó inserido em s. Retirar v k de V e introduzi-lo ao final de s. Há variantes mais sofisticadas desta heurística, nas quais: escolhe-se o nó v k mais próximo de algum nó de s; a posição em que v k é inserido depende do custo de inserção.

Busca local Às vezes, é tratada como uma caixa preta, ou seja, usa-se qualquer heurística já existente para o problema que resolveremos. A única exigência é que o método seja capaz de melhorar uma solução dada. Pode-se, inclusive, usar metaheurísticas como a busca tabu, a têmpera simulada e o VND (variable neighborhood descent). Geralmente, quanto mais eficiente o algoritmo de busca, melhor. Entretanto, há casos em que um algoritmo barato e simples é preferível (dependendo da estratégia de perturbação).

Busca local para o TSP Para definir a busca, é preciso escolher qual vizinhança será vasculhada. Heurísticas mais usadas: 2-opt. Or-opt. 3-opt. Lin e Kernighan (que executa um movimento 3-opt seguido por uma sucessão de movimentos 2-opt, podendo, eventualmente, alterar vários arcos da solução).

Perturbação A perturbação: Não pode ser grande demais a ponto de fazer com que o ILS se torne uma busca local com recomeços. Deve ser suficientemente potente para que a busca local não seja capaz de revertê-la. Desta forma, é preciso que a busca local e a perturbação sejam definidas de forma coordenada. Alternativas mais complexas para a perturbação: Pode-se variar a perturbação ao longo das iterações, como no VNS. Pode-se alterar alguns dados do problema (ex: custos) e aplicar o algoritmo de busca local para obter s.

Perturbação para o TSP Cross-exchange: retira 4 arcos e religa o ciclo formando uma cruz (movimento 4-opt particular). Não pode ser desfeito pela busca local que usa 2-opt, 3-opt, Oropt ou LK. Figura extraída de Applegate et alii, Finding tours in the TSP.

Critério de aceitação Usualmente, exige-se que solução melhore. Neste caso, s * só é aceito se f(s * ) < f(s * ). Esta é a estratégia geralmente empregada para o TSP. Também é possível: Aceitar s * pior que s * com uma certa probabilidade baixa. Usar uma regra de aceitação semelhante à da têmpera simulada, definindo a probabilidade de aceitação em função da temperatura. Muitas vezes, essas estratégias de diversificação são aplicadas apenas quando a regra usual não dá certo por muitas iterações.

Recorrendo aos recomeços Em certos casos, o algoritmo estagna. Geralmente, isso ocorre quando: o problema é muito grande ou complexo; o algoritmo de busca local não permite uma diversificação adequada. Nestes casos, pode-se adotar recomeços: Uma solução aleatória é gerada sempre que a solução ótima permanece inalterada por um certo número fixo de iterações.