Sei sulla pagina 1di 56

Engenharia de Produção

Pesquisa Operacional II - 2012/2

UNIDADE I – PROGRAMAÇÃO LINEAR INTEIRA

1) INTRODUÇÃO

Os problemas de Programação Linear Inteira podem ser entendidos como


casos específicos da Programação Linear (conjunto solução contínuo), onde
todas, ou parte, das variáveis de decisão devem ser inteiras.

Quando se usa esta classe de modelos é importante se ter mente o grau de


dificuldade associado à sua solução. No entanto, isto não quer dizer que
problemas que exijam computadores com alta capacidade computacional não
possam ser resolvidos em um tempo aceitável. Mesmo que a solução ótima
não seja encontrada, é possível obter boas soluções viáveis e mostrar quão
próximo da solução ótima podem estar.

Um problema de programação linear inteira pode apresentar as seguintes


situações:
 Todas as varáveis de decisões são inteiras: são problemas
denominados Problemas de Programação Linear Inteira Pura – PLIP;
 Parte das varáveis de decisões são inteiras: são problemas
denominados Problemas de Programação Linear Inteira Mista – PLIM;
 Todas as varáveis de decisões são binárias: são problemas
denominados Problemas de Programação Linear Inteira Binária – PLIB;
 Parte das varáveis de decisões são binárias: são problemas
denominados Problemas de Programação Linear Inteira Binária Mista –
PLIBM.

O modelo formal pode ser expresso por:

Prof. Marcelo Sucena Página 1 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

2) FORMAS PARA RESOLVER PROBLEMAS PLI

Inicialmente, pode-se propor a solução de problemas de programação linear


inteira por arredondamento ao final da aplicação de um método de
programação linear, como por exemplo, pelo Simplex.

Para tanto, deve-se ignorar, temporariamente, a restrição que impõe que as


variáveis de decisão devam ser inteiras. Caso a resposta não seja um número
inteiro, deve-se arredondá-la. Uns dos maiores problemas desta forma de
resolver problemas de PLI é que o arredondamento pode não redundar em
uma solução ótima (ver figura adiante).

Outra abordagem é o método de enumeração que, pela avaliação das soluções


viáveis, escolhe-se a melhor, ou seja, para problemas de maximização, a
maior; para os de minimização, a menor. Um dos maiores entraves para a
aplicação deste método é de ser impraticável para problemas reais que
geralmente envolvem várias variáveis de decisão (observe o item 2 a seguir).

Deve-se considerar algumas observações:

1) O número de soluções em um problema de PLI é finito, mas isto não


implica que seja fácil de resolver;
2) Num problema de PLIB com n variáveis há 2n soluções, por isso, para
alguns problemas, fica impossível enumerar todas as soluções;
3) Os melhores algoritmos não podem garantir a solução de todos os
problemas, mesmo relativamente pequenos (< 100 variáveis);
4) Para os valores que são suficientemente grandes para que o
arredondamento não introduza erros significativos, pode-se até pensar
neste artifício matemático;

Para exemplificar, o gráfico a seguir expõe uma situação onde as


soluções arredondadas não são viáveis. Em destaque a Região das
Soluções Viáveis (RSV) de um problema de PL.

Prof. Marcelo Sucena Página 2 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Solução ótima para a


relaxação linear

RSV

Fonte: Silva (2001)

O próximo gráfico apresenta uma situação em que a solução arredondada está


longe da ótima:

Solução ótima para o


problema de PLI

Solução ótima para a


relaxação linear

RSV

Fonte: Silva (2001)

3) BRANCH-AND-BOUND

Como qualquer problema puro de PLI tem quantidade finita de soluções


possíveis, deve-se considerar a utilização de um método de enumeração para
encontrar um valor ótimo. Para esses casos, infelizmente a quantidade de
possíveis soluções é, geralmente, muito grande, sendo então fundamental que
o método utilizado seja suficientemente estruturado para que apenas uma
pequena parte das soluções possíveis sejam realmente examinadas.

O método Branch-and-Bound (em português, particionar e limitar “as


partições”) é um algoritmo que apresenta essa qualidade. Como os problemas
de PLI são “relativamente grandes”, para resolvê-los diretamente deve-se
Prof. Marcelo Sucena Página 3 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

dividi-lo em sub-problemas cada vez menores, até que estes possam ser
solucionados. Sendo assim, a idéia é desenvolver uma enumeração inteligente
dos pontos candidatos (nós) em busca da solução ótima inteira do problema,
por meio da partição do espaço e avaliação progressiva das soluções.

A forma de divisão em problemas menores parte do princípio da separação de


uma das variáveis de decisão inteiras, em um problema relaxado, utilizando-a
em restrições contraditórias, criando uma espécie de ramificação (a partir de
um nó), como em uma árvore.

Uma das formas de relaxação consiste em, temporariamente, ignorar as


restrições de integralidade do problema de PLI, tornando-o um problema de PL,
ficando, portanto, mais simples de resolver. A partir deste, pode-se usar para
resolvê-lo o método Simplex. Deve-se considerar que o conjunto de soluções
viáveis do problema original (PLI) esteja contido no conjunto de soluções
viáveis do problema relaxado (PL), como exemplificada na figura adiante,
implicando em:

a) Se o problema relaxado não tem solução viável, então o problema de


PLI também não tem;
b) O valor mínimo do problema de PLI não é menor que o valor máximo do
problema relaxado;
c) Se uma solução ótima do problema relaxado é viável no problema de
PLI, então ela é uma solução ótima do problema de PLI.

À esquerda, o conjunto de soluções de um problema de PLI e à direita, a RSV


de um problema de PL. Fonte: Silva (s/d)

A escolha do ponto (nó) para ramificação da árvore pode-se ser efetuada,


dentre as várias técnicas, nas seguintes:

Prof. Marcelo Sucena Página 4 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

 Jumptracking: implementa uma busca em largura (figura a seguir), onde


um nó com o mínimo limite inferior é selecionado para examinação.
Nesta estratégia o processo de ramificação salta de um ramo para outro
na arvore de busca.
 Backtracking: implementa a busca em profundidade (figura a seguir),
onde os nós descendentes de um nó pai são examinados em uma
ordem arbitrária ou em ordem de limites inferiores não-decrescentes.
Nesta estratégia, primeiramente prossegue-se até o nível mais baixo por
algum caminho para encontrar uma solução tentativa e então refazer
aquele caminho para cima até o primeiro nível com nós ativos e assim
por diante.
É fácil notar que a estratégia jumptracking tende a construir uma grande lista
de nós ativos, enquanto backtracking mantém relativamente uns poucos nós na
lista a qualquer momento. Uma vantagem do jumptracking é a qualidade de
suas soluções tentativas, que são geralmente muito mais próximas do ótimo do
que soluções geradas por backtracking, especialmente nos estágios iniciais da
busca.

Busca em profundidade Busca em Largura


(Backtracking) (Jumptracking)

Variantes Híbridas

Na análise dos pontos candidatos faz-se necessário determinar quais são os


pontos promissores, ou seja, aqueles que devam ser examinados ou
descartados para análises futuras. Esta análise segue o seguinte critério:

d) O problema candidato relaxado (PL) não tem solução viável. Devido ao


item a anterior, o problema candidato (PLI) também não tem solução
viável;
e) A solução ótima do problema candidato relaxado é pior do que a melhor
solução atualmente conhecida. Observar que a solução ótima do
problema candidato relaxado é sempre melhor ou igual à solução do
problema candidato e de seus descendentes.
e.1) Num problema de maximização, o máximo do problema relaxado
constitui o limite superior para o máximo do problema original;

Prof. Marcelo Sucena Página 5 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

e.2) Num problema de minimização, o mínimo do problema relaxado


constitui limite inferior para o mínimo do problema original.

f) Uma solução ótima do problema relaxado é viável, também é no


problema candidato. Devido ao item c anterior, ela também é ótima no
problema candidato. Como uma solução viável de qualquer dos sub-
problemas é também uma solução viável do problema, então a solução
é também factível. Caso a solução seja melhor que a atual, a solução
deste problema ocupará a posição de melhor solução atual, descartando
a anterior.

O próximo exemplo, exposto por Silva (2001), apresenta a aplicação do método


Branch-and-Bound para variáveis de decisão binárias (PLIB).
Exemplo 1:

Solução:
 Quando se lida com variáveis binárias, a forma mais simples de
particionar o problema é fixar o valor de uma das variáveis, como por
exemplo, x1=0 e x1=1
 Fazendo-se a substituição de x1 no problema inicial obtém-se dois novos
sub-problemas. Estes novos problemas são mais simples (ou
menores...) do que o inicial.

Para x1=0 Para x1=1

Prof. Marcelo Sucena Página 6 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Para os sub-problemas anteriores, pode-se estruturar uma árvore denominada


de solução ou de enumeração. A figura a seguir apresenta esta árvore.
X1
0

Z
1

Existem muitos métodos sofisticados para se fazer esta ramificação, embora


neste exemplo fosse considerada a escolha das variáveis na sua ordem
natural.

Para cada um desses sub-problemas faz-se necessário calcular um limite à


qualidade da sua melhor solução. Isto é geralmente resolvido por uma versão
simplificada (relaxada) do problema. Esta relaxação é geralmente obtida
eliminando uma ou mais restrições de integralidade do problema.

Por exemplo:
a) Para o caso de maximização, conforme o item e.1 anterior:

f(X) ≤ 8.77
Fonte: Silva (s/d)

Prof. Marcelo Sucena Página 7 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

b) Para o caso de minimização, conforme o item e.2 anterior:

f(X) ≥ 24.8
Fonte: Silva (s/d)

Voltando-se para o problema, para se obter a solução inicial relaxada do


problema de PLIB, substitui-se a restrição natural (última linha do modelo) por
0 ≤ xj ≤ 1. Resolvendo-se pelo método Simplex, usando o software Lindo (figura
a seguir) chega-se ao seguinte resultado: x1=0,83; x2=1;x3=0;x4=1; Z=16,5

Prof. Marcelo Sucena Página 8 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Portanto Z deve ser menor ou igual a 16,5. Como Z deve ser um número
inteiro, arredonda-se a solução para 16. Tomando-se agora os dois sub-
problemas (x1=0 e x1=1) propostos anteriormente, chega-se a seguinte solução:

Para x1=0: x2=1; x3=0; x4=1; Z=9 (Figura a seguir com a solução no software
Lindo). Portanto Z ≤ 9

Para x1=1: x2=0,8; x3=0; x4=0,8; Z=16,2 (Figura a seguir com a solução no
software Lindo). Portanto Z ≤ 16 (valor inteiro).

Prof. Marcelo Sucena Página 9 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

A solução em árvores expressa os resultados dos sub-problemas anteriores.


X1
0
9
Z (0,1,0,1)
16 1
(0.83,1,0,1)
16
(1,0.8,0,0.8)

A solução relaxada do nó x1=0 é inteira, portanto, esta deve fazer parte como
solução ótima do sub-problema em questão e candidata para solução ótima
final (Z*=9). Como 9 é o valor máximo neste ramo, as outras soluções
derivadas conduzirão à respostas inferiores, o que não é interessante. Sendo
assim, este ramo não deverá servir para a continuidade da solução do
problema. X1
0
9
Z (0,1,0,1)
16 1
(0.83,1,0,1)
16
(1,0.8,0,0.8)

Partindo-se para 2ª iteração (usando-se x2=0 e x2=1), pelo nó x1=1, para os


sub-problemas relaxados, tem-se:

Para x1=1 e x2=0: x3=0.8; x4=0; Z=13,8 (Figura a seguir com a solução no
software Lindo). Portanto Z ≤ 13 (valor inteiro).

Prof. Marcelo Sucena Página 10 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Para x1=1 e x2=1: x3=0; x4=0,5; Z=16 (Figura a seguir com a solução no
software Lindo). Portanto Z ≤ 16.

A árvore montada a partir da fixação de x1 e x2 está exposta a seguir. A nova


solução candidata é melhor que a anterior (Z*=13).
X1
0 X2
9 0
Z (0,1,0,1)
13
16 1 (1,0,0.8,0)
(0.83,1,0,1)
16 1
(1,0.8,0,0.8)
16
(1,1,0,0.5)

Para x1=1, x2=1 e x3=0: x4=0.5; Z=16 (Figura a seguir com a solução no
software Lindo). Portanto Z ≤ 16.

Prof. Marcelo Sucena Página 11 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Para x1=1, x2=1 e x3=1 o modelo se apresenta sem soluções possíveis. O


referido está exposto a seguir.

A árvore após a solução dos sub-problemas anteriores fica da seguinte forma:

0 X2
9 0 X3
Z (0,1,0,1)
13 0
16 1 (1,0,0.8,0)
(0.83,1,0,1) 16
16 1 (1,1,0,0.5)
(1,0.8,0,0.8)
16 1
(1,1,0,0.5)

Pela fixação dos valores de x4 (x4=0 e x4=1) gera-se uma solução única, sem
criar outros subproblemas. A árvore final fica:
X4
0 X2
9 0
Z 0 X3
(0,1,0,1) 14
13 0
16 (1,1,0,0)
1 (1,0,0.8,0)
(0.83,1,0,1) 16
16 1
1 (1,1,0,0.5)
(1,0.8,0,0.8) Impossível
16 1
(1,1,0,0.5)

Esta última solução candidata é melhor que a solução anterior (Z*=14). Como
não há mais condições de criar sub-problemas, esta é a solução ótima.

Resumidamente, para problemas de PLI de maximização, seguir os passos do


método Branch-and-Bound a seguir:

Prof. Marcelo Sucena Página 12 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

1. Resolver o problema original usando programação linear, por exemplo, pelo


método Simplex. Se a resposta satisfaz a restrição inteira, esta é a solução
ótima. Sendo assim, pare, senão:
2. Encontrar uma solução viável que preencha a restrição inteira para uso
como um limite superior. Usualmente para isso, arredonda-se a variável.
3. Ramificar pela variável de decisão do passo 1 que não tenha um valor
inteiro. Caso todas as variáveis não sejam inteiras, iniciar a ramificação pela de
maior valor do resíduo decimal. Dividir o problema em dois sub-problemas
baseados nos valores inteiros que estão imediatamente abaixo ou acima do
valor não inteiro. Esses limites deverão ser colocados na restrição do
problema.
4. Criar nós no topo desses novos ramos pela solução dos novos problemas.
5. A) Se um ramo leva a uma solução inviável por programação linear,
descarte o nó para continuidade da análise;
B) Se um ramo leva a uma solução viável por programação linear, mas
não é uma solução inteira vá para o passo 6;
C) Se o ramo leva a uma solução inteira viável, examine o valor da
função objetivo. Se este valor é igual ao limite inferior, uma solução
ótima foi alcançada. Se ele não é igual ao limite inferior, mas ele é
menor que o limite superior, adote-o como um novo limite superior e vá
para o passo 6. Finalmente, se ele é maior que o limite superior,
descarte esse ramo.
6. Examine ambos os ramos novamente e adote como limite superior o
valor máximo da função objetivo para todos os nós finais. Se o limite inferior
é igual ao limite superior, pare. Se não, volte ao passo 3.

Exemplo 2 - Silva (s/d):

Iniciar a avaliação por x2: X2

X2≥3 3
12.9 Impossível
(1.7,2.9)
Z
X2≤2
2
11
(3,2)
Prof. Marcelo Sucena Página 13 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

Avaliação por x1:


X2

X2≥3 3
X1 Impossível
2
X2≤2
X1≥2 12.7
(2,2.7) 2 Solução ótima
11
12.9 (3,2)
(1.7,2.9)
Z
X2

X1≤1 X2≥3 3
X1
Impossível
1
X2≤2
11
(1,2.5)
2
9
(1,2)

Exemplo 3 - Silva (s/d):

Prof. Marcelo Sucena Página 14 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Iniciar a avaliação por x2:


X1
2
X1≥2
Impossível
X2 X2

X2≥4 4 5 Solução ótima


X2≥5
41.3 41 40
(2.2,3.7)
Z (1.8,4) X1≤1 (0,5)
X2≤3 1
3
40,4
39
(1,4.3)
(3,3) X2≤4
4
37
(1,4)
Avaliação por x1:
X1
X1
X1≥2 2
X1≥3 3 X2 X2
Impossível
41.3 39 X2≥4 4 X2≥5
(2.2,3.7)
Z (3,3) X1≤1 5 Solução ótima
41
X1≤2 40
2 (1.8,4)
X2≤3 1 X2≤4 (0,5)
41,1
3 40,6
(2,3.9)
(1,4.4) 4
34
(1,3) 37
(1,4)

Exemplo 4 - Silva (s/d):

Prof. Marcelo Sucena Página 15 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

X1
X1
X1≥4 4
X1≥5 5 X2 X2
48
42 46 X2≥3 3 (4,3) X2≥4
(4.3,2)
Z (5,2) X1≤3 4 Solução ótima
43
X1≤4 44
4 (3.2,3)
X2≤2 3 X2≤3 (2,4)
42.3
2 43.1
(4,2.3)
(3,3.1) 3
Impossível
Impossível

Prof. Marcelo Sucena Página 16 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

UNIDADE II – PROBLEMAS DE CONEXÃO

CONCEITOS BÁSICOS DE TEORIA DE GRAFOS

Área contida na Pesquisa Operacional. Pode ser considerada como uma teoria
baseada na interligação de pontos e linhas, utilizada principalmente na solução
de problemas de roteamento.

Em 1736, o matemático suíço Leonhard Euler (1707-1783) resolveu o primeiro


problema (”O problema das pontes de Konigsberg”) cuja solução veio a originar
a teoria dos grafos. O problema era análogo aos atuais quebra-cabeças,
baseados em desenho, cujas linhas devem ser percorridas sem que se tire o
lápis do papel e sem passar duas vezes sobre a mesma linha. Em 1847, o
alemão, físico e matemático Gustav Robert Kirchhoff (1824-1887), iniciou o
estudo de um certo tipo de grafo chamado árvores quando estudava problemas
de circuitos elétricos. Hamilton, em 1859, estudou problemas de caminhos.

Um Grafo é definido como sendo um par ordenado (V,A). Os elementos de V


são denominados vértices ou nós do grafo e os pares ordenados de A,
denominados de arestas ou arcos do grafo. Alguns aspectos importantes
devem ser considerados em relação aos Grafos:

 uando um arco é incidente a um único vértice é denominado "laço".


 Dois vértices são considerados "adjacentes" se eles estão interligados por
um arco.
 Uma "cadeia" é uma seqüência de arcos (orientados ou não). O tamanho de
uma cadeia está relacionada ao número de arcos que a compõe.
 Um "caminho" é uma cadeia em que todos os arcos têm a mesma direção,
ou seja, é um grafo com conjunto de vértices da forma {1, 2, 3, . . , k–1, k} e
conjunto de arestas da forma {{1,2} , {2,3}} , . . , {k–1, k}}.
 Um "ciclo" é uma cadeia cujo vértice inicial e final é o mesmo (cadeia
fechada), isto é, é um grafo com conjunto de vértices da forma {1, 2, 3, . . ,
k–1, k} e conjunto de arestas da forma {{1,2} , {2,3}} , . . , {k–1, k}, {k,1}}
 Um grafo é "conexo" quando existe um caminho entre cada par de vértices,
ou seja, se para todo par x, y de vértices existe um caminho que liga x a y;
caso contrário, o grafo é desconexo.

Quanto às características de seus arcos, um grafo pode ser:

1. Orientado ou não orientado: são orientados quando os seus arcos


possuem uma orientação definida, e não orientados, quando não existe noção
de direção. Quando os arcos não possuem direção, são denominados arestas.

2. Valorado e não valorado: é valorado quando existem valores


atribuídos a cada um dos seus arcos.
Prof. Marcelo Sucena Página 17 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

3. Planar e não planar: é planar quando existe alguma forma de se


dispor seus vértices em um plano, de tal modo que nenhum par de arestas se
cruze. Um grafo não planar, quando projetado sobre um plano, apresenta
interseções de arcos não coincidentes com um nó, em função da sua estrutura
espacial.

Planar Não Planar

A figura a seguir mostra a representação gráfica de um grafo orientado.

V1 V2
V3
V4

G(V,A) => V={V1,V2,V3,V4} e A={V1 V2,V2V3 ,V3V4,V4V1}

Quando em um grafo existe a associação de um ou mais valores aos


arcos e/ou nós, pode-se defini-lo como uma rede.

Sendo assim, pode-se representar uma rede como R={V,A,}, onde V e


A são, respectivamente, os conjuntos de nós e arcos que formam um grafo, e
, os parâmetros associados aos elementos do conjunto A e/ou do conjunto V.

A seguir apresenta-se um exemplo de grafo com os parâmetros nos


arcos e nós.
α1
α12
α41 V1 V2 α2

V3
V4 α23
α4 α34
α3

Podem-se citar alguns valores de  associados aos arcos:

 a capacidade de fluxo, que corresponde ao limite que pode passar


pelo arco;

Prof. Marcelo Sucena Página 18 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

 o custo no arco, que pode ser considerado como um valor monetário,


a distância percorrida ou o tempo de viagem no arco e
 o fluxo no arco.

Existem também os valores de  associados aos nós:

 população de uma cidade;


 número de produtos fabricados em uma unidade e
 demanda de produtos em uma área geográfica.
Os problemas de otimização de redes podem ocorrer em várias áreas,
mas geralmente são encontrados nas áreas de transportes e comunicações.
Um problema típico de transporte consiste em encontrar uma rota, partindo de
uma origem para um destino, considerando que entre esses pontos existem
diversas rotas alternativas e que necessita-se minimizar ou maximizar alguma
medida associada aos arcos e/ou nós. Existem outros problemas em que se
necessita minimizar os valores associados aos arcos, de forma que possa
atender todos os pontos de uma rede. A seguir serão relacionados vários
algoritmos que objetivam a modelagem de redes.

1. PROBLEMAS DE MINIMIZAÇÃO DE REDES

Os algoritmos de minimização de redes tratam da árvore de valor mínimo


em problemas de interligação de redes não orientadas de comunicação, luz,
água, esgoto, minerodutos, gasodutos etc. com o objetivo de atender todos os
nós de uma rede, minimizando o consumo dos meios.
Goldbarg et al. (2000) destaca que os problemas de Steiner em grafos
não direcionados é o problema de conectar, a custo mínimo, um conjunto de
nós de um grafo. Em alguns problemas desses o problema se reduz a análise
do caminho mais curto entre dois nós. Se todos os nós forem conectados,
chega-se a solução de uma árvore geradora mínima.

1.1.Algoritmo de PRIM

Este algoritmo compreende os seguintes passos:

1º passo: selecionar qualquer nó da rede e o inserir no conjunto C (árvore


mínima). O conjunto C* é formado pelos nós não conectados.
2º passo: identificar o nó do conjunto C* que está mais próximo de qualquer um
dos nós do conjunto C. Deve-se repetir este processo até que todos os nós
estejam conectados (C* = ).

Exemplo: Considere o grafo a seguir e avalie quais ligações que deverão ser
implantadas visando a interligação de todos os nós, porém, considerando uma
quilometragem total mínima. Os atributos dos arcos representam as distâncias
entre as regiões.

Prof. Marcelo Sucena Página 19 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

2 9 6
3
3 6
2
1 3 3 5
7
1
3 5
4

C1 = { 4 } e C*1 = { 1,2,3,5,6 } => C2 = { 4,3 } e C*2 = { 1,2,5,6 } =>


C3 = { 4,3,2 } e C*3 = { 1,5,6 } => C4 = { 4,3,2,1 } e C*4 = { 5,6 } =>
C5 = { 4,3,2,1,5 } e C*5 = { 6 } => C6 = { 4,3,2,1,5,6 } e C*6 = 

Resultado Final: 12Km

2 6
3
3
2
1 3 3 5

1.2.Algoritmo de Kruskal

Deve-se construir uma árvore, selecionando-se arcos, iniciando-se pelo


arco de menor atributo, adicionando-os em ordem crescente de atributos, de
modo a não formar ciclos com os arcos já selecionados. O "ponto de parada"
do algoritmo é identificado quando a árvore possuir n-1 arcos conectados,
sendo "n" o número de nós do grafo.

Este algoritmo compreende os seguintes passos:

1º passo: colocar os arcos em ordem crescente de valor. Estes arcos fazem


parte de um conjunto "A*" de arcos não conectados. Inicialmente A é vazio, ou
seja, A=.
2º passo: selecionar o menor dos arcos de A* que não forme um ciclo com os
demais e coloque-o no conjunto A. Um arco forma um ciclo quando os vértices
deste arco já fazem parte da árvore mínima em construção.
3º passo: se A possui n-1 arcos, sendo "n" o número de nós, deve-se parar o
algoritmo, pois os arcos de A compõem a árvore mínima. Caso contrário voltar
para o passo 2.

Prof. Marcelo Sucena Página 20 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Exemplo: Utilizando o mesmo grafo do exemplo anterior, identifique a árvore


mínima pelo algoritmo de Kruskal.

Passo 1 A* = {(3,4),(3,2),(1,2),(3,5),(6,5),(1,4),(4,5),(3,6),(3,1),(2,6)}
A=
Passo 2 A = {(3,4)}
A* = {(3,2),(1,2),(3,5),(6,5),(1,4),(4,5),(3,6),(3,1),(2,6)}
Passo 3 n = 6 e n-1 = 5
O número de elementos de A é igual a 1, e como n(A) < 5, deve-
se retornar ao passo 2.

Passo 2 A = {(3,4), (3,2)}


A* = {(1,2),(3,5),(6,5),(1,4),(4,5),(3,6),(3,1),(2,6)}
Passo 3 n = 6 e n-1 = 5
O número de elementos de A é igual a 2, e como n(A) < 5, deve-
se retornar ao passo 2.

Passo 2 A = {(3,4), (3,2), (1,2)}


A* = {(3,5),(6,5),(1,4),(4,5),(3,6),(3,1),(2,6)}
Passo 3 n = 6 e n-1 = 5
O número de elementos de A é igual a 3, e como n(A) < 5, deve-
se retornar ao passo 2.

Passo 2 A = {(3,4), (3,2), (1,2), (3,5)}


A* = {(6,5),(1,4),(4,5),(3,6),(3,1),(2,6)}
Passo 3 n = 6 e n-1 = 5
O número de elementos de A é igual a 4, e como n(A) < 5, deve-
se retornar ao passo 2.

Passo 2 A = {(3,4), (3,2), (1,2), (3,5), (6,5)}


A* = {(1,4),(4,5),(3,6),(3,1),(2,6)}
Passo 3 n = 6 e n-1 = 5
O número de elementos de A é igual a 5, e como n(A) = 5, deve-
se parar o processo de análise.

Resultado Final: 12Km

2 6
3
3
2
1 3 3 5

Prof. Marcelo Sucena Página 21 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

2. CAMINHO MÍNIMO

Em uma rede, dependendo das suas características construtivas, podem


existir vários caminhos entre um par de nós (origem/destino). Entre os
caminhos possíveis, aquele que possui menor "peso" é chamado de caminho
mínimo. Este peso pode ser representado pela soma dos atributos dos arcos
que formam o caminho, tais como, tempo de viagem, distância percorrida etc..
Para Goldbarg et al. (2000) o problema de caminho mínimo também é
um problema de Emparelhamento. Eles destacam que o emparelhamento nada
mais é que uma forma de reunião ou ligação entre dois elementos ou, no caso
dos grafos, dois vértices.
Para resolver problemas desse tipo, há vários algoritmos (Ford, Faude,
Bellman, Dijkstra, Floyd, Hasse dentre outros) que envolvem maior ou menor
complexidade de cálculo (número de operações elementares, tais como adição,
subtração, multiplicação etc.).

2.1. Algoritmo de Dijkstra

Este algoritmo foi desenvolvido em 1959 e posteriormente Dantizg


(1960) e Nicholson (1960) desenvolveram um algoritmo de duas árvores de
Dijkstra, cuja idéia é construir árvores de caminhos mínimos de um nó de
origem e de um nó de destino, simultaneamente.
O Algoritmo de Dijkstra é utilizado para determinar o caminho mínimo de
um nó para outro nó ou para todos os outros nós da rede, considerando que os
atributos dos arcos são positivos. Todos os arcos devem ser orientados.
Nele, considera-se que um nó é "fechado" quando se encontra o
caminho mínimo da origem até este nó, e aqueles nós cujos caminhos mínimos
ainda não foram encontrados são considerados "abertos".
O conceito de fechado ou aberto está associado à impossibilidade de
encontrar um caminho melhor do que o já encontrado, assim enquanto o nó
não é fechado (ou rotulado) ainda é possível encontrar um caminho de menor
valor até este nó.

Este algoritmo compreende os seguintes passos:


1
1º passo: considerando que d( x )i = min { d( x )i - , d( y ) + d( y , x ) }, onde
(1)

d( x )i é o tamanho do caminho da origem até o nó x.


i é o número de iterações.
d( y ) é o tamanho do caminho da origem até o nó fechado ( y ).
d( y , x ) é o tamanho do arco ( y , x ).

Atribui-se um valor d( x ) para cada um dos nós do grafo, sendo:


d(origem) = 0
d(os outros nós) = 
Considerar "y" o último nó rotulado (fechado).
Prof. Marcelo Sucena Página 22 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

No início do algoritmo o nó de origem é o único rotulado, ou seja y =


origem.

2º passo: para cada nó x não fechado, redefine-se d( x ) conforme expressão


1. O nó aberto que possuir o menor valor d( x ) é fechado e faz-se y = x.
3º passo: se o nó de destino foi fechado então se deve parar a execução do
algoritmo, senão, volte ao passo 2.
Observação: para determinar a seqüência de nós que forma o caminho com
distância mínima, deve-se, retroceder a partir do nó de saída, procurar os nós
com etiquetas definitivas cuja diferença é igual à distância associada ao arco
que os une.

Exemplo: Utilizando o grafo a seguir, identifique o seu caminho mínimo


utilizando o algoritmo de Dijkstra:

3
1 2 2
4
O 3 2 D
3
3 4 2
3

1. d(O) = 0 e d(1), d(2), d(3), d(4), d(D) = 


2. d(O) -> y = O
i = 1, ou seja, 1ª iteração.
d(1)1 = min{d(1)0, d(O) + d(O,1)} = min { , 0+4} = 4
d(2)1 = min{d(2)0, d(O) + d(O,2)} = min { , 0+3} = 3
d(3)1 = min{ , 0+3} = 3
d(4)1 = min{ , 0+} = 
d(D)1 = min{ , 0+} = 
3. Identificar o mínimo entre as distâncias e definir y.
Escolhe-se entre d(2) e d(3), pois esses apresentam atributos iguais a 3.
Optou-se por y = 2 (nó fechado). Se y = D o problema está terminado,
senão continuar do passo 2.

2. i = 2, ou seja, 2ª iteração.
d(1)2 = min{d(1)1, d(2) + d(2,1)} = min { 4, 3+} = 4
d(3)2 = min{d(3)1, d(2) + d(2,3)} = min { 3, 3+} = 3
d(4)2 = min{ , 3+} = 
d(D)2 = min{ , 3+2} = 5
3. Mínimo entre as distâncias 4,3,  e 5 é 3, ou seja, y = 3. O nó y é diferente
de D, então continuar do passo 2.

2. i = 3, ou seja, 3ª iteração.
d(1)3 = min{d(1)2, d(3) + d(3,1)} = min { 4, 3+} = 4
d(4)3 = min{d(4)2, d(3) + d(3,4)} = min { , 3+3} = 6
Prof. Marcelo Sucena Página 23 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

d(D)3 = min{ 5, 3+} = 5


3. Mínimo entre as distâncias 4,6 e 5 é 4, ou seja, y = 1. O nó y é diferente de
D, então continuar do passo 2.

2. i = 4, ou seja, 4ª iteração.
d(4)4 = min{d(4)3, d(1) + d(1,4)} = min {6, 4+2} = 6
d(D)4 = min{ 5, 4+} = 5
3. Mínimo entre as distâncias 6 e 5 é 5, ou seja, y = D. O nó y agora é igual a
D, então deve-se parar o processo de avaliação.

Pergunta-se:
Em qual iteração foi encontrado o primeiro valor de D (d(D) = 5)? Na 2ª
iteração.
Qual era o valor de y nessa iteração? Na 2ª iteração, y é igual a 2.
Identificou-se o nó anterior ao destino: nó 2.
Em qual iteração foi encontrado o primeiro valor de 2 (d(2) = 3)? Na 1ª
iteração.
Qual era o valor de y nessa iteração? Na 1ª iteração, y é igual a O.

2 2

O 3
D

Prof. Marcelo Sucena Página 24 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

UNIDADE III – FLUXOS EM REDE

1. PROBLEMA CLÁSSICO DE TRANSPORTE

O Problema de Transporte constitui uma das principais aplicações da PL para


auxiliar o planejamento e a operação de transportes. O Problema pode ser
formulado inicialmente da seguinte forma:
Considerando-se o transporte de produtos de m origens, onde estão
estocados, para n destinos, onde são necessários. Conhecendo-se os custos
unitários de transporte de cada origem para cada destino (Cij – custo unitário de
transporte da origem i para o destino j), deve-se decidir quanto transportar de
cada origem para cada destino (Xij – quantidade a ser transportada da origem i
para o destino j), de modo gastar o menos possível, ou seja, minimizar o custo
total de transporte. Cada uma das origens é dotada de ai unidades disponíveis
e, cada um dos destinos requer b j unidades, todos inteiros e positivos.
Considerar-se-á inicialmente que a oferta total é igual a demanda total, isto é:
m n

 ai   b j
1 1
O modelo matemático para este problema pode ser expresso da seguinte
forma:
m n
Minimizar: z   Cij X ij
i 1 j 1
n

X
j 1
ij  ai ( i  1,..., m )
Sujeito a:
m

X
i 1
ij  bj ( j  1,..., n )

Com: todos os Xij não negativos e inteiros


Este modelo matemático pode ser representado em forma de tabular conforme
exposto na tabela 1.1.

Tabela 1.1 - Representação do Problema de Transporte

DESTINOS
1 2 3 ... n Oferta
1 C11 C12 C13 ... C1n a1
O X11 X12 X13 X1n
R
2 C21 C22 C23 ... C2n a2
I
X21 X22 X23 X2n
G
... ... ... ... ... ... ...
E
N m Cm1 Cm2 Cm3 ... Cmn am
S Xm1 Xm2 Xm3 Xmn
Demanda b1 b2 b3 ... bn

Exemplo: Uma empresa tem fábricas em três locais diferentes, que abastecem
quatro armazéns distantes uns dos outros. As capacidades das fábricas em um
certo período de tempo são 70, 90 e 115 e as necessidades dos armazéns, no
Prof. Marcelo Sucena Página 25 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

mesmo período de tempo, são 50, 60, 70 e 95. Os custos unitários para cada
encaminhamento fábrica-armazém estão expostos na tabela a seguir.

Tabela 1.2 - Tabela dos custos unitários de transporte das origens para os
destinos

Destinos
A B C D
1 17 20 13 12
Origens

2 15 21 26 25
3 15 14 15 17

Figura 1.1 - Representação gráfica do problema

Disponibilidades
Disponibilidades
das origens
dos destinos
1 C1A=17
70
50
C1B=20 A
C2A=15
90 2 C2B=21
C2C=26
B 60
C2D=25
C3A=15
C3B=14 C1C=13
115 3
C 70
C3C=15
Total = 275 C3D=17
C1D=12

D 95

Total = 275
A solução dos Problemas de Transporte passa por quatro etapas:

1. Determinação de uma solução inicial básica;


2. Teste de solução quanto à condição de ótimo;
3. Melhoria da solução quando não é ótima;
4. Repetição das etapas 2 e 3 até se obter a solução ótima.

Prof. Marcelo Sucena Página 26 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

1.1. Métodos para determinação da Solução Inicial

1.1.1. Método do Canto Noroeste

Começando-se pela célula superior esquerda (canto noroeste), aloca-se a X11


tantas unidades quantas sejam possíveis, sem violar as restrições. Isto
corresponderá ao menor dos dois valores a1 e b1. Após, continua-se o algoritmo
deslocando-se para a célula imediatamente à direita se ainda restar alguma
oferta ou, caso contrário, para a célula imediatamente abaixo. A cada etapa
aloca-se à célula em consideração, tantas unidades quantas sejam possíveis
sem violar as restrições: a soma das alocações da linha i não pode exceder o
valor de ai, a soma da coluna j não pode exceder o valor de b j e nenhuma
alocação pode ser negativa.

Exemplo 2: Utilizando-se os dados do exemplo1, determinar uma solução


inicial utilizando o método do Canto Noroeste.

A B C D Oferta
1 17 20 13 12 70
50 20
2 15 21 26 25 90
40 50
3 15 14 15 17 115
20 95
Demanda 50 60 70 95

1.1.2. Método de Vogel ou Método das Penalidades

O método funciona da seguinte forma:


1. Calcula-se a penalidade para cada uma das linhas e colunas. Escolhe-
se a linha ou coluna que apresenta a maior penalidade. Caso haja mais
de uma, escolhe-se qualquer uma delas;
2. Aloca-se o máximo possível de quantidade para a célula de menor custo
da linha ou coluna escolhida no passo anterior. Isso tornará a
disponibilidade da linha ou coluna a qual tal célula pertence, igual a zero.
Eliminar esta linha ou coluna do restante do processo e
3. Repetir os passos 1 e 2 até que todos os transportes tenham sido
realizados

Considera-se "penalidade de uma linha ou coluna" a diferença positiva entre os


dois custos de menor valor na linha ou coluna.

Exemplo 3: Utilizando-se os dados do exemplo1, determinar uma solução


inicial utilizando o método de Vogel.

Conforme descreve o primeiro passo, deve-se calcular as penalidades e


identificar as maiores.

Prof. Marcelo Sucena Página 27 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

A B C D Oferta Penalidade
1 17 20 13 12 70 1
(13-12)
2 15 21 26 25 90 6
(21-15)
3 15 14 15 17 115 1
(15-14)
Demanda 50 60 70 95
Penalidade 0 6 2 5
(15-15) (20-14) (15-13) (17-12)

As maiores penalidades estão na linha 2 e na coluna B, pois essas obtiveram


penalidades iguais a seis. Deve-se então escolher entre a linha ou a coluna,
pois as pontuações são iguais. Optou-se pela linha 2. Nesta linha, a célula de
menor custo é a que corresponde à coluna A (quinze). Aloca-se, portanto, 50
para tal célula e elimina-se a coluna A dos passos seguintes. Devem-se então
recalcular as penalidades.

A B C D Oferta Penalidade
1 17 20 13 12 70 1
(13-12)
2 15 21 26 25 90 4
50 (25-21)
3 15 14 15 17 115 1
(15-14)
Demanda 50 60 70 95
Penalidade 0 6 2 5
(15-15) (20-14) (15-13) (17-12)

A coluna B apresenta a maior penalidade (seis). Nesta coluna, a célula de


menor custo é a que corresponde à linha 3 (custo igual a 14). Aloca-se,
portanto, 60 para tal célula e elimina-se a coluna B dos passos seguintes.

A B C D Oferta Penalidade
1 17 20 13 12 70 1
(13-12)
2 15 21 26 25 90 1
50 (26-25)
3 15 14 15 17 115 2
60 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 2 5
(15-15) (20-14) (15-13) (17-12)

As tabelas a seguir representam os passos seguintes até que todos os


transportes estejam finalizados.
Prof. Marcelo Sucena Página 28 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

A B C D Oferta Penalidade
1 17 20 13 12 70 1
70 (13-12)
2 15 21 26 25 90 1
50 (26-25)
3 15 14 15 17 115 2
60 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 11 8
(15-15) (20-14) (26-15) (25-17)

A B C D Oferta Penalidade
1 17 20 13 12 70 1
70 (13-12)
2 15 21 26 25 90 1
50 (26-25)
3 15 14 15 17 115 2
60 55 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 26 25
(15-15) (20-14) (26) (25)

A B C D Oferta Penalidade
1 17 20 13 12 70 1
70 (13-12)
2 15 21 26 25 90 1
50 15 (26-25)
3 15 14 15 17 115 2
60 55 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 26 25
(15-15) (20-14) (26) (25)

Prof. Marcelo Sucena Página 29 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

A B C D Oferta Penalidade
1 17 20 13 12 70 1
70 (13-12)
2 15 21 26 25 90 1
50 15 25 (26-25)
3 15 14 15 17 115 2
60 55 (17-15)
Demanda 50 60 70 95
Penalidade 0 6 26 25
(15-15) (20-14) (26) (25)

A solução final está expressa na tabela a seguir:

Tabela 2.3 - Solução Inicial

A B C D Oferta
1 17 20 13 12 70
70
2 15 21 26 25 90
50 15 25
3 15 14 15 17 115
60 55
Demanda 50 60 70 95

1.2. Evolução para a Solução Ótima

Determinada a solução inicial, necessita-se verificar se esta pode ser


melhorada. Por intermédio da tabela 2.3 que representa a solução inicial,
devem-se identificar as variáveis básicas e não-básicas. As primeiras são
identificadas pelas células que têm valores alocados e as segundas, o inverso.

Observa-se na tabela 2.3 que as variáveis básicas são: 1D, 2A, 2C, 2D, 3B e
3C. As variáveis não-básicas são: 1A, 1B, 1C, 2B, 3A e 3D. A seguir serão
descritos os passos para avaliação da existência de uma solução melhorada.

1º passo: devem-se calcular os pesos para todas as linhas e as colunas,


considerando que a soma entre os pesos de cada linha e de cada coluna é
igual ao custo alocado na respectiva célula (linha x coluna). Inicialmente atribui-
se zero à uma linha ou coluna (geralmente a primeira linha) que contenha uma
variável básica. O exemplo a seguir demonstra a alocação deste peso na linha
1 coluna D (célula com custo 12).

Prof. Marcelo Sucena Página 30 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90
50 15 25
3 15 14 15 17 115
60 55
Demanda 50 60 70 95
Pesos 12

Os próximos pesos terão a mesma seqüência de cálculo, conforme expresso


na próxima tabela.

A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 15 25
3 15 14 15 17 115
60 55
Demanda 50 60 70 95
Pesos 12

Seguindo esta forma de cálculo chega-se a seguinte tabela de pesos:

A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 15 25
3 15 14 15 17 115 2
60 55
Demanda 50 60 70 95
Pesos 2 12 13 12

2º passo: utilizando-se os valores dos pesos, calcula-se para cada variável não
básica a quantidade expressa pela seguinte fórmula:

Custo (linha x coluna) - peso da linha - peso da coluna

Calculando-se para a primeira variável não básica (1A), temos o seguinte


resultado:
Custo1A - Peso1 - PesoA = 17 - 0 - 2 = 15

Para as demais linhas x colunas os resultados são:

Prof. Marcelo Sucena Página 31 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

A B C D
1 17-0-2=15 20-0-12=8 13-0-13=0
2 21-13-12=-4
3 15-2-2=11 17-2-12=3

Se todas as quantidades calculadas forem não negativas, a solução presente é


a ótima. Caso alguns dos valores forem negativos, deve-se utilizar como
referência para o próximo passo o valor mais negativo. A célula que abriga este
valor deverá ser transformada em uma variável básica no lugar de uma das
variáveis básicas da última solução.

Neste caso a célula 2B obteve -4 como resultado, demonstrando a


necessidade da continuidade do processo para identificação da solução ótima.

3º passo: para saber quais das variáveis básicas devem ser substituídas pela
variável não básica 2B, deve-se montar um circuito de compensação entre as
variáveis básicas, a partir da variável que deverá entrar e seguindo
alternadamente na direção da linha e na direção da coluna, subtraindo-se e
somando-se o valor de entrada (a princípio um valor X), até o retorno à variável
de entrada. Com este procedimento as restrições de linha e coluna ficam
satisfeitas.
A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 X 15-X 25
3 15 14 15 17 115 2
60-X 55+X
Demanda 50 60 70 95
Pesos 2 12 13 12

4º passo: escolher para a variável que está sendo transformada em básica


(que contém X) o maior valor possível, sem tornar nenhuma variável básica
negativa. Esse valor corresponde ao menor valor entre as células do circuito
onde o valor de entrada (X) estiver sendo subtraído. Esta nova alocação forma
uma nova configuração que pode ser a solução ótima.

A B C D Oferta
1 17 20 13 12 70
70
2 15 21 26 25 90
50 15 25
3 15 14 15 17 115
45 70
Demanda 50 60 70 95

5º passo: voltar ao passo 1 até que a solução seja ótima.


Prof. Marcelo Sucena Página 32 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

Exercício: complete o exemplo anterior seguindo os passos 1 a 5 até obter a


solução ótima.
Recálculo dos pesos

A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 15 25
3 15 14 15 17 115 6
45 70
Demanda 50 60 70 95
Pesos 2 8 9 12

Identificação da negatividade da variável não básica

A B C D
1 17-0-2=15 20-0-8=12 13-0-9=4
2 26-13-9=4
3 15-6-2=7 17-6-12=-1

Montagem do circuito

A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 13
50 15+X 25-X
3 15 14 15 17 115 6
45-X 70 X
Demanda 50 60 70 95
Pesos 2 8 9 12

Recalculo dos pesos

A B C D Oferta Pesos
1 17 20 13 12 70 0
70
2 15 21 26 25 90 12
50 40
3 15 14 15 17 115 5
20 70 25
Demanda 50 60 70 95
Pesos 3 9 10 12

Identificação da negatividade da variável não básica

Prof. Marcelo Sucena Página 33 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

A B C D
1 17-0-3=14 20-0-9=11 13-0-10=3
2 26-12-10=4 25-12-12=1
3 15-5-3=7

Verifica-se que não existem mais resultados negativos expressos na


tabela anterior, concluindo-se que a solução ótima é:

A B C D Oferta
1 17 20 13 12 70
70
2 15 21 26 25 90
50 40
3 15 14 15 17 115
20 70 25
Demanda 50 60 70 95

2. PROBLEMAS DE DESIGNAÇÃO

Um Problema de Designação é um caso especial dos Problemas de


Transporte. Ele consiste em designar cada uma das origens a cada um dos
destinos, exclusivamente, de maneira a otimizar (minimizar ou maximizar) uma
impedância, por isso, a quantidade de origens deve ser igual a de destinos.

Para demonstrar o algoritmo, usar-se-á um exemplo conforme a seguir.

Para transportar máquinas de quatro origens para quatro destinos,


devem-se minimizar os custos totais de movimentação. A tabela a seguir expõe
os custos das movimentações entre origens e destinos.

D1 D2 D3 D4
O1 10 12 15 16
O2 14 12 13 18
O3 10 16 19 15
O4 14 12 13 15

1º Passo - Subtrair em cada célula, de cada linha, o menor valor daquela


linha.
2º Passo - Em seguida efetuar o mesmo procedimento para as colunas.
Como resultado, uma nova tabela deverá expressar esses resultados, onde
cada linha e cada coluna devem ter pelo menos um ZERO.

As próximas tabelas expressam os resultados, para subtração nas linhas


e depois nas colunas.

Prof. Marcelo Sucena Página 34 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

D1 D2 D3 D4
O1 0 2 5 6
O2 2 0 1 6
O3 0 6 9 5
O4 2 0 1 3

D1 D2 D3 D4
O1 0 2 4 3
O2 2 0 0 3
O3 0 6 8 2
O4 2 0 0 0

3º Passo – Deve-se designar as origens para os destinos nas células


onde aparece o elemento ZERO. Preferência para as linhas e colunas que
tenham apenas um ZERO. Cada designação efetuada invalida os ZEROS
existentes nas linhas e colunas designadas. O problema acaba se todas as
origens forem designadas aos destinos existentes.

D1 D2 D3 D4
O1 0 2 4 3
O2 2 0 0 3
O3 0 6 8 2
O4 2 0 0 0

Verifica-se que a designação não terminou, pois a O3 e D3 não foram


conectados.

4º Passo – Deve-se então cobrir os ZEROS da tabela com a menor


quantidade de linhas possível. Faz-se o seguinte:

 Marcar as linhas sem designação (em cinza);


 Nas linhas marcadas, marcar as colunas com zeros (linhas tracejadas);
 Nas colunas marcadas, marcar as linhas com zeros (linhas tracejadas);
 Nas linhas marcadas, voltar a marcar as colunas com zeros até que não
seja possível marcar novas linhas ou colunas;
 Registrar as linhas não-marcadas e as colunas marcadas (setas).

D1 D2 D3 D4
O1 0 2 4 3
O2 2 0 0 3
O3 0 6 8 2
O4 2 0 0 0

5º Passo – Encontrar o menor valor dentre os números não cobertos, de


todos os elementos da tabela. O valor é 2.

Prof. Marcelo Sucena Página 35 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Na próxima tabela, fazer:

 Os elementos não cobertos ficam diminuídos deste número;


 Os elementos no cruzamento de coberturas ficam aumentados desse
número;
 Os outros elementos permanecem iguais.

D1 D2 D3 D4
O1 0 2-2=0 4-2=2 3-2=1
O2 2+2=4 0 0 3
O3 0 6-2=4 8-2=6 2-2=0
O4 2+2=4 0 0 0

Voltar ao 3º passo e designar as origens aos destinos, novamente.

D1 D2 D3 D4
O1 0 0 2 1
O2 4 0 0 3
O3 0 4 6 0
O4 4 0 0 0

Verifica-se, então, que todas as origens foram designadas aos seus


destinos. O resultado é:

O1D1 - custo da tabela inicial = 10


O2D2 - custo da tabela inicial = 12
O3D4 - custo da tabela inicial = 15
O4D3 - custo da tabela inicial = 13
Custo total = 50

Para o caso de maximização, deve-se substituir o quadro por um de


minimização. O exemplo a seguir ilustra esse procedimento.

A tabela a seguir apresenta as eficiências, ou seja, a capacidade de cada


vendedor de atingir o potencial da região (em %), de quatro vendedores,
testados em quatro regiões. Os potenciais de vendas, em $, nas regiões são
conhecidos. Designar um vendedor para cada região para maximizar o valor
total das vendas.

% R1 R2 R3 R4
V1 70 60 80 90
V2 70 80 70 90
V3 60 90 60 70
V4 70 80 70 80

Potencial de vendas ($ x 103): R1 = 100; R2 = 80; R3 = 60; R4 = 90

Prof. Marcelo Sucena Página 36 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

A próxima tabela relaciona as vendas por região:

%x$ R1 R2 R3 R4
V1 70 x 100 60 x 80 80 x 60 90 x 90
V2 70 x 100 80 x 80 70 x 60 90 x 90
V3 60 x 100 90 x 80 60 x 60 70 x 90
V4 70 x 100 80 x 80 70 x 60 80 x 90

%x$ R1 R2 R3 R4
V1 70 48 48 81
V2 70 64 42 81
V3 60 72 36 63
V4 70 64 42 72

Para transformar em um modelo de minimização, deve-se identificar o


maior valor, subtraindo-o dos demais em cada célula, resultando em:

Minimização R1 R2 R3 R4
V1 11 33 33 0
V2 11 17 39 0
V3 21 9 45 18
V4 11 17 39 9

Agora deve-se aplicar o algoritmo conforme o exemplo anterior.

Subtrair o menor número de cada linha.

R1 R2 R3 R4
V1 11 33 33 0
V2 11 17 39 0
V3 21-9=12 9-9=0 45-9=36 18-9=9
V4 11-9=2 17-9=8 39-9=30 9-9=0

Subtrair o menor número de cada coluna.

R1 R2 R3 R4
V1 11-2=9 33 33-30=3 0
V2 11-2=9 17 39-30=9 0
V3 12-2=10 0 36-30=6 9
V4 2-2=0 8 30-30=0 0

Designar os vendedores às regiões.

Prof. Marcelo Sucena Página 37 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

R1 R2 R3 R4
V1 9 33 3 0
V2 9 17 9 0
V3 10 0 6 9
V4 0 8 0 0

Deve-se continuar, pois não houve designação do vendedor 2 para a


região 3.

R1 R2 R3 R4
V1 9 33 3 0
V2 9 17 9 0
V3 10 0 6 9
V4 0 8 0 0

Diminuir os valores contidos nas células não-cobertas pelo menor valor


entre eles (neste caso, 3) e, nos cruzamentos de coberturas, adicionar o
mesmo valor. Os demais elementos devem ficar iguais.

R1 R2 R3 R4
V1 6 30 0 0
V2 6 14 6 0
V3 10 0 6 12
V4 0 8 0 3

Deve-se designar novamente os vendedores às regiões.

R1 R2 R3 R4
V1 6 30 0 0
V2 6 14 6 0
V3 10 0 6 12
V4 0 8 0 3

A designação final fica:

V1 para R3; V2 para R4; V3 para R2 e V4 para R1. A venda total ($ x


103) é: 48 + 81 + 72 + 70 = $ 271.000

3. PROBLEMAS DE TRANSBORDO

Como exemplo, considerar a situação exposta a seguir onde existem


dois pontos de produção e um ponto de consumo, sendo que há possibilidade
de movimentação de produtos entre os pontos de produção.

Prof. Marcelo Sucena Página 38 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Produção 1 Produção 2
Custo Unitário de
Movimentação: $5
Custo Unitário de Custo Unitário de
Movimentação: $10 Movimentação: $3
Consumo

Observa-se que para movimentar produtos entre a unidade de produção


(UP) 1 e o ponto de consumo custa $10. Mas se a movimentação for efetuada
por intermédio da UP2 o custo total será de $8. Nota-se, então, que existem
custos diferenciados entre a mesma origem e destino.

Quando um nó serve de origem e/ou destino ele é denominado


Transbordo.

Para demonstrar este problema, pode-se observar na próxima figura que


existem 5 nós, sendo 2 UP, 2 pontos de consumo (PC) e um nó central. Todos
são denominados de pontos de transbordo, pois servem, simultaneamente de
origem e de destino.

$25
UP 1 = 10 un. PC 1 = 7 un.

$20
$6
Nó central
$7 $10

$5 $18

UP 2 = 10 un. PC 2 = 18 un.
$25

O próximo quadro apresenta os custos de movimentação entre os nós e


a quantidade total produzida da UP1 e da UP2, além da capacidade máxima de
consumo dos PC1 e do PC2.

Prof. Marcelo Sucena Página 39 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

UP1 UP2 Nó PC1 PC2 Total


central
UP1 0 7 20 25 M 10
UP2 7 0 5 M 25 10
Nó 20 5 0 6 18 ?
central
PC1 25 M 6 0 10 ?
PC2 M 25 18 10 0 ?
Total ? ? ? 7 18 25/20

Considerações:
 Como não há ligação direta entre a UP1 e o PC2, como também
entre a UP2 e o PC1, utilizou-se um artifício no uso do custo
MUITO GRANDE (M);
 Nos pontos de transbordo se considerou movimentação nula
entre os próprios, individualmente.
 Como há desequilíbrio entre o somatório das linhas e das colunas
deve-se incluir uma variável fictícia com custo nulo de
movimentação.

A tabela equilibrada está exposta a seguir.

UP1 UP2 Nó PC1 PC2 Total


central
UP1 0 7 20 25 M 10
UP2 7 0 5 M 25 10

20 5 0 6 18 ?
central
PC1 25 M 6 0 10 ?
PC2 M 25 18 10 0 ?
Fictícia 0 0 0 0 0 5
Total ? ? ? 7 18 25/25

A próxima tabela apresenta a colocação de 25 unidades (total nas linhas


e nas colunas) em todas as linhas e colunas. Essa inserção é denominada
buffer do transbordo

UP1 UP2 Nó PC1 PC2 Total


central
UP1 0 7 20 25 M 10+25
UP2 7 0 5 M 25 10+25

20 5 0 6 18 25
central
PC1 25 M 6 0 10 25
PC2 M 25 18 10 0 25
Fictícia 0 0 0 0 0 5
Total 25 25 25 7+25 18+25 150/150
Prof. Marcelo Sucena Página 40 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

Desta forma, chega-se a um Problema Clássico de Transporte, ou seja,


equilíbrio entre oferta e demanda. Resolve-se este problema como exposto
anteriormente.

Resolvendo-se por Vogel e um software proprietário, chega-se ao custo total =


$420 com a seguinte distribuição de transporte:

UP1 UP2 Nó PC1 PC2 Otimização Total


central
UP1 25 10 0 35
UP2 15 20 -7 35
Nó central 5 20 -12 25
PC1 12 13 -18 25
PC2 25 -28 25
Fictícia 5 -28 5
Otimização 0 7 12 18 28
Total 25 25 25 32 43

Interpretação dos resultados obtidos:

a) UP1:
o Movimenta 25 unidades para a própria, o que significa que o buffer não
foi utilizado, ou seja, este nó não foi usado como transbordo.
o Movimenta 10 unidades para UP2.

b) UP2:
o Movimenta 15 unidades para a própria, o que significa que foram
utilizadas 10 unidades do buffer, ou seja, este nó foi usado como
transbordo de 10 unidades.
o Movimenta 20 unidades para o Ponto Central, ou seja, 10 unidades de
estoque mais 10 unidades de transbordo.

c) Nó Central:
o Movimenta 5 unidades para o próprio, o que significa que foram
utilizadas 20 unidades do buffer, ou seja, este nó foi usado como
transbordo de 20 unidades.
o Movimenta 20 unidades para o PC1, que na verdade são 20 unidades de
transbordo da UP2.

d) PC1:
o Movimenta 12 unidades para o próprio, o que significa que foram
utilizadas 13 unidades do buffer, ou seja, este nó foi usado como
transbordo de 13 unidades.
o Movimenta 13 unidades para o PC2 (deduzidas 20 unidades que vieram
do Ponto Central, fica ainda com 7 unidades encomendadas).

Prof. Marcelo Sucena Página 41 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

e) PC2:
o Movimenta 25 unidades para o próprio, o que significa que não foram
utilizadas 25 unidades do buffer, ou seja, este nó não foi usado como
transbordo.
o Recebe 13 unidades de encomenda do PC1.

Resumindo, o transbordo ocorreu de acordo com a movimentação exposta na


figura a seguir.

UP 1 = 10 un. PC 1 = 7 un.

20 un.
Nó central
10 un. 13 un.

20 un.

UP 2 = 10 un. PC 2 = 18 un.

4. FLUXO MÁXIMO

Neste tópico deve-se examinar um grafo orientado como uma Rede de


Fluxo usando-a para analisar o fluxo de materiais a partir de uma origem, onde
o material é produzido ou retirado, até um destino, onde o material é
consumido ou depositado. A origem produz o material a uma taxa fixa e o
depósito consome o material na mesma taxa. O "fluxo" do material em qualquer
ponto no sistema é intuitivamente a taxa na qual o material se move.
Cada aresta orientada pode ser imaginada como um canal, com uma
capacidade estabelecida, com uma taxa máxima na qual o material pode fluir
pelo canal. Os vértices são junções de canais, onde o material flui sem
acumulação. Isto é, com exceção da origem e do destino, a taxa de entrada e
de saída de material no vértice deve ser a mesma. Chamamos essa
propriedade de "conservação do fluxo".
Deseja-se então calcular a maior taxa na qual o material pode ser
enviado da origem até o destino, sem violar as capacidades máximas das
arestas e mantendo a propriedade de conservação de fluxo.
Uma Rede de Fluxo G(V,A) é um grafo orientado em que cada aresta
(u,v)  A tem uma capacidade C(u,v) >= 0 (não negativa). Se uma dada aresta
não está em A, então se supõe que a sua capacidade é zero (tais arestas não
são desenhadas nos grafos). Numa rede de fluxo tem-se dois vértices
especiais, uma origem "O" e um destino "D", e para todo vértice do grafo existe
um caminho a partir de O passando por V que chega em D.

Prof. Marcelo Sucena Página 42 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

4.1. Método Ford-Fulkerson

O método de Ford-Fulkerson objetiva encontrar um fluxo máximo para


uma rede de fluxos. É chamado de método por englobar diversas
implementações com diferentes tempos de execução. O método é iterativo,
começando com f(u,v) = 0.
Este método é composto pelos seguintes passos:
1º passo: iniciar o fluxo f total com 0 e verificar a existência de caminhos de
fluxo > 0.
2º passo: Escolher um caminho da origem até o destino com fluxo >0;
identificar o fluxo mínimo entre os fluxos presentes nos arcos (u,v)
pertencentes ao caminho escolhido e para todas as arestas pertencentes ao
caminho escolhido fazer:
 f(u,v) = f(u,v) – f (decrementa o fluxo disponível)
 f(v,u) = f(v,u) + f (incrementa o fluxo utilizado)
3º passo: Faz-se ftotal = ftotal + f. O processo deve ser repetido até que todos os
caminhos sejam analisados e enquanto existirem fluxos disponíveis.

Exemplo: Baseando-se no grafo a seguir, identifique o fluxo máximo que pode


fluir entre a origem (O) e o destino (D), utilizando o método de Ford-Fulkerson.
12 20
16 A C
D
O 10 9
4 7 4
13 B E
14
1º caminho escolhido: O>16>A>12>C>20>D, sendo f=12 e ftotal=12

Capacidade
12/1 12/20
Fluxo Limitador 12/16 A C
2
D
O 10 9
4 7 4
13 B E
14

2º caminho escolhido: O>4>A>10>B>14>E>4>D, sendo f=4 e ftotal=16

Prof. Marcelo Sucena Página 43 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

12/1 12/20
16/16 A C
2
D
O 4/10 4+4 9 7 4/
13 4
B E
4/14

3º caminho escolhido: O>13>B>10>E>7>C>8>D, sendo f=7 e ftotal=23

12/1 19/20
16/16 A C
2 23
23 D
O 4/10 9
8 7/7 4/
4
7/13 B E
11/14

5.PERT-CPM

Para se avaliar o desenvolvimento de atividades utiliza-se o gráfico (ou


diagrama) de Gantt. É uma técnica simples, mas importante, usada para
auxiliar o planejador e o programador, pois apresenta facilidade em controlar o
tempo e em reprogramá-lo. Ele foi desenvolvido em 1918, por Henry L.Gantt, e
ainda hoje continua a ser uma ferramenta popular no agendamento de
produção e de projeto. Sua simplicidade e exibição gráfica clara o tornaram um
dispositivo útil para problemas de agendamento simples.

Apesar da sua vantagem, o gráfico de Gantt não possibilita responder algumas


questões, como por exemplo:
Quais tarefas atrasariam se uma tarefa se atrasar um dia?
Como colocar de forma clara os custos no diagrama?
Quais tarefas são críticas para a realização de todo o trabalho?

Neste ponto encaixam-se as técnicas PERT e CPM.

A técnica PERT (Program – Project - Evaluation Review Technique) foi


desenvolvida no final dos anos 50 pela Navy Special Projects Office, em
cooperação com a empresa de consultoria de gerenciamento Booz, Allen e
Hamilton. Ela foi utilizada com êxito no desenvolvimento do complexo
programa do míssil Polaris.

Já a técnica CPM (Critical Path Method) foi desenvolvida em 1957 por J. E.


Kelly, da Remington Rand, e M. R.Walker, da Du Pont. Difere-se da técnica
PERT principalmente quanto aos detalhes de como o tempo e o custo são
tratados.

Prof. Marcelo Sucena Página 44 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Mas, antes de mais nada, seguem alguns conceitos importantes, baseando-se


no método americano:

a) Atividade: Na técnica PERT é considerada como um bloco ou etapa de


um projeto que pode ser identificada e mensurada de acordo com o
padrão que se deseje adotar, considerando as unidades de recursos
empregados.
b) Evento (nó): É o início ou fim de uma ou mais atividades. Não consome
recursos. Não tem representação gráfica no sistema de blocos, apenas
é subentendido. Também conhecido por nó, por geralmente unir duas ou
mais atividades.
c) Sequenciação: Constitui-se, basicamente, de uma tabela com quatro
colunas: as atividades, as suas descrições, as atividades que
antecedem àquelas da primeira coluna, as atividades que sucedem
àquelas da primeira coluna. Deve representar a relação das atividades
de um projeto bem como a relação de interdependência entre as
mesmas. Alguns autores expõem a tabela de sequenciação com quatro
outras colunas: a identificação codificada da atividade, a sua descrição,
a dependência dela em relação a outras atividades e o tempo de
duração de cada uma.

Por exemplo, tomando a tabela de sequenciação a seguir pode-se


elaborar o gráfico PERT como exposto.

Atividades
Dependência Duração
Código Descrição
A Fazer isso - 10
B Fazer aquilo - 6
C Fazer isso A 7
D Fazer aquilo B 5
E Fazer isso B 9
F Fazer aquilo C/D 5
G Fazer isso E 4

A F

B
G

Prof. Marcelo Sucena Página 45 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

d) Duração de cada atividade: geralmente o recurso principal atribuído à


uma atividade é o tempo, e por ser difícil de se prevê-lo, deve-se estimá-
lo. Para tanto, faz-se uso da próxima expressão onde constam os
tempos mais provável (m), o mais otimista (a) e o mais pessimista (b). A
estimativa otimista deve considerar que todos os fatores sejam
favoráveis; a pessimista deve orientar-se pelo oposto, considerando tudo
que é desfavorável, excetuando-se variáveis não previsíveis, tais como
incêndios e catástrofes; a mais provável deve ser amparada na
experiência, em fatos reais etc..

e) Atividade Fantasma: quando duas atividades têm os mesmos eventos


como delimitadores é difícil identificá-las e representá-las no gráfico
PERT. Por isso, utiliza-se a representação de uma atividade inerte, que
não consome tempo ou qualquer outro recurso, mas servindo apenas
para indicar a hierarquia de precedência. Essas atividades, por não
existirem de fato, são denominadas de “fantasmas”.

A A B
1 2 1 2 1 2
B OU
B A A*
B*
3 3

f) Cálculo dos Tempos das Atividades: o cálculo dos tempos só é possível


após o calculo de duração das atividades uma vez que esses tempos
correspondem justamente ao início ou fim das atividades. Eles definem
os limites no tempo que as atividades que partem deste evento dispõem
para serem iniciadas.

f.1) Tempo mais cedo (TMC): é o momento no qual é possível ter


concluídas todas as atividades que condicionam um evento.

TMC = MAX [TMC + Duração] Atividades dos eventos


antecessores diretos

Obs.: para o evento inicial TMC = 0

f.2) Tempo mais tarde (TMT): é o último momento possível para


as atividades chegarem a um determinado evento sem atrasar o
início das atividades que lhes sucedem.

TMT = MIN [TMC - Duração] Atividades dos eventos


posteriores diretos

Obs.: para o evento final TMT = TMC

Prof. Marcelo Sucena Página 46 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

g) Cálculo do Tempo de Folga (TF): TF = TMTfim – TMCinício – Duração da


Atividade
As folgas podem ser:
 positivas: excesso de recursos ou o prazo é muito grande;
 nulas: recursos e prazos para o projeto são adequados;
 negativas: recursos são escassos ou o prazo estipulado para a
duração da atividade é pequeno.

h) Caminho Crítico: é constituído pelas atividades (interligadas) de menor


folga ou de folga nula, entre o evento inicial e o evento final, o qual,
inclusive, pode passar pelas atividades fantasmas. É formado pelas
atividades mais relevantes do projeto para fins de controle, pois elas não
podem sofrer qualquer tipo de atraso, e se isto acontecer irá refletir
diretamente no prazo fixado para o término do projeto.

Exemplo 1:
Tempo Crítico = 22 u.t 17/17 11/
10/10 C
2 4
Cedo/tarde 7 F
A
10 5
D
1 6 22/22
0/0 5
19/
B
G
6
E 4
3 5
9
6/6 /12 15/18

.
Exemplo 2:
Tempo Crítico = 13 u.t. 3/3 /8
2
Cedo/tarde A E
3 5
D
1 5 13/13
0/0 7
8/
B
F
3
C 3 Caminho crítico
3 4
2
3/8 10/10
5/

Prof. Marcelo Sucena Página 47 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Exemplo 3: 3/3
Tempo Crítico = 22 u.t.
2 Caminho crítico
Cedo/tarde A
3 C 15/15
4
0/0 1
4 20/20
3
/3 B H I
D F 6 7 8
4 8 G 2 2
E 5 3 18/18 22/22
3
5 15/
7/7 12/15
Tempos de Folga (TF):

Exemplo 1 Exemplo 2 Exemplo 3


Ativ. Cálc. Folga Ativ. Cálc. Folga Ativ. Cálc. Folga
A 10-0-10 0 A 3-0-3 0 A 3-0-3 0
B 6-0-6 0 B 8-0-3 5 B 7-0-4 3
C 17-10-7 0 C 10-3-2 5 C 7-3-4 0
D 17-6-5 6 D 10-3-7 0 D 15-7-8 0
E 18-6-9 3 E 13-3-5 5 E 15-7-5 3
F 22-17-5 0 F 13-10-3 0 F 18-15-3 0
G 22-15-4 3 G 20-18-2 0
I 22-20-2 0

Prof. Marcelo Sucena Página 48 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

UNIDADE IV – PROBLEMAS DO CAIXEIRO VIAJANTE

1. INTRODUÇÃO

Um problema de roteamento pode ser considerado como um conjunto


organizado de meios que objetiva o atendimento de demandas localizadas nos
arcos ou nos vértices de alguma rede de transporte. A idéia principal desse
tipo de problema é a designação de pontos de paradas de veículos, bem como
a determinação da sequência com que esses pontos de parada são visitados,
estabelecendo assim, as rotas para os veículos.
Duas abordagens básicas para o roteamento de veículos têm sido
adotadas, supondo que os veículos serão roteirizados em uma rede composta
por nós e arcos: problemas de coberturas de nós e problemas de cobertura de
arcos.

1.1. Problemas de cobertura de nós

Estes tipos de problemas devem indicar uma rota de comprimento


mínimo que visite cada nó uma única vez.

1.1.1. Problema do Caixeiro Viajante

Este problema implica no cálculo de um ciclo de Hamilton, em um grafo,


de encargo total mínimo. O ciclo Hamiltoniano é caracterizado pela
possibilidade da existência de uma rota, que passasse pelos nós, iniciando e
terminando no mesmo nó, sem nunca repetir uma passagem. Este ciclo é
denominado de Hamilton em homenagem Willian Rowan Hamilton, que em
1957 propôs um jogo denominado Around the World (figura 1.1). O problema
do Caixeiro Viajante é um problema de otimização associado ao da
determinação dos caminhos hamiltonianos em um grafo qualquer.

Figura 1.1 - Esquema do tabuleiro do jogo de Hamilton

Para solução desses problemas, principalmente em redes reais de


grande porte, necessita-se de apoio computacional. É importante observar que
o tempo de solução computacional cresce exponencialmente com o aumento
do número de nós. Somente o Método de Enumeração (identificação de todos
os ciclos possíveis), garante o cálculo da solução ótima do problema, mas tal
método é impraticável. Para ilustrar esta dificuldade observa-se que para um
Prof. Marcelo Sucena Página 49 de 56
Engenharia de Produção
Pesquisa Operacional II - 2012/2

computador tratar em torno de 10.000 ciclos/segundo, ele necessitará de


aproximadamente 18 segundos para finalizar a avaliação de uma solução ótima
em um grafo com 10 vértices, 50 dias para um grafo com 15 vértices, 2 anos
para um grafo com 16 vértices e 193.000 anos para um grafo com 20 vértices.
Serão apresentados três modelos heurísticos (utiliza experiências
passadas): do vértice adjacente mais próximo, da inserção com menor encargo
e da inserção com maior afastamento.

A) Método do Vértice Adjacente mais Próximo

Este método baseia-se nos seguintes passos para identificar a solução


aproximada:
1-Seleciona-se arbitrariamente um nó Ni para o início do ciclo.
2-Dentre os nós não selecionados, seleciona-se o nó Nk que está a menor
distância de Ni, ficando a cadeia Ni,Nk. Repetem-se esses passos até que
todos os vértices possam ser utilizados.
Exemplo - Considerando a tabela a seguir que registra as distâncias em
quilômetros entre os nós de um grafo orientado, determine uma rota com
encargo total mínimo, utilizando o método em estudo, que passe pelos nós,
iniciando e terminando no mesmo nó, sem repetir uma passagem.

A B C D E
A 16 12 18 16
B 10 18 20 20
C 18 20 18 16
D 14 18 10 8
E 8 12 12 12

Seleciona-se o nó inicial: A
O nó mais próximo de A que ainda não foi selecionado? C (12Km)
O nó mais próximo de C que ainda não foi selecionado? E (16Km)
O nó mais próximo de E que ainda não foi selecionado? B (12Km)
O nó mais próximo de B que ainda não foi selecionado? D (20Km)
O nó mais próximo de D que ainda não foi selecionado? A (14Km)
O circuito inicial então teria a seguinte configuração: A > C > E > B > D > A
com a distância total de 74Km.

B) Método da Inserção com Menor Encargo.

Este método baseia-se nos seguintes passos para identificar a solução


aproximada:
1-Seleciona-se um subciclo "i,j,i" associado a Min {C ij + Cji}
Obs.: se houver empate deve-se escolher arbitrariamente um subciclo.
2-No subciclo corrente, calcular para cada ligação do tipo (u,v), a
inserção do nó "k" (não selecionado) a que corresponda ao aumento mínimo da
distância dado por Min {C uk + Ckv - Cuv}. Repetir este procedimento até serem
selecionados todos os nós do grafo.

Prof. Marcelo Sucena Página 50 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Exemplo - Considerando a tabela a seguir que registra as distâncias em


quilômetros entre os nós de um grafo orientado, determine uma rota com
encargo total mínimo, utilizando o método em estudo, que passe pelos nós,
iniciando e terminando no mesmo nó, sem repetir uma passagem.

A B C D E
A 16 12 18 16
B 10 18 20 20
C 18 20 18 16
D 14 18 10 8
E 8 12 12 12

Inicialmente deve-se escolher o subciclo inicial. A tabela a seguir mostra


as distâncias equivalentes de cada subciclo.

A B C D E
A ABA=26Km ACA=30Km ADA=32Km AEA=24Km
B BCB=38Km BDB=38Km BEB=32Km
C CDC=28Km CEC=28Km
D DED=20Km
E

Então, o primeiro subcircuito será DED com distância total de 20Km.


Agora, devem-se então verificar todas as inserções possíveis no
subciclo anterior, de acordo com o passo 2.

8K 12Km
D E D
m

Opções entre D e E:

D > A = 14Km e A > E = 16Km >> 14 + 16 = 30Km - 8Km = 22Km


D > B = 18Km e B > E = 20Km >> 18 + 20 = 38Km - 8Km = 30Km
D > C = 10Km e C > E = 16Km >> 10 + 16 = 26Km - 8Km = 18Km

Opções entre E e D

E > A = 8Km e A > D = 18Km >> 8 + 18 = 26Km - 12Km = 14Km


E > B = 12Km e B > D = 20Km >> 12 + 20 = 32Km - 12Km = 20Km
E > C = 12Km e C > D = 18Km >> 12 + 18 = 30Km - 12Km = 18Km

A menor quilometragem na inserção foi observada com o nó A entre E e


D. O novo circuito agora tem esta configuração.

8K 8K 18Km
D E A D
m m

Prof. Marcelo Sucena Página 51 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

As próximas inserções possíveis são:

Opções entre D e E:

B > 18+20-8 = 30Km


C > 10+16-8 = 18Km

Opções entre E e A:

B > 12+10-8 = 14Km


C > 12+18-8 = 22Km

Opções entre A e D:

B > 16+20-18 = 18Km


C > 12+18-18 = 12Km

A menor quilometragem foi observada com a inserção do nó C entre A e


D, ficando o novo subciclo da seguinte forma:

D > 8Km > E > 8Km > A > 12Km > C > 18Km > D

Avaliando-se a última inserção possível (nó B), deve-se identificar em


que trecho deve ser efetuado.

Opções de inserção:
DBEACD = 76Km
DEBACD = 60Km
DEABCD = 68Km
DEACBD = 68Km

Então o circuito teria a seguinte configuração por este método:

D > E > B > A > C > D com a distância total de 60Km.

C) Método da Inserção com maior afastamento.

Este método baseia-se nos seguintes passos para identificar a solução


aproximada:
1-Seleciona-se o subciclo "i,j,i" associado a Max {C ij + Cji}
Obs.: se houver empate deve-se escolher arbitrariamente um subciclo.
2-Seleciona-se um nó "k" dos não inseridos de acordo com os
subpassos a seguir:
2.1-Avalia-se a menor distância entre os nós já pertencentes ao
subciclo atual, ao nó "k" a inserir.
2.2-Escolhe-se para inserção o nó "k" onde seja maior à distância
registrada (máximo dos mínimos)

Prof. Marcelo Sucena Página 52 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

3-No subciclo atual, calcular para cada ligação do tipo (u,v) a inserção
do nó "k", selecionado anteriormente, a que corresponda o
aumento mínimo de distância dado por Min {Cuk+Ckv-Cuv}.
4-Selecionar novo nó até que todos estejam na solução inicial.

Exemplo - Considerando a tabela a seguir que registra as distâncias em


quilômetros entre os nós de um grafo orientado, determine uma rota com
encargo total mínimo, utilizando o método em estudo, que passe pelos nós,
iniciando e terminando no mesmo nó, sem repetir uma passagem.

A B C D E
A 16 12 18 16
B 10 18 20 20
C 18 20 18 16
D 14 18 10 8
E 8 12 12 12

Inicialmente deve-se escolher o subciclo inicial. A tabela a seguir mostra


as distâncias equivalentes de cada subciclo.

A B C D E
A ABA=26Km ACA=30Km ADA=32Km AEA=24Km
B BCB=38Km BDB=38Km BEB=32Km
C CDC=28Km CEC=28Km
D DED=20Km
E

Então, o primeiro subciclo será BCB com distância total de 38Km.


Agora, devem-se então verificar todas as inserções possíveis no
subciclo anterior, de acordo com o passo 2.

18Km 20Km
B C B

Distância entre os nós


A D E
B 10 20 20
C 18 18 16
Min. entre linhas 10 18 16
Máx. entre colunas 18

Prof. Marcelo Sucena Página 53 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Opções de inserção para o nó D:


18Km 20Km
B C B

20Km 10Km 18Km 18Km


D D

1-B > D > C = 20+10-18 (BC) = 12Km


2-C > D > B = 18+18-20 (CB) = 16Km

O menor encargo com a inserção do nó "D" é 12Km, ficando então o


novo subciclo é BDCB.

Deve-se escolher um novo nó para inserção:

Distância entre os
nós
A E
B 10 20
C 18 16
D 14 8
Min. entre linhas 10 8
Máx. entre colunas 10

20Km D
10K 20K
B C B
m m
10Km 18Km 14Km 12Km 18Km 16Km

A A A

Opções de inserção:

1-B > A > D = 10+18-20 (BD) = 8Km


2-D > A > C = 14+12-10 (DC) = 16Km
3-C > A > B = 18+16-20 (CB) = 14Km

O menor encargo com a inserção do nó "A" é 8Km, ficando então o novo


subciclo é BADCB.
O único nó que falta ser inserido no subciclo é o "E". Sendo assim, deve-
se avaliar as opções de encargos (distâncias).

Opções de inserção:
1-BEADCB = 20+8+18+10+20 = 76Km
2-BAEDCB = 10+16+12+10+20 = 68Km
3-BADECB = 10+18+8+12+20 = 68Km
4-BADCEB = 10+18+10+16+12 = 66Km

Prof. Marcelo Sucena Página 54 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

Então o circuito inicial teria a seguinte configuração por este método.


B > A > D > C > E > B com a distância total de 66Km.

Prof. Marcelo Sucena Página 55 de 56


Engenharia de Produção
Pesquisa Operacional II - 2012/2

BIBLIOGRAFIA

Campos, Vânia B.G., Otimização do Transporte, Instituto Militar de


Engenharia, Rio de Janeiro, 1998.

de Andrade, Eduardo Leopoldino, Introdução à Pesquisa Operacional, Editora


LTC, ISBN 9788521616658, 4º Edição, Rio de Janeiro, 2009.

de Andrade, Eliana X.L.; Sampaio, Rubens e Silva, Geraldo N. Notas em


Matemática Aplicada Sociedade Brasileira de Matemática Aplicada e
Computacional, ISBN 85-7651-021-9, Editora SBMAC, São Carlos, 2005.

Goldbarg, Marco Cesar e Luna, Henrique Pacca L. Otimização Combinatória


e Programação Linear: Modelos e Algoritmos Ed. Campus ISBN
8535215204, Rio de Janeiro, 2000.

Lachtermacher, Gerson Pesquisa Operacional nas Tomadas de Decisões


Editora Campus, ISBN 8535220879, 1º Edição, Rio de Janeiro, 2006.

Novaes, Antônio Galvão, Métodos de Otimização: aplicações aos


transportes Edgar Blücher, São Paulo, 1978

Silva, Ana Cristina Girão Programação Linear Inteira Branch-and-Bound,


Pesquisa Operacional II, Universidade Federal do Rio Grande do Norte –
Departamento de Engenharia de Produção.

Silva, Arlindo Programação Linear Inteira – Introdução, Métodos de Apoio à


Decisão, Departamento de Engenharia das Tecnologias da Informação,
Instituto Politécnico de Castelo Branco, Escola Superior de Tecnologia,
Portugal, 2001.

Smiderle, Andreia, Técnicas da Pesquisa Operacional Aplicadas – Um


Problema de Cobertura de Arcos, Dissertação de Mestrado (Métodos
Numéricos em Engenharia), Universidade Federal do Paraná, 153f., Curitiba,
2001.

Prof. Marcelo Sucena Página 56 de 56

Potrebbero piacerti anche