Você está na página 1de 202

m

um
ub
et
o8
@
gm

Alberto Mulenga
ai
l.c
om
i

Investigação Operacional
uma abordagem introdutória
Autor: Alberto Chicafo Mulenga
Local: Maputo, Moçambique
Data: 17 de Fevereiro de 2020

om
l.c
ai
gm
@
o8
et
ub
um
m
ii

Prefácio

Este livro de Investigação Operacional é um resumo de conteúdos que são leccionados


nos cursos de licenciatura de diversas áreas do conhecimento como Administração e
Gestão de Empresas, Contabilidade e Auditoria, Economia, Engenharias, Estatı́stica,
Informática, Mátemática, entre outras. Esta versão basicamente tem conteúdos rela-
cionados à Programação linear. Assim, a definição da investigação operacional sua
carcaterização, os métodos gráfico e simplex com as variantes do método simplex de
duas fases, método simplex de Grande M e o método simplex dual-simplex, dualidade
em progrmação linear, análise de sensibilidade em programação linear, programação
linear inteira e problemas de transporte e de afectação, constituem os conteúdos deste

om
livro. Estes temas actualmente constituem os fundamentos da programação linear
onde o objectivo principal é a optimização das soluções empresariais no processo de

l.c
tomada de decisão tanto na alocação de recursos como para a minimização dos custos
em possı́veis investimentos. Em cada capı́tulo são apresentados os conceitos teóricos
ai
com exemplos ilustrativos fazendo um total de 62 exemplos. No fim de cada capı́tulo é
gm
apresentada uma lista de exercı́cios propostos com indicação de soluções num total de
64 exercı́cios. No final do livro, estão algumas referências que os leitores poderão ler
@

para aprofundar os seus conhecimentos.


o8

Mulenga
et

Maputo, 17 de Fevereiro de 2020


ub

Typeset by LATEX 2ε
um
m
Conteúdo

1 Introdução 1
1.1 Definição de Investigação Operacional . . . . . . . . . . . . . . . . . . . 1

om
1.2 Caracterı́sticas da investigação operacional . . . . . . . . . . . . . . . . 4
1.3 Técnicas da investigação operacional . . . . . . . . . . . . . . . . . . . 6

2 Programação linear
l.c 9
ai
2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
gm
2.1.1 Formulação dos problemas de programação linear . . . . . . . . 10
2.1.2 Definição geral dos problemas de programação linear . . . . . . 16
@

2.1.3 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . 16


o8

2.2 Resolução dos problemas de programação linear pelo método gráfico . . 21


et

2.2.1 Domı́nio das soluções admissı́veis . . . . . . . . . . . . . . . . . 21


ub

2.2.2 Procedimento do método gráfico . . . . . . . . . . . . . . . . . . 28


2.2.3 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . 32
um

2.3 Resolução dos problemas de programação linear pelo método simplex . 34


2.3.1 Variáveis de folga e de excesso . . . . . . . . . . . . . . . . . . . 34
m

2.3.2 Procedimento do método simplex . . . . . . . . . . . . . . . . . 36


2.3.3 Método simplex de duas fases . . . . . . . . . . . . . . . . . . . 43
2.3.4 Método simplex de grande M . . . . . . . . . . . . . . . . . . . 52
2.3.5 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . 62

3 Dualidade em programação linear 66


3.1 Transformação do problema primal para dual . . . . . . . . . . . . . . 66
3.2 Interpretação económica das variáveis duais . . . . . . . . . . . . . . . 70
3.3 Relações entre os valores óptimos do primal e do dual . . . . . . . . . . 72

iii
CONTEÚDO iv

3.4 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

4 Análise de sensibilidade em programação linear 84


4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.1.1 Propriedades operacionais entre o primal e dual . . . . . . . . . 85
4.1.2 Método simplex dual - simplex . . . . . . . . . . . . . . . . . . 89
4.2 Variação nas quantidades dos recursos . . . . . . . . . . . . . . . . . . 94
4.3 Variação nos coeficientes da função objectivo . . . . . . . . . . . . . . . 101
4.4 Variações nos coeficientes das actividades . . . . . . . . . . . . . . . . . 105
4.5 Adição de uma nova variável . . . . . . . . . . . . . . . . . . . . . . . . 108
4.6 Adição de uma nova restrição . . . . . . . . . . . . . . . . . . . . . . . 109

om
4.7 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

5 Programação linear inteira 118


5.1 Introdução . . . . . . . . . . . . . . . . .
l.c
. . . . . . . . . . . . . . . . . 118
5.2 Método de Bifurcação e Limite . . . .
ai
. . . . . . . . . . . . . . . . . . 122
gm
5.3 Método de Corte de Gomory . . . . . . . . . . . . . . . . . . . . . . . . 134
5.4 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
@
o8

6 Problemas de transporte e afectação 145


6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
et

6.1.1 Formulação de um problema de transporte . . . . . . . . . . . . 146


ub

6.1.2 Métodos para a resolução do problemas de transporte . . . . . . 151


um

6.2 Derminação da primeira aproximação de solução . . . . . . . . . . . . . 151


6.2.1 Método do canto noroeste . . . . . . . . . . . . . . . . . . . . . 151
m

6.2.2 Método de custo mı́nimo (lúcro máximo) . . . . . . . . . . . . . 155


6.2.3 Método de aproximação de Vogel . . . . . . . . . . . . . . . . . 159
6.3 Teste e melhoramento de solução . . . . . . . . . . . . . . . . . . . . . 166
6.3.1 Método de MODI para o teste de optimidade de solução . . . . 167
6.3.2 Método de Stepping Stone para o teste de optimidade de solução 168
6.3.3 Procedimento para o melhoramento de solução . . . . . . . . . . 168
6.4 Problemas de afectação e o método Húngaro . . . . . . . . . . . . . . . 177
6.5 Exercı́cos propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

7 Programação Dinámica 194


CONTEÚDO v

Bibliografia 195

om
l.c
ai
gm
@
o8
et
ub
um
m
Capı́tulo 1

Introdução

om
1.1 Definição de Investigação Operacional

l.c
O nome “Investigação Operacional (IO)”, apareceu pela primeira vez durante a Se-
ai
gunda Guerra Mundial, quando equipas de investigadores procuravam desenvolver
gm
métodos para resolver determinados problemas de operações militares. Precisamente
na Inglaterra, entre 1939-1945, pela necessidade militar de solucionar problemas re-
@

lacionados a estratégias logı́stico-tácticas tais como: melhor distribuição de radares,


o8

dimensionamento de frotas, alimentação das tropas, manutenção e inspecção de aviões


et

entre outras actividades. O sucesso destas aplicações levou o mundo académico e


ub

empresarial a procurar utilizar as técnicas criadas em problemas de administração.


Segundo Ackoff (1968), por volta de 1950 a investigação operacional ou Operations
um

Research (Britânico), Management Science (Americano) e Pesquisa Operacional (Bra-


sileiro), já era reconhecida como objecto de estudo nas universidades e no mundo
m

académico.

Churchman (1971), no seu livro intitulado conceitos básicos dos sistemas e orga-
nizações, considerou a investigação operacional, como a aplicação de instrumentos,
técnicas e métodos cientı́ficos a problemas referentes ao funcionamento de um sistema,
permitindo que os encarregados do seu controle, alcancem soluções óptimas para tais
problemas. Segundo Richard (1974), a investigação operacional é uma aplicação sis-
temática da abordagem cientı́fica à investigação de problemas operacionais existentes
ou previstos que requerem decisões pelos administradores. Actualmente, a investigação

1
Investigação Operacional

operacional é considerada como o ataque da ciência moderna a problemas complexos,


como consequência da administração de grandes sistemas de homens, máquinas, ma-
teriais e dinheiro.

De um modo geral, a investigação operacional tem em vista trabalhar com facto-


res inter-relacionados, aplicando sobre estes um conjunto de diferentes métodos ou
técnicas quantitativas para com um bom censo possı́vel resolver os problemas empre-
sariais ao nı́vel da administração.

A investigação operacional pode ser definida como:

om
1. A arte de dar respostas óptimas a problemas que tratados de outra forma teriam
respostas piores. (Uso da informação para a tomada de decisão).

l.c
2. O bom censo expresso em termos quantitativos.(Partindo da solução matemática
ai
procura se tomar uma decisão viável).
gm
3. Ciência da preparação das decisões. (Uso do método cientı́fico para a tomada de
decisão).
@
o8

4. A aplicação do método cientı́fico à direcção de uma empresa ou projecto, visando


et

a optimização de suas decisões ou polı́ticas, etc. (Uso do método cientı́fico justi-


ficado pelo emprego de técnicas quantitativas para a tomada de decisão viável).
ub

A abordagem mais caracterı́stica da investigação operacional, consiste em procurar


um

desenvolver um modelo cientı́fico do sistema em estudo, incorporando a medição


m

ou quantificação de factores, tendo em conta as alternativas de decisão, as restrições


impostas pelos recursos disponiveis para alcançar um determinado objectivo. Deve-se
estar bem claro de que o objectivo da investigação operacional é ajudar ao gestor a
estabelecer suas linhas de acção de maneira cientı́fica, como resultado do emprego do
método quantitativo, para equacionar e solucionar os problemas existentes ao nı́vel
empresarial ou qualquer outro grau de uma organização.

A investigação operacional tem sido vista pelos gestores e outros utilizadores sob dois
enfoques diferentes quanto à abordagem, mas coerentes e complementares na aplicação
do processo de resolução de problemas empresariais.

Mulenga 2 2020
Investigação Operacional

(a) Enfoque clássico – busca da solução óptima. O investigador nesta aborda-


gem tem um conjunto de variáveis quantitativas, ele faz relações funcionais ou sistema
de equações, resolve e obtém uma solução óptima.

(b) Enfoque actual – busca de solução viável. O investigador nesta aborda-


gem usa modelos para identificação correcta do problema. Aqui são consideradas
tanto variáveis quantitativas como qualitativas, o investigador relaciona as variáveis
e produz modelos económico-matemáticos. Dos modelos derivam – se alternativas de
solução e finalmente é escolhida uma destas alternativas como solução viável para o
problema.

om
l.c
ai
gm
@
o8
et
ub
um
m

Figura 1.1: Enfoques da investigação operacional

Pela natureza da investigação operacional muitas definições de investigação operacio-


nal podem ser feitas, muitas delas estarão correctas se tiverem argumentos aceitáveis.
Deve-se salientar que historicamente o sucesso da investigação operacional sempre ficou
relacionado com:

• A aplicação do método cientı́fico

Mulenga 3 2020
Investigação Operacional

• A abordagem por equipa e inter - disciplinar

• O envolvimento no controlo e organização dos problemas dos sistemas constitui-


dos por pessoas, máquinas, recursos para a obtenção de soluções óptimas

1.2 Caracterı́sticas da investigação operacional


As principais caracterı́sticas da investigação operacional são:

• Abordagem por equipa: consiste no uso de conhecimentos cientı́ficos por equipes


inter-disciplinares, isto é, formação de conjuntos e subconjuntos de equipes entre o

om
pessoal técnico, treinado, mestres, especialistas, etc. de várias áreas de conhecimento
para fazer um esforço conducente a determinação da melhor forma de utilização de

l.c
recursos limitados. Esta caracterı́stica multi-disciplinar de resolver os problemas or-
ai
ganizacionais deu um novo enfoque a investigação operacional – a visão sistémica dos
gm
problemas.
@

• Visão sistémica: o estudo da Investigação Operacional consiste em construir um


o8

modelo de um sistema real existente como meio de analisar e compreender o compor-


tamento de uma determinada situação. Esta visão é actualmente a mais importante
et

da tendência da administração. O método da visão sistémica também consiste em


ub

considerar a empresa ou cada parte da mesma como um sistema com várias variáveis
um

inter-relacionadas. O sistema aqui considerado pode existir ou pode estar em con-


cepção. No primeiro caso, o objectivo do estudo tem sido de analisar o desempenho
m

do sistema para escolher um curso de acções no sentido de aprimorá-lo. No segundo


caso, o objectivo é identificar a melhor estrutura do futuro sistema.

• Uso de modelos matemáticos mais formais: a Investigação Operacional através


das técnicas estatı́sticas ou quantitativas em geral procura-se no processo de análise de
decisão perceber a estrutura real em análise pela representação de informações e suas
inter-relações procurando sempre criar um modelo padrão das relações e respectivas
soluções dos problemas empresariais,

• Busca da solução óptima: consiste em seleccionar a alternativa que melhor con-

Mulenga 4 2020
Investigação Operacional

duzirá a maximização dos lucros ou minimização dos custos como primeira visão dos
administradores sem precisar saber os nı́veis de satisfação das diferentes especificida-
des da organização.

• Emprego de simulação sobre os modelos: consiste em imitar o funcionamento


de um sistema real, que não pode ser compreendido tal como está, recorrendo a uma
representação adequada para fins experimentais ou de estudo do sistema real, desde
que o sistema real seja determinı́stico e não estocástico.

O desenvolvimento dos computadores digitais, face a sua velocidade de processa-


mento, capacidade de armazenamento e recuperação de informações, constituiu um

om
imenso progresso da Investigação Operacional. Outro facto que actualmente contribuı́
para o uso intensivo de modelos em análise de decisões é a disseminação dos micro-

l.c
computadores, que se tornaram unidades de processamentos descentralizados dentro
ai
das empresas, o que leva aos profissionais da investigação operacional num trabalho
gm
conjunto com os informáticos a desenvolverem softwares apropriados e modelos mais
versáteis, rápidos e interactivos.
@
o8

Apesar das fases não serem seguidas rigosamente, em geral, e segundo Andrade (1998)
e Taha (2003), um trabalho de Investigação Operacional, deve desenvolver-se seguindo
et

as seguintes fases:
ub

1. Definição do problema
um

2. Construção do modelo
m

3. Solução do modelo

4. Validação do modelo

5. Implementação da solução

1. Definição do problema. A definição do problema baseia-se em três aspectos


principais: a descrição exacta dos objectivos do estudo; a identificação das alternati-
vas de decisão existentes; o reconhecimento das limitações, restricções e exigências do
sistema. A descrição dos objectivos é uma das actividades mais importantes em todo
o processo do estudo, pois, a partir dela é que o modelo é concebido.

Mulenga 5 2020
Investigação Operacional

2. Construção do modelo. Consiste na elaboração de um modelo para a solução


do problema, relacionando todas as informações ou variáveis associadas ao problema.
O modelo elaborado pode estar na forma padrão já conhecida ou completamente nova
por conceber.

3. Solução do modelo. Como a solução do problema pode ser obtida por terceiros,
nesta fase é necessário analisar todos os procedimentos mais adequados, em termos
do método proposto, rapidez de processamento e precisão da resposta para a solução
do problema e escolhar aquela alternativa que satisfaz os objectivos organizacionais.
Deve-se tomar atenção que mesmo sabendo o conceito e significado de solução viável,
para muitos tomadores de decisão a tendência de chamar solução óptima é patente.

om
4. Validação do modelo. Nesta fase do processo de solução, verifica-se a validade

l.c
do modelo. Um modelo é válido se ele for capaz de fornecer uma previsão aceitável do
ai
comportamento do sistema. Um método comum para testar a validade de um sistema
gm
é analisar seu desempenho com dados passados do sistema e verificar se ele consegue
reproduzir o comportamento que o sistema apresentou.
@
o8

5. Implementação da solução. A implementação, por ser uma actividade que


altera uma situação existente, é uma das etapas crı́ticas do estudo. É conveniente
et

que seja controlada pela equipa responsável, pois, eventualmente os valores da nova
ub

solução quando levados à práctica, podem demonstrar a necessidade de correcções nas


um

relações funcionais do modelo como um todo, exigindo a reformulação do modelo em


algumas das suas partes.
m

1.3 Técnicas da investigação operacional


A descrição sobre o conjunto das técnicas que compõem a investigação operacional,
não tem uma uniformidade. Assim, encontram-se técnicas designadas como teorias,
métodos ou modelos e vice-versa. Além disso, em cada uma das categorias, uma deter-
minada técnica aparece com vários tı́tulos diferentes; várias técnicas diferentes podem
aparecer com o mesmo tı́tulo, e mesmo o nome investigação operacional aparece inse-
rido numa outra categoria, por exemplo métodos quantitativos.

Mulenga 6 2020
Investigação Operacional

Entre muitos autores, destacam-se Quesnay (1759), Walras (1874), Markov (1856 –
1922), von Neumann (1937), Kantorovich (1939), Wicks e Yewdale (1971), Ackoff
(1971), Duckworth (1972), etc., que contribuı́ram significativamente na divisão da In-
vestigação Operacional em diversas categorias.

O critério usado na sucinta descrição foi o de tratar em separado, quando possı́vel, as


várias técnicas, teorias, métodos e modelos que precisamente são discutidas em muitas
áreas do conhecimento cientı́fico.

1. Estatı́stica matemática: que inclui a teoria das probabilidades e estatı́stica.

om
2. Teoria de informação e apoio à decisão: inclui os tópicos relacionados com a
análise de decisão, teoria de jogos, problemas das filas de espera, gestão de estoques,

l.c
planeamento e controlo de projectos, etc. ai
3. Programação matemática: inclui a programação linear, inteira, dinâmica, não
gm
linear, problemas de transporte e distribuição ou afectação de recursos, etc.
4. Simulação e método de Monte Carlo: que inclui a análise da dinâmica indus-
@

trial, análise de redes, etc.


o8

Mesmo considerando que a análise quantitativa é importante para a tomada de de-


et

cisão, é necessário esclarecer aos utilizadores das técnicas ou métodos quantitativos,


ub

que nem todos os problemas são susceptı́veis de solução pelas técnicas quantitativas.
um

Uma aplicação bem-sucedida dos métodos quantitativos, requer uma interacção entre
as ciências matemáticas e as ciências do comportamento, pois, o sistema em estudo
m

interage com seres humanos, e:

• Nem todos factores de um dado problema podem ser quantificados quando se


tem variáveis qualitativas.

• Variáveis não controláveis podem dificultar ao máximo o processo de modelação


do problema, fazendo com que os modelos sejam menos perfeitos.

• O uso de números e de equações, dá uma aparência de exactidão cientı́fica e esta


tendência pode desviar o sentido da solução viável e mesmo de interpretação da
solução matemática.

Mulenga 7 2020
Investigação Operacional

• O desejo de confrontar demais os métodos quantitativos pode ser perigoso, pois,


chega-se a soluções matemáticas que carecem de uma interpretação social.

Tabela 1.1: Modelos de investigação operacional

Modelo Optimização linear Apoio à decisão

Ferramenta operacional Matemática Teoria de informação

Enfoque desejado Solução exacta Solução viável

Objectivo final Solução óptima Satisfazer os interesses

om
da organização

l.c
ai
gm
@
o8
et
ub
um
m

Mulenga 8 2020
Capı́tulo 2

Programação linear

om
2.1 Introdução

l.c
Desı́gna - se por programação linear (PL), um conjunto de técnicas que permitem re-
ai
solver os problemas de optimização, num sistema de recursos limitados, sendo lineares,
gm

quer a função objectivo, quer as restrições.


@

A importância especial da programação linear, resulta não só das potencialidades dos
o8

seus algorı́tmos de resolução e da sua grande diversidade de aplicação, mas também,


et

da sua génese de estar directamente relacionada com o desenvolvimento dos próprios


ub

conceitos fundamentais das teorias de optimização das soluções de problemas empre-


sariais. Os principais desenvolvimentos teóricos da programação linear são devidos
um

a Kantorovich (1939) e a um grupo de cientı́stas americanos que lançaram as bases


da programação linear entre 1939 à 1951, onde Dantzig (1947)1 . publicou o método
m

simplex e von Neuman (1947) desenvolveu a teoria da dualidade.

A programação linear lida-se com problemas que dizem respeito à atribuição e a dis-
tribuı́ção de recursos entre as diversas tarefas ou actividades que devem ser realizadas.
Normalmente, os recursos disponı́veis não são suficientes para que todas as actividades
sejam executadas no nı́vel desejado. Assim, o que se procura, é encontrar a melhor
distribuição possı́vel dos recursos, de forma a atingir um valor óptimo objectivo que
pode ser a maximização dos lúcros ou a minimização dos custos.
1
George Dantzig (1914-2005), Matemático de Oregon - Estados Unidos da America

9
Investigação Operacional

Assim, um problema de programação linear é caracterizado por três elementos básicos:

1. Variáveis de decisão: todo o problema de programação linear deve ter variáveis


de decisão, que são o centro das atenções na resolução do problema.

2. Função objectivo: os problemas empresariais são formulados em função de um


objectivo que mode ser de maximização dos lucros ou minimização dos custos.
Em programação linear o objectivo é expresso em termos das variáveis de decisão.

3. Um conjunto de restrições: como as empresas utilizam recursos para produzir


quantidades de produtos, é evidente que haja restrições relacionadas à utilização
destes recursos, tanto em relação às quantidades disponı́veis como em relação a

om
forma de emprego.

l.c
Os estudos de programação linear permitem responder questões como:
ai
• “... sendo conhecidas certas condições de produção, qual é a quantidade de um
gm
determinado produto, entre vários, que se deve produzir para obter o maior lucro
possı́vel?”
@

• “... sendo impostas algumas especificações, qual é a composição da mistura que


o8

corresponde ao custo mı́nimo?”


et

• “... estando impostas as condições de trabalho, como repartir o conjunto de


ub

mão-de-obra entre as diferentes tarefas e especialidades dos funcionários, com o


um

objectivo de minimizar as despesas ou maximizar a eficiência?”


m

2.1.1 Formulação dos problemas de programação linear


Exemplo 2.1. Uma companhia de montagem de lâmpadas, usa dois modelos para a
montagem: o modelo actual automático e o modelo antigo com acessoria. Cada pessoa
no modelo actual requer 1 hora de trabalho se vier do departamento de corte e 3 horas
se vier do departamento de verificação. No modelo antigo, cada pessoa necessita de
2 horas de trabalho, se vier do departamento de corte e 4 horas de trabalho se for do
departamento de verificação. O número máximo de horas de trabalho para o departa-
mento de corte é de 32, enquanto no departamento de verificação é de 84 horas. Se a
companhia recebe um lucro de 50 unidades de medida (u.m.) por cada lâmpada vinda

Mulenga 10 2020
Investigação Operacional

do modelo actual e 80 unidades de medida por cada lâmpada vinda do modelo antigo,
quantas lâmpadas devem ser produzidas em cada modelo de modo que a companhia
maximize o lucro?

Resolução
Este é um exemplo tı́pico de um problema de programação linear. Para tornar claro, as
relações entre o objectivo e as restrições, é necessário apresentar esta informação numa
tabela. O método usado para a formulação dos problemas de programação linear tem
uma determinada lógica, ainda que esta não seja rigorosamente seguida, comecando
pela análise qualitativa da informação ou problema.

om
Análise qualitativa do problema. Esta análise depende da experiência adqui-
rida anteriormente, isto é, a sensibilidade de analisar e relacionar a informação que

l.c
geralmente apresenta-se uma tabela. ai
Tabela 2.1: Análise qualitativa da informação do problema das lámpadas
gm

Departamento Horas de trabalho por pessoa Número máximo de


@
o8

Modelo actual Modelo antigo horas de trabalho


et

De corte 1 2 32
ub

De verificação 3 4 84
um

Lúcro unitário 50 80 -
m

Identificação das caracterı́sticas dos problemas de programação linear. Nesta


etapa, depois de relacionar a informação na Tabela 2.1, começa-se a identificação dos
elementos fundamentais de um modelo de programação linear.

Variáveis de decisão: seja x1 o número de lâmpadas produzidas no modelo ac-


tual por dia e x2 o número de lâmpadas produzidas no modelo antigo por dia.

Função objectivo: o objectivo da companhia é decidir quantas lâmpadas são ne-


cessárias produzir por dia para cada modelo, de modo que ela tenha o máximo lúcro

Mulenga 11 2020
Investigação Operacional

diário. A função lúcro deste problema ou função objectiva é: L = 50x1 + 80x2 . Repare
que a função lúcro está ligada aos valores monetários do problema, última linha da
tabela.

Conjunto de restrições: restrições são inequações ou equações que representam as


relações entre as quantidades produzidas, o número de horas necessárias para produ-
zir uma unidade de cada produto considerando a disponibilidade máxima do recurso.
Assim, tem-se:
• A restrição para o departamento de corte: 1x1 + 2x2 ≤ 32
• A restrição para o departamento de verificação: 3x1 + 4x2 ≤ 84
• Como não podem ser produzidas quantidades negativas de lâmpadas, adiciona-se as

om
restrições de não negatividade: x1 ≥ 0 e x2 ≥ 0 ou usualmente x1 , x2 ≥ 0.

l.c
Elaboração do modelo económico matemático: consiste na indicação das relações
ai
entre as variáveis de decisão, a função objectivo e as restrições como um todo. Partindo
gm
das situações anteriores, escreve-se o modelo matemático do problema de programação
linear. Note que modou-se de L para Z por conveniência.
@

maximizar Z = 50x1 + 80x2


o8

 1x + 2x2 ≤ 32
 1

et


sujeito à 3x1 + 4x2 ≤ 84
ub



x1 , x2 ≥ 0


um

Qualquer par de valores de x1 e x2 que satisfaz todas as restrições do modelo é uma


m

solução possı́vel ou admissı́vel.

Caso 1. Se x1 = 0 e x2 = 0 o valor de Z será igual a zero, Z = 50 ∗ 0 + 60 ∗ 0 = 0.


Como não viola nenhuma das restrições, esta é uma solução possv́el.

Caso 2. O par de valores x1 = 2 e x2 = 5 também é uma solução possı́vel, poı́s,


não viola nenhuma das restrições incluindo as de não negatividade. Para verificar
basta substituir em cada uma das restrições:
Na primeira restrição: 1 × 2 + 2 × 5 = 12 < 32, verdadeiro.
Na segunda restrição: 3 × 2 + 4 × 5 = 26 < 84, verdadeiro.

Mulenga 12 2020
Investigação Operacional

O lúcro possı́vel para esta solução é: Z = 50 × 2 + 80 × 5 = 500 unidades de medida.

Caso 3. O par de valores x1 = 8 e x2 = 13 tem Z = 1440. As restrições de não nega-


tividade são satisfeitas porque os valores são positivos. Mas, deve-se verificar também
nas restrições. Na primeira restrição tem-se: r1 = 1×8+2×13 = 8+26 = 34 < 32 não
é verdadeiro, mas na segunda restrição temos: r2 = 3 ∗ 8 + 4 ∗ 13 = 24 + 52 = 76 < 84
é veradeiro. Como a primeira restrição não é satisfeita o par (8, 13) com Z = 1440,
não é solução viável.

Variando os valores a atribuir as variáveis de decisão, pode-se encontrar outra solução


admissı́vel, entretanto o objectivo da optimização linear é encontrar entre todas as

om
soluções possı́veis, uma solução óptima possı́vel. Para que o processo não seja
por tentativas, existem métodos especı́ficos que são usados para encontrar as soluções

l.c
óptimas. Para o exemplo 2.1, a solução óptima é: x1 = 20; x2 = 6 com Zmax = 1480.
ai
gm
Ora vejamos a verificação nas restrições:
Primeira restrição r1 = 1 × 20 + 2 × 6 = 20 + 12 = 32(= 32) o máximo do rescurso 1.
@

Segunda restrição r2 = 3 × 20 + 4 × 6 = 60 + 24 = 84(= 84) o máximo do recurso 2.


o8

Na função objectiva Zmax = 50 × 20 + 80 × 6 = 1000 + 480 = 1480.


et

No exemplo 2.1 anterior, assumiu-se que tanto a função objectiva como as restrições
ub

são todas lineares. Intrinsecamente são utilizadas duas proposições.


um

Proposição 1. Proporcionalidade – nos modelos de programação linear, a contri-


m

buição das variáveis de decisão na função objectivo e nas restrições é directamente


proporcional aos valores que as variáveis assumem.

Proposição 2. Aditividade – a contribuição total de todas as variáveis na função


objectivo e em cada restrição é igual a soma das contribuições individuais de cada
variável.

Exemplo 2.2. Um alfaiate tem disponı́vel 16 m2 de algodão, 11 m2 de seda e 15


m2 de lâ. A confecção de um fato necessita de 2 m2 de algodão, 1 m2 de seda e 1
m2 de lã, e um vestido gasta 1, 2 e 3 m2 dos mesmos tecidos, respectivamente. Se

Mulenga 13 2020
Investigação Operacional

um fato é vendido à 30 unidades de medida (u.m.) e um vestido por 50 u.m., quantas


unidades de cada artigo fato ou vestido deve o alfaiate confeccionar de modo a obter
maior lúcro?
Tabela 2.2: Informação do problema de alfaiate

Tecidos Artigos Quantidade


Fato Vestido Disponı́vel

Algodão 2 1 16
Seda 1 2 11

om
Lã 1 3 15

Preço de venda 30 50 -

l.c
ai
gm
O modelo económico matemático correspondente é:
maximizar Z = 30x1 + 50x2
@


 2x1 + 1x2 ≤ 16
o8




1x1 + 2x2 ≤ 11


sujeito à
et



 1x1 + 3x3 ≤ 15
ub



x1 , x2 ≥ 0


um

Exemplo 2.3. Um indivı́duo pretende fazer uma selecção de um conjunto de 5 ali-


mentos básicos. Por forma a conseguir estruturar uma dieta que, do ponto de vista
m

nutritivo, tenha como normas mı́nimas de calorias e vitaminas, respectivamente de 70


e 50 unidades, gastando o mı́nimo possı́vel. Os preços de venda dos alimentos, bem
como a sua composição em elementos nutritivos são dados pelo seguinte quadro.

Elemento Alimentos básicos


nutritivo A B C D E
Calorias 1 0 1 1 2
Vitaminas 0 1 0 1 1
Custo unitário 2 20 3 11 12

Mulenga 14 2020
Investigação Operacional

O modelo económico matemático correspondente ao problema é:


minimizar W = 2x1 + 20x2 + 3x3 + 11x4 + 12x5
 1x1 + 0x2 + 1x3 + 1x4 + 2x5 ≥ 70



sujeito à 0x1 + 1x2 + 0x3 + 1x4 + 1x5 ≥ 50


x ,x ,x ,x ,x ≥ 0


1 2 3 4 5

Exemplo 2.4. Um agricultor precisa de 100 kg de Azoto, 120 kg de Fósforo e 120 kg


de Potássio, para adubar a sua plantação. Ele tem duas possibilidades no mercado,
sendo uma na forma lı́quida em tambores que contém 50 kg deAzoto, 20 kg de Fósforo
e 10 kg de Potássio ao preço de 30 u.m cada; outra empresa fornece adubo em sacos,

om
contendo 10, 20 e 40 kg de Azoto, Fósforo e Potássio, respectivamente, ao preço de 20
u.m cada saco. Quantas embalagens de cada fonte deverá o agricultor comprar para

l.c
suprir as suas necessidades pelo menor custo.
ai
gm
Tabela 2.3: Informação do problema de adubo
@

Composição Possibilidades do mercado Necessidades


o8

do abudo Tambor Saco mı́nimas


et

Azoto 50 10 100
ub

Fóstoro 20 20 120
um

Potássio 10 40 120
m

Custo unitário 30 20 -

O modelo matemático correspondente é:


minimizar W = 30x1 + 20x2


 50x1 + 10x2 ≥ 100


20x1 + 20x2 ≥ 120


sujeito à


 10x1 + 40x2 ≥ 120


x1 , x2 ≥ 0

Mulenga 15 2020
Investigação Operacional

2.1.2 Definição geral dos problemas de programação linear


Os problemas de optimização linear (programação linear), podem ser representados
na forma:

maximizar Z = c1 x1 + c2 x2 + ... + cm xm


 a11 x1 + a12 x2 + ... + a1m xm ≤ b1


a21 x1 + a22 x2 + ... + a2m xm ≤ b2





sujeito à ...


an1 x1 + an2 x2 + ... + anm xm ≤ bn






x1 , x2 , ..., xm ≥ 0

om
Admite-se que, em lugar de maximizar, haja minimizar, e em lugar de menor ou igual

l.c
(≤) seja maior ou igual (≥) ou mesmo igual (=). ai
gm
Assim, para os problemas com restrições onde existe um recurso máximo disponı́vel
usa-se o sinal (≤) e para os problemas onde no recurso existe uma quantida minima
@

desejável usa-se o sinal (≥). Se uma ou mais restrições apresentar o sinal de igualdade
o8

(=), esta pode ser substituida por duas inequações, em seguida uma das inequações
deverá ser multiplicada por (-1), caso seja necessário, para satisfazer a função objec-
et

tivo.
ub


 2x + 3x ≤ 4
1 2
Por exemplo: 2x1 + 3x2 = 4 equivale a escrever o sistema
um

 2x + 3x ≥ 4
1 2
m

2.1.3 Exercı́cios propostos


Exercı́cio 2.1. Um padeiro dispõe de 150, 90 e 150 unidades dos ingredientes A, B
e C respectivamente. Cada pão necessita de 1 unidade de A, 1 de B e 2 de C, e um
bolo precisa de 5, 2 e 1 unidades de A, B e C, respectivamente. Se um pão é vendido
a 35 u.m., e um bolo é vendido por 80 u.m. Como deve o padeiro distribuir a matéria
prima disponı́vel de modo a obter o maior lucro? Elabore o modelo matemático cor-
respondente a este problema de programação linear.

Exercı́cio 2.2. Cada kg do alimento A custa 85 u.m. e contém 2 unidades de

Mulenga 16 2020
Investigação Operacional

proteı́na, 6 unidades de hidrato de carbono e 1 unidade de gordura. O alimento B que


se pode comprar a 45 u.m. por kg, contém 1, 1 e 3 unidades, dos produtos A e B,
respectivamente. Supondo que as necessidades semanais mı́nimas de uma pessoa são
8 unidades de proteı́nas, 12 unidades de hidrato de carbono e 9 unidades de gordura.
Elabore o modelo económico matemático de forma que a pessoa economize os seus
gastos.

Exercı́cio 2.3. Certa empresa fabrica 2 produtos P1 e P2. O lúcro por unidade
de P1 é de 100 unidades de moeda e o lúcro unitário de P2 é de 150 unidades de
moeda. A empresa necessita de 2 horas para fabricar uma unidade de P1 e 3 horas
para fabricar uma unidade de P2. O tempo mensal disponı́vel para essas actividades

om
é de 120 horas. As demandas esperadas para os dois produtos levaram a empresa a
decidir que os montantes produzidos de P1 e P2 não devem ultrapassar 40 unidades

l.c
de P1 e 30 unidades de P2 por mês. Elabore o modelo do sistema de produção mensal
ai
que maximiza o lúcro da empresa.
gm

Exercı́cio 2.4. A empresa Sementes de Moçambique (SEMOC), pretende semear


@

arroz e milho, dispondo para tal de áreas que não excedem, respectivamente, 3 e 4
o8

hectares nos arredores de Boane. Por outro lado, as suas disponibilidades em trabalho
são apenas de 9 horas diárias. Admitindo que, por cada hectare semeado de arroz
et

é necessário 1 hora de trabalho diário e por cada hectare de milho são necessárias 2
ub

horas. Sabendo que por cada hectare de arroz semeado o lúcro é de 5 u.m. e por cada
um

hectare de milho 2 u.m, formule o problema como um problema de programação linear.


m

Exercı́cio 2.5. Dois paı́ses A e B, emprestam dinheiro a outro pais C. Por cada
X unidades monetárias concedidas pelo pais A, este cobra anualmente do pais C, uma
tonelada de cortiça, 5 toneladas de trigo e 3 toneladas de peixe. Por cada Y unidades
monetárias concedidas pelo paı́s B, são cobrados anualmente ao paı́s C, uma tonelada
de cortiça, 2 toneladas de trigo e 8 toneladas de peixe. Anualmente o pais C não tem
disponı́veis mais de 20 toneladas de cortiça, 100 toneladas de trigo e 120 toneladas de
peixe. Sabendo que por cada unidade monetária emprestada, o paı́s C recebe do paı́s
A 500 espingardas e do paı́s B 300 metralhadoras, formule o problema de programação
linear que maximiza o número de armas que C pode adquirir por este processo.

Mulenga 17 2020
Investigação Operacional

Exercı́cio 2.6. Uma companhia de aluguel de camiões possuı́ dois tipos de camiões:
o tipo A com 2 m3 de espaço refregerado e 4 m3 de espaço não refregerado e o tipo
B com 3 m3 de espaço refregerado e 3 m3 de espaço não refregerado. Uma fábrica de
produtos alimentı́cios precisou transportar 9 m3 de produto refregerado e 12 m3 de
produto não refrigerado. Quantos camiões de cada tipo devem ser alugados de modo
a minimizar o custo total, se o aluguel de um camião do tipo A é de 30 u.m por km e
do tipo B é de 40 u.m por km. Formule o problema de programação linear da fábrica
que necessita de transportar os seus produtos.

Exercı́cio 2.7. Uma pequena manufatura produz dois modelos de carteiras esco-
lares. O modelo padrão e o modelo de luxo dessas carteiras. Cada unidade do modelo

om
padrão requer 3 horas de lixação e 1 hora de polimento. Cada unidade do modelo de
luxo exige 1 hora de lixação e 4 horas de polimento. A fábrica dispõe de 2 lixadores e

l.c
3 polidores, cada pessoa trabalha 40 horas semanais. As margens de lucro são 24 e 32
ai
unidades monetárias, respectivamente, para cada unidade padrão e luxo. Não existem
gm
restrições de demanda para ambos os modelos. Elabore um modelo de programação
linear que permita calcular a produção semanal que maximiza a margem total de lúcro
@

do fabricante.
o8

Exercı́cio 2.8. Uma fábrica de imóveis dispõe de 6 placas de madeira e 28 horas


et

que poderá utilizar para fabricar biombos decorativos. No passado, houve dois mode-
ub

los de biombos que se venderam bastante bem, pelo que o fabricante já restringirá a
um

esses dois modelos. Segundo as suas estimativas, cada biombo do modelo I, requer 2
placas de madeira e 7 horas de mão – de – obra, enquanto que um biombo do modelo
m

II, requer uma placa de madeira e 8 horas de mão – de – obra. Os biombos são pro-
duzidos a um custo unitário de 80 e 50 meticais cada. O biombo do modelo 1 é mais
carro por isso é vendido a 120 meticais, enquanto o biombo do modelo II é vendido a
80 meticais. Usando as informações do texto, elabore o modelo económico matemático
como um problema de programação linear.

Exercı́cio 2.9. Uma fábrica de tintas produz dois tipos de tinta: uma tinta para
interiores e uma tinta para exteriores. Para isso, a fábrica recorre a dois tipos de
matéria prima A e B, que possuı́ 25 e 35 unidades de medida respectivamente, em
stock que não poderá ser reforçado ao longo do processo. Para produzir um litro de

Mulenga 18 2020
Investigação Operacional

tinta interior é necessário uma unidade de medida da matéria prima A e três unida-
des de matéria prima B. Para produzir um litro da tinta exterior é necessário duas
unidades da matéria prima A e 4 unidades de B. Um estudo de mercado indica que a
procura de tinta interior não excede em mais de 1 unidade de medida a tinta exterior.
O preço de venda da tinta interior é de 30.00 meticais por litro e da tinta exterior
de 45.00 meticais por litro. Formule o problema como um problema de programação
linear.

Número 2.10. Uma clńica de amagrecimento Peso Certo, SA pretende criar um


programa de perda de peso que garante a ingestão, pelos seus clientes de alimentos
que atinjam um máximo de 1500 calorias diárias. Contudo, para que esse processo

om
seja bem consolidada, exige-se uma nutrição equilibrada que preveja nı́veis mı́nimos de
ingestão de proteinas, hidratos de carbono, gorduras, vitaminas e fósforo. Estes nı́veis

l.c
correspondem de acordo com uma tabela de prescrição clı́nica de autoria dos invsti-
ai
gadores da clı́nica, á 50; 35; 22; 25 e 30 pontos respectivamente. A clı́nica prevê uma
gm
alimentação nacional à base de quatro tipos de refeições oferecidas quatro vezes por
dia, podem ser repetidas ou misturadas se assim for decidido. As refeições apresentam
@

um ı́ndice de sensão de fome diário, calculado com base cientı́fica que corresponde aos
o8

seguintes valores: 0.6, 0.5, 0.4 e 0.5. Adicionalmente, apresenta-se uma classificação
em função dos tipos de elementos nutrientes exigidos.
et
ub

Refeição Proteinas Hidratos de carbon Gorduras Vitaminas Fósforo


um

Verde 6 8 5 7 4
m

Branca 9 11 9 10 16
Azul 10 12 14 8 12
Vermelha 12 8 10 11 8

Usando as informações apresentadas, formule o problema de programação linear de


modo que se saiba que refeições devem ser oferecidas aos clientes por forma a garantir
uma alimentação equilibrada e racional que permita uma perda de peso, seja saudável
e consolidada. (Nota. use x1 = verde, x2 = branca, x3 = azul e x4 = vermelha).

Mulenga 19 2020
Investigação Operacional

Respostas dos exercı́cios 2.1.3

maximizar Z= 35x1 + 80x2 minimizar W= 85x1 + 45x2




 1x1 + 5x2 ≤ 150 

 2x1 + 1x2 ≥ 8

 

 1x + 2x ≤ 90
  6x + 1x ≥ 12

1 2 1 2
2.1) sujeito à 2.2) sujeito à


 2x1 + 1x2 ≤ 150 

 1x1 + 3x2 ≥ 9

 

x ,x ≥ 0 x ,x ≥ 0

 

1 2 1 2

maximizar Z= 100x1 + 150x2 maximizar Z= 5x1 + 2x2



 2x1 + 3x2 ≤ 120 
 1x1 + 2x2 ≤ 9

om

 

 
 1x + 0x ≤ 40
  1x + 0x ≤ 3

1 2 1 2
2.3) sujeito à 2.4) sujeito à

l.c


 0x1 + 1x2 ≤ 30 

 0x1 + 1x2 ≤ 4

 

x ,x ≥ 0  x ,x ≥ 0

 ai 
1 2 1 2
gm

maximizar Z= 500x1 + 300x2


@

minimizar W= 30x1 + 40x2



 1x1 + 1x2 ≤ 20
o8

2x1 + 3x2 ≥ 9

 
 
 5x + 2x ≤ 100
 

1 2
2.5) sujeito à 2.6) sujeito à 4x1 + 3x2 ≥ 12
et


 3x1 + 8x2 ≤ 120 

x ,x ≥ 0
 
ub

 
 1 2
x ,x ≥ 0


1 2
um

maximizar Z= 24x1 + 32x2 maximizar Z= 40x1 + 30x2


m



 3x1 + 1x2 ≤ 80 

 2x1 + 1x2 ≤ 6
 
2.7) sujeito à 1x1 + 4x2 ≤ 120 2.8) sujeito à 7x1 + 8x2 ≤ 28

 

x ,x ≥ 0 x ,x ≥ 0

 

1 2 1 2

Mulenga 20 2020
Investigação Operacional

min W  = 0.6x1 + 0.5x2 + 0.4x3 + 0.5x4


maximizar Z= 30x1 + 45x2


 6x1 + 9x2 + 10x3 + 12x4 ≥ 50


1x1 + 2x2 ≤ 25 8x1 + 11x2 + 12x3 + 8x4 ≥ 35
 


 


 

 3x + 4x ≤ 35
  5x + 9x + 14x + 10x ≥ 22

1 2 1 2 3 4
2.9) sujeito à 2.10) s.á


 1x1 − 1x2 ≤ 1 

 7x1 + 10x2 + 8x3 + 11x4 ≥ 25

 

x ,x ≥ 0 4x1 + 16x2 + 12x3 + 8x4 ≥ 30

 

1 2 



 x ,x ,x ,x ≥ 0

1 2 3 4

2.2 Resolução dos problemas de programação li-

om
near pelo método gráfico

l.c
O método gráfico pode ser aplicado para resolver os problemas de programação linear
ai
de forma eficiente, apenas quando a função objectivo e o conjunto das restrições tiver
gm
duas variáveis de decisão.
@

Para compreender o procedimento de resolução, vai-se começar por introduzir a noção


o8

de domı́nio ou conjunto solução de um sistema de inequações.


et
ub

2.2.1 Domı́nio das soluções admissı́veis


um

Dado um sistema de inequações, para encontrar o domı́nio solução, deve-se representar


cada uma das inequações no sistema de coordenadas rectangulares de Descartes, em
m

seguida indicar a intersecção de todos os semi-planos que satisfazem as inequações.


É precisamente a área intersecção de todos os semi-planos, o conjunto ou domı́nio
solução do sistema de inequações.

Exemplo 2.5. Encontrar o domı́nio solução dos sistemas de inequações.




 1x1 ≥ 0  

  1x + 1x ≥ 1  1x1 ≤ 2
1 2
a) 1x2 ≥ 0 b) c)
  −1x + 1x ≤ 1  1x + 1x ≥ 2
 1 2 1 2
 1x + 1x ≥ 2

1 2

Mulenga 21 2020
Investigação Operacional

Resolução
Ver a Figura 2.1, onde cada recta tem associada a ela uma secta que indica o semi-
plano onde a desigualdade é verdadeira.

om
Figura 2.1: Domı́nio solução de sistema de inequações

l.c
Exemplo 2.6. Determinar o conjunto solução do sistema e calcular o valor máximo e
ai
mı́nimo da função F (x) = 1x1 − 2x2 + 4 sobre o polı́gono convexo dado pelo sistema.
gm



 1x1 + 1x2 ≤ 4

@


−1x1 − 2x2 ≤ 2




o8


−1x1 + 1x2 ≤ 2

et


1x1 + 0x2 ≤ 3





ub


x1 , x2 ≥ 0


um

Resolução
Ver a Figura 2.2, onde cada recta tem associada a ela uma secta que indica o semi-
m

plano onde a desigualdade é verdadeira.

Figura 2.2: Domı́nio solução e pontos máximo e mı́nimo de F(x)

Mulenga 22 2020
Investigação Operacional

Os pontos A, B, C, D e E são chamados pontos extremos do polı́gono.


As coordenadas de cada ponto foram obtidas resolvendo o sistema de duas equações
de rectas que passam por cada um dos pontos. Para determinar o valor da função
F(x), precisamos conhecer as coordenadas de cada ponto, assim teremos:

• Ponto A = r5 ∩ r6 = (x1 = 0 ∩ x2 = 0)

• Ponto B = r4 ∩ r6 = (x1 = 3 ∩ x2 = 0)

• Ponto C = r1 ∩ r4 = (1x1 + 1x2 = 4 ∩ x1 = 3)

• Ponto D = r1 ∩ r3 = (1x1 + 1x2 = 4 ∩ −1x1 + 1x2 = 2)

om
• Ponto E = r3 ∩ r5 = (−1x1 + 1x2 = 2 ∩ −1x1 − 2x2 = 2)

l.c
Resolvendo os sistemas de equações tem-se as coordenadas de cada ponto.
ai
gm
Tabela 2.4: Cálculo do ponto máximo e mı́nimo de F (x) = 1x1 − 2x2 + 4
@

Ponto Coordenadas Substituição Valor de F (x)


o8

A (0,0) F(x) = 1*0 - 2*0 + 4 4


et

B (3,0) F(x) = 1*3 - 2*0 + 4 7


ub

C (3,1) F(x) = 1*3 - 2*1 + 4 5


um

D (1,3) F(x) = 1*1 - 2*3 + 4 -1


E (0,2) F(x) = 1*0 - 2*2 + 4 0
m

Segundo os valores da função F(x), o ponto máximo é o ponto B com F (x)max = 7 e


o ponto mı́nimo é o ponto D com F (x)min = −1.

Observações:
1. Devido as condições de não negatividade para as variáveis de decisão nos modelos
de programação linear, a recta 3 na Figura 2.2, não pertence ao domı́nio solução.
2. Para obter as coordenadas dos pontos é necessário resolver um sistema de duas
equações com duas varáveis, para tal, qualquer método já conhecido serve.

Mulenga 23 2020
Investigação Operacional

3. O ponto máximo ou mı́nimo na resolução dos problemas de programação linear pelo


método gráfico depende da função objectiva e não da sua aparente posição geográfica.

Exemplo 2.7. Usando o método gráfico resolver o problema de programação linear.

maximizar  Z = 3x1 + 2x2




 −3x1 + 4x2 ≤ 12


 2x + 1x ≤ 14

1 2
Sujeito à


 2x1 − 3x2 ≤ 6


x1 , x2 ≥ 0

om
l.c
Resolução
O primeiro passo é considerar que temos um sistema de equações em vez de inequações
ai
como está representado no sistema e designar as equações por rectas.
gm

maximizar  Z = 3x1 + 2x2


@

 −3x1 + 4x2 = 12 r1
o8






 2x + 1x = 14
1 2 r2
et

Sujeito à
 2x1 − 3x2 = 6 r3
ub






 x = 0, x = 0
1 2 r4 , r5
um
m

O segundo passo é calcular as coordenadas de dois pontos para cada recta, por exem-
12
plo para a recta 1, se x1 = 0 então x2 = = 3 por outro lado se x2 = 0, então
4
12
x1 = = −4, assim em diante todos os pontos das rectas são obtidos.
−3

Para a função objectiva, se x1 = x2 = 0 o valor da função objectiva será Z = 0,


este é o mı́nimo valor que esta função pode atingir já que ela não pode ter valores
negativos em programação linear devido a não negatividade das variáveis de decisão.
3
Assim sendo, se Z = 0 então 3x1 + 2x2 = 0, o que resulta na igualdade x2 = − x1 .
2
Desta recta, se x1 = 0 então x2 = 0, se x1 = 2, então x2 = −3.

Mulenga 24 2020
Investigação Operacional

Em seguida estão apresentados todos os pontos das rectas que foram utlizados para
representar as rectas no sistema de coordenadas rectangulares incluindo a recta da
função objectiva.

r1 : x1 x2 r 2 : x1 x2 r 3 : x1 x2 rz : x1 x2
3
0 3 0 14 0 -3 0 0 x2 = − x1
2
-4 0 7 0 3 0 2 -3

om
l.c
ai
gm
@
o8
et
ub
um
m

Figura 2.3: Ilustração da resolução de um problema de maximização

O terceiro passo, é depois de traçar cada recta, escolher um ponto em um dos semi-
planos P (x̃1 , x̃2 ) e substituir na inequação corresponde. Se a desigualdade for verda-
deira colocar a seta virada para este lado, caso contrário, a seta deverá ficar virada
para o outro semi-plano. Por exemplo para a recta 2, tendo-se escolhido o ponto
P(2,1), tem-se r2 = −3 ∗ 2 + 4 ∗ 1 = −2 < 12. Como esta desigualdade é veradeira a
seta está virada para o simi-plado onde se encontra o ponto P(2,1) na Figura 2.3.

Mulenga 25 2020
Investigação Operacional

O quarto passo é identificar o ponto máximo ou mı́nimo. Para os problemas de maxi-


mização, deve-se traçar rectas paralelas à recta da função objectivo e deslocar até ao
último ponto da área tracejada. Este ponto é o ponto máximo da função objectivo.
Em seguida deve-se resolver o sistema de equações de rectas que intersectam neste
ponto para determiner os valores de x1 e x2 . Conhecidos estes valores substitui-se na
função objectivo e finalmente apresenta-se a solução do problema.

Pmax = r1 ∩ r2
 
 −3x + 4x = 12  −3x + 4x = +12
1 2 1 2
→ somando as duas equações
 +2x + 1x = 14 / ∗ (−4)  −8x − 4x = −56

om
1 2 1 2

l.c
   
 −11x = −44  x =4  x =4  x =4
1 1 1 1
→ → ai →
 −  2a equacao  2x + 1x = 14  x =6
− 1 2 2
gm

Zmax = 3 ∗ x1 + 2x2 = 3 ∗ 4 + 2 ∗ 6 = 24, a solução é: x1 = 4, x2 = 6, Zmax = 24


@
o8

Exemplo 2.8. Uma pessoa precisa de 10, 12, e 12 unidades dos produtos quı́micos
et

A, B e C, respectivamente para o seu jardim. Um produto lı́quido contém 5, 2 e 1


unidades de A, B e C, respectivamente por litro; um produto em pó contém 1, 2 e 4
ub

unidades de A, B e C, respectivamente por caixa. Se o produto lı́quido custa 3 u.m.


um

por litro e o produto em pó custa 2 u.m. por caixa.


a) Formule o problema como um problema de programação linear.
m

b) Resolva o problema pelo método gráfico de modo a determinar quantos litros e


quantas caixas devem ser compradas para minimizar o custo e satisfazer as necessida-
des?

Resolução
A seguinte tabela resume os dados do problema.

Mulenga 26 2020
Investigação Operacional

Prod.Quı́micos unidades por caixa unidades por litro min. necessário

Produto A 5 1 10
Produto B 2 2 12
Produto C 1 4 12

Preço por u.m. 3 2 –

O modelo matemático é:


minimizar W = 3x1 + 2x2

om


 5x1 + 1x2 ≥ 10


 2x + 2x ≥ 12

1 2

l.c
Sujeito á


 1x1 + 4x2 ≥ 12 ai


x ,x ≥ 0


gm
1 2

3
@

minimizar W = 3x1 + 2x2 rw : x2 = − x1


2
o8




 5x1 + 1x2 = 10; r1
et




 2x1 + 2x2 = 12; r2
Sujeito á
ub



 1x1 + 4x2 = 12; r3

um



 x1 = 0, x2 = 0; r4 , r6
m

r1 : x1 x2 r2 : x1 x2 r 3 : x1 x2 rw : x1 x2

0 10 0 6 0 3 0 0
2 0 6 0 12 0 2 -3

Para os problemas de minimização a recta da função objectiva deve ser traçada até ao
primeiro ponto da área tracejada como ilustra a Figura 2.4. Neste caso, a intersecção
é entre as rectas 1 e 2, portanto Pmin = r1 ∩ r2

Mulenga 27 2020
Investigação Operacional

om
l.c
ai
Figura 2.4: Ilustração da resolução de um problema de minimização
gm
@

 
 5x + 1x = 10  +5x + 1x = +10
o8

1 2 1 2
→ somando as 2 equações
 2x + 2x = 12 / : (−2)  −1x − 1x = −6
1 2 1 2
et

  
ub

 4x = 4  x =1  x =1
1 1 1
→ →
 1a equacao
um

 −  x = 10 − 5 ∗ 1 = 5
− 2
m

O valor da função objectivo é: Wmin = 3 ∗ 1 + 2 ∗ 5 = 13.

Resposta. A pessoa deve comprar 1 caixa do produto em pô e 5 litros do produto


lı́quido e terá um custo mı́nimo de 13 unidades monetárias.

2.2.2 Procedimento do método gráfico


As régras gerais para a resolução dos problemas de programação linear pelo método
gráfico, resumem-se nos passos:

Mulenga 28 2020
Investigação Operacional

Passo 1. Dado um problema de programação linear, deve-se relacionar a informação


contida no texto. Se necessário fazer uma tabela auxiliar para identificar as principais
caracterı́sticas dos problemas de programação linear. As variáveis de decisão, a função
objectiva se é de maximização ou minimização e no fim o conjunto das restrições.

Passo 2. Escrever o modelo económico matemático do problema conforme as in-


formações obtidas no passo 1 sem esquecer das restrições de não negatividade.

Passo 3. Calcular as coordenadas de dois pontos para cada recta incluindo a recta
da função objectiva e representar num sistema de eixos (atenção trocar x1 por x2 não
é permetido), indicando por uma secta a região solução para as inequações.

om
Passo 4. Traçar a recta da função objectivo e deslocar com rectas paralelas até ao

l.c
ponto máximo ou mı́nimo conforme o problema (ponto óptimo). Resolver o sistema
ai
das rectas que intersectam no ponto óptimo. Note, que um problema de programação
gm
linear pode ter um, dois ou mais pares de valores de (x1 , x2 ), com o mesmo valor da
função objectivo. Um caso especial desta multiplicidade de soluções é quando a recta
@

da função objectvo é paralela a uma das rectas das restrições, neste caso a solução é
o8

dada para um intervalo de valores de x1 e x2 .


et

Passo 5. Usando as coordenadas do passo 4, calcular o valor da função objectivo,


ub

apresentar e interpretar a solução em função do enunciado do problema original.


um

Exemplo 2.9. Usando o método gráfico resolva o seguinte problema de programação


m

linear.

maximizar  Z = 3x1 + 6x2




 2x1 + 2x2 ≤ 8


4x1 + 2x2 ≤ 12


sujeito à


 0x1 + 3x2 ≤ 9


x1 , x2 ≥ 0

Mulenga 29 2020
Investigação Operacional

Resolução

r1 : x1 x2 r 2 : x1 x2 r z : x1 x2
1
0 4 0 6 r3 : x2 ≤ 3 rz : x2 = − x1 0 0
2
4 0 3 0 2 -1

om
l.c
ai
gm
@
o8
et
ub

Pmax = r1 ∩ r3 , portanto deve-se resolver o sistema


um

  
 2x + 2x = 8 / : 2  x +x =4  x =4−3=1
1 2 1 2 1
→ →
m

 0x + 3x = 9 / : 3  x =3  x =3
1 2 2 2

Zmax = 3x1 + 6x2 = 3 ∗ 1 + 6 ∗ 3 = 21. A solução é: x1 = 1, x2 = 3, Zmax = 21.

Exemplo 2.10. Usando o método gráfico resolva o seguinte problema de programação


linear.

minimizar W = 30x1 + 12x2

Mulenga 30 2020
Investigação Operacional




 2x1 + 2x2 ≥ 6


 2x + 2x ≤ 8

1 2
sujeito à


 3x1 + 1x2 ≥ 4


 x ,x ≥ 0

1 2

Resolução
30 5
Para a função objectivo: 30x1 + 12x2 = 0, → x2 = − x1 → x2 = − x1 .
12 2

r1 : x1 x2 r 2 : x1 x2 r3 : x1 x2 rw : x 1 x2

om
0 3 0 4 0 4 0 0
3 0 4 0 3/4 0 1 -5/2

l.c
ai
gm
@
o8
et
ub
um
m

Pmin = r1 ∩ r3
 
 2x + 2x = 6 / : (−2)  −1x − 1x = −3
1 2 1 2

 3x + 1x = 4  +3x + 1x = 4
1 2 1 2

Mulenga 31 2020
Investigação Operacional

1
Depois de somar os coeficientes das duas equações, tem-se x1 = , substituindo na 2a
2
1 5
equação, tem-se x2 = 4 − 3 ∗ = .
2 2
1 5
O valor da função objectiva é: Wmin = 30 ∗ + 12 ∗ = 45
2 2
1 5
Solução: x1 = ; x2 = ; Wmin = 45
2 2

2.2.3 Exercı́cios propostos


Exercı́cio 2.11. Uma carpintaria deseja estabelecer um programa diário de produção
dos seus artigos. Actualmente, a carpintaria faz apenas dois produtos: mesas e

om
armários, ambos de um só modelo. Para efeitos de simplificação, vamos considerar que

l.c
a carpintaria tem limitações em somente dois recursos: a madeira e a mão-de-obra,
cujas disponibilidades diárias são 12 m2 e 8 homens por hora (H.h), respectivamente.
ai
O processo de produção é tal que, para fazer 1 mesa a fábrica gasta 2 m2 de madeira
gm
e 2 H.h de mão-de-obra. Para fazer um armário, a fábrica gasta 3 m2 de madeira 1
H.h de mão-de-obra. Além disso, o fabricante sabe que cada mesa dá uma margem de
@

contribuı́ção para o lúcro de 4 u.m, e cada armário, de 1 u.m.


o8

a) Formule o modelo de programação linear que descreve este problema.


et

b) Usando o método gráfico, resolva o problema do fabricante de modo a encontrar o


ub

programa de produção que maximiza a margem total de lúcro.


Resposta: x1 = 4; x2 = 0; Zmax = 16 u.m.
um

Exercı́cio 2.12. Uma indústria fabrica dois produtos A e B que utilizam três matérias
m

primas: madeira, quandidades de matéria prima em plástico e compostos de aço. No


estoque do armazém da fábrica estão disponı́veis 24 m2 de madeira, 37 unidades de
plástico e 18 quilos de aço. O produto A requer 1, 3 e 2 unidades de medida de cada
uma das metérias primas madeira, plástico e aço respectivamente. O produto B re-
quer 3, 4 e 1 unidades de medida das mesmas matérias prima, respectivamente. Se
A é vendido por 20 u.m e B por 30 u.m, quantas unidades de cada produto devem
zer produzidas de modo a obter o máximo rendimento bruto. Elabore o modelo e
resolva-o gráficamente.
Resposta: x1 = 3; x2 = 7; Zmax = 270 u.m.

Mulenga 32 2020
Investigação Operacional

Exercı́cio 2.13. A companhia Cervejas de Moçambique precisa, de 90, 120 e 260 mil
caixas de cerveja de alta, média e baixa qualidades, respectivamente. Existem duas
fábricas: a cerveja 2M que produz por dia 10, 30 e 40 mil caixas de alta, média e
baixa qualidades e a cerveja Laurentina que produz por dia 20, 10 e 30 mil caixas,
respectivamente. Se o custo operacional de cada fábrica for de 20 u.m por dia, du-
rante quantos dias deve funcionar cada fábrica de modo a se minimizar o custo total
e satisfazer as necessidades da companhia.
Resposta: x1 = 5; x2 = 2; Wmin = 140 u.m.

Exercı́cio 2.14. Um paciente de um determinado hospital necessita no mı́nimo de 84


unidades da substância 1 e 120 unidades de substância 2 por dia. Estas substâncias

om
são adquidas em dois tipos de medicamentos designados A e B. Um medicamento do
tipo A tem 10 unidades de substância 1 e 8 unidades de substância 2. O medicamento

l.c
do tipo B contém 2 unidades da substância 1 e 4 unidades de substância 2. Sabendo
ai
que uma unidade do medicamento A custa 3 u.m e de B custa 1 u.m, quantas unidades
gm
de cada medicamento A ou B, que o paciente deve comprar para tomar por dia de
modo que ele melhore e minimize o seu dinheiro. Qual é o valor mı́nimo que ele vai
@

gastar por dia.


o8

Resposta: x1 = 4, x2 = 22, Wmin = 34 u.m.


et

Exercı́cio 2.15. Usando o método gráfico, resolva as seguintes alı́neas dos problemas
ub

de programação linear.
minimizar  W = 10x1 + 30x2
um

maximizar Z = 5x1 + 5x2


 2x1 + 2x2 ≥ 16


 2x1 + 1x2 ≤ 10 
m

 

  1x + 1x ≥ 12

1 2
a) sujeito à 1x1 + 2x2 ≤ 8 b) sujeito à

 
 1x1 + 2x2 ≥ 14
x1 , x2 ≥ 0

 


x ,x ≥ 0


1 2
maximizar Z = 25x1 + 30x2 minimizar W = 5x1 + 2x2


 2x1 + 2x2 ≤ 10 

 1x1 + 1x2 ≥ 6

 

 1x + 3x ≤ 10
  6x + 3x ≥ 18

1 2 1 2
c) sujeito à d) sujeito à
 1x1 + 2x2 ≤ 6  2x1 + 3x2 ≥ 12

 


 

x ,x ≥ 0 x ,x ≥ 0

 

1 2 1 2

Mulenga 33 2020
Investigação Operacional

Respostas
a) x1 = 4, x2 = 2, Zmax = 30
b) x1 = 14, x2 = 0, Wmin = 140
c) x1 = 4, x2 = 1, Zmax = 130
d) x1 = 0, x2 = 6, Wmin = 12

2.3 Resolução dos problemas de programação li-


near pelo método simplex
O método simplex é um algorı́tmo proposto por Danzig (1947), para resolver os pro-

om
blemas de programação linear. Para uma aplicação correcta do método, é necessário
a introdução no modelo ora elaborado com apenas variáveis de decisão, variáveis au-

l.c
xiliares.
ai
gm
2.3.1 Variáveis de folga e de excesso
Na resolução dos problemas de programação linear pelo método gráfico usou-se os si-
@

nais ≤ e ≥ nas inequações das restrições para definir a região ou domı́nio das soluções
o8

e resolveu-se os problemas assumindo que todas variáveis eram não negativas. Nesta
et

secção são introduzidas duas variáveis auxiliares: as variáveis de folga e de excesso,


ub

associadas com as restrições da forma ≤ e ≥ respectivamente.


um

Variável de folga. Introduz-se uma variável de folga, para cada restrição do tipo ≤
no primeiro membro da inequação e transfoma-se esta em equação. Por exemplo, na
m

restrição 6x2 + 4x2 ≤ 24, temos.


  
 6x + 4x ≤ 24  6x + 4x + x = 24  x = 24 − 6x − 4x
1 2 1 2 3 3 1 2
→ →
 x1 , x2 ≥ 0  x1 , x2 , x3 ≥ 0  x1 , x2 , x3 ≥ 0

A variável x3 é a variável de folga, ela representa a quantidade do recurso que não


foi utilizada, isto é, representa a diferença entre a quantidade do recurso máximo dis-
ponı́vel (r = 24) e a quantidade de recusro que foi utilizado (6x1 + 4x2 ) nas diferentes
actividades.

Mulenga 34 2020
Investigação Operacional

Variável de excesso. Restrições do tipo ≥, normalmente referem-se a quantidade


mı́nima necessária que deve ser utilizada na combinação de diferentes actividades. A
introdução de uma variável de excesso numa inequação, transforma esta em equação.
  
 2x + 3x ≥ 80  2x + 3x − x = 80  x = 2x + 3x − 80
1 2 1 2 3 3 1 2
→ →
 x1 , x2 ≥ 0  x1 , x2 , x3 ≥ 0  x1 , x2 , x3 ≥ 0

As variáveis de excesso representam o excesso da quantidade do recurso obtido pela


combinação das actividades em relação ao recurso mı́nimo necessário. Para este caso
x3 é variável de excesso.

om
Para que seja claro entre um problema com variáveis só de decisão e com variáveis
auxiliares, são definidas as designações. Um problema está na forma canı́nica, se

l.c
tiver só variáveis de decisão e todas desigualdades for do mesmo sinal. Assim, para
ai
maximização deverá se ter ≤, enquanto, para minimização ≥. Um problema está na
gm
forma padrão quando todas as inequações são transformadas em igualdades por uma
adição de uma variável auxiliar que pode ser de folga (+xi ) ou de excesso (−xi ).
@
o8

Exemplo 2.11. Escrever os seguintes problemas de programação linear na forma


et

padrão.
ub

maximizar Z = 30x1 + 50x2 minimizar W = 3x1 + 2x2


2x1 + 1x2 ≤ 16 5x1 + 1x2 ≥ 10
um


 


 

 
1x1 + 2x2 ≤ 11 2x1 + 2x2 ≥ 12

 

a) sujeito à b) sujeito à
m



 1x1 + 3x2 ≤ 15 

 1x1 + 4x2 ≥ 12

 

x1 , x2 ≥ 0

x1 , x2 ≥ 0

 

Resolução
Como os problemas estão na forma canónica, basta acrescentar as variáveis de folga
ou de excesso.

Mulenga 35 2020
Investigação Operacional

a) max Z = 30x1 + 50x2 + 0x3 + 0x4 + 0x5 b) min W = 3x1 + 2x2 + 0x3 + 0x4 + 0x5
 


 2x1 + 1x2 + 1x3 + 0x4 + 0x5 = 16 

 5x1 + 1x2 − 1x3 + 0x4 + 0x5 = 10

 


 1x + 2x + 0x + 1x + 0x = 11  2x + 2x + 0x − 1x + 0x = 12

1 2 3 4 5 1 2 3 4 5
suj à suj à


 1x1 + 3x2 + 0x3 + 0x4 + 1x5 = 15 

 1x1 + 4x2 + 0x3 + 0x4 − 1x5 = 12

 

x1 , x2 , x3 , x4 , x5 ≥ 0

x1 , x2 , x3 , x4 , x5 ≥ 0

 

Observação

• Note que para cada restrição só temos uma variável de folga ou excesso, e nesta
restrição tem coeficiente 1 e zeros nas outras restrições ao longo da coluna.

om
• Como as variáveis de excesso e de folga são apenas auxiliaries, elas não contri-

l.c
buem na função objectiva, por isso, tem coeficiente zero.
ai
• Todas as variáveis de decisão e auxiliares são não negativas.
gm

2.3.2 Procedimento do método simplex


@
o8

O método simplex pode ser descrito como um processo matricial para resolver proble-
mas de programação linear na forma padrão.
et
ub

Actualmente o método simplex é uma das ferramentas fundamentais de resolução


um

dos problemas de programação linear nos diversos casos em que eles se apresentam.
Neste capı́tulo são apresentadas três variantes. O método simplex directo que per-
m

mite resolver apenas os problemas de maximização na sua forma canónica, em seguida


serão apresentados o método simplex de duas fases e o método simplex de Grande M.
O método simplex dual-simplex será apresentado mais tarde. Deve-se salientar que,
em qualquer uma das variantes pode se destacar 4 etapas fundamentais do método
simplex.

1. Tabela simplex inicial. A tabela simplex inicial de um problema de maxi-


mização de programação linear como apresentado na subsecção 2.1.2 é como se segue.

Mulenga 36 2020
Investigação Operacional

var.básicas x1 x2 ... xm xm+1 xm+2 ... xm+n recursos


xm+1 a11 a12 ... a1m 1 0 ... 0 b1
xm+2 a21 a22 ... a2m 0 1 ... 0 b2
... ... ... ... ... ... ... ... ... ...
xm+n an1 an2 ... anm 0 0 ... 1 bn
Z −c1 −c2 ... −cm 0 0 ... 0 0

• Da tabela inicial, nota-se que as variáveis básicas (base) são todas variáveis de

om
folga e tem 1 ao longo da linha em que estão;

• Os coeficientes ci , são opostos da função objectivo e são importantes na indicação

l.c
da coluna pivô, por isso, são chamados indicadores da coluna pivô;
ai
• O elemento no canto inferior direito é zero, ele corresponde ao valor da função
gm

objectivo inicial.
@

2. Determinação do elemento pivô. Um elemento pivô de uma tabela simplex é


o8

obtido da seguinte forma:


et

• Escolhe-se na linha dos coeficientes da função objectivo, o menor elemento ne-


ub

gativo (max) ou o maior elemento positivo (min), e a coluna que contém este
um

elemento chama-se coluna pivô: cp = min{−cj };

• Divide-se cada termo independente (recurso), pelo correspondente elemento po-


m

sitivo da coluna pivô. A linha que apresentar o menor quociente positivo é


bi
chamada linha pivô: lp = min{ } para aij > 0 e aij ∈ cp ;
aij
• O elemento que situa-se no cruzamento entre a linha pivô e a coluna pivô é
chamado elemento pivô: ep = cp × lp .

Se a tabela não tem nenhum indicador negativo (max) ou positivo (min), esta é uma
tabela terminal e não tem pivô.

3. Cálculo da nova tabela simplex. Seja T1 a tabela simplex com n linhas e

Mulenga 37 2020
Investigação Operacional

m + n colunas, cujo elemento pivô é aij da matrix A. Uma nova tabela T2 é calculada
a partir da tabela T1, usando operações elementares sobre as linhas da matriz A de
tal forma que apareça um ”1”na posição pivô e zeros ”0”nas outras posições da coluna
pivô, isto é:
• Divide-se cada elemento da linha pivô lp da tabela T1 pelo elemento pivô aij ,
1
obtendo-se a correspondente linha na tabela T2 (lp0 ). lp0 = ∗ lp . Observe que
aij
na posição do element pivô terá sempre “1” depois desta divisão.

• Se a coluna pivô de T1 é denotada por xi , então a correspondente coluna de T2,


será denotada também por xi ;

• Cada uma das outras linhas lk0 da tabela T2 é obtida somando da linha lk o

om
produto −akj lp0 , onde o −akj é o elemento akj da coluna pivô com sinal contrário.

l.c
Isto é: lk0 = lk − akj × lp0 , para k = 1, 2, . . . , n.
ai
4. Interpretação da tabela terminal. Depois de tantas repetições das etapas (2)
gm
e (3), chega-se a uma tabela terminal, a qual não tem nenhum indicador da coluna
pivô negativo (max) ou positivo (min).
@
o8

Base x1 x2 ... xm xm+1 xm+2 ... xm+n recursos


x1 1 0 ... a1m ∗ a1(m+1) ∗ a1(m+2) ∗ ... 0 b1 ∗
et

x2 0 1 ... a2m ∗ a2(m+1) ∗ a2(m+2) ∗ ... 0 b2 ∗


ub

... ... ... ... ... ... ... ... ... ...
um

xm+n 0 0 ... anm ∗ an(m+1) ∗ an(m+2) ∗ ... 1 bn ∗


m

Z 0 0 ... cm ∗ cm+1 ∗ cm+2 ∗ ... 0 z*

Nesta tabela o (*) indica de que os valores já não são os mesmos da tabela inicial.
Também pode notar de que as variáveis que estão na base foram trocadas. Este é
resultado das iterações que foram feitas.
• z ∗ – é o valor óptimo da função objectivo;

• xi – tem um valor diferente de zero se estiver marcado por 1 numa única posição
da coluna correspondente e zeros nas restantes linhas e diz-se que xi está na
base. É o caso das variáveis x1 , x2 e xm+n .

Mulenga 38 2020
Investigação Operacional

• xi - é igual a zero se não estiver na base, apresentando óbviamente um ci 6= 0.

• Assim, a solução seria: x1 = b∗1 , x2 = b∗2 , xm+n = b∗n e Zmax = z ∗ e todas variáveis
que estão fora da base são iguais a zero.

Exemplo 2.12. Resolva o seguinte problema de programação linear pelo método


simplex.

maximizar  Z = 1x1 + 9x2 + 1x3


 1x + 2x2 + 3x3 ≤ 9
 1


sujeito à 3x1 + 2x2 + 2x3 ≤ 15

om


 x ,x ,x ≥ 0

1 2 3

Resolução
l.c
ai
O problema já está na forma canônica, portanto, vai-se introduzir as variáveis de folga.
gm

maximizar  Z = 1x1 + 9x2 + 1x3 + 0x4 + 0x5


@

1x + 2x2 + 3x3 + 1x4 + 0x5 = 9


o8


 1


sujeito à 3x1 + 2x2 + 2x3 + 0x4 + 1x5 = 15
et



 x ,x ,x ,x ,x ≥ 0

ub

1 2 3 4 5
um

Tabela 1
Base x1 x2 x3 x4 x5 Bi
m

x4 1 2 3 1 0 9; (9/2=4.5, min) J
x5 3 2 2 0 1 15 (15/2=7.5)
Z -1 -9 -1 0 0 0
min N

Como o elemento pivô é a12 = 2 na linha 1, coluna 2, mostra-se em seguida as operações


que foram feitas para a coluna 2 de x2 e todas outras colunas seguem as mesmas
equações das linhas.

Mulenga 39 2020
Investigação Operacional

1
Linha 1: lp0 = (1/2) ∗ lp = ∗2=1
2
Linha 2: l20 = l2 − 2 ∗ lp0 = 2 − 2 ∗ 1 = 0
Linha 3: l30 = l3 − 9 ∗ lp0 = 9 − 9 ∗ 1 = 0

Tabela 2
Base x1 x2 x3 x4 x5 Bi Transformação
x2 1/2 1 3/2 1/2 0 9/2 lp0 = (1/2) ∗ lp
x5 2 0 -1 -1 1 6 l20 = l2 − 2 ∗ lp0
Z 7/2 0 25/2 9/2 0 81/2 l30 = l3 + 9 ∗ lp0

om
Solução
81 9

l.c
Zmax = , x1 = 0 , x2 = , x3 = x4 = 0, x5 = 6
2 2 ai
Os valores da função objectivo e das variáveis de folga podem ser obtidos substituindo
gm
os valores de x1 , x2 e x3 na função objectivo e nas restrições.
@

9 81
• Função objectivo: Zmax = 1 ∗ x1 + 9 ∗ x2 + 1 ∗ x3 = 1 ∗ 0 + 9 ∗ +1∗0=
2 2
o8

9
et

• Restrição 1: x4 = 9 − 1 ∗ x1 − 2 ∗ x2 − 3 ∗ x3 = 9 − 1 ∗ 0 − 2 ∗ –1 ∗ 0 = 9 − 9 = 0
2
ub

9
• Restrição 2: x5 = 15–3 ∗ x1 –2 ∗ x2 − 2 ∗ x3 = 15–2 ∗ 0 − 2 ∗ − 2 ∗ 0 = 15 − 9 = 6.
2
um
m

Desta verificação, significa que para produzir 4.5 unidades de x2 foram utilizadas com-
pletamente 9 uniddaes de recurso 1, 9 unidades de recurso 2, não sendo utilizadas 6
unidades que correspondem a diferença 15-9=6 unidades do recurso 2.

Exemplo 2.13. Usando o método simplex resolva o seguinte problema de pro-


gramação linear.

maximizar Z = 6x1 + 4x2

Mulenga 40 2020
Investigação Operacional




 4x1 + 6x2 ≤ 12


 6x + 2x ≤ 24

1 2
sujeito à


 2x1 + 1x2 ≤ 10


x1 , x2 ≥ 0

Resolução
Introduzindo as variáveis de folga tem-se.

maximizar  Z = 6x1 + 4x2 + 0x3 + 0x4 + 0x5


4x1 + 6x2 + 1x3 + 0x4 + 0x5 = 12

om






 6x1 + 2x2 + 0x3 + 1x4 + 0x5 = 24
sujeito à

l.c


 2x1 + 1x2 + 0x3 + 0x4 + 1x5 = 10 ai


x1 , x2 , x3 , x4 , x5 ≥ 0


gm
@

Tabela 1
o8

Base x1 x2 x3 x4 x5 Bi
et

x3 4 6 1 0 0 12 (12/4=3, min)J
ub

x4 6 2 0 1 0 24 (24/6=3, min)
um

x5 2 1 0 0 1 10 (10/2=5)
Z -6 -4 0 0 0 0
m

Repare que na tabela inicial, como tem-se dois valores mı́nimos candidatos para linha
pivô, qualquer linha pode ser escolhida e neste caso, foi escolhida a primeira linha. De
mesmo modo podia se ter mais colunas candidatas para a escolha da coluna pivô.

Como o elemento pivô está na primeira linha, começa-se por esta linha a transfor-
mar e só depois as outras linhas.

Mulenga 41 2020
Investigação Operacional

Tabela 2
Base x1 x2 x3 x4 x5 Bi Transformação
x1 1 3/2 1/4 0 0 3 lp0 = (1/4) ∗ lp
x4 0 -7 -3/2 1 0 6 l20 = l2 − 6 ∗ lp0
x5 0 -2 -1/2 0 1 4 l30 = l3 − 2 ∗ lp0
Z 0 5 3/2 0 0 18 l40 = l4 + 6 ∗ lp0

Solução x1 = 3, x2 = 0, x3 = 0, x4 = 6, x5 = 4, Zmax = 18.


Verificando o valor da função objectivo: Z = 6 ∗ x1 + 4x2 = 6 ∗ 3 + 4 ∗ 0 = 18, o que

om
confirma o valor que está na tabela.

l.c
Exemplo 2.14. Resolva o seguinte problema de programação linear pelo método
simplex.
ai
gm
maximizar  Z = 8x1 + 6x2
@



 6x1 + 3x2 ≤ 9


o8

2x1 + 2x2 ≤ 4


sujeito à
et



 1x1 + 2x2 ≤ 8


ub

x1 , x2 ≥ 0


um

Resolução
m

Tabela 1

Base x1 x2 x3 x4 x5 Bi
x3 6 3 1 0 0 9 (9/6=1.5)J
x4 2 2 0 1 0 4 (4/2=2)
x5 1 2 0 0 1 8 (8/1=8)

Z -8 N -6 0 0 0 0

Por comodidade, em vez de escrever sempre lp0 vai-se escrever o número da linha em

Mulenga 42 2020
Investigação Operacional

que estiver o elemento pivô, por exemplo l10 .

Tabela 2
Base x1 x2 x3 x4 x5 Bi Transformação
x1 1 1/2 1/6 0 0 3/2 l10 = (1/6) ∗ l1 (3)
x4 0 1 -1/3 1 0 1 l20 = l2 − 2 ∗ l10 (1) J
x5 0 3/2 -1/6 0 1 13/2 l30 = l3 − 1 ∗ l10 (13/3)
Z 0 -2N 4/3 0 0 12 l40 = l4 + 8 ∗ l10

Tabela 3

om
Base x1 x2 x3 x4 x5 Bi Transformação
x1 1 0 1/3 -1/2 0 1 l10 = l1 − (1/2) ∗ l20
x2 0 1 -1/3 1 0 1 l20 = l2
l.c
ai
x5 0 0 1/3 -3/3 1 5 l30 = l3 − 3/2 ∗ l20
gm

Z 0 0 2/3 2 0 14 l40 = l4 + 2 ∗ l20


@

Solução x1 = 1, x2 = 1, x3 = 0, x4 = 0, x5 = 5, com Zmax = 14


o8
et

2.3.3 Método simplex de duas fases


ub

O processo iterativo do método simplex sempre exige uma solução básica inicial onde
um

para cada linha existe uma variável básica, a partir da qual se procura melhorar até
uma solução óptima. Nos problemas de maximização esta solução básica inicial era
m

formada pelas variáveis de folga, já que as restrições eram do tipo (≤). Quando as
restrições são do tipo (≥) ou (=), não existe essa solução básica inicial, como se ilustra
no exemplo a seguir:

minimizar  W = 5x1 + 2x2




 1x1 + 1x2 ≥ 5


6x1 + 1x2 ≥ 18


sujeito à


 2x1 + 3x2 ≥ 12


x1 , x2 ≥ 0

Mulenga 43 2020
Investigação Operacional

Introduzindo as varáveis de excesso, tem-se a seguinte tabela.

Base x1 x2 x3 x4 x5 Bi
x3 (-) 1 1 -1 0 0 5
x4 (-) 6 1 0 -1 0 18
x5 (-) 2 3 0 0 -1 12
W -5 -2 0 0 0 0

Nesta tabela, as variáveis de excesso x3 , x4 e x5 tem valores negativos se pretender-

om
mos ler a solução inicial deste exemplo (x3 = −5, x4 = −18, x5 = −12), violando a
condição de não negatividade. Para não violar esta restrição, dize-se que esta tabela

l.c
é preliminar e não básica porque não possue solução básica.
ai
gm
Para resolver este tipo de problemas são introduzidas algumas modificações nas equações
das restrições em seguida pode se usar duas variantes do método simplex: o método
@

de duas fases, e o método de grande M.


o8
et

Tabela 2.5: Variáveis auxiliares para o método de duas fases e de grande M


ub

Tipo de inequação Tipo de variável Variável


um

≤ variável de folga xi
m

= variável artificial ai
≥ variável de excesso + artificial −xi + ai

Procedimento do método simplex de duas fases

Para resolver os problemas de programação linear pelo método simplex de duas fases
segue-se os seguintes passos:

Passo 1. Para cada restrição, introduzir as variáveis de folga, excesso e artificiais

Mulenga 44 2020
Investigação Operacional

conforme a Tabela 2.5 indica.

Passo 2. Escrever uma nova função objectiva, segundo os passos:

• Para cada variável xi , deve-se somar os coeficientes das restrições que possuem
alguma variável artificial e multiplicar com sinal negativo o resultado, por exem-
plo para a coluna de x1 teria c01 = −(a11 + a21 + a31 ).

• As colunas das váriaveis articiais ficam com zeros, para garantir que a tabela
inicial tenha solução básixa.

• Na função objectiva, também somam-se os recursos das restrições onde introduziu-

om
se alguma variável articial, Z0 = −(b1 + b2 + b3 ).

• A esta função objectivo é designada Za , portanto é uma função maximizante.

l.c
ai
Passo 3. Organizada a tabela inicial, as variáveis artifiais e de folga se existirem
gm
estarão na base. E esta é a tabela básica da primeira fase.
@

Passo 4. Resolver o problema pelo método simplex, tomando-se como função ob-
o8

jectivo a última linha da função de maximização até que na linha Za , haja nas colunas
de xi , ∀ci = 0, nas colunas de ai , ∀ci = 1 e Za = 0. Este é o fim da primeira fase.
et
ub

Como na última linha o valor da função objectiva artificial é igual a zero, a primeira
um

fase termina. Em seguida as variáveis artificiais e a linha Za são retiradas, a tabela


que fica dá o inı́cio da segunda fase.
m

•. Para os problemas de maximização, se existir algum elemento negativo na linha


indicadora de pivô, as iterações devem continuar até obter a solução óptima.
•. Para os problemas de minimização, se existir algum elemento positivo as iterações
devem continuar usando a linha Wmin , caso contrário esta é tabela terminal.

Exemplo 2.15. Usando o método simplex de duas fases, resolva o seguinte pro-
blema de programação linear.

minimizar W = 3x1 + 4x2

Mulenga 45 2020
Investigação Operacional


 2x + 3x2 ≤ 10
 1


sujeito à 1x1 + 3x2 ≥ 5


x ,x ≥ 0


1 2

Resolução

Tabela 1 1a Fase

Base x1 x2 x3 x4 a1 Bi

x3 2 3 1 0 0 10 (19/3=3.333)

om
a1 1 3 0 -1 1 5 (5/3=1.666) J

l.c
W -3 -4 0 0 0 0

Za -1 -3N 0 1 0 -5
ai
gm
@

Repare que a linha Za é constinuida pelos coeficientes da segunda restrição com sinal
o8

oposto, porque somente esta restrição tem variável artificial.


et

Tabela 2 1a Fase
ub

Base x1 x2 x3 x4 a1 Bi operações
um

x3 1 0 1 1 -1 5 l10 = l1 − 3 ∗ l20
m

x2 1/3 1 0 -1/3 1/3 5/3 l20 = (1/3) ∗ l2

W -5/3 0 0 -4/3 4/3 20/3 l30 = l3 + 4 ∗ l20

Za 0 0 0 0 1 0 l40 = l4 + 3 ∗ l20

Depois de retirar a coluna a1 e a linha Za , temos a tabela da 2a fase.

Mulenga 46 2020
Investigação Operacional

Tabela 1 2a Fase

Base x1 x2 x3 x4 Bi

x3 1 0 1 1 5
x2 1/3 1 0 -1/3 5/3

W -5/3 0 0 -4/3 20/3

Nos problemas de minimização termina-se quando na linha indicadora de pivô não


existem elementos positivos, portanto , esta é a tabela terminal.

om
Solução x1 = 0, x2 = 5/3, x3 = 5, x4 = 0 e Wmin = 20/3.

l.c
Exemplo 2.16. Usando o método de duas fases, resolver o problema de programação
ai
linear.
gm

minimizar W = 4x1 + 1x2


@



 3x1 + 1x2 ≥ 3
o8




4x1 + 3x2 ≥ 6


sujeito à
et



 1x1 + 2x2 ≥ 3
ub



x1 , x2 ≥ 0


um

Resolução
m

minimizar  W = 4x1 + 1x2 + 0x3 + 0x4 + 0x3 + 0a1 + 0a2 + 0a3




 3x1 + 1x2 − 1x3 + 0x4 + 0x5 + 1a1 + 0a2 + 0a3 = 3


 4x + 3x + 0x − 1x + 0x + 0a + 1a + 0a = 6

1 2 3 4 5 1 2 3
sujeito à


 1x1 + 2x2 + 0x3 + 0x4 − 1x5 + 0a1 + 0a2 + 1a3 = 3


x ,x ,x ,x ,x ,a ,a ,a ≥ 0


1 2 3 4 5 1 2 3

Repare que o problema na forma padrão apresenta 6 variáveis auxilraes, sendo 3


variáveis de excesso e 3 artificais. De salientar que a tabela básica inicial será consti-
tuida só pelas variáveis artificais a1 , a2 e a3 . Isto significa que terão que ser realizadas

Mulenga 47 2020
Investigação Operacional

três iterações na primeira fase para retirar todas variáveis artificiais dela.

Tabela 1 1a F

Base x1 x2 x3 x4 x5 a1 a2 a3 Bi

a1 3 1 -1 0 0 1 0 0 3 (1) J
a2 4 3 0 -1 0 0 1 0 6 (3/2)
a3 1 2 0 0 -1 0 0 1 3 (3)

W -4 -1 0 0 0 0 0 0 0

om
Za -8N -6 1 1 1 0 0 0 -12

l.c
Tabela 2 1a F ai
Base x1 x2 x3 x4 x5 a1 a2 a3 Bi
gm

x1 1 1/3 -1/3 0 0 1/3 0 0 1 l10 = (1/3) ∗ l1


@

a2 0 5/3 4/3 -1 0 -4/3 1 0 2 l20 = l2 − 4 ∗ l10 J


o8

a3 0 5/3 1/3 0 -1 -1/3 0 1 2 l30 = l3 − l10


et

W 0 1/3 -4/3 0 0 4/3 0 0 4 l40 = l4 + 4 ∗ l10


ub

Za 0 -10/3N -5/3 1 1 8/3 0 0 -4 l50 = l5 + 8 ∗ l10


um
m

Tabela 3 1a F

Base x1 x2 x3 x4 x5 a1 a2 a3 Bi

x1 1 0 -3/5 1/5 0 3/5 -1/5 0 3/5


x2 0 1 4/5 -3/5 0 -4/5 3/5 0 6/5 l20 = (3/5) ∗ l2
a3 0 0 -1 1 -1 1 -1 1 0 J

W 0 0 -24/15 1/5 0 24/15 -1/5 0 18/5

Za 0 0 1 -1 N 1 0 2 0 0

Mulenga 48 2020
Investigação Operacional

Tabela 4 1a F

Base x1 x2 x3 x4 x5 a1 a2 a3 Bi

x1 1 0 -2/5 0 1/5 -2/5 0 1/5 3/5


x2 0 1 1/5 0 -3/5 -1/5 0 3/5 6/5
x4 0 0 -1 1 -1 1 -1 1 0 l30 = l3

W 0 0 -7/5 0 1/5 7/5 0 -1/5 18/5

Za 0 0 0 0 0 1 1 1 0

om
l.c
Como na última linha o valor da função objectivo artificial é igual a zero, a fase 1
termina e a solução encontrada é solução básica inicial para a fase 2. Na segunda
ai
fase, como o problema é de minimização, e temos um elemento positivo, teremos que
gm

continuar as iterações.
@

Tabela 1 2a F
o8

Base x1 x2 x3 x4 x5 Bi
et
ub

x1 1 0 -2/5 0 1/5 3/5 (3) J


um

x2 0 1 1/5 0 -3/5 6/5 (-)


x4 0 0 -1 1 -1 0 (-)
m

W 0 0 -7/5 0 1/5N 18/5

Mulenga 49 2020
Investigação Operacional

Tabela 2 2a F

Base x1 x2 x3 x4 x5 Bi

x5 5 0 -2 0 1 3
x2 3 1 1 0 0 3
x4 5 0 -3 1 0 3

W -1 0 -1 0 0 3

Solução x1 = 0, x2 = 3, x3 = 0, x4 = 3, x5 = 3, com Wmin = 3

om
Exemplo 2.17. Usando o método de duas fases, resolva o problema de programação

l.c
linear.
ai
maximizar Z = 2x1 + 3x2 + 5x3
gm



 1x1 + 2x2 + 1x3 ≤ 10

@


2x1 + 3x2 + 1x3 ≥ 6


sujeito à
o8



 2x1 + 1x2 − x3 = 3

et


x1 , x2 , x3 ≥ 0


ub
um

Resolução

1a F
m

Tabela 1

base x1 x2 x3 x4 x5 a1 a2 Bi

x4 1 2 1 1 0 0 0 10 (10)
a1 2 3 1 0 -1 1 0 6 (3)
a2 2 1 -1 0 0 0 1 3 (1.5) J

Z -2 -3 -5 0 0 0 0 0

Za -4 N -4 0 0 1 0 0 -9

Mulenga 50 2020
Investigação Operacional

Tabela 2 1a F

base x1 x2 x3 x4 x5 a1 a2 Bi

x4 0 3/2 3/2 1 0 0 -1/2 17/2 (5.67)


a1 0 2 2 0 -1 1 -1 3 (1.5) J
x1 1 1/2 -1/2 0 0 0 1/2 3/2 (3)

Z 0 -2 -6 0 0 0 1 3

Za 0 -2 N -2 0 1 0 2 -3

om
Tabela 3 1a F

l.c
base x1 x2 x3 x4 x5 a1 a2 aiBi

x4 0 0 0 1 3/4 -3/4 1/4 25/4


gm

x2 0 1 1 0 -1/2 1/2 -1/2 3/2


@

x1 1 0 -1 0 1/4 -1/4 3/4 3/4


o8

Z 0 0 -4 0 -1 1 0 6
et
ub

Za 0 0 0 0 0 1 1 0
um

Tabela 1 2a F
m

base x1 x2 x3 x4 x5 Bi

x4 0 0 0 1 3/4 25/4 (∞)


x2 0 1 1 0 -1/2 3/2 (1.5) J
x1 1 0 -1 0 1/4 3/4 (-)

Z 0 0 -4 N 0 -1 6

Mulenga 51 2020
Investigação Operacional

Tabela 2 2a F

base x1 x2 x3 x4 x5 Bi

x4 0 0 0 1 3/4 25/4 (8.33) J


x3 0 1 1 0 -1/2 3/2 (-)
x1 1 1 0 0 -1/4 9/4 (-)

Z 0 4 0 0 -3 N 12

Tabela 3 2a F

om
base x1 x2 x3 x4 x5 Bi

l.c
x5 0 0 0 4/3 1 25/3 ai
x3 0 1 1 2/3 0 17/3
gm
x1 1 1 0 1/3 0 13/3
@

Z 0 4 0 4 0 37
o8
et

Solução x1 = 13/3, x2 = 0, x3 = 17/3, x4 = 0, x5 = 25/3, com Zmax = 37


ub

2.3.4 Método simplex de grande M


um

De uma forma geral, o método simplex de duas fases consistiu em gerar uma nova
m

função objectiva artificial de maximização e resolver o problema tomando esta função


até obter uma solução básica com todas variáveis não artificias na base. Este era
o fim da primeira, a segunda fase terminou sempre que não houvesse indicador da
coluna pivô. Para o método de grande M, não haverá a necessidade de uma nova
função objectiva, mas sim, a introdução da constante M como um número superior do
que todos outros encontrados na tabela simplex, em seguida escrever a tabela simplex
inicial preliminar já que não terá uma base completa.

Mulenga 52 2020
Investigação Operacional

Procedimento do método simplex de grande M


Passo 1. Intorduzir as variável de folga, excesso e articial conforme apresentado na
Tabela 2.5.

Passo 2. Dado um problema de programação linear, se este for de minimização de-


verá-se escrever uma nova função objcetiva: maximizar Z = - minimizar W = −Σci xi .

Passo 3. Para cada variável de folga e de excesso adicionar 0xi e para cada variável
artificial adicionar −M ai na nova função objectivo, onde M é um grande número po-
sitivo inteiro superior a todos outros da tabela simplex em qualquer iteração.

om
Passo 4. Escrever a tabela inicial simplex, onde as variáveis artificiais não estarão

l.c
na base. Esta é a tabela preliminar simplex. Antes de usar o procedimento normal
para a escolha do elemento pivô, deve-se passar para básicas as variáveis artificiais,
ai
i.é, procurar eliminar a constante M nas colunas ai até chegar a tabela simplex inicial
gm
com uma solução básica inicial viável.
@

Passo 5. Obtida a solução básica inicial, deve-se resolver normalmente o simplex,


o8

até que todos coeficientes da função objectivo ci sejam positivos, ter-se-à uma tabela
et

terminal.
ub

Exemplo 2.18. Usando o método simplex de grande M, resolva o problema de pro-


um

gramação linear.
maximizar  Z = 2x1 + 1x2
m

 1x + 1x2 ≤ 10
 1


sujeito à −x1 + 1x2 ≥ 2


x ,x ≥ 0


1 2

Resolução
maximizar Z = 2x1 + 1x2 + 0x3 + 0x4 − M a1

Mulenga 53 2020
Investigação Operacional


 1x + 1x2 + 1x3 + 0x4 + 0a1 = 10
 1


sujeito à −x1 + 1x2 + 0x3 − 1x4 + 1a1 = 2


x ,x ,x ,x ,a ≥ 0


1 2 3 4 1

Tabela 1P

Base x1 x2 x3 x4 a1 Bi

x3 1 1 1 0 0 10
− -1 1 0 -1 1 2 J

om
Z -2 -1 0 0 MN 0

l.c
Vamos procurar encontrar a solução básica inicial viável, para isso temos que eliminar
ai
M na coluna a1 tomando o 1 da segunda linha como pivô.
gm

Tabela 1
@

Base x1 x2 x3 x4 a1 Bi
o8

l10 = l1
et

x3 1 1 1 0 0 10 (10)
l20 = l2
ub

a1 -1 1 0 -1 1 2 (2) J

-2M l30 = l3 − M l20


um

Z M-2 -M-1N 0 M 0
m

Solução básica inicial é: x1 = 0; x2 = 0; x3 = 10; x4 = 0; a1 = 2 e Z = −2M .


A solução agora obtida não é final, poı́s, a linha indicadora de pivô apresenta números
negativos (−M − 1 < 0), portanto, deve-se procurar melhorar.

Mulenga 54 2020
Investigação Operacional

Tabela 2

base x1 x2 x3 x4 a1 Bi

x3 2 0 1 1 -1 8 (4) J
x2 -1 1 0 -1 1 2 (-)

Z -3 N 0 0 1 M+1 2 l30 = l3 + (M + 1) ∗ l20

Tabela 3

base x1 x2 x3 x4 a1 Bi

om
x1 1 0 1/2 1/2 -1/2 4
x2 0 1 3/2 -1/2 1/2 6

Z 0 0 3/2 1/2 M-1/2 14


l.c
ai
gm
@

Solução x1 = 4; x2 = 6; x3 = x4 = 0; a1 = 0; Zmax = 14
o8

Observação
et

Note que, como as variáveis artificiais não têm significado nenhum para o problema, e
ub

são iguais a zero na tabela terminal simplex, elas podem não figurar na solução.
um

Exemplo 2.19. Usando o método simplex de grande M, resolva o problema de mini-


mização de programação linear.
m

minimizar  W = 5x1 + 12x2




 1x1 + 2x2 ≤ 10


2x1 + 3x2 ≥ 12


sujeito à


 1x1 + 1x2 = 8


x1 , x2 ≥ 0

Mulenga 55 2020
Investigação Operacional

Resolução
maximizar Z = −5x1 − 12x2 + 0x3 + 0x4 − M a1 − M a2


 1x1 + 2x2 + 1x3 + 0x4 + 0a1 + 0a2 = 10


 2x + 3x + 0x − 1x + 1a + 0a = 12

1 2 3 4 1 2
sujeito à


 1x1 + 1x2 + 0x3 + 0x4 + 0a1 + 1a2 = 8


x ,x ,x ,x ,a ,a ≥ 0


1 2 3 4 1 2

Tabela P1

Base x1 x2 x3 x4 a1 a2 Bi

om
x3 1 2 1 0 0 0 10

l.c
− 2 3 0 -1 1 0 12 J
− 1 1 0 0 0 1 8
ai
gm
Z 5 12 0 0 MN M 0
@

Tabela P2
o8

Base x1 x2 x3 x4 a1 a2 Bi
et
ub

x3 1 2 1 0 0 0 10
um

a1 2 3 0 -1 1 0 12
− 1 1 0 M 0 1 8 J
m

Z 5-2M 12-3M 0 0 0 MN -12M l40 = l4 − M l20

Mulenga 56 2020
Investigação Operacional

Tabela 1

Base x1 x2 x3 x4 a1 a2 Bi

x3 1 2 1 0 0 0 10
a1 2 3 0 -1 1 0 12 J
a2 1 1 0 0 0 1 8

Z 5-3M 12-4MN 0 M 0 0 -20M l40 = l4 − M l30

Tabela 2

om
Base x1 x2 x3 x4 a1 a2 Bi

l.c
x3 -1/3 0 1 2/3 -2/3
ai 0 2
x2 2/3 1 0 -1/3 1/3 0 4 J
gm
a2 1/3 0 0 1/3 -1/3 1 4
@

M M 4M
Z − −3 N 0 0 − +4 −4 0 -4M-48
3 3 3
o8
et

Tabela 3
ub

Base x1 x2 x3 x4 a1 a2 Bi
um

x3 0 1/2 1 1/2 -1/2 0 4


m

x1 1 3/2 0 -1/2 1/2 0 6


a2 0 -1/2 0 1/2 -1/2 1 2 J
1 1 1
Z 0 (M + 9) 0 − (M − 5)N (3M − 5) 0 -2M-30
2 2 2

Mulenga 57 2020
Investigação Operacional

Tabela 4

base x1 x2 x3 x4 a1 a2 Bi

x3 0 1 1 0 0 -1 2
x1 1 1 0 0 0 1 8
x4 0 -1 0 1 -1 2 4

Z 0 7 0 0 M M-5 -40

Solução x1 = 8, x2 = 0, x3 = 2, x4 = 4, com Wmin = −Zmax = −(−40) = 40.

om
Varificação: W = 5x1 + 12x2 = 5 ∗ 8 + 12 ∗ 0 = 40.

l.c
Exemplo 2.20. Usando o método simplex de grande M, resolva o problema de mini-
ai
mização de programação linear.
gm

minimizar  W = 3x1 + 4x2


@

 2x + 1x2 ≥ 2
 1


o8

sujeito à 2x1 + 1x2 ≥ 6



et


 x ,x ≥ 0

1 2
ub
um

Resolução
Tabela P1
m

Base x1 x2 x3 x4 a1 a2 Bi

- 2 1 -1 0 1 0 2
- 2 1 0 -1 0 1 6

Z 3 4 0 0 M M 0

Mulenga 58 2020
Investigação Operacional

Tabela P2

Base x1 x2 x3 x4 a1 a2 Bi

a1 2 1 -1 0 1 0 2
- 2 1 0 -1 0 1 6

Z -2M+3 -M+4 M 0 0 M -2M

Tabela 1

Base x1 x2 x3 x4 a1 a2 Bi

om
a1 2 1 -1 0 1 0 2
a2 2 1 0 -1 0 1 6

Z -4M+3 -2M+4 M M 0 0 -8M


l.c
ai
gm
Tabela 2
@

Base x1 x2 x3 x4 a1 a2 Bi
o8

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


et

a2 0 0 1 -1 -1 1 4
ub

Z 0 5/2 -M+3/2 M 2M-3/2 0 -4M-3


um

Tabela 3
m

Base x1 x2 x3 x4 a1 a2 Bi

x1 1 1/2 0 -1/2 0 1/2 3


x3 0 0 1 -1 -1 1 4

Z 0 5/2 0 3/2 M M-3/2 -9

Solução: x1 = 3, x2 = 0, x3 = 4, x4 = 0, com Wmin = 9

Mulenga 59 2020
Investigação Operacional

Exemplo 2.21. Usando o método simplex de grande M, resolva o problema de mini-


mização de programação linear.

maximizar  Z = 1x1 − 1x2 + 3x3




 1x1 + 1x2 + 0x3 ≤ 20



 1x1 + 0x2 + 1x3 = 5
sujeito à


 0x1 + 1x2 + 1x3 ≥ 10


x1 , x2 , x3 ≥ 0

Resolução

om
Tabela P1

Base x1 x2 x3 x4 x5 a1 a2 Bi
l.c
ai
gm
x4 1 1 0 1 0 0 0 20
− 1 0 1 0 0 1 0 5
@

− 0 1 1 0 -1 0 1 10
o8
et

Z -1 1 -3 0 0 M M 0
ub

Tabela P2
um

Base x1 x2 x3 x4 x5 a1 a2 Bi
m

x4 1 1 0 1 0 0 0 20
a1 1 0 1 0 0 1 0 5
− 0 1 1 0 -1 0 1 10

Z -M-1 1 -M-3 0 0 0 M -5M

Mulenga 60 2020
Investigação Operacional

Tabela 1

Base x1 x2 x3 x4 x5 a1 a2 Bi

x4 1 1 0 1 0 0 0 20
a1 1 0 1 0 0 1 0 5
a2 0 1 1 0 -1 0 1 10

Z -M-1 -M+1 -2M-3 0 M 0 0 -15M

Tabela 2

om
Base x1 x2 x3 x4 x5 a1 a2 Bi

l.c
x4 1 1 0 1 0 0 0
ai 20
x3 1 0 1 0 0 1 0 5
gm
a2 -1 1 0 0 -1 -1 1 5
@

Z M+2 -M+1 0 0 M 2M+3 0 15-5M


o8
et

Tabela 3
ub

Base x1 x2 x3 x4 x5 a1 a2 Bi
um

x4 2 0 0 1 1 1 -1 15
m

x3 1 0 1 0 0 1 0 5
x2 -1 1 0 0 -1 -1 1 5

Z 3 0 0 0 1 M+4 M-1 10

Solução x1 = 0, x2 = 5, x3 = 5, x4 = 15 x5 = 0, Zmax = 10.

Mulenga 61 2020
Investigação Operacional

2.3.5 Exercı́cios propostos


Exercı́cio 2.16. Dado o problema de programação linear.

maximizar  Z = 4x1 − 2x2 − 1x3




 1x1 + 1x2 + 1x3 ≤ 3


2x1 + 2x2 + 1x3 ≤ 4


sujeito à


 1x1 − 1x2 + 0x3 ≤ 0


x1 , x2 , x3 ≥ 0

a) O problema está na forma canónica ou não?

om
b) Escreva-o na formá padrão se necessário.
c) Resolva o problema pelo método simplex e apresente a solução óptima.

l.c
d) Algum recurso não sendo usado competamente?. Qual?
Respostas:
ai
a) Sim o problema está na forma canónica, porque é de maximização e todas desigual-
gm

dades são da forma ≤.


@

b) Basta introduzir as variáveis de folga x4 , x5 e x6 nas restrições.


c) A solução óptima é x1 = 1; x2 = 1; x3 = 0; x4 = 1; x5 = 0; x6 = 0; Zmax = 2
o8

d) O recurso 1 não está sento usado completamente, por isso, x4 = 3 − 2 = 1.


et
ub

Exercı́cio 2.17. Dado o problema de programação linear:


um

maximizar  Z = 2x1 + 1x2


1x1 + 1x2 ≤ 5
m






1x1 + 2x2 ≤ 8


sujeito à


 1x1 + 0x2 ≤ 4


x1 , x2 ≥ 0

a) Escreva o problema na forma padrão.


b) Usando o método simplex resolva o problema e apresente a solução óptima para as
variáveis de decisão.
c) Os recursos do problema estão sendo usados completamente?.
Respostas:

Mulenga 62 2020
Investigação Operacional

a) Introduzir as variáveis de folga x3 , x4 e x5 nas restrições.


b) solução X= (4, 1); Zmax = 9.
c) Não. O recurso 2 não está sendo usado completamente só se usou 6 unidades de me-
dida. Vejamos x3 = 5−1∗4−1∗1 = 0; x4 = 8−1∗4−2∗1 = 2; x5 = 4−1∗4−0∗1 = 0.

Exercı́cio 2.18. Uma empresa fabrica dois tipos de estantes com madeiras diferentes,
adquirindo a madeira já cortada, e submetendo-a depois a três operações: furação,
polimento e montagem. Suponha que são as seguintes capacidades fabris, traduzidas
pelas taxas de produção horária, ou seja, pelo número de estantes processadas por hora.

Secções estante tipo A estante tipo B

om
Furação 7 6

l.c
Polimento 4 3
Montagem 6 4
ai
gm

Quando funcionam, as três operações têm custos horários de produção de 20, 10 e


@

22 unidades de medida, respectivamente. Para cada estante tipo A e B a madeira


o8

necessária é adquirida a 8 e 12 u.m, sendo os preços de venda dos estantes 16 e 25


et

u.m, respectivamente.
ub

a) Formule o problema de programação linear que permite maximizar o lúcro.


Resposta: (–)
um

b) Escreva o problema na forma padrão e resolva-o pelo método simplex.


10 26 130
Resposta: x1 = 0; x2 = ; x3 = x4 = 0; x5 = ; Zmax = .
m

3 3 3

Exercı́cio 2.19. Dado o seguinte problema de programação linear:


maximizar  Z = 3x1 + 1x2
 1x1 + 1x2 ≤ 6



sujeito à 1x1 + 2x2 ≤ 10


x ,x ≥ 0


1 2

a) Resolva o problema pelo método simplex e apresente a solução óptima.


Resposta: x1 = 6, x2 = 0, x3 = 0, x4 = 4 com Zmax = 18.

Mulenga 63 2020
Investigação Operacional

b) Usando a interpretação das variáveis de folga, quais os recursos que não estão sendo
usados completamente.
Resposta: recurso 2, com x4 = 4 unidades não utilizadas.

Exercı́cio 2.20. Uma empresa possui em stock sticks de hóquei e jogos de xadrez que
são processados em três maquinarias M1, M2 e M3. Cada stick de hóquei é vendido
a 5 Dólares americanos e cada jogo de xadrez é vendido a 2 Dólares americanos. Um
stick de hóquei requer uma hora de processamento na maquinaria M1, seis horas na
maquinaria M2 e duas horas na maquinaria M3. Um jogo de xadrez requer uma hora
na maquinaria M1, três horas na maquinaria M2 e três horas na maquinaria M3. A
máquina M1 tem disponı́vel no máximo 6 horas por semana, a máquina M2 tem dis-

om
ponı́vel 18 horas e a máquina M3 tem disponı́vel 12 horas por semana.
a) Apresente o modelo económico matemático do problema de programação linear que

l.c
reporta esta informação. ai
Resposta: maximizar z = 5x1 + 2x2 , sujeito á {r1 : 1x1 + 1x1 ≤ 6, r2 : 6x1 + 3x2 ≤ 18,
gm
r3 : 2x1 + 3x2 ≤ 12 e x1 , x2 ≥ 0}
b) Resolva o problema e apresente a solução óptima.
@

Resposta: x1 = 3, x2 = 0, x3 = 3, x4 = 0, x5 = 6 com Zmax = 15.


o8

Exercı́cio 2.21. Uma companhia possuia, há 10 anos, duas minas: a mina A produ-
et

zindo por dia 1 tonelada de minério de alto teor, 3 toneladas de minério de médio teor
ub

e 5 toneladas de minério de baixo teor; a mina B produzia por dia 2 toneladas de cada
um

um dos teores. A companhia precisou de 80 toneladas de minério de alto teor, 160


de médio teor e 200 de baixo teor. Usando o método simplex de duas fase, quantos
m

dias cada mina funcionou, se custava 200 unidades de medida por dia para se fazer
funcionar cada uma?.
Resposta: x1 = 40, x2 = 20, x3 = x4 = 0, x5 = 40, Wmin = 12000 u.m. Portanto,
cada mina A ou B funcionou durante 20 dias. O custo total mı́nimo foi de 12000.
unidades de medida.

Exercı́cio 2.22. Resolva os seguintes problemas de minimização pelo método simplex


de duas fases.

Mulenga 64 2020
Investigação Operacional

minimizar W = 5x1 + 4x2 minimizar W = 5x1 + 8x2 + 12x3




 3x1 + 1x2 ≥ 8 

 1x1 + 3x2 + 3x3 ≥ 6

 

 4x + 4x ≥ 15
  1x + 5x + 6x ≥ 4

1 2 1 2 3
a) sujeito à b) sujeito à
 1x1 + 1x2 ≥ 6  2x1 + 2x2 + 3x3 ≥ 8

 


 

x ,x ≥ 0 x ,x ,x ≥ 0

 

1 2 1 2 3
Respostas:
a) x1 = 1, x2 = 5, x3 = 0, x4 = 9, x5 = 0, Wmin = 25
b) x1 = 3, x2 = 1, x3 = 0, x4 = 0, x5 = 5, x6 = 0, Wmin = 26

Exercı́cio 2.23. Usando o método simplex de grande M, resolva os seguintes proble-

om
mas de programação linear.

minimizar W = 2x1 + 1x2

l.c
maximizar Z = 1x1 + 2x2 + 3x3
ai 
 2x1 + 2x2 ≤ 8
1x + 2x2 + 0x3 ≤ 4
 

 1
 
  3x + 0x ≥ 3

1 2
gm
a) sujeito à 1x1 + 0x2 + 2x3 = 5 b) sujeito à

 
 0x1 + 1x2 ≥ 2
x ,x ,x ≥ 0

 

1 2 3
@


 x ,x ≥ 0

1 2
o8

Respostas:
a) x1 = 0, x2 = 2, x3 = 5/2, x4 = 0, Zmax = 23/2
et

b) x1 = 1, x2 = 2, x3 = 2, x4 = 0, x5 = 0, Wmin = 4
ub
um

Exercı́cio 2.24. Usando o método simplex de grande M, resolva os seguintes proble-


mas de programação linear.
m

minimizar W = 5x1 + 12x2 + 10x3 maximizar Z = 2x1 + 3x2 + 1x3




 1x1 + 2x2 + 1x3 ≤ 8 

 1x1 − 2x2 + 1x3 ≤ 7

 

 2x + 3x + 1x ≥ 3
  1x + 1x − 2x ≥ 2

1 2 3 1 2 3
a) sujeito à b) sujeito à


 2x1 + 1x2 − 1x3 = 1 

 3x1 + 2x2 − 1x3 = 4

 

x ,x ,x ≥ 0 x ,x ,x ≥ 0

 

1 2 3 1 2 3

Respostas:
a) x1 = 0, x2 = 1, x3 = 0, x4 = 6, x5 = 0 Wmin = 12
b) x1 = 0, x2 = 2, x3 = 0, x4 = 11, x5 = 0, Zmax = 6

Mulenga 65 2020
Capı́tulo 3

Dualidade em programação linear

om
Todo o problema de programação linear que é obtido via formulação chama-se primal,

l.c
tem associado a ele um correspondente problema, chamado dual; ambos são comple-
mentares e relacionados de forma que a solução óptima de um fornece informações
ai
completas sobre o outro. A teoria de dualidade em programação linear é atribuida aos
gm
trabalhos de von Neumann (1963)1 .
@
o8

3.1 Transformação do problema primal para dual


et

Seja dado o seguinte problema de programação linear, na forma literal ou canónica,


ub

problema primal.
um

maximizar Z = c1 x1 + c2 x2 + ... + cm xm


 a11 x1 + a12 x2 + ... + a1m xm ≤ b1
m



a21 x1 + a22 x2 + ... + a2m xm ≤ b2





sujeito à ...


an1 x1 + an2 x2 + ... + anm xm ≤ bn






x1 , x2 , .., xm ≥ 0

O seu correspondente problema dual pode ser escrito na forma canónica assim.

1
John von Neumann (1903 - 1957): Cientı́sta Húngaro, trabalhou em áreas como Matemática,
Fı́sica, Estatı́stica e Ciências de computação

66
Investigação Operacional

minimizar  W = b1 y 1 + b2 y 2 + · · · + bn y n


 a11 y1 + a21 y2 + · · · + an1 yn ≥ c1


a12 y1 + a22 y2 + · · · + an2 yn ≥ c2





sujeito à ...


a1m y1 + a2m y2 + · · · + anm yn ≥ cm






y1 , y2 , . . . , yn ≥ 0

As variáveis yj em relação ao problema primal são chamadas variáveis duais. O pro-


blema dual, para os modelos em que o conjunto das restrições tem um único tipo de
desigualdades por exemplo ≤ ou ≥, é construı́do a partir do primal da seguinte forma:

om
l.c
Tabela 3.1: Régras de transformação de um problema primal para dual
ai
i Problema primal i Problema dual
gm

1. Maximização (minimização) 1. Minimização (maximização)


@

2. n restrições (m variáveis) 2. n variáveis (m restrições)


o8

3. Coeficientes da FO (recursos) 3. Recusros (coeficientes da FO)


et

4. Desigualdade ≤ (≥) 4. Desigualdade ≥ (≤)


ub

5. Igualdade = (variável não restrita) 5. Variável não restrita (=)


um
m

Exemplo 3.1. Escreva o problema dual dos priblemas primais apresentados nas ali-
near (a) e (b).

minimizar W = 2x1 + 3x2 maximizar Z = 30x1 + 40x2




 2x1 + 1x2 ≥ 6 

 2x1 + 1x2 ≤ 10

 

1x1 + 2x2 ≥ 4 1x1 + 1x2 ≤ 7

 

a) sujeito à b) sujeito à


 1x1 + 1x2 ≥ 5 

 1x1 + 2x2 ≤ 12

 

x1 , x2 ≥ 0 x1 , x2 ≥ 0

 

Resposta: Os correspondentes problemas duais são:

Mulenga 67 2020
Investigação Operacional

maximizar Z = 6y1 + 4y2 + 5y3 maximizar W = 10y1 + 7y2 + 12y3


 2y + 1y2 + 1y3 ≤ 2  2y + 1y2 + 1y3 ≥ 30
 1  1

 

a) sujeito à 1y1 + 2y2 + 1y3 ≤ 3 b) sujeito à 1y1 + 1y2 + 2y3 ≥ 40

 

y1 , y2 , y3 ≥ 0 y1 , y2 , y3 ≥ 0

 

As operações da transformação são feitas sobre matrizes dos coeficientes das variáveis
bem como de vectores dos recursos, por isso, as transformações podem ser representa-
das na forma matricial como se elustra.

Problema primal  
x1
 

om
 
   x2 
maximizar Z = c1 c2 . . . cm ×   

. . .

l.c
 
xm ai
     
a a12 . . . a1m x b
 11   1  1
gm
     
 a21 a22 . . . a2m   x2   b2 
sujeito à  × ≤ 
@

     
. . . ... ... . . .   . . .  . . . 
o8

     
an1 an2 . . . anm xm bn
et
ub

Problema dual
um

 
y1
m

 
 
   y2 
minimizar W = b1 b2 . . . bn ×   

. . . 
 
yn
     
a a21 ... an1 y c
 11   1  1
     
a121 a22 ... an2   y2   c2 
sujeito à  × ≥ 
     
 ... ... ... . . .  . . . . . .
     
a1m a2m ... anm yn cm

Mulenga 68 2020
Investigação Operacional

Exemplo 3.2. Escrever o problema dual correspondente ao problema primal.

minimizar  W = 4x1 + 8x2




 2x1 + 7x2 ≥ 40


1x1 − 1x2 ≥ 18


sujeito à


 5x1 + 1x2 = 22


x1 , x2 ≥ 0

Resolução
O problema primal tem 3 restrições, portanto 3 variáveis duais sendo a terceira não

om
restrita.

l.c
Etapa 1. Escrever a terceira restrição ou equação na forma de duas inequações.
ai
gm
minimizar  W = 4x1 + 8x2


 2x1 + 7x2 ≥ 40
@



1x1 − 1x2 ≥ 18



o8



sujeito à 5x1 + 1x2 ≥ 22
et



−5x1 − 1x2 ≥ −22




ub



x1 , x2 ≥ 0


um

Etapa 2. Escrever o problema dual correspondente com y3 = y3+ − y3−


m

+ −
maximizar  Z = 40y1 + 18y2 + 22y3 − 22y3
 2y + 1y2 + 5y3+ − 5y3− ≤ 4
 1


sujeito à 7y1 − 1y2 + 1y3+ − 1y3− ≤ 8


y1 , y2 , y3+ , y3− ≥ 0

Etapa 3. Usando a substituição por y3 , tem-se o modelo onde a variável y3 é não


restrita.

Mulenga 69 2020
Investigação Operacional

maximizar  Z = 40y1 + 18y2 + 22y3


 2y + 1y2 + 5y3 ≤ 4
 1


sujeito à 7y1 − 1y2 + 1y3 ≤ 8


 y , y ≥ 0, y ∈ R

1 2 3

3.2 Interpretação económica das variáveis duais


As variáveis duais podem receber uma interpretação económica, que leva ao cálculo
da utilidade marginal (preço de sombra, valor marginal, etc.) dos recursos. Vejamos
as relações das suas soluções através de um exemplo.

om
Exemplo 3.3. Uma indústria dispõe de três recursos A, B e C, em quantidades

l.c
limitadas, com os quais pretende produzir dois produtos: P1 e P2. A Tabela 3.2 dá
ai
a utilização unitária de cada recurso em cada um dos produtos e a disponibilidade de
gm
cada recurso. A indústria sabe que cada unidade produzida de P1 dá uma margem
unitária de lúcro de 5 u.m., e cada unidade produzida de P2 dá uma margem unitária
@

de lúcro de 6 u.m. O problema da programação da produção da indústria é determinar


o8

a quantidade a ser produzida de P1 e P2 de forma a maximizar a margem total de


et

lúcro.
ub

Tabela 3.2: Interpretação das variáveis duais


um

Recurso Horas para produzir 1 unidade de Disponibilidade


m

Produto 1 Produto 2

A 1 2 14
B 1 1 9
C 7 4 56

lucro unitário 5 6 -

Mulenga 70 2020
Investigação Operacional

Resolução
Problema primal:

maximizar  Z = 5x1 + 6x2




 1x1 + 2x2 ≤ 14


1x1 + 1x2 ≤ 9


sujeito à


 7x1 + 4x2 ≤ 56


x1 , x2 ≥ 0

Suponhamos que os produtos 1 e 2 no mercado já não estão a ser muito comprados

om
devido a concorrência, enquanto que os recursos ainda são apreciados. Neste caso, a
indústria tem a alternativa de vender os recursos A, B e C, em vez de empregá-los na

l.c
produção dos dois produtos. ai
gm
O problema neste caso é encontrar o valor de cada unidade do recurso. É evidente
que a venda dos recursos deve fornecer um ganho pelo menos igual ao obtido com a
@

utilização destes na produção.


o8

Sejam
et

y1 o valor do recurso A por unidade de medida,


ub

y2 o valor do recurso B por unidade de medida e


um

y3 o valor do recurso C por unidade de medida.


O valor total do recurso em estoque é dado pela soma VT = 14y1 + 9y2 + 56y3
m

Por outro lado, cada um dos produtos pode ser avaliado, levando em conta a uti-
lização dos recursos por unidade fabricada. Assim, o produto 1 gasta 1 unidade do
recurso A, 1 unidade de B e 7 unidades de C. O produto 2, gasta 2 unidades de A, 1
unidade de B e 4 unidades de C. As avaliações em termos do conteúdo de cada recurso
são: produto 1, 1y1 + 1y2 + 7y3 e para o produto 2, 2y1 + 1y2 + 4y3 .

Normalmente essas avaliações dos produtos não podem ser inferiores as margens unitárias
de lúcro fornecidas por cada produto quando era vendido. Assim pode-se escrever:
• Para o produto 1. 1y1 + 1y2 + 7y3 ≥ 5

Mulenga 71 2020
Investigação Operacional

• Para o produto 2. 2y1 + 1y2 + 4y3 ≥ 6

Neste conjunto de inequações o administrador tem interesse em determinar o valor


mı́nimo do estoque total, tendo em conta que as avaliações dos produtos sejam pelo
menos iguais aos lúcros unitários fornecidos. Em termos de programação linear, está-
se a descrever o problema dual.

Problema dual
minimizar  W = 14y1 + 9y2 + 56y3


 1y1 + 1y2 + 7y3 ≥ 5

sujeito à 2y1 + 1y2 + 4y3 ≥ 6

om


y1 , y2 , y3 ≥ 0

l.c
ai
Conforme as definições anteriores, para o problema primal as variáveis y1 , y2 , y3 são
gm
duais e podem ser interpretadas como avaliações unitárias dos recursos relativos as
contribuições de cada produto para a obtenção do lúcro total. Isto significa que, resol-
@

vidos os problemas, as variáveis duais indicam as variações que ocorrem no valor da


o8

função objectiva do primal, para variações unitárias nos nı́veis dos recursos.
et

Repare que as variáveis xi não podem ser negativas porque representam quantida-
ub

des a serem produzidas, por outro lado, as variáveis yi também são não negativas
um

porque representam o valor de um recurso que existe. Se um determinado recurso não


existir, o valor deste recurso no mı́nimo será igual a zero e não negativo.
m

3.3 Relações entre os valores óptimos do primal e


do dual
Para compreender melhor as relações entre as soluções duais, vamos resolver os dois
problemas e ilustrar como a tabela terminal de um problema pode apresentar uma
informação relativa a solução do outro. Em seguida, apresenta-se a resolução do pro-
blema primal do exemplo 3.3. Atenção, vamos designar por yi , as variáveis de folga.

Mulenga 72 2020
Investigação Operacional

maximizar  Z = 5x1 + 6x2 + 0y1 + 0y2 + 0y3




 1x1 + 2x2 + 1y1 + 0y2 + 0y3 = 14



 1x1 + 1x2 + 0y1 + 1y2 + 0y3 = 9
sujeito à


 7x1 + 4x2 + 0y1 + 0y2 + 1y3 = 56


x1 , x2 , y1 , y2 , y3 ≥ 0

Tabela 1

Base x1 x2 y1 y2 y3 Bi

y1 1 2 1 0 0 14 (7)J

om
y2 1 1 0 1 0 9 (9)

l.c
y3 7 4 0 0 1 56 (14)
ai
Z -5 -6 N 0 0 0 0
gm

Tabela 2
@

Base x1 x2 y1 y2 y3 Bi
o8

x2 1/2 1 1/2 0 0 7 (14)


et

y2 1/2 0 -1/2 1 0 2 (4) J


ub

y3 5 0 -2 0 1 28 (5.6)
um

Z -2N 0 3 0 0 42
m

Tabela 3

Base x1 x2 y1 y2 y3 Bi

x2 0 1 1 -1 0 5
x1 1 0 -1 2 0 4
y3 0 0 3 -10 1 8

Z 0 0 1 4 0 50

Mulenga 73 2020
Investigação Operacional

Solução do problema primal: x1 = 4; x2 = 5; y1 = 0; y2 = 0; y3 = 8 e Zmax = 50

Resolução do problema dual do exemplo 3.3. Designando por xi as variáveis de excesso


e ai as variáveis artificiais, logo estamos numa escolha entre o método de grande M e
o método de duas fases; vamos optar pelo método de duas fases.

Problema dual.
minimizar  W = 14y1 + 9y2 + 56y3 + 0x1 + 0x2 + 0a1 + 0a2


 1y1 + 1y2 + 7y3 − 1x1 + 0x2 + 1a1 + 0a2 = 5

sujeito à 2y1 + 1y2 + 4y3 + 0x1 − 1x2 + 0a1 + 1a2 = 6

om
y1 , y2 , y3 , x1 , x2 , a1 , a2 ≥ 0

l.c
Tabela inicial da 1a fase
ai
Tabela 1 1a F
gm

Base y1 y2 y3 x1 x2 a1 a2 Bi
@

a1 1 1 7 -1 0 1 0 5 (0.71) J
o8

a2 2 1 4 0 -1 0 1 6 (1.50)
et

W -14 -9 -56 0 0 0 0 0
ub
um

Za -3 -2 -11 1 1 0 0 -11
m

Tabela 2 1a F

Base y1 y2 y3 x1 x2 a1 a2 Bi
y3 1/7 1/7 1 -1/7 0 1/7 0 5/7 (5)
a2 10/7 3/7 0 4/7 -1 -4/7 1 22/7 (2.2) J

W 6 -1 0 -8 0 8 0 40

Za -10/7 N -3/7 0 -4/7 1 11/7 0 -22/7

Mulenga 74 2020
Investigação Operacional

Tabela 3 1a F

Base y1 y2 y3 x1 x2 a1 a2 Bi
y3 0 1/10 1 -1/5 1/10 1/5 -1/10 2/5
y1 1 3/10 0 2/5 -7/10 -2/5 7/10 11/5

W 0 4/5 0 -28/5 -21/5 28/5 21/5 266/5

Za 0 0 0 0 0 1 1 0

Como Za = 0; a1 = 0 e a2 = 0, termina-se a primeira fase e começa-se a segunda fase.

om
Tabela 1 2a F

Base y1 y2 y3 x1 x2 Bi
l.c
ai
y3 0 1/10 1 -1/5 1/10 2/5 (4) J
gm

y1 1 3/10 0 2/5 -7/10 11/5


@

W 0 4/5 N 0 -28/5 -21/5 266/5


o8
et

Tabela 2 2a F
ub

Base y1 y2 y3 x1 x2 Bi
um

y2 0 1 10 -2 1 4
m

y1 1 0 -3 1 -1 1

W 0 0 -8 -4 -5 50

Solução dual y1 = 1; y2 = 4; y3 = 0; x1 = 0; x2 = 0 com Wmin = 50

Comparando as duas tabelas terminais e as soluções obtidas chega-se as seguintes


conclusões ou relações.

Relação 1. As soluções óptimas dos dois problemas guardam entre se a relação:

Mulenga 75 2020
Investigação Operacional

maximizar Z = minimizar W ⇒ Zmax = Wmin = 50. Quer dizer as tabelas óptimas


têm o mesmo valor da função objectiva.

Relação 2. Os valores das variáveis duais podem ser obtidos da solução do pro-
blema primal, bastando tomar os coeficientes da última linha das variáveis básicas
iniciais. Se o dual é de maximizar, lemos os valores tal como estão, caso contrário
lemos com o sinal oposto, portanto:

Saindo de max (primal) para min (dual) - tabela terminal do primal


⇒ Solução primal: x1 = 4; x2 = 5; y1 = 0; y2 = 0; y3 = 8; Zmax = 50
⇒ Solução dual: y1 = 1; y2 = 4; y3 = 0; x1 = 0; x2 = 0; Wmin = 50

om
Saindo de min (dual) para max (primal) - tabela terminal do dual

l.c
⇒ Solução dual: y1 = 1; y2 = 4; y3 = 0; x1 = 0; x2 = 0; Wmin = 50
ai
⇒ Solução primal: x1 = 4; x2 = 5; y1 = 0; y2 = 0; y3 = 8; Zmax = 50
gm

Portanto, partindo das relações 1 e 2, chega-se a conclusão de que todo o problema


@

de minimização pode ser resolvido bastando apenas transformá-lo em dual ou no pro-


o8

blema de maximização, em seguida resolver o problema e ler a solução do primal.


et
ub

Exemplo 3.4. Dado o seguinte problema de programação linear.


um

minimizar W = 24x1 + 12x2 + 5x3


m

 4x + 6x2 + 0x3 ≥ 2
 1


sujeito à 6x1 + 2x2 + 1x3 ≥ 4


x ,x ,x ≥ 0


1 2 3

a) Escreva o dual correspontente.


b) Resolva o problema dual e apresente as soluções dos problemas primal e dual.

Resolução
a) O problema dual correspondente é:

Mulenga 76 2020
Investigação Operacional

maximizar  Z = 2y1 + 4y2




 4y1 + 6y2 ≤ 24


6y1 + 2y2 ≤ 12


sujeito à


 0y1 + 1y2 ≤ 5


y1 , y2 ≥ 0

b) Resolução do problema dual, considerando as variáveis duais x1 , x2 , x3 de folga.

Tabela 1

om
Base y1 y2 x1 x2 x3 Bi

x1 4 6 1 0 0 24 (4) J
x2 6 2 0 1 0 12 (6)
l.c
ai
gm
x3 0 1 0 0 1 5 (5)
Z -2 -4 N 0 0 0 0
@

Tabela 2
o8

Base y1 y2 x1 x2 x3 Bi
et
ub

y2 2/3 1 1/6 0 0 4
um

x2 14/3 0 -1/3 1 0 4
x3 -2/3 0 -1/6 0 1 1
m

Z 2/3 0 2/3 0 0 16

Solução primal X=(2/3, 0, 0, 2/3, 0); com Wmin = 16


Solução dual Y=(0, 4, 0, 4, 1); com Zmax = 16

Repare que na solução do primal, os valores das variáveis foram obtidos ao longo
das colunas começando por x1 = 2/3, x2 = 0, x3 = 0 porque são variáveis de decisão
no problema primal e só depois levou-se y1 = 2/3, y2 = 0.

Mulenga 77 2020
Investigação Operacional

Exemplo 3.5. Dado o problema de programação linear seguinte.

minimizar  W = 4y1 + 5y2




 3y1 + 3y2 ≥ 6


4y1 + 3y2 ≥ 10


sujeito à


 2y1 + 1y2 ≥ 12


y1 , y2 ≥ 0

a) Escreva o problema dual correspondente.


b) Resolva o problema dual e apresente as soluções do primal e dual.

om
Resolução
a) O problema dual correspondente é:
maximizar Z = 6x1 + 10x2 + 12x3
l.c
ai
 3x + 4x2 + 2x3 ≤ 4
 1

gm

sujeito à 3x1 + 3x2 + 1x3 ≤ 5


@

 x ,x ,x ≥ 0

1 2 3
o8

b) Resolução do problema dual


et
ub

Tabela 1
um

Base x1 x2 x3 y1 y2 Bi
m

y1 3 4 2 1 0 4 (2) J
y2 3 3 1 0 1 6 (5)

Z -6 -10 -12 N 0 0 0

Mulenga 78 2020
Investigação Operacional

Tabela 2

Base x1 x2 x3 y1 y2 Bi

x3 3/2 2 1 1/2 0 2
y2 3/2 1 0 -1/2 1 3

Z 12 14 0 6 0 24

Solução Primal: Y = (6, 0, 12, 14, 0), Wmin = 24


Solução Dual : X = (0, 0, 2, 0, 3); Zmax = 24

om
Exemplo 3.6. Dado o problema de programação linear seguinte.

minimizar  W = 12y1 + 16y2 + 12y3


l.c
ai
 2y + 2y2 + 1y3 ≥ 20
 1
gm


sujeito à 3y1 + 3y2 + 2y3 ≥ 25

@


 y ,y ,y ≥ 0

1 2 3
o8
et

a) Escreva o problema dual correspontente.


ub

b) Resolva o problema dual e apresente a solução do primal.


um

Resolução
a) O problema dual é:
m

maximizar  Z = 20x1 + 25x2




 2x1 + 3x2 ≤ 12


2x1 + 3x2 ≤ 16


sujeito à


 1x1 + 2x2 ≤ 12


x1 , x2 ≥ 0

b) Resolução do problema dual

Mulenga 79 2020
Investigação Operacional

Tabela 1

Base x1 x2 y1 y2 y3 Bi

y1 2 3 1 0 0 12 (4) J
y2 2 3 0 1 0 16 (5.33)
y3 1 2 0 0 1 12 (6)

Z -20 -25 N 0 0 0 0

Tabela 2

Base x1 x2 y1 y2 y3 Bi

om
x2 2/3 1 1/3 0 0 4 (6) J
y2 0 0 -1 1 0 4 (∞)
l.c
ai
y3 -1/3 0 -2/3 0 1 4 (-)
gm

Z -10/3 N 0 25/3 0 0 100


@

Tabela 3
o8

Base x1 x2 y1 y2 y3 Bi
et

x1 1 3/2 1/2 0 0 6
ub

y2 0 0 -1 1 0 4
um

y3 0 1/2 -1/2 0 1 6
m

Z 0 5 10 0 0 120

A solução do primal é: Y = (10,0,0,0,5); Wmin = 120.

3.4 Exercı́cios propostos


Exercı́cio 3.1. Escrever os problemas duais correspondentes aos seguintes problemas
de programação linear.

Mulenga 80 2020
Investigação Operacional

minimizar W = 30y1 + 20y2


maximizar Z = 30x1 + 80x2 
 5y1 + 1y2 ≥ 10
1x + 2x2 ≤ 32
 

 1
 
  2y + 2y ≥ 12

1 2
a) sujeito à 3x1 + 4x2 ≤ 84 b) sujeito à

 
 1y1 + 4y2 ≥ 12
x ,x ≥ 0

 

1 2 
y1 , y2 ≥ 0

Resposta: Problemas duais

minimizar  W = 32y1 + 84y2 maximizar Z = 10x1 + 12x2 + 12x3


 1y + 3y2 ≥ 30  5x + 2x2 + 1x3 ≤ 30
 1  1

 

a) sujeito à 2y1 + 4y2 ≥ 80 b) sujeito à 1x1 + 2x2 + 4x3 ≤ 20

om

 

y1 , y2 ≥ 0 x ,x ,x ≥ 0

 

1 2 3

l.c
Exercı́cio 3.2. Escreva os problemas na forma canónica e transforme – os em duais.
ai
maximizar  Z = 16y1 + 8y2
gm
minimizar  W = 9x1 + 2x2 
 −1y1 − 1y2 ≥ −10
4x1 + 1x2 ≥ 13
 

@

 

  1y + 1y ≤ 9

1 2
a) sujeito à −3x1 − 1x2 ≤ −12 b) sujeito à
o8


 
 3y1 + 1y2 ≤ 12
x1 , x2 ≥ 0

 

et


y1 , y2 ≥ 0


ub

Resposta: Problemas na forma canônica.


um

maximizar Z = 16y1 + 8y2


minimizar  W = 9x1 + 2x2


 1y1 + 1y2 ≤ 10
4x + 1x2 ≥ 13
m

 

 1
 
1y1 + 1y2 ≤ 9
 

a) sujeito à 3x1 + 1x2 ≥ 12 b) sujeito à

 
 3y1 + 1y2 ≤ 12
x1 , x2 ≥ 0

 


y1 , y2 ≥ 0


Correspondentes problemas duais

maximizar  Z = 13y1 + 12y2 minimizar W = 10x1 + 9x2 + 12x3


 4y + 3y2 ≤ 9  1x + 1x2 + 3x3 ≥ 16
 1  1

 

a) sujeito à 1y1 + 1y2 ≤ 2 b) sujeito à 1x1 + 1x2 + 1x3 ≥ 8

 

 y ,y ≥ 0 x ,x ,x ≥ 0
 

1 2 1 2 3

Mulenga 81 2020
Investigação Operacional

Exercı́cio 3.3. Considere o seguinte problema de programação linear:

minimizar  W = 5x1 + 2x2




 2x1 + 1x2 ≥ 8


1x1 + 1x2 ≥ 6


sujeito à 1

 x1 + 1x2 ≥ 4



 2
 x1 , x2 ≥ 0

a) Escreva o problema dual correspondente.


b) Obtenha a solução do primal a partir da resolução do dual pelo método simplex.
Resposta: a) (—), b) X = (0, 8, 0, 2, 4) com Wmin = 16

om
l.c
Exercı́cio 3.4. Considere o seguinte problema de programação linear.
maximizar  Z = 12x1 + 15x2 ai
 4x + 3x2 ≤ 12
 1
gm


sujeito à 2x1 + 5x2 ≤ 10

@


x ,x ≥ 0


1 2
o8

Usando o método simplex resolva o problema e apresente as soluções do primal e


et

dual.
ub

Resposta:    
15 8 15 12 300
Primal: X = , , 0, 0 , Dual: Y = , , 0, 0 com Zmax = Wmin = .
um

7 7 7 7 7
m

Exercı́cio 3.5. No seguinte problema, transformar em dual, resolver o dual e apre-


sentar as soluções do primal e dual.

minimizar  W = 5y1 + 2y2


 2y + 3y2 ≥ 6
 1


sujeito à 2y1 + 1y2 ≥ 7


 y ,y ≥ 0

1 2

Resposta: Primal: Y = (0,7,15,0); Dual: X=(0,2,1,0); Wmin = Zmax = 14.

Mulenga 82 2020
Investigação Operacional

Exercı́cio 3.6. Uma empresa de transporte dispõe de dois tipos de camiões que po-
dem operar em três percursos diferentes. A capacidade semanal de transporte em cada
um dos tipos de camiões e a procura semanal mı́nima de serviços de carga, expressos
em toneladas estão indicados no quadro seguinte.

Percursos tipo A tipo B Procura mı́nima

1 10 10 180
2 12 15 200
3 10 10 220

om
Sabendo que os custos de operação de cada camião são 50 e 80 u.m por semana
respectivamente, quantos veı́culos de cada tipo deve a empresa utilizar nos percursos

l.c
indicados, de modo a minimizar os custos. (use o procedimento dual se necessário).
Resposta: X = (22, 0, 40, 64) com Wmin = 1100 unidades de medida.
ai
gm
Exercı́cio 3.7. Dado o seguinte problema de programação linear:
@

minimizar  W = 4y1 + 5y2


o8

 1y + 2y2 ≥ 80
 1

et


sujeito à 3y1 + 1y2 ≥ 75
ub



y1 , y2 ≥ 0


um

a) Escreva o problema dual correspondente. (–).


m

b) Resolva o dual e apresente as soluções dos problemas


 primal
 e dual.
11 3
Resposta: Primal Y =(14,33,0,0), Dual X = , , 0, 0 com Wmin = Zmax = 221.
5 5

Mulenga 83 2020
Capı́tulo 4

Análise de sensibilidade em
programação linear

om
l.c
4.1 Introdução
ai
gm

A análise de sensibilidade em modelos de programação linear significa simplesmente


@

procurar uma nova interpretação a partir da solução obtida. Já que tanto os recursos
o8

como os preços no mercado estão sujeitos a mudanças contı́nuas e subsequente rea-


valiações, a análise Pós – Optimização é uma ferramenta dinâmica e indispensável ao
et

administrador para avaliar as consequências das mudanças.


ub

A análise de sensibilidade da solução óptima tem como objectivo determinar as condições


um

para as quais a solução óptima inicial é ainda válida. A solução óptima de um pro-
m

blema é calculada com base nos dados do modelo, que podem sofrer variações por
várias razões como por exemplo:
• Os dados estimados já não traduzem a realidade.
• Novas possibilidades apareceram após a formulação do modelo e que devem ser con-
sideradas na implementação da solução.
• Os preços da matéria prima mudaram e não é possı́vel comprar ou produzir mesmas
quantidades que se tinham estimado no modelo inicial.

Assim, pode-se dizer de que a análise de sensibilidade tem como primeiro objectivo
verificar a validade da solução obtida para um determinado modelo quando submetida

84
Investigação Operacional

a variações nos recursos ou nos coeficientes do modelo original. Em segundo lugar


outras necessidades podem surgir e neste caso devem ser incorporadas no modelo para
que este responda as novas exigências da sociedade.

4.1.1 Propriedades operacionais entre o primal e dual


Antes de introduzir a análise de sensibilidade importa referir algumas propriedades
que facilitam as operações que serão realizadas neste capı́tulo. Para isso, voltemos ao
exemplo 3.3 e apresentemos apenas as tabelas inicial e terminal do problema primal.

maximizar  Z = 5x1 + 6x2

om


 1x1 + 2x2 ≤ 14


1x1 + 1x2 ≤ 9

l.c
sujeito à


 7x1 + 4x2 ≤ 56 ai


x1 , x2 ≥ 0


gm
@

Tabela 1
o8

Base x1 x2 x3 x4 x5 Bi
et

x3 1 2 1 0 0 14
ub

x4 1 1 0 1 0 9
um

x5 7 4 0 0 1 56
Z -5 -6 0 0 0 0
m

Tabela 3

Base x1 x2 x3 x4 x5 Bi
x2 0 1 1 -1 0 5
x1 1 0 -1 2 0 4
x5 0 0 3 -10 1 8

Z 0 0 1 4 0 50

Mulenga 85 2020
Investigação Operacional

Propriedade 1. Em qualquer iteração do método simplex, no primal ou dual, a ma-


triz que aparece sob as variáveis básicas usadas na solução inicial (variáveis de folga
x3 , x4 , x5 ), pode ser usada para gerar as contribuições unitárias para o valor da função
objectiva (coeficientes da última linha do quadro simplex, designados por ∆i ).
A prática desta propriedade pode ser vista em três passos:

Passo 1. Identificar os coeficientes originais da função objectiva correspondentes às


variáveis básicas na actual iteração e escrevê-los num vector linha, na mesma ordem
das linhas da tabela simplex terminal. Neste caso, na tabela terminal (tabela 3) as
variáveis básicas são: x2 , x1 , x5 cujos coeficientes da função objectiva são (6 5 0)
.

om
(x2 x1 x5 ) → (6 5 0)

l.c
Passo 2. Multiplicar o vector resultante pela matriz que aparece sob as variáveis
ai
iniciais na respectiva iteração. Neste caso, a matriz que aparece na tabela 3 sob as
gm
variáveis básicas iniciais (x3 x4 x5 ), chamada matriz fundamental é:
@

 
1 −1 0
o8

 
−1
 
2 0
et

 
3 −10 1
ub

Multiplicando o vector linha pela matriz dos coeficientes das variáveis básicas tem-se:
um

 
1 −1 0
m

     
6 5 0 × −1 0 = 1 4 0
 
2
 
3 −10 1

Atenção ao produto matricial:


6 ∗ 1 + 5 ∗ (−1) + 3 ∗ 0 = 1
6 ∗ (−1) + 5 ∗ 2 + 0 ∗ 1 = 4
6∗0+5∗0+0∗0=0

Passo 3: A função objectiva da tabela 1 é Z = 6x1 + 5x2 + 0x3 + 0x4 + 0x5 e


da tabela terminal na última linha é Z = 0x1 + 0x2 + 1x3 + 4x4 + 0x5 .

Mulenga 86 2020
Investigação Operacional

Subtraindo o vector resultante aos valores iniciais das variáveis básicas iniciais obte-
mos os resultados da terceira linha na iteração final.
• Para a variável x3 : ∆3 = 1–0 = 1
• Para a variável x4 : ∆4 = 4–0 = 4
• Para a variável x5 : ∆5 = 0–0 = 0
Os valores obtidos por esta propriedade são chamados multiplicadores simplex e
são valores óptimos das variáveis duais. Outros nomes usados são: custos implı́citos,
custos de oportunidade ou preços de sombra.

Propriedade 2. Em qualquer iteração do primal ou dual os valores das variáveis


na base podem ser obtidos pela multiplicação da matriz fundamental definida na pro-

om
priedade 1, pelo vector coluna contendo os valores originais dos recursos.

l.c
Da tabela 3, os valores das variáveis básicas são:
ai
       
1 −1
gm
x2 0 14 5
       
x1  = −1 0 ×  9  = 4
       
2
@

       
x5 3 −10 1 56 8
o8
et

Atenção, o produto da matriz pelo vector coluna foi efectuado da seguinte forma:
ub

Para x2 = 1 ∗ 14 − 1 ∗ 9 + 0 ∗ 56 = 5
Para x1 = −1 ∗ 14 + 2 ∗ 9 + 0 ∗ 56 = 4
um

Para x5 = 3 ∗ 14 − 10 ∗ 9 + 1 ∗ 56 = 8
⇒ O que confirma os resultados obtidos na iteração final.
m

Propriedade 3. Em qualquer iteração do primal ou dual, os coeficientes de qualquer


variável nas restrições podem ser obtidos pela multiplicação da matriz definida na
propriedade 1, pelo vector coluna contendo os coeficientes originais da mesma variável
nas restrições.

Por exemplo, os coeficientes originais de x3 na tabela simplex inicial são:

Mulenga 87 2020
Investigação Operacional

 
 
a13 1
   
a23  = 0
   
   
a33 0
Na segunda iteração ou tabela terminal, os coeficientes de x3 são obtidos pelo produto:
      
a 1 −1 0 1 1
 13       
a23  = −1 0 × 0 =  −1 
       
2
       
a33 3 −10 1 0 3

om
Propriedade 4. Em qualquer iteração do método simplex, a substituição das variáveis

l.c
duais pelos respectivos multiplicadores do simplex, relativos a variáveis básicas da
ai
solução inicial, permite obter os coeficientes da equação Z transformada, pela dife-
gm
rença entre o primeiro membro e segundo das restrições correspondentes do dual.
@

Para ilustração da propriedade, tomemos o mesmo exemplo, na 2a iteração do problema


o8

primal (tabela 3), temos os seguintes multiplicadores simplex relativos as variáveis


básicas na solução inicial.
et
ub

Para a variável x3 : ∆3 = 1 correspondente à variável dual y1


um

Para a variável x4 : ∆4 = 4 correspondente à variável dual y2


Para a variável x5 : ∆5 = 0 correspondente à variável dual y3
m

As restrições duais correspondentes a x1 e x2 são respectivamente:


Para x1 → 1y1 + 1y2 + 7y3 ≥ 5
Para x2 → 2y1 + 1y2 + 4y3 ≥ 6

Os coeficientes de Z transformado são obtidos substituindo as variáveis duais pelos


correspondentes multiplicadores simplex, isto é: y1 por ∆3 , y2 por ∆4 , y3 por ∆5 e
fazer diferença entre o primeiro e segundo membro da inequação.

Para x1 , ∆1 = 1 ∗ 1 + 1 ∗ 4 + 7 ∗ 0–5 = 0

Mulenga 88 2020
Investigação Operacional

Para x2 , ∆2 = 2 ∗ 1 + 1 ∗ 4 + 4 ∗ 0–6 = 0

O que confere com os resultados obtidos na resolução do problema primal para a


linha Z. Como todos os multiplicadores são positivos significa que a tabela é terminal.
Se algum valor por exemplo ∆i < 0, isto significa que a solução ainda não é óptima,
e a variável xi deve entrar na base. Por outro lado a solução do dual não é viável, o
que leva a concluir que:

• Enquanto o primal não for óptimo, o dual será não viável.

• As restrições do dual, correspondentes às variáveis básicas, são satisfeitas como


equações, o que significa que a respectiva variável de excesso é nula.

om
• O problema primal começa com uma solução viável não óptima que deve ser

l.c
optimizada, enquanto o dual começa com uma solução inviável com valor superior
ao óptimo e continua não viável até que a solução óptima seja atingida
ai
gm

4.1.2 Método simplex dual - simplex


@

Até agora, nos problemas de programação linear que consideramos era obrigatório que
o8

todos os elementos do lado direito da tabela simplex fossem positivos. Isto significa
et

que todas as soluções eram viáveis. Pela propriedade 4, sabemos que as soluções duais
são não viáveis até que a solução óptima seja obtida. No entanto, é possı́vel que du-
ub

rante o processo de solução, venhamos a ter uma solução dual viável, o que significa
um

não viável no primal.


m

O método simplex dual-simplex, permite resolver tais situações onde os valores dos
recursos são negativos. Assim, este método para alé da dualidade constitui uma alter-
nativa para resolver os problemas de minimização bastando ter recursos negativos no
problema. As diferenças em relação aa variantes do método simplex já apresentadas
resumem-se nas régras de entrada e saı́da de variáveis na base.

Dado um problema de minimização ou de maximização com restrições da forma ≥,


para resolvé-lo pelo método simple dual - simplex deve-se: (a) transformar as ine-
quações do tipo ≥ para ≤ multiplicando por (-1) a linha, (b) introduzir uma variável
de folga em cada restrição, em seguida aplicar as régras 1 e 2 para o problema.

Mulenga 89 2020
Investigação Operacional

Régra 1. A linha pivô corresponde a linha da variável básica com o menor valor
negativo nos recursos. lp = min{−bj }.

Regra 2. A coluna pivô é escolhida entre as variáveis fora da base, dividindo os


coeficientes negativos da função objectiva pelos correspondentes coeficientes negativos
cj
da linha pivô. cp = min( ) para aij < 0.
aij

Elemento pivô é o elemento −aij que tem o menor valor entre os quocientes encon-
trados, Ele está no cruzamento entre a linha pivô e a coluna pivô, por isso, ecrevemos:
ep = lp × cp

om
Se todas as variáveis básicas tiverem valores positivos nos recursos e os valores da
linha Z transformada apresentar valores que satisfazem a condição de solução óptima,

l.c
isto é: ∀cj ≥ 0 para maximização ou ∀cj ≤ 0 para os problemas de minimização, foi
ai
atingida a solução óptima, caso contrário continuam as iterações.
gm

Exemplo 4.1. Usando o método simplex dual - simplex resolva o seguinte problema
@

de programação linear.
o8

minimizar W = 2x1 + 3x2


et

 4x + 8x2 ≥ 32
ub

 1


sujeito à 3x1 + 6x2 ≥ 36
um



 x ,x ≥ 0

1 2
m

Resolução
Vamos multiplicar por (-1) cada linha ou restrição
maximizar W = 2x1 + 3x2


 −4x1 − 8x2 ≤ −32

sujeito à −3x1 − 6x2 ≤ −36


 x ,x ≥ 0

1 2

Mulenga 90 2020
Investigação Operacional

Tabela 1

base x1 x2 x3 x4 B

x3 -4 -8 1 0 -32 (-32)
x4 -3 -6 0 1 -36 (-36) J

W -2 -3 0 0 0

(2/3) (3/6)N - - -

Tabela 2

om
base x1 x2 x3 x4 B

x3 0 0 1 -4/3 16
x2 1/2 1 0 -1/6 6
l.c
ai
gm
W -1/2 0 0 -1/2 18
@

Solução X = (0,6,16, 0); Wmin = 18


o8

Observações
et

1. Repare que introduzimos variáveis de folga para resolvermos porque temos res-
ub

trições da forma menor ou igual.


2. Nos problemas de maximização a tabela terminal tinha na linha z todos valores não
um

negativos. Para os problemas de minimização a solução é atingida se na linha z não


m

temos valores positivos.

Exemplo 4.2. Usando o método simplex dual - simplex resolva o seguinte problema
de programação linear.
minimizar  W = 2x1 + 3x2


 2x1 + 1x2 ≤ 20


 2x + 1x ≥ 10

1 2
sujeito à


 1x1 + 2x2 ≥ 8


 x ,x ≥ 0

1 2

Mulenga 91 2020
Investigação Operacional

Resolução
Vamos multiplicar por (-1) cada restrição da forma ≥.
maximizar  W = 2x1 + 3x2


 2x1 + 1x2 ≤ 20


 −2x − 1x ≤ −10

1 2
sujeito à


 −1x1 − 2x2 ≤ −8


x ,x ≥ 0


1 2

Tabela 1
Base x1 x2 x3 x4 x5 B

om
x3 2 1 1 0 0 20 (+)

l.c
x4 -2 -1 0 1 0 -10 (-10) Jai
x5 -1 -2 0 0 1 -8 (-8)
gm

W -2 -3 0 0 0 0
@

(1)N (3) - - - -
o8
et

Tabela 2
ub

Base x1 x2 x3 x4 x5 B
um

x3 0 0 1 -1 0 10 (+)
m

x1 1 1/2 0 -1/2 0 5 (+)


x5 0 -3/2 0 -1/2 1 -3 (-3) J

W 0 -2 0 -1 0 10

- (1.3)N - (2) - -

Mulenga 92 2020
Investigação Operacional

Tabela 3
Base x1 x2 x3 x4 x5 B
x3 0 0 1 -1 0 10
x1 1 0 0 -2/3 1/3 4
x2 0 1 0 1/3 -2/3 2
W 0 0 0 -1/3 -4/3 14

Solução X = (4, 2, 10, 0, 0); Wmin = 14

om
Exemplo 4.3. Usando o método simplex dual - simplex resolva o seguinte problema

l.c
de programação linear.
ai
minimizar W = 3x1 + 3x2
gm



 3x1 + 3x2 ≥ 5

@


4x1 + 3x2 ≥ 10


sujeito à
o8



 2x1 + 1x2 ≥ 12

et


x1 , x2 ≥ 0


ub
um

Resolução
maximizar  W = 3x1 + 3x2
m



 −3x1 − 3x2 ≤ −5


 −4x − 3x ≤ −10

1 2
sujeito à


 −2x1 − 1x2 ≤ −12


x ,x ≥ 0


1 2

Mulenga 93 2020
Investigação Operacional

Tabela 1

Base x1 x2 x3 x4 x5 B

x3 -3 -3 1 0 0 -5 (-5)
x4 -4 -3 0 1 0 -10 (-10)
x5 -2 -1 0 0 1 -12 (-12)J

W -3 -3 0 0 0 0

(1.5)N (3) - - - -

om
Tabela 2

l.c
Base x1 x2 x3 x4 x5 B

x3 0 -3/2 1 0 -3/2 13
ai
gm
x4 0 -1 0 1 -2 14
x1 1 1/2 0 0 -3/2 6
@
o8

W 0 -3/2 0 0 -3/2 18
et
ub

Solução X = (6, 0, 13, 14, 0); Wmin = 18.


um

4.2 Variação nas quantidades dos recursos


m

Nos problemas de programação lienar, os recursos dizem respeito à quatidades que as


empresam compram para utilizar na produção ou viabilização de outras actividades do
interesse da empresa. Como estas quantidades são compradas, mediante a fluctuação
dos preços do mercado, os recursos podem estar mais acessı́veis ou menos. Por isso,
os gestores da programação da produção devem estar atentos a estas fluctuações e
procurar novas soluções a medida que vão ocorrendo as mudança das disponibilidades.

Exemplo 4.4. Para ilustrar, vamos utilizar as tabelas simplex inicial e terminal
do exemplo 3.3 do cápitulo 3.

Mulenga 94 2020
Investigação Operacional

maximizar  Z = 5x1 + 6x2




 1x1 + 1x2 ≤ 14


1x1 + 2x2 ≤ 9


sujeito à


 7x1 + 4x2 ≤ 56


x1 , x2 ≥ 0

Tabela 1

Base x1 x2 x3 x4 x5 Bi

x3 1 2 1 0 0 14

om
x4 1 1 0 1 0 9

l.c
x5 7 4 0 0 1 56

Z -5 -6 0 0 0 0
ai
gm
Tabela T
@

Base x1 x2 x3 x4 x5 Bi
o8

x2 0 1 1 -1 0 5
et

x1 1 0 -1 2 0 4
ub

x5 0 0 3 -10 1 8
um

Z 0 0 1 4 0 50
m

Solução X = (4, 5, 0, 0, 8); Zmax = 50

a) Vamos supor que o recurso b1 = 14 seja alterado de 14 para 16. Como esta mudança
afectará os valores da solução original?

De acordo com a propriedade 2, os novos valores das variáveis básicas são dados pelo
produto:

Mulenga 95 2020
Investigação Operacional

      
x 1 −1 0 16 7
 2      
x1  = −1 0 ×  9  =  2 
       
2
       
x5 3 −10 1 56 14

O valor da função objectiva depois deste produto é Z = 5 ∗ 2 + 6 ∗ 7 = 52, subs-


tituindo o vector coluna e o valor Z na tabela terminal temos

Tabela T

om
Base x1 x2 x3 x4 x5 Bi

x2 0 1 1 -1 0 7
x1 1 0 -1 2 0 2
l.c
ai
gm
x5 0 0 3 -10 1 14

Z 0 0 1 4 0 52
@
o8

Desta tabela, como todos os valores dos recursos são positivos, a solução actual é viável
et

e óptima. Assim X = (2, 7, 0, 0, 14) com Zmax = 52, o que significa que a variação de
ub

b1 de 14 para 16 trouxe um aumento no lúcro de ∆z = 52–50 = +2 u.m.


um

b) Assumindo que quando aumenta a quantidade de recurso a comprar também au-


mentamos em termos de lucros finais para instituição valor variar agora b1 de 14 para
m

20. E calculemos a nossa solução pelo mesmo procedimento.


       
x 1 −1 0 20 11
 2      
x1  = −1 0 ×  9  = −2
       
2
       
x5 3 −10 1 56 26

O valor da função objectiva depois deste produto é Z = 5 ∗ (−2) + 6 ∗ 11 = 56,


substituindo o vector coluna e o valor Z na tabela terminal temos:

Mulenga 96 2020
Investigação Operacional

Tabela 1

Base x1 x2 x3 x4 x5 Bi

x2 0 1 1 -1 0 11
x1 1 0 -1 2 0 -2
x5 0 0 3 -10 1 26

Z 0 0 1 4 0 56

Como x1 é negativo, esta solução não é viável, quer dizer nova iteração deve ser reti-

om
rar x1 da base. Por isso, recorre-se ao método simplex dual-simplex da subsecção 4.1.2.

l.c
Tabela 2

Base x1 x2 x3 x4 x5 Bi
ai
gm

x2 1 1 0 1 0 9
@

x1 -1 0 1 -2 0 2
o8

x5 3 0 0 -4 1 20
et

Z 1 0 0 6 0 54
ub
um

Solução X = (0, 9, 2, 0, 20) com Zmax = 54, a variação é ∆z = 54 − 50 = +4 u.m.


m

Observação
Comparando as três soluções, pode-se observar que ao passar da primeira para a se-
gunda solução óptima, a empresa aumentou 2 unidades de medida no seu rendimento
global, entretanto, deixou de satisfazer alguns dos seus clientes porque só passou a
produzir 2 u.m. de x1 , para além de ter aumentado a quantidade de recurso 3 que é
comprado e não utilizado de 8 para 14 unidades.

Se considerar a última solução óptima, a empresa deixou completamente de produ-


zir x1 , o que significa que deixou de satisfazer os potenciais clientes deste producto.
Também observar que a produção de 9 u.m. de x2 precisa mão-de-obra superior da que

Mulenga 97 2020
Investigação Operacional

se tinha antes. A quantidade de recurso 3 não utilizado aumentou considerávelmente


passando para 20 e ainda 2 unidades do recurso 1.

Resumindo esta situaçao não é desejosa nem para os clientes nem para a empresa.
Por isso, uma atenção especial para o gestor é pensar sobre o destino dos clientes que
compravam o produto 1 e os trabalhadores especializados na produção de x1 . Mo-
tivo suficiente para que se procure adquirir uma quantidade por forma a conseguir
um equilibrio entre os interesses da organização e a satisfação dos clientes. O cálculo
do intervalo óptimo de oscilação dos recursos dá os limiares máximos e mı́nimos de
recursos a adquirir sem mudança das variáveis de base.

om
Intervalo óptimo de variação dos recursos

l.c
Para se obter os intervalos de oscilação dos recursos podem se usar os limites:
ai
∆+ = limite superior é igual ao menor quociente absoluto entre o valor do recurso
gm

na tabela terminal da variável que era básica na tabela inicial (neste caso o recurso 1
@

está associado a x3 ) e os coeficientes negativos da mesma variável na tabela terminal


(razões negativas).
o8
et

 
+
bi
∆ = min|raz − negativas| = min para aij < 0 (4.1)
aij
ub
um

∆− = limite inferior é igual ao menor quociente absoluto entre os recursos na tabela


terminal e os coeficientes positivos da variável associada ao recurso bi i (razões positi-
m

vas).
 
bi
∆− = min|raz − positivas| = min para aij > 0 (4.2)
aij

E o intervalo a calcular é bi − ∆− ≤ bi ≤ bi + ∆+

Exemplo 4.5. Calcular o intervalo óptimo de oscilação de todos os recursos do


exemplo 4.4 anterior.

Mulenga 98 2020
Investigação Operacional

a) b1 está associado a x3 = 14 na tabela inicial, logo vamos usar a coluna de x3


na tabela terminal.

+
4 −
5 8 8
∆ = min = 4 ↑; ∆ = min ; = ↓
−1 1 3 3
8 34
O intervalo é 14 − ≤ b1 ≤ 14 + 4, logo ≤ b1 ≤ 18
3 3

b) b2 está associado a x4 = 9 na tabela inicial, logo vamos usar a coluna de x4 na


tabela terminal.

+
5 8 4 −
4
∆ = min ; = ↑; ∆ = min = 2 ↓

om
−1 −10 5 2
4
O intervalor é 9 − 2 ≤ b2 ≤ 9 + , logo 7 ≤ b2 ≤≤ 9.8

l.c
5
ai
d) b3 está associado a x5 = 56 na tabela inicial, logo deve-se usar a coluna de x5
gm
na tabela terminal.
+ −
8
∆ = min |@| = +∞ ↑; ∆ = min = 8 ↓
@

1
o8

O intervalor é 56 − 8 ≤ b3 ≤ 56 + ∞ , logo 48 ≤ b3 < ∞


et
ub

Exemplo 4.6. A solução óptima para o problema de programação linear seguinte


um

maximizar Z = 20x1 + 25x2


2x1 + 3x2 ≤ 10
m






 2x + 3x ≤ 10

1 2
sujeito à


 1x1 + 2x2 ≤ 10


 x ,x ≥ 0

1 2

é dada no quadro abaixo onde x3 , x4 e x5 são variáveis de folga.

Mulenga 99 2020
Investigação Operacional

Base x1 x2 x3 x4 x5 Bi
x1 1 3/2 1/2 0 0 5
x4 0 0 -1 1 0 0
x5 0 1/2 -1/2 0 1 5
Z 0 5 10 0 0 100

a) Apresente a solução actual do problema.


b) Calcule o intervalo óptimo de oscilação do recurso 1, b1 = 10.
c) Se o vector dos recursos alterar de (10 10 10)T para (20 16 12)T , qual será a
nova solução óptima do problema.

om
l.c
Resolução
a) Solução X = (5, 0,0,0,5) ; Zmax = 100 ai
gm
b) Para b1 = 10, deve-se usar a coluna de x3 na tabela terminal.
@


+
5 0 −
5
∆ = min ; =0↑; ∆ = min = 10 ↓; o intervalo é: 0 ≤ b1 ≤ 10
o8


−1/2 −1 1/2
et

b) Variação dos recursos, vamos usar a propriedade 2.


ub

       
x 1/2 0 0 20 10
 1 
um

    
x4  =  −1 1 0 × 16 = −4
       
       
m

x5 −1/2 0 1 12 2

Substituindo na função objective temos: Z = 20x1 + 25x2 = 20 ∗ 10 + 25 ∗ 0 = 200.


Repare que na tabela terminal x4 = −4, o que torna a solução não viável. Por isso,
vamos usar o método simplex dual - simplex para encontrar a nova tabela terminal.

Mulenga 100 2020


Investigação Operacional

Tabela 1

Base x1 x2 x3 x4 x5 Bi

x1 1 3/2 1/2 0 0 10 (+)


x4 0 0 -1 1 0 -4 J
x5 0 1/2 -1/2 0 1 2 (+)

Z 0 5 10 0 0 200

Tabela 2

Base x1 x2 x3 x4 x5 Bi

om
x1 1 3/2 0 1/2 0 8
x3 0 0 1 -1 0 4
l.c
ai
x5 0 1/2 0 -1/2 1 4
gm

Z 0 5 10 0 0 160
@
o8

Nova solução X = (8, 0, 4, 0, 4); Zmax = 160; ∆z = 160–100 = 60.


et
ub

Por consequência da variação dos recursos houve um aumento no rendimento total


em 60 unidades de medida.
um
m

4.3 Variação nos coeficientes da função objectivo


As variações nos coeficientes da função objectivo estão associadas aos preços dos pro-
dutos no mercado que podem variar mediante a concorrência dentro da indústria. Por
isso, essas mudanças afectam o valor final da função objectiva, principalmente quando
a mudança dos preços ocorre para uma variável que está na base. A análise de sensi-
bilidade deve ser feita para saber o efeito destas mudanças para a solução óptima.

Exemplo 4.7. Vamos supor que no exemplo 4.4, o coeficiente de x2 tenha sido
alterado de 6 para 4. A nova função objectivo será Z = 5x1 + 4x2 + 0x3 + 0x4 + 0x4 e

Mulenga 101 2020


Investigação Operacional

os coeficientes que nos interessam são os das variáveis que estão na base (x2 x1 x5 )
ou seja o vector (4 5 0).

Usando a propriedade 1 temos:


 
1 −1 0
    
4 5 0 × −1 0 = −1 6 0
 
2
 
3 −10 1

Assim, os novos multiplicadores simplex para as variáveis x3 e x4 que estão fora da


base na tabela terminal são: ∆3 = −1–0 = −1 e ∆4 = 6–0 = 6.

om
Como ∆3 < 0, isto significa que a solução actual não continua óptima e deve – se in-

l.c
troduzir x3 na base. Para isso, o novo valor da função objectivo é calculado tomando
em consideração a nova função objectiva. Z = 5 ∗ 4 + 4 ∗ 5 = 40.
ai
gm
Tabela 1
@

Base x1 x2 x3 x4 x5 Bi
o8

x2 0 1 1 -1 0 5 (5)
et

x1 1 0 -1 2 0 4 (-)
ub

x5 0 0 3 -10 1 8 (8/3)
um

Z 0 0 -1 6 0 50
m

Tabela 2

Base x1 x2 x3 x4 x5 Bi

x2 0 1 0 7/3 -1/3 7/3


x1 1 0 0 -4/3 1/3 20/3
x3 0 0 1 -10/3 1/3 8/3

Z 0 0 0 6/3 1/3 128/3

Mulenga 102 2020


Investigação Operacional

Como todos ∆i são maiores ou iguais a zero a nova solução é: X = (20/3, 7/3, 8/3, 0, 0)
com Zmax = 128/3. Sendo assim, a variação de c2 de 6 para 4 diminuiu o rendimento
em ∆z = 128/3–50 = −22/3 u.m.

Observação
Caso as variáveis fora da base não pertençam à solução inicial, que geralmente é
formada pelas variáveis de folga, deve-se aplicar a propriedade 4 para calcular os mul-
tiplicadores simplex.

Intervalo de variação dos coeficientes da função objectiva

om
O intervalo óptimo de oscilação dos coeficientes da função objectivo pode ser obtido
pelo procedimento usando para os recursos na secção 4.2, mas agora os quocientes

l.c
serão entre os valores dos multiplicadores simplex e da linha da variável que está na
base, como está explicado a seguir.
ai
gm

∆+ = limite superior é igual ao menor quociente absoluto entre os multiplicado-


@

res simplex da tabela terminal e os coeficientes negativos das variáveis não básicas da
linha correspondente à variável básica associada ao coeficiente considerado.
o8
et

 
+
cj
∆ = min|raz − positivas| = min para aij < 0 (4.3)
aij
ub
um

∆− = limite inferior é igual ao menor quociente absoluto entre os multiplicadores


simplex da tabela terminal e os coeficientes positivos para a linha correspondente à
m

variável básica associada ao coeficiente considerado.


 
cj
∆− = min|raz − positivas| = min para aij > 0 (4.4)
aij

E o intervalo obtido é: cj − ∆− ≤ cj ≤ cj + ∆+

Exemplo 4.8. Para o exemplo 4.4, encontrar os intervalos óptimos de oscilação dos
coeficientes das variáveis básicas x1 , x2 e x5 na tabela terminal.

Mulenga 103 2020


Investigação Operacional

Tabela 1

Base x1 x2 x3 x4 x5 Bi

x2 0 1 1 -1 0 5
x1 1 0 -1 2 0 4
x5 0 0 3 -10 1 8

Z 0 0 1 4 0 50

Resolução

om
A função objectivo é Z = 5x1 + 6x2 + 0x3 + 0x4 + 0x5 , e nos interessam apenas os

l.c
coeficientes das variáveis básicas na tabela terminal, portanto c1 = 5, c2 = 6 e c5 = 0
ai
a) c1 = 5, é o coeficiente de x1 que está
na linha 2 na tabela terminal.
gm

1 4
∆+ = min = 1 ↑; ∆− = min = 2 ↓; intervalo 3 ≤ c1 ≤ 6

−1 2
@

b) c2 = 6 é o coeficiente de x2 corresponde a linha 1 na tabela terminal.


o8
et


+
4 −
1
∆ = min = 4 ↑; ∆ = min = 1 ↓; intervalo 5 ≤ c2 ≤ 10
−1 1
ub

c) c5 = 0 é o coeficiente de x5 corresponde a linha 3 na tabela terminal.


um


+
4 2 −
1 1 1 2
= ↑; ∆ = min = ↓; intervalo − ≤ c5 ≤
m

∆ = min
−10 5 3 3 3 5

Observação
Repare que, para as variáveis de decisão a interpretação dos intervalos não é problema,
entretanto, para a variável auxiliar x5 que é de folga, é necessário tomar certa cautela,
pois, se o seu coeficiente for diferente de zero, ela passa a não ser auxiliar, e o modelo
deve ser reformulado para considerar esta variável como de decisão. Por outro lado,
se seu coeficiente for negativo, significa que esta variável diminui o rendimento global,
devendo-se esperar que a soma de todas as contribuições marginais seja positiva.

Mulenga 104 2020


Investigação Operacional

4.4 Variações nos coeficientes das actividades


A variação nos coeficientes das actividades significa mudanças nas quantidades dos
recursos necessários para a composição de uma unidade de medida de um terminado
produto. As mudanças podem ser devido a uma recomendação dos orgãos de nor-
malização e qualidade dos produtos, podem ser por uma experiência ou inovação ou
mesmo por um pedido especial. Aqui as mudanças podem ocorrer tanto para variáveis
básicas como para variáveis não básicas.

a) Variações nos coeficientes das actividades das variáveis básicas

om
As alterações nos coeficientes dessas variáveis afectam os elementos da matriz fun-
damental definida na propriedade 1, e como esta matriz é utilizada em toda análise

l.c
de sensibilidade, essas variações podem fazer com que a actual solução deixe de ser
ai
óptima ou mesmo viável. A forma mais simples de resolver este problema é admitir
que temos um novo problema, portanto, deve-se procurar uma nova solução.
gm
@

b) Variações nos coeficientes das actividades das variáveis fora da base


o8

As alterações nos coeficientes das variáveis fora da base poderão modificar a solução
et

óptima, pois, a variável alterada poderá vir a se tornar básica. Assim, uma nova veri-
ub

ficação de que o problema está optimizado é necessária e deve ser realizada.


um

Exemplo 4.9. Dado o seguinte problema de programação linear.


m

maximizar Z = 4x1 + 6x2 + 1x3


 6x + 4x2 + 1x3 ≤ 24
 1


sujeito à 4x1 + 8x2 + 2x3 ≤ 32


x ,x ,x ≥ 0


1 2 3

a) Resolva o problema usando o método simplex.


b) Suponha que os coeficientes de variável x3 nas restrições sejam modificados de
a = (1 2)T para a = (1 1)T , qual será o efeito desta mudança na solução óptima do

Mulenga 105 2020


Investigação Operacional

problema.

Resolução
Tabela 1
Base x1 x2 x3 x4 x5 Bi

x4 6 4 1 1 0 24 (6)
x5 4 8 2 0 1 32 (4)J

Z -4 -6 -1 0 0 -

Tabela 2

om
Base x1 x2 x3 x4 x5 Bi

l.c
x4 4 0 0 1 -1/2 8 (2) J ai
x2 1/2 1 1/4 0 1/8 4 (8)
gm

Z -1 0 1/2 0 3/4 24
@

Tabela 3
o8

Base x1 x2 x3 x4 x5 Bi
et

x1 1 0 0 1/4 -1/8 2
ub

x2 0 1 1/4 -1/8 3/16 3


um

Z 0 0 1/2 1/4 5/8 26


m

Solução X = (2, 3, 0, 0, 0) com Zmax = 26

b) Para verificar se o problema está optimizado depois da mudança dos coeficientes de


x3 precisamos usar duas propriedades: A propriedades 3, para obter o vector coluna
dos coeficientes desta variável na tabela terminal e a propriedade 4 para verificar se o
multiplicador simplex relativo a esta váriável é positivo ou não.

Da propriedade 3, os valores de (a13 a23 )T são obtidos pelo produto.

Mulenga 106 2020


Investigação Operacional

     
 
a13 1/4 −1/8 1 1/8
 = × = 
a23 −1/8 3/16 1 1/16

Da propriedades 4. A restrição dual para a variável x3 é 1y1 + 1y2 ≥ 1. Fazendo a


diferença entre o primeiro membro e o segundo tendo se substituido as variáveis duais
1 5
pelos multiplicadores simplex ∆4 = e ∆5 = , tem-se:
4 8
1 5 1
∆3 = 1 ∗ ∆4 + 1 ∗ ∆5 –1 = 1 ∗ + 1 ∗ –1 = − < 0
4 8 8

Como ∆3 é negativo, significa que a solução anterior já não continua óptima, as-

om
sim, depois de colocar na tabela os novos valores na coluna de x3 nova iteração deve
ser realizada para obter a nova solução óptima.

l.c
Tabela 1
ai
gm
Base x1 x2 x3 x4 x5 Bi
@

x1 1 0 1/8 1/4 -1/8 2 (16)J


o8

x2 0 1 1/16 -1/8 3/16 3 (48)


et

Z 0 0 -1/8 1/4 5/8 26


ub
um

Tabela 2
Base x1 x2 x3 x4 x5 Bi
m

x3 8 0 1 2 -1 1
x2 -1/2 1 0 -1/4 1/4 2

Z 1 0 0 1/2 1/2 28

Como todos os multiplicadores simplex são positivos ou iguais a zero já temos a nova
solução óptima. X = (0, 2, 16, 0, 0) com Zmax = 28. Portanto, com esta variação dos
coeficientes de x3 aumentou o rendimento em ∆z = 28 − 26 = +2 u.m. Repare que
o produto x3 tem menor contribuição marginal na função objectiva, mas, como ele

Mulenga 107 2020


Investigação Operacional

apresenta maior rotação no mercado consegue contribuir com 16 unidades, enquanto


o produto x2 contribui com 12 para o mesmo intervalo de tempo.

4.5 Adição de uma nova variável


Este caso pode ser considerado como variações simultâneas nos coeficientes da função
objectiva e nos coeficientes do vector actividade correspondente à nova variável, que
não é básica. Pois, no problema inicial a nova variável é considerada como se tivesse
coeficientes iguais a zero. Em termos de significado empresarial, a adição de uma
variável significa, uma intorudção de um novo producto que vai partilhar os recuros já
existentes em quantidades diferentes como resultado de extensão ou variante da gama

om
de produtos a oferecer aos clientes.

l.c
Exemplo 4.10. Analisar o exemplo 4.9, introduzindo agora uma nova variável x4
conforme o modelo apresentado.
ai
gm

maximizar Z = 4x1 + 6x2 + 1x3 + 3x4


@

 6x + 4x2 + 1x3 + 2x4 ≤ 24


 1

o8


sujeito à 4x1 + 8x2 + 2x3 + 2x4 ≤ 32
et



x ,x ,x ,x ≥ 0


1 2 3 4
ub
um

Resolução
Portanto, para fazer o teste de optimidade da solução, precisamos apenas aplicar a
m

propriedade 3 e a propriedade 4 como foi explicado na secção 4.4.

Da propriedade 3, calcular os valores de (a14 a24 )T na tabela terminal.

   
   
a 1/4 −1/8 2 1/4
 14  =  × = 
a24 −1/8 3/16 2 1/8

Da propriedade 4, a restrição dual 2y1 + 2y2 ≥ 3 e os multiplicadores simplex do

Mulenga 108 2020


Investigação Operacional

1 5
problema primal depois da introdução da variável x4 no modelo ∆5 = e ∆6 = ,
4 8
1 5 5
temos o multiplicador simplex para a nova variável, ∆4 = 2 ∗ + 2 ∗ − 3 = − .
4 8 4
O multiplicador simplex mostra de que novas iterações devem ser feitas.

Tabela 1
Base x1 x2 x3 x4 x5 X6 Bi

x1 1 0 0 1/4 1/4 -1/8 2 (8)J


x2 0 1 1/4 1/8 -1/8 3/16 3 (24)

Z 0 0 1/2 -5/4 1/4 5/8 26

om
l.c
Tabela 2
Base x1 x2 x3 x4 x5 X6 Bi
ai
gm
x1 4 0 0 1 1 -1/2 8
x2 -1/2 1 1/4 0 -1/4 1/4 2
@
o8

Z 5 0 1/2 0 3/2 0 36
et

Nova solução
ub

X = (0, 2, 0, 8, 0, 0) com Zmax = 36. O que significa que a introdução da variável x4


um

com o coeficiente 3 na função objectiva e 2 nas restrições aumenta o rendimento em


∆z = 36–26 = 10 unidades de medida.
m

4.6 Adição de uma nova restrição


A adição de uma nova restrição pode alterar a viabilidade da solução, se ela não for re-
dundante. Na practica, a adição de uma restrição significa adição de um novo recurso
para os produtos já existentes. Como o novo recurso vai ser usado na composição dos
produtos, de certa forma modifica o teor, a forma ou o sabor do produto acabado.
Consequentemente influe o comportamento do cliente em termos de aderência ou não.
Por isso, é necessário verificar se depois da introdução do novo recurso o comporta-

Mulenga 109 2020


Investigação Operacional

mento dos clientes perante o produto mudou ou não.

O procedimento para a análise tem sido o seguinte:

• Testar se a nova restrição é satisfeita para a actual solução óptima, em caso afir-
mativo, a nova restrição diz-se redundante e não é necessário fazer mais iterações.

• Se não for redundante, ela deve ser introduzida na tabela terminal e novas
iterações devem ser feitas para-se obter a nova solução óptima.

Exemplo 4.11. Considere o exemplo 4.9, e analise a viabilidade da actual solução


óptima depois de introduzir a restrição 3: 2x1 + 8x2 + 1x3 ≤ 24.

om
Note que, analisar neste caso entende-se por:
a) Verificar se a nova restrição é redundante ou não.

l.c
b) Se não for, introduzir a restrição na tabela terminal do exemplo 4.9 e realizar
ai
iterações até encontrar a nova solução.
gm

Resolução
@

O novo modelo com a terceira restrição é


o8
et

maximizar Z = 4x1 + 6x2 + 1x3


ub



 6x1 + 4x2 + 1x3 ≤ 24


 4x + 8x + 2x ≤ 32

um

1 2 3
sujeito à


 2x1 + 8x3 + 1x3 ≤ 24

m


x ,x ,x ≥ 0


1 2 3

a) A verificação consiste em substituir as variáveis nas restrições pelos valores da


solução anterior x1 = 2, x2 = 3, x3 = 0 e ver se as desigualdades são verdadeiras.
Restrição 1: r1 = 6 ∗ 2 + 4 ∗ 3 + 1 ∗ 0 = 24(≤ 24) verdadeiro
Restrição 2: r2 = 4 ∗ 2 + 8 ∗ 3 + 2 ∗ 0 = 32(≤ 32) verdadeiro
Restrição 3: r3 = 2 ∗ 2 + 8 ∗ 3 + 1 ∗ 0 = 28(≤ 24) não verdadeiro, significando de que
a nova restrição não é redundante.

b) A varificação da restrição 3, indica de que a solução anterior já não é viável e

Mulenga 110 2020


Investigação Operacional

novas iterações devem ser feitas. Assim, vamos colocar na tabela terminal anterior os
coeficientes da nova restrição e a correspondente variável de folga.

Tabela 1

Base x1 x2 x3 x4 x5 X6 Bi

x∗1 1 0 0 1/4 -1/8 0 2


x∗2 0 1 1/4 -1/8 3/16 0 3
x6 2 8 1 0 0 1 24

Z 0 0 1/2 1/4 5/8 0 26

om
l.c
As variáveis x1 e x2 nem deveriam ficar na base, mas, como estão na base seus coefici-
entes na nova restrição devem ser zeros, por isso, que tomamos as suas posições como
ai
pivô para que fiquem na base efectivamente.
gm

Tabela 2
@
o8

Base x1 x2 x3 x4 x5 X6 Bi
et

x1 1 0 0 1/4 -1/8 0 2
ub

x∗2 0 1 1/4 -1/8 3/16 0 3


um

x6 0 8 1 -1/2 1/4 1 20

Z 0 0 1/2 1/4 5/8 0 26


m

Tabela 3

Base x1 x2 x3 x4 x5 X6 Bi

x1 1 0 0 1/4 -1/8 0 2
x2 0 1 1/4 -1/8 3/16 0 3
x∗6 0 0 -1 1/2 -5/4 1 -4

Z 0 0 1/2 1/4 5/8 0 26

Mulenga 111 2020


Investigação Operacional

Tabela 4

Base x1 x2 x3 x4 x5 X6 Bi

x1 1 0 0 1/4 -1/8 0 2
x2 0 1 0 0 1/8 1/4 2
x3 0 0 1 -1/2 5/4 -1 4

Z 0 0 0 1/2 0 1/2 24

Nova solução

om
X = (2, 2, 4, 0, 0, 0) com Zmax = 24.

l.c
A introdução da restrição 3, com os coeficientes 2, 8 ,1 e o valor do recurso 24, reduz
o rendimento em ∆z = 24–26 = −2 unidades de medida.
ai
gm

4.7 Exercı́cios propostos


@
o8

Exercı́cio 4.1. Usando o método simplex dual - simplex resolva os problemas de


programação linear.
et
ub

minimizar minimizar W = 5x1 + 2x2


 W = 2x1 + 3x2
1x − 1x2 ≥ 3
 1x1 + 1x2 ≥ 5
um

 
 1

 


 6x + 3x ≥ 18

a) sujeito à 2x1 + 3x2 ≥ 4 b) sujeito à
1 2
m


2x1 + 3x2 ≥ 12
 
 x ,x ≥ 0
 
1 2



x ,x ≥ 0


1 2

Resposta: X = (3, 0, 0, 2); Wmin = 6 Resposta: X = (0, 6, 1, 0, 6); Wmin = 12

Mulenga 112 2020


Investigação Operacional

minimizar  W = 30x1 + 40x2 minimizar W = 4x1 + 5x2




 2x1 + 2x2 ≥ 6 

 3x1 + 3x2 ≥ 6

 


 1x1 + 2x2 ≥ 4  4x + 2x ≥ 10

1 2
c) sujeito à d) sujeito à
1x1 + 5x2 ≥ 5  2x1 + 1x2 ≥ 3

 


 
 
x ,x ≥ 0

x1 , x2 ≥ 0

 
1 2

 
5 3
Resposta: X = (2, 1, 0, 0, 2); Wmin = 100 Resposta: X= , 0, , 0, 2 ; Wmin = 10
2 2

Exercı́cio 4.2. Dado o seguinte problema de programação linear.

om
maximizar  Z = 20x1 + 30x2
 2x1 + 3x2 ≤ 10

l.c




1x1 + 3x2 ≤ 12


sujeito á
ai
1x1 + 2x2 ≤ 6
gm





x1 , x2 ≥ 0


@

a) Resolva o problema e apresente a solução óptima.


o8

Resposta: X= (2, 2, 0, 4, 0); Zmax = 100.


et

b) Se a disponibilidade dos recursos do problema for mudada de b = (10 12 6)T


para b = (10 12 5)T , qual será o efeito desta mudança.
ub

Resposta: X= (5, 0, 0, 7, 0); Zmax = 100, ∆z = 100 − 100 = 0.


um

c) Se os recursos mudarem agora para b = (15 12 6)T qual será a nova solução.
Resposta: X= (6, 0, 3, 6, 0); Zmax = 120; ∆z = 120 − 100 = +20.
m

d) Calcular o intervalo óptimo de oscilação de todos os recursos do exercı́cio.


17
Resposta: 9 ≤ b1 ≤ 12; 10 ≤ b2 < ∞ e 5 ≤ b3 ≤
3

Exercı́cio 4.3. Dado o problema de programação seguinte.

maximizar Z = 2x1 + 1x2

Mulenga 113 2020


Investigação Operacional




 0x1 + 3x2 ≤ 6


 4x + 1x ≤ 8

1 2
sujeito á


 1x1 + 0x2 ≤ 3


 x ,x ≥ 0

1 2

a) Resolva o problema e apresentente a solução óptima.


Resposta: X = (3/2, 2, 0, 0, 3/2) com Zmax = 5.
b) Se o recurso b1 = 6 for mudado para 4, qual será o efeito desta mudança na solução
óptima do problema.
Resposta: X = (5/3, 4/3, 0, 0, 4/3) com Zmax = 14/3 e ∆z = −1/3.
c) Encontre os intervalos óptimos de oscilação de todos os recursos do problema.

om
Resposta: 0 ≤ b1 ≤ 24, 2 ≤ b2 ≤ 14, 3/2 ≤ b3 < ∞.

l.c
ai
Exercı́cio 4.4. Dado o problema de programação seguinte.
gm
maximizar  Z = 30x1 + 40x2
 2x1 + 1x2 ≤ 10
@





1x1 + 1x2 ≤ 7

o8


sujeito á
 1x1 + 2x2 ≤ 12
et





x1 , x2 ≥ 0


ub

a) Resolva o problema e apresentente a solução óptima.


um

Resposta: X = (2, 5, 1, 0, 0) com Zmax = 260.


b) Se o coeficente c1 na função objectiva aumentar de 30 para 50, qual será o efeito
m

desta mudança na solução do problema. Encontre a nova solução caso seja necessário.
Resposta: X = (3, 4, 0, 0, 1) com Zmax = 310 e ∆z = 50.
c) Encontre os intervalos óptimos de oscilação dos coeficientes de x1 e x2 na função
objectivo.
Resposta: 20 ≤ c1 ≤ 40, 30 ≤ c2 ≤ 60.

Mulenga 114 2020


Investigação Operacional

Exercı́cio 4.5. Dada a tabela terminal do problema de programação linear.

maximizar Z = 1x1 + 3/2x2 Base x1 x2 x3 x4 x5 Bi





 2x1 + 2x2 ≤ 160 x1 1 0 1 -1 0 40


1x1 + 2x2 ≤ 120

x2 0 1 -1/2 1 0 40

sujeito à


 4x1 + 2x2 ≤ 280 x5 0 0 -3 2 1 40


x1 , x2 ≥ 0


Z 0 0 1/4 1/2 0 100

A solução óptima do problema é: X = (40, 40, 0, 0, 40) e Zmax = 100.

om
a) Se o recurso b2 , variar de 120 para 100 qual será o efeito sobre a solução óptima.
Resposta: X = (60, 20, 0, 0, 0), com Zmax = 90 e ∆z = 100 − 90 = −10 u.m.

l.c
b) Se o mesmo recurso aumetar para b2 = 200, qual será o efeito.
ai
Resposta: X = (0, 80, 0, 40, 120) com Zmax = 120 e ∆z = 120 − 100 = 20 u.m.
gm
c) Se o coeficiente da função objectiva mudar de 3/2 par 2, qual será o efeito sobre a
solução do problema.
@

Resposta: X = (40, 40,0, 0, 40), Zmax = 120 e ∆z = 20 u.m.


o8

d) Encontre os intervalos óptimos tanto dos recursos como dos coeficientes da função
objectiva das variáveis de decisão que estão na base.
et

3 3 520
Resposta: ≤ c1 ≤ , 1 ≤ c2 ≤ 2 120 ≤ b1 ≤ , 100 ≤ b2 ≤ 160.
ub

4 2 3
um

Exercı́cio 4.6. Dada a tabela terminal do problema de programação linear.


m

maximizar Z = 8x1 + 6x2 Base x1 x2 x3 x4 x5 Bi





 2x1 + 3x2 ≤ 30 x1 1 a12 1/2 0 0 b1


1x1 + 2x2 ≤ 24

x2 0 a22 -1/2 1 0 b2

sujeito à


 1x1 + 2x2 ≤ 18 x5 0 a32 -1/2 0 1 b3


x1 , x2 ≥ 0


Z 0 c2 4 0 0 Z∗

a) Usando as propriedades da análise de sensibilidade complete a tabela, colocando os


valores para as colunas de x2 e de recursos Bi .

Mulenga 115 2020


Investigação Operacional

 T
3 1 1
Resposta: ai2 = , Bi = (15 9 3)T , ∆2 = 6 e Zmax = 120.
2 2 2
b) Se o preço relativo a variável x1 alterar de 8 para 10, qual será a nova solução do
problema.
Resposta: X = (15, 0, 0, 9, 3) com Zmax = 150, ∆z = 150 − 120 = 30 u.m.

Exercı́cio 4.7. Dado o problema de programação linear.

maximizar  Z = 2x1 + 3x2 + 7x3 + 9x4




 1x1 + 1x2 + 1x3 + 1x4 ≤ 9

sujeito à 1x1 + 2x2 + 4x3 + 8x4 ≤ 24

om


x1 , x2 , x3 , x4 ≥ 0

l.c
a) Resolva o problema e apresente a solução óptima.
ai
Resposta: X = (4, 0, 5, 0, 0, 0) com Zmax = 43.
gm
b) Verificar a optimidade da solução, se os coeficientes de x2 forem mudados de (1 2)T
para (2 2)T .
@

Resposta: X = (4, 0, 5, 0, 0, 0) com Zmax = 43, ∆z = 0.


o8

c) Verificar o mesmo da anlı́nea b) para x4 com a variação (1 8)T para(1 2)T .


Resposta: X = (0, 0, 0, 9, 0, 6) com Zmax = 81 e ∆z = 38.
et
ub

Exercı́cio 4.8. Para o seguinte problema de programação linear


um

minimizar  W = 10x1 + 20x2


m

 6x + 2x2 ≤ 36
 1


sujeito à 2x1 + 4x2 ≤ 32


x1 , x2 ≥ 0

a) Usando o método simplex dual-simplex resolva o problema.


Resposta:. X = (4, 6, 0, 0) com Wmin = 160.
b) No modelo anterior introduza a variável x3 com os coeficiente: c3 = 3, ai3 = (3 1)T ,
e analise o efeito da introdução desta variável no modelo.
Resposta:. X = (4, 6, 0, 0) com Wmin = 160 e ∆z = 0.

Mulenga 116 2020


Investigação Operacional

c) Analisar de novo  agora introduzindo a restrição 4x1 + 2x2 ≥ 30.


 o problema, mas
14 17 10
Resposta: X = , , , 0, 0 com Wmin = 160 e ∆z = 0
3 3 3

Exercı́cio 4.9. Dado o seguinte problema de programação linear.

Tabela T
maximizar  Z = 3x1 + 2x2 Base x1 x2 x3 x4 Bi
 4x + 3x2 ≤ 120
 1


sujeito á 1x1 + 3x2 ≤ 60 x1 1 3/4 1/4 0 30

x4 0 9/4 -1/4 1 30

 x ,x ≥ 0

1 2

om
Z 0 1/4 3/4 0 90

l.c
a) Se os recursos forem alterados de b = (120 60)T para b = (140 40)T determine
ai
gm
a nova solução.
Resposta: X=(35, 0,0, 5), Zmax = 105 com ∆z = 105 − 90 = 15.
@

b) Se o coeficiente da função objectiva para a variável x1 for alterado de 3 para 5.


o8

Qual será a nova solução do problema.


Resposta: X=(30, 0,0, 30), Zmax = 150, ∆z = 150 − 90 = 60.
et
ub
um
m

Mulenga 117 2020


Capı́tulo 5

Programação linear inteira

om
5.1 Introdução

l.c
O termo Programação Inteira (PI), refere-se ao estudo dos problemas de programação
ai
linear nos quais o domı́nio de todas as variáveis do problema é restritamente de va-
gm

lores inteiros, portanto, a Programação Linear Inteira (PLI) é um caso particular dos
@

problemas de programação linear.


o8

Por exemplo, se considerarmos modelos lineares de problemas de produção ou trans-


et

porte de certos artigos onde o produto a ser transportado são garrafas, tubos, au-
ub

tomóveis ou mesmo se quisermos afectar máquinas, homens, veı́culos a determinadas


actividades, de certeza a solução óptima desses problemas não deverá conter números
um

fraccionários, i.é, necessariamente teremos que ter quantidades inteiras.


m

A abordagem comum dos problemas de programação linear inteira, tem sido de usar
o método simplex analı́tico ou gráfico para resolver o problema de programação linear
ignorando a restrição de que as variáveis devem ser inteiras. Tendo-se obtido a solução
óptima inicial, procura-se arredondar para os dois valores inteiros mais próximos caso
estes não forem inteiros. Se os valores inteiros pertencerem ao conjunto solução então,
está encontrada a solução do problema de programação linear inteira, caso contrário
a solução torna-se não viável e procura-se uma nova solução até encontrar a solução
óptima inteira.

118
Investigação Operacional

Todo o problema de programação linear inteira tem a seguinte estrutura:


X
maximizar Z = cj x j
 X


 aij xj ≤ bj

sujeito á xj ≥ 0, e inteiro


 ou x ∈ Z +

j 0

Admite-se que em vez de maximizar possa se usar minimizar e em vez de ≤ possa


se usar ≥.

om
Exemplo 5.1. A empresa Coca Cola de Moçambique, produz dois tipos de refresco:
em lata e em garrafa. Cada lata vendida produz um lúcro de 7 unidades de medida e

l.c
cada garrafa produz um lúcro de 6 unidades de medida. A descrição das quantidades
ai
em termos de matéria-prima necessária e a capacidade máxima diária estão apresen-
gm
tados na tabela.
@

Tabela 5.1: Enformação do problema da Coca-Cola, exemplo de PLI


o8
et

Materia prima tipos de refresco Disponibilidades


ub

em lata em garrafa
um

Materia prima 1 2 3 12
Materia prima 2 6 5 30
m

lúcro unitário 7 6 -

a) Formule o modelo matemático como um problema de programação linear inteira.


b) Sabendo que x1 e x2 são o número de latas e garrafas produzidas respectivamente,
resolva o problema de tal modo que se determine o número de latas e de garrafas que
devem ser produzidas para maximizar o lúcro diário.

Mulenga 119 2020


Investigação Operacional

Resolução
a) O modelo matemático do problema é:
maximizar  Z = 7x1 + 6x2
 2x + 3x2 ≤ 12
 1


sujeito á 6x1 + 5x2 ≤ 30


 x ∈ Z+

j 0

b) Vamos resolver primeiro o problema pelo método gráfico, sem considerar a igno-
rando a condição de que x1 e x2 devem ser quantidades inteiras.

om
r1 : x1 x2 r 2 : x1 x2 rz : x1 x2

l.c
0 4 0 6 0 0
6 0 5 0 1 -7/6
ai
gm
@
o8
et
ub
um
m

Figura 5.1: Dominio solução de um problema de programação linear inteira

Resolvendo o sistema das rectas r1 ∩ r2 , tem-se a solução óptima do problema de pro-


gramação linear: x1 = 3.75, x2 = 1.5 com Zmax = 35.25.

Mulenga 120 2020


Investigação Operacional

Arredondando os valores para x1 = 4 e x2 = 2, tem-se Z = 7 ∗ 4 + 6 ∗ 2 = 40, um valor


superior a Zmax e como o ponto P(4,2) está fora da região das soluções admissı́veis,
conclui-se que esta solução não é viável.

Como a solução inicial não é inteira, diz-se que o valor máximo inteiro da função
objectivo é igual a zero, Zm = 0, e também sabe-se pelo conjunto solução apresentado
graficamente que o valor máximo inteiro Zm , não será superior ao valor óptimo da
primeira aproximação, isto é: Zm ≤ Zmax .

Para procurar a solução inteira, deve-se calcular o valor da função objectivo em cada
ponto da região das soluções admissı́veis para os pontos de pares de valores inteiros.

om
l.c
Tabela 5.2: Identificação da solução óptima inteira entre todas possı́veis
ai
Pontos p1 p2 p3 p4 p5 p6 p7 p8 p9
gm

x1 0 1 2 3 4 5 0 1 2
@

x2 0 0 0 0 0 0 1 1 1
o8

F.O. 0 7 14 21 28 35 6 13 20
et
ub

Pontos p10 p11 p12 p13 p14 p15 p16 p17 p18
um

x1 3 4 0 1 2 3 0 1 0
x2 1 1 2 2 2 2 3 3 4
m

F.O. 27 34 12 19 26 33 18 25 24

Examinado a Tabela 5.2, vemos que a solução óptima do problema de programação


linear inteira é: SPLI = {x1 = 5, x2 = 0 com Zm = 35}

O procedimento ilustrado pelo exemplo 5.1 para encontrar a solução óptima inteira é
viável para alguns e poucos problemas de programação linear inteira, mas, o processo
de procura neste procedimento torna-se difı́cil ou mesmo impossı́vel para grande parte

Mulenga 121 2020


Investigação Operacional

dos problemas.

De um modo geral, existem dois métodos básicos que são utilizados para resolver
os problemas de programação linear inteira

• Método de Bifurcação e Limite (Branch and Bound Method)

• Método de Corte de Gomory (Gomory’s Cutting Plane Method)

5.2 Método de Bifurcação e Limite


Os primeiros trabalhos do Método de Bifurcação e Limite (MBL), também conhecido

om
por “Branch and Bound Method”, foram desenvolvidos por Land e Doig (1960) e
melhorados para a presente estrutura por Dakin (1965) no seu livro “A tree search

l.c
algorithm for mixed integer programming problems”. Daı́ em diante a estrutura do
ai
processo de procura da solução óptima inteira, apresentar-se na forma de uma árvore
gm
com restrições uma depois da outra.
@

Devido a dificuldade de procura da solução para os problemas de PLI, estão até agora a
o8

ser desenvolvidos métodos com vista a encontrar um procedimento padrão. Entretanto,


et

muitos investigadores e autores, por exemplo Taha (1975) entre outros, consideram que
o método promissor para os problemas de programação linear inteira é o Branch and
ub

Bound Method, cujo princı́pio básico consiste em dividir repetidamente o problema


um

que apresentar solução não inteira em dois subproblemas e resolvé-los até encontrar
uma solução viável óptima com todos os valores das variáveis inteiros incluindo o valor
m

da função objectivo.

Para a utilização do algoritmo de bifurcação e limite é necessário que sejam satis-


feitas três proposições:

Proposição 1. O problema de programação linear inteira já tem a primeira apro-


ximação que é a solução óptima do problema de programação linear.

Proposição 2. A primeira aproximação tem pelo menos xi não inteiro, i.é: xi = bi


onde bi é um valor não inteiro.

Mulenga 122 2020


Investigação Operacional

Proposição 3. O limite inferior é zero para os problemas de maximização: Zm = 0,


e o limite superior é infinito para os problemas de minimização: Ws = ∞.

Procedimento do Método de Bifurcação e Limite


Passo 1. Resolver o problema original usando os métodos já conhecidos de pro-
gramação linear. Se a primeira aproximação de solução do problema tiver todos va-
lores inteiros, termina-se o processo. Se não, o valor da função objectivo determina o
limite superior (Zm ) ou inferior (Ws ) do problema de programação linear inteira.

Passo 2. Partindo da solução não inteira, dividir o problema em dois subproble-

om
mas com restrições adicionais. Por exemplo, se xi = bi onde bi não é inteiro:
- No subproblema 1 adiciona-se a restrição xi ≤ [bi ]

l.c
- No subproblema 2 adiciona-se a restrição xi ≥ [bi ]+1, onde [bi ] é a parte inteira de bi .
ai
Passo 3. Resolver os dois novos problemas de programação linear criados pela adição
gm

de novas restrições.
@

Passo 4. Teste das soluções


o8

a) Se a solução do novo problema de programaa̧ão linear não é viável, o processo de


et

procura da solução inteira termina neste subproblema.


ub

b) Se a solução do novo problema de programação linear é viável, mas, não é in-


um

teira, guarde a solução no passo 5 para efeitos de comparação.


m

c) Se o subproblema tem uma solução viável e inteira, usando o valor da função


objectivo realize as comparações:
- Se este valor é igual ao limite superior (inferior), então foi alcançada a solução óptima
e Zm = Zi ou (Ws = Wi ).
- Se este valor não for igual ao limite superior (inferior), mas superior (inferior) ao
limite inferior (superior), designe a este valor novo limite inferior (superior) e passe
para o passo 5. Esta troca dos limites diz-se que Zi foi incumbido e Zi−1 sondado.
- Se este valor é menor (maior) que o limite inferior (superior), termina-se o processo
neste subproblema.

Mulenga 123 2020


Investigação Operacional

Passo 5. Examine todos os subproblemas e verifique se o limite superior (inferior) é


igual ao valor máximo da função objectivo. Se o limite superior (inferior) é igual ao
limite inferior (superior), termine o processo. Caso contrário repita o passo 2.

Cada um dos modelos ou subproblemas pode ser resolvido como um novo problema de
programação linear usando o método simplex, gráfico e ou mesmo como uma adição
de uma nova restrição na análise de sensibilidade. Para que a decisão de sondagem se
torne clara pode-se recorrer ao método gráfico.

Observações

• Só se bifurca uma variável de cada vez e se acrescenta uma restrição em cada

om
subproblema.

l.c
• Quando há mais de uma variável candidata a bifurcação, recomenda-se escolher
ai
a variável que apresentar a parte fraccionária próxima de 0.5 ou que tiver o
gm
maior coeficiente na função objectivo para maximização (menor coeficiente para
minimização).
@

• O problema de programação linear inteira, pode ter mais de uma solução óptima,
o8

i.é, diferentes pares de valores com o mesmo valor da função objectivo.


et
ub

Exemplo 5.2. Resolver o exemplo 1.1 pelo método de bifurcação e limite.


um

maximizar  Z = 7x1 + 6x2


2x + 3x2 ≤ 12
m


 1


sujeito á 6x1 + 5x2 ≤ 30


 x ∈ Z+

j 0

Resolução
A primeira aproximação é: SPL = {x1 = 3.75, x2 = 1.5, Zmax = 35.25}.
Das propriedades e passo 1, temos as condições Zm = 0, Zm ≤ Zmax = 35.25.
Na solução óptima tanto x1 como x2 podem ser bifurcados, nós vamos escolher x2 para
bifurcar porque tem parte fraccionária próxima ou igual a 0.5, Portanto B.x2 = 1.5.

Mulenga 124 2020


Investigação Operacional

subproblema 1 subproblema 2
maximizar  Z = 7x1 + 6x2 maximizar  Z = 7x1 + 6x2


 2x1 + 3x2 ≤ 12 

 2x1 + 3x2 ≤ 12

 

 6x + 5x ≤ 30
  6x + 5x ≤ 30

1 2 1 2
sujeito á sujeito á


 x2 ≤ 1 

 x2 ≥ 2

 

 x ∈ Z+
  x ∈ Z+

j 0 j 0

Para x2 = 1, substituindo nas restrições Para x2 = 2 substituindo nas restrições


 
 2x + 3 ∗ 1 = 12  2x + 3 ∗ 2 = 12
1 1
 6x + 5 ∗ 1 = 30  6x + 5 ∗ 2 = 30

om
1 1

l.c
 
 x = 4.5 ⇒ Z = 37.7, nao − viavel  x = 3(min) ⇒ Z = 33, viavel
1 1 i
 x = 4.16(min) ⇒ Z = 35.16, viavel
1 1
ai
 x = 3.3 ⇒ nao − viavel
gm

SP1 = {x1 = 4.16, x2 = 1, Zi = 35.16} SP2= {x1 = 3, x2 = 2, Zi = 33 < Zmax }


@

Zi = 35.16, Zm = 0 ⇒ passo 5 Zm = 33 é incumbido, Zi−1 = 0 é sondado


o8
et

Como o subproblema 1, apresenta um valor da função objectivo superior ao valor


obtido no subproblema 2, vamos bifurcá-lo em dois outros subproblemas, enquanto
ub

isso a solução do SP2 é guardada ou incumbida a fim de comparar com as próximas


um

soluções. Portanto B.x1 = 4.16.

subproblema 1.1 subproblema 1.2


m

maximizar  Z = 7x1 + 6x2 maximizar  Z = 7x1 + 6x2




 2x1 + 3x2 ≤ 12 

 2x1 + 3x2 ≤ 12

 

6x + 5x2 ≤ 30 6x + 5x2 ≤ 30

 

 1  1

 

sujeito á x2 ≤ 1 sujeito á x2 ≤ 1

 

≤4 ≥5
 


 x1 

 x1

 

 x ∈ Z+
  x ∈ Z+

j 0 j 0

Mulenga 125 2020


Investigação Operacional

Como o obbjecticvos é maximizar Para x1 = 5 substituindo nas restrições



levamos os valores máximos  2 ∗ 5 + 3x = 12
2
 6 ∗ 5 + 5x = 30
 2
 x =4
 1



x2 = 1  x = 0.66
2



 Z = 28 + 6 = 34
i  x = 0(min) ⇒ Z = 35
2 i

SP1.1 = {x1 = 4, x2 = 1, Zi = 34 < Zmax } SP1.2= {x1 = 5, x2 = 0, Zi = 35 < Zmax }


Zm = 34 incumbido, Zi−1 = 33 sondado Zm = 35 é incumbido, Zi−1 = 34 é sondado

om
Como não podemos mais bifurcar e nem podemos aumentar o valor da função ob-

l.c
jectivo, já alcançamos a solução óptima inteira do problema de programação linear
inteira dada pelo subproblema 1.2. SPLI = {x1 = 5, x2 = 0, Zm = 35}.
ai
gm
Seguindo Dakin (1965), apresenta-se a árvore binária que ilustra as bifurcações e as
soluções das iterações realizadas até a solução óptima inteira na Figura 5.2.
@
o8
et
ub
um
m

Figura 5.2: Árvore binária ou decisão do exemplo 5.2

Mulenga 126 2020


Investigação Operacional

Exemplo 5.3. Seja dado o problema de programação linear inteira.

minimizar  W = 6x1 + 5x2


 2x + 3x2 ≥ 4
 1


sujeito á 3x1 + 2x2 ≥ 5


 x ∈ Z+

i o

a) Usando o método simplex dual-simplex obtenha a primeira aproximação de solução.


b) Usando o método de Bifurcação e Limite e o procedimento algébrico encontre a
solução inteira partindo da primeira aproximação.

om
Resolução

Tabela 1
l.c
ai
gm
Base x1 x2 x3 x4 Bi

x3 -2 -3 1 0 -4
@
o8

x4 -3 -2 0 1 -5
et

W -6 -5 0 0 0
ub

- (2) (2.5) - - -
um

Tabela 2
m

Base x1 x2 x3 x4 Bi

x3 0 -5/3 1 -2/3 -2/3


x1 1 2/3 0 -1/3 5/3

W 0 -1 0 -2 10

- - (0.6) - (2) -

Mulenga 127 2020


Investigação Operacional

Tabela 3

Base x1 x2 x3 x4 Bi

x2 0 1 -3/5 2/5 2/5


x1 1 0 2/5 -3/5 7/5

W 0 0 -3/5 -8/5 52/5

Solução: SPL = {x1 = 7/5 = 1.4, x2 = 2/5 = 0.4 e Wmin = 52/5 = 10.4}

Desta solução conclui-se que: Ws = ∞ e Ws ≥ Wmin = 10.4.

om
Como a parte fraccionário é igual a 0.4 nas duas variáveis, recorremos aos coeficientes

l.c
da função objectivo. Portanto, para o problema de minimização vamos bifurcar x2
porque tem menor coeficiente na função objectivo, isto é: B.x2 = 0.4.
ai
gm
subproblema 1 subproblema 2
minimizar  W = 6x1 + 5x2 minimizar  W = 6x1 + 5x2
@



 2x1 + 3x2 ≥ 4 

 2x1 + 3x2 ≥ 4
o8


 

 3x + 2x ≥ 5
  3x + 2x ≥ 5

1 2 1 2
sujeito á sujeito á
et



 x2 ≤ 0 

 x2 ≥ 1
 
ub

 
 x ∈ Z+
  x ∈ Z+

j 0 j 0
um

Para x2 = 0 tem-se Para x2 = 1 tem-se


m

 
 2x + 3 ∗ 0 = 4  2x + 3 ∗ 1 = 4
1
1
 3x + 2 ∗ 0 = 5  3x + 2 ∗ 1 = 5
2
1

 
 x = 2(max) ⇒ W = 12
1 i  x = 0.5
1 −
 x = 1.66
1 −  x = 1(max) ⇒ W = 11
1 i

Repare que para os problemas de minimização levamos o valor máximo.

Mulenga 128 2020


Investigação Operacional

SP1 = {x1 = 2, x2 = 0, Wi = 12 > 10.4} SP2= {x1 = 1, x2 = 1, Wi = 11 < 12}


WS = 12 incumbido, Wi−1 = ∞ sondado Ws = 11 é incumbido, Wi−1 = 12 é sondado

Solução SPLI = {x1 = 1, x2 = 1} com Ws = 11.

om
l.c
ai
Figura 5.3: Árvore binária para o exemplo 5.3
gm

Exemplo 5.4. Dado o seguinte problema de programação linear inteira


@
o8

maximizar  Z = 2x1 − 1x2


et



 −3x1 + 2x2 ≤ 2

ub


2x1 − 4x2 ≤ 3


sujeito á
um



 1x1 + 1x2 ≤ 6


xj ∈ Z0+


m

a) Usando o método gráfico encontre a primeira aproximação de solução.


b) Usando o método de Bifurcação e Limite e o procedimento gráfico como auxiliar
encontre a solução inteira do problema.

Resolução
r1 : x1 x2 r 2 : x1 x2 r 3 : x1 x2 rz : x1 x2

0 1 0 -3/4 0 6 0 0
-2/3 0 3/2 0 6 0 2 4

Mulenga 129 2020


Investigação Operacional

om
l.c
ai
gm

Figura 5.4: Solução do problema de programação linear, exemplo 5.4


@
o8
et

Solução SPL = r2 ∩ r3 = {x1 = 4.5, x2 = 1.5} com Zmax = 7.5.


ub

Desta solução sabe-se que Zm = 0 e Zm ≤ Zmax = 7.5. E como temos empate de


um

0.5, por isso vamos recorrer a função objectivo Z = 2x1 − 1x2 , e bifurcar x1 por ter
maior coeficiente na função objectivo. B.x1 = 4.5.
m

subproblema 1 subproblema 2

maximizar  Z = 2x1 − 1x2 maximizar  Z = 2x1 − 1x2




 −3x1 + 2x2 ≤ 2 

 −3x1 + 2x2 ≤ 2

 

2x1 − 4x2 ≤ 3 2x1 − 4x2 ≤ 3

 


 

 
sujeito á 1x1 + 1x2 ≤ 6 sujeito á 1x1 + 1x2 ≤ 6

 

≤4 ≥5
 


 1x1 

 1x1

 

xj ∈ Z0+ xj ∈ Z0+

 

Mulenga 130 2020


Investigação Operacional

om
l.c
(a) Subproblema 1 (b) Subproblema 2
ai
Figura 5.5: Gráficos dos subropblemas 1 e 2 do exemplo 5.4
gm
@

SPL1 = r2 ∩ r4 , ver Figura 5.5(a) Da Figura 5.5(b), para x1 ≥ 5 a região


o8

X = {x1 = 4, x2 = 1.25, Zi = 6.75} não está no domı́nio solução, logo o sub-


Zi < Zmax ⇒ Zm = 0 problema 2 não é viável.
et
ub

Como no subproblema 1, temos solução viável não inteira, vamos bifurcar o x2 em


um

subproblemas 1.1 e 1.2. Portanto, B.x2 = 1.25

subproblema 1.1 subproblema 1.2


m

maximizar  Z = 2x1 − 1x2 maximizar  Z = 2x1 − 1x2




 −3x1 + 2x2 ≤ 2 

 −3x1 + 2x2 ≤ 2

 

2x1 − 4x2 ≤ 3 2x1 − 4x2 ≤ 3

 


 


 

 1x + 1x ≤ 6
  1x + 1x ≤ 6

1 2 1 2
sujeito á sujeito á


 1x1 ≤4 

 1x1 ≤4

 

x2 ≤ 1 x2 ≥ 2

 


 


 

xj ∈ Z0+ x ∈ Z+

 

j 0

Mulenga 131 2020


Investigação Operacional

om
l.c
(a) Subproblema 1.1 (b) Subproblema 1.2
ai
Figura 5.6: Gráficos dos subproblemas 1.1 e 1.2 do exemplo 5.4
gm
@

SPL1.1 Pmax = r2 ∩ r5 , Figura 5.6(a) SPL1.2 Pmax = r3 ∩ r5 , Figura 5.6(b)


o8

X = {x1 = 3.5, x2 = 1, Zi = 6} X = {x1 = 4, x2 = 2, Zi = 6}


Zi < Zmax ⇒ Zm = 0 Zm = 6 incumbido, Zi−1 = 0 sondado
et
ub

Como o subproblema 1.1 apresenta um valor igual ao do subproblema 1.2, significa


um

que do subproblema 1.1 não é necessário continuar a bifurcar e a solução óptima é a


que foi, obtida pelo subproblema 1.2: X = (4, 2) com Zm = 6.
m

Exemplo 5.5. Dado o seguinte problema de programação linear inteira:

minimizar  W = 10x1 + 8x2




 2x1 + 1x2 ≥ 3

sujeito á 4x1 + 6x2 ≥ 16


xj ∈ Z0+

a) Usando o método gráfico encontre a primeira aproximação de solução.

Mulenga 132 2020


Investigação Operacional

b) Usando o método de Bifurcação e Limite e o procedimento gráfico como auxiliar


encontre a solução inteira do problema.
Resolução
r1 : x1 x2 r 2 : x1 x2 rw : x 1 x2

0 3 0 8/3 0 0
3/2 0 4 0 2 -5/2

om
l.c
ai
gm
@
o8
et
ub
um
m

Figura 5.7: Solução do problema de programação linear, exemplo 5.5

Pmin = r1 ∩ r2
 
1 5 45
SPL = x1 = = 0.25, x2 = = 2.5 e Wmin = = 22.5.
4 2 2

Portanto, Ws = ∞ e Ws ≥ Wmin

Vamos difurcar x2 por ter a parte fraccionária igual a 0.5. B.x2 = 2.5

Mulenga 133 2020


Investigação Operacional

subproblema 1 subproblema 2
minimizar  W = 10x1 + 8x2 minimizar  W = 10x1 + 8x2


 2x1 + 1x2 ≥ 3 

 2x1 + 1x2 ≥ 3

 

 4x + 6x ≥ 16
  4x + 6x ≥ 16

1 2 1 2
sujeito á sujeito á


 x2 ≤ 2 

 x2 ≥ 3

 

x ∈ Z+ x ∈ Z+

 

j 0 j 0

om
l.c
ai
gm
@
o8
et

(a) Subproblema 1 (b) Subproblema 2


ub

Figura 5.8: Gráficos dos subproblemas 1 e 2 do exemplo 5.5


um
m

SPL1 Pmax = r2 ∩ r3 , Figura 5.8(a) SPL2 Pmin = r1 ∩ r3 , Figura 5.8(b)


X = {x1 = 1, x2 = 2, Wi = 26 > 22.5} X = {x1 = 0, x2 = 3, Wi = 24 < 26}
Ws = 26 incumbido, Wi−1 = ∞ sondado Ws = 24 incumbido, Wi−1 = 26 sondado

A solução para o problema de programação inteira é: X = (0, 3) com Ws = 24

5.3 Método de Corte de Gomory


O método de Gomory, foi um dos primeiros algoritmos desenvolvidos e publicados por
Gomory (1958), no seu livro “Outline of an algorithm for integer solutions to linear

Mulenga 134 2020


Investigação Operacional

programs”, para resolver problemas de programação linear inteira.

O método de Gomory também chamado “Cutting plane method”, é um procedimento


que divide o conjunto das oportunidades em dois planos tal como o método de bi-
furcação e limite faz, só que, Gomory considera apenas uma nova restrição em cada
corte, permanecendo sempre com um único problema adicionado mais uma restrição.
De forma geral, o método de corte de Gomory dá uma possibilidade de diminuir o
número das iterações, no entanto, ele pode não chegar a uma solução inteira, ainda
que tenha uma convergência rápida.

Procedimento do método de Gomory

om
Dado um problema da programação linear inteira na forma canónica ou padrão:

l.c
Passo 1. Resolver o problema de programação linear ignorando a restrição de que a
ai
solução óptima deve ser inteira, até obter a tabela terminal simplex (1a aproximação).
gm

a) Se a primeira aproximação apresentar todos valores das variáveis inteiros, esta, é


@

solução óptima do problema de programação linear inteira.


b) Se existe algum valor não inteiro de pelo menos uma variável na primeira apro-
o8

ximação de solução, esta não é solução do problema de programação linear inteira e


et

deve-se passar ao passo 2.


ub

Passo 2. Para construir a nova restrição, deve-se escolher da tabela terminal simplex
um

qualquer linha que tenha a solução não inteira xj = bi . Para diminuir o número das
iterações necessárias para convergir recomenda-se escolher a linha com a maior parte
m

fraccionária.
a) Supondo que foi escolhida a linha i, a correspondente equação é, (equação 1):
X
ai1 x1 + ai2 x2 + ... + aij xj = bi ou aij xj = bi (5.1)
b) Decompõe-se cada coeficiente fraccionário aij bem como o termo bi não inteiro
como soma de um inteiro [aij ], [bi ] e de uma fracção fij e fi respectivamente. Assim,
aij = [aij ] + fij e bi = [bi ] + fi e em seguida escreve-se a nova restrição, (equação 2).
X
− fi1 x1 − fi2 x2 − ... − fij xj + xj+1 = −fi ou − fij xj = −fi (5.2)

Mulenga 135 2020


Investigação Operacional

Passo 3. O processo de procura de solução inteira pode ser feito considerando o


método simplex dual-simplex ou o método simplex de duas fases:
a) Para usar o método simplex dual-simplex como auxiliar, deve-se adicionar esta nova
restrição (equação 2) na tabela terminal simplex e resolver o novo problema. Se esta
nova solução não for inteira volte e repita o passo 2.
b) Para usar o método simplex de duas fases, basta considerar a equação 1, a equação
2 multiplicada por (-1) e introduzir a variável artificial ai , em seguida resolver o pro-
blema com as duas restrições, a função objectivo 1 e a função objectivo Za . Se depois
da segunda fase não tiver solução inteira, volte ao passo 2. Se todas variáveis de de-
cisão sairem do modelo, este método não alcança a solução inteira.

om
Exemplo 5.6. Usando o método de Gomory e o método simplex dual-simplex como
auxiliar, resolva o seguinte problema de programação linear inteira.

l.c
maximizar  Z = −1x1 + 3x2
ai
gm


 1x1 − 1x2 ≤ 2

sujeito á 2x1 + 4x2 ≤ 15
@



xj ∈ Z0+

o8


et

Resolução
ub

Tabela 1
um

Base x1 x2 x3 x4 Bi
m

x3 1 1 1 0 2
x4 2 4 0 1 15

Z 1 -3 0 0 -

Mulenga 136 2020


Investigação Operacional

Tabela 2

Base x1 x2 x3 x4 Bi

x3 3/2 0 1 1/4 23/4


x2 1/2 1 0 1/4 15/4

W 5/2 0 0 3/4 45/4


 
15 3 23 3 45
SPL = x1 = 0, x2 = = 3 + , x3 = = 5 + , x4 = 0, Zmax = = 11.25
4 4 4 4 4

om
A solução de programação linear não é inteira e conclui-se que Zm = 0 , Zm < 11.25,
3
e como para x2 e x3 temos a mesma fracção teremos que escolher a linha 2 porque
4

l.c
x2 tem maior coeficiente na função objectivo.

1 1 15
ai
x1 + 1x2 + 0x3 + x4 = , equacao 1
gm
2 4 4
@

Tabela 5.3: Decomposição de um número misto em parte inteira e uma fracção


o8

própria no método de Gomory


et

Coeficiente = aij = [aij ] + fij


ub

1 1
a21 = = 0 +
um

2 2
a22 = 1 = 1 + 0
m

a23 = 0 = 0 + 0
1 1
a24 = = 0 +
4 4
Recurso = bi = [bi ] + fi
15 3
b2 = = 3 +
4 4

Depois da decomposição usamos só a parte fraccioária e escrevemos a segunda equação


multiplicada por (-1) que corresponde a nova restrição. Repare que x5 é a nova variável

Mulenga 137 2020


Investigação Operacional

de folga.

1 1 3
− x1 + 0x2 + 0x3 − x4 + 1x5 = − , equacao 2
2 4 4

Em seguida, colocar a equação 2, na tabela terminal anterior e fazer iterações para


obter a nova tabela terminal, como se segue.

Tabela 1

Base x1 x2 x3 x4 x5 Bi

x3 3/2 0 1 1/4 0 23/4

om
x2 1/2 1 0 1/4 0 15/4

l.c
x5 -1/2 0 0 -1/4 1 -3/4 ai
W 5/2 0 0 3/4 0 45/4
gm
@

Tabela 2
o8

Base x1 x2 x3 x4 x5 Bi
et

x3 1 0 1 0 1 5
ub

x2 0 1 0 0 1 3
um

x4 2 0 0 1 -4 3
m

W 1 0 0 0 0 9

Como Zi = 9 < Zmax então a solução inteira é: X = (0, 3, 5, 3, 0) com Zm = 9.

Exemplo 5.7. Resolva o problema de programação inteira pelo método de Gomory


recorrendo ao método simplex de duas fases nas aproximações depois do corte.

maximizar Z = 1x1 + 9x2 + 1x3

Mulenga 138 2020


Investigação Operacional


 1x + 2x2 + 3x3 ≤ 9
 1


sujeito á 3x1 + 2x2 + 2x3 ≤ 15


 x ∈ Z+

j 0

Resolução
Tabela 1

Base x1 x2 x3 x4 x5 Bi

x4 1 2 3 1 0 9
x5 3 2 2 0 1 15

om
Z -1 -9 -1 0 0 -

l.c
Tabela 2
ai
gm
Base x1 x2 x3 x4 x5 Bi
@

x2 1/2 1 3/2 1/2 0 9/2


o8

x5 2 0 -1 -1 1 6
et

Z 7/2 0 25/2 9/2 0 81/2


ub

 
9 81
um

SPL = x1 = 0, x2 = , x3 = 0, x4 = 0, x5 = 6, Zmax = = 40.5 .


2 2
m

De onde sabemos que Zm = 0, Zm < 40.5, e temos única opção, linha 1.

1 3 1 9
x1 + 1x2 + x3 + x4 + 0x5 = , equacao 1
2 2 2 2
Depois da decomposição

1 1 1 1
− x1 + 0x2 − x3 − x4 + 0x5 + 1x6 = − , equacao 2
2 2 2 2

Como pretendemos usar o método de duas fases vamor multiplicamos por (-1) a
equação 2 e introduzimos a variável artificial

Mulenga 139 2020


Investigação Operacional

1 1 1 1
x1 + 0x2 + x3 + x4 + 0x5 − 1x6 + a1 =
2 2 2 2

Tabela 1 1aF

Base x1 x2 x3 x4 x5 x6 a1 Bi

x2 1/2 1 3/2 1/2 0 0 0 9/2


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

Z 7/2 0 25/2 9/2 0 0 81/2

om
Za -1/2 0 -1/2 -1/2 0 1 0 -1/2

l.c
Tabela 2 1aF ai
Base x1 x2 x3 x4 x5 x6 a1 Bi
gm

x2 0 1 1 1/2 0 1 -1 4
@

x1 1 0 1 1 0 -2 2 1
o8

Z 0 0 9 1 0 7 -7 37
et
ub

Za 0 0 0 0 0 0 1 0
um

Tabela 1 2aF
m

Base x1 x2 x3 x4 x5 x6 Bi

x2 0 1 1 1/2 0 1 4
x1 1 0 1 1 0 -2 1

Z 0 0 9 1 0 7 37

Como, Zm < Zmax , a solução é:


SPLI: X = (1, 4, 0, 0, 0), com Zm = 37

Mulenga 140 2020


Investigação Operacional

Veja que neste exemplo, a variável x5 saiu da tabela por não ter nenhum coefici-
ente ao longo da coluna, se isso acontecer com mais variáveis, em especial variáveis de
decisão significa que este método não alcança a solução inteira.

Exemplo 5.8. Dado o seguinte problema de programação linear inteira.

maximizar  Z = 2x1 + 5x2


 2x + 5x2 ≤ 14
 1


sujeito á 3x1 + 2x2 ≤ 10


 x ∈ Z+

j 0

om
a) Usando o método simplex encontre a primeira aproximação do problema de pro-

l.c
gramação linear inteira.
b) Pelo algoritmo de Corte de Gomory e o método simple dual-simplex, encontre a
ai
solução óptima do problema de programação linear inteira.
gm
Resolução
@

a) Método simplex
o8

Tabela 1
et

Base x1 x2 x3 x4 Bi
ub

x3 2 5 1 0 14
um

x4 3 2 0 1 10

Z -2 -5 0 0 -
m

Tabela 2

Base x1 x2 x3 x4 Bi

x2 2/5 1 1/5 0 14/5


x4 11/5 0 -2/5 1 22/5

Z 0 0 1 0 14

Mulenga 141 2020


Investigação Operacional

 
14 4 22 2
SPL = x1 = 0, x2 = = 2 + , x3 = 0, x4 = = 4 + , Zmax = 14
5 5 5 5

De onde sabemos que Zm = 0, Zm ≤ 14

b) Método de corte de Gomory,. Escolher a linha 1, por ter maior fracção.

2 1 14
x1 + 1x2 + x3 + 0x4 = equacao 1
5 5 5

2 1 4
− x1 − 0x2 − x3 − 0x4 + 1x5 = − equacao 2
5 5 5

om
Tabela 1

Base x1 x2 x3 x4 x5 Bi

l.c
x2 2/5 1 1/5 0 0 14/5
ai
gm
x4 11/5 0 -2/5 1 0 22/5
x5 -2/5 0 -1/5 0 1 -4/5
@
o8

Z 0 0 1 0 0 14
et

Tabela 2
ub

Base x1 x2 x3 x4 x5 Bi
um

x2 0 1 0 0 1 2
m

x4 0 0 -3/2 1 11/2 0
x1 1 0 1/2 0 -5/2 2

Z 0 0 1 0 0 14

Solução: X = (2, 2, 0, 0, 0), Zm = 14.

Mulenga 142 2020


Investigação Operacional

5.4 Exercı́cios propostos


Exercı́cio 5.1. Usando o método de bifurcação e limite, resolva os seguintes proble-
mas de programação linear inteira. Note que para resolver pode-se recorrer a forma
analı́tica, simplex dual-simplex ou gráfica.

maximizar Z = 6x1 + 8x2 minimizar W = 1x1 + 1x2


 2x + 1x2 ≤ 6  2x1 + 2x2 ≥ 5
 1

 


a) sujeito à 2x1 + 3x2 ≤ 9 b) sujeito à 12x1 + 5x2 ≥ 30

 

x ∈ Z+ xj ∈ Z0+

 

j 0

Respostas:

om
a) SPL = {x1 = 2.25, x2 = 1.5, Zmax = 25.5} ⇒ X = (0,3), Zm = 24
b) SPL = {x1 = 2.5, x2 = 0, Wmin = 2.5} ⇒ X = (3,0), Ws = 3

l.c
ai
Exercı́cio 5.2. Usando o método de bifurcação e limite resolva as alı́neas. Use o
gm
método gráfico como auxiliar para visualizar o domı́nio solução).
@

maximizar Z = 3x1 + 2x2 minimizar W = 6x1 + 8x2


o8

 4x + 2x2 ≤ 10  2x + 3x2 ≤ 20
 1  1

 

a) sujeito à 4x1 + 6x2 ≤ 18 b) sujeito à 1x1 + 3x2 ≥ 10
et


 

x ∈ Z+ x ∈ Z+
ub


 

j 0 j 0
um

Respostas:
a) SPL = {x1 = 1.5, x2 = 2, Zmax = 8.5} ⇒ X = (2,1), Zm = 8
m

b) SPL = {x1 = 0, x2 = 3.33, Wmin = 26.67} ⇒ X = (1,3), Ws = 30

maximizar Z = 6x1 + 8x2 minimizar W = 3x1 + 4x2


 5x + 2x2 ≤ 20  2x + 3x2 ≤ 10
 1  1

 

c) sujeito à 1x1 + 2x2 ≤ 10 d) sujeito à 1x1 + 3x2 ≥ 5

 

x ∈ Z+ x ∈ Z+

 

j 0 j 0

Respostas:
c) SPL = {x1 = 2.5, x2 = 3.75, Zmax = 45} ⇒ X = (2,4), Zm = 44
d) SPL = {x1 = 0, x2 = 1.67, Wmin = 6.67} ⇒ X = (0,2), Ws = 8

Mulenga 143 2020


Investigação Operacional

Exercı́cio 5.3. Usando o método de corte de Gomory e o método simplex de duas


fases ou simplex dual-simplex, resolva os seguintes exercı́cios.

maximizar Z = 1x1 + 2x2 maximizar Z = 1x1 + 3x2


 1x + 3x2 ≤ 13  −1x1 + 3x2 ≤ 6
 1

 


a) sujeito à 2x1 − 1x2 ≤ 6 b) sujeito à 2x1 + 1x2 ≥ 12

 

x ∈ Z+ x ∈ Z+

 

j 0 j 0

Respostas:
a) SPL = {x1 = 4.43, x2 = 2.86, Zmax = 10.14} ⇒ X = (4,2), Zm = 8
d) SPL = {x1 = 4.29, x2 = 3.43, Zmax = 14.57} ⇒ X = (4,3), Zm = 13

om
maximizar Z = 50x1 + 30x2
maximizar Z = 2x1 − 4x2 + 1x3
2x1 + 4x2 ≤ 8

l.c


1x − 1x2 + 0x3 ≤ 12
 

 1
 
  5x + 2x ≤ 10

1 2
c) sujeito à 0x1 + 2x2 + 3x3 ≤ 28 d)
ai
sujeito à
 1x1 + 6x2 ≤ 12
gm

 

x ∈ Z+

 
j 0 
x ∈ Z+


j 0
@

Respostas:
o8

c) SPL = {x1 = 12, x2 = 0, x3 = 9.33, Zmax = 33.33} ⇒ X = (12, 0, 9), Zm = 33


et

d) SPL = {x1 = 1.5, x2 = 1.25, Zmax = 112.5} ⇒ X = (2,0), Zm = 100


ub
um
m

Mulenga 144 2020


Capı́tulo 6

Problemas de transporte e
afectação

om
l.c
6.1 Introdução
ai
gm

Um dos problemas comuns na administração de empresas é como conseguir fazer ope-


@

rar um conjunto de máquinas como autocarros ou aviões numa rede permissı́vel com
o8

um custo mı́nimo? Como estruturar as fábricas de produção de um determinado pro-


duto em relação aos locais de vendas de tal forma que o lúcro das vendas seja máximo.
et

Este e outros casos, são problemas que afectam a rede de transporte.


ub

Segundo Render et al (2012), o conhecimento e utilização dos modelos de proble-


um

mas de transporte, estão ligados a autores como Kantorovich que em 1939 publicou
m

o primeiro trabalho realacionado aos modelos de transporte “On the translocation of


masses”(Kantorovich, 1958), por sua zez Hitchcock (1941), publicou o segundo traba-
lho, “The distribution of a product from several sources to numerous localities”. Daqui
em diante, vários outros autores contribuiram para o desenvolvimento dos algorı́tmos
de transportes e afectação como Koopmans (1947), Cooper (1954), Dantzing (1965),
Churchman et al (1966), entre outros.

É importante lembrar que na planificação da distribuição de um produto a função


transporte leva lugar de destaque, pois, não adianta nada, do ponto de vista do mer-
cado, o fornecedor dispor de um bom produto que não é encontrado pelo cliente no

145
Investigação Operacional

momento que ele o deseja.

A estrutura geral de um modelo de problemas de transporte pode ser vista em três


perspectivas:

• Uma empresa que possui fábricas localizadas em algumas cidades e depósitos


em outras. A empresa deve determinar um programa de transporte de seus
produtos de forma a satisfazer a procura destes e minimizar os seus gastos, mas,
respeitando a capacidade das fábricas e dos depósitos (transporte directo).

• Uma variante, desta situação, é aquela em que os produtos não vão directamente
da fonte ao consumidor, eles passam por outras fontes ou destinos (transporte

om
com transbordo ou indirecto).

l.c
• A última variante, é o caso em que se tem um certo número de serviços que
ai
devem ser executados por pessoas, máquinas ou empresas, e cada conjunto ta-
refa - máquina tem seu custo associado de execução da tarefa (problemas de
gm

afectação ou assignação).
@

O que temos em comum nestes três casos é a rede de transporte ligando fontes aos
o8

destinos. Neste capı́tulo, vai-se considerar com maior detalhe o primeiro caso, por este
et

ser o mais frequente.


ub

6.1.1 Formulação de um problema de transporte


um

Um problema de transporte como um caso particular dos problemas de programação


m

linear inteira pode ser representado de três formas:


• Na forma de diagrama ou rede de transporte.
• Na forma de um modelo de programação linear.
• Na forma de um quadro modelo dos problemas de transporte.

Suponhamos que existem m - fábricas de um certo produto, cada fonte pode for-
necer uma quantidade ai e por outro lado, existem n – mercados, cada um pode
absorver uma quantidade bj . E sabe-se que, o custo de transportar de uma unidade
da fonte i para o destino j é cij . O objectivo do administrador é determinar o número
de unidades que devem ser transportadas de cada fonte para cada destino de forma

Mulenga 146 2020


Investigação Operacional

a minimizar o custo total de transporte. Este problema pode ser representado no se-
guinte esquema.

om
l.c
ai
gm

Figura 6.1: Diagrama de um problema de transporte


@
o8

Como o número de unidades a transportar de uma fábrica (Origem i) para uma loja
et

(Destino j) deve ser um número inteiro, então, os problemas podem ser apresentados
ub

como um problema de programação linear inteira. Assim o modelo geral é:


um

n X
X m
Optimizar Z = cij xij
m

 m i=1 j=1
 X



 xij = ai , i = 1, 2, ..., n
 j=1



 Xn


 xij = bj , j = 1, 2, ..., m
sujeito à i=1

 Xn Xm



 ai = bj

i=1 j=1




 xij ∈ Z +

0

Onde

Mulenga 147 2020


Investigação Operacional

• xij – é a quantidade transportada de origem i para o destino j.


• cij – é o custo de transporte de uma unidade de ai para bj .
• ai – é a quantidade disponı́vel na origem i (oferta).
• bj – é a quantidade necessária no destino j (procura).

O objectivo da programação é determinar as quantidades xij que devem ser trans-


portadas de cada origem para cada destino de modo a optimizar a soma dos produtos
n X
X m
cij × xij , isto é: Z = cij × xij .
i=1 j=1

A terceira restrição Σai = Σbj é condição de equilı́brio dos problemas de transporte.


Esta condição, sugere a existência de dois tipos de problemas de transporte:

om
a) Problema de transporte balanceados ou equilibrados, são aqueles em que o total da

l.c
oferta é igual ao total da procura e
b) Problemas de transporte não balanceados, os não equilibrados, quando as somas
ai
da oferta e da procura são diferentes.
gm

Como a condição de equilı́brio é necessária para que um problema de transporte te-


@

nha solução, para os problemas não balanceados são introduzidas origens e destinos
o8

fictı́cios com custo zero (cij = 0), de modo que o total da oferta seja igual ao total da
et

procura.
ub

a) se Σai > Σbj , introduz-se um destino fictı́cio bm+1 = Σai − Σbj .


b) se Σai < Σbj , introduz-se uma origem fictı́cia an+1 = Σbj − Σai .
um

Esta formulação do problema bem como a sua interpretação dão origem a um quadro
m

padrão dos problemas de transporte do seguinte tipo:

Mulenga 148 2020


Investigação Operacional

Destino 1Destino 2 ... Destino m Oferta


c11 c12 ... c1m
Origem 1 x11 x12 ... x1m a1
c21 c22 ... c2m
Origem 2 x21 x22 ... x2m a2
... ... ... ...
... ... ... ... ... ...
cn2 cn2 ... cnm

om
Origem n xn1 xn2 ... xnm an
Procura b1 b2 ... bm Σai = Σbj

l.c
ai
Exemplo 6.1. Considere uma empresa com duas fábricas que processam mensal-
gm

mente 15 e 25 mil sacos de arroz respectivamente. Os sacos devem ser transportados


@

para três destinos com as capacidades de absorção de 20, 10 e 10 unidades de medida.


Os custos de transporte são: c11 = 10, c12 = 3, c13 = 5, c21 = 12, c22 = 7 e c23 = 9.
o8

a) Apresente a rede que corresponde a este problema de transporte.


et

b) Apresente o problema de transporte como um problema de programação linear in-


ub

teira.
c) Construir o quadro modelo do problema de transporte.
um

Resolução
m

a) Neste problema temos duas origens e três destinos como a figura apresenta.

Mulenga 149 2020


Investigação Operacional

Figura 6.2: Representação da rede de transporte do exemplo 6.1

om
l.c
b) Modelo de programação linear
minimizar  W = 10x11 + 3x12 + 5x13 + 12x21 + 7x22 + 9x23
ai
 x11 + x12 + x13 = 15
gm




x21 + x22 + x23 = 25




@




 x + x = 20
11 21
sujeito á
o8



 x12 + x22 = 10
et






 x13 + x23 = 10
ub



 x ∈ Z+

ij 0
um

c) Quadro modelo do problema de transporte.


m

D1 D2 D3 Oferta
10 3 5
O1 x11 x12 x13 15
12 7 9
O2 x21 x22 x13 25
Procura 20 10 10 40

Mulenga 150 2020


Investigação Operacional

6.1.2 Métodos para a resolução do problemas de transporte


O método simplex ainda que seja padrão para resolver os problemas de programação
linear, para este caso, como o modelo é apresentado num quadro apropriado, o que
diminuiu considerálmente o número de células, os método de resolução são outros, e
consistem em encontrar a primeira aproximação tal como apresentado no capı́tulo 5
em seguida faz-se o teste de verificação se a primeira aproximação é óptima, caso
contrário, realizam-se iterações até encontrar a solução óptima.

a) Os métodos mais comuns usados para obter a primeira aproximação são:

1. Método de Canto Noroeste (Northwest Conner Method – CNWC).

om
2. Método de Custo mı́nimo (lúcro máximo) (Low Cust Method - LCM).

l.c
3. Método de Aproximação de Vogel (Vogel Approximation Method - VAM).
ai
b) Depois de obtida a primeira aproximação é necessário verificar se a primeira apro-
gm
ximação é solução óptima ou não. Caso não seja procura-se melhorar movimentando
@

as quantidades alocadas para células não ocupadas. Para isso existem dois métodos:
o8

1. O método designado Modify distribution (MODI)


et

2. O método de Stepping Stone.


ub

c) Mais adiante para os problemas de afectação o método Húngaro.


um

6.2 Derminação da primeira aproximação de solução


m

6.2.1 Método do canto noroeste


Para encontrar a primeira aproximação de um problema de transporte pelo Método
de Canto Noroeste (NorthWest Corner = NWC) é necessário seguir os seguintes passos:

Passo 1. Começar por alocar a quantidade necessária no canto noroeste, na posição


x11 , com uma alocação máxima possivel, x11 = min{a1 , b1 }.

Passo 2. Ajustar a linha ou coluna satisfeita com zero e depois passar a coluna

Mulenga 151 2020


Investigação Operacional

ou linha pela sequência. Note que, entende-se por linha satisfeita, se toda a quan-
tidade da oferta já foi distribuida pelos destinos. E por coluna satisfeita, se toda a
quantidade necessária num destino já foi recebida).
• se x11 = a1 ⇒ x21 = b1 − a1
• se x11 = b1 ⇒ x12 = a1 − b1

Passo 3. Repetir os passos 1 e 2 até completar o preenchimento de quadro, obtendo-


se assim a solução inicial (primeira aproximação), tendo em conta que Σxij = ai e
Σxij = bj .

Exemplo 6.2. Usando o método de canto noroeste resolva o exemplo 6.1 e apre-

om
sente o custo total.

l.c
Resolução
ai
gm
Como temos Σai = Σbj = 40, não é necessário introduzir colunas nem linhas fictı́cias.
@

D1 D2 D3 Oferta
o8

10 3 5
et

O1 15 - - 15
ub

12 7 9
um

O2 5 10 10 25
Procura 20 10 10 40
m

Ordem de preenchimento:
x11 = min{15, 20} = 15; x12 = 0; x13 = 0; linha 1 satisfeita.
x21 = min{25, 20 − 15} = min{25, 5} = 5 , coluna 1 satisfeita.
x22 = min{20, 10} = 10, coluna 2 satisfeita.
x23 = min{10, 10} = 10, linha 2 e coluna 3 satisfeitas.

Custo Total: W = 15*10 + 5*12 + 10*7 + 10*9 = 370 unidades de medida.

Mulenga 152 2020


Investigação Operacional

Observações
1. As variáveis : x11 = 15; x21 = 5; x22 = 10 e x23 = 10 são básicas (xij 6= 0).
2. As variáveis x12 = 0 e x13 = 0 são não básicas (xij = 0).
3. Como existem variáveis não básicas, então, existe uma outra alocação com o mesmo
custo total ou valor da função objectivo: W = ΣΣcij xij = 370.

Exemplo 6.3. Sejam dadas 3 origens A, B e C com as possibilidades de 90, 110


e 50 unidades de medida, respectivamente e 4 destinos 1, 2, 3 e 4 que necessitam de
60, 50, 90 e 50 unidades de medida. Sendo dada a matriz dos custos, determine pelo
método de canto noroeste a alocação óptima de modo que o custo de transporte seja
mı́nimo.

om
- 1 2 3 4
A 42 40 40
l.c
44
ai
B 46 31 38 35
gm

C 30 38 46 41
@

Resolução:
o8

Σai = 90 + 110 + 50 = 250; Σbj = 60 + 50 + 90 + 50 = 250


et
ub

1 2 3 4 Oferta
um

42 40 40 44
A 60 30 - - 90
m

46 31 38 35
B - 20 90 - 110
30 38 46 41
C - - - 50 50
Procura 60 50 90 50 250

Custo total W = 60*42+30*40+20*31+90*38+50*41 = 9810 unidades de medida.

Mulenga 153 2020


Investigação Operacional

Exemplo 6.4. Quatro postos de gasolina A, B, C e D necessitam de 50, 40, 60 e 40


mil galões de gasolina respectivamente. É possı́vel obter estas quantidades partindo
de 3 locais que dispõem de 80, 100 e 50 mil galões. Os custos de transporte de 1000
galões de gasolina do local ai para o posto bj estão apresentados no quadro.
Determine a quantidade de gasolina a ser enviada de cada local para cada posto de
modo que as necessidades dos postos sejam satisfeitas e o custo total de transporte
seja mı́nimo.
- A B C D

L1 70 60 60 60
L2 50 80 60 70

om
L3 80 50 80 60

Resolução
l.c
ai
Como Σai = 80 + 100 + 50 = 230 e Σbj = 50 + 40 + 60 + 40 = 190, temos que intro-
gm
duzir um destino fictı́cio bm+1 que necessita de 40 unidades com um custo unitário de
transporte igual a zero. Portanto, b5 = 230 − 190 = 40.
@
o8

A B C D E* Oferta
et

70 60 60 60 0
ub

L1 50 30 - - - 80
um

50 80 60 70 0
m

L2 - 10 60 30 - 100
80 50 80 60 0
L3 - - - 10 40 50
Procura 50 40 60 40 40 230

CT = 50*70 + 30*60 + 10*80 + 60*60 + 30*70 + 10*60 + 40*0 = 12400 mil unidades
de medida.

Mulenga 154 2020


Investigação Operacional

Observações
Neste preenchimento, temos por exemplo, no local 1 havia 80 mil galões, destes, 50
foram entregues ao posto A e 30 foram entregues ao posto B. No local 3, havia 50 mil
galões, onde 10 mil foram entregues ao posto B, os outros 40 mil galões não foram
entregues a nenhum posto porque todos já tinham a quantidade recessária. O custo
zero, significa que a quantidade não foi transportada, permaneceu no local.

6.2.2 Método de custo mı́nimo (lúcro máximo)


O método de custo mı́nimo (lúcro máximo), pode ser aplicado para procurar uma
solução inicial viável de menor custo ou maior lúcro. O procedimento do método é

om
seguinte:

l.c
Passo 1. Começar por alocar o máximo possı́vel na célula ou variável de menor
custo unitário (maior lúcro) e colocar zero nas células da linha ou coluna satisfeita.
ai
gm

Passo 2. Ajustar os elementos ou a quantidade que resta na linha ou coluna não


@

ajustada, a partir da variável com menor custo (maior lúcro).


o8

Passo 3. Repetir o processo para as variáveis com outros custos na ordem cres-
et

cente (decrescente) até completar o preenchimento do quadro.


ub

Exemplo 6.5. Resolver o exemplo 6.2, pelo método do custo mı́nimo.


um

Resolução
m

- D1 D2 D3 Oferta
10 3 5
O1 - 10 5 15
12 7 9
O2 20 - 5 25
Procura 20 10 10 40
O preenchimento do quadro agora seguiu a sequência crescente dos custos:

Mulenga 155 2020


Investigação Operacional

c12 = 3 ⇒ x12 = min{15, 10} = 10, coluna 2 satisfeita


c13 = 5 ⇒ x13 = min{5, 10} = 5, linha 1 está satisfeita
c23 = 9 ⇒ x23 = min{25, 5} = 5, coluna 3 satisfeita
c21 = 12 ⇒ x21 = min{20, 20} = 20, linha 2 e coluna 1 estão satisfeitas.
W = 10*3 + 5*5 + 20*12 + 5*9 = 340 u.m.

Comparando os dois métodos, pode-se observar que, diminuimos de 370 para 340,
o que significa de que com o método de canto noroeste o custo total diminui em 30
unidades de medida.

Exemplo 6.6. Uma empresa tem três fábricas F1, F2, F3 onde produz uma de-

om
terminada mercadoria nas quantidades 75, 150 e 100 toneladas respectivamente. Esta
mercadoria deve ser enviada para cinco consumidores C1, C2, C3, C4, e C5, que ne-

l.c
cessitam de 100, 60, 40, 75 e 75 toneladas respectivamente. Os custos de transporte
ai
por tonelada entre as várias fábricas e os consumidores são os seguintes:
gm

- C1 C2 C3 C4 C5
@

F1 3 2 3 4 1
o8

F2 4 1 2 4 2
et

F3 1 0 5 3 2
ub
um

Usando o método de custo mı́nimo, determine qual é a programação que a empresa


deve adoptar por forma a satisfazer as necessidades dos consumidores com um custo
m

de transporte mı́nimo.

Resolução
Σai = 325, Σbj = 350, precisamos origem fictı́cia F4 = 350 − 325 = 25

Ordem de preenchimento
c41 = 0 ⇒ F4C1 = 25, linha 4 satisfeita
c32 = 0 ⇒ F3C2 = 60, coluna 2 satisfeita
c31 = 1 ⇒ F3C1 = 40, linha 3 satisfeita
c15 = 1 ⇒ F1C5 = 75, linha 1 e coluna 5 satisfeitas

Mulenga 156 2020


Investigação Operacional

c23 = 2 ⇒ F2C3 = 40, coluna 3 satisfeita


c21 = 4 ⇒ F2C1 = 35, linha 2 e coluna 1 satisfeitas
c24 = 4 ⇒ F2C4 = 75, linha 2 e coluna 4 satisfeitas

- C1 C2 C3 C4 C5 Oferta

3 2 3 1 1
F1 - - - - 75 75
4 1 2 4 2
F2 35 - 40 75 - 150

om
1 0 5 3 2

l.c
F3 40 60 - - -
ai 100
0 0 0 0 0
gm

F4* 25 - - - - 25
@

Procura 100 60 40 75 75 350


o8
et

CT = 75*1 + 35*4 + 40*2 + 75*4 + 40*1 + 60*0 + 25*0 = 635 unidades de medida.
ub

Observações
um

1. O valor da variável x41 = 25 associado ao custo c41 = 0, significa que o consu-


m

midor C1 não recebeu 25 unidades, tendo recebido apenas 75 unidades, porque


não existiam mais quantidades nas fábricas.

2. Neste preenchimento e em muitos casos, quando existem células com custos ou


lúcros unitários iguais pode se começar por qualquer uma das células.

Exemplo 6.7. Uma empresa manufactura cadeiras em três fábricas e manda-as para
três armazéns onde posteriormente os clientes compram-nas. A gerência deseja maxi-
mizar o lúcro no fim de cada lote vendido. Os lúcros unitários variam com as distâncias
entre os armazéns e as fábricas conforme a tabela.

Mulenga 157 2020


Investigação Operacional

A1 A2 A3 Oferta
F1 20 22 14 40
F2 15 20 13 50
F3 22 23 18 30
Procura 28 38 54 -

a) Estabeleça a solução inicial pelo método de lúcro máximo.


b) Resolva o mesmo exemplo pelo método de canto noroeste.

om
Resolução
a) Método de lúcro máximo

l.c
A1 A2 A3 Oferta ai
20 22 14
gm

F1 28 8 4 40
@

15 20 13
o8

F2 - - 50 50
et
ub

22 23 18
F3 - 30 - 30
um

Procura 28 38 54 120
m

O preenchimento do quadro seguiu a sequência decrescente dos lúcros:


l32 = 23 ⇒ x32 = 30, linha 3 satisfeita;
l12 = 22 V x12 = 8, coluna 2 está satisfeita;
l11 = 20 ⇒ x11 = 28, coluna 1 satisfeita;
l13 = 14 ⇒ x13 = 4. linha 1 está satisfeitas.
l23 = 13 ⇒ x23 = 50, linha 2 e coluna 3 estão satisfeitas.

Lúcro total Z = 28*20 + 8*22 + 4*14 + 50*13 + 30*23 = 2132 u.m.

Mulenga 158 2020


Investigação Operacional

b) Método de canto noroeste


A1 A2 A3 Oferta

20 22 14
F1 28 12 - 40
15 20 13

F2 - 26 24 50
22 23 18
F3 - - 30 30

om
Procura 28 38 54 120

l.c
Z = ΣΣcij × xij = 1884 ai
gm
Mais uma vez, a solução é melhor com o método de lúcro máximo do que o método
de canto noroeste. Em geral, este método apresenta uma solução mais próxima da
@

solução óptima do que canto noroeste.


o8

6.2.3 Método de aproximação de Vogel


et
ub

O método de aproximação de Vogel (Vogel Approximation Method - VAM) é uma


versão desenvolvida do método do custo mı́nimo, geralmente este método produz uma
um

melhor solução inicial em relação ao método do canto noroeste.


m

O método de aproximação de Vogel, baseia-se na comparação dos custos (lúcros),


calculando diferenças ou penalidades em cada linha e em cada coluna da matriz. O
procedimento para a determinação da solução inicial pelo método de aproximação de
Vogel está resumido nos passos:

Passo 1. Para cada linha e coluna da tabela do problema de transporte, determinar


a diferença positiva entre o menor custo unitário na linha e coluna e o imediatamente
superior custo unitário. Se o problema é de maximização a diferença é calculada para
os dois primeiros lúcros unitários máximos. (O valor da diferença é chamado penali-

Mulenga 159 2020


Investigação Operacional

dade pi (linha) ou pj (coluna) e respresenta o custo de oportunidade por não ter usado
a melhor rota).

p i = c2 − c1 onde c1 < c2 (min) pi = l1 − l2 onde l1 > l2 (max)(6.1)


p j = c2 − c1 onde c1 < c2 (min) pj = l1 − l2 onde l1 > l2 (max)(6.2)

Passo 2. Identificar a linha ou coluna com o maior custo de oportunidade (máxima


penalidade), se houver emprate, escolher a linha ou coluna com o menor custo nuitário
(maior lúcro unitário).

Passo 3. Na linha ou coluna escolhida, alocar o máximo possı́vel para a variável

om
com o menor custo unitário (maior lúcro unitário para os problemas de maximização),
xij = min{ai , bj }.

l.c
ai
Passo 4. Eliminar a linha ou coluna que estiver completamente satisfeita depois
gm
desta alocação. A eliminação é feita colocando x0 s ou um traço nas células que não
devem participar mais nos próximos cálculos das penalidades.
@
o8

Passo 5. Repetir os passos 1 - 4 até que a solução inicial seja obtida.


et

Exemplo 6.8. Sejam dadas 3 origens A, B e C com as possibilidades de 90, 110


ub

e 50 unidades de medida, respectivamente e 4 destinos 1, 2, 3 e 4 que necessitam


um

de 60, 50, 85 e 45 unidades de medida. Sendo dada a matriz dos custos, determinar
pelo método de aproximação de Vogel a primeira aproximação de solução do problema.
m

- D1 D2 D3 D4
A 41 40 40 44
B 46 31 38 35
C 30 38 46 41
Resolução
Σai = 90 + 110 + 50 = 250, Σbj = 60 + 50 + 85 + 45 = 240
Como temos oferta > procura, precismos b5 = 250 − 240 = 10

Mulenga 160 2020


Investigação Operacional

- D1 D2 D3 D4 D5 Of. pi
42 40 40 44 0
A 10 - 70 - 10 90 40 0 0 2 2
46 31 38 35 0
B - 50 15 45 - 110 31 4 4 3 8
30 38 46 41 0
C 50 - - - - 50 30 8 - - -
Proc. 60 50 85 45 10 250
pj 12 7 2 6 0

om
12 7 2 6 -

l.c
4 9 2 9 -
ai
4 - 2 9 -
gm
4 - 2 - -
@

Para exemplificar, vai-se apresentar as primeiras penalidades apenas:


o8

Linhas: p1 = 40–0 = 40, p2 = 31 − 0 = 31, p3 = 30 − 0 = 30


et

Colunas: p1 = 42–30 = 12, p2 = 38 − 31 = 7, p3 = 40 − 38 = 2, ...


ub

A penalidade máxima nesta série é de 40, é por isso que escolheu-se a linha 1 (li-
um

nha A) e alocou-se com 10 unidades na posição x15 . Tendo sido satisfeita a coluna 5
colocou-se {-} e repetiu-se o cálculo das segundas penalidades.
m

CT = 10*42 + 70*40 + 10*0 + 50*31 + 15*38 + 45*35 + 50*30 = 8415 u.m.

Exemplo 6.9. Uma empresa possui 4 armazéns onde dispõe de 18, 4, 6, 12 tone-
ladas de arroz. Estes armazéns abastecem 4 cidades que necessitam, respectivamente
de 6, 14, 15 e 5 toneladas deste arroz. Considere o quadro seguinte onde se apresentam
os custos de transporte em mil meticais por tonelada transportada.

Mulenga 161 2020


Investigação Operacional

- C1 C2 C3 C4
A1 9 7 12 8
A2 15 12 12 15
A3 8 9 6 12
A4 14 12 11 12

Usando o método de canto noroeste, encontre a primeira aproximação de solução.

Resolução

om
Σai = Σbj = 40

l.c
- C1 C2 C3 C4 Oferta pi
9 7 12 8
ai
gm
A1 4 14 - - 18 1 1 1 - -
15 12 12
@

15
4
o8

A2 - - 4 - 0 0 3 3 -
et

8 9 6 12
6
ub

A3 - - 6 - 3 - - - -
14 12 11 12
um

A4 2 - 5 5 12 1 1 1 2 2
m

Procura 6 14 15 5 40
pj 1 2 5 4
5 5 1 4
5 - 1 4
1 - 1 3
* - * *

W = 4*9+14*7+4*12+6*6 +2*14+ 5*11+5*12 =361 u.m.

Mulenga 162 2020


Investigação Operacional

Exemplo 6.10. Uma transportadora aluga os seus camiões para o transporte de


batata dos centros de produção da zona centro para 4 mercados na zona sul de
Moçambique. O gestor das operações depois de uma análise cuidadosa elaborou um
modelo de programação linear ilustrado.

maximizar Z = 12x11 + 10x12 + 9x13 + 11x14 + 10x21 + 14x22 + 13x23 + 12x24


 + 12x31 + 9x32 + 9x33 + 13x34


 x11 + x12 + x13 + x14 = 15


x21 + x22 + x23 + x24 = 11






x31 + x32 + x33 + x34 = 17




om


 x + x + x = 14
11 21 31
sujeito á
 x12 + x22 + x32 = 8

l.c







 x13 + x23 + x33 = 12 ai



 x14 + x24 + x34 = 9
gm




 x ∈ Z+

ij 0
@
o8

O ojbectivo é no fim uma etapa de distribuição obter o maior lúcro possivel. Na ten-
tativa para identificar a melhor distribuição da batata pelos mercados.
et

a) Escreva o problema como um problema de programação linear.


ub

b) Usando os três métodos entre as primeiras aproximações de soluções possı́veis.


um

Resolução
m

a) Problema de transporte modelo

Mulenga 163 2020


Investigação Operacional

- M1 M2 M3 M4 Oferta
12 10 9 11
CP1 x11 x12 x13 x14 15
10 14 13 12
CP2 x21 x22 x23 x24 110
12 9 9 13
CP3 x31 x32 x33 x34 17
Procura 14 8 12 9 43

om
c1) Método de canto noroeste

- M1 M2 M3 M4
l.c
Oferta
ai
gm
12 10 9 11
CP1 14 1 - - 15
@

10 14 13 12
o8

CP2 - 7 4 - 10
et

12 9 9 13
ub

CP3 - - 8 9 17
um

Procura 14 8 12 9 43
m

Z = 14*12 + 1*10 + 7*14 + 4*13 + 8*9 + 9*13 = 517 unidades de medida.

c2. Método de lúcro máximo

Mulenga 164 2020


Investigação Operacional

- M1 M2 M3 M4 Oferta
12 10 9 11
CP1 14 - 9 - 15
10 14 13 12
CP2 - 8 3 - 11
12 9 9 13
CP3 - - 8 9 17
Procura 14 8 12 9 43

om
Z= 14*12 + 9*9 + 8*14 + 3*13 + 8*9 + 9*13 = 517 unidades de medida

c3. Método de aproximação de Vogel


l.c
ai
gm
- M1 M2 M3 M4 Oferta pi
@

12 10 9 11
o8

CP1 6 8 1 - 15 1 1 2 2
et

10 14 13 12
ub

CP2 - - 11 - 11 1 - - -
um

12 9 9 13
CP3 8 - - 9 17 1 1 3 -
m

Procura 14 8 12 9 43
pj 0 2 4 1
0 1 0 2
0 1 0 -
* * * -

Z = 6*12 + 8*10 + 1*9 + 11*13 + 8*12 + 9*13 = 517 unidades de medida.

Mulenga 165 2020


Investigação Operacional

6.3 Teste e melhoramento de solução


Nos exemplos anteriores foi referido que estávamos a calcular a primeira aproximação
de solução do problema de transporte. De um modo geral, depois de encontrada a
primeira aproximação por qualquer um dos três métodos, é necessário fazer um teste
de optimidade de solução. Caso a primeira solução cumprir com as condições de opti-
midade (definição 1), dizemos que a solução óptima foi alcançada.

Definição 1. Uma solução é óptima se todos os multiplicadores simplex ou preços de


sombra das variáveis não básicas for maior ou igual azero (δij ≥ 0), para os problemas
de minimização e menor ou igual a zero (δij ≤ 0), para os problemas de maximização.

om
Definição 2. Uma solução é degenerada, quando o número de células ocupadas

l.c
for menor do que o número de linhas+número de colunas - 1 ou ncelocup < n + m–1.
ai
Esta situação pode ocorrer tanto na primeira aproximação como em qualquer fase de
melhoramento da solução.
gm
@

Quando se tem uma solução degenerada, muitas vezes não se consegue desenvolver
o teste de optimidade de solução. Para que sejam desenvolvidos os métodos de teste
o8

de optimidade da solução é introduzida uma alocação artificial com uma quantidade


et

bastante pequena, diga-se uma infinitésima ε (lê-se épsilon), em uma ou mais células
ub

não ocupadas até que a solução seja dgenerada e considera-se que esta célula está
ocupada. Depois de encontrada a solução óptima do problema retira-se da tabela a
um

alocação artificial fazendo ε = 0.


m

Definição 3. Circuito de avaliação é um caminho com sinais positivo (+) e nega-


tivo (-) de frma alternada, que começa numa variável não básica (xij = 0), passa por
células com variáveis básicas (xij 6= 0) e termina na variável não básica onde começou.

Definição 4. Um circuito de avaliação dever ter um percurso fechado, descre-


vendo ângulos rectos ou razos ao passar de uma célula para outra. Em seguida são
apresentados alguns circuitos de avaliação.

Mulenga 166 2020


Investigação Operacional

Figura 6.3: Exemplos de alguns circuitos de avaliação

Como já referido na subsecção 6.1.2, o teste de optimidade de solução pode ser feito
usando o método de MIDI ou pelo método de Stepping Stone.

om
l.c
6.3.1 Método de MODI para o teste de optimidade de solução
ai
Determinada a primeira aproximação por qulquer um dos três métodos NWC, LCM
gm
ou VAM, para aplicar o método de MODI, é necessário seguir os seguintes passos.
Atenção verifique antes se a solução é degenerada.
@
o8

Passo 1. Partindo do quadro da primeira aproximação, para cada variável básica


(xij 6= 0), escrever uma equação da form ui + vj = cij . O resultado de todas equações
et

é um sistema de equações com as variávies ui e vj .


ub
um

Passo 2. Igualar a zero ui ou vj que aparecer mais vezes no sistema. Se houver


mais de uma variável com igual frequência, qualquer uma pode-se escolher para igua-
m

lar a zero.

Passo 3. Usando o método de substituição, calcular os valores dos outros u0i s e


vj0 s considerando cij = ui + vj para todas variáveis não ocupadas (xij 6= 0). Se não
for possı́vel calcular os valores de ui e vj para uma ou mais equações significa que o
problema está degenerado, neste caso use a definição 2 e escreva uma equação para
esta célula. Em seguida, termine a resolução do sitema.

Passo 4. Para todas células não ocupadas calcule os multiplicadores simplex, isto
é:. δij = cij –(ui + vj ) para xij = 0

Mulenga 167 2020


Investigação Operacional

Passo 5. Se todos os multilicadores simplex do passo 4, forem positivos ou iguais


a zero (δij ≥ 0), para minimização, negativos ou iguais a zero (δij ≤ 0), para maxi-
mização a solução é óptima, caso contrário, passe para a subsecção 6.3.3, para fazer o
melhoramento.

6.3.2 Método de Stepping Stone para o teste de optimidade


de solução
O método proposto por Stepping Stone, consiste em avaliar os custos efectivos das
rotas para encontrar a rota mais viável do problema de transporte com objectivo de
melhorar a solução. Os passos do procedimento são:

om
Passo 1. Identificar todas as células não ocupadas ou todas as variáveis não básicas.

l.c
ai
Passo 2. Para cada célula não ocupada, traçar um circuito de avaliação tendo em
gm
conta que cada circuito deve começar e terminar na mesma variável não básica.
@

Passo 3. Escrever os custos ou lúcros em todos os cantos onde o circuito passou


o8

associados aos sinais positivos (+) e negativos (-).


et

Passo 4. Para cada variável não básica conforme o circuito de avaliação, calcular
ub

o multiplicador simplex δij como soma de todos os custos ou lúcros com sinal positivo
um

e negativo, isto é: δij = Σ(+cij + Σ(−cij ) (min) ou δij = Σ(+lij + Σ(−lij ) (max).
m

Passo 5. Se todos multiplicadores simplex forem positivos ou iguais a zero (δij ≥ 0),
para minimização ou negativos ou iguais a zero (δij ≤ 0), para maximização a solução
é óptima, caso contrário, a solução deve-ser melhorada. e passe para a subsecção 6.3.3
para melhorar.

6.3.3 Procedimento para o melhoramento de solução


Tendo-se chegado a conclusão de que a solução deve ser melhorada seguem-se os passos
de melhoramento da solução.

1. Identifique a célula com o menor multiplicador simplex (min δij para mini-

Mulenga 168 2020


Investigação Operacional

mização) ou maior multiplicador simplex (max δij para maximização) e a variável


não básica xij correspondente a esta célula entra na base. Se houver empate
deve-se escolher uma entre as variáveis com os preços de sombra empatados.

2. Traçe-se um circuito de avaliação para a variável que deve entrar na base e


coloque os valores das alocações nas células ao longo do circuito.

3. Identificar o menor valor em módulo entre os valores negativos no circuito:


- substriair este mı́nimo todos os outros valores negativos no circuito,
- somar este mı́nimo a todos outros valores com sinal positivo no circuito.

4. Depois desta alocação, calcule o novo custo total ou lúcro total e repita o teste

om
de melhoramento 6.3.1 ou 6.3.2 até obter a solução óptima.

l.c
Exemplo 6.11. Usando os dados do exemplo 6.7 para maximização.
ai
a) Estabeleça a solução inicial pelo método de aproximação de Vogel.
gm
b) Usando o método de Stepping Stone verifique se a solução é óptima. Caso contário
realize todas iterações até obter o lúcro máximo.
@
o8

Resolução
a) Método de aproximação de Vogel
et

- A1 A2 A3 Oferta pi
ub

20 22 14
um

F1 28 - 12 40 2 6 *
m

15 20 13
F2 - 38 12 50 5 2 -
22 23 18
F3 - - 30 30 1 4 *
Procura 28 38 54 120
pj 2 1 4
2 - 4
- - 4

Mulenga 169 2020


Investigação Operacional

Lúcro total = 28*20 + 12*14 + 38*20 + 12*13 + 30*18 = 2184 u.m.

b) Teste 1, pelo método de Stepping Stone


Vamos escrever circuitos para ss váriáveis não básicas: x12 , x21 , x31 e x32 .

Variável circuito de avaliação multiplicador simplex

x12 x12 → x22 → x23 → x13 → x12 δ12 = 22 − 20 + 13 − 14 = 1


x21 x21 → x23 → x13 → x11 → x21 δ21 = 15 − 13 + 14 − 20 = −4
x31 x31 → x33 → x13 → x11 → x31 δ31 = 22 − 18 + 14 − 20 = −2

om
x32 x32 → x33 → x23 → x22 → x32 δ32 = 23 − 18 + 13 − 20 = −2

l.c
Para um problema de maximização, como δ12 = 1 ≥ 0, significa de que a actual solução
ai
não é óptima e deve ser melhorada introduzindo a variável x12 na base. E como o
gm
mı́nimo das alocações no circuito com sinal negativo (-) é 12, então 12 é a quantidade
a somar e substrair as outras células ao longo do circuito. x12 = min{38, 12} = 12.
@

As somas e deferenças para as vaiáveis que estão no circuito são:


o8
et

x12 = 0 + 12 = 12
ub

x22 = 38 − 12 = 26
um

x23 = 12 + 12 = 24
x13 = 12 − 12 = 0
m

O novo quadro e o lúcro desta etapa é.

Mulenga 170 2020


Investigação Operacional

- A1 A2 A3 Oferta
20 22 14
F1 28 12 - 40
15 20 13
F2 - 26 24 50
22 23 18
F3 - - 30 30
Procura 28 38 54 120

om
LT = 28*20 + 12*22 + 26*20 + 24*13 + 30*18 = 2196, ∆z = 12 u.m

Teste 2 de optimidade de solução


l.c
ai
gm
Variável circuito de avalia,ção multiplicador simplex
@

x13 x13 → x12 → x22 → x23 → x13 δ13 = 14–22 + 20 − 13 = −1


o8

x21 x21 → x22 → x12 → x11 → x21 δ21 = 15–20 + 22 − 20 = −3


et

x31 x31 → x33 → x23 → x22 → x12 δ31 = 22–18 + 13 − 20 + 22 − 20 = −1


ub

x32 x32 → x33 → x23 → x22 → x23 δ32 = 23–18 + 13 − 20 = −2


um

Como todos os preços de sombra (multiplicadores simplex) são negativos (∀δij ≤ 0),
m

então já encontramos o lúcro máximo, isto é, a solução óptima. Zmax = 2196

Exemplo 6.12. Uma empresa pretede transporta 43 toneladas disponı́veis em 3 ar-


mazens: A1=15, A2=11 e A3=17 toneladas de arroz, para 4 mercados que necessitam
de 14, 8, 12, 9 toneladas respectivamente. Os custos de transporte de uma tonelada
de ai para bj são:
c11 = 12, c12 = 10, c13 = 9, c14 = 11,
c21 = 10, c22 = 14, c23 = 13, c24 = 12,
c31 = 12, c32 = 9, c33 = 7, c34 = 13

Mulenga 171 2020


Investigação Operacional

a) Usando o método de custo mı́nimo, encontre a primeira aproximação de solução do


problema de transporte.
b) Pelo método de MODI, verifique se a solução em (a) é óptima, caso não seja, en-
contre a solução óptima.

Resolução
a). Método do custo mı́nimo

- v1 v2 v3 v4 Oferta
12 10 9 11
15

om
u1 3 3 - 9
10 14 13 12

l.c
u2 11 - - - 11
ai
12 9 7 13
gm
u3 - 5 12 - 30
@

Procura 14 8 12 9 43
o8

CT = 3*12 + 3*10 + 11*10 + 5*9 + 12*7 = 404.


et
ub

b) Teste 1 de optimidade, método de MODI.


um

Equações para xij 6= 0 valores de ui e vj δij para xij = 0


m

  


 u1 + v1 = 12 

 u1 = 0, v1 = 12 

 δ13 =9−0−8=1

 
 

u + v = 10 u1 = 0, v2 = 10 δ22 = 14 + 2 − 10 = 6

 
 


 1 2 
 


 
 

= 12 + 2 − 8 = 7

 u + v = 11  
1 4
 u1 = 0, v4 = 11  δ
23

 u2 + v1 = 10




 u2 = −2, v1 = 12  δ24

 = 12 + 2 − 11 = 3

 
 

u3 = −1, v2 = 10 = 12 + 1 − 12 = 1
  


 u 3 + v 2 = 9 




 δ31

 
 

u3 = −1, v3 = 8 = 13 + 1 − 11 = 3

 u +v =7 
 
 δ
3 3 34

Mulenga 172 2020


Investigação Operacional

Repare que para resolver o sistema, começou-se por fazer u1 = 0, porque esta variável
aparece três vezes no sistema. Em seguida, usando substituições sucessivas foram cal-
culados os outros u0i s e vj0 s. Para terminar o teste, foram calculados os δij para variáveis
não básicas. E como todos preços de sombra são positivos, então Wmin = 404.

Exemplo 6.13. Uma companhia aérea pode comprar o seu combustı́vel a qualquer
um dos seus três fornecedores. As necessidades da companhia para um mês em cada
um dos três aeroportos em que ela opera são: 320, 270 e 150 mil galões, respectiva-
mente no aeroporto 1, 2 e 3. Cada fornecedor pode abastecer cada um dos aeroportos
com os preços em mil meticais o galão, dados na seguinte tabela.

om
Fornecedor A1 A2 A3

l.c
F1 92 89 90
F2 91
ai
91 95
gm
F3 87 90 92
@

Cada fornecedor está no entanto limitado pelo número de galões que pode abastecer
o8

respectivamente por mês. Estas capacidades são 100, 180 e 300 mil galões respecti-
et

vamente para os fornecedores 1, 2 e 3. Para determinar a polı́tica de aquisição do


ub

combustı́vel que suprirá as necessidades da companhia em cada aeroporto a um custo


mı́nimo.
um

a) Usando o método de canto noroeste, determine a primeira distribuição do combústivel.


b) Verifique se a solução inicial é degenerada ou não.
m

c) Usando o método de MODI, verifique se a primeira aproximação é óptima. Caso


contrário, optimize-a.

Resolução
a) Método de canto noroeste
Σai = 580, Σbj = 740, precisamos uma origem fictı́cia a4 = 740 − 580 = 150

Mulenga 173 2020


Investigação Operacional

— v1 v2 v3 Oferta
92 89 90
u1 100 - - 100
91 91 95
u2 180 - - 180
87 90 92
u3 40 260 - 300
0 0 0
160

om
u4 - 10 150
Procura 320 270 150 740

l.c
CT = 100*92 + 180*91 + 40*87 + 260*90 10*0 + 150*0 = 52460.
ai
gm

b) precisamos 4+3-1 = 6 células ocupadas. Como temos x11 , x21 , x31 , x32 , x42 , x43 ,
@

6 celulas ocupadas, então a solução não é degenerada.


o8

c) Teste 1 de optimidade, método de MODI, usou-se v1 = 0 .


et
ub

  


 u1 + v1 = 92 

 u1 = 92, v1 = 0 

 δ12 = 89 − 92 − 3 = −6N

  
um

 
u2 + v1 = 91 u2 = 91, v1 = 0 δ13 = 90 − 92 − 3 = −5

 
 


 
 


 
 

= 91 − 91 − 3 = 3

 u +v  
3 1 = 87  u = 87, v = 0
3 1
 δ
22
m



 u3 + v2 = 90 

 u3 = 87, v2 = 3 

 δ23 = 95 − 91 − 3 = 1

 
 

u4 = −3, v2 = 3 = 92 − 87 − 3 = 2
  


 u4 + v2 =0 




 δ33

 
 


 u +v =0  u = −3, v = 3
 
 δ =0+3−0=3
4 3 4 3 41

Como temos muitos negativos para um problema de maximização, significa de que a


solução não é óptima. Entre os negativos δ12 = −6 é o mı́nimo, por isso a variável x12
deve entrar na base e os circuitos correspondentes com os valores antes e depois das
somas são.

Mulenga 174 2020


Investigação Operacional

Antes: +x12 (0) − x32 (260) + x31 (40)–x11 (100), x12 = min{260, 100} = 100,
Depois: +x12 (100) − x32 (160) + x31 (140)–x11 (0), O novo quadro do problema é:

— v1 v2 v3 Oferta
92 89 90
u1 - 100 - 100
91 91 95
u2 180 - - 180
87 90 92
300

om
u3 140 160 -
0 0 0

l.c
u4 - 10 150 160 ai
Procura 320 270 150 740
gm

CT = 100*89 + 180*91 + 140*87 + 160*90 +10*0 + 150*0 = 51860.


@
o8

Teste 2 de optimidade, método de MODI, usou-se v2 = 0 .


et

  
ub



 u1 + v2 = 89 

 u1 = 89, v2 = 0 

 δ11 = 92 − 89 + 3 = 6

 
 

u2 + v1 = 91 u2 = 94, v1 = −3 δ13 = 90 − 89 − 0 = 1
  
um


 
 


 
 

  

 u +v = 87  u = 90, v = −3
 
 δ = 91 − 94 − 0 = −3N
3 1 3 1 22
m



 u3 + v2 = 90 

 u3 = 90, v2 = 0 

 δ23 = 95 − 94 − 0 = 1

 
 

= 92 − 90 − 0 = 2
  
 u4 + v2 =0  u4 = 0, v2 = 0  δ33

 
 


 
 

=0−0+3=3

 u +v  
4 3 =0  u = 0, v = 0
4 3
 δ
41

A solução ainda não é óptima, já que δ22 = −3, e a variável x22 deve entrar na base.
Antes: +x22 (0) − x32 (160) + x31 (140)–x21 (180), x22 = min{160, 180} = 160,
Depois: +x22 (160) − x32 (0) + x31 (300)–x21 (20), O novo quadro do problema é:

Mulenga 175 2020


Investigação Operacional

— v1 v2 v3 Oferta
92 89 90
u1 - 100 - 100
91 91 95
u2 20 160 - 180
87 90 92
u3 300 - - 300
0 0 0
160

om
u4 - 10 150
Procura 320 270 150 740

l.c
CT = 100*89 + 20*91 + 160*91 + 300*87 +10*0 + 150*0 = 51380.
ai
gm

Teste 3 de optimidade
@

  
o8



 u1 + v2 = 89 

 u1 = 89, v2 = 0 

 δ11 = 92 − 89 − 0 = 3

 
 

u2 + v1 = 91 u2 = 91, v1 = 0 δ13 = 90 − 89 − 0 = 1
  
et


 
 


 
 

  
= 95 − 91 − 0 = 4

 u +v  
= 91  u = 91, v = 0  δ
ub

2 2 2 2 23
 u3 + v1 = 87  u3 = 87, v1 = 0  δ32 = 90 − 87 − 0 = 3
um


 
 


 
 

= 92 − 87 − 0 = 5
  


 u4 + v2 =0 

 u4 = 0, v2 = 0 

 δ33
  
m

  
=0−0−3=0

 u +v  
4 3 =0  u = 0, v = 0
4 3
 δ
41

Agora ∀δij ≥ 0, para os problemas de minimização já temos a solução óptima, e o


custo total mı́nimo é de 51380 mil meticais.

Observações
1. Já observeu que por qualquer um dos métodos usados para o teste de solução,
quando esta não é óptima o procedimento de melhoramento é sempre necessário.

2. O método de MODI exige a resolução de um sistema de equações pelo método

Mulenga 176 2020


Investigação Operacional

de substituição, enquanto que, o método de Stepping Stone precisa um domı́nio


na idenficação dos ciruitos para as variáveis não básicas.

3. No melhoramento de solução sempre é necessário traçar um circuito de avaliação


da variável a incluir como básica.

4. O método de Stepping Stone é rápido, mas, a maior dificuldade neste método


reside na identificação dos circuitos, enquanto o método de MODI é moroso e
mais estruturado, por isso, é mais preferido.

6.4 Problemas de afectação e o método Húngaro

om
Um outro tipo de problema de distribuição é o chamado problema de afectação (alocação).

l.c
O problema de afectar n - pessoas a n - tarefas é um caso particular do problema de
transporte. O modelo de programação linear para os problemas de alocação tem um
ai
custo de alocação cij da pessoa i para a tarefa j e é definido por.
gm

 1 se a pessoa i realiza a tarefa j
xij =
@

 0 caso contrario
o8

O modelo geral de programação linear inteira para os problemas de afectação é defi-


et

nido da seguinte maneira.


ub

n X
X n
Optimizar Z = cij xij
um

 n i=1 j=1
 X
 xij = 1, i = 1, 2, ..., n
m





 j=1
 n
sujeito à X

 xij = 1, j = 1, 2, ..., n

 i=1


 xij ∈ Z +

0

Observações
1. A matriz dos custos ou lúcros deve ser quadrada, caso contrário usa - se linhas ou
colunas fictı́cias.
2. Todos os problemas de alocação podem ser resolvidos pelos métodos vistos nos pro-

Mulenga 177 2020


Investigação Operacional

blemas de transporte, mas, como se trata de um problema de transporte degenerado


temos um método especı́fico, chamado método Húngaro.

Algoritmo do método Húngaro


Passo 1. Em cada linha da matriz quadrada dos custos ou lúcros identificar o menor
custo (maior lúcro) e subtrair a este mı́nimo todos outros elementos da linha formando
um novo quadro.

Passo 2. Repetir o passo 1 para colunas do novo quadro, e formar um outro novo
quadro.

om
Passo 3. Se existirem no quadro resultante k - zeros, de modo que haja apenas

l.c
um zero em cada linha e um zero em cada coluna, esta é a solução óptima. O valor
óptimo será Zopt = ΣΣcij × xij com xij = 1.
ai
gm

Passo 4. Se o passo 3 não se verifica, traçar um número mı́nimo de rectas hori-


@

zontais ou verticais, para cortar os zeros. Começando pela linha ou coluna que tem o
maior número de zeros.
o8
et

• Se o número de rectas for maior ou igual ao número de linhas da matriz, este é


um quadro terminal e realize a afactação começando pela linha ou coluna com
ub

menos zeros.
um

• Se o número de rectas for menor que o número de linhas da matriz, passe ao


m

passo 5 para realizar iterações.

Passo 5. Procedimento da iteração para a obtenção da nova solução:


1. Escolher o menor elemento não cortado no novo último quadro.
2. Subtrair este mı́nimo elemento todos outros não cortados.
3. Somar este mı́nimo elemento a todos outros cortados duas vezes.
4. Escrever como estão os elementos cortados uma vez.
5. Depois de 5.1-5.4, já se ter’a um novo quadro. Repita o passo 3.

Mulenga 178 2020


Investigação Operacional

Exemplo 6.14. Durante a estação chuvosa, 3 provı́ncias encontravam-se com inundações.


O Governo teve três equipas de peritos para tratar da situação de emergência. Os cus-
tos de transporte das equipas para cada provı́ncia são dados no quadro. Que equipa
deve ir para que provı́ncia para minimizar o custo. Calcule este custo total.

Q1 P1 P2 P3 min

E1 2200 2400 2000 2000


E2 1800 2800 2200 1800
E3 1500 3800 2700 1500

om
Subtrair cada elemento da linha o correspondente minimo, obtém-se o quado 2.

l.c
Q2 P1 P2 ai P3
gm
E1 200 400 0
E2 0 1000 400
@

E3 0 1700 1200
o8

min 0 400 0
et
ub

Repetir o primeiro passo para a s colunas, teremos o quadro 3.


um
m

Teste 1. O número de rectas (r = 2) é menor do que o número de linhas da matriz


(n = 3), logo o quadro 3 não óptimo. Usando o passo 5, o menor elemento não riscado
é x23 = 400.

Mulenga 179 2020


Investigação Operacional

Teste 2. Agora temos n = 3 e r = 3, significa que já temos a solução óptima.

om
Note que, todas células que apresentam zero significa que admitem uma alocação,
assim, as prioridades de afectação são as posições x12 na coluna de P2 e x31 na linha

l.c
de E3 por apresentarem única possibilidade. Outras células são alocadas via eliminação
ai
das possibilidades.
gm

Voltando ao quadro inicial e somando os custos das posições marcadas com zeros
@

no quadro 4, para x12 = 2400, x23 = 2200 e x31 = 1500, obtemos


o8

CT = 1500 + 2400 + 2200 = 6100 unidades de medida.


et

Exemplo 6.15.Uma empresa de consultoria foi solicitada para avaliar 4 projectos.


ub

A empresa tem disponı́vel 4 técnicos independentes. Os custos de cada consultoria


um

variam conforme o quadro onde os valores estão em mil meticais.


m

Q1 P1 P2 P3 P4

C1 10.3 18.2 15.9 8.6


C2 12.0 17.4 x 6.4
C3 11.1 20.1 16.8 9.1
C4 x 19.6 17.5 8.2

No quadro x significa que o consultor i não pode avaliar o projecto j.


Usando o método Húngaro, determine a distribuição dos consultores para avaliar os 4

Mulenga 180 2020


Investigação Operacional

projectos, de modo que minimize o custo total.


Resolução
Os mı́nimos das linhas do quadro 1 são: 8.6, 6.4, 9.1, 8.2.

Q2 P1 P2 P3 P4

C1 1.7 9.6 7.3 0.0


C2 5.6 11.0 x 0.0
C3 2.0 11.0 7.7 0.0
C4 x 11.4 9.3 0.0

om
Os mı́nimos das colunas do quadro 2 são: 1.7, 9.6, 7.3, 0.

l.c
ai
gm
@
o8
et
ub
um

Teste 1. Do quadro 3, temos r = 2 e n = 4, ainda não é solução e o valor mı́nimo


não cortado é x31 = 0.3.
m

Mulenga 181 2020


Investigação Operacional

Teste 2. Do quadro 4, temos r = 3 e n = 4, ainda não é solução e o mı́nimo não


cortado é igual a x22 = 1.1.

om
Teste 3. Do quadro 5, temos r = 4 e n = 4, já temos solução óptima.

l.c
Custo total: CT = 11.1+17.4+15.9+8.2 = 52.6 unidades de medida.
ai
gm
Exemplo 6.16. Uma empresa de serviço de intervenção para acidentes, abertura
de portas quando trancadas sem a devida necessidade, reboque de auomóveis, entre
@

outrras actividaes. Por questões de gestão do tempo de serviço, os seus clientes que
o8

podem ser outras empresas ou pessoas singulares são cobrados depoisdo serviço rea-
lizado. A empresa sabe que os seu funcionários não apresentam a mesma habilidade
et

na realização das tarefas, mas também precisa mximizar o lúcro e quanto mais tempo
ub

levar a tarefa a ser executada mais receita para a empresa. A tabela, mostra os tem-
um

pos que cada trabalhador pode levar em cada tarefa. Como os trabalhadores devem
ser distribuidos pelas actividaes de modo que o tempo total seja máximo, já que este
m

define o rendimento final.

Q0 A1 A2 A3 A4 A5

T1 10 15 10 15 13
T2 12 8 20 16 15
T3 12 9 12 18 16
T4 6 12 15 17 12
T5 16 12 8 12 9

Mulenga 182 2020


Investigação Operacional

Usando o método Húngaro, determine a distribuição óptima dos trabalhadores de


modo que o tempo total de realização das 5 tarefas seja máximo.

Resolução
Como o algorı́tmo está desenvolvido para os problemas de minimização, primeiro deve-
se identificar o maior elemento no quadro inicial, em seguida subtrair a este máximo
todos outros obtendo-se um quadro de minimização. Finalmente aplicar o método
Húngaro normalmente. Para este caso, o máximo é igual a 20.

Q1 A1 A2 A3 A4 A5

om
T1 10 5 10 5 7

l.c
T2 8 12 0 4 5
T3 8 11 8
ai
2 4
gm
T4 14 8 5 3 8
T5 4 8 12 8 11
@
o8

Os mı́nimos das linhas do quadro 1 são: 5, 0, 2, 3 e 4.


et
ub

Q2 A1 A2 A3 A4 A5
um

T1 5 0 5 0 2
m

T2 8 12 0 4 5
T3 6 3 6 0 2
T4 11 5 2 0 5
T5 0 4 8 4 7

Os mı́nimos das colunas do quadro 2 são: 0, 0, 0, 0 e 2.

Mulenga 183 2020


Investigação Operacional

Teste 1. Do quadro 3, temos r = 5 e n = 5, já temos solução óptima.

om
Lúcro total: LT = 15+20 + 16+ 17 + 16 = 84 unidades de medida.

6.5 Exercı́cos propostos


l.c
ai
gm
Exercı́cio 6.1. Dado o problema de programação linear.
minimizar  W = 2x11 + 4x12 + 10x13 + 8x21 + 2x22 + 8x23
@

 x11 + x12 + x13 = 50


o8





x21 + x22 + x23 = 20


et






 x + x = 30
11 21
ub

sujeito à


 x12 + x22 = 20
um






 x13 + x23 = 20


 x ∈ Z+

m

ij 0

a) Escreva o problema como um problema de transportes, use A para designar ar-


mazém e M para mercado.
b) Usando o método de canto noroeste encontre a primeira aproximação da solução.
Resposta:
a) Modelo dos problemas de transporte

Mulenga 184 2020


Investigação Operacional

— M1 M2 M3 Oferta
2 4 10
A1 x11 x12 x13 50
8 2 8
A2 x21 x22 x23 20
Procura 30 20 20 70

om
b) x11 = 30, x12 = 20, x23 = 20, W = 300.

l.c
Exemplo 6.2. São dadas as seguintes condições do problema de transporte: Ca-
pacidade de fornecimento das fontes: a1 = 25; a2 = 25; a3 = 50; capacidade de
ai
absorção dos destinos: b1 = 15; b2 = 20; b3 = 20; b4 = 45. Os custos associados ao
gm
transporte de 1 u.m da fonte i para o destino j estão no quadro.
@

10 5 6 7
o8

8 2 7 6
et

9 3 4 8
ub

a) Usando método de canto noroeste apresente a distribuição possı́vel das 100 unidades
um

pelos mercados.
m

b) Usando o método de custo mı́nimo, encontre a primeira aproximação e o custo


mı́nimo.
Resposta:
a) CT1 = 705
b) CT2 = 580

Exercı́cio 6.3. Uma empresa pretede transporta 43 toneladas de arroz disponı́veis


em 3 armazens: A1=15, A2=11 e A3=17, para 4 mercados que necessitam de 14, 8,
12, 9 toneladas respectivamente. Os custos de transporte de uma tonelada são:

Mulenga 185 2020


Investigação Operacional

12 10 9 11
10 14 13 12
12 9 7 13

a) Usando o método de canto noroeste, encontre a primeira aproximação de solução


do problema de transporte.
b) Usando o método de custo mı́nimo, encontre outra primeira aproximação de solução
do problema de transporte.
Resposta:
a) W1 = 501

om
b) W2 = 404. O custo total diminuiu em 97 unidades de medida.

l.c
Exercı́cio 6.4. A tabela abaixo represente a rede de distribuição de sacos de ar-
ai
roz partindo de três armazéns situados na cidade de Maputo a quatro mercados. Os
gm
armazéns têm as seguintes capacidades de armazenamento: 10, 14 e 12 mil sacos de
batata, enquanto os mercados podem absorver: 7, 7, 15, 7.
@
o8

M1 M2 M3 M4
et

A1 10 11 8 15
ub

A2 13 12 13 5
um

A3 15 8 5 6
m

a) Escreva o problema como um problema de programação linear.


b) Num quadro modelo dos problemas de transporte, use o método de custo mı́nimo,
e encontre a primeira aproximação de solução.Verifique se a solução é óptima.
Resposta:
a) minimizar W = 10x11 + 11x12 + 8x13 + 15x14 + 13x21 + 12x22 + 13x23 + 5x24 +
15x31 + 8x32 + 5x33 + 6x34

Mulenga 186 2020


Investigação Operacional




 x11 + x12 + x13 + x14 = 10


x21 + x22 + x23 + x24 = 14






x31 + x32 + x33 + x34 = 12







 x11 + x21 + x31 = 7
sujeito à


 x12 + x22 + x32 = 7





 x13 + x23 + x33 = 15





 x14 + x24 + x34 = 7


xij ∈ Z0+

b) W = 273, ∀δij ≥ 0 então a solução é óptima Wmin = 273.

om
l.c
Exercı́cio 6.5. Uma empresa transportadora de divresos produtos é alugada para
levar artigos de três fábricas F1, F2 e F3 para 4 armazéns A1, A2, A3 e A4 de onde
ai
são vendidos para os clientes a porta. O lúcro de transporte de uma carrada está
gm
indicado por cada rota, bem como a capacidade das fábricas e dos armazéns.
@

– A1 A2 A3 A4 Oferta
o8

F1 26 26 20 21 450
et

F2 21 24 20 21 300
ub

F3 18 20 19 20 250
um

Procura 210 350 160 280 1000


m

a) Usando o método de lúcro máximo determine a melhor distribuição dos artigos


pelos armazéns de modo que a transportadora maximize o seu lúcro.
b) Usando o método de MODI, verifique se a solução é óptima. Caso contrário, pro-
cure encontrar a melhor solução.
Resposta:
a) Z = 23170 u.m.
b) ∀δij ≤ 0, logo Zmax = 23170

Mulenga 187 2020


Investigação Operacional

Exercı́cio 6.6. Uma companhia tem três camiões que abastecem batata a cinco super-
mercados. As distâncias que os camiões devem percorrer até a cada supermercado, as
necessidades dos supermercados e as capacidades dos camiões estão na seguinte tabela.

– S1 S2 S3 S4 S5 Oferta
C1 6 4 5 4 8 15
C2 7 6 7 4 3 48
C3 8 7 6 9 5 33
Procura 12 15 21 24 24 96

om
a) Usando o método de aproximação de Vogel encontre a solução inicial do problema.

l.c
b) Mostre de que o problema está degenerado.
c) Pelo método de MODI, teste a optimidade da solução em a). Se não for óptima,
ai
realize as iterações necessárias e apresente a solução óptima. (Quando necessário use
gm
no máximo duas alocações fictı́cias por infinitésimas).
Resposta:
@

a) W = 450 unidades de medida.


o8

b) 5 + 3 - 1 = 7, significa que precisamos 7 células ocupadas e como tem-se menos


et

céluals ocupadas, então a solução está degenerada.


ub

c) Como ∀δij ≥ 0 a solução é óptima. Wmin = 450


um

Exercı́cio 6.7. A empresa Pep tem 4 armazéns: A1, A2, A3 e A4 cuja capacidade
é de, respectivamente 75, 50, 60 e 15 toneladas de um determinado produto. Os seus
m

vendedores conseguiram promover o produto junto a 4 compradores: B1, B2, B3 e B4,


estabelecendo contratos de 35, 50, 90 e 25 toneladas respectivamente. Sabendo que os
custos de transporte por tonelada entre os armazéns e os compradores são dados pelo
quadro seguinte,

Mulenga 188 2020


Investigação Operacional

– B1 B2 B3 B4
A1 7 10 12 30
A2 10 0 10 20
A3 11 5 12 5
A4 2 10 20 10

O objectivo é encontrar um programa óptimo de distribuição do producto que resulte


num custo total mı́nimo.

om
a) Usando o método do canto noroeste.
b) Usando o método de aproximação de Vogel.

l.c
Resposta:
a) W1 = 1845 u.m.
ai
gm
b) W2 = 1375 u.m, ∆w = 470 u.m.
@

Exercı́cio 6.8. O general Ambrósio comanda 4 bases de operações: B1, B2, B3 e


o8

B4 com, respectivamente, 150, 200, 100 e 150 soldados, e tem como missão atacar
3 alvos diferentes. Os soldados apresentam diferentes especialidades, portanto, com
et

estratégias de ataque variados e considerando as várias posições dos alvos, o general


ub

preencheu o seguinte quadro com as toneladas de munições que podem ser disparados
para cada alvo, provenientes de cada base.
um
m

– A1 A2 A3
B1 2 6 5
B2 3 8 9
B3 10 7 7
B4 8 4 7

Sabendo que se pretendem afectar 200 soldários por dia em cada alvo, use os métodos
de NWC e VAM para ajudar o general a encontrar o programa óptimo de ataque que
maximiza a quantidade de munições disparados.

Mulenga 189 2020


Investigação Operacional

Resposta:
a) NWC: Q1 = 3400 toneladas de munições,
b) VAM: Q2 = 4800 toneladas de munições; ∆Q = 1400 toneladas de munições.

Exercı́cio 6.9. Uma organização não-governamental fornece trabalhadores temporários


para 4 sectores laborais da APIE. A organização tem que distribuir 21 trabalhadores
dos seus 2 gabinetes de recrutamento, conforme a seguinte tabela.

Custo de transporte por sector em mil meticais

– Sector1 Sector 2 sector 3 Sector 4 Oferta

om
Gabinete 1 14 15 10 17 12
Gabinete 2 12 18 11 16 9
Procura 3 6 8
l.c 4 21
ai
gm
a) Estabeleça a solução inicial usando o método de aproximação de Vogel.
b) Usando o método de Stepping Stone, verifique se a solução é óptima, Caso nao seja,
@

determine a solução óptima do problema.


o8

Resposta:
et

a) W1 = 276 mil meticais.


b) δ23 = −2, a Solução não é óptima, Wmin = 272 mil meticais. ∆w = 4 mil meticais.
ub
um

Exercı́cio 6.10. Uma empresa tem três armazéns nas cidades de Maputo, Beira
e Nampula, e tem lojas nas cidades de Xai-Xai, Chimoio, Quelimane e Inhambane.
m

Os custos de transporte de um dado produto dos armazéns às lojas apresentam-se na


tabela.

– X C Q I Oferta
Armazém 1 38 30 30 45 17
Armazém 2 60 25 50 32 32
Armazém 3 42 20 16 70 30
Procura 10 14 15 28

Mulenga 190 2020


Investigação Operacional

a) Estabeleça a solução inicial usando o método de canto noroeste.


b) Usando o método de MODI teste a optimidade da solução dada pelo método de
canto noroeste. Determine a solução óptima.
Resposta
a) NWC: W1 = 3095
b) Depois de algumas iterações, Wmin = 1796

Exercı́cio 6.11. Um treinador de uma equipa de natação pretende escolher os elemen-


tos que competirão numa prova de estafeta 4*200 (estilos por métros), nos próximos
jogos olı́mpicos. Os nadadores em causa tiveram as seguintes melhores marcas em
cada estilo, na última época.

om
– Bruços Mariposa Costas Livre
João 2.3 3.0
l.c
2.7 2.1
ai
António 2.5 2.5 2.6 2.0
gm

Filipe 2.3 3.0 2.7 2.0


@

Vasco 2.4 2.9 2.6 2.1


o8

a) Usando o método Húngaro, determine que estilo cada nadador deverá fazer dentro
et

da equipa de modo a alcançar o menor tempo para percorrer os 200 metros no conjunto
ub

dos 4 percursos.
um

b) Qual será esse tempo mı́nimo.


Resposta:
m

a) Associação Nadador - Estilo:


João → Bruços; António → Mariposa; Filipe → Livre e Vasco → Costas
b) O templo mı́nimo é de 9.4 minutos.

Exercı́cio 6.12. Cinco indivı́duos A, B, C, D e E pretendem adquirir automóvel


ligueiro segundo as suas preferências e gostos e necessidades. O indivı́duo A pretende
um carro pequeno que não lhe crie problemas de estacionamento, o B um carro con-
fortável para viagens, o C necessita de um carro resistente, o D quer um automóvel de
menor comumo de combustı́vel e E pretende um carro mais espaçoso. Um vendedor
possui 5 modelos (Citroen BX; Fiat Uno; Autobianchi Y10; Renault5 GTL e Toyota

Mulenga 191 2020


Investigação Operacional

Starlet) que lhe parecem adequados aos 5 potenciais compradores. Numa tentativa de
ponderar as suas preferências, o vendedor construiu o seguinte quadro onde colocou as
ordens de preferência numa escala de de 1 á 50 pontos de cada comprador em relação
a cada um dos carros.

– C-BX F-UNO A-Y10 R5-GTL TOYOTA


A 10 50 50 20 50
B 40 30 40 50 30
C 50 10 10 30 10
D 30 30 20 50 30

om
E 30 50 30 40 40

l.c
Usando o método Húngaro, apresente a melhor distribuição dos carros para os 5 in-
ai
divı́duos por forma a maximizar a satisfação de cada um.
gm
Resposta:
A → TOYOTA, B → Y10, C → BX, D → R5 GTL, E → UNO.
@
o8

Exercı́cio 6.13. Uma empresa de segurança está a treinar os seus agentes em termo
de flexibilidade, rapidez, velocidade entre outras exigências que a empresa usa nas suas
et

actividades de segurança de edifı́cios, viaturas pessoas singulares. Segundo o seu chefe


ub

das operações estão identificadas 6 áreas mais fortes que os polı́cias devem ser mais
um

aptos. A tabela abaixo apresenta as marcas dos primeiros 6 instruendos escolhidos e as


especialidades que estes podem intervir associados aos tempos que os mesmos podem
m

levar para tal intervenção.

– A1 A2 A3 A4 A5 A6
E1 21 5 21 15 15 28
E2 30 11 16 8 16 4
E3 26 2 11 16 25 25
E4 19 16 17 15 19 8
E5 26 21 22 28 29 24
E6 3 21 21 11 26 28

Mulenga 192 2020


Investigação Operacional

Usando o método Húngaro, determine a distribuição óptima dos agentes pelas especi-
alidades de modo a minimizar o tempo de intervenção total.
Resposta:
As dustribuição deverá ser: E1A5, E2A4, E3A2, E4A6, E5A3 e E6A1, com TT = 58
minutos.

Exercı́cio 6.14.. Cinco trabalhadores estão a concorrer para realizar 5 tarefas. O


tempo que cada trabalhador pode levar em cada tarefa está apresentado na tabela
abaixo. Como as actividades devem ser prontas com máxima brevidade possı́vel, cada
trabalhador só poderá realizar exactamente uma e única tarefa.

om
– A1 A2 A3 A4 A5
T1 10 15 10 15 13
T2 12 8 20 16
l.c15
ai
T3 12 9 12 18 16
gm

T4 6 12 15 17 12
@

T5 16 12 8 12 9
o8

Usando o método Húngaro, determine a distribuição óptima dos trabalhadores de


et

modo que o tempo total de realização das 5 tarefas seja mı́nimo.


ub

Resposta
A distribuição dos trabalhadores é: T1A4, T2A2, T3A3, T4A1, T5A5 e o tempo
um

mı́nimo de 50 minutos.
m

Mulenga 193 2020


Capı́tulo 7

Programação Dinámica

om
l.c
ai
gm
@
o8
et
ub
um
m

194
Bibliografia

[1] Akoff, R.L. e Sasieni, M.W. (1968). Fundamentals of Operations Research. John
Waley & Sans, Inc. USA.

om
[2] Andrade, E.L. (1998). Introdução à Pesquisa Operacional – métodos e modelos
para a análise de decisão, 2a edição, editora LTC, RJ Brasil.

l.c
[3] Barnett, R.A. e Michael, R.Z. (1990). Finite Mathematics for Business, Econo-
ai
mics, Life science and Social sciences. 5th edition, USA.
gm

[4] Churchman, C.W. (1971). The Design of Inquiring Systems, Basic Concepts of
@

Systems and Organizations. Basic Books, New York.


o8

[5] Dakin,R.J.(1965). A Tree Search Algorithm for Mixed Integer Programming Pro-
et

blems.The computer Journal, 8(3), pp.250–255.


ub

[6] Dantzig, G. B. (1951). Application of the Simplex Method to a Transportation


um

Problem. in Koopmans, T. C., (editor). Activity Analysis, pp. 359–373.

[7] Dantzig, G.B.(1947). Maximization of a Linear Function of Variables Subject to


m

Linear Inequalities. Published in T.C. Koopmans (editor.):Activity Analysis of


Production and Allocation, pp. 339 – 347.

[8] Ferreira, M.A.M e Isabel, A.(1995).Programação Matemática, 2a edição, Edições


Sı́labo, Lisboa.

[9] Gale, D., Kuhn, H.W. e Tucker, A.W.(1951). Linear Programming and the The-
ory of Games. Activity analysis of production and allocation, 13, pp.317–335.

[10] Gomory, R.E. (1958). Outline of an Algorithm for Integer Solutions to Linear
Programs. Bulletin of the American mathematical Society, 64(5), pp. 275 – 278.

195
Investigação Operacional

[11] Hitchcock, F.L. (1941). The Distribution of a Product from Several Sources to
Numerous Localities, Journal of Mathematics and Physics, 20, pp. 224–230.

[12] Kantorovıch, L.V.(1958). On The Translocation of Masses. Management Science,


5(1). pp.1–4.

[13] Kantorovich, L.V. (1939). Mathematical Methods of Organizing and Planning


Production. Management Science,
textbf6(4), pp. 366–422.

[14] Koopmans, T.C. (1947). Optimum Utilization of the Transport system. Econo-
metrica, 17, pp. 136–146.

om
[15] Kuhn, H.W. (1955). The Hungarian Method for the Assignment Problem. In:

l.c
Naval Research Logistics Quartely. 2(1-2), pp. 83 –97.
ai
[16] Land, A.H e Doig, A.G.(1960). An Automatic Method of Solving Discrete Pro-
gm
gramming Problems. Econometrica, 28(3), pp. 497–520.

[17] Render, B., Stair, Jr.R., Hanna, M.E.(2012). Quantitative Analysis for Manage-
@

ment. 11th edition, Prentice – Hall International, Pearson Inc. USA.


o8

[18] Taha, H.A. (2007). Operations Research - an introduction. 8th edition, Prentice
et

– Hall International, Inc, USA.


ub

[19] Taha, H. (1975). Integer Programming: Theory, Applications and Computations.


um

Academic Press, Orlando, FL.


m

[20] Von Neumann, J.(1963). Discussion of a Maximum Problem. In A.H. Taub,


editor, John von Neumann, Collected Works: Theory of Games, Astrophysics,
Hydrodynamics and Meteorology, 6, pp. 89–95.

[21] Winston, W.L. (2004). Operations Research - applications and algorithms.


Fourth edition, Thomson Brooks/Cole.

Mulenga 196 2020

Você também pode gostar