Programação Linear
A otimização é o processo de encontrar a melhor solução (ou solução ótima) para um problema. Existe um conjunto particular de problemas nos quais é decisivo a aplicação de um procedimento de otimização.
Muitos processos podem se beneficiar de uma alocação otimizada de recursos. Esses recursos podem incluir capital, equipamentos, tarefas e devem ser corretamente alocados, nas quantidades, nos tempos e na sequência para a obtenção do melhor resultado possível.
São problemas complexos, muitas vezes de difícil solução e que envolvem significativas reduções de custos, melhorias de tempos de processos, ou uma melhor alocação de recursos em atividades.
As técnicas de otimização devem ser utilizadas quando não existe uma solução simples e diretamente calculável para o problema. Isso geralmente ocorre quando a estrutura do problema é complexa, ou existem muitas soluções possíveis.
O conjunto de todos os pontos (x 1, x 2,..., x n ) que satisfazem as restrições de um Problema de Otimização é denominada de Região Viável (RV). Um ponto na região é denominado de Ponto Viável (PV) e um ponto fora da região é denominado de Ponto Inviável.
Um ponto x* na região viável tal que f(x*) f(x) é uma solução ótima do Problema de Otimização. (Se o problema for de minimização x* é uma solução ótima se f(x*) f(x) para todos os pontos x da região).
A Região Viável (RV) de um problema de otimização define um conjunto convexo. Um subconjunto C do R n é dito ser convexo se e só se, para todos os vetores A e B de C, qualquer combinação linear C = αa + (1 - α)b é um elemento de C, onde 0 α 1.
Programação Matemática Recursos limitados e escassos de tempo, dinheiro, recursos naturais, capacidade instalada Necessidades ilimitadas e crescentes princípios de eficiência e eficácia
Objetivos Permitir que os agentes econômicos decidam sobre o melhor uso de recursos limitados Otimizar a alocação de recursos escassos de modo a maximizar lucros ou minimizar custos. 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 A12 D A S
Metodologia 1) Compreensão do problema 2) Montagem do Modelo (i) identificação das variáveis de decisão; (ii) definição das restrições; (iii) formulação da função objetivo. 3) Solução do Modelo. 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 A13 D A S
O Modelo A decisão é representada pelas variáveis: X 1, X 2,..., X n O objetivo é representado por uma função do tipo: Max (Min) f(x 1, X 2,..., X n ) 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 A14 D A S
As recursos são representados pelo parâmetro b, e as restrições podem assumir três formas: f(x 1, X 2,..., X n ) b f(x 1, X 2,..., X n ) b f(x 1, X 2,..., X n ) = b 15
Forma Geral Max (Min) f (x) = c 1 X 1 + c 2 X 2 +... + c n X n Sujeito a: a 11 X 1 + a 12 X 2 +... + a 1n X n b 1. a 21 X 1 + a 22 X 2. +... + a 2n X n b k... +... +... +...... a m1 X 1 + a m2 X 2 +... + a mn X n = b m
Onde: c 1, c 2,..., c n = margem de contribuição; medida de custo; taxa de retorno, etc. a ij = quantidade do fator de restrição. consumido em cada unidade produzida. ou disponível para utilizar, etc. b i = valor máximo ou mínimo do recurso escasso. 17
Resolução do Modelo Gráfica; Matricial (Simplex); Computacional. 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 A18 D A S
Exemplo Função Objetivo Sujeito a: Max f(x, y) = 350x + 300y Fatores de Produção Limitação Bombas x + y 200 Mão de Obra (horas) 9x + 6y 1566 Canos (metros) 12x + 16y 2880 x, y 0 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 A19 D A S
Variáveis de decisão Dois tipos de banheira. Margens diferentes de contribuição. Restrições Disponibilidade de Mão de Obra. Disponibilidade de Canos. Disponibilidade de Bombas. 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 A20 D A S
Solução Gráfica 300 Restrição de Mão-de-Obra 250 200 150 100 Restrição de Bombas Restrição de Canos 50 0 0 50 100 150 200 250 300
Solução Gráfica Como determinar a solução ótima? A) Determinando isolinhas da função objetivo. B) Determinando os diversos pontos extremos, para escolher o de maior (menor) valor.) valor
Resumo da Solução Gráfica Desenhe a reta de cada restrição no gráfico; Identifique a área de soluções viáveis, isto é, a área do gráfico que simultaneamente satisfaz a todas as restrições; Encontre a solução ótima por um dos métodos a seguir descritos.
Método das Isolinhas (a) Desenhe uma ou mais curvas de nível da função objetivo e determine a direção na qual curvas paralelas resultam em aumentos no valor da função objetivo; (b) Desenhe curvas paralelas na direção do crescimento até que a curva toque a área de soluções em um único ponto;
Solução Gráfica 300 (0, 180) 250 200 (80, 120) 150 (122, 78) 100 (174, 0) 50 (0, 0) 0 0 50 100 150 200 250 300
Método dos vértices (a) Encontre às coordenadas dos vértices da região viável; (b) Para cada vértice calcule o respectivo valor da função objetivo; (c) O ponto com o maior valor da funçãoobjetivo é a solução ótima. 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 A26 D A S
Exemplo: No exemplo anterior existem os seguintes vértices: (0, 0) valores positivos (0, 200) Não-neg. e Bombas (200, 0) Não-neg. e Bombas (0, 261) Não-neg. e Mão-de-Obra (174, 0) - Não-neg. e Mão-de-Obra 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 A27 D A S
(0, 180) Canos e não-negativo (240, 0) Não-negativo e Canos (108, 99) Canos e Mão-de-Obra (80, 120) Canos e Bombas (122, 78) Bombas e Mão-de-Obra Esses são todos os vértices. Contudo nem todos estão na região viável, isto é, nem todos satisfazem todas as restrições.
(0, 0) Satisfaz todas as restrições (0, 200) Não satisfaz canos (200, 0) Não satisfaz Mão-de-Obra (0, 261) Não satisfaz Canos (174, 0) - Satisfaz todas as restrições (0, 180) Satisfaz todas as restrições (240, 0) Não satisfaz Mão-de-Obra (108, 99) Não satisfaz Bombas (80, 120) Satisfaz todas as restrições (122, 78) Satisfaz todas as restrições
Assim os vértices da região viável são: (0, 0) Satisfaz todas as restrições (174, 0) - Satisfaz todas as restrições (0, 180) Satisfaz todas as restrições (80, 120) Satisfaz todas as restrições (122, 78) Satisfaz todas as restrições
Solução Gráfica 300 250 (0, 180) 200 (80, 120) 150 (122, 78) 100 (174, 0) 50 (0, 0) 0 0 50 100 150 200 250 300
Solução Gráfica 300 250 Restrição de Mão-de-Obra 200 150 100 Restrição de Bombas Restrição de Canos 50 0 0 50 100 150 200 250 300
O Método Simplex
Teoremas O método simplex toma por base alguns teoremas básicos. Teorema 1 O conjunto de todas as soluções viáveis de um modelo de PL é um conjunto convexo. 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 A34 D A S
Teorema 2 Toda solução compatível básica de um PPL é um ponto extremo (vértice) do conjunto de soluções viáveis, isto é, do conjunto convexo C de soluções viáveis. 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 A35 D A S
Teorema 3 Se a função objetivo possui um máximo (mínimo) finito, então pelo menos uma solução ótima é um ponto extremo do conjunto convexo C de soluções viáveis do PPL.
Teorema 4 Se a função objetivo assume um máximo (mínimo) em mais de um ponto extremo, então ela assume o mesmo valor para qualquer combinação convexa desses pontos extremos.
Método Simplex Baseia-se em variáveis de folga. Sistema com n variáveis e m equações: Seleciona as m variáveis (básicas); As demais assumem valor = 0 (não básicas); Calcula o valor da função objetivo para cada rodada; Escolhe a de maior valor. 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 A38 D A S
Forma Padrão Para utilizar o método simplex O PPL deve estar na forma padrão. Um PPL está na forma padrão se as seguintes condições forem satisfeitas? 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 A39 D A S
1. O função objetivo (FO) é de maximização; 2. Todas as variáveis são não-negativas (x i 0); 3. Todas as restrições envolvem ; 4. Todas as constantes nas restrições são nãonegativas (b i 0).
Para utilizar o Método Simplex (MS) inicia-se convertendo todas as restrições, que são desigualdades lineares em equações lineares. Para fazer isso adicionamos variáveis não-negativas denominadas de variáveis de folga a cada restrição.
Por exemplo, a desigualdade: x 1 + x 2 10 é convertida em uma equação pela adição da variável de folga x 3, obtendo-se assim: x 1 + x 2 + x 3 = 10, onde x 3 0.
A adição de variáveis de folga, nas restrições, converte um PPL em um sistema de equações lineares. Em cada uma dessas equações todas as variáveis devem estar à esquerda do sinal de igualdade e todas as constantes à direita.
A FO deve ser escrita com todas as variáveis à esquerda. Assim se, por exemplo, a FO é z = 3x 1 + 2x 2 + x 3, então, ela deve ser escrita como: -3x 1 2x 2 x 3 + z = 0
Exemplo 1 Considere o seguinte PPL: Maximizar z = 3x 1 + 2x 2 + x 3 Sujeito a: 2x 1 + x 2 + x 3 150 2x 1 + 2x 2 + 8x 3 200 2x 1 + 3x 2 + x 3 320 x 1 0, x 2 0, x 3 0
Adicionando as variáveis de folga Maximizar z = 3x 1 + 2x 2 + x 3 Sujeito a: 2x 1 + x 2 + x 3 + x 4 = 150 2x 1 + 2x 2 + 8x 3 + x 5 = 200 2x 1 + 3x 2 + x 3 + x 6 = 320 x 1 0, x 2 0, x 3 0, x 4 0, x 5 0, x 6 0
Agora esse sistema linear pode ser escrito como a seguinte matriz aumentada: x 1 x 2 x 3 x 4 x 5 x 6 z 2 1 1 1 0 0 0 150 2 2 8 0 1 0 0 200 2 3 1 0 0 1 0 320-3 -2-1 0 0 0 1 0
Essa matriz é denominada de tableau inicial do simplex. Os números da última linha são provenientes da FO e são chamados de indicadores (exceto pelo último zero à direita).
Pivôs Soluções obtidas diretamente do primeiro tableau do MS, raramente, ou nunca, serão ótimas. É necessária seguir para outros vértices da região viável até que um ótimo seja encontrado. Para obter essas novas soluções deve-se utilizar as operações elementares sobre as linhas.
Para aplicar as operações elementares deve-se utilizar uma das entradas não nulas do tableau como pivô. A operação de pivotamento produz um novo tableau levando a outra solução do sistema de equações.
Para que a nova solução seja melhor (maior) do que a anterior, deve-se escolher como pivô o valor da coluna com o indicador (função objetivo última linha do tableau) com o menor valor negativo. Se nenhum indicador for negativo, então a solução não pode ser melhorada.
Retomando ao exemplo, temos que o pivô é o valor 2 da primeira linha, pois, 150/2 = 75, 200/2 =100 e 320/2 = 180. É a linha com o menor quociente, isto é, a que fornece o maior aumento para FO). x 1 x 2 x 3 x 4 x 5 x 6 z Pivô 2 1 1 1 0 0 0 150 2 2 8 0 1 0 0 200 2 3 1 0 0 1 0 320-3 -2-1 0 0 0 1 0
O objetivo é tornar x 1 uma variável básica, tornando o pivô igual a 1 e os demais valores da coluna iguais a zero. Começamos dividindo a linha do pivô por ½, isto é, executando a OE: (1/2)L 1 x 1 x 2 x 3 x 4 x 5 x 6 z 1 1/2 1/2 1/2 0 0 0 75 2 2 8 0 1 0 0 200 2 3 1 0 0 1 0 320-3 -2-1 0 0 0 1 0
Agora vamos zerar o primeiro elemento da segunda linha e primeira coluna, multiplicando a primeira por -2 e somando com a segunda, isto é, - 2L 1 + L 2 x 1 x 2 x 3 x 4 x 5 x 6 z 1 1/2 1/2 1/2 0 0 0 75 0 1 7-1 1 0 0 50 2 3 1 0 0 1 0 320-3 -2-1 0 0 0 1 0
Vamos repetir o processo para zerar o primeiro elemento da linha 3, da coluna 1, isto é, fazendo a operação: -2L 1 + L 3 x 1 x 2 x 3 x 4 x 5 x 6 z 1 1/2 1/2 1/2 0 0 0 75 0 1 7-1 1 0 0 50 0 2 0-1 0 1 0 170-3 -2-1 0 0 0 1 0
Finalmente para essa coluna, devemos transformar o indicador -3 em zero. Para tal, devemos fazer: 3L 1 + L 4 x 1 x 2 x 3 x 4 x 5 x 6 z 1 1/2 1/2 1/2 0 0 0 75 0 1 7-1 1 0 0 50 0 2 0-1 0 1 0 170 0-1/2 1/2 3/2 0 0 1 225
Assim esse tableau do simplex fornece a solução x 1 = 75, x 2 = 0, x 3 = 0, x 4 = 0, x 5 = 50 e x 6 = 170. Substituindo esses resultados na FO temos: 0.75-0,5.0 + 0,5.0 + 1,5.0 + 0.50 + 0.170 + z = 225. Percebe-se assim que o valor de z é sempre o último número à direita.
O pivô agora é 1, que é o elemento da linha dois e da coluna que contém o único valor negativo da FO. Assim para zerar os demais valores da coluna vamos primeiro dividir por -2 e somar com a primeira linha e depois multiplicar por -2 e somar com a terceira linha e finalmente dividir por 2 e somar com a última linha. Assim as operações são: -(1/2)L 1 + L 2, -2L 1 + L 3 e (1/2)L 2 + L 4
x 1 x 2 x 3 x 4 x 5 x 6 z 1 0-3 1-1/2 0 0 50 0 1 7-1 1 0 0 50 0 0-14 1 2 1 0 70 0 0 4 1 1/2 0 1 250 A solução é, portanto, x 1 = 50, x 2 = 50 e x 3 = 0, com z = 250 e uma folga na terceira restrição de x 6 = 70
Situações Especiais 1. Problemas de minimização; 2. Empate na entrada; 3. Empate na saída (degeneração); 4. Múltiplas soluções.
Problema de minimização Nesse caso deve-se transformar o problema de minimização em um maximização, trocando o sinal da função objetivo, isto é, achar o mínimo de uma função é equivalente a achar o máximo do simétrico dessa função. 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 A61 D A S
Empate na entrada Quando houver empate na escolha da variável que deve entrar na base (dois indicadores com o mesmo valor negativo), deve-se escolher um dos valores arbitrariamente. A consequência é que podemos escolher o caminho mais longo para se chegar a solução ótima, se ela existir. 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 A62 D A S
Empate na saída - degeneração Nesse caso, também, a exemplo do anterior, a escolha é arbitrária. Considere o seguinte exemplo: Max 5x + 2y s. a. x 3 y 4 4x + 3y 12 x, y 0 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 A63 D A S
Acrescentadas as variáveis de folga e padronizando as equações, tem-se: x 1 x 2 x 3 x 4 x 5 z b 1 0 1 0 0 0 3 0 1 0 1 0 0 4 4 3 0 0 1 0 12-5 -2 0 0 0 1 0
Para escolher o pivô (variável que sai da base), deve verificar qual o menor quociente entre: 3/1 = 3 e 12/4 = 3, que é onde ocorre o empate. x 1 x 2 x 3 x 4 x 5 z b 1 0 1 0 0 0 3 0 1 0 1 0 0 4 4 3 0 0 1 0 12-5 -2 0 0 0 1 0
Escolhe-se arbitrariamente, x 3 (linha 1), para sair da base (pivô). O novo quadro do simplex, será: x 1 x 2 x 3 x 4 x 5 z b 1 0 1 0 0 0 3 0 1 0 1 0 0 4 0 3-4 0 1 0 0 0-2 5 0 0 1 15 Note que a variável básica x 5 é nula (b 3 = 0). Isso irá sempre ocorrer quando houver empate na saída. Quando isso ocorre diz-se que a solução compatível básica é degenerada.
O próximo quadro do Simplex será, tomando agora 3 como pivô (x 5 para sair da base): x 1 x 2 x 3 x 4 x 5 z b 1 0 1 0 0 0 3 0 1 0 1 0 0 4 0 1-4/3 0 1 /3 0 0 0 0 7/3 0 2/3 1 15 Note-se que, nesse caso, a FO não melhorou!
Se no empate tivesse sido escolhido x 5, ao invés de x 3 para sair da base, o resultado seria: x 1 x 2 x 3 x 4 x 5 z b 0-3/4 1 0-1/4 0 0 0 1 0 1 0 0 4 1 3/4 0 0 1 /4 0 3 0 7/4 0 0 5/4 1 15
Múltiplas soluções Um modelo de programação linear pode apresentar mais de uma solução ótima. Quando isso ocorre, o método simplex pode detectar. Vejamos o seguinte exemplo: 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 A69 D A S
Max x + 2y s. a. x 3 y 4 x + 2y 9 x, y 0
Acrescentando as variáveis de folga e padronizando as equações, tem-se: x 1 x 2 x 3 x 4 x 5 z b 1 0 1 0 0 0 3 0 1 0 1 0 0 4 1 2 0 0 1 0 9-1 -2 0 0 0 1 0 Pois, 3/0 (inf.), 4/1 = 4 (menor quociente) e 9/2 = 4,5.
Assim, o segundo quadro será: x 1 x 2 x 3 x 4 x 5 z b 1 0 1 0 0 0 3 0 1 0 1 0 0 4 1 0 0-2 1 0 1-1 0 0 2 0 1 8
O terceiro quadro será: x 1 x 2 x 3 x 4 x 5 z b 0 0 1 2-1 0 2 0 1 0 1 0 0 4 1 0 0-2 1 0 1 0 0 0 0 0 1 9 Note-se que na solução ótima correspondente ao ponto (1, 4), o coeficiente da variável não básica x 4 na fo é nulo. Assim, ela pode entrar na base, tomando qualquer valor, que a fo não irá se alterar.
Se x 4 entrar na base x 1 x 2 x 3 x 4 x 5 z b 0 0 1/2 1 1-1/2 1 0 1 1/2 0 0 1/2 3 1 0 1 0 0 0 3 0 0 0 0 0 1 9 Nesse caso, a solução ótima corresponde ao vértice (3, 3). Nesse caso, qualquer combinação convexa desses dois pontos é também solução do problema. Assim o PPL possui infinitas soluções.
Múltiplas soluções 10 8 x 2 6 4 y = 44 2 0 x + 2y = 94 x = 34 0 2 4 6 8 10
Soluções Ilimitadas Ocorre quando são encontradas soluções nas quais a função objetivo é infinitamente grande (maximização) ou infinitamente pequena (minimização). 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 A76 D A S
Exemplo de soluções ilimitadas Exemplo: Max x + y Sujeito a x + y 400 -x + 2y 400 x, y 0 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 A77 D A S
Exemplo de soluções ilimitadas 600 500 400 x 2 Função objetivo y = 0,5x + 200 300 200 100 y = -x + 400 0-100 0 50 100 150 200 250 300 350 400 450
Solução Computacional Para Problemas mais Complexos Solução via (Lindo). Ferramenta Solver (Excel).
viali@pucrs.br