NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016

Documentos relacionados
Pesquisa Operacional aplicada ao Planejamento e Controle da Produção e de Materiais Programação Linear

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Algoritmo Genético. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

Programação Linear. MÉTODOS QUANTITATIVOS: ESTATÍSTICA E MATEMÁTICA APLICADAS De 30 de setembro a 13 de novembro de 2011 prof. Lori Viali, Dr.

Curso Profissional de Nível Secundário

INSTITUTO SUPERIOR TÉCNICO Análise e Síntese de Algoritmos. RESOLUÇÃO DO 2 o TESTE

PESQUISA OPERACIONAL. UNIDADE 1 Introdução à Pesquisa Operacional. Prof. Me. Carlos Guimarães

ESCOLA SECUNDÁRIA DE LOUSADA

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 5 Resolvendo Problemas

Otimização em Colônias de Formigas. Prof. Eduardo R. Hruschka (Slides adaptados dos originais elaborados pelo Prof. André C. P. L. F.

Resolução de problemas por meio de busca. Inteligência Artificial

Quantidade de memória necessária

Inteligência Artificial

Agrupamento de Escolas do Fundão

Resolução de Problemas

Algoritmos 3/17/ Algoritmos como área de estudo e investigação

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS

Teoria dos Grafos Aula 6

PESQUISA OPERACIONAL APLICADA A LOGÍSTICA

Exemplo do jogo dos fósforos Terça-feira, 9 de maio. Exemplo para o Problema do Corpo de Bombeiros. Exemplo: Localidade do Corpo de Bombeiros

Teoria da Computação. Clique de um Grafo. Alexandre Renato Rodrigues de Souza 1

A Cidade Enlameada Árvores Geradoras Mínimas

Minicurso SBSE 2012:

Resolução do problema do caixeiro viajante assimétrico (e uma variante) através da relaxação Lagrangeana

Programação Linear - Parte 3

Aula 10: Tratabilidade

CAPÍTULO 2 Visão Geral da Abordagem de Modelagem da Pesquisa Operacional 7

A PROCURA DAS MELHORES SOLUÇÕES. OTIMIZAÇÃO NA ENGENHARIA

Programação Matemática Lista 3

Grafos: caminhos mínimos

MODELAGEM E SIMULAÇÃO

Conteúdo. Introdução. Notas. Programação Linear Inteira, Introdução. Notas. Notas

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

Resolução de Problemas. Hugo Barros

método de solução aproximada

Universidade da Beira Interior Departamento de Matemática. Ficha de exercícios nº3: Dualidade. Interpretação Económica.

DECISÕES SOBRE TRANSPORTES (PARTE III) Mayara Condé Rocha Murça TRA-53 Logística e Transportes

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

PESQUISA OPERACIONAL I

Otimização Aplicada à Engenharia de Processos

Pesquisa Operacional Introdução. Profa. Alessandra Martins Coelho

INVESTIGANDO O PROBLEMA DA MOCHILA IRRESTRITA EM SUA VERSÃO BIDIMENSIONAL

Pesquisa Operacional. Definição. Sumário 2/23/2016

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Inteligência Artificial

Pesquisa Operacional

INF INTELIGÊNCIA ARTIFICIAL TRABALHO 1 BUSCA HEURÍSTICA

O Problema do Fluxo de Custos Mínimos Terça-feira 2 de abril. O Problema do Caminho mais Curto. Fórmula. Outra Fórmula

APLICAÇÃO DE META-HEURÍSTICAS À ENGENHARIA DE PRODUÇÃ O

MODELO DE PROGRAMAÇÃO LINEAR INTEIRA MISTA PARA MINIMIZAÇÃO DOS ADIANTAMENTOS E ATRASOS EM FLOW SHOP COM SETUP DEPENDENDE DA SEQUÊNCIA

P COM CONSIDERAÇÃO DE RIGIDEZ AXIAL

Teoria dos Grafos Aula 18

Complexidade de Algoritmos. Edson Prestes

Métodos de Busca. Inteligência Artificial. Algoritmos Genéticos. Algoritmos Evolucionários. Prof. Ms. Luiz Alberto Contato:

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade

Hashing: conceitos. Hashing

Problema da Mochila Booleana: Uma Solução Usando Programação Dinâmica. Gabriel Rosa Guilherme Alves

5. Expressões aritméticas

O Problema de Transportes

Análise e Implementação de Algoritmos para o Roteamento de Veículos

Planificação a médio e longo prazo. Matemática B. 11º Ano de escolaridade. Total de aulas previstas: 193. Ano letivo 2015/2016

Terminologia encontrada para PO

x exp( t 2 )dt f(x) =

Estudo e Implementação de Algoritmos de Roteamento sobre Grafos em um Sistema de Informações Geográficas

OTIMIZAÇÃO FUNÇÕES UTILIZANDO ALGORITMOS GENÉTICOS NO APLICATIVO MS EXCEL RESUMO INTRODUÇÃO

Introdução à Teoria dos Grafos

Teoria dos Grafos Aula 23

INF 1771 Inteligência Artificial

Algoritmos Avançados Análise de Complexidade

Sistemas de Informação e Decisão. Douglas Farias Cordeiro

Inteligência Computacional Aplicada a Engenharia de Software

Palavras-chave: problema do corte de estoque, reaproveitamento das sobras, métodos heurísticos.

Problema do Caminho Mais Curto. Problema do Caminho Mais Curto

Computadores e Programação (DCC/UFRJ)

OTIMIZAÇÃO POR COLÔNIA DE FORMIGAS PARA O ROTEAMENTO EM REDES DE COMPUTADORES.

c PAVF 2 Produc~ao Considere o problema de determinar a melhor maneira de combinar varios insumos (p. ex., sementes, maquinario, trabalho humano, :::

Pesquisa Operacional II. Professor João Soares de Mello

Notas de Aula Disciplina Matemática Tópico 02 Licenciatura em Matemática Osasco -2010

Sistemas de equações lineares

* O que originou a designação Operational Research no Reino Unido, A origem da Investigação Operacional (IO)?

IMPLEMENTAÇÃO E RESOLUÇÃO DE MODELOS MATEMÁTICOS UTILIZANDO A PLANILHA EXCEL

Selecciona-se dos vértices ainda não seleccionados o vértice v k que está à menor distância de v i,

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

MATEMÁTICA NÍVEL MÉDIO

Algoritmos 2 - Introdução

MÉTODO SIMPLEX SOLUÇÃO INICIAL ARTIFICIAL

Cap. 2 Pesquisa Operacional na Tomada de Decisão

UNIVERSIDADE FEDERAL DO PARANÁ DISCIPLINA DE MÉTODOS NUMÉRICOS 2º SEMESTRE 2004 Professora Aurora T. R. Pozo 1ª LISTA DE EXERCÍCIOS

Ciência da Computação Engenharia de Computação Mestrado em Informática. Teoria dos Grafos. Maria Claudia Silva Boeres.

Matriz de Referência da área de Matemática Ensino Fundamental

Introdução à Lógica de Programação

Pesquisa Operacional. Evanivaldo Castro Silva Júnior

Estudo heurístico de performance de estratégias de investimento simples baseadas na média móvel e desvio padrão no mercado ForEx

TP052-PESQUISA OPERACIONAL I Introdução. Prof. Volmir Wilhelm Curitiba, Paraná, Brasil

Resolução de Problemas

Programação Dinâmica: Modelos Determinísticos

Ant Colony Optimization

Transcrição:

NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 Metaheurística: São técnicas de soluções que gerenciam uma interação entre técnicas de busca local e as estratégias de nível superior para criar um processo de otimização com capacidade de sair de soluções ótimas locais e realizar uma busca robusta através do espaço de busca. (Glover, ) 1. INTRODUÇÃO A maioria dos problemas realísticos não se é possível encontrar a configuração ótima com esforços computacionais razoáveis de sistemas de grande porte. Um problema de otimização (matemática) pode ser representado da seguinte forma: otimizar um objetivo { s. a um conjunto de restrições Quando é possível representar este problema usando relações matemáticas, então (1) assume a seguinte forma: min f(x) { s. a x S OBS. (1) Se a função objetivo e o conjunto de restrições são lineares temos um Problema de Programação Linear (PL) e se tivermos a f.o. e/ou restrições não lineares, temos um problema de Programação Não Linear (PNL). (2) Existe um tipo de problema muito especial: O PROBLEMA COMBINATORIAL, cujas variáveis de decisão são inteiras. x S Z n. (3) Existe um tipo de problema denominado combinatorial misto, em que algumas variáveis assumem valores inteiros x S Z n e outras valores contínuos (x S R n ). (PNLIM) (4) Os problemas combinatoriais apresentam o fenômeno da explosão combinatorial que significa que quando cresce o número de variáveis do problema então o número de configurações factíveis e o esforço computacional cresce de maneira exponencial. EXEMPLOS DE PROBLEMAS COMBINATORIAIS: O PROBLEMA DA MOCHILA BINÁRIO (knapsack problem 0-1) (I) (II) Em uma casa há um conjunto de n produtos diferentes em que cada produto tem volume a j conhecido e um valor c j conhecido. Uma pessoa pode levar todos os produtos que desejar, mas para levar os produtos ela pode usar somente uma mochila de volume b

Formular um problema de otimização matemática que permita o mochileiro decidir quais produtos deve levar na mochila para ter o máximo lucro. Seja x j a variável de decisão binária: Se x j = 1 o mochileiro leva o produto j. Se x j = 0 o mochileiro não leva o produto j. max z(x) = c x s. a. ax b, x {0,1} n max z(x) = c j x j j=1 s. a. a j x j b, j = 1,2,, n e x {0,1}, Sendo c j o preço do produto j e a j o volume do produto j. Um exemplo típico: max z(x) = 6x 1 + 6x 2 + 6x 3 + 10x 4 + 10x 5 s. a. 6x 1 + 6x 2 + 3x 3 + 2x 4 + 2x 5 10 x j {0,1} COMPLEXIDADE COMPUTACIONAL - EXPLORAÇÃO EXAUSTIVA Exemplo: O problema da mochila: Se o problema tiver 3 variáveis com x {0,1} então existem 8 soluções candidatas (algumas factíveis e outras infactíveis) x = x 1 x 2 x 3

Há 8 maneiras diferentes: Assim, um problema da mochila com n variáveis há 2 n candidatas. Supondo que existe um computador que pode ordenar e avaliar a função objetivo de um milhão de soluções candidatas por segundo. Para n=20 temos 2 20 = 1.048.576 soluções candidatas. Estes tipos de problemas o esforço computacional cresce de maneira exponencial com o tamanho do problema. NP (non polinomial) e alguns especiais são chamados de NP-completos. 2. HEURÍSTICAS As heurísticas são técnicas de otimização que permitem encontrar soluções de boa qualidade. Na década de 1960 e 1970, as heurísticas foram as técnicas de otimização mais utilizadas para resolver problemas complexos do campo de otimização matemática, em especial para aqueles problemas não lineares, discretos e não convexos. A maioria das heurística encontram soluções de boa qualidade de problemas altamente complexos em tempos relativamente rápidos, geralmente fáceis de entender e de implementar computacionalmente. No entanto, geralmente ela não consegue encontrar a solução ótima global de um problema complexo de grande porte. Um problema pode ser considerado complexo, quando há dificuldade de encontrar a solução ótima global, devido à característica de explosão combinatorial e/ou porque apresenta uma modelagem complexa (variáveis inteiras ou discretas, função objetivo não linear e não diferenciável, restrições não lineares, região factível não convexa, etc.) É interessante se utilizar técnicas heurísticas de otimização quando: 1) Quando não há um método exato de otimização para se resolver o problema; 2) Quando a solução ótima não é muito importante do ponto de vista prático. 3) Quando os dados usados apresentam muitas incertezas (como acontece nos problemas de planejamento.) 4) Quando existe limitação do tempo de processamento computacional e pouca memória do computador ou que tem que dar respostas em tempo real.

5) Quando se pretende encontrar uma boa solução inicial para ser usada como ponto de partida na aplicação de uma técnica de otimização mais sofisticada. Há vários tipos de algoritmos ou técnicas heurísticas de otimização, no entanto, limitaremos a apresentar o AHC (Algoritmo Heurístico Construtivo) e o Algoritmo de Busca Através da Vizinhança. 2.1 ALGORITMO HEURÍSTICO CONSTRUTIVO (AHC) Este tipo de heurística é uma das técnicas heurísticas de otimização mais usadas para resolver problemas complexos isoladamente ou integrado a metaheurística mais sofisticadas. O AHC é uma técnica de otimização que, em um processo passo a passo, gera uma solução geralmente de boa qualidade de um problema complexo. Em cada passo o AHC escolhe um componente individual da solução que está sendo construída e no último passo termina de gerar uma solução (configuração) factível. A diferença fundamental dos AHCs é que eles utilizam um indicador de sensibilidade. O mais popular é o tipo guloso (greedy), que utiliza a estratégia de em cada passo aquela solução (configuração) que produz o máximo benefício em cada passo. De forma genérica o AHC procede da seguinte maneira: 1- Armazena os dados do problema e escolhe o indicador de sensibilidade que será utilizado. Passo a passo, escolhe-se um componente individual que será incorporado a solução. Geralmente a solução inicia sem componentes. 2- Verificar se a solução em construção já representa uma solução factível. Se factível pare o processo e a solução factível procurada foi encontrada. Caso contrário ir ao passo 3. 3- Usando a solução em construção, resolver o problema que permite identificar o indicador de sensibilidade de todos os componentes do problema que ainda não foram incorporadas na solução em construção. 4- Usando os indicadores de sensibilidade encontrados no passo anterior identificar o elemento que deve ser incorporado na solução em construção. Adicionar o componente que deve ser incorporado na solução em construção e voltar ao passo 2.

Exemplo: PROBLEMA DO CAIXEIRO VIAJANTE (Salesman Traveling) Existe um conjunto de n cidades (nós), V = {1,2,3,, n} e um conjunto de caminhos (arcos) ligando cada uma das cidades, caminho (i, j) A. c ij é a distância para ir da cidade i para a cidade j. (c ij não necessariamente é igual a c ji ). O caixeiro deve realizar um tour (roteiro ou percurso) começando na cidade (1) e visitar todas as cidades uma única vez e retornar a cidade de origem (1). Este problema é um problema de programação linear binária, com um número grande de restrições. Formule um modelo matemático que permita encontrar o tour de distância mínima. Seja x ij = { 1 se o percurso é realizado de i para j. 0 se o percurso não é realizado de i para j. i j Supondo que exista caminho para todas as cidades: x ij {0,1}, i = 1,, n e j = 1,, n min z(x) = c ij x ij n (i,j) A Restrições: Pode-se chegar em cada cidade de uma única cidade anterior (uma cidade é visitada uma única vez.) A partir da cidade i pode se passar para uma única cidade. Não pode ter subtours. Seja o problema do caixeiro viajante com n = 6, com caminhos existentes entre todas as cidades. AHC Simples: 1) Escolher a cidade inicial de forma aleatória.

2) Utilizar como indicador de sensibilidade a distância mais próxima. Assim se o caixeiro encontra-se na cidade p então se calcula a distância da cidade p para todas as cidades ainda não visitadas e a próxima cidade que será visitada será a que é a que tiver menor distância. Portanto, a cada passo se escolhe uma aresta do grafo que no final deve gerar um tour. Exemplo de um caixeiro viajante com 6 cidades. x 11 x 12 x 13 x 14 x 15 x 16 x 21 x 22 x 23 x 24 x 25 x 26 x 31 x 32 x 33 x 34 x 35 x 36 x 41 x 42 x 43 x 44 x 45 x 46 x 51 x 52 x 53 x 54 x 55 x 56 x 61 x 62 x 63 x 64 x 65 x 66 36 variáveis binárias. Do exemplo da mochila apresentado anteriormente, aplicar uma heurística construtiva para gerar uma solução (configuração) max z(x) = 6x 1 + 6x 2 + 6x 3 + 10x 4 + 10x 5 s. a. 6x 1 + 6x 2 + 3x 3 + 4x 4 + 2x 5 10 x j {0,1} Algoritmo guloso simples: Escolher em cada passo o produto que apresenta o melhor coeficiente custo/volume. c = [6 6 6 10 10], V = [6 6 3 4 2] produto coeficiente prioridade 1 1 4 2 1 5 3 2 3 4 2,5 2 5 5 1 Adicionando o produto x 5 : f.o.=10 recurso disponível=8 Adicionando o produto x 4 : f.o.=20 recurso disponível=4

Adicionando o produto x 3 : f.o.=26 recurso disponível=1 Solução: z(x) = 26 { x 3 = x 4 = x 5 = 1 x 1 = x 2 = 0 Proposto: Resolver o problema do caixeiro viajante com 6 cidades e escolher uma inicial aleatoriamente e, em cada passo, escolher a cidade mais próxima até terminar o tour. Considere que a distância (horizontal e vertical) entre duas cidades consecutivas é 1 km e que existe caminho entre todas as cidades. 2.2 MÉTODO DE BUSCA ATRAVÉS DA VIZINHANÇA Estes métodos partem de uma solução inicial factível (ou às vezes pode ser infactível) e utilizando um processo de transição adequado passa para uma outra solução vizinha da solução corrente. Este processo é repetido passando de uma solução (configuração) para outra solução (configuração) vizinha até que o critério de parada seja satisfeito. Durante o processo sempre há a solução corrente e a solução incumbente que é a melhor solução encontrada durante o processo e finalmente representa a resposta do algoritmo. x: configuração corrente x : configuração candidata x x x deve ser vizinho de x. Então deve-se definir o que é vizinho de x. Toda configuração x N(x) é chamado de vizinho de x se a configuração x N(x) pode ser obtido por meio de uma operação elementar que é definido através de regras específicas, que vai definir o o número de elementos de N(x). Por exemplo o problema da mochila com n = 5. Configuração corrente x = [1 0 0 1 1] Definição da vizinhança N(x): 1 km São todos os elementos de N(x) todas as configurações que são obtidas a partir de x através de uma das seguintes operações elementares: i) Mudando uma posição de 0 para 1. ii) Mudando uma posição de 1 para 0.

iii) Trocando de valor duas posições (uma posição passa de 0 para 1 e outra de 1 para 0 simultaneamente). Assim para se utilizar os métodos de busca através de vizinhanças deve se definir qual a estratégia de vizinhança se vai utilizar para se obter a próxima configuração. REFERÊNCIAS BIBLIOGRÁFICAS Notas de aula da disciplina de Metaheurística do Programa de Pós Graduação em Engenharia Elétrica da UNESP Prof. Rubén Augusto Romero Lázaro.