139
SUMÁRIO ORIGEM DA PESQUISA OPERACIONAL 01 I MODELAGEM MATEMÁTICA 04 1.1- Introdução ............................................... .......................................................... ......... 04 1.2- Metodologia da PO ....................................................... ............................................ 06 1.3- O Modelo de Programação Linear.................................................... ......................... 07 1.4- Exemplos de Formulação de Modelos................................................... .................... 10 1.5- Problemas Propostos ................................................ ................................................. 17 1.6- Solução Gráfica .................................................. ....................................................... 19 II FUNDAMENTOS MATEMÁTICOS 29 2.1- Matriz ................................................... .......................................................... ............ 29 2.2- Sistema de Equações Lineares ................................................. .................................. 30 2.3- Vetores no Plano e no Espaço ................................................... ................................ 32 2.4- Combinação Linear ................................................... ................................................. 33 2.5- Independência Linear ................................................... ............................................. 33 2.6- Solução Básica Viável ................................................... ............................................ 33 1

Pesquisa Operacional - 97pg

Embed Size (px)

Citation preview

SUMÁRIO

ORIGEM DA PESQUISA OPERACIONAL 01I MODELAGEM MATEMÁTICA 04

1.1- Introdução .................................................................................................................. 041.2- Metodologia da PO ................................................................................................... 061.3- O Modelo de Programação Linear............................................................................. 071.4- Exemplos de Formulação de Modelos....................................................................... 101.5- Problemas Propostos ................................................................................................. 171.6- Solução Gráfica ......................................................................................................... 19

II FUNDAMENTOS MATEMÁTICOS 292.1- Matriz ......................................................................................................................... 292.2- Sistema de Equações Lineares ................................................................................... 302.3- Vetores no Plano e no Espaço ................................................................................... 322.4- Combinação Linear .................................................................................................... 332.5- Independência Linear ................................................................................................ 332.6- Solução Básica Viável ............................................................................................... 332.7- Combinação Convexa ................................................................................................ 342.8- Conjunto Convexo ..................................................................................................... 34

III MÉTODO SIMPLEX 353.1- Introdução .................................................................................................................. 353.2- Teoremas Fundamentais do Método Simplex ........................................................... 353.3- Redução de Um Problema de Programação Linear à Forma Padrão ........................ 363.4- Forma Canônica de Um Sistema ............................................................................... 383.5- Conceitos Básicos do Método Simplex ..................................................................... 393.6- Desenvolvimento do Método Simplex ...................................................................... 473.7- Procedimento do Método Simplex ............................................................................ 503.8- Análise das Soluções ................................................................................................. 503.9- Análise Econômica .................................................................................................... 513.10- Método do M Grande............................................................................................... 573.11- Método das Duas Fases ........................................................................................... 58

IV DUALIDADE 604.1- Introdução .................................................................................................................. 604.2- Estudo da Dualidade .................................................................................................. 604.3- Relações Entre Primal e Dual .................................................................................... 664.4- Resumo Para Transformação Primal-Dual ................................................................ 66

V ANÁLISE DE SENSIBILIDADE 675.1- Introdução .................................................................................................................. 675.2- Variações nos Coeficientes da FO ............................................................................. 685.3- Variações nas Quantidades dos Recursos................................................................... 705.4- Acréscimo de Variável .............................................................................................. 725.5- Acréscimo de Restrição.............................................................................................. 75

VI PROBLEMAS DE TRANSPORTES 796.1- Introdução................................................................................................................... 796.2- Modelagem do Problema de Transportes .................................................................. 796.3- Algoritmo do Problema de Transporte ...................................................................... 81 6.3.1- Obtenção da Solução Básica Inicial ................................................................ 82 6.3.2- Algoritmo da “Stepping-Stone”....................................................................... 87 6.3.3- Cálculo da Solução Ótima Através do Problema Dual.................................... 89

VII PROGRAMAÇÃO INTEIRA 927.1- Introdução 92

1

7.2- Algoritmo de Bifurcação e Limite 92 7.2.1- Limite 94 7.2.2- Considerações 94 7.2.3- Diagrama Esquemático 94ANEXO 1- ESTUDO DE CASO: COMPOSIÇÃO DE FERTILIZANTES 95ANEXO 2- RESOLUÇÃO POR COMPUTADOR 103

2

ORIGEM E APLICAÇÕES DA PESQUISA OPERACIONAL

A Pesquisa Operacional (PO) é uma ciência aplicada, formada por um conjunto de

técnicas que visa a determinação das melhores condições de aproveitamento dos recursos em uma situação na qual estejam sob restrições, como a econômica, a material, a humana e a temporal.

Sob o ponto de vista histórico, seu nome é relativamente novo, de origem militar, sendo usado pela primeira vez na Grã-Bretanha, durante a Segunda Guerra Mundial. No começo desse conflito, os organismos responsáveis pela defesa daquele país utilizaram o concurso de especialistas tais como físicos, biólogos, matemáticos para assessorar e contribuir no estudo e solução de certos problemas que, geralmente, se consideravam de atribuições estritamente militar.

Basicamente, as razões disto eram fundadas nos fatos da existência de armamentos relativamente novos, mas sem o suficiente uso que permitisse medir a eficiência máxima dos mesmos e na necessidade urgente de alocar recursos escassos às várias operações militares e às atividades dentro de cada operação, de modo eficaz.

Aplicando uma abordagem científica no tratamento de problemas estratégicos e táticos, foram resolvidos, com sucesso, problemas como a determinação do número mínimo de aviões ingleses a serem mantidos em condições de fazer frente aos ataques alemães, a distribuição e localização dos meios de defesa antiaérea ao longo da ilha, a determinação da melhor profundidade para explodir as bombas lançadas dos aviões contra os submarinos inimigos, entre outros.

Os cientistas chamados para fazer pesquisa em operações militares (daí o nome Pesquisa Operacional), após a guerra desenvolveram diversas outras aplicações. Depois de 1950, a PO invadiu a área industrial e encontrou seu aliado natural: o Computador. Depois do computador, a PO se expandiu de uma maneira extraordinária e problemas cada vez mais complexos e com grande número de variáveis e equações puderam ser solucionados.

Na década de sessenta tinha a mesma divulgação e fascínio também obtidos por outras técnicas, tal como a Gestão pela qualidade Total os tem obtido nas décadas de oitenta e noventa. Hoje, o campo de atuação da PO é bastante amplo, se estendendo desde o setor industrial, na produção de matérias-primas e bens de consumo, até o setor de serviços e às aplicações de interesse social como as relacionadas à saúde e à educação.

Existem diversas áreas em que a PO vem sendo aplicada com sucesso para racionalizar recursos, reduzir custos e aumentar lucros. Dentre elas temos:

Dosagem (ou Mistura)o Alimentaçãoo Formulação de Raçõeso Fábrica de Aduboso Ligas Metálicaso Petróleoo Minérios, etc.

Transporteo Tamanho da Frota

3

Investimentos Financeiroso Análise de Riscos de Créditoo Projeto de Investimentos, etc.

Alocação de Recursoso Fábricaso Fazendas (agropecuária), etc.

Localizaçãoo Localização Industrialo Localização de Centrais Telefônicaso Localização de Escolas, etc.

Estoques, etc.

o Roteamento, etc

Os problemas de Misturas tem em comum o objetivo de se minimizar o custo do produto obtido pela mistura de diversas matérias-primas com diferentes custos e diferentes composições (química ou nutricional). As restrições se referem à participação dos componentes (ou nutrientes) no produto final. Este problema é aplicado na pecuária para formular dietas de ruminantes a um custo mínimo atendendo exigências de proteínas e minerais e utilizando animais e alimentos disponíveis em uma determinada região. Assim como é aplicado em dietas de animais, é aplicado também na alimentação de pessoas utilizando alimentos disponíveis e um público específico, como por exemplo em hospitais, spas, escolas (merenda infantil), etc.

Na indústria de fertilizantes a PO tem sido utilizada para formular diferentes tipos de composição a fim de otimizar o uso do nitrogênio, fósforo e potássio que variam conforme as necessidades de cada cultura (algumas culturas absorvem determinados elementos da própria natureza, outras necessitam recebê-las ). Ver estudo de caso no Anexo I.

Na indústria siderúrgica é aplicada a PO, por exemplo, para determinar quais minérios devem ser carregados no alto-forno de modo a se produzir, ao menor custo, uma liga de aço dentro de determinadas especificações de elementos químicos. Já na indústria petrolífera, pode-se querer definir qual deve ser a mistura de petróleo a ser enviada para uma torre de craqueamento para produzir seus derivados (gasolina, óleo, etc.) a um custo mínimo e considerando que os petróleos são de diversas procedências e possuem composições diferentes.

Na manufatura pode-se querer definir qual deve ser a composição de produtos a serem fabricados por uma empresa de modo que se atinja o lucro máximo, sendo respeitadas as limitações ou exigências do mercado comprador e a capacidade de produção da fábrica.

Os problemas de transporte têm em comum o objetivo de minimizar o custo de todo o volume de transporte, obedecendo às necessidades de recebimento do destino e da capacidade de envio da fonte. Este problema é aplicado, por exemplo, em fábricas que desejam transportar mercadorias para seus depósitos localizados em postos distintos a um custo mínimo. O mesmo estudo de transporte pode ser feito para transportar produtos de armazéns para mercados varejistas ou para transportar carros de locadoras de automóveis que estão com excesso de carros, para outras que estão com déficit em decorrência dos contratos de locação permitirem que sejam os automóveis devolvidos em locais diferentes daqueles onde foram originalmente alugados. Os problemas de transporte podem também ser aplicados para roteirização de coleta de lixo em uma cidade ou para planejar abastecimento de aviões a um custo mínimo, obedecendo a sua demanda de combustível e a disponibilidade dos fornecedores. Apresentamos apenas algumas aplicações dos problemas de transporte, existindo ainda uma infinidade delas.

Uma das áreas mais recentes em que a PO vem sendo aplicada é em Investimentos Financeiros. Nesta área pode-se aplicar a PO para fazer análise de riscos de créditos, para projetar investimentos, etc. Pode-se, por exemplo, querer saber quais ações devem compor uma carteira de investimento de modo que o lucro seja máximo e sejam respeitadas as previsões de lucratividade e as restrições governamentais.

4

Os problemas de Alocação de Recursos são muito comuns em PO. Problemas desse tipo dizem respeito à atribuição e distribuição de recursos entre diversas tarefas ou atividades que devem ser realizadas. Normalmente, os recursos disponíveis não são suficientes para que todas as atividades sejam executadas no nível mais elevado que se possa desejar. Assim, o que se procura, nesses casos, é encontrar a melhor distribuição possível dos recursos entre as diversas tarefas ou atividades, de forma a atingir um valor ótimo do objetivo estabelecido.

As indústrias dos mais diversos setores utilizam estes problemas para fazer uma programação de produção, ou seja, saber qual a quantidade a produzir de um determinado produto, entre vários, para se obter o maior lucro possível ou o menor custo possível e obedecendo as limitações do sistema em estudo, como por exemplo, matéria-prima, mão-de-obra, demanda de mercado, maquinário disponível, etc.

Na agricultura pode-se saber que alimentos devem ser plantados de modo que o lucro seja máximo e sejam respeitadas as características do solo, do mercado, do comprador e dos equipamentos disponíveis. Pode-se também querer saber qual quantidade de terra deve-se destinar a cada atividade (plantação, pecuária, etc.) de modo a ter o melhor retorno financeiro, respeitando as limitações de cada atividade.

Os problemas de localização possuem também importantes aplicações práticas nos mais diversos setores. Nestes problemas desejamos saber onde implantar fábricas, escolas, hospitais, centrais telefônicas, etc, de modo a atender economicamente a demanda específica e as limitações impostas por cada situação. No caso de localização industrial, por exemplo, podemos saber onde devem ser localizadas as fábricas e os depósitos de um novo empreendimento industrial de modo que os custos de entrega do produto aos varejistas sejam minimizados. No caso de localização de escolas, podemos querer planejar a localização de escolas de 1º Grau em áreas urbanas, de forma que sejam minimizadas as distâncias totais percorridas pelo conjunto de alunos.

Na Indústria da Construção Civil a PO é utilizada para reduzir seções transversais de estruturas como vigas e pilares. Essas seções devem ser a mínima possível de forma que sejam atendidas as restrições de carga e normativas. É utilizada para otimizar o traçado de cabos em vigas de concreto protendido, para reduzir pêras no corte de barras de ferro nas obras, etc.

Os problemas de Corte são problemas muito interessantes da PO. Esses problemas, além de minimizar as perdas nos cortes de barras, minimizam também perdas na fabricação de bobinas, chapas, tecidos, papéis, móveis, etc.

Seria possível ainda citar inúmeros exemplos de aplicação da PO nas mais diversas áreas, como estoques, meio ambiente, ecologia, saúde, etc. Na realidade, não existe situações em que sistemas humanos ou sistemas homem-máquina realizem trabalhos e a PO não possa ser utilizada para assegurar a eficácia dos aspectos de programação daqueles trabalhos.

Pesquisas que vem sendo efetuadas em empresas que têm utilizado a PO como ferramenta, mostram que a redução de custos se enquadra facilmente na faixa de 1% e 5%, existindo casos onde chegam até a 15%. Em indústrias como as siderúrgicas e petrolíferas, onde o custo de produção chegam na ordem de US$ 300 milhões anuais esses percentuais apresentados apresentam uma economia considerável.

A PO é uma ciência multidisciplinar, em constante evolução, que conta hoje com o desenvolvimento e utilização de diversos softwares e com sociedades nacionais e internacionais (SOBRAPO, INFORMS, etc) que promovem simpósios científicos,

5

premiações, mantém “sites”, geram publicações, etc, possibilitando a reciclagem e atualização dos conhecimentos e aplicações da PO.

Capítulo IMODELAGEM MATEMÁTICA

1.1- INTRODUÇÃO

O processo de tomar decisões gerenciais, em bases racionais, pressupõe a existência de uma ciência da gestão. Essa ciência corresponde à expressão em inglês Management Science, que se caracteriza pelo uso de abordagens científicas na avaliação de alternativas de ações. Certamente, o ato de refletir, avaliar conseqüências e decidir é um distintivo do ser humano, mas a criação de metodologias para promover o gerenciamento de decisões é um processo recente, datável da 2ª Guerra Mundial.

Como parte do esforço de guerra, foram desenvolvidas experiências que consistiam em propor problemas operacionais bélicos a grupos integrados por especialistas em domínios de conhecimentos diversificados, desde agrimensores a neurologistas, de físicos a engenheiros, de estatísticos a médicos, e assim por diante. De um modo geral, esses técnicos eram pessoas de notório saber, mas distantes do dia-a-dia militar. Portanto, a ação de tais grupos não consistia em fazer guerra, mas fazer pesquisa com fundamentos científicos, destinada a orientar ações militares. Essa modalidade metodológica foi, mais tarde, denominada de Pesquisa Operacional e abreviada por PO. (Pizzolato, 2004)

Em estudos de Pesquisa Operacional, o uso de modelos faz parte de sua própria essência. Trata-se de um recurso adotado para problemas complexos que desafiam a criatividade humana. Parte-se do princípio que, se o problema é simples, não são necessários muitos estudos para sua solução, basta usar a experiência, a intuição, o saber comum etc. À medida em que a complexidade do problema torna-se crescente, sua solução pode ultrapassar o ambiente local, mas podem existir especialistas capazes de resolvê-lo; logo, o mais apropriado e pragmático seria a convocação destes. Entretanto, há problemas cujo grau de dificuldade ultrapassa as limitações da mente humana, sendo impensável a possibilidade de identificar-se um técnico com a capacidade ou competência para dar uma solução satisfatória. Assim, em casos associados a problemas de alta complexidade, mas com elevado potencial de retorno do investimento, justifica-se a contratação de uma equipe, a mobilização dos recursos necessários e o desenvolvimento de um projeto de Pesquisa Operacional. Estudos desse tipo envolvem a construção de um modelo, que simplifica a realidade, porém preservando as relações essenciais de causa e efeito sobre o problema. Cria-se, portanto, um modelo simbólico, usando-se relações matemáticas que descrevem o problema em estudo. A Figura 1 ilustra o procedimento. (Pizzolato, 2004)

6

Pode-se dizer que, ao se construir um modelo, passa-se do mundo real ao virtual, mediante simplificações que viabilizam essa elaboração conceitual e sua avaliação subseqüente. O processo de construção de um modelo exige a mobilização de uma equipe que deve: avaliar a natureza do problema; interrogar pessoas envolvidas; levantar dados; identificar o problema e o que constitui a sua essência; entender relações de causa e efeito etc. Essa etapa compõe a fase inicial da metodologia e pode ser extremamente instrutiva em si mesma, na medida em que ela envolve uma radiografia descritiva do problema. Essa radiografia poderá salientar aspectos correntemente desprezados, assim como elementos indevidamente valorizados, tanto do problema em si, como dos procedimentos em uso.

Em uma fase posterior, o modelo deverá ser resolvido e sua solução validada. Validar significa avaliar se a solução do modelo corresponde, de fato, a uma solução consistente. A questão deve ser colocada porque, diante das simplificações adotadas, alguma relação importante pode ter sido ignorada ou alguma variável de decisão esquecida. Igualmente, a validação permite detectar o uso de dados numéricos equivocados. A validação pode ser feita de vários modos, em função do problema em estudo, mas, basicamente, consiste em comparar as decisões correntes com as decisões determinadas pelo modelo, como também avaliar com espírito crítico o significado prático das soluções propostas. Nesse processo de validação, os ganhos potenciais decorrentes da implementação das decisões sugeridas pelo modelo podem ser quantificados.

Caso a solução do modelo não passe nos testes de validação, deve-se rever as hipóteses, o modelo adotado, ou os dados utilizados. Esse processo de alterar e testar prossegue até a validação efetiva do modelo. A partir desse ponto o modelo passa a ser considerado útil e as decisões por ele preconizadas estarão em condições de serem implementadas.

O maior atrativo de um modelo é em situações que vão se repetir no futuro, como é o caso de gerenciar a operação cotidiana de um sistema, objeto de revisões periódicas. Um exemplo desse caso seria o problema de uma fábrica de rações animais que, como apontado por Lóss (1981), propiciou a primeira aplicação prática da PO no Brasil, efetuada pelo Professor Rui Leme no início dos anos 60. O modelo busca selecionar os possíveis ingredientes das rações de modo a minimizar os custos das matérias-primas adquiridas, mas sem prejuízo da qualidade desejada do produto. A existência de um modelo bem ajustado permite, semanalmente, a seleção mais econômica dos ingredientes comprados. Obviamente, o esforço e o custo em elaborar o modelo serão distribuídos por todas as vezes que o modelo voltar a ser aplicado.

No caso alternativo de um projeto elaborado com um propósito único, sem similar previsível, o custo de elaboração do modelo poderá não ter retorno econômico. Seria o caso de um modelo em que somente os custos do projeto sejam considerados e não os custos de sua operação. Nesse caso, seu atrativo pode ser menor e não ser justificável em termos econômicos, mas podendo, entretanto, ter um interesse acadêmico relevante, como demonstração de erudição acadêmica. Exemplo desse caso poderia ser o projeto estrutural de uma viga em balanço, ou do dimensionamento de um reservatório, em que se busca

7

minimizar o peso, o custo ou o emprego de material. Nesses caso, os ganhos do estudo se manifestarão uma única vez. (Pizzolato, 2004)

1.2- A METODOLOGIA DA PODiante do exposto, e obedecendo ao esquema sugerido pela Figura 1, um projeto de

Pesquisa Operacional pode ser decomposto em cinco estágios ou etapas, a saber:

1. Identificação do problema;2. Construção do modelo;3. Determinação da solução do modelo;4. Teste e validação da solução proposta;5. Implementação da solução.

Aplicações Práticas1

Caso 1: Produção de Rações.Entre rações para frangos, galinhas, suínos, bovinos, eqüinos, peixes, camarões, coelhos, avestruzes, codornas, animais domésticos etc, todo produtor de rações tende a manter ampla linha de produtos. O grande desafio é ter qualidade e baixos custos, pois o criador também pode produzir suas próprias rações. Com isso, sabe-se que todo produtor de rações dispõe de um modelo de otimização, única forma de reduzir custos e garantir qualidade. Assim, a função objetivo consiste em minimizar custos, enquanto que as restrições estabelecem qualidade de acordo com as características nutricionais apropriadas. Suponha que o produtor produza R tipos de rações e considere M tipos de insumos, desde derivados de produtos agrícolas até suplementos naturais e sintéticos. As variáveis de decisão indicarão a quantidade de cada insumo a ser aplicado em cada ração. O modelo exige um bloco de restrições para garantir a quantidade e a qualidade de cada tipo de ração R. Tipicamente, esse modelo possui um grande número de restrições. A validação da solução é um processo continuado de aperfeiçoamento do modelo do qual nenhum produtor pode prescindir. Certamente, a fase de validação e a implementação são mais relevantes no estágio preliminar de teste da metodologia.

Caso 2: Comercialização de Petróleo.O mercado spot de petróleo corresponde a um mercado onde qualquer empresa do ramo oferece lotes de petróleo de um dado tipo, a um certo preço e determinada data de entrega. Como todos atores do ramo tomam conhecimento da oferta ao mesmo tempo, a decisão de comprar deve ser tomada rapidamente. Para tanto, muitas empresas, inclusive a Petrobrás, desenvolveram modelos matemáticos que avaliam a vantagem econômica da compra. Além de recomendar ou não a compra, o modelo pode sugerir que, caso o lote seja adquirido, um outro lote de petróleo, disponível em certa data futura, deixou de ser interessante e deve ser oferecido no mesmo mercado spot. Trata-se de um modelo que pode oferecer imensas reduções de custo para a empresa. A validação de um modelo desse tipo consiste em acompanhar e medir, a posteriori, a qualidade das decisões tomadas pelo modelo. Esse 1 Casos retirados do livro 2ª Edição do Professor Nélio D. Pizzolato que está em fase de edição.

8

modelo foi útil na época que a empresa era grande importadora, declinando hoje a sua importância.

Caso 3: Localização de Escolas.Esse tema tem sido objeto de muito interesse, tanto teórico como prático em vários países. Uma variante mais simples do problema consiste em avaliar a atual localização das escolas. Para essa, os cinco estágios poderiam ser assim descritos: (i) Formulação do problema: a atual localização das escolas, com suas atuais capacidades, é satisfatória?; (ii) Construção do modelo: baseia-se em duas simplificações: primeiro, a distribuição da população é discretizada em setores censitários, como definidos pelo IBGE, e toda a população habita um ponto central do setor denominado centróide e, segundo, todo aluno prefere a escola mais próxima de sua residência; (iii) Solução: usando recursos aritméticos elementares, o modelo identifica para cada centróide a escola mais próxima, determinando a demanda por cada escola e compara esta com sua capacidade, apontando escassez ou excesso de vagas; (iv) Validação: consiste em visitar as escolas e a região, confirmar a demanda prevista pelo modelo e constatar se a escassez ou excesso estão de acordo com a percepção local; e (v) Implementação: uma vez validado, o modelo passa a ser considerado útil e sua implementação consiste em tomar as medidas apropriadas, como ampliar algumas escolas, reduzir a capacidade de outras e, eventualmente, propor a construção de novas.

1.3- O MODELO DE PROGRAMAÇÃO LINEARAtualmente, na Engenharia de Produção, um dos grandes desafios para o

profissional desta área é usar com maior eficiência possível os recursos disponíveis para serem alcançados objetivos estabelecidos, isto conduz aos problemas de otimização denominados “Problemas de Programação”. Os Problemas de Programação tratam de determinar distribuições ótimas de recursos limitados (mão-de-obra, matéria-prima, máquinas, etc.) para satisfazer objetivos dados (maximizar ou minimizar alguma quantidade numérica, tal como um lucro ou custo).

Um Problema de Programação é dito “Problema de Programação Linear” quando o objetivo a ser alcançado e as limitações dos recursos (restrições) são expressas como funções matemáticas lineares. Uma vez obtido o modelo linear, constituído pela função objetivo (linear) e pelas restrições (lineares), os algoritmos matemáticos da programação linear se incubem de processar a escolha da solução ótima, ou seja, uma solução que satisfaça simultaneamente todas as restrições do problema e otimize a FO.

O problema geral da Programação Linear pode ser descrito da seguinte forma: Dado um conjunto de “m” desigualdades ou equações lineares em “n” variáveis, queremos determinar valores não-negativos dessas variáveis que satisfarão as restrições e maximizarão ou minimizarão alguma função linear das variáveis. Matematicamente, temos:

Max (ou Min) Z= C1 x1 + C2 x2 + ...+ Cn xn

Sujeito aai1 x1 + ai2 x2 + ...+ ain xn bi , para i=1,2, ..., m

xj ≥ 0 , para j = 1,2,...,n

9

≤=≥

onde para cada restrição um e somente um dos sinais ≥ , = , ≤ vale, mas o sinal varia de uma restrição para outra.

Na construção do modelo matemático, no caso um modelo linear, não há regra fixa para esse trabalho, mas podemos sugerir um roteiro que ajuda a ordenar o raciocínio.Roteiro:

a) Quais as variáveis de decisão?Aqui o trabalho consiste em explicitar as decisões que devem ser tomadas e

representar as possíveis decisões através de variáveis chamadas variáveis de decisão. Se o problema é de programação da produção, as variáveis de decisão são as quantidades a produzir no período, se for um problema de programação de investimento, as variáveis vão representar as decisões de investimento, isto é, quanto investir em cada oportunidade de investimento, e em que período. Nas descrições sumárias de sistemas, isso fica claro quando lemos a questão proposta, isto é, a pergunta do problema. Normalmente assume-se que todas essas variáveis possam assumir somente valores não-negativos. b) Qual o objetivo?

Aqui devemos identificar o objetivo da tomada de decisão. Eles aparecem geralmente na forma da maximização de lucros ou receitas, minimização de custos, perdas, etc.

A função objetivo é a expressão que calcula o valor do objetivo (lucro, custo, receita, perda, etc.) em função das variáveis de decisão.

c) Quais as restrições? Cada restrição imposta na descrição do sistema deve ser expressa como uma relação

linear (igualdade ou desigualdade), montadas com as variáveis de decisão. Por exemplo, em um problema de programação da produção a disponibilidade de mão-de-obra e de matéria-prima representam restrições do problema que devem ser expressas por uma relação linear com as variáveis de decisão.

É importante enfatizar que todas as expressões mencionadas devem estar de acordo com a hipótese principal da PL, que diz respeito à linearidade propriamente dita, ou seja, todas as relações entre variáveis devem ser lineares. Isso implica a proporcionalidade das contribuições envolvidas (por exemplo, a contribuição individual de cada variável é estritamente proporcional a seu valor), assim como a aditividade dessas contribuições (por exemplo, a contribuição total de todas as variáveis é igual à soma das contribuições individuais, independentemente dos valores das variáveis).

Para facilitar a compreensão da modelagem matemática através da formulação de programação linear vamos introduzir neste ponto uma série de exemplos simples. Nos exemplos que serão apresentados não se deve ter preocupação com a solução dos problemas e sim apenas com sua modelagem, uma vez que este é o objetivo do presente capítulo.Exemplo Inicial:

Uma marcenaria possui 60m2 de madeira e dispõe de 40H.h para mão-de-obra para fabricar mesas e cadeiras, ambos de um só modelo. O processo de produção é tal que, para fazer 1 mesa a marcenaria gasta 7m2 de madeira e 3H.h de mão-de-obra. Para fazer uma

10

cadeira, a marcenaria gasta 4m2 de madeira e 5H.h de mão-de-obra. Os preços de venda da mesa e da cadeira são, respectivamente, R$ 1000,00 e R$ 500,00. Qual é o plano de produção para que a marcenaria maximize o rendimento obtido com as vendas? Construa o modelo de programação linear para esse caso. Solução:

a) Quais as variáveis de decisão?O que deve ser decidido é o plano de produção, isto é, quais as quantidades que devem ser produzidas de mesa e cadeira.

Portanto as variáveis de decisão serão x1 e x2 onde,x1 quantidade de mesa a produzirx2 quantidade de cadeira a produzir

b) Qual o objetivo?O objetivo é maximizar o rendimento obtido com as vendas, que pode ser calculado:

Rendimento devido à venda de mesa:1000 x1 rendimento por unidade de mesa vendida x quantidade de mesa produzida. Rendimento devido à venda de cadeira:500x2rendimento por unidade de cadeira vendida x quantidade de cadeira produzida. Rendimento total obtido com as vendas:Z = 1000 x1 + 500 x2

Objetivo: maximizar Z = 1000 x1 + 500 x2

c) Quais as Restrições?As restrições impostas pelo sistema são:

Disponibilidade de mão-de-obra para a produção: 40 H.h♦Mão-de-obra necessária para produzir mesas:3x1 mão-de-obra necessária para produzir uma mesa x quantidade de mesa produzida.♦Mão-de-obra necessária para produzir cadeiras:5x2 mão-de-obra necessária para produzir uma cadeira x quantidade de cadeira produzida.►Total de mão-de-obra necessária para a produção: 3x1 + 5x2

Resttrição descritiva da situação: 3x1 + 5x2≤ 40

Disponibilidade de madeira para a produção: 60 m2

♦Madeira necessária para produzir mesas:7x1 madeira necessária para produzir uma mesa x quantidade de mesa produzida.♦Madeira necessária para produzir cadeiras:4x2 madeira necessária para produzir uma cadeira x quantidade de cadeira produzida.►Total de madeira necessária para a produção: 7x1 + 4x2

Restrição descritiva da situação: 7x1 + 4x2≤ 60

11

Restrições ImplícitasComo as quantidades a produzir de mesa e cadeira devem ser positivas ou nulas,

temos as seguintes restrições de não-negatividade:x1≥0 quantidade a produzir de mesa deve ser maior ou igual a zero;x2≥0 quantidade a produzir de cadeira deve ser maior ou igual a zero;

RESUMO DO MODELO MATEMÁTICOMax Z= 1000 x1 + 500 x2 (Função Objetivo)Sujeito a

3x1 + 5x2≤ 40 (Restrições técnicas)7x1 + 4x2≤ 60x1 ≥0 (Restrições de não-negatividade)

x2≥0

1.4- EXEMPLOS DE FORMULAÇÃO DE MODELOS

Exemplo 1: Consideremos uma fábrica com três tipos de máquinas A, B e C, que podem produzir quatro produtos 1, 2, 3, 4. Cada um dos produtos tem que passar por alguma operação em cada um dos três tipos de máquinas (máquina de tornear, perfurar e laminar, por exemplo). A tabela abaixo mostra os tempos necessários de cada máquina para fazer a operação em cada produto, o total de funcionamento das máquinas por semana e o lucro obtido sobre a renda de uma unidade de cada um dos produtos. Considera-se que os lucros são diretamente proporcionais ao número de unidades vendidas. Sabendo-se que queremos determinar a produção semanal para cada produto de modo a maximizar os lucros, formule o problema de programação linear.

Produtos Tempo total Tipo de máquina 1 2 3 4 utilizado por semana

A 1,5 1 2,4 1 2000B 1 5 1 3,5 8000C 1,5 3 3,5 1 5000

Unidade de lucro 5,24 7,3 8,54 4,18

Suponha que xj seja o número de unidades do produto j produzidas por semana. Devem então ser calculados os valores de x1, x2, x3 e x4 que maximizem o lucro. Desde que o tempo disponível pela máquina seja limitado, não se pode aumentar arbitrariamente a saída de cada um dos produtos. A produção precisa ser distribuída entre os produtos 1, 2, 3 e 4 de modo que os lucros sejam maximizados sem exceder o número máximo de horas de máquinas disponíveis em cada um dos grupos de máquinas.

Modelo:FOMax Z = 5,24x1 + 7,3x2 + 8,54x3 + 4,18x4 (lucro semanal) S.A..1,5x1 + x2 + 2,4x3 + x4 ≤ 2000 horas (máquina do tipo A) x1 +5 x2 + x3 + 3,5x4 ≤ 8000 horas (máquina do tipo B) 1,5x1 + 3x2 + 3,5x3 + x4 ≤ 5000 horas (máquina do tipo C)

12

x1, x2, x3, x4 ≥0

Exemplo 2: DietaPara uma boa alimentação o corpo necessita de vitaminas e proteínas. A necessidade

mínima de vitaminas é de 32 unidades por dia e a de proteínas é de 36 unidades por dia. Uma pessoa tem disponível carne e ovos para se alimentar. Cada unidade de carne contém 4 unidades de vitaminas e 6 unidades de proteínas. Cada unidade de ovo contém 8 unidades de vitaminas e 6 unidades de proteínas . Qual a quantidade diária de carne e ovos que deve ser consumida para suprir as necessidades de vitaminas e proteínas com o menor custo possível? Sabe-se que cada unidade de carne custa 3 unidades monetárias e cada unidade de ovo custa 1 unidade monetária.Modelo:FOMin Z = 3x1 + x2 (custo) S.A..4x1 + 8x2 ≥ 32 (vitaminas) 6x1 + 6x2 ≥ 36 (proteínas) x1, x2 ≥0

Exemplo 3: Investimentos Financeiros:Seja um investidor que dispõe de $ 10.000 e várias opções de investimento. O investidor pretende maximizar seu capital ao final de um ano, levando em conta os investimentos potenciais. No investimento A cada real aplicado hoje produz uma renda trimestral de $ 0,04 e devolve o principal ao final de um ano. No investimento B cada real aplicado hoje retorna $ 1,40 ao final de um ano. O investimento C estará disponível ao início do 3o trimestre e cada real aplicado retornará $ 1,25 ao final do ano. Sabe-se que qualquer real não investido pode ser mantido em fundos de renda fixa que remuneram o investidor em $ 0,03 por trimestre.

Por outro lado, o investidor deseja diversificar e evitar concentrar suas aplicações no melhor investimento. Assim, nenhuma alternativa deverá aplicar mais do que $ 5.000.Solução:Definindo-se:XA = investimento em A;XB = investimento em B;XC = investimento em C;R1, R2, R3 e R4 = recursos aplicados em fundos de renda fixa no início de cada trimestre correspondente.

Todos esses investimentos podem ser visualizados num eixo horizontal em escala trimestral, onde a seta para baixo indica uma aplicação e a seta para cima o retorno de caixa. O símbolo H registra o horizonte do estudo, ou final do 4o trimestre.

13

Nesse modelo, a função objetivo, equação (0), indica o montante ao final do 4o ano. A restrição (1) indica as três possibilidades de aplicação dos recursos hoje disponíveis, a saber: investimento A, investimento B e conta corrente. A restrição (2) mostra a aplicação em fundos de renda fixa ao início do 2o trimestre, sendo que a disponibilidade de recursos consiste na renda do investimento A mais o investimento R1 acrescido de juros. A restrição (3) representa o 3º trimestre e permite aplicar no investimento C e em fundos de renda fixa, sendo que os recursos disponíveis consistem nos juros do investimento A, mais o investimento R2 acrescido de sua renda. Para o início do 4o trimestre o único investimento possível é R4 e os recursos disponíveis são a renda do investimento A, mais a renda da aplicação em fundos de renda fixa do período anterior. Finalmente, as restrições seguintes referem-se à limitação dos nvestimentos e à não negatividade das variáveis.

Exemplo 4: Modelo de MisturasO dono de um aviário precisa fabricar uma ração especial para as suas galinhas, de

forma a atender às necessidades mínimas. A produção desejada desta ração é de 90 kg e a mistura deve ser formada por dois ingredientes básicos: o milho e o farelo de arroz, que custam $ 0,90 e $ 0,30 por kg respectivamente. Além disso, sabe-se que a ração precisa ter pelo menos 7% de proteína e 3% de fibra na sua composição, de forma a atender as necessidades diárias das aves.

A partir da tabela com a composição porcentual de fibra e proteína do milho e do farelo de arroz, pede-se formular um modelo de Programação Linear para atender as necessidades diárias a um custo mínimo.

14

Composição de cada ingrediente

Solução: As variáveis de decisão do modelo são as seguintes:X1 = quantidade de milho (kg)X2 = quantidade de farelo de arroz (kg)A produção diária da mistura deve ser de 90 kg, ou seja, em termos matemáticos:

Sabe-se também que a mistura deve ter pelo menos 7% de proteína e 3% de fibra. Portanto, a soma das quantidades de proteína de cada ingrediente deve exceder 7% da quantidade total, enquanto que a quantidade de fibra deve ser pelo menos superior a 3%, ou seja:

E, finalmente, o dono do aviário deseja produzir a mistura de forma a gastar o mínimo possível. Assim, o modelo completo seria:

Exemplo 5: Planejamento da ProduçãoDurante os próximos seis meses, o Artesanato Amazônia Ltda. deve atender os

seguintes compromissos de sua seção de malharia:

Jan. 4.000 peças Abr. 1.000 peçasFev. 2.000 peças Mai. 4.000 peçasMar. 5.000 peças Jun. 2.000 peças

Ao final de dezembro, há 500 peças em estoque e a empresa só tem capacidade para produzir 3.000 peças mensais. Entretanto, usando horas-extras, a empresa pode produzir até 600 peças a mais que sua capacidade nominal.

O custo variável de produzir uma peça é de $ 3 por peça e o custo de produzir em horas extras é de $ 3,40 por peça. Além disso, peças que ficam em estoque de um mês para outro provocam um custo aproximado de $ 0,25 por peça.

Pede-se um modelo de Programação Linear que satisfaça a demanda, mas minimizando os custos de produção.

Solução: Defina Xt , Yt e It ,para t =1,2,...6, para indicarem respectivamente a produção regular,em horas-extras e o estoque ao final do mês t.

15

Exemplo 6: Processos QuímicosA empresa Petro dispõe de duas fontes de petróleo bruto, denominadas Óleo A e Óleo

B, vendidos em barris (bbl), que ela pode adquirir para processamento. O Óleo A custa $ 28,00/bbl e o Óleo B $ 22,00/bbl, sendo que as quantidades disponíveis são de 10.000 bbl/dia e 7.000 bbl/dia respectivamente.

Esses óleos podem passar por dois processos sucessivos, nos quais não há perdas em volume: primeiro uma destilação que agrupa os óleos em suas frações leves e pesadas, as quais podem ser vendidas ou processadas novamente. O segundo processo é um craqueamento que ostransforma em dois produtos finais: gasolina e diesel. As Tabelas abaixo indicam as proporções resultantes dos dois processos.

% das frações por tipo de óleo % de gasolina e diesel por fração

Sabe-se que as frações leves podem ser vendidas por $ 20/bbl e as pesadas por $ 27/bbl; a gasolina é vendida por $ 35/bbl, enquanto que o diesel é vendido por $ 30/bbl.

Solução:As variáveis de decisão são as seguintes:OLEOA = óleo do tipo A comprado;OLEOB = óleo do tipo B comprado;FLEVE = frações leves produzidas;FPESADA = frações pesadas produzidas;LVENDIDA = volume das frações leves vendidas;PVENDIDA = volume das frações pesadas vendidas;LCRACK = volume das frações leves craqueadas;PCRACK = volume das frações pesadas craqueadas;GASOLINA = volume de gasolina produzido;DIESEL = volume de diesel produzido

O inter-relacionamento das varáveis anteriores pode ser melhor visualizado por um diagrama.

16

Com as variáveis de decisão acima, o modelo torna-se:

O modelo acima tem 10 variáveis e 8 equações. Pode-se notar que duas variáveis podem ser suprimidas, a saber: FLEVE e FPESADA, o que reduziria o sistema em duas variáveis e duas equações, mas esta redução não é obrigatória, além de obscurecer as relações descritivas. Para resolver o sistema, deve-se escrever todas as variáveis do lado esquerdo, com os segundos membros iguais a zero.

Exemplo 7: A Companhia Veloz deseja determinar quantas unidades produzir durante os meses de junho, julho, agosto e setembro, meses de pico de demanda, para um de seus produtos líderes. Ela dispõe dos seguintes dados:

Junho Julho Agosto SetembroDemanda prevista 800 1.000 900 800Capacidade produtiva Regular 700 700 700 700 Horas extras 50 50 50 50 Subcontratação 150 150 130 120Estoque inicial em junho 100 unidadesCustos de produção Normal $ 40,00/unidade Horas extras $ 50,00/unidade Subcontratação $ 70,00/unidade Manutenção do estoque $ 2,00/unidade/mês

Solução

Definição das variáveis de decisãox11 – quanto produzir em junho – horas normaisx12 – quanto produzir em junho – horas extrasx13 – quanto produzir em junho – subcontrataçõesx21 – quanto produzir em julho – horas normaisx22 – quanto produzir em julho – horas extras

17

x23 – quanto produzir em julho – subcontrataçõesx31 – quanto produzir em agosto – horas normaisx32 – quanto produzir em agosto – horas extrasx33 – quanto produzir em agosto – subcontrataçõesx41 – quanto produzir em setembro – horas normaisx42 – quanto produzir em setembro – horas extrasx43 – quanto produzir em setembro – subcontratações

O custo de manutenção dos estoques em junho será:EMjun x $2,00/unidade x mês e EMjun= (EI)jun + (EF)jun

2Sabe-se ainda que:Como P = D+EF-EI, teremos EF= EI+P-D P = Produção

EF= Estoque FinalEI = Estoque Inicial

A tabela a seguir auxilia o cálculo:Mês EI Produção Demanda EFJunho 100 x11+ x12+ x13 800 x11+ x12+ x13-700Julho x11+ x12+ x13-700 x21+ x22+ x23 1.000 x11+ x12+ x13+

x21+ x22+ x23- 1.700Agosto x11+ x12+ x13+

x21+ x22+ x23- 1.700x31+ x32+ x33 900 x11+ x12+ x13+

x21+ x22+ x23 +x31+ x32+ x33 –2.600

Setembro x11+ x12+ x13+ x21+ x22+ x23 +x31+ x32+ x33 –2.600

x41+ x42+ x43 800 x11+ x12+ x13+ x21+ x22+ x23 +x31+ x32+ x33 +x41+ x42+ x43 –3.400

Custo do EstoqueO custo mensal do estoque é:Cjun=(EI)jun + (EF)jun x $2,00/unidade x mês 2Somando-se para os quatro meses, tem-se:Cestoque= ½ (EIjun+EFjun+ EIjul+EFjul+ EIago+EFago+ EIset+EFset) x $2,00

Como EFjun= EIjul etc.Cestoque= ½ (EIjun+2EIjun+ 2EIago+2EIset+EFset) x $2,00 = EIjun+2EIjun+ 2EIago+2EIset+EFset

Substituindo-se pelas expressões da tabela anterior tem-se:Cestoque=100 + 2(x11+ x12+ x13-700)+ 2(x11+ x12+ x13+ x21+ x22+ x23- 1.700) ++ 2(x11+ x12+ x13+ x21+ x22+ x23 +x31+ x32+ x33 –2.600) + (x11+ x12+ x13+ x21+ x22+ x23 +x31+ x32+ x33 +x41+ x42+ x43 –3.400)

Deduzindo-se tem-se:Cestoque= 7x11+ 7x12+ 7x13+ 5x21+5x22 + 5x23 + 3x31+ 3x32+ 3x33 +x41+ x42+ x43 –13.300

18

Custo de ProduçãoCprodução = 40(x11+ x21+ x31+ x41) + 50(x12+ x22+ x32+ x42)+ 70(x13+ x23+ x33+ x43)

Custo TotalCtotal= Cprodução+Cestoque

Após a redução, tem-se:F.O. = Ctotal =47x11+ 57x12+77x13+ 45x21+55x22 + 75x23 + 43x31+ 53x32+ 73x33 +

+41x41+51x42+ 71x43 –13.300

Função Objetivo

MIN Ctotal =47x11+ 57x12+77x13+ 45x21+55x22 + 75x23 + 43x31+ 53x32+ 73x33 ++41x41+51x42+ 71x43 –13.300

RestriçõesO EF deve ser maior ou igual a zero.x11+ x12+ x13-7000oux11+ x12+ x13 700x11+ x12+ x13+ x21+ x22+ x23 1.700x11+ x12+ x13+ x21+ x22+ x23 +x31+ x32+ x33 2.600x11+ x12+ x13+ x21+ x22+ x23 +x31+ x32+ x33 +x41+ x42+ x43 3.400

x11700x1250x13150x21700x2250x23150

Exemplo 8: Ver ANEXO 1- ESTUDO DE CASO

1.5- PROBLEMAS PROPOSTOS

PROBLEMA 01

Um carpinteiro possui 6 peças de madeira e dispõe de 28 horas de trabalho para confeccionar biombos ornamentais. Dois modelos venderam muito bem no passado, de maneira que ele se limitou a esses dois tipos. Ele estima que o modelo I requer 2 peças de madeira e 7 h de trabalho, enquanto o modelo II necessita de 1 peça de madeira e 8 horas de trabalho. Os preços de venda são, respectivamente, R$ 220,00 e R$ 105,00. Faça um modelo linear que ajude o carpinteiro a decidir quantos biombos de cada modelo devem ser confeccionados se desejar maximizar o rendimento obtido com as vendas.

19

x31700x3250x33 130x41700x4250x43120

x110x120x130x210x220x230

x310x320x33 0x410x420x430

A solução do sistema, com a utilização do software LINDO, leva à seguinte solução: Mínimo custo = $ 150.380,00Variáveis: x11=700 x12=50x13=70 x21 =700 x22= 50 x23=150 x31

=700 x32=50x33 =130 x41=700 x42=50 x43=50

PROBLEMA 02

Seja uma máquina de fazer copos com dois moldes diferentes. Com o primeiro deles são fabricados 100 caixas de copos para suco em 6 hs; com o segundo, são fabricadas 100 caixas de copos para coquetel em 5 hs. A máquina opera 60 hs por semana e a capacidade do depósito é de 15.000 m3. Uma caixa de copos para suco mede 10 m3; uma caixa de copos para coquetel mede 20 m3. O lucro pela venda de uma caixa de copo é de $5(copos para suco) e de $4.5(copos para coquetel). O único freguês disponível não aceita comprar mais de 800 caixas por semana de copos para suco e compra tudo que for produzido de copos para coquetel. Formule um modelo linear para ajudar o fabricante a decidir quantas caixas por semana de cada tipo de copo devem ser produzidas para maximizar o lucro.

PROBLEMA 03

Um fazendeiro está estudando a divisão de sua propriedade nas seguintes atividades produtivas:A(Arrendamento)–Destinar certa quantidade de alqueires para a plantação de cana-de-açúcar, a uma usina local, que se encarrega da atividade e paga pelo aluguel da terra $300,00 por alqueire por ano.P (Pecuária)- Usar outra parte para a criação de gado de corte. A recuperação das pastagens requer adubação (100Kg/Alq) e irrigação (100.000 litros de água/Alq) por ano. O lucro estimado nessa atividade é de $ 400,00 por alqueire por ano.S(Plantio de Soja)- Usar uma terceira parte para o plantio de soja. Essa cultura requer 200Kg por alqueire de adubos e 200.000 litros de água/Alq para irrigação por ano. O lucro estimado nessa atividade é de $500,00/ alqueire no ano.Disponibilidade de recursos por ano:12.750.000 litros de água14.000 Kg de adubo100 alqueires de terraQuantos alqueires deverá destinar a cada atividade para proporcionar o melhor retorno? Construa o modelo de decisão.

PROBLEMA 04

O açougue de um povoado prepara tradicionalmente suas almôndegas, misturando carne bovina magra e carne de porco. A carne bovina contém 80% de carne e 20% de gordura e custa R$0,80 o Kg; a carne de porco contém 68% de carne e 32% de gordura e custa R$0,60 o Kg. Quanto de carne bovina e quanto de carne de porco deve o açougue utilizar por Kg de almôndegas se desejar minimizar seu custo e conservar o teor de gordura da almôndega não superior a 25%?

PROBLEMA 05

Um fazendeiro está criando porcos para vender e deseja determinar as quantidades dos tipos de alimentos disponíveis que devem ser dadas a cada porco para atingir certos requerimentos nutricionais, a um custo mínimo. O número de unidades de cada tipo de ingrediente nutricional básico contido em um quilograma de cada tipo de alimento é dado na tabela que segue, juntamente com os requerimentos nutricionais diários e custos dos alimentos. Construa um modelo que ajude o fazendeiro a decidir a alimentação ideal a se recomendada aos porcos.Ingredientes Nutricionais

Milho Tancagem Alfava Requerimento mínimo diário (g/Kg de ração)

Carboidratos(g/Kg)Proteínas (g/Kg)Vitaminas (g/Kg)

903010

208020

406060

200180150

Custos ($/Kg) 21 18 15

20

PROBLEMA 06

Uma excurcionista planeja fazer uma viagem acampando. Há cinco itens que a excurcionista deseja levar consigo, mas estes, juntos, excedem o limite de 60 Kg que ela supõem ser capaz de carregar. Para ajudar a si própria no processo de seleção ela atribuiu valores, por ordem crescente de importância, a cada um dos itens segundo a tabela.Item 1 2 3 4 5Peso (Kg) 52 23 35 15 7Valor 100 60 70 15 15Faça um modelo linear para o problema para ajudar a excurcionista a decidir que itens devem ser conduzidos de forma a maximizar o valor total e sem exceder as restrições de peso.

PROBLEMA 07

Suponhamos que possuímos barras de 6 m de comprimento que devem ser convenientemente cortadas para obtermos barras menores, nos seguintes tamanhos:50 barras de 2m60 barras de 3m90 barras de 4 mDesenvolva um modelo linear que determine como deverão ser os cortes de forma a minimizar as perdas.

PROBLEMA 08

Uma agencia de correios requer números diferentes de empregados em dias diferentes da semana. O número de empregados em horário integral necessários em cada dia é dado na tabela abaixo. As regras do sindicato estabelecem que cada empregado em horário integral deve trabalhar cinco dias consecutivos, e então receber dois dias livres. A agência de correios quer satisfazer as suas necessidades diárias usando apenas empregados em horário integral. Formule um programa linear que a agência possa usar para minimizar o número de empregados em horário integral que deve ser contratado.

No de EmpregadosDia 1 = Segunda Feira 17Dia 2 = Terça feira 13Dia 3 = Quarta Feira 15Dia 4 = Quinta Feira 19Dia 5 = Sexta feira 14Dia 6 = Sábado 16Dia 7 = Domingo 11

1.6- SOLUÇÃO GRÁFICA

Os problemas de programação linear que envolvem apenas duas variáveis podem ser resolvidos graficamente. A interpretação geométrica dos problemas de programação linear é muito importante uma vez que o exame dos tipos de negócio que podem ocorrer em casos simples envolvendo somente duas variáveis fornece um vasto aprofundamento no que pode ocorrer em um caso mais geral com qualquer número de variáveis.

De início, vamos achar uma interpretação geométrica e a solução para o seguinte problema de programação linear.

21

Observação: Para formular este problema corretamente é preciso perceber que a decisão a ser feita não é o número de empregados que trabalha em cada dia, e sim o número de empregados que começa a trabalhar em cada dia da semana.

(1)

Max Devemos achar, primeiramente, os conjuntos de números (x1, x2), que são soluções viáveis para o problema. Introduzimos um sistema de coordenada x1x2 e notamos que qualquer conjunto de números (x1, x2) é um ponto no plano x1x2. Todos os pontos (x1, x2) que se encontram à direita ou no eixo x2 têm . Igualmente, todos os pontos que se encontram acima do eixo x1 têm . Segue-se que qualquer ponto que se encontrar no primeiro

quadrante tem e assim satisfaz às restrições não-negativas. Qualquer ponto que for uma solução viável deve-se encontrar no primeiro quadrante.

Para determinar o conjunto de pontos do primeiro quadrante que satisfaça às restrições, devemos interpretar geometricamente inequações tais como . Se

o sinal de igualdade vingar, isto é, , temos a equação para uma linha reta, e qualquer ponto na linha reta que satisfaça a equação. Considere agora o ponto (0,0), isto é, a origem. Observamos que 3(0) + 5(0) = 0 < 15, tal que a origem também satisfaz a inequação. De fato, qualquer ponto que se encontre abaixo ou na linha

satisfaz . Entretanto, nenhum ponto que se encontre acima da linha satisfaz

a inequação. Sendo assim, o conjunto de pontos que satisfaz a inequação consiste em todos os pontos no plano x1x2 que se encontram abaixo ou na linha

. Os pontos que satisfazem as restrições não-negativas e estas inequações são todos os pontos do primeiro quadrante que se encontram abaixo ou sobre a linha

. Precisamente da mesma maneira, vemos que todos os pontos que

satisfazem e as restrições não-negativas são todos os pontos do primeiro

quadrante abaixo sobre a linha

Fig. 1.1

O conjunto de pontos que satisfazem tanto como , assim como as restrições não-negativas, é o conjunto de pontos na região sombreada da Fig.1.1.

22

Qualquer ponto nesta região é uma solução viável, e somente os pontos nesta região são soluções viáveis.

Ainda não dissemos nada sobre a função objetivo. Para resolver o problema de programação linear, devemos achar o ponto, ou pontos, na região de soluções viáveis que dêem o maior valor da função objetivo. Agora para qualquer valor fixo de z, é uma linha reta. Qualquer ponto nesta linha dará o mesmo valor de z. Para cada valor de z diferente, obtemos uma linha diferente. É importante notar que todas as linhas que correspondem a diferentes valores de z são paralelas. Isto acontece porque a inclinação de

qualquer linha é e independente de z. Em nosso problema, c1,c2

são fixos e as linhas, paralelas.Devemos agora ser capazes de ver a solução de um problema. Queremos achar a

linha com o maior valor de z que tem pelo menos um ponto em comum com a região de soluções viáveis. As linhas paralelas na Fig.1.1 representam a função objetivo para os três valores diferentes de z. É claro que z1 não é o valor máximo de z, pois a linha pode ser movida para cima, aumentando, em conseqüência, z, enquanto alguns de seus pontos ainda estão na região das soluções viáveis. Por outro lado, embora z3>z2 e z1, a linha correspondente a z3 não tem nenhum ponto em comum com a região de soluções viáveis; em conseqüência, nenhuma solução viável pode levar a um valor tão grande de z. Vemos assim que z2 é o valor máximo de z, e a solução viável que nos leva a esse valor de z é o canto A da região de soluções viáveis.

A figura mostra que os valores das variáveis para a solução ótima são aproximadamente x1 = 1, x2 = 2,4. Para determinar os valores exatos, notamos que o ponto que representa a solução ótima é a interseção das linhas e . Resolvendo estas duas equações simultaneamente, achamos que x1 = 1,053 e x2 = 2,368. A substituição desses valores na função objetivo mostra que o valor máximo do z é 12,37.

23

x2

x1

A

B

0

Z1 Z2 Z3

Fig. 1.2

Vamos considerar agora o problema:

(2)

Max Este problema é o mesmo que o que acabou de ser resolvido, exceto para uma função objetivo levemente diferente. A região de soluções viáveis é a mesma que a para o problema anterior. A Fig. 1.2 mostra as linhas da função objetivo de (2) para três valores diferentes de Z.

Obviamente, Z2 é o valor máximo do Z. Agora, entretanto, a linha que representa a função objetivo se encontra ao longo de um dos lados do polígono de soluções viáveis. Isto significa que não há valores únicos de x1,x2 que maximizem Z; qualquer ponto do lado AB do polígono dá a solução ótima de Z.. Note que o canto que era ótimo para o problema prévio e também ótimo para este problema. Usando estes valores de x1,x2, achamos que Max Z = 5,0. Para este problema, duas extremidades, assim como qualquer ponto sobre a linha que liga estes dois pontos, são soluções ótimas. Quando um problema de programação linear tem mais de uma solução ótima, dizemos que há uma alternativa ótima; fisicamente, isto significa que os recursos podem ser combinados de mais de uma maneira para maximizar o lucro.

24

x2

x1

Z1

Z2

Z3

0

A1

Fig 1.3

Como um exemplo de um problema para o qual a função objetivo será considerada minimizada:

(3)

Min A interpretação geométrica do problema é dada na Fig. 1.3

O valor mínimo de Z é Z2. Este mínimo é achado em um ponto único, o ponto de interseção A das linhas e . Resolvendo estas duas equações

simultaneamente, vemos que a solução ótima é , e Min Z = 4.

Os problemas de programação linear envolvendo três variáveis também podem ser apresentados geometricamente; entretanto, sua solução gráfica é mais difícil. Como ilustração, vamos resolver graficamente o seguinte problema em três variáveis:

(4)

Max

A região que representa as soluções viáveis é o poliedro sombreado na figura 1.4. recordemos que uma equação em três variáveis, tal como 4x1+6x2+3x3=24, é um plano. Quando o sinal de igualdade é substituído por uma inequação (<), o conjunto de pontos que satisfazem esta inequação é a coleção de todos os pontos que se encontram ou acima ou abaixo do plano. O conjunto de pontos (x1,x2,x3) que, quando substituído na função objetivo, leva ao valor dado de z, se encontra no plano z = 0,5x1+6x2+5x3. Quando z varia, obtém-se uma série de planos paralelos. O plano que representa o maior valor de z que tem pelo menos um ponto em comum com a região de soluções viáveis dá o Max Z. O ponto ou pontos da região de soluções viáveis que se encontram neste plano são soluções viáveis.

Fig. 1.4

25

Vê-se que a solução ocorre no vértice A do poliedro de soluções viáveis. Neste ponto, os planos 4x1+6x2+3x3=24 e x1+1,5x2+3x3=12 se interceptam. Entretanto, x1=0 em A. Assim, pela solução simultânea de 6x2+3x2=24 e 1,5x2+3x3=12, x2 e x3 são achados e

; a solução ótima é x1=0; , e Max .

Alguns casos excepcionais:Os exemplos da seção anterior ilustram o que pode ser chamado problemas de

programação linear “bem comportados”.Agora queremos mostrar que há casos excepcionais que precisam ser levados em

consideração se uma técnica geral para solução de problemas de programação linear for desenvolvida.

Vamos estudar o seguinte problema

(5)

Max

A região de soluções viáveis é a região sombreada da Fig. 1.5. As linhas que representam a função objetivo para vários valores de Z são também desenhadas.

26

x2

x1

0Z = 4

Z = 6Z = 10

Fig. 1.5

Encontramos um novo fenômeno. A linha que representa a função objetivo pode ser movida sempre paralela a si mesma na direção de aumento de Z, e ainda tem alguns pontos na região de soluções viáveis. Assim, Z pode aumentar arbitrariamente, e o problema não tem valor máximo do Z. Em tal caso dizemos que o problema tem uma solução ilimitada.

Não esperamos que qualquer problema de programação linear represente alguma situação prática de ter uma solução ilimitada, pois isto implicaria, por exemplo, a viabilidade de um lucro infinito. Entretanto, a limitação de recursos e a impossibilidade de se aumentar os lucros são precisamente as razões para nosso interesse no uso de programação linear. Não obstante, ocasionalmente ocorre um erro na formulação de um problema real que leva a uma solução ilimitada (o autor cometeu tal erro).

x2

Z3

Z2

Z1

Fig. 1.6

x1

0

No exemplo acima, ambas as variáveis podem crescer arbitrariamente quando z aumenta. Entretanto, uma solução ilimitada não implica necessariamente que todas as variáveis possam ser aumentadas arbitrariamente quando z tende ao infinito. Pode-se ver isto na solução do problema

(6)

Max

Este problema é representado graficamente na Fig 1.6.Já notamos que o conjunto de variáveis que maximizam a função objetivo não

precisa ser necessariamente único. Agora veremos que, embora z tenha um valor máximo finito, há soluções que dão este z máximo que tem valores arbitrariamente grandes das variáveis. Isto é ilustrado pelo seguinte exemplo.

27

(7)

Max ,

que está resolvido graficamente na Fig. 1.7. Este problema não é completamente normal, pois há soluções com variáveis arbitrariamente grandes que levam a valores ótimos do Z. O valor máximo do Z é 4. Além disso, qualquer ponto (x1,x2) que se encontre no lado da região de soluções viáveis.

x2

Z2=4

Fig. 1.7Z3

Z1

0 x1

Entretanto, não há nenhuma garantia automática de que todos os problemas da programação linear têm soluções viáveis. O próximo problema, mostrado graficamente na figura 1.8, não tem solução, pois as restrições são incompatíveis:

(8)

Max ,

não há nenhum ponto (x1,x2) que satisfaça ambas as restrições.As restrições podem ser compatíveis e ainda assim não haver solução viável porque

nenhum ponto que satisfaz as restrições também satisfaz as restrições não-negativas. O problema seguinte, ilustrado geometricamente na Fig. 1.9, dá um exemplo de tal caso.

28

(9)

Max ,

x2

Fig. 1.8

o x1

x2

o x1

Fig. 1.9

29

Qualquer ponto na área sombreada satisfaz as restrições inequações. Entretanto, como nenhuma solução tem , não há solução viável.

O leitor não deve achar que os exemplos apresentados nesta seção são de interesse somente hipotético e nunca ocorrem no mundo real. Enquanto realmente não esperamos que qualquer problema prático propriamente formulado exiba tal comportamento, um problema que envolve um grande número de variáveis e restrições dificulta extremamente o estudo da compatibilidade, a existência de uma solução viável, e a certeza da não-existência de uma solução ilimitada. Por causa destas possibilidades de erro na formulação dos problemas, os casos excepcionais discutidos nesta seção podem ocorrer na prática. Assim, a técnica computacional delineada para a solução de um problema de programação linear deve ser o bastante para revelar a existência de uma solução ilimitada ou a ausência de uma solução viável. Seria bem ruim se tivéssemos que averiguar se o problema possui um máximo e um mínimo finitos antes que pudéssemos processar o computador.

30

Capítulo II FUNDAMENTOS MATEMÁTICOS

2.1- MATRIZ

Definição: É um conjunto ordenado de números, de forma retangular, e é escrito no seguinte formato:

a11 a12 a13 ....... a1n

A= a21 a22 a23 ....... a2n

a31 a32 a33 ....... a3n

: : : : : : : :am1 am2 am3 ....... amn

Representação da matriz: A= [ aij ]m x n

ColunaLinha

Representação de um elemento da matriz: aij

Matriz Quadrada: Se m=n (no de linhas = no de colunas) temos uma matriz quadrada de dimensão “n”.

a11 a12 ....... a1n

An= a21 a22 ....... a2n

: : : : : : an1 an2 ....... ann

Diagonal Secundária Diagonal Principal (i+j) = n+1 aij, onde i=j

Matriz Linha e Matriz Coluna: (vetores)

a11 B= [ b11 b12 b13 ....... b1n ]linha

31

Um elemento da matriz

Coluna

Linha

Dimensão da matriz

a21

A=a31

: :am1

coluna

2.2- SISTEMA DE EQUAÇÕES LINEARESEquações Lineares de “n” variáveis:a1 x1 + a2 x2 + a3 x3 + .........+ an xn = bonde a1, a2, a3 ,....., an e b são constantes reais.

Sistema de Equações Lineares: É um conjunto de equações lineares.a11 x1 + a12 x2 + a13 x3 + .........+ a1n xn = b1

a21 x1 + a22 x2 + a23 x3 + .........+ a2n xn = b2

: : : : :am1 x1 + am2 x2 + am3 x3 + .........+ amn xn = bm

onde aij e bk são constantes reais para i,k=1, ....,m e j= 1,...,n

O sistema linear pode ser escrito como uma equação matricial:A X = B

a11 a12 ....... a1n

A= a21 a22 ....... a2n

(mxn) : : : : : : am1 am2 ....... amn

x1 b1

x2 b2

X= : B= :(nx1) : (mx1) :

xn bm

Matriz Aumentada: [A / B]

a11 a12 ....... a1n b1

A= a21 a22 ....... a2 b2

(mxn) : : : : : : : :am1 am2 ....... amn bm

32

Uma forma de resolver um sistema linear, é achar um outro sistema mais simples equivalente ao original. Isso se faz aplicando sucessivamente uma série de operações sobre as equações.

Operações Elementares:

Multiplicar uma equação por um escalar diferente de zero; Somar a uma equação um múltiplo de outra equação.

Exemplo:

2x + 4y + z = 10 x + y = 3 x + 2y = 5

MÉTODO DE GAUSS-JORDAN:1. Colocar na forma de matriz aumentada:

2 4 1 10

1 1 0 31 2 0 5

2. Utilizando as propriedades elementares nas linhas da matriz aumentada, vamos procurar deixar a matriz na forma escalonada reduzida:

Matriz escalonada reduzida:a) Todas as linhas nulas ocorrem abaixo das linhas não nulas;b) O primeiro elemento não nulo de cada linha não nula é igual a 1 (chamado

de pivô);c) O pivô da linha i+1 ocorre à direita do pivô da linha i, para i=1,...,m-1;d) Se uma coluna contém um pivô, então todos os seus outros elementos são

iguais a zero.Obs: Se uma matriz satisfaz as propriedades (a), (b), e (c), mas não necessariamente

(d), dizemos que ela é uma matriz escalonada.

2.3-VETORES NO PLANO E NO ESPAÇOVetor magnitude Representação:

direção sentido

orientação indica a direção e o sentido do vetorcomprimento representa a magnitude do vetorObservações:

Dois vetores são iguais se eles possuem o mesmo comprimento, a mesma direção e o mesmo sentido, mesmo se possuírem origens em pontos diferentes;

Se um vetor W= V diz-se que W é um múltiplo escalar do outro; Dois vetores não nulos são paralelos(ou colineares) se, e somente se, um é múltiplo

escalar do outro.

33

A

B

AB

extremida

origem

Componentes do vetor V no plano:

2.4 - COMBINAÇÃO LINEAR

Definição:Um vetor V do Rn é uma combinação linear dos vetores V1,...,Vk , se a equação vetorial

x1 V1 + x2 V2 +.....+ xk Vk =V

possuir solução, ou seja, se existirem escalares x1, ...., xk que satisfazem a equação acima. Neste caso, dizemos também que V pode ser escrito como uma combinação linear de V1, ..., Vk.

2.5- INDEPENDÊNCIA LINEAR

Definição:Dizemos que um conjunto S={ V1, ..., Vk} de vetores é linearmente independente (L.I.) se a equação vetorial

xo v1

v2 V (v1, v2)

OV

34

y

As coordenadas de V são iguais as componentes de OV

Componentes do vetor V no espaço:

Cada par de eixo determina um plano coordenado. Temos três planos coordenados:XYXZYZ

x

y

z

v3

v1

v2

V= (v1, v2, v3)Componentes de V

x1 V1 + x2 V2 +.....+ xk Vk = 0 só possuir a solução trivial, ou seja, se a única forma de escrever o vetor nulo como combinação linear dos vetores V1, ..., Vk é aquela em que todos os escalares são iguais a zero. Caso contrário, isto é, se a equação acima possuir solução não trivial, dizemos que o conjunto S é linearmente dependente (L.D.).

Observações: Se dois vetores V1 e V2 no R2 são L.D., então um deles é um múltiplo escalar do outro. Portanto, eles são paralelos. E reciprocamente, se eles são L.I., então um não é múltiplo escalar do outro e portanto não são paralelos. Se três vetores V 1, V2 e V3 do R3 são L.D., então um deles é uma combinação linear dos outros dois, ou seja, um deles é uma soma de múltiplos escalares dos outros dois. Portanto, eles são coplanares, isto é, são paralelos a um mesmo plano. E reciprocamente, se eles são L.I., então nenhum deles é combinação linear dos outros dois. Portanto eles não são coplanares.

2.6- SOLUÇÃO BÁSICA VIÁVELVamos supor o seguinte sistema:a11 x1 + a12 x2 + a13 x3 + .........+ a1n xn = b1

a21 x1 + a22 x2 + a23 x3 + .........+ a2n xn = b2

: : : : :am1 x1 + am2 x2 + am3 x3 + .........+ amn xn = bm

Forma Matricial: A X = B

a11 a12 ....... a1n

a21 a22 ....... a2n

: : : : : : am1 am2 ....... amn

Suponhamos que m n e que o posto da matriz P(A)=m (posto da matriz A é o número máximo de colunas L.I. em A).

Obtém-se uma solução básica viável para o sistema acima fazendo-se (n-m) das variáveis “x” iguais a zero e determinando-se uma solução não-negativa para as variáveis “x” restantes, admitindo-se que os “m” vetores correspondentes às variáveis “x”, que não foram igualadas a zero, são L.I.

O conjunto de variáveis, que inicialmente não são feitas iguais a zero, é chamado conjunto de variáveis básicas. Se uma ou mais das variáveis básicas tornarem-se iguais a zero, a solução básica será dita degenerada. Se todas as variáveis básicas forem positivas, a solução básica será dita não-degenerada (factível ou compatível).

2.7- COMBINAÇÃO CONVEXAConsidere um conjunto de vetores V={ V1, V2, ..., Vn } todos pertencentes a Rm

v1

35

x1 b1

x2 = b2

: : : : xn bm

v2

V1= : V={ V1, V2, ..., Vn } Rm

: j , j=1,2,...,n vm

j são constantes reais que satisfazem as relações:1 + 2 + .....+ n = 1j 0 para j= 1,2,...,n

então o vetor b = 1 V1 + 2 V2 +.....+ n Vn é uma combinação convexa dos vetores V1, V2, ..., Vn.

2.8- CONJUNTO CONVEXOUm conjunto X de vetores é convexo se, para dois vetores quaisquer X1, X2 pertencentes ao conjunto, o segmento de reta entre estes vetores também pertence ao conjunto, ou seja, X1 XX2 X

Exemplos Gráficos

Um vetor P é um ponto extremo de um conjunto convexo se não se puder expressá-lo como uma combinação convexa de dois vetores de conjunto, isto é, um ponto extremo não pode estar situado sobre o segmento de reta entre dois outros vetores quaisquer do conjunto. Um ponto extremo é ponto da fronteira do domínio, pois caso contrário, ele estaria entre dois outros pontos quaisquer. Nem todo ponto limite de um conjunto convexo é necessariamente um ponto extremo. Alguns pontos limites podem-se situar entre dois outros pontos limites.

Capítulo IIIMÉTODO SIMPLEX

3.1- INTRODUÇÃO

O Método Simplex é um procedimento geral para resolver um Problema de Programação Linear. Foi desenvolvido em 1947 pelo matemático norte-americano George B. Dantzig e consiste em um método iterativo que percorre os pontos extremos do conjunto de soluções compatíveis do problema. Este método é formado por um grupo de critérios para escolha de soluções básicas que melhorem o desempenho do modelo, e também de um teste de otimalidade.

Para ser iniciado, é necessário se conhecer uma solução compatível básica (chamada solução inicial) do sistema. Posteriormente, é verificado se a presente solução é ótima. Se for, o processo está encerrado. Se não for ótima, é porque um dos pontos

36

Matematicamente o segmento de reta entre X1 e X2 é o conjunto de todas as combinações convexas de X1 e X2. X1 + (1- )X2 X 0 1

extremos adjacentes ao ponto extremo inicialmente adotado fornece para a função objetivo um valor melhor do que o atual. Para melhorar o valor da função objetivo, a mesma deve ser aumentar ou diminuir, conforme o problema seja de maximização ou minimização respectivamente.

O Método Simplex faz então a mudança do ponto inicial para o ponto extremo adjacente que melhore o valor da função objetivo. O procedimento adotado para o ponto extremo inicial é repetido para este segundo ponto extremo. O processo finaliza quando, estando num ponto extremo, todos os pontos extremos a ele adjacentes, fornecem valores piores para a função objetivo.

Algebricamente, um ponto extremo adjacente é uma solução compatível básica incluindo todas as variáveis básicas anteriores, com exceção de apenas uma delas. Achar, portanto, a próxima solução compatível básica (ponto extremo adjacente) exige a escolha de uma variável não-básica para entrar na base em sua substituição.

O Método Simplex compreenderá, portanto, os seguintes passos: 1) Achar uma solução compatível básica inicial.2) Verificar se a solução atual é ótima. Se for, pare. Caso contrário, siga 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.

3.2. TEOREMAS FUNDAMENTAIS DO MÉTODO SIMPLEX

O Método Simplex baseia-se em três teoremas fundamentais:Teorema 1: “O conjunto de todas as soluções compatíveis do modelo de programação linear é um conjunto convexo.”

Teorema 2: “Toda solução compatível básica do sistema Ax=b é um ponto extremo do conjunto das soluções compatíveis”

Teorema 3: a) “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.”

b) “Se a função objetivo assume o máximo (mínimo) em mais de um ponto extremo, então ela toma o mesmo valor para qualquer combinação convexa desses pontos extremos.”

3.3- REDUÇÃO DE UM PROBLEMA DE PROGRAMAÇÃO LINEAR À FORMA PADRÃO

Os modelos de programação linear, para serem devidamente solucionados por intermédio do algoritmo simplex que será apresentado, devem apresentar o seguinte formato padrão:

A função objetivo de maximização (opcional); Todas as variáveis de decisão não-negativas; Constantes do lado direito não-negativas; Restrições de igualdade.Caso isso não aconteça, deve-se procurar um modelo equivalente que possua essas

características, para então usar o simplex.a) Função Objetivo de Minimização

37

A minimização de uma função f(x) é matematicamente análoga à maximização da negativa desta função (-f(x)).Exemplo: MIN z=c1x1+ c2x2+...+ cnxn

É equivalente a:MAX Z = -c1x1- c2x2-...-cnxn

Com z = -ZDessa forma: MIN z = -MAX(-Z)

Essa é uma das formas de resolver os problemas de minimização utilizando o mesmo algoritmo dos problemas de maximização. Caso se queira resolver diretamente, devemos alterar o critério de entrada das variáveis na base.

b) Problema da Variável LivreEntende-se por variável livre as variáveis sem qualquer restrição de sinal, isto é, podem assumir valores positivos, negativos ou zero. Para contornarmos este problema, devemos lembrar que um número qualquer sempre pode ser escrito como a diferença de dois números positivos.

Exemplo: MAX z = x1+2x2+x3

SA x1+x2+x310

2x1+3x220

x1 0 , x2 livre , x3 0

Fazendo x2 = x'2 - x''2, com x'2 0 e x''2 0 e substituindo no modelo anterior, tem-se o modelo equivalente:

MAX z = x1+2(x'2 - x''2)+x3

SA x1+ x'2 - x''2+x310

2x1+3(x'2 - x''2)20

x1 0 , x'2 0, x''2 0, x3 0

Onde todas as variáveis são não-negativas. A solução deste modelo, resolve o anterior.

c) Ocorrência de bi<0Basta multiplicarmos a restrição i por (-1) pois os coeficientes a ij podem ter qualquer sinal.

d) Transformação de Desigualdades em Igualdades Para a utilização do algoritmo simplex é necessário que todas as desigualdades do conjunto de restrições sejam transformadas em igualdade e que se conheça uma solução inicial viável, não- negativa. Na forma padrão, apenas as restrições de não-negatividade (das variáveis) são desigualdades.

Variáveis de Folga e ExcessoOutras restrições de desigualdade são transformadas em equações por meio de variáveis de folga ou de excesso (muitas vezes se fala em variáveis de folga mesmo quando se trata de variáveis de excesso) que são sempre não-negativas.

38

ai1x1 + .... + ainxn bi ai1x1 + .... + ainxn + si = bi

si 0 (folga)ou

ai1x1 + .... + ainxn bi ai1x1 + .... + ainxn - si = bi

si 0 (excesso)

A variável de folga é numericamente igual a diferença entre os valores à direita e à esquerda da desigualdade e representa o desperdício acarretado pela parte do sistema modelada pela restrição em pauta.

A variável de excesso é numericamente igual a diferença entre os valores à esquerda e à direita da desigualdade e representa um excesso das variáveis de entrada nesta parte do sistema modelada pela restrição em pauta.

Geração de Solução Inicial ViávelDepois de serem transformadas todas as restrições lineares (com valores não negativos

nos termos à 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 a fim de formar uma base inicial. Em conseqüência , todas as equações representando as 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 de excesso.

Custos de Penalização (Coeficiente das Variáveis na Função Objetivo)A introdução de variáveis de folga ou excesso não altera a natureza das restrições e

tampouco a função objetivo. Assim tais variáveis são incorporadas a 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. A fim de assegurar tal alocação de valores na solução ótima ( em contraste com a solução inicial), 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 de valores elevados nos problemas de maximização. Estes coeficientes designados por 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.

Nos cálculos manuais os custos de penalização podem ser traduzidos por M. Em cálculos computacionais deve-se atribuir a M um valor numérico, usualmente um número três a quatro vezes maior em magnitude que qualquer outro existente no programa.

Coeficiente das variáveis artificiais na função objetivo +M (problemas de minimização) -M (problemas de maximização)

RESUMO

39

Restriçãotipo

Ajuste narestrição

Ajuste na Função ObjetivoProblema de Maximização Problema de Minimização

≤ Adicionar uma variável de folga (si)

Adicionar variável de folga (si) com coeficiente 0

Adicionar uma variável de folga (si) com coeficiente 0

= Adicionar uma variável artificial (Ai)

Subtrair variável artificial (Ai) com coeficiente M

Adicionar variável artificial (Ai) com coeficiente M

≥ Subtrair uma variável de excesso (si) e adicionar uma variável artificial (Ai)

Adicionar variável de excesso (si) com coeficiente 0 e subtrair variável artificial (Ai) com coeficiente M

Adicionar variável de excesso (si) com coeficiente 0 e adicionar variável artificial (Ai) com coeficiente M

3.4. FORMA CANÔNICA DE UM SISTEMAO método de Gauss-Jordan é um método numérico para solução de sistemas

lineares que explicita os valores de algumas variáveis em função do termo independente e, possivelmente em função de outras variáveis. Se um sistema, como aquele da forma padrão apresentado, contém equações linearmente independentes e tem m n, podemos a partir de uma base qualquer dada, fazer operações com linhas para obter um sistema equivalente com os coeficientes das variáveis básicas iguais a um. Por exemplo suponhamos que as m primeiras colunas do sistema padrão formam uma base (isto é, as m primeiras colunas são LI), então podemos por o sistema (isto é, obter um sistema equivalente) na forma

_ _ _x1 +a1m+1xm+1 + .... + a1nxn = b1

_ _ _ x2 +a2m+1xm+1 + .... + a2nxn = b2

. : : . _: : _ _ xm +amm+1xm+1 + .... + amnxn = bm

onde as barras denotam novos valores para os coeficientes. O sistema acima é então dito ser o sistema da forma padrão na forma canônica em relação à base formada pelas colunas 1,2,...,m. Note que ao fazer xm+1 ,....., xn iguais a zero obtemos diretamente a solução básica.

3.5. CONCEITOS BÁSICOS DO MÉTODO SIMPLEXVamos apresentar a conceituação básica do Método Simplex através de um pequeno

exemplo.

a) Formulação do Problema

Uma marcenaria deseja estabelecer uma programação diária de produção. Atualmente, a oficina faz apenas dois produtos: mesa e armário, ambos de um só modelo. Para efeito de simplificação, vamos considerar que a marcenaria tem limitações em somente dois recursos: madeira e mão-de-obra, cujas disponibilidades diárias são mostradas na tabela a seguir:

RECURSO DISPONIBILIDADEMadeira 12m²

40

Mão-de-obra 8 H.h

O processo de produção é tal que, para fazer 1 mesa a fábrica gasta 2m² de madeira e 2 H.h de mão-de-obra. Para fazer um armário, a fábrica gasta 3m² de madeira e 1 H.h de mão-de-obra.

Além disso, o fabricante sabe que cada mesa dá uma margem de contribuição para o lucro de $4, e cada armário, de $1. O problema do fabricante é encontrar o programa de produção que maximiza a margem de contribuição total para o lucro.

Como se trata de um problema extremamente simples, preparado apenas para demonstração dos fundamentos do Método Simplex, podemos resolvê-lo usando apenas algumas considerações qualitativas. Para isso, inicialmente, vamos criar o modelo de programação linear para o problema proposto.

b) Montagem do ModeloComo variáveis de decisão, vamos considerar

quantidade a produzir de mesa: x1

quantidade a produzir de armário: x2

Com essa definição de variáveis, podemos escrever as relações matemáticas que formam o modelo.

Assim, para a função-objetivo, temos:

Margem de contribuição total Z = 4.x1 + 1.x2

Para as restrições,a relação lógica existente é:

Utilização de recurso Disponibilidade de recurso

Assim, temos:

Para madeira: 12

Utilização de madeira Disponibilidadepara os dois produtos de madeira

Para Mão-de-obra: 8

Utilização da mão-de-obra Disponibilidade para os dois produtos de mão-de-obra

41

O modelo completo é:

c) Solução do Modelo Utilizando Raciocínio Lógico

Inicialmente, vamos observar que o conjunto das restrições forma um sistema de desigualdades lineares e, dessa forma, existem infinitas combinações de valores de x1 e x2

que satisfazem as restrições.

Para descobrirmos aquela que produz o maior valor para o objetivo, vamos partir de um par de valores para x1 e x2 e tentar, através de um raciocínio lógico, encontrar um par de valores que fornece um lucro maior.

Como ponto de partida vamos tomar a seguinte combinação

x1 = 0x2 = 0Z = 0

Que é uma solução possível para o problema é fácil verificar. Obviamente não é a melhor, já que o fabricante nada produz. Porém, vamos observar o seguinte:

Cada mesa que produzirmos aumenta o lucro de $4; Cada armário que produzirmos aumenta o lucro de $1.

Como o objetivo é maximizar o lucro, vamos começar a nossa análise pela produção de mesa, mantendo a produção de armário no nível zero. Em termos matemáticos, isso significa que:

x1 deve ser positiva x2 continua igual a zero.

Bem, com a conclusão acima, precisamos saber agora qual o valor que x1 deve tomar.

Novamente, lembrando que nosso objetivo é maximizar o lucro e já que cada mesa produzida aumenta o lucro de $4, é razoável que procuremos dar a x1 o maior valor possível. Para descobrirmos esse valor, vamos voltar às restrições:

42

Achar x1 e x2, de forma a:

MAXIMIZAR Z = 4.x1 + 1.x2

2.x1 + 3.x2 122.x1 + 1.x2 8x1 0 x2 0

Como x2 = 0, e como queremos o maior valor possível para x1, vamos reescrever as restrições somente em termos de x1:

2.x1 = 122.x1 = 8

Assim, se considerarmos apenas o recurso madeira, poderíamos fazer 6 mesas, ou:

Por outro lado, se considerarmos apenas o recurso de mão-de-obra, poderíamos fazer 4 mesas, ou seja:

Como para fazer uma mesa gastam-se simultaneamente os dois recursos, é evidente que o maior valor possível para x1 é 4, já que não teríamos mão-de-obra suficiente para fazermos 6 mesas.

Concluindo, já temos uma segunda programação da produção que dá um lucro melhor que a primeira:

x1 = 4 mesasx2 = 0 armários

O lucro que se obtém com esta produção é:

Z = 4 x 4 + 1 x 0 = 16

A solução é viável, já que as restrições foram respeitadas:2 x 4 + 3 x 0 = 82 x 4 + 1x 0 = 8

Assim, recapitulando, partimos de uma solução viável ( x1 = 0 e x2 = 0) para outra solução (x1 = 4 e x2 = 0), que dá um lucro maior, usando os seguintes critérios:

Começamos a produção pelo produto que mais contribui para o lucro; nesse caso, a variável que se torna positiva é a que tem maior coeficiente em Z.

Escolhido o produto, sua produção foi estabelecida no maior valor possível, ou seja, deu-se à variável o maior valor positivo possível.

A pergunta que se faz necessária agora é a seguinte: Esta solução encontrada é a melhor de todas ou teremos ainda que encontrar outra?

Para responder a essa pergunta, podemos usar os mesmos critérios anteriores, porém com pequena alteração.

Neste exemplo, seria natural que procurássemos produzir armários, já que seu nível de produção é zero e temos ainda madeira sobrando. No entanto, é importante lembrar que toda a mão-de-obra disponível foi alocada à produção de mesas. Como necessitamos de

43

mão-de-obra para produzir armários, a única forma de conseguirmos isso é através da redução do número de mesas a produzir, de maneira a liberarmos recursos. Conseqüentemente, para podermos produzir armários, duas alterações deverão ser feitas no programa de produção:

O número inicialmente encontrado para a produção de mesas deve diminuir. Isso provoca diminuição do lucro total.

A produção de armários, inicialmente nula, poderá então tornar-se positiva. Isso provoca aumento do lucro total.

Ora, já que temos simultaneamente duas alterações no lucro total, uma redução e um aumento, o nosso primeiro critério pode ser adaptado. Nesse caso, a variável x2 (produção de armários) deverá se tornar positiva se o resultado das modificações no lucro total for positivo.

Ou seja, se:

AUMENTO EM Z PROVOCADO EPLO AUMENTO DE x2

– DIMINUIÇÃO EM Z PROVOCADA PELA DIMINUIÇÃO DE x1

CONTRIBUIÇÃO LÍQUIDA PARA O LUCRO DADA POR x2

A modificação no critério é esta: não se faz positiva a variável apenas porque tem um coeficiente positivo na função-objetivo, mas se sua contribuição líquida, calculada pela expressão anterior, for positiva. vamos calcular isso:

Visto que o recurso totalmente alocado é a mão-de-obra, vamos considerar de novo a segunda equação:

2.x1 + 1.x2 = 8Como o primeiro recurso tem folga, não precisamos nos preocupar com a primeira

equação.Para calcularmos a redução que ocorre em x1, para liberar recursos visando a

aumentar a produção de x2, vamos dar a seguinte variação no valor da variável x2:x2 = 0 passa para x2 = 1

Levando na equação acima:2.x1 + 1 x 1 = 8

donde: = 3,5

Logo, um aumento de 1 na variável x2 exige uma redução de 0,5 no valor da variável x1 (4 – 3,5 = 0,5).

A variação do,lucro L pode ser calculada da seguinte forma:

Variação em Z = 4 x (variação em x1) + 1 x (variação em x2)Logo:

Variação em Z = 4 x (–0,5) + 1 x 1 = –1

44

Ou seja, a contribuição líquida para o lucro, por unidade produzida de armário, é –1. Conseqüentemente, nesse nosso exemplo, não é vantajoso produzir armários, e assim a solução ótima encontrada é:

x1 = 4x2 = 0Z = 16

d) Solução do Modelo por Sistema de Equações LinearesPodemos resolver nosso modelo de programação linear por algum método de resolução de equações lineares. O processo que vamos analisar aqui é bastante intuitivo e tem por finalidade, apenas, apresentar a filosofia básica do Método Simplex, que será mostrado a seguir:

a) Introdução das variáveis de folga

Para transformarmos as desigualdades lineares das restrições em equações lineares, de forma que possam ser aplicados os métodos de solução destas últimas, vamos recordar, conforme já vimos anteriormente, que as restrições do problema têm a seguinte estrutura lógica:

Utilização de recurso Disponibilidade de recurso

Se introduzirmos o conceito de FOLGA DE RECURSO, podemos escrever a relação acima da seguinte forma:

UTILIZAÇÃO + FOLGA = DISPONIBILIDADE

Isso significa que:UTILIZAÇÃO < DISPONIBILIDADE Implica FOLGA > 0UTILIZAÇÃO = DISPONIBILIDADE Implica FOLGA = 0

Assim, a folga de cada recurso pode ser representada por uma variável de forma exatamente igual à produção de cada produto. desse modo, vamos chamar:

x3 = folga de madeirax4 = folga de mão-de-obra

Introduzindo a variável x3 para a primeira desigualdade e x4 para a segunda, temos nosso sistema transformado:

maximizar Z = 4.x1 + 1.x2 + 0.x3 + 0.x4

sujeito a: 2.x1 + 3.x2 + 1.x3 = 12 2.x1 + 1.x2 + + 1.x4 = 8 x1, x2, x3, x4 0

45

Nosso problema se transformou em achar a solução do sistema de equações lineares que maximiza o lucro Z. Como nesse caso o número de incógnitas (n = 4) é superior ao número de equações (m = 2), o sistema de equações é indeterminado, apresentando assim infinitas soluções.

No entanto, como todas as variáveis, incluindo as de folga, devem ser positivas ou nulas, e como, em termos de decisão no problema, atribuir o valor zero a uma variável significa não produzir um dos produtos (se a variável for natural do problema) ou usar toda a disponibilidade de recursos (se a variável for de folga), podemos achar soluções para o sistema de equações dando arbitrariamente valor zero a duas variáveis ( n – m = 4 – 2 = 2) e calculando o valor das outras duas pelo sistema restante;

Temos, dessa forma, que resolver:

sistemas de equações lineares

OBS.: Variando as variáveis feitas zero teremos diferentes soluções básicas. No total teremos:

Uma vez resolvido um sistema, usamos os valores encontrados para as variáveis na função-objetivo, achando assim o lucro L.

As variáveis que tiveram valor atribuído 0 serão chamadas variáveis não-básicas; as variáveis cujos valores foram encontradas pela solução dos sistemas de equações (valores positivos), variáveis básicas e o conjunto das variáveis básicas, base.

b) Solução dos sistemas de equações

1- Variáveis não-básicas: x1 = 0x2 = 0

temos as variáveis básicas:x3 = 12x4 = 8Z = 0

2- Variáveis não-básicas:x1 = 0x3 = 0

temos as variáveis básicas:x2 = 4x4 = 4

dando o lucro: Z = 4

46

3- Variáveis não-básicas:x1 = 0x4 = 0

temos as variáveis básicas: x2 = 8

x3 = –12

Como x3 < 0, a solução obtida é INVIÁVEL.

4- Variáveis não-básicas:x2 = 0x3 = 0

temos as variáveis básicas: x1 = 6x4 = –4

Como x4 < 0, a solução obtida é INVIÁVEL.

5- Variáveis não-básicas:x2 = 0x4 = 0

temos as variáveis básicas:x1 = 4x3 = 4

dando o lucro: Z = 16

6- Variáveis não-básicas:x3 = 0x4 = 0

temos as variáveis básicas:x1 = 3x2 = 2

dando o lucro: Z = 14

Comparando todas as soluções encontradas por esse processo, achamos a mesma solução ótima obtida anteriormente, ou seja:

x1 = 4x2 = 0x3 = 4

x4 = 0 dando um lucro Z = 16

47

Essas seis soluções encontradas podem ser visualizadas em um gráfico, conforme mostra a figura 3.6.As duas soluções inviáveis encontradas (sistemas 3 e 4) correspondem a pontos que se encontram fora da região viável, conforme mostra a figura 3.6.

Sistema 3: 8x1 = 0 X2

x2 = 8 7

6

5Sistema 2:x1 = 0 4x2 = 4

3

2

1

Sistema 1:x1 = 0 0 1 2 3 4 5 6x2 = 0

Sistema 5:x1 = 4x2 = 0

Fig. 3.6. Representação gráfica das soluções obtidas

3.6. DESENVOLVIMENTO DO MÉTODO SIMPLEXA solução algébrica anterior mostrou que a resolução de um problema de

programação linear consiste basicamente em resolver sistemas de equações lineares e calcular o valor da função objetivo. Comparando os diversos valores obtidos para a função objetivo, escolheremos como solução do problema o resultado do sistema de equações que forneceu o maior valor.

Esse procedimento, apesar de correto, é bastante trabalhoso, já que temos de resolver todos os sistemas para podermos escolher o que dá o maior valor para a função objetivo.

Basta um pequeno problema real de programação linear, onde poderíamos ter, por exemplo, 10 equações e 15 variáveis, para inviabilizarmos o processo, já que o número de sistemas de equações que deveríamos resolver seria muito elevado.

Assim, para termos condições de resolver um problema de programação linear, precisamos de uma sistemática que nos diga:

qual o sistema de equações que deve ser resolvido; que o próximo sistema a ser resolvido fornecerá uma solução melhor que os

anteriores;

48

Sistema 6:x1 = 3x2 = 2

Sistema 4:x1 = 6x2 = 0

como identificar uma solução ótima, uma vez que a tenhamos encontrado.

Essa sistemática é o Método Simplex e as regras que o método utiliza para atender às três questões são, basicamente, os critérios que desenvolvemos nos itens anteriores.

Vamos voltar ao nosso pequeno problema, já com as variáveis de folga:

MAX Z= 4x1+ 1x2 + 0x3 + 0x4

S.A. 2x1+ 3x2 + 1x3 = 122x1+ 1x2 + + 1x4 = 8 x1, x2, x3, x4 0

Vamos montar um quadro (tableau) para ordenarmos as operações, colocando nele apenas os coeficientes das variáveis. No caso da função objetivo, vamos realizar a seguinte transformação:de: Z= 4x1+ 1x2

para: -Z + 4x1+ 1x2 = 0

Quadro 1 (Tableau 1)

BASE x1 x2 x3 x4 bi

x3

x4

2 3 1 02 1 0 1

128

-Z 4 1 0 0 0

A última coluna corresponde aos termos independentes das equações, e a última linha contém os coeficientes das variáveis na função objetivo. Nessa última linha teremos sempre a contribuição que cada variável dá para o lucro total Z, por unidade, em cada iteração do processo de solução. Essa última linha será chamada de função objetivo transformada.

Caso se queira reproduzir as equações, basta multiplicar os coeficientes na matriz pelas respectivas variáveis, mostradas acima do quadro.

a)Solução InicialA solução inicial para o problema será sempre obtida fazendo as variáveis originais do

modelo (no caso x1 e x2 ) iguais a zero e achando o valor das demais.Assim, fazendo x1 = x2 =0 (variáveis não-básicas), obtemos do tableau 1 :

x3 =12x4 = 8Z = 0

As variáveis básicas estão indicadas na 1ª coluna do tableau para facilitar o acompanhamento das operações.

b) Segunda solução Como a primeira solução claramente não é a melhor, vamos procurar outra que dê um valor

maior para Z. Para fazermos isso, vamos nos basear no tableau 1, na primeira solução, e aplicar os critérios desenvolvidos no item 5 (Conceitos Básicos do Método Simplex ). Como já foi visto, essa segunda solução também deverá ter duas nulas e duas variáveis positivas. O problema é descobrir:

49

Das duas variáveis básicas(nulas) na primeira solução, qual deverá se tornar positiva? Das duas variáveis básicas (positivas) na primeira solução, qual deverá ser anulada?

Qual variável deverá se tornar positiva?

Vamos observar que na última linha do tableau 1 temos os coeficientes da função objetivo que mostram a contribuição para o lucro Z de cada unidade produzida de mesa (x1) e de armário (x2).

Assim, aplicando o primeiro critério de que devemos produzir primeiro o produto que mais contribui para o lucro, vamos começar a produção pela variável x1, já que sua contribuição unitária para o lucro (4) é maior que a contribuição de x2, igual a (1).

Logo, a variável que deverá se tornar positiva é x1.

Qual variável deverá ser anulada?A resposta a essa pergunta será obtida pela aplicação do 2º critério discutido anteriormente,

onde procuramos descobrir qual o maior valor que podemos atribuir a x1.A partir do Quadro 1, vamos examinar as duas equações, da mesma forma que fizemos

anteriormente, incluindo porém as variáveis de folga.

1ª Equação: 2x1 + 1x3 = 12O maior valor possível para x1 será 6, quando x3 for igual a zero. Observe que um valor maior que esse faria x3 se tornar negativo, o que não é permitido.

2ª Equação: 2x1 + 1x4 = 8O maior valor possível para x1, com base somente nessa equação, será 4, quando x4 for igual a 0.

Analisando simultaneamente as duas equações, percebemos que o maior valor possível para x 1 é 4 e, assim, descobrimos que a variável que se anulará é x4.

Observe que essa análise pode ser feita diretamente no Quadro 1, através da divisão dos elementos da coluna b pelos correspondentes elementos da coluna x1.O menor quociente indica, pela linha em que ocorreu, qual a variável básica que deve ser anulada. Assim, como o menor quociente é dado pela divisão 8/2 =4, a variável básica a ser anulada é x4, que é a variável positiva na atual solução, cujo valor foi encontrado na 2ª linha.

Assim temos: x2 =0x4 = 0

e o sistema restante deve ser resolvido para acharmos o valor de x1 e x3 . A solução desse sistema será feita utilizando o tableau 1 com as equações completas e usando as operações válidas com as linhas da matriz.

1ª operação: dividir a 2ª linha por 2

Tableau 2

BASE x1 x2 x3 x4 bi

x3

x1

2 3 1 01 1/2 0 1/2

124

50

-Z 4 1 0 0 0

2ª operação: multiplicar a 2ª linha nova do tableau 2 por -2 e somar com a 1ª linha do mesmo quadro, colocando o resultado na 1ªlinha.Tableau 3 BASE x1 x2 x3 x4 bi

x3

x1

0 2 1 -11 1/2 0 1/2

44

-Z 4 1 0 0 0

3ª operação: Vamos fazer o mesmo procedimento com a 3ªlinha, de forma a atualizar as contribuições que cada variável não-básica daria para o lucro, caso viesse a se tornar básica. Para isso, vamos multiplicar a 2ª linha do tableau3 por -4 e somar com a 3ªlinha, substituindo esta pelo resultado obtido. Tableau 4 BASE x1 x2 x3 x4 bi

x3

x1

0 2 1 -11 1/2 0 1/2

44

-Z 0 -1 0 -2 -16

Como a última linha (função objetivo transformada) mostra as contribuições líquidas para o Z, caso as variáveis x2 e x4 venham a ter seus valores aumentados de 0 para 1 e como estas contribuições têm seus valores com sinais trocados com relação ao quadro original, concluímos que a solução encontrada

x1 =4 x2 = 0 x3 = 4 x4 = 0

e Z=16 (valor da última linha e última coluna com sinal trocado)

é a solução ótima.3.7- PROCEDIMENTO DO MÉTODO SIMPLEX:

Passo1: Transformar o modelo na forma padrão;Passo 2: Montar um quadro (tableau) para os cálculos, colocando os coeficientes de todas as variáveis com os respectivos sinais e, na última linha, incluir os coeficientes da função objetivo transformada;Passo 3: Estabelecer uma solução básica inicial, usualmente atribuindo valor zero às variáveis originais e achando valores positivos para as variáveis de folga.Passo 4: Localize o número mais negativo (se o problema for de MIN) ou o número mais positivo (se o problema for de MAX) da última linha do quadro simplex, excluída a última coluna, e chame a coluna em que este número aparece de coluna de trabalho. Se existir mais de um candidato a número mais negativo (MIN) ou mais positivo (MAX), escolha um;Passo 5: Forme o quociente da divisão de cada elemento da última coluna pelo número positivo correspondente da coluna de trabalho que está na mesma linha (excluindo-se a

51

última linha do quadro). Sai da base a variável que corresponder a menor razão dentre àquelas encontradas.Passo 6: Use operações elementares sobre as linhas a fim de converter o elemento pivô em 1 e, em seguida, reduzir a zero todos os outros elementos da coluna de trabalho;Passo 7: Substitua a variável x existente na linha pivô e primeira coluna pela variável x da primeira linha e coluna pivô. Esta nova primeira coluna é o novo conjunto de variáveis básicas;Passo 8: Repita os passos 4 a 7 até a inexistência de números negativos(problemas de MIN) ou números positivos (problemas de MAX) na última linha, excluindo-se desta apreciação a última coluna;Passo 9: A solução ótima é obtida atribuindo-se a cada variável da primeira coluna o valor da linha correspondente, na última coluna. Às demais variáveis é atribuído o valor zero. O valor ótimo da função objetivo, associado a z, é o negativo do número resultante na última linha, última coluna.

Idéia geral do método:a) Os coeficientes das variáveis não básicas na linha da FO(custos reduzidos) são

necessários para selecionar a variável a entrar na base ou constatar a otimalidade do “tableau”.

b) Os termos independentes são necessários na seleção da variável a sair da base de modo a evitar que a nova base seja infactível e também ao final do método já que são os valores das variáveis básicas.

c) Os coeficientes da coluna a entrar na base, servirão na seleção da variável a deixar a base e também necessários na determinação das operações de linhas que constituirão o pivotamento.

3.8- ANÁLISE DAS SOLUÇÕES

a)Problema de DegeneraçãoNo desenvolvimento do Simplex, a linha pivô é a restrição que apresenta o menor

quociente não negativo, na divisão dos termos independentes pelos coeficientes positivos da variável que entra.

Pode ocorrer que haja mais de um resultado nessas condições. Devemos escolher arbitrariamente um deles para calcular a solução. Entretanto, essa solução apresentará variáveis básicas com valor nulo. A saída de uma variável básica nula provoca o aparecimento de outra variável básica nula na solução seguinte, sem alteração do valor do objetivo.

Neste caso, a solução é chamada degenerada. Se os coeficientes da função objetivo retornam negativos em alguma iteração, o caso não apresenta dificuldade. O problema aparece quando as iterações levam a circuitos, sem caracterizas a solução ótima. Embora o caso seja muito raro, há maneiras de soluciona-lo. Entretanto, ao nível desta exposição esse método não tem interesse.

Chamaremos de solução básica factível qualquer solução básica cujo valor das variáveis sejam não-negativas.

b)Problema da Solução Ilimitada

52

Quando a variável que entra na base não possui em sua coluna nenhum coeficiente positivo o problema possui solução ilimitada. Os programas de computador, neste caso, apresentam a última solução básica antes que a solução se torne ilimitada.

c)Caso de Soluções MúltiplasSe na solução ótima o coeficiente de uma variável não básica é zero, ele poderá

entrar na base sem alterar o valor do objetivo, gerando outra solução ótima. Neste caso, qualquer combinação linear dessas duas soluções também será solução ótima. Neste caso teremos soluções múltiplas.

3.9- ANÁLISE ECONÔMICAA análise econômica baseia-se nos coeficientes das variáveis, na função objetivo

final. Vamos lembrar que:1. O quadro final de um modelo de programação linear apresenta variáveis básicas e

não básicas.2. A função objetivo está escrita em termos das variáveis não básicas.3. O valor das variáveis básicas estão na coluna b. O valor das variáveis não-básicas é

zero.4. O coeficiente da variável não básica na função objetivo mede a tendência do

objetivo com aquela variável. È um valor marginal, indica a variação proporcional no objetivo para pequenos aumentos ou diminuições na variável. Para simplificar o raciocínio, vamos supor sempre aumentos ou diminuições unitárias na variável.Posteriormente, em análise de sensibilidade podemos verificar até quantas unidades podemos aumentar ou diminuir da variável, sem alterar a informação contida em seu coeficiente. Esses coeficientes são chamados preços de oportunidade (preços relativos ao programa desenvolvido).

5. No quadro final, a solução é ótima. Um aumento de zero para 1 na variável não básica prejudica o objetivo. (lucros diminuem, custos aumentam, etc.).

Para fazermos a análise econômica do último exemplo trabalhado, vamos interpretar os coeficientes das variáveis fora da base (no caso os coeficientes de x2 e x4) e os coeficientes da última linha do Tableau final.

Análise para x4:Como x4 está fora da base, seu valor na solução ótima é zero. Vamos passar seu valor

para 1 e calcular as variações que devem ocorrer nas variáveis básicas.a) Cálculo da variação em x3:A relação entre x4 e x3 aparece na primeira equação do Tableau final:

x3 - x4 = 4Com x4 = 1, temos: x3 = 4 + 1 ou x3

novo = 5 A variação em x3 é:

Δ x3 = x3novo - x3 = 5-4= 1

Δ x3 =1

b) Cálculo da variação em x1: A relação entre x1 e x4 aparece na segunda equação do Tableau final:

53

x1 + ½ x4 = 4Com x4 = 1, temos: x1 = 4 – ½ .1 ou x1

novo = 3,5 A variação em x1 é:

Δ x1 = x1novo – x1 = 3,5 - 4= -1/2

Δ x1 = -1/2

c) Cálculo da variação em Z:Z = 4x1 + 1x2

Δ Z = 4.( Δ x1)+1(Δ x2) = 4(-1/2 )+ 0Δ Z = -2

Resumindo, temos:Para Δx4 = 1, encontramos: Δx3= 1

Δx1= -1/2Δ Z = -2

Comparando os valores acima com os coeficientes de x4 no Tableau final do Método Simplex, podemos concluir:1. As variações nos valores das variáveis básicas podem ser obtidas diretamente do

Tableau tomando-se os coeficientes da variável não-básica em teste, com os sinais trocados.

2. A variação no valor da FO é o valor obtido na linha (-Z) correspondente à variável não-básica em teste.

Análise para x2:

Com essas duas regras, podemos obter diretamente as variações na solução básica para uma variação unitária de x2.

Para Δx2 = 1, encontramos: Δx3= -2Δx1= -1/2Δ Z = -1

Δ Z = 4.( Δ x1)+1(Δ x2) = 4(-1/2 )+ 1(1) = -2+1 = -1Δ Z = -1

Resumindo:a) Se aumentarmos x4 em uma unidade, ou seja, se diminuirmos em uma unidade a

disponibilidade do recurso mão-de-obra, podemos concluir que:1. As variações nos valores das variáveis básicas podem ser obtidas

diretamente do quadro, tomando-se os coeficientes da variável não-básica em teste, com os sinais trocados.

2. A variação no valor da função objetivo é o valor obtido na última linha do tableau, correspondente à variável não-básica em teste.

b) Se diminuirmos x4 em uma unidade, ou seja, se aumentarmos em uma unidade a disponibilidade do recurso mão-de-obra, podemos concluir que:

54

1. As variações nos valores das variáveis básicas podem ser obtidas diretamente do quadro, tomando-se os coeficientes da variável não-básica em teste, sem troca dos sinais.

2. A variação no valor da função objetivo é o valor obtido na última linha do tableau, correspondente à variável não-básica em teste, com o sinal trocado.

Interpretação Econômica dos Resultados

A solução ótima do problema representa um plano de produção da mesa e do armário:

x1 = 4 Significa que deve ser produzida 4 unidades de mesa;x2 = 0 Significa que não deve ser produzida nenhuma unidade de armário.Esse plano de produção dará uma margem de contribuição total de Z = R$ 16,00

A utilização dos recursos está programada da seguinte forma:Madeira: x3 = 4 Significa que há uma sobra de 4m2 de madeira;Mão-de-obra: x4 = 0 Significa utilização total do recurso mão-de-obra disponível, já que a sobra desse recurso é zero(não tem sobra no recurso mão-de-obra);

Interpretação dos coeficientes de x2:Passando o valor de x2 de 0 para 1, estamos dizendo que vamos aumentar o nível de produção do armário em uma unidade e isso implicará nos seguintes resultados:a) Δx3 = -2 Significa que a sobra do recurso madeira cai de 2 unidades, ou seja, se

eu fabricar uma unidade do armário, em vez de sobrar 4m2 de madeira, sobrará apenas 2m2 desse recurso;

b) Δx1 = -1/2 Significa que o nível de produção da mesa cai de ½ unidade;c) ΔZ = -1 Como resultado dessas variações nos níveis de produção dos dois

produtos (mesa e armário), obtivemos uma variação de -1 no valor da função objetivo, isto é, a margem de contribuição total para o lucro cai de R$ 16,00 para R$15,00.

Interpretação dos coeficientes de x4:Passando o valor de x4 de 0 para 1, estamos impondo uma sobra de 1 unidade no recurso mão-de-obra ou reduzindo a sua disponibilidade original de 8 unidades para 7 unidade. Como resultado, obtivemos o seguinte::a) Δx3 = 1 Significa que a sobra do recurso madeira aumenta de 1 unidades, ou seja,

passa de 4m2 para 5m2;b) Δx1 = -1/2 Significa que o nível de produção da mesa cai de ½ unidade;c) ΔZ = -2 Como resultado dessas variações nos níveis de produção da mesa,

obtivemos uma variação de -2 no valor da função objetivo, isto é, a margem de contribuição total para o lucro cai de R$ 16,00 para R$ 14,00.

Conclusões:Comparando os dois valores para a variação de Z (-1 e -2), percebemos que entre

passar a fabricar um unidade do armário e reduzir em uma unidade a disponibilidade do recurso mão-de-obra, é melhor passar a fabricar uma unidade do armário, pois causa uma queda menor no valor da função objetivo.

55

O recurso madeira, por exemplo, por apresentar folga na solução ótima, não causa qualquer variação no valor da FO, quando tem sua disponibilidade reduzida em 1 unidade.

Os valores na última linha do quadro simplex, devido aos significados mostrados acima, são chamados preços de oportunidade ou custo reduzido.

A pergunta que se deve fazer, nesse ponto de nossa análise é a seguinte: “ Até que valor podemos aumentar ou diminuir a disponibilidade de cada recurso?”

Observe que, em qualquer dos dois casos, algumas variáveis sofrem um aumento e outras sofrem uma redução. O limite para a variação na disponibilidade de um recurso é o momento em que uma variável atinge o valor zero, já que não podemos ter variáveis negativas na solução do nosso problema. Esta variável sairia da base, exigindo o cálculo de nova solução. Um estudo completo nesse sentido será feito em Análise de Sensibilidade.

Exemplo 2:No programa de produção para o próximo período, a empresa Beta Ltda., escolheu

três produtos P1, P2 e P3. O quadro abaixo mostra os montantes solicitados por unidade na produção.Produto Contribuição

(lucro por unidade)Horas de Trabalho Horas de uso de

máquinasDemanda máxima

P1P2P3

2.1001.200600

646

1262

800600600

Os preços de venda foram fixados por decisão política e as demandas foram estimadas tendo em vista esses preços. A firma pode obter um suprimento de 4.800 horas de trabalho durante o período de processamento e pressupõe-se usar três máquinas que podem prover 7.200 horas de trabalho. Estabelecer um programa ótimo de produção para o período.Solução:

Modelo Linear:Variáveis de decisão: x1 quantidade a produzir de P1

x2 quantidade a produzir de P2x3 quantidade a produzir de P3

Objetivo maximizar o lucro = 2100x1 + 1200x2 + 600x3

Sujeito às restrições:6x1 + 4x2 + 6x3 ≤ 480012x1 + 6x2 + 2x3 ≤ 7200x1 ≤ 800x2 ≤ 600x3 ≤ 600x1 ≥ 0, x2 ≥ 0, x3 ≥ 0

Forma Padrão:Max Z= 2100x1 + 1200x2 + 600x3

6x1 + 4x2 + 6x3 +x4 = 480012x1 + 6x2 + 2x3 + x5 = 7200x1 + x6 = 800x2 + x7 = 600

56

x3 + x8= 600

Variáveis de folga:x4 sobra de recurso horas de trabalhox5 sobra de recurso horas de máquinax6 sobra de recurso mercado de P1x7 sobra de recurso mercado de P2x8 sobra de recurso mercado de P3

O quadro final pelo método Simplex é o seguinte:

Base x1 x2 x3 x4 x5 x6 x7 x8 bi

x3

x1

x6

x2

x8

01000

00010

10000

0,2-0,0330,033

00,2

-0,10,1-0,1

00,1

00100

-0,2-0,470,47

10,2

00001

120280520600480

-Z 0 0 0 -50 -150 0 -100 0 -1.380.000

Solução:Produzir no período:280 unidades de P1600 unidades de P2120 unidades de P3

Recursos disponíveis após o programa:520 unidades do mercado de P1480 unidades do mercado de P3

O preço de oportunidade do recurso “horas de trabalho” (coeficiente de x4 no quadro = 50) indica que:- Se conseguirmos mais uma hora de trabalho aos custos correntes poderemos aumentar nosso lucro em 50, isto é, poderemos obter nova solução ótima com lucro de 1.380.050.- Se uma hora a mais de trabalho acarreta o pagamento de adicional extra, o valor 50 indica o limite máximo desse adicional.Por exemplo: se o adicional for de 20, a nova hora de trabalho implicará uma nova solução com lucro de 30 a mais que o anterior, portanto o lucro de 1.380.030.- Se houver falta de uma hora de trabalho, o lucro fica diminuído em 50, caso não haja alteração no custo. Se essa falta for, por exemplo, pela ausência de um funcionário que não terá hora descontada, acrescentar esse valor ao prejuízo causado pela ausência do funcionário.

O preço de oportunidade do recurso “horas de máquina” (coeficiente de x5 no quadro = 150) indica que:

57

- Uma hora a menos de máquina, o que equivale a fazer x5 = 1, acarreta uma diminuição no lucro de 150. A nova solução ótima nesse caso teria lucro de 1.379.850 desde que não haja alteração nos custos correntes.- Contratar mais de uma hora de máquina aos custos correntes significa um acréscimo de 150 no lucro. Se esse contrato implica adicional extra, ele deve ser descontado. No caso de aluguel de hora máquina de terceiros para o programa, o preço de oportunidade 150 indica o máximo que podemos pagar pelo aluguel além de nosso custo corrente. - Em termos de manutenção e substituição de máquinas, o preço de oportunidade oferece informação para o cálculo do prejuízo devido à quebra e manutenção de uma máquina operando no programa. Se há uma probabilidade de 80% de que uma máquina necessite de uma hora para conserto durante o programa, então, há uma expectativa de: 150 x 0,8 = 120 de prejuízo com esse evento (quebra de máquina) no programa, além dos custos pela manutenção.

O preço de oportunidade do recurso “mercado de P1” (coeficiente x6 no quadro=0) indica que esse recurso não é escasso. O mesmo ocorre com o preço de oportunidade do recurso “mercado de P3”. Isto pode nos levar a rever o investimento no mercado desses dois produtos. Uma diminuição desses investimentos com conseqüente diminuição do mercado não afetará nossas vendas, causando um aumento no lucro. Outra maneira de aumentar o lucro neste caso é aumentar o preço de venda dos produtos P1 e P3. isto diminui os mercados correspondentes sem afetar as vendas, desde que o mercado não diminua aquém da produção.

O preço de oportunidade de uma unidade do recurso “mercado de P2” (coeficiente de x7 no quadro = 100) indica que:

- O aumento de uma unidade nesse mercado, aos custos correntes, acarreta um aumento de 100 no lucro, isto é, a nova solução teria lucro de 1.380.100.- Da mesma forma, o cancelamento de uma unidade na compra de um cliente implica um prejuízo de 100, além do custo normal da unidade desse recurso.- Se o departamento de marketing da empresa estimar em 80 o investimento adicional para aumentar em uma unidade o mercado do produto P2, esse investimento nos traria um retorno líquido de 100-80 = 20, passando o lucro para 1.380.020. Por investimento adicional entendemos o valor além do custo normal de vendas por unidade nesse mercado.

As análises efetuadas nos exemplos apresentados mostram o grau de sua relevância para a tomada de decisão. A PO constitui uma grande aliada do tomador de decisão, se bem utilizada e interpretada. Os modelos e seus resultados podem ser utilizados como ferramentas consistentes para a avaliação e divulgação de diferentes políticas empresariais.

3.10- MÉTODO DO M GRANDESeja o exemplo a seguir

MAX z = x1+x2+x3

SA 2x1+x2-x310

x1+x2+2x320

58

2x1+x2+3x3=60

x1 0 , x20 , x3 0

Forma Padrão:

-z + x1 + x2 + x3 + 0x4 - 0x5 - M6 x6 - M7 x7 = 0

2x1 + x2 - x3 + x4 = 10

x1 + x2 + 2x3 -x5 + x6 = 20

2x1 + x2 + 3x3 +x7= 60

A medida que Z é maximizada, as variáveis artificiais x6 e x7 deixam a base, devido ao grande valor de M6 e M7.

O quadro inicial fica então:

BASE x1 x2 x3 x4 x5 x6 x7 bi

x4 2 1 -1 1 0 0 0 10x6

x7

1 1 2 0 -1 1 02 1 3 0 0 0 1

2060

-Z 1 1 1 0 0 -M6 -M7 0

Na primeira fase da solução, a finalidade não será maximizar o objetivo, e sim eliminar as variáveis artificiais x6 e x7, retornando assim ao problema original. Podemos escolher para entrar na base uma variável com qualquer coeficiente na função objetivo, desde que a entrada dessa variável provoque a saída de uma variável artificial.

Para isto basta verificar se na divisão dos termos independentes pelos coeficientes de uma variável não básica, o menor resultado positivo está na linha da variável artificial básica. Se isso é verdade, a variável artificial deixa a base, independente do coeficiente na função objetivo da variável que entra. Caso nenhuma das variáveis não básicas possa fazer o papel de expulsar a variável artificial da base, o problema não tem solução básica, e portanto não tem solução.

OBS: Mesmo que no quadro inicial os coeficientes na função objetivo sejam todos negativos ou nulos (problema de maximização), a solução não é ótima, pois o problema original estará alterado pela presença da variável artificial.

O quadro final fica então:

BASE x1 x2 x3 x4 x5 bi

x2 2 1 0 0,75 0 22,5x3

x5

0 0 1 -0,25 0 1 0 0 0,25 1

12,527,5

-Z -1 0 0 -0,5 0 -35

Solução ótima: Z= 35 x2=22,5 x3=12,5 x5=27,5 x1=x4=0

59

3.11- MÉTODO DAS DUAS FASESConsideremos o mesmo exemplo do item anterior:

MAX z = x1+x2+x3

SA 2x1+x2-x310

x1+x2+2x320

2x1+x2+3x3=60

x1 0 , x20 , x3 0

Forma Padrão:

2x1 + x2 - x3 + x4 = 10

x1 + x2 + 2x3 -x5 + x6 = 20

2x1 + x2 + 3x3 +x7= 60

Passo1: Para iniciarmos este método, temos que construir uma função objetivo artificial W, formada pela soma das variáveis auxiliares.

W= x6 + x7

Passo 2: A função W deve ser escrita em termos das variáveis originais e comporá o novo objetivo a ser minimizado.

x6 = -x1 - x2 - 2x3 +x5 + 20

x7 = - 2x1 - x2 - 3x3 + 60

MIN W = -3x1 - 2x2 - 5x3 +x5 + 80

Função objetivo transformada: -W-3x1 - 2x2 - 5x3 +x5 = -80

Passo 3: Monta-se o quadro de solução de forma exatamente igual à sistemática do método simplex, colocando-se a função objetivo artificial na última linha.

O quadro inicial fica então:

BASE x1 x2 x3 x4 x5 x6 x7 bi

x4 2 1 -1 1 0 0 0 10x6

x7

1 1 2 0 -1 1 02 1 3 0 0 0 1

2060

-Z 1 1 1 0 0 0 0 0-W -3 -2 -5 0 1 0 0 -80

Passo 4: Aplica-se o método simplex normalmente, usando como função objetivo a ser minimizada a última linha. Quando a solução ótima for atingida, dois casos podem ocorrer:

60

1) W = 0: neste caso foi obtida uma solução básica do problema original e o processo de solução deve continuar, desprezando-se as variáveis artificiais e os elementos da última linha. É o início da fase 2 do processo.

2) W 0: neste caso o problema original não tem solução viável, o que significa que as restrições devem ser inconsistentes.

Fase 1: Minimizar WQuadro finalBASE x1 x2 x3 x4 x5 x6 x7 bi

x1 1 1/2 0 3/8 0 0 1/8 45/4x3

x5

0 0 1 -1/4 0 0 1/40 -1/2 0 -1/8 1 -1 5/8

25/265/4

-Z 0 1/2 0 -1/8 0 0 -3/8 -95/4-W 0 0 0 0 0 21/5 1 0

Fase 2: Maximizar ZQuadro inicial BASE x1 x2 x3 x4 x5 bi

x1 1 1/2 0 3/8 0 45/4x3

x5

0 0 1 -1/4 0 0 -1/2 0 -1/8 1

25/265/4

-Z 0 1/2 0 -1/8 0 -95/4

Passo 5: Aplica-se o método simplex normalmente no quadro inicial da fase 2 para maximizar Z.Quadro finalBASE x1 x2 x3 x4 x5 bi

x2 2 1 0 0,75 0 22,5x3

x5

0 0 1 -0,25 0 1 0 0 0,25 1

12,527,5

-Z -1 0 0 -0,5 0 -35

Solução ótima: Z= 35 x2=22,5 x3=12,5 x5=27,5 x1=x4=0

Capítulo IVDUALIDADE

4.1- INTRODUÇÃO

61

Todo problema de Programação Linear, a que chamaremos “Primal”, possui um segundo problema associado chamado “Dual”; ambos são completamente inter-relacionados, de forma que a solução ótima de um fornece informações completas sobre o outro.

A Teoria da Dualidade encontra hoje importantes aplicações no desenvolvimento de métodos computacionais para a resolução de problemas de programação matemática e, também, para interpretações físicas e econômicas de problemas reais.

Problemas duais podem resultar da interpretação de alguma situação sob pontos de vistas opostos. Como exemplo introdutório ao estudo da dualidade, pode-se mencionar a situação de um carpinteiro.

4.2- ESTUDO DA DUALIDADE

Suponha que um carpinteiro fabrique apenas mesas e cadeiras, ambos de um só modelo, e que a quantidade usada de cada recurso para fabricação de cada produto, bem como a disponibilidade desse recurso e o preço de venda dos produtos fabricados, segue a tabela abaixo:Recurso Mesa Cadeira DisponibilidadeMadeira 7 m2 4 m2 60 m2

Mão-de-obra 3 H.h 5 H.h 40 H.hPreço de Venda 1.000,00 500,00 O carpinteiro deseja saber qual o plano de produção que maximiza o rendimento obtido com as vendas.

Este problema é descrito matematicamente pelo seguinte modelo linear:Max Z = 1000x1 + 500x2 (receita total)S.A. 3x1 + 5x2 ≤ 40 (Mão-de-obra disponível)

7x1 + 4x2 ≤ 60 (Madeira disponível)x1 , x2 ≥ 0 (Quantidade de mesas e cadeiras)

Podemos analisar este mesmo problema de outro ângulo: Vamos supor que este carpinteiro deseje saber qual o preço mínimo que pode ser

atribuído aos recursos (horas de trabalho e madeira) que lhe pertencem, ou seja, ele quer saber qual o preço intrínseco de seus recursos.

Para se estabelecer o preço, o carpinteiro poderia fazer a seguinte pergunta: “Quais os preços mínimos que, se o mercado desse para a minha mão-deo-bra e para minha madeira, me fazem ficar indiferente entre vender esses recursos ou usá-los para fazer e vender mesas e cadeiras? Se o mercado desse preços altos aos recursos certamente o carpinteiro os venderia, pois seria mais interessante vender e lucrar com os recursos do que fazer e vender mesas e cadeiras. Mas se o mercado desse preços tão baixos aos recursos e o carpinteiro pudesse lucrar mais fazendo e vendendo mesas e cadeiras, ele certamente não venderia seus recursos.

Esta segunda visão do problema do carpinteiro é descrito matematicamente pelo seguinte modelo:

Primeiro, o mercado deverá oferecer o mínimo pelo total de recursos do carpinteiro. Chamando de y1 o preço dado por 1 H.h de mão-de-obra e de y2 o preço dado por 1 m2 de madeira, tem-se a seguinte F.O.:

Min W = 40y1 + 60y2 (preço total dado aos recursos)

62

Segundo, o mercado não poderá oferecer preços tão baixos, pois o carpinteiro não venderia seus recursos, assim, o mercado deve oferecer preços tais que o valor dos recursos não sejam inferior ao preço de venda, então tem-se as seguintes restrições:

S.A. 3y1 + 7y2 ≥ 1000 (mesa)5y1 + 4y2 ≥ 500 (cadeira)

Finalmente os preços não devem ser negativos pois as condições acima perderiam o significado.

Resumindo temos:Min W = 40y1 + 60y2 (preço total dado aos recursos)S.A. 3y1 + 7y2 ≥ 1000 (mesa)

5y1 + 4y2 ≥ 500 (cadeira)y1 , y2 ≥ 0

Observe que o problema de determinação de preços é formado a partir do problema de alocação de recursos e vice-versa, mediante as seguinte regras:

1. Cada restrição, em um problema, corresponde a uma variável no outro (a i-ésima linha de coeficientes tecnológicos em um problema, corresponde a i-ésima coluna de coeficientes tecnológicos do outro problema);

2. Os elementos do lado direito das restrições (termos independentes) em um problema, são os coeficientes da F.O. do outro problema;

3. Se o objetivo de um problema é maximizar, o do outro será minimizar, e vice-versa;

4. O problema de maximização tem restrições com sentido “≤”, e o problema de minimização tem restrições com sentido “≥”; caso essas condições não ocorram, podemos multiplicar a restrição cujo sinal está trocado por “-1” e obter a restrição com o sinal adequado;

5. As variáveis de ambos os problemas são não-negativas.Pela dualidade de visão que esses problemas representam e pela simetria da formação, eles são denominados Par Primal-Dual Simétrico.

Exemplo:Primal: Max Z = 2x1 + 3x2 + x3 Variáveis Duais Associadas:

S.A. 3x1 + 4x2 + 2x3 ≤ 10 y1

2x1 + 6x2 + x3 ≤ 20 y2

x1 – x2 – x3 ≤ 30 y3

x1 , x2 , x3 ≥ 0

Dual: Min W = 10y1 + 20y2 + 30y3

S.A. 3y1 + 2y2 + y3 ≥ 2 4y1 + 6y2 – y3 ≥ 3 2y1 + y2 – y3 ≥ 1y1 , y2 , y3 ≥ 0

63

Observe que o dual, obtido a partir de um dual, retorna ao primal.A partir dessa definição, são verdadeiras as seguintes propriedades:

1. Se uma restrição primal é do tipo “=”, a variável dual correspondente será sem restrição de sinal;

2. Se a variável primal for sem restrição de sinal, a restrição do dual correspondente será do tipo “=”.

Exemplo: Primal: Max Z = 2x1 + 3x2 + x3 Variáveis Duais Associadas:

S.A. x1 + x2 ≤ 10 y1

2x1 + 4x2 - x3 = 20 y2

x1 , x2 , x3 ≥ 0

Dual: Min W = 10y1 + 20y2

S.A. y1 + 2y2 ≥ 2 y1 + 4y2 ≥ 3 - y2 ≥ 1y1≥ 0 y2 irrestrita

Para sabermos como a solução ótima de um primal pode fornecer informações sobre o seu dual e vice-versa, precisamos conhecer as relações existentes entre as soluções dos dois problemas. As principais relações existentes são apresentadas a seguir.

1. Propriedade Fraca da Dualidade“Se (x1 , x2 ,..., xn ) é uma solução viável para o primal (problema de maximização) e (y1 , y2 ,..., ym ), uma solução viável para o dual (problema de minimização), então, o valor que a solução do primal dá a sua FO não pode ser maior do que o valor que a solução do dual dá a sua FO”. (Z ≤ W).

2. Teorema da Dualidade“Se existe uma solução ótima para o problema primal ou para seu dual, então o outro problema tem uma solução ótima e as duas funções objetivo apresentam o mesmo valor ótimo.” (Max Z = Min W)Em tais situações temos que: a) os valores das variáveis de decisão do primal são encontradas na última linha do

último quadro simplex para o dual, nas colunas associadas às variáveis de folga e às variáveis de excesso (pegar os valores absolutos de tais posições).

b) Os valores das variáveis de folga e de excesso do primal são encontrados na última linha do último quadro simplex para o dual, nas colunas associadas às variáveis de decisão (pegar os valores absolutos de tais posições).

Como o primal é dual do próprio dual, vale o mesmo raciocínio para acharmos a solução do dual a partir da solução ótima do primal.

3. Propriedade da Ilimitação“Se um problema tem solução viável, mas o ótimo é ilimitado, então seu dual não admite solução viável”.

4. Propriedade de Folga Complementar

64

“Dada uma solução ótima do primal e uma do seu dual, sempre que uma folga ocorre na p-ésima restrição de um dos problemas, a p-ésima variável do outro problema é zero e, reciprocamente, se a q-ésima variável de uma solução ótima de um dos problemas é positiva, a q-ésima restrição do outro é satisfeita com folga zero”

Para se enxergar mais claramente as relações apresentadas vamos resolver o primal e o dual do problema do carpinteiro.

Solução do PRIMAL Max Z = 1000x1 + 500x2 (receita total)

S.A. 3x1 + 5x2 ≤ 40 (Mão-de-obra disponível)7x1 + 4x2 ≤ 60 (Madeira disponível)x1 , x2 ≥ 0 (Quantidade de mesas e cadeiras)

Forma Padrão:Max Z = 1000x1 + 500x2 + 0x3 + 0x4

S.A. 3x1 + 5x2 + x3 = 40 7x1 + 4x2 + x4 =60

x1 , x2 , x3 , x4 ≥ 0 FO transformada: -Z +1000x1 + 500x2 + 0x3 + 0x4 = 0

Tableau Inicial – Tableau 1BASE x1 x2 x3 x4 bi

x3 3 5 1 0 40x4

-Z7 4 0 1

1000 500 0 0

60

0

Tableau Final - Tableau 2BASE x1 x2 x3 x4 bi

x3 0 23/7 1 -3/7 100/7x1

-Z1 4/7 0 1/7

0 -500/7 0 -1000/7

60/7

-60000/7

Vamos identificar no Tableau Final a solução do dual conforme explicado. Variáveis de decisão do primal Variáveis de folga do primal

BASE x1 x2 x3 x4 bi

x3 0 23/7 1 -3/7 100/7x1 1 4/7 0 1/7 60/7

65

Solução ótima do primal: Z= 60000/7 x1=60/7 x2=0 x3=100/7 x4=0Solução ótima do dual:W=60000/7 y1=0 y2=1000/7 y3=0 y4=500/7

-Z0 -500/7 0 -1000/7 -60000/7

y3 y4 y1 y2 W Valor da FO do dual

valor das variáveis de decisão do problema dual valor das variáveis de excesso (considerar o valor absoluto)do problema dual (considerar o valor absoluto)

Solução do DUAL Min W = 40y1 + 60y2 (preço total dado aos recursos)

S.A. 3y1 + 7y2 ≥ 1000 (mesa)5y1 + 4y2 ≥ 500 (cadeira)y1 , y2 ≥ 0

Forma padrão:Min W = 40y1 + 60y2 - 0y3 - 0y4 + M5 y5 + M6 y6

S.A. 3y1 + 7y2 - y3 + y5 = 10005y1 + 4y2 - y4 + y6 = 500 y1 , y2 , y3 , y4 , y5 , y6 ≥ 0

Tableau InicialBase y1 y2 y3 y4 y5 y6 bi

y5 3 7 -1 0 1 0 1000y6 5 4 0 -1 0 1 500-W 40 60 0 0 M5 M6 0

Aplicando o Método do M Grande a fim de eliminar as variáveis artificiais e aplicando o Método Simplex, obtemos o seguinte Tableau Final com a solução ótima do Dual.

Tableau FinalBase y1 y2 y3 y4 bi

y4 -23/7 0 -4/7 1 500/7y2 3/7 1 -1/7 0 1000/7-W 100/7 0 60/7 0 -60000/7

Vamos identificar no Tableau Final a solução do pirmal conforme explicado.

Variáveis de decisão do dual Variáveis de excesso do dual

BASE y1 y2 y3 y4 bi

y4 -23/7 0 -4/7 1 500/7y2 3/7 1 -1/7 0 1000/7

66

Solução ótima do primal: Z= 60000/7 x1=60/7 x2=0 x3=100/7 x4=0Solução ótima do dual:W=60000/7 y1=0 y2=1000/7 y3=0 y4=500/7

-W100/7 0 60/70 0 -60000/7

x3 x4 x1 x2 Z Valor da FO do primal

valor das variáveis de decisão do problema primal valor das variáveis de folga do problema primal

Concluímos, dessa forma, que dado um problema de programação linear, podemos escolher entre solucionar o modelo primal ou o dual correspondente, uma vez que a solução de um pode ser obtida a partir do outro. A escolha leva em consideração o esforço computacional que, em geral, está associado ao número de restrições. O problema dual, assim como o primal, gera uma interpretação econômica dos resultados ótimos obtidos. Por exemplo, o valor de y1= 0, representa o valor de oportunidade do recurso mão-de-obra. O resultado é coerente, já que o recurso mão-de-obra não é escasso (x3 = 100/7). Já o valor de y2= 1000/7, representa o valor de oportunidade do recurso madeira, isto é, cada m2 de madeira tem capacidade de gerar uma receita de R$ 142,86. O valor de y2 representa a capacidade da unidade do recurso madeira gerar receita neste programa.

Na função objetivo dual, cada parcela mede, então, o valor de oportunidade dos recursos envolvidos na produção (estoque x valor de oportunidade unitário do recurso). A função objetivo dual mede, portanto, a capacidade de o estoque de recursos gerar receita.

É de fundamental importância o entendimento da Teoria da Dualidade em Programação Linear uma vez que ela nos fornece elementos para um melhor entendimento do problema através de uma nova interpretação (dual) do mesmo e de relações bem definidas entre essa nova interpretação e a formulação original. Podemos dizer que em aplicações de PL à Pesquisa Operacional, um problema só está bem formulado quando seu dual for também analisado.

EXEMPLO 2: PRIMAL: MAX z = 2x1+x2

SA x1+5x210

x1+3x26

2x1+2x28

x1 0 , x2 0

Tableau FinalBASE x1 x2 x3 x4 x5 bi

x3 0 4 1 0 -1/2 6x4

x1

0 2 0 1 -1/2 1 1 0 0 1/2

24

-Z 0 -1 0 0 -1 -8

67

Solução ótima do primal: Z= 8 x1=4 x2=0 x3=6 x4=2 x5=0Solução ótima do dual:W=8 y1=0 y2=0 y3=1 y4=0 y5=1

DUAL: MIN W = 10y1+6y2+8y3

SA y1+y2+2y3 2

y1+3y2+2y31

y1 0 , y2 0, y3 0

Tableau FinalBASE y1 y2 y3 y4 y5 bi

y5 -4 -2 0 -1 1 1y3 0,5 0,5 1 -0,5 0 1

-Z 6 2 0 4 0 -8

4.3- RELAÇÕES ENTRE PRIMAL E DUAL Dual

Primal

Tem soluções viáveis Sem soluções viáveis

Ótima Ilimitado Inviável

Tem soluções viáveis

Ótima Possível Impossível ImpossívelIlimitado Impossível Impossível Possível

Sem soluções viáveis

Inviável Impossível Possível Possível

4.4- RESUMO PARA TRANSFORMAÇÃO PRIMAL-DUAL1- Restrições de DesigualdadePRIMAL DUALMIN Z= CTX MAX W= BTYS.A. AX B S.A. AT Y CCom X 0 Com Y 02- Restrições de IgualdadePRIMAL DUALMIN Z= CTX MAX W= BTYS.A. AX = B S.A. AT Y CCom X 0 Com Y livre

MAX Z= CTX MIN W= BTYS.A. AX = B S.A. AT Y CCom X 0 Com Y livre

Capítulo VANÁLISE DE SENSIBILIDADE

5.1- INTRODUÇÃO

68

Solução ótima do primal: Z= 8 x1=4 x2=0 x3=6 x4=2 x5=0Solução ótima do dual:W=8 y1=0 y2=0 y3=1 y4=0 y5=1

O objetivo da Programação Matemática, mais do que simplesmente determinar valores para variáveis de modo a maximizar uma função objetivo e a satisfazer restrições de um modelo matemático, é dar ao analista um melhor entendimento do problema em estudo.

A solução ótima de um problema é calculada com base nos dados do modelo, que podem sofrer variações ditadas por várias razões, como por exemplo:

Os dados foram estimados; Novas informações ou possibilidades aparecem após a formulação do

modelo.Dessa forma, é importante pesquisar a estabilidade da solução adotada, em face

dessas variações.A análise de sensibilidade, ou análise pós-ótima, é um conjunto de técnicas que, de

forma bastante simples (em PL) nos fornece informações sobre a sensibilidade da solução ótima a alterações na formulação do problema.

Analisaremos em nossos estudos os seguintes casos:1. Variações nos coeficientes da FO;2. Variações nas quantidades dos recursos;3. Acréscimo de variável;4. Acréscimo de restrição.

Com essas análises, poderemos responder perguntas do tipo “Dentro de que intervalo pode o preço de venda do produto x variar sem afetar a solução ótima?”, “Como seria afetada a decisão ótima se a disponibilidade do recurso b fosse reduzida de k unidades?”, “Seria interessante fabricar um determinado produto que hoje não faz parte da minha programação de produção?”.

Nossa abordagem será sempre na seguinte linha. Conhecidos o tableau inicial do problema original (não modificado) e o tableau final (ótimo) do mesmo, procuraremos descobrir como uma modificação no tableau inicial modifica o tableau final supondo que os mesmos pivotamentos que transformaram o tableau inicial original no tableau final original são feitos sobre o tableau inicial modificado. A figura a seguir ilustra o que dissemos.

Para enxergar mais claramente a essência das técnicas de Análise de Sensibilidade e ganhar a intuição criadora vamos vê-las de através do exame de exemplos.

O problema exemplo é:MAX Z = 3x1 + 5x2

S.A. x1 ≤ 4 x2 ≤ 6

69

Tableau Original Inicial Tableau Modificado Inicial

Tableau Original Final(ótimo)

Tableau Modificado Final(ótimo ou não)

Método Simplex(Seqüência de Pivotamentos)

Mesma Seqüência de Pivotamentos

Alterações

Comparação

3x1 + 2x2 ≤ 18 x1 , x2 ≥ 0

Forma Padrão:-Z+ 3x1 + 5x2 + 0x3 + 0x4+ 0x5 (FO Transformada) x1 + x3 = 4 x2 + x4 = 63x1 + 2x2 + x5 = 18 x1 , x2 , x3 , x4 , x5 ≥ 0

Seja o seguinte Tableau Inicial para o problema: BASE -Z x1 x2 x3 x4 x5 bi

x3 0 1 0 1 0 0 4x4 0 0 1 0 1 0 6x5 0 3 2 0 0 1 18-z 1 3 5 0 0 0 0

Tableau 1- Tableau Original Inicial

e o Tableau Final após a aplicação do Método Simplex

BASE -Z x1 x2 x3 x4 x5 bi

x3 0 0 0 1 2/3 -1/3 2x2 0 0 1 0 1 0 6x1 0 1 0 0 -2/3 1/3 2-z 1 0 0 0 -3 -1 -36

Tableau 2- Tableau Original Final

5.2- VARIAÇÕES NOS COEFICIENTES DA FO

Consideremos o Tableau Original Inicial (Tableau 1) e o Tableau Original Final(Tableau 2) do exemplo apresentado.

Tomemos o coeficiente de x1 assinalado com no tableau inicial. Se mudássemos o coeficiente original (3) do Tableau inicial para (3+δ), onde δ é uma quantidade qualquer e fizéssemos os mesmos pivotamentos que fizemos para obter o Tableau Final, obteríamos o mesmo resultado final para o coeficiente de x1, porém acrescido de δ, ou seja, (0+δ). Portanto o que acrescentarmos a um coeficiente da FO no Tableau inicial, será o acréscimo que obteremos no tableau final após os pivotamentos. O tableau final ficaria:BASE -Z x1 x2 x3 x4 x5 bi

x3 0 0 0 1 2/3 -1/3 2x2 0 0 1 0 1 0 6x1 0 1 0 0 -2/3 1/3 2-z 1 δ 0 0 -3 -1 -36

Tableau 3- Tableau resultante das modificaçõesComo x1 é variável básica no tableau final, e as colunas com variáveis básicas

deverão ser um vetor identidade, devemos fazer δ=0 restabelecendo, assim, a forma canônica do tableau . Para isso, pivotamos no coeficiente 1 da coluna de x1 (isto é, multiplicamos a 3ª linha por –δ e somamos à linha da FO para tornar nulo o coeficiente de x1 na linha da FO), obtendo

BASE -Z x1 x2 x3 x4 x5 bi

70

Linha 1Linha 2Linha 3Linha da FO

Linha 1Linha 2Linha 3Linha da FO

Linha 1Linha 2Linha 3Linha da FO

Linha 1Linha 2Linha 3Linha da FO

x3 0 0 0 1 2/3 -1/3 2x2 0 0 1 0 1 0 6x1 0 1 0 0 -2/3 1/3 2-z 1 0 0 0 -3+(2δ/3) -1-(δ/3) -36-2δ

Tableau 4- Tableau Resultante na Forma Canônica

Agora, com o Tableau na forma canônica podemos afirmar que se todos os coeficientes da linha da FO forem não-positivos (excetuamos como sempre o de –Z) o tableau é ótimo, ou seja, o Tableau 4 será ótimo se

-3 + 2/3 δ ≤ 0 δ≤9/2-1 - 1/3 δ ≤ 0 δ≥ -3Portanto:

Como δ é um acréscimo, para obter o intervalo de variação do coeficiente de x1 para o qual o tableau 4 é ótimo, temos que somar o valor original do coeficiente, ou seja, Z = 3x1 + 5x2

Z* = (3+δ)x1 + 5x2

(3-3 = 0) ≤ Coef. de x1 ≤ (3 + 9/2 = 15/2)

Assim, se o coeficiente de x1 na FO for qualquer número entre zero e 15/2 (incluindo esses valores extremos) a solução ótima encontrada para o problema original permanecerá ótima para o problema modificado. Note que apesar de a solução ótima para o original permanecer ótima para o problema modificado ( pelo acréscimo de uma quantidade δ Є [-3 , 9/2] ao coeficiente de x1 na FO) o valor ótimo da FO irá variar em função de δ uma vez que Z*=36+2δ. E se alterássemos o coeficiente de x1 na FO de δ para Є [-3 , 9/2]? Neste caso, o Tableau 4 não mais será ótimo e precisaremos aplicar o Método Simplex para obter a nova solução ótima. Mesmo nesse último caso, onde precisamos de usar o Método Simplex para obter o novo ótimo, o esforço computacional é usualmente menor do que resolver o problema modificado a partir do tableau modificado inicial.

No caso que acabamos de analisar, o coeficiente alterado correspondia a uma variável básica no tableau original final. Quando o coeficiente alterado corresponde a uma variável que é não-básica no tableau original final, a análise se torna ainda mais fácil. Suponhamos que o coeficiente de x4 na FO fosse alterado de zero para δ (como x4 é uma variável de folga, isso poderia, num problema real, corresponder ao surgimento de uma oportunidade de vender o recurso excedente por δ $/unid). Como vimos anteriormente, o impacto no tableau resultante das modificações (tableau inicial modificado submetido aos mesmos pivotamentos que produziram o tableau original final a partir do tableau original inicial) será um acréscimo de δ unidades no coeficiente de x4 quando comparado com o tableau original final. A linha da FO seria portanto,

BASE -Z x1 x2 x3 x4 x5 bi

x3 0 0 0 1 2/3 -1/3 2x2 0 0 1 0 1 0 6x1 0 1 0 0 -2/3 1/3 2-z 1 0 0 0 -3+δ -1 -36

71

-3 ≤ δ ≤ 9/2

Linha 1Linha 2Linha 3Linha da FO

e o tableau estaria na forma canônica permitindo uma análise imediata. O tableau seria ótimo quando tivéssemos (-3+δ) ≤ 0 ou seja δ≤ 3. Interpretando a necessidade de modificação como o surgimento de uma oportunidade de vender o recurso correspondente à linha 2. Essa análise responderia a pergunta: “Qual o menor preço para o recurso da linha 2 acima do qual passa a ser interessante a venda dele?” Como o coeficiente de x4 na FO era o zero inicialmente, δ irá representar o novo preço para o recurso. Apenas para valores de δ acima de 3 é que a atividade x4 (fazer sobrar recurso para venda) passa a ser lucrativa (forma x4 candidata para entrar na base). Para qualquer valor de δ inferior a 3 a solução com x4 não-básica (e, portanto, uma solução que usa todo o recurso da linha 2) é ótima.

O mesmo tipo de análise pode ser feita quando queremos saber o efeito de variar simultaneamente mais de um coeficiente da FO. A única dificuldade é que ficamos com um sistema de desigualdades (que restringem as variações dos coeficientes) mais complicado.

5.3- VARIAÇÕES NAS QUANTIDADES DOS RECURSOS

Se no Tableau inicial original (Tableau 1) mudarmos o termo independente da primeira linha de 4 para 4+δ, o tableau inicial fica:

BASE -Z x1 x2 x3 x4 x5 bi

x3 0 1 0 1 0 0 4 + δx4 0 0 1 0 1 0 6x5 0 3 2 0 0 1 18-z 1 3 5 0 0 0 0

Tableau 5- Tableau Inicial com modificação em termo independente

Se fizermos a mesma seqüência de pivotamentos que fizemos para obter o tableau final do problema original, não haverá mudanças (em relação ao tableau original final, Tableau 2) a não ser a coluna dos termos independentes . Podemos, para maior clareza no que segue, representar δ por uma coluna no lado direito do tableau, assim BASE -Z x1 x2 x3 x4 x5 bi δ

x3 0 1 0 1 0 0 4 1x4 0 0 1 0 1 0 6 0x5 0 3 2 0 0 1 18 0 -z 1 3 5 0 0 0 0 0

Tableau 6- Representação da modificação como uma coluna no lado direito

Note que a coluna de δ é idêntica à coluna de x3 e como fazemos apenas operações com linhas, duas linhas idênticas no tableau inicial permanecem idênticas após os pivotamentos. Portanto, no tableau, após os pivotamentos teremos: BASE -Z x1 x2 x3 x4 x5 bi δ

x3 0 0 0 1 2/3 -1/3 2 1x2 0 0 1 0 1 0 6 0x1 0 1 0 0 -2/3 1/3 2 0-z 1 0 0 0 -3 -1 -36 0

72

Linha 1Linha 2Linha 3Linha da FO

Linha 1Linha 2Linha 3Linha da FO

Linha 1Linha 2Linha 3Linha da FO

Conseqüentemente, para que a base ótima do problema original permaneça factível (variáveis básicas não-negativas) para o problema modificado, basta que 2+δ≥0, ou seja, δ≥-2. Assim, podemos concluir que quando alteramos um b i no tableau inicial, se a variável básica que, nesse tableau, corresponde ao bi for também básica no tableau final, então um aumento (positivo) nesse bi não desfaz a factibilidade da base ótima para o problema original. Se a modificação for um decréscimo no bi, então para que a base ótima para o problema original permaneça factível, o valor absoluto desse decréscimo não deve ser superior ao valor de bi no tableau original final.

Vejamos agora o que acontece quando mudamos o valor de um bi que corresponde a uma variável no tableau inicial que é não-básica no tableau original final.

Suponhamos que o termo independente da segunda linha do tableau original inicial fosse mudado para 6+δ teríamos então no tableau inicial.

BASE -Z x1 x2 x3 x4 x5 bi δx3 0 1 0 1 0 0 4 0x4 0 0 1 0 1 0 6 1x5 0 3 2 0 0 1 18 0 -z 1 3 5 0 0 0 0 0

Fazendo os mesmos pivotamentos do problema original obteríamos:

BASE -Z x1 x2 x3 x4 x5 bi δx3 0 0 0 1 2/3 -1/3 2 2/3x2 0 0 1 0 1 0 6 1x1 0 1 0 0 -2/3 1/3 2 -2/3-z 1 0 0 0 -3 -1 -36 -3

Ou seja, para que a base ótima do problema original permaneça factível:2+ 2/3 δ ≥ 0 δ≥ -36+ δ ≥ 0 δ≥ -6 ou -3 ≤ δ ≤ 32- 2/3 δ ≥ 0 δ≥ 3

Concluímos então que para valores de δ Є [-3, 3] a solução ótima do problema modificado é diferente da solução ótima do problema original (exceto para δ=0), mas a base (isto é, a coluna ou as variáveis que compõem a base) ótima do problema original é também ótima para o problema modificado.

Pode-se fazer o mesmo tipo de análise acima considerando-se variações simultâneas de mais de um bi. Como no caso do estudo de sensibilidade para os coeficientes da FO, o único problema é que as expressões (o sistema de desigualdades) limitando a variação simultânea dos bi’s torna-se mais complicado. Isso será verdade sempre que sempre que a linha do bi modificado tiver uma variável de folga (se a variável for de “excesso” as colunas serão idênticas mas com os sinais trocados antes e depois dos pivotamentos).5.4- ACRÉSCIMO DE VARIÁVEL

Algumas vezes precisamos adicionar uma coluna a um problema de PL que já foi resolvido. Por exemplo, após resolver um problema de programação de produção podemos

73

Linha 1Linha 2Linha 3Linha da FO

Linha 1Linha 2Linha 3Linha da FO

estar interessados em saber se a possibilidade de fabricar um novo produto pode melhorar o valor FO.

Examinemos, inicialmente, o tableau inicial e o final de um problema qualquer de PL para identificar alguns aspectos importantes para a análise.

Sendo “m” o número de linhas (equações de restrição) do problema e “n” o número de colunas (variáveis) do problema, temos:

BASE -Z x1 xn-m xn-m-1 xn bi

xn-m+1 b1

A I xn bm

-Z 1 0 0 0 Tableau Inicial

BASE -Z x1 xn-m xn-m-1 xn bi

xB1 b1

A Q xBm bm

-Z1 -y1* -ym* -Z

Tableau Final

Podemos identificar no tableau inicial duas submatrizes. A primeira, a matriz A que corresponde aos coeficientes das variáveis não-básicas (no tableau inicial) nas linhas das restrições. Note que estamos supondo que o problema parte de uma base constituída por variáveis de folga. No tableau final (após a aplicação do Método Simplex) as colunas de A passam a formar uma nova sub-matriz A . A segunda é uma matriz identidade, I, formada pelos coeficientes das variáveis inicialmente básicas (variáveis de folga), que após os pivotamentos do Método Simplex se tornam a matriz Q do tableau final.

Considerando o tableau 1 (inicial) e o Tableau 2(final) do exemplo apresentado, temos as seguintes submatrizes identificadas:

A = após o método simplex A =

I = após o método simplex Q =

74

Coeficientes não-básicos

Multiplicadores do Simplex

1 00 13 2

0 00 11 0

1 0 0 0 1 0 0 0 1

1 2/3 -1/30 1 00 -2/3 1/3

Multiplicadores do Simplex: [0 -3 -1]

O que nos diz a matriz Q? Ora, se em cada linha e em cada coluna de I temos apenas um elemento não zero que é 1, a matriz Q espelha os pivotamentos que foram feitos durante a execução do Método Simplex. Assim, se quisermos saber como fica no tableau final uma coluna qualquer do tableau inicial, basta multiplicar a coluna pela matriz Q.

Exemplo: Consideremos nosso problema exemplo.Vamos verificar como fica no tableau final (Tableau 2) a coluna de x1 do Tableau

inicial (Tableau 1).Coluna de x1 do tableau inicial (Tableau 1): 1

03

Coluna de x1 do tableau final (Tableau 2):

Q . 1 = 1 0 0 = 3 3

Já sabemos, então, como obter os coeficientes de uma nova coluna (correspondente a uma nova variável acrescentada ao problema original) nas linhas das restrições do tableau final sem para isto ter que resolver o problema modificado a partir do tableau inicial modificado. Falta-nos agora obter o coeficiente da nova variável na linha da FO no tableau final. Para isto, basta multiplicar o vetor linha [-y1* , , -ym*, 1] pela nova coluna.Exemplo: Consideremos nosso problema exemplo.Vamos verificar como o coeficiente de x1 na linha da FO do tableau inicial(Tableau 1) fica no tableau final (Tableau 2).[-y1* -y2* -y3* FO] [0 -3 -1 1] . = 0

O que confere com o encontrado no Tableau 2Seja agora o seguinte exemplo:O que acontece se acrescentarmos ao problema exemplo a variável x6 com coeficientes conforme abaixo?

Linha 1Linha 2Linha 3

75

1 2/3 -1/30 1 00 -2/3 1/3

001

1033

FOAnálise:

BASE -Z x1 x2 x3 x4 x5 x6 bi

x3 0 1 0 1 0 0 2 4x4 0 0 1 0 1 0 3 6x5 0 3 2 0 0 1 6 18-z 1 3 5 0 0 0 15 0

Tableau Modificado Inicial

Como ficaria esta nova coluna no Tableau Modificado Final?a)Identificar Q vendo no tableau original final as colunas correspondentes as variáveis básicas do tableau original inicial.b) Multiplicar a nova coluna pela matriz Q

Q . 2 = 2 3 3 = 6 6

c) Coeficiente na linha da FO[-y1* -y2* -y3* FO] [0 -3 -1 1] . = 0-9-6+15 = 0

Assim temos o seguinte tableau modificado final:

BASE -Z x1 x2 x3 x4 x5 x6 bi

x3 0 0 0 1 2/3 -1/3 2 2x2 0 0 1 0 1 0 3 6x1 0 1 0 0 -2/3 1/3 0 2-z 1 0 0 0 -3 -1 0 -36

Tableau Modificado Final

Como o custo reduzido é não positivo podemos concluir que o tableau modificado final permanece ótimo, ou seja, a nova variável não é básica nesse tableau. Note que, por acaso, o custo reduzido é zero e, portanto, se pode dar valor positivo à nova variável obtendo nova solução ótima. Se ao invés de 15 o coeficiente da nova coluna na FO fosse 18, digamos, o custo reduzido seria positivo indicando que deve-se aplicar o Método Simplex para tentar restabelecer a otimalidade do tableau.

A nova coluna entraria na base e para determinar a variável a sair da base, precisaríamos dos outros elementos da coluna nova no tableau modificado final. Teríamos então a seguinte situação:

BASE -Z x1 x2 x3 x4 x5 x6 bi

x3 0 0 0 1 2/3 -1/3 2 2x2 0 0 1 0 1 0 3 6

76

2 361

Linha 1Linha 2Linha 3Linha da FO

230

1 2/3 -1/30 1 00 -2/3 1/3

23615

Linha 1Linha 2Linha 3Linha da FO

Linha 1Linha 2Linha 3Linha da FO

x1 0 1 0 0 -2/3 1/3 0 2-z 1 0 0 0 -3 -1 3 -36

Tableau Modificado Final

Aplicando o Método Simplex, pivotamos no elemento assinalado, o que faz x6 entrar na base e x3 sair dela. Faça o pivotamento e veja se o tableau fica ótimo. Se não ficar, prossiga até que ou se torne ótimo, ou indique que o problema é ilimitado.

5.5- ACRÉSCIMO DE RESTRIÇÃO

Podemos, após resolver um problema de PL, querer acrescentar uma restrição ao modelo inicial. Isto pode se dar porque esquecemos de uma restrição quando formulamos o modelo, porque queremos explorar alguma condição sugerida pelo problema concreto, etc.

É claro que se o Método Simplex aplicado ao problema original terminar com uma indicação de que o problema é infactível, não há porque querer acrescentar uma restrição. Abaixo ilustraremos como acrescentar uma restrição no caso de o tableau final do problema original indicar uma solução ótima e, através de outro exemplo, quando o tableau final indicar que o problema original não tem ótimo finito. É importante notar que em ambos exemplos a restrição adicional é ativa na solução do problema modificado. Caso não seja, o mesmo procedimento irá indicar que a solução do problema original permanece ótimo após o acréscimo da restrição ou que permanece sem ótimo finito. No de a restrição adicionada tornar o problema infactível, o Método Simplex Dual irá indicar isso.

Uma nova restrição pode alterar a viabilidade da solução se ela não for redundante. O procedimento para essa análise é o seguinte:

1) Testar se a nova restrição é satisfeita para a atual solução ótima. Em caso afirmativo, a nova restrição é redundante.

2) Se não for satisfeita, ela deve ser introduzida no sistema e novos cálculos são necessários.

Vamos exemplificar introduzindo uma nova restrição no problema exemplo apresentado.Seja a seguinte restrição adicionada: x1 + x2 ≤ 7

Teste para verificar se a restrição é redundante: x1 + x2 ≤ 7 2 + 6 = 8 > 7 (a nova restrição não é redundante)

Logo, a solução atual deixará de ser ótima com a entrada da nova restrição, e novas iterações deverão ser feitas. Vamos acrescentar a nova restrição no tableau original final com sua correspondente variável de folga. Assim, vem:

BASE -Z x1 x2 x3 x4 x5 x6 bi

x3 0 0 0 1 2/3 -1/3 0 2x2 0 0 1 0 1 0 0 6x1 0 1 0 0 -2/3 1/3 0 2x6 0 1 1 0 0 0 1 7-z 1 0 0 0 -3 -1 0 -36

77

Linha 1Linha 2Linha 3Linha 4 (nova restrição)Linha da FO

Sem o tableau na forma canônica nada podemos afirmar sobre a otimalidade ou factibilidade. Para por na forma canônica pivotamos sobre x2 na segunda linha e sobre x1 na terceira linha, obtendo o tableau abaixo: BASE -Z x1 x2 x3 x4 x5 x6 bi

x3 0 0 0 1 2/3 -1/3 0 2x2 0 0 1 0 1 0 0 6x1 0 1 0 0 -2/3 1/3 0 2x6 0 0 0 0 -1/3 -1/3 1 -1-z 1 0 0 0 -3 -1 0 -36

Podemos agora ver que a base formada por { x3 , x2 , x1 , x6 }não é factível, uma vez que temos um valor negativo na última coluna. Como temos o tableau na forma canônica e factibilidade dual ( custos reduzidos não-positivos), podemos aplicar o Método Dual-Simplex para restabelecer a factibilidade primal (termos independentes não-negativos), cujas diferenças com relação ao Método Simplex se resume nas regras de entrada e saída de variáveis da base, que são as seguintes:

a) Variável que sai: é a variável básica com o valor mais negativo. Empates podem ser resolvidos arbitrariamente. Se todas as variáveis básicas tiverem valores positivos, a solução é ótima;

b) Variável que entra: é escolhida entre as variáveis fora da base, da seguinte forma:b.1) dividir os coeficientes da linha da FO pelos correspondentes coeficientes negativos da equação da variável que sai.b.2) a variável que entra é a que tem o menor valor absoluto entre os quocientes encontrados.Quando não houver coeficientes negativos na linha da variável que sai da base, o problema não tem solução viável.

Aplicando o Dual-Simplex no nosso exemplo, vem: x6 variável que sai da base x5 variável que entra da basePivotando, portanto sobre x5 na linha da nova restrição, temos:

BASE -Z x1 x2 x3 x4 x5 x6 bi

x3 0 0 0 1 1 0 -1 3x2 0 0 1 0 1 0 0 6x1 0 1 0 0 -1 0 1 1x5 0 0 0 0 1 1 -3 3-z 1 0 0 0 -2 0 -3 -33

O tableau agora é factível (variáveis básicas não-negativas) com a seguinte solução ótima:

x1 = 1 x3 = 3 x5 = 3 Z = 33x2 = 6 x4 = 0 x6 = 0

Note que acrescentamos ao problema original, além de uma restrição, uma nova variável x6

que é a variável de folga da restrição adicional. Se a restrição tivesse o sentido da desigualdade “≥” o procedimento seria exatamente o mesmo após multiplicarmos a restrição por -1, invertendo o sentido da desigualdade. Se a restrição fosse de igualdade, o

78

Linha 1Linha 2Linha 3Linha 4 (nova restrição)Linha da FO

Linha 1Linha 2Linha 3Linha 4 (nova restrição)Linha da FO

procedimento também seria o mesmo e x6 seria vista como uma variável artificial que seria eliminada do problema assim que se tornasse não-básica.

Vamos agora ao seguinte exemplo:MAX Z = 3x1 + 2x2

S.A. -2x1 + x2 ≤ 3 x1 - x2 ≤ 4 x1 , x2 ≥ 0

Seja o seguinte tableau original final do problema:

BASE -Z x1 x2 x3 x4 bi

x3 0 0 -1 1 2 11x1 0 1 -1 0 1 4-Z 1 0 5 0 -3 -12

O problema, portanto, não admite ótimo finito. Vejamos agora o que acontece se acrescentarmos a restrição 2x1 + 3x2 ≤ 12 a este problema. Adicionando a variável de folga x5 e agregando a nova restrição ao tableau temos:

BASE -Z x1 x2 x3 x4 x5 bi

x3 0 0 -1 1 2 0 11x1 0 1 -1 0 1 0 4x5 0 2 3 0 0 1 12-Z 1 0 5 0 -3 0 -12

Restabelecendo a forma canônica temos:

BASE -Z x1 x2 x3 x4 x5 bi

x3 0 0 -1 1 2 0 11x1 0 1 -1 0 1 0 4x5 0 0 5 0 -2 1 4-Z 1 0 5 0 -3 0 -12

O que mostra ser a solução factível, mas não ótima. Aplicando o Simplex Primal, em uma iteração obtemos:

BASE -Z x1 x2 x3 x4 x5 bi

x3 0 0 0 1 8/5 1/5 59/5x1 0 1 0 0 3/5 1/5 24/5x2 0 0 1 0 -2/5 1/5 4/5-Z 1 0 0 0 -1 -1 -16

Que demonstra a otimalidade da solução.Após essas análises de sensibilidade estudadas, observamos que o trabalho da

equipe de P.O. não está nem mesmo perto de estar concluído depois de o método simplex ter sido aplicado com sucesso para identificar uma solução ótima para o modelo. Na verdade, os valores dos parâmetros usados no modelo normalmente são apenas estimados com base numa previsão de condições futuras. Os dados obtidos para desenvolver estas estimativas freqüentemente são um tanto crus ou inexistentes, de modo que os parâmetros na formulação original podem representar pouco mais que rápidas regras práticas fornecidas por pessoal de linha pressionado. Eles podem mesmo representar

79

Linha 1Linha 2Linha da FO

Linha 1Linha 2Linha 3 (nova restrição)Linha da FO

Linha 1Linha 2Linha 3Linha da FO

Linha 1Linha 2Linha 3Linha da FO

superestimativas, ou subestimativas deliberadas para proteger os interesses dos estimadores.

Portanto, a gerência ou grupo de pesquisa operacional manterá um ceticismo saudável quanto aos números originais saindo do computador e, em muitos casos, irá vê-los apenas como um ponto de partida para futuras análises do problema.

Por estas e outras razões é importante se proceder uma análise de sensibilidade para investigar o efeito do método simplex sobre a solução ótima se os parâmetros assumirem outros valores possíveis.

Capítulo VI PROBLEMAS DE TRANSPORTES

6.1- INTRODUÇÃO

80

A estruturação do problema de transportes é uma aplicação interessante de programação linear e de grande relevância para a Engenharia de Produção. A Pesquisa Operacional estuda esses problemas com o objetivo de minimizar custos de transporte e desenvolver modelos computacionais de fácil resolução.

Um problema típico de Transporte pode ser descrito como se segue: Quantidades dadas de um determinado produto são disponíveis em cada uma de um determinado número de origens (por exemplo, armazéns). Desejamos remeter quantidades específicas do produto a cada um de um determinado número de destinos (por exemplo, mercados varejistas). É conhecido o custo de embarque de uma unidade do produto de qualquer uma origem para qualquer um destino. Considerando-se que é possível embarcar de qualquer uma das origens para qualquer um dos destinos, estamos interessados em determinar os itinerários (rotas) de custo mínimo das origens (armazéns) aos destinos (mercados varejistas).

Dizemos que um sistema de transporte está equilibrado quando a somatória das quantidades de produtos ofertados em cada origem é igual a somatória das quantidades de produtos demandados em cada destino.

Para solucionar um problema de transporte, ou seja, para encontrarmos os itinerários otimizados (de menor custo) das origens para os destinos, devemos, inicialmente, modelar o problema matematicamente. Após esta modelagem, devemos proceder a aplicação do algoritmo de transporte.

6.2- MODELAGEM DO PROBLEMA DE TRANSPORTES

Suponhamos a existência de “m” origens de um produto, cada uma podendo fornecer a quantidade “ai”, com o índice i = 1,2,...., m. Por outro lado, existem “n” destinos, cada um demandando uma quantidade “bj”, com j = 1,2,...., n. Sabe-se que o custo de transportar uma unidade do produto da origem “i” para o destino “j” é “Cij”. O objetivo do problema é determinar o número de unidades “xij” do produto, que devem ser transportados de cada origem “i” para cada destino “j”, de forma a minimizar o custo total de transporte. Estruturando o problema de forma diagramática, temos:

Considerando que é possível embarcar de qualquer uma das origens (armazéns) para qualquer um dos destinos (mercados varejistas), que o número total de unidades transportadas, a partir da origem i deve ser igual à oferta ai da origem; e que o número de unidades transportadas para o destino j deve ser igual à sua demanda b j, temos o seguinte modelo matemático:

Função Objetivo: (função matemática que expressa o objetivo de minimizar os custos)

81

Oferta (ai) a1

a2

.

.

.

am

Origens (i) Destinos (j)

1 1

2 2. .. .. .. .m n

b1

b2

.

.

.

.

. bn

Demanda (bj)

x11C11

x12C12x1nC1n

x21C21 x22C22

x2nC2n

xm1Cm1 xm2Cm2

xmnCmn

MIN Z= C11x11 + C12x12 + .... + C1n1x1n + C21x21 +C22x22 + .... + C2nx2n +.... + Cm1xm1 +Cm2xm2

+.... + Cmnxmn

ou seja, m n

MIN Z= Cij . xij

i=1 j=1

Restrições: Restrições em relação a oferta:x11 + x12 + ... +x1n = a1

x21 + x22 + ... +x2n = a2

.

.

xm1 + xm2 + ... +xmn = am

ou seja, n

xij = ai para i=1, 2, ... , mj=1

Restrições em relação a demanda:x11 + x21 + ... +xm1= b1

x12 + x22 + ... +xm2 = b2

.

x1n + x2n + ... +xmn = bm

ou seja, m

xij = bi para j=1, 2, ... , ni=1

Restrições implícitas:xij 0IMPORTANTE: Para que o problema tenha solução, a seguinte equação de balanço deve ser verificada:m n

ai = bji=1 j=1

Para solucionar o problema de transporte costuma-se representar seus dados conforme segue no Quadro 1.

Destinos ji 1 2 . . . . . n

Ofertaai

1x11

C11

x12

C12

. . . . . x1n

C1n a1

2 x21

C21

x22

C22

. . . . . x2n

C2n a2

.

...

.

.. . . . .

...

.

.xm1 xm2 . . . . . xmn

82

Origens

m Cm1 Cm2 Cmn am

Demandabj b1

b2 . . . . .bn

Quadro 1 – Representação dos dados dos problemas de transporte

6.3- ALGORITMO DO PROBLEMA DE TRANSPORTE

O algoritmo de transporte consiste em um método iterativo que compreende basicamente os seguintes passos:

1. Encontrar uma solução básica inicial;2. Verificar se a solução encontrada é ótima. Se for, pare. Caso contrário siga para o

passo 3;3. Determinar uma nova solução básica compatível e voltar ao passo 2.

Para facilitar o entendimento do algoritmo faremos seu estudo baseado em um exemplo prático, conforme segue:

Exemplo: Determinar, a partir dos dados apresentados no quadro abaixo, o plano para destinação de remessas de ervilhas enlatadas de três armazéns a três centros consumidores, de tal forma que o custo total de transporte seja minimizado.

Destinos (centros consumidores)j

i 1 2 3Oferta

ai

1C11=8 C12=5 C13=6

a1=120

2C21=15 C22=10 C23=12

a2=80

3C31=3 C32=9 C33=10

a3=80Demanda

bj

b1=150b2=70 b3=60

6.3.1- Obtenção da solução básica inicialObter uma solução básica inicial. Para calcularmos a solução básica inicial existem

diversos algoritmos matemáticos, dentre os quais destacam-se o Método do Canto Noroeste, o Método do Mínimo Custo e o Método de Vogel.

83

Orig

ens

(arm

azén

s)

Obs: Para iniciar a solução do problema deve-se primeiramente verificar se o sistema está equilibrado, caso não esteja deve-se proceder seu equilíbrio para então iniciar a sua solução.Para que o problema de transporte tenha solução, a seguinte equação de equilíbrio deve ser verificada: m n

ai = bji=1 j=1

No caso desta equação não ser satisfeita, significa que o sistema não está equilibrado. Caso isso ocorra, deve-se criar uma origem ou destino fictício para que o balanceamento possa ocorrer.

EXEMPLO DE UM PROBLEMA NÃO EQUILIBADO

Uma companhia locadora de automóveis se defronta com um problema de alocação resultante dos contratos de locação que permitem sejam os automóveis devolvidos em localidades outras que aquelas onde foram originalmente alugados. No presente momento há duas agências de locação (origens) com, respectivamente 15 e 13 carros excedentes e quatro outras agências (destinos) necessitando de 9, 6, 7, e 9 carros, respectivamente. Os custos unitários de transporte entre as locadoras são os seguintes:

Restabelecendo o Equilíbrio, temos:

84

ij

1 2 3 4 Oferta (ai)

Demanda(bj)

1

2

C11=45 C12=17 C13=21 C14=30a1=15

C21=14 C22=18 C23=19 C24=31a2= 13

b1=9 b2=6 b3= 7 b4= 9

Destinos (locadoras com déficit)

Ori

gen

s (l

oca

do

ras

com

exc

esso

)

x11 x12 x13 x14

x21 x22 x23 x24

Verificação da Equação de Equilíbrio:m n oferta demandaΣ ai = Σ bj 15+13 = 9+6+7+9

i=1 j=1 28 < 31 Sistema não-equilibrado!

ij

1 2 3 4 Oferta (ai)

Demanda(bj)

1

2

3

C11=45 C12=17 C13=21 C14=30a1=15

C21=14 C22=18 C23=19 C24=31a2= 13

b1=9 b2=6 b3= 7 b4= 9

Destinos (locadoras com déficit)

Ori

ge

ns

(lo

cad

ora

s c

om

exc

esso

)

(fictícia)

C31=0 C32=0 C33=0 C34=0a3= 3

Solução ótima encontrada após aplicação do Algoritmo de “Stepping-Stone” (será estudado no item 6.3.2):

O fato de haver alguma alocação positiva proveniente da origem fictícia indica que nem todas as demandas podem ser satisfeitas. Em particular, o destino 4 receberá automóveis a menos do que necessita.

Método do Canto Noroeste

Passo 1: Comece pela célula do canto superior esquerdo do quadro chamada célula (1,1), e aloque o valor máximo possível para x11, com o cuidado de não violar as restrições de oferta e demanda, ou seja, será alocado a x11 o menor valor entre a1 e b1.

ji 1 2 3

Ofertaai

1 120 a1=120

2 a2=80 3 a3=80

Demandabj b1=150 b2=70 b3=60

85

ij

1 2 3 4 Oferta (ai)

Demanda(bj)

1

2

3

a1=15

a2= 13

b1=9 b2=6 b3= 7 b4= 9

Destinos (locadoras com déficit)

Ori

gen

s (l

oca

do

ras

com

exc

esso

)

x11=0 x12 =6 x13=3 x14= 6

x21=9 x22 =0 x23=4 x24=0

(fictícia)a3= 3

x31=0 x32 =0 x33 =0 x34=3

(linha eliminada)

Passo 2: “Elimine” a linha ou coluna já completamente atendida, ou seja, se a1<b1, “elimine” todas as células da linha 1; se a1>b1, “elimine” todas as células da coluna 1; se a1=b1, então “elimine” apenas as células da coluna 1 ou as células da linha 1. Em seguida, subtraia o valor alocado da oferta a1 e da demanda b1.

Passo 3: Passe para a célula adjacente da linha ou coluna “não eliminada”. Se tanto a linha quanto a coluna adjacente já foram eliminadas, caminhe diagonalmente para a célula mais próxima. Em seguida faça a alocação conforme explicado no passo 1 e a eliminação da linha ou coluna conforme o passo 2. Repita esse passo até que todas as linhas e colunas tenham sido atendidas.

ji 1 2 3

ofertaai

1 120 120 0

2 80

3 80

bj

15030

70 60

ji 1 2 3

ofertaai

1 120 120 0

2 30 80 50

3 80

bj

150300

70 60

ji 1 2 3

ofertaai

1 120 120 0

2 30 50 80 50 0

3 80

bj

150300

7020

60

ji 1 2 3 ai

1 120 120

2 30 50 80 50 0

3 20 60 80 60 0

bj

150300

70200

600

86

Assim, a partir dessa solução (x11=120; x21=30; x22=50; x32=20; x33=60; x12=x13=x23=x31=0), pode-se chegar a o seguinte custo total de distribuição (não necessariamente o custo ótimo):

z = 8 x 120 + 15 x 30 + 10 x 50 + 9 x 20 + 10 x 60 = 2.690,00

Para verificar se este é o custo ótimo ou, caso, não seja, achá-lo, é necessário aplicar o Algoritmo de “Stepping-Stone” que veremos no item 6.3.2.

Método do Mínimo Custo

Os passos para aplicação deste método são idênticos aos passos do Método do Canto Noroeste, porém, iniciando a escolha da célula pela àquela como mínimo custo e caminhando sempre para o “próximo” mínimo custo.

j i 1 2 3 ai

18 5

706

50 a1=120 50 0

215

7010 12

10 a2=80 70

33

809 10

a3=80 0

bj

b1=15070 0

b2=700

b3=6010 0

O custo total de distribuição obtido para essa solução é dado por: 5 x 70 + 6 x 50 + 15 x 70 + 12 x 10 + 3 x 80 = 2060, que é inferior (e portanto “melhor”) que a solução obtida pelo Método do Canto Noroeste.

87

Método de Vogel

Normalmente, produz melhores soluções e, freqüentemente, a solução ótima. São previstos os seguintes passos:

Passo 1: Calcule os valores dos resíduos de cada uma das linhas e colunas, subtraindo o menor valor Cij do segundo menor o valor de Cij naquela linha ou coluna;

Passo 2: Escolha a linha ou coluna com o maior valor do resíduo (se houver empate, escolha arbitrariamente) e aloque o máximo possível de unidade à célula de menor Cij

daquela linha ou coluna;

Passo 3: “Elimine” a linha ou coluna já completamente atendida e retorne ao passo 1, recalculando os valores dos resíduos;

Passo 4: Termine quando “sobrar” apenas uma linha ou coluna, balanceando-a.

ji 1 2 3 ai

Resíduoda linha

18

70

5 6

50 120 50 0

6-5=16-5=16-5=1

215 10

70

12

10 80 70

12-10=212-10=212-10=2

33

80

9 10

80 0

9-3=6

*maior resíduo

bj

15070 0 70 0 60 10 0

Resíduoda coluna

8-3=515-8=7*maior resíduo

9-5=410-5=510-5=5

10-6=412-6=612-6=6 *maior resíduo

2ª eliminação

O custo total de distribuição correspondente é z = 8 x 70 + 6 x 50 + 10 x 12 + 10 x 70 + 3 x 80 = 1920, que é melhor que as soluções obtidas pelos métodos anteriores.

88

3ª eliminação

1ª eliminação

Conforme fica observado na apresentação dos métodos para cálculo de solução básica inicial, podemos encontrar uma solução (solução básica inicial de “boa qualidade”) ou mais afastada, conforme o método escolhido. O melhor método, conforme demonstrado, é o método de Vogel, o qual freqüentemente já nos fornece a solução ótima do problema de transporte. No entanto, é importante que fique claro que qualquer um dos métodos apresentados para o cálculo da solução básica inicial permitirá que, após a aplicação do algoritmo matemático de programação linear específico, o resultado final do problema de transporte (custo ótimo de distribuição) seja o mesmo.

A vantagem de se utilizar um método de cálculo da solução básica inicial mais preciso está no fato de se fazer menos iterações no algoritmo matemático de programação linear para cálculo do custo ótimo, reduzindo-se o tempo de processamento dos cálculos.

6.3.2- Algoritmo de “Stepping-Stone”

O Método “Stepping-Stone” consiste em uma seqüência de passos (algoritmo) que sempre chega à solução ótima a partir de uma solução inicial.

A partir da solução básica inicial encontrada, este método pesquisará se alguma melhor solução pode ser obtida.

Consideremos o quadro abaixo com a solução básica inicial encontrada a partir do Método do Canto Noroeste:

ji 1 2 3 ai

1c11=8

x11=120c12=5 c13=6

a1=120

2c21=15

x21=30c22=10

x22=50c23=12

a2=80

3c31=3 c32=9

x32=20c33=10

x33=60 a3=80

bj b1=150 b2=70 b3=60

Cada célula vazia (no caso, 9 – (m + n –1) células) representa uma variável não-básica que poderia entrar na base (para entrar, a contribuição específica da variável não-básica deve implicar a redução do custo total).

Calculando essas contribuições para a célula x12:

1. Aloque 1 unidade a x12. Assim,não é mais 70, mas 71 o total de unidades da coluna 2.2. Para não violar a restrição da coluna 2, uma unidade deverá ser subtraída ou de x22 (50) ou de x32 (20). Subtraia 1 de x22, que passa a ter 49 unidades, e a coluna 2 com um total de 70, novamente.

89

3. Agora, a linha 2 totaliza 79 e não mais 80, o que pode ser corrigido com a adição de uma unidade a x21 (30 31).4. A coluna 1 fica então com um total de 151, o que pode ser corrigido com a subtração de uma unidade de x11.5. A linha 1 é automaticamente corrigida em função do passo anterior.

Em outras palavras, deve-se determinar para cada variável não-básica um “caminho fechado” (closed-loop) para que se obtenha a eventual contribuição específica à função objetivo.

Para determinar-se o caminho:a) Adote um sentido (ou horário ou anti-horário);b) Há somente um caminho fechado para cada célula vazia;c) Os extremos do caminho (a menos da variável não-básica) devem ser células ocupadas;d) Células ocupadas podem ser “puladas”, assim como um caminho pode apresentar “cruzamentos”;e) Exatamente uma adição e uma subtração devem aparecer em cada linha e coluna do caminho traçado.

Assim, para a variável x12:x12 x22 x21 x11 x12

+1 –1 +1 –1

Atribuindo os valores de custo pertinentes:*C12 = C12 – C22 + C21 – C11 = 5 – 10 + 15 – 8 = 2

Realizando os cálculos devidos para todas as células vazias:Variável Caminho Fechado Contribuiçãox12 x12 x22 x21 x11 x12 +2x13 x13 x33 x32 x22 x21 x11 x13 +2x23 x23 x33 x32 x22 x23 +1x31 x31 x21 x22 x32 x31 –11

Assim, a variável que entra será aquela que contribui com a menor redução no valor da função objetivo, que no caso diz respeito à variável x31. O valor a ser alocado a esta célula deverá ser o máximo, de tal forma que nenhuma célula do caminho fechado fique com valores negativos.Já para a variável que sai, esta deverá ser aquela, com sinal negativo no caminho fechado, com alocação inicial de menor valor absoluto. No caso, para o caminho referente a x31:

x31 x21 x22 x32

Sinal no caminho fechado + – + –Alocação inicial 0 30 50 20

Portanto, x32 deverá ser a variável que sai.Assim sendo, deverá realocar-se o valor da variável que sai pelo “caminho fechado”

da variável que entra.x31 = 0 + 20 = 20x21 = 30 – 20 = 10

90

x22 = 50 + 20 = 70x32 = 20 – 20 = 0O novo quadro resultante é apresentado a seguir:

j i 1 2 3

Ofertaai

1 120=x11 120

2 10=x21

70=x22

80

3 20=x31 60=x33

80

Demandabj 150 70 60

Para verificar a possibilidade de existência de melhores soluções, calcule novamente, a partir dos novos caminhos fechados, os valores das contribuições das variáveis não-básicas. Se todas essas contribuições forem positivas, a solução ótima foi encontrada.

6.3.3- Cálculo da Solução Ótima Através do Problema Dual

A solução ótima de um problema de transporte pode ser também encontrada a partir do Problema Dual. Da mesma forma como o Método de “Stepping-Stone”, o método através do problema dual consiste em uma seqüência de passos (algoritmo) que sempre chega à solução ótima a partir de uma solução inicial.

A partir da solução básica inicial encontrada, este método pesquisará se alguma melhor solução pode ser obtida.Consideremos o quadro abaixo com a solução básica inicial encontrada a partir do Método do Canto Noroeste:

j i 1 2 3 ai

1c11=8

x11=120c12=5 c13=6

a1=120

2c21=15

x21=30c22=10

x22=50c23=12

a2=80

3c31=3 c32=9

x32=20c33=10

x33=60 a3=80

bj b1=150 b2=70 b3=60

Onde ui é a variável dual correspondente as restrições das origens e vj é a variável dual correspondente as restrições dos destinos.

Assim como no Método de “Stepping-Stone”, cada célula vazia (no caso, 9 – (m + n –1) células) representa uma variável não-básica que poderia entrar na base (para entrar, a contribuição específica da variável não-básica deve implicar a redução do custo total).

91

ui

u1

u2

u3

vj v1 v2 v3

Para calcular essas contribuições atribui-se o valor zero a um dos elementos ui ou vj

(qualquer um dos dois) e calcula-se o valor restante para ui ou vj de sorte que, para cada variável básica, ui + vj = Cij. Em seguida, calcula-se para cada variável não-básica, a quantidade Cij-ui-vj (contribuição específica). Se todas essas quantidades forem não-negativas, a solução presente é ótima. Caso contrário, a solução corrente não é ótima.

Calculando-se ui e vj com relação às células das variáveis básicas do quadro acima e escolhendo-se arbitrariamente u2=0, tem-se:Cij = ui + vj

Célula (2,1): C21 = u2 + v1, 15 = 0 + v1, ou v1=15Célula (2,2): C22 = u2 + v2, 10 = 0 + v2, ou v2=10 Célula (1,1): C11 = u1 + v1, 8 = u1 + 15, ou u1= -7Célula (3,2): C32 = u3 + v2, 9 = u3 + 10, ou u3= -1Célula (3,3): C33 = u3 + v3, 10 = -1 + v3, ou v3= 11

Calculando-se Cij-ui-vj para cada uma das células referente às variáveis não-básicas do quadro, tem-se:Célula (1,2): C12-u1-v2 = 5-(-7)-10 = +2Célula (1,3): C13-u1-v3 = 6-(-7)-11 = +2Célula (2,3): C23-u2-v3 = 12-0-11 = +1Célula (3,1): C31-u3-v1 = 3-(-1)-15 = -11

Tendo em vista que, pelo menos um dos valores Cij-ui-vj é negativo, a solução corrente não é ótima e se pode obter uma solução melhor aumentando-se a alocação da célula possuidora do maior valor negativo, no caso, a célula (3,1). O valor a ser alocado a esta célula deverá ser o máximo, de tal forma que nenhuma célula do caminho fechado correspondente fique com valores negativos.

Para a variável que sai o procedimento é o mesmo de “Stepping-Stone”, esta deverá ser aquela, com sinal negativo no caminho fechado, com alocação inicial de menor valor absoluto. No caso, para o caminho referente a x31:

x31 x21 x22 x32

Sinal no caminho fechado + – + –Alocação inicial 0 30 50 20

Portanto, x32 deverá ser a variável que sai.Assim sendo, deverá realocar-se o valor da variável que sai pelo “caminho fechado”

da variável que entra.x31 = 0 + 20 = 20x21 = 30 – 20 = 10x22 = 50 + 20 = 70x32 = 20 – 20 = 0

O novo quadro resultante é apresentado a seguir:j

i 1 2 3Oferta

ai

92

1 120=x11 120

2 10=x21

70=x22

80

3 20=x31 60=x33

80

Demandabj 150 70 60

Para verificar a possibilidade de existência de melhores soluções, atribui-se novamente o valor zero a um dos elementos ui ou vj, calcula-se os outros ui e vj e, em seguida, os valores de Cij-ui-vj (contribuição específica). Se todas essas contribuições forem positivas, a solução ótima foi encontrada.

É importante observar que qualquer dos métodos utilizados, seja “Stepping-Stone” ou através do Problema Dual, a solução ótima encontrada no final do problema de transportes é a mesma.

No planejamento de uma rede de distribuição, a “função transporte” agrega o valor “lugar” ao produto, ou seja, disponibiliza o produto no local onde o mercado o exige. Não adianta nada, do ponto de vista do mercado, o fornecedor dispor de um bom produto que não é encontrado pelo cliente no momento que ele deseja.

Assim, no processo geral de produção e comercialização do produto, o sistema transporte tem um papel fundamental e indispensável e, desta forma, deve ser cuidadosamente planejado com o objetivo de atingir o que se espera dele, com o menor acréscimo no custo final do produto.

Capítulo VII PROGRAMAÇÃO INTEIRA

7.1- INTRODUÇÃO

Um problema de Programação Inteira é um problema de Programação Linear com o requisito adicional de que o valor de todas as variáveis sejam números inteiros. Resolve-se o problema de Programação Linear através de algum método estudado, se a solução for inteira, então este é o resultado do problema de Programação Inteira. Caso contrário vamos usar o algoritmo de Bifurcação e Limite.

7.2- ALGORITMO DE BIFURCAÇÃO E LIMITE

Se a primeira solução contém uma variável não inteira, por exemplo:

xj variável não inteiraentão,

i1 < xj < i2 onde i1 e i2 são inteiros, consecutivos e não-negativos.

93

Dois novos modelos de Programação Inteira são então criados aumentando o problema de Programação Inteira Original com as restrições:

xj ≤ i1 e xj ≥ i2

Este processo chama-se bifurcação e tem o efeito de contrair a região viável de um modo que elimina de considerações posteriores a solução corrente não inteira para xj preservando ainda todas as possíveis soluções inteiras do problema original.

Exemplo:Problema 1:

MAX Z = 10x1 + x2

S.A. 2x1 + 5x2 ≤ 11 x1 , x2 ≥ 0 e inteiros

Resolvendo pelo Método Simplex temos: BASE -Z x1 x2 x3 bi

x3 0 2 5 1 11-z 1 10 1 0 0

BASE -Z x1 x2 x3 bi

x1 0 1 2,5 0,5 5,5-z 1 0 -24 -5 -55

Solução Ótima:x1 =5,5 x2 = 0 Z=55

Como x1 =5,5 não é inteira, então vem:5 < x1 = 5,5 < 6x1 ≤ 5x1 ≥ 6

Problema 2:MAX Z = 10x1 + x2

S.A. 2x1 + 5x2 ≤ 11x1 ≤ 5

x1 , x2 ≥ 0 e inteiros

Problema 3:MAX Z = 10x1 + x2

S.A. 2x1 + 5x2 ≤ 11x1 ≥ 6

x1 , x2 ≥ 0 e inteiros

Como no Problema 2 x2 = 0,2, vem:

94

Solução Ótima:x1 =5 x2 = 0,2 Z=50,2

Solução Ótima:Não possui solução viável

0 < x2 = 0,2 < 1x2 ≤ 0x2 ≥ 1Problema 4:

MAX Z = 10x1 + x2

S.A. 2x1 + 5x2 ≤ 11x1 ≤ 5x2 ≤ 0

x1 , x2 ≥ 0 e inteiros

Problema 5:MAX Z = 10x1 + x2

S.A. 2x1 + 5x2 ≤ 11x1 ≤ 5x2 ≥ 1

x1 , x2 ≥ 0 e inteiros

Como essas aproximações são inteiras não é mais necessário bifurcações adicionais.

7.2.1- LimiteA bifurcação continua até ser obtida uma primeira aproximação inteira. O valor da

FO referente a esta primeira aproximação inteira torna-se um limite inferior (problema de maximização) para o problema e, todos os modelos, cujas primeiras aproximações, inteiras ou não, conduzam a valores da FO menores que o limite inferior, são descartados.

7.2.2- ConsideraçõesBifurca-se sempre a partir do modelo de programação que se revela mais próximo

do ótimo. Quando há um certo número de candidatos a posteriores bifurcações, escolhe-se a que apresentar o maior valor de Z, se a função objetivo for a maximizar, ou a de menor valor de Z, se a função objetivo for a minimizar.

São acrescentadas restrições adicionais, uma de cada vez. Se a primeira aproximação envolver mais de uma variável não inteira, as novas restrições serão impostas sobre a variável que está mais longe de se tornar inteira, isto é, a variável cuja parte decimal estiver mais próxima de 0,5. Em caso de empate, escolhe-se arbitrariamente uma das variáveis.

Exemplo: Se obtemos em um problema o resultado x1 =2,55, x2 = 1,5 com Z = 12,75, como x2 está mais afastado de uma solução inteira que x1 utiliza-se x2 para gerar as bifurcações x2 ≤ 1 e x2 ≥ 2.7.2.3- Diagrama Esquemático

Um diagrama esquemático (árvore) pode ser gerado a partir da resolução do problema pelo algoritmo de Bifurcação e Limite retratando os resultados obtidos.

95

Solução Ótima:x1 =5 x2 = 0 Z=50

Solução Ótima:x1 =3 x2 = 1 Z=31

DIAGRAMA DO EXEMPLO APRESENTADO

1

Exercício Proposto:

Resolva o seguinte problema de programação inteira pelo algoritmo de Bifurcação e Limite e desenvolva seu diagrama:

MAX Z = 3x1 + 4x2

S.A. 2x1 + x2 ≤ 62x1 + 3x2 ≤ 9

x1 , x2 ≥ 0 e inteiros

ANEXO 1

Estudo de Caso: Composição de Fertilizantes

96

Z =55(5,5 ; 0) 3

2

z = 50,2

(5 ; 0,2)

x1 ≤ 5

x1 ≥ 6

Sol. não-viável

x2 ≤ 0

x2 ≥ 1

4

5

z = 50

(5 ; 0)

z = 31

(3 ; 1)