15.053 Terça-feira, 7 de maio Formulações de Programação Inteira Distribuir: Anotações da Aula 1
Rápido Resumo de PD PD normalmente funciona para a tomada de decisões ao longo do tempo Objetivos das duas últimas aulas introduzir recursões PD os estudantes devem aprender como realizar uma recursão PD, dada a função de valor ótimo entender recursões PD quando as virem Obs.: há uma disciplina 6.231 dedicada ao tema no nível de pós-graduação 2
Programação Inteira, Novamente Representando funções lineares por partes Um problema de projeto & comercialização de produto Um problema de configuração Um problema de rota de veículo Obs.: cerca de 50% do exame final será uma mistura de formulações PL e PI. 3
Uma função linear por partes 4
O método l (mesmo que na aula sobre PNL) Quais são as condições de adjacência Quais são as condições de adjacência e como podemos expressá-las usando variáveis 0-1? 5
As condições de adjacência No máximo, duas das variáveis l são nãozero (Como expressamos isso)? Defina uma nova variável l i, onde l i = 1 se l i > 0. l i l j e l j {0,1} para j = 1 a 4; l 1 + l 2 + l 3 + l 4 2 Se i e j não são adjacentes, então não é o caso que l i > 0 e l j > 0. l j + l j para i, j não adjacente 6
Ilustração: x = 8 e y = 10 As restrições são satisfeitas 7
Método l para representação de PNL Representa x como uma combinação convexa de pontos de quebra representa y como uma combinação convexa de valores de função condições de adjacência reforçadas usando propriedades de variáveis inteiras 8
Representando funções não-lineares: o método d. Uma função linear em partes 9
Representando funções não-lineares: o método d. Uma função linear em partes 10
Mais sobre o método d x = d 1 + d 2 + d 3 coloque limites corretos em d 0 d 1 4; 0 d 2 8; 0 d 3 4; Encontre inclinações de forma que y seja corretamente definido y = 2,5 d 1 + 0 d 2 + 2,5 d 3 Regra: d j = 0 a menos que d j-1 esteja em seu limite superior para j > 1 (veja próximo slide) 11
Regra: d j = 0 a menos que d j-1 esteja em seu limite superior para j > 1. Deixe que w j = 0 se d j-1 não estiver em seu limite superior. w 2 d 1 /4; w 3 d 2 /8; w 2, w 3 {0,1} Deixe que d j = 0 se w j = 0 0 d 1 4; 0 d 2 8 w 2 ; 0 d 3 4 w 3 (isso substitui os outros limites superiores) 12
Ilustração: x = 8 e y = 10 As restrições são satisfeitas 13
Método d para representação de PIs representa x como uma soma de intervalos x = d 1 +... + d k ; 0 d j u j para cada j representa y usando inclinações dos intervalos y = a 1 d 1 +... + a k d k não pode usar um intervalo, a menos que o intervalo anterior seja esgotado (l em seu limite superior) Se d j < u j, então d j+1 =0 reforçado usando propriedades de variáveis inteiras 14
Selecionando produtos de forma ótima para estoque Um fabricante de computadores possui 8 atributos diferentes que podem ser variados ao se comprar um computador (tamanho de memória RAM, tamanho de disco, velocidade do computador, periféricos, etc). Levando-se em consideração todas as possibilidades, existem mais de 10.000 variações. Cada cliente pode encomendar um computador especial, ou pode pedir do estoque. Os clientes podem preferir pedir do estoque por ser mais conveniente, e o computador chega mais rápido. Quais computadores devem ser estocados? (Serão estocadas no máximo 25 configurações de computador). 15
Suposições para esse modelo Fabricante de computador possui conhecimento detalhado sobre 1.000 clientes aleatórios Para cada cliente i e para cada configuração de computador possível j, u(i,j) é a utilidade do cliente de selecionar j do estoque u*(i) = utilidade de encomenda especial da pessoa i p(j) é o lucro de uma compra de j se j é adquirido do estoque (maior do que sob encomenda, já que é possível fabricar mais de uma só vez). v(i) é o lucro se a pessoa i escolher fazer por encomenda. 16
Mais suposições Há uma taxa fixa f(j) para estocar o item j Objetivo da empresa: maximizar os lucros do estoque de computadores: levando em consideração receitas não feitas em pedidos especiais e as taxas fixas 17
O modelo de programação inteira Deixe que x(i,j) = 1 se o cliente i seleciona o produto j Deixe que w(i) = 1 se o cliente i faz um pedido especial Deixe que y(j) = 1 se o produto j é estocado Trabalhe com seus colegas: Qual é a função objetiva. 18
Quais são as restrições? Cada pessoa seleciona no máximo 1 produto Fabricante estoca no máximo 25 configurações diferentes Uma pessoa não pode selecionar o produto j, a menos que o produto j esteja estocado As variáveis são binárias 19
Como reforçamos que cada pessoa seleciona o produto com o máximo de utilidade? Se o item j é estocado, e se u(i,j) > u(i,k), então a pessoa i não seleciona o item k. Se o item j é estocado, e se u(i,j) é maior que u*(i), então a pessoa i não faz uma encomenda especial 20
Por favor, não olhe mais adiante Cartas 21
O modelo 22
Comentários sobre o modelo As utilidades podem ser estimadas usando análise conjunta ( conjoint analysis ) O problema é disseminado Onde ele pode entrar? Alguma sugestão sobre variações a se levar em conta? 23
Mais sobre Modelagem de Programas de Inteiros A programação inteira pode ser usada sempre que o problema de otimização for a busca de soluções em variáveis n e quando a solução puder ser descrita em soluções binárias. Porém, às vezes é preciso ter habilidade para transformar problemas em PI 24
Algumas outras áreas em que PIs são usados Gerenciamento de projetos Configuração de produtos Rota e programação de veículos ou pacotes Fabricação Finanças 25
Um Problema de Configuração de Produto Kaya deseja comprar um Porsche. Existem vários atributos possíveis que podem ser variados: existem 14 opções de cor pode-se escolher entre 2 ou 4 portas há várias opções de exterior há quatro sistema de som diferentes Kaya especificou a utilidade de cada atributo Ela tem um orçamento de B para o carro 26
Notação para o problema de configuração Atributos A 1,..., A k Cada atributo tem opções. Escrevemos j Ai se j é uma opção de Ai. u(j) = utilidade da opção j Exatamente uma opção de qualquer atributo deve ser selecionada ocasionalmente, uma das opções é nulo Há um conjunto P de pares. Se (i,j) P, isso significa que j deve ser selecionado se i é desejado. Temos um conjunto E de exclusões. Se (i,j) E, isso significa que não é possível selecionar tanto i quanto j. Há um orçamento B para a configuração. 27
Em direção a uma formulação para o problema de configuração deixe que x(j) = 1 se a opção j é selecionada = 0 se a opção j não é selecionada Maximize Utilidade Sujeito a: selecione uma opção a partir de cada atributo obedeça às restrições de precedência obedeça às restrições de exclusão não gaste mais que o orçamento B 28
Um Problema de Rota de Frota Veículos 1, 2,..., m q k = capacidade de veículo k Localidades 1, 2,..., n d(i,j) = distância da localidade i para a localidade j Depósito D Cada veículo começa no depósito D e faz uma jornada de no máximo T Cada localidade deve ser visitada por algum veículo Minimize a distância total 29
Um Problema de Rota de Veículo Suponha que haja quatro veículos 30
Um Problema de Rota de Veículo 31
Em direção a um modelo deixe que k seja o índice para o veículo deixe = 1 se o veículo k viaja de i para j = 0, do contrário Como podemos formular o problema de rota de veículo? 32
Resumo PI é bastante disseminado é possível modelar custos lineares em partes é possível modelar a maioria dos problemas nos quais a solução é valor inteiro aplicações marketing configuração de produto rota de veículo 33