Você está na página 1de 234

m

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

– ??? –
Alberto Chicafo Mulenga
Maputo, Moçambique
13 de Outubro de 2020
i

Prefácio
Este livro, com a denomicação Investigação Operacional - uma abordagem introdutória, é
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, Engenharia, Estatı́stica, Informática, Matemática, entre outras. Esta versão
basicamente tem conteúdos relacionados à Programação linear. Assim, a definição da
investigação operacional sua caracterizaçã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 programação linear, análise de sensibilidade em programação linear,

om
programação linear inteira, problemas de transporte e afectação, constituem os conteúdos
deste livro. Estes temas actualmente constituem os fundamentos da programação linear

l.c
onde o objectivo principal é a optimização das soluções empresariais no processo de
ai
tomada de decisão tanto na alocação de recursos como para a minimização dos custos em
gm
possı́veis investimentos sem deixar de lado a noção de solução viável. Em cada capı́tulo,
são apresentados os conceitos teóricos com exemplos ilustrativos fazendo um total de
@

67 exemplos. No fim de cada capı́tulo é apresentada uma lista de exercı́cios propostos


o8

com indicação de soluções num total de 71 exercı́cios. No final do livro, estão algumas
et

referências que os interessados poderão ler para aprofundar os seus conhecimentos.


ub
um

Alberto Mulenga
Maputo, 13 de Outubro de 2020
m

Typeset by LATEX 2ε
Conteúdo

Lista de Figuras v

om
Lista de Tabelas vii

l.c
1 Introdução
ai 1
gm
1.1 Definição de Investigação Operacional . . . . . . . . . . . . . . . . . . 1
1.2 Caracterı́sticas da investigação operacional . . . . . . . . . . . . . . . 4
@

1.3 Técnicas da investigação operacional . . . . . . . . . . . . . . . . . . 7


o8

2 Programação linear 9
et

2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
ub

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
um

2.1.3 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . 17


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

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


2.2.2 Procedimento do método gráfico . . . . . . . . . . . . . . . . . 30
2.2.3 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Resolução dos problemas de programação linear pelo método simplex 35
2.3.1 Variáveis de folga e de excesso . . . . . . . . . . . . . . . . . . 35
2.3.2 Procedimento do método simplex . . . . . . . . . . . . . . . . 38
2.3.3 Método simplex de duas fases . . . . . . . . . . . . . . . . . . 45
2.3.4 Método simplex de grande M . . . . . . . . . . . . . . . . . . 55
2.3.5 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . 64

ii
CONTEÚDO iii

3 Dualidade em programação linear 69


3.1 Transformação do problema primal para dual . . . . . . . . . . . . . 69
3.2 Interpretação económica das variáveis duais . . . . . . . . . . . . . . 73
3.3 Relações entre os valores óptimos do primal e do dual . . . . . . . . . 76
3.4 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

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


4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.1.1 Propriedades operacionais entre o primal e dual . . . . . . . . 90
4.1.2 Método simplex dual - simplex . . . . . . . . . . . . . . . . . 94

om
4.2 Variação nas quantidades dos recursos . . . . . . . . . . . . . . . . . 100
4.3 Variação nos coeficientes da função objectivo . . . . . . . . . . . . . . 107

l.c
4.4 Variações nos coeficientes das actividades . . . . . . . .
ai . . . . . . . . 111
4.5 Adição de uma nova variável . . . . . . . . . . . . . . . . . . . . . . . 114
gm
4.6 Adição de uma nova restrição . . . . . . . . . . . . . . . . . . . . . . 116
4.7 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
@
o8

5 Programação linear inteira 125


5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
et

5.2 Método de bifurcação e limite . . . . . . . . . . . . . . . . . . . . . . 129


ub

5.3 Método de corte de Gomory . . . . . . . . . . . . . . . . . . . . . . . 143


um

5.4 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

6 Problemas de transporte e afectação 154


m

6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154


6.1.1 Formulação de um problema de transporte . . . . . . . . . . . 155
6.1.2 Métodos para a resolução dos problemas de transporte . . . . 160
6.2 Cálculo da primeira aproximação de solução . . . . . . . . . . . . . . 160
6.2.1 Método do canto noroeste . . . . . . . . . . . . . . . . . . . . 160
6.2.2 Método de custo mı́nimo (lúcro máximo) . . . . . . . . . . . . 164
6.2.3 Método de aproximação de Vogel . . . . . . . . . . . . . . . . 168
6.3 Teste e melhoramento de solução . . . . . . . . . . . . . . . . . . . . 175
6.3.1 Método de MODI para o teste de optimidade de solução . . . 176
CONTEÚDO iv

6.3.2 Método de Stepping Stone para o teste de optimidade de solução177


6.3.3 Procedimento para o melhoramento de solução . . . . . . . . . 177
6.4 Problemas de afectação e o método Húngaro . . . . . . . . . . . . . . 186
6.5 Exercı́cos propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

7 Programação dinâmica 203


7.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
7.2 Recursividade progressiva e regressiva . . . . . . . . . . . . . . . . . . 208
7.3 Aplicações da programação dinâmica . . . . . . . . . . . . . . . . . . 218
7.4 Dificuldades da programação dinâmica . . . . . . . . . . . . . . . . . 218

om
7.5 Exercı́cios propostos . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

l.c
Bibliografia 222
ai
gm
@
o8
et
ub
um
m
Lista de Figuras

1.1 Enfoques da investigação operacional . . . . . . . . . . . . . . . . . . 3

om
2.1 Domı́nio solução de sistema de inequações . . . . . . . . . . . . . . . 23

l.c
2.2 Domı́nio solução e pontos máximo e mı́nimo de F(x) . .
ai . . . . . . . 24
2.3 Ilustração da resolução de um problema de maximização . . . . . . . 26
gm
2.4 Ilustração da resolução de um problema de minimização . . . . . . . 29
2.5 Gráfico do exemplo 2.9 . . . . . . . . . . . . . . . . . . . . . . . . . . 31
@

2.6 Gráfico do exemplo 2.10 . . . . . . . . . . . . . . . . . . . . . . . . . 32


o8

5.1 Dominio solução de um problema de programação linear inteira . . . 127


et

5.2 Árvore binária ou decisão do exemplo 5.2 . . . . . . . . . . . . . . . . 134


ub

5.3 Árvore binária para o exemplo 5.3 . . . . . . . . . . . . . . . . . . . . 137


5.4 Gráfico da primeira aproximação de solução do problema de programção
um

linear inteira, exemplo 5.4 . . . . . . . . . . . . . . . . . . . . . . . . 138


5.5 Gráficos dos subropblemas 1 e 2 do exemplo 5.4 . . . . . . . . . . . . 139
m

5.6 Gráficos dos subproblemas 1.1 e 1.2 do exemplo 5.4 . . . . . . . . . . 140


5.7 Gráfico da primeira aproximação do exemplo 5.5 . . . . . . . . . . . . 141
5.8 Gráficos dos subproblemas 1 e 2 do exemplo 5.5 . . . . . . . . . . . . 142

6.1 Diagrama de um problema de transporte . . . . . . . . . . . . . . . . 156


6.2 Representação da rede de transporte do exemplo 6.1 . . . . . . . . . . 159
6.3 Exemplos de alguns circuitos de avaliação . . . . . . . . . . . . . . . 176
6.4 Exemplificação de circuito de melhoramento de solução do exemplo 6.11179

7.1 Representação da rede do exemplo 7.1 . . . . . . . . . . . . . . . . . 205

v
LISTA DE FIGURAS vi

7.2 Elementos de um estágio nos problemas de programação dinâmica . . 206


7.3 Fluxo de informação que passa no estágio 2 . . . . . . . . . . . . . . 207
7.4 Fluxo de informação que passa nos estágios 1, 2 e 3 . . . . . . . . . . 207
7.5 Rede das possı́veis rotas do exemplo 7.2 . . . . . . . . . . . . . . . . . 209
7.6 Resolução pela recursividade regressiva do exemplo 7.2 . . . . . . . . 211
7.7 Diagrama do exemplo de abastecimento de água ao ponto P . . . . . 213
7.8 Diagrama do exemplo 7.5 do candidato . . . . . . . . . . . . . . . . . 216

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

1.1 Modelos de investigação operacional . . . . . . . . . . . . . . . . . . . 8

om
2.1 Análise qualitativa da informação do problema das lámpadas . . . . . 11

l.c
2.2 Relacionamento da informação do problema de alfaiate . . . . . .
ai . . 14
2.3 Relacionamento da informação do problema de dieta . . . . . . . . . 15
gm
2.4 Informação do problema de adubo . . . . . . . . . . . . . . . . . . . . 16
2.5 Cálculo do ponto máximo e mı́nimo de F(x) = 1x1 − 2x2 + 4 . . . . . 24
@

2.6 Estrutura básica de uma tabela simplex inicial . . . . . . . . . . . . . 38


o8

2.7 Estrutura de uma tabela terminal simplex . . . . . . . . . . . . . . . 40


2.8 Variáveis auxiliares para os métodos de duas fases e de grande M . . 46
et
ub

3.1 Régras de transformação de um problema primal para dual . . . . . . 70


3.2 Resumo da informação do problema primal . . . . . . . . . . . . . . . 74
um

3.3 Comparação das soluções dos problemas duais . . . . . . . . . . . . . 80


m

4.1 Tabela simplex inicial e terminal para ilustrar as propriedades usadas


na análise de sensibilidade . . . . . . . . . . . . . . . . . . . . . . . . 90
4.2 Variação das quantidades dos recursos . . . . . . . . . . . . . . . . . 100
4.3 Variação dos coeficientes da função objectivo . . . . . . . . . . . . . . 107
4.4 Análise da adição de uma variável no modelo . . . . . . . . . . . . . . 114

5.1 Exemplo de um problema de programação linear inteira . . . . . . . . 126


5.2 Identificação da solução óptima inteira entre todas possı́veis . . . . . 128
5.3 Decomposição de um número misto em parte inteira e uma fracção
própria no método de Gomory . . . . . . . . . . . . . . . . . . . . . . 145

vii
LISTA DE TABELAS viii

6.1 Teste de optimidade de solução pelo método de Steppig Stone, circuitos


do exemplo 6.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

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
ai
gm
O nome “Investigação Operacional (IO)”, apareceu pela primeira vez durante a Se-
gunda Guerra Mundial, quando equipas de investigadores procuravam desenvolver
@

métodos para resolver determinados problemas de operações militares. Precisamente


o8

na Inglaterra, entre 1939-1945, pela necessidade militar de solucionar problemas rela-


et

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


mensionamento de frotas, alimentação dos tropas, manutenção e inspecção de aviões
ub

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


um

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


Segundo Ackoff e Sasieni (1968), por volta de 1950 a investigação operacional ou
m

Operations Research (Britânico), Management Science (Americano) e Pesquisa Ope-


racional (Brasileiro), já era reconhecida como objecto de estudo nas universidades e
no mundo 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

1
Investigação Operacional

sistemática da abordagem cientı́fica à investigação de problemas operacionais exis-


tentes ou previstos que requerem decisões pelos administradores. Actualmente, a
investigação operacional é considerada como o ataque da ciência moderna a proble-
mas complexos, como consequência da administração de grandes sistemas de homens,
máquinas, materiais 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-

om
sariais ao nı́vel da administração.

l.c
A investigação operacional pode ser definida como:
ai
1. A arte de dar respostas óptimas a problemas que tratados de outra forma teriam
gm
respostas piores. (Uso da informação para a tomada de decisão).

2. O bom censo expresso em termos quantitativos.(Partindo da solução matemática


@

procura se tomar uma decisão viável).


o8

3. Ciência da preparação das decisões. (Uso do método cientı́fico para a tomada


et

de decisão).
ub

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


um

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


entı́fico justificado pelo emprego de técnicas quantitativas para a tomada de
m

decisão viável).

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


desenvolver um modelo cientı́fico do sistema em estudo, incorporando a medição
ou quantificação de factores, tendo em conta as alternativas de decisão, as restrições
impostas pelos recursos disponı́veis 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.

Mulenga 2 acm@2020
Investigação Operacional

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.
(a) Enfoque clássico – busca da solução óptima. O investigador nesta abor-
dagem 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 a identificação correcta do problema. Aqui, são consideradas

om
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

l.c
solução e finalmente é escolhida uma destas alternativas como solução viável para o
problema.
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 históricamente o sucesso da investigação operacional sempre fi-

Mulenga 3 acm@2020
Investigação Operacional

cou relacionado com:

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

• A abordagem por equipa e inter - disciplinar.

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


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

1.2 Caracterı́sticas da investigação operacional

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

l.c
• 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
ai
pessoal técnico, treinado, mestres, especialistas, etc. de várias áreas de conhecimento
gm
para fazer um esforço conducente a determinação da melhor forma de utilização de
recursos limitados. Esta caracterı́stica multi-disciplinar de resolver os problemas or-
@

ganizacionais deu um novo enfoque a investigação operacional – a visão sistémica dos


o8

problemas.
et
ub

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


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

comportamento de uma determinada situação. Esta visão é actualmente a mais


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

consiste em considerar a empresa ou cada parte da mesma como um sistema com


várias variáveis inter-relacionadas. O sistema aqui considerado pode existir ou pode
estar em concepção. No primeiro caso, o objectivo do estudo tem sido de analisar o
desempenho 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

Mulenga 4 acm@2020
Investigação Operacional

informações e suas inter-relações procurando sempre criar um modelo matemático


padrão das relações e respectivas soluções dos problemas empresariais,

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


conduzirá a maximização dos lúcros ou minimização dos custos como primeira visão
dos administradores sem precisar saber os nı́veis de satisfação das diferentes especi-
ficidades da organização.

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

om
mento 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,

l.c
desde que o sistema real seja determinı́stico e não estocástico.
ai
O desenvolvimento dos computadores digitais, face a sua velocidade de processa-
gm

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


@

imenso progresso da Investigação Operacional. Outro facto que actualmente con-


tribuı́ para o uso intensivo de modelos em análise de decisões é a disseminação dos
o8

micro-computadores, que se tornaram unidades de processamentos descentralizados


et

dentro das empresas, o que leva aos profissionais da investigação operacional num
ub

trabalho conjunto com os informáticos a desenvolverem softwares apropriados e mo-


delos mais versáteis, rápidos e interactivos.
um

Apesar das fases não serem seguidas rigosamente, em geral, e segundo Andrade
m

(1998) e Taha (2007), um trabalho de Investigação Operacional, deve desenvolver-se


seguindo as seguintes fases:

1. Definição do problema

2. Construção do modelo

3. Solução do modelo

4. Validação do modelo

5. Implementação da solução

Mulenga 5 acm@2020
Investigação Operacional

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 alterna-
tivas 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.

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

om
por conceber.

l.c
3. Solução do modelo. Como a solução do problema pode ser obtida por ter-
ceiros, nesta fase é necessário analisar todos os procedimentos mais adequados, em
ai
termos do método proposto, rapidez de processamento e precisão da resposta para
gm

a solução do problema e escolhar aquela alternativa que satisfaz os objectivos or-


@

ganizacionais. 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
o8

óptima é patente.
et
ub

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


dade do modelo. Um modelo é válido se ele for capaz de fornecer uma previsão
um

aceitável do comportamento do sistema. Um método comum para testar a validade


de um sistema é analisar seu desempenho com dados passados do sistema e verificar
m

se ele consegue reproduzir o comportamento que o sistema apresentou.

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
que seja controlada pela equipa responsável, pois, eventualmente os valores da nova
solução quando levados à práctica, podem demonstrar a necessidade de correcções
nas relações funcionais do modelo como um todo, exigindo a reformulação do modelo
em algumas das suas partes.

Mulenga 6 acm@2020
Investigação Operacional

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
determinada 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 apa-
rece inserido numa outra categoria, por exemplo métodos quantitativos.

Entre muitos autores, destacam-se Quesnay (1759), Walras (1874), Markov (1856

om
– 1922), von Neumann (1937), Kantorovich (1939), Wicks e Yewdale (1971), Ackoff

l.c
(1971), Duckworth (1972), etc., que contribuı́ram significativamente na divisão da
Investigação Operacional em diversas categorias. ai
gm
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.


o8
et

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


ub

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,
um

planeamento e controlo de projectos, etc.


3. Programação matemática: inclui a programação linear, inteira, dinâmica, não
m

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 in-
dustrial, análise de redes, etc.

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


cisão, é necessário esclarecer aos utilizadores das técnicas ou métodos quantitativos,
que nem todos os problemas são susceptı́veis de solução pelas técnicas quantitativas.
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

Mulenga 7 acm@2020
Investigação Operacional

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.

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

l.c
chega-se a soluções matemáticas que carecem de uma interpretação social.
ai
gm
Tabela 1.1: Modelos de investigação operacional
@

Modelo Optimização linear Apoio à decisão


o8

Ferramenta operacional Matemática Teoria de informação


et
ub

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


um

Objectivo final Solução óptima Satisfazer os interesses


da organização
m

Mulenga 8 acm@2020
Capı́tulo 2

Programação linear

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

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


o8
et

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

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


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

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
m

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


distribuı́ção de recursos entre as diversas tarefas ou actividades que devem ser rea-
lizadas. 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, é encon-
1
George Dantzig (1914-2005), Matemático de Oregon - Estados Unidos da America

9
Investigação Operacional

trar 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.
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 lúcros ou minimização dos
custos. Em programação linear o objectivo é expresso em termos das variáveis

om
de decisão.

l.c
3. Um conjunto de restrições: como as empresas utilizam recursos para pro-
duzir quantidades de produtos, é evidente que haja restrições relacionadas à
ai
utilização destes recursos, tanto em relação às quantidades disponı́veis como
gm
em relação a forma de emprego.
@

Os estudos de programação linear permitem responder questões como:


o8

• “... sendo conhecidas certas condições de produção, qual é a quantidade de um


et

determinado produto, entre vários, que se deve produzir para obter o maior
ub

lúcro possı́vel?”
um

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


corresponde ao custo mı́nimo?”
m

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


mão-de-obra entre as diferentes tarefas e especialidades dos funcionários, com
o objectivo de minimizar as despesas ou maximizar a eficiência?”

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

Mulenga 10 acm@2020
Investigação Operacional

e 3 horas se vier do departamento de verificação. No modelo antigo, cada pessoa ne-


cessita 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 departamento de corte é de 32, enquanto no departamento de verificação é de 84
horas. Se a companhia recebe um lúcro de 50 unidades de medida (u.m.) por cada
lámpada vinda do modelo actual e 80 unidades de medida por cada lâmpada vinda
do modelo antigo, quantas lḿpadas devem ser produzidas em cada modelo de modo
que a companhia maximize o lúcro?

om
Resolução
Este é um exemplo tı́pico de um problema de programação linear. Para tornar claro,

l.c
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
ai
linear tem uma determinada lógica, ainda que esta não seja rigorosamente seguida,
gm

começando pela análise qualitativa da informação ou problema.


@

Análise qualitativa do problema. Esta análise depende da experiência adqui-


o8

rida anteriormente, isto é, a sensibilidade de analisar e relacionar a informação que


et

geralmente apresenta-se uma tabela.


ub

Tabela 2.1: Análise qualitativa da informação do problema das lámpadas


um

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


m

modelo actual modelo antigo horas de trabalho

De corte 1 2 32
De verificação 3 4 84

Lúcro unitário 50 80 -

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 iden-

Mulenga 11 acm@2020
Investigação Operacional

tificaçã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
diário. A função lúcro deste problema ou função objectivo é: Lucro = 50x1 + 80x2 .
Repare que a função lúcro está ligada aos valores monetários do problema e estão na

om
última linha da Tabela 2.1.

l.c
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-
ai
zir uma unidade de cada produto considerando a disponibilidade máxima do recurso.
gm

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


o8

• Como não podem ser produzidas quantidades negativas de lámpadas, adiciona-se


et

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


ub

Elaboração do modelo económico matemático: consiste na indicação das relações


um

entre as variáveis de decisão, a função objectivo e as restrições como um todo. Par-


tindo das situações anteriores, escreve-se o modelo matemático do problema de pro-
m

gramação linear. Note que, modou-se de L para Z por conveniência.

maximizar Z = 50x1 + 80x2


 1x + 2x2 ≤ 32
 1


sujeito à 3x1 + 4x2 ≤ 84


x1 , x2 ≥ 0

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


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

Mulenga 12 acm@2020
Investigação Operacional

Caso 1. Se x1 = 0 e x2 = 0 o valor de Z será, Z = 50 × 0 + 80 × 0 = 0. Como não


viola nenhuma das restrições, esta é uma solução possı́vel.

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.
O lúcro possı́vel para esta solução é: Z = 50 × 2 + 80 × 5 = 500 unidades de medida.

om
Caso 3. O par de valores x1 = 8 e x2 = 13 tem Z = 1440. As restrições de

l.c
não negatividade são satisfeitas porque os valores são positivos. Mas, deve-se ve-
rificar também as restrições relativas aos recursos. Na primeira restrição tem-se:
ai
r1 = 1 × 8 + 2 × 13 = 8 + 26 = 34 < 32 não é verdadeiro, mas na segunda restrição
gm

tem-se: 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.
o8

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


et

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


ub

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
um

óptimas. Para o exemplo 2.1, a solução óptima é: x1 = 20, x2 = 6 com Zmax = 1480.
m

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.
Na função objectivo Zmax = 50 × 20 + 80 × 6 = 1000 + 480 = 1480.

No exemplo 2.1, assumiu-se que tanto a função objectivo como as restrições são
todas lineares. Intrinsecamente são utilizadas duas proposições.

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

Mulenga 13 acm@2020
Investigação Operacional

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

om
1 m2 de lã, e um vestido gasta 1, 2 e 3 m2 dos mesmos tecidos, respectivamente. Se
um fato é vendido à 30 unidades de medida (u.m.) e um vestido por 50 u.m., quantas

l.c
unidades de cada artigo fato ou vestido deve o alfaiate confeccionar de modo a obter
maior lúcro?
ai
gm
Tabela 2.2: Relacionamento da informação do problema de alfaiate
@

Tecidos Artigos Quantidade


o8

fato vestido Disponı́vel


et

Algodão 2 1 16
ub

Seda 1 2 11
um

Lã 1 3 15
m

Preço de venda 30 50 -

O modelo económico matemático correspondente é:

maximizar Z = 30x1 + 50x2




 2x1 + 1x2 ≤ 16


1x1 + 2x2 ≤ 11


sujeito à


 1x1 + 3x2 ≤ 15


x1 , x2 ≥ 0

Mulenga 14 acm@2020
Investigação Operacional

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

Tabela 2.3: Relacionamento da informação do problema de dieta

Elemento alimentos básicos

om
nutritivo A B C D E

l.c
Calorias 1 0 1 1 2
Vitaminas 0 1
ai 0 1 1
gm
Custo unitário 2 20 3 11 12
@

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


o8
et

minimizar W = 2x1 + 20x2 + 3x3 + 11x4 + 12x5


ub

 1x + 0x2 + 1x3 + 1x4 + 2x5 ≥ 70


 1

um


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


m

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 de Azoto, 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, 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 suprir as suas necessidades pelo menor custo.

Mulenga 15 acm@2020
Investigação Operacional

Tabela 2.4: Informação do problema de adubo

Composição Possibilidades do mercado Necessidades


do abudo tambor saco mı́nimas

Azoto 50 10 100
Fóstoro 20 20 120
Potássio 10 40 120

om
Custo unitário 30 20 -

l.c
O modelo matemático correspondente é:
ai
gm
minimizar W = 30x1 + 20x2
 50x1 + 10x2 ≥ 100
@





20x1 + 20x2 ≥ 120

o8


sujeito à
 10x1 + 40x2 ≥ 120
et





x1 , x2 ≥ 0


ub
um

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


m

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

Mulenga 16 acm@2020
Investigação Operacional

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


(≤) seja maior ou igual (≥) ou mesmo igual (=).

Assim, para os problemas com restrições onde existe um recurso máximo disponı́vel
usa-se o sinal (≤) e para as restrições onde no recurso existe uma quantida mı́nima
desejável usa-se o sinal (≥). Se uma ou mais restrições apresentar o sinal de igualdade
(=), 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-
tivo. 

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

l.c
2.1.3 Exercı́cios propostos
ai
gm
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


o8

à 35 u.m., e um bolo é vendido à 80 u.m. Como deve o padeiro distribuir a matéria


et

prima disponı́vel de modo a obter o maior lúcro? Elabore o modelo matemático


correspondente a este problema de programação linear.
ub
um

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


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

B que se pode comprar a 45 u.m. por kg, contém 1, 1 e 3 unidades, de proteina,


hidratos de carbono e gordura, respectivamente. Supondo que as necessidades sema-
nais mı́nimas de uma pessoa são 8 unidades de proteı́na, 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 medida e o lúcro unitário de P2 é de 150 unidades de
medida. A empresa necessita de 2 horas para fabricar uma unidade de P1 e 3 horas

Mulenga 17 acm@2020
Investigação Operacional

para fabricar uma unidade de P2. O tempo mensal disponı́vel para essas actividades
é 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
de P1 e 30 unidades de P2 por mês. Elabore o modelo do sistema de produção mensal
que maximiza o lúcro da empresa.

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
hectares nos arredores de Boane. Por outro lado, as suas disponibilidades em tra-

om
balho são apenas de 9 horas diárias. Admitindo que, por cada hectare semeado de
arroz é necessário 1 hora de trabalho e por cada hectare de milho são necessárias 2

l.c
horas. Sabendo que por cada hectare de arroz semeado o lúcro é de 5 u.m. e por
cada hectare de milho 2 u.m, formule o problema como um problema de programação
ai
linear.
gm
@

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,
o8

uma tonelada de cortiça, 5 toneladas de trigo e 3 toneladas de peixe. Por cada Y


et

unidades monetárias concedidas pelo paı́s B, são cobrados anualmente ao paı́s C, uma
ub

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
um

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
m

de programação linear que maximiza o número de armas que C pode adquirir por
este processo.

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

Mulenga 18 acm@2020
Investigação Operacional

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 es-
colares. O modelo padrão e o modelo de luxo dessas carteiras. Cada unidade do
modelo 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 3 polidores, cada pessoa trabalha 40 horas semanais. As margens de
lúcro são 24 e 32 unidades monetárias, respectivamente, para cada unidade padrão e

om
de luxo. Não existem restrições de demanda para ambos os modelos. Elabore o mo-
delo de programação linear que permita calcular a produção semanal que maximiza

l.c
a margem total de lúcro do fabricante.
ai
Exercı́cio 2.8. Uma fábrica de imóveis dispõe de 6 placas de madeira e 28 ho-
gm

ras que poderá utilizar para fabricar biombos decorativos. No passado, houve dois
@

modelos de biombos que se venderam bastante bem, pelo que o fabricante já restrin-
girá a esses dois modelos. Segundo as suas estimativas, cada biombo do modelo I,
o8

requer 2 placas de madeira e 7 horas de mão – de – obra, enquanto que um biombo


et

do modelo II, requer uma placa de madeira e 8 horas de mão – de – obra. Os biombos
ub

são produzidos a um custo unitário de 80 e 50 meticais cada. O biombo do modelo


1 é mais carro por isso é vendido à 120 meticais, enquanto o biombo do modelo II é
um

vendido à 80 meticais. Usando as informações do texto, elabore o modelo económico


matemático como um problema de programação linear.
m

Exercı́cio 2.9. Uma fábrica de tintas produz dois tipos de tinta: uma tinta para
interiores e outra 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
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.

Mulenga 19 acm@2020
Investigação Operacional

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ı́nica 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. Para que a alimentação seja bem
consolidada, exige-se uma nutrição equilibrada que preveja nı́veis mı́nimos de in-
gestão de proteinas, hidratos de carbono, gorduras, vitaminas e fósforo. Estes nı́veis

om
correspondem de acordo com uma tabela de prescrição clı́nica de autoria dos invs-
tigadores da clı́nica, à 50; 35; 22; 25 e 30 pontos respectivamente. A clı́nica prevê

l.c
uma alimentação nacional à base de quatro tipos de refeições oferecidas quatro ve-
zes por dia, podem ser repetidas ou misturadas se assim for decidido. As refeições
ai
apresentam um ı́ndice de sensão de fome diário, calculado com base cientı́fica que
gm

corresponde aos 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.


o8

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


et
ub

Verde 6 8 5 7 4
Branca 9 11 9 10 16
um

Azul 10 12 14 8 12
m

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 20 acm@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

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


 2x1 + 3x2 ≤ 120 

 1x1 + 2x2 ≤ 9

l.c

 

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

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


 0x1 + 1x2 ≤ 30 

 0x1 + 1x2 ≤ 4
gm

 

x ,x ≥ 0  x ,x ≥ 0

 
1 2 1 2
@
o8

maximizar Z= 500x1 + 300x2


minimizar W= 30x1 + 40x2
 1x1 + 1x2 ≤ 20
et


2x1 + 3x2 ≥ 9

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

ub

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

 3x1 + 8x2 ≤ 120 

um

x ,x ≥ 0

 

 1 2
x ,x ≥ 0


1 2
m

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




 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 21 acm@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

om
2.2 Resolução dos problemas de programação li-
near pelo método gráfico
l.c
ai
gm
O método gráfico pode ser aplicado para resolver os problemas de programação linear
de forma eficiente, apenas quando a função objectivo e o conjunto das restrições tiver
@

duas variáveis de decisão. Para compreender o procedimento de resolução, vai-se


o8

começar por introduzir a noção 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 represen-


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

em 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 22 acm@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
l.c
(a) (b) (c)
ai
Figura 2.1: Domı́nio solução de sistema de inequações
gm

Exemplo 2.6. Determinar o conjunto solução do sistema e calcular o valor máximo


@

e mı́nimo da função F(x) = 1x1 −2x2 +4 sobre o polı́gono convexo dado pelo sistema.
o8


 1x1 + 1x2 ≤ 4

et




−1x1 − 2x2 ≤ 2


ub




−1x1 + 1x2 ≤ 2
um



1x1 + 0x2 ≤ 3






x1 , x2 ≥ 0
m


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

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, para isso, foi necessário
resolver um sistema de duas equações com duas variáveis. Assim teremos:

Mulenga 23 acm@2020
Investigação Operacional

(a) Dominio solução (b) Pontos extremos

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

• Ponto A = r5 ∩ r6 = (x1 = 0 ∩ x2 = 0)
l.c
ai
gm
• Ponto B = r4 ∩ r6 = (x1 = 3 ∩ x2 = 0)

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


@
o8

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


et

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


ub
um

Resolvendo os sistemas de equações tem-se as coordenadas de cada ponto.

Tabela 2.5: Cálculo do ponto máximo e mı́nimo de F(x) = 1x1 − 2x2 + 4


m

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

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


B (3,0) F(x) = 1×3 - 2×0 + 4 7
C (3,1) F(x) = 1×3 - 2×1 + 4 5
D (1,3) F(x) = 1×1 - 2×3 + 4 -1
E (0,2) F(x) = 1×0 - 2×2 + 4 0

Mulenga 24 acm@2020
Investigação Operacional

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.
3. O ponto máximo ou mı́nimo na resolução dos problemas de programação linear

om
pelo método gráfico depende da função objectivo e não da sua aparente posição ge-
ográfica.

l.c
Exemplo 2.7. Usando o método gráfico resolver o problema de programação li-
ai
near.
gm
@

maximizar  Z = 3x1 + 2x2


−3x1 + 4x2 ≤ 12
o8






 2x + 1x ≤ 14

et

1 2
Sujeito à
2x1 − 3x2 ≤ 6
ub






x1 , x2 ≥ 0


um
m

Resolução
O primeiro passo é considerar que temos um sistema de equações em vez de ine-
quações como está representado no sistema e designar as equações por rectas.

maximizar  Z = 3x1 + 2x2




 −3x1 + 4x2 = 12 r1



 2x + 1x = 14
1 2 r2
Sujeito à


 2x1 − 3x2 = 6 r3



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

Mulenga 25 acm@2020
Investigação Operacional

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 objectivo, se x1 = x2 = 0 o valor da função objectivo 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
3

om
Desta recta, se x1 = 0 então x2 = 0, se x1 = 2, então x2 = − × 2 = −3.
2

l.c
Em seguida estão apresentados todos os pontos das rectas no sistema de coorde-
ai
nadas rectangulares incluindo a recta da função objectivo.
gm
r1 : x1 x2 r2 : x1 x2 r3 : x1 x2 r z : x1 x2
3
0 3 0 14 0 -3 0 0 x 2 = − x1
@

2
-4 0 7 0 3 0 2 -3
o8
et
ub
um
m

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

Mulenga 26 acm@2020
Investigação Operacional

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

om
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

l.c
função objectivo e finalmente apresenta-se a solução do problema.
ai
Pmax = r1 ∩ r2
gm

 
 −3x + 4x = 12  −3x + 4x = +12
@

1 2 1 2
→ somando as equações
o8

 +2x + 1x = 14 / ∗ (−4)  −8x − 4x = −56


1 2 1 2
et

   
ub

 −11x = −44  x =4  x =4  x =4
1 1 1 1
→ → →
−  2a equacao  2x + 1x = 14  x =6
um


− 1 2 2

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


m

Exemplo 2.8. Uma pessoa precisa de 10, 12, e 12 unidades dos produtos quı́micos
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
unidades de A, B e C, respectivamente por caixa. Se o produto lı́quido custa 3 u.m.
por litro e o produto em pó custa 2 u.m. por caixa.
a) Formule o problema como um problema de programação linear.
b) Resolva o problema pelo método gráfico de modo a determinar quantos litros e
caixas devem ser compradas para minimizar o custo e satisfazer as necessidades?

Mulenga 27 acm@2020
Investigação Operacional

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

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

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

om
Preço por u.m. 3 2 –

l.c
O modelo matemático é: ai
minimizar W = 3x1 + 2x2
gm


 5x1 + 1x2 ≥ 10


 2x + 2x ≥ 12

@

1 2
Sujeito à
1x1 + 4x2 ≥ 12
o8






x ,x ≥ 0


et

1 2
ub

3
minimizar W = 3x1 + 2x2 rw : x2 = − x 1
um

 2


 5x1 + 1x2 = 10; r1

m



 2x1 + 2x2 = 12; r2
Sujeito à


 1x1 + 4x2 = 12; r3



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

r1 : x1 x2 r 2 : x1 x2 r3 : x1 x2 r w : x1 x2

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

Mulenga 28 acm@2020
Investigação Operacional

om
l.c
ai
gm

Figura 2.4: Ilustração da resolução de um problema de minimização


@
o8

Para os problemas de minimização a recta da função objectivo deve ser traçada até ao
et

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
ub

 
um

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

1 2 1 2
  
 4x = 4  x =1  x =1
1 1 1
→ →
 −  1a equacao  x = 10 − 5 × 1 = 5
− 2

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

Resposta. A pessoa deve comprar 1 litro do produto lı́quido e 5 caixas do pro-


duto em pô e terá um custo mı́nimo de 13 unidades monetárias.

Mulenga 29 acm@2020
Investigação Operacional

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:

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 princi-
pais caracterı́sticas dos problemas de programação linear. As variáveis de decisão,
a função objectivo se é de maximização ou minimização e no fim o conjunto das
restrições.

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

l.c
formações obtidas no passo 1 sem esquecer das restrições de não negatividade.
ai
gm
Passo 3. Calcular as coordenadas de dois pontos para cada recta incluindo a recta
da função objectivo 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.


o8

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

ponto máximo ou mı́nimo conforme o problema (ponto óptimo). Resolver o sistema


ub

das rectas que intersectam no ponto óptimo. Note, que um problema de programação
um

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
m

da função objectvo é paralela a uma das rectas das restrições, neste caso a solução é
dada para um intervalo de valores de x1 e x2 .

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


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

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


linear.

Mulenga 30 acm@2020
Investigação Operacional

maximizar  Z = 3x1 + 6x2




 2x1 + 2x2 ≤ 8


4x1 + 2x2 ≤ 12


sujeito à


 0x1 + 3x2 ≤ 9


x1 , x2 ≥ 0

Resolução
r 1 : x1 x2 r2 : x1 x2 rz : x1 x2

om
1
0 4 0 6 r3 : x2 ≤ 3 rz : x2 = − x1 0 0
2

l.c
4 0 3 0 2 -1
ai
gm
@
o8
et
ub
um
m

Figura 2.5: Gráfico do exemplo 2.9

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


  
 2x + 2x = 8 / : 2  x +x =4  x =4−3=1
1 2 1 2 1
→ →
 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.

Mulenga 31 acm@2020
Investigação Operacional

Exemplo 2.10. Usando o método gráfico resolva o seguinte problema de pro-


gramação linear.

minimizar W = 30x1 + 12x2




 2x1 + 2x2 ≥ 6


 2x + 2x ≤ 8

1 2
sujeito à
 3x1 + 1x2 ≥ 4




 x ,x ≥ 0

1 2

om
Resolução

l.c
30 5
Para a função objectivo: 30x1 + 12x2 = 0, → x2 = − x1 → x2 = − x1 .
ai12 2
gm
r1 : x1 x2 r2 : x1 x2 r 3 : x1 x2 rw : x1 x2

0 3 0 4 0 4 0 0
@
o8

3 0 4 0 4/3 0 1 -5/2
et
ub
um
m

Figura 2.6: Gráfico do exemplo 2.10

Mulenga 32 acm@2020
Investigação Operacional

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

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

om
1 5
Solução: x1 = ; x2 = ; Wmin = 45
2 2

l.c
2.2.3 Exercı́cios propostos
ai
gm
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
@

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


o8

que a carpintaria tem limitações em somente dois recursos: a madeira e a mão-de-


et

obra, cujas disponibilidades diárias são 12 m2 e 8 homens por hora (H.h), respecti-
vamente. O processo de produção é tal que, para fazer 1 mesa a fábrica gasta 2 m2
ub

de madeira e 2 H.h de mão-de-obra. Para fazer um armário, a fábrica gasta 3 m2 de


um

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

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


b) Usando o método gráfico, resolva o problema do fabricante de modo a encontrar
o programa de produção que maximiza a margem total de lúcro.
Resposta: x1 = 4; x2 = 0; Zmax = 16 u.m.

Exercı́cio 2.12. Uma indústria fabrica dois produtos A e B que utilizam três
matérias primas: madeira, quandidades de matéria prima em plástico e compos-
tos 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

Mulenga 33 acm@2020
Investigação Operacional

medida de cada uma das metérias primas madeira, plástico e aço respectivamente.
O produto B requer 3, 4 e 1 unidades de medida das mesmas matérias prima, res-
pectivamente. 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.

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

om
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,

l.c
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
ai
e satisfazer as necessidades da companhia.
gm

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


o8

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


et

são adquidas em dois tipos de medicamentos designados A e B. Um medicamento


ub

do tipo A tem 10 unidades de substância 1 e 8 unidades de substância 2. O medi-


camento do tipo B contém 2 unidades da substância 1 e 4 unidades de substância
um

2. Sabendo que uma unidade do medicamento A custa 3 u.m e de B custa 1 u.m,


quantas unidades de cada medicamento A ou B, que o paciente deve comprar para
m

tomar por dia de modo que ele melhore e minimize o seu dinheiro. Qual é o valor
mı́nimo que ele vai gastar por dia.
Resposta: x1 = 4, x2 = 22, Wmin = 34 u.m.

Exercı́cio 2.15. Usando o método gráfico, resolva as seguintes alı́neas dos pro-
blemas de programação linear.

Mulenga 34 acm@2020
Investigação Operacional

minimizar W = 10x1 + 30x2


maximizar Z = 5x1 + 5x2 
 2x1 + 2x2 ≥ 16
2x + 1x2 ≤ 10
 

 1
 
1x1 + 1x2 ≥ 12
 

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

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

 

1 2 
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 à

om


 1x1 + 2x2 ≤ 6 

 2x1 + 3x2 ≥ 12

 

x ,x ≥ 0 x ,x ≥ 0

 

1 2 1 2

l.c
Respostas
ai
gm
a) x1 = 4, x2 = 2, Zmax = 30
b) x1 = 14, x2 = 0, Wmin = 140
@

c) x1 = 4, x2 = 1, Zmax = 130
o8

d) x1 = 0, x2 = 6, Wmin = 12
et
ub

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


um

near pelo método simplex


m

O método simplex é um algorı́tmo proposto por Dantzig (1947), para resolver os pro-
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
auxiliares.

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
e resolveu-se os problemas assumindo que todas variáveis eram não negativas. Nesta

Mulenga 35 acm@2020
Investigação Operacional

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


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

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 restrição 6x1 + 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

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

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

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


o8

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

  
ub

 2x + 3x ≥ 80  2x + 3x − x = 80  x = 2x + 3x − 80
1 2 1 2 3 3 1 2
→ →
um

 x1 , x2 ≥ 0  x1 , x2 , x3 ≥ 0  x1 , x2 , x3 ≥ 0
m

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.

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
tiver só variáveis de decisão e todas desigualdades forem do mesmo sinal. Assim,
para maximização deverá ter ≤, enquanto, para minimização ≥. Um problema está
na 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 ).

Mulenga 36 acm@2020
Investigação Operacional

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


padrão.

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




 2x1 + 1x2 ≤ 16 

 5x1 + 1x2 ≥ 10

 

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

 

a) sujeito à b) sujeito à


 1x1 + 3x2 ≤ 15 

 1x1 + 4x2 ≥ 12

 

x1 , x2 ≥ 0

x1 , x2 ≥ 0

 

om
Resolução
Como os problemas estão na forma canónica, basta acrescentar as variáveis de folga
ou de excesso.
l.c
ai
gm
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
 
o8

 

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

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



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

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

 
x1 , x2 , x3 , x4 , x5 ≥ 0

x1 , x2 , x3 , x4 , x5 ≥ 0

 
um

Observação
m

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

• Como as variáveis de excesso e de folga são apenas auxiliares, elas não contri-
buem na função objectivo, por isso, tem coeficiente zero.

• Todas as variáveis de decisão e auxiliares são não negativas.

Mulenga 37 acm@2020
Investigação Operacional

2.3.2 Procedimento do método simplex


O método simplex pode ser descrito como um procedimento matricial para resolver
problemas de programação linear na forma padrão.

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


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

om
O método simplex dual-simplex será apresentado mais tarde no capı́tulo 4. Deve-se
salientar que, em qualquer uma das variantes pode se destacar 4 etapas fundamentais

l.c
do método simplex. ai
gm
1. Tabela simplex inicial. A tabela simplex inicial de um problema de ma-
ximização de programação linear como apresentado na subsecção 2.1.2 é como se
@

segue.
o8

Tabela 2.6: Estrutura básica de uma tabela simplex inicial


et
ub

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


xm+1 a11 a12 ... a1m 1 0 ... 0 b1
um

xm+2 a21 a22 ... a2m 0 1 ... 0 b2


m

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


dicação da coluna pivô, por isso, são chamados indicadores da coluna pivô;

Mulenga 38 acm@2020
Investigação Operacional

• O elemento no canto inferior direito é zero, ele corresponde ao valor da função


objectivo inicial.

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


é obtido da seguinte forma.

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


negativo (max) ou o maior elemento positivo (min), e a coluna que contém este
elemento chama-se coluna pivô: cp = min{−cj };

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

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

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

Se a tabela não tiver nenhum indicador negativo (max) ou positivo (min), esta é uma
o8

tabela terminal e não tem pivô.


et

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


ub

e m + n colunas, cujo elemento pivô é aij da matrix A. Uma nova tabela T2 é calcu-
um

lada 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
m

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 elemento 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 e não é permetida a troca da ordem das linhas
na nova tabela.

Mulenga 39 acm@2020
Investigação Operacional

• Cada uma das outras linhas lk0 da tabela T2 é obtida somando da linha lk o
produto −akj lp0 , onde o −akj é o elemento akj da coluna pivô com sinal contrário.
Isto é: lk0 = lk − akj × lp0 , para k = 1, 2, . . . , n.

4. Interpretação da tabela terminal. Depois de tantas repetições das etapas (2)


e (3), chega-se a uma tabela terminal, a qual não tem nenhum indicador da coluna
pivô negativo (max) ou positivo (min).

Tabela 2.7: Estrutura de uma tabela terminal simplex

om
Base x1 x2 ... xm xm+1 xm+2 ... xm+n recursos
x1 1 0 ... a1m ∗ a1(m+1) ∗ a1(m+2) ∗ ... 0 b1 ∗

l.c
x2 0 1 ... a2m ∗ a2(m+1) ∗ a2(m+2) ∗
ai ... 0 b2 ∗
... ... ... ... ... ... ... ... ... ...
gm

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


@

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


o8
et

Na Tabela 2.7 o sinal (*) indica de que os valores já não são os mesmos da tabela
ub

inicial 2.6. Também pode notar de que as variáveis que estão na base foram trocadas.
um

Este é resultado das iterações que foram feitas.

• z ∗ – é o valor óptimo da função objectivo;


m

• 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 , ..., xm+n .

• 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 , Zmax = z ∗ e todas
variáveis que estão fora da base são iguais a zero.

Mulenga 40 acm@2020
Investigação Operacional

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


 x ,x ,x ≥ 0

1 2 3

Resolução

om
O problema já está na forma canônica, portanto, vai-se introduzir as variáveis de
folga.

l.c
maximizar
ai
 Z = 1x1 + 9x2 + 1x3 + 0x4 + 0x5
gm
 1x + 2x2 + 3x3 + 1x4 + 0x5 = 9
 1


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



o8

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

1 2 3 4 5
et

Tabela 1
ub

Base x1 x2 x3 x4 x5 Bi
um

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

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

Mulenga 41 acm@2020
Investigação Operacional

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

Solução
81 9
Zmax = , x1 = 0 , x2 = , x3 = x4 = 0, x5 = 6

om
2 2

Os valores da função objectivo e das variáveis de folga podem ser obtidos substi-

l.c
tuindo os valores de x1 , x2 e x3 na função objectivo e nas restrições.
ai
9 81
• Função objectivo: Zmax = 1x1 + 9x2 + 1x3 = 1 × 0 + 9 × +1×0=
gm
2 2
9
@

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


2
o8

9
• Restrição 2: x5 = 15–3x1 –2x2 − 2x3 = 15–2 × 0 − 2 × − 2 × 0 = 15 − 9 = 6
et

2
ub

Desta verificação, significa que para produzir 4.5 unidades de x2 foram utilizadas
um

completamente 9 uniddaes de recurso 1 e 9 unidades de recurso 2, não sendo utiliza-


das 6 unidades que correspondem a diferença 15-9=6 unidades do recurso 2.
m

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


gramação linear.

maximizar  Z = 6x1 + 4x2




 4x1 + 6x2 ≤ 12


6x1 + 2x2 ≤ 24


sujeito à


 2x1 + 1x2 ≤ 10


x1 , x2 ≥ 0

Mulenga 42 acm@2020
Investigação Operacional

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

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




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



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


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


x1 , x2 , x3 , x4 , x5 ≥ 0

om
Tabela 1

l.c
Base x1 x2 x3 x4 x5 Bi
x3 4 6 1 0 0 12
ai
(12/4=3, min)J
gm
x4 6 2 0 1 0 24 (24/6=4)
x5 2 1 0 0 1 10 (10/2=5)
@
o8

Z -6 -4 0 0 0 0
N
et
ub

Repare que na tabela inicial, a coluna pivô é a coluna 1, e como tem o valor mı́nimo
um

na primeira linha, o elemento pivô foi escolhido na primeira linha. Como o elemento
pivô está na primeira linha, começa-se por esta linha a transformar e só depois as
m

outras linhas.

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

Mulenga 43 acm@2020
Investigação Operacional

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

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


que confirma o valor que está na tabela óptima.

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


simplex.

maximizar  Z = 8x1 + 6x2

om


 6x1 + 3x2 ≤ 9


2x1 + 2x2 ≤ 4

l.c
sujeito à


 1x1 + 2x2 ≤ 8 ai


x1 , x2 ≥ 0


gm
@

Resolução
o8

Tabela 1
et
ub

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

x4 2 2 0 1 0 4 (4/2=2)
m

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
que estiver o elemento pivô, por exemplo l10 .

Mulenga 44 acm@2020
Investigação Operacional

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 45 acm@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

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

l.c
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, diz-se que esta tabela
ai
é preliminar e não básica porque não possue solução básica.
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:
o8

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


et
ub

Tabela 2.8: Variáveis auxiliares para os métodos de duas fases e de grande M


um

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


m

≤ variável de folga xi
= 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:

Mulenga 46 acm@2020
Investigação Operacional

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


conforme a Tabela 2.8 indica.

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

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

• As colunas das váriaveis artificiais ficam com zeros, para garantir que a tabela

om
inicial tenha solução básica.

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

l.c
se alguma variável artificial e multiplicar o resultado por (-1) como está exem-
ai
plificado, Za = −(b1 + b2 + b3 ).
gm

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


@

Passo 3. Organizada a tabela inicial, as variáveis artificiais e de folga se existirem


o8

estarão na base. E esta é a tabela básica da primeira fase.


et

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

tivo a última linha da função de maximização até que na linha Za , haja nas colunas
um

de xi , ∀ci = 0, nas colunas de ai , ∀ci = 1 e Za = 0. Este é o fim da primeira fase.


m

Como na última linha o valor da função objectivo artificial é igual a zero, a pri-
meira 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.
• 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.

Mulenga 47 acm@2020
Investigação Operacional

minimizar  W = 3x1 + 4x2


 2x + 3x2 ≤ 10
 1


sujeito à 1x1 + 3x2 ≥ 5


x1 , x2 ≥ 0

Resolução

Tabela 1 1a Fase

om
Base x1 x2 x3 x4 a1 Bi

x3 2 3 1 0 0 10 (10/3=3.333)
a1 1 3 0 -1 1 5
l.c
(5/3=1.666) J
ai
gm
W -3 -4 0 0 0 0
@

Za -1 -3N 0 1 0 -5
o8
et

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

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


um

Tabela 2 1a Fase
m

Base x1 x2 x3 x4 a1 Bi operações

x3 1 0 1 1 -1 5 l10 = l1 − 3 × l20
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

Mulenga 48 acm@2020
Investigação Operacional

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

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

om
l.c
Nos problemas de minimização termina-se quando na linha indicadora de pivô não
existem elementos positivos, portanto, esta é a tabela terminal. ai
Solução x1 = 0, x2 = 5/3, x3 = 5, x4 = 0 e Wmin = 20/3.
gm

Exemplo 2.16. Usando o método simplex de duas fases, resolver o problema de


@

programação linear.
o8
et

minimizar  W = 4x1 + 1x2


ub



 3x1 + 1x2 ≥ 3


4x1 + 3x2 ≥ 6

um


sujeito à


 1x1 + 2x2 ≥ 3
m



x1 , x2 ≥ 0

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

Mulenga 49 acm@2020
Investigação Operacional

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


variáveis de excesso e 3 artificiais. De salientar que a tabela básica inicial será consti-
tuida só pelas variáveis artificiais a1 , a2 e a3 . Isto significa que terão que ser realizadas
três iterações na primeira fase para retirar todas variáveis artificiais da base.

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

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

l.c
W -4 -1 0 0 0 0 0 0
ai 0
gm
Za -8N -6 1 1 1 0 0 0 -12
@

Tabela 2 1a F
o8

Base x1 x2 x3 x4 x5 a1 a2 a3 Bi
et
ub

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


l20 = l2 − 4 × l10 J
um

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


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

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

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


- - N - - - - - - -

Mulenga 50 acm@2020
Investigação Operacional

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 -8/5 1/5 0 8/5 -1/5 0 18/5

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

Tabela 4 1a F
l.c
ai
gm
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


@
o8

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
et
ub

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


um

Za 0 0 0 0 0 1 1 1 0
m

Como na última linha o valor da função objectivo artificial é igual a zero, os coefi-
cientes de xi são iguais a zero e para ai são iguais a 1, a fase 1 termina e a solução
encontrada é solução básica inicial para a fase 2. Na segunda fase, como o problema
é de minimização, e temos um elemento positivo, teremos que continuar as iterações.

Mulenga 51 acm@2020
Investigação Operacional

Tabela 1 2a F

Base x1 x2 x3 x4 x5 Bi

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


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

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

2a F

om
Tabela 2

Base x1 x2 x3 x4 x5 Bi

x5 5 0 -2 0 1 3
l.c
ai
gm
x2 3 1 -1 0 0 3
x4 5 0 -3 1 0 3
@
o8

W -1 0 -1 0 0 3
et

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


ub
um

Exemplo 2.17. Usando o método simplex de duas fases, resolva o problema de


programação linear.
m

maximizar  Z = 2x1 + 3x2 + 5x3




 1x1 + 2x2 + 1x3 ≤ 10


2x1 + 3x2 + 1x3 ≥ 6


sujeito à


 2x1 + 1x2 − x3 = 3


x1 , x2 , x3 ≥ 0

Mulenga 52 acm@2020
Investigação Operacional

Resolução
Tabela 1 1a F

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

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

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

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
o8

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


et

Z 0 -2 -6 0 0 0 1 3
ub

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

Tabela 3 1a F
m

Base x1 x2 x3 x4 x5 a1 a2 Bi

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


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

Z 0 0 -4 0 -1 1 0 6

Za 0 0 0 0 0 1 1 0

Mulenga 53 acm@2020
Investigação Operacional

Tabela 1 2a F

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

om
Tabela 2 2a F

l.c
Base x1 x2 x3 x4 x5 Bi ai
x4 0 0 0 1 3/4 25/4 (8.33) J
gm

x3 0 1 1 0 -1/2 3/2 (-)


@

x1 1 1 0 0 -1/4 9/4 (-)


o8

Z 0 4 0 0 -3 N 12
et
ub

Tabela 3 2a F
um

Base x1 x2 x3 x4 x5 Bi
m

x5 0 0 0 4/3 1 25/3
x3 0 1 1 2/3 0 17/3
x1 1 1 0 1/3 0 13/3

Z 0 4 0 4 0 37

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

Mulenga 54 acm@2020
Investigação Operacional

2.3.4 Método simplex de grande M


De uma forma geral, o método simplex de duas fases consistiu em gerar uma nova
função objectivo 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 artificiais na base. Este era
o fim da primeira fase, a segunda fase terminou sempre que não houvesse indicador
da coluna pivô. Para o método simplex de grande M, não haverá a necessidade de
uma nova função objectivo, 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.

om
Procedimento do método simplex de grande M

l.c
ai
Passo 1. Introduzir as variáveis de folga, excesso e artificial conforme apresentado
na Tabela 2.8.
gm
@

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


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

Passo 3. Para cada variável de folga e de excesso adicionar 0xi e para cada variável
ub

artificial adicionar −M ai na nova função objectivo, onde M é um grande número


positivo inteiro superior a todos outros da tabela simplex em qualquer iteração.
um
m

Passo 4. Escrever a tabela inicial simplex, onde as variáveis artificiais não estarão
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,
i.é, procurar eliminar a constante M nas colunas ai até chegar a tabela simplex inicial
com uma solução básica inicial viável.

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


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

Mulenga 55 acm@2020
Investigação Operacional

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


programação linear.
maximizar  Z = 2x1 + 1x2
 1x1 + 1x2 ≤ 10



sujeito à −x1 + 1x2 ≥ 2


x ,x ≥ 0


1 2

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

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


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

l.c


x ,x ,x ,x ,a ≥ 0

 ai
1 2 3 4 1
gm

Tabela P1
@

Base x1 x2 x3 x4 a1 Bi
o8

x3 1 1 1 0 0 10
et

− -1 1 0 -1 1 2 J
ub

Z -2 -1 0 0 MN 0
um
m

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

Tabela 1

Base x1 x2 x3 x4 a1 Bi

x3 1 1 1 0 0 10 l10 = l1 (10)
a1 -1 1 0 -1 1 2 l20 = l2 (2) J

Z M-2 -M-1N 0 M 0 -2M l30 = l3 − M l20

Mulenga 56 acm@2020
Investigação Operacional

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.

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 (-)

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

l.c
Tabela 3 ai
Base x1 x2 x3 x4 a1 Bi
gm

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


@

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


o8

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


et
ub
um

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

Observação
Note que, como as variáveis artificiais não têm significado nenhum para o problema,
e são iguais a zero na tabela terminal simplex, elas podem não figurar na solução.

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


minimização de programação linear.

Mulenga 57 acm@2020
Investigação Operacional

minimizar  W = 5x1 + 12x2




 1x1 + 2x2 ≤ 10


2x1 + 3x2 ≥ 12


sujeito à


 1x1 + 1x2 = 8


x1 , x2 ≥ 0

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

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

om



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

1 2 3 4 1 2
sujeito à

l.c


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


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

 ai
1 2 3 4 1 2
gm

Tabela P1
@

Base x1 x2 x3 x4 a1 a2 Bi
o8
et

x3 1 2 1 0 0 0 10
ub

− 2 3 0 -1 1 0 12 J
− 1 1 0 0 0 1 8
um

Z 5 12 0 0 MN M 0
m

Tabela P2

Base x1 x2 x3 x4 a1 a2 Bi

x3 1 2 1 0 0 0 10
a1 2 3 0 -1 1 0 12
− 1 1 0 M 0 1 8 J

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

Mulenga 58 acm@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

om
Tabela 2

l.c
Base x1 x2 x3 x4 a1 ai a2 Bi

x3 -1/3 0 1 2/3 -2/3 0 2


gm

x2 2/3 1 0 -1/3 1/3 0 4 J


@

a2 1/3 0 0 1/3 -1/3 1 4


o8

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

3 3 3
- N - - - - - -
ub
um

Tabela 3
m

Base x1 x2 x3 x4 a1 a2 Bi

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


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) (3M − 5) 0 -2M-30
2 2 2
- - - - N - - -

Mulenga 59 acm@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

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

l.c
Varificação: W = 5x1 + 12x2 = 5 × 8 + 12 × 0 = 40.
ai
Exemplo 2.20. Usando o método simplex de grande M, resolva o problema de
gm
minimização de programação linear.
@

minimizar  W = 3x1 + 4x2 ( = max Z = −3x1 − 4x2 )


o8

 2x + 1x2 ≥ 2
 1
et



sujeito à 2x1 + 1x2 ≥ 6
ub



 x ,x ≥ 0

1 2
um

Resolução
m

Tabela P1

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 60 acm@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

om
Base x1 x2 x3 x4 a1 a2 Bi

l.c
a1 2 1 -1 0 1 0 2
a2 2 1 0 -1 0 1 6
ai
gm
Z -4M+3 -2M+4 M M 0 0 -8M
@

Tabela 2
o8

Base x1 x2 x3 x4 a1 a2 Bi
et

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


ub

a2 0 0 1 -1 -1 1 4
um

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


m

Tabela 3

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 61 acm@2020
Investigação Operacional

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


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

om
Resolução

Tabela P1
l.c
ai
gm
Base x1 x2 x3 x4 x5 a1 a2 Bi
@

x4 1 1 0 1 0 0 0 20
o8

− 1 0 1 0 0 1 0 5
et

− 0 1 1 0 -1 0 1 10
ub

Z -1 1 -3 0 0 M M 0
um

Tabela P2
m

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
− 0 1 1 0 -1 0 1 10

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

Mulenga 62 acm@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

om
Tabela 2

l.c
Base x1 x2 x3 x4 x5 a1 a2
ai Bi

x4 1 1 0 1 0 0 0 20
gm

x3 1 0 1 0 0 1 0 5
@

a2 -1 1 0 0 -1 -1 1 5
o8

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


et
ub

Tabela 3
um

Base x1 x2 x3 x4 x5 a1 a2 Bi
m

x4 2 0 0 1 1 1 -1 15
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 63 acm@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

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

l.c
b) Escreva-o na formá padrão se necessário.
c) Resolva o problema pelo método simplex e apresente a solução óptima.
ai
d) Algum recurso não está sendo usado competamente? Qual?
gm
Respostas:
a) O problema está na forma canónica, porque todas desigualdades são da forma ≤
@

e é de maximização.
o8

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


et

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


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

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


m

maximizar  Z = 2x1 + 1x2




 1x1 + 1x2 ≤ 5


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.

Mulenga 64 acm@2020
Investigação Operacional

c) Os recursos do problema estão sendo usados completamente?


Respostas:
a) Introduzir as variáveis de folga x3 , x4 e x5 nas restrições.
b) solução X= (4, 1) com Zmax = 9.
c) Não. O recurso 2 não está sendo usado completamente só se usou 6 unidades
de medida. Vejamos x3 = 5 − 1 × 4 − 1 × 1 = 0, x4 = 8 − 1 × 4 − 2 × 1 = 2,
x5 = 4 − 1 × 4 − 0 × 1 = 0, portanto, 2 u.m do recurso 2 não estão sendo usadas,
x4 = 2.

om
Exercı́cio 2.18. Uma empresa fabrica dois tipos de estantes com madeiras dife-
rentes, adquirindo a madeira já cortada, e submetendo-à depois a três operações:

l.c
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 proces-
ai
sadas por hora.
gm

Secções estante tipo A estante tipo B


@
o8

Furação 7 6
et

Polimento 4 3
ub

Montagem 6 4
um

Quando funcionam, as três operações têm disponibilidade horária de produção de


m

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


madeira necessária é adquirida a 8 e 12 u.m, sendo os preços de venda dos estantes
16 e 25 u.m, respectivamente.
a) Formule o problema de programação linear que permite maximizar o lúcro.
Resposta: maximizar Z = 8x1 + 13x2
sujeito à { 7x1 + 6x2 ≤ 20, 4x1 + 3x2 ≤ 10, 6x1 + 4x2 ≤ 22, x1 , x2 ≥ 0}.
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 = .
3 3 3

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

Mulenga 65 acm@2020
Investigação Operacional

maximizar  Z = 3x1 + 1x2




 1x1 + 1x2 ≤ 6

sujeito à 1x1 + 2x2 ≤ 10


x1 , x2 ≥ 0

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.
b) Usando a interpretação das variáveis de folga, quais os recursos que não estão

om
sendo usados completamente.
Resposta: recurso 2, com x4 = 4 unidades não utilizadas.

l.c
Exercı́cio 2.20. Uma empresa possui em stock sticks de hóquei e jogos de xa-
ai
drez que são processados em três maquinas M1, M2 e M3. Cada stick de hóquei é
gm
vendido a 5 Dólares americanos e cada jogo de xadrez é vendido a 2 Dólares ame-
ricanos. Um stick de hóquei requer uma hora de processamento na maquina 1, seis
@

horas na maquina 2 e duas horas na maquina 3. Um jogo de xadrez requer uma hora
o8

na maquina 1, três horas na maquina 2 e três horas na maquina 3. A máquina 1 tem


et

disponı́vel no máximo 6 horas por semana, a máquina 2 tem disponı́vel 18 horas e a


ub

máquina 3 tem disponı́vel 12 horas por semana.


a) Apresente o modelo económico matemático do problema de programação linear
um

que reporta esta informação.


Resposta: maximizar Z = 5x1 + 2x2
m

sujeito á {1x1 + 1x1 ≤ 6, 6x1 + 3x2 ≤ 18, 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.

Exercı́cio 2.21. Uma companhia possuia, há 10 anos, duas minas: a mina A pro-
duzindo por dia 1 tonelada de minério de alto teor, 3 toneladas de minério de médio
teor e 5 toneladas de minério de baixo teor; a mina B produzia por dia 2 toneladas
de cada 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 fases,

Mulenga 66 acm@2020
Investigação Operacional

quantos 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,
a mina A funcionou durante 40 dias e a mina B funciona 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 sim-


plex de duas fases.

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

om


 3x1 + 1x2 ≥ 8 

 1x1 + 3x2 + 3x3 ≥ 6

 

l.c
 4x + 4x ≥ 15
  1x + 5x + 6x ≥ 4

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




ai 



gm
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
o8

b) x1 = 3, x2 = 1, x3 = 0, x4 = 0, x5 = 5, x6 = 0, Wmin = 26
et
ub

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


blemas de programação linear.
um

minimizar W = 2x1 + 1x2


maximizar Z = 1x1 + 2x2 + 3x3
m


 2x1 + 2x2 ≤ 8
1x + 2x2 + 0x3 ≤ 4
 

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

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

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

 

1 2 3 
 x ,x ≥ 0

1 2
Respostas:
a) x1 = 0, x2 = 2, x3 = 5/2, x4 = 0, Zmax = 23/2
b) x1 = 1, x2 = 2, x3 = 2, x4 = 0, x5 = 0, Wmin = 4

Mulenga 67 acm@2020
Investigação Operacional

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


blemas de programação linear.

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

om
Respostas:
a) x1 = 0, x2 = 1, x3 = 0, x4 = 6, x5 = 0 Wmin = 12

l.c
b) x1 = 0, x2 = 2, x3 = 0, x4 = 11, x5 = 0, Zmax = 6
ai
gm
@
o8
et
ub
um
m

Mulenga 68 acm@2020
Capı́tulo 3

Dualidade em programação linear

om
l.c
Todo o problema de programação linear que é obtido via formulação chama-se pri-
ai
mal, tem associado a ele um correspondente problema, chamado dual; ambos são
gm
complementares e relacionados de forma que a solução óptima de um fornece in-
formações completas sobre o outro. A teoria de dualidade em programação linear é
@

atribuida aos trabalhos de von Neumann (1947)1 .


o8
et

3.1 Transformação do problema primal para dual


ub

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


um

problema primal.
m

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

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

69
Investigação Operacional

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

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

om

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

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

Tabela 3.1: Régras de transformação de um problema primal para dual


o8

i Problema primal i Problema dual


et
ub

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


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

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


m

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


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

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

Mulenga 70 acm@2020
Investigação Operacional

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:

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

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

 

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

l.c

 

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

 ai 

gm

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 represen-
o8

tadas na forma matricial como se ilustra.


et

Problema primal
ub

 
x1
um

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

. . .
m

 
xm
     
a a12 . . . a1m x b
 11   1  1
     
 a21 a22 . . . a2m   x2   b2 
sujeito à  × ≤ 
     
. . . ... ... . . .   . . .  . . . 
     
an1 an2 . . . anm xm bn

Mulenga 71 acm@2020
Investigação Operacional

Problema dual
 
y
 1
   y2 


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

. . . 
 
yn
     
a a21 ... an1 y c
 11   1  1
     
 a12 a22 ... an2   y2   c2 
sujeito à × ≥ 

om

     
... ... ... . . .  . . .  . . . 
     

l.c
a1m a2m ... anm yn cm
ai
Exemplo 3.2. Escrever o problema dual correspondente ao problema primal.
gm
@

minimizar  W = 4x1 + 8x2


2x1 + 7x2 ≥ 40
o8






1x1 − 1x2 ≥ 18

et


sujeito à
5x1 + 1x2 = 22
ub






x1 , x2 ≥ 0


um

Resolução
m

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

Etapa 1. Escrever a terceira restrição ou equação na forma de duas inequações.

minimizar W = 4x1 + 8x2

Mulenga 72 acm@2020
Investigação Operacional




 2x1 + 7x2 ≥ 40


1x1 − 1x2 ≥ 18





sujeito à 5x1 + 1x2 ≥ 22


−5x1 − 1x2 ≥ −22






x1 , x2 ≥ 0

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

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

l.c

 1


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


y1 , y2 , y3+ , y3− ≥ 0
gm


@
o8

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


restrita.
et
ub

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


um

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


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



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

Mulenga 73 acm@2020
Investigação Operacional

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


limitadas, com os quais pretende produzir dois produtos: P1 e P2. A Tabela 3.2 dá
a utilização unitária de cada recurso em cada um dos produtos e a disponibilidade
de cada recurso. A indústria sabe que cada unidade produzida de P1 dá uma mar-
gem 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 a quantidade a ser produzida de P1 e P2 de forma a maximizar a margem
total de lúcro.

om
Tabela 3.2: Resumo da informação do problema primal

l.c
Recurso Horas para produzir 1 unidade de
ai Disponibilidade
Produto 1 Produto 2
gm

A 1 2 14
@

B 1 1 9
o8

C 7 4 56
et

lúcro unitário 5 6 -
ub
um

Resolução
m

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

Mulenga 74 acm@2020
Investigação Operacional

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 produção dos dois produtos.

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.

Sejam

om
y1 o valor do recurso A por unidade de medida,
y2 o valor do recurso B por unidade de medida e

l.c
y3 o valor do recurso C por unidade de medida.
O valor total do recurso em estoque é dado pela soma VT = 14y1 + 9y2 + 56y3
ai
gm

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,
o8

1 unidade de B e 4 unidades de C. As avaliações em termos do conteúdo de cada


et

recurso são: produto 1, 1y1 + 1y2 + 7y3 e para o produto 2, 2y1 + 1y2 + 4y3 .
ub

Normalmente, vendendo os recursos, o valor total não deve ser inferior a margem
um

unitária de lúcro fornecida por cada produto quando era vendido. Assim, pode-se
escrever:
m

• Para o produto 1. 1y1 + 1y2 + 7y3 ≥ 5


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

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


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

Mulenga 75 acm@2020
Investigação Operacional

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


 1y1 + 1y2 + 7y3 ≥ 5

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


y1 , y2 , y3 ≥ 0

Conforme as definições anteriores, para o problema primal as variáveis y1 , y2 , y3 são


duais e podem ser interpretadas como avaliações unitárias dos recursos relativos as

om
contribuições de cada produto para a obtenção do lúcro total. Isto significa que, re-
solvidos os problemas, as variáveis duais indicam as avaliações que ocorrem no valor

l.c
da função objectivo do primal, para avaliações unitárias nos nı́veis dos recursos.
ai
Repare que as variáveis xi não podem ser negativas porque representam quanti-
gm

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

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.
o8
et

3.3 Relações entre os valores óptimos do primal e


ub

do dual
um

Para compreender melhor as relações entre as soluções duais, vamos resolver os dois
m

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.
maximizar  Z = 5x1 + 6x2 + 0y1 + 0y2 + 0y3


 1x1 + 2x2 + 1y1 + 0y2 + 0y3 = 14



 1x + 1x + 0y + 1y + 0y = 9
1 2 1 2 3
sujeito à


 7x1 + 4x2 + 0y1 + 0y2 + 1y3 = 56


x1 , x2 , y1 , y2 , y3 ≥ 0

Mulenga 76 acm@2020
Investigação Operacional

Tabela 1

Base x1 x2 y1 y2 y3 Bi

y1 1 2 1 0 0 14 (7)J
y2 1 1 0 1 0 9 (9)
y3 7 4 0 0 1 56 (14)

Z -5 -6 N 0 0 0 0

om
Tabela 2

Base x1 x2 y1 y2 y3 Bi

x2 1/2 1 1/2 0 0 7 (14)


l.c
ai
gm
y2 1/2 0 -1/2 1 0 2 (4) J
y3 5 0 -2 0 1 28 (5.6)
@
o8

Z -2N 0 3 0 0 42
et

Tabela 3
ub

Base x1 x2 y1 y2 y3 Bi
um

x2 0 1 1 -1 0 5
m

x1 1 0 -1 2 0 4
y3 0 0 3 -10 1 8

Z 0 0 1 4 0 50

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.

Mulenga 77 acm@2020
Investigação Operacional

Problema dual.

minimizar  W = 14y1 + 9y2 + 56y3 + 0x1 + 0x2 + 0a1 + 0a2


 1y + 1y2 + 7y3 − 1x1 + 0x2 + 1a1 + 0a2 = 5
 1


sujeito à 2y1 + 1y2 + 4y3 + 0x1 − 1x2 + 0a1 + 1a2 = 6


y1 , y2 , y3 , x1 , x2 , a1 , a2 ≥ 0

Tabela inicial da 1a fase

om
Tabela 1 1a F

l.c
Base y1 y2 y3 x1 x2 a1 a2 Bi
a1 1 1 7 -1 0 1 0 5
ai
(0.71) J
gm
a2 2 1 4 0 -1 0 1 6 (1.50)
@

W -14 -9 -56 0 0 0 0 0
o8

Za -3 -2 -11 1 1 0 0 -11
et
ub

Tabela 2 1a F
um

Base y1 y2 y3 x1 x2 a1 a2 Bi
m

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 78 acm@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

om
Como Za = 0; a1 = 0 e a2 = 0, termina-se a primeira fase e começa-se a segunda fase.

Tabela 1 2a F
l.c
ai
gm
Base y1 y2 y3 x1 x2 Bi
y3 0 1/10 1 -1/5 1/10 2/5 (4) J
@

y1 1 3/10 0 2/5 -7/10 11/5


o8
et

W 0 4/5 N 0 -28/5 -21/5 266/5


ub

Tabela 2 2a F
um

Base y1 y2 y3 x1 x2 Bi
m

y2 0 1 10 -2 1 4
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

Para comparar as duas tabelas terminais e as soluções obtidas pelos dois problemas
primal e dual, apresenta-se a Tabela 3.3.

Mulenga 79 acm@2020
Investigação Operacional

Tabela 3.3: Comparação das soluções dos problemas duais

(a) Problema primal (b) Problema dual

Base x1 x2 y1 y2 y3 Bi Base y1 y2 y3 x1 x2 Bi

x2 0 1 1 -1 0 5 y2 0 1 10 -2 1 4
x1 1 0 -1 2 0 4 y1 1 0 -3 1 -1 1
y3 0 0 3 -10 1 8
W 0 0 -8 -4 -5 50
Z 0 0 1 4 0 50

om
l.c
Relação 1. As soluções óptimas dos dois problemas guardam entre se a relação:
ai
maximizar Z = minimizar W ⇒ Zmax = Wmin = 50. Quer dizer as tabelas óptimas
gm
têm o mesmo valor da função objectivo.
@

Relação 2. Os valores das variáveis duais podem ser obtidos da tabela terminal
o8

do problema primal ou dual, bastando tomar os coeficientes da última linha ao longo


et

das colunas começando pelas variáveis duais: da Tabela 3.3(a) Y = (y1 , y2 , y3 , x1 , x2 ),


ub

de Tabela 3.3(b) X = (x1 , x2 , y1 , y2 , y3 ). Se o dual é de maximizar, lemos os valores


tal como estão, caso contrário lemos com o sinal oposto, portanto:
um

Saindo de max (primal) para min (dual) - tabela terminal do primal


m

⇒ 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

Saindo de min (dual) para max (primal) - tabela terminal do dual


⇒ Solução dual: y1 = 1; y2 = 4; y3 = 0; x1 = 0; x2 = 0; Wmin = 50
⇒ Solução primal: x1 = 4; x2 = 5; y1 = 0; y2 = 0; y3 = 8; Zmax = 50

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

Mulenga 80 acm@2020
Investigação Operacional

problema de maximização, em seguida resolver o problema e ler a solução do primal.

Exemplo 3.4. Dado o seguinte problema de programação linear.

minimizar W = 24x1 + 12x2 + 5x3


 4x + 6x2 + 0x3 ≥ 2
 1


sujeito à 6x1 + 2x2 + 1x3 ≥ 4


x ,x ,x ≥ 0


1 2 3

om
a) Escreva o dual correspondente.
b) Resolva o problema dual e apresente as soluções dos problemas primal e dual.

Resolução
l.c
ai
a) O problema dual correspondente é:
gm

maximizar Z = 2y1 + 4y2


@


4y1 + 6y2 ≤ 24
o8






6y1 + 2y2 ≤ 12

et


sujeito à
0y1 + 1y2 ≤ 5
ub






y1 , y2 ≥ 0


um
m

b) Resolução do problema dual, considerando as variáveis duais x1 , x2 , x3 de folga.

Tabela 1

Base y1 y2 x1 x2 x3 Bi

x1 4 6 1 0 0 24 (4) J
x2 6 2 0 1 0 12 (6)
x3 0 1 0 0 1 5 (5)
Z -2 -4 N 0 0 0 0

Mulenga 81 acm@2020
Investigação Operacional

Tabela 2

Base y1 y2 x1 x2 x3 Bi

y2 2/3 1 1/6 0 0 4
x2 14/3 0 -1/3 1 0 4
x3 -2/3 0 -1/6 0 1 1

Z 2/3 0 2/3 0 0 16

om
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

l.c
Repare que na solução do primal, os valores das variáveis foram obtidos ao longo das
ai
colunas começando por x1 = 2/3, x2 = 0, x3 = 0 porque são variáveis de decisão no
gm
problema primal e só depois levou-se y1 = 2/3, y2 = 0.
@

Exemplo 3.5. Dado o problema de programação linear seguinte.


o8

minimizar W = 4y1 + 5y2


et



 3y1 + 3y2 ≥ 6
ub




4y1 + 3y2 ≥ 10


sujeito à
um



 2y1 + 1y2 ≥ 12


y1 , y2 ≥ 0

m

a) Escreva o problema dual correspondente.


b) Resolva o problema dual e apresente as soluções do primal e dual.

Resolução
a) O problema dual correspondente é:
maximizar Z = 6x1 + 10x2 + 12x3
 3x + 4x2 + 2x3 ≤ 4
 1


sujeito à 3x1 + 3x2 + 1x3 ≤ 5


 x ,x ,x ≥ 0

1 2 3

Mulenga 82 acm@2020
Investigação Operacional

b) Resolução do problema dual

Tabela 1

Base x1 x2 x3 y1 y2 Bi

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

om
Tabela 2

l.c
Base x1 x2 x3 y1 y2 Bi

x3 3/2 2 1 1/2 0 2
ai
gm
y2 3/2 1 0 -1/2 1 3
@

Z 12 14 0 6 0 24
o8
et

Solução Primal: Y = (6, 0, 12, 14, 0), Wmin = 24


Solução Dual : X = (0, 0, 2, 0, 3); Zmax = 24
ub
um

Exemplo 3.6. Dado o problema de programação linear seguinte.


m

minimizar  W = 12y1 + 16y2 + 12y3


 2y + 2y2 + 1y3 ≥ 20
 1


sujeito à 3y1 + 3y2 + 2y3 ≥ 25


 y ,y ,y ≥ 0

1 2 3

a) Escreva o problema dual correspondente.


b) Resolva o problema dual e apresente a solução do primal.

Mulenga 83 acm@2020
Investigação Operacional

Resolução
a) O problema dual é:

maximizar  Z = 20x1 + 25x2




 2x1 + 3x2 ≤ 12


2x1 + 3x2 ≤ 16


sujeito à


 1x1 + 2x2 ≤ 12


x1 , x2 ≥ 0

om
b) Resolução do problema dual

Tabela 1
l.c
ai
gm
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)
o8

y3 1 2 0 0 1 12 (6)
et
ub

Z -20 -25 N 0 0 0 0
um

Tabela 2

Base x1 x2 y1 y2 y3 Bi
m

x2 2/3 1 1/3 0 0 4 (6) J


y2 0 0 -1 1 0 4 (∞)
y3 -1/3 0 -2/3 0 1 4 (-)

Z -10/3 N 0 25/3 0 0 100

Mulenga 84 acm@2020
Investigação Operacional

Tabela 3
Base x1 x2 y1 y2 y3 Bi
x1 1 3/2 1/2 0 0 6
y2 0 0 -1 1 0 4
y3 0 1/2 -1/2 0 1 6
Z 0 5 10 0 0 120

A solução do primal é: Y = (10,0,0,0,5); Wmin = 120.

om
l.c
3.4 Exercı́cios propostos ai
Exercı́cio 3.1. Escrever os problemas duais correspondentes aos seguintes proble-
gm
mas de programação linear.
@

minimizar W = 30y1 + 20y2


maximizar Z = 30x1 + 80x2
o8


 5y1 + 1y2 ≥ 10
1x + 2x2 ≤ 32
 

 1
et

 
  2y + 2y ≥ 12

1 2
a) sujeito à 3x1 + 4x2 ≤ 84 b) sujeito à
ub


 
 1y1 + 4y2 ≥ 12
x ,x ≥ 0

 

1 2 
y1 , y2 ≥ 0
um


Resposta: Problemas duais


m

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

 

y1 , y2 ≥ 0 x ,x ,x ≥ 0

 

1 2 3

Mulenga 85 acm@2020
Investigação Operacional

Exercı́cio 3.2. Escreva os problemas na forma canónica e transforme – os em duais.

maximizar  Z = 16y1 + 8y2


minimizar  W = 9x1 + 2x2 
 −1y1 − 1y2 ≥ −10
4x1 + 1x2 ≥ 13
 

 

  1y + 1y ≤ 9

1 2
a) sujeito à −3x1 − 1x2 ≤ −12 b) sujeito à

 
 3y1 + 1y2 ≤ 12
x1 , x2 ≥ 0

 


y1 , y2 ≥ 0


Resposta: Problemas na forma canônica.

om
maximizar Z = 16y1 + 8y2
minimizar  W = 9x1 + 2x2


 1y1 + 1y2 ≤ 10
4x + 1x2 ≥ 13

l.c
 
 1
 
1y1 + 1y2 ≤ 9
 

a) sujeito à 3x1 + 1x2 ≥ 12 b) sujeito à
ai

 
 3y1 + 1y2 ≤ 12
x1 , x2 ≥ 0
 
gm
 

y1 , y2 ≥ 0


Correspondentes problemas duais
@
o8

maximizar  Z = 13y1 + 12y2 minimizar W = 10x1 + 9x2 + 12x3


 4y + 3y2 ≤ 9  1x + 1x2 + 3x3 ≥ 16
et

 1  1

 

a) sujeito à 1y1 + 1y2 ≤ 2 b) sujeito à 1x1 + 1x2 + 1x3 ≥ 8
ub


 

 y ,y ≥ 0 x ,x ,x ≥ 0
 

1 2 1 2 3
um
m

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.

Mulenga 86 acm@2020
Investigação Operacional

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

Exercı́cio 3.4. Considere o seguinte problema de programação linear.


maximizar  Z = 12x1 + 15x2
 4x + 3x2 ≤ 12
 1


sujeito à 2x1 + 5x2 ≤ 10

om


x ,x ≥ 0


1 2

l.c
Usando o método simplex resolva o problema e apresente as soluções do primal e
dual.
ai
Resposta: 
gm
  
15 8 15 12 300
Primal: X = , , 0, 0 , Dual: Y = , , 0, 0 com Zmax = Wmin = .
7 7 7 7 7
@
o8

Exercı́cio 3.5. No seguinte problema, transformar em dual, resolver o dual e apre-


et

sentar as soluções do primal e dual.


ub

minimizar  W = 5y1 + 2y2


um

 2y + 3y2 ≥ 6
 1


sujeito à 2y1 + 1y2 ≥ 7
m



 y ,y ≥ 0

1 2

Resposta:
Primal: Y = (0,7,15,0); Dual: X=(0,2,1,0); Wmin = Zmax = 14.

Exercı́cio 3.6. Uma empresa de transporte dispõe de dois tipos de camiões que
podem 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.

Mulenga 87 acm@2020
Investigação Operacional

Percursos tipo A tipo B procura mı́nima

1 10 10 180
2 12 15 200
3 10 10 220

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
indicados, de modo a minimizar os custos. (use o procedimento dual se necessário).

om
Resposta:

l.c
X = (22, 0, 40, 64) com Wmin = 1100 unidades de medida.
ai
Exercı́cio 3.7. Dado o seguinte problema de programação linear:
gm

minimizar  W = 4y1 + 5y2


@

1y + 2y2 ≥ 80
o8


 1


sujeito à 3y1 + 1y2 ≥ 75
et



y1 , y2 ≥ 0


ub
um

a) Escreva o problema dual correspondente. (–).


b) Resolva o dual e apresente as soluções dos problemas primal e dual.
m

Resposta:  
11 3
Primal Y =(14,33,0,0), Dual X = , , 0, 0 com Wmin = Zmax = 221.
5 5

Mulenga 88 acm@2020
Capı́tulo 4

Análise de sensibilidade em

om
programação linear
l.c
ai
gm

4.1 Introdução
@

A análise de sensibilidade em modelos de programação linear significa simplesmente


o8

procurar uma nova interpretação a partir da solução obtida. Já que tanto os recursos
et

como os preços no mercado estão sujeitos a mudanças contı́nuas e subsequente rea-


ub

valiações. A análise Pós – Optimização é uma ferramenta dinâmica e indispensável


ao administrador para avaliar as consequências das mudanças.
um

A análise de sensibilidade da solução óptima tem como objectivo determinar as


m

condições para as quais a solução óptima inicial é ainda válida. A solução óptima de
um problema é 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
consideradas 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.

89
Investigação Operacional

Assim, pode-se dizer de que a análise de sensibilidade tem como primeiro objec-
tivo verificar a validade da solução obtida para um determinado modelo quando
submetida a variações nos recursos ou nos coeficientes do modelo original. Em se-
gundo 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

om
exemplo 3.3 e apresentemos apenas as tabelas inicial e terminal do problema primal.

maximizar Z = 5x1 + 6x2


l.c
 ai

 1x1 + 2x2 ≤ 14
gm



1x1 + 1x2 ≤ 9


sujeito à
@



 7x1 + 4x2 ≤ 56

o8


x1 , x2 ≥ 0


et

Tabela 4.1: Tabela simplex inicial e terminal para ilustrar as propriedades usadas
ub

na análise de sensibilidade
um

(a) Tabela inicial (b) Tabela terminal


m

Base x1 x2 x3 x4 x5 Bi Base x1 x2 x3 x4 x5 Bi

x3 1 2 1 0 0 14 x2 0 1 1 -1 0 5

x4 1 1 0 1 0 9 x1 1 0 -1 2 0 4

x5 7 4 0 0 1 56 x5 0 0 3 -10 1 8

Z -5 -6 0 0 0 0 Z 0 0 1 4 0 50

Propriedade 1. Em qualquer iteração do método simplex, no primal ou dual, a


matriz que aparece sob as variáveis básicas usadas na solução inicial (variáveis de

Mulenga 90 acm@2020
Investigação Operacional

folga x3 , x4 , x5 ), pode ser usada para gerar as contribuições unitárias para o valor
da função objectivo (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 objectivo correspondentes


às variáveis básicas na actual iteração e escrevê-los num vector linha, na mesma or-
dem das linhas da tabela simplex terminal. Neste caso, na tabela terminal 4.1(b) as
variáveis básicas são: x2 , x1 , x5 cujos coeficientes da função objectivo 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 4.1(b) sob
gm
as 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) + 0 × 3 = 1
6 × (−1) + 5 × 2 + 0 × (−10) = 4
6×0+5×0+0×1=0

Passo 3: A função objectivo da Tabela 4.1(a) é Z = 6x1 + 5x2 + 0x3 + 0x4 + 0x5 e
da Tabela 4.1(b) é Z = 0x1 + 0x2 + 1x3 + 4x4 + 0x5 .

Mulenga 91 acm@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.

om
Propriedade 2. Em qualquer iteração do primal ou dual os valores das variáveis

l.c
na base podem ser obtidos pela multiplicação da matriz fundamental definida na
propriedade 1, pelo vector coluna contendo os valores originais dos recursos.
ai
gm

Da Tabela 4.1(b), os valores das variáveis básicas são:


@

       
x 1 −1 0 14 5
 2 
o8

    
x1  = −1 0 ×  9  = 4
       
2
et

       
x5 3 −10 1 56 8
ub

Atenção, o produto da matriz pelo vector coluna foi efectuado da seguinte forma:
um

Para x2 = 1 × 14 − 1 × 9 + 0 × 56 = 5
Para x1 = −1 × 14 + 2 × 9 + 0 × 56 = 4
m

Para x5 = 3 × 14 − 10 × 9 + 1 × 56 = 8
⇒ O que confirma os resultados obtidos na iteração final, Tabela 4.1(b).

Propriedade 3. Em qualquer iteração do primal ou dual, os coeficientes de qual-


quer 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 92 acm@2020
Investigação Operacional

   
a 1
 13   
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
       

om
a33 3 −10 1 0 3

l.c
Propriedade 4. Em qualquer iteração do método simplex, a substituição das
ai
variáveis duais pelos respectivos multiplicadores do simplex, relativos a variáveis
gm
básicas da solução inicial, permite obter os coeficientes da equação Z transformada,
pela diferença entre o primeiro membro e segundo das restrições correspondentes do
@

dual.
o8
et

Para ilustração da propriedade, tomemos o mesmo exemplo, na 2a iteração do pro-


ub

blema primal (tabela 3), temos os seguintes multiplicadores simplex relativos as


variáveis básicas na solução inicial.
um

Para a variável x3 : ∆3 = 1 corresponde à variável dual y1


m

Para a variável x4 : ∆4 = 4 corresponde à variável dual y2


Para a variável x5 : ∆5 = 0 corresponde à variável dual y3

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 pe-


los correspondentes multiplicadores simplex, isto é: y1 por ∆3 , y2 por ∆4 , y3 por ∆5

Mulenga 93 acm@2020
Investigação Operacional

e fazer diferença entre o primeiro e segundo membro da inequação.

Para x1 , ∆1 = 1 × 1 + 1 × 4 + 7 × 0–5 = 0
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 simplex 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

om
é viável, o que leva a concluir que:

• Enquanto o primal não for óptimo, o dual será não viável.

l.c
ai
• As restrições do dual, correspondentes às variáveis básicas, são satisfeitas como
gm
equações, o que significa que a respectiva variável de excesso é nula.

• O problema primal começa com uma solução viável não óptima que deve ser op-
@

timizada, enquanto o dual começa com uma solução inviável com valor superior
o8

ao óptimo e continua não viável até que a solução óptima seja atingida
et
ub

4.1.2 Método simplex dual - simplex


um

Até agora, nos problemas de programação linear que consideramos era obrigatório
que todos os elementos do lado direito da tabela simplex fossem positivos. Isto signi-
m

fica que todas as soluções eram viáveis. Pela propriedade 2, o vector coluna resultante
do produto matricial, pode ter valores negativos tornando a solução não viável.

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ém da dualidade, constitui uma al-
ternativa 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á apresen-
tadas 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

Mulenga 94 acm@2020
Investigação Operacional

≥, 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.

Régra 1. A linha pivô corresponde a linha da variável básica com o menor va-
lor negativo nos recursos. lp = min{−bj }.

Régra 2. A coluna pivô é escolhida entre as variáveis fora da base, dividindo os


coeficientes negativos da função
  objectivo pelos correspondentes coeficientes negati-
cj

om
vos da linha pivô. cp = min para aij < 0.
aij

l.c
Elemento pivô é o elemento −aij que tem o menor valor entre os quocientes encon-
ai
trados, Ele está no cruzamento entre a linha pivô e a coluna pivô, por isso, ecrevemos:
gm
ep = lp × cp
@

Se todas as variáveis básicas tiverem valores positivos nos recursos e os valores da


o8

linha Z transformada apresentar valores que satisfazem a condição de solução óptima,


isto é: ∀cj ≥ 0 para maximização ou ∀cj ≤ 0 para os problemas de minimização, foi
et

atingida a solução óptima, caso contrário, continuam as iterações.


ub
um

Exemplo 4.1. Usando o método simplex dual - simplex resolva o seguinte pro-
blema de programação linear.
m

minimizar W = 2x1 + 3x2


 4x + 8x2 ≥ 32
 1


sujeito à 3x1 + 6x2 ≥ 36


 x ,x ≥ 0

1 2

Resolução
Vamos multiplicar por (-1) cada linha ou restrição

Mulenga 95 acm@2020
Investigação Operacional

maximizar W = 2x1 + 3x2




 −4x1 − 8x2 ≤ −32

sujeito à −3x1 − 6x2 ≤ −36


 x ,x ≥ 0

1 2

Tabela 1

Base x1 x2 x3 x4 B

om
x3 -4 -8 1 0 -32 (-32)
x4 -3 -6 0 1 -36 (-36) J

W -2 -3 0 0 0
l.c
ai
gm
(2/3) (3/6)N - - -

Tabela 2
@
o8

Base x1 x2 x3 x4 B
et

x3 0 0 1 -4/3 16
ub

x2 1/2 1 0 -1/6 6
um

W -1/2 0 0 -1/2 18
m

Solução X = (0,6,16, 0); Wmin = 18

Observações
1. Repare que introduzimos variáveis de folga para resolvermos porque temos res-
trições da forma menor ou igual.
2. Nos problemas de maximização a tabela terminal tinha na linha z todos valores
não negativos. Para os problemas de minimização a solução é atingida se na linha z
não temos valores positivos.

Mulenga 96 acm@2020
Investigação Operacional

Exemplo 4.2. Usando o método simplex dual - simplex resolva o seguinte pro-
blema de programação linear.

minimizar  W = 2x1 + 3x2




 2x1 + 1x2 ≤ 20


2x1 + 1x2 ≥ 10


sujeito à


 1x1 + 2x2 ≥ 8


x1 , x2 ≥ 0

om
Resolução

l.c
Vamos multiplicar por (-1) cada restrição da forma ≥.
minimizar  W = 2x1 + 3x2
ai
gm


 2x1 + 1x2 ≤ 20


 −2x − 1x ≤ −10

1 2
@

sujeito à
 −1x1 − 2x2 ≤ −8

o8




x ,x ≥ 0


1 2
et
ub

Tabela 1
um

Base x1 x2 x3 x4 x5 B

x3 2 1 1 0 0 20 (+)
m

x4 -2 -1 0 1 0 -10 (-10) J
x5 -1 -2 0 0 1 -8 (-8)

W -2 -3 0 0 0 0

(1)N (3) - - - -

Mulenga 97 acm@2020
Investigação Operacional

Tabela 2

Base x1 x2 x3 x4 x5 B

x3 0 0 1 -1 0 10 (+)
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

om
- (1.3)N - (2) - -

l.c
Tabela 3 ai
Base x1 x2 x3 x4 x5 B
gm

x3 0 0 1 -1 0 10
@

x1 1 0 0 -2/3 1/3 4
o8

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

W 0 0 0 -1/3 -4/3 14
ub
um

Solução X = (4, 2, 10, 0, 0); Wmin = 14


m

Exemplo 4.3. Usando o método simplex dual - simplex resolva o seguinte problema
de programação linear.

minimizar  W = 3x1 + 3x2




 3x1 + 3x2 ≥ 5


4x1 + 3x2 ≥ 10


sujeito à


 2x1 + 1x2 ≥ 12


x1 , x2 ≥ 0

Mulenga 98 acm@2020
Investigação Operacional

Resolução
minimizar  W = 3x1 + 3x2


 −3x1 − 3x2 ≤ −5


 −4x − 3x ≤ −10

1 2
sujeito à


 −2x1 − 1x2 ≤ −12


x ,x ≥ 0


1 2

Tabela 1

om
Base x1 x2 x3 x4 x5 B

l.c
x3 -3 -3 1 0 0 -5 (-5)
x4 -4 -3 0 1 0 -10
ai
(-10)
gm
x5 -2 -1 0 0 1 -12 (-12)J
@

W -3 -3 0 0 0 0
o8

(1.5)N (3) - - - -
et
ub

Tabela 2
um

Base x1 x2 x3 x4 x5 B

x3 0 -3/2 1 0 -3/2 13
m

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

W 0 -3/2 0 0 -3/2 18

Solução X = (6, 0, 13, 14, 0); Wmin = 18.

Mulenga 99 acm@2020
Investigação Operacional

4.2 Variação nas quantidades dos recursos


Nos problemas de programação linear, os recursos dizem respeito à quatidades que as
empresas 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

om
do exemplo 3.3 do cápitulo 3.

maximizar Z = 5x1 + 6x2


l.c
 ai
 1x1 + 1x2 ≤ 14
gm




1x1 + 2x2 ≤ 9


sujeito à
@



 7x1 + 4x2 ≤ 56

o8


x1 , x2 ≥ 0


et

Tabela 4.2: Variação das quantidades dos recursos


ub

(a) Tabela inicial (b) Tabela terminal


um

Base x1 x2 x3 x4 x5 Bi Base x1 x2 x3 x4 x5 Bi
m

x3 1 2 1 0 0 14 x2 0 1 1 -1 0 5

x4 1 1 0 1 0 9 x1 1 0 -1 2 0 4

x5 7 4 0 0 1 56 x5 0 0 3 -10 1 8

Z -5 -6 0 0 0 0 Z 0 0 1 4 0 50

Solução X = (4, 5, 0, 0, 8); Zmax = 50

Mulenga 100 acm@2020


Investigação Operacional

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, depois da mundança os novos valores das variáveis


básicas são dados pelo produto:
      
x 1 −1 0 16 7
 2      
x1  = −1 0 ×  9  =  2 
       
2
       
x5 3 −10 1 56 14

om
l.c
O valor da função objectivo depois deste produto é Z = 5 × 2 + 6 × 7 = 52, subs-
ai
tituindo o vector coluna e o valor de Z na Tabela 4.2(b), obtemos uma nova tabela
gm
terminal.
@

Base x1 x2 x3 x4 x5 Bi
o8

x2 0 1 1 -1 0 7
et

x1 1 0 -1 2 0 2
ub

x5 0 0 3 -10 1 14
um

Z 0 0 1 4 0 52
m

Desta tabela, como todos os valores dos recursos são positivos, a solução actual é
viável e óptima. Assim, X = (2, 7, 0, 0, 14) com Zmax = 52, o que significa que a
variação de b1 de 14 para 16 trouxe um aumento no lúcro de ∆z = 52–50 = +2 u.m.

b) Assumindo que quando aumenta a quantidade de recurso a comprar também au-


mentamos em termos de lúcro final para a instituição, vamos variar agora de b1 = 14
para 20. E calculemos a nova solução pelo mesmo procedimento.

Mulenga 101 acm@2020


Investigação Operacional

      
x 1 −1 0 20 11
 2      
x1  = −1 0 ×  9  = −2
       
2
       
x5 3 −10 1 56 26

O valor da função objectivo depois deste produto é Z = 5 × (−2) + 6 × 11 = 56,


substituindo o vector coluna e o valor de Z na tabela terminal 4.2(b) temos:
Tabela 1

om
Base x1 x2 x3 x4 x5 Bi

l.c
x2 0 1 1 -1 0 11 ai
x1 1 0 -1 2 0 -2
gm
x5 0 0 3 -10 1 26
@

Z 0 0 1 4 0 56
o8
et

Como x1 é negativo, esta solução não é viável, quer dizer nova iteração deve ser
ub

feita para retirar x1 da base. Por isso, recorre-se ao método simplex dual-simplex da
subsecção 4.1.2, e x3 entra na base.
um

Tabela 2
m

Base x1 x2 x3 x4 x5 Bi

x2 1 1 0 1 0 9
x3 -1 0 1 -2 0 2
x5 3 0 0 -4 1 20

Z 1 0 0 6 0 54

Solução X = (0, 9, 2, 0, 20) com Zmax = 54, a variação é ∆z = 54 − 50 = +4 u.m.

Mulenga 102 acm@2020


Investigação Operacional

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 pro-


duzir x1 , o que significa que deixou de satisfazer os potenciais clientes deste produto.

om
Também observar que a produção de 9 u.m. de x2 precisa mão-de-obra superior
da que se tinha antes. A quantidade de recurso 3 não utilizado aumentou consi-

l.c
derávelmente passando para 20 e ainda 2 unidades do recurso 1.
ai
Resumindo esta situação não é desejosa nem para os clientes nem para a empresa.
gm

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
o8

um equilibrio entre o interesse da organização e a satisfação dos clientes. O cálculo


et

do intervalo óptimo de oscilação dos recursos dá os limiares máximo e mı́nimo de


ub

recursos a adquirir sem mudança das variáveis de base.


um

Intervalo óptimo de variação dos recursos


m

Para se obter os intervalos de oscilação dos recursos podem se usar os limites:

∆+ = limite superior é igual ao menor quociente absoluto entre o valor do re-


curso 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).
 
+
bi
∆ = min|raz− negativas| = min para aij < 0 (4.1)
aij

Mulenga 103 acm@2020


Investigação Operacional

∆− = limite inferior é igual ao menor quociente absoluto entre os recursos na ta-


bela terminal e os coeficientes positivos da variável associada ao recurso bi (razões
positivas).
 

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

om
exemplo 4.4, e da Tabela 4.2(b).

l.c
a) b1 está associado a x3 = 14 na tabela inicial, logo vamos usar a coluna de x3
ai
na tabela terminal.
gm

+
4 −
5 8 8
∆ = min = 4 ↑; ∆ = min ; = ↓
−1 1 3 3
@

8 34
o8

O intervalo é 14 − ≤ b1 ≤ 14 + 4, logo ≤ b1 ≤ 18
3 3
et

b) b2 está associado a x4 = 9 na tabela inicial, logo vamos usar a coluna de x4


ub

na tabela terminal.
um


+
5 8 4 −
4
∆ = min ;
= ↑; ∆ = min = 2 ↓
−1 −10 5 2
m

4
O intervalor é 9 − 2 ≤ b2 ≤ 9 + , logo 7 ≤ b2 ≤ 9.8
5

d) b3 está associado a x5 = 56 na tabela inicial, logo deve-se usar a coluna de x5


na tabela terminal.
+ −
8
∆ = min |@| = +∞ ↑; ∆ = min = 8 ↓
1

O intervalor é 56 − 8 ≤ b3 ≤ 56 + ∞ , logo 48 ≤ b3 < ∞

Mulenga 104 acm@2020


Investigação Operacional

Exemplo 4.6. A solução óptima para o problema de programação linear seguinte

maximizar Z = 20x1 + 25x2


 2x1 + 3x2 ≤ 10




 2x + 3x ≤ 10

1 2
sujeito à


 1x1 + 2x2 ≤ 10


 x ,x ≥ 0

1 2

om
é dada no quadro abaixo onde x3 , x4 e x5 são variáveis de folga.

l.c
Base x1 x2 x3 x4 x5 Bi

x1 1 3/2 1/2 0 0 5
ai
gm
x4 0 0 -1 1 0 0
x5 0 1/2 -1/2 0 1 5
@
o8

Z 0 5 10 0 0 100
et
ub

a) Apresente a solução actual do problema.


b) Calcule o intervalo óptimo de oscilação do recurso 1, b1 = 10.
um

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

Resolução
a) Solução X = (5, 0,0,0,5) ; Zmax = 100

b) Para b1 = 10, deve-se usar a coluna de x3 na tabela terminal.



+
5 0 −
5
∆ = min
; =0↑; ∆ = min
= 10 ↓;
−1/2 −1 1/2

o intervalo de oscilação é: 0 ≤ b1 ≤ 10

Mulenga 105 acm@2020


Investigação Operacional

b) Variação dos recursos, vamos usar a propriedade 2.


       
x 1/2 0 0 20 10
 1      
x4  =  −1 1 0 × 16 = −4
       
       
x5 −1/2 0 1 12 2

Substituindo na função objectivo 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,

om
vamos usar o método simplex dual - simplex para encontrar a nova tabela terminal.

l.c
Tabela 1

Base x1 x2 x3 x4 x5 Bi
ai
gm

x1 1 3/2 1/2 0 0 10 (+)


@

x4 0 0 -1 1 0 -4 J
o8

x5 0 1/2 -1/2 0 1 2 (+)


et

Z 0 5 10 0 0 200
ub

Tabela 2
um

Base x1 x2 x3 x4 x5 Bi
m

x1 1 3/2 0 1/2 0 8
x3 0 0 1 -1 0 4
x5 0 1/2 0 -1/2 1 4

Z 0 5 10 0 0 160

A nova solução é X = (8, 0, 4, 0, 4); Zmax = 160; ∆z = 160–100 = 60.

Por consequência da variação dos recursos houve um aumento no rendimento to-

Mulenga 106 acm@2020


Investigação Operacional

tal em 60 unidades de medida.

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 objectivo, principalmente
quando a mudança dos preços ocorre para uma variável que está na base. A análise de
sensibilidade deve ser feita para saber o efeito destas mudanças para a solução óptima.

om
Exemplo 4.7. Usando o exemplo 4.4, com as tabela inicial e terminal reprodu-

l.c
zidas na Tabela 4.3, vamos supor que o coeficiente de x2 tenha sido alterado de 6
ai
para 4. Qual é o efeito desta mudança?
gm
Tabela 4.3: Variação dos coeficientes da função objectivo
@

(a) Tabela inicial (b) Tabela terminal


o8

Base x1 x2 x3 x4 x5 Bi Base x1 x2 x3 x4 x5 Bi
et

x2 0 1 1 -1 0 5
ub

x3 1 2 1 0 0 14
x4 1 1 0 1 0 9 x1 1 0 -1 2 0 4
um

x5 7 4 0 0 1 56 x5 0 0 3 -10 1 8
m

Z -5 -6 0 0 0 0 Z 0 0 1 4 0 50

Resolução
A nova função objectivo depois da madança será Z = 5x1 + 4x2 + 0x3 + 0x4 + 0x4 e 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:

Mulenga 107 acm@2020


Investigação Operacional

 
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 , x4 e x5 na Tabela 4.3(b)


são: ∆3 = −1–0 = −1, ∆4 = 6–0 = 6 e ∆5 = 0 − 0 = 0.
Como ∆3 < 0, isto significa que a solução actual não continua óptima e deve – se in-
troduzir x3 na base. Para isso, o novo valor da função objectivo é calculado tomando

om
em consideração a nova função objectivo. Z = 5 × 4 + 4 × 5 = 40.

l.c
Tabela 1
ai
Base x1 x2 x3 x4 x5 Bi
gm

x2 0 1 1 -1 0 5 (5)
@

x1 1 0 -1 2 0 4 (-)
o8

x5 0 0 3 -10 1 8 (8/3)
et

Z 0 0 -1 6 0 40
ub

Tabela 2
um

Base x1 x2 x3 x4 x5 Bi
m

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

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

Mulenga 108 acm@2020


Investigação Operacional

em ∆z = 128/3–50 = −22/3, aproximadamente 7 unidades de medida.

Observação
Como as variáveis de decisão não pertençam à solução básica inicial, que geralmente
é formada pelas variáveis de folga, deve-se aplicar a propriedade 4 para calcular os
multiplicadores simplex para estas variáveis.

Intervalo de variação dos coeficientes da função objectivo


O intervalo óptimo de oscilação dos coeficientes da função objectivo pode ser obtido

om
pelo procedimento usando para os recursos na secção 4.2, mas agora os quocientes
serão entre os valores dos multiplicadores simplex e da linha da variável que está na
base, como está explicado a seguir.
l.c
ai
gm
∆+ = limite superior é igual ao menor quociente absoluto entre os multiplica-
dores 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

 
cj
et

+
∆ = min|raz− positivas| = min para aij < 0 (4.3)
aij
ub

∆− = limite inferior é igual ao menor quociente absoluto entre os multiplicadores


um

simplex da tabela terminal e os coeficientes positivos das variáveis não básicas da


m

linha correspondente à 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.7, encontrar os intervalos óptimos de oscilação


dos coeficientes das variáveis básicas x1 , x2 e x5 na Tabela 4.3(b).

Mulenga 109 acm@2020


Investigação Operacional

Tabela 4.3(b)

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

om
Resolução
Na função objectivo Z = 5x1 + 6x2 + 0x3 + 0x4 + 0x5 , nos interessam apenas os

l.c
coeficientes das variáveis básicas na tabela terminal, portanto c1 = 5, c2 = 6 e c5 = 0
ai
gm
a) c1 = 5, é o coeficiente
de x1 que está
na linha 2 na tabela terminal.
1 4
∆+ = min = 1 ↑; ∆− = min = 2 ↓; intervalo 3 ≤ c1 ≤ 6

@

−1 2
o8

b) c2 = 6 é o coeficiente de x2 corresponde a linha 1 na tabela terminal.


et


4 1
ub

+ −
∆ = min = 4 ↑; ∆ = min = 1 ↓; intervalo 5 ≤ c2 ≤ 10
−1 1
um

c) c5 = 0 é o coeficiente de x5 corresponde a linha 3 na tabela terminal.


m


+
4 2 −
1 1 1 2
∆ = min
= ↑; ∆ = min = ↓; intervalo − ≤ c5 ≤
−10 5 3 3 3 5

Observação
Para as variáveis de decisão a interpretação dos intervalos não é problema, entretanto,
para a variável de folga x5 é 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 110 acm@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
l.c
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
ai
de sensibilidade, essas variações podem fazer com que a actual solução deixe de ser
gm
ó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.
@
o8

b) Variações nos coeficientes das actividades das variáveis fora da base


et
ub

As alterações nos coeficientes das variáveis fora da base poderão modificar a solução
óptima, pois, a variável alterada poderá vir a se tornar básica. Assim, uma nova
um

verificação de que o problema está optimizado é necessária e deve ser realizada.


m

Exemplo 4.9. Dado o seguinte problema de programação linear.

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

Mulenga 111 acm@2020


Investigação Operacional

a = (1 2)T para a = (1 1)T , qual será o efeito desta mudança na solução óptima
do 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

om
Z -4 -6 -1 0 0 -

l.c
Tabela 2
Base x1 x2 x3 x4 x5 Bi
ai
gm
x4 4 0 0 1 -1/2 8 (2) J
@

x2 1/2 1 1/4 0 1/8 4 (8)


o8

Z -1 0 1/2 0 3/4 24
et

Tabela 3
ub

Base x1 x2 x3 x4 x5 Bi
um

x1 1 0 0 1/4 -1/8 2
m

x2 0 1 1/4 -1/8 3/16 3

Z 0 0 1/2 1/4 5/8 26

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

Mulenga 112 acm@2020


Investigação Operacional

Da propriedade 3, os valores do vector a = (a13 a23 )T são obtidos pelo produto.


   
   
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
1 5
duais pelos multiplicadores simplex ∆4 = e ∆5 = , tem-se:
4 8
1 5 1

om
∆3 = 1 × ∆4 + 1 × ∆5 –1 = 1 × + 1 × –1 = − < 0
4 8 8

l.c
Como ∆3 é negativo, significa que a solução anterior já não continua óptima, as-
ai
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.
gm
@

Tabela 1
o8

Base x1 x2 x3 x4 x5 Bi
et

x1 1 0 1/8 1/4 -1/8 2 (16)J


ub

x2 0 1 1/16 -1/8 3/16 3 (48)


um

Z 0 0 -1/8 1/4 5/8 26


m

Tabela 2

Base x1 x2 x3 x4 x5 Bi

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

Mulenga 113 acm@2020


Investigação Operacional

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. Note que
o produto x3 tem menor contribuição marginal na função objectivo, mas, como ele
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

om
Este caso pode ser considerado como variações simultâneas nos coeficientes da função
objectivo e nos coeficientes do vector actividade correspondente à nova variável, que

l.c
não é básica. Pois, no problema inicial a nova variável é considerada como se tivesse
ai
coeficientes iguais a zero. Em termos de significado empresarial, a adição de uma
gm
variável significa, uma introdução de um novo produto que vai partilhar os recuros
já existentes em quantidades diferentes como resultado da extensão ou variante da
@

gama de produtos a oferecer aos clientes.


o8

Exemplo 4.10. Analisar o exemplo 4.9, introduzindo agora uma nova variável x4
et

no modelo apresentado na Tabela 4.4, com as especificações c4 = 3 e a = (2 2)T .


ub
um

Tabela 4.4: Análise da adição de uma variável no modelo


m

max  Z = 4x1 + 6x2 + 1x3 Base x1 x2 x3 x4 x5 Bi


 6x + 4x2 + 1x3 ≤ 24 x1 1 0 0 1/4 -1/8 2
 1


suj. à 4x1 + 8x2 + 2x3 ≤ 32 x2 0 1 1/4 -1/8 3/16 3


x1 , x2 , x3 ≥ 0


Z 0 0 1/2 1/4 5/8 26

Resolução
Tratando-se de uma variável de decisão, para fazer o teste de optimidade da solução,
precisamos aplicar a propriedade 3 e a propriedade 4 como foi explicado na secção 4.4.

Mulenga 114 acm@2020


Investigação Operacional

Da propriedade 3, calcular os valores de (a14 a24 )T partindo dos dados da tabela


terminal 4.4.
   
   
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, os multiplicadores simplex do pro-


1 5
blema primal depois da introdução da variável x4 no modelo são ∆5 = e ∆6 = .
4 8

om
1 5 5
Finalmente, 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.

l.c
Tabela 1
ai
gm
Base x1 x2 x3 x4 x5 x6 Bi
@

x1 1 0 0 1/4 1/4 -1/8 2 (8)J


o8

x2 0 1 1/4 1/8 -1/8 3/16 3 (24)


et

Z 0 0 1/2 -5/4 1/4 5/8 26


ub
um

Tabela 2
Base x1 x2 x3 x4 x5 x6 Bi
m

x1 4 0 0 1 1 -1/2 8
x2 -1/2 1 1/4 0 -1/4 1/4 2

Z 5 0 1/2 0 3/2 0 36

Nova solução
X = (0, 2, 0, 8, 0, 0) com Zmax = 36. O que significa de que a introdução da variável
x4 com o coeficiente 3 na função objectivo e 2 nas restrições aumenta o rendimento
em ∆z = 36–26 = 10 unidades de medida.

Mulenga 115 acm@2020


Investigação Operacional

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 redundante. 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 com-
posição dos produtos, de certa forma modifica o teor, a forma ou o sabor do produto
acabado. Consequentemente influencia no 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 comportamento dos clientes perante os produtos mudou ou não.

om
O procedimento para a análise tem sido o seguinte:

l.c
• Testar se a nova restrição é satisfeita para a actual solução. Em caso afirmativo,
a nova restrição diz-se redundante e não é necessário fazer mais iterações.
ai
gm
• 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.
@
o8

Exemplo 4.11. Considere o exemplo 4.9, e analise a viabilidade da actual solução


et

óptima depois de introduzir a restrição 3: 2x1 + 8x2 + 1x3 ≤ 24.


ub

Note que, analisar neste caso entende-se por:


a) Verificar se a nova restrição é redundante ou não.
um

b) Se não for, introduzir a restrição na tabela terminal do exemplo 4.10 e realizar


iterações até encontrar a nova solução.
m

Resolução
O novo modelo com a terceira restrição é

maximizar Z = 4x1 + 6x2 + 1x3




 6x1 + 4x2 + 1x3 ≤ 24


 4x + 8x + 2x ≤ 32

1 2 3
sujeito à


 2x1 + 8x3 + 1x3 ≤ 24


x ,x ,x ≥ 0


1 2 3

Mulenga 116 acm@2020


Investigação Operacional

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

b) A varificação da restrição 3, indica de que a solução anterior já não é viável e


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.

om
Tabela 1

l.c
Base x1 x2 x3 x4 x5 x6 Bi ai
x∗1 1 0 0 1/4 -1/8 0 2
gm

x∗2 0 1 1/4 -1/8 3/16 0 3


@

x6 2 8 1 0 0 1 24
o8

Z 0 0 1/2 1/4 5/8 0 26


et
ub

As variáveis x1 e x2 nem deveriam ficar na base, mas, como estão na base seus co-
um

eficientes na nova restrição devem ser zeros, por isso, que tomamos as suas posições
como pivô para que fiquem na base efectivamente.
m

Tabela 2

Base x1 x2 x3 x4 x5 x6 Bi

x1 1 0 0 1/4 -1/8 0 2
x∗2 0 1 1/4 -1/8 3/16 0 3
x6 0 8 1 -1/2 1/4 1 20

Z 0 0 1/2 1/4 5/8 0 26

Mulenga 117 acm@2020


Investigação Operacional

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

om
Tabela 4

Base x1 x2 x3 x4 x5 x6 Bi

x1 1 0 0 1/4 -1/8 0 2
l.c
ai
gm
x2 0 1 0 0 1/8 1/4 2
x3 0 0 1 -1/2 5/4 -1 4
@
o8

Z 0 0 0 1/2 0 1/2 24
et

Nova solução
ub

X = (2, 2, 4, 0, 0, 0) com Zmax = 24.


um

A introdução da restrição 3, com os coeficientes 2, 8 ,1 e o valor do recurso 24,


m

reduz o rendimento em ∆z = 24–26 = −2 unidades de medida.

Mulenga 118 acm@2020


Investigação Operacional

4.7 Exercı́cios propostos


Exercı́cio 4.1. Usando o método simplex dual - simplex resolva os problemas de
programação linear.

minimizar minimizar W = 5x1 + 2x2


 W = 2x1 + 3x2
 1x − 1x2 ≥ 3

 1x1 + 1x2 ≥ 5
 1

 


 6x + 3x ≥ 18

a) sujeito à 2x1 + 3x2 ≥ 4 b) sujeito à
1 2

2x1 + 3x2 ≥ 12
 
 x ,x ≥ 0
 
1 2


om
x ,x ≥ 0


1 2

Resposta: Resposta:

l.c
X = (3, 0, 0, 2); Wmin = 6 X = (0, 6, 1, 0, 6); Wmin = 12
ai
gm
minimizar  W = 30x1 + 40x2 minimizar W = 4x1 + 5x2
2x1 + 2x2 ≥ 6  3x1 + 3x2 ≥ 6
@


 


 

  4x + 2x ≥ 10

1x1 + 2x2 ≥ 4

o8

1 2

c) sujeito à d) sujeito à
1x1 + 5x2 ≥ 5
 2x1 + 1x2 ≥ 3
et


 


 


x ,x ≥ 0

x1 , x2 ≥ 0
 
ub

1 2

um

Resposta: Resposta:
 
5 3
X = (2, 1, 0, 0, 2); Wmin = 100 X= , 0, , 0, 2 ; Wmin = 10
m

2 2

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

maximizar  Z = 20x1 + 30x2




 2x1 + 3x2 ≤ 10


1x1 + 3x2 ≤ 12


sujeito à


 1x1 + 2x2 ≤ 6


x1 , x2 ≥ 0

Mulenga 119 acm@2020


Investigação Operacional

a) Resolva o problema e apresente a solução óptima.


Resposta: X= (2, 2, 0, 4, 0); Zmax = 100.
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.
Resposta: X= (5, 0, 0, 7, 0); Zmax = 100, ∆z = 100 − 100 = 0.
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.
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

om
Exercı́cio 4.3. Dado o problema de programação seguinte.

l.c
maximizar  Z = 2x1 + 1x2
ai
0x1 + 3x2 ≤ 6
gm





4x1 + 1x2 ≤ 8


sujeito à
@


 1x1 + 0x2 ≤ 3
o8




x1 , x2 ≥ 0


et

a) Resolva o problema e apresentente a solução óptima.


ub

Resposta: X = (3/2, 2, 0, 0, 3/2) com Zmax = 5.


um

b) Se o recurso b1 = 6 for mudado para 4, qual será o efeito desta mudança na solução
óptima do problema.
m

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.
Resposta: 0 ≤ b1 ≤ 24, 2 ≤ b2 ≤ 14, 3/2 ≤ b3 < ∞.

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

maximizar Z = 30x1 + 40x2

Mulenga 120 acm@2020


Investigação Operacional




 2x1 + 1x2 ≤ 10


 1x + 1x ≤ 7

1 2
sujeito à


 1x1 + 2x2 ≤ 12


 x ,x ≥ 0

1 2

a) Resolva o problema e apresentente a solução óptima.


Resposta: X = (2, 5, 1, 0, 0) com Zmax = 260.
b) Se o coeficente c1 na função objectivo aumentar de 30 para 50, qual será o efeito

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

l.c
c) Encontre os intervalos óptimos de oscilação dos coeficientes de x1 e x2 na função
ai
objectivo.
gm
Resposta: 20 ≤ c1 ≤ 40, 30 ≤ c2 ≤ 60.
@

Exercı́cio 4.5. Dada a tabela terminal do problema de programação linear.


o8

3 Base x1 x2 x3 x4 x5 Bi
et

maximizar Z = 1x1 + x2
 2
ub


 2x1 + 2x2 ≤ 160 x1 1 0 1 -1 0 40



x2 0 1 -1/2 1 0 40
um

1x1 + 2x2 ≤ 120




sujeito à

 4x1 + 2x2 ≤ 280 x5 0 0 -3 2 1 40
m




x1 , x2 ≥ 0

Z 0 0 1/4 1/2 0 100

A solução óptima do problema é: X = (40, 40, 0, 0, 40) com Zmax = 100.
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 = 90 − 100 = −10 u.m.
b) Se o mesmo recurso aumetar para b2 = 200, qual será o efeito.
Resposta: X = (0, 80, 0, 40, 120) com Zmax = 120 e ∆z = 120 − 100 = 20 u.m.
c) Se o coeficiente da função objectivo mudar de 3/2 par 2, qual será o efeito sobre
a solução do problema.

Mulenga 121 acm@2020


Investigação Operacional

Resposta: X = (40, 40,0, 0, 40), Zmax = 120 e ∆z = 20 u.m.


d) Encontre os intervalos óptimos tanto dos recursos como dos coeficientes da função
objectivo das variáveis de decisão que estão na base.
3 3 520
Resposta: ≤ c1 ≤ , 1 ≤ c2 ≤ 2, 120 ≤ b1 ≤ , 100 ≤ b2 ≤ 160.
4 2 3

Exercı́cio 4.6. Dada a tabela terminal do problema de programação linear.

maximizar Z = 8x1 + 6x2 Base x1 x2 x3 x4 x5 Bi




 2x1 + 3x2 ≤ 30 x1 1 a12 1/2 0 0 b1

om



1x1 + 2x2 ≤ 24

x4 0 a22 -1/2 1 0 b2

sujeito à

l.c


 1x1 + 2x2 ≤ 18 x5 0 a32 -1/2 0 1 b3



 x1 , x2 ≥ 0
Z
ai
0 c2 4 0 0 Z∗
gm
@

a) Usando as propriedades da análise de sensibilidade complete a tabela, colocando


o8

os valores para as colunas de x2 e dos recursos Bi .


 T
3 1 1
, Bi = (15 9 3)T , ∆2 = 6 e Zmax = 120.
et

Resposta: ai2 =
2 2 2
ub

b) Se o lúcro marginal relativo a variável x1 alterar de 8 para 10, qual será a nova
solução do problema.
um

Resposta: X = (15, 0, 0, 9, 3) com Zmax = 150, ∆z = 150 − 120 = 30 u.m.


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


x1 , x2 , x3 , x4 ≥ 0

a) Resolva o problema e apresente a solução óptima.


Resposta: X = (4, 0, 5, 0, 0, 0) com Zmax = 43.

Mulenga 122 acm@2020


Investigação Operacional

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.
c) Verificar o mesmo da alı́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.

Exercı́cio 4.8. Para o seguinte problema de programação linear

maximizar  Z = 10x1 + 5x2

om


 3x1 + 4x2 ≤ 6

l.c
sujeito à 10x1 + 8x2 ≤ 10


x1 , x2 ≥ 0

 ai
gm
a) Usando o método simplex resolva o problema.
Resposta:. X = (1, 0, 3, 0) com Zmax = 10.
@

b) Calcular o interalo optimo de oscilação do recurso b2 = 10.


o8

Resposta: 0 ≤ b2 ≤ 20.
c) Se os coeficientes nas restrições de x2 , mudarem de (4 8)T para (2 5)T , qual
et

será a nova solução do problema.


ub

Resposta:. X = (1, 0, 3, 0) com Zmax = 10 e ∆z = 0.


um

Exercı́cio 4.9. Dado o seguinte problema de programação linear e a respectiva ta-


m

bela terminal.

maximizar Base x1 x2 x3 x4 Bi
 Z = 3x1 + 2x2
 4x + 3x2 ≤ 120
 1 x1 1 3/4 1/4 0 30


sujeito à 1x1 + 3x2 ≤ 60

 x4 0 9/4 -1/4 1 30
 x ,x ≥ 0

1 2
Z 0 1/4 3/4 0 90

Mulenga 123 acm@2020


Investigação Operacional

a) Se os recursos forem alterados de b = (120 60)T para b = (140 40)T determine


a nova solução.
Resposta: X=(35, 0,0, 5), Zmax = 105 com ∆z = 105 − 90 = 15.
b) Se o coeficiente da função objectivo para a variável x1 for alterado de 3 para 5.
Qual será a nova solução do problema.
Resposta: X=(30, 0,0, 30), Zmax = 150, ∆z = 150 − 90 = 60.

Exercı́cio 4.10. Dado o problema de programação linear a a respectiva tabela


terminal.

om
Base x1 x2 x3 x4 x5 B
maximizar  Z = −5x1 + 5x2 + 13x3
 −1x1 + 1x2 + 3x3 ≤ 20

l.c
x2 -1 1 a13 1 0 20



sujeito à 12x1 + 4x2 + 10x3 ≤ 90
x5 16 0 a23 -4 1 10


ai
x1 , x2 , x3 ≥ 0


gm
Z 0 0 c3 5 0 100
@
o8

Onde a = (a13 a23 )T são coeficientes da variável x3 na tabela terminal e c3 é o


multiplicador simplex relativo a esta variável também na tabela terminal.
et

a) Usando as propriedades operacionais da análise de sensibilidade, calcule os valores


ub

para o vector a = (a13 a23 )T e o coeficiente c3 da coluna x3 .


Resposta: a = (3 − 2)T e c3 = 2
um

b) Qual será a nova solução do problema, se os coeficientes de x1 no sistema das


m

restrições forem alterados para a = (0 2)T com c1 = 2 na função objectivo.


Resposta: X = (5, 20, 0, 0, 0) com Zmax = 110 e ∆z = 10.

Mulenga 124 acm@2020


Capı́tulo 5

Programação linear inteira

om
5.1 Introdução
l.c
ai
gm
O termo Programação Inteira (PI), refere-se ao estudo dos problemas de programação
linear nos quais o domı́nio de todas as variáveis do problema é restritamente de valo-
@

res inteiros, portanto, a Programação Linear Inteira (PLI) é um caso particular dos
o8

problemas de programação linear.


et
ub

Por exemplo, se considerarmos modelos lineares de problemas de produção ou trans-


porte de certos artigos onde o produto a ser transportado são garrafas, tubos, au-
um

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
m

fraccionários, i.é, necessariamente teremos que ter quantidades inteiras.

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 li-
near 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 con-
junto 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

125
Investigação Operacional

até encontrar a solução óptima inteira.

Todo o problema de programação linear inteira tem a seguinte estrutura:


X
maximizar Z = ci x i
 X


 aij xi ≤ bi

sujeito à xi ≥ 0, e inteiro


 ou x ∈ Z +

i 0

om
Admite-se que em vez de maximizar possa se usar minimizar e em vez de ≤ possa

l.c
se usar ≥.
ai
Exemplo 5.1. A empresa Coca - Cola de Moçambique, produz dois tipos de re-
gm
fresco: em lata e em garrafa. Cada lata vendida produz um lúcro de 7 unidades de
medida e cada garrafa produz um lúcro de 6 unidades de medida. A descrição das
@

quantidades em termos de matéria-prima necessária e a capacidade máxima diária


o8

estão apresentados na tabela.


et
ub

Tabela 5.1: Exemplo de um problema de programação linear inteira


um

Matéria prima tipos de refresco Disponibilidades


m

em lata em garrafa

Matéria prima 1 2 3 12
Materia prima 2 6 5 30

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,

Mulenga 126 acm@2020


Investigação Operacional

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.

Resolução
a) O modelo matemático do problema é:
maximizar  Z = 7x1 + 6x2
 2x1 + 3x2 ≤ 12



sujeito à 6x1 + 5x2 ≤ 30


 x ∈ Z+

om
i 0

b) Vamos resolver primeiro o problema pelo método gráfico, sem considerar ou igno-

l.c
rando a condição de que x1 e x2 devem ser quantidades inteiras.
ai
gm
r1 : x1 x2 r2 : x1 x2 r z : x1 x2
@

0 4 0 6 0 0
o8

6 0 5 0 1 -7/6
et
ub
um
m

Figura 5.1: Dominio solução de um problema de programação linear inteira

Mulenga 127 acm@2020


Investigação Operacional

Resolvendo o sistema das rectas r1 ∩ r2 , tem-se a solução óptima do problema de


programação linear: x1 = 3.75, x2 = 1.5 com Zmax = 35.25.

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, ver a Figura 5.1.

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 apresen-

om
tado graficamente que o valor máximo inteiro Zm , não será superior ao valor óptimo
da primeira aproximação, isto é: Zm ≤ Zmax .

l.c
Para procurar a solução inteira, deve-se calcular o valor da função objectivo em
ai
cada ponto da região das soluções admissı́veis para os pontos de pares de valores
gm

inteiros.
@
o8

Tabela 5.2: Identificação da solução óptima inteira entre todas possı́veis


et

Pontos p1 p2 p3 p4 p5 p6 p7 p8 p9
ub

x1 0 1 2 3 4 5 0 1 2
um

x2 0 0 0 0 0 0 1 1 1
m

F.O. 0 7 14 21 28 35 6 13 20

Pontos p10 p11 p12 p13 p14 p15 p16 p17 p18

x1 3 4 0 1 2 3 0 1 0
x2 1 1 2 2 2 2 3 3 4

F.O. 27 34 12 19 26 33 18 25 24

Mulenga 128 acm@2020


Investigação Operacional

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 e não pratico para grande parte dos
problemas.

De um modo geral, existem dois métodos básicos que são utilizados para resolver

om
os problemas de programação linear inteira

• Método de Bifurcação e Limite (Branch and Bound Method)

l.c
ai
• Método de Corte de Gomory (Gomory’s Cutting Plane Method)
gm

5.2 Método de bifurcação e limite


@
o8

Os primeiros trabalhos do método de bifurcação e limite (MBL), também conhecido


por “Branch and Bound Method”, foram desenvolvidos por Land e Doig (1960) e
et

melhorados para a presente estrutura por Dakin (1965) no seu livro “A tree search
ub

algorithm for mixed integer programming problems”. Daı́ em diante a estrutura do


um

processo de procura da solução óptima inteira, apresentar-se na forma de uma árvore


com restrições uma depois da outra.
m

Devido a dificuldade de procura da solução para os problemas de PLI, estão até


agora a ser desenvolvidos métodos com vista a encontrar um procedimento padrão.
Entretanto, muitos investigadores e autores, por exemplo Taha (1975) entre outros,
consideram que o método promissor para os problemas de programação linear in-
teira é o método de bifurcação e limite, cujo princı́pio básico consiste em dividir
repetidamente o problema que apresentar solução não inteira em dois subproble-
mas e resolvé-los até encontrar uma solução viável óptima com todos os valores das
variáveis inteiros incluindo o valor da função objectivo.

Mulenga 129 acm@2020


Investigação Operacional

Para a utilização do algoritmo de bifurcação e limite é necessário que sejam sa-


tisfeitas 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.
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 = ∞.

om
Procedimento do método de bifurcação e limite

l.c
Passo 1. Resolver o problema original usando os métodos já conhecidos de pro-
ai
gramação linear. Se a primeira aproximação de solução do problema tiver todos
gm
valores 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.
@
o8

Passo 2. Partindo da solução não inteira, dividir o problema em dois subproblemas


et

com restrições adicionais. Por exemplo, se xi = bi onde bi não é inteiro:


- No subproblema 1 adiciona-se a restrição xi ≤ [bi ]
ub

- No subproblema 2 adiciona-se a restrição xi ≥ [bi ]+1, onde [bi ] é a parte inteira de bi .


um

Passo 3. Resolver os dois novos problemas de programação linear criados pela


m

adição de novas restrições.

Passo 4. Teste das soluções


a) Se a solução do novo problema de programaa̧ão linear não é viável, o processo de
procura da solução inteira termina neste subproblema.

b) Se a solução do novo problema de programação linear é viável, mas, não é in-


teira, guarde a solução no passo 5 para efeitos de comparação.

Mulenga 130 acm@2020


Investigação Operacional

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), desı́gne a este valor novo limite inferior (superior) e passe
para o passo 5. Esta troca dos limites diz-se que Zi (Wi ) foi incumbido e Zi−1
(Wi−1 ) sondado.
- Se este valor é menor (maior) que o limite inferior (superior), termina-se o processo

om
neste subproblema.

l.c
Passo 5. Examine todos os subproblemas e verifique se o limite superior (infe-
rior) é igual ao valor máximo da função objectivo. Se o limite superior (inferior) é
ai
igual ao limite inferior (superior), termine o processo. Caso contrário repita o passo 2.
gm
@

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
o8

de uma nova restrição na análise de sensibilidade. Para que a decisão de sondagem


et

se torne clara pode-se recorrer ao método gráfico.


ub

Observações
um

• Só se bifurca uma variável de cada vez e se acrescenta uma restrição em cada
m

subproblema.

• Quando há mais de uma variável candidata a bifurcação, recomenda-se escolher


a variável que apresentar a parte fraccionária próxima de 0.5 ou que tiver
o 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, i.é, diferentes pares de valores com o mesmo valor da função objec-
tivo.

Mulenga 131 acm@2020


Investigação Operacional

Exemplo 5.2. Resolver o exemplo 5.1 pelo método de bifurcação e limite.

maximizar  Z = 7x1 + 6x2


 2x + 3x2 ≤ 12
 1


sujeito à 6x1 + 5x2 ≤ 30


 x ∈ Z+

i 0

Resolução
A primeira aproximação é: SPL = {x1 = 3.75, x2 = 1.5, Zmax = 35.25}.

om
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

l.c
bifurcar porque tem parte fraccionária próxima ou igual a 0.5, Portanto B.x2 = 1.5.
ai
gm
subproblema 1 subproblema 2
maximizar  Z = 7x1 + 6x2 maximizar  Z = 7x1 + 6x2
@



 2x1 + 3x2 ≤ 12 

 2x1 + 3x2 ≤ 12
 
o8

 
 6x + 5x ≤ 30
  6x + 5x ≤ 30

1 2 1 2
sujeito à sujeito à
et



 x2 ≤ 1 

 x2 ≥ 2
 
ub

 
 x ∈ Z+
  x ∈ Z+

i 0 i 0
um

Para x2 = 1, substituindo nas restrições Para x2 = 2 substituindo nas restrições


m

 
 2x + 3 × 1 = 12  2x + 3 × 2 = 12
1 1
 6x + 5 × 1 = 30  6x + 5 × 2 = 30
1 1

 
 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  x = 3.3 ⇒ nao − viavel
1 1

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

Mulenga 132 acm@2020


Investigação Operacional

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
isso a solução do SP2 é guardada ou incumbida a fim de comparar com as próximas
soluções. Portanto, B.x1 = 4.16.

subproblema 1.1 subproblema 1.2


maximizar  Z = 7x1 + 6x2 maximizar  Z = 7x1 + 6x2


 2x1 + 3x2 ≤ 12 

 2x1 + 3x2 ≤ 12

 

6x + 5x2 ≤ 30 6x + 5x2 ≤ 30

 

 1  1

 

om
sujeito à x2 ≤ 1 sujeito à x2 ≤ 1

 

≤4 ≥5
 
 x1  x1

l.c

 


 

 x ∈ Z+
  x ∈ Z+

i 0 ai i 0

Como o objectivo é maximizar Para x1 = 5 substituindo nas restrições


gm

levamos os valores máximos  2 × 5 + 3x = 12
2
@

 6 × 5 + 5x = 30
 2
o8

 x =4
 1



et

x2 = 1  x = 0.66
2


ub


 Z = 28 + 6 = 34
i  x = 0(min) ⇒ Z = 35
2 i
um

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
m

Como não podemos mais bifurcar e nem podemos aumentar o valor da função ob-
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}.

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.

Mulenga 133 acm@2020


Investigação Operacional

om
l.c
ai
gm

Figura 5.2: Árvore binária ou decisão do exemplo 5.2


@
o8

Exemplo 5.3. Seja dado o problema de programação linear inteira.


et

minimizar  W = 6x1 + 5x2


ub

 2x + 3x2 ≥ 4
 1

um


sujeito à 3x1 + 2x2 ≥ 5


 x ∈ Z+
m


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.

Mulenga 134 acm@2020


Investigação Operacional

Resolução

Tabela 1

Base x1 x2 x3 x4 Bi

x3 -2 -3 1 0 -4
x4 -3 -2 0 1 -5

W -6 -5 0 0 0

om
- (2) (2.5) - - -

Tabela 2
l.c
ai
gm
Base x1 x2 x3 x4 Bi
@

x3 0 -5/3 1 -2/3 -2/3


o8

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


et

W 0 -1 0 -2 10
ub

- - (0.6) - (2) -
um

Tabela 3
m

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}

Mulenga 135 acm@2020


Investigação Operacional

Desta solução conclui-se que: Ws = ∞ e Ws ≥ Wmin = 10.4.

Como a parte fraccionário é igual a 0.4 nas duas variáveis, recorremos aos coeficientes
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.

subproblema 1 subproblema 2
minimizar  W = 6x1 + 5x2 minimizar  W = 6x1 + 5x2


 2x1 + 3x2 ≥ 4 

 2x1 + 3x2 ≥ 4

 

 3x + 2x ≥ 5  3x + 2x ≥ 5

om
 
1 2 1 2
sujeito à sujeito à

 x2 ≤ 0 
 x2 ≥ 1

l.c

 

 
 x ∈ Z+
  x ∈ Z+

i 0 ai i 0
gm
Para x2 = 0 tem-se Para x2 = 1 tem-se
@

 
 2x + 3 × 0 = 4  2x + 3 × 1 = 4
1
1
o8

 3x + 2 × 0 = 5  3x + 2 × 1 = 5
2
1
et
ub

 
 x = 2(max) ⇒ W = 12
1 i  x = 0.5
1 −
um

 x = 1.66
1 −  x = 1(max) ⇒ W = 11
1 i
m

Repare que para os problemas de minimização levamos o valor máximo.

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 e
Wi−1 = 12 é sondado

Solução
SPLI = {x1 = 1, x2 = 1} com Ws = 11.

Mulenga 136 acm@2020


Investigação Operacional

om
Figura 5.3: Árvore binária para o exemplo 5.3

l.c
ai
Exemplo 5.4. Dado o seguinte problema de programação linear inteira
gm

maximizar  Z = 2x1 − 1x2


@



 −3x1 + 2x2 ≤ 2
o8



2x1 − 4x2 ≤ 3


sujeito à
et



 1x1 + 1x2 ≤ 6
ub



xi ∈ Z0+


um

a) Usando o método gráfico encontre a primeira aproximação de solução.


m

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 r2 : x1 x2 r3 : x1 x2 r z : x1 x2

0 1 0 -3/4 0 6 0 0
-2/3 0 3/2 0 6 0 2 4

Mulenga 137 acm@2020


Investigação Operacional

om
l.c
ai
gm
Figura 5.4: Gráfico da primeira aproximação de solução do problema de programção
linear inteira, exemplo 5.4
@
o8

Solução SPL = r2 ∩ r3 = {x1 = 4.5, x2 = 1.5} com Zmax = 7.5.


et
ub

Desta solução sabe-se que Zm = 0 e Zm ≤ Zmax = 7.5. E como temos empate


de 0.5, por isso vamos recorrer a função objectivo Z = 2x1 − 1x2 , e bifurcar x1 por
um

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

 

xi ∈ Z0+ xi ∈ Z0+

 

Mulenga 138 acm@2020


Investigação Operacional

om
l.c
(a) Subproblema 1 ai (b) Subproblema 2

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-


et

Zi < Zmax ⇒ Zm = 0 problema 2 não é viável.


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


m

subproblema 1.1 subproblema 1.2


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

 


 


 

x ∈ Z+ x ∈ Z+

 

i 0 i 0

Mulenga 139 acm@2020


Investigação Operacional

om
l.c
ai
(a) Subproblema 1.1 (b) Subproblema 1.2
gm

Figura 5.6: Gráficos dos subproblemas 1.1 e 1.2 do exemplo 5.4


@
o8

SPL1.1 Pmax = r2 ∩ r5 , Figura 5.6(a) SPL1.2 Pmax = r3 ∩ r5 , Figura 5.6(b)


et

X = {x1 = 3.5, x2 = 1, Zi = 6} X = {x1 = 4, x2 = 2, Zi = 6}


ub

Zi < Zmax ⇒ Zm = 0 Zm = 6 incumbido, Zi−1 = 0 sondado


um

Como o subproblema 1.1 apresenta um valor igual ao do subproblema 1.2, significa


que do subproblema 1.1 não é necessário continuar a bifurcar e a solução óptima é a
m

que foi, obtida pelo subproblema 1.2: X = (4, 2) com Zm = 6.

Exemplo 5.5. Dado o seguinte problema de programação linear inteira:

minimizar  W = 10x1 + 8x2




 2x1 + 1x2 ≥ 3

sujeito à 4x1 + 6x2 ≥ 16


xi ∈ Z0+

Mulenga 140 acm@2020


Investigação Operacional

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 r2 : x1 x2 rw : x1 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: Gráfico da primeira aproximação do 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

Mulenga 141 acm@2020


Investigação Operacional

Vamos difurcar x2 por ter a parte fraccionária igual a 0.5. B.x2 = 2.5

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+

 

i 0 i 0

om
l.c
ai
gm
@
o8
et
ub
um

(a) Subproblema 1 (b) Subproblema 2


m

Figura 5.8: Gráficos dos subproblemas 1 e 2 do exemplo 5.5

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

Mulenga 142 acm@2020


Investigação Operacional

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 programs”, para resolver problemas de programação linear inteira.

O método de Gomory também chamado “Cutting plane method”, é um procedi-


mento que divide o conjunto das oportunidades em dois planos tal como o método de
bifurcaçã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.

om
De forma geral, o método de corte de Gomory dá uma possibilidade de diminuir o

l.c
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. ai
gm
Procedimento do método de Gomory
@

Dado um problema da programação linear inteira na forma canónica ou padrão:


o8

Passo 1. Resolver o problema de programação linear ignorando a restrição de que a


et

solução óptima deve ser inteira, até obter a tabela terminal simplex (1a aproximação).
ub

a) Se a primeira aproximação apresentar todos valores das variáveis inteiros, esta, é


um

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-
m

ximação de solução, esta não é solução do problema de programação linear inteira e


deve-se passar ao passo 2.

Passo 2. Para construir a nova restrição, deve-se escolher da tabela terminal sim-
plex qualquer linha que tenha a solução não inteira xi = bi . Para diminuir o número
das iterações necessárias para convergir recomenda-se escolher a linha com a maior
fracção própria depois da decomposição.
a) Supondo que foi escolhida a linha i, a correspondente equação é, (equação 1):
X
ai1 x1 + ai2 x2 + ... + aij xi = bi ou aij xi = bi (5.1)

Mulenga 143 acm@2020


Investigação Operacional

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 própria extritamente positiva fij
e fi respectivamente. Assim, aij = [aij ] + fij e bi = [bi ] + fi e em seguida escreve-se
a nova restrição multiplicada por (-1) mais a variável de folga xi+1 , (equação 2).
X
− fi1 x1 − fi2 x2 − ... − fij xi + xi+1 = −fi ou − fij xi = −fi (5.2)

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

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

l.c
b) Para usar o método simplex de duas fases, basta considerar a equação 1, a equação
ai
2 multiplicada por (-1) e introduzir a variável artificial ai , em seguida resolver o pro-
gm
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.
@
o8

Em qualquer um dos procedimentos auxiliares, se todas as variáveis de decisão sairem


do modelo, este método não alcança a solução inteira.
et
ub

Exemplo 5.6. Usando o método de Gomory e o método simplex dual-simplex como


um

auxiliar, resolva o seguinte problema de programação linear inteira.


m

maximizar  Z = −1x1 + 3x2




 1x1 − 1x2 ≤ 2

sujeito à 2x1 + 4x2 ≤ 15


xi ∈ Z0+

Resolução

Mulenga 144 acm@2020


Investigação Operacional

Tabela 1

Base x1 x2 x3 x4 Bi

x3 1 -1 1 0 2
x4 2 4 0 1 15

Z 1 -3 0 0 -

Tabela 2

om
Base x1 x2 x3 x4 Bi

l.c
x3 3/2 0 1 1/4 23/4
x2 1/2 1 0 1/4 15/4
ai
gm
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
o8

4 4 4 4 4
et

A solução de programação linear não é inteira e conclui-se que Zm = 0 , Zm < 11.25,


3
ub

e como para x2 e x3 temos a mesma fracção teremos que escolher a linha 2 porque
4
x2 tem maior coeficiente na função objectivo.
um

1 1 15
x1 + 1x2 + 0x3 + x4 = , equacao 1
m

2 4 4

Tabela 5.3: Decomposição de um número misto em parte inteira e uma fracção


própria no método de Gomory

Coeficiente a21 a22 a23 a24 b2


1 1 15
aij 1 0
2 4 4
1 1 3
[aij ] + fij 0+ 1+0 0+0 0+ 3+
2 4 4

Mulenga 145 acm@2020


Investigação Operacional

Depois da decomposição usamos só a parte fraccionária e escrevemos a segunda


equação multiplicada por (-1) que corresponde a nova restrição. Repare que x5 é
a nova variável 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.

om
Tabela 1

l.c
Base x1 x2 x3 x4 x5 Bi

x3 3/2 0 1 1/4 0 23/4


ai
gm
x2 1/2 1 0 1/4 0 15/4
x5 -1/2 0 0 -1/4 1 -3/4
@
o8

W 5/2 0 0 3/4 0 45/4


et
ub

Tabela 2
um

Base x1 x2 x3 x4 x5 Bi

x3 1 0 1 0 1 5
m

x2 0 1 0 0 1 3
x4 2 0 0 1 -4 3

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.

Mulenga 146 acm@2020


Investigação Operacional

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


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


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


 x ∈ Z+

i 0

Resolução

om
Tabela 1

l.c
Base x1 x2 x3 x4 x5 Bi
ai
x4 1 2 3 1 0 9
gm

x5 3 2 2 0 1 15
@

Z -1 -9 -1 0 0 -
o8
et

Tabela 2
ub

Base x1 x2 x3 x4 x5 Bi
um

x2 1/2 1 3/2 1/2 0 9/2


m

x5 2 0 -1 -1 1 6

Z 7/2 0 25/2 9/2 0 81/2


 
9 81
SPL = x1 = 0, x2 = , x3 = 0, x4 = 0, x5 = 6, Zmax = = 40.5 .
2 2

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

Mulenga 147 acm@2020


Investigação Operacional

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 vamos multiplicar por (-1) a equação
2 e introduzir a variável artificial.

1 1 1 1
x1 + 0x2 + x3 + x4 + 0x5 − 1x6 + a1 =
2 2 2 2

om
Tabela 1 1aF

l.c
Base x1 x2 x3 x4 x5 x6 a1 Bi
ai
x2 1/2 1 3/2 1/2 0 0 0 9/2
gm

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


@

Z 7/2 0 25/2 9/2 0 0 0 81/2


o8

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


et
ub

Tabela 2 1aF
um

Base x1 x2 x3 x4 x5 x6 a1 Bi
m

x2 0 1 1 1/2 0 1 -1 4
x1 1 0 1 1 0 -2 2 1

Z 0 0 9 1 0 7 -7 37

Za 0 0 0 0 0 0 1 0

Mulenga 148 acm@2020


Investigação Operacional

Tabela 1 2aF

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

om
SPLI: X = (1, 4, 0, 0, 0), com Zm = 37

l.c
Veja que neste exemplo, a variável x5 não está na solução por não ter nenhum coefi-
ai
ciente ao longo da coluna, se isso acontecer com mais variáveis, em especial variáveis
gm
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.


o8

maximizar  Z = 2x1 + 5x2


et

 2x + 5x2 ≤ 14
ub

 1


sujeito à 3x1 + 2x2 ≤ 10
um



 x ∈ Z+

i 0
m

a) Usando o método simplex encontre a primeira aproximação do problema de pro-


gramação linear inteira.
b) Pelo algoritmo de corte de Gomory e o método simplex dual-simplex, encontre a
solução óptima do problema de programação linear inteira.

Mulenga 149 acm@2020


Investigação Operacional

Resolução
a) Método simplex
Tabela 1

Base x1 x2 x3 x4 Bi

x3 2 5 1 0 14
x4 3 2 0 1 10

Z -2 -5 0 0 -

om
Tabela 2

Base x1 x2 x3 x4 Bi
l.c
ai
gm
x2 2/5 1 1/5 0 14/5
x4 11/5 0 -2/5 1 22/5
@
o8

Z 0 0 1 0 14
et

 
14 4 22 2
SPL = x1 = 0, x2 = = 2 + , x3 = 0, x4 = = 4 + , Zmax = 14
ub

5 5 5 5
um

De onde sabemos que Zm = 0, Zm ≤ 14


m

b) Usando o método de corte de Gomory, vai-se 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

Mulenga 150 acm@2020


Investigação Operacional

Tabela 1

Base x1 x2 x3 x4 x5 Bi

x2 2/5 1 1/5 0 0 14/5


x4 11/5 0 -2/5 1 0 22/5
x5 -2/5 0 -1/5 0 1 -4/5

Z 0 0 1 0 0 14

om
Tabela 2

Base x1 x2 x3 x4 x5 Bi

l.c
x2 0 1 0 0 1 2
ai
gm
x4 0 0 -3/2 1 11/2 0
x1 1 0 1/2 0 -5/2 2
@
o8

Z 0 0 1 0 0 14
et

Solução: X = (2, 2, 0, 0, 0), Zm = 14.


ub
um

5.4 Exercı́cios propostos


m

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+ xi ∈ Z0+

 

i 0

Respostas:

Mulenga 151 acm@2020


Investigação Operacional

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

Exercı́cio 5.2. Usando o método de bifurcação e limite resolva as alı́neas. Use


o método gráfico como auxiliar para visualizar o domı́nio solução.

maximizar Z = 3x1 + 2x2 minimizar W = 6x1 + 8x2


 4x + 2x2 ≤ 10  2x + 3x2 ≤ 20
 1  1

 

a) sujeito à 4x1 + 6x2 ≤ 18 b) sujeito à 1x1 + 3x2 ≥ 10
 

om
 
x ∈ Z+ x ∈ Z+

 

i 0 i 0

Respostas:

l.c
a) SPL = {x1 = 1.5, x2 = 2, Zmax = 8.5} ⇒ X = (2,1), Zm = 8
ai
b) SPL = {x1 = 0, x2 = 3.33, Wmin = 26.67} ⇒ X = (1,3), Ws = 30
gm

maximizar Z = 6x1 + 8x2 minimizar W = 3x1 + 4x2


@

 5x + 2x2 ≤ 20  2x + 3x2 ≤ 10
 1  1

 

o8

c) sujeito à 1x1 + 2x2 ≤ 10 d) sujeito à 1x1 + 3x2 ≥ 5



 

et

xi ∈ Z0+ xi ∈ Z0+

 

ub

Respostas:
c) SPL = {x1 = 2.5, x2 = 3.75, Zmax = 45} ⇒ X = (2,4), Zm = 44
um

d) SPL = {x1 = 0, x2 = 1.67, Wmin = 6.67} ⇒ X = (0,2), Ws = 8


m

Exercı́cio 5.3. Usando o método de corte de Gomory e o método simplex dual-


simplex como auxiliar, resolva o seguinte problema de programação linear inteira.

maximizar Z = 20x1 + 2x2


 2x + 5x ≤ 11
1 2
sujeito à
 xi ∈ Z0+

Respostas:
SPL = {x1 = 5.5, x2 = 0, Zmax = 110} ⇒ X = (5,0), Zm = 100

Mulenga 152 acm@2020


Investigação Operacional

Exercı́cio 5.4. Usando o método de corte de Gomory e o método simplex dual-


simplex como auxiliar, 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+

 

i 0 i 0

Respostas:

om
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 = (3,3), Zm = 13

l.c
ai
maximizar Z = 12x1 + 14x2
maximizar Z = 2x1 − 4x2 + 1x3
2x1 + 4x2 ≤ 10
gm


1x − 1x2 + 0x3 ≤ 12
 

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

1 2
c) sujeito à 0x1 + 2x2 + 3x3 ≤ 28 d) sujeito à
@


 
 5x1 + 3x2 ≤ 12
o8

x ∈ Z+

 

i 0 
x ∈ Z+


i 0
et

Respostas:
ub

c) SPL = {x1 = 12, x2 = 0, x3 = 9.33, Zmax = 33.33} ⇒ X = (12, 0, 9), Zm = 33


um

d) SPL = {x1 = 1.28, x2 = 1.86, Zmax = 41.43} ⇒ X = (1.2), Zm = 40


m

Mulenga 153 acm@2020


Capı́tulo 6

Problemas de transporte e

om
afectação
l.c
ai
gm

6.1 Introdução
@

Um dos problemas comuns na administração de empresas é como conseguir fazer


o8

operar um conjunto de máquinas como autocarros ou aviões numa rede permissı́vel


et

com um custo mı́nimo? Como estruturar as fábricas de produção de um determinado


ub

produto em relação aos locais de vendas de tal forma que o lúcro das vendas seja
máximo. Este e outros casos, são problemas que afectam a rede de transporte.
um

Segundo Render et al (2012), o conhecimento e utilização dos modelos de proble-


m

mas de transporte, estão ligados a autores como Kantorovich que em 1939 publicou
o primeiro trabalho realacionado aos modelos de transporte “On the translocation of
masses”(Kantorovich, 1958), por sua vez Hitchcock (1941), publicou o segundo tra-
balho, “The distribution of a product from several sources to numerous localities”.
Dai em diante, vários outros autores contribuiram para o desenvolvimento dos al-
gorı́tmos de transportes e afectação como Koopmans (1947), Cooper (1954), Dantzig
(1965), Churchman et al (1966), entre outros.

É importante lembrar que na planificação da distribuição de um produto a função

154
Investigação Operacional

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
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,

om
respeitando a capacidade das fábricas e dos depósitos (transporte directo).

l.c
• Uma variante, desta situação, é aquela em que os produtos da fonte não vão di-
rectamente ao consumidor, eles passam por outras fontes ou destinos (transporte
ai
com transbordo ou indirecto).
gm

• A última variante, é o caso em que se tem um certo número de serviços que


@

devem ser executados por pessoas, máquinas ou empresas, e cada conjunto


o8

tarefa - máquina tem seu custo associado de execução da tarefa (problemas


et

de afectação ou assignação).
ub

O que temos em comum nestes três casos é a rede de transporte ligando fontes aos
destinos. Neste capı́tulo, vai-se considerar com maior detalhe o primeiro caso, por
um

este ser o mais frequente.


m

6.1.1 Formulação de um problema de transporte


Um problema de transporte como um caso particular dos problemas de programação
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

Mulenga 155 acm@2020


Investigação Operacional

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
a minimizar o custo total de transporte. Este problema pode ser representado no
seguinte esquema.

om
l.c
ai
gm
@

Figura 6.1: Diagrama de um problema de transporte


o8
et

Como o número de unidades a transportar de uma fábrica (Origem i) para uma loja
ub

(Destino j) deve ser um número inteiro, então, os problemas podem ser apresentados
um

como um problema de programação linear inteira. Assim, o modelo geral é:


m

n X
X m
Optimizar Z = cij xij
 m i=1 j=1
 X



 xij = ai , i = 1, 2, ..., n
j=1



 n

 X

 xij = bj , j = 1, 2, ..., m
sujeito à i=1

 n m
 X X


 ai = bj

i=1 j=1




 xij ∈ Z +

0

Mulenga 156 acm@2020


Investigação Operacional

Onde
• 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 .

om
i=1 j=1

A terceira restrição Σai = Σbj é condição de equilı́brio dos problemas de trans-

l.c
porte. Esta condição, sugere a existência de dois tipos de problemas de transporte:
ai
a) Problema de transporte balanceados ou equilibrados, são aqueles em que o total
gm
da oferta é igual ao total da procura e
b) Problemas de transporte não balanceados, os não equilibrados, quando as somas
@

da oferta e da procura são diferentes.


o8

Como a condição de equilı́brio é necessária para que um problema de transporte


et

tenha solução, para os problemas não balanceados são introduzidas origens e desti-
ub

nos fictı́cios com custo zero (cij = 0), de modo que o total da oferta seja igual ao
um

total da procura.
a) se Σai > Σbj , introduz-se um destino fictı́cio bm+1 = Σai − Σbj .
m

b) se Σai < Σbj , introduz-se uma origem fictı́cia an+1 = Σbj − Σai .

Esta formulação do problema bem como a sua interpretação dão origem a um quadro
padrão dos problemas de transporte do seguinte tipo:

Mulenga 157 acm@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
... ... ... ...
... ... ... ... ... ...

om
cn1 cn2 ... cnm
Origem n xn1 xn2 ... xnm an
Procura b1 b2 ... bm
l.c
Σai = Σbj
ai
gm
@

Exemplo 6.1. Considere uma empresa com duas fábricas que processam mensal-
mente 15 e 25 mil sacos de arroz respectivamente. Os sacos devem ser transportados
o8

para três destinos com as capacidades de absorção de 20, 10 e 10 unidades de medida.


et

Os custos de transporte são: c11 = 10, c12 = 3, c13 = 5, c21 = 12, c22 = 7 e c23 = 9.
ub

a) Apresente a rede que corresponde a este problema de transporte.


b) Apresente o problema de transporte como um problema de programação linear
um

inteira.
c) Construir o quadro modelo do problema de transporte.
m

Resolução
a) Neste problema temos duas origens e três destinos como a Figura 6.2 apresenta.

Mulenga 158 acm@2020


Investigação Operacional

om
Figura 6.2: Representação da rede de transporte do exemplo 6.1

b) O modelo de programação linear correspondente é:


l.c
ai
minimizar  W = 10x11 + 3x12 + 5x13 + 12x21 + 7x22 + 9x23
gm


 x11 + x12 + x13 = 15


@

x21 + x22 + x23 = 25








o8


 x + x = 20
11 21
sujeito á
et



 x12 + x22 = 10


ub




 x13 + x23 = 10


 x ∈ Z+

um

ij 0
m

c) O quadro modelo do problema de transporte é:

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 159 acm@2020


Investigação Operacional

6.1.2 Métodos para a resolução dos 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étodos 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:

om
1. Método de Canto Noroeste (Northwest Conner Method – NWC).

l.c
2. Método de Custo mı́nimo (lúcro máximo) (Low Cust Method - LCM).
ai
gm
3. Método de Aproximação de Vogel (Vogel Approximation Method - VAM).

b) Depois de obtida a primeira aproximação é necessário verificar se esta é solução


@

óptima ou não. Caso não seja procura-se melhorar movimentando as quantidades


o8

alocadas para células não ocupadas. Para isso, existem dois métodos:
et

1. O método da modificação da distribuição (Modify distribution-MODI).


ub

2. O método de Stepping Stone.


um

c) Mais adiante para os problemas de afectação teremos o método Húngaro.


m

6.2 Cálculo da primeira aproximação de solução


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 é 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 }.

Mulenga 160 acm@2020


Investigação Operacional

Passo 2. Ajustar a linha ou coluna satisfeita com zero e depois passar a coluna ou
linha pela sequência. Note que, entende-se por linha satisfeita, se toda a quantidade
da oferta já foi distribuida pelos destinos. E por coluna satisfeita, se toda a quanti-
dade 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

om
Σxij = bj .

l.c
Exemplo 6.2. Usando o método de canto noroeste resolva o exemplo 6.1 e apresente
o custo total.
ai
gm

Resolução
@

Como temos Σai = Σbj = 40, não é necessário introduzir coluna nem linha fictı́cias.
o8

D1 D2 D3 Oferta
et

10 3 5
ub

O1 15 - - 15
um

12 7 9
25
m

O2 5 10 10
Procura 20 10 10 40

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 161 acm@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 disponibilidades 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

om
pelo método de canto noroeste a alocação óptima de modo que o custo de transporte
seja mı́nimo.

- 1 2 3
l.c
4
ai
gm
A 42 40 40 44
B 46 31 38 35
@

C 30 38 46 41
o8
et

Resolução
Σai = 90 + 110 + 50 = 250, Σbj = 60 + 50 + 90 + 50 = 250
ub
um

1 2 3 4 Oferta
42 40 40 44
m

A 60 30 - - 90
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 162 acm@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

om
L2 50 80 60 70
L3 80 50 80 60

l.c
Resolução
ai
gm
Como Σai = 80 + 100 + 50 = 230 e Σbj = 50 + 40 + 60 + 40 = 190, temos que introduzir
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
100
m

L2 - 10 60 30 -

80 50 80 60 0
L3 - - - 10 40 50
Procura 50 40 60 40 40 230

W = 50×70 + 30×60 + 10×80 + 60×60 + 30×70 + 10×60 + 40×0 = 12400 mil unidades
de medida.

Mulenga 163 acm@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 D, 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

om
inicial viável de menor custo ou maior lúcro. O procedimento do método é 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 crescente
et

(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:
c12 = 3 ⇒ x12 = min{15, 10} = 10, coluna 2 satisfeita

Mulenga 164 acm@2020


Investigação Operacional

c13 = 5 ⇒ x13 = min{5, 10} = 5, linha 1 satisfeita


c23 = 9 ⇒ x23 = min{25, 5} = 5, coluna 3 satisfeita
c21 = 12 ⇒ x21 = min{20, 20} = 20, linha 2 e coluna 1 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 custo mı́nimo, 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 determinada

om
mercadoria nas quantidades 75, 150 e 100 toneladas respectivamente. Esta mercadoria deve
ser enviada para cinco consumidores C1, C2, C3, C4, e C5, que necessitam de 100, 60, 40,

l.c
75 e 75 toneladas respectivamente. Os custos de transporte por tonelada entre as várias
ai
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

Usando o método de custo mı́nimo, determine qual é a programação que a empresa deve
um

adoptar por forma a satisfazer as necessidades dos consumidores com um custo de trans-
porte mı́nimo.
m

Resolução
Σai = 325, Σbj = 350, precisamos uma origem fictı́cia com 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
c23 = 2 ⇒ F2C3 = 40, coluna 3 satisfeita

Mulenga 165 acm@2020


Investigação Operacional

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

W = 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 consumidor C1


não recebeu as 25 unidades, tendo recebido apenas 75 unidades, porque não existiam
m

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 maximizar 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 ilustra.

Mulenga 166 acm@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
gm
20 22 14
F1 28 8 4 40
@
o8

15 20 13
50
et

F2 - - 50
ub

22 23 18
30
um

F3 - 30 -

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 satisfeita
l11 = 20 ⇒ x11 = 28, coluna 1 satisfeita;
l13 = 14 ⇒ x13 = 4. linha 1 satisfeita.
l23 = 13 ⇒ x23 = 50, linha 2 e coluna 3 satisfeitas.

Lúcro total Z = 28×20 + 8×22 + 4×14 + 50×13 + 30×23 = 2132 u.m.

Mulenga 167 acm@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

om
F3 - - 30 30

l.c
Procura 28 38 54 120 ai
gm
Z = ΣΣcij × xij = 1884
@

Mais uma vez, a solução é melhor com o método de lúcro máximo do que o método de
o8

canto noroeste. Em geral, este método apresenta uma solução mais próxima da solução
et

óptima do que o método de canto noroeste.


ub

6.2.3 Método de aproximação de Vogel


um

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 melhor
m

solução inicial em relação aos métodos de canto noroeste e de custo mı́nimo.

O método de aproximação de Vogel, baseia-se na comparação dos custos (lúcros), calcu-


lando 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 supe-
rior custo unitário. Se o problema é de maximização a diferença é calculada para os dois

Mulenga 168 acm@2020


Investigação Operacional

primeiros lúcros unitários máximos. O valor da diferença é chamado penalidade pi (linha)


ou pj (coluna) e respresenta o custo de oportunidade por não ter escolhido a célula com
menor custo cij ou de maior lucro lij .

pi = c2 − c1 onde c1 < c2 (min) pi = l1 − l2 onde l1 > l2 (max) (6.1)


pj = 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 pena-
lidade), se houver empate, escolhe-se a linha ou coluna com o menor custo nuitário (maior

om
lúcro unitário).

l.c
Passo 3. Na linha ou coluna escolhida, alocar o máximo possı́vel para a variável com
o menor custo unitário ou maior lúcro unitário para os problemas de maximização, lembre-
ai
se que xij = min{ai , bj }.
gm

Passo 4. Eliminar a linha ou coluna que estiver completamente satisfeita depois desta
@

alocação. A eliminação é feita colocando x0 s ou um traço nas células que não devem par-
o8

ticipar mais nos próximos cálculos das penalidades.


et

Passo 5. Repetir os passos 1 - 4 até que a solução inicial seja obtida.


ub
um

Exemplo 6.8. Sejam dadas 3 origens A, B e C com as disponibilidades de 90, 110 e


50 unidades de medida, respectivamente e 4 destinos 1, 2, 3 e 4 que necessitam de 60, 50,
m

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.

- 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 a oferta maior do que a procura, precisamos b5 = 250 − 240 = 10

Mulenga 169 acm@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

om
pj 12 7 2 6 0

l.c
12 7 2 6 -
4 9 2 9 -
ai
gm
4 - 2 9 -
4 - 2 - -
@
o8

Para exemplificar, apresenta-se apenas as primeiras penalidades:


et

Linhas: p1 = 40–0 = 40, p2 = 31 − 0 = 31, p3 = 30 − 0 = 30, ...


Colunas: p1 = 42–30 = 12, p2 = 38 − 31 = 7, p3 = 40 − 38 = 2, ...
ub
um

A penalidade máxima nesta série é de 40, é por isso que escolheu-se a linha 1 (linha A) e
alocou-se com 10 unidades na posição x15 . Tendo sido satisfeita a coluna 5 colocou-se {-}
m

e repetiu-se o cálculo das segundas penalidades.

W = 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 toneladas
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 170 acm@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 aproximação de Vogel a, encontre a primeira aproximação de solução.

om
Resolução
Σai = Σbj = 40

l.c
- C1 C2 C3 C4
ai
Oferta pi
gm
9 7 12 8
A1 4 14 - - 18 1 1 1 - -
@

15 12 12 15
o8

A2 - - 4 - 4 0 0 3 3 -
et

8 9 6 12
ub

A3 - - 6 - 6 3 - - - -
um

14 12 11 12
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 171 acm@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

om





x31 + x32 + x33 + x34 = 17



l.c


 x11 + x21 + x31 = 14

sujeito á ai



 x12 + x22 + x32 = 8
gm


 x13 + x23 + x33 = 12





x14 + x24 + x34 = 9


@





 xij ∈ Z +

0
o8
et

O objectivo é no fim de uma etapa de distribuição obter o maior lúcro possivel. Na tenta-
ub

tiva para identificar a melhor distribuição da batata pelos mercados.


a) Escreva o problema em um quadro padrão como um problema de transportes.
um

b) Usando os métodos de canto noroeste, de lúcro mı́nimo e de aproximação de Vogel entre


as primeiras aproximações de soluções possı́veis.
m

Resolução
a) O quadro padrão dos problema de transporte

Mulenga 172 acm@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 11
12 9 9 13
CP3 x31 x32 x33 x34 17
Procura 14 8 12 9 43

om
l.c
b1) Método de canto noroeste

- M1 M2 M3 M4
ai
Oferta
gm
12 10 9 11
@

CP1 14 1 - - 15
o8

10 14 13 12
CP2 - 7 4 - 11
et

12 9 9 13
ub

CP3 - - 8 9 17
um

Procura 14 8 12 9 43
m

Z1 = 14×12 + 1×10 + 7×14 + 4×13 + 8×9 + 9×13 = 517 unidades de medida.

b2) Método de lúcro máximo

Mulenga 173 acm@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
l.c
Z2 = 14×12 + 9×9 + 8×14 + 3×13 + 8×9 + 9×13 = 589 unidades de medida

b3) Método de aproximação de Vogel


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 -
* * * -

Z3 = 6×12 + 8×10 + 1×9 + 11×13 + 8×12 + 9×13 = 517 unidades de medida.

Mulenga 174 acm@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 optimidade (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 a zero (δij ≥ 0), para os problemas

om
de minimização, e menor ou igual a zero (δij ≤ 0), para os problemas de maximização.

l.c
Definição 2. Uma solução é degenerada, quando o número de células ocupadas for
menor do que o número de linhas+número de colunas - 1 ou número de células ocupadas
ai
N CO < n + m–1. Esta situação pode ocorrer tanto na primeira aproximação como em
gm
qualquer fase de melhoramento da solução.
@

Quando se tem uma solução degenerada, muitas vezes não se consegue desenvolver o teste
o8

de optimidade de solução. Para que sejam desenvolvidos os métodos de teste de optimidade


et

da solução é introduzida uma alocação artificial com uma quantidade bastante pequena,
diga-se uma infinitésima ε (lê-se épsilon), em uma ou mais células não ocupadas até que a
ub

solução seja não degenerada e considera-se que esta célula está ocupada. Depois de encon-
um

trada a solução óptima do problema retira-se da tabela a alocação artificial fazendo ε = 0.


m

Definição 3. Circuito de avaliação é um caminho com sinais positivo (+) e nega-


tivo (-) de forma 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, descrevendo


ângulos rectos ou razos ao passar de uma célula para outra. Em seguida são apresentados
alguns exemplos de circuitos de avaliação na Figura 6.3.

Mulenga 175 acm@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 MODI ou pelo método de Stepping Stone.

om
6.3.1 Método de MODI para o teste de optimidade de solução

l.c
ai
Determinada a primeira aproximação por qulaquer um dos três métodos NWC, LCM ou
VAM, para aplicar o método de MODI, é necessário seguir os seguintes passos. Atenção
gm
verifique antes se a solução é degenerada.
@

Passo 1. Partindo do quadro da primeira aproximação, para cada variável básica (xij 6= 0),
o8

escrever uma equação da forma ui + vj = cij . O resultado de todas equações é um sistema


et

de equações com as variávies ui e vj .


ub

Passo 2. Igualar a zero ui ou vj que aparecer mais vezes no sistema. Se houver mais
um

de uma variável com igual frequência, qualquer uma pode-se escolher para igualar a zero.
m

Passo 3. Usando o método de substituição, calcular os valores dos outros u0i s e vj0 s con-
siderando cij = ui + vj para todas variáveis básicas (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 variáveis não básicas calcule os multiplicadores simplex, usando
a equação, δij = cij –(ui + vj ) para xij = 0

Passo 5. Se todos os multilicadores simplex do passo 4, forem positivos ou iguais a

Mulenga 176 acm@2020


Investigação Operacional

zero (δij ≥ 0), para minimização, negativos ou iguais a zero (δij ≤ 0), para maximizaçã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
Passo 2. Para cada célula não ocupada, traçar um circuito de avaliação tendo em conta
ai
que cada circuito deve começar e terminar na mesma variável não básica.
gm

Passo 3. Escrever os custos ou lúcros em todos os cantos onde o circuito passou asso-
@

ciados aos sinais positivos (+) e negativos (-).


o8

Passo 4. Para cada variável não básica conforme o circuito de avaliação, calcular o multi-
et

plicador simplex δij como soma de todos os custos ou lúcros com sinal positivo e negativo,
ub

isto é: δij = Σ(+cij ) + Σ(−cij ) (min) ou δij = Σ(+lij ) + Σ(−lij ) (max).
um

Passo 5. Se todos multiplicadores simplex forem positivos ou iguais a zero (δij ≥ 0),
para minimização, negativos ou iguais a zero (δij ≤ 0), para maximização a solução é
m

ó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. Identificar a célula com o menor multiplicador simplex (min δij para minimização)
ou maior multiplicador simplex (max δij para maximização) e a variável não básica

Mulenga 177 acm@2020


Investigação Operacional

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çar 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:


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

om
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.
b) Usando o método de Stepping Stone verifique se a solução é óptima. Caso contrário,
gm
realize todas iterações até obter o lúcro máximo.
@

Resolução
o8

a) Método de aproximação de Vogel


et

- A1 A2 A3 Oferta pi
ub

20 22 14
40
um

F1 28 - 12 2 6 *
15 20 13
m

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

Lúcro total Z1 = 28×20 + 12×14 + 38×20 + 12×13 + 30×18 = 2184 u.m.

Mulenga 178 acm@2020


Investigação Operacional

b) Teste 1, pelo método de Stepping Stone.


Vamos escrever circuitos para as váriáveis não básicas: x12 , x21 , x31 e x32 .

Tabela 6.1: Teste de optimidade de solução pelo método de Steppig Stone, circuitos
do exemplo 6.11

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

om
x31 x31 → x33 → x13 → x11 → x31 δ31 = 22 − 18 + 14 − 20 = −2

l.c
x32 x32 → x33 → x23 → x22 → x32 δ32 = 23 − 18 + 13 − 20 = −2
ai
gm
Para um problema de maximização, como δ12 = 1 ≥ 0, significa de que a actual solução
não é óptima e deve ser melhorada introduzindo a variável x12 na base. E como o mı́nimo
@

das alocações no circuito com sinal negativo (-) é 12, então 12 é a quantidade a somar e
o8

substrair as outras células ao longo do circuito. x12 = min{38, 12} = 12.


et

As somas e diferenças para as variáveis que estão no circuito são:


ub
um

x12 = 0 + 12 = 12
x22 = 38 − 12 = 26
m

x23 = 12 + 12 = 24
x13 = 12 − 12 = 0

Figura 6.4: Exemplificação de circuito de melhoramento de solução do exemplo


6.11

O novo quadro e o lúcro depois do melhoramento é:

Mulenga 179 acm@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
Z2 = 28×20 + 12×22 + 26×20 + 24×13 + 30×18 = 2196, ∆z = 12 u.m

l.c
Teste 2 de optimidade de solução
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), então
m

já encontramos o lúcro máximo, isto é, a solução óptima, Zmax = 2196.

Exemplo 6.12. Uma empresa pretende transportar 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 180 acm@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, encontre
a solução óptima.

Resolução
a). Método do custo mı́nimo

- v1 v2 v3 v4 Oferta
12 10 9 11

om
u1 3 3 - 9 15

l.c
10 14 13 12
11
u2 11 - - -
ai
gm
12 9 7 13
u3 - 5 12 - 17
@

Procura 14 8 12 9 43
o8
et

W1 = 3×12 + 3×10 + 9×11 + 11×10 + 5×9 + 12×7 = 404.


ub

b) Teste 1 de optimidade pelo método de MODI, usou-se u1 = 0.


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

 
 

u1 + v2 = 10 u1 = 0, v2 = 10 δ22 = 14 + 2 − 10 = 6

 
 


 
 


 
 

 u1 + v4 = 11  u1 = 0, v4 = 11  δ23 = 13 + 2 − 8 = 7
  




 u2 + v1 = 10 


 u2 = −2, v1 = 12 


 δ24 = 12 + 2 − 11 = 3

 
 




 u3 + v2 =9 


 u3 = −1, v2 = 10 


 δ31 = 12 + 1 − 12 = 1

 
 

u3 + v3 =7 u3 = −1, v3 = 8 δ34 = 13 + 1 − 11 = 3
  

Mulenga 181 acm@2020


Investigação Operacional

Neste caso, para resolver o sistema, começou-se por fazer u1 = 0, porque esta variável apa-
rece três vezes no sistema. Em seguida, usando substituições sucessivas foram calculados 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, respectivamente 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

F1 92 89
l.c
90
ai
F2 91 91 95
gm

F3 87 90 92
@
o8

Cada fornecedor está no entanto limitado pelo número de galões que pode abastecer por
mês. Estas capacidades são 100, 180 e 300 mil galões respectivamente para os fornecedores
et

1, 2 e 3. Pretende-se determinar a polı́tica de aquisição do combustı́vel que suprirá as


ub

necessidades da companhia em cada aeroporto a um custo mı́nimo.


a) Usando o método de canto noroeste, determine a primeira aproximação.
um

b) Verifique se a solução inicial é degenerada ou não.


c) Usando o método de MODI, verifique se a primeira aproximação é óptima. Caso
m

contrário, optimize-a.

Resolução
a) Método de canto noroeste
Σai = 580, Σbj = 740, precisamos uma origem fictı́cia a4 = 740 − 580 = 160

Mulenga 182 acm@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

om
u4 - 10 150 160

l.c
Procura 320 270 150 740
ai
W1 = 100×92 + 180×91 + 40×87 + 260×90 + 10×0 + 150×0 = 52460.
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
et

c) Teste 1 de optimidade pelo método de MODI, usou-se v1 = 0.


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

 
 


 
 


 
 

 u3 + v1 = 87  u3 = 87, v1 = 0  δ22 = 91 − 91 − 3 = −3
  
m

 u +v


 3 2 = 90  u = 87, v = 3


 3 2



 δ23 = 95 − 91 − 3 = 1

 
 




 u4 + v2 =0 


 u4 = −3, v2 = 3 


 δ33 = 92 − 87 − 3 = 2

 
 

u4 + v3 =0 u4 = −3, v3 = 3 δ41 =0+3−0=3
  

Como temos números 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 de avaliação com os valores antes e depois das somas são.
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 é:

Mulenga 183 acm@2020


Investigação Operacional

— v1 v2 v3 Oferta
92 89 90
u1 - 100 - 100
91 91 95
u2 180 - - 180
87 90 92
u3 140 160 - 300

om
0 0 0
u4 - 10 150 160

l.c
Procura 320 270 150 740 ai
gm
W2 = 100×89 + 180×91 + 140×87 + 160×90 +10×0 + 150×0 = 51860.
@

Teste 2 de optimidade pelo método de MODI, usou-se v2 = 0.


o8

  
u1 + v2 = 89 u1 = 89, v2 = 0 δ11 = 92 − 89 + 3 = 6
et


 
 


 
 

  
u2 + v1 = 91 u2 = 94, v1 = −3 δ13 = 90 − 89 − 0 = 1
  
ub


 
 


 
 

  
 u3 + v1

= 87  u3 = 90, v1 = −3
  δ22

= 91 − 94 − 0 = −3N
um

 u +v


 3 2 = 90  u = 90, v = 0


 3 2



 δ23 = 95 − 94 − 0 = 1

 
 

u4 + v2 =0 u4 = 0, v2 = 0 δ33 = 92 − 90 − 0 = 2
m


 
 


 
 


 
 

u4 + v3 =0 u4 = 0, v3 = 0 δ41 =0−0+3=3
  

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 184 acm@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

om
u4 - 10 150 160

l.c
Procura 320 270 150 740
ai
W3 = 100×89 + 20×91 + 160×91 + 300×87 + 10×0 + 150×0 = 51380.
gm

Teste 3 de optimidade pelo método de MODI, usou-se u2 = 0.


@
o8

  


 u1 + v2 = 89 

 u1 = 89, v2 = 0 

 δ11 = 92 − 89 − 0 = 3
  
et

  
u2 + v1 = 91 u2 = 91, v1 = 0 δ13 = 90 − 89 − 0 = 1

 
 


 
 

  
ub

  
 u2 + v2 = 91  u2 = 91, v2 = 0  δ23 = 95 − 91 − 0 = 4
  

u3 + v1 = 87 u3 = 87, v1 = 0 δ32 = 90 − 87 − 0 = 3
um


 
 


 
 


 
 




 u4 + v2 =0 


 u4 = 0, v2 = 0 


 δ33 = 92 − 87 − 0 = 5
m


 
 

u4 + v3 =0 u4 = 0, v3 = 0 δ41 =0−0−0=0
  

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 de

Mulenga 185 acm@2020


Investigação Operacional

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 re-
side na identificação dos circuitos, enquanto o método de MODI é moroso e mais
estruturado, por isso, é mais preferido.

om
6.4 Problemas de afectação e o método Húngaro

l.c
Um outro tipo de problema de distribuição é o chamado problema de afectação (alocação).
O problema de afectar n - pessoas a n - tarefas é um caso particular do problema de
ai
transporte. O modelo de programação linear para os problemas de alocação tem um custo
gm
de alocação
 cij a pessoa i para a tarefa j e é definido por.
 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 é definido da


et

seguinte maneira.
ub

n X
X n
Optimizar Z = cij xij
um

i=1 j=1
 n
X
m




 xij = 1, i = 1, 2, ..., n

j=1


 n
sujeito à X

 xij = 1, j = 1, 2, ..., n


 i=1

 x ∈ Z+

ij 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 proble-
mas de transporte, mas, como se trata de um problema de transporte degenerado temos

Mulenga 186 acm@2020


Investigação Operacional

um método especı́fico, chamado método Húngaro.

Algort́mo 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 um
zero em cada linha e um zero em cada coluna, esta é a solução óptima. O valor óptimo

l.c
será Zopt = ΣΣcij × xij com xij = 1.
ai
Passo 4. Se o passo 3 não se verifica, traçar um número mı́nimo de rectas horizontais ou
gm
verticais, para cortar os zeros. Começando pela linha ou coluna que tem o maior número
de zeros.
@
o8

• 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 menos
et

zeros.
ub

• Se o número de rectas for menor que o número de linhas da matriz, passe ao passo
um

5 para realizar iterações.


m

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á um novo quadro. Repita o passo 3.

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 custos

Mulenga 187 acm@2020


Investigação Operacional

de transporte das equipas para cada provı́ncia são dados no quadro. Qual é a equipa que
deve ir em cada provı́ncia de modo a minimizar o custo total. Calcule este custo total.

Q1 P1 P2 P3 min

E1 2200 2400 2000 2000


E2 1800 2800 2200 1800
E3 1500 3800 2700 1500

Subtrair cada elemento da linha o correspondente minimo, obtém-se o quadro 2.

om
Q2 P1 P2 P3

E1 200 400
l.c0
ai
gm
E2 0 1000 400
E3 0 1700 1200
@

min 0 400 0
o8
et

Repetir o primeiro passo para as colunas, teremos o quadro 3.


ub
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 cortado é
x23 = 400.

Mulenga 188 acm@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

l.c
prioridades de afectação são as posições x12 na coluna de P2 e x31 na linha de E3 por apre-
ai
sentarem única possibilidade. Outras células são alocadas via eliminação 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


Wmin = 1500 + 2400 + 2200 = 6100 unidades de medida.
o8
et

Exemplo 6.15. Uma empresa de consultoria foi solicitada para avaliar 4 projectos. A
ub

empresa tem disponı́vel 4 técnicos independentes. Os custos de cada consultoria variam


conforme o quadro onde os valores estão em mil meticais.
um

Q1 P1 P2 P3 P4
m

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
projectos, de modo que minimize o custo total.

Mulenga 189 acm@2020


Investigação Operacional

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 190 acm@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
l.c
Teste 3. Do quadro 5, temos r = 4 e n = 4, já temos solução óptima.
ai
Custo total: Wmin = 11.1+17.4+15.9+8.2 = 52.6 unidades de medida.
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 automóveis, entre outras activi-
dades. Por questões de gestão do tempo de serviço, os seus clientes que podem ser outras
o8

empresas ou pessoas singulares são cobradas depois do serviço realizado. A empresa sabe
et

que os seus funcionários não apresentam a mesma habilidade na realização das tarefas, mas
ub

também, precisa maximizar o lúcro e quanto mais tempo levar a tarefa a ser executada
mais receita para a empresa. A tabela, mostra os tempos que cada trabalhador pode levar
um

em cada tarefa.
m

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

Já que o tempo define o rendimento final, usando o método Húngaro, determine a distri-
buição óptima dos trabalhadores de modo que o tempo total de realização das 5 tarefas

Mulenga 191 acm@2020


Investigação Operacional

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 nor-
malmente. 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 192 acm@2020


Investigação Operacional

om
Teste 1. Do quadro 3, temos r = 5 e n = 5, já temos solução óptima.

l.c
Lúcro total: Zmax = 15+20 + 16+ 17 + 16 = 84 unidades de medida.
ai
gm
6.5 Exercı́cos propostos
@

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


o8

minimizar W = 2x11 + 4x12 + 10x13 + 8x21 + 2x22 + 8x23


et



 x11 + x12 + x13 = 50
ub




x21 + x22 + x23 = 20





um


x11 + x21 = 30


sujeito à


 x12 + x22 = 20
m







 x13 + x23 = 20

xij ∈ Z0+

a) Escreva o problema como um problema de transportes, use A para designar armazém e


M para mercado.
b) Usando o método de canto noroeste encontre a primeira aproximação da solução.
Resposta:
a) Modelo padrão dos problemas de transporte.

Mulenga 193 acm@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: Capaci-
ai
dade de fornecimento das fontes: a1 = 25; a2 = 25; a3 = 50; capacidade de absorção dos
gm
destinos: b1 = 15; b2 = 20; b3 = 20; b4 = 45. Os custos associados ao transporte de 1 u.m
da fonte i para o destino j estão no quadro.
@
o8

10 5 6 7
et

8 2 7 6
ub

9 3 4 8
um

a) Usando o método de canto noroeste apresente a distribuição possı́vel das 100 unidades
pelos mercados.
m

b) Usando o método de custo mı́nimo, encontre a primeira aproximação e o custo mı́nimo.


Resposta:
a) W1 = 705
b) W2 = 580

Exercı́cio 6.3. Uma empresa pretende transportar 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 194 acm@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:

om
a) W1 = 501

l.c
b) W2 = 404. O custo total diminuiu em 97 unidades de medida.
ai
Exercı́cio 6.4. A tabela abaixo represente a rede de distribuição de sacos de arroz par-
gm
tindo de três armazéns situados na cidade de Maputo a quatro mercados. Os 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 195 acm@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+

om
b) W = 273, ∀δij ≥ 0 então a solução é óptima Wmin = 273.

l.c
Exercı́cio 6.5. Uma empresa transportadora de diversos produtos é alugada para le-
ai
var artigos de três fábricas F1, F2 e F3 para 4 armazéns A1, A2, A3 e A4 de onde são
gm
vendidos para os clientes a porta. O lúcro de transporte de uma carrada está indicado por
cada rota, bem como a capacidade das fábricas e dos armazéns.
@
o8

– A1 A2 A3 A4 Oferta
et

F1 26 26 20 21 450
ub

F2 21 24 20 21 300
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 pe-
los 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, procure
encontrar a melhor solução.
Resposta:
a) Z1 = 23170 u.m.
b) ∀δij ≤ 0, logo Zmax = 23170.

Mulenga 196 acm@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
l.c
a) Usando o método de aproximação de Vogel encontre a solução inicial do problema.
b) Mostre de que o problema está degenerado. ai
c) Pelo método de MODI, teste a optimidade da solução em a). Se não for óptima, realize
gm
as iterações necessárias e apresente a solução óptima. (Quando necessário use no máximo
duas alocações fictı́cias por infinitésimas).
@

Resposta:
o8

a) W1 = 450 unidades de medida.


et

b) 5 + 3 - 1 = 7, significa que precisamos 7 células ocupadas e como tem-se menos células


ocupadas, então a solução está degenerada.
ub

c) Como ∀δij ≥ 0 a solução é óptima. Wmin = 450.


um

Exercı́cio 6.7. Uma empresa tem 4 armazéns: A1, A2, A3 e A4 cuja capacidade é de 75,
m

50, 60 e 15 toneladas, respectivamente de um determinado produto. Os seus 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 trans-
porte por tonelada entre os armazéns e os compradores são dados pelo quadro seguinte.

– B1 B2 B3 B4
A1 7 10 12 30
A2 10 0 10 20
A3 11 5 12 5
A4 2 10 20 10

Mulenga 197 acm@2020


Investigação Operacional

O objectivo é encontrar um programa óptimo de distribuição do produto que resulte em


um custo total mı́nimo.
a) Usando o método do canto noroeste.
b) Usando o método de aproximação de Vogel.
Resposta:
a) W1 = 1845 u.m.
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 B4


com 150, 200, 100 e 150 soldados, respectivamente. Tem como missão atacar 3 alvos di-

om
ferentes. Os soldados apresentam diferentes especialidades, portanto, com estratégias de
ataque variados e considerando as várias posições dos alvos, o general preencheu o seguinte

l.c
quadro com as toneladas de munições que podem ser disparados para cada alvo, proveni-
ai
entes de cada base.
gm

– A1 A2 A3
@

B1 2 6 5
o8

B2 3 8 9
et

B3 10 7 7
ub

B4 8 4 7
um

Sabendo que se pretendem afectar 200 soldados 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 maxi-
m

miza a quantidade de munições disparados.


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.

Mulenga 198 acm@2020


Investigação Operacional

Custo de transporte por sector em mil meticais

– Sector1 Sector 2 sector 3 Sector 4 Oferta


Gabinete 1 14 15 10 17 12
Gabinete 2 12 18 11 16 9
Procura 3 6 8 4 21

a) Estabeleça a solução inicial usando o método de aproximação de Vogel.

om
b) Usando o método de Stepping Stone, verifique se a solução é óptima, Caso não seja,
determine a solução óptima do problema.

l.c
Resposta:
a) W1 = 276 mil meticais. ai
b) δ23 = −2, a Solução não é óptima, Wmin = 272 mil meticais. ∆w = 4 mil meticais.
gm

Exercı́cio 6.10. Uma empresa tem três armazéns nas cidades de Maputo, Beira e Nam-
@

pula, e tem lojas nas cidades de Xai-Xai, Chimoio, Quelimane e Inhambane. Os custos de
o8

uma viagem no transporte dos produtos dos armazéns às lojas apresentam-se na tabela.
et

– X C Q I Oferta
ub

Armazém 1 38 30 30 45 17
um

Armazém 2 60 25 50 32 32
Armazém 3 42 20 16 70 30
m

Procura 10 14 15 28

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.

Mulenga 199 acm@2020


Investigação Operacional

Exercı́cio 6.11. Um treinador de uma equipa de natação pretende escolher os elementos


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.

– Bruços Mariposa Costas Livre


João 2.3 3.0 2.7 2.1
António 2.5 2.5 2.6 2.0
Filipe 2.3 3.0 2.7 2.0

om
Vasco 2.4 2.9 2.6 2.1

l.c
a) Usando o método Húngaro, determine qual é o estilo que cada nadador deverá fazer
ai
dentro da equipa de modo a alcançar o menor tempo para percorrer os 200 metros no
conjunto dos 4 percursos.
gm
b) Qual será esse tempo mı́nimo.
Resposta:
@

a) Associação Nadador - Estilo:


o8

João → Bruços; António → Mariposa; Filipe → Livre e Vasco → Costas


et

b) O templo mı́nimo é de 9.4 minutos.


ub

Exercı́cio 6.12. Cinco indivı́duos A, B, C, D e E pretendem adquirir automóvel ligueiro


um

segundo as suas preferências, gostos e necessidades. O indivı́duo A pretende um carro


pequeno que não lhe crie problemas de estacionamento, o B um carro confortável para
m

viagens, o C necessita de um carro resistente, o D quer um automóvel de menor consumo


de combustı́vel e E pretende um carro mais espaçoso. Um vendedor possui 5 modelos (Ci-
troen BX; Fiat Uno; Autobianchi Y10; Renault5 GTL e Toyota 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 1 à 50 pontos de cada comprador em relação a cada um dos carros.

Mulenga 200 acm@2020


Investigação Operacional

– 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
E 30 50 30 40 40

Usando o método Húngaro, apresente a melhor distribuição dos carros para os 5 indivı́duos

om
por forma a maximizar a satisfação de cada um.
Resposta:

l.c
A → TOYOTA, B → Y10, C → BX, D → R5 GTL, E → UNO. ai
gm
Exercı́cio 6.13. Uma empresa de segurança está a treinar os seus agentes em termos
de flexibilidade, rapidez, velocidade entre outras exigências que a empresa usa nas suas
@

actividades de segurança de edifı́cios, viaturas, pessoas singulares. Segundo o seu chefe das
o8

operações estão identificadas 6 áreas mais fortes que os polı́cias devem ser mais aptos. A
tabela abaixo apresenta as marcas dos primeiros 6 instruendos escolhidos e as especialida-
et

des que estes podem intervir associados aos tempos que os mesmos podem levar para tal
ub

intervenção.
– A1 A2 A3 A4 A5 A6
um

E1 21 5 21 15 15 28
m

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
Usando o método Húngaro, determine a distribuição óptima dos agentes pelas especialida-
des de modo a minimizar o tempo de intervenção total.
Resposta:
As dustribuição deverá ser: E1A5, E2A4, E3A2, E4A6, E5A3 e E6A1, Wmin = 58 min.

Mulenga 201 acm@2020


Investigação Operacional

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ó po-
derá realizar exactamente uma e única tarefa.

– A1 A2 A3 A4 A5
T1 10 15 10 15 13
T2 12 8 20 16 15
T3 12 9 12 18 16

om
T4 6 12 15 17 12
T5 16 12 8 12 9

l.c
ai
Usando o método Húngaro, determine a distribuição óptima dos trabalhadores de modo
gm
que o tempo total de realização das 5 tarefas seja mı́nimo.
Resposta
@

A distribuição dos trabalhadores é: T1A4, T2A2, T3A3, T4A1, T5A5 e o tempo mı́nimo é
o8

de 50 minutos.
et
ub
um
m

Mulenga 202 acm@2020


Capı́tulo 7

Programação dinâmica

om
7.1 Introdução
l.c
ai
gm
A programação Dinâmica (PD) é uma técnica quantitativa que tem aplicações em muitos
problemas, que são resolvidos mediante uma sequência de decisões. De todas as técnicas
@

matemáticas usadas na investigação operacional, a programação dinâmica é segundo Sham-


o8

blin (1989), a de conceito mais sı́mples e de mais difı́cil de aplicação. O termo programação
dinâmica é usado para investigar problemas de optimização em que o factor tempo é muito
et

crucial.
ub

A programação dinâmica difere da programação linear por dois aspectos:


um

1. Na programação dinámica não existe um algoritmo como por exemplo o método simplex
que pode ser usado para resolver todos os problemas de programação linear;
m

2. A programação dinâmica tem algoritmos que dividem um problema complexo em uma


sequência de subproblemas que são resolvidos em separado.

A dificuldade de aplicação dos modelos da programação dinâmica, reside na falta da for-


mulação clara de um algoritmo de solução dos problemas tratados. Como consequência
disso cada problema exige decisões que devem ser tomadas em função das outras com uma
formulação básica, ainda que esta formulação se aproxime a processos estocásticos tratados
na teoria de decisão markoviana ou na álgebra matricial.

A análise dos fenómenos dinâmicos em função do tempo é muito importante nos problemas

203
Investigação Operacional

de optimização tanto determinı́sticos como probabilı́sticos.

Enquanto muitas das aplicações da programação linear são feitas de uma forma geral,
a programação dinámica está mais virada a problemas especı́ficos, tais como:

• Gestão dos estoques;

• Determinação do nı́vel de acessórios nos modelos de investimento;

• Planeamento da produção numa unidade industrial;

• Alocação de capital entre diferentes actividades;

om
• Plano de procura para a localização de recursos;

l.c
• Selecção de meios de publicidade para promover um novo produto;
ai
• Planeamento de operações de manutenção em grande escala quando o equipamento
gm
é complexo;
@

• Selecção de estratégias ou polı́ticas a longo prazo, para a substituição de equipamento


o8

que se deprecia ao longo do tempo, etc.


et

Segundo Winston (2004), os problemas de programação dinâmica podem ser tratados


ub

usando modelos deterministicos quando os problemas a resolver não incluem na sua for-
um

mulação os conceitos de probabilidade e modelos probabilisticos quando na formulação e


resolução dos problemas são empregues os conceitos de probabilidade. Para este tratamento
m

só será considerada a programação dinâmica determinı́stica.

Exemplo 7.1 Maura Liote, uma aluna universitária, pretende viajar durante as suas férias
da universidade para o seu distrito. O rede que ilustra as possı́veis rotas com distâncias em
km, desde a universidade (nó 1) até ao distrito (nó 7) está apresentada na Figura 7.1. Qual
deve ser a rota que a estudante Maura, deve usar de modo que ela minimize a distância
total percorrida.

Mulenga 204 acm@2020


Investigação Operacional

Figura 7.1: Representação da rede do exemplo 7.1

om
l.c
Para resolvermos este exemplo vamos dividir o problema em 3 estágios:
ai
gm
O estágio 1, possui os seguintes arcos ou distâncias entre nós:
1 → 2; distância = 22;
@

1 → 3; distância = 18;
o8

1 → 4; distância = 20;
et

O estágio 2, possui os seguintes arcos ou distâncias entre nós:


ub

2 → 5; distância = 18;
2 → 6; distância = 36;
um

3 → 6; distância = 28;
4 → 6; distância = 39;
m

O estágio 3, possui os seguintes arcos ou distâncias entre nós:


5 → 7; distância = 10;
6 → 7; distância = 13.

Fazendo uma avaliação no estágio 3, pode-se ver que a distância mı́nima é de 10 km


que liga os nós 5 – 7. Em virtude disso esse arco já pertence a solução. Do nó 5 só chega o
arco 2 – 5 com 18 km, este também pertence a solução. Por último temos o arco 1- 2 com
uma distância de 22 km. Somando as distâncias na sequência de 1 – 7 obtemos a distância
mı́nima total, dmin = 50 km para a rota: 1 – 2 – 5 - 7.

Mulenga 205 acm@2020


Investigação Operacional

Terminologia e notação em programação dinâmica


Independentemente do tipo e tamanho do problema de programação dinâmica, existem
alguns termos e conceitos que são comuns para muitos problemas. Alguns desses conceitos
tão importantes na programação dinâmica são:

1. Estágio ou etapa: é o perı́odo ou a lógica do problema.

2. Estado das variáveis: é a possı́vel situação inicial que a variável possa estar ou
a condição de um determinado estágio. Estas variáveis também são chamadas de
variáveis de entrada.

om
3. Variáveis de decisão: são alternativas ou decisões possı́veis que existem num de-
terminado estágio.

l.c
4. Critério de decisão: é um curso de acções que tem em vista alcançar um determi-
ai
nado objectivo.
gm

5. Polı́tica óptima: é um conjunto de regras de decisão quando desenvolvidas resultam


@

num critério de decisão óptima para qualquer condição e qualquer estágio.


o8

6. Transformação: é qualquer operação algébrica relevante que relaciona dois estágios.


et

Para ilustar a terminologia da programação dinâmica, consideremos o estágio 2 do problema


ub

da Maura, cujo diagrama está apresentado na Figura 7.2.


um
m

Figura 7.2: Elementos de um estágio nos problemas de programação dinâmica

Mulenga 206 acm@2020


Investigação Operacional

Voltando a Figura 7.1, pode se ver que para qualquer estágio, tem-se: uma variável de
entrada, uma decisão, uma variável de saida e o valor retornado por uma função recursiva.

• A variável de entrada no estágio 2 é x2 tem os nós 2, 3, 4 e de saida x3 tem 5 e 6.

• A decisão no estágio 2, d(x2 , x3 ) terá de ser escolhida entre todos os arcos que ligam
com o estágio 3. Os possı́veis arcos são: 4 – 6; 3 – 6; 2 – 6 e 2 – 5.

• A variável de saida do estágio 2, x3 corresponde à variável de entrada no estágio 3.

• Finalmente, cada estágio retorna um valor que é atribuı́do a função fi (xi ). Para o
estágio 2, este valor é a distância dos arcos representados pela função f2 (x2 ):

om
d(4, 6) = 39 km,

l.c
d(3, 6) = 28 km,
d(3, 6) = 36 km,
ai
d(2, 5) = 18 km.
gm
@
o8
et
ub

Figura 7.3: Fluxo de informação que passa no estágio 2


um

A sequência da resolução do problema, está apresentada na Figura 7.4, mostrando as


m

variáveis de entrada, saı́da, a decisão tomada e o valor retornado pela função recursiva.

Figura 7.4: Fluxo de informação que passa nos estágios 1, 2 e 3

Mulenga 207 acm@2020


Investigação Operacional

O processo ao longo dos estágios é:


Estágio 3: f3 (x3 ) = 10 km
Estágio 2: f2 (x2 ) = 18 + 10 = 28 km
Estágio 1: f1 (x1 ) = 22 + 18 + 10 = 50 km

7.2 Recursividade progressiva e regressiva


Na programação linear é possı́vel encontrar um método para determinar a solução de um
determinado problema sem precisar de fraccioná-lo. A programação dinámica não tem
um poder para determinar a solução óptima sobre um todo o problema, por isso, as suas

om
técnicas dividem o problema em subproblemas “estágios”, e procura optimizar a solução
de um estágio em função das decisões passadas e finalmente obtém-se a solução óptima

l.c
dependente das soluções óptimas parciais. Portanto, o método da programação dinámica
ai
é um método multi – estágio e é aplicado para problemas com etapas múltiplas.
gm

De uma forma geral, os problemas da programação dinámica são resolvidos usando um


@

procedimento recursivo, i.é, dado um problema com n - variáveis, este pode ser decom-
o8

posto em n − 1 estágios, atribuindo-se um arco ou vector a cada subproblema (estágio) e


quando conhecido o valor de cada variável é usado para obter os outros valores nos estágios
et

posteriores ou anteriores, segundo o método recursivo usado.


ub

Os conceitos desenvolvidos por Bellman (1954), permitem a optimização parcial de uma


um

porção da sequência e depois liga-se todas porções optimizadas tornando-se uma solucção
optimizada.
m

Seja fi (xi ) a distância mı́nima entre xi−1 e xi no estágio i, define-se:


d(xi−1 , xi ) como distância a partir do nó xi−1 ao nó xi , e a distância fi (xi ) é calculada a
partir de fi−1 (xi−1 ) usando a equação recursiva de Bellman.

fi (xi ) = min {d(xi−1 , xi ) + fi−1 (xi−1 )}, i = 1, 2, ..., n (7.1)


∀(xi−1 ,xi )

Para i = 0 a função recursiva toma o valor f0 (x0 ) = 0.

A equação de Bellman estabelece uma transformação ou relação de recorrência que permite


determinar sucessivamente a sequência óptima em cada estágio do processo de optimização

Mulenga 208 acm@2020


Investigação Operacional

da solução. A partir da equação 7.1, pode-se enunciar o teorema de Bellman.

Teorema. Qualquer que seja o estado inicial e o comando inicial, os comandos seguintes
devem ser óptimos em relação ao estado que representa o resultado da escolha do primeiro
comando.

Esta formulação do teorema, resulta no seguinte princı́pio de optimidade dos problemas


de programação dinâmica.

Princı́pio de Optimidade. A optimização do comando para um estágio qualquer de

om
um processo multi - estágio consiste apenas na escolha dos comandos seguintes.

l.c
Exemplo 7.2. Suponhamos que um indivı́duo pretende seleccionar a rota mais curta
ai
entre a cidade da Matola e a praia do Costa do Sol, passando obviamente pelas artérias da
gm
cidade de Maputo. As possı́veis rotas que ligam os dois pontos estão indicadas no diagrama
e os números de 1 à 7 são entroncamentos onde se pode parar e os números ao longo das
@

rotas são distâncias em km.


o8
et
ub
um
m

Figura 7.5: Rede das possı́veis rotas do exemplo 7.2

Resolução
Para resolver usando a programação dinámica, primeiro decompõe-se o problema em estágios.
A ideia básica é calcular a distância mı́nima acumulada do nó 1 até ao nó 7.
Asssim, usando a equação 7.1, tem-se:
Para x1 = 1; f0 (x0 ) = 0, por consequência d(x0 , x1 ) = 0 e f1 (x1 ) = 0

Mulenga 209 acm@2020


Investigação Operacional

Estágio 1. A variável x1 tem arcos que se ligam com x2 e este pode tomar os valores 2,
3 e 4. Por isso, vai-se calcular as distâncias mı́nimas acumuladas nas rotas 1- 2, 1 – 3 e 1 – 4

f2 (x2 ) = min {d(x1 , x2 ) + f1 (x1 )} onde x2 pode ser 2, 3, 4.


i=2,3,4
se x2 = 2, min {d(x1 , x2 ) + 0 = 7}, f2 (x2 ) = 7
se x2 = 3, min {d(x1 , x2 ) + 0 = 8}, f2 (x2 ) = 8
se x2 = 4, min {d(x1 , x2 ) + 0 = 5}, f2 (x2 ) = 5
para cada um dos casos x1 = 1

Estágio 2. Como existem dois nós destino, vai-se calcular as distâncias mı́nimas acu-

om
muladas para chegar aos nós 5 e 6. Atenção que x2 pode tomar os valores 2, 3 e 4.
f3 (x3 ) = min {d(x2 , x3 ) + 
f2 (x2 )} onde x3pode ser 5 e 6.

l.c
 7 + 12 = 19 
  ai

 

Se x3 = 5 f3 (x3 ) = min 8 + 8 = 16 = 12 para x2 = 4
gm
i=2,3,4 
 

 
 5 + 7 = 12 
@

 
o8

 9 + 8 = 17 
Se x3 = 6 f3 (x3 ) = min = 17 para x2 = 3
i=3,4 
13 + 5 = 18 
et

Estágio 3. A última etapa onde o destino é o nó 7, está ligado aos nós 5 e 6, por-
ub

tanto
um

f4 (x4 ) = min {d(x3 , x4 ) + f3 (x3 )} onde x4 = 7


m

 
 9 + 12 = 21 
f4 (x4 ) = min = 21 para x2 = 5
i=5,6 
6 + 17 = 23 

Desta forma, a distância mı́nima acumulada de 1 à 7 é de 21 km, e a correspondente


rota liga os arcos: 1 – 4 – 5 – 7.

Nos exemplos 7.1 e 7.2, os problemas foram resolvidos usando dois procedimentos recursi-
vos nas direcções diferentes. No primeiro caso começou-se a resolver o problema partindo
do estágio 3 e no último começou-se pelo estágio 1. Diz-se que no primeiro caso usou-se a
recursividade regressiva e no segundo caso a recursividade progressiva.

Mulenga 210 acm@2020


Investigação Operacional

Tanto a recursividade progressiva como a regressiva dão a mesma solução óptima. Ape-
sar da recursividade progressiva ser desenvolvida na lógica como foram aparecendo os nós,
porém, a maior parte da literatura dos problemas de programação dinâmica usa o procedi-
mento regressivo. A preferência por este procedimento deve-se até certo ponto a eficiência
que ele apresenta ao dispor os cálculos numa tabela. A equação correspondente a recursi-
vidade regressiva é:

fi (xi ) = min {d(xi , xi+1 ) + fi+1 (xi+1 )}, i = 1, 2, ..., n (7.2)


∀(xi ,xi+1 )

Para n estágios a igualdade fn+1 (xn+1 ) = 0 é válida.

om
Exemplo 7.3. Resolver o exemplo 7.2, mas agora usando a recursividade regressiva.

l.c
ai
gm
@
o8
et
ub
um

Figura 7.6: Resolução pela recursividade regressiva do exemplo 7.2


m

Resolução
1. O problema tem 3 estágios, 4 variáveis, 7 nós e 10 arcos.
2. Dado que vamos usar a recursividade regressiva f4 (x4 ) = 0 para x4 = 7.
3. A ordem dos cálculos associados aos estágios é f3 (x3 ) → f2 (x2 ) → f1 (x1 )

Estágio 3. x4 = 7, está associado a 5 e 6 logo x3 pode assumir os nós 5 e 6, com


exactamente uma rota para cada um.

Mulenga 211 acm@2020


Investigação Operacional

Estágio 3. Distância acumulada de x4 até x3

f3 (x3 ) = d(x3 , x4 ) + f4 (x4 ) solução óptima


x3 x4 = 7 f3 (x3 ) x∗4
5 9+0 = 9 9 7
6 6+0 = 6 6 7

Estágio 2: x2 , está associado aos nós 2, 3 e 4 logo x2 = 2, x2 = 3, x2 = 4.

om
Estágio 2. Distância acumulada de x4 até x2

l.c
f2 (x2 ) = d(x2 , x3 ) + f3 (x3 ) solução óptima
x2 x3 = 5 x3 = 6
ai f2 (x2 ) x∗3
gm
2 12 + 9 = 21 – 21 5
3 8 + 9 = 17 9 + 6 = 15 15 6
@
o8

4 7 + 9 =16 13 + 6 = 19 16 5
et

A solução do estágio 2, pode ser lida da seguinte forma: se estivermos no ponto 2 ou 4 a


ub

rota mais curta seria passar pelo ponto 5, e se estivermos no ponto 3 a rota curta seria
passar pelo ponto 6.
um

Estágio 1: Do nó 1, tem-se 3 alternativas: 1 - 2; 1 – 3 e 1 – 4. Usando o valor da


m

função f2 (x2 ) obtido no estágio 2, calcula-se o valor acumulado até f1 (x1 ).

Estágio 1. Distância acumulada de x4 até x1

f1 (x1 ) = d(x1 , x2 ) + f2 (x2 ) solução óptima


x1 x2 = 2 x2 = 3 x2 = 4 f1 (x1 ) x∗2
1 7+21 = 28 8+15 = 23 5+16 = 21 21 4

Como chegamos ao fim, a solução do estágio 1, mostra que 1 deve estar ligado com 4. e
sucessivamente temos as ligações entre os arcos: 1 - 4 –5 – 7 que corresponde a rota mais

Mulenga 212 acm@2020


Investigação Operacional

curta entre 1 – 7 com 21 km.

Exemplo 7.4. Suponhamos que se pretende fornecer água a um ponto da cidade de


Maputo, partindo de um dos dois tanques grandes de água A e B. O diagrama na Fi-
gura 7.7 mostra as possı́veis alternativas para o percurso da rede dos tubos de canalização
que transportarão água. Os valores indicados em cada arco indicam os custos associados
aos trabalhos de colocação dos tubos num determinado troço. Usando o método de recur-
sividade regressiva, determine a rota mais económica para se abastecer água, tomando em
consideração que existem duas possibilidades de se chegar ao ponto P.

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

Figura 7.7: Diagrama do exemplo de abastecimento de água ao ponto P

Resolução
Inicialização. Para x6 = P , f6 (x6 ) = 0

Mulenga 213 acm@2020


Investigação Operacional

Estágio 5. P antecede os nós M, N e O. Distância de x6 até x5

f5 (x5 ) = d(x5 , x6 ) + f6 (x6 ) solução óptima


x5 x6 = P f5 (x5 ) x∗6
M 1+0=1 1 P
N 3+0=3 3 P
O 2+0=2 2 P

om
Estágio 4. Temos arcos entre os nós (M, N, O) e (J,K,L). Distância de x6 até x4

l.c
f4 (x4 ) = d(x4 , x5 ) + f5 (x5 )
ai solução óptima
x4 x5 = M x5 = N x5 = O f4 (x4 ) x∗5
gm
J 3+1=4 3+3=6 – 4 M
@

K 2+1=3 2+3=5 4+2=6 3 M


o8

L – 4+3=7 2+2=4 4 O
et
ub

Estágio 3. Temos arcos entre os nós (J, K, L) e (F,G,H, I). Distância até x3
um

f3 (x3 ) = d(x3 , x4 ) + f4 (x4 ) solução óptima


x3 x4 = J x4 = K x4 = L f3 (x3 ) x∗4
m

F 1+4=5 3+3=6 – 5 J
G 2+4=6 1+3=4 3+4=7 4 K
H 4+4=8 1+3=4 2+4=6 4 K
I – 5+3=8 1+4=5 5 L

Mulenga 214 acm@2020


Investigação Operacional

Estágio 2. Temos arcos entre os nós (F,G, H, I) e (C, D, E). Distância até x2

f2 (x2 ) = d(x2 , x3 ) + f3 (x3 ) solução óptima


x2 x3 = F x3 = G x3 = H x3 = I f2 (x2 ) x∗3
C 1+5=6 3+4=7 4+4=8 – 6 F
D 2+5=7 1+4=5 2+4=6 4+5=9 5 G
E – 5+4=9 4+4=8 2+5=7 7 I

Estágio 1. Temos arcos entre os nós (C,D,E) e (A, B). Distância até x1

om
f1 (x1 ) = d(x1 , x2 ) + f2 (x2 ) solução óptima
x1 x2 = C x2 = D x2 = E
l.c f1 (x1 ) x∗2
ai
A 1+6=7 3+5=8 3 + 7 = 10 7 C
gm

B 5 + 6 = 11 4+5=9 1+7=8 8 E
@
o8

Fazendo uma leitura no sentido inverso de modo a ligar os nós que pertencem ao percurso
da solução óptima temos: (1) Do ponto A, o percurso mı́nimo para P é: A → C → F→
et

J → M → P com distância mı́nima de 7 unidades de medida. (2) Do ponto B ,o percurso


ub

mı́nimo para P é: B → E → I → L → O → P com distância mı́nima de 8 unidades de medida.


um

Portanto, é melhor abastecer água o ponto P partindo do tanque A que apresenta um


custo mı́nimo de 7 unidades de medida.
m

Exemplo 7.5. Um candidato presidencial decidiu percorrer algumas localidades saindo de


Maputo até Pemba. O percurso de viagem é as vezes instável devido a aposição que pode
até baicotar a sua agenda. O candidato sabe o ponto de partida, de chegada e de algumas
localidades por onde deve passar ligadas por várias rotas possı́veis onde cada localidade
é representada por uma letra dentro de um circulo e a direcção da viagem é sempre da
esquerda para a direita no diagrama. Assim, foi necessário quatro etapas para viajar do
Maputo para Pemba. Este candidato estava bastante preocupado com a sua segurança.
Depois de pensar um pouco, ele descobriu uma maneira bastante inteligente de determinar
o caminho mais seguro em termos de vida e foram determinadas apólices de seguro para

Mulenga 215 acm@2020


Investigação Operacional

diligenciar as passagens em cada etapa. Porque há um custo da polı́tica a tomar, a execução
de qualquer diligência foi baseada em uma avaliação dos custos da segurança. O avaliador
decidiu que a rota mais recomendada deve ser aquela com o valor total de apólice de seguro
de vida mais barata. O custo de cada rota, isto é, do estado i ao estado j, indicado por
cij , é apresentado na Figura 7.8.

om
l.c
ai
gm

Figura 7.8: Diagrama do exemplo 7.5 do candidato


@
o8
et

Usando o procedimento regressivo eonsiderando de que os valores que estão nos arcos
ub

representam custos, qual deverá ser a rota que o candidao deverá percorrer. Apresente
também o custo total da apólice. (1 um = $100 americanos).
um

Resolução
m

Inicialização f5 (x5 ) = 0

Estágio 4. Temos arcos entre os nós (H, I) e (J). Distância até x5

f4 (x4 ) = d(x4 , x5 ) + f5 (x5 ) solução óptima


x4 x5 = J f4 (x4 ) x∗5
H 3+0=3 3 J
I 4+0=4 4 J

Mulenga 216 acm@2020


Investigação Operacional

Estágio 3. Temos arcos entre os nós (E,F,G) e (H, I). Distância até x3

f3 (x3 ) = d(x3 , x4 ) + f4 (x4 ) solução óptima


x3 x4 = H x4 = I f3 (x3 ) x∗4
E 1+3=4 4+4=8 4 H
F 6+3=9 3+4=7 7 I
G 3+3=6 3+4=7 6 H

om
Estágio 2. Temos arcos entre os nós (B,C,D) e (E,F,G). Distância até x2

l.c
f2 (x2 ) = d(x2 , x3 ) + f3 (x3 ) ai solução óptima
x2 x3 = E x3 = F x3 = G f2 (x2 ) x∗3
gm
B 7 + 4 = 11 4 + 7 = 11 6 + 6 = 12 11 E ou F
@

C 3+4=7 2+7=9 4 + 6 = 10 7 E
o8

D 4+4=8 1+7=8 5 + 6 = 11 8 E ou F
et
ub

Estágio 1. Temos arcos entre o nó (A) e os nós (B,C,D). Distância até x1
um

f1 (x1 ) = d(x1 , x2 ) + f2 (x2 ) solução óptima


x1 x2 = B x2 = C x2 = D f1 (x1 ) x∗2
m

A 2 + 11 = 13 4 + 7 = 11 3 + 8 = 11 11 C ou D

Ligado os nós desde A até J tem-se três alternativas de percurso:


(1) A – C - E – H – J , (2) A – D – E – H – J e (3) A – D – F – I – J.
As três rotas têm um custo total da apólice de $1100 dolares.

Mulenga 217 acm@2020


Investigação Operacional

7.3 Aplicações da programação dinâmica


Como foi referido na introdução, em geral, nas aplicações existe uma atensão especial a
três elementos básicos nos modelos de programação dinâmica.

1. Definição dos estágios ou etapas.

2. Definição das alternativas de cada estágio.

3. Definição de estados para cada estágio.

om
Apresenta-se em seguida a descrição ssucinta de três aplicações:
Modelo de dimensionamento da força de trabalho. Alguns projectos de construção,

l.c
lidam-se com problemas de como manter a força de trabalho num determinado perı́odo,
ai
pois, a actividade de despedimento e aquisição de novos funcionários inclui custos. O ob-
jectivo nestas situações é procurar uma polı́tica de quando contratar, quando despedir e
gm
quando manter um funcionário de modo que no fim de um perı́odo X, o rendimento seja
máximo.
@
o8

Modelo de reposição de um equipamento. Muitas das máquinas, depois de um


et

perı́odo X de trabalho começam economicamente a reduzir o seu rendimento e os custos


ub

de manutenção por outro lado tendem a aumentar. Este problema pode ser reduzido a de-
terminar a viabilidade económica entre comprar uma nova máquina ou manter a máquina
um

antiga que pouco a pouco vai necessitando reabilitação.


m

Modelo de investimento. Se uma pessoa pretende investir num banco, ele tem ini-
cialmente um capital X, que depois de um prazo Z, deve decidir se continua a investir
ou não, e assim em diante. Este problema pode ser considerado como um problema de
programação dinâmica, onde a decisão referente a quantidade a investir em cada perı́odo
corresponde a um estágio.

7.4 Dificuldades da programação dinâmica


Embora a programação dinámica teoricamente possa ser usada para resolver um número de
problemas extremamente amplo, as aplicações tornam-se muito rapidamente difı́ceis, isso

Mulenga 218 acm@2020


Investigação Operacional

deve – se:

a) ao tamanho dos problemas que aumenta de forma exponencial a medida que aumenta o
número dos estágios.

b) a recursividade, que permanentemente necessita de um espaço para guardar as res-


postas anteriores, não sendo possı́vel optimizar o estágio n + 1 antes do estágio n + 2 ou
vice-versa.

c) a formulação dos modelos dos problemas de programação dinâmica não é geral, sendo es-

om
pecı́fica para cada caso. A tı́tulo de exemplo, cada uma das aplicações citadas na secção 7.3
tem sua própria equação recursiva, etc.

l.c
ai
7.5 Exercı́cios propostos
gm

Exercı́cio 7.1 Usando o procedimento de recursividade regressiva, resolva o problema de


@

modo a encontrar a rota mais curta entre os pontos 1 à 9.


o8
et
ub
um
m

Resposta. A rota mais curta é: 1 - 2 - 5 - 8 - 9, com distância mı́nima da 19 unidades de


medida.

Exercı́cio 7.2. Um empresário chegou no aeroporto de Maputo as 7:10 minutos e pre-


tende fechar um negócio com um amigo do ramo industrial. Ele tem muita pressa e gostaria
de chegar o mais rápido possı́vel na baixa da cidade. Os taxistas sabem que a esta hora
tem muito tráfego de veı́culos na cidade e é preciso decidir a rota a usar de modo que ele
minimize o seu tempo. Usando a recursividade regressiva resolva o problema de modo a

Mulenga 219 acm@2020


Investigação Operacional

encontrar a rota mais rápida possı́vel. Repare que quanto mais clientes o taxista transpor-
tar por unidade de tempo mais rendimento terá no fim da jornada.

om
Resposta. A rota mais curta é: 1 - 3 - 7 - 10 - 12, com um tempo mı́nima de 13 minutos.

l.c
ai
Exercı́cio 7.3 O prédio K está a ser construido num dos arredores da cidade de Ma-
gm
puto, A e B são tanques de água localizados no interior da cidade. Usando a recursividade
regressiva da equação de Bellman, determine o percurso mı́nimo e o tanque que deverá
@

abastecer água ao novo prédio.


o8
et
ub
um
m

Resposta. Deve-se partir do tanque A usando a rota A – D - F - H ou A-D-F-I – K. Com


uma distáncia mı́nima de 36 km.

Exercı́cio 7.4. Um dos vôos de uma companhia aérea está prestes a descolar da cidade
X para a cidade Y. Existe alguma flexibilidade na escolha da rota exacta a ser tomada,
dependendo das condições climáticas. A rede a seguir mostra as rotas possı́veis em consi-
deração, onde X e Y são as cidades de origem e destino, respectivamente, e os outros nós
representam cidades intermédias. O vento nos percursos entre as cidades afecta bastante
o tempo de vôo e o consumo de combustı́vel. Com base nos relatórios meteorológicos, os

Mulenga 220 acm@2020


Investigação Operacional

tempos de vôo em horas para esse vôo especı́fico são mostrados ao lado dos arcos. Como
o combustı́vel consumido é muito caro, a administração da companhia aérea estabeleceu
uma polı́tica de escolher a rota que minimiza o tempo total de voo.

om
l.c
(a) O que desempenha o papel de “distâncias” na interpretação deste problema como um
problema de caminho mais curto. ai
Resposta. O tempo de vôo em cada arco.
gm
(b) Usando o procedimento regressivo da equação de Bellman, resolva o problema.
Resposta. A rota com menor tempo é X – C – E – Y, e vai durar 11 horas e 18 minutos.
@
o8

Exercı́cio 7.5. A rede abaixo representa o percurso que uma pessoa pode realizar para
sair dos pontos 1 ou 2 até o ponto 11, os números entre as setas representam o tempo gasto
et

para sair de i para j em minutos. Usando o algoritmo proposto por Bellman na sua versão
ub

da recursividade regressiva encontre a rota que o indivı́duo deve seguir gastando o mı́nimo
um

tempo possı́vel.
m

Resposta. Deve-se partir do ponto 2 e usar a rota 2 – 5 - 7 - 8 - 11. Com uma distáncia
mı́nima de 10 km.

Mulenga 221 acm@2020


Bibliografia

[1] Ackoff, R.L. e Sasieni, M.W. (1968). Fundamentals of Operations Research. John

om
Waley & Sans, Inc. USA.

[2] Andrade, E.L. (1998). Introdução à Pesquisa Operacional – métodos e modelos para

l.c
a análise de decisão, 2a edição, editora LTC, RJ Brasil.
ai
[3] Barnett, R.A. e Michael, R.Z. (1990). Finite Mathematics for Business, Economics,
gm
Life science and Social sciences. 5th edition, USA.
@

[4] Bellman, R. E. (1954). The Theory of Dynamic Programming. Bulletin of the Ame-
o8

rican Mathematical Society, 60 (6): pp. 503–516.


et

[5] Churchman, C.W. (1971). The Design of Inquiring Systems, Basic Concepts of Sys-
ub

tems and Organizations. Basic Books, New York.


um

[6] Dakin,R.J.(1965). A Tree Search Algorithm for Mixed Integer Programming Pro-
blems.The Computer Journal, 8(3), pp.250–255.
m

[7] Dantzig, G. B. (1951). Application of the Simplex Method to a Transportation Pro-


blem. In Koopmans, T. C., (editor): Activity Analysis of Production and Allocation.
pp. 359–373.

[8] Dantzig, G.B.(1947). Maximization of a Linear Function of Variables Subject to Li-


near Inequalities. In Koopmans, T.C. (editor):Activity Analysis of Production and
Allocation. pp. 339 – 347.

[9] Ferreira, M.A.M. e Amaral, I.(1995).Programação Matemática, 2a edição, Edições


Sı́labo, Lisboa.

222
Investigação Operacional

[10] Gale, D., Kuhn, H.W. e Tucker, A.W.(1951). Linear Programming and the Theory
of Games. Activity Analysis of Production and Allocation, 13, pp.317–335.

[11] Gomory, R.E. (1958). Outline of an Algorithm for Integer Solutions to Linear Pro-
grams. Bulletin of the American Mathematical Society, 64(5), pp. 275 – 278.

[12] Hillier, F.S. e Liemberman, G.J. (2015). Introduction to Operations Research. Late
of Stanford University, 10th Edition. ISBN 978-0-07-352345-3.

[13] Hitchcock, F.L. (1941). The Distribution of a Product from Several Sources to Nu-
merous Localities, Journal of Mathematics and Physics, 20, pp. 224–230.

om
[14] Kantorovich, L.V.(1958). On The Translocation of Masses. Management Science,
5(1). pp.1–4.

l.c
[15] Kantorovich, L.V. (1939). Mathematical Methods of Organizing and Planning Pro-
ai
duction. Management Science, 6(4), pp. 366–422.
gm
[16] Koopmans, T.C. (1947). Optimum Utilization of the Transport system. Econome-
trica, 17, pp. 136–146.
@
o8

[17] Kuhn, H.W. (1955). The Hungarian Method for the Assignment Problem. In: Naval
Research Logistics Quartely. 2(1-2), pp. 83 –97.
et

[18] Land, A.H e Doig, A.G.(1960). An Automatic Method of Solving Discrete Program-
ub

ming Problems. Econometrica, 28(3), pp. 497–520.


um

[19] Render, B.; Stair, Jr.R. e Hanna, M.E.(2012). Quantitative Analysis for Management.
11th edition, Prentice – Hall International, Pearson Inc. USA.
m

[20] Taha, H.A. (2007). Operations Research - an introduction. 8th edition, Prentice –
Hall International, Inc, USA.

[21] Taha, H.A. (1975). Integer Programming: Theory, Applications and Computations.
Academic Press, Orlando, FL.

[22] Von Neumann, J.(1947). Duality Theory. Privately circulated notes, Princeton.

[23] Winston, W.L. (2004). Operations Research - applications and algorithms. Fourth
edition, Thomson Brooks/Cole.

Mulenga 223 acm@2020


Alberto Mulenga, docente da Univer-
sidade Eduardo Mondlane, é Doutor
em Estatı́stica e Gestão de Risco pela
Universidade Nova de Lisboa (Portu-
gal), Mestre em Estatı́stica Aplicada
pela Universidade de Orebro (Suécia),
Pós-Graduado em Gestão de Empre-
Alberto Mulenga, docente na Universidade Edu-
sas pelo INDEG - Business School
ardo Mondlane, é Doutor em Estatı́stica e Gestão
ISCTE/ISPU (Moçambique), Licenciado
de Risco pela Universidade NOVA de Lisbora
em Informática e Bacharel em ensino de

om
(Portugal), Mestre em Estatı́stica Aplicada pela
Matemática e Fı́sica pela Universidade
Universidade de Orebro (Suécia), Pós-Graduado
Edurado Mondlane (Moçambique). O

l.c
em Gestão de Empresas pelo INDEG - Business
autor é docente de Estatı́stica e Inves-
School ISCTE/ISPU (Moçambique), Licenciado ai tigação Operacional na Universidade
em Informática e Bacharel em ensino de Ma-
Eduardo Mondlane, Universidade à
gm
temática e Fı́sica pela Universidade Edurado
Politécnica, Universidade Técnica de
Mondlane (Moçambique). O autor é docente
Moçambique. É investigador do Cen-
@

de Estatı́stica e Investigação Operacional na


tro de Matemática e Aplicações da
o8

Universidade Eduardo Mondlane, Universi-


Faculdade de Ciências e Tecnologia da
dade à Politécnica, Universidade Técnica de
et

Universidade NOVA de Lisboa, membro


Moçambique. É investigador do Centro de Ma-
ub

da Comissão Cientı́fica do Departamento


temática e Aplicações da Faculdade de Ciências
de Matemática e Informática da Uni-
um

e Tecnologia da Universidade Nova de Lisboa,


versidade Eduardo Mondlane e membro
membro da Comissão Cientı́fica do Departamento
do Conselho Cientı́fico da Universidade
m

de Matemática e Informática da Universidade


Técnica de Moçambique.
Eduardo Mondlane e membro do Conselho Ci-
entı́fico da Universidade Técnica de Moçambique.

Maputo, 13 de Outubro de 2020


Typeset by LATEX 2ε

Você também pode gostar