ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de...

129
ESCOLA SUPERIOR DE TECNOLOGIA UNIVERSIDADE DO ALGARVE CESE em Engenharia Civil - Construção INTRODUÇÃO À INVESTIGAÇÃO OPERACIONAL PROGRAMAÇÃO LINEAR JOÃO MANUEL CARVALHO ESTÊVÃO FARO 1998

Transcript of ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de...

Page 1: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

ESCOLA SUPERIOR DE TECNOLOGIA

UNIVERSIDADE DO ALGARVE

CESE em Engenharia Civil - Construção

INTRODUÇÃO À

INVESTIGAÇÃO OPERACIONAL

PROGRAMAÇÃO LINEAR

JOÃO MANUEL CARVALHO ESTÊVÃO

FARO

1998

Page 2: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- i -

PREFÁCIO

Os presentes apontamentos constituiram a base das aulas práticas

de Investigação Operacional do 1º CESE em Engenharia Civil -

Construção, ano lectivo de 1993/94, e das aulas teóricas e práticas

dos 2º e 3º CESEs, anos lectivos de 1995/96 e 1997/98.

Os apontamentos visam iniciar os alunos no estudo da

programação linear, numa perspectiva da engenharia civil, sem

pretender substituir a bibliografia existente sobre o assunto. O texto

está ilustrado com vários exemplos resolvidos, assim como propõe

um conjunto de outros problemas cujas soluções se apresentam

num anexo.

Actividade docente do autor no âmbito da disciplina de Investigação

Operacional:

1993/94 - aulas práticas

1995/96 - aulas teóricas e práticas

1997/98 - aulas teóricas

Escola Superior de Tecnologia, UAlg

28 de Setembro de 1998

������� � � �� ��� ��������

Page 3: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- ii -

ÍNDICEPág.

1. Modelos de decisão na investigação operacional...................................1

1.1. Introdução..........................................................................................1

1.2. O papel do modelo.............................................................................2

2. Programação linear...............................................................................3

2.1. Aplicações da programação linear......................................................4

2.2. Formulação matemática.....................................................................8

2.2.1. Hipóteses do modelo de programação linear..................................10

2.2.2. Formas de apresentação de um programa linear.............................11

2.2.2.1. Forma canónica..........................................................................11

2.2.2.2. Forma padrão.............................................................................12

2.3. Resolução gráfica.............................................................................13

2.4. Problemas propostos........................................................................15

3. Noções de algebra linear.....................................................................19

3.1. Espaços vectoriais............................................................................19

3.2. Sistemas de equações lineares indeterminados.................................21

3.3. Determinação de soluções básicas....................................................23

3.4. Mudança de solução básica..............................................................26

3.5. Problemas propostos........................................................................29

4. Método simplex..................................................................................31

4.1. Mudança de solução básica admissível.............................................33

4.2. Melhoria da função objectivo...........................................................42

4.3. Algoritmo primal do simplex............................................................44

4.4. Casos particulares............................................................................49

4.4.1. Soluções óptimas alternativas........................................................49

4.4.2. Empate no critério de entrada na base...........................................52

Page 4: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- iii -

4.4.3. Empate no critério de saída da base...............................................52

4.5. Inexistência de uma solução básica admissível inicial......................56

4.5.1. Método das duas fases..................................................................58

4.5.2. Método da penalização da função objectivo..................................63

4.6. Problemas propostos........................................................................67

5. Dualidade na programação linear........................................................70

5.1. Definição do problema dual.............................................................70

5.2. Passagem do primal ao dual.............................................................73

5.3. Teoria da dualidade na programação linear......................................75

5.3.1. Teoremas básicos da dualidade.....................................................75

5.3.2. Teorema dos desvios complementares...........................................76

5.4. Algoritmo dual do simplex...............................................................77

5.4.1 Inexistência de uma solução admissível inicial do dual...................82

5.5. Problemas propostos........................................................................87

6. Pós-Optimização.................................................................................89

6.1. Introdução de uma variável..............................................................89

6.2. Introdução de uma restrição.............................................................89

7. Programação linear inteira...................................................................90

7.1. Algoritmo dos planos de corte..........................................................91

7.1.1. Corte fraccionário de Gomory para P.L. inteira pura.....................92

7.1.2. Corte fraccionário de Gomory para P.L. inteira mista....................99

7.2. Algoritmo da bifurcação e limite....................................................102

7.3. Problemas propostos......................................................................111

Bibliografia...........................................................................................113

Page 5: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 1 -

1. MODELOS DE DECISÃO NA INVESTIGAÇÃO OPERACIONAL

1.1. INTRODUÇÃO

Durante a Segunda Guerra Mundial, constituiram-se em Inglaterra gruposde cientistas e engenheiros, de diversas áreas do conhecimento, com oobjectivo de investigar sobre assuntos considerados novos e que fugiam àsrotinas militares da altura, tais como: aumentar a eficácia do radar, o uso decanhões anti-aéreos, tácticas anti-submarinos, escoltas navais, operações deminagem, entre outros. A eficiência desses grupos deveu-se mais aoengenho dos cientistas para a obtenção de dados e informações, e suasubsequente análise, do que ao desenvolvimento de técnicas específicas.Esse conjunto de processos e métodos científicos de análise usados,denominou-se por investigação operacional, dado que surgiu deinvestigações aplicadas às operações militares.

Com o fim da guerra, esta forma de abordar problemas complexos suscitouo interesse para a sua aplicação a vários problemas da vida civil. Dessesproblemas salientam-se os relacionados com tarefas de gestão de recursos,como, por exemplo, a melhor forma de gerir uma empresa ou a forma maiseconómica de elaborar uma dieta alimentar que satisfaça determinadosrequisitos.

A investigação operacional constitui um novo ramo científico, independentedos outros, que proporciona uma abordagem científica para a tomada dedecisões, baseada essencialmente em técnicas quantitativas, ao invés deuma abordagem qualitativa, baseada na experiência e intuição de quemtoma as decisões.

Existe um conjunto de características comuns à maior parte dos problemasde investigação operacional:

• dizem respeito a planeamento e previsão

• são descritos e analisados em termos numéricos

• existem restrições, como seja a limitação de recursos

• têm objectivos a optimizar

• são problemas sem solução imediata

Page 6: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 2 -

1.2. O PAPEL DOS MODELOS

O conceito de modelo é fundamental na investigação operacional. Modelo éentendido como um meio de representação que possua algumas dascaracteríticas do projecto ou sistema que se pretende entender e controlar, eé definido por uma função objectivo e um conjunto de restrições, expressosem termos de variáveis (que determinam as alternativas) do problema.

O processo de tomada de decisão na investigação operacional consiste emconstruir um modelo de decisão e resolvê-lo de modo a determinar-se adecisão óptima. Para a solução de um modelo, apesar de exacta, tersignificado real, esse modelo tem que proporcionar uma representaçãoadequada da realidade.

MÉTODOSTRADICIONAIS

IMPLEMENTAÇÃODOS RESULTADOS

SOLUÇÃO DOMODELO

MODELO

DEFINIÇÃO DO PROBLEMA

SISTEMAREAL

Diagnóstico

Hipóteses simplificadoras

RevisãoDedução

Validação da solução

FIGURA 1

Uma situação real pode envolver um número substancial de variáveis erestrições, no entanto, é usual que só uma pequena fracção dessas variáveise restrições, traduza realmente o comportamento do sistema real. Destaforma, a simplificação do sistema real com o propósito da construção de ummodelo, deve-se concentrar primeiramente na identificação das variáveis erestrições dominantes, assim como outros dados que sejam pertinentes paraa tomada de decisão. A figura 1 ilustra, de forma esquemática, o queanteriormente foi descrito.

Page 7: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 3 -

2. PROGRAMAÇÃO LINEAR

A programação linear, nascida com os trabalhos de George B. Dantzing em1947, constitui a primeira técnica explícita, e uma das mais desenvolvidas eutilizadas, da investigação operacional e é uma classe da programaçãomatemática.

A palavra programação, neste contexto, não se refere à programação decomputadores, mas é, essencialmente, um sinónimo de planeamento. Aprogramação linear envolve um modelo de planeamento de actividades paraa obtenção de uma solução óptima. A solução óptima é obtida maximizandoou minimizando uma função linear que traduza o objectivo do problema,definida sobre um poliedro convexo (conjunto de restrições ao problema).

Os cálculos efectuados na resolução de problemas, que envolvam modelosmatemáticos de programação linear, são tipicamente iterativos. Como tal, oprocesso pode tornar-se tedioso, ou mesmo de impraticável aplicação aproblemas complexos, com grandes quantidades de dados. Dado ageneralização do uso do computador pessoal, e a existência de programas decálculo automático à venda no mercado, é difícil dissociar as técnicas daprogramação linear da sua implementação em computadores. Desta forma,pode ser processada grande quantidade de informação em curto espaço detempo, o que permite a resolução de problemas de grande complexidade, ereduzir a morosidade de cálculo manual. Nesta perspectiva, apresenta-se emanexo a estes apontamentos um programa de cálculo automático onde estãoimplementados os algoritmos em estudo por forma a auxiliar a compreensãodas matérias.

A resolução de problemas reais por aplicação de modelos de programaçãolinear não é tarefa fácil, pois a formulação dos problemas desse modo éainda incipiente. No entanto, a importância da programação linear nãodepende só da sua aplicação directa a problemas reais, mas também émotivada por proporcionar uma importante fundação ao desenvolvimento desoluções para outras técnicas da programação matemática, como sejam aprogramação inteira, a programação não-linear e a programação estocástica.

Page 8: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 4 -

2.1. APLICAÇÕES DA PROGRAMAÇÃO LINEAR

A programação linear tem aplicação prática em inúmeros problemas, de quese destacam tipicamente os seguintes:

• PROBLEMA DE MISTURA

Foi um dos primeiros problemas a ser resolvido, através daprogramação linear, por Dantzing. Este problema caracteriza-se porse pretender obter, com custo mínimo ou lucro máximo, um ou váriosprodutos, que satisfaçam certos requisitos, através da combinação devários ingredientes possuidores dessas características a diferentesníveis (exemplos: rações para animais, adubos, produtos alimentares,produtos farmacêuticos, ligas metálicas, tintas, gasolinas, etc.).

• PROBLEMA DE TRANSPORTE

Este problema admite muitas variantes, sendo a sua forma maissimples a seguinte: pretende-se efectuar o transporte de umdeterminado produto (matérias primas, produtos fabricados, etc.), quese encontra em m origens diferentes (armazéns, fábricas, portos,

etc.), para n destinos distintos (fábricas, mercados, consumidoresfinais, portos, etc.). Conhecido o custo de transporte de uma unidadede produto associado a cada percurso origem/destino, procede-se àdeterminação do plano de distribuição que minimize o custo total detransporte.

• PROBLEMA DA PRODUÇÃO

Trata-se de uma das aplicações mais frequentes em gestão deempresas, em que se pretende determinar a produção de n produtosda empresa de acordo com os recursos disponíveis, as condiçõestecnológicas existentes e a situação de mercado, com vista àmaximização do resultado da exploração.

• PROGRAMAÇÃO SEQUENCIAL DA PRODUÇÃO

É um problema de planeamento de produção que pode serconsiderado como um problema tipo, consistindo no escalonamentoda produção ao longo de vários períodos de tempo, conhecida aprocura, capacidade de produção e custos de produção earmazenagem ao longo do tempo.

Page 9: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 5 -

Do ponto de vista da engenharia civil, muito poucos problemas de interesseprático podem ser formulados como programas lineares sem que dissoimplique um elevado grau de simplificação. No entanto é possívelsimplificar problemas não lineares de optimização, usando técnicas delinearização. Quase todos os problemas não lineares podem ser resolvidoscomo uma sequência repetitiva de aproximações lineares que convergempara a solução exacta do problema não linear. Este poderoso método deresolução denomina-se por programação linear sequêncial.

Alguns problemas lineares de optimização estrutural:

• ANÁLISE PLÁSTICA LIMITE

Determinação da mínima carga de colapso de uma estrutura• OPTIMIZAÇÃO DE TRELIÇAS

Este tipo de problema aplica-se a estruturas metálicas na minimizaçãodo peso da estrutura, e a estruturas irregulares bidimensionais debetão armado, dimensionadas através de modelos de escoras etirantes, onde se pretende minimizar a quantidade de armadura.

• OPTIMIZAÇÃO DE PÓRTICOS PLANOS EM REGIME PLÁSTICO

Análise rigido-plástica de estruturas metálicas em que se pretendeminimizar o volume de material usado.

• OPTIMIZAÇÃO DO TRAÇADO DE CABOS DE PRÉ-ESFORÇO

Nestes problemas pretende-se minimizar o valor do pré-esforçoaplicado.

A melhor forma de se iniciar o estudo da programação linear é através deum exemplo simples de aplicação.

EXEMPLO 1

Um município algarvio disponibilizou no seu orçamento uma verba de50000 contos para infra-estruturas de saneamento básico ao longo de duasvias municipais. A via "1" é uma estrada pavimentada com 3400 m e a via"2" é um caminho de terra batida com 5000 m, registando-se a existência de6 hab./100 m na primeira e 4 hab./100 m na segunda. As obras em causanão podem durar mais de 150 dias para não interferir com a época balnear.Sabendo que os custos médios das obras são 12 contos/m na via "1" e 8.5contos/m na via "2", e que se executam 25 m/dia e 50 m/dia,respectivamente, em cada uma das vias, diga como distribuiria as obras porcada via de modo a servir a máxima população possível.

Page 10: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 6 -

Formalização do exemplo 1�

Passo 1Elabora-se a lista de todas as variáveis de decisão que entram noproblema.

Neste caso:

x1 - comprimento da via "1" a infra-estruturarx2 - comprimento da via "2" a infra-estruturar

A cada variável está associada uma actividade.

actividade 1 - execução de infra-estruturas na via "1".actividade 2 - execução de infra-estruturas na via "2".

A medida quantitativa de cada actividade designa-se por nível deactividade.

Passo 2Enumeração de todas as restrições ao problema.

Neste caso sabe-se que:

- cada metro de via "1" com infra-estruturas custa 12 contos, logo atotalidade de metros executados custará 12x1.

- cada metro de via "2" com infra-estruturas custa 8.5 contos, logo atotalidade de metros executados custará 8.5x2.

Como o custo total não pode ultrapassar a verba em orçamento, isso traduz-se algebricamente em:

• 12x1 + 8.5x2 ≤ 50 000

Page 11: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 7 -

Relativamente à duração da obra:

- cada metro de via "1" com infra-estruturas demora 1/25 = 0.04 dias,logo a totalidade de metros executados durará 0.04x1.

- cada metro de via "2" com infra-estruturas demora 1/50 = 0.02 dias,logo a totalidade de metros executados durará 0.02x2.

Como a duração da obra não pode ser superior a 150 dias, isso traduz-sealgebricamente em:

• 0.04x1 + 0.02x2 ≤ 150

Para terem sentido prático, as variáveis x1 e x2 têm de assumir valores nãonegativos, e por outro lado não podem exceder o comprimento das vias, oque se traduz por:

• x1 ≤ 3400• x1 ≥ 0• x2 ≤ 5000• x2 ≥ 0

� Passo 3Definir a função que traduz o objectivo do problema.

Neste problema pretende-se servir o maior número de pessoas com infra-estruturas, ou seja maximizar o número de pessoas abrangidas pelas obras.

- cada metro de via "1" vai corresponder a 6/100 = 0.06 pessoas, logo atotalidade de metros executados corresponderá a 0.06x1.

- cada metro de via "2" vai corresponder a 4/100 = 0.04 pessoas, logo atotalidade de metros executados corresponderá a 0.04x2.

A função objectivo será:

• maximizar z = 0.06x1 + 0.04x2

Page 12: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 8 -

2.2. FORMULAÇÃO MATEMÁTICA

Os exemplos enunciados anteriormente podem ser formulados de acordocom um modelo matemático bastante geral que consiste na determinação devalores não negativos para as n variáveis x1, x2,...,xj,..., xn de modo a

satisfazer um sistema de m equações ou inequações lineares que

maximizem ou minimizem uma função linear Z (real) dessas variáveis.

maximizar (minimizar) Z = c1x1 + c2x2 +...+ cjxj +...+ cnxn

sujeito a: (restrições)a11x1 + a12x2 +...+ a1jxj +...+ a1nxn ≤ (ou = ou ≥) b1

a21x1 + a22x2 +...+ a2jxj +...+ a2nxn ≤ (ou = ou ≥) b2

...ai1x1 + ai2x2 +...+ aijxj +...+ ainxn ≤ (ou = ou ≥) bi

...am1x1 + am2x2 +...+ amjxj +...+ amnxn ≤ (ou = ou ≥) bm

x1 , x2 , ... , xj ,..., xn ≥ 0 (restrições de não negatividade)

Designando-se por:

Z - função objectivo (função critério)xj - variáveis de decisão (variáveis principais)aij - coeficientes técnicosbi - termos independentescj - coeficientes da função objectivo

com i = 1, 2, ..., m e j = 1, 2, ..., n

O conjunto de soluções que satisfaçam as restrições designam-se porsoluções admissíveis.

A solução admissível que optimiza a função objectivo designa-se porsolução óptima admissível.

Page 13: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 9 -

Podem efectuar-se operações convenientes de modo a alterar a forma deapresentação de qualquer problema de programação linear:

i) mínimo Z = − máximo (−Z)

ii) ai1x1 + ai2x2 +...+ ainxn ≥ bi ⇔ −ai1x1 − ai2x2 −...− ainxn ≤ −bi

iii)

a x + a x +...+ a x = b

a x + a x +...+ a x b

a x + a x +...+ a x b i1 1 i2 2 in n i

i1 1 i2 2 in n i

i1 1 i2 2 in n i

⇔≤

iv) Se xj não tem restrição ao sinal, pode exprimir-se como a diferençade duas variáveis não negativas: xj = xj

− xj�

com xj�

, xj�

≥ 0

Exemplo

Apresentação do problema do exemplo 1 formulado de acordo com omodelo matemático enunciado.

max. Z = 0.06x1 + 0.04x2

s.a

12x1 + 8.5x2 ≤ 50 000

0.04x1 + 0.02x2 ≤ 150

x1 ≤ 3400

x2 ≤ 5000

x1 , x2 ≥ 0

Page 14: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 10 -

2.2.1. HIPÓTESES DO MODELO DE PROGRAMAÇÃO LINEAR

O modelo de programação linear não se aplica a todos os casos e situações.A sua aplicação requer que se assumam como verdadeiras as seguinteshipóteses:

• COEFICIENTES CONSTANTES

Nos modelos de programação linear os coeficientes aij, bi e cj sãoconsiderados constantes.

• PROPORCIONALIDADE

Assume-se que o valor de venda ou compra de uma unidade deproduto j é proporcional ao nível de produção xj, sendo cjxj o valor devenda ou compra dessa produção. De igual modo assume-se que oscoeficientes aij são independentes de xj , qualquer que seja xj nãonegativo.

• ADITIVIDADE

Sendo a hipótese da aditividade verdadeira, implica que o consumoou produção total de um dado produto seja igual à soma das váriasquantidades de produto que são consumidas ou produzidas quando seexecuta cada uma das actividades a um determinado nível. Estahipótese implica ainda que a função objectivo seja separável emrelação às variáveis. Se temos x1 , x2 , ... , xn e a função objectivo éZ(x1 , x2 , ... , xn) = Z(x), então Z(x) pode escrever-se como a somade n funções lineares, cada uma das quais envolvida apenas com umavariável do modelo, Z1(x1) + Z2(x2)+...+Zn(xn), onde Zj(xj) é acontribuição da variável xj para o valor da função objectivo.

• VARIAÇÃO CONTÍNUA

Estamos a considerar que cada uma das variáveis do modelo podeassumir qualquer valor real no seu intervalo de variação. Quando asvariáveis só poderem tomar valores inteiros passa-se a lidar com ummodelo de programação inteira.

• NÃO NEGATIVIDADE

Supõe-se que o nível de uma actividade pode assumir qualquer valornão negativo de um dado intervalo.

Page 15: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 11 -

2.2.2. FORMAS DE APRESENTAÇÃO DE UM PROGRAMA LINEAR

Tendo em vista a resolução de um problema de programação linear, estepode ser escrito em várias formas típicas.

2.2.2.1. FORMA CANÓNICA

As características desta forma são as seguintes:

i) As variáveis são todas não negativas.

ii) As restrições são todas do tipo ≤.

iii) A função objectivo é do tipo maximizar.

max. Z = c1x1 + c2x2 +...+ cjxj +...+ cnxn

s. aa11x1 + a12x2 +...+ a1jxj +...+ a1nxn ≤ b1

a21x1 + a22x2 +...+ a2jxj +...+ a2nxn ≤ b2

...ai1x1 + ai2x2 +...+ aijxj +...+ ainxn ≤ bi

...am1x1 + am2x2 +...+ amjxj +...+ amnxn ≤ bm

x1 , x2 , ... , xj ,..., xn ≥ 0

Page 16: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 12 -

2.2.2.2. FORMA PADRÃO

As características desta forma são as seguintes:

i) Todas as restrições são equações com excepção das que respeitamà não negatividade.

ii) Os termos independentes são todos não negativos.

iii) Todas as variáveis de decisão são não negativas.

iv) A função objectivo pode ser para maximizar ou minimizar.

max. (min.) Z = c1x1 + c2x2 +...+ cjxj +...+ cnxn

s. aa11x1 + a12x2 +...+ a1jxj +...+ a1nxn = b1

a21x1 + a22x2 +...+ a2jxj +...+ a2nxn = b2

...ai1x1 + ai2x2 +...+ aijxj +...+ ainxn = bi

...am1x1 + am2x2 +...+ amjxj +...+ amnxn = bm

x1 , x2 , ... , xj ,..., xn ≥ 0

A passagem de um programa linear cujas restrições sejam inequações, paraa forma padrão, pode ser efectuada através da criação de um conjunto devariáveis não negativas, que se designam por variáveis de desvio, poiscorrespondem ao desvio do valor da restrição ao seu limite.

As variáveis de desvio podem-se dividir em dois grupos distintos:

• variáveis de folga, quando a variável é adicionada a umainequação do tipo ≤ por forma a se obter uma igualdade.

• variáveis de excesso, quando a variável é subtraida a umainequação do tipo ≥ por forma a se obter uma igualdade.

Page 17: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 13 -

2.3. RESOLUÇÃO GRÁFICA

Os problemas com apenas duas variáveis podem resolver-se graficamentecom grande facilidade. A existência de um número superior de variáveis dedecisão tornam os problemas de difícil resolução gráfica, pelo que nestescasos este processo não tem sentido.

Dado um programa linear, uma solução admissível é um ponto cujascoordenadas correspondem ao valor de cada uma das variáveis de decisão ,de forma a que cada restrição seja satisfeita para esses valores (incluindo asde não negatividade). Uma solução óptima é uma solução admissível quemaximiza ou minimiza a função objectivo, no conjunto de todas as soluçõesadmissíveis.

Na resolução gráfica de um programa linear, que envolva apenas duasvariáveis de decisão, constrói-se primeiramente um sistema de eixoscartesianos x1 , x2 . O passo seguinte consiste em traçar rectascorrespondentes ao limite de cada uma das restrições, definindo-se oconjunto de soluções admissíveis. A solução óptima é então identificadatraçando-se uma recta da família de rectas representas pela funçãoobjectivo, e movendo-se esta recta paralelamente a si mesma de modo aencontrar o seu óptimo no domínio das soluções admissíveis do problema.

Resolução do exemplo 1

Se considerarmos o problema do exemplo 1

max. Z = 0.06x1 + 0.04x2

s.a

12x1 + 8.5x2 ≤ 50 000

0.04x1 + 0.02x2 ≤ 150

x1 ≤ 3400

x2 ≤ 5000

x1 , x2 ≥ 0

Page 18: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 14 -

Traçam-se inicialmente as rectas, correspondentes às restrições, e define-seo espaço limitado pelas rectas (incluindo-as). O conjunto de soluçõesadmissíveis do problema fica sempre restringido ao primeiro quadranteatendendo às restrições de não negatividade (figura 2).

1) 12x1 + 8.5x2 = 50 000 passando por A (0; 5882.35) B (4166.67; 0)2) 0.04x1 + 0.02x2 = 150 passando por C (0; 7500) D (3750; 0)3) x1 = 3400 passando por E (3400; 0)4) x2 = 5000 passando por F (0; 5000)

Após o traçado da recta que define a família de rectas da função objectivo,esta é deslocada até ao ponto onde obtemos o limite das soluçõesadmissíveis que maximiza a função. O ponto "G" corresponde, neste caso, àsolução óptima do problema.

G (2750;2000) → x1 = 2750 m e x2 = 2000 m, sendo Z = 245 habitantes.

x 2

x 1

A

C

BD

G

O

F

E

Z(x)Conjunto desoluções admissíveis

1

2

3

4

FIGURA 2

Page 19: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 15 -

2.4. PROBLEMAS PROPOSTOS

Formule e resolva graficamente os seguintes problemas de programação linear:

2.1. Uma empresa de betoneiras fabrica dois modelos numa fábrica que está dividida

em duas secções: secção 1 onde se efectua o trabalho de montagem, e secção 2 onde se

realizam as operações de acabamento. A secção 1 exige 5 dias de trabalho por betoneira

grande e 2 por betoneira pequena e a secção 2 exige 3 dias de trabalho para qualquer

betoneira. Em virtude das limitações de pessoal e máquinas, a secção 1 só pode dispor

de 180 dias de trabalho por semana e a secção 2 de 135 dias. Se a empresa obtém um

lucro de 90 contos por betoneira grande e 60 contos por betoneira pequena, quantas

betoneiras de cada tipo deve produzir por semana para maximizar o seu lucro?

2.2. Uma fábrica de produtos cerâmicos produz dois tipos de azulejos, A e B. Cada tipo

de azulejo, para ser produzido, passa por dois sectores. O sector 1 tem disponível, por

mês, uma capacidade de produção de 1160 horas, enquanto o sector 2 tem disponível

uma capacidade de produção de 1100 horas, para os dois produtos. O tempo necessário

à produção de cada azulejo (em horas) em cada sector, as quantidades de azulejos

máximas requeridas mensalmente e os respectivos preços de venda unitários estão

descriminados na tabela seguinte. O objectivo da empresa é maximizar o montante das

vendas. Determine os valores a produzir de cada azulejo.

Sector Procura Preços

Azulejos 1 2 máxima unitários

A 0.03 0.02 36000 30$00

B 0.02 0.06 14000 65$00

2.3. Um consórcio de empresas comprou um terreno de 20 ha destinado a urbanizar. A

elaboração do projecto do referido empreendimento foi posta a concurso, estando as

equipas de projectistas sujeitas às condições do plano director municipal que limita a

construção a 25 vivendas unifamiliares ou 90 apartamentos por ha. No programa de

concurso estava estipulado a necessidade de construção de 200 vivendas e 100

apartamentos, devidos à existência de encomendas já realizadas, além disso a

estimativa de custos médios estipulada pelo consórcio apontava para 18000

contos/vivenda e 11000 contos/apartamento. A disponibili dade orçamental estipulada é

de 12.24 milhões de contos, sendo o valor médio de venda de 25850 contos/vivenda e

15000 contos/apartamento. Será adjudicada a elaboração do projecto à equipa de

projectistas que apresente a proposta de maior lucro para a empresa. Caso pertencesse à

equipa de projectistas envolvida no concurso, qual seria o número de vivendas e

apartamentos da sua proposta?

Page 20: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 16 -

2.4. Um refeitório de uma fábrica de pré-fabricados para construção fornece pequenas

refeições aos seus trabalhadores. Um dos pratos confeccionados é constituído à base de

dois produtos alimentares. Sabendo que 1 kg de produto 1 custa 300$00 e fornece 200

calorias e 23 unidades de gordura, e 1 kg de produto 2 custa 1000$00 e fornece 400

calorias e 6 unidades de gordura, preparar a dieta mais económica de modo a conter

pelo menos 240 calorias mas não mais do que 20 unidades de gordura.

2.5. Uma empresa de janelas e portas pré-fabricadas efectua a sua produção em três

sectores distintos. A caixilharia de alumínio e acessórios são produzidos na secção 1, as

carpintarias são elaboradas na secção 2, sendo a secção 3 o local de produção do vidro e

da montagem de todos os elementos. Para relançar a empresa foi decidido iniciar a

produção dois novos produtos: uma porta envidraçada de alumínio e um janela de

madeira. O departamento de "marketing" determinou que os produtos teriam uma

procura que cobria a capacidade produtiva da empresa. Contudo como os produtos

competem entre si na secção 3 face à capacidade produtiva, a direcção da empresa

solicitou um estudo que determinasse o número de cada tipo de artigos a produzir. Os

valores tabelados traduzem a disponibili dade percentual de cada secção para produzir

os artigos, as percentagens requeridas pelos artigos por cada unidade produzida num

minuto, e o lucro por cada artigo produzido.

Secção Portas Janelas Capacidade de produção

1 1 0 3

2 0 1 5

3 4 3 24

Lucro

(contos/un.)

12 9

2.6. Uma empresa de produtos químicos pretende comercializar aditi vos para betão,

tendo capacidade para produzir 800 unidades. O aditi vo pode ser produzido com duas

qualidades distintas: "Normal" e "Extra". Os lucros que se obtêm pela venda é de

1400$00 por unidade de produto "Normal" e 1700$00 por unidade de produto "Extra".

A fábrica tem capacidade máxima para produzir 960 unidades de produto "Normal" e

640 de produto "Extra", ou combinações destes dois produtos que garantam estas

proporções. Um estudo de viabili dade da comercialização do produto concluiu que no

mínimo 240 unidades de aditi vo têm de ser produzidas, e que pelo menos um quinto da

comercialização deve ser de produto "Extra", não devendo exceder metade dos produtos

vendidos. Determine as quantidades de produto "Normal" e "Extra" que deverão ser

produzidas de modo a ser obtido o maior lucro possível.

Page 21: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 17 -

2.7. Uma empresa de comercialização de materiais de construção, em larga escala,

pretende renovar a frota de camiões, desejando equipá-la com dois tipos de camiões:

modelo "A" de 20 toneladas de capacidade com um custo de 8000 contos e modelo "B"

de 40 toneladas de capacidade com um custo de 12000 contos. O capital disponível

para a compra é de 1 milhão de contos. A disponibili dade das garagens da empresa é de

110 veículos no total. Verifica-se a necessidade imperativa de 35 camiões modelo "A" e

25 modelo "B". Atendendo à necessidade de escoamento dos materiais, é necessário

uma capacidade de transporte de 2000 toneladas. Por questões de logística, pelo menos

um quarto da frota deve consistir de modelos "B". Atendendo a que o custo de

transporte por tonelada de material, nos modelos "B" é 40% superior ao custo dos

modelos "A", determinar a composição da frota de camiões de modo a minimizar o

custo de transporte.

2.8. Todo o aço fabricado por uma determinada siderurgia obedece às seguintes

propriedades químicas e físicas: 1.8 - 2.5% de silí cio; 0.9 - 1.2% de níquel; 3.2 - 3.5%

de carbono; tensão de rotura mínima de 310 MPa. A produção de aço é feita a partir de

duas ligas metálicas. Assume-se que a tensão de rotura da mistura das duas ligas é igual

à soma percentual da tensão de rotura de cada liga. Atendendo ao custo e propriedades

apresentadas no quadro seguinte, estabeleça o modo de minimizar o custo de produção

do aço.

Liga 1 Liga 2

Custo por quilo 38$00 40$00

Silício 2% 2.5%

Níquel 1% 1.5%

Carbono 3% 4%

Tensão de rotura 290 MPa 345 MPa

2.9. Uma cidade produz 50 toneladas de li xo por dia. O li xo tem que ser incinerado nas

incineradoras 1 ou 2. Por razões técnicas, é necessário incinerar um mínimo de 30%

desse li xo na incineradora 2. O custo para incinerar o li xo nas incineradoras 1 e 2 é de

6500$00/ton. e 11250$00/ton., respectivamente. O custo de transporte de cada tonelada

de li xo é de 60$00 por cada quilómetro percorrido. A distância da cidade à incineradora

1 é de 30 km e à incineradora 2 é de 20 km. Cada incineradora pode receber um

máximo de 40 toneladas de li xo por dia. Efectue o planeamento do transporte de li xo de

modo a minimizar o custo.

Page 22: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 18 -

2.10. Um reservatório de água é abastecido através de dois furos, cujas estações

elevatórias estão a bombear em paralelo, sendo necessário um caudal mínimo de 75

m3/h a um preço compreendido entre 35$00/m3 e 38$00/m3. O furo 1 tem possibili dade

de fornecer um caudal máximo de exploração de 65 m3/h, enquanto o furo 2 tem

possibili dade de fornecer um caudal máximo de exploração de 45 m3/h. A diferença de

cotas entre o ponto mais baixo da conduta elevatória e o reservatório é de 61.938 m. O

valor do caudal pode ser determinado pela seguinte expressão: Q=50.5 D2.68 i0.56, em

que Q vem expresso em m3/s, D em metros e i (perda de carga) em m/m. O preço da

água é de 30$00/m3, a que se acresce o custo de exploração de 4$00/m3 no furo 1 e

8$00/m3 no furo 2. Atendendo às características da rede que se apresenta em esquema,

determine o caudal que deve ser debitado de cada furo de modo a minimizar o custo da

água.

φ1001000 m1

2

2.11. Uma empresa metalúrgica produz dois tipos de varões de aço para construção em

duas secções de laminação diferentes. A secção de laminação 1 tem 100 horas

disponíveis, enquanto a secção de laminação 2 tem 30 horas disponíveis. O preço de

venda (em contos) e o tempo necessário (em minutos), por secção, para a produção de

uma tonelada de varão, estão descritos na tabela seguinte. Como o número de

encomendas por mês é, no máximo, de 250 toneladas de varões tipo 1 e de 140

toneladas de varões tipo 2, determine a produção de varões de modo a maximizar a

facturação.

Varões Preço Secção 1 Secção 2

tipo 1 71 20 --

tipo 2 80 18 20

2.12. Uma empresa de construção civil encomendou um projecto de um edifício de

habitação e comércio. A área de construção, na zona de implantação da obra, está

limitada a 10000 m2, sendo a área máxima destinada a comércio, de um terço da área

total do edifício. A empresa de construção exige que o edifício não tenha uma área

inferior a 8000 m2, sendo a área mínima destinada a comércio, de um quinto da área

total do edifício. O preço de venda é de 150 contos/m2 para habitação e 250 contos/m2

para o comércio. Atendendo à procura, devem existir um mínimo de 6000 m2 de área

habitacional. Defina a distribuição das áreas de forma a maximizar o volume de vendas.

Page 23: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 19 -

3. ALGUMAS NOÇÕES DE ÁLGEBRA LINEAR

3.1. ESPAÇOS VECTORIAIS

Vamos enunciar algumas definições importantes para o desenvolvimento damatéria que se segue.

• Combinação linear convexa de um número finito de pontos x1 , x2 , ... ,xn , é um ponto

x = λ1x1 + λ2x2 +...+ λjxj +...+ λnxn

com os escalares λ λi ii=1

n

e ≥ =∑0 1 , com i= 1,..., n

• Conjunto convexo S ∈ ℜn é um conjunto tal que um segmento de recta,unindo dois pontos quaisquer de S, está contido nesse conjunto.De outra forma, S é um conjunto convexo se quaisquer que sejam x1 e x2

∈ S e 0 ≤ λ ≤ 1 se tem

Y = λ1x1 + (1−λ2)x2 ∈ S

Exemplos:

Convexo Não convexo ConvexoNão convexo

• Ponto extremo de um conjunto convexo S é todo o ponto que nãopertence a um segmento de recta que une dois pontos quaisquer de S, ouseja, um ponto extremo não pode ser obtido por uma combinação linearconvexa positiva de pontos de S.

Page 24: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 20 -

• Combinação linear de vectores é um vector

B = A1x1 + A2x2 +...+ Ajxj +...+ Anxn

sendo A1, A2, ..., An vectores pertencentes a ℜn e x1, x2 , ... , xn ,números reais.

• Vectores linearmente independentes são vectores A1, A2, ..., An, nãonulos, tais que a equação vectorial

A1x1 + A2x2 +...+ Ajxj +...+ Anxn = 0

só se verifica para x1 = 0, x2 = 0, ... , xn = 0, com x1, x2 , ... , xn ,números reais.

• Dimensão de um espaço ℜm é o valor m tal que existem A1, A2, ...,

Am, vectores linearmente independentes pertencentes a ℜm e não existem

(m+1) vectores linearmente independentes pertencentes a ℜm.

• Base de um espaço ℜm é um sistema de vectores A1, A2, ..., Am

pertencentes a ℜm se eles forem linearmente independentes e qualquervector B poder ser obtido por combinação linear desses vectores, isto é

B = A1x1 + A2x2 +...+ Amxm

• Combinação convexa de vectores A1, A2, ..., An todos pertencentes a

ℜm é um vectorB = λ1A1 + λ2A2 +...+ λnAn

com os escalares λ λi ii=1

n

e ≥ =∑0 1 , com i= 1,..., n

Page 25: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 21 -

3.2. SISTEMAS DE EQUAÇÕES LINEARES INDETERMINADOS

Consideremos o seguinte sistema de equações lineares:

a11x1 + a12x2 +...+ a1jxj +...+ a1nxn = b1

a21x1 + a22x2 +...+ a2jxj +...+ a2nxn = b2

...ai1x1 + ai2x2 +...+ aijxj +...+ ainxn = bi

...am1x1 + am2x2 +...+ amjxj +...+ amnxn = bm

Este sistema pode ser escrito na notação matricial A x = b em que:

A =

a a

a a

, x =

x

x

, b=

b

b

11 1n

m1 mn

1

n

1

m

� � �

� �

Se admitirmos que o sistema é possível, então existe pelo menos um vector

y ∈ ℜn tal que A y = b .

Seja m ≠ n e, sem perda de generalidade, m < n, neste caso o sistemadiz-se indeterminado e admite uma infinidade de soluções.

Assumindo que, sem perda de generalidade, a característica de A (número

máximo de linhas que são linearmente independentes) é igual a m, pode-se

considerar uma partição de A na forma:

A = [ B | N ]

onde B é uma qualquer sub-matriz quadrada de A, de ordem e

característica m, como tal invertível.

B B-1 = B-1 B = I

onde I =

1 se i = j

0 se i j

i, j = 1, ..., m

é a matriz identidade, que é quadrada e de ordem m.

Page 26: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 22 -

Tal como foi efectuada uma partição de A, também o podemos fazer para o

vector x :x = [ xB | xN ]T

Sendo xB composto pelas m componentes de x que dizem respeito à

matriz B e xN pelas (n-m) componentes que dizem respeito à matriz N.Tendo em conta estas partições, o sistema pode ser escrito na forma:

[ B | N ] [ xB | xN ]T = b⇔

B xB + N xN = b

Dado que B-1 existe, pode-se escrever:

B-1B xB + B-1N xN = B-1b⇔

I xB = B-1b − B-1N xNou seja:

xB = B-1( b − N xN )

Arbitrando valores para todas as componentes de xN, a determinação de

B-1 permite calcular uma solução para o sistema A x = b.

As soluções do sistema de equações podem ser classificadas da seguinteforma:

• As soluções que se obtêm quando xN= 0, dizem-se básicas.

• Uma qualquer solução básica diz-se degenerada, quando algumadas componentes de xB tem o valor zero.

As variáveis de xB designam-se por variáveis básicas, e as variáveis de xNpor variáveis não básicas.

Existem tantas soluções básicas quantas matrizes B possíveis de se

escolherem na partição de A, pois a cada matriz B corresponde umasolução básica. Conclui-se assim que o número de soluções básicas é finito.

Page 27: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 23 -

3.3. DETERMINAÇÃO DE SOLUÇÕES BÁSICAS

O sistema A x = b pode ser escrito na forma de quadro, do seguintemodo:

x1 x2 ... xn ba11 a12 ... a1n b1

a21 a22 ... a2n b2...

.... . .

......

am1 am2 ... amn bm

A matriz [ A | b ] designa-se por matriz aumentada do sistema, podendo-se efectuar as seguintes operações elementares sobre ela:

• Trocar duas linhas do quadro• Multiplicar os elementos de uma linha por uma constantediferente de zero• Adicionar a uma linha outra qualquer das restantes, multiplicadapor uma constante não nula.• Trocar quaisquer colunas do quadro

Qualquer uma das operações elementares transforma um dado sistema linearnum outro sistema equivalente, ou seja que tenha a mesma solução.

O sistema anterior pode ser transformado, aplicando várias operaçõeselementares, num outro equivalente, da forma:

x1' x2' ... xm' xm+1' ... xn' b'

1 0 ... 0 a'1,m+1 ... a'

1n b'1

0 1 ... 0 a'2,m+1 ... a'

2n b'2

......

. . ....

.... . .

......

0 0 ... 1 a'm,m+1 ... a'

mn b'm

Em que o vector [ x1', ..., xn' ]T corresponde à solução do sistema

aumentado [ I | A' ] x' = b'.

Page 28: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 24 -

EXEMPLO 2

Considerando o sistema seguinte, pretende-se determinar uma soluçãobásica.

x1 + 3x2 + x4 = 20

2x1 + 2x2 + x3 + x5 = 40

4x1 + 5x3 + 2x4 + 3x5 = 180

Resolução do exemplo 2

Em primeiro lugar apresenta-se o sistema na forma de quadro:

x1 x2 x3 x4 x5 b1 3 0 1 0 202 2 1 0 1 404 0 5 2 3 180

Efectua-se, por exemplo, a troca das colunas a que correspondem x4 e x1, e

das colunas a que correspondem x5 e x2.

x4 x5 x3 x1 x2 b1 0 0 1 3 200 1 1 2 2 402 3 5 4 0 180

Multiplica-se a primeira linha por (-2) e adiciona-se à terceira.

x4 x5 x3 x1 x2 b1 0 0 1 3 200 1 1 2 2 400 3 5 2 -6 140

Page 29: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 25 -

Multiplica-se a segunda linha por (-3) e adiciona-se à terceira.

x4 x5 x3 x1 x2 b1 0 0 1 3 200 1 1 2 2 400 0 2 -4 -12 20

Multiplica-se a terceira linha por (+0.5).

x4 x5 x3 x1 x2 b1 0 0 1 3 200 1 1 2 2 400 0 1 -2 -6 10

Multiplica-se a terceira linha por (-1) e adiciona-se à segunda..

x4 x5 x3 x1 x2 b1 0 0 1 3 200 1 0 4 8 300 0 1 -2 -6 10

Do quadro conclui-se que uma solução básica para o sistema corresponde a:

x1 = 0 e x2 = 0 (variáveis não básicas)

x3 = 10 , x4 = 20 e x5 = 30 (variáveis básicas)

A este método designa-se por condensação da matriz.

Page 30: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 26 -

3.4. MUDANÇA DE SOLUÇÃO BÁSICA

Numa dada solução básica, pode-se tornar básica uma variável que era nãobásica (por troca óbvia com uma variável que era básica e que passou a nãobásica), através de operações elementares. Esta nova solução básica diz-seadjacente da anterior.

O processo de mudança de uma solução básica para outra adjacente (regrasde pivotação), é o seguinte:

i) Assinala-se a linha da matriz aumentada cuja variável sepretende que passe a não básica.

ii ) Escolhe-se a variável não básica que se pretende tornar básica,assinalando-se a coluna correspondente.

iii ) O elemento que pertence a essa linha e coluna assinaladas, édesignado por elemento pivô , sendo a respectiva linha e colunadesignadas por linha pivotal e coluna pivotal.

iv) Torna-se o pivô igual à unidade por multiplicação da linhapivotal pelo inverso do elemento pivô.

v) Anulam-se os elementos da coluna pivotal aij adicionando-se,às restantes linhas, a linha pivotal multiplicada por

−a

pivôi j

EXEMPLO 3

Considerando o sistema de equaçõesx1 + x4 − x5 = 10x2 + 0.5x4 − x5 = 5x3 − 0.5x4 + 2x5 = 2

determinar um conjunto de soluções básicas de variáveis básicas:a) x1 , x2 e x3

b) x1 , x3 e x4

c) x1 , x4 e x5

Page 31: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 27 -

Resolução do exemplo 3

Em primeiro lugar apresenta-se o sistema na forma de quadro:

x1 x2 x3 x4 x5 b

x1 1 0 0 1 -1 10� � x2 0 1 0 0.5 -1 5

x3 0 0 1 -0.5 2 2

� �

Identifica-se já uma solução básica de variáveis básicas x1 , x2 e x3 ,

sendo x1 = 10, x2 = 5, x3 = 2, x4 = 0 e x5 = 0.

Para obtermos uma solução básica de variáveis básicas x1 , x3 e x4 , é

necessária a passagem da variável não básica x4 a variável básica por troca

com x2. Para tal é necessário anular os elementos da coluna pivotal (coluna

correspondente a x4) com excepção do pivô. Soma-se a linha pivotal (linha

correspondente a x2) à terceira.

x1 x2 x3 x4 x5 b

x1 1 0 0 1 -1 10� � x2 0 1 0 0.5 -1 5

x3 0 1 1 0 1 7

� �

Para tornarmos o pivô unitário multiplica-se a linha pivotal por (+2).

x1 x2 x3 x4 x5 b

x1 1 0 0 1 -1 10� � x2 0 2 0 1 -2 10

x3 0 1 1 0 1 7

� �

Page 32: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 28 -

Multiplica-se a segunda linha por (-1) e adiciona-se a primeira, e troca-se acoluna pivotal com a coluna correspondente a x2.

x1 x4 x3 x2 x5 b

x1 1 0 0 -2 1 0

x4 0 1 0 2 -2 10� � x3 0 0 1 1 1 7

� �

Obtemos já uma solução básica de variáveis básicas x1 , x3 e x4 , sendo

x1= 0, x2= 0, x3 = 7, x4 = 10 e x5 = 0. Como a variável x1= 0, mesmosendo básica, a solução diz-se degenerada.

Para obtermos uma solução básica de variáveis básicas x1 , x4 e x5 , é

necessária a passagem da variável não básica x5 a variável básica por troca

com x3.

Multiplica-se a linha pivotal (terceira linha) por (−1) e adiciona-se àprimeira. Em seguida multiplica-se a terceira linha por (+2) e adiciona-se àsegunda, e troca-se a coluna pivotal com a coluna correspondente a x3.

x1 x4 x5 x2 x3 b

x1 1 0 0 -3 -1 -7

x4 0 1 0 4 2 24

x5 0 0 1 1 1 7

Obtemos já uma solução básica de variáveis básicas x1 , x4 e x5 , sendo

x1= −7, x2= 0, x3 = 0, x4 = 24 e x5 = 7.

Page 33: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 29 -

3.5. PROBLEMAS PROPOSTOS

3.1. Dos conjuntos que se apresentam nas figuras seguintes (zona sombreada), indique

os que são convexos e os que não são.

a) b)

c) d)

e) f)

3.2. Determine todas as soluções básicas dos sistemas seguintes:

a)

4x1 + 2x2 − x4 = 0x1 + x2 + x3 = 8x3 + 4x4 = 8

b)

2x1 + 4x2 − x3 = 2−x1 + 2x2 − x3 − x4 = −2

Page 34: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 30 -

c)

x1 + 2x2 + 4x3 − x4 = 4x1 + x2 = 8x1 + x3 + 2x4 = 10

3.3. Considerando a matriz aumentada que se apresenta:

x1 x2 x3 x4 x5 x6 b1 2 2 1 0 0 40 4 −1 0 1 0 22 0 5 0 0 1 0

Determinar as soluções básicas de variáveis básicas:

a) x4 , x5 e x6

b) x2 , x4 e x6

c) x1 , x2 e x4

d) x1 , x4 e x5

e) x3 , x4 e x5

f) x2 , x3 e x4

Classifique todas as soluções obtidas.

3.4. Considerando o sistema seguinte:

x1 + a x2 + x6 = 10

2x1 + 2x2 − x3 + x5 = b

2x1 + 4x3 + x4 = 40

Diga para que valores de a e b obtemos [0, 9, 10, 0, 0, 1]T como solução do problema.

Page 35: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 31 -

4. MÉTODO SIMPLEX

O método simplex é um processo matricial para resolver problemas deprogramação linear que permite determinar uma solução óptima, quando talsolução existe, ou concluir que o programa linear é ilimitado.

Tendo em vista a utilização do método simplex, um programa linear deveser apresentado na forma padrão e de forma a se identificar uma primeirasolução básica admissível para o problema.

max. (min.) Z = c1x1 + c2x2 +...+ cjxj +...+ cnxn

s. ax1 + a1,m+1xm+1 + a1,m+2xm+2 +...+ a1nxn = b1

x2 + a2,m+1xm+1 + a2,m+2xm+2 +...+ a2nxn = b2

... xm + am,m+1xm+1 + am,m+2xm+2 +...+ amnxn = bm

x1 , x2 , ... , xm ,..., xn ≥ 0

sendo x1 , x2 , ..., xm , as variáveis básicas, e uma primeira solução básica

admissível xi = bi (i = 1, ..., m), com Z = 0.

Designando por K o conjunto de soluções admissíveis de um programalinear na forma padrão, tem-se que:

• Teorema 1 - O conjunto K é convexo.

Com efeito, sejam x1 e x2 duas soluções admissíveis , isto é,satisfazendo

A x1 = b com x1 ≥ 0 A x2 = b com x2 ≥ 0

qualquer combinação linear convexa de x1 e x2 será da forma λ1x1

+ λ2x2 com λ1 e λ2 não negativos e de soma igual a 1. Além de se

ter λ1x1 + λ2x2 ≥ 0, vem A(λ1x1 + λ2x2) = λ1Ax1 + λ2Ax2 =λ1b + λ2b = (λ1 + λ2)b = b , o que confirma que λ1x1 + λ2x2 éainda uma solução admissível.

Page 36: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 32 -

• Teorema 2 - Considerando que

P =

a

a

a

, P =

a

a

a

, ... , P =

a

a

a

, P =

b

b

b

1

11

12

1m

2

21

22

2m

n

n1

n2

nm

0

1

2

m

� � � �

pode-se exprimir P0 como combinação linear dos n vectores

P0,...,Pn ,

P = x P0 i ii=1

n

O ponto x = ( x1, ..., xn ) corresponde à decomposição

pertencente a K se e só se xi ≥ 0 (i = 1, ..., n); e é ponto extremo se

e só se os xi não nulos (portanto positivos) corresponderem avectores linearmente independentes.

• Teorema 3 - A função objectivo atinge o seu máximo (ou mínimo)num ponto extremo do poliedro convexo K. Se atinge o máximo (ouo mínimo) em mais do que um ponto extremo, então toma ainda omesmo valor de Z em todas as combinações lineares convexasdesses pontos extremos particulares.

Em teoria bastará calcular o valor de Z em todos os n

mn!

m!(n- m)!

=

pontos extremos (soluções básicas), para se obter o valor óptimo da funçãoobjectivo. No entanto, tal seria impraticável para grandes valores de n e m.

O método simplex é um método iterativo em que cada iteração correspondea uma etapa de um percurso orientado através de um subconjunto desoluções básicas admissíveis, adjacentes entre si, com a garantia damelhoria do valor da função objectivo até ao valor óptimo.

Page 37: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 33 -

4.1. MUDANÇA DE SOLUÇÃO BÁSICA ADMISSÍVEL

Seja um problema de programação linear em que se conhece uma soluçãobásica admissível de K

[ b1, b2, ..., bm, 0, ..., 0]T,

em que a base é constituída pelos primeiros m vectores. Tem-se, então,

b1P1 + b2P2 + ... + bmPm = P0 (4.1)

com bi ≥ 0 e P1, P2, ..., Pm vectores linearmente independentes.

O objectivo é passar desta solução básica admissível (ponto extremo) a umaoutra adjacente, isto é, pertencente à mesma aresta de K.

Como os vectores P1, P2, ..., Pm são linearmente independentes,

constituem uma base de ℜm. Quer isto dizer que se pode obter qualquer

vector, de entre os n dados, como combinação linear dos vectores da base,tendo-se

Pj = a1jP1 + a2jP2 + ... + amjPm = a Pi j ii=1

n

∑ , j = 1, 2, ..., n (4.2)

Admita-se que algum vector fora da base, por exemplo Pm+1 , tem pelo

menos uma componente aij ≥ 0 na expressão

Pm+1 = a1,m+1P1 + a2, m+1P2 + ... + am,m+1Pm

Se multiplicarmos a expressão anterior por um escalar θ e a subtrairmos àequação 4.1 temos

b1P1 − θa1,m+1P1 + b2P2 − θa2, m+1P2 + ... + bmPm − θam,m+1Pm = P0 − θPm+1

⇔(b1 − θa1,m+1)P1 + (b2 − θa2, m+1)P2 + ... + (bm − θam,m+1)Pm + θPm+1 = P0

Page 38: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 34 -

O vector x' = [b1 − θa1,m+1 , b2 − θa2,m+1 , ..., bm − θam,m+1 ,θ ,0, ...,0]T, é asolução do programa linear, sendo uma solução admissível se todas as suascomponentes forem não negativas.

Admita-se, por enquanto, que a cada ai,m+1 > 0 se encontra associado um

bi > 0. Para se obter uma solução admissível diferente da anterior terá que

ser θ > 0. Assim é fácil concluir que são não negativas as componentes

desta nova solução básica, em que ai,m+1 > 0. Ter-se-á, portanto, θ > 0 e

tal que bi −θai,m+1 ≥ 0, para todo ai,m+1 > 0.

Da expressão anterior resulta θ = b

ai

i,m+1

e, dada a validade para todo o

ai,m+1 > 0, a admissibilidade da nova solução é garantida com qualquer θ averificar

0 < θ ≤ >

mín

b

a a

i

i

i,m+1i,m+1 0

Como se pretende passar de uma solução básica a outra solução básicaadjacente, e tendo presente que a cada solução básica se encontramassociados m vectores linearmente independentes, o vector x' não pode ter

mais do que m componentes positivas. Assim, é forçoso anular algumas dassuas componentes, que se consegue tomando

θ = θ =0 mín b

a a

i

i

i,m+1i,m+1 >

0

Abordemos o problema de outra forma, elaborando um quadro a quecorresponde um sistema linear.

Page 39: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 35 -

x1 x2 ... xi ... xm xm+1 ... xn b1 0 ... 0 ... 0 a1,m+1 ... a1n b1

0 1 ... 0 ... 0 a2,m+1 ... a2n b2

......

. . ....

. . ....

.... . .

......

0 0 ... 1 ... 0 ai,m+1 ... ain bi

......

. . ....

. . ....

.... . .

......

0 0 ... 0 ... 1 am,m+1 ... amn bm

O vector [ b1, b2, ..., bm, 0, ..., 0]T corresponde a uma solução básica dosistema, que se assume admissível para um dado problema de programaçãolinear.

Efectuando-se um conjunto de operações elementares sobre a matriz dosistema linear anterior, transforma-se esse sistema num outro equivalente, aque corresponde uma nova solução básica, adjacente à primeira, que nãopodemos garantir a admissibilidade sem a adopção de nenhum critério parao efeito.

Se pretendermos que a variável xm+1 se torne básica por troca com xi , o

coeficiente ai,m+1 > 0 será o elemento pivô, logo a coluna m+1 e a linha iserão, respectivamente, a coluna pivotal e a linha pivotal.

Se multiplicarmos a linha pivotal por 1

ai,m+1

obtemos o quadro seguinte:

x1 x2 ... xi ... xm xm+1 ... xn b1 0 ... 0 ... 0 a1,m+1 ... a1n b1

0 1 ... 0 ... 0 a2,m+1 ... a2n b2

......

. . ....

. . ....

.... . .

......

0 0 ... a'i,i ... 0 1 ... a'in θ...

.... . .

.... . .

......

. . ....

...

0 0 ... 0 ... 1 am,m+1 ... amn bm

Page 40: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 36 -

em que a'1

ai,ii,m+1

= ; a'a

ai,ni,n

i,m+1

= e θ = b

ai

i,m+1

.

Anulando, em seguida, todos os elementos da coluna pivotal, com excepçãodo elemento pivô, obtemos um novo quadro

x1 x2 ... xi ... xm xm+1 ... xn b1 0 ... 0 ... 0 0 ... a'1n b1−θa1,m+1

0 1 ... 0 ... 0 0 ... a'2n b2−θa2,m+1

......

. . ....

. . ....

.... . .

......

0 0 ... a'i,i ... 0 1 ... a'in θ...

.... . .

.... . .

......

. . ....

...

0 0 ... 0 ... 1 0 ... a'mn bm−θam,m+1

o vector x' = [b1−θa1,m+1 , b2−θa2,m+1 , ...,0, ..., bm−θam,m+1, θ, 0,...,0]T,corresponde a uma outra solução básica do problema linear.

Para que esta solução básica seja admissível, facilmente se conclui sobre a

obrigatoriedade de θ > 0 assim como as restantes componentes de x' devem

ser não negativas bk−θak,m+1 > 0. Donde se conclui que

b

a

b

a

b

ak

k,m+1

k

k,m+1

i

i,m+1

≥ ⇔ ≥θ

Desta forma, a escolha da variável não básica que pode ser tornada básicacom garantia da admissibilidade da nova solução, deve basear-se noseguinte critério

θ = θ =0 mín b

a a

i

i

i,m+1i,m+1 >

0

Page 41: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 37 -

EXEMPLO 4

Considere-se o problema do exemplo 1. Pretende-se determinar soluçõesbásicas admissíveis de variáveis básicas x1 e x2.

Resolução do exemplo 4

Inicialmente temos que passar o problema para a forma padrão, dondeobtemos

max. Z = 0.06x1 + 0.04x2s.a

12x1 + 8.5x2 + x3 = 50 0000.04x1 + 0.02x2 + x4 = 150x1 + x5 = 3400x2 + x6 = 5000x1 , x2 , x3 , x4 , x5 , x6 ≥ 0

Na forma vectorial as restrições ao problema são apresentadas como

P

x

P

x

P

x

P

x

P0

x

P0

x

P50000

1

1

2

2

3

3

4

4

5

5

6

6

0

12 8.5 1 0

00410

00201

000

100

010

001

15034005000

. .

+

+

+

+

+

=

Uma solução básica admissível será [0, 0, 50000, 150, 3400, 5000]T,correspondendo ao ponto "A" da figura 3. Desta forma, de acordo com oenunciado neste capítulo, podemos escrever

50000 P3 + 150 P4 + 3400 P5 + 5000 P6 = P0 i)

em que P3 , P4 , P5 e P6 são vectores linearmente independentes e

constituem uma base de ℜ4. Podem-se expressar os seis vectores em termosdesta base de acordo com a expressão 4.2.

Page 42: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 38 -

P1 = 12 P3 + 0.04 P4 + 1 P5 + 0 P6 ii)P2 = 8.5 P3 + 0.02 P4 + 0 P5 + 1 P6

P3 = 1 P3 + 0 P4 + 0 P5 + 0 P6

P4 = 0 P3 + 1 P4 + 0 P5 + 0 P6

P5 = 0 P3 + 0 P4 + 1 P5 + 0 P6

P6 = 0 P3 + 0 P4 + 0 P5 + 1 P6

Façamos o vector não básico P1 entrar na base. Para tal, multiplica-se a

equação ii ) por um escalar θ e subtrai-se este produto à equação i), pelo queobtemos

θ P1 + (50000 −12θ) P3 + (150 −0.04θ) P4 + (3400 −θ) P5 + 5000 P6 = P0

donde obtemos uma nova solução básica

[ θ , 0 , (50000 −12θ) , (150 −0.04θ) , (3400 −θ) , 5000 ]T,

Para que a solução básica obtida seja admissível, obrigatoriamente θ > 0,donde

50000 −12θ ≥ 0 , 150 −0.04θ ≥ 0 e 3400 −θ ≥ 0ou seja

θ ≤ 4166.67 , θ ≤ 3750 e θ ≤ 3400

A admissibilidade fica assegurada desde que se verifique 0 < θ ≤ 3400.

Se fizermos:

θ = 3400, obtemos [ 3400, 0, 9200, 14, 0, 5000]T, uma solução básicaadmissível que corresponde ao ponto "B" da figura 3.

θ = 3750, obtemos [ 3750, 0, 5000, 0, -350, 5000]T, uma solução básicanão admissível a que corresponde o ponto "C" da figura 3.

θ = 2750, obtemos [ 2750, 0, 17000, 40, 650, 5000]T, uma solução nãobásica admissível que corresponde ao ponto "D" da figura 3.

Page 43: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 39 -

Pode-se abordar o problema de outra forma, passando-se de uma soluçãobásica para outra solução básica adjacente, garantindo-se a admissibilidadedo problema, com a elaboração do quadro que se apresenta

x1 x2 x3 x4 x5 x6 b

x3 12 8.5 1 0 0 0 50000

x4 0.04 0.02 0 1 0 0 150� � x5 1 0 0 0 1 0 3400

x6 0 1 0 0 0 1 5000� �

A solução básica [0, 0, 50000, 150, 3400, 5000]T, é imediatamenteidentificada a partir do quadro anterior (correspondendo ao ponto "A" dafigura 3).

Estabelece-se a primeira coluna como coluna pivotal, ou seja, torna-sebásica a variável x1. Para garantir a admissibilidade da nova solução, aescolha da variável a sair da base corresponderá à linha que verifique

mín b

a a mín

i=1,..,4

i

i1i1 >

=

= =050000

12

150

004

3400

1

5000

1

3400

13400,

., ,

logo a variável x5 sai da base.

Efectuando-se as operações de pivotação obtém-se o quadro seguinte:

x1 x2 x3 x4 x5 x6 b

x3 0 8.5 1 0 -12 0 9200� � x4 0 0.02 0 1 -0.04 0 14

x1 1 0 0 0 1 0 3400

x6 0 1 0 0 0 1 5000� �

Page 44: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 40 -

Identifica-se uma nova solução básica [ 3400, 0, 9200, 14, 0, 5000 ]T,correspondente ao ponto "B" da figura 3.

Estipula-se a entrada na base da variável x2. Em seguida escolhe-se oelemento pivô correspondente a

mín b

a a mín

i=1,..,4

i

i2i2 >

=

= =09200

85

14

002

5000

1

14

002700

.,

.,

.

ou seja, será a variável x4 a sair da base.

As operações de pivotação dão origem ao quadro seguinte:

x1 x2 x3 x4 x5 x6 b� � x3 0 0 1 -425 5 0 3250

x2 0 1 0 50 -2 0 700

x1 1 0 0 0 1 0 3400

x6 0 0 0 -50 2 1 4300� �

Do quadro obtém-se a solução básica [ 3400, 700, 3250, 0, 0, 4300 ]T, a

que corresponde o ponto "E" na figura 3. Mantendo-se as variáveis x1 e x2na base, a única variável com possibilidade de entrar nessa base, comgarantia de admissibilidade da solução, é a variável x5. Escolhe-se a

variável x3 para sair da base, porque

mín b

a a mín

i=1,..,4

i

i5i5 >

=

= =03250

5

3400

1

4300

2

3250

5650, ,

Page 45: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 41 -

x1 x2 x3 x4 x5 x6 b

x5 0 0 0.2 -85 1 0 650

x2 0 1 0.4 -120 0 0 2000

x1 1 0 -0.2 85 0 0 2750

x6 0 0 -0.4 120 0 1 3000

No quadro, obtido após terem sido aplicadas as regras de pivotação,identificamos a solução básica [ 2750, 2000, 0, 0, 650, 3000 ]T,correspondente ao ponto "F" da figura 3, que, como vimos no capítulo 2.3, éa solução óptima.

x 2

x 1D CA B

E

F

FIGURA 3

Page 46: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 42 -

4.2. MELHORIA DA FUNÇÃO OBJECTIVO

Suponha-se um problema de programação linear de forma a permitir aidentificação de uma solução básica admissível

[ b1, b2, ..., bm, 0, ..., 0]T,

à qual se encontra associada a base constituída pelas variáveis x1, x2, ...,xm e a que corresponde na função objectivo

Z0 = c1b1 + c2b2 + ... + cmbm

Seja xr uma variável não básica em condições de substituir uma variávelbásica. Procedendo de acordo com o exposto no capítulo anterior

[b a ,...,b a ,b a ,b a ,...,b a , ,..., , , ,..., ]1 1r i-1 i-1,r i ir

0

i+1 i+1,r m mrT

a sair da base

0 0 0 0− − − − −θ θ θ θ θ θ0 0 0 0 0 0� �� ��

a que se encontra agora associadas as variáveis básicas

[x1, ..., xr-1, xr, xr+1, ..., xm]T

logo o valor da função objectivo é dado por

Z = c1(b1 − θ0a1r) + ... + cm(bm − θ0amr) + crθ0 =

= (c1b1 + ... + cmbm) + θ0[cr − (c1a1r + ... + cmamr)] =

= Z0 + θ0(cr − Zr)

em que

Zr = c1a1r + ... + cmamr = c ai iri=1

n

em síntese

Z = Z0 + θ0(cr − Zr) = Z0 − θ0(Zr − cr)

Page 47: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 43 -

A partir deste resultado é fácil concluir que se a variável não básica xr, que

está em condições de substituir a variável xi da base inicial, estiver

associada a uma diferença unitária positiva, cr−Zr > 0, a passagem à novasolução básica admissível é acompanhada de melhoria da função objectivo(Z > Z0), num problema de maximização. Este raciocínio aplica-se, damesma forma, a problemas de minimização, em que a melhoria da funçãoobjectivo (Z < Z0) foi acompanhada de uma variação Zr−cr > 0.

Deste modo pode-se enunciar o seguinte:

• Dada uma solução básica admissível não degenerada correspondendo àsvariáveis básicas x1, x2, ..., xm a que corresponde o valor da função

objectivo Z0 (a maximizar), se existir algum j = m+1, ..., n, tal que cr−Zr

> 0 (Zr−cr > 0 no caso da minimização) e a correspondente variável xj

(fora da base) puder substituir alguma variável xi da mesma base, entãoexiste uma nova solução básica admissível com o correspondente valor dafunção objectivo finito e tal que Z > Z0 (Z < Z0 no caso daminimização).

Enquanto existir alguma variável xj fora da base tal que cr−Zr > 0, no caso

da maximização, e Zr−cr > 0 na minimização, o valor da função objectivopode ser melhorado. Para a diminuição do número de iterações, a variávelxj pode ser escolhida de acordo com o seguinte critério

{ } max c Z c Zj

j j j j− − > 0 no caso da maximização

ou

{ } max Z c Z cj

j j j j − − > 0 no caso da minimização

O processo termina quando ocorrer uma das seguintes situações:

i) Todos os cr−Zr ≤ 0 (ou Zr−cr ≤ 0 para a minimização) atingiu-se o óptimo.

ii ) Existe algum cr−Zr > 0 (ou Zr−cr > 0 para a minimização)

associado a uma variável xj fora da base, que não pode substituir

nenhuma variável xi da base (isto é , todos os aij ≤ 0) o problema é ilimitado

Page 48: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 44 -

4.3. ALGORITMO PRIMAL DO SIMPLEX

O algoritmo primal do simplex constitui uma subrotina do método simplex,e que se aplica quando se dispõe de um problema de programação linear naforma padrão em que se identifica uma primeira solução básica admissível.

O algoritmo primal do simplex compõe-se das seguintes etapas:

i) Formar um quadro simplex da seguinte forma:

cj c1 c2 ... cm cm+1 ... cn

cB xB x0 x1 x2 ... xm xm+1 ... xn

c1 x1 b1 1 0 ... 0 a1,m+1 ... a1n

c2 x2 b2 0 1 ... 0 a2,m+1 ... a2n

......

......

.... . .

......

. . ....

cm xm bm 0 0 ... 1 am,m+1 ... amn

Zj Z0 Z1 Z2 ... Zm Zm+1 ... Zn

cj−Zj 0 0 ... 0 cm+1−Zm+1 ... cn−Zn

ou

Zj−cj 0 0 ... 0 Zm+1−cm+1 ... Zn−cn

em que Z = c b0 i ii=1

m

e Z = c aj i i ji=1

n

∑ , j = 1, 2, ..., n

a primeira solução básica admissível será

xB = [ b1, b2, ..., bm, 0, ..., 0]T

Page 49: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 45 -

ii ) Verifica-se se a solução é óptima, isto é, se todos os cj−Zj

(maximização) ou os Zj−cj (minimização) são menores ou iguais a

zero. Caso contrário determina-se a variável xr a entrar na base(correspondendo à coluna pivotal), escolhendo a coluna em que severifica

{ } max c Z c Zj

j j j j− − > 0 no caso da maximização

ou

{ } max Z c Z cj

j j j j − − > 0 no caso da minimização

iii ) Determina-se a variável que vai ser substituída na base, quecorresponde à linha (linha pivotal) em que se verifica

mín b

a a

i

i

irir >

0

Caso não exista nenhum air > 0 o problema é ilimitado.

iv) Identificado o elemento pivô, aplicam-se as regras de pivotação,expostas no capítulo 3.3, para efectuar a mudança de solução básicaadmissível.

O programa de cálculo automático "Simplex", anexo a estes apontamentos,tem implementado este algoritmo, podendo ser utilizado como umaferramenta auxiliar, no sentido da consolidação dos conhecimentosadquiridos.

EXEMPLO 5

Resolver o seguinte problema de programação linear.

max. Z = x1 + 2x2

s.a−x1 + x2 ≤ 4

x1 + x2 ≤ 8

3x1 + x2 ≤ 18 x1 , x2 ≥ 0

Page 50: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 46 -

Resolução do exemplo 5

O primeiro passo a efectuar para a resolução do problema é a sua passagemà forma padrão.

max. Z = x1 + 2x2

s.a−x1 + x2 + x3 = 4

x1 + x2 + x4 = 8

3x1 + x2 + x5 = 18 x1 , x2, x3, x4, x5 ≥ 0

Em seguida elabora-se o quadro simplex.

cj 1 2 0 0 0

cB xB x0 x1 x2 x3 x4 x5� � 0 x3 4 -1 1 1 0 0

0 x4 8 1 1 0 1 0

0 x5 18 3 1 0 0 1

Zj 0 0 0 0 0 0

cj−Zj 1 2 0 0 0� �

Identifica-se uma solução básica inicial [ 0, 0, 4, 8, 18 ]T, a quecorresponde o ponto "A" na figura 4.

Determina-se a coluna pivotal, ou seja, a variável que passa a básica,através do cálculo do

{ } { } max c Z c Z max 1 , 2j=1,...,5

j j j j− − > = =0 2

logo a segunda coluna será a coluna pivotal, a que corresponde a variávelx2, que entra na base.

A variável x3 sai da base de acordo com

mín b

a a mín

i=1,..,3

i

i2i2 >

=

= =04

1

8

1

18

1

4

14, ,

Page 51: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 47 -

Após as operações de pivotação, obtém-se o quadro seguinte.

cj 1 2 0 0 0

cB xB x0 x1 x2 x3 x4 x5

2 x2 4 -1 1 1 0 0� � 0 x4 4 2 0 -1 1 0

0 x5 14 4 0 -1 0 1

Zj 8 -2 2 2 0 0

cj−Zj 3 0 -2 0 0� �

Do quadro tiramos uma nova solução básica [0, 4, 0, 4, 14]T, a quecorresponde o ponto "B" na figura 4.

{ } { } max c Z c Z max 3j=1,...,5

j j j j− − > = =0 3, a variável x1 entra na base

mín b

a a mín

i=1,..,3

i

i1i1 >

=

= =04

2

14

4

4

22, , saindo a variável x4 da base.

o que conduz ao próximo quadro.

cj 1 2 0 0 0

cB xB x0 x1 x2 x3 x4 x5

2 x2 6 0 1 0.5 0.5 0

1 x1 2 1 0 -0.5 0.5 0

0 x5 6 0 0 1 -2 1

Zj 14 1 2 0.5 1.5 0

cj−Zj 0 0 -0.5 -1.5 0

Deste quadro tiramos uma nova solução básica [2, 6, 0, 0, 6]T, a quecorresponde o ponto "C" na figura 4.

Page 52: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 48 -

Se determinarmos o valor de

{ } max c Z c Z j=1,...,5

j j j j− − > = ∅0

dado que não existe nenhum valor de cj−Zj > 0, pode concluir-se que asolução em presença é a solução óptima do problema. O valor óptimo dafunção objectivo corresponde a Z = 14 e tira-se directamente do quadro.

Neste problema verificou-se que, de quadro para quadro obtivemos umasolução básica admissível adjacente para o problema (pontos A→B→C),garantindo que o valor da função objectivo fosse sempre melhorado (com ovalor de Z a variar de 0→8→14).

x 2

x 1A

C

B

FIGURA 4

Page 53: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 49 -

4.4. CASOS PARTICULARES

4.4.1. SOLUÇÕES ÓPTIMAS ALTERNATIVAS

É possível que exista mais do que uma solução óptima para um problema deprogramação linear, como foi referido em capítulos anteriores, das quaispelo menos duas das soluções são básicas. As soluções óptimas não básicaspodem ser obtidas como uma combinação linear convexa das soluçõesóptimas básicas.

x* = λ1x1* + λ2x2* , com λ1 + λ2 = 1

Dado que o algoritmo de cálculo da solução óptima de um problema deprogramação linear, termina quando é encontrada uma primeira soluçãoóptima, é necessária a existência de um processo que permita obter asrestantes soluções óptimas básicas.

A verificação da existência de soluções óptimas alternativas é feita com aidentificação de valores de cj−Zj = 0 (ou Zj−cj = 0 na minimização)associados a variáveis não básicas. Caso isto aconteça, é possível tornarbásicas essas variáveis, sem que o valor da função objectivo seja alterado.Aplicando-se as regras de pivotação obtém-se um novo quadro simplex euma nova solução óptima para o problema.

EXEMPLO 6

Determinar a solução óptima do seguinte problema de programação linear.

max. Z = 6x1 + 3x2

s.a

2x1 + x2 ≤ 7

x1 ≤ 3

x2 ≤ 5

x1 , x2 ≥ 0

Page 54: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 50 -

Resolução do exemplo 6

O primeiro passo será a passagem à forma padrão.

max. Z = 6x1 + 3x2

s.a

2x1 + x2 + x3 = 7

x1 + x4 = 3

x2 + x5 = 5x1 , ..., x5 ≥ 0

Passando ao quadro simplex

cj 6 3 0 0 0

cB xB x0 x1 x2 x3 x4 x5

0 x3 7 2 1 1 0 0� � 0 x4 3 1 0 0 1 0

0 x5 5 0 1 0 0 1

Zj 0 0 0 0 0 0

cj−Zj 6� �

3 0 0 0

� � 0 x3 1 0 1 1 -2 0

6 x1 3 1 0 0 1 0

0 x5 5 0 1 0 0 1

Zj 18 6 0 0 6 0

cj−Zj 0 3� �

0 -6 0

3 x2 1 0 1 1 -2 0

6 x1 3 1 0 0 1 0

0 x5 4 0 0 -1 2 1

Zj 21 6 3 3 0 0

cj−Zj 0 0 -3 0 0

Page 55: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 51 -

A solução básica obtida [3, 1, 0, 0, 4]T, é uma solução óptima do problema,

pois não existe nenhum cj−Zj >0. No entanto existe uma variável não

básica x4 cujo valor de cj−Zj é igual a zero, podendo passar para a base,

por troca de x5, sem piorar o valor da função objectivo. Esta nova soluçãobásica é uma solução óptima alternativa. O novo quadro simplex será

cj 6 3 0 0 0

cB xB x0 x1 x2 x3 x4 x5

3 x2 5 0 1 0 0 1

6 x1 1 1 0 0.5 0 -0.5

0 x4 2 0 0 -0.5 1 0.5

Zj 21 6 3 3 0 0

cj−Zj 0 0 -3 0 0

a que corresponde uma nova solução óptima [1, 5, 0, 2, 0]T. Outra soluçãoóptima qualquer, não básica e admissível, pode ser obtida através da

atribuição de valores a λ entre 0 e 1, na expressão seguinte

x* = λ × [3, 1, 0, 0, 4]T + (1−λ) × [1, 5, 0, 2, 0]T

Se fizermos λ = 0.5, obtém-se uma solução óptima [2, 3, 0, 1, 2]T,correspondente ao ponto "E" da figura 5, com Z* = 6 × 2 + 3 × 3 = 21.

x 2

x 1A

C

B

D

A → B → C → D

E

FIGURA 5

Page 56: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 52 -

4.4.2. EMPATE NO CRITÉRIO DE ENTRADA NA BASE

No passo ii ) do algoritmo primal do simplex apresentado no capítulo 4.3,escolhia-se o maior valor de cj−Zj (maximização) ou Zj−cj (minimização),como critério de entrada de uma variável na base. No entanto podeverificar-se a existência de mais do que uma variáveis nestas condições.Nestes casos, dado que não existe nenhum método que garanta, à partida,qual a escolha que conduz a uma convergência mais rápida para a soluçãoóptima, um método consiste na escolha da variável de menor índice comocritério de desempate (método de Bland).

4.4.3. EMPATE NO CRITÉRIO DE SAÍDA DA BASE

O algoritmo primal do simplex pode entrar em ciclo em situações dedegenerência (existência de soluções degeneradas), devido à ocorrência deempate no critério de saída da base. Por esta razão, surgiram métodosteóricos que garantem, com toda a generalidade, a não ocorrência de umciclo durante todo o processo de cálculo. Um deles é a técnica deperturbação de A. Charnes.

Esta técnica consiste no seguinte:

i) Nos casos de empate no critério de saída, isto é

mín b

a a

b

a

b

ai

i

irir

s

sr

q

qr

>

= = =0 �

determina-se

mín a

a a

i=s,...,q

i1

irir >

0

ii) Se o empate continuar, calcula-se

mín a

a a

i=s,...,q

ij

irir >

0 , j = 2, 3, ..., m

iii ) No caso de o empate se manter (o que, em princípio, nãoacontecerá) escolher a linha a que corresponde a variável de menoríndice.

Page 57: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 53 -

EXEMPLO 7

O problema apresentado em seguida foi criado por E.M. Beale, e éconstituído por sete variáveis e três restrições, que se crê serem as condiçõesmínimas para a possibilidade de ocorrerem situações de "cycling".

max. Z = 0.75x4 − 150x5 + 0.02x6 − 6x7

s.a

x1 + 0.25x4 − 60x5 − 0.04x6 + 9x7 = 0

x2 + 0.5x4 − 90x5 − 0.02x6 + 3x7 = 0

x3 + x6 = 1

x1 , ..., x7 ≥ 0

Resolução do exemplo 7

Aplicado-se as regras, atrás referidas, para desempate, obtém-se a seguintesequência de quadros

cj 0 0 0 0.75 -150 0.02 -6

cB xB x0 x1 x2 x3 x4 x5 x6 x7

0 x1 0 1 0 0 0.25 -60 -0.04 9� � 0 x2 0 0 1 0 0.5 -90 -0.02 3

0 x3 1 0 0 1 0 0 1 0

Zj 0 0 0 0 0 0 0 0

cj−Zj 0 0 0 0.75 -150 0.02 -6� �

Page 58: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 54 -

cj 0 0 0 0.75 -150 0.02 -6

cB xB x0 x1 x2 x3 x4 x5 x6 x7

0 x1 0 1 -0.5 0 0 -15 -0.03 7.5

0.75

x4 0 0 2 0 1 -180 -0.04 6

� � 0 x3 1 0 0 1 0 0 1 0

Zj 0 0 1.5 0 0.75 -135 -0.03 4.5

cj−Zj 0 -1.5 0 0 -15 0.05� �

-10.5

0 x1 0.03 1 -0.5 0.03 0 -15 0 7.5

0.75

x4 0.04 0 2 0.04 1 -180 0 6

0.02

x6 1 0 0 1 0 0 1 0

Zj 0.05 0 1.5 0.05 0.75 -135 0.02 4.5

cj−Zj 0 -1.5 -0.05 0 -15 0 -10.5

a que corresponde a solução óptima [0.03, 0, 0, 0.04, 0, 1, 0]T.

Caso, na resolução do problema anterior, não se tivesse tido em contaos critérios de desempate anteriormente referidos, existia uma grandeprobabilidade de o problema entrar em ciclo.

A adopção do critério do menor índice, para a saída da base em casode empate, neste problema, conduzia à obtenção da mesma solução básicaadmissível, após seis iterações. O valor da função objectivo iria manter-seconstante Z = 0.

Page 59: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 55 -

Efectuar as operações depivotação

Estabelecer a saidade uma variável Xi da base.

Em caso de empate escolher

Sim

NãoO problema é ilimitado

FIMExiste algum

ir > 0 ?

Sim

Determinar a entradade uma variável Xr na base.

máx. {Cj - Zj}na maximização

máx. {Zj - Cj}na minimização

Em caso de empate escolhero menor índice j

NãoA solução básica

determinada é óptima

FIM

se existe algum

Cj - Zj > 0na maximização

Zj - Cj >0na minimização

Elaborar o quadro simplex

Determinar uma solução básica admissível inicial

Apresentação do problemana forma padrão

Determinar

a

mín. i ir{ b / a }

mín. is ir{ a / a }

FIGURA 6 - Fluxograma representativo do algoritmo primal do simplex.

Page 60: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 56 -

4.5. INEXISTÊNCIA DE UMA SOLUÇÃO BÁSICA ADMISSÍVEL INICIAL

Até ao momento vimos exemplos de aplicação em que os problemas deprogramação linear estavam inicialmente na forma canónica, pelo que apassagem para a forma padrão originava uma primeira solução básicaadmissível, em que as variáveis básicas correspondiam às variáveis dedesvio (neste caso de folga). No entanto, no caso de existirem restrições dotipo ≥ para as quais os termos independentes bi são não negativos (comexcepção das restrições de não negatividade), a introdução das variáveis dedesvio (neste caso de excesso) não conduzem à obtenção directa de umasolução básica admissível inicial. Deste modo, depois de o programa linearestar apresentado na forma padrão, é necessárioaa criação de um conjuntode variáveis artificiais, por forma a identificarmos uma solução básicaadmissível inicial para o problema. Os valores dessas variáveis, obviamente,têm que ser nulos pois caso contrário não se verificam as restriçõesassociadas às variáveis artificiais não nulas, sendo o problema impossível (oconjunto K será vazio).

Considere-se o problema inicial de programação linear na forma padrão

max. (min.) Z = c1x1 + c2x2 +...+ cjxj +...+ cnxn

s. aa11x1 + a12x2 +...+ a1jxj +...+ a1nxn = b1

a21x1 + a22x2 +...+ a2jxj +...+ a2nxn = b2

...ai1x1 + ai2x2 +...+ aijxj +...+ ainxn = bi

...am1x1 + am2x2 +...+ amjxj +...+ amnxn = bm

x1 , x2 , ... , xj ,..., xn ≥ 0

No caso do problema acima apresentado, não existe qualquer variável quepossa ser tomada, de forma imediata, como básica. Isto é, não é possívelidentificar uma matriz identidade como partição da matriz dos coeficientestécnicos A. Nestas condições, é necessário introduzir m variáveis artificiaisque serão as variáveis básicas iniciais.

Page 61: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 57 -

Após a introdução das variáveis artificiais, as restrições do problema deprogramação linear, serão agora

a11x1 + a12x2 +...+ a1nxn + xn+1 = b1

a21x1 + a22x2 +...+ a2nxn + xn+2 = b2

...ai1x1 + ai2x2 +...+ ainxn + xn+i = bi

...am1x1 + am2x2 +...+ amnxn + xn+m = bm

x , x , ... , x , x , ... , x 1 2 n

iniciais

n+1 n+m

artificiais

� �� � �� � � �� � �� �≥ 0

A utilização deste artifício matemático a que se designa por técnica dasvariáveis artificiais, permite a obtenção de uma solução básica inicial, nãotendo estas variáveis qualquer significado quer de ordem económica quer denatureza física.

Os problemas deste tipo podem não necessitar da introdução de variáveisartificiais em todas as restrições, no entanto, nesses casos (os mais usuais), aresolução do problema pode ser efectuada de forma semelhante, sendo asolução básica inicial, assim obtida, parcialmente artificial.

Para a resolução destes problemas de programação linear pode ser utilizadoo método das duas fases (estudado por Dantzig, Orden, Wolfe) ou o métododa penalização da função objectivo (estudado por Charnes, Cooper,Henderson), os quais em seguida se descrevem.

Page 62: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 58 -

4.5.1. MÉTODO DAS DUAS FASES

Neste método um programa linear é resolvido em duas fases distintas.

A primeira fase deste método começa com a passagem ao problemaauxiliar

min. Z ' = xn+1 + xn+2 +...+ xn+m

s. aa11x1 + a12x2 +...+ a1nxn + xn+1 = b1

a21x1 + a22x2 +...+ a2nxn + xn+2 = b2...ai1x1 + ai2x2 +...+ ainxn + xn+i = bi...am1x1 + am2x2 +...+ amnxn + xn+m = bm

x1 , x2 , ... , xn , xn+1 , xn+2 , ... , xn+m ≥ 0

O objectivo, nesta fase, consiste em minimizar a soma das variáveisartificiais (função objectivo artificial) que constituem a base, quer oproblema inicial seja de maximização, quer seja de minimização .

Qualquer solução do problema inicial é igualmente solução do problemaauxiliar com as variáveis artificiais todas nulas. A solução básica assimobtida para o problema auxiliar, constitui uma solução básica admissível doproblema inicial, desde que todas as variáveis artificiais sejam nulas, sendoZ ' = 0.

No fim da primeira fase, a aplicação do algoritmo primal do simplex poderáconduzir às seguintes hipóteses:

i) Z ' > 0 Neste caso existe, pelo menos, uma variável artificial básica nãonula. Assim, as restrições do problema inicial a que correspondemvariáveis artificiais não nulas, não são verificadas, logo conclui-seque o problema inicial é impossível (K = ∅).

Page 63: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 59 -

ii) Z ' = 0 e sem nenhuma variável artificial básica. A solução obtida constitui uma solução básica admissível doproblema inicial, passando-se directamente para a segunda fase doproblema.

iii ) Z ' = 0 e com uma, ou mais, variáveis artificiais básicas de valornulo A solução a que se chegou constitui uma solução admissível doproblema inicial. Nesta situação, caso exista um vector não artificialfora da base que possa substituir, na base, um vector artificial,efectua-se essa substituição obtendo-se uma solução degenerada. Emcaso contrário, elimina-se do quadro simplex a linha associada àvariável artificial básica, dado que a restrição do problema inicialcorrespondente, é redundante (pode ser obtida por combinaçãolinear das restantes). Em seguida, para qualquer um dos casos,passa-se à segunda fase do problema.

Na segunda fase do problema procede-se à eliminação, do quadro simplex,das variáveis artificiais (esta operação não é obrigatória), efectuando-se emseguida a resolução do problema inicial usando o algoritmo primal dosimplex, dado que é conhecida uma solução básica admissível inicial, obtidana primeira fase.

EXEMPLO 8

Resolver o seguinte problema de programação linear.

max. Z = x1 + 4x2

s.a

−x1 + 2x2 ≤ 12

4x1 + 4x2 ≥ 20

−x1 + 4x2 ≥ 4

x1 , x2 ≥ 0

Page 64: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 60 -

Resolução do exemplo 8

Passando à forma padrão

max. Z = x1 + 4x2

s.a

−x1 + 2x2 + x3 = 12

4x1 + 4x2 − x4 = 20

−x1 + 4x2 − x5 = 4

x1 , ..., x5 ≥ 0

A passagem à forma padrão não possibilitou a obtenção de uma soluçãobásica admissível inicial, para o problema, de forma directa. Será necessárioresolver, primeiro, um problema de programação linear auxiliar, que permitaa identificação de uma solução básica admissível para o problema inicial.

A inclusão de variáveis artificiais permite-nos identificar uma soluçãobásica admissível para o problema auxiliar. Como pretendemos uma soluçãobásica admissível para o problema inicial, será necessário retirar da baseessas variáveis artificiais (dado que estas não existem no problema inicial).

Atendendo ao processo de cálculo que consta do algoritmo primal dosimplex, forçamos a saída da base, das variáveis artificiais, minimizando asua soma.

min. Z' = x6 + x7

s.a

−x1 + 2x2 + x3 = 12

4x1 + 4x2 − x4 + x6 = 20

−x1 + 4x2 − x5 + x7 = 4

x1 , ..., x7 ≥ 0

Page 65: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 61 -

A primeira fase do método das duas fases, conduz aos seguintes quadros:

c'j 0 0 0 0 0 1 1

cB xB x0 x1 x2 x3 x4 x5 x6 x70 x3 12 -1 2 1 0 0 0 0

1 x6 20 4 4 0 -1 0 1 0� � 1 x7 4 -1 4 0 0 -1 0 1

Z'j 24 3 8 0 -1 -1 1 1

Z'j−c'j 3 8� �

0 -1 -1 0 0

0 x3 10 -0.5 0 1 0 0.5 0 -0.5� � 1 x6 16 5 0 0 -1 1 1 -1

0 x2 1 -0.25 1 0 0 -0.25 0 0.25

Z'j 16 5 0 0 -1 1 1 -1

Z'j−c'j 5� �

0 0 -1 1 0 -2

0 x3 11.6 0 0 1 -0.1 0.6 0.1 -0.6

0 x1 3.2 1 0 0 -0.2 0.2 0.2 -0.2

0 x2 1.8 0 1 0 -0.05 -0.2 0.05 0.2

Z'j 0 0 0 0 0 0 0 0

Z'j−c'j 0 0 0 0 0 -1 -1

atingiu-se o óptimo do problema auxiliar, e obteve-se uma solução básicaadmissível para o problema inicial.

Pode-se começar a segunda fase do cálculo.

cj 1 4 0 0 0

cB xB x0 x1 x2 x3 x4 x5

0 x3 11.6 0 0 1 -0.1 0.6� � 1 x1 3.2 1 0 0 -0.2 0.2

4 x2 1.8 0 1 0 -0.05 -0.2

Zj 10.4 1 4 0 -0.4 -0.6

cj−Zj 0 0 0 0.4 0.6� �

Page 66: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 62 -

cj 1 4 0 0 0

cB xB x0 x1 x2 x3 x4 x5� � 0 x3 2 -3 0 1 0.5 0

0 x5 16 5 0 0 -1 1

4 x2 5 1 1 0 -0.25 0

Zj 20 4 4 0 -1 0

cj−Zj -3 0 0 1� �

0

cB xB x0 x1 x2 x3 x4 x5

0 x4 4 -6 0 2 1 0

0 x5 20 -1 0 2 0 1

4 x2 6 -0.5 1 0.5 0 0

Zj 24 -2 4 2 0 0

cj−Zj 3 0 -2 0 0

Não existe nenhuma variável em condições de entrar na base (a1i < 0), logo

o problema é ilimitado (K = ∅).

x 2

x 1A

CB

E

D

1ª Fase » A→ B → C

+ ∞

2ª Fase » C→ D → + ∞E →

FIGURA 7

Page 67: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 63 -

4.5.2. MÉTODO DA PENALIZAÇÃO DA FUNÇÃO OBJECTIVO

No subcapítulo anterior, o problema da inexistência de uma solução básicaadmissível foi resolvido em duas fases distintas, o que, do ponto de vista daimplementação desse método em programas de cálculo automático, é poucodirecto. Um outro método consiste em obrigar as variáveis artificiais asairem da base (que, como vimos, são obrigatoriamente nulas para asrestrições serem compatíveis), agravando, em grau relativo, o valor dafunção objectivo, por intermédio dessas mesmas variáveis. Essa penalizaçãoé concretizada estipulado coeficientes da função objectivo associados àsvariáveis artificiais, arbitrariamente grandes. Os sinais desses coeficientesserão negativos para problemas de maximização e positivos para problemasde minimização.

A utilização do método da penalização da função objectivo implica aapresentação do problema na seguinte forma

max. Z = c1x1 + c2x2 +...+ cnxn − Mxn+1 −...− Mxn+m

oumin. Z = c1x1 + c2x2 +...+ cnxn + Mxn+1 +...+ Mxn+m

s. a

a11x1 + a12x2 +...+ a1nxn + xn+1 = b1

a21x1 + a22x2 +...+ a2nxn + xn+2 = b2

...ai1x1 + ai2x2 +...+ ainxn + xn+i = bi

...am1x1 + am2x2 +...+ amnxn +xn+m = bm

x , x , ... , x , x , ... , x 1 2 n

iniciais

n+1 n+m

artificiais

� �� � �� � � �� � �� �≥ 0

No caso em que a utilização deste método, para a resolução de problemas deprogramação linear, é efectuada manualmente, não é necessária a atribuiçãode nenhum valor numérico para M.

Page 68: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 64 -

O método da penalização da função objectivo, conduz a uma sucessão deiterações que culmina numa das seguintes situações:

i) O óptimo foi obtido sem a existência de variáveis artificiais na base. a solução encontrada é a solução do problema.ii ) Atingiu-se um óptimo com variáveis artificiais na base mas de valornulo. a solução encontrada é a solução do problema.iii ) Determinou-se uma solução óptima com variáveis artificiais não nulasna base as restrições são incompatíveis, logo o problema é impossível (K = ∅).

iv) Chegou-se a uma situação em que não existe nenhum air > 0 no quadro o problema é ilimitado.

EXEMPLO 9

Resolver o seguinte problema de programação linear.

min. Z = x1 + 4x2

s.ax1 − x2 ≤ 1.5

2x1 + x2 ≥ 5

3x1 + x2 ≤ 16

−2x1 + x2 = 2

x1 , x2 ≥ 0

Resolução do exemplo 9

Passagem à forma padrão

min. Z = x1 + 4x2

s.ax1 − x2 + x3 = 1.5

2x1 + x2 − x4 = 5

3x1 + x2 + x5 = 16

−2x1 + x2 = 2

x1 , ..., x5 ≥ 0

Page 69: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 65 -

Utilizando o método da penalização da função objectivo resolve-se oseguinte programa linear

min. Z = x1 + 4x2 + Mx6 + Mx7

s.a

x1 − x2 + x3 = 1.5

2x1 + x2 − x4 + x6 = 5

3x1 + x2 + x5 = 16

−2x1 + x2 + x7 = 2

x1 , ..., x7 ≥ 0

Foram incluídas na função objectivo as variáveis artificiais com coeficiente+M (por se tratar de uma minimização) de modo a ser penalizada paravalores não nulos dessas variáveis.

Em seguida utiliza-se o algoritmo primal do simplex, o que origina asequência de quadros que se apresenta.

cj 1 4 0 0 0 M M

cB xB x0 x1 x2 x3 x4 x5 x6 x70 x3 1.5 1 -1 1 0 0 0 0

M x6 5 2 1 0 -1 0 1 0

0 x5 16 3 1 0 0 1 0 0� � M x7 2 -2 1 0 0 0 0 1

Zj 7M 0 2M 0 -M 0 M M

Zj−cj -1 2M-4� � 0 -M 0 0 0

0 x3 3.5 -1 0 1 0 0 0 1� � M x6 3 4 0 0 -1 0 1 -1

0 x5 14 5 0 0 0 1 0 -1

4 x2 2 -2 1 0 0 0 0 1

Zj 3M+8 4M-8 4 0 -M 0 M -M+4

Zj−cj 4M-9� � 0 0 -M 0 0 -2M+4

Page 70: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 66 -

cj 1 4 0 0 0 M M

cB xB x0 x1 x2 x3 x4 x5 x6 x70 x3 4.25 0 0 1 -0.25 0 0.25 0.75

1 x1 0.75 1 0 0 -0.25 0 0.25 -0.25

0 x5 10.25 0 0 0 1.25 1 -1.25 0.25

4 x2 3.5 0 1 0 -0.5 0 0.5 0.5

Zj 14.75 1 4 0 -2.25 0 2.25 1.75

Zj−cj 0 0 0 -2.25 0 2.25-M 1.75-M

a que corresponde a solução óptima [0.75, 3.5, 4.25, 0, 10.25]T, (não foramincluídas as variáveis artificiais por estas serem somente um artifício decálculo).

x 2

x 1A

C

B

A → B → C

FIGURA 8

Page 71: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 67 -

4.6. PROBLEMAS PROPOSTOS

4.1. Determine a solução óptima dos seguintes programas lineares:

a) max. Z = 2x1 + 10x2 b) min. Z = −2x1 − x2 + x3

s.a s.a4x1 − x2 ≤ 6 2x1 + x2 + x3 ≤ 16

x1 + 2x2 ≤ 4 x1 + x2 ≤ 4

x1 , x2 ≥ 0 x2 − x3 ≤ 2

x1 , x2 , x3 ≥ 0

c) max. Z = x1 + 14x2 d) max. Z = x1 + x2 + 3x3

s.a s.a−2x1 + x2 ≤ 2 x1 + x2 + 4x3 ≤ 20

x1 − x2 ≥ − 4 2x1 + 2x2 − x3 + x4 = 0

x2 ≤ 20 x2 + 2x3 ≤ 8

x1 , x2 ≥ 0 x1 , x2 , x3 , x4 ≥ 0

e) min. Z = −x1 + x2 + x3 f) max. Z = 2x1 + 4x2 + 2x3

s.a s.ax1 − x2 + x3 ≤ 2 x1 − 2x2 + x3 ≤ 6

2x1 + x2 − 4x3 ≤ 24 2x2 + x3 ≤ 20

4x1 + 2x3 ≤ 12 x1 + 2x2 + x3 ≤ 40

x1 , x2 ≥ 0 ; −∞ ≤ x3 ≤ +∞ x1 , x2 , x3 ≥ 0

g) max. Z = x2 + x3 h) max. Z = x1 + 2x2 + x3 + 2x4

s.a s.a3x1 + 2x2 − x3 ≤ 6 x1 + x3 + x4 ≤ 80

x1 + 2x2 ≤ 28 x1 + 2x2 + x3 − 2x4 ≤ 0

x2 − x3 ≤ 10 x1 + 2x2 − 4x4 ≤ 0

x1 , x2 , x3 ≥ 0 x1 , x2 , x3 , x4 ≥ 0

Page 72: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 68 -

4.2. Recorrendo ao método das duas fases, resolva os seguintes problemas de

programação linear:

a) max. Z = 8x1 + x2 + 3x3 b) min. Z = x1 + x2 − 8x3

s.a s.ax1 + 3x2 − x3 ≥ 12 4x1 + x2 + 5x3 ≤ 125

6x1 + 3x2 + 2x3 ≤ 90 x1 + x2 = 20

x1 − x2 + x3 ≥ 2 x2 + 2x3 ≥ 16

x1 , x2 , x3 ≥ 0 x1 , x2 ≥ 0 ; −∞ ≤ x3 ≤ +∞

c) max. Z = x1 + 4x2 d) max. Z = 5x1 + x2 + 2x3

s.a s.a−5x1 + 2x2 ≤ 12 2x1 + 3x2 + x3 ≥ 50

x1 + x2 ≥ 6 x1 + 5x2 + x3 ≤ 30

4x1 + x2 ≥ 25 x1 + x2 + 2x3 = 24

3x1 + 2x2 ≤ 24 x1 , x2 , x3 ≥ 0

x1 , x2 ≥ 0

e) min. Z = −3x1 + 2x2 + 2x3 − 3x4 f) max. Z = x1 + 4x2 + 5x3 + x4

s.a s.ax1 − 4x2 − 4x3 + 6x4 ≤ 0 x1 + 2x2 − x3 + x4 ≥ 12

−x1 + 4x2 − x3 − 2x4 ≥ 0 2x1 − x2 + 3x3 ≤ 32

x1 + x3 ≤ 4 2x1 + x2 − x3 = 4

x1 + x2 − 4x3 + x4 = 1 x1 − x4 ≤ 18

x1 , x2 , x3 , x4 ≥ 0 x1 , x2 , x3 , x4 ≥ 0

Page 73: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 69 -

4.3. Recorrendo ao método da penalização da função objectivo, resolva os seguintes

problemas:

a) min. Z = x1 − 3x2 − x3 b) max. Z = 7x1 + 3x2

s.a s.ax1 + x2 + x3 ≥ 10 8x1 + x2 ≤ 44

x1 − x2 − x3 ≥ 2 x2 ≥ 8

x1 + 4x2 + 2x3 ≤ 80 2x1 − x2 ≤ 0

x1 , x2 , x3 ≥ 0 4x1 − 3x2 ≥ 1

x1 , x2 ≥ 0

c) max. Z = x1 + 2x2 + x3 + 3x4 d) max. Z = x1 + x2 + 5x3

s.a s.ax1 − x2 + 2x4 ≥ 2 x1 + 3x2 + 4x3 ≤ 50

x1 + 2x2 + x3 ≤ 40 x1 − x2 + x3 ≥ 6

x2 + x3 + 2x4 ≤ 32 2x2 − x3 ≥ 12

x1 + x3 = 10 x1 , x2 , x3 ≥ 0

x1 , x2 , x3 , x4 ≥ 0

e) max. Z = 4x1 + x2 + 6x3 + x4 f) min. Z = −x1 + 3x2 − x3

s.a s.a4x1 + x2 − x4 ≤ 100 x2 − x3 = 2

x3 + x4 ≤ 20 4x1 + x2 + 3x3 ≤ 120

x1 + x2 + 2x3 − 3x4 ≥ 50 −x1 + 3x2 + x3 ≥ 18

2x1 − x3 = 0 x1 , x2 , x3 ≥ 0

x1 , x2 , x3 , x4 ≥ 0

4.4. Resolver os problemas propostos do capítulo 2 aplicando o algoritmo primal do

simplex.

Page 74: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 70 -

5. DUALIDADE NA PROGRAMAÇÃO LINEAR

5.1. DEFINIÇÃO DO PROBLEMA DUAL

A cada problema de programação linear de variáveis x1, x2 , ... , xn , está

associado um outro problema de programação linear de variáveis y1, y2, ...,

ym (onde m é o número de restrições do problema) a que se designa porproblema dual. O problema original é designado por problema primal.

Para um melhor esclarecimento, consideremos o exemplo seguinte:

EXEMPLO 10

Uma firma de construção civil pretende fazer, em estaleiro, betões de classeB25 e B30, para uma determinada obra. O departamento de gestão efectuouum estudo que define os valores mínimos necessários à viabilização dessaintenção, sendo estes de 300 toneladas de cimento, 580 toneladas de areia e1000 toneladas de brita. O custo estimado pelo empreiteiro aquando daelaboração da proposta para o concurso à empreitada, foi feito com base noscustos de betão pronto. Esses preços, entrando em conta só com os trêsmateriais, foram de 8.8 contos/m3 e 10.6 contos/m3 respectivamente, para oB25 e o B30. A composição de cada tipo de betão, em kg/m3, encontra-sedescriminada no quadro seguinte:

Betão Cimento Areia BritaB25 330 710 1240B30 400 630 1255

Podemos, então, formular o seguinte programa linear, a que designamos porproblema primal.

min. Z = 8.8x1 + 10.6x2s.a

0.33x1 + 0.4x2 ≥ 300

0.71x1 + 0.63x2 ≥ 580

1.24x1 + 1.255x2 ≥ 1000

x1 , x2 ≥ 0

Page 75: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 71 -

em que:x1 - volume de betão B25 a ser elaboradox2 - volume de betão B30 a ser elaborado

O objectivo do empreiteiro será minimizar o custo total.

Consideremos agora o problema na perspectiva da firma que vai fornecer osmateriais. Para esta firma conseguir vender os referidos materiais aoempreiteiro, terá que fazer um preço de venda das quantidades necessáriaspara elaborar 1 m3 de betão, inferior ou igual ao valor estimado peloempreiteiro, pois caso contrário este desiste de fazer o betão em estaleiro ecompra betão pronto. Dessa forma teremos as seguintes restrições:

0.33y1 + 0.71y2 + 1.24y3 ≤ 8.8

0.4y1 + 0.63y2 + 1.255y3 ≤ 10.6

y1 , y2 , y3 ≥ 0

em que:y1 - preço de venda de 1 ton. de cimentoy2 - preço de venda de 1 ton. de areiay3 - preço de venda de 1 ton. de brita

Sendo óbvio que y1 , y2 , y3 ≥ 0, dado que a firma de materiais deconstrução não irá pagar ao empreiteiro por lhe fornecer materiais.

Por outro lado, se o empreiteiro comprar os materiais e fazer o betão emestaleiro, ele comprará uma quantidade de materiais que lhe viabilizem essatarefa.

Desta forma o problema dual será:

max. W = 300y1 + 580y2 + 1000y3s.a

0.33y1 + 0.71y2 + 1.24y3 ≤ 8.8

0.4y1 + 0.63y2 + 1.255y3 ≤ 10.6

y1 , y2 , y3 ≥ 0

Page 76: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 72 -

Dos dois problemas de programação linear anteriores tiramos as seguintesconclusões:

• A cada restrição do problema primal está associada uma variável doproblema dual

• Por cada variável do problema primal existe uma restrição do problemadual.

• A matriz dos coeficientes técnicos do problema dual é igual à matriztransposta dos coeficientes técnicos do problema primal.

• Os termos independentes do problema dual são os coeficientes da funçãoobjectivo do problema primal. Os coeficientes da função objectivo doproblema dual são os termos independentes do problema primal.

• Se o problema primal for de maximização, o dual será de minimização.Se o problema primal for de minimização, o dual será de maximização.

A partir destas conclusões podemos tirar uma outra:

• O dual do problema dual é o problema primal.

Variáveis do PRIMAL

x1 x2 ... xj ... xn Termos

c1 c2 ... cj ... cn

� independentes

do DUAL

y1 b1 a11 a12 ... a1j ... a1n

y2 b2 a21 a22 ... a2j ... a2n

Variáveis doDUAL

......

......

. . ....

. . ....

yi bi ai1 ai2 ... aij ... ain

......

......

. . ....

. . ....

ym bm am1 am2 ... amj ... amn� �

Coeficientes da f.o. do DUAL Restrição j do DUAL

Page 77: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 73 -

5.2. PASSAGEM DO PRIMAL AO DUAL

Na notação matricial temos:

PRIMAL DUAL

max Z = cT x min W = bT ys.a ou s.a ou

A x ≤ bx ≥ 0

A x = bx ≥ 0

AT y ≥ cy ≥ 0

AT y ≥ cy livre

min Z = cT x max W = bT ys.a ou s.a ou

A x ≥ bx ≥ 0

A x = bx ≥ 0

AT y ≤ cy ≥ 0

AT y ≤ cy livre

Das relações entre o primal e o dual podemos enunciar o seguinte:• Se a restrição i do problema primal é uma igualdade, então a variável yinão tem restrição de sinal.• Se a restrição i do problema primal é do tipo maior ou igual, na

maximização, ou do tipo menor ou igual, na minimização, a variável yi énão positiva.• Se a variável xj do primal não tem restrição de sinal, então a restrição jdo dual é uma igualdade.• Se a variável xj do primal é não positiva, então a restrição j do dual é dotipo maior ou igual se o primal for de maximização, ou do tipo menor ouigual se o primal for de minimização.

Resumindo, podemos elaborar o seguinte quadro:

PRIMAL (max.) DUAL (min.)

Restrição i≤=≥

Variável yi≥ 0

Livre≤ 0

Variável xj

≥ 0Livre≤ 0

Restrição j≥=≤

DUAL (max.) PRIMAL (min.)

Page 78: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 74 -

EXEMPLO 11

Escrever o dual do seguinte problema de programação linear.

max. Z = 2x1 + 4x2 − x3 − x4 + 3x5

s.ax1 − 4x2 + x3 − 2x4 ≤ 20x1 − 3x3 + x4 + x5 = 32x1 − x2 + 4x4 − 3x5 ≥ 6x1 , x2 ≥ 0 ; x3 , x4 ≤ 0 ; −∞ ≤ x5 ≤ +∞

Resolução do exemplo 11

Em primeiro lugar vamos definir as variáveis do dual, que estão associadasàs restrições do primal.

(y1) x1 − 4x2 + x3 − 2x4 ≤ 20 → y1 ≥ 0(y2) x1 − 3x3 + x4 + x5 = 32 → −∞ ≤ y2 ≤ +∞(y3) x1 − x2 + 4x4 − 3x5 ≥ 6 → y3 ≤ 0

O tipo de restrição do dual está relacionado com a restrição ao sinal davariável primal correspondente:

x1 ≥ 0 → y1 + y2 + y3 ≥ 2x2 ≥ 0 → −4y1 − y3 ≥ 4x3 ≤ 0 → y1 − 3y2 ≤ −1x4 ≤ 0 → −2y1 + y2 + 4y3 ≤ −1−∞ ≤ x5 ≤ +∞ → y2 − 3y3 = 3

Os coeficientes da função objectivo do dual são os termos independentes doprimal, logo:

min. W = 20y1 + 32y2 + 6y3

s.ay1 + y2 + y3 ≥ 2−4y1 − y3 ≥ 4y1 − 3y2 ≤ −1−2y1 + y2 + 4y3 ≤ −1y2 − 3y3 = 3y1 ≥ 0 ; −∞ ≤ y2 ≤ +∞ ; y3 ≤ 0

Page 79: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 75 -

5.3. TEORIA DA DUALIDADE NA PROGRAMAÇÃO LINEAR

5.3.1. TEOREMAS BÁSICOS DA DUALIDADE

• Se [ x1, x2, ..., xn ]T é uma solução admissível do problema primal e

[y1, y2, ..., ym ]T é uma solução admissível do dual, e se Z e W sãovalores das funções objectivo do primal e dual, respectivamente, então

teremos Z ≤ W nos problemas de maximização do primal e Z ≥ W nosproblemas de minimização do primal (teorema da dualidade fraca).

• Se [ x1, x2, ..., xn ]T e [ y1, y2, ..., ym ]T são soluções admissíveis dopar de problemas primal e dual, tais que os valores correspondentes dasfunções objectivo são Z = W, então estas são soluções óptimas.

• Para qualquer par de problemas primal-dual, a existência de uma soluçãoóptima (finita) num deles garante a existência de uma solução óptima(finita) para o outro, e os respectivos valores das funções objectivo sãoiguais.

• Um problema de programação linear tem solução óptima (finita) se e sóse existirem soluções admissíveis para os problemas primal e dual.

• Se algum dos problemas (primal ou dual) tiver uma solução não limitada,então o outro não possui soluções admissíveis.

Resumidamente apresentam-se estes teoremas no quadro seguinte:

Problema Primal possível Primal impossível

Dual possívelZ = W

os problemas têmsolução óptima

W → ∞o dual tem

solução ilimitada

Dual impossívelZ → ∞

o primal temsolução ilimitada

Não existemsoluções admissíveis

para o problema

Page 80: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 76 -

5.3.2. TEOREMA DOS DESVIOS COMPLEMENTARES

Se aplicarmos o algoritmo primal do simplex e obtivermos a solução óptimado problema primal, concluímos o seguinte:

• O valor óptimo da variável yi do dual é igual ao valor da coluna n+i daúltima linha do quadro simplex (cujo sinal depende da restrição ao sinal davariável dual), correspondente à variável de desvio xn+i do primal.

• O valor óptimo da variável de desvio ym+j do dual é igual ao valor dacolona j da última linha do quadro simplex (valores simétricos),correspondente à variável xj do primal.

O que pode ser complementado com:

• Se na solução óptima do primal a variável de desvio xn+i é básica, então

a variável yi do dual é não-básica.

• Se na solução óptima do primal a variável xj é básica, então a variável de

desvio ym+j do dual é não-básica.

• Se na solução óptima do dual a variável de desvio ym+j é básica, então a

variável xj do primal é não-básica.

• Se na solução óptima do dual a variável yi é básica, então a variável xn+ide desvio do primal é não-básica.

Como as variáveis de decisão de um problema primal-dual estão ligadascom as variáveis de desvio do outro, diz-se que as soluções sãocomplementares entre si.

Se aplicarmos o algoritmo primal do simplex ao problema primalverificamos que se a solução não for óptima, existe pelo menos umelemento positivo da última linha do quadro simplex, logo existe pelo menosuma variável do problema dual não admissível. Deste modo, a aplicação doalgoritmo primal aos problemas primal e dual fica sintetizada no quadroseguinte:

Algoritmo primal aplicado ao PRIMAL

Solução básica admissível do PRIMAL ↔ Solução básica não admissível do DUAL

⇓⇓ ↓Variáveis do PRIMAL VALORES ÓPTIMOS Variáveis do DUAL

↑ ⇑⇑Solução básica não admissível do PRIMAL ↔ Solução básica admissível do DUAL

Algoritmo primal aplicado ao DUAL

Page 81: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 77 -

5.4. ALGORITMO DUAL DO SIMPLEX

O processo de resolução de problemas de programação linear baseado noalgoritmo dual do simplex, corresponde a um percurso orientado desoluções básicas admissíveis do problema dual, a que correspondemsoluções básicas não admissíveis do problema primal, até se atingir umasolução básica admissível do primal. A esta solução corresponde o valoróptimo (caso seja finito) do par de problemas primal-dual.

Problema PRIMAL ÓPTIMO Problema DUALSolução básicanão admissível

→...→Solução básicanão admissível

→Solução básica

admissível←

Solução básicaadmissível

←...←Solução básica

admissível

i) Elaborar um quadro simplex onde se identifique uma solução básicaadmissível para o dual (valores da última linha do quadro todosmenores ou iguais a zero).

ii ) Verificar se a solução é óptima, isto é, se a solução é admissívelpara o primal (todos os bi maiores ou iguais a zero). Caso contrário,determina-se a variável que vai ser substituída na base e quecorresponde à linha (linha pivotal) em que se verifica:

{ } mín b bi

i i < 0

iii ) Determinar a variável que vai entrar na base a que corresponde acoluna (coluna pivotal) onde se verifica

mín c Z

a a no caso da maximização

j

j j

rjrj

−<

0

ou

mín Z c

a a no caso da minimização

j

j j

rjrj

−<

0

Caso não exista nenhum air < 0 este algoritmo termina, sendo oproblema dual ilimitado e o problema primal impossível.

iv) No caso de empate no critério de saída ou de entrada na baseescolher a variável de menor índice. Identificado o elemento pivô,aplicar as regras de pivotação, expostas no capítulo 3.3, para efectuar amudança de solução básica admissível.

Este algoritmo está implementado no programa de cálculo automático"Simplex" fornecido em anexo a estes apontamentos.

Page 82: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 78 -

EXEMPLO 12

Resolver o seguinte problema de programação linear aplicando o algoritmodual do simplex.

min. Z = x1 + 2x2

s.ax1 + x2 ≥ 4

x1 + 5x2 ≥ 8

x1 , x2 ≥ 0

Resolução do exemplo 12

O primeiro passo da resolução é passar o problema à forma padrão eidentificar uma solução básica admissível para o dual.

min. Z = x1 + 2x2

s.a−x1 − x2 + x3 = −4

−x1 − 5x2 + x4 = −8

x1 , x2, x3, x4 ≥ 0

Em seguida elabora-se o quadro simplex.

cj 1 2 0 0

cB xB x0 x1 x2 x3 x4

0 x3 -4 -1 -1 1 0� � 0 x4 -8 -1 -5 0 1

Zj 0 0 0 0 0

Zj−cj -1 -2 0 0� �

Page 83: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 79 -

Identifica-se uma solução básica admissível inicial do dual [ 0, 0, 1, 2 ]T, e

uma solução básica não admissível do primal [ 0, 0, -4, -8 ]T a quecorrespondem os pontos "A" e "D" na figura 9.

Determina-se a linha pivotal, ou seja, a variável que sai da base, quando seefectua o seguinte cálculo:

{ } { } mín b b mín 4 , 8 8i=1,2

i i < = − − = −0

logo, a segunda linha será a linha pivotal, a que corresponde a variável x4,que sai da base.

A variável x2 entra na base atendendo a que

mín Z c

a a mín

j=1,..,4

j j

2j2j

−<

= −

−−−

=01

1

2

5

2

5,

Aplicando as regras de pivotação obtém-se

cj 1 2 0 0

cB xB x0 x1 x2 x3 x4� � 0 x3 -2.4 -0.8 0 1 -0.2

2 x2 1.6 0.2 1 0 -0.2

Zj 3.2 0.4 2 0 -0.4

Zj−cj -0.6 0 0 -0.4� �

Deste novo quadro identifica-se uma outra solução básica admissível doproblema dual [ 0, 0.4, 0.6, 0 ]T, e uma solução básica não admissível do

problema primal [ 0, 1.6, -2.4, 0 ]T a que correspondem os pontos "B" e"E" na figura 9.

{ } { } mín b b mín 4 , logo a variável sai da basei=1,2

i i 3x< = − = −0 2 2 4. .

mín Z c

a a mín , entrando na base

j=1,..,4

j j

1j1j 1x

−<

= −

−−−

=006

08

04

02

06

08

.

.,

.

.

.

.

Page 84: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 80 -

Efectuando as operações de pivotação obtém-se um novo quadro.

cj 1 2 0 0

cB xB x0 x1 x2 x3 x4

1 x1 3 1 0 -1.25 0.25

2 x2 1 0 1 0.25 -0.25

Zj 5 1 2 -0.75 -0.25

Zj−cj 0 0 -0.75 -0.25

A este último quadro corresponde uma solução admissível para o problemadual [ 0.75, 0.25, 0, 0 ]T, e uma solução admissível para o problema primal

[ 3, 1, 0, 0 ]T, pontos "C" e "F" na figura 9. Como estamos em presença desoluções admissíveis para o par de problemas primal-dual, logo estas sãosoluções óptimas, sendo Z = W = 5.

PRIMAL

min. Z = x1 + 2x2s.a

x1 + x2 ≥ 4x1 + 5x2 ≥ 8x1 , x2 ≥ 0

DUAL

max. W = 4y1 + 8y2s.a

y1 + y2 ≤ 1y1 + 5y2 ≤ 2y1 , y2 ≥ 0

x 2

x 1AC

B E

D

F

y 2

y 1

FIGURA 9

Page 85: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 81 -

Existe algum

rj < 0 ?

Sim

Não

Estabelecer a saidade uma variável Xr da base.

mín. {bi}

Em caso de empate escolhera de menor índice

Existe algum

i < 0 ?

Efectuar as operações depivotação

Sim

Não

O problema Dual é ilimitadoe o Primal é impossível

FIM

Determinar a entradade uma variável Xj na base.

mín. { (Cj - Zj) / rj }na maximização

oumín. { (Zj - Cj) / rj }

na minimizaçãoEm caso de empate escolher

o menor índice j

A solução básicadeterminada é óptimapara o Dual e Primal

Elaborar o quadro simplex

Determinar uma soluçãobásica admissível do Dual

Apresentação do problemana forma padrão

b

a

a

a

FIM

FIGURA 10 - Fluxograma representativo do algoritmo dual do simplex.

Page 86: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 82 -

5.4.1. INEXISTÊNCIA DE UMA SOLUÇÃO ADMISSÍVEL INICIAL DO DUAL

A utilização do algoritmo dual do simplex depende do conhecimento deuma solução básica admissível para o problema dual. Em muitos casos, talsolução não é possível de obter de forma imediata. Nessas situações umatécnica possível para a obtenção de uma solução básica admissível do dual,consiste na introdução de uma restrição artificial ao problema primal.

Consideremos um problema de programação linear, na forma padrão, emque se pretende maximizar a função objectivo, e cuja base é constituídapelas variáveis xm+1, ..., xn . Para obtermos uma solução básica admissíveldo problema dual adiciona-se uma restrição ao problema originalcorrespondente a

x1 + x2 +...+ xr +...+ xm ≤ M

em que M é um número positivo de valor arbitrariamente grande. A esta

restrição corresponde uma variável artificial ym+1 do problema dual.

O problema aumentado é obtido com a adição da restrição artificial. Apóspassada à forma padrão e explicitando xr , obtém-se

x = M x x xr jj=1

r-1

jj=r+1

m

n+1− − −∑ ∑

Substituindo, no problema original, xr pela expressão anterior, vem para afunção objectivo

( )Z = Z c Z x0 j j jj=1

m

+ −∑

( ) ( ) ( ) = Z c Z x c Z M x x c Z x0 j j jj=1

r-1

r r jj=1j r

m

n+1 j j jj=r+1

m

+ − + − − −

+ −∑ ∑ ∑≠

( ) ( ) ( )[ ] ( ) = Z c Z M c Z c Z x c Z x0 r r j j r r jj=1j r

m

r r n+1+ − + − − − − −≠

Page 87: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 83 -

Para que a solução do dual seja básica e admissível, satisfazendo o critériodo óptimo, na expressão anterior as variáveis não básicas x1, ..., xm , xn+1

têm que ter coeficientes não positivos, o que se garante para a variável xrque verifique

{ } max c Z c Zj

j j j j− − > 0 no caso da maximização

ou

{ } max Z c Z cj

j j j j − − > 0 no caso da minimização

O recurso às restrições artificiais, como meio de possibilitar a aplicação doalgoritmo dual do simplex, origina as seguintes situações:

i) O problema aumentado não conduz a uma solução básicaadmissível do problema dual. o problema original não possui soluções admissíveis.

ii ) O problema aumentado tem, pelo menos, uma solução admissívelóptima em que xn+1 não pertence à base (xn+1 = 0). os valores das variáveis básicas são funções de M, não existindo,em princípio, uma solução óptima finita para o problema original.

iii ) O problema aumentado tem solução admissível óptima e xn+1 éuma variável básica dessa solução. os valores obtidos para as restantes variáveis básicascorrespondem a uma solução admissível óptima do problemaoriginal.

EXEMPLO 13

Resolver o seguinte problema de programação linear aplicando o algoritmodual do simplex.

max. Z = x1 + 4x2

s.a

2x1 + x2 ≥ 6

x1 + x2 ≤ 5

x1 , x2 ≥ 0

Page 88: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 84 -

Resolução do exemplo 13

O passo inicial será a passagem à forma padrão e a elaboração do quadrosimplex.

max. Z = x1 + 4x2

s.a

−2x1 − x2 + x3 = −6

x1 + x2 + x4 = 5

x1 ,.., x4 ≥ 0

cj 1 4 0 0

cB xB x0 x1 x2 x3 x4

0 x3 -6 -2 -1 1 0

0 x4 5 1 1 0 1

Zj 0 0 0 0 0

cj−Zj 1 4 0 0� �

Dado que existem valores da linha correspondente aos valores de cj−Zj > 0,logo não estamos em presença de uma solução básica admissível para oproblema dual (ponto “A” da figura 11). Para podermos aplicar o algoritmodual do simplex é necessário adicionar uma restrição artificial x1 + x2 ≤ Mcorrespondente à soma das variáveis não básicas, que com a introdução deuma variável de desvio se transforma em x1 + x2 + x5 = M. Vamos emseguida explicitar a variável x2 na equação artificial dado que

{ } { } max c Z c Z max 4j=1,2

j j j j− − > = =0 1 4;

o problema aumentado será

max. Z = x1 + 4x2

s.a−2x1 − (M − x1 − x5) + x3 = −6 ⇔ −x1 + x3 + x5 = M−6x1 + (M − x1 − x5) + x4 = 5 ⇔ x4 − x5 = 5 − Mx1 + x2 + x5 = Mx1 ,.., x5 ≥ 0

Page 89: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 85 -

A aplicação do algoritmo dual do simplex, ao problema aumentado, já épossível (ponto “B” da figura 11), e conduz ao seguinte conjunto de quadros

cj 1 4 0 0 0

cB xB x0 x1 x2 x3 x4 x5

0 x3 M-6 -1 0 1 0 1� � 0 x4 5-M 0 0 0 1 -1

4 x2 M 1 1 0 0 1

Zj 4M 4 4 0 0 4

cj−Zj -3 0 0 0 -4� �

� � 0 x3 -1 -1 0 1 1 0

0 x5 -5+M 0 0 0 -1 1

4 x2 5 1 1 0 1 0

Zj 20 4 4 0 4 0

cj−Zj -3� �

0 0 -4 0

1 x1 1 1 0 -1 -1 0

0 x5 -5+M 0 0 0 -1 1

4 x2 4 0 1 1 2 0

Zj 17 1 4 3 7 0

cj−Zj 0 0 -3 -7 0

A solução correspondente ao último quadro é primal admissível e dualadmissível, logo estamos em presença da solução óptima (Z = W = 17).

A solução primal do problema original corresponde a [ 1, 4, 0, 0 ]T, e a

solução dual [ -3, 7, 0, 0 ]T (ponto “C” da figura 11), pois y1 ≤ 0 e y2 ≥ 0(as variáveis de desvio do dual são sempre não negativas).

Page 90: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 86 -

Se fosse escrito o problema dual, teriamos

(y1) 2x1 + x2 ≥ 6 → y1 ≤ 0(y2) x1 + x2 ≤ 5 → y2 ≥ 0

ex1 ≥ 0 → 2y1 + y2 ≥ 1x2 ≥ 0 → y1 + y2 ≥ 4

logo

min. W = 6y1 + 5y2

s.a

2y1 + y2 ≥ 1

y1 + y2 ≥ 4

y1 ≤ 0 , y2 ≥ 0

As variáveis de desvio a adicionar estão restringidas a y3 , y4 ≥ 0

Resolvendo graficamente (figura 11) chegamos a uma solução idêntica àobtida, anteriormente, via quadro simplex.

B

A

C

y 2

y 1

FIGURA 11

Page 91: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 87 -

5.5. PROBLEMAS PROPOSTOS

5.1. Escreva o dual dos seguintes problemas de programação linear:

a) max. Z = 7x1 + x2 b) min. Z = 5x1 + 3x2

s.a s.a

3x1 + 3x2 ≤ 13 x1 + x2 ≥ 0

x1 + 8x2 ≤ 55 3x1 + 7x2 ≥ 45

x1 , x2 ≥ 0 x1 − x2 ≥ 2

x1 , x2 ≥ 0

c) max. Z = x1 − 2x2 + 4x3 d) min. Z = x1 − 3x3

s.a s.a

x1 + x2 + x3 ≤ 13 x1 − x2 ≥ 0

2x1 − x3 ≤ 1 x1 + x2 + 4x3 ≥ 21

3x2 + 5x2 ≥ 65 x3 ≤ 3

x1 , x2 ≥ 0 x1 , x2 , x3 ≥ 0

e) max. Z = 2x1 + x2 − x3 + 3x4 f) min. Z = x1 − x2 − x3 − x4

s.a s.a

x1 + 2x2 + x3 + 3x4 ≤ 114 x3 − x4 = 1

x1 + x2 − x3 = 0 x1 + x2 + 7x3 + 5x4 ≤ 55

3x2 + x4 ≥ 23 3x1 + 4x2 − x3 − x4 ≥ 11

x1 , x2 ≥ 0 ; x3 ≤ 0 ; −∞ ≤ x4 ≤ +∞ x2 − x3 + x4 ≥ 16

−∞ ≤ x1≤ +∞; x2 ≤ 0 ; x3,x4≥ 0

Page 92: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 88 -

5.2. Recorrendo ao algoritmo dual do simplex, resolva os seguintes problemas:

a) min. Z = 2x1 + 10x2 b) min. Z = 3x1 + x2 + 5x3

s.a s.a

x2 ≥ 5 −x1 + x2 ≥ 3

−x1 + x2 ≥ 6 x1 + 2x2 + 2x3 ≤ 20

x1 + x2 ≥ 10 −2x2 + x3 ≥ 4

x1 , x2 ≥ 0 x1 , x2 , x3 ≥ 0

c) max. Z = − 2x1 − x2 − 3x3 d) max. Z = −x1 − x2 − 2x3

s.a s.a

x1 − 3x2 + x3 ≤ 14 x1 + x3 ≥ 15

x1 − 2x2 ≥ 5 x2 − x3 = 4

2x1 + x2 − 3x3 ≥ 22 x1 − x3 ≤ 5

x1 , x2 , x3 ≥ 0 x1 , x2 , x3 ≥ 0

e) max. Z = 5x1 − x2 + x3 f) max. Z = x1 + 2x2 + x3

s.a s.a

2x1 + x2 + 3x3 ≤ 38 x1 − x2 + 2x3 ≥ 12

x2 − 2x3 ≥ 7 −x1 + 2x2 + x3 ≤ 40

x1 , x2 , x3 ≥ 0 4x1 + 2x2 + x3 ≤ 160

x1 , x2 , x3 ≥ 0

Page 93: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 89 -

6. PÓS-OPTIMIZAÇÃO

A análise de pós-optimização reveste-se de alguma importância, dado que éestudado o impacto, na solução óptima, de modificações discretas nosdiversos parâmetros do modelo. Essas alterações podem consistir namodificação dos coeficientes da função objectivo, nos termosindependentes, nos coeficientes técnicos, na introdução de novas variáveis ena introdução de novas restrições.

Com o uso de programas de cálculo automático, torna-se fácil proceder-se aestas alterações, e executar o programa em seguida. No entanto, asalterações decorrentes da introdução de novas variáveis e novas restrições,são necessárias quando se utilizam determinados algoritmos, nomeadamentepara a resolução de problemas de programação linear inteira.

6.1. INTRODUÇÃO DE UMA VARIÁVEL

A introdução de uma variável corresponde à introdução de uma nova colunano quadro óptimo do problema. Essa variável, por não estar na base, seráigual a zero. Nestas circunstâncias, ou a introdução da nova variável nãoaltera o valor óptimo do problema, ou prossegue-se com as iterações até àobtenção de novo quadro óptimo.

6.2. INTRODUÇÃO DE UMA RESTRIÇÃO

A introdução de uma nova restrição no quadro óptimo do problema, vaicorresponder à introdução de uma nova linha e, eventualmente, de novascolunas, caso sejam ainda acrescentadas novas variáveis. A solução óptimaobtida para o problema inicial poderá não verificar esta nova restrição, oque conduzirá à existência no quadro de uma solução não admissível para oproblema primal aumentado. Desta forma, sendo a solução dual admissível,é adequado o uso do algoritmo dual do simplex na procura da nova soluçãoóptima, caso exista.

Page 94: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 90 -

7. PROGRAMAÇÃO LINEAR INTEIRA

São muitos os problemas reais que só têm sentido se as variáveis de decisãoforem inteiras, por exemplo: número de pessoas, máquinas ou outrosrecursos do mesmo tipo.

Os problemas de programação linear, envolvendo variáveis inteiras, sãoresolvidos usualmente como se de variáveis contínuas se tratassem,arredondando os valores obtidos para o número inteiro mais próximo. Noentanto, se tal procedimento é válido quando estão envolvidos valoresbastante grandes, quando estes são pequenos torna-se incerto oarredondamento a efectuar. Se uma variável, correspondendo ao número dedeterminado tipo de trabalhadores, tem o seu valor óptimo igual a 0.6,arredonda-se para 0 ou para 1? Tal decisão pode conduzir, eventualmente,ao despedimento de trabalhadores sem a garantia de se estar a contribuirpara a optimização do funcionamento da empresa.

O grupo de problemas que envolvem variáveis inteiras designam-se porproblemas de programação linear inteira. A programação linear inteira pode-se dividir em inteira pura, caso estejam envolvidas no problemaexclusivamente variáveis inteiras, e inteira mista, em que existem variáveisinteiras e variáveis contínuas. Os diversos métodos existentes para aresolução de problemas de programação linear inteira podem-se classificarem dois grupos distintos: métodos de planos de corte e métodos deenumeração. Neste capítulo iremos abordar o estudo de dois algoritmos quesão típicos de cada um desses grupos: algoritmo do corte fraccionário deGomory e algoritmo da bifurcação e limite.

De entre as numerosas aplicações da programação linear inteira destacam-seum tipo de problemas, que envolvem um conjunto de decisões relacionadasentre si, cujo valor das variáveis de decisão são sim (1) e não (0). Porexemplo, dado um conjunto de terrenos de determinados custos ecaracterísticas de construção, onde deveremos construir? Os problemas queenvolvem variáveis binárias (cujos valores se resumem a 0 e 1) sãodesignados por problemas de programação linear inteira binária. Estesproblemas podem ser resolvidos por qualquer um dos métodos de resolução

Page 95: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 91 -

de problemas de programação inteira. No entanto, por serem um casoparticular, existem algoritmos só destinados ao efeito.

Intuitivamente poderíamos ser levados a pensar que os métodos deresolução de problemas de programação linear inteira seriam de mais fácilimplementação. No entanto verifica-se exactamente o oposto. A resoluçãode problemas de programação linear inteira podem dar origem a tempos decomputação impraticáveis.

7.1. ALGORITMO DOS PLANOS DE CORTE

Este algoritmo pertence à classe dos métodos de planos de corte. Oprocedimento comum a estes métodos consiste na adição de novasrestrições, a que correspondem planos de corte, e cujo objectivo é limitar odomínio das soluções.

Plano de

óptimo do P.L. contínuo

zona fraccionária

Escolher uma variável inteiracujo valor é fraccionário

(correspondendo ao melhor corte)

A solução óptima

é inteira ?

Resolver o novo P.L. associado(algoritmo dual do simplex)

Não

Sim

Adicionar uma restriçãocorrespondendo ao novo corte

A solução básicadeterminada é óptimapara o P.L. inteiro

FIM

Resolução do problemaassociado de P.L. contínua

(algoritmo primal do simplex)

corte

FIGURA 12 - Ilustração do algoritmo dos planos de corte.

Page 96: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 92 -

O método dos planos de corte consiste em tratar um problema deprogramação inteira como um problema de programação contínua. Caso asolução óptima do problema contínuo, associado ao problema inteiro,corresponda a valores inteiros para as variáveis, então é também a soluçãoóptima do problema de programação linear inteira. Se existem variáveisinteiras cujos valores óptimos obtidos sejam fraccionários, é necessárioadicionar uma restrição de corte. Esta restrição reduz o conjunto de soluçõesadmissíveis, eliminando a solução óptima anteriormente obtida, tornando-anão admissível. Desta forma, será necessário a aplicação do algoritmo dualdo simplex para continuarmos o cálculo. Este processo está ilustrado nafigura 12.

7.1.1. CORTE FRACCIONÁRIO DE GOMORY PARA P.L. INTEIRA PURA

Um problema diz-se de programação linear inteira pura quando todas asvariáveis são inteiras, logo as variáveis de desvio também o são, o queimplica que os coeficientes técnicos e os termos independentes sejamtambém inteiros.

Supondo que, para um dado problema de programação linear inteira pura, ovalor óptimo de uma variável, obtido da resolução do problema contínuoassociado, não é inteiro. Se designarmos por xBi essa variável pertencente à

base e por xNj as variáveis não básicas, obtemos então:

x = b a xBi i ij Njj=1

n− ∑

se adoptarmos a seguinte notação:

[x] → maior inteiro menor ou igual a x, ou seja, a parte

inteira de x.

f = x − [x] → a parte fraccionária de x.

(exemplos: x = 2 → [2] = 2 ; f = 0x = 5.6 → [5.6] = 5 ; f = 0.6x = −4 → [−4] = −4 ; f = 0x = −3.3 → [−3.3] = −4 ; f = 0.7 )

Page 97: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 93 -

entãobi = [bi] + fi

aij = [aij] + fij

logo virá

[ ] [ ]x = b a x f f xBi i ij Njj=1

n

i ij Njj=1

n

+ −

∑ ∑

atendendo a que fi < 1, fij ≥ 0 e xNj ≥ 0, conclui-se que

[ ] [ ]b a x é inteiro e f f xi i j Njj=1

n

i ij Njj=1

n

<∑ ∑ 1

Como xBi deve ser inteira, então f f xi i j Njj=1

n

<∑ 1 deve ser também

inteira, logo

f f x f x fi ij Njj=1

n

ij Njj=1

n

i− ≤ ⇔ − ≤ −∑ ∑0

Esta restrição é denominada por corte fraccionário de Gomory.

A restrição deve gerar o maior corte possível no conjunto de soluçõesadmissíveis fraccionárias. Para tal é necessário escolher xBi adoptando umadas duas regras empíricas que se apresentam:

i) { } máx fi

i ii) máx f

fi

i

i jj=1

n

A segunda regra empírica apresentada é a que conduz a melhoresresultados. No entanto é mais difícil de aplicar em problemas de cálculomanual.

Em caso de empate num conjunto de variáveis, pode-se escolher umaqualquer, por exemplo, a de menor índice.

Page 98: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 94 -

EXEMPLO 14

Resolver o seguinte problema de programação linear inteira aplicando oalgoritmo do corte fraccionário de Gomory.

max. Z = 3x1 + 2x2

s.ax1 + 3x2 ≤ 262x1 + x2 ≤ 14x1 − 2x2 ≤ 0x1 , x2 ≥ 0 e inteiras

Resolução do exemplo 14

A resolução inicia-se com a passagem do problema associado à formapadrão.

max. Z = 3x1 + 2x2

s.ax1 + 3x2 + x3 = 262x1 + x2 + x4 = 14x1 − 2x2 + x5 = 0x1 ,..., x5 ≥ 0

Aplicando o algoritmo primal do simplex ao problema associado deprogramação linear contínua, obtemos a sucessão de quadros que seapresenta.

cj 3 2 0 0 0

cB xB x0 x1 x2 x3 x4 x5

0 x3 26 1 3 1 0 0

0 x4 14 2 1 0 1 0� � 0 x5 0 1 -2 0 0 1

Zj 0 0 0 0 0 0

cj−Zj 3� �

2 0 0 0

Page 99: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 95 -

cj 3 2 0 0 0

cB xB x0 x1 x2 x3 x4 x5

0 x3 26 0 5 1 0 -1� � 0 x4 14 0 5 0 1 -2

3 x1 0 1 -2 0 0 1

Zj 60 3 -6 0 0 3

cj−Zj 0 8� �

0 0 -3

� � 0 x3 12 0 0 1 -1 1

2 x2 2.8 0 1 0 0.2 -0.4

3 x1 5.6 1 0 0 0.4 0.2

Zj 22.4 3 2 0 1.6 -0.2

cj−Zj 0 0 0 -1.6 0.2� �

0 x5 12 0 0 1 -1 1

⇒ 2 x2 7.6 0 1 0.4 -0.2 0

3 x1 3.2 1 0 -0.2 0.6 0

Zj 24.8 3 2 0.2 1.4 0

cj−Zj 0 0 -0.2 -1.4 0

Obtido o quadro óptimo verificamos que as variáveis x1 e x2 têm valoresfraccionários (ponto "A" da figura 12). Será necessário a adição de umarestrição de corte. Para verificarmos qual o corte mais forte vamosdeterminar:

x2 (i=2) → f2 = 7.6 − [7.6] = 7.6 − 7 = 0.6f23 = 0.4 − [0.4] = 0.4 − 0 = 0.4f24 = -0.2 − [-0.2] = -0.2 + 1 = 0.8

x1 (i=3) → f3 = 3.2 − [3.2] = 3.2 − 3 = 0.2f33 = -0.2 − [-0.2] = -0.2 + 1 = 0.8f34 = 0.6 − [0.6] = 0.6 − 0 = 0.6

Page 100: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 96 -

i) { } { } máx f ; f máx 0.6 ; 0.2i=2,3

2 3i

= = 06.

ouii)

máx f

f f=

0.6

0.4 + 0.8= 0.5 ;

f

f f=

0.2

0.8+ 0.6= 0.143

i=2,3

2

23 24

3

33 34+ +

= 05.

quer aplicando uma regra quer aplicando a outra, a restrição de corte aadicionar é determinada pela variável x2.

a restrição de corte, passada à forma padrão, será

−f23x3 − f24x4 + x6 = −f2 ⇔ −0.4x3 − 0.8x4 + x6 = −0.6

Ao último quadro obtido adiciona-se a restrição de corte, o que conduz ànão admissibilidade da solução anterior. Desta forma, dado que a solução édual admissível, vamos aplicar o algoritmo dual do simplex

cj 3 2 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x60 x5 12 0 0 1 -1 1 0

2 x2 7.6 0 1 0.4 -0.2 0 0

3 x1 3.2 1 0 -0.2 0.6 0 0� � 0 x6 -0.6 0 0 -0.4 -0.8 0 1

Zj 24.8 3 2 0.2 1.4 0 0

cj−Zj 0 0 -0.2� � -1.4 0 0

0 x5 10.5 0 0 0 -3 1 2.5

2 x2 7 0 1 0 -1 0 1

3 x1 3.5 1 0 0 1 0 -0.5

0 x3 1.5 0 0 1 2 0 -2.5

Zj 24.5 3 2 0 1 0 0.5

cj−Zj 0 0 0 -1 0 -0.5

Page 101: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 97 -

Deste novo quadro óptimo verificamos que as variáveis x1 ainda tem valorfraccionário (ponto "B" da figura 13). Novamente será necessário a adiçãode uma restrição de corte determinada pela variável x1.

x1 (i=3) → f3 = 3.5 − [3.5] = 3.5 − 3 = 0.5f34 = 1 − [1] = 1 − 1 = 0f36 = -0.5 − [-0.5] = -0.5 + 1 = 0.5

A nova equação de corte será

−f34x4 − f36x6 + x7 = −f3 ⇔ −0.5x6 + x7 = −0.5

Vamos novamente aplicar o algoritmo dual do simplex ao quadro anterioraumentado da nova restrição de corte, o que origina uma nova sequência dequadros.

cj 3 2 0 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x6 x70 x5 10.5 0 0 0 -3 1 2.5 0

2 x2 7 0 1 0 -1 0 1 0

3 x1 3.5 1 0 0 1 0 -0.5 0

0 x3 1.5 0 0 1 2 0 -2.5 0� � 0 x7 -0.5 0 0 0 0 0 -0.5 1

Zj 24.5 3 2 0 1 0 0.5 0

cj−Zj 0 0 0 -1 0 -0.5� � 0

0 x5 8 0 0 0 -3 1 0 5

2 x2 6 0 1 0 -1 0 0 2

3 x1 4 1 0 0 1 0 0 -1

0 x3 4 0 0 1 2 0 0 -5

0 x6 1 0 0 0 0 0 1 -2

Zj 24 3 2 0 1 0 0 1

cj−Zj 0 0 0 -1 0 0 -1

Page 102: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 98 -

Finalmente chegamos a uma solução cujos valores das variáveis inteiras sãonúmeros inteiros, como tal, solução óptima do problema de programaçãolinear inteira inicial, com x1 = 4 , x2 = 6 e Z = 24 (ponto "C" dafigura 13). Se pretendessemos representar graficamente as restrições decorte, teríamos que explicitar as restrições em ordem a x1 e x2.

x3 = 26 − x1 − 3x2 e x4 = 14 − 2x1 − x2

1) −0.4x3 − 0.8x4 + x6 = −0.6 ⇔ −2x3 − 4x4 + 5x6 = −3

−2 (26 − x1 − 3x2) − 4 (14 − 2x1 − x2) + 5x6 = −3

10x1 + 10x2 + 5x6 = 105 → 10x1 + 10x2 ≤ 105

x6 = 21 − 2x1 − 2x2

2) −0.5x6 + x7 = −0.5 ⇔ −x6 + 2x7 = −1

− (21 − 2x1 − 2x2) + 2x7 = −1

x1 + x2 + x7 = 10 → x1 + x2 ≤ 10

x 2

x 1

A

C

B

12

FIGURA 13

Page 103: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 99 -

7.1.2. CORTE FRACCIONÁRIO DE GOMORY PARA P.L. INTEIRA MISTA

Em problemas práticos, a formulação dos problemas conduz a situações emque existem simultaneamente variáveis inteiras e variáveis contínuas.Tratam-se de problemas de programação linear mista.

Este problema foi estudado por Gomory que desenvolveu uma restrição decorte que contempla esta possibilidade, do seguinte modo

− ≤ −∑αij Njj=1

n

ix f

em que

( )

α i j

Nj

ij ij

i

iij i j

Nj

ij ij i

i

iij i j i

se x é contínua

a a

f

fa a

se x é inteira

f f f

f

ff f f

=

⇐ ≥

−⇐ <

⇐ ≤

−− ⇐ >

0

10

11

EXEMPLO 15

Resolver o seguinte problema de programação linear inteira aplicando oalgoritmo do corte fraccionário de Gomory.

max. Z = 2x1 + x2 + 4x3

s.a−0.4x1 + x2 ≤ 15.5x1 + 4x2 + 2x3 ≤ 842x1 − x2 + 2x3 ≤ 11x1 , x2 ≥ 0 e inteirasx3 ≥ 0

Page 104: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 100 -

Resolução do exemplo 15

Começa-se por passar o problema associado à forma padrão.

max. Z = 2x1 + x2 + 4x3

s.a−0.4x1 + x2 + x4 = 15.5x1 + 4x2 + 2x3 + x5 = 842x1 − x2 + 2x3 + x6 = 11x1 ,..., x6 ≥ 0

Aplicando o algoritmo primal do simplex, obtemos o quadro quecorresponde à solução óptima do problema associado de programação linearcontínua.

cj 2 1 4 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x6

0 x4 15.5 -0.4 1 0 1 0 0

0 x5 84 1 4 2 0 1 0� � 0 x6 11 2 -1 2 0 0 1

Zj 0 0 0 0 0 0 0

cj−Zj 2 1 4� �

0 0 0

0 x4 15.5 -0.4 1 0 1 0 0� � 0 x5 73 -1 5 0 0 1 -1

4 x3 5.5 1 -0.5 1 0 0 0.5

Zj 22 4 -2 4 0 0 2

cj−Zj -2 3� � 0 0 0 -2

0 x4 0.9 -0.2 0 0 1 -0.2 0.2

1 x2 14.6 -0.2 1 0 0 0.2 -0.2

4 x3 12.8 0.9 0 1 0 0.1 0.4

Zj 65.8 3.4 1 4 0 0.6 1.4

cj−Zj -1.4 0 0 0 -0.6 -1.4

Page 105: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 101 -

Como das variáveis básicas inteiras só x2 tem valor fraccionário, seránecessário adicionarmos uma restrição de corte.

x2 (i=2) → f2 = 14.6 − [14.6] = 14.6 − 14 = 0.6f21 = -0.2 − [-0.2] = -0.2 + 1 = 0.8

A nova restrição de corte será:

( )−−

− − −−

≤ −f

ff x a x

f

fa x f2

221 1 25 5

2

226 6 21

11

( )−−

− − −−

≤ −0.6x x

0.6- 0.2x1 5 61 06

1 08 021 06

06.

. ..

.

Equacionando: −0.3x1 − 0.2x5 − 0.3x6 + x7 = −0.6

Aplicando o algoritmo dual do simplex ao quadro anterior aumentado danova restrição de corte, obtemos uma nova sequência de quadros.

cj 2 1 4 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x6 x70 x4 0.9 -0.2 0 0 1 -0.2 0.2 0

1 x2 14.6 -0.2 1 0 0 0.2 -0.2 0

4 x3 12.8 0.9 0 1 0 0.1 0.4 0� � 0 x7 -0.6 -0.3 0 0 0 -0.2 -0.3 1

Zj 65.8 3.4 1 4 0 0.6 1.4 0

cj−Zj -1.4 0 0 0 -0.6� � -1.4 0

0 x4 1.5 0.1 0 0 1 0 0.5 -1

1 x2 14 -0.5 1 0 0 0 -0.5 1

4 x3 12.5 0.75 0 1 0 0 0.25 0.5

0 x5 3 1.5 0 0 0 1 1.5 -5

Zj 64 2.5 1 4 0 0 0.5 3

cj−Zj -0.5 0 0 0 0 -0.5 -3

Como todas as variáveis inteiras têm valores óptimos inteiros, logo asolução é óptima para o problema de programação linear inteira inicial, comx1 = 0 , x2 = 14 , x3 = 12.5 e Z = 64.

Page 106: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 102 -

7.2. ALGORITMO DA BIFURCAÇÃO E LIMITE

Este algoritmo foi desenvolvido inicialmente por Lang e Doig em 1960, etrata-se de um método de enumeração. É um algoritmo cuja utilização émuito difundida, estando na base da maioria dos programas de cálculoautomático que resolvem problemas de programação linear inteira.

O algoritmo da bifurcação e limite ("branch and bound") pode ser aplicadodirectamente a problemas de programação linear inteira pura ou mista. Oprimeiro passo da sua aplicação consiste na resolução de o problema deprogramação linear contínuo associado ao problema inteiro. Depois deobtida a solução óptima do problema associado, supondo que xBi

correspondia a uma variável inteira cujo valor óptimo xBi* seriafraccionário, então, para a solução ser admissível no problema inteiro, seránecessário que

xBi ≤ [xBi*] ou xBi ≥ [xBi*] + 1

x [x *]Bi

≥≤Bi

x [x *] + 1Bi Bi

P.L.3P.L.2

P.L.1

FIGURA 14 - Ilustração do algoritmo "branch and bound".

Se adicionarmos ao problema original as restrições acima apresentadas,vamos obter dois sub-problemas. Cada sub-problema, em cuja soluçãoóptima existam variáveis inteiras com valores fraccionários, bifurca-sedando origem a dois novos problemas. Este esquema de cálculo é aplicado acada novo ramo até que este seja limitado. O limite de cada ramo é atingido

Page 107: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 103 -

quando obtemos uma solução óptima inteira ou quando deparamos com ainexistência de soluções finitas admissíveis. Depois de enumeradas todasas soluções inteiras, o óptimo corresponde à solução cujo valor da funçãoobjectivo seja maximizado ou minimizado, consoante o tipo de problemas.

Não existindo regras rigorosas que conduzam à escolha da variável xBi , éaceitável a aplicação das regras expostas para o método dos planos de corte.

EXEMPLO 16

Aplicando o algoritmo da bifurcação e limite, resolver o seguinte problemade programação linear inteira.

max. Z = 4x1 + 5x2

s.ax1 + 2x2 ≤ 484x1 − 2x2 ≤ 23x1 + x2 ≥ 11x1 , x2 ≥ 0 e inteiras

Resolução do exemplo 16

Passa-se o problema à forma padrão e resolve-se o problema associadoaplicando o algoritmo primal do simplex (método da penalização da funçãoobjectivo).

max. Z = 4x1 + 5x2 − Mx6

s.ax1 + 2x2 + x3 = 484x1 − 2x2 + x4 = 23x1 + x2 − x5 + x6 = 11x1 ,..., x6 ≥ 0

Page 108: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 104 -

cj 4 5 0 0 0 -M

cB xB x0 x1 x2 x3 x4 x5 x60 x3 48 1 2 1 0 0 0

0 x4 23 4 -2 0 1 0 0� � -M x6 11 1 1 0 0 -1 1

Zj -11M -M -M 0 0 M -M

cj−Zj M+4 M+5� � 0 0 -M 0

� � 0 x3 26 -1 0 1 0 2 -2

0 x4 45 6 0 0 1 -2 2

5 x2 11 1 1 0 0 -1 1

Zj 55 5 5 0 0 -5 5

cj−Zj -1 0 0 0 5� � -M-5

0 x5 13 -0.5 0 0.5 0 1 -1� � 0 x4 71 5 0 1 1 0 0

5 x2 24 0.5 1 0.5 0 0 0

Zj 120 2.5 5 2.5 0 0 0

cj−Zj 1.5� � 0 -2.5 0 0 -M

0 x5 20.1 0 0 0.6 0.1 1 -1

4 x1 14.2 1 0 0.2 0.2 0 0

5 x2 16.9 0 1 0.4 -0.1 0 0

Zj 141.3 4 5 2.8 0.3 0 0

cj−Zj 0 0 -2.8 -0.3 0 -M

Obtido o quadro óptimo do P.L.1, verifica-se que as variáveis x1 e x2 têm

valores fraccionários. Escolhe-se a variável x2 pois possui maior partefraccionária e estabelece-se dois novos sub-problemas originados pelaadição das restrições

x2 ≤ [16.9] e x2 ≥ [16.9] + 1ou seja

x2 ≤ 16 e x2 ≥ 17

Page 109: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 105 -

Se adicionarmos uma das novas restrições ao problema associado inicial,vamos obter um novo sub-problema:

P.L.2

max. Z = 4x1 + 5x2

s.ax1 + 2x2 ≤ 484x1 − 2x2 ≤ 23x1 + x2 ≥ 11x2 ≤ 16x1 , x2 ≥ 0

x2

≥ 17≤ 16 x2

1 Z = 141.3

X = 14.21

X = 16.92

2

? ?

Aproveita-se o último quadro simplex obtido e retira-se a colunacorrespondente à variável artificial x6 (última coluna), pois já é conhecidauma solução básica admissível para o problema associado. Adiciona-se umalinha correspondendo à equação x2 + x6 = 16, em que x6 é uma variável dedesvio.

Como no novo quadro não podemos identificar uma solução básica,efectua-se a multiplicação da terceira linha por -1 e adiciona-se à últimalinha. Como esta solução básica não é primal admissível, mas é dualadmissível, aplica-se o algoritmo dual do simplex em seguida.

cj 4 5 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x60 x5 20.1 0 0 0.6 0.1 1 0

4 x1 14.2 1 0 0.2 0.2 0 0

5 x2 16.9 0 1 0.4 -0.1 0 0

0 x6 16 0 1 0 0 0 1

0 x5 20.1 0 0 0.6 0.1 1 0

4 x1 14.2 1 0 0.2 0.2 0 0

5 x2 16.9 0 1 0.4 -0.1 0 0� � 0 x6 -0.9 0 0 -0.4 0.1 0 1

Zj 141.3 4 5 2.8 0.3 0 0

cj−Zj 0 0 -2.8� � -0.3 0 0

Page 110: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 106 -

cj 4 5 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x60 x5 18.75 0 0 0 0.25 1 1.5

4 x1 13.75 1 0 0 0.25 0 0.5

5 x2 16 0 1 0 0 0 1

0 x3 2.25 0 0 1 -0.25 0 -2.5

Zj 135 4 5 0 1 0 7

cj−Zj 0 0 0 -1 0 -7

Verifica-se, novamente, que esta solução não é inteira. Dado que x1 temvalor fraccionário logo vai originar dois novos sub-programascorrespondentes à adição das restrições

x1 ≤ 13 e x1 ≥ 14

Considere-se o sub-problema obtido pela adição da nova restrição x1 ≤ 13,designe-se por P.L. 3. Uma nova sequência de quadros é obtida seaproveitarmos o quadro anterior.

cj 4 5 0 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x6 x70 x5 18.75 0 0 0 0.25 1 1.5 0

4 x1 13.75 1 0 0 0.25 0 0.5 0

5 x2 16 0 1 0 0 0 1 0

0 x3 2.25 0 0 1 -0.25 0 -2.5 0

0 x7 13 1 0 0 0 0 0 1

0 x5 18.75 0 0 0 0.25 1 1.5 0

4 x1 13.75 1 0 0 0.25 0 0.5 0

5 x2 16 0 1 0 0 0 1 0

0 x3 2.25 0 0 1 -0.25 0 -2.5 0� � 0 x7 -0.75 0 0 0 -0.25 0 -0.5 1

Zj 135 4 5 0 1 0 7 0

cj−Zj 0 0 0 -1� � 0 -7 0

Page 111: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 107 -

cj 4 5 0 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x6 x70 x5 18 0 0 0 0 1 1 1

4 x1 13 1 0 0 0 0 0 1

5 x2 16 0 1 0 0 0 1 0

0 x3 3 0 0 1 0 0 -2 -1

0 x4 3 0 0 0 1 0 2 -4

Zj 132 4 5 0 0 0 5 4

cj−Zj 0 0 0 0 0 -5 -4

Como esta solução é inteira atingiu-se um limite para este ramo doproblema. A solução tem valor óptimo Z = 132, com x1 = 13 e x2 = 16.

Passa-se em seguida para outro ramo, por exemplo o ramo adjacente a este.Para tal vamos aproveitar o quadro óptimo do P.L.2. A este quadroadiciona-se a restrição x1 ≥ 14. A equação correspondente será

−x1 + x7 = − 14

cj 4 5 0 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x6 x70 x5 18.75 0 0 0 0.25 1 1.5 0

4 x1 13.75 1 0 0 0.25 0 0.5 0

5 x2 16 0 1 0 0 0 1 0

0 x3 2.25 0 0 1 -0.25 0 -2.5 0

0 x7 -14 -1 0 0 0 0 0 1

0 x5 18.75 0 0 0 0.25 1 1.5 0

4 x1 13.75 1 0 0 0.25 0 0.5 0

5 x2 16 0 1 0 0 0 1 0

0 x3 2.25 0 0 1 -0.25 0 -2.5 0� � 0 x7 -0.25 0 0 0 0.25 0 0.5 1

Zj 135 4 5 0 1 0 7 0

cj−Zj 0 0 0 -1 0 -7 0

Page 112: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 108 -

Neste último quadro não existe nenhum coeficiente a5j < 0, logo o dual éilimitado e o primal impossível. Este ramo está limitado por um problemaimpossível.

x2

≥ 17≤ 16 x2

1 Z = 141.3

X = 14.21

X = 16.92

2

?

3

Imp.

4

x1

≥ 14≤ 13 x1

Z = 135

X =13.751

X = 162

Z = 132

X = 131

X = 162

5

Passemos ao ramo correspondente à adição da restrição x2 ≥ 17 ao P.L.1.Este novo sub-problema pode ser resolvido com facilidade se aproveitarmoso quadro óptimo do P.L.1. Vamos adicionar a restrição x2 ≥ 17 a quecorresponde a equação

−x2 + x6 = −17

cj 4 5 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x60 x5 20.1 0 0 0.6 0.1 1 0

4 x1 14.2 1 0 0.2 0.2 0 0

5 x2 16.9 0 1 0.4 -0.1 0 0

0 x6 -17 0 -1 0 0 0 1

0 x5 20.1 0 0 0.6 0.1 1 0

4 x1 14.2 1 0 0.2 0.2 0 0

5 x2 16.9 0 1 0.4 -0.1 0 0� � 0 x6 -0.1 0 0 0.4 -0.1 0 1

Zj 141.3 4 5 2.8 0.3 0 0

cj−Zj 0 0 -2.8 -0.3� � 0 0

Page 113: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 109 -

cj 4 5 0 0 0 0

cB xB x0 x1 x2 x3 x4 x5 x60 x5 20 0 0 1 0 1 1

4 x1 14 1 0 1 0 0 2

5 x2 17 0 1 0 0 0 -1

0 x4 1 0 0 -4 1 0 -10

Zj 141 4 5 4 0 0 3

cj−Zj 0 0 -4 0 0 -3

A solução que obtivemos para o P.L. 5 é inteira, portanto atingimos o limitedeste ramo. O valor óptimo é Z = 141, com x1 = 14 e x2 = 17.

Desta forma foram enumeradas todas as soluções possíveis para o problemade programação linear inteira.

A solução do problema original corresponde à última solução inteira obtidapois é a solução inteira cujo valor da função objectivo (a maximizar) émaior (Z = 141).

Solução óptima final: x1 = 14 e x2 = 17.

Se analisarmos com atenção a sequência adoptada para esse cálculo,verificamos que tivéssemos resolvido o P.L.5 após a resolução do P.L.2 nãonecessitávamos continuar o cálculo. E o motivo reside no facto do valor dafunção objectivo diminuir ao longo de um ramo. Dessa forma, se obtemosum limite a que corresponde uma solução inteira, só será necessáriocontinuar o cálculo nos ramos cujo valor da função objectivo é maior (namaximização) do que o valor do maior limite. Neste exemplo, como Z =

135 para o P.L.2 e Z = 141 para o P.L.5 (limite), os sub-problemas de P.L.2(P.L.3 e P.L.4) não seriam necessários determinar.

Page 114: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 110 -

Enumeremos todos os problemas resolvidos, assim como as respectivassoluções

x2

≥ 17≤ 16 x2

1 Z = 141.3

X = 14.21

X = 16.92

2

3

Imp.

4

x1

≥ 14≤ 13 x1

Z = 135

X =13.751

X = 162

Z = 132

X = 131

X = 162

5 Z = 141

X = 141

X = 172

← Solução

Page 115: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 111 -

7.3. PROBLEMAS PROPOSTOS

7.1. Recorrendo ao algoritmo do corte fraccionário, resolva os seguintes problemas:

a) max. Z = 9x1 + 5x2 b) max. Z = 7x1 + 3x2 + x3

s.a s.a4x1 + 5x2 ≤ 19 4x1 − x2 + 2x3 ≤ 380

x1 + 4x2 ≤ 13 2x1 + 5x2 + x3 ≤ 200

x1 − 2x2 ≤ 5 3x1 + 2x2 + x3 ≤ 280

x1 , x2 ≥ 0 e inteiras x1 − x3 ≤ 83

x1 , x2 , x3 ≥ 0 e inteiras

c) min. Z = 5x1 + 5x2 − 5x3 d) max. Z = 20x1 + 15x2 + 8x3

s.a s.a−x1 − x2 + x3 ≤ 3 2x1 + x2 + x3 ≤ 203

x1 + 2x2 + 3x3 ≥ 43 2x1 − 3x2 = 0

x1 + 2x2 ≥ 13 −x1 + 4x3 ≤ 5

x1 , x2 ≥ 0 e inteiras x1 , x2 , x3 ≥ 0 e inteiras

e) min. Z = −3x1 − x2 f) max. Z = 8x1 + 9x2 + 10x3 s.a s.a

x1 + x2 ≤ 51 x1 + 2x2 + 2x3 ≤ 355

x1 − x2 ≤ 1.4 3.5x1 + 2x2 − x3 ≤ 151

x1 + 4x2 ≤ 66.4 2x1 − x2 ≤ 80

x1 ≥ 0 e inteira x1 , x2 ≥ 0 e inteiras

x2 ≥ 0 x3 ≥ 0

Page 116: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 112 -

g) min. Z = 2x1 + x2 + 0.5x3 h) max. Z = 2x1 + x2 + 3x3

s.a s.ax1 + 2x2 + 0.5x3 ≤ 114 x1 + x2 − x3 ≥ 12.35

2x1 + 2x2 + x3 ≥ 82.8 −2x1 + 2x2 − x3 ≤ 8.45

x1 + x2 − 0.5x3 ≥ 24.2 3x1 + x2 + x3 ≤ 84.85

x1 , x2 ≥ 0 e inteiras x1 , x2 ≥ 0 e inteiras

x3 ≥ 0 x3 ≥ 0

7.2. Resolver as alíneas do problema 7.1. aplicando o algoritmo da bifurcação e limite.

Page 117: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- 113 -

BIBLIOGRAFIA

- AGUDO, F.R. DIAS - Introdução à Algebra Linear e GeometriaAnalítica, fascículo 2. Lisboa: Livraria Escolar Editora, 1978.

- BAPTISTA, M. A. L.; BERNARDO, F.J.P.; SERRA NEVES, A. -Soluções Pré-Esforçadas em Vigas Contínuas-Optimização. Porto: 5ºEncontro Nacional de Betão Estrutural, 1994.

- BRONSON, RICHARD - Pesquisa Operacional. Rio de Janeiro: EditoraMcGraw-Hill do Brasil, 1985.

- FERREIRA, MANUEL ALBERTO M.; AMARAL, ISABEL -Programação Matemática. Lisboa: Edições Silabo, 1989.

- GUERREIRO, JORGE; MAGALHÃES, ALÍPIO; RAMALHETE,MANUEL - Programação linear, volume II . Lisboa: Editora McGraw-Hillde Portugal, 1985.

- HAFTKA, RAPHAEL T.; GURDAL, ZAFER - Elements of StructuralOptimization. Dordrecht: Kluwer Academic Publishers, 1992.

- HILLIER, FREDERICK S.; LIEBERMAN, GERALD J. - Introduction toOperation Research. New York: McGraw-Hill Book Company, 1990.

- IBAÑEZ, SANTIAGO HERNANDEZ - Metodos de Diseño Optimo deEstructuras. Madrid: Colegio de Ingenieros de Caminos, Canales y Puertos,1990.

- MARTINS, ERNESTO QUEIROZ - Apontamentos de InvestigaçãoOperacional. Coimbra: F.C.T. da Universidade de Coimbra, 1984.

- NEMHAUSER, G.L.; KAN, A.H.G. RINNOOY; TODD, M.J. -Optimization. Amsterdam: Elsevier Science Publishers B.V., 1989.

- PINHO, M.J.M.D.; SERRA NEVES, A. - Análise de Peças Irregularesde Betão Armado Através de Modelos Bielas-Tirantes. Porto: 5º EncontroNacional de Betão Estrutural, 1994.

- PUCCINI, ABELARDO DE LIMA; PIZZOLATO, NELIODOMINGUES- Programação linear. Rio de Janeiro: Livros Técnicos eCientíficos Editora, 1987.

Page 118: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- 114 -

- RAMALHETE, MANUEL; GUERREIRO, JORGE; MAGALHÃES,ALÍPIO - Programação Linear, volume I. Lisboa: Editora McGraw-Hill dePortugal, 1984.

- TAVA RES, L. VALADARES ; OLIVEIRA, RUI CARVALHO ;THEMIDO, ISABEL HALL ; CORREIA, F. NUNES - InvestigaçãoOperacional. Lisboa: Editora McGraw-Hill de Portugal, 1996.

- TAHA, HAMDY A. - Operations Research (An Introdution). New York:Macmillan Publishing Company, 1987.

- URRY, SYD - An Introduction to Operational Research (The Best ofEverything). London: Longman Sientific & Technical, 1991.

- VANDERPLAATS, GARRET N. - Numerical Optimization Techniquesfor Engineering Design. New York: McGraw-Hill Book Company, 1984.

- WINSTON, WAYNE L. - Operations Research (Applications andAlgorithms). Belmont: Wadsworth Publishing Company, 1994.

Page 119: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- i -

ANEXO

Soluções de alguns problemas propostos

Page 120: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- ii -

CAPÍTULO 2

2.1. x1 - nº de betoneiras grandesx2 - nº de betoneiras pequenas

max. Z = 90x1 + 60x2s.a

5x1 + 2x2 ≤ 1803x1 + 3x2 ≤ 135x1 , x2 ≥ 0

Solução óptima: E (30 ; 15)x1 = 30 un.x2 = 15 un.Z = 3600 contos

x 2

x 1AC

B

D

O

E

A (36 ; 0)B (0 ; 90)

C (45 ; 0)D (0 ; 45)

1

2

2.2. x1 - nº de azulejos Ax2 - nº de azulejos B

max. Z = 30x1 + 65x2s.a

0.03x1 + 0.02x2 ≤ 11600.02x1 + 0.06x2 ≤ 1100x1 ≤ 36000x2 ≤ 14000x1 , x2 ≥ 0

Solução óptima:x1 = 34000 un.x2 = 7000 un.Z = 1475000 escudos

x 2

x 1O

2

4

3

1

Page 121: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- iii -

2.3. x1 - nº de vivendasx2 - nº de apartamentos

max. Z = 7850x1 + 4000x2s.a

3.6x1 + x2 ≤ 1800x1 ≥ 200x2 ≥ 10018x1 + 11x2 ≤ 12240x1 , x2 ≥ 0

Solução óptima:x1 = 350 un.x2 = 540 un.Z = 4907500 contos

x 2

x 1O

1

2

4

3

2.4. x1 - peso de produto 1x2 - peso de produto 2

min. Z = 300x1 + 1000x2s.a

200x1 + 400x2 ≥ 24023x1 + 6x2 ≤ 20x1 , x2 ≥ 0

Solução óptima:x1 = 0.82 kgx2 = 0.19 kgZ = 436 escudos

x 2

x 1O

1

2

Page 122: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- iv -

2.5. x1 - nº de portasx2 - nº de janelas

max. Z = 12x1 + 9x2

s.ax1 ≤ 3x2 ≤ 54x1 + 3x2 ≤ 24x1 , x2 ≥ 0

Soluções óptimas:x1 = 3 un. e x2 = 4 un. oux1 = 2.25 un. e x2 = 5 un. oucombinações lineares das duas.Z = 72 contos

x 2

x 1O

3

2

1

2.6. x1 - aditivo "normal"x2 - aditivo "extra"

max. Z = 1400x1 + 1700x2s.a

x1 + x2 ≤ 8002x1 + 3x2 ≤ 1920x1 + x2 ≥ 240x1 − 4x2 ≤ 0x1 − x2 ≥ 0x1 , x2 ≥ 0

Solução óptima:x1 = 480 un.x2 = 320 un.Z = 1216000 escudos

x 2

x1O

3

4

52

1

Page 123: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- v -

2.7. x1 - nº de camiões modelo "A"x2 - nº de camiões modelo "B"

max. Z = x1 + 1.4x2s.a

8x1 + 12x2 ≤ 1000x1 + x2 ≤ 11020x1 + 40x2 ≥ 2000x1 − 3x2 ≤ 0x1 ≥ 35x2 ≥ 25x1 , x2 ≥ 0

Solução óptima:x1 = 80 un.x2 = 30 un.Z = 122

x 2

x 1O

2

1

3

4

5

6

2.8. x1 - % da liga 1x2 - % da liga 2

min. Z = 38x1 + 40x2s.a

2x1 + 2.5x2 ≥ 1.82x1 + 2.5x2 ≤ 2.5x1 + 1.5x2 ≥ 0.9x1 + 1.5x2 ≤ 1.23x1 + 4x2 ≥ 3.23x1 + 4x2 ≤ 3.5290x1 + 345x2 ≥ 310x1 , x2 ≥ 0

Solução óptima:x1 = 0.567x2 = 0.422Z = 38.422 escudos

x 2

x 1O1

2

3

5

6

7

4

Page 124: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- vi -

2.9. x1 - lixo a incinerar em 1x2 - lixo a incinerar em 2

min. Z = 8300x1 + 12450x2s.a

x1 + x2 = 50x1 ≥ 15x1 ≤ 40x2 ≤ 40x1 , x2 ≥ 0

Solução óptima:x1 = 35 ton.x2 = 15 ton.Z = 477250 escudos

x 2

x 1O

1

2

3

4

2.10. x1 - caudal do furo 1x2 - caudal do furo 2

min. Z = 34x1 + 38x2s.a

x1 + x2 ≥ 75x1 ≤ 65x2 ≤ 45x1 + x2 ≤ 80−x1 + 3x2 ≥ 0x1 , x2 ≥ 0

Solução óptima:x1 = 56.25 m3/hx2 = 18.75 m3/hZ = 2625 escudos

x 2

x 1O

1 2

3

4

5

Page 125: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- vii -

2.11. x1 - peso de varão tipo 1x2 - peso de varão tipo 2

min. Z = 71x1 + 80x2s.a

20x1 + 18x2 ≤ 600020x2 ≤ 1800x1 ≤ 250x2 ≤ 140x1 , x2 ≥ 0

Solução óptima:x1 = 219 ton.x2 = 90 ton.Z = 22749 contos

x 2

x 1O

1

2

3

4

2.12. x1 - área habitacionalx2 - área comercial

max. Z = 150x1 + 250x2s.a

x1 + x2 ≤ 10000x1 − 2x2 ≥ 0x1 + x2 ≥ 8000x1 − 4x2 ≤ 0x1 ≥ 6000x1 , x2 ≥ 0

Solução óptima:x1 = 6666.67 m2

x2 = 3333.33 m2

Z = 1833333.33 contos

x 2

x 1O

1

2

3

4

5

Page 126: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- viii -

CAPÍTULO 3

3.1.

a) Convexo

b) Não convexo

c) Não convexo

d) Não convexo

e) Convexo

f) Convexo

3.3.

a) x4 = 4 ; x5 = 2 e x6 = 0

b) x2 = 0.5 ; x4 = 3 e x6 = 0

c) x1 = 0 ; x2 = 0.5 e x4 = 3

d) x1 = 0 ; x4 = 4 e x5 = 2

e) x3 = 0 ; x4 = 4 e x5 = 2

f) x2 = 0.5 ; x3 = 0 e x4 = 3

Todas as soluções anteriores são básicas degeneradas.

3.4.

a = 1 e b = 8

CAPÍTULO 4

4.1.

a) x1 = 0 ; x2 = 2 e Z = 20

b) x1 = 4 ; x2 = 0 ; x3 = 0 e Z = −8

c) Problema ilimitado

d) x1 = 2 ; x2 = 0 ; x3 = 4 ; x4 = 0 e Z = 14

Page 127: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- ix -

e) x1 = 4.8 ; x2 = 0 ; x3 = −3.6 e Z = −4.8

f) x1 = 80 ; x2 = 10 ; x3 = 0 e Z = 80

x1 = 20 ; x2 = 8.5 ; x3 = 3 e Z = 80

x1 = 23 ; x2 = 8.5 ; x3 = 0 e Z = 80

g) Problema ilimitado

h) x1 = 0 ; x2 = 80 ; x3 = 0 ; x4 = 80 e Z = 320

4.2.

a) x1 = 14.25 ; x2 = 0 ; x3 = 2.25 e Z = 120.75

b) x1 = 0 ; x2 = 20 ; x3 = 21 e Z = −148

c) x1 = 5.2 ; x2 = 4.2 ; x3 = 29.6 ; x4 = 3.4 e Z = 22

d) Problema impossível

e) x1 = 2.72 ; x2 = 1.8 ; x3 = 1.28 ; x4 = 1.6 e Z = −6.8

f) Problema ilimitado

4.3.

a) x1 = 17.6 ; x2 = 15.6 ; x3 = 0 e Z = −29.2

b) Problema impossível

c) x1 = 10 ; x2 = 15 ; x3 = 0 ; x4 = 8.5 e Z = 65.5

d) x1 = 10 ; x2 = 8 ; x3 = 4 e Z = 38

x1 = 32 ; x2 = 6 ; x3 = 0 e Z = 38

e) x1 = 10 ; x2 = 60 ; x3 = 20 ; x4 = 0 e Z = 220

f) x1 = 21.2 ; x2 = 10.3 ; x3 = 8.3 e Z = 1.4

Page 128: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

INVESTIGAÇÃO OPERACIONAL

- x -

CAPÍTULO 5

5.1.

a) min. W = 13y1 + 55y2 b) max. W = 45y2 + 2y3

s.a s.a

3y1 + y2 ≥ 7 y1 + 3y2 + y3 ≤ 5

3y1 + 8y2 ≥ 1 y1 + 7y2 − y3 ≤ 3

y1 , y2 ≥ 0 y1 , y2 , y3 ≥ 0

c) min. W = 13y1 + y2 + 65y3 d) max. W = 21y2 + 3y3

s.a s.a

y1 + 2y2 + 3y3 ≥ 1 y1 + y2 ≤ 1

y1 + 5y3 ≥ −2 −y1 + y2 ≤ 0

y1 − y2 ≥ 4 4y2 + y3 ≤ −3

y1 , y2 ≥ 0 ; y3 ≤ 0 y1 , y2 ≥ 0 ; y3 ≤ 0

e) min. W = 114y1 + 23y3 f) max. W = y1 + 55y2 + 11y3 + 16y4

s.a s.a

y1 + y2 ≥ 2 y2 + 3y3 = 1

2y1 + y2 + 3y3 ≥ 1 y2 + 4y3 + y4 ≥ −1

y1 − y2 ≤ −1 y1 + 7y2 − y3 − y4 ≤ −1

3y1 + y3 = 3 −y1 + 5y2 − y3 + y4 ≤ −1

y1 ≥ 0 ; −∞ ≤ y2 ≤ +∞ ; y3 ≤ 0 −∞ ≤ y1 ≤ +∞ ; y2 ≤ 0 ;

y3 , y4 ≥ 0

5.2.

a) x1 = 2 ; x2 = 8 e Z = 84

b) Problema impossível

Page 129: ESCOLA SUPERIOR DE TECNOLOGIA - w3.ualg.ptw3.ualg.pt/~jestevao/IOtexto.pdf · A resolução de problemas reais por aplicação de modelos de programação linear não é tarefa fácil,

João M. C. Estêvão - EST - UAlg

- xi -

c) x1 = 11 ; x2 = 0 ; x3 = 0 e Z = −22

x1 = 9.8 ; x2 = 2.4 ; x3 = 0 e Z = −22

d) x1 = 10 ; x2 = 9 ; x3 = 5 e Z = −29

e) x1 = 15.5 ; x2 = 7 ; x3 = 0 e Z = 70.5

f) x1 = 24 ; x2 = 28 ; x3 = 8 e Z = 88

x1 = 24 ; x2 = 0 ; x3 = 64 e Z = 88

CAPÍTULO 7

7.1.

a) x1 = 4 ; x2 = 0 e Z = 36

b) x1 = 90 ; x2 = 1 ; x3 = 8 e Z = 641

c) x1 = 1 ; x2 = 6 ; x3 = 10 e Z = −15

d) x1 = 75 ; x2 = 50 ; x3 = 3 e Z = 2274

e) x1 = 14 ; x2 = 13.1 e Z = −55.1

f) x1 = 56 ; x2 = 32 ; x3 = 117.5 e Z = 1911

g) x1 = 0 ; x2 = 33 ; x3 = 16.8 e Z = 41.4

h) x1 = 11 ; x2 = 27 ; x3 = 24.85 e Z = 123.55