Preview only show first 10 pages with watermark. For full document please download

Programação Linear

Apostila de Programação Linear

   EMBED


Share

Transcript

Capítulo 1 INTRODUÇÃO Tomar decisões é uma tarefa básica da gestão e decidir é escolher ou optar entre alternativas viáveis ou cursos de ação. O processo de decisão, que muitas vezes ocorre de forma inconsciente, pode ser descrito da seguinte forma: Definição do Problema Formulação do Objetivo Avaliação das Alternativas Escolha do Melhor Curso de Ação FIGURA 1.1: Representação Simplificada do Processo de Tomada de Decisão O processo de decisão pode se mais ou menos formalizado e basear-se numa abordagem quantitativa (uso de experiência e opiniões próprias ou alheias) ou quantitativa (uso de métodos matemáticos e/ou estatísticos). Nesta linha de se utilizar uma óptica científica para a tomada de decisão, se enquadra a Pesquisa Operacional – PO – uma abordagem sistemática e racional para problemas que dizem respeito ao controle de sistemas e à tomada de decisões para obter o melhor resultado, a partir das informações disponíveis. Desde a primeira revolução industrial o mundo tem apresentado um notável desenvolvimento e crescimento em tamanho e complexidade de suas organizações, dificultando a alocação de recurso entre as suas atividades. Entretanto o termo PO é atribuído conjunto de processos e métodos de análise que assessoraram as forças militares durante a Segunda Guerra Mundial (1939). A PO foi desenvolvida por grupos de acadêmicos, inicialmente criados na Inglaterra, para especular sobre problemas considerados novos e que não se enquadravam às tradicionais rotinas bélicas táticas e estratégicas. Dentre os problemas estudados por esses grupos estão incluídos: uso eficiente do radar, uso de canhões antiaéreos, táticas de bombardeio a submarinos Programação Linear Profª. Andreza Programação Linear 2 e escoltas a navios. Esta fórmula de abordar problemas complexos estimulou, ao final da guerra, a manutenção destes grupos, porém redirecionando seus esforços à gerência civil. Em 1947, George Dantzig, apresentou uma forma sistêmica na resolução de problemas de Programação Linear, o Método Simplex, que se revelou muito eficaz. Este foi um marco definitivo na afirmação da Pesquisa Operacional e a programação linear tornou-se uma técnica explícita e permanece, ainda hoje, como a mais básica e útil de todas as técnicas de Pesquisa Operacional. 1.1 Tipos Básicos de Modelos de Pesquisa Operacional Modelos de Alocação Quando existe um número de atividades para serem realizadas, caminhos alternativos de fazê-las e recursos limitados ou meios para executar cada atividade, há um problema de alocação destes recursos escassos. O problema é combinar as atividades e os recursos de uma maneira ótima para que a eficiência seja maximizada, isto é, o lucro seja máximo e os custos sejam mínimos. Tipo simples de alocação que envolve a distribuição de um número de tarefas para um mesmo número de recursos é um problema de designação. Este tipo de problema torna-se complexo se alguma das tarefas requer mais que um recurso e se os recursos podem ser usados para mais de uma tarefa. Um exemplo disto é o problema de transportes. Modelos de Competição A teoria dos jogos dá um conceito estrutural para a formulação de problemas de competição e tem sido usada para desenvolver estratégias de publicidade, políticas de preços e escolha do momento oportuno para a introdução de novos produtos. O processo de Markov é um método de predizer variações competitivas no tempo de clientes fiéis a uma marca. Técnicas de Otimização Clássicas Técnicas associadas ao procedimento de cálculo de máximos e mínimos de funções. Quando uma característica pode ser representada por uma equação de uma variável representada graficamente por uma curva contínua uniforme, os valores de máximo e mínimo da curva podem ser obtidos pelo conjunto das primeiras derivadas iguais a zero. Então, o sinal algébrico da segunda derivada daquele conjunto de pontos é examinado para a obtenção da solução do problema. Quando dois parâmetros estão envolvidos, por exemplo, x e y para determinar a variável z, o máximo e mínimo podem ser encontrados pela aplicação de derivadas parciais, num processo similar ao empregado para uma variável. Modelos de Reposição Problemas de reposição são geralmente de dois tipos: Programação Linear Profª. Andreza Programação Linear 3 a. Aqueles envolvendo itens que degeneram em um período de tempo – ativo fixo das empresas – os quais são itens custosos; b. Aqueles envolvendo itens que falham após um certo tempo de uso – itens relativamente baratos como válvulas, pneumáticos, tubos, etc. Modelos de Estoques São modelos que dizem respeito a duas decisões: quanto ordenar em um determinado momento e quando ordenar esta quantidade; para minimizar o custo total. São levados em conta custos de movimentação, custo de armazenamento, custo por falta e custo de colocação de pedido. Modelos de Filas Filas, algumas vezes referidas como linhas de espera, dizem respeito às chegadas uniformes ou aleatórias num serviço ou meio de processamento com capacidade limitada. O objetivo deste modelo é determinar um número ótimo de pessoas ou meios necessários para servir os clientes, considerando custos de serviço e de espera. Modelos de Rotas O objetivo é selecionar o melhor caminho em termos de distância percorrida, tempo gasto e custo. Um dos mais famosos problemas de rota é o do “Caixeiro Viajante”: itinerário que parte de uma cidade, passa através das outras uma só vez e retorna a cidade inicial. 1.2 Programação Matemática Em problemas de otimização busca-se maximizar ou minimizar uma quantidade específica, chamada objetivo, que depende de um número finito de variáveis de entrada. Estas variáveis podem ser independentes umas das outras ou podem ser relacionadas por meio de uma ou mais restrições. Na década de 40 surgiu uma classe particular de problemas de otimização nos campos da organização e gestão econômica, a Programação Matemática. A PM é a análise e estudo de sistemas de forma a determinar o programa de ação mais adequado para se atingir um certo objetivo, levando em conta as restrições que limitam os seus comportamentos. Um problema de PM consiste em determinar os valores de n variáveis x1 , x2 ,..., xn que tornam máximo ou mínimo o valor de uma função f ( x1 , x2 ,..., xn ) , (1.1) dadas m restrições ou condições, g i ( x1 , x2 ,..., xn )  bi (i  1,2,..., m) , (1.2) e estando as variáveis sujeitas às condições de não negatividade, x j  0 ( j  1,2,..., n) . Programação Linear (1.3) Profª. Andreza Programação Linear 4 Um problema a ser resolvido pressupõe um conjunto de incógnitas a serem determinadas e um conhecimento de leis que regem o problema. Um problema de programação matemática é um problema de otimização no qual o objetivo e as restrições são expressas como funções matemáticas de relações funcionais. Os problemas de programação matemática que serão estudados na disciplina de Introdução à Pesquisa Operacional são da forma: z  f ( x1 , x2 ,..., xn ) Otimizar: Sujeito a: g1 ( x1 , x2 ,..., xn )  b1 g 2 ( x1 , x2 ,..., xn ) = b2 ... g m ( x1 , x2 ,..., xn )  (1.4) ... bm Alguns casos particulares de PM são: Programação Linear, Programação Inteira, Programação Não-Linear e Programação Dinâmica. 1.2.1 Programação Linear A Programação Linear – PL – é um caso particular dos modelos de programação em que as variáveis são contínuas e apresentam comportamento linear, tanto em relação às restrições como à função objetivo. Assim, um problema de programação matemática (1.4) é linear se (1.1) e (1.2) forem funções lineares dos respectivos argumentos, isto é, se f ( x1 , x2 ,..., xn )  c1 x1  c2 x2  ...  cn xn (1.5) g i ( x1 , x2 ,..., xn )  ai1 x1  ai 2 x2  ...  ain xn (1.6) ondecj e aij ( i =1, 2,...,m e j =1, 2,...,n ) são constantes conhecidas. 1.2.2 Programação Inteira A Programação Inteira – PI – pode ser entendida como um caso específico da Programação Linear e se caracteriza no momento em que qualquer variável não puder assumir valores contínuos, ficando condicionada a assumir valores discretos. A rigor o nome mais correto para a Programação Inteira é Programação Linear Inteira. Quando todas as variáveis devam possuir valores inteiros, o modelo é denominado de um problema de Programação Inteira Pura, caso contrário, é denominado de um problema de Programação Inteira Mista. 1.3.3 Programação Não-Linear Os modelos empregados em PL são lineares, tanto na função objetivo quanto nas restrições. Este fato é, sem dúvida, “a maior das restrições” impostas sobre um modelo de Programação. Em grande parte das aplicações, modelos lineares refletem apenas aproximações dos modelos reais. Fenômenos físicos ou Programação Linear Profª. Andreza Programação Linear 5 econômicos são geralmente melhor representados por modelos não-lineares. A maioria das não-linearidades englobadas em um modelo de programação está dentro de duas principais categorias: 1) Relações observadas empiricamente: variações não-proporcionais em custos, resultados de processos e características de qualidade. 2) Relações deduzidas estruturalmente: fenômenos físicos, deduzidos matematicamente e regras administrativas. Assim, a Programação Não-Linear – PNL – é um modelo de otimização que exibe qualquer tipo de não-linearidade, seja na função objetivo ou em qualquer de suas restrições. 1.2.4 Programação Dinâmica A Programação Dinâmica procura resolver o problema de otimização através da análise de uma seqüência de problemas mais simples do que o problema original. A resolução do problema original de N variáveis é caracterizada pela determinação de uma variável e pela resolução de um problema que possua uma variável a menos (n-1). Este por sua vez é resolvido pela determinação de uma variável e pela resolução de um problema de (n-2) variáveis e assim por diante. Programação Linear Profª. Andreza Programação Linear 6 Capítulo 2 MODELAGEM MATEMÁTICA Um estudo de PO consiste em construir um modelo da situação fictícia. Um modelo de PO é definido como uma representação idealizada de um sistema organizacional. O objetivo do modelo pode ser analisar as operações do sistema para verificar seu desempenho ou identificar e melhorar a estrutura de um sistema futuro. Devido à complexidade de um sistema real e ao grande número de variáveis que comandam as operações do sistema, este é simplificado, utilizando-se um modelo condensado, identificando apenas as variáveis dominantes e as relações entre elas. 2.1 Formulação do Problema Para se formular o problema deve-se estudar o sistema e estabelecer de uma maneira bem definida o problema ser considerado. Para isso os vários elementos que compõem o sistema e suas interações devem ser determinados. Assim, formular um problema para pesquisa consiste em identificar, definir e especificar as medidas dos componentes de um modelo de decisão. A determinação da relação entre os componentes da função é o objetivo da construção do modelo. A definição do problema deve levar em conta três aspectos:  Descrição exata dos objetivos  Identificação das variáveis de decisão do sistema  Reconhecimento das limitações, restrições, linhas de ação alternativas e o inter-relacionamento entre os componentes do sistema como um todo. 2.2 Construção do Modelo Matemático Os problemas de otimização são frequentemente formulados verbalmente. O procedimento para solucioná-los consiste em modelá-los sob forma de problemas de programação matemática e, em seguida, resolvê-los utilizando as técnicas apresentadas no decorrer da disciplina. Para a transformação de um problema descrito com palavras em um problema de programação matemática pode-se usar o seguinte algoritmo: Passo 1: Passo 2: Determinar a grandeza a ser otimizada e expressá-la como uma função matemática de minimização ou maximização. Identificar todas as exigências, restrições e limitações estipuladas e Programação Linear Profª. Andreza Programação Linear Passo 3: 7 expressá-las matematicamente. Expressar todas as condições implícitas. Tais condições não são estipuladas explicitamente no problema, mas se tornam evidentes durante a modelagem. Geralmente envolvem requisitos de não negatividade ou de variáveis inteiras. As características do s modelos de PL são: a. As variáveis de decisão são as incógnitas a serem determinadas na solução do modelo. Os parâmetros representam as variáveis controladas do sistema estudado. Na maioria dos sistemas reais, as restrições de não negatividade (variáveis positivas ou nulas) aparecem como condição natural. b. As relações de interdependência entre as variáveis de decisão se expressam por um conjunto de equações e/ou inequações lineares. Essas relações são denominadas restrições. Assim, as restrições limitam os valores possíveis das variáveis de decisão, representando as limitações físicas do sistema. c. Um critério de escolha das variáveis de decisão constituído por uma função linear das variáveis. Esta função é denominada função objetivo e seu valor deve ser otimizado (maximizado ou minimizado). Em geral, a solução ótima do modelo é obtida quando os melhores valores correspondentes das variáveis de decisão são substituídos na FO, enquanto satisfazem as restrições. O aspecto matemático de um modelo geral de PL é dado a seguir. As variações do modelo geral constituem em maximizar Z ou ter restrições com o sinal “=” ou “”. minimizar Z  c1 x1  ...  cn xn (2.1) sujeito a: a11x1  ...  a1n xn  b1  am1 x1  ...  amn xn  bm (2.2) x1  0,..., xn  0 (2.3) ondeci, aij e bj são constantes reais que estão disponíveis para a formulação do problema (dados do problema). As variáveis do problema são x1, x2,..., xn para as quais buscamos valores reais que: I. satisfaçam (2.2) e (2.3) II. atribuam o menor valor à função Z definida em (2.1). 2.2.1 Notação Matricial O problema descrito pelas equações (2.1), (2.2) e (2.3) pode ser escrito em formas mais compactas como a notação matricial. Sejam Programação Linear Profª. Andreza Programação Linear 8  a11  a1n   c1   b1   x1          b   A  c   x      a a  c  b  x  mn   n  m  n  m1 n n m xn Dizemos que A  R (conjunto das matrizes mxn) e x  R , c  R , b  R m . O problema (3.1) – (3.3) pode ser escrito como: otimizar Z ( x)  c t x (2.4) s.a. Ax  b com x  0 onde:     o vetor c é chamado vetor de custos; o vetor b de vetor de recursos; a matriz A de matriz dos coeficientes; e, o vetor x de vetor de variáveis ou incógnitas. Considerando ai  (ai1 ain ) outra forma matricial que, por conveniência pode ser utilizada é seguinte: otimizar Z ( x)  c t x (2.5) sa a1 x  b 1  a m x  bm x0 O modelo é então testado e, após validação das soluções obtidas, ele é implantado. Como um modelo é mais uma representação ideal do que exata, só se pode afirmar que a solução ótima para o modelo será provavelmente a melhor possível para o problema real, devido aos fatores imponderáveis e as incertezas associadas ao problema. 2.3 Modelagem Matemática Inicialmente podem aparecer algumas dificuldades para modelar problemas, pois a habilidade em escrever um problema matemático depende diretamente da prática. Além disso, só se escreve bem em uma linguagem quando se conhece com exatidão o significado de cada termo, assim, um conhecimento maior da teoria leva a uma habilidade maior em formular problemas. A “era da informática” trouxe consigo uma ilusão de que podemos resolver os problemas, sem precisar saber como resolvê-los. Os softwares são importantes ferramentas na Programação Linear Profª. Andreza Programação Linear 9 resolução dos problemas de PO, porém é necessário um conhecimento sobre as técnicas por eles utilizadas, para que os resultados possam ser bem interpretados. 2.3.1 Algumas Considerações sobre a Programação Linear Em termos gerais considera-se que a PL estuda o comportamento de um conjunto em que interagem homens, serviços, máquinas e materiais, isto é, um sistema. Um sistema pode ser decomposto em funções elementares chamadas atividades. Atividade consiste em produzir certo conjunto de produtos com certo conjunto de recursos. Recursos Atividades Produtos/Serviços A medida de cada atividade é conhecida por nível de atividade. Variar o nível de atividade é variar o montante dos respectivos fluxos de entrada e saída. Os problemas de PL buscam a distribuição eficiente de recursos limitados para atender um determinado objetivo, em geral, maximizar lucros ou minimizar custos, o que é expresso pela FO. É necessário que sejam definidas que atividades consomem recursos e em que proporções eles são consumidos. As inequações lineares que expressam essas informações são as restrições do modelo. Normalmente existem inúmeras maneiras de distribuição dos recursos escassos entre as diversas atividades. Porém um modelo de PL não se aplica a todas as situações. Sua aplicação está condicionada a: H1: Proporcionalidade Em cada atividade, as quantidades de bens que entram e que saem são sempre proporcionais ao nível da mesma (o que elimina a possibilidade de substituição entre os recursos e produtos). H2: Divisibilidade e não negatividade O nível de uma atividade pode assumir qualquer valor positivo entre um intervalo, o que equivale a supor que os bens são divisíveis. H3: Linearidade da FO A contribuição para a função econômica é proporcional ao nível de cada atividade. A contribuição total é a soma das contribuições de todas as atividades. 2.3.2 Obtendo a Função Objetivo e as restrições Giapetto fabrica dois tipos de brinquedos de madeira: soldados e trens. Um soldado é vendido por $27 e usa $10 de matéria prima. Cada soldado que é Programação Linear Profª. Andreza Programação Linear 10 fabricado tem um custo adicional de $14 relativo à mão de obra. Um trem é vendido por $21 e gasta $9 de matéria prima. O custo de mão de obra adicional para cada trem é de $10. A fabricação destes brinquedos requer dois tipos de mão de obra: carpintaria e acabamento. Um soldado necessita de 2 horas para acabamento e 1 de carpintaria. Um trem necessita de 1 hora para acabamento e 1 hora de carpintaria. Cada semana, Giapetto pode obter qualquer quantidade de matéria prima, mas tem a disposição até 100 horas de acabamento e 80 de carpintaria. A demanda por trens é ilimitada, mas a venda de soldados é de no máximo 40 por semana. Giapetto quer maximizar seu lucro diário (receitas-custos). Formular o modelo matemático que poderá ser usado por Giapetto para maximizar seu lucro semanal. Os passos para a formulação do modelo matemático são:  Primeiro passo  definir as variáveis de decisão  Segundo Passo  definição da função objetivo  Terceiro Passo  definição das restrições  Quarto Passo  elaboração do modelo Exemplo 2.1 Um fazendeiro deseja otimizar as plantações de arroz e milho na sua fazenda. O Fazendeiro quer saber as áreas de arroz e milho que devem ser plantadas para que o seu lucro nas plantações seja máximo. O seu lucro por unidade de área plantada de arroz é 5u.m. e 2 u.m. por unidade de área plantada de milho. As áreas plantadas de milho e arroz não devem ser maiores que 3 e 4, respectivamente, devido à demanda destas culturas. O consumo total de homenshora nas duas plantações não deve ser maior que 9. Cada unidade de área plantada de arroz consome 1 homens-hora e 2 homens-hora para cada unidade de área planta de milho. Exemplo 2.2 A Direção de Marketing de uma empresa de mobiliário metálico de escritório sugere o lançamento de um novo modelo de mesa e de estante em substituição aos modelos atuais. A direção não vê dificuldade de colocação no mercado para as estantes, enquanto que aconselha que a produção mensal de mesas não ultrapasse 160 unidades. Após estudos realizados pela Direção de Produção, conclui-se que:  A disponibilidade mensal do Departamento de Estampagem é de 720 horasmáquina (H-M);  A disponibilidade mensal do Departamento de Montagem e acabamento é de 880 horas-homem (H-H);  Cada mesa necessita de 2 H-M de Estampagem e 4 H-H de Montagem e Acabamento; Programação Linear Profª. Andreza Programação Linear 11  Cada estante necessita de 4 H-M de Estampagem e 4 H-H de Montagem e Acabamento. Por outro lado, as margens brutas unitárias estimadas são de 6000 u.m. (unidade monetária). Para as mesas e 3000 u.m. para as estantes. A empresa pretende determinar o plano de produção mensal para estes novos modelos que maximiza a margem bruta. Exemplo 2.3 Um criador de porcos pretende determinar as quantidades de cada tipo de ração que devem ser dadas diariamente a cada animal de forma a conseguir certa quantidade nutritiva a um custo mínimo. Os dados relativos ao custo de cada tipo de ração, às quantidades mínimas diárias de ingredientes nutritivos básicos a fornecer a cada animal, bem como as quantidades destes existentes em cada tipo de ração (g/Kg) constam na tabela abaixo: Carboidratos Vitaminas Proteínas Custo (u.m./kg) Programação Linear Granulado Farinha 20 50 30 10 50 10 30 5 Quantidade mínima desejada 200 150 210 Profª. Andreza Programação Linear 12 Capítulo 3 PROBLEMAS CLÁSSICOS DE PROGRAMAÇÃO LINEAR As aplicações selecionadas não são uma lista completa, mas pretendem mostrar como a programação linear pode ser aplicada na análise e solução de problemas práticos. Embora alguns modelos descritos possam parecer simplificados, têm o objetivo puramente ilustrativo, mas, em muitos casos, algumas alterações podem adequar os modelos às situações reais, naturalmente mais complexas. 3.1 Problema da Mistura Um dos primeiros problemas a ser resolvidos por meio da PL foi o problema da dieta. O interesse na resolução deste problema não é apenas no estabelecimento de uma dieta humana, mas na resolução de numerosas situações práticas, por vezes bastante distantes do problema original. Problemas com a estrutura básica do problema da dieta ocorrem em áreas de produção diversas: rações, adubos, produtos alimentícios, produtos farmacêuticos, tintas, ligas metálicas, combustíveis, etc. A esta classe de problemas se deu o nome de problema da mistura que se caracteriza por pretender obter, com custo mínimo ou lucro máximo, um ou vários produtos, satisfazendo certas restrições técnicas, com vários ingredientes com diferentes características. Enunciado Admitindo que se quer produzir um novo produto com certos componentes, misturando-se alguns ingredientes disponíveis cujos componentes são conhecidos. Supondo que existem m componentes e n ingredientes. A matriz abaixo fornece o percentual com que cada componente aparece em cada ingrediente: Componentes 1 2 1 a11 a21 Ingredientes 2  a12  a22      m am1 am2  ondeaij é o percentual do componente i no ingrediente j. Programação Linear n a1n a2n  amn Profª. Andreza Programação Linear 13 Supondo que um novo produto deva ter um percentual bi do componente i (i=1,2,...,m). Se o custo por unidade (por exemplo: R$/Kg) de cada ingrediente cj (j=1,2,...,n)é conhecido, como um novo produto pode ser produzido de tal forma que satisfaça as propriedades desejadas e que o custo seja mínimo possível? Formulação Matemática As incógnitas deste problema podem ser:  xj = quantidade do ingrediente j em uma unidade do novo produto Hipóteses de Linearidade:  Se aijé a quantidade do componente i em uma unidade do ingrediente j, então aijxj é a quantidade do componente i em xj unidades e se uma unidade do ingrediente j custa cj então xj unidades custa cjxj.  Se uma unidade dos ingredientes j e k tem aij e aik de componentes i respectivamente, então as duas unidades obtidas pela mistura dos ingredientes j e k terão (aij + aik) de componente i (“reações que produzemalterações insignificantes devem ser desconsideradas”). Assim, pode-se escrever a quantidade do componente i se xjunidades do ingrediente j(j=1,2,...,n) forem misturadas e se impor a exigência do problema: i  1, , m ai1 x1    ain xn  bi , (3.1) Tem-se ainda a restrição que define que uma quantidade do novo produto deve ser produzida: x1  x2    xn  1 x j  0, j  1, , n Além disso, e o custo Z  c1 x1  c2 x2    cn xn . O modelo matemático é, portanto: Z  c1 x1  c2 x2    cn xn minimizar s.a. n a j 1 ij n x j 1 j x j  bi , (3.2) total será (3.3) i  1, , m 1 xj  0 , j  1, , n Problema de Adubagem Um agricultor deseja adubar um terreno com 4 tipos de adubos encontrados no mercado. As necessidades do terreno (g) em N (Nitrato), K (potássio) e P (fósforo); as composições (g/Kg) e preços (u.m.=unidade monetária) dos adubos são dados pela tabela: Programação Linear Profª. Andreza Programação Linear Adubo 1 Adubo 2 Adubo 3 Adubo 4 Necessidade do terreno 14 N 10 10 50 20 140 P 10 100 20 40 190 K 100 30 20 35 205 Preço por unidade 5 6 5 15 O agricultor sabe que as quantidades em (N, P, K) não podem superar 5% das necessidades do terreno. Ele deseja saber as quantidades necessárias dos adubos (1, 2, 3, 4) para que o terreno esteja em perfeitas condições para um determinado plantio e com o menor custo possível. 3.2 Problema de Transporte Este problema, que admite inúmeras variáveis pode ser resumido em: determinadas quantidades de um produto homogêneo (matéria-prima, produtos fabricados, pessoas, etc.) encontram-se disponíveis em certo número de origens (armazéns, fábricas, portos, etc.); pretende-se efetuar o transporte de modo que as quantidades, previamente fixadas, passem a existir em determinados locais de destino (fábrica, mercados consumidores, aeroportos, etc.). Conhecido o custo de transporte de uma unidade de produto de cada origem para cada destino, determina-se o plano de distribuição que minimiza o custo total de transporte. Este tipo de problema engloba todos aqueles cuja formulação matemática seja semelhante, ainda que não esteja envolvido o transporte de bens. Enunciado Uma empresa responsável pelo abastecimento semanal de certo bem às cidades de Lisboa e Porto pretende estabelecer um plano de distribuição desse bem a partir dos centros produtores situados em Peniche, Viseu e Évora. As quantidades semanalmente disponíveis em Peniche, Viseu e Évora são 70, 130 e 120 toneladas, respectivamente. O consumo semanal desse bem é de 180 toneladas em Lisboa e de 140 toneladas no Porto. Os custos unitários de transporte (u.m./ton) são os seguintes: Lisboa Porto Peniche 13 25 Viseu 25 16 Évora 15 40 Programação Linear Profª. Andreza Programação Linear 15 Capítulo 4 RESOLUÇÃO GRÁFICA 4.1 Conceitos de Análise Matemática Para resolver um problema graficamente é necessário recordar dois conceitos matemáticos: 1. Gradiente de uma função:  f f   G  f ( x )     x  x n   1 onde f é a derivada parcial de f em relação a xi. Na função z = 2x1 + 2x2, o xi gradiente é: z = (2 , 3). 2. Curvas de Nível: considerando a função z = f (x1,x2) = 2x1 + 2x2. Tem-se que  f (x1,x2) = (2,2) e ki = 2x1 + 2x2. Fazendo k1 = 2, devemos encontrar os pontos onde k intercepta os eixos x1 e x2. Para tanto basta zerar x1e depois x2. Assim, k intercepta os eixos em (0 , 2) e (2 , 0). k2 = 8 x2 g k1 = 2 (0,4) (0,1) x1 (1,0) (4,0) FIGURA 4.1: Curvas de nível e gradiente de função 3. Resultados: a. O gradiente f em x é perpendicular às curvas de nível da função f. b. A função objetivo z cresce na direção do gradiente e decresce no sentido contrário. Programação Linear Profª. Andreza Programação Linear 16 4.2 Resolução Gráfica de um Problema de PL Considerando um problema cuja modelagem matemática é: Max Z  5 x1  2 x2 (4.1) s.a. x 4 1 x2  3 x1  2 x2  9 x1 , x2  0 Passo 01: Determinar o conjunto de pontos (x1, x2) que satisfazem as restrições: x1 0 x1= 4 x1 4 4,5 3 x 2= 3 R x2 3 x1 + 2x2 9 4 9 x2 0 x1 + 2x2= 9 FIGURA 4.2: Conjunto das Soluções Viáveis do Exemplo 2.1. A região R é a região viável. O conjunto de pontos que satisfazem todas as restrições, inclusive a condição de não negatividade, é chamado de região viável. Passo 02: Determinar o ponto ótimo x* = (x1*, x2*) que pertence a região viável e maximiza a função:  Traçar o vetor gradiente f (x) = (5, 2)  Traças as curvas de nível perpendiculares ao gradiente ki = 5x1 + 2x2, por exemplo, k1= 5 e k2= 10.  O último ponto na direção do gradiente (direção de crescimento da função – problema de maximização) em que a curva de nível toca a região viável é o ponto ótimo x*. Programação Linear Profª. Andreza Programação Linear 17 x2 5 2,5 2 1 2 x1 5 k3 k1 k2 FIGURA 4.3: Solução ótima do exemplo 2.1. As coordenadas deste ponto são resultantes da intersecção das retas: x1= 4 x1 + 2x2= 9 4 + 2x2 = 9 2x2 = 5 x2 = 2,5 x1 = 4 Assim, resolvendo o sistema 2X2 tem-se que o ponto ótimo é dado por x* = (4 , 2,5). Isto é, 4 unidades de área plantadas de arroz e 2,5 unidades de área plantadas de milho. O lucro máximo de z é dado por: Z* = (5  4) + (2  2,5) = 25 Resultados:  O gradiente de f em x é perpendicular às curvas de nível da função f.  A FO Z cresce na direção do gradiente e decresce no sentido contrário ao gradiente. Programação Linear Profª. Andreza Programação Linear 18 Exemplo 4.1: Resolva graficamente o problema das estantes de metal que tem a seguinte modelagem matemática: Max Z  6 x1  3 x 2 s.a. 2 x  4 x  720 1 (4.2) 2 4 x1  4 x2  880 x1  160 x1  0, x2  0 Problema de minimização Considerando o exemplo 2.3, o conjunto das soluções viáveis encontra-se representado na figura 4.4 e foi obtido por procedimento análogo ao utilizado para o exemplo anterior. A única diferença é que as curvas de nível foram traçadas no sentido contrário ao do gradiente, buscando os valores que minimizassem o valor da função objetivo. Max Z  10 x  5 x 1 2 s.a. 20 x  50 x  200 1 (4.3) 2 50 x1  10 x2  150 30 x1  30 x2  210 x1  0, x2  0 Programação Linear Profª. Andreza Programação Linear 19 50 x1 + 10 x2 = 150 20 x1 + 50 x2 = 200 30 x1 + 30 x2 = 210 FIGURA 4.4: Conjunto de Soluções Viáveis de um PPL de Minimização. Os pontos que minimizam o valor de são obtidos pela regra descrita anteriormente. Assim, devem-se traçar as curvas de nível deslocando-se no sentido de decrescimento de z. Procedendo desta forma, os valores ótimos obtidos são: x*(2 , 5). Assim, o fazendeiro deve fornecer 2 kg de granulado e 5 kg de farinha a cada animal. Esta dieta resulta em um custo de alimentação diário de 45 u.m. por animal. 4.3 Casos Particulares Nos exemplos apresentados as soluções são únicas, porém, nem sempre isso acontece. Considerando o seguinte problema de PL: Max Z  2 x1  x2 (4.4) s.a. 3 x  4 x  12 1 2 4 x1  2 x2  10 x1 , x2  0 A representação gráfica deste problema encontra-se na figura 4.5. Pode-se concluir que Z* = 5 é o valor máximo da FO. Pode se observar que tanto o ponto Programação Linear Profª. Andreza Programação Linear 20 extremo A quanto B são soluções ótimas do problema. Em outras palavras, os dois pontos extremos conduzem ao mesmo valor máximo para a FO. Mas, qualquer ponto da aresta AB também é solução ótima, dado que a curva de nível Z=5 está sobre a aresta. Desta maneira, existem infinitas soluções ótimas. k1 k2 k3 kn A solução ótima é composta por todo o segmento de reta. A B 4x1 + 2x2 = 10 3x1 + 4x2 = 12 FIGURA 4.5: Múltiplas Soluções Ótimas. Quando um problema de PL possui mais do que uma solução ótima, é um problema de múltiplas soluções, o que significa que o lucro máximo pode ser obtido através de várias combinações dos recursos. Exemplo 4.2: Resolva graficamente o problema com a seguinte modelagem matemática: Max Z  4 x  2 x 1 2 s.a. 2 x1  x2  8 (4.5) x1  2 x2  7 x2  3 x1  0, x2  0 Programação Linear Profª. Andreza Programação Linear 21 Os problemas apresentados anteriormente podem ser considerados “bem comportados”. Existe, contudo, a possibilidade de soluções anômalas. Considerando a seguinte modelagem: Max s.a. Z  x1  2x2 4 x1  x2  20 x1  2 x2  10 x1  2 x1 , x2  0 (4.5) A solução gráfica está representada na figura 4.6. x1 = 2 G =  Z = (1 , 2) kAs n k4 curvas de nível, que acompanham o gradiente, podem ser traçadas indefinidamente. k3 k2 x1 + 2x2 = k1 = 2 x1 + 2x2 = 10 4x1 + x2 = 20 FIGURA 4.6: Solução Ilimitada. O valor da função objetivo cresce indefinidamente dentro da região viável, caracterizando o problema como um problema de solução ilimitada. Outra situação anômala que pode surgir, normalmente devido a erros de formalização, é a não existência de qualquer solução possível. Isto pode acontecer Programação Linear Profª. Andreza Programação Linear 22 por não existirem valores das variáveis que satisfaçam as restrições do problema ou as condições de não negatividade, ou ambas simultaneamente. Neste caso, o problema é inviável. Considerando a seguinte modelagem: Min s.a. Z  x1  2x2 x1  x2  3 2 x1  x2  2 x1 , x2  0 (4.6) A representação gráfica mostra que não existe uma região viável de solução para o problema, caracterizando um problema inviável ou infactível. As regiões de viabilidade são distintas! 2x1 + x2 = 2 x1 + x2 = 3 FIGURA 4.7: Não Existe Solução Viável. Este exemplo ilustra uma situação de problema inviável. 4.3 Solução de Problemas de PL – Método Simplex As formulações com mais de duas variáveis de decisão não podem ser solucionadas com o método gráfico. Dessa forma, é necessário o estudo de um outro procedimento para busca de soluções. Existe um procedimento geral para a resolução de problemas de PL que é denominado Método Simplex e foi desenvolvido em 1947 por George B. Dantzig. O método simplex é um algoritmo (método interativo) utilizado para achar algebricamente a solução ótima de um problema de PL. Existem dois teoremas básicos que garantem o funcionamento do método: Programação Linear Profª. Andreza Programação Linear 23 1. O conjunto de todas as soluções compatíveis do modelo de programação linear é um conjunto convexo cujos vértices (pontos extremos) correspondem a soluções básicas viáveis. 2. Se a função objetivo possui um máximo (ou mínimo) finito, então pelo menos, uma solução ótima é um ponto extremo do conjunto convexo do teorema acima. Pelo exemplo com a modelagem matemática (4.1), o conjunto das soluções possíveis do problema, que na solução gráfica é representada pelos pontos extremos da região de viabilidade, é a seguinte: D (3, 3) E (0, 3) C (4, 2,5) A (0, 0) B (4, 0) FIGURA 4.8: Conjunto das soluções viáveis. Sabe-se que a solução ótima do modelo é uma solução compatível básica do sistema, ou seja, um ponto extremo do polígono ABCDE. O método simplex para ser iniciado necessita conhecer uma solução compatível básica (solução inicial) do sistema, isto é, um dos pontos A, B, C, D ou E do trapézio. Supondo que essa solução inicial seja o ponto A. O método simplex verifica se a presente solução é ótima. Se for, o processo está encerrado. Se não for ótima, é porque um dos pontos adjacentes fornece um valor maior para a FO do que A. Neste caso, o método simplex faz uma mudança do ponto A para o ponto extremo adjacente que mais aumente o valor da FO, no caso, o ponto B. Tudo o que foi feito para o ponto A é feito para B. O processo finaliza quando se obtém um ponto extremo onde todos os pontos extremos, a ele adjacentes, fornecem valores menores para a FO. Como fazer, algebricamente, a mudança de um ponto extremo para outro, a ele adjacente? Achar a próxima solução básica (ponto extremo adjacente) exige a escolha de uma variável básica para deixar a base atual, tornando-a não básica e a escolha de uma variável não básica para entrar na base em sua substituição. Programação Linear Profª. Andreza Programação Linear 24 Em resumo, os passos do algoritmo simplex são: 1. Achar uma solução compatível básica inicial. 2. Verificar se a solução atual é ótima. Se for, pare. Caso contrário, vá para o passo 3. 3. Determinar a variável não-básica que deve entrar na base. 4. Determinar a variável básica que deve sair da base, 5. Achar a nova solução compatível básica e voltar ao passo 2. Programação Linear Profª. Andreza Programação Linear 25 Capítulo 5 PROGRAMAÇÃO LINEAR: FORMA PADRÃO No capítulo anterior foi apresentado um método para a resolução dos problemas de programação linear. Para que o método possa ser aplicado, as restrições do tipo desigualdade devem ser transformadas em igualdade e deve-se conhecer uma solução viável inicial não negativa. 5.1 Condições de não negatividade Toda variável ainda não restrita a não ser negativa é substituída pela diferença de duas novas variáveis não negativas. As restrições lineares são da forma: n a j 1 ij x j  bi (5.1) onde indica uma das relações ,  ou = (não necessariamente a mesma para cada i. As restrições bi podem ser consideradas sempre não negativas. Exemplo 5.1 A restrição: 2 x1  3x2  4 x3  5 é multiplicada por –1 a fim de se obter  2 x1  3x2  4 x3  5 no qual o elemento do lado direito da relação é não negativo 5.2 Variáveis de folga e variáveis de excesso Uma restrição linear da forma a ij x j  bi deve ser convertida em igualdade pela adição de uma nova variável não negativa ao lado esquerdo da desigualdade. Tal variável é numericamente igual à diferença entre os valores à direita e à esquerda da desigualdade e é conhecida como variável de folga. Ela representa o desperdício acarretado pela parte do sistema modelada pela restrição em questão. Programação Linear Profª. Andreza Programação Linear 26 Exemplo 5.2 Considerando a restrição: 4 x1  5 x2  3x3  5 x4  30000 Admitindo que os termos à esquerda dessa desigualdade modelam o número total de horas utilizadas na montagem de todos os consoles de televisão, enquanto que o valor à direita traduz o número total de horas disponíveis. Essa desigualdade se transforma na equação: 4 x1  5 x2  3x3  5 x4  x5  30000 adicionando-se a variável de folga x5 ao lado esquerdo da desigualdade. Aqui x5representa o número de horas de montagem disponíveis não utilizadas pelo fabricante. Uma restrição linear de forma a ij x j  bi deve ser convertida em igualdade subtraindo-se ao lado esquerdo da desigualdade uma nova variável, não negativa. Tal variável é numericamente igual à diferença entre os valores à esquerda e à direita da desigualdade e é conhecida como variável de excesso. Ela representa um excesso das variáveis de entrada nesta parte do sistema modelada pela restrição em questão. Exemplo 5.3 Considerando a restrição: x1  x2  5 Supondo que os termos à esquerda dessa desigualdade modelam o número de minutos de propaganda que serão apresentados por semana na rede de televisão, enquanto que o valor à direita traduz o número mínimo de minutos de propaganda que devem ser reproduzidos. Essa desigualdade se transforma na equação: x1  x2  x3  5 subtraindo-se a variável de folga x3 ao lado esquerdo da desigualdade. Aqui x3representa quantos minutos a mais de propaganda serão exibidos além do limite mínimo requisitado pelo patrocinador. 5.3 Geração de solução inicial viável Depois de ter transformado todas as restrições lineares (com termos não negativos à direita das desigualdades) em igualdades, pela introdução das variáveis de folga e de excesso, onde necessário, adiciona-se uma nova variável, chamada variável artificial, à esquerda de todas as restrições que não contenham uma variável de folga. Em consequência, todas as equações representando Programação Linear Profª. Andreza Programação Linear 27 restrições, ou conterão variáveis de folga, ou variáveis artificiais. Obtém-se uma solução inicial não negativa para este novo conjunto de restrições, fazendo-se cada variável de folga e cada variável artificial igual ao valor do lado direito da equação, na qual a variável em questão aparece, e igualando-se a zero todas as outras variáveis, inclusive as variáveis de excesso. Exemplo 5.4 Considerando o conjunto de restrições: x1  2 x2  3 4 x1  5 x2  6 7 x1  8 x2  15 é transformado em um sistema de equações lineares adicionando-se a variável de folga x3 no termo à esquerda da primeira restrição e subtraindo-se a variável de excesso x4 do termo à esquerda da segunda restrição. As variáveis artificiais x5 e x6 são adicionadas respectivamente ao primeiro membro das duas últimas restrições do sistema de equações que não possuem variáveis de folga. O resultado é: x1  2 x2  x3 3 4 x1  5 x2 6 7 x1  8 x2  x4  x5  x6  15 Uma solução não negativa corresponde a este último sistema de equações será x3 = 3, x5 = 6, x6 = 15 e x1 = x2 = x4 = 0 (observando-se que x1 = 0 e x2 = 0 não é uma solução que atende ao conjunto de restrições original). 5.4 Custos de penalização A introdução das variáveis de folga e de excesso não altera a natureza das restrições e nem a função objetivo. Assim, tais variáveis são incorporadas à função objetivo com coeficientes de valor nulo. As variáveis artificiais, contudo mudam a natureza das restrições. Tendo em vista que estas variáveis são adicionadas a apenas um dos membros de uma igualdade, o novo e o velho sistema de equações representando restrições são equivalentes apenas se, e somente se, as variáveis artificiais tiverem valor zero. Para assegurar tal alocação de valores na solução ótima, as variáveis artificiais são incorporadas à função objetivo ponderadas por coeficientes positivos de valores elevados nos problemas de minimização e por coeficientes negativos em problemas de maximização. Estes coeficientes +M e –M são subentendidos como grandes números positivos e representam uma penalidade severa em que se incorre ao se fazer a alocação de uma unidade das variáveis artificiais. Programação Linear Profª. Andreza Programação Linear 28 Exemplo 5.5 Considerando o conjunto de restrições do exemplo 5.4: x1  2 x2  x3 3 4 x1  5 x2 6  x4  x5  x6  15 7 x1  8 x2 com FO sendo Max 2 x1  3 x2 Adicionando-se os custos de penalização à FO, ela será: Max 2 x  3x  0 x  0 x  Mx  Mx 1 2 3 4 5 6 5.5 Forma Padrão Um modelo de programação linear está na forma padrão ou forma normal se todas as restrições estão traduzidas por igualdades e só se conhece uma solução viável. Em notação matricial a forma padrão é: otimizar Z  c t x (5.2) s.a. Ax  b com x  0 onde:  x é o vetor coluna de incógnitas, incluindo ainda todas as variáveis de folga, de excesso e artificiais;  ct é o vetor linha dos custos correspondentes;  A é a matriz de coeficientes das equações de restrições; e,  b é o vetor dos valores à direita das equações representando as restrições; Se x0 indicar um vetor incluindo somente as variáveis de folga e as variáveis artificiais, então a solução inicial viável é dada por x0 = b, subentendendo-se que é atribuído o valor zero aos componentes de x não incluídos em x0. Programação Linear Profª. Andreza Programação Linear Exemplo 5.6 Coloque o problema de Giapetto na Forma Padrão. Max Z  3 x1  2 x2 29 (5.3) s.a. 2 x  x  100 1 2 x1  x2  80 x1  40 x1  0 x2  0 Faça também a representação matricial. Programação Linear Profª. Andreza Programação Linear 30 Capítulo 6 MÉTODO SIMPLEX 6.1 Procedimento do Método Simplex Considerando o seguinte problema: Maximizar Z  2 x  3x 1 (6.1) 2 x1  2 x2  8 3 x1  2 x2  12 x1  0, x2  0 sujeito a: A solução geométrica será: A=(0,0) B=(4,0) C=(2,3) D=(0,4) D C A B x1+2x2=8 3x1+2x2=12 Sabe-se que a solução ótima de (6.1) é uma solução básica viável do sistema (que está na forma padrão): Max. Z  2 x  3 x (6.2) 1 s. a. 2 x1  2 x2  x3 8 3 x1  2 x2  x4  12 xi  0 i  1,...,4 é algum ponto extremo do trapézio (A, B, C, D). Programação Linear Profª. Andreza Programação Linear 31 Obs: É possível afirmar que o problema está na forma canônica, pois apresenta uma base na forma identidade formada pela terceira e quarta colunas das restrições. Procedimentos 1. O método simplex, para ser iniciado precisa conhecer uma solução básica viável (solução inicial) do sistema (6.2), isto é, um dos pontos A, B, C, D da região de viabilidades. Supondo que essa solução seja, por exemplo, o ponto A, que é obtida quando as variáveis de decisão são igualadas a zero. x  (0, 0, 8, 12) 1 0 B  0 1  1 2 NB    3 2 x   8  x B  B 1b   3      x4  12   x  0  x NB   1      x 2  0  2. O método verifica se esta solução é ótima. Z(x) = 2x1 + 3x2 = 0 Qualquer valor diferente de zero para x1 e x2 aumentam z(x). Logo, a solução x=(0, 0, 8, 12) não é ótima. Portanto deve-se continuar o procedimento. 3. Como a solução não é ótima e pelo menos um ponto extremo será solução ótima, tem-se que um dos pontos extremos adjacentes a A fornece para a FO um valor maior que o atual. Assim, devemos caminhar para a outra solução básica viável (ponto extremo). B = (4, 0, 4, 0) Z(x) = 8 D = (0, 4, 0, 4) Z(x) = 12 Verifica-se que tanto B, quanto D aumentam o valor da FO. O método faz então a mudança do ponto A para o ponto extremo adjacente que mais aumenta o valor da função objetivo. Neste caso, a direção x2, resultando em D. Repete-se para D o que foi feito para A. O processo termina quando estando num ponto extremo, todos os pontos extremos a ele adjacentes fornecem valores menores para a FO. É o que acontece com o ponto C. Programação Linear Profª. Andreza Programação Linear 32 6.1.1 Comparação das soluções fornecidas por A e D xA = (0, 0, 8, 12) xD = (0, 4, 0, 4) Observa-se que uma variável que era não básica (não pertencia ao conjunto de solução) – x2 – passou a ser básica, e a variável x3 que era básica passou a ser não básica (não fazer parte da base), aumentando o valor da FO. Pode-se concluir que aumentar z(x) consiste em se determinar outra solução básica viável (ponto extremo), escolhendo uma variável para entrar na base (tornala básica) e escolhendo qual variável vai deixar a base. O método simplex caminha de solução básica viável em solução básica viável, isto é, de ponto extremo em ponto extremo. 6.2 Método Simplex via quadro (TABLEAU) Considerando o seguinte problema de maximização, que está na forma padrão: Max. Z  2 x  3 x 1 s. a. 2 x1  2 x2  x3 8 3 x1  2 x2  x4  12 xi  0 i  1,...,4 Variáveis VB Matriz A x3 x4 cj Vetor b Custos relativos x1 1 3 2 x2 2 2 3 x3 1 0 0 x4 0 1 0 8 12 z(x) Passo 01Solução Básica Viável, Otimalidade, Quem Sai da Base? IB = {x3, x4} INB = {x1, x2} x3 x4 cj x1 1 3 2 x2 2 2 3 x3 1 0 0 x4 0 1 0 8 12 z(x) x = (0, 0, 8, 12) z(x) = 0 Entra na base a variável com custo relativo mais positivo. Portanto, x2 entra na base (c2 = 3). Programação Linear Profª. Andreza Programação Linear 33 Passo 02Quem sai?  8 12  min  ,   4 2 2  x3 sai da base Passo 03Atualização x3 x4 cj x1 1 3 2 x2 2 2 3 x3 1 0 0 x4 0 1 0 8 12 z(x) x2 x4 cj x1 1/2 3 2 x2 1 2 3 x3 1/2 0 0 x4 0 1 0 4 12 z(x) x2 x4 cj x1 1/2 2 1/2 x2 1 0 0 x3 1/2 -1 -3/2 x4 0 1 0 4 4 z(x)-12 IB = {x2, x4} INB = {x1, x3} x = (0, 4, 0, 4) z(x) = 12 Passo 04A solução é ótima? Não!!   cˆJ  0, j  I NB Passo 05Quem entra na base? c1  1 x1 entra na base 2 Programação Linear Profª. Andreza Programação Linear 34 Passo 06Quem sai na base? 4 min  ,  12 4   min 8, 2  2 x4 sai da base 2 Passo 07Atualização x2 x4 cj x1 1/2 2 1/2 x2 1 0 0 x3 1/2 -1 -3/2 x4 0 1 0 4 4 z(x)-12 x2 x1 cj x1 1/2 1 1/2 x2 1 0 0 x3 1/2 -1/2 -3/2 x4 0 1/2 0 4 2 z(x)-12 x2 x1 cj x1 0 1 0 x2 1 0 0 x3 1/4 -1/2 -5/2 x4 -1/4 1/2 -1/4 3 2 z(x)-13 IB = {x2, x1} INB = {x4, x3} x = (2, 3, 0, 0) z(x) = 13 Passo 08A solução é ótima?  cˆ J  0, j  I NB  SIM!!!! A solução ótima é então, x* = (2, 3, 0, 0) resultando em z*(x) = 13. 6.3 Interpretação das variáveis de folga Afirmação 6.1: Se uma restrição for ativa (satisfeita com igualdade) sua folga correspondente é uma variável não básica (zero). Programação Linear Profª. Andreza Programação Linear 35 Observando a interpretação geométrica do problema (8.1) tem-se: A=(0,0) B=(4,0) C=(2,3) D=(0,4) D A C B x1+2x2=8 3x1+2x2=12 i. ii. iii. A = (0, 0): a primeira (x1 + 2x28) e a segunda (3x1 + 2x212) restrições são inativas, então x3 e x4 estão na base. D = (0, 4): a primeira restrição é ativa, então sua folga x3 está fora da base. C = (2, 3): a primeira e a segunda restrições são ativas, então suas folgas x3 e x4 estão fora da base (assumem valor zero). 6.4 Problemas de minimização A solução ótima gráfica no R2 será obtida deslocando as curvas de níveis no sentido contrário ao do gradiente. O método simplex será modificado apenas no critério de entrada de variáveis na base, e no critério de otimalidade. i. Entra na base aquela variável com coeficiente mais negativo na FO. ii. Quando todos os cˆ J  0, j  I NB , qualquer valor positivo atribuído a uma variável que entra na base piora o valor de z(x), e portanto, estamos no ótimo. Programação Linear Profª. Andreza Programação Linear 36 6.5 Análise econômica A análise econômica baseia-se nos coeficientes das variáveis, na função objetivo final. Esta análise permite a interpretação da solução ótima encontrada no problema real, verificando como as restrições foram atendidas e qual o impacto na situação real. A análise econômica é realizada não somente nas variáveis de decisão, mas também nas variáveis de folga e excesso adicionadas ao modelo na Forma Padrão. A interpretação destas variáveis permite ao tomador de decisão verificar requisitos de capacidade e demanda da situação real. Exemplo 8.1:Análise econômica do problema de Giapetto Max. Z  3 x  2 x 1 2 s. a. 2 x  x  100 1 2 x1  x2  80 x1  40 xi  0 i  1, 2  Maximizar o lucro  Restrição de acabamento  Restrição de carpintaria  Restrição de demanda  Restrição de positividade ondex1 representa o número de soldados a serem produzidos e x2 o de trens. Para que o simplex possa ser aplicado é necessário transformar o problema na forma padrão: Max. Z  3 x  2 x 1 2 s. a. 2 x  x  x 1 x1  x2 x1 2  100  x4  80  x5  40 3 xi  0 i  1, ..., 5 ondex3 representa a sobra de horas de acabamento, x4 representa a sobra de horas de carpintaria e x5 a sobra de demanda. O último quadro da solução ótima obtida pelo método simplex é: x4 x1 x2 x3 x5 x2 0 1 -1 2 0 60 x5 0 0 -1 1 1 20 x1 1 0 1 -1 0 20 cj z(x)-180 0 0 -1 -1 0 A análise econômica é feita principalmente pela interpretação dos resultados de x5, x3 e x4. Programação Linear Profª. Andreza Programação Linear 37 6.6 Casos Especiais do Método Simplex A seguir serão apresentados alguns casos particulares que podem ocorrer durante a resolução de um problema de programação linear: empate entrada de variáveis na base, empate na saída de variáveis na base, problema com infinitas soluções e problema ilimitado. 6.6.1 Empate na entrada de variáveis na base O método simplex determina que esta escolha é arbitrária, pois isto acarreta na escolha de um caminho mais longo ou mais curto para se chegar à solução ótima. 6.6.2 Empate na saída de uma variável da base Poderá ocorrer empate durante a escolha de uma variável para sair da base, isto é, duas ou mais variáveis se anulam com o crescimento da variável que está entrando na base. Neste caso a escolha também é arbitrária, ocorrendo soluções básicas viáveis degeneradas. Definição: Uma solução básica viável é degenerada quando pelo menos uma variável básica for nula. Exemplo 6.2: Max. Z  4 x  x 1 2 s. a. 2 x1  x2  2 x2  2 x1  x2  1 xi  0 i  1, 2 Solução: x3 x4 x5 cj X1 2 0 1 4 x2 1 1 -1 1 x3 1 0 0 0 x4 0 1 0 0 x5 0 0 1 0 2 2 1 z(x) IB = {x3, x4, x5} INB = {x1, x2} x = (0, 0, 2, 2, 1) z(x) = 0 Programação Linear Profª. Andreza Programação Linear 38 x1 entra na base  2 1 min  ,   1  2 1 saix3 ou x5 Observações: i. Quando se entra com x1 na base e sai x3, obtém-se a solução ótima em uma iteração. ii. Quando se escolhe x5 para sair da base, é necessário realizar 2 iterações para encontrar a solução. iii. Quando não há degeneração, aplicando a método simplex a FO z(x) sempre aumentará (max) e não passaremos duas vezes pela mesma base. iv. O fato degeneração está relacionado com hiperdeterminação de pontos extremos. v. Redundância leva à degeneração se ela cai num ponto extremo. 6.6.3 Problemas com infinitas soluções Caso um problema de PL apresentar mais de uma solução ótima, o método simplex acusará. Quando for obtido o quadro ótimo e algum cˆ j  0 para alguma componente não básica, tem-se infinitas soluções. 6.6.4 Problema ilimitado Quando se aplica o método simplex e nenhuma equação (restrição) impedir o crescimento da variável que estiver entrando na base, isto é, não se conseguir zerar uma variável básica, tem-se um problema ilimitado.  bˆi  ˆ , a  0   ij min  aˆ ij  i Se todos os aˆ ij são negativos ou iguais a zero (aˆij  0) então z (x)   . 6.6.5 Convergência do Método Simplex Considerando o seguinte problema degenerado: Max. Z  5 x1  2 x2 s. a. x  x  6 1 2 x1  x 2  0 xi  0 i  1, 2 Depois de colocar o problema na Forma Padrão, o tableau obtido será: Programação Linear Profª. Andreza Programação Linear 39 x4 x1 x2 x3 x3 1 1 1 0 6 x4 1 -1 0 1 0 cj z(x) 5 2 0 0 Nesta solução básica viável (sbv), tem-se x4 = 0. Isto implica em um problema de PL degenerado. Qualquer sbv com pelo menos uma variável básica com valor zero é uma sbv degenerada. Na iteração seguinte, x1 vai entrar na base e terá valor zero. Depois do pivotamento as variáveis terão o mesmo valor. Assim, a nova sbv também é degenerada. Continuando o método, x2 entra na linha 1. O tableau resultante é: x4 x1 x2 X3 x2 0 1 ½ -½ 3 x1 1 0 ½ ½ 3 cj 0 0 -3,5 -1,5 z(x)-21 A solução ótima para o problema é: IB = {x2, x1} INB = {x4, x3} x = (3, 3, 0, 0) z(x) = 21 Supondo que o simplex esteja sendo aplicado em um outro problema de PL degenerado para o qual o valor ótimo da FO é 30. Se a solução inicial correspondesse a z(x) = 20. Sabe-se que é possível que o pivotamento não modifique o valor de z(x). É possível que ocorra a seguinte sequência de pivotamento: a. sbv inicial (sbv 1): z = 20; b. depois do primeiro pivotamento (sbv2): z = 20; c. depois do segundo pivotamento (sbv3): z = 20; d. depois do terceiro pivotamento (sbv4): z = 20; e. depois do quarto pivotamento (sbv1): z = 20; Nesta situação a sbv1 é encontrada duas vezes durante a resolução. Isto é chamado ciclagem ou presença de ciclos ou looping. Se este fenômeno ocorre, o método vai entrar em um looping infinito no conjunto de sbv possíveis e nunca chegará ao valor ótimo. Programação Linear Profª. Andreza