Introdução à Construção de Modelos de Otimização Linear Contínua e Inteira Maria do Socorro Nogueira Rangel DCCE Departamento de Ciências da Computação e Estatística e-mail: [email protected] Apoio : http://www.dcce.ibilce.unesp.br/~socorro/ Sumário Construção de Modelos Ferramentas Computacionais Modelos de Otimização Linear e Inteira 2 Construção de Modelos Motivação "Existem duas maneiras de aumentar a eficiência de uma loja, empresa, ou indústria. Uma delas requer a melhoria tecnológica, isto é, atualização dos equipamentos, mudança no processo tecnológico, descoberta de novos e melhores tipos de matéria prima. A outra maneira, até hoje muito menos utilizada, envolve melhorias na organização do planejamento e da produção. Isto é, melhorias no processo de distribuição do trabalho entre as máquinas da empresa, distribuição de matéria prima, combustível, entre outros fatores." (Kantarovich (1939) in Dantzig, 1963, pg 22) 3 Construção de Modelos Motivação Por que usar modelos matemáticos para auxiliar a tomada de decisão? – Solução matemática X solução impírica – Melhor entendimento da empresa – Ferramenta de apoio a tomada de decisão 4 Construção de Modelos Processo de Construção de um Modelo Matemático Sistema Real Simplificação Definição e Descrição do Problema Revisão Modelo Matemático Solução do Modelo Decisão Teórica x Política Implementação da Solução 5 Construção de Modelos Elementos de um modelo de otimização DECISÕES Identificar as possíveis soluções (Definir Variáveis de Decisão) OBJETIVOS Definir critérios de avaliação capazes de indicar que uma decisão é preferível a outras (Definir Função Objetivo) RESTRIÇÕES Identificar quais as restrições que limitam as decisões a serem tomadas (Definir Conjunto de Equações ou Inequações) 6 Construção de Modelos Forma Geral de um Modelo de Otimização min (ou max) (função objetivo) sujeito a (restrições principais - equações ou inequações) (tipo das variáveis de decisão) 7 Construção de Modelos Classes de Modelos de Otimização • • • • Contínuo Inteiro Não linear Misto 8 Construção de Modelos Modelo de Otimização Linear Contínuo min(ou max) z c1 x1 c2 x2 ... cn xn sujeito a a11x1 a12 x2 ... a1n xn ~ b1 a22 x1 a22 x2 ... a2 n xn ~ b2 ... am1 x1 am 2 x2 ... am nxn ~ bm Forma Padrão: max z c t x s.a Ax b x n x1 , x2 ,...xn 0 onde ~ pode ser , , ou 9 Construção de Modelos Modelo de Otimização Linear Inteiro min(ou max)z c1 x1 c2 x2 ... cn xn sujeito a a11 x1 a12 x2 ... a1n xn ~ b1 a22 x1 a22 x2 ... a2 n xn ~ b2 ... am1 x1 am 2 x2 ... amn xn ~ bm Forma Padrão: max z c t x s.a Ax b x Z n x1 , x2 ,...xn 0, inteira onde ~ pode ser , , ou 10 Construção de Modelos Modelo de Otimização Linear Misto min(ou max)z c1 x1 c2 x2 ... cn xn sujeito a a11 x1 a12 x2 ... a1n xn ~ b1 a22 x1 a22 x2 ... a2 n xn ~ b2 ... am1 x1 am 2 x2 ... amn xn ~ bm x1 , x2 ,...xn 0; x1 , x2 ,...x p Z ; x p 1 , x p 2 ,...xn onde ~ pode ser , , ou 11 Construção de Modelos Modelo de otimização Não Linear min(ou max ) z f ( x1 , x2 ,... xn ) sujeito a g1 ( x1 , x2 ,... xn ) ~ b1 g 2 ( x1 , x2 ,... xn ) ~ b2 ... g m ( x1 , x2 ,... xn ) ~ bm onde ~ pode ser , , ou e f(.), g i (.) são funções contínuas 12 Construção de Modelos Construção de um modelo Descreva com a maior riqueza de detalhes o problema a ser tratado Identifique a classe do modelo matemático mais apropriado (linear, não linear, inteiro, misto) Defina as variáveis , a função objetivo, e as restrições. Se necessário, simplifique o problema. (Processo Iterativo) 13 Construção de Modelos Exemplo Linear - O Problema da Dieta Problema: Paula deseja saber quanto gastar para fazer uma dieta alimentar que forneça diariamente toda a energia, proteína e cálcio que ela necessita. Seu médico recomendou que ela se alimente de forma a obter diariamente no mínimo 2000 kcal de energia, 65g de proteína e 800 mg de cálcio. O Valor nutritivo e o preço (por porção) de cada alimento que ela esta considerando comprar é dado na Tabela 1 abaixo. Tabela 1 – Valor nutritivo e custo dos alimentos alimento arroz ovos leite feijão tamanho energia Proteína cálcio da porção (kcal) (g) (mg) 100g 2un 237ml 260g 170 160 160 337 3 13 8 22 12 54 285 86 preço p/ porção (centavos) 14 13 9 19 14 Construção de Modelos Construindo um modelo para o Problema da Dieta Neste problema temos: elementos conhecidos: valor nutritivo dos alimentos, custo dos alimentos elementos desconhecidos: quanto consumir de cada alimento objetivo a ser alcançado: obter uma dieta de baixo custo restrições: a dieta deve fornecer uma quantidade mínima de nutrientes. 15 Construção de Modelos Construindo um modelo para o Problema da Dieta Índices A dieta deve ser feita a partir de 4 itens: arroz, ovos, leite, feijão. Faça j = 1,2,3,4 representar respectivamente cada um dos itens VARIÁVEIS DE DECISÃO Defina então: xj = número de porções adquirida do alimento j para ser usada na dieta 16 Construção de Modelos Construindo um modelo para o Problema da Dieta Objetivo Obter a dieta de menor custo possível. Proporcionalidade: 1 porção de arroz ==> 14 centavos, 2 porções de arroz ==> 28 centavos, x1 porções de arroz ==> 14* x1 centavos. gasto associado a compra de ovos: 13 * x2 Aditividade gasto total com arroz e ovos é dado pôr: 14 x1 +13 x2 17 Construção de Modelos Construindo um modelo para o Problema da Dieta Custo total da dieta é então: z 14x1 13x2 9x3 19x4 Custo do: arroz ovos leite feijão Objetivo Obter a dieta de menor custo possível. min z 14x1 13x2 9x3 19x4 18 Construção de Modelos Construindo um modelo para o Problema da Dieta Restrições Obter quantidade mínima de nutrientes: energia: 1 porção de arroz ==> 170 kcal, x1 porções de arroz ==> 170 x1 1 porção de ovos ==> 160 kcal, x2 porções de ovos ==> 160 x2 1 porção de leite ==> 160 kcal, x3 porções de leite ==> 160 x3 1 porção de feijão ==>337 kcal, x4 porções de feijão ==> 337 x4 quantidade total de energia >= quantidade mínima necessária Proporcionalidade e aditividade Temos então: 170x1 160x2 160x3 337 x4 2000 Tipo das variáveis x j 0, x j Divisibilidade 19 Construção de Modelos Modelo de Otimização Linear Contínuo Para o Problema da Dieta min z 14 x1 13 x 2 9 x 3 19 x 4 (restrições) sujeito a: 170 (função-objetivo) x1 160 x 2 160 x3 337 x 4 2000 (energia) 3 x 1 13 x 2 8 x 3 22 x 4 65 (proteína) 12 x 1 54 x 2 285 x 3 86 x 4 800 ( cálcio) x j 0 , j 1, 2 ,3 , 4 (tipo das variáveis) 20 Construção de Modelos Solução Para o Problema da Dieta Função Objetivo: 112.500000000 VARIAVEL VALOR X1 0.00 (arroz) X2 0.00 (ovos) X3 12.50 (leite) X4 0.00 (feijão) Isto é consumir 12.5* 237ml = 2,9625 l de leite e gastar com a dieta 112,5 u.m. Esta solução é aceitável? 21 Construção de Modelos Novo Modelo Para o Problema da Dieta Se limitarmos a quantidade de leite na dieta: No máximo 2 porções min z 14 x1 13 x 2 9 x 3 19 x 4 sujeito a: 170 x1 160 x 2 160 x3 337 x 4 2000 3 x 1 13 x 2 8 x 3 22 x 4 65 12 x 1 54 x 2 285 x 3 86 x 4 800 x j 0 , j 1 , 2 , 3, 4 x3<= 2 22 Construção de Modelos Nova Solução Para o Problema da Dieta Função Objetivo: 112,72 VARIAVEL VALOR X1 0,00 (arroz) X2 0.00 (ovos) X3 2.00 (leite) X4 4.99 (feijão) Isto é consumir: 2* 237ml = 474 ml de leite 4,99*260g = 1297,4 g de feijão e gastar com a dieta 112,72 u.m. 23