Quinta-feira, 11 de abril

Documentos relacionados
Otimização Combinatória - Parte 4

Aula 13: Branch-and-bound

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Pesquisa Operacional / Programação Matemática

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

Aula 12: Programação Inteira

Métodos de Pesquisa Operacional

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

Métodos Exatos para PI - Parte 1: Branch-and-Bound

Aula 22: Formulações com número exponencial de variáveis

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

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Pesquisa Operacional Aula 4 Solução Gráfica em Programação Linear

Aula 19: Lifting e matrizes ideais

Terça-feira, 7 de maio

CAPÍTULO IV PROGRAMAÇÃO LINEAR INTEIRA (PLI)

Aula 17: Planos de Corte

Programação Linear (PL) Solução algébrica - método simplex

Exemplos de modelos de PL ou PI

Combinando inequações lineares

Algoritmos Exatos 3.1. Relaxação Lagrangeana

Problema de Designação. Fernando Nogueira Problema de Designação 1

Aula 03: Algoritmo Simplex (Parte 2)

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

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

Introdução Paradigmas

Otimização discreta Modelagem com variáveis binárias: problemas clássicos

Programação Inteira Resolução por Branch and Bound

Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana

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

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

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

Problemas de otimização

5COP096 TeoriadaComputação

Branch and Bound - Ramicar e Limitar

Os Problemas de Optimização Combinatória e a Teoria da Complexidade

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica (continuação) Prof. Humberto Brandão

Parte II. Aplicações em Roteamento de Veículos

Objetivo da Programação Inteira

Combinando inequações lineares

Problema do Caixeiro Viajante

Programação Linear Inteira. C. Requejo (UA) Métodos de Investigação Operacional MIO / 30

Resolvendo algebricamente um PPL

Pesquisa Operacional Programação em Redes

Alguns problemas só podem ser resolvidos apenas se as variáveis tiverem valores inteiros.

Aula 10: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

Programação Linear/Inteira

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

Escola de Engenharia de Lorena EEL/USP Curso de Engenharia de Produção. Resolução Gráfica. Prof. Fabrício Maciel Gomes

PCC104 - Projeto e Análise de Algoritmos

Método Simplex dual. Marina Andretta ICMC-USP. 24 de outubro de 2016

PESQUISA OPERACIONAL. Prof. Carlos Norberto Vetorazzi Jr.

Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números

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

Complementos de Investigação Operacional. Folha nº 1 Programação Inteira 2006/07

Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas

3 Extensões dos modelos matemáticos

Pesquisa Operacional

Complementos de Investigação Operacional. Folha nº 1 Programação Inteira 2007/08

CAPÍTULO 4. Teoria da Dualidade

Programação Linear/Inteira

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

Uma Introdução à Programação Linear

3. Resolução de problemas por meio de busca

Pesquisa Operacional

Aula 1. Utilização de Planilhas Eletrônicas em Processos. Prof. M.Sc. Aécio Flávio de Paula Filho

Simplex. Investigação Operacional José António Oliveira Simplex

Optimização em Redes e Não Linear

Programação Linear. (3ª parte) Informática de Gestão Maria do Rosário Matos Bernardo 2016

EAD 350 Pesquisa Operacional Aula 06 Parte 2 Programação Inteira Programação Binária

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

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

Programação Linear M É T O D O S : E S T A T Í S T I C A E M A T E M Á T I C A A P L I C A D A S D e 1 1 d e m a r ç o a 2 9 d e a b r i l d e

Noções da Teoria dos Grafos. André Arbex Hallack

Lista de Exercícios I - Gabarito

Matemática Aplicada Nt Notas de aula

Investigação Operacional

Otimização Combinatória - Parte 3

UNIDADE 7 PROGRAMAÇÃO MATEMÁTICA

Pesquisa Operacional Aplicada à Mineração

Programação Linear Binária. Prof. Fabrício Maciel Gomes Departamento de Engenharia Química Escola de Engenharia de Lorena EEL

Pesquisa Operacional / Programação Matemática

Teoria de dualidade. Marina Andretta ICMC-USP. 19 de outubro de 2016

a) Formule este problema em Programação Linear inteira. b) Considere os seguintes dados Matriz das distâncias (em Km) entre as comunidades

PROGRAMAÇÃO INTEIRA. Prof. Gustavo Peixoto Silva Departamento de Computação Univ. Federal de Ouro Preto 5 modelos

Otimização em Grafos

Noções da Teoria dos Grafos

Branch-and-Bound para problemas de Otimização Combinatória

Resolução de problemas difíceis de programação linear através da relaxação Lagrangeana

PESQUISA OPERACIONAL APLICADA A LOGÍSTICA

Benemar Alencar de Souza

SISTEMAS LINEARES PROF. EDÉZIO

Teoria da Computação. Complexidade computacional classes de problemas

Programação Inteira. Solução com o método Branch-and-Bound

O método Simplex Aplicado ao Problema de Transporte (PT).

Otimização de horários Seminário. Clarisse Resende 25/01/2013

Algoritmos Genéticos

QuickTime and atiff (Uncompressed) decompressorare needed to see this picture. Programação Inteira. Métodos Quantitativos 2002/2003.

Otimização: O melhor

Transcrição:

15.053 Quinta-feira, 11 de abril Mais alguns exemplos de programação inteira Técnicas de planos de corte para obter melhores limitações Entregar: Observações de Aula 1

Exemplo: Localização do corpo de bombeiros. Considere a localização dos corpos de bombeiros em diferentes municípios. Objetivo: dispor os corpos de bombeiros de forma que cada distrito tenha um nele, ou em um local próximo, um corpo de bombeiros para minimizar os custos. 2

Exemplo para o problema de Corpo de Bombeiros Onde x j = se um corpo de bombeiros estiver localizado no distrito j. xj = 0 caso contrário. Onde c j = custo de colocar um corpo de bombeiros no distrito j. Formule com seus colegas o problema do corpo de bombeiros. 3

Configurar problema de cobertura configurar S= {1,, m} dos itens a serem cobertos municípios que precisam ter um corpo de bombeiros ou que precisem estar próximos a um a distrito que possua um corpo de bombeiros n subconjuntos de S Para cada local j possível para um corpo de bombeiro, o subconjunto é um distrito j mais a lista de municípios adjacentes ao distrito j. a ij = 1 se o distrito i para adjacente ao distrito j ou se i = j. Minimizar sujeito a para cada i é binário para cada j 4

Restrições de cobertura são comuns Rota de frotas para companhias aéreas: Indicar um percurso para cada avião. Todos os vôos devem ser incluídos Indicar a tripulação para os aviões Cada avião deve ter uma tripulação Local do armazém Cada vendedor deve ser atendido por um armazém. 5

Conjunto Independente (agrupamento de conjuntos) Qual é o número máximo de municípios de forma que dois deles não compartilhem a mesma fronteira? Com seus colegas, formule o problema de conjunto independente. Relacione todas as restrições que contém x 10. 6

As restrições do agrupamento de conjuntos surgem com freqüência durante a manufatura e logística Cortar formas a partir de uma folha de metal Manufaturar de uma só vez diversos itens que usam os mesmos recursos (quanto trabalho pode ser feito em paralelo)? 7

Revisão da Aula Passada Orçamento de Investimento $14.000 Investimento 1 2 3 4 5 6 Valor Necessário $5 $7 $4 $3 $4 $6 (1000s) VPL adicionado (1000s) $16 $22 $12 $8 $11 $19 maximizar 16x 1 + 22x 2 + 12x 3 + 8x 4 +11x 5 + 19x 6 sujeito a 5x 1 + 7x 2 + 4x 3 + 3x 4 +4x 5 + 6x 6 = 14 x j binário para j = 1 a 6 8

Derivação e Limitação A solução titular tem o valor igual a 43 9

Sobre limites da Programação Linear Encontramos um titular com um valor igual a 43. O melhor valor da solução PL está entre 44 e 45. Existe uma forma de estabelecer diretamente uma limitação superior entre 43 e 44? Poderíamos talvez formar um programa linear melhor. Quanto mais próximo a PL estiver do Programa de Inteiros melhor. Observação: nem todas as formulações de PL são as mesmas em termos de aproximação 10

Usando Planos de Corte Solução ótima (titular) Solução fracionária ótima (i.e. inviável) Exemplo. Minimizar sujeito a x + 10y x, y estão em P x, y inteiros 11

Usando Planos de Corte Sugestão: adicione restrições que eliminem soluções fracionárias a PL sem eliminar qualquer solução de inteiros. adicionar y = 1 adicionar y =x-1 Exemplo. Minimizar sujeito a x + 10y x, y estão em P x, y inteiros 12

Usando Planos de Corte Solução ótima (titular) Se adicionarmos exatamente as desigualdades corretas, então cada ponto do aresta da PL será um número inteiro e o PI poderá ser solucionado. resolvendo-se a PL A isso damos o nome de PL mínimo, o casco convexo das soluções PI. Exemplo. Minimizar sujeito a x + 10y x, y estão em P x, y inteiros É difícil encontrar essas restrições para problemas maiores. 13

Mais sobre a adição de restrições As restrições mais rígidas possível são muito úteis e denominadas facetas. Suponhamos que estamos fazendo a maximização e z PL é a opção para a atenuação da PL e z PI é a opção para PI. Então z PI = z PL De preferência, queremos que z PI esteja próximo a z PL. Isso é MUITO BOM para derivação e limitação. A adição de diversas desigualdades pode ser bastante útil. Não tem nenhum efeito em z PI. Pode reduzir z PL de forma significativa. 14

Técnica de Plano de Corte Puro Em vez de particionar a região viável, a técnica do plano de corte (puro) trabalha com um única PL Planos de corte são adicionados (desigualdades válidas de programação linear) de forma iterativa à esse PL. Em cada iteração a região viável é reduzida de forma sucessiva até que uma integral ótima seja encontrada resolvendo-se a PL. Na prática, também é usada como parte da derivação e limitação. A idéia essencial é encontrar cortes ou desigualdades válidos. 15

De onde vem esses cortes? Duas abordagens Específica para o problema Ilustrada no Problema do Vendedor Viajante e Problema da Mochila Abordagem baseada em PL, que funciona para programas gerais de inteiros Planos de corte de Gomory 16

Problema Específico O problema de orçamento de capital (mochila) maximizar sujeito a x j binário para j = 1 a 6 17

A Atenuação de LP O problema do orçamento de capital (mochila) maximizar sujeito a 0 = x j = 1 para j = 1 a 6 A solução ótima: É possível encontrar uma desigualdade (corte) que elimine essa solução? 18

A Atenuação de LP O problema de orçamento de capital (mochila) maximizar sujeito a A solução ótima : 19

Após um corte maximizar sujeito a 0 = x j = 1 para j = 1 a 6 A solução ótima: 20

Após dois cortes maximizar sujeito a 0 = x j = 1 para j = 1 a 6 A solução ótima: 21

Obtendo o corte válido É fácil maximizar de forma que x j binário para j = 1, 2, 3, 6. Coloque os itens de menor orçamento na mochila até que ela esteja cheia. Nesse caso, os itens 1 e 3 são guardados na mochila e não há espaço para os itens 2 ou 6. Então 22

Após três cortes maximizar sujeito a Observação sobre Excel: os novos cortes dominam os antigos. 23

Eliminando as restrições redundantes maximizar sujeito a para A solução ótima: Então 24

Resumo para o Problema de Mochila É possível encontrar algumas desigualdades simples válidas que demonstraram que z* = 43. Esse é o valor objetivo ótimo. São necessários 3 cortes Se tivéssemos sido mais espertos apenas um curte seria necessário Temos uma abordagem simples para encontrar cortes. Isso não mostra todos os cortes. Lembre-se, são necessários 25 nós de uma árvore de derivação e limitação De fato, pesquisadores descobriram que são necessárias técnicas de plano de corte para resolver programas de inteiros maiores (geralmente como uma forma de encontrar melhores limitações). 25

Problema do Caixeiro Viajante (PCV) Qual é o caminho mais curto para visitar cada ponto? 26

Comentários sobre o PCV Problema muito bem estudado É com freqüência o problema usado para testar novos algoritmos NP-completo (é difícil, de forma intrínseca, do ponto de vista técnico Exemplos grandes foram resolvidos de maneira ótima (5000 cidades ou mais) Exemplos muito grandes foram resolvidos Aproximadamente (10 milhões de cidades dentro de uma porcentagem ótima). Formularemos adicionando restrições que se assemelham a cortes 27

O PCV como um PI, quase Onde x e = 1 se o arco e está no caminho x e = 0 caso contrário Onde A(i) = arcos incidentes em um nó i Minimizar sujeito a x e é binário Essas restrições são suficientes? 28

Subcaminhos Qualquer solução de inteiros com exatamente dois pontos incidentes em dois nós é a união de dois caminhos. Por quê? Objetivo: adicionar restrições que eliminem esses subcaminhos mas que não eliminem qualquer caminho do PCV. 29

Subcaminhos Onde S = {2, 3, 4, 7, 9}. Então cada caminho tem no máximo 4 arcos em S. A cada subconjunto estrito S de cidades, adicione uma restrição onde o número máximo de arcos em S é S - 1. Isso garante que o conjunto S não terá um subcaminho que passe por todos os cinco nós. 30

Formulação do PCV com um IP Minimizar sujeito a subcaminho quebrando restrições xe é binário Essas restrições S são suficientes? Sim! Infelizmente, existe um número exponencial. Mas, de qualquer forma, funciona muito bem. Gerar conforme necessário. 31

Mais sobre o PCV As restrições de eliminação do subcaminho são boas onde a PL limitante para os problemas práticos é geralmente 1% a 2% para o comprimento do caminho do PCV. Pode-se adicionar restrições ainda mais complexas, o que é feito com freqüência (e que é útil). 32

Cortes de Gomory: um método de geração de cortes usando tabelas de PL Considere a restrição a seguir em um programa de inteiros Estude as frações. inteiro 33

Cortes de Gomory O que tomamos como base para realizar o corte de Gomory? Uma única restrição com um lado direito fracionário Todos os coeficientes são positivos. Todas as variáveis devem ser inteiras 34

O que devemos fazer se os coeficientes forem negativos? Reescreva de forma que os coeficientes das partes fracionárias sejam positivos. inteiro 35

Em maneira geral Onde fr(a) é a parte fracionária positiva de; 36

Como gerar planos de corte? De forma geral Após pivotar, encontra uma variável básica fracionária. Escreva uma corte de Gomory. (É uma restrição de desigualdade, que leva a uma nova variável). Observação: os únicos coeficientes que são fracionários correspondem a variáveis não-básicas (por quê?) O corte de Gomory torna a solução básica anterior inviável. (por quê?) Resolva a PL com a nova restrição e itere 37

Resumo de Programação Inteira Aumenta drasticamente a capacidade de modelagem Indivisibilidades econômicas Restrições lógicas Modelagem em não-linearidades Não é tão fácil de modelar. Não é tão fácil de resolver. 38

Resumo de Técnicas de Solução de PI Derivação e Limitação muito geral e fácil de adaptar usado na prática (ex.: Excel Solver) Enumeração Implícita técnica de derivação e limitação para PIs binários Planos de Corte forma inteligente de aprimorar a limitação área ativa para pesquisa, teoria e aplicada 39