You are on page 1of 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
João M. C. Estêvão - EST - UAlg

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

    
 

-i-
INVESTIGAÇÃO OPERACIONAL

ÍNDICE
Pá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

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

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

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

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

1.1. INTRODUÇÃO

Durante a Segunda Guerra Mundial, constituiram-se em Inglaterra grupos


de cientistas e engenheiros, de diversas áreas do conhecimento, com o
objectivo de investigar sobre assuntos considerados novos e que fugiam às
rotinas militares da altura, tais como: aumentar a eficácia do radar, o uso de
canhões anti-aéreos, tácticas anti-submarinos, escoltas navais, operações de
minagem, entre outros. A eficiência desses grupos deveu-se mais ao
engenho dos cientistas para a obtenção de dados e informações, e sua
subsequente 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 de
investigações aplicadas às operações militares.

Com o fim da guerra, esta forma de abordar problemas complexos suscitou


o interesse para a sua aplicação a vários problemas da vida civil. Desses
problemas salientam-se os relacionados com tarefas de gestão de recursos,
como, por exemplo, a melhor forma de gerir uma empresa ou a forma mais
económica de elaborar uma dieta alimentar que satisfaça determinados
requisitos.

A investigação operacional constitui um novo ramo científico, independente


dos outros, que proporciona uma abordagem científica para a tomada de
decisões, baseada essencialmente em técnicas quantitativas, ao invés de
uma abordagem qualitativa, baseada na experiência e intuição de quem
toma as decisões.

Existe um conjunto de características comuns à maior parte dos problemas


de 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

-1-
INVESTIGAÇÃO OPERACIONAL

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 das
caracteríticas do projecto ou sistema que se pretende entender e controlar, e
é definido por uma função objectivo e um conjunto de restrições, expressos
em termos de variáveis (que determinam as alternativas) do problema.

O processo de tomada de decisão na investigação operacional consiste em


construir um modelo de decisão e resolvê-lo de modo a determinar-se a
decisão óptima. Para a solução de um modelo, apesar de exacta, ter
significado real, esse modelo tem que proporcionar uma representação
adequada da realidade.
SISTEMA
REAL

Diagnóstico

DEFINIÇÃO DO Hipóteses simplificadoras


PROBLEMA

MODELO

MÉTODOS Dedução
TRADICIONAIS Revisão
SOLUÇÃO DO
MODELO

IMPLEMENTAÇÃO
DOS RESULTADOS
Validação da solução

FIGURA 1

Uma situação real pode envolver um número substancial de variáveis e


restrições, no entanto, é usual que só uma pequena fracção dessas variáveis
e restrições, traduza realmente o comportamento do sistema real. Desta
forma, a simplificação do sistema real com o propósito da construção de um
modelo, deve-se concentrar primeiramente na identificação das variáveis e
restrições dominantes, assim como outros dados que sejam pertinentes para
a tomada de decisão. A figura 1 ilustra, de forma esquemática, o que
anteriormente foi descrito.

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

2. PROGRAMAÇÃO LINEAR

A programação linear, nascida com os trabalhos de George B. Dantzing em


1947, constitui a primeira técnica explícita, e uma das mais desenvolvidas e
utilizadas, da investigação operacional e é uma classe da programação
matemática.

A palavra programação, neste contexto, não se refere à programação de


computadores, mas é, essencialmente, um sinónimo de planeamento. A
programação linear envolve um modelo de planeamento de actividades para
a obtenção de uma solução óptima. A solução óptima é obtida maximizando
ou 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 modelos


matemáticos de programação linear, são tipicamente iterativos. Como tal, o
processo pode tornar-se tedioso, ou mesmo de impraticável aplicação a
problemas complexos, com grandes quantidades de dados. Dado a
generalização do uso do computador pessoal, e a existência de programas de
cálculo automático à venda no mercado, é difícil dissociar as técnicas da
programação linear da sua implementação em computadores. Desta forma,
pode ser processada grande quantidade de informação em curto espaço de
tempo, o que permite a resolução de problemas de grande complexidade, e
reduzir a morosidade de cálculo manual. Nesta perspectiva, apresenta-se em
anexo a estes apontamentos um programa de cálculo automático onde estão
implementados os algoritmos em estudo por forma a auxiliar a compreensão
das matérias.

A resolução de problemas reais por aplicação de modelos de programação


linear 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ão
depende só da sua aplicação directa a problemas reais, mas também é
motivada por proporcionar uma importante fundação ao desenvolvimento de
soluções para outras técnicas da programação matemática, como sejam a
programação inteira, a programação não-linear e a programação estocástica.

-3-
INVESTIGAÇÃO OPERACIONAL

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

A programação linear tem aplicação prática em inúmeros problemas, de que


se destacam tipicamente os seguintes:
• PROBLEMA DE MISTURA
Foi um dos primeiros problemas a ser resolvido, através da
programação linear, por Dantzing. Este problema caracteriza-se por
se pretender obter, com custo mínimo ou lucro máximo, um ou vários
produtos, que satisfaçam certos requisitos, através da combinação de
vários ingredientes possuidores dessas características a diferentes
ní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 mais
simples a seguinte: pretende-se efectuar o transporte de um
determinado produto (matérias primas, produtos fabricados, etc.), que
se encontra em m origens diferentes (armazéns, fábricas, portos,
etc.), para n destinos distintos (fábricas, mercados, consumidores
finais, portos, etc.). Conhecido o custo de transporte de uma unidade
de produto associado a cada percurso origem/destino, procede-se à
determinação do plano de distribuição que minimize o custo total de
transporte.
• PROBLEMA DA PRODUÇÃO
Trata-se de uma das aplicações mais frequentes em gestão de
empresas, em que se pretende determinar a produção de n produtos
da empresa de acordo com os recursos disponíveis, as condições
tecnoló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 ser
considerado como um problema tipo, consistindo no escalonamento
da produção ao longo de vários períodos de tempo, conhecida a
procura, capacidade de produção e custos de produção e
armazenagem ao longo do tempo.

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

Do ponto de vista da engenharia civil, muito poucos problemas de interesse


prático podem ser formulados como programas lineares sem que disso
implique um elevado grau de simplificação. No entanto é possível
simplificar problemas não lineares de optimização, usando técnicas de
linearização. Quase todos os problemas não lineares podem ser resolvidos
como uma sequência repetitiva de aproximações lineares que convergem
para a solução exacta do problema não linear. Este poderoso método de
resoluçã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ção
do peso da estrutura, e a estruturas irregulares bidimensionais de
betão armado, dimensionadas através de modelos de escoras e
tirantes, 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 pretende
minimizar 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ço
aplicado.
A melhor forma de se iniciar o estudo da programação linear é através de
um exemplo simples de aplicação.

EXEMPLO 1
Um município algarvio disponibilizou no seu orçamento uma verba de
50000 contos para infra-estruturas de saneamento básico ao longo de duas
vias 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 de
6 hab./100 m na primeira e 4 hab./100 m na segunda. As obras em causa
nã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.5
contos/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 por
cada via de modo a servir a máxima população possível.

-5-
INVESTIGAÇÃO OPERACIONAL

Formalização do exemplo 1

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

Neste caso:

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


x2 - 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 de


actividade.

Passo 2
Enumeraçã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 a


totalidade de metros executados custará 12x1.

- cada metro de via "2" com infra-estruturas custa 8.5 contos, logo a
totalidade 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

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

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-se
algebricamente em:

• 0.04x1 + 0.02x2 ≤ 150

Para terem sentido prático, as variáveis x1 e x2 têm de assumir valores não


negativos, e por outro lado não podem exceder o comprimento das vias, o
que se traduz por:

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

Passo 3
Definir 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 a
totalidade de metros executados corresponderá a 0.06x1.

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

A função objectivo será:

• maximizar z = 0.06x1 + 0.04x2

-7-
INVESTIGAÇÃO OPERACIONAL

2.2. FORMULAÇÃO MATEMÁTICA

Os exemplos enunciados anteriormente podem ser formulados de acordo


com um modelo matemático bastante geral que consiste na determinação de
valores 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écnicos
bi - termos independentes
cj - 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 por


soluções admissíveis.

A solução admissível que optimiza a função objectivo designa-se por


solução óptima admissível.

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

Podem efectuar-se operações convenientes de modo a alterar a forma de


apresentaçã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 i1x1 + a i2 x 2 +...+ a in x n ≤ b i

a i1x1 + a i2 x 2 +...+ a in x n = b i ⇔ 
a x + a x +...+ a x ≥ b
 i1 1 i2 2 in n i

iv) Se xj não tem restrição ao sinal, pode exprimir-se como a diferença


de 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 o


modelo 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

-9-
INVESTIGAÇÃO OPERACIONAL

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 seguintes
hipóteses:
• COEFICIENTES CONSTANTES
Nos modelos de programação linear os coeficientes aij, bi e cj são
considerados constantes.
• PROPORCIONALIDADE
Assume-se que o valor de venda ou compra de uma unidade de
produto j é proporcional ao nível de produção xj, sendo cjxj o valor de
venda ou compra dessa produção. De igual modo assume-se que os
coeficientes aij são independentes de xj , qualquer que seja xj não
negativo.
• ADITIVIDADE
Sendo a hipótese da aditividade verdadeira, implica que o consumo
ou produção total de um dado produto seja igual à soma das várias
quantidades de produto que são consumidas ou produzidas quando se
executa cada uma das actividades a um determinado nível. Esta
hipótese implica ainda que a função objectivo seja separável em
relaçã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 soma
de n funções lineares, cada uma das quais envolvida apenas com uma
variável do modelo, Z1(x1) + Z2(x2)+...+Zn(xn), onde Zj(xj) é a
contribuiçã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 pode
assumir qualquer valor real no seu intervalo de variação. Quando as
variáveis só poderem tomar valores inteiros passa-se a lidar com um
modelo de programação inteira.
• NÃO NEGATIVIDADE
Supõe-se que o nível de uma actividade pode assumir qualquer valor
não negativo de um dado intervalo.

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

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

Tendo em vista a resolução de um problema de programação linear, este


pode 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. a
a11x1 + a12x2 +...+ a1jxj +...+ a1nxn ≤ b1
a21x1 + a22x2 +...+ a2jxj +...+ a2nxn ≤ b2
...
ai1x1 + ai2x2 +...+ aijxj +...+ ainxn ≤ bi
...
am1x1 + am2x2 +...+ amjxj +...+ amnxn ≤ bm

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

- 11 -
INVESTIGAÇÃO OPERACIONAL

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. a
a11x1 + 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, para


a forma padrão, pode ser efectuada através da criação de um conjunto de
variáveis não negativas, que se designam por variáveis de desvio, pois
correspondem 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 uma
inequação do tipo ≤ por forma a se obter uma igualdade.

• variáveis de excesso, quando a variável é subtraida a uma


inequação do tipo ≥ por forma a se obter uma igualdade.

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

2.3. RESOLUÇÃO GRÁFICA

Os problemas com apenas duas variáveis podem resolver-se graficamente


com grande facilidade. A existência de um número superior de variáveis de
decisão tornam os problemas de difícil resolução gráfica, pelo que nestes
casos este processo não tem sentido.

Dado um programa linear, uma solução admissível é um ponto cujas


coordenadas 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 as
de não negatividade). Uma solução óptima é uma solução admissível que
maximiza ou minimiza a função objectivo, no conjunto de todas as soluções
admissíveis.

Na resolução gráfica de um programa linear, que envolva apenas duas


variáveis de decisão, constrói-se primeiramente um sistema de eixos
cartesianos x1 , x2 . O passo seguinte consiste em traçar rectas
correspondentes ao limite de cada uma das restrições, definindo-se o
conjunto de soluções admissíveis. A solução óptima é então identificada
traçando-se uma recta da família de rectas representas pela função
objectivo, e movendo-se esta recta paralelamente a si mesma de modo a
encontrar 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

- 13 -
INVESTIGAÇÃO OPERACIONAL

Traçam-se inicialmente as rectas, correspondentes às restrições, e define-se


o espaço limitado pelas rectas (incluindo-as). O conjunto de soluções
admissíveis do problema fica sempre restringido ao primeiro quadrante
atendendo à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ções
admissí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.
x2

3
2

F
Z(x) 4

Conjunto de
soluções admissíveis

B x1
O E D

FIGURA 2

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

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 disponibilidade 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?

- 15 -
INVESTIGAÇÃO OPERACIONAL

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 disponibilidade 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 12 9
(contos/un.)

2.6. Uma empresa de produtos químicos pretende comercializar aditivos para betão,
tendo capacidade para produzir 800 unidades. O aditivo 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 viabilidade da comercialização do produto concluiu que no
mínimo 240 unidades de aditivo 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.

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

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 disponibilidade 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 lixo por dia. O lixo tem que ser incinerado nas
incineradoras 1 ou 2. Por razões técnicas, é necessário incinerar um mínimo de 30%
desse lixo na incineradora 2. O custo para incinerar o lixo nas incineradoras 1 e 2 é de
6500$00/ton. e 11250$00/ton., respectivamente. O custo de transporte de cada tonelada
de lixo é 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 lixo por dia. Efectue o planeamento do transporte de lixo de
modo a minimizar o custo.

- 17 -
INVESTIGAÇÃO OPERACIONAL

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 possibilidade
de fornecer um caudal máximo de exploração de 65 m3/h, enquanto o furo 2 tem
possibilidade 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.

φ100
1 1000 m
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.

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

3. ALGUMAS NOÇÕES DE ÁLGEBRA LINEAR

3.1. ESPAÇOS VECTORIAIS

Vamos enunciar algumas definições importantes para o desenvolvimento da


maté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

n
com os escalares λ i ≥ 0 e ∑ λ i = 1 , com i= 1,..., n
i=1

• 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 Não convexo Convexo

• Ponto extremo de um conjunto convexo S é todo o ponto que não


pertence a um segmento de recta que une dois pontos quaisquer de S, ou
seja, um ponto extremo não pode ser obtido por uma combinação linear
convexa positiva de pontos de S.

- 19 -
INVESTIGAÇÃO OPERACIONAL

• 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ão
nulos, 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 qualquer
vector 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 vector
B = λ1A1 + λ2A2 +...+ λnAn

n
com os escalares λ i ≥ 0 e ∑ λ i = 1 , com i= 1,..., n
i=1

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

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 11 a 1n   x1   b1 
A= , x=  , b= 
    

     
a m1 

a mn   x n   b 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 sistema


diz-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
1 se i = j

onde I =  ∀ i, j = 1, ..., m
0 se i ≠ j

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

- 21 -
INVESTIGAÇÃO OPERACIONAL

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 xN
ou 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 seguinte


forma:
• As soluções que se obtêm quando xN= 0, dizem-se básicas.
• Uma qualquer solução básica diz-se degenerada, quando alguma
das componentes de xB tem o valor zero.

As variáveis de xB designam-se por variáveis básicas, e as variáveis de xN


por 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 uma
solução básica. Conclui-se assim que o número de soluções básicas é finito.

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

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

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


modo:
x1 x2 ... xn b
a11 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 constante
diferente de zero
• Adicionar a uma linha outra qualquer das restantes, multiplicada
por uma constante não nula.
• Trocar quaisquer colunas do quadro

Qualquer uma das operações elementares transforma um dado sistema linear


num outro sistema equivalente, ou seja que tenha a mesma solução.

O sistema anterior pode ser transformado, aplicando várias operações


elementares, 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'.

- 23 -
INVESTIGAÇÃO OPERACIONAL

EXEMPLO 2

Considerando o sistema seguinte, pretende-se determinar uma solução


bá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 b
1 3 0 1 0 20
2 2 1 0 1 40
4 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 b
1 0 0 1 3 20
0 1 1 2 2 40
2 3 5 4 0 180

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

x4 x5 x3 x1 x2 b
1 0 0 1 3 20
0 1 1 2 2 40
0 3 5 2 -6 140

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

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

x4 x5 x3 x1 x2 b
1 0 0 1 3 20
0 1 1 2 2 40
0 0 2 -4 -12 20

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

x4 x5 x3 x1 x2 b
1 0 0 1 3 20
0 1 1 2 2 40
0 0 1 -2 -6 10

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

x4 x5 x3 x1 x2 b
1 0 0 1 3 20
0 1 0 4 8 30
0 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.

- 25 -
INVESTIGAÇÃO OPERACIONAL

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ão
básica (por troca óbvia com uma variável que era básica e que passou a não
básica), através de operações elementares. Esta nova solução básica diz-se
adjacente da anterior.

O processo de mudança de uma solução básica para outra adjacente (regras


de pivotação), é o seguinte:
i) Assinala-se a linha da matriz aumentada cuja variável se
pretende 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 coluna
designadas por linha pivotal e coluna pivotal.

iv) Torna-se o pivô igual à unidade por multiplicação da linha


pivotal 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 ij

pivô
EXEMPLO 3

Considerando o sistema de equações


x1 + x4 − x5 = 10
x2 + 0.5x4 − x5 = 5
x3 − 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

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

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


- 27 -
INVESTIGAÇÃO OPERACIONAL

Multiplica-se a segunda linha por (-1) e adiciona-se a primeira, e troca-se a


coluna 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, mesmo
sendo 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.

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

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 = 0
x1 + x2 + x3 = 8
x3 + 4x4 = 8

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

- 29 -
INVESTIGAÇÃO OPERACIONAL

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

3.3. Considerando a matriz aumentada que se apresenta:

x1 x2 x3 x4 x5 x6 b
1 2 2 1 0 0 4
0 4 −1 0 1 0 2
2 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.

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

4. MÉTODO SIMPLEX

O método simplex é um processo matricial para resolver problemas de


programação linear que permite determinar uma solução óptima, quando tal
solução existe, ou concluir que o programa linear é ilimitado.

Tendo em vista a utilização do método simplex, um programa linear deve


ser apresentado na forma padrão e de forma a se identificar uma primeira
solução básica admissível para o problema.

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


s. a
x1 + 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 programa


linear 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.

- 31 -
INVESTIGAÇÃO OPERACIONAL

• Teorema 2 - Considerando que

 a 11   a 21   a n1   b1 
a  a  a  b 
P1 =   , P2 =   , ... , Pn = 
n2 
P0 =  
12 22 2
,
       
       
a 1m  a 2m  a nm  b m 

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


P0,...,Pn ,
n
P0 = ∑ x i Pi
i=1

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 a
vectores 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 (ou
o mínimo) em mais do que um ponto extremo, então toma ainda o
mesmo valor de Z em todas as combinações lineares convexas
desses pontos extremos particulares.

 n n!
Em teoria bastará calcular o valor de Z em todos os   =
 m m!(n - m)!
pontos extremos (soluções básicas), para se obter o valor óptimo da função
objectivo. 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 corresponde


a uma etapa de um percurso orientado através de um subconjunto de
soluções básicas admissíveis, adjacentes entre si, com a garantia da
melhoria do valor da função objectivo até ao valor óptimo.

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

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

Seja um problema de programação linear em que se conhece uma solução


bá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 uma


outra 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
n
Pj = a1jP1 + a2jP2 + ... + amjPm = ∑ a ij Pi , j = 1, 2, ..., n (4.2)
i=1

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

- 33 -
INVESTIGAÇÃO OPERACIONAL

O vector x' = [b1 − θa1,m+1 , b2 − θa2,m+1 , ..., bm − θam,m+1 ,θ ,0, ...,0]T, é a


solução do programa linear, sendo uma solução admissível se todas as suas
componentes 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.

bi
Da expressão anterior resulta θ = e, dada a validade para todo o
a i,m+1
ai,m+1 > 0, a admissibilidade da nova solução é garantida com qualquer θ a
verificar

 b 
0 < θ ≤ mín  i a i,m+1 > 0
i  a i,m+1 

Como se pretende passar de uma solução básica a outra solução básica


adjacente, e tendo presente que a cada solução básica se encontram
associados m vectores linearmente independentes, o vector x' não pode ter
mais do que m componentes positivas. Assim, é forçoso anular algumas das
suas componentes, que se consegue tomando

 b 
θ = θ 0 = mín  i a i,m+1 > 0
i  a i,m+1 

Abordemos o problema de outra forma, elaborando um quadro a que


corresponde um sistema linear.

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

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


1 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 do
sistema, que se assume admissível para um dado problema de programação
linear.

Efectuando-se um conjunto de operações elementares sobre a matriz do


sistema linear anterior, transforma-se esse sistema num outro equivalente, a
que corresponde uma nova solução básica, adjacente à primeira, que não
podemos garantir a admissibilidade sem a adopção de nenhum critério para
o 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 i
serão, respectivamente, a coluna pivotal e a linha pivotal.

1
Se multiplicarmos a linha pivotal por obtemos o quadro seguinte:
a i,m+1

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


1 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

- 35 -
INVESTIGAÇÃO OPERACIONAL

1 a i,n bi
em que a'i,i = ; a'i,n = e θ= .
a i,m+1 a i,m+1 a i,m+1

Anulando, em seguida, todos os elementos da coluna pivotal, com excepção


do elemento pivô, obtemos um novo quadro

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


1 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

bk bk bi
≥θ ⇔ ≥
a k,m+1 a k,m+1 a i,m+1

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

 b 
θ = θ 0 = mín  i a i,m+1 > 0
i  a i,m+1 

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

EXEMPLO 4

Considere-se o problema do exemplo 1. Pretende-se determinar soluções


bá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, donde


obtemos

max. Z = 0.06x1 + 0.04x2


s.a
12x1 + 8.5x2 + x3 = 50 000
0.04x1 + 0.02x2 + x4 = 150
x1 + x5 = 3400
x2 + x6 = 5000
x1 , x2 , x3 , x4 , x5 , x6 ≥ 0

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

P1 P2 P3 P4 P5 P6 P0
 12   8.5  1 0 0 0 50000
0.04 x + 0.02 x + 0 x + 1 x + 0 x + 0 x =  150 
  1   2   3   4   5   6  
 1   0  0 0 1 0  3400 
 0   1  0 0 0 1  5000 

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 o
enunciado 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 termos
desta base de acordo com a expressão 4.2.

- 37 -
INVESTIGAÇÃO OPERACIONAL

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 P 4 + 0 P 5 + 0 P 6
P4 = 0 P3 + 1 P 4 + 0 P 5 + 0 P 6
P5 = 0 P3 + 0 P 4 + 1 P 5 + 0 P 6
P6 = 0 P3 + 0 P 4 + 0 P 5 + 1 P 6

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 que
obtemos
θ 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 −θ ≥ 0
ou 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ásica


admissível que corresponde ao ponto "B" da figura 3.

θ = 3750, obtemos [ 3750, 0, 5000, 0, -350, 5000]T, uma solução básica


nã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ão
básica admissível que corresponde ao ponto "D" da figura 3.

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

Pode-se abordar o problema de outra forma, passando-se de uma solução


básica para outra solução básica adjacente, garantindo-se a admissibilidade
do 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, é imediatamente


identificada a partir do quadro anterior (correspondendo ao ponto "A" da
figura 3).

Estabelece-se a primeira coluna como coluna pivotal, ou seja, torna-se


básica a variável x1. Para garantir a admissibilidade da nova solução, a
escolha da variável a sair da base corresponderá à linha que verifique

b  50000 150 3400 5000  3400


mín  i a i1 > 0 = mín  , , , = = 3400
 i1
i=1,..,4 a
  12 0.04 1 1  1

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


- 39 -
INVESTIGAÇÃO OPERACIONAL

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 o


elemento pivô correspondente a

b   9200 14 5000  14
mín  i a i2 > 0 = mín  , , = = 700
 i2
i=1,..,4 a
  8.5 0.02 1  0.02

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 x2
na base, a única variável com possibilidade de entrar nessa base, com
garantia de admissibilidade da solução, é a variável x5. Escolhe-se a
variável x3 para sair da base, porque

b   3250 3400 4300  3250


mín  i a i5 > 0 = mín  , , = = 650
 i5
i=1,..,4 a
  5 1 2  5

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

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.

x2

x1
A D B C

FIGURA 3

- 41 -
INVESTIGAÇÃO OPERACIONAL

4.2. MELHORIA DA FUNÇÃO OBJECTIVO

Suponha-se um problema de programação linear de forma a permitir a


identificaçã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ável


básica. Procedendo de acordo com o exposto no capítulo anterior

[b1 − θ 0 a 1r ,..., b i-1 − θ 0 a i-1,r , b i − θ 0 a ir , b i+1 − θ 0 a i+1,r ,..., b m − θ 0 a mr ,0,...,0, θ 0 ,0,...,0]T




  

0
a sair da base

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
n
Zr = c1a1r + ... + cmamr = ∑ c i a ir
i=1

em síntese

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

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

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 à nova
solução básica admissível é acompanhada de melhoria da função objectivo
(Z > Z0), num problema de maximização. Este raciocínio aplica-se, da
mesma forma, a problemas de minimização, em que a melhoria da função
objectivo (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 às
variá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ão
existe uma nova solução básica admissível com o correspondente valor da
função objectivo finito e tal que Z > Z0 (Z < Z0 no caso da
minimizaçã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 objectivo
pode ser melhorado. Para a diminuição do número de iterações, a variável
xj pode ser escolhida de acordo com o seguinte critério
{
max c j − Z j c j − Z j > 0
j
} no caso da maximização
ou
{
max Z j − c j Z j − c j > 0
j
} 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

- 43 -
INVESTIGAÇÃO OPERACIONAL

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 na
forma 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

m
em que Z0 = ∑ ci bi
i=1
n
e Z j = ∑ c i a ij , j = 1, 2, ..., n
i=1

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

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

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

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 se
verifica
{
max c j − Z j c j − Z j > 0
j
} no caso da maximização
ou
{
max Z j − c j Z j − c j > 0
j
} no caso da minimização

iii) Determina-se a variável que vai ser substituída na base, que


corresponde à linha (linha pivotal) em que se verifica
b 
mín  i a ir > 0
i
 a ir 
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ásica
admissível.

O programa de cálculo automático "Simplex", anexo a estes apontamentos,


tem implementado este algoritmo, podendo ser utilizado como uma
ferramenta auxiliar, no sentido da consolidação dos conhecimentos
adquiridos.

EXEMPLO 5

Resolver o seguinte problema de programação linear.

max. Z = x1 + 2x2
s.a
−x1 + x2 ≤ 4
x 1 + x2 ≤ 8
3x1 + x2 ≤ 18
x1 , x2 ≥ 0

- 45 -
INVESTIGAÇÃO OPERACIONAL

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
x 1 + 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 que


corresponde 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 j − Z j c j − Z j > 0 = max {1 , 2} = 2
j=1,...,5

logo a segunda coluna será a coluna pivotal, a que corresponde a variável


x2, que entra na base.

A variável x3 sai da base de acordo com


b   4 8 18  4
mín  i a i2 > 0 = mín  , ,  = = 4
 i2
i=1,..,3 a
 1 1 1  1

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

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 que


corresponde o ponto "B" na figura 4.

{ }
max c j − Z j c j − Z j > 0 = max {3} = 3 , a variável x1 entra na base
j=1,...,5

b   4 14  4
mín  i a i1 > 0 = mín  ,  = = 2 , saindo a variável x4 da base.
 i1
i=1,..,3 a
 2 4  2

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 que
corresponde o ponto "C" na figura 4.

- 47 -
INVESTIGAÇÃO OPERACIONAL

Se determinarmos o valor de

{ }
max c j − Z j c j − Z j > 0 = ∅
j=1,...,5

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

Neste problema verificou-se que, de quadro para quadro obtivemos uma


soluçã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 o
valor de Z a variar de 0→8→14).

x2

x1
A

FIGURA 4

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

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 de
programação linear, como foi referido em capítulos anteriores, das quais
pelo menos duas das soluções são básicas. As soluções óptimas não básicas
podem 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 de


programação linear, termina quando é encontrada uma primeira solução
óptima, é necessária a existência de um processo que permita obter as
restantes soluções óptimas básicas.

A verificação da existência de soluções óptimas alternativas é feita com a


identificaçã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 tornar
bá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 e
uma 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

- 49 -
INVESTIGAÇÃO OPERACIONAL

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 = 5
x1 , ..., 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

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

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ção
bá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.
x2 A → B → C → D

x1
A B

FIGURA 5

- 51 -
INVESTIGAÇÃO OPERACIONAL

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 pode
verificar-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 como
crité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 de


degenerência (existência de soluções degeneradas), devido à ocorrência de
empate no critério de saída da base. Por esta razão, surgiram métodos
teóricos que garantem, com toda a generalidade, a não ocorrência de um
ciclo durante todo o processo de cálculo. Um deles é a técnica de
perturbação de A. Charnes.

Esta técnica consiste no seguinte:

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


b  b bq
mín  i a ir > 0 = s = =
i
 a ir  a sr a qr
determina-se
a 
mín  i1 a ir > 0
i=s,...,q
 a ir 

ii) Se o empate continuar, calcula-se


 a ij 
mín  a ir > 0 , j = 2, 3, ..., m
i=s,...,q
 a ir 
iii) No caso de o empate se manter (o que, em princípio, não
acontecerá) escolher a linha a que corresponde a variável de menor
índice.

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

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ções
mí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 seguinte


sequê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


- 53 -
INVESTIGAÇÃO OPERACIONAL

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.7 x4 0 0 2 0 1 -180 -0.04 6
5
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.7 x4 0.04 0 2 0.04 1 -180 0 6
5
0.0 x6 1 0 0 1 0 0 1 0
2
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 conta


os critérios de desempate anteriormente referidos, existia uma grande
probabilidade de o problema entrar em ciclo.

A adopção do critério do menor índice, para a saída da base em caso


de empate, neste problema, conduzia à obtenção da mesma solução básica
admissível, após seis iterações. O valor da função objectivo iria manter-se
constante Z = 0.

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

Apresentação do problema
na forma padrão

Determinar uma solução


básica admissível inicial

Elaborar o quadro simplex

Determinar
se existe algum A solução básica
Cj - Zj > 0 Não determinada é óptima
na maximização FIM
Zj - Cj >0
na minimização

Sim

Determinar a entrada
de uma variável Xr na base.
máx. {Cj - Zj}
na maximização
máx. {Zj - Cj}
na minimização
Em caso de empate escolher
o menor índice j

O problema é ilimitado
Existe algum Não
FIM
a ir > 0 ?

Sim

Estabelecer a saida
de uma variável Xi da base.
mín.{ b i / a ir }
Em caso de empate escolher
mín.{ a is / a ir }

Efectuar as operações de
pivotação

FIGURA 6 - Fluxograma representativo do algoritmo primal do simplex.

- 55 -
INVESTIGAÇÃO OPERACIONAL

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 de


programação linear estavam inicialmente na forma canónica, pelo que a
passagem para a forma padrão originava uma primeira solução básica
admissível, em que as variáveis básicas correspondiam às variáveis de
desvio (neste caso de folga). No entanto, no caso de existirem restrições do
tipo ≥ para as quais os termos independentes bi são não negativos (com
excepção das restrições de não negatividade), a introdução das variáveis de
desvio (neste caso de excesso) não conduzem à obtenção directa de uma
solução básica admissível inicial. Deste modo, depois de o programa linear
estar apresentado na forma padrão, é necessárioaa criação de um conjunto
de variáveis artificiais, por forma a identificarmos uma solução básica
admissí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ções
associadas às variáveis artificiais não nulas, sendo o problema impossível (o
conjunto K será vazio).

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

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

s. a
a11x1 + 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 que


possa ser tomada, de forma imediata, como básica. Isto é, não é possível
identificar uma matriz identidade como partição da matriz dos coeficientes
técnicos A. Nestas condições, é necessário introduzir m variáveis artificiais
que serão as variáveis básicas iniciais.

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

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


programaçã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

x1 , x 2 , ... , x n , x n+1 , ... , x n+m ≥ 0


 


         

iniciais artificiais

A utilização deste artifício matemático a que se designa por técnica das


variáveis artificiais, permite a obtenção de uma solução básica inicial, não
tendo estas variáveis qualquer significado quer de ordem económica quer de
natureza física.

Os problemas deste tipo podem não necessitar da introdução de variáveis


artificiais em todas as restrições, no entanto, nesses casos (os mais usuais), a
resolução do problema pode ser efectuada de forma semelhante, sendo a
solução básica inicial, assim obtida, parcialmente artificial.

Para a resolução destes problemas de programação linear pode ser utilizado


o método das duas fases (estudado por Dantzig, Orden, Wolfe) ou o método
da penalização da função objectivo (estudado por Charnes, Cooper,
Henderson), os quais em seguida se descrevem.

- 57 -
INVESTIGAÇÃO OPERACIONAL

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 problema


auxiliar

min. Z ' = xn+1 + xn+2 +...+ xn+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

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

O objectivo, nesta fase, consiste em minimizar a soma das variáveis


artificiais (função objectivo artificial) que constituem a base, quer o
problema inicial seja de maximização, quer seja de minimização .

Qualquer solução do problema inicial é igualmente solução do problema


auxiliar com as variáveis artificiais todas nulas. A solução básica assim
obtida para o problema auxiliar, constitui uma solução básica admissível do
problema inicial, desde que todas as variáveis artificiais sejam nulas, sendo
Z ' = 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ão
nula. Assim, as restrições do problema inicial a que correspondem
variáveis artificiais não nulas, não são verificadas, logo conclui-se
que o problema inicial é impossível (K = ∅).

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

ii) Z ' = 0 e sem nenhuma variável artificial básica.


 A solução obtida constitui uma solução básica admissível do
problema inicial, passando-se directamente para a segunda fase do
problema.

iii) Z ' = 0 e com uma, ou mais, variáveis artificiais básicas de valor


nulo
 A solução a que se chegou constitui uma solução admissível do
problema inicial. Nesta situação, caso exista um vector não artificial
fora da base que possa substituir, na base, um vector artificial,
efectua-se essa substituição obtendo-se uma solução degenerada. Em
caso contrário, elimina-se do quadro simplex a linha associada à
variável artificial básica, dado que a restrição do problema inicial
correspondente, é redundante (pode ser obtida por combinação
linear 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 em
seguida a resolução do problema inicial usando o algoritmo primal do
simplex, dado que é conhecida uma solução básica admissível inicial, obtida
na 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

- 59 -
INVESTIGAÇÃO OPERACIONAL

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ção


básica admissível inicial, para o problema, de forma directa. Será necessário
resolver, primeiro, um problema de programação linear auxiliar, que permita
a 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ção


básica admissível para o problema auxiliar. Como pretendemos uma solução
básica admissível para o problema inicial, será necessário retirar da base
essas variáveis artificiais (dado que estas não existem no problema inicial).

Atendendo ao processo de cálculo que consta do algoritmo primal do


simplex, forçamos a saída da base, das variáveis artificiais, minimizando a
sua soma.

min. Z' = x6 + x7

s.a
−x1 + 2x2 + x3 = 12
4x1 + 4x2 − x4 + x6 = 20
−x1 + 4x2 − x5 + x7 = 4
x1 , ..., x7 ≥ 0

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

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 x7
0 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ásica


admissí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


- 61 -
INVESTIGAÇÃO OPERACIONAL

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 = ∅).
x2 +∞

C 1ª Fase » A → B → C
B
2ª Fase » C → D → E → + ∞

x1
A
FIGURA 7

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

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ásica


admissível foi resolvido em duas fases distintas, o que, do ponto de vista da
implementação desse método em programas de cálculo automático, é pouco
directo. Um outro método consiste em obrigar as variáveis artificiais a
sairem da base (que, como vimos, são obrigatoriamente nulas para as
restrições serem compatíveis), agravando, em grau relativo, o valor da
função objectivo, por intermédio dessas mesmas variáveis. Essa penalização
é concretizada estipulado coeficientes da função objectivo associados às
variáveis artificiais, arbitrariamente grandes. Os sinais desses coeficientes
serão negativos para problemas de maximização e positivos para problemas
de minimização.

A utilização do método da penalização da função objectivo implica a


apresentação do problema na seguinte forma

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


ou
min. 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

x1 , x 2 , ... , x n , x n+1 , ... , x n+m ≥ 0


 


    


  

iniciais artificiais

No caso em que a utilização deste método, para a resolução de problemas de


programação linear, é efectuada manualmente, não é necessária a atribuição
de nenhum valor numérico para M.

- 63 -
INVESTIGAÇÃO OPERACIONAL

O método da penalização da função objectivo, conduz a uma sucessão de


iteraçõ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 valor
nulo.
 a solução encontrada é a solução do problema.
iii) Determinou-se uma solução óptima com variáveis artificiais não nulas
na 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.a
x1 − 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.a
x1 − x2 + x3 = 1.5
2x1 + x2 − x4 = 5
3x1 + x2 + x5 = 16
−2x1 + x2 = 2
x1 , ..., x5 ≥ 0

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

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


seguinte 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 para
valores não nulos dessas variáveis.

Em seguida utiliza-se o algoritmo primal do simplex, o que origina a


sequência de quadros que se apresenta.

cj 1 4 0 0 0 M M
cB xB x0 x1 x2 x3 x4 x5 x6 x7
0 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

- 65 -
INVESTIGAÇÃO OPERACIONAL

cj 1 4 0 0 0 M M
cB xB x0 x1 x2 x3 x4 x5 x6 x7
0 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 foram
incluídas as variáveis artificiais por estas serem somente um artifício de
cálculo).

x2

A →B →C

x1
A

FIGURA 8

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

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.a
4x1 − x2 ≤ 6 2x1 + x2 + x3 ≤ 16
x1 + 2x2 ≤ 4 x1 + x2 ≤ 4
x1 , x 2 ≥ 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 − x 2 ≥ − 4 2x1 + 2x2 − x3 + x4 = 0
x2 ≤ 20 x2 + 2x3 ≤ 8
x1 , x 2 ≥ 0 x1 , x2 , x3 , x4 ≥ 0

e) min. Z = −x1 + x2 + x3 f) max. Z = 2x1 + 4x2 + 2x3


s.a s.a
x1 − x 2 + x 3 ≤ 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.a
3x1 + 2x2 − x3 ≤ 6 x1 + x3 + x4 ≤ 80
x1 + 2x2 ≤ 28 x1 + 2x2 + x3 − 2x4 ≤ 0
x2 − x3 ≤ 10 x1 + 2x2 − 4x4 ≤ 0
x1 , x 2 , x 3 ≥ 0 x1 , x2 , x3 , x4 ≥ 0

- 67 -
INVESTIGAÇÃO OPERACIONAL

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.a
x1 + 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.a
x1 − 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

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

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.a
x1 + x2 + x3 ≥ 10 8x1 + x2 ≤ 44
x1 − x 2 − x 3 ≥ 2 x2 ≥ 8
x1 + 4x2 + 2x3 ≤ 80 2x1 − x2 ≤ 0
x1 , x 2 , x 3 ≥ 0 4x1 − 3x2 ≥ 1
x1 , x2 ≥ 0

c) max. Z = x1 + 2x2 + x3 + 3x4 d) max. Z = x1 + x2 + 5x3


s.a s.a
x1 − 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 , x 2 , x 3 , x 4 ≥ 0

e) max. Z = 4x1 + x2 + 6x3 + x4 f) min. Z = −x1 + 3x2 − x3


s.a s.a
4x1 + 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 , x 2 , x 3 , x 4 ≥ 0

4.4. Resolver os problemas propostos do capítulo 2 aplicando o algoritmo primal do


simplex.

- 69 -
INVESTIGAÇÃO OPERACIONAL

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 por
problema 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 classe


B25 e B30, para uma determinada obra. O departamento de gestão efectuou
um estudo que define os valores mínimos necessários à viabilização dessa
intenção, sendo estes de 300 toneladas de cimento, 580 toneladas de areia e
1000 toneladas de brita. O custo estimado pelo empreiteiro aquando da
elaboração da proposta para o concurso à empreitada, foi feito com base nos
custos de betão pronto. Esses preços, entrando em conta só com os três
materiais, foram de 8.8 contos/m3 e 10.6 contos/m3 respectivamente, para o
B25 e o B30. A composição de cada tipo de betão, em kg/m3, encontra-se
descriminada no quadro seguinte:

Betão Cimento Areia Brita


B25 330 710 1240
B30 400 630 1255

Podemos, então, formular o seguinte programa linear, a que designamos por


problema primal.
min. Z = 8.8x1 + 10.6x2
s.a
0.33x1 + 0.4x2 ≥ 300
0.71x1 + 0.63x2 ≥ 580
1.24x1 + 1.255x2 ≥ 1000
x1 , x2 ≥ 0

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

em que:
x1 - volume de betão B25 a ser elaborado
x2 - 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 os


materiais. Para esta firma conseguir vender os referidos materiais ao
empreiteiro, terá que fazer um preço de venda das quantidades necessárias
para elaborar 1 m3 de betão, inferior ou igual ao valor estimado pelo
empreiteiro, pois caso contrário este desiste de fazer o betão em estaleiro e
compra 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 cimento
y2 - preço de venda de 1 ton. de areia
y3 - preço de venda de 1 ton. de brita

Sendo óbvio que y1 , y2 , y3 ≥ 0, dado que a firma de materiais de


construçã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 em


estaleiro, ele comprará uma quantidade de materiais que lhe viabilizem essa
tarefa.

Desta forma o problema dual será:

max. W = 300y1 + 580y2 + 1000y3


s.a
0.33y1 + 0.71y2 + 1.24y3 ≤ 8.8
0.4y1 + 0.63y2 + 1.255y3 ≤ 10.6
y1 , y2 , y3 ≥ 0

- 71 -
INVESTIGAÇÃO OPERACIONAL

Dos dois problemas de programação linear anteriores tiramos as seguintes


conclusões:

• A cada restrição do problema primal está associada uma variável do


problema dual

• Por cada variável do problema primal existe uma restrição do problema


dual.

• A matriz dos coeficientes técnicos do problema dual é igual à matriz


transposta dos coeficientes técnicos do problema primal.

• Os termos independentes do problema dual são os coeficientes da função


objectivo do problema primal. Os coeficientes da função objectivo do
problema 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


independentes
c1 c2 ... cj ... cn do DUAL

y1 b1 a11 a12 ... a1j ... a1n


y2 b2 a21 a22 ... a2j ... a2n
Variáveis do .. .. .. .. . . .. . . ..
DUAL . . . . . . . .
yi bi ai1 ai2 ... aij ... ain
.. .. .. .. . . . . . .
. . . . . .. . ..
ym bm am1 am2 ... amj ... amn
 

Coeficientes da f.o. do DUAL Restrição j do DUAL

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

5.2. PASSAGEM DO PRIMAL AO DUAL

Na notação matricial temos:


PRIMAL DUAL
max Z = cT x min W = bT y
s.a ou s.a ou
Ax≤b Ax=b AT y ≥ c AT y ≥ c
x≥0 x≥0 y≥0 y livre
min Z = cT x max W = bT y
s.a ou s.a ou
Ax≥b Ax=b AT y ≤ c AT y ≤ c
x≥0 x≥0 y≥0 y 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 yi
nã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 j
do dual é uma igualdade.
• Se a variável xj do primal é não positiva, então a restrição j do dual é do
tipo maior ou igual se o primal for de maximização, ou do tipo menor ou
igual 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 Restrição j
≥0 ≥
Livre =
≤0 ≤
DUAL (max.) PRIMAL (min.)

- 73 -
INVESTIGAÇÃO OPERACIONAL

EXEMPLO 11

Escrever o dual do seguinte problema de programação linear.

max. Z = 2x1 + 4x2 − x3 − x4 + 3x5


s.a
x1 − 4x2 + x3 − 2x4 ≤ 20
x1 − 3x3 + x4 + x5 = 32
x1 − x2 + 4x4 − 3x5 ≥ 6
x1 , 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 da


variável primal correspondente:
x1 ≥ 0 → y1 + y2 + y3 ≥ 2
x2 ≥ 0 → −4y1 − y3 ≥ 4
x3 ≤ 0 → y1 − 3y2 ≤ −1
x4 ≤ 0 → −2y1 + y2 + 4y3 ≤ −1
−∞ ≤ x5 ≤ +∞ → y2 − 3y3 = 3
Os coeficientes da função objectivo do dual são os termos independentes do
primal, logo:

min. W = 20y1 + 32y2 + 6y3


s.a
y1 + y2 + y3 ≥ 2
−4y1 − y3 ≥ 4
y1 − 3y2 ≤ −1
−2y1 + y2 + 4y3 ≤ −1
y2 − 3y3 = 3
y1 ≥ 0 ; −∞ ≤ y2 ≤ +∞ ; y3 ≤ 0

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

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ão
valores das funções objectivo do primal e dual, respectivamente, então
teremos Z ≤ W nos problemas de maximização do primal e Z ≥ W nos
problemas 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 do


par de problemas primal e dual, tais que os valores correspondentes das
funçõ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ão
iguais.

• 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


Z=W W→ ∞
Dual possível os problemas têm o dual tem
solução óptima solução ilimitada
Z→ ∞ Não existem
Dual impossível o primal tem soluções admissíveis
solução ilimitada para o problema

- 75 -
INVESTIGAÇÃO OPERACIONAL

5.3.2. TEOREMA DOS DESVIOS COMPLEMENTARES

Se aplicarmos o algoritmo primal do simplex e obtivermos a solução óptima


do 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 da
variá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 da
colona 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+i
de desvio do primal é não-básica.
Como as variáveis de decisão de um problema primal-dual estão ligadas
com as variáveis de desvio do outro, diz-se que as soluções são
complementares entre si.
Se aplicarmos o algoritmo primal do simplex ao problema primal
verificamos que se a solução não for óptima, existe pelo menos um
elemento positivo da última linha do quadro simplex, logo existe pelo menos
uma variável do problema dual não admissível. Deste modo, a aplicação do
algoritmo primal aos problemas primal e dual fica sintetizada no quadro
seguinte:
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

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

5.4. ALGORITMO DUAL DO SIMPLEX

O processo de resolução de problemas de programação linear baseado no


algoritmo dual do simplex, corresponde a um percurso orientado de
soluções básicas admissíveis do problema dual, a que correspondem
soluções básicas não admissíveis do problema primal, até se atingir uma
soluçã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 DUAL
Solução básica Solução básica Solução básica Solução básica Solução básica
→...→ → ← ←...←
não admissível não admissível admissível admissível admissível

i) Elaborar um quadro simplex onde se identifique uma solução básica


admissível para o dual (valores da última linha do quadro todos
menores ou iguais a zero).
ii) Verificar se a solução é óptima, isto é, se a solução é admissível
para 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 que
corresponde à linha (linha pivotal) em que se verifica:
mín {b i b i < 0}
i
iii) Determinar a variável que vai entrar na base a que corresponde a
coluna (coluna pivotal) onde se verifica
 c j − Z j 
mín  a rj < 0 no caso da maximização
j
 a rj 
ou
 Z j − c j 
mín  a rj < 0 no caso da minimização
j
 a rj 

Caso não exista nenhum air < 0 este algoritmo termina, sendo o
problema dual ilimitado e o problema primal impossível.
iv) No caso de empate no critério de saída ou de entrada na base
escolher a variável de menor índice. Identificado o elemento pivô,
aplicar as regras de pivotação, expostas no capítulo 3.3, para efectuar a
mudanç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.

- 77 -
INVESTIGAÇÃO OPERACIONAL

EXEMPLO 12

Resolver o seguinte problema de programação linear aplicando o algoritmo


dual do simplex.

min. Z = x1 + 2x2
s.a
x1 + 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 e


identificar 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


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

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 que
correspondem os pontos "A" e "D" na figura 9.

Determina-se a linha pivotal, ou seja, a variável que sai da base, quando se


efectua o seguinte cálculo:
mín {b i b i < 0} = mín {− 4 , − 8} = −8
i=1,2

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


 Z j − c j  − 1 − 2 2
mín  a 2j < 0 = mín  , =
j=1,..,4 
 a 2j  − 1 − 5 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 do


problema 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 i b i < 0} = mín {− 2.4} = −2.4 , logo a variável x 3 sai da base
i=1,2

 Z j − c j   − 0.6 − 0.4  0.6


mín  a 1j < 0 = mín  , = , entrando x1 na base
j=1,..,4 
 a 1j   − 0.8 − 0.2  0.8

- 79 -
INVESTIGAÇÃO OPERACIONAL

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 problema


dual [ 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 de
soluções admissíveis para o par de problemas primal-dual, logo estas são
soluções óptimas, sendo Z = W = 5.
PRIMAL DUAL
min. Z = x1 + 2x2 max. W = 4y1 + 8y2
s.a s.a
x1 + x2 ≥ 4 y1 + y2 ≤ 1
x1 + 5x2 ≥ 8 y1 + 5y2 ≤ 2
x1 , x2 ≥ 0 y1 , y2 ≥ 0

x2 y2

B E
F
C x1 y1
A D

FIGURA 9

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

Apresentação do problema
na forma padrão

Determinar uma solução


básica admissível do Dual

Elaborar o quadro simplex

A solução básica
Não
Existe algum determinada é óptima
bi<0? para o Dual e Primal
FIM

Sim

Estabelecer a saida
de uma variável Xr da base.
mín. {bi}
Em caso de empate escolher
a de menor índice

Não O problema Dual é ilimitado


Existe algum e o Primal é impossível
a rj < 0 ? FIM

Sim

Determinar a entrada
de uma variável Xj na base.
mín. { (Cj - Zj) / a rj }
na maximização
ou
mín. { (Zj - Cj) / a rj }
na minimização
Em caso de empate escolher
o menor índice j

Efectuar as operações de
pivotação

FIGURA 10 - Fluxograma representativo do algoritmo dual do simplex.

- 81 -
INVESTIGAÇÃO OPERACIONAL

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 de


uma solução básica admissível para o problema dual. Em muitos casos, tal
solução não é possível de obter de forma imediata. Nessas situações uma
té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, em


que se pretende maximizar a função objectivo, e cuja base é constituída
pelas variáveis xm+1, ..., xn . Para obtermos uma solução básica admissível
do problema dual adiciona-se uma restrição ao problema original
correspondente 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ós


passada à forma padrão e explicitando xr , obtém-se

r-1 m
xr = M − ∑ x j − ∑ x j − x n+1
j=1 j=r +1

Substituindo, no problema original, xr pela expressão anterior, vem para a


função objectivo

( )
m
Z = Z0 + ∑ c j − Z j x j
j=1

 
 
( ) ∑ (c j − Z j )x j
r-1 m m
= Z0 + ∑ c j − Z j x j + (c r − Z r ) M − ∑ x j − x n+1  +
j=1  j=1  j=r +1
 j≠ r 

[( ) ]
m
= Z 0 + (c r − Z r )M + ∑ c j − Z j − (c r − Z r ) x j − (c r − Z r )x n+1
j=1
j≠ r

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

Para que a solução do dual seja básica e admissível, satisfazendo o critério


do ó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 xr
que verifique
{
max c j − Z j c j − Z j > 0
j
} no caso da maximização

ou

{
max Z j − c j Z j − c j > 0
j
} no caso da minimização

O recurso às restrições artificiais, como meio de possibilitar a aplicação do


algoritmo dual do simplex, origina as seguintes situações:
i) O problema aumentado não conduz a uma solução básica
admissí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ásicas
correspondem a uma solução admissível óptima do problema
original.

EXEMPLO 13

Resolver o seguinte problema de programação linear aplicando o algoritmo


dual do simplex.
max. Z = x1 + 4x2
s.a
2x1 + x2 ≥ 6
x1 + x2 ≤ 5
x1 , x2 ≥ 0

- 83 -
INVESTIGAÇÃO OPERACIONAL

Resolução do exemplo 13

O passo inicial será a passagem à forma padrão e a elaboração do quadro


simplex.
max. Z = x1 + 4x2
s.a
−2x1 − x2 + x3 = −6
x 1 + 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 o
problema dual (ponto “A” da figura 11). Para podermos aplicar o algoritmo
dual do simplex é necessário adicionar uma restrição artificial x1 + x2 ≤ M
correspondente à soma das variáveis não básicas, que com a introdução de
uma variável de desvio se transforma em x1 + x2 + x5 = M. Vamos em
seguida explicitar a variável x2 na equação artificial dado que

{ }
max c j − Z j c j − Z j > 0 = max {1 ; 4} = 4
j=1,2

o problema aumentado será


max. Z = x1 + 4x2
s.a
−2x1 − (M − x1 − x5) + x3 = −6 ⇔ −x1 + x3 + x5 = M−6
x1 + (M − x1 − x5) + x4 = 5 ⇔ x 4 − x5 = 5 − M
x1 + x2 + x5 = M
x1 ,.., x5 ≥ 0

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

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 dual


admissí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).

- 85 -
INVESTIGAÇÃO OPERACIONAL

Se fosse escrito o problema dual, teriamos


(y1) 2x1 + x2 ≥ 6 → y1 ≤ 0
(y2) x1 + x2 ≤ 5 → y2 ≥ 0
e
x1 ≥ 0 → 2y1 + y2 ≥ 1
x2 ≥ 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.
y2

y1
A

FIGURA 11

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

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

- 87 -
INVESTIGAÇÃO OPERACIONAL

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 , x 2 ≥ 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 , x 2 , x 3 ≥ 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 , x 2 , x 3 ≥ 0 4x1 + 2x2 + x3 ≤ 160
x1 , x2 , x3 ≥ 0

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

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 nos
diversos parâmetros do modelo. Essas alterações podem consistir na
modificação dos coeficientes da função objectivo, nos termos
independentes, nos coeficientes técnicos, na introdução de novas variáveis e
na introdução de novas restrições.

Com o uso de programas de cálculo automático, torna-se fácil proceder-se a


estas alterações, e executar o programa em seguida. No entanto, as
alterações decorrentes da introdução de novas variáveis e novas restrições,
são necessárias quando se utilizam determinados algoritmos, nomeadamente
para 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 coluna


no 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ão
altera 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, vai


corresponder à introdução de uma nova linha e, eventualmente, de novas
colunas, caso sejam ainda acrescentadas novas variáveis. A solução óptima
obtida para o problema inicial poderá não verificar esta nova restrição, o
que conduzirá à existência no quadro de uma solução não admissível para o
problema 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.

- 89 -
INVESTIGAÇÃO OPERACIONAL

7. PROGRAMAÇÃO LINEAR INTEIRA

São muitos os problemas reais que só têm sentido se as variáveis de decisão


forem inteiras, por exemplo: número de pessoas, máquinas ou outros
recursos do mesmo tipo.

Os problemas de programação linear, envolvendo variáveis inteiras, são


resolvidos usualmente como se de variáveis contínuas se tratassem,
arredondando os valores obtidos para o número inteiro mais próximo. No
entanto, se tal procedimento é válido quando estão envolvidos valores
bastante grandes, quando estes são pequenos torna-se incerto o
arredondamento a efectuar. Se uma variável, correspondendo ao número de
determinado 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 contribuir
para a optimização do funcionamento da empresa.

O grupo de problemas que envolvem variáveis inteiras designam-se por


problemas de programação linear inteira. A programação linear inteira pode-
se dividir em inteira pura, caso estejam envolvidas no problema
exclusivamente variáveis inteiras, e inteira mista, em que existem variáveis
inteiras e variáveis contínuas. Os diversos métodos existentes para a
resolução de problemas de programação linear inteira podem-se classificar
em dois grupos distintos: métodos de planos de corte e métodos de
enumeração. Neste capítulo iremos abordar o estudo de dois algoritmos que
são típicos de cada um desses grupos: algoritmo do corte fraccionário de
Gomory e algoritmo da bifurcação e limite.

De entre as numerosas aplicações da programação linear inteira destacam-se


um tipo de problemas, que envolvem um conjunto de decisões relacionadas
entre si, cujo valor das variáveis de decisão são sim (1) e não (0). Por
exemplo, dado um conjunto de terrenos de determinados custos e
características de construção, onde deveremos construir? Os problemas que
envolvem variáveis binárias (cujos valores se resumem a 0 e 1) são
designados por problemas de programação linear inteira binária. Estes
problemas podem ser resolvidos por qualquer um dos métodos de resolução

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

de problemas de programação inteira. No entanto, por serem um caso


particular, existem algoritmos só destinados ao efeito.

Intuitivamente poderíamos ser levados a pensar que os métodos de


resolução de problemas de programação linear inteira seriam de mais fácil
implementação. No entanto verifica-se exactamente o oposto. A resolução
de problemas de programação linear inteira podem dar origem a tempos de
computação impraticáveis.

7.1. ALGORITMO DOS PLANOS DE CORTE

Este algoritmo pertence à classe dos métodos de planos de corte. O


procedimento comum a estes métodos consiste na adição de novas
restrições, a que correspondem planos de corte, e cujo objectivo é limitar o
domínio das soluções.

Resolução do problema
associado de P.L. contínua
(algoritmo primal do simplex)

A solução básica
Sim determinada é óptima
A solução óptima
para o P.L. inteiro
é inteira ? FIM

Não

óptimo do P.L. contínuo

Escolher uma variável inteira


cujo valor é fraccionário
(correspondendo ao melhor corte) zona fraccionária

Adicionar uma restrição Plano de


correspondendo ao novo corte
corte

Resolver o novo P.L. associado


(algoritmo dual do simplex)

FIGURA 12 - Ilustração do algoritmo dos planos de corte.

- 91 -
INVESTIGAÇÃO OPERACIONAL

O método dos planos de corte consiste em tratar um problema de


programação inteira como um problema de programação contínua. Caso a
soluçã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áveis
inteiras cujos valores óptimos obtidos sejam fraccionários, é necessário
adicionar uma restrição de corte. Esta restrição reduz o conjunto de soluções
admissíveis, eliminando a solução óptima anteriormente obtida, tornando-a
não admissível. Desta forma, será necessário a aplicação do algoritmo dual
do simplex para continuarmos o cálculo. Este processo está ilustrado na
figura 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 as


variáveis são inteiras, logo as variáveis de desvio também o são, o que
implica que os coeficientes técnicos e os termos independentes sejam
também inteiros.

Supondo que, para um dado problema de programação linear inteira pura, o


valor óptimo de uma variável, obtido da resolução do problema contínuo
associado, 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:
n
x Bi = b i − ∑ a ij x Nj
j=1
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=0


x = 5.6 → [5.6] = 5 ; f = 0.6
x = −4 → [−4] = −4 ; f=0
x = −3.3 → [−3.3] = −4 ; f = 0.7 )

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

então
bi = [bi] + fi
aij = [aij] + fij
logo virá
   
[ ]
n n
x Bi =  [b i ] − ∑ a ij x Nj  +  f i − ∑ f ij x Nj 
 j=1   j=1 

atendendo a que fi < 1, fij ≥ 0 e xNj ≥ 0, conclui-se que

   
[ ]
n n
 [ i ] ∑ a ij x Nj  é inteiro
b − e  i ∑ f ij x Nj  < 1
f −
 j=1   j=1 
 n 
Como xBi deve ser inteira, então  f i − ∑ f ij x Nj  < 1 deve ser também
 j=1 
inteira, logo
n n
fi − ∑ fij x Nj ≤ 0 ⇔ − ∑ fij x Nj ≤ − fi
j=1 j=1

Esta restrição é denominada por corte fraccionário de Gomory.

A restrição deve gerar o maior corte possível no conjunto de soluções


admissíveis fraccionárias. Para tal é necessário escolher xBi adoptando uma
das duas regras empíricas que se apresentam:
 
 f 
 
i) máx {f i } ii) máx  n i 
 ∑ f ij 
i i

 j=1 

A segunda regra empírica apresentada é a que conduz a melhores


resultados. No entanto é mais difícil de aplicar em problemas de cálculo
manual.

Em caso de empate num conjunto de variáveis, pode-se escolher uma


qualquer, por exemplo, a de menor índice.

- 93 -
INVESTIGAÇÃO OPERACIONAL

EXEMPLO 14

Resolver o seguinte problema de programação linear inteira aplicando o


algoritmo do corte fraccionário de Gomory.
max. Z = 3x1 + 2x2
s.a
x1 + 3x2 ≤ 26
2x1 + x2 ≤ 14
x1 − 2x2 ≤ 0
x1 , x2 ≥ 0 e inteiras

Resolução do exemplo 14

A resolução inicia-se com a passagem do problema associado à forma


padrão.
max. Z = 3x1 + 2x2
s.a
x1 + 3x2 + x3 = 26
2x1 + x2 + x4 = 14
x1 − 2x2 + x5 = 0
x1 ,..., x5 ≥ 0

Aplicando o algoritmo primal do simplex ao problema associado de


programação linear contínua, obtemos a sucessão de quadros que se
apresenta.
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

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

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 valores


fraccionários (ponto "A" da figura 12). Será necessário a adição de uma
restrição de corte. Para verificarmos qual o corte mais forte vamos
determinar:

x2 (i=2) → f2 = 7.6 − [7.6] = 7.6 − 7 = 0.6


f23 = 0.4 − [0.4] = 0.4 − 0 = 0.4
f24 = -0.2 − [-0.2] = -0.2 + 1 = 0.8
x1 (i=3) → f3 = 3.2 − [3.2] = 3.2 − 3 = 0.2
f33 = -0.2 − [-0.2] = -0.2 + 1 = 0.8
f34 = 0.6 − [0.6] = 0.6 − 0 = 0.6

- 95 -
INVESTIGAÇÃO OPERACIONAL

i) máx {f 2 ; f 3 } = máx {0.6 ; 0.2} = 0.6


i=2,3 i

ou
ii)
 f2 0.6 f3 0.2 
máx  = = 0.5 ; = = 0.143 = 0.5
 23 + f 24 0.4 + 0.8
i=2,3 f f 33 + f 34 0.8 + 0.6 

quer aplicando uma regra quer aplicando a outra, a restrição de corte a


adicionar é 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 x6
0 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

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

Deste novo quadro óptimo verificamos que as variáveis x1 ainda tem valor
fraccionário (ponto "B" da figura 13). Novamente será necessário a adição
de uma restrição de corte determinada pela variável x1.

x1 (i=3) → f3 = 3.5 − [3.5] = 3.5 − 3 = 0.5


f34 = 1 − [1] = 1 − 1 = 0
f36 = -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 anterior


aumentado da nova restrição de corte, o que origina uma nova sequência de
quadros.

cj 3 2 0 0 0 0 0
cB xB x0 x1 x2 x3 x4 x5 x6 x7
0 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

- 97 -
INVESTIGAÇÃO OPERACIONAL

Finalmente chegamos a uma solução cujos valores das variáveis inteiras são
números inteiros, como tal, solução óptima do problema de programação
linear inteira inicial, com x1 = 4 , x2 = 6 e Z = 24 (ponto "C" da
figura 13). Se pretendessemos representar graficamente as restrições de
corte, 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

x2 2 1

x1

FIGURA 13

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

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 em


que 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 de
corte que contempla esta possibilidade, do seguinte modo
n
− ∑ α ij x Nj ≤ − fi
j=1
em que

 
 a ij ⇐ a ij ≥ 0
 
se x Nj é contínua 
  fi
1 − f a ij ⇐ a ij < 0
 
 i
α ij = 

 
 f ij ⇐ f ij ≤ f i
 
se x Nj é inteira 
 fi

 (
1 − f 1 − f ij ) ⇐ f ij > f i
  i

EXEMPLO 15

Resolver o seguinte problema de programação linear inteira aplicando o


algoritmo do corte fraccionário de Gomory.

max. Z = 2x1 + x2 + 4x3


s.a
−0.4x1 + x2 ≤ 15.5
x1 + 4x2 + 2x3 ≤ 84
2x1 − x2 + 2x3 ≤ 11
x1 , x2 ≥ 0 e inteiras
x3 ≥ 0

- 99 -
INVESTIGAÇÃO OPERACIONAL

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.5
x1 + 4x2 + 2x3 + x5 = 84
2x1 − x2 + 2x3 + x6 = 11
x1 ,..., x6 ≥ 0

Aplicando o algoritmo primal do simplex, obtemos o quadro que


corresponde à solução óptima do problema associado de programação linear
contí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

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

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.6
f21 = -0.2 − [-0.2] = -0.2 + 1 = 0.8
A nova restrição de corte será:
f2 f
− (1 − f 21 )x1 − a 25 x 5 − 2 a 26 x 6 ≤ − f2
1 − f2 1 − f2

0.6 0.6
− (1 − 0.8)x1 − 0.2 x 5 − - 0.2 x 6 ≤ −0.6
1 − 0.6 1 − 0.6
Equacionando:
−0.3x1 − 0.2x5 − 0.3x6 + x7 = −0.6
Aplicando o algoritmo dual do simplex ao quadro anterior aumentado da
nova restrição de corte, obtemos uma nova sequência de quadros.

cj 2 1 4 0 0 0 0
cB xB x1 x0 x2 x3 x4 x5 x6 x7
0 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 a


solução é óptima para o problema de programação linear inteira inicial, com
x1 = 0 , x2 = 14 , x3 = 12.5 e Z = 64.

- 101 -
INVESTIGAÇÃO OPERACIONAL

7.2. ALGORITMO DA BIFURCAÇÃO E LIMITE

Este algoritmo foi desenvolvido inicialmente por Lang e Doig em 1960, e


trata-se de um método de enumeração. É um algoritmo cuja utilização é
muito difundida, estando na base da maioria dos programas de cálculo
automático que resolvem problemas de programação linear inteira.

O algoritmo da bifurcação e limite ("branch and bound") pode ser aplicado


directamente a problemas de programação linear inteira pura ou mista. O
primeiro passo da sua aplicação consiste na resolução de o problema de
programação linear contínuo associado ao problema inteiro. Depois de
obtida a solução óptima do problema associado, supondo que xBi
correspondia a uma variável inteira cujo valor óptimo xBi* seria
fraccionário, então, para a solução ser admissível no problema inteiro, será
necessário que

xBi ≤ [xBi*] ou xBi ≥ [xBi*] + 1

P.L.1

x Bi ≤ [x Bi*] x Bi ≥ [x Bi*] + 1

P.L.2 P.L.3

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-se
dando origem a dois novos problemas. Este esquema de cálculo é aplicado a
cada novo ramo até que este seja limitado. O limite de cada ramo é atingido

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

quando obtemos uma solução óptima inteira ou quando deparamos com a


inexistência de soluções finitas admissíveis. Depois de enumeradas todas
as soluções inteiras, o óptimo corresponde à solução cujo valor da função
objectivo 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 problema


de programação linear inteira.

max. Z = 4x1 + 5x2


s.a
x1 + 2x2 ≤ 48
4x1 − 2x2 ≤ 23
x1 + x2 ≥ 11
x1 , x2 ≥ 0 e inteiras

Resolução do exemplo 16

Passa-se o problema à forma padrão e resolve-se o problema associado


aplicando o algoritmo primal do simplex (método da penalização da função
objectivo).

max. Z = 4x1 + 5x2 − Mx6


s.a
x1 + 2x2 + x3 = 48
4x1 − 2x2 + x4 = 23
x1 + x2 − x5 + x6 = 11
x1 ,..., x6 ≥ 0

- 103 -
INVESTIGAÇÃO OPERACIONAL

cj 4 5 0 0 0 -M
cB xB x0 x1 x2 x3 x4 x5 x6
0 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 parte
fraccionária e estabelece-se dois novos sub-problemas originados pela
adição das restrições

x2 ≤ [16.9] e x2 ≥ [16.9] + 1
ou seja
x2 ≤ 16 e x2 ≥ 17

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

Se adicionarmos uma das novas restrições ao problema associado inicial,


vamos obter um novo sub-problema:
P.L.2
1 Z = 141.3
X 1 = 14.2
max. Z = 4x1 + 5x2 X 2 = 16.9
s.a
x 2 ≤ 16 x 2 ≥ 17
x1 + 2x2 ≤ 48
4x1 − 2x2 ≤ 23
2
x1 + x2 ≥ 11
x2 ≤ 16 ? ?
x1 , x2 ≥ 0

Aproveita-se o último quadro simplex obtido e retira-se a coluna


correspondente à variável artificial x6 (última coluna), pois já é conhecida
uma solução básica admissível para o problema associado. Adiciona-se uma
linha correspondendo à equação x2 + x6 = 16, em que x6 é uma variável de
desvio.

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 à última
linha. Como esta solução básica não é primal admissível, mas é dual
admissí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 x6
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 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

- 105 -
INVESTIGAÇÃO OPERACIONAL

cj 4 5 0 0 0 0
cB xB x0 x1 x2 x3 x4 x5 x6
0 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 tem
valor fraccionário logo vai originar dois novos sub-programas
correspondentes à 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 se
aproveitarmos o quadro anterior.

cj 4 5 0 0 0 0 0
cB xB x0 x1 x2 x3 x4 x5 x6 x7
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 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

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

cj 4 5 0 0 0 0 0
cB xB x0 x1 x2 x3 x4 x5 x6 x7
0 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 do


problema. 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 quadro
adiciona-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 x7
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 -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

- 107 -
INVESTIGAÇÃO OPERACIONAL

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 problema
impossível.
1 Z = 141.3
X 1 = 14.2
X 2 = 16.9

x 2 ≤ 16 x 2 ≥ 17

2 Z = 135 5
X 1 =13.75
X 2 = 16
?

x 1 ≤ 13 x 1 ≥ 14

3 Z = 132 4
X 1 = 13
X 2 = 16
Imp.

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 aproveitarmos
o quadro óptimo do P.L.1. Vamos adicionar a restrição x2 ≥ 17 a que
corresponde a equação
−x2 + x6 = −17

cj 4 5 0 0 0 0
cB xB x0 x1 x2 x3 x4 x5 x6
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 -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

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

cj 4 5 0 0 0 0
cB xB x0 x1 x2 x3 x4 x5 x6
0 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 limite


deste ramo. O valor óptimo é Z = 141, com x1 = 14 e x2 = 17.

Desta forma foram enumeradas todas as soluções possíveis para o problema


de programação linear inteira.

A solução do problema original corresponde à última solução inteira obtida


pois é 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ão
necessitávamos continuar o cálculo. E o motivo reside no facto do valor da
função objectivo diminuir ao longo de um ramo. Dessa forma, se obtemos
um limite a que corresponde uma solução inteira, só será necessário
continuar o cálculo nos ramos cujo valor da função objectivo é maior (na
maximizaçã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.

- 109 -
INVESTIGAÇÃO OPERACIONAL

Enumeremos todos os problemas resolvidos, assim como as respectivas


soluções

1 Z = 141.3
X 1 = 14.2
X 2 = 16.9

x 2 ≤ 16 x 2 ≥ 17

2 Z = 135 5 Z = 141
X 1 =13.75 X 1 = 14 ← Solução
X 2 = 16 X 2 = 17

x 1 ≤ 13 x 1 ≥ 14

3 Z = 132 4
X 1 = 13
X 2 = 16
Imp.

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

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.a
4x1 + 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

- 111 -
INVESTIGAÇÃO OPERACIONAL

g) min. Z = 2x1 + x2 + 0.5x3 h) max. Z = 2x1 + x2 + 3x3


s.a s.a
x1 + 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.

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

BIBLIOGRAFIA

- AGUDO, F.R. DIAS - Introdução à Algebra Linear e Geometria


Analí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: Editora
McGraw-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-Hill
de Portugal, 1985.
- HAFTKA, RAPHAEL T.; GURDAL, ZAFER - Elements of Structural
Optimization. Dordrecht: Kluwer Academic Publishers, 1992.
- HILLIER, FREDERICK S.; LIEBERMAN, GERALD J. - Introduction to
Operation Research. New York: McGraw-Hill Book Company, 1990.
- IBAÑEZ, SANTIAGO HERNANDEZ - Metodos de Diseño Optimo de
Estructuras. Madrid: Colegio de Ingenieros de Caminos, Canales y Puertos,
1990.
- MARTINS, ERNESTO QUEIROZ - Apontamentos de Investigação
Operacional. 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 Irregulares
de Betão Armado Através de Modelos Bielas-Tirantes. Porto: 5º Encontro
Nacional de Betão Estrutural, 1994.
- PUCCINI, ABELARDO DE LIMA; PIZZOLATO, NELIO
DOMINGUES- Programação linear. Rio de Janeiro: Livros Técnicos e
Científicos Editora, 1987.

- 113 -
INVESTIGAÇÃO OPERACIONAL

- RAMALHETE, MANUEL; GUERREIRO, JORGE; MAGALHÃES,


ALÍPIO - Programação Linear, volume I. Lisboa: Editora McGraw-Hill de
Portugal, 1984.
- TAVARES, L. VALADARES ; OLIVEIRA, RUI CARVALHO ;
THEMIDO, ISABEL HALL ; CORREIA, F. NUNES - Investigação
Operacional. 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 of
Everything). London: Longman Sientific & Technical, 1991.
- VANDERPLAATS, GARRET N. - Numerical Optimization Techniques
for Engineering Design. New York: McGraw-Hill Book Company, 1984.
- WINSTON, WAYNE L. - Operations Research (Applications and
Algorithms). Belmont: Wadsworth Publishing Company, 1994.

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

ANEXO

Soluções de alguns problemas propostos

-i-
INVESTIGAÇÃO OPERACIONAL

CAPÍTULO 2
2.1. x1 - nº de betoneiras grandes x2
x2 - nº de betoneiras pequenas
1

max. Z = 90x1 + 60x2 B


s.a
5x1 + 2x2 ≤ 180
3x1 + 3x2 ≤ 135 A (36 ; 0)
x1 , x2 ≥ 0 B (0 ; 90)
2 D C (45 ; 0)
Solução óptima: E (30 ; 15)
D (0 ; 45)
x1 = 30 un.
x2 = 15 un.
Z = 3600 contos E

C x1
O A

2.2. x1 - nº de azulejos A
x2 - nº de azulejos B

max. Z = 30x1 + 65x2 x2


s.a 3

0.03x1 + 0.02x2 ≤ 1160 1

0.02x1 + 0.06x2 ≤ 1100


x1 ≤ 36000
x2 ≤ 14000
x1 , x2 ≥ 0
2

Solução óptima: 4

x1 = 34000 un. x1
x2 = 7000 un. O
Z = 1475000 escudos

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

x2
2.3. x1 - nº de vivendas 2
1
x2 - nº de apartamentos
4

max. Z = 7850x1 + 4000x2


s.a
3.6x1 + x2 ≤ 1800
x1 ≥ 200
x2 ≥ 100
18x1 + 11x2 ≤ 12240
x1 , x2 ≥ 0

Solução óptima:
x1 = 350 un.
x2 = 540 un.
Z = 4907500 contos 3

O x1

x2
2.4. x1 - peso de produto 1
x2 - peso de produto 2

min. Z = 300x1 + 1000x2


s.a
200x1 + 400x2 ≥ 240
23x1 + 6x2 ≤ 20
x1 , x2 ≥ 0

Solução óptima:
x1 = 0.82 kg 1

x2 = 0.19 kg
Z = 436 escudos

x1
O 2

- iii -
INVESTIGAÇÃO OPERACIONAL

2.5. x1 - nº de portas x2
x2 - nº de janelas
1

max. Z = 12x1 + 9x2 3

s.a
x1 ≤ 3
x2 ≤ 5
4x1 + 3x2 ≤ 24
x1 , x2 ≥ 0 2

Soluções óptimas:
x1 = 3 un. e x2 = 4 un. ou
x1 = 2.25 un. e x2 = 5 un. ou
combinações lineares das duas. x1
Z = 72 contos O

2.6. x1 - aditivo "normal"


x2 - aditivo "extra" x2
max. Z = 1400x1 + 1700x2
s.a 1

x1 + x2 ≤ 800
2x1 + 3x2 ≤ 1920
x1 + x2 ≥ 240 2
5

x1 − 4x2 ≤ 0
x1 − x2 ≥ 0
x1 , x2 ≥ 0 3

Solução óptima:
x1 = 480 un.
x2 = 320 un.
Z = 1216000 escudos x1
O

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

2.7. x1 - nº de camiões modelo "A"


x2 - nº de camiões modelo "B"

max. Z = x1 + 1.4x2 x2
s.a 6

8x1 + 12x2 ≤ 1000


2

x1 + x2 ≤ 110
20x1 + 40x2 ≥ 2000 1

x1 − 3x2 ≤ 0 3

x1 ≥ 35 4

x2 ≥ 25 5

x1 , x2 ≥ 0
Solução óptima:
x1 = 80 un. x1
O
x2 = 30 un.
Z = 122

2.8. x1 - % da liga 1
x2 - % da liga 2 x2
min. Z = 38x1 + 40x2 7
2
s.a
2x1 + 2.5x2 ≥ 1.8
6

2x1 + 2.5x2 ≤ 2.5


4
3

x1 + 1.5x2 ≥ 0.9
x1 + 1.5x2 ≤ 1.2
3x1 + 4x2 ≥ 3.2
3x1 + 4x2 ≤ 3.5
290x1 + 345x2 ≥ 310 x1
x1 , x2 ≥ 0 O 1 5

Solução óptima:
x1 = 0.567
x2 = 0.422
Z = 38.422 escudos

-v-
INVESTIGAÇÃO OPERACIONAL

2.9. x1 - lixo a incinerar em 1


x2 - lixo a incinerar em 2
x2
min. Z = 8300x1 + 12450x2 3
1
s.a
x1 + x2 = 50
x1 ≥ 15
x1 ≤ 40 4
x2 ≤ 40
x1 , x2 ≥ 0
2

Solução óptima: x1
x1 = 35 ton. O
x2 = 15 ton.
Z = 477250 escudos

2.10. x1 - caudal do furo 1


x2 - caudal do furo 2

min. Z = 34x1 + 38x2 x2


s.a 1 2

x1 + x2 ≥ 75
x1 ≤ 65
x2 ≤ 45
x1 + x2 ≤ 80
−x1 + 3x2 ≥ 0 5 3

x1 , x2 ≥ 0

Solução óptima: x1
x1 = 56.25 m3/h O
4
x2 = 18.75 m3/h
Z = 2625 escudos

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

2.11. x1 - peso de varão tipo 1


x2 - peso de varão tipo 2
x2
min. Z = 71x1 + 80x2 3

s.a
20x1 + 18x2 ≤ 6000
1

20x2 ≤ 1800
x1 ≤ 250
x2 ≤ 140 4

x1 , x2 ≥ 0 2
x1
O
Solução óptima:
x1 = 219 ton.
x2 = 90 ton.
Z = 22749 contos

x2
2.12. x1 - área habitacional
x2 - área comercial 5

3
max. Z = 150x1 + 250x2
s.a
x1 + x2 ≤ 10000
x1 − 2x2 ≥ 0
x1 + x2 ≥ 8000
x1 − 4x2 ≤ 0 2

x1 ≥ 6000
x1 , x 2 ≥ 0
4

Solução óptima:
x1 = 6666.67 m2
x2 = 3333.33 m2 x1
Z = 1833333.33 contos O

- vii -
INVESTIGAÇÃO OPERACIONAL

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

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

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

- ix -
INVESTIGAÇÃO OPERACIONAL

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

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

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

- xi -

You might also like