paulo maurício maciel lisbôa relaxação lagrangeana para o problema...
TRANSCRIPT
UNIVERSIDADE FEDERAL RURAL DO RIO DE JANEIRO
INSTITUTO DE CIÊNCIAS EXATAS
CURSO DE GRADUAÇÃO EM MATEMÁTICA
Paulo Maurício Maciel Lisbôa
Relaxação Lagrangeana para o Problema dasp-Medianas
SEROPÉDICA
2017
Paulo Maurício Maciel Lisbôa
Relaxação Lagrangeana para o Problema das p-Medianas
Monografia apresentada à Banca Examinadora
da Universidade Federal Rural do Rio de Ja-
neiro, como requisito parcial para obtenção do
título de Bacharel em Matemática, sob a orien-
tação do Prof. Dr. Vinícius Leal do Forte
SEROPÉDICA
2017
Muita fantasia perde a realidade,
muita esperança pode parecer de
alguma forma vazia.
Akira Toriyama
ii
Agradecimentos
A minha família, que sempre esteve do meu lado, obrigado pelo carinho e
apoio.
A minha namorada Thaís Ferreira que, com amor, sempre esteve comigo nos
momentos mais difíceis.
Ao professor Vinícius Leal do Forte pela paciência e conselhos.
Aos professores que me acompanharam na graduação, em especial aos pro-
fessores Duilio Conceição, Macário Costa e Priscila Lima.
Aos amigos e colegas que tornaram minha graduação mais divertida, em es-
pecial meu amigo Henrique Espolador.
iii
Resumo
Neste trabalho é realizado um estudo sobre o Problema das p-Medianas (PPM)
e a análise de sua formulação introduzida inicialmente por ReVelle e Swain [26]. O
problema é definido por um grafo com a intenção de localizar p facilidades (medianas)
em uma rede contendo n nós, a fim de minimizar a soma total das distâncias entre
cada nó e sua mediana mais próxima. A Programação Inteira contribuiu com o en-
tendimento dos conceitos explorados no trabalho. Sua colaboração é reforçada com
algumas formulações, bem como a definição de Limitantes, exemplos de Métodos de
Solução Exata e tipos de Relaxações, tendo um foco maior na Relaxação Lagrangeana
(RLG). O objetivo foi avaliar a RLG para o Problema das p-Medianas escolhendo uma
restrição de sua formulação e realizando a dualização, obtendo, assim, o Problema La-
grangeano. Posteriormente, é desenvolvida uma Heurística Lagrangeana para o PPM,
sendo ela, bem-sucedida na sua aplicação ao exemplo prático desenvolvido no traba-
lho. O exemplo tem como objetivo determinar três municípios da Região Metropoli-
tana do Rio de Janeiro para servirem como centros de distribuição de vacinas contra a
gripe para os outros municípios dessa mesma região.
Palavras-Chave: Problema das p-Medianas; Programação Inteira; Relaxação
Lagrangeana.
iv
Sumário
Introdução 1
1 Programação Inteira 3
1.1 Algumas Formulações PPLI . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Problema do Caixeiro Viajante . . . . . . . . . . . . . . . . . 4
1.1.2 Problema da Mochila . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3 Problema de Assignment . . . . . . . . . . . . . . . . . . . . 7
1.1.4 Problema de Cobertura de Conjunto . . . . . . . . . . . . . . 8
1.2 Formulações Inteiras Mistas . . . . . . . . . . . . . . . . . . . . . . 8
1.2.1 Localização de Facilidade Não Capacitado (LFNC) . . . . . . 9
1.2.2 Lot-Sizing Não Capacitado (LSNC) . . . . . . . . . . . . . . 10
1.3 Limitantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Relaxações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.1 Relaxação linear (RL) . . . . . . . . . . . . . . . . . . . . . 12
1.4.2 Relaxação Combinatória . . . . . . . . . . . . . . . . . . . . 14
1.4.3 Relaxação Lagrangeana . . . . . . . . . . . . . . . . . . . . 14
1.5 Métodos de Solução Exata . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.1 Branch-and-Bound . . . . . . . . . . . . . . . . . . . . . . . 15
1.5.2 Planos de Corte . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 Problema das p-Medianas 21
2.1 Exemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Trabalhos Realizados . . . . . . . . . . . . . . . . . . . . . . . . . . 24
v
2.3 Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.1 Grafo Direcionado . . . . . . . . . . . . . . . . . . . . . . . 27
2.4 Formulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3 Relaxação Lagrangeana 31
3.1 Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Método do Subgradiente . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3 Heurística Lagrangeana . . . . . . . . . . . . . . . . . . . . . . . . . 40
4 Relaxação Lagrangeana para o Problema das p-Medianas 42
4.1 Heurística Lagrangeana para o Problema das p-Medianas . . . . . . . 45
4.2 Busca Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Considerações Finais 73
vi
Introdução
O Problema das p-Medianas possui o objetivo de determinar, dentre n nós de um grafo,
um conjunto de p nós (medianas), a fim de minimizar a soma total das distâncias entre
cada nó e sua mediana mais próxima. Rosário [27] propôs uma aplicação do PPM
onde sugere uma metodologia para a distribuição espacial de Unidades de Saúde (US)
24 Horas no município de Curitiba, levando em consideração vários aspectos.
O PPM é um problema clássico de Otimização Combinatória e foi introduzido
inicialmente por Hakimi [14] em 1964. Posteriormente, em 1968, Tietz e Bart et al.
[30] desenvolveram uma solução heurística para o problema e, em 1970, Revelle e
Swain et al. [26] realizaram a formulação como um Problema de Programação Inteira
(PPI).
Diversos trabalhos foram realizados desenvolvendo aplicações do Problema
das p-Medianas, porém foi na Análise de Cluster [15] que elas surgiram - como em:
Vinod [36], Rao [25] e Mulvey e Crowder [23]. Em 1979, Kariv e Hakimi [20] cons-
tataram que o PPM pertence à classe de problemas NP-difícil, pois não se tem conhe-
cimento de um algoritmo que seja exato na resolução do problema, até ele ser ótimo,
em tempo polinomial.
O objetivo neste trabalho é apresentar e analisar a formulação do PPM, bem
como desenvolver a Relaxação Lagrangeana para ela. A RLG é desenvolvida esco-
lhendo uma das restrições do problema e dualizando-a, gerando, assim, o Problema
Lagrangeano. A Programação Inteira é introduzida no trabalho com o objetivo de ex-
pandir o conhecimento sobre o modelo de PPI, Métodos Exatos e tipos de Relaxações.
O trabalho está organizado em quatro capítulos. No Capítulo 1, são apre-
1
sentadas as variações da Programação Inteira, formulações de alguns Problemas de
Programação Linear Inteira e Inteira Mista, bem como a definição de Limitantes e os
tipos de Relaxações, finalizando com dois Métodos de Solução Exata. São apresenta-
dos no Capítulo 2 a definição do Problema das p-Medianas e alguns exemplos práticos.
Faz-se, também, um levantamento de alguns trabalhos realizados desde o surgimento
do PPM em 1964. Nesse Capítulo é retratado o conceito de Grafos e Grafos Direcio-
nados e, posteriormente, é desenvolvida e analisada uma formulação do Problema das
p-Medianas. No Capítulo 3, define-se de forma mais abrangente a Relaxação Lagran-
gena, bem como o Método do Subgradiente e Heurísticas Lagrangeanas. No Capítulo
4, é desenvolvida a Relaxação Lagrangeana para o PPM proposto, além de apresentar
uma Heurística Lagrangeana para o problema, o conceito de Busca Local e o desen-
volvimento de um exemplo prático de distribuição de vacinas contra a gripe na Região
Metropolitada do Rio de Janeiro.
2
Capítulo 1
Programação Inteira
Suponha o Problema de Programação Linear (PPL)
max {cTx : Ax ≤ b, x ≥ 0}, (1.1)
onde A ∈ Rm×n, c ∈ Rn, b ∈ Rm e x ∈ Rn.
Se todas as variáveis de (1.1) assumirem valores inteiros estamos diante de
um Problema de Programação Linear Inteira (PPLI), escrito como
max cTx
s.a Ax ≤ b
x ≥ 0 e inteiro.
Se algumas forem inteiras e algumas forem contínuas, trata-se de uma Pro-
blema de Programação Linear Inteira Mista (PPLIM), escrito como
max cTx+ hTy
s.a Ax+Gy ≤ b
x ≥ 0, y ≥ 0 e inteiro.
3
Existe um caso especial em que todas as variáveis são restritas a valores 0-1.
Este é um Problema de Programação Linear Inteira Binária (PPLIB), escrito como
max cTx
s.a Ax ≤ b
x ∈ {0, 1}n.
1.1 Algumas Formulações PPLI
Há vários problemas práticos que podem ser formulados e resolvidos utilizando a Pro-
gramação Inteira. Nesta seção estão listados alguns dos mais famosos.
1.1.1 Problema do Caixeiro Viajante
O Problema do Caixeiro Viajante talvez seja o problema de Otimização Combinatória
mais notório, por ser um dos mais explorados na literatura ([4], [6], [7], [21]). A ideia
do problema é que um caixeiro deve visitar cada uma das n cidades apenas uma única
vez e retornar ao ponto de partida. Podemos visualizar o problema em um grafo onde
as cidades são os vértices e as arestas são as conexões entre as cidades. O caixeiro tem
um tempo para viajar de uma cidade i para a cidade j, representado por cij . Dados
os custos entre os vértices (cidades) do problema, queremos encontrar o circuito de
menor custo possível. Seja x binário 0-1.
As variáveis de decisão são definidas como:
xij = 1, se o caixeiro visitou diretamente a cidade j a partir da cidade i;
xij = 0, se o caixeiro não visitou diretamente a cidade j a partir da cidade i.
As restrições são definidas como:
∑j:j 6=i
xij = 1 para i = 1, ..., n. (1.2)
4
∑i:i 6=j
xij = 1 para j = 1, ..., n. (1.3)
A restrição 1.2 impõe que o caixeiro deixará a cidade i exatamente uma vez,
já a restrição 1.3 expressa que ele chegará à cidade j uma única vez. Ambas as restri-
ções não garantem que a solução seja um único circuito envolvendo todas as cidades,
permitindo a formação de sub-circuitos, ou seja, circuitos que não envolvem todos os
vértices. A Figura 1.1 representa um caso em que isso ocorre.
Figura 1.1: Sub-Circuitos
Para eliminarmos os sub-circuitos, precisamos de restrições que garantam a
conectividade. Com isso, para uma partição qualquer do conjunto de cidades em dois
subconjuntos, impomos que o caixeiro deva ir de uma cidade de um conjunto para uma
cidade do outro conjunto. Sendo assim, obtemos:
∑i∈S
∑j /∈S
xij ≥ 1 para S ⊂ N,S 6= ∅, (1.4)
onde N é um conjunto de cidades e S é um subconjunto de cidades. A restri-
ção (1.4) garante que há uma ou mais conexões. A figura 1.2 representa a situação em
que a restrição (1.4) é adicionada.
5
Figura 1.2: Circuito envolvendo todos as cidades.
Por fim , a função objetivo a seguir minimiza o custo total da viagem:
minn∑
i=1
n∑j=1
cijxij.
1.1.2 Problema da Mochila
Este problema pode ser exemplificado da seguinte forma: um escoteiro possui uma
mochila com uma capacidade máxima b conhecida. Ele também detém de alguns itens
j de sobrevivência que possuem pesos aj e benefícios cj conhecidos. Em posse destas
informações, quais itens o escoteiro deve colocar na mochila de forma que não ultra-
passe a capacidade da mochila e o retorno seja o maior possível? Seja x binário 0-1.
A seguir, apresentaremos um PPLI para o Problema da Mochila.
As variáveis de decisão são definidas como:
xj = 1, se o item j é selecionado;
xj = 0, se o item j não é selecionado.
Sabendo que o peso máximo da mochila não pode exceder b, inserimos a
seguinte restrição no PPLI:
n∑j=1
ajxj ≤ b.
6
Por fim, a função objetivo a seguir define o retorno máximo:
maxn∑
j=1
cjxj.
1.1.3 Problema de Assignment
O Problema de Assignment é caracterizado por ser um problema onde devemos es-
tabelecer posições para as pessoas em salas, tarefas, funções, etc. Por exemplo, há
n professores para darem aulas em n salas. Cada professor é designado para apenas
uma sala. Alguns deles se situam melhor em certas salas do que outros, então há um
custo cij se o professor i é atribuído à sala j. O problema consiste em encontrar uma
atribuição de custo mínimo (vide Wolsey [38]).
As variáveis são definidas como:
xij = 1, se o professor i for atribuído a sala j;
xij = 0, se o professor i não for atribuído a sala j.
As restrições são definidas como:
n∑j=1
xij = 1 para i = 1, ..., n. (1.5)
n∑i=1
xij = 1 para j = 1, ..., n. (1.6)
A restrição 1.5 diz que cada professor i será atribuído em apenas uma sala. A
restrição 1.6 expressa que cada sala j é ocupada por um único professor.
A função objetivo minimiza o custo da atribuição:
minn∑
i=1
n∑j=1
cijxij.
7
1.1.4 Problema de Cobertura de Conjunto
Suponhamos que queremos estabelecer bases da polícia j em um certo número de
regiões. Já sabemos o custo de instalação cj da base e também a área de atuação, assim,
o problema consiste em decidir aonde colocá-las. O objetivo é escolher o conjunto de
custo mínimo de bases da polícia de tal forma que cada região seja coberta. Seja
M = {1, ...,m} o conjunto de regiões, e N = {1, ..., n} o conjunto de potenciais
bases. Sejam Sj ⊆M as regiões que podem ser servidas por uma base em j ∈ N .
As variáveis são definidas como:
xj = 1, se a base j é selecionada;
xj = 0, se a base j não é selecionada.
E as restrições do problema são definidas como:
n∑j=1
aijxj ≥ 1 para i = 1, ...,m, (1.7)
onde, aij = 1 se o local i pertence a Sj e aij = 0 caso contrário. A restrição
1.7 diz que a região i é servida por, pelo menos, uma base da polícia.
Por fim, a função objetivo a seguir define o custo total a ser minimizado:
minn∑
j=1
cjxj.
1.2 Formulações Inteiras Mistas
Existem casos que só utilizar variáveis inteiras não é suficiente para formular um pro-
blema. Com isso, introduziremos algumas Fomulações Inteiras Mistas, que são for-
mulações envolvendo PPLIM - casos em que nem todas as variáveis são inteiras.
8
1.2.1 Localização de Facilidade Não Capacitado (LFNC)
Segundo Vedat Verter [35] a LFNC envolve localizar um número indeterminado de
facilidades a fim de minimizar a soma dos custos relacionados à abertura de facilidades.
A característica de uma LFNC é a falta de restrições de atendimento de demandas.
Dado um conjunto de potenciais centros de distribuições dos correios N =
{1, ..., n} e um conjunto M = {1, ...,m} de clientes, vamos supor que haja dois tipos
de custos: um fixo fj associado com o uso do centro j, e um de transporte cij , se
todas as correspondências do cliente i são entregues pelo centro j. Mas qual centro
irá funcionar, e também, qual irá atender cada cliente além de minimizar a soma de
ambos os tipos de custos? Para Wolsey [38], é importante ressaltar a semelhança que
este problema possui com o problema de cobertura, exceto pela adição da variável de
custo de transporte.
As variáveis são definidas como:
yj = 1, se o centro j é usado;
yj = 0, se o centro j não é usado.
As restrições são definidas como:
n∑j=1
xij = 1 para i = 1, ...,m, (1.8)
onde xij é a fração da demanda do cliente i satisfeita pelo centro j. As restri-
ções (1.8) garantem a satisfação da demanda do cliente i. Como,∑
i∈M xij ≤ m, ou
seja, a soma das demandas de todos os clientes não ultrapassará o número de cliente,
existe uma relação entre xij e yj . Assim, utilizando (1.8) obtemos:
∑i∈M
xij ≤ myj para j ∈ N, yj ∈ {0, 1} para j ∈ N.
Por fim, a função objetivo a seguir define o custo total a ser minimizado:
min∑i∈M
∑j∈N
cijxij +∑j∈N
fjyj.
9
1.2.2 Lot-Sizing Não Capacitado (LSNC)
Algumas empresas lidam com problemas de produção constantemente. Com isso, uma
das metas é estabelecer o tamanho de lotes de produção em um campo de planejamen-
tos levando o tempo em consideração. O LSNC é um planejamento de apenas um pro-
duto para fornecer uma demanda dinâmica, além de minimizar os custos de produção
e estoque em um horizonte de planejamento. Segundo Wolsey [38], estão inseridos no
custo de produção o custo fixo ft, o custo unitário de produção pt, o custo do estoque
único ht e a demanda dt, para cada período t.
As variáveis são definidas como:
xt sendo o total produzido no período t;
st o estoque no final do período t;
yt = 1 se a produção ocorre em t;
yt = 0 caso contrário.
Aqui, a priori, não temos um limite para o total produzido e consideramos um
constante muito grande Mt. Assim, a formulação segue como:
minn∑
t=1
ptxt +n∑
t=1
htst +n∑
t=1
ftyt
s.a st−1 + xt = dt + st para t = 1, ...n
xt ≤Myt para t = 1, ..., n
s0 ≥ 0 para t = 1, ..., n
st ≥ 0 para t = 1, ..., n
xt ≥ 0 para t = 1, ..., n
yt ∈ {0, 1} para t = 1, ..., n.
1.3 Limitantes
Ao encontrar uma solução viável x∗ para um problema, queremos, por muitas vezes,
saber se ele é ótimo. Para isso, podemos recorrer aos limitantes. Eles são importantes
10
para a condição de otimalidade e identificam-se por limitante superior (z) e limitante
inferior (z), ou seja, um algoritmo irá encontrar uma sequência decrescente de limi-
tantes superiores e uma sequência crescente de limitantes inferiores, parando quando
zs − zt ≤ ε, onde ε é um valor não negativo bem pequeno, z1 > z2 > ... > zs ≥ z e
z1 < z2 < ... < zt ≤ z
• Limitante Primal: qualquer solução viável irá conceder um limitante inferior no
caso de maximização e limitante superior no caso de minimização. Para Wolsey
[38], este é o único jeito conhecido de obter um limitante inferior (maximização).
• Limitante Dual: qualquer solução ótima para uma relaxação irá conceder um
limitante superior no caso de maximização e limitante inferior no caso de mini-
mização.
Um Problema Relaxado (PR):
zR = max {f(x) : x ∈ T ⊆ Rn},
é uma relaxação de um Problema de Programação Inteira (PPI):
z = max {cTx : x ∈ X ⊆ Zn},
se:
X ⊆ T e f(x) ≥ cTx, ∀x ∈ X.
Proposição 1.3.1. Se PR é uma relaxação de PPI, zR ≥ z.
Demonstração: Seja x∗ ótimo de PPI e x ótimo de PR. Então, z = cTx∗ ≤ f(x∗) ≤
f(x) = zR ⇒ zR ≥ z.
11
1.4 Relaxações
Um limitante dual para um problema pode ser encontrado por relaxação. As relaxa-
ções mais exploradas na literatura são: Relaxação Linear, Relaxação Combinatória e
Relaxação Lagrangeana.
1.4.1 Relaxação linear (RL)
Para um PPI
z = max {cTx : x ∈ P ∩ Zn},
onde P = {x ∈ Rn+ : Ax ≤ b}, podemos gerar uma RL
zRL = max {cTx : x ∈ P}
de PPI a partir da mesma função objetivo e das mesmas restrições, sendo que
as variáveis inteiras serão substítuidas por restrições contínuas apropriadas. Ao des-
considerarmos as restrições de integralidade das variáveis inteiras do PPI realizamos
uma Relaxação Linear e obtemos o Problema de Programação Linear. Por exemplo,
considere o problema:
max 4x1 − x2
s.a 7x1 − 2x2 ≤ 14
x2 ≤ 3
2x1 − 2x2 ≤ 3
x1, x2 ≥ 0 e inteiros.
A RL para este problema pode ser escrito como:
12
max 4x1 − x2
s.a 7x1 − 2x2 ≤ 14
x2 ≤ 3
2x1 − 2x2 ≤ 3
x1, x2 ≥ 0.
A região viável desta relaxação contém todos os pontos inteiros da região
viável do Problema de Programação Linear Inteiro original.
Definição 1.4.1. Dado um conjunto X ⊆ Zn, e duas formulações P1 e P2 para X,P1
é uma formulação melhor do que P2 se P1 ⊂ P2.
Proposição 1.4.2. Suponha que P1, P2 sejam duas formulações para o programa in-
teiro max {cTx : x ∈ X ⊆ Zn} sendo P1 uma formulação melhor do que P2, por
exemplo, P1 ⊂ P2. Se zRLi = max{cTx : x ∈ Pi} para i = 1, 2 são os valores da
relaxação da programação linear associada, então zRL1 ≤ zRL
2 para todo c.
Demonstração: Sejam x∗1 e x∗2 as soluções ótimas das relaxações lineares associadas
a P1 e P2. Como P1 ⊂ P2 temos que x∗1 ∈ P2. Se x∗1 = x∗2 , então zRL
1 = zRL2 . Por
outro lado, se x∗1 6= x∗2 , então x∗2 6∈ P1 ⇒ zRL
2 ≥ zRL1 .
Proposição 1.4.3. (i) se a relaxação PR é inviável, o PPI é inviável. (ii) Seja x∗ uma
solução ótima de PR. Se x∗ ∈ X e f(x∗) = cT (x∗), então x∗ é uma solução ótima do
PPI.
Demonstração: (i) Se PR é inviável, então T 6= ∅. Como PR é uma relaxação
para PPI, temos X ⊆ T . Logo, X = ∅ e o PPI é inviável. (ii) Seja x∗ ∈ X , então
z ≥ cT (x∗) = f(x∗) = zR ⇒ z ≥ zR. Como zR é um limitante dual para o PPI, temos
que zR ≥ z. Logo zR = z e x∗ é a solução para o PPI.
13
1.4.2 Relaxação Combinatória
Quando um problema está sujeito a um conjunto de soluções e este é definido de forma
combinatória podemos obter uma Relaxação Combinatória. Por exemplo, o Problema
do Caixeiro Viajante definido como um Problema de Otimização Combionatória con-
site em minimizar o custo de rotas, onde cada rota pertence a um conjunto de todos os
ciclos hamiltonianos. Este conjunto - de ciclos hamiltonianos - em um grafo é o con-
junto combinatório. Então, a relaxação do problema é a relaxação dos conjuntos de
ciclos hamiltonianos, que pode ser um ciclo qualquer, ou ainda, uma união de subrotas
disjuntas obtendo, assim, todos os vértices.
1.4.3 Relaxação Lagrangeana
.
Seja o PPI:
z = max cTx
s.a Ax ≤ b
x ∈ X ⊆ Zn.
Suponha que um subconjunto das restrições do problema o torne mais difícil.
Contudo podemos gerar um problema mais simples de resolver relaxando algumas
restrições consideradas difíceis do problema original, e penalizando as suas violações
na função objetivo. Sendo assim, obtemos:
z(λ) = max cTx+ λ(b− Ax)
s.a x ∈ X
λ ≥ 0.
Proposição 1.4.4. Seja z(λ) = max{cTx + λ(b − Ax) : x ∈ X}. Então z(λ) ≥ z
para todo λ ≥ 0.
14
Demonstração: Seja x∗ a solução ótima para um PPI, assim, x∗ ∈ X . Por viabilidade
Ax∗ ≤ b, e como λ ≥ 0, z = cTx∗ ≤ cTx∗ + λ(b − Ax∗) ≤ z(λ) onde a última
desigualdade é definida de z(λ).
No capítulo 3, apresentamos mais detalhes sobre Relaxação Lagrangeana
(RLG), como: definição mais detalhada, Método do Subgradiente e Heurísticas La-
grangeanas.
1.5 Métodos de Solução Exata
A aplicação da Programação Linear Inteira abrange duas etapas. A primeira envolve a
criação do modelo em que o problema será resolvido e a segunda é utilizar um método
de resolução a fim de encontrar uma solução para o problema, sendo ela ótima ou de
boa qualidade. Sobre a segunda etapa, desenvolver novos métodos ou até melhorar os
já existentes para que eles sejam mais eficientes são exemplos dos desafios. Não existe
um único método para resolver todos os problemas. Existe uma relação entre as duas
etapas, com isso, dependendo de como o modelo é formulado um certo método é mais
eficiente.
1.5.1 Branch-and-Bound
Este método é mais conhecido pelo seu termo em inglês. Em português esse método é
denominado por Ramificação e Poda. A ideia é desenvolver uma enumeração sistemá-
tica das soluções viáveis para o problema dividindo-o em subproblemas mais fáceis de
serem resolvidos, de forma que, os limitantes servirão para tentar impedir a resolução
de subproblemas nos quais a solução ótima não pertencerá. Assim, o termo branch faz
alusão ao fato do método realizar partições no espaço das soluções e o termo bound
evidencia que a prova de otimalidade utiliza-se de limitantes no decorrer da enumera-
ção.
15
Dividir e Conquistar
Quando temos um problema, podemos dividi-lo em problemas menores, resolver estes
pequenos problemas, e então avaliar cada uma das soluções. Esta é a ideia central do
dividir e conquistar. Segundo Wolsey [38], uma forma de representar esta técnica é
pela árvore de enumeração. Por exemplo, se S ⊆ {0, 1}2, podemos formar a árvore da
Figura (1.3).
Figura 1.3: Árvore de enumeração
Por convenção, a árvore é desenhada com a raiz no topo. Na Figura (1.3),
S foi dividido em S0 = {x ∈ S : x1 = 0} e S1 = {x ∈ S : x1 = 1} e, depois,
S0 foi divido em S00 = {x ∈ S0 : x2 = 0}, S01 = {x ∈ S0 : x2 = 1} e S1 em
S10 = {x ∈ S1 : x2 = 0}, S11 = {x ∈ S1 : x2 = 1}.
Enumeração Implícita
A enumeração implícita é uma avaliação sistemática de todas as soluções possíveis
sem avaliar explicitamente todas elas. Para efeitos de simplicidade, consideramos o
modelo como sendo 0-1 e construimos uma árvore binária. Alguns problemas são
tão grandes e a complexidade do problema, que gera subproblemas, são tão difíceis
quanto o original, que a enumeração completa se torna impossível, assim, dividir não
é suficiente.
16
Seja S = S1 ∪ S2 ∪ ... ∪ Sk e zt = max {cx : x ∈ St} para t = 1, ..., k, zt é
um limitante superior em zt e zt é um limitante inferior em zt.
Podemos listar três razões para podar a árvore:
• Poda por otimalidade: se zt = zt, então o valor da solução ótima para o t-ésimo
subproblema zt é conhecido e não há necessidade de subdividir St. Então z =
max{zi : i = 1, ...t} é um limitante superior em z e z = max{zi : i = 1, ...t} é
um limitante inferior em z.
Figura 1.4: Poda por otimalidade; Fonte: Wolsey (1998)
De acordo com a Figura (1.4) primeiramente z = max{20, 25} = 25 e z =
max{20, 15} = 20. Agora, como em S1 tanto o limitante inferior quanto o superior
são iguais, z1 = 20, não há mais a necessidade de analisar S1. Com isso podemos fazer
a poda por otimalidade.
• Poda por limite: Se zt ≤ z, então a solução ótima para o t-ésimo subproblema
nunca será a solução ótima para o problema original. Então, não há necessidade
de subdividir St.
Neste exemplo, Figura 1.5, podemos notar que z = max{20, 26} = 26 e
z = max{18, 21} = 21. Com isso, como o valor ótimo tem um valor de pelo menos
21, e o limitante superior z1 = 20, não tem como a solução ótima pertencer à S1. Então
podemos fazer a poda por limite.
• Poda por inviabilidade: Se St = ∅, então não há necessidade de subdividir St.
17
Figura 1.5: Poda por limite; Fonte: Wolsey (1998)
Quando colocamos uma restrição a mais no problema e fixamos uma variável
em um certo valor, por fim, não conseguimos obter uma solução para o problema. Com
isso, de acordo com a Proposição 1.4.3, se a relaxação é inviável o problema é inviável.
1.5.2 Planos de Corte
Os Planos de Corte foram introduzidos por Gomory [12]. A ideia deste método é
incluir de forma sucessiva novas restrições na Relaxação Linear do PPLI. Dessa forma,
o conjunto das soluções possíveis será cortado por estas novas restrições, porém, não
eliminando qualquer solução inteira.
Definição 1.5.1. Dado um conjunto X ⊆ Zn, a envoltória convexa de X , denotada
conv(X), é definida como: conv(X) = {x : x =∑t
i=1 λixi,∑t
i=1 λi = 1, λi ≤ 0
para i = 1, ..., t} para todo subconjunto finito {x1, ..., xt} de X .
Proposição 1.5.2. conv(X) = {x : Ax ≤ b, x ≥ 0} é um poliedro. (A prova pode ser
encontrada em Wolsey [38]).
Para Wosley [38], em teoria podemos reformular um Problema de Programa-
ção Inteira como um Problema de Programação Linear devido a envoltória convexa
ser um poliedro e os pontos extremos de conv(X) pertencerem a X . Um dos obje-
tivos com os Planos de Corte é tentar aproximar conv(X) na vizinhança da solução
ótima para uma dada instância do problema. Para isso, um conceito fundamental é o
da desigualdade válida.
18
Desigualdade Válida
Definição 1.5.3. A desigualdade πx ≤ π0 é uma desigualdade válida para X ⊆ Zn se
πx ≤ π0 para todo x ∈ X .
Por exemplo, se X = {x ∈ Zn : Ax ≤ b}, então todas as restrições aix ≤ bi
são desigualdades válidas para X; se conv(X) = {x ∈ Rn : Ax ≤ b}, então todas as
restrições aix ≤ bi são desigualdades válidas para X .
Dada uma formulação para X , a ideia é identificar desigualdades válidas adi-
cionais para X e adicioná-las à formulação, cortando regiões da formulação que não
contêm soluções viáveis, assim, obtendo formulações melhores para X .
Agora, existe um procedimento para desenvolver desigualdades válidas cha-
mado de Procedimento de Chvátal-Gomory. Definindo o conjunto X = P ∩ Zn, onde
P = {x ∈ Rn+ : Ax ≤ b}, A é uma matriz m × n com colunas {a1, a2, ..., an} e
u ∈ Rm+ , ele consiste em três etapas:
1. Tome u ∈ Rm+ . A desigualdade
∑nj=1 u
Tajxj ≤ uT b é válida para P (desde que
u ≥ 0 e∑n
j=1 ajxj ≤ b).
2. A desigualdade∑n
j=1buTajcxj < uT b é válida para P (desde que x ≥ 0).
3. A desigualdade∑n
j=1buTajcxj ≤ buT bc é válida para X se x for inteiro, e∑nj=1buTajcxj for inteiro.
Adição de Restrição a Priori
Nesta técnica queremos examinar a formulação inicial P = {x : Ax ≤ b, x ≥ 0}
com X = P ∩ Zn, encontrar um conjunto de desigualdades válidas Qx ≤ q para X
e adicioná-las imediatamente a formulação gerando uma nova formulação P ′ = {x :
Ax ≤ b,Qx ≤ q, x ≥ 0} com X = P ′ ∩ Zn.
Um exemplo pode ser encontrado no Wolsey [38], onde ele apresenta um
problema de LFNC com formulação fraca.
19
Algoritmo dos Planos de Corte
Suponha que queremos resolver o PPI
z∗ = max{cTx : x ∈ P ∩ Zn}
e conhecemos a família F de desigualdades válidas paraEC = conv(P∩Zn).
A ideia do algoritmo dos Planos de Corte, segundo [32], é encontrar uma solução ótima
x∗ para o programa linear max{cTx : x ∈ P}; se a solução ótima x∗ for inteira, então
já temos uma solução ótima; caso contrário, fazemos uma busca em F para encontrar
desigualdades violadas por x∗, isto é, wx∗ > d onde wx ≤ d é válida para EC;
adicionamos a desigualdade encontrada para a nossa RL e a resolvemos para encontrar
uma nova solução ótima x∗∗ da formulação melhorada; se a família de desigualdades
válidas F contém uma descrição completa deEC, terminamos com uma solução ótima
inteira.
20
Capítulo 2
Problema das p-Medianas
O Problema das p-Medianas é um problema de localização de p facilidades (medianas)
em uma rede contendo n nós, a fim de minimizar a soma total das distâncias entre cada
nó e sua mediana mais próxima.
2.1 Exemplos
Considere um problema como na Figura 2.1, com 30 nós e que precisaremos escolher
4 para serem medianas. Um exemplo prático seria escolher quatro bairros dentre trinta
de uma cidade para instalar unidades hospitalares, ou também, definir um quarteto de
depósitos para facilitar a distribuição de mercadorias em uma certa região.
Figura 2.1: Problema com 30 nós
De acordo com o exemplo, podemos tomar a Figura 2.2 como uma escolha
21
provável de medianas. A seleção se apresenta aleatória para a exemplificação, assim
como poderia ser qualquer outra combinação de nós. Então, no exemplo temos que
quatro bairros terão hospitais instalados ou quatro depósitos para facilitar a entrega de
uma empresa.
Figura 2.2: Medianas (cinza) escolhidas
Assim, estabelecendo as devidas ligações observamos que cada nó não medi-
ana é atribuído à mediana que se encontra mais próxima dele. A Figura 2.3 representa
uma solução viável para o problema, porém não temos garantia de que seja a melhor.
Os hospitais/depósitos (medianas) irão atender os bairros/localizações (nós) a eles li-
gados.
Figura 2.3: Esquema de uma solução viável
Uma aplicação do Problema das p-Medianas pode ser vista em Rosário [27],
onde uma metodologia é proposta para a distribuição espacial de Unidades de Saúde
(US) 24 Horas no município de Curitiba, levando em consideração aspectos como: a
22
densidade demográfica, o grau de carência sócio-econômica da população, a inexistên-
cia de serviços de saúde na região e o sistema viário de transporte. A fim de minimizar
as distâncias percorridas pelos usuários desde suas residências à US 24 Horas mais
próxima, na Figura 2.4 é apresentado o resultado assumindo que não exista nenhuma
US 24 Horas anteriormente, em que os pontos cinzas são as localizações escolhidas
para a implementação das unidades que atendem as regiões delimitadas.
Figura 2.4: Resultado Encontrado baseado no gráfico obtido por Rosário (2002)
Outro exemplo prático pode ser encontrado em Lorena, Senne, Paiva e Mar-
condes ([22] apud Amorim [1]) onde discutem a integração de um modelo de p-
Medianas aos Sistemas de Informações Geográficas ArcView, da ESRI, e SPRING,
em desenvolvimento no INPE. Os testes computacionais foram realizados usando da-
dos na cidade de São José dos Campos em São Paulo, onde procuraram instalar três
antenas para oferecer uma maior cobertura do serviço de telefonia móvel. O resultado
dos testes pode ser visto na Figura 2.5, na qual os polígonos de fundo correspondem
às quadras do centro da cidade e os pontos sobrepostos são os nós de demanda consi-
derados.
23
Figura 2.5: Solução do problema com a instalação de três antenas. Fonte: Lorena
(2001)
2.2 Trabalhos Realizados
Inicialmente o Problema das p-Medianas foi introduzido por Hakimi [14]. Ele demons-
trou um teorema importante para a obtenção de soluções para o PPM, o qual prova que
ao menos um conjunto de pontos ótimos do problema será constituído de nós do grafo,
e, com isso, as heurísticas de busca não perderiam mais tempo na procura da solução
sobre os arcos do grafo. Posteriormente, o desenvolvimento da solução heurística se
deu por Tietz e Bart [30]. Eles desenvolveram um método chamado node substitution,
onde, a partir de uma solução inicial viável, o algoritmo irá substituir cada vértice do
grafo um por vez até não haver melhorias. Já em 1970, ReVelle e Swain [26] demons-
traram uma formulação do problema como um PPI. Eles realizaram um estudo sobre
um problema envolvendo Central Facilities Location, que consiste em designar m de
n nós (m < n) como centros de tal forma que, a distância ou o tempo de viagem de
cada pessoa de um nó n ao seu nó central mais próximo seja o mínimo possível. Além
disso, está presente no trabalho uma formulação do PPM em termos de Programação
Inteira Binária.
As aplicações do Problema das p-Medianas surgiram na Análise de Cluster,
24
vide: Vinod [36], onde seu artigo possui três objetivos: (i) salientar que o problema
de cluster deve ser reconhecido como um PPI (ii) formular matematicamente algumas
versões simples do PPI (iii) dar alguns exemplos numéricos para esclarecer os mo-
delos matemáticos e para ilustrar as vantagens da formulação de Programação Inteira;
Rao [25], onde uma pesquisa é feita a partir de um ponto de vista de programação ma-
temática discutindo os passos do estudo de cluster, tipos de cluster e, posteriormente,
o estudo de alguns algoritmos para cluster hierárquico, particionado, sequencial e adi-
tivo; Mulvey e Crowder [23], onde apresentaram um caso especial de LFNC e um
PPM com o objetivo central de minimizar a soma das distâncias entre cada objeto de
estudo à uma mediana do cluster designado; Hansen e Jaumard [15], onde considera-
ram o PPM combinado com a Relaxação Lagrangeana muito eficiente na obtenção de
resultados dentro do Branch-and-Bound.
Garfinkel (1979) formulou a p-Mediana como um problema Set Partitioning
[28] e usou a Geração de Colunas [38] para resolver uma Relaxação Linear, observando
que ela era bastante degenerada, ou seja, na solução básica possível há alguma variável
básica com valor zero.
Hansen e Mladenovic et al. [16] publicaram um trabalho onde apresentaram
diferentes heurísticas VNS [16] para o PPM. Além disso, compararam uma heurística
gulosa [38] com trocas e duas heurísticas Busca Tabu [10] uma proposta por Glover
([10] e [11]) e outra por Voss [37]. Após o desenvolvimento, concluíram que o VNS
superou outros algoritmos.
Em 2006, foi publicado um trabalho realizado por Avella, Sassano e Vasil’ev
et al. [2] onde desenvolveram um algoritmo Branch-and-Cut-and-Price o qual ob-
teve soluções de boa qualidade para instâncias relativamente grandes do Problema das
p-Medianas. Segundo eles, neste algoritmo estão presentes técnicas de Geração de
Colunas e Linhas Retardadas, a exploração da estrutura especial da formulação a fim
de resolver a RL e, por fim, a utilização de desigualdades válidas para reforçar a for-
mulação e limitar o tamanho da árvore de enumeração.
Na Geração de Colunas e Linhas Retardadas, o "problema mestre"é definido
25
por um subconjunto das colunas e de linhas - diferente do método de Geração de Co-
lunas padrão, onde apenas é utlizada um subconjunto pequeno das colunas. Já as desi-
gualdades válidas inseridas para reforçar a formulação foram importante para manter
o tamanho da árvore de busca dentro dos limites admissíveis. Segundo Reis [8], o
algoritmo Branch-and-Cut-and-Price inicialmente adiciona colunas à formulação até
que não seja encontrada mais nenhuma coluna com custo reduzido negativo para ser
adicionada. Então, o algoritmo busca repetidamente todos os cortes violados até que
ocorra uma falha na geração de colunas e de cortes. Em seguida, o algoritmo insere os
cortes na formulação e realiza uma verificação para saber se a solução do nó corrente é
inteira ou se é maior do que o melhor limitante superior encontrado. Se nenhuma das
afirmações for verdadeira, o algoritmo realiza a ramificação.
Em seu artigo, Tao Jia [29] propôs um modelo do PPM para listar as possí-
veis combinações de p facilidades e simular a alocação de recursos a fim de selecionar
centros de saúde numa provincia da China chamada de Henan. No desenvolvimento
do trabalho foram consideradas variáveis como: acessibilidade e qualidade de serviço.
Juntamente com as contribuições de Hongbing Tao para a coleta de informações e de
Yulong Wang, Kun Qin, Chengkun Liu, Kun Qin e Qili Gao na análise e processa-
mento de dados, foi possível obter melhores soluções nas ferrovias de alta velocidade
e rodovias.
2.3 Grafos
No estudo sobre o Problema das p-Medianas, torna-se necessário alguns conceitos de
Teoria dos Grafos. Segundo Bondy e Murty [5], um grafo G é uma tripla ordenada
(V (G), E(G),ΨG) consistindo de um conjunto não vazio V (G) de vértices, um con-
junto E(G) de arestas e uma função ΨG que associa cada aresta de G a um par de
vértices de G.
Exemplo:
26
G = (V (G), E(G),ΨG)
V (G) = (v1, v2, v3, v4)
E(G) = (e1, e2, e3, e4, e5, e6)
ΨG : ΨG(e1) = v1v2,ΨG(e2) = v2v3,ΨG(e3) = v3v3,ΨG(e4) = v3v4,ΨG(e5) = v2v4,
ΨG(e6) = v2v4.
Ainda segundo eles, grafos são assim chamados porque podem ser represen-
tados graficamente, e é esta representação gráfica que nos ajuda a compreender muitas
das suas propriedades. O grafo do exemplo pode ser visto na figura 2.6.
Figura 2.6: Diagrama do grafo G (Exemplo)
Existem casos em que os arcos dos grafos são direcionados, ou seja, cada arco
"começa"na sua ponta inicial e "termina"na sua ponta final. Nesses casos os grafos são
denominados grafos direcionados. No PPM, trabalhamos mais precisamente com esse
tipo.
2.3.1 Grafo Direcionado
Quando lidamos com problemas, como, por exemplo, o problema de fluxo de tráfego,
tornasse necessário identificar quais estradas são de mão única e quais são de mão
dupla. Claramente, um grafo da forma como definido na seção anterior não ajuda
nesse tipo de problema. O que precisamos é um grafo em que cada ligação tem uma
orientação atribuída, ou seja, um grafo direcionado. Para Bondy e Murty [5], um
grafo direcionado D (digrafo) é uma tripla ordenada (V (D), E(D),ΨD) consistindo
27
de um conjunto não vazio V (D) de vértices, um conjunto E(D) de arcos e uma função
ΨD que associa cada arco de D a um par ordenado de vértices de D. Um digrafo é
representado por um diagrama com setas no lugar de arestas, cada seta apontando para
a cabeça do arco correspondente. Um digrafo pode ser visto na Figura 2.7.
Figura 2.7: Digrafo
2.4 Formulação
Considere um problema com m medianas, n nós e uma matriz C de tamanho n × n.
Cada elemento cij representa o custo do nó i ser atribuído à mediana j.
Definimos as variáveis de decisão xij e yj como:
xij =
1, se o nó i é alocado ao nó j
0, caso contrário.
yj =
1, se o nó j é mediana
0, caso contrário.
Iniciamos a formulação com a função objetivo:
minimizar z =n∑
i=1
n∑j=1
cijxij, (2.1)
A função objetivo (2.1) minimiza o custo total entre os nós e suas respectivas
medianas. A seguir seguem as restrições do problema.
n∑i=1
xij + yj = 1 ∀j = 1, ..., n. (2.2)
28
Para um dado nó j se yj = 0, então ele deverá estar conectado a uma única
mediana i. Caso o nó j seja uma mediana, yj = 1, a restrição (2.2) garante que ele não
estará ligado à outra mediana i. A Figura 2.8 apresenta um exemplo da restrição (2.2)
com uma forma não violada (a) e duas violadas (b) e (c). A variável xij representa um
arco, que parte de uma mediana e se conecta a um nó não mediana.
Figura 2.8: O nó cinza (mediana) possui valor 1.
Seguindo com as restrições, temos:
n∑j=1
yj = p. (2.3)
A restrição 2.3 impõe que o número total de medianas abertas seja exatamente
p.
Considere as seguintes restrições,
xij ≤ yi,∀i, j = 1, ..., n. (2.4)
As restrições 2.4 garantem que o nó i está alocado ao nó j se j for mediana,
ou seja, a restrição não permite que um nó que não seja mediana sirva de mediana para
outro nó.
Então, a formulação completa do Problema das p-Medianas é:
29
minimizar z =n∑
i=1
n∑j=1
cijxij
s.an∑
i=1
xij + yj = 1 ∀j = 1, ..., n
n∑j=1
yj = p
xij ≤ yi,∀i, j = 1, ..., n
xij, yj ∈ {0, 1}
A Figura 2.9 representa uma solução viável para o PPM.
Figura 2.9: Uma solução viável com 15 nós sendo 3 medianas (cinza)
30
Capítulo 3
Relaxação Lagrangeana
Os trabalhos para o Problema do Caixeiro Viajante de Held e Karp ([17] e [18]) são
grandes referências para o prelúdio do uso constante dos métodos de RLG. Porém,
foi em 1974 que Geoffrion et al. [9] consagrou definitivamente o termo "Relaxação
Lagrangeana".
Em meados desta época, um pensamento importante era de que muitos pro-
blemas considerados difíceis, repletos de restrições, poderiam ser vistos como proble-
mas fáceis, vide Gomes [13]. Com isso, a ideia é que com a dualização das restrições
difíceis, ou seja, a introdução de um vetor de multiplicadores (multiplicadores de La-
grange) e sua adição a posteriori na função objetivo poderia gerar um problema mais
fácil de resolver - o Problema Lagrangeano.
Na resolução do Problema Lagrangeano, ocorre a formação dos limitantes in-
feriores e superiores em problemas de minimização e maximização, respectivamente,
para o valor da solução do problema original. Portanto, é factível estimar a aproxima-
ção da solução disponível da solução ótima a partir do limitante gerado pela RLG.
3.1 Definição do Problema
Considere um problema inicial P0 de Programação Inteira 0-1 expresso da seguinte
forma:
31
minimizar z = cTx (3.1)
s.a Ax ≥ b (3.2)
0 ≤ x ≤ 1, (3.3)
onde A ∈ Rm×n; c, x ∈ Rn e b ∈ Rm. Se o problema é muito difícil para
ser solucionado diretamente, podemos remover as restrições Ax ≥ b de forma que o
problema seja de fácil resolução. Para isso, sendo λ ∈ Rm um vetor de multiplicadores
de Lagrange, podemos relacionar um λi ≥ 0 a cada uma das restrições 3.2, seguindo o
procedimento de retirá-las do conjunto de restrições, realizar seu produto pelo vetor de
multiplicadores e adicioná-las à função objetivo 3.1. Podemos tomar o problema PE
abaixo como exemplicação de um problema considerado difícil:
(PE)
minimizar z = 3x1 − x2
s.a x1 − x2 ≥ −1
−x1 + 2x2 ≤ 5
3x1 + 2x2 ≥ 3
6x1 + x2 ≤ 15
x1, x2 ≥ 0
x1, x2 ∈ Z.
Sua região factível pode ser vista na Figura 3.1, onde os pontos em preto
representam as soluções inteiras dentro da formulação do problema:
32
Figura 3.1: Região factível de PE.
Definindo X = Zn ∩ {x : Ax ≥ b}, a Relaxação Lagrangeana de P0, ou
PRLG, é dada por:
z = min (cTx+ λ(b− Ax)) (3.4)
s.a x ∈ X. (3.5)
Em P0, para qualquer λi ≥ 0, obtemos um limitante inferior na solução ótima.
O valor de P0 é maior do que o valor de PRLG, pois como λ ≥ 0 e (b − Ax) ≤ 0
só adicionamos termos menores que zero na função objetivo. Para Wolsey [38], se
considerarmos uma solução viável x∗ para o problema inicial, esta solução também
é solução do Problema Lagrangeano. Utilizando PE como exemplo, iremos a seguir
desenvolver o seu Problema Lagrangeano.
Como consideramos PE um problema difícil de resolver, podemos remover
algumas restrições para tentar obter um problema de mais fácil resolução. Nesse caso,
escolhemos a seguinte restrição:
33
x1 − x2 ≥ −1.
Em seguida, relacionamos esta restrição com um vetor de multiplicadores de
Lagrange e adicionamos o seu produto à função objetivo. Com isso, obtemos Relaxa-
ção Lagrangeana de PE, ou PERLG:
z(λ) = min(3x1 − x2 + λ(−1− x1 + x2))
s.a −x1 + 2x2 ≤ 5
3x1 + 2x2 ≥ 3
6x1 + x2 ≤ 15
x1, x2 ≥ 0
x1, x2 ∈ Z.
A continuação do exemplo PE está presente na próxima Seção, onde desenvol-
vemos o Método do Subgradiente. Então, seguindo com o estudo da RLG, ao dualizar
3.2, obtemos que b− Ax ≤ 0 e assim:
z(λ) ≤ cTx∗ + λ(b− Ax∗).
Logo,
z(λ) ≤ cTx∗ + λ(b− Ax∗) ≤ cTx∗ ≤ z∗.
Então, podemos notar que z(λ) define um limitante inferior para P0.
Mas agora, para obter o λ que gera o limitante inferior mais próximo do valor
da solução de P0 devemos resolver o Problema Dual Lagrangeano. Assim, desejamos
encontrar multiplicadores tais que:
34
max
λ ≥ 0
minimizar (cTx+ λ(b− Ax))
x ∈ X
.
Para um resultado melhor, o valor ótimo do Problema Dual Lagrangeano (ma-
ximização) deveria ser igual ao valor ótimo do problema original (minimização). Para
Beasley [3], se os dois problemas não possuem valores ótimos iguais, então existe uma
lacuna de dualidade [24] e, portanto, seu tamanho é medido pela diferença entre o valor
ótimo do Problema Dual Lagrangeano e o valor ótimo do problema original.
Uma boa escolha para λ seria uma solução ótima para o Problema Dual, da
forma que segue:
zD = max z(λ) para λ > 0.
Figura 3.2: A forma de z(λ)
Na Figura 3.2, cada solução do problema gera uma reta com variação em λ.
Como no problema queremos minimizar em λ tomamos a curva que se forma para
dentro da fronteira. No geral, queremos resolver a função z(λ), pois ela possui boas
propriedades como continuidade e concavidade, e com isso, podemos encontrar o seu
máximo, no entanto, ela não é diferenciável.
35
Como outro exemplo para ilustrarmos a Relaxação Lagrangeana podemos
considerar uns dos mais simples problemas NP-Completos de Otimização Combina-
tória, chamado de Problema de Cobertura de Conjuntos - do inglês Set Covering Pro-
blem (SCP) - que é um problema de otimização que consiste em cobrir as linhas de
uma matriz-(0,1) aij de m linhas e n colunas por um subconjunto de colunas de custo
mínimo. A formulação apresentada foi baseada no SCP proposto por Beasley [3].
Seja,
xj = 1, se a coluna j está na solução;
xj = 0, caso contrário.
Temos a seguinte formulação para o SCP:
minn∑
j=1
cjxj (3.6)
s.an∑
j=1
aijxj ≥ 1, i = 1, 2, ...,m (3.7)
xj ∈ {0, 1}, j = 1, 2..., n (3.8)
A restrição 3.7 impõe que cada linha esteja coberta por pelo menos uma co-
luna e a restrição 3.8 é a restrição de integralidade.
A fim de gerar a Relaxação Lagrangeana para o SCP, devemos escolher algum
conjunto de restrições no problema para relaxar - o que pode não ser tão fácil. Além
disso, também precisamos anexar multiplicadores de Lagrange a estas restrições, a fim
de trazê-los para a função objetivo. Mas como no SCP temos apenas o conjunto de
restrições 3.7, o escolhemos para relaxar e anexamos os multiplicadores de Lagrange
λi ≥ 0, i = 1, 2, ...,m a essas restrições. Assim, realizando estes procedimentos
encontramos a seguinte Relaxação Lagrangeana:
minn∑
j=1
cjxj +m∑i=1
λi(1−n∑
j=1
aijxj)
s.a xj ∈ {0, 1}, j = 1, 2, ..., n.
36
Logo,
minn∑
j=1
[cj −m∑i=1
λiaij]xj +m∑i=1
λi
s.a xj ∈ {0, 1}, j = 1, 2, ..., n.
Definindo Cj = [cj −∑m
i=1 λiaij] para j = 1, 2, ..., n, temos que Cj é o
coeficiente de xj na função objetivo da relaxação, assim, resultando em:
minn∑
j=1
Cjxj +m∑i=1
λi
s.a xj ∈ {0, 1}, j = 1, 2, ..., n.
Com isso, a solução (Xj) para a RLG pode ser encontrado por inspeção, sendo
Xj igual a 1, se Cj ≤ 0 e Xj é igual a zero, caso contrário. A solução z(λ) é dada por:
z(λ) =n∑
j=1
CjXj +m∑i=1
λi,
onde z(λ) é o limitante inferior na solução ótima para o SCP original.
3.2 Método do Subgradiente
Em 1975 Held et al. [19] apresentou um método iterativo que ajudaria na geração de
limitantes inferiores em programas lineares de grande porte. O Método do Subgradi-
ente é um método iterativo, que através dos subgradientes do Problema Lagrangeano
tenta encontrar o conjunto de λ que resolve o Problema Dual Lagrangeano, ou seja, ele
obtem o maior limitante inferior para o problema de minimização. Os subgradientes,
na k-ésima iteração, são calculados da seguinte forma:
gki = bi −n∑
j=1
aijxkj ∀ i = 1, 2, ...,m,
37
onde xkj = [xk1, xk2, ..., x
kn]T é a solução do Problema Lagrangeano na iteração
k.
Nos resultados teóricos descritos por Held ([19] apud Gomes [13]), ressalta-
se que a escolha do tamanho do passo é importante para a convergência do método. O
resultado teórico fundamental com relação ao passo é que z(λk) → zD se: θk → 0 e∑ki=0 θ
i →∞ quando k →∞.
Segundo Gomes [13], dentre as propostas encontradas na literatura que rela-
tam a forma como é calculado o tamanho do passo, com o objetivo de tentar obter uma
taxa de convergência mais rápida, a mais utilizada na prática é:
θk = αzub − zlb‖gk‖2
,
onde θk é o tamanho do passo, α é um parâmetro com valor tal que 0 < α ≤ 2,
zub é um limitante superior para o valor da solução do problema, zlb é o valor do
melhor limitante dual obtido, até então, pelas iterações do Método do Subgradiente e
‖gk‖2 =∑m
i=1(gki )2.
Por fim, de acordo com a expressão:
λk+1i ≡ max{0, λki − θkgki } ∀ i = 1, 2, ...,m,
os multiplicadores são atualizados, a cada iteração, a partir de um vetor de
Multiplicadores de Lagrange inicial. Retornando ao exemplo PE, realizamos duas ite-
rações para o Método do Subgradiente.
Para a primeira iteração, atribuimos λ0 = 0 e o subistituímos em PERLG.
Com isso, obtemos:
38
z(0) = min(3x1 − x2)
s.a −x1 + 2x2 ≤ 5
3x1 + 2x2 ≥ 3
6x1 + x2 ≤ 15
x1, x2 ≥ 0
x1, x2 ∈ Z.
Resolvendo o problema chegamos a conclusão de que x01 = 0 e x02 = 2, então
z(0) = −2. Agora devemos calcular o subgradiente g0 para a restrição removida, ou
seja, a restrição x1 − x2 ≥ −1.
g0 = b− (a1x01 + a2x
02)
g0 = −1− (1(0)− 1(2))
g0 = −1 + 2
g0 = 1.
Em seguida, para calcular o tamanho do passo dado, devemos primeramente
obter o limitante superior zub e o melhor limitante dual zlb até o momento. Como o
ponto (1,1) da Figura 3.1 é viável para todas as restrições de PE, obtemos, a partir dele,
zub = 2. Já para zlb como o melhor valor até o momento é −2, então zlb = −2.
Sendo α = 2, temos que:
θ0 = 22− (−2)
‖1‖2
θ0 = 24
1
θ0 = 8.
Com o tamanho do passo definido podemos atualizar o λ, que será utilizado
para a próxima iteração:
39
λ1 = max{0; 0− 8(−3)}
λ1 = max{0; 24}
λ1 = 24.
Os cálculos são repetidos a cada iteração k do Método do Subgradiente até
encontrarmos uma solução de boa qualidade ou até ser impossível continuar com o
método, como por exemplo, encontrarmos um subgradiente com valor zero, pois o
valor de θ não poderá ser calculado.
3.3 Heurística Lagrangeana
A Relaxação Lagrangeana provê limitantes duais, mas também pode gerar soluções
primais durante o processo. Segundo Beasley [3], as soluções dos problemas de RLG
podem ser usadas para construir soluções viáveis para alguns problemas, isto é, a Heu-
rística Lagrangeana. Para fins explicativos, iremos utilizar o Problema de Cobertura de
Conjuntos (SCP) definido na Seção 3.1. Mais ainda, de acordo com Umetani e Yagiura
[31] a Heurística Lagrangeana começa com uma solução ótima do problema de RLG,
x(u), e tenta convertê-la em uma solução viável x para o SCP original. Esta solução
viável constitui um limitante superior na solução ótima para o problema.
Mas qual é a característica principal de uma Heurística Lagrangeana? Para
Beasley [3], a característica chave de uma Heurística Lagrangeana é a sua construção
sobre a solução atual para um Problema Lagrangeano. A solução para este problema
gera um limitante inferior sobre o valor da solução e também nos oferece um dado
importante sobre a estrutura da solução inteira ótima.
Como visto na seção anterior, as colunas no SCP cobrem cada linha ao menos
uma vez. Porém, Beasley [3] afirma que na solução do Problema Lagrangeano temos
alguns Xj = 0 e Xj = 1. Com isso, algumas linhas ficam descobertas. Porém, para
construirmos uma solução viável para o SCP necessitamos cobri-las. Como podemos
40
resolver isso? Beasley [3] ilustra uma possível Heurística Lagrangeana para construir
uma solução viável S para o SCP original, como segue:
• Seja S = [j|Xj = 1, j = 1, ..., n];
• Para cada linha i que está descoberta adicione a coluna correspondente para
min[cj|aij = 1, j = 1, ..., n] para S;
• S agora será uma solução viável para o SCP original de custo∑
j∈S cj .
Nem sempre é possível encontrar uma solução ideal, como foi o caso do
exemplo acima. Porém, conforme Beasley [3], cada vez que resolvemos a relaxação,
há chances da Heurística Lagrangeana transformar a solução para a relaxação numa
solução viável para o problema original.
41
Capítulo 4
Relaxação Lagrangeana para o
Problema das p-Medianas
A Relaxação Lagrangeana associada com heurísticas tem sido positiva na obtenção de
soluções. Para o PPM, iniciamos relaxando algumas restrições da formulação apresen-
tada no Capítulo 2. Primeiramente, escolhemos uma restrição desta formulação - no
caso escolhemos a restrição 2.2 - e a dualizamos.
z(λ) = min∑i∈V
∑j∈V
cijxij +∑j∈V
λj(1− yj −∑i∈V
xij) (4.1)
Tomamos a restrição (2.2), jogamos para o lado direito e, posteriormente, in-
serimos na função objetivo. Com isso, ajeitando a equação (4.1), obtemos o Problema
Lagrangeano (4.2):
z(λ) = min∑i∈V
∑j∈V
(cij − λj)xij +∑j∈V
λj(1− yj) (4.2)
s.an∑
j=1
yj = p (4.3)
xij ≤ yi, ∀i, j = 1, ..., n (4.4)
xij, yj ∈ {0, 1}. (4.5)
42
Podemos reescrever a (4.2) realizando a distributiva da segunda parcela da
função objetivo, assim temos:
z(λ) = min∑i∈V
∑j∈V
(cij − λj)xij +∑j∈V
−λjyj +∑j∈V
λj
s.an∑
j=1
yj = p
xij ≤ yi, ∀i, j = 1, ..., n
xij, yj ∈ {0, 1}.
Em seguida, adaptando o termo
∑j∈V
−λjyj,
fazemos com que ele seja escrito de tal forma que se pareça com a primeira
parcela da (4.2). Então obtemos,
∑j∈V
(0− λj)yj,
onde, reescrevendo a variável yj como xjj podemos considerar cjj = 0. Com
isso, é possível criar um custo auxiliar fj relativo a uma mediana, que nos dirá qual
ou quais nós tornarão medianas. Portanto, reduzimos o problema em encontrar as
medianas.
O Problema Lagrangeano especifica que teremos pmedianas e que o nó j está
ligado ao nó i se i for mediana. Contudo, quando retiramos a restrição (2.2) os nós do
problema não estão restritos a apenas uma ligação. Então, um nó não mediana pode se
ligar a mais de uma mediana, a nenhuma ou uma mediana pode receber conexões de
outras medianas, porém, um nó não mediana não pode virar mediana.
Como queremos minimizar o custo, então quanto menor for a soma dos custos
relacionados aos arcos melhor será a solução. Assim, ao decidirmos que um nó é
43
mediana duas coisas podem ocorrer: (i) se todos os custos são positivos, ele não se
ligará a ninguém, pois a ideia é ir em direção ao mínimo; (ii) se existir um subconjunto
de arcos cujo os custos são negativos, então esses têm que entrar na solução. Assim,
o fj representa o custo de colocar o nó j como mediana. Portanto, para um dado nó j
temos que fj = djj +∑
i∈V/j min {0, dji}, onde dji = cji − λi.
Se um nó possuir custo negativo para outra mediana ele também irá aparecer,
pois não existe a obrigação que ele esteja ligado a uma única mediana, mas sim, pode
ser ligado a nenhuma, a uma ou até a todas as medianas. Portanto, a criação do fj
simplica o problema. A Figura 4.1 representa as possíveis situações de uma relaxação
para um PPM removendo a restrição (2.2). Os nós 1, 2, 4 e 9 não se ligam a nenhuma
mediana (cinza), os nós 5, 6, 7, 8 e 10 se ligam a apenas uma mediana e o nó 3 se liga
a todas as medianas.
Figura 4.1: Remoção da Restrição 2.2
Com o custo auxiliar estabelecido, z(λ) pode ser reformulado para:
z′(λ) = min∑j∈V
fjyj +∑j∈V
λj (4.6)
s.a∑j∈V
yj = p (4.7)
yj ∈ {0, 1}∀j ∈ V. (4.8)
O Subproblema Lagrangeano (4.6)-(4.8) corresponde a uma enumeração sim-
44
ples das p facilidades com o menor custo fj . Agora, como podemos minimizar essa
função? A única restrição presente é que o somatório das medianas tem que ser igual
a p. Com isso, tomamos o fj e ordenamos de forma crescente (do mais negativo para
o maior positivo) e tomamos os primeiros p índices relativos a essa ordenação. Esta
será a solução do Problema Lagrangeano com λ fixo. Ao observar como a função fj
foi definida, podemos saber quem será ligado à quem.
4.1 Heurística Lagrangeana para o Problema das p-
Medianas
Nesta seção, apresentamos uma Heurística Primal baseada em informações duais. No
Problema das p-Medianas, os focos serão a relaxação (4.2)-(4.8) e o uso do Método do
Subgradiente para calcular os multiplicadores λj .
No Problema Lagrangeano, para cada iteração k, o vetor fk contém o custo
auxiliar fj , sendo ela de forma crescente. Com isso, seja, fk = [fkj1≤ fk
j2≤ ... ≤
fkjp ≤ fk
jp+1≤ ... ≤ fk
jn ], onde os p primeiros nós são o conjunto de medianas. Com
isso, as p medianas são escolhidas.
Porém, na solução Dual pode ocorrer de alguns nós não se ligarem a nenhuma
mediana, se ligarem a mais de uma mediana, ou até uma mediana se ligar a outra
mediana. Por isso, não se pode usar diretamente, em todos os casos, a solução Dual
como sendo a solução Primal. Algumas vezes elas são iguais, porém não é comum
isso acontecer.
Seguindo, partindo das p medianas estabelecidas, tomamos cada nó não me-
diana i e calculamos os p custos dji de cada ligação entre i à cada mediana j. Para
conectar uma não-mediana à uma mediana com o menor custo podemos escrever a
equação σi = min {dji| j é mediana}.
Em seguida, cada solução primal para cada iteração k do Método do Sub-
gradiente é obtida da seguinte forma: os p nós com os menores custos auxiliares no
vetor fk serão as medianas. Os nós que sobraram serão conectados as medianas que
45
oferecerem menor custo. Assim, o custo total da solução primal z é dada por:
zk =∑j∈V
∑i∈V
cjixji, (4.9)
onde, xji = 1, se dji for o menor custo para toda mediana j com yj = 1 e
xji = 0, caso contrário.
4.2 Busca Local
Partindo de uma solução inicial, consiste em percorrer iterativamente pelo espaço de
busca movendo-se, em cada passo, de uma solução para uma solução vizinha (adja-
cente).
Seja S o espaço de busca do problema e s uma solução do problema. A função
vizinhança é uma função N(s) que mapeia cada solução s ∈ S para um subconjunto
N(s) ⊂ S. Um elemento qualquer de N(s) é denominado de vizinho de s.
Todo vizinho s′ ∈ N(s) é alcançado pela solução s através de uma opera-
ção denominada de movimento. A Figura 4.2 mostra um exemplo de movimento.
Cada agrupamento é investigado e, em seguida, se pelo menos um movimento é feito,
realiza-se mais um teste que observa se existe uma mediana j 6= j′ tal que cij′ ≤ ci′j′ ,
onde j′ é uma mediana que atende o nó i′. O teste é realizado para todo nó que não
é mediana e a busca local é encerrada quando não há movimentos que melhorem a
qualidade da solução atual.
Figura 4.2: Exemplo de movimento
46
4.3 Exemplo
Nesta seção apresentamos um exemplo prático de uma Relaxação Lagrangeana para
um PPM. Considere que, conforme a orientação do Ministério da Saúde, todos os
municípios da Região Metropolitana do Rio de Janeiro irão receber lotes de vacinas
contra a gripe. Para facilitar a entrega, três dos vinte e um municípios serão escolhidos
para servirem como pontos de distribuição da vacina para os outros municípios. A
Figura 4.3 apresenta a Região Metropolitana do Rio de Janeiro.
Figura 4.3: Região Metropolitana do Rio de Janeiro; Fonte: Ceperj (2014)
A ideia é decidir quais municípios serão os distribuidores e, entre os três pon-
tos de distribuição, qual ou quais municípios serão servidos por cada um deles de tal
forma que o custo seja mínimo. É possível tomar esse exemplo como um Problema das
p-Medianas, onde os pontos de distribuição serão as medianas e os outros municípios
serão os nós. Para iniciar o modelo, cada município será um nó e receberá um número
de identificação (ID) correspondente conforme a Tabela 4.1.
47
Tabela 4.1: ID dos Municípios
Município ID
Rio de Janeiro 1
São Gonçalo 2
Duque de Caxias 3
Nova Iguaçu 4
Niterói 5
Belford Roxo 6
São João de Meriti 7
Magé 8
Itaboraí 9
Mesquita 10
Nilópolis 11
Maricá 12
Queimados 13
Itaguaí 14
Japeri 15
Seropédica 16
Rio Bonito 17
Guapimirim 18
Cachoeiras de Macacu 19
Paracambi 20
Tanguá 21
48
Para coletar as distâncias (custos a serem minimizados) entre cada combina-
ção de municípios foi utilizado o GoogleMaps da seguinte forma: (i) colocamos o
ponto de partida aproximandamente no meio de um município (ii) colocamos o ponto
de chegada, também aproximadamente, no meio de outro município (iii) das rotas
disponivéis pelo GoogleMaps escolhemos a menor possível. O cálculo é feito tanto
para ida quanto para a volta, pois nem sempre as distâncias das duas são as mesmas.
As Tabelas 4.2 e 4.3 contêm as distâncias em quilômetros entre cada combinação de
municípios.
Outra variável que poderiamos otimizar é o tempo de viagem. Contudo, não a
consideramos, pois o tempo depende das condições do trânsito. Em certos períodos do
dia algumas estradas estão com um tráfego mais intenso do que em outros intervalos de
tempo. Com isso, seria interessante realizar um levantamento de dados regularmente e
obter a média de tempo de viagem entre cada município.
Podemos tomar a união das Tabelas 4.2 e 4.3 como a matriz de custo c. Po-
rém, como as distâncias de ida e de volta são diferentes, em alguns casos, a matriz é
assimétrica. Por exemplo, a distância do Rio de Janeiro à Seropédica é de 38.9 Km e
de Seropédica ao Rio de Janeiro é de 37.6 Km. Para obtermos uma matriz simétrica,
aplicamos a expressão:
cji =cij + cji
2= cij.
A união das Tabelas 4.4 e 4.5 representa a nova matriz simétrica de custo
c. No exemplo trabalhado nessa seção realizamos três iterações, e assim, obtemos
soluções Duais e Primais em cada uma.
Iniciando com a 1a iteração, adotamos λ0i = 0 para todo i = 1, 2, 3, ..., 21.
Em seguida, calculamos o custo auxiliar fj para todos os municípios. Sendo,
fj = djj +∑i∈V/j
min {0, dji}, onde dji = cTji − λi,
49
Tabela 4.2: Distâncias dos Municípios 1 ao 11
j
i1
23
45
67
89
1011
1213
1415
1617
1819
2021
10
3.2
39.6
29.4
55.3
35.4
27.9
73.1
84.3
22.4
19.6
91.8
54.3
37.7
59.7
38.9
109
79.5
119
57.2
95.4
263
.20
5762
15.8
54.3
49.1
37.8
23.1
59.1
59.6
33.8
74.7
96.8
98.4
97.2
48.2
47.9
66.3
106
42.1
337
.563
.40
2232
.314
.39.
143
.663
.619
2171
.234
.657
.756
.555
.391
.357
9864
79.6
430
62.8
22.3
048
.38.
313
.264
.680
.44.
78.
487
.816
.563
.338
.437
.110
877
.911
945
.996
.4
556
.115
.930
.748
.60
40.9
35.7
48.3
33.6
45.7
46.2
4361
.383
.483
.281
.961
.460
.279
.490
.749
.7
635
.357
.317
.810
.543
.80
651
.174
.86.
49.
482
.322
.369
.144
.242
.910
364
.410
651
.690
.9
728
.251
.611
.112
.938
.15.
20
54.9
688.
711
.275
.425
.558
.547
.446
.295
.466
.710
855
86.6
872
.832
.642
.964
.748
.357
51.8
029
.961
.862
.857
.574
.310
871
.488
.857
.616
.561
.494
45.9
984
.119
.962
.480
.835
.773
.167
.931
.40
77.8
78.4
28.1
104
138
108
118
29.4
43.2
48.1
124
17.7
1023
.260
.521
5.9
477.
111
.962
.378
.10
3.7
86.9
2459
.345
.944
.710
675
.611
753
.494
.1
1121
.358
.919
.49.
345
.48.
710
.361
.576
.53.
70
83.9
23.5
49.8
49.6
48.3
104
75.6
117
57.1
92.5
50
Tabela 4.3: Distâncias dos Municípios 12 ao 21
j
i1
23
45
67
89
1011
1213
1415
1617
1819
2021
1290
.535
.270
.589
.143
.881
.477
.858
.327
.987
.788
.30
103
124
125
124
5270
.271
.713
340
.4
1355
.776
.937
.416
.263
.423
.526
.473
.810
322
.329
.310
20
53.6
28.7
27.5
131
87.1
128
36.2
119
1437
.199
.162
57.3
85.6
64.6
60.3
106
135
63.4
51.9
124
50.3
041
.132
.216
311
916
049
.115
1
1558
.510
360
39.3
86.5
46.6
51.4
72.3
106
45.4
52.5
126
18.3
43.1
022
.812
985
.412
611
.411
7
1637
.695
.853
.732
.579
.739
.842
.981
.111
038
.645
.613
626
.134
.516
.30
138
94.4
135
21.7
126
1710
8.7
46.4
88.2
107
61.5
98.9
93.7
57.2
28.5
104
104
50.8
119
164
127
144
069
.163
.114
911
.9
1880
.157
.956
.378
.172
.270
.465
.224
.453
.775
.275
.481
.387
.712
284
.810
181
.40
45.9
115
80.5
1911
8.9
65.7
97.2
119
80.8
111
106
65.3
52.4
116
116
7212
916
312
614
264
.744
.90
148
53
2059
.310
967
45.6
92.8
52.9
57.8
94.9
124
51.8
58.8
131
38.7
48.8
11.4
2215
211
614
90
140
2198
.844
.478
.496
.851
.789
.183
.947
.418
.793
.894
.441
109
154
117
134
13.1
80.7
53.3
139
0
51
Tabela 4.4: Distâncias Simétricas dos Municípios 1 ao 11
j
i1
23
45
67
89
1011
1213
1415
1617
1819
2021
10
63.2
38.5
29.7
55.7
35.4
2872
.984
.222
.820
.491
.255
37.4
59.1
38.2
510
8.9
79.8
119
58.3
97.1
263
.20
60.2
62.4
15.8
555
.850
.435
.221
59.8
59.3
33.2
75.8
97.9
100.
796
.547
.352
.966
107.
543
.3
338
.560
.20
22.2
31.5
1610
.143
.363
19.2
2170
.936
59.9
58.3
54.5
89.8
56.7
97.6
65.5
79
429
.762
.422
.20
48.5
9.4
1364
.780
.65.
38.
988
.45
16.4
60.3
38.9
34.8
107.
578
119
45.7
96.6
555
.715
.85
31.5
48.5
042
.436
.948
.334
.746
.445
.843
.462
.484
.484
.980
.861
.566
.280
.191
.850
.7
635
.455
.816
9.4
42.4
05.
654
746.
89.
181
.922
.966
.945
.441
.410
767
.410
8.5
52.3
90
728
50.4
10.1
1336
.95.
60
53.4
6810
.310
.876
.626
59.4
49.4
44.6
94.6
6610
756
.485
.3
872
.935
.243
.364
.748
.354
53.4
030
.762
.162
.559
.574
.110
771
.985
57.4
20.5
63.4
94.5
46.7
984
.221
6380
.634
.774
6830
.70
77.9
577
.542
.110
413
710
111
429
48.5
50.3
124
18.2
1022
.859
.819
.25.
346
.46.
810
.362
.177
.95
03.
787
.323
.270
.845
.65
41.7
105
75.4
117
52.6
94
1120
.459
.321
8.9
45.8
9.1
10.8
62.5
77.5
3.7
086
.126
.450
.951
4710
475
.511
758
93.5
52
Tabela 4.5: Distâncias Simétricas dos Municípios 12 ao 21
j
i1
23
45
67
89
1011
1213
1415
1617
1819
2021
1291
.233
.270
.988
.45
43.4
81.9
76.6
59.5
42.1
87.3
86.1
010
312
412
513
051
.475
.871
.913
240
.7
1355
75.8
3616
.462
.422
.926
74.1
104
23.2
26.4
103
052
23.5
26.8
125
87.4
129
37.5
114
1437
.497
.959
.960
.384
.466
.959
.410
713
70.8
50.9
124
520
42.1
33.4
163.
514
1.5
162
49.5
152
1559
.110
0.7
58.3
38.9
84.9
45.4
49.4
71.9
101
45.6
551
152
23.5
42.1
019
.612
885
.112
6.5
11.4
117
1638
.25
96.5
54.5
94.8
80.8
41.4
44.6
8511
441
.747
130
26.8
33.4
19.6
014
197
.713
8.5
21.8
513
0
1710
8.9
47.3
89.8
107.
561
.510
794
.657
.429
105
104
51.4
125
163.
512
814
10
75.3
63.9
151.
512
.5
1879
.852
.956
.778
66.2
67.4
6620
.548
.575
.475
.575
.887
.414
1.5
85.1
97.7
75.3
045
.411
5.5
80.6
1911
966
97.6
119
80.1
108.
510
763
.450
.311
711
771
.912
916
212
6.5
138.
563
.945
.40
148.
553
.2
2058
.310
7.5
65.5
45.7
91.8
52.3
56.4
94.5
124
52.6
5813
237
.549
.511
.421
.85
151.
511
5.5
148.
50
139.
5
2197
.143
.379
96.6
50.7
9085
.346
.718
.294
93.5
40.7
114
152
117
130
12.5
80.6
53.2
139.
50
53
Tabela 4.6: Custo Auxiliar - 1a IteraçãoMunicípio ID fj
Rio de Janeiro 1 0São Gonçalo 2 0
Duque de Caxias 3 0Nova Iguaçu 4 0
Niterói 5 0Belford Roxo 6 0
São João de Meriti 7 0Magé 8 0
Itaboraí 9 0Mesquita 10 0Nilópolis 11 0Maricá 12 0
Queimados 13 0Itaguaí 14 0Japeri 15 0
Seropédica 16 0Rio Bonito 17 0Guapimirim 18 0
Cachoeiras de Macacu 19 0Paracambi 20 0
Tanguá 21 0
obtemos a Tabela 4.6 que contém o fj de cada município. Portanto, como
λ0i = 0 para todo i = 1, 2, 3, ..., 21 e todas as distâncias são positivas, então fj = 0
para todo j = 1, 2, 3, ..., 21.
Agora que os fj da 1a iteração estão definidos, como próximo passo, ordena-
mos em ordem crescente todos os fj, j = 1, 2, 3, ..., 21. Em seguida, tomamos os três
primeiros para serem medianas do problema. Porém, como todos os fj são iguais, por
padrão, o ordenamos respeitando a ordem de ID estabelecida anteriormente. Portanto,
Rio de Janeiro, São Gonçalo e Duque de Caxias serão as medianas iniciais.
Resolvendo a relaxação, obtemos o limitante inferior do problema, pois qual-
quer solução ótima para uma relaxação irá conceder um limitante inferior no caso de
minimização. Com isso, sendo:
z(λk) =∑j∈V
fjyj +∑j∈V
λj,
temos que a z(λ0) = 0. A Figura 4.4 apresenta a solução Dual da 1a iteração.
54
Como todos os custos dji são positivos, não temos ligações entre medianas e nós.
Figura 4.4: Solução Dual da 1a Iteração
Utilizando a Heurística proposta na Seção 4.1, podemos encontrar o limitante
superior. Esta Heurística não utiliza nenhum arco dado pela solução Dual. Então,
partindo das p medianas estabelecidas, tomamos cada nó não mediana i e calculamos
os p custos dji de cada ligação j ao nó i. Em seguida, os nós serão conectados as
medianas que oferecerem menor custo. A Tabela 4.7 apresenta os custos dji, onde
os menores estão em negrito. Assim, a Figura 4.5 apresenta a solução Primal da 1a
iteração.
Figura 4.5: Solução Primal da 1a Iteração
55
Tabela 4.7: Custos dji - 1a Iteração
MunicípioMediana
1 2 3Nova Iguaçu 29.7 62.4 22.2Niterói 55.7 15.85 31.5Belford Roxo 35.4 55.8 16São João de Meriti 28 50.4 10.1Magé 72.9 35.2 43.3Itaboraí 84.2 21 63Mesquita 22.8 59.8 19.2Nilópolis 20.4 59.3 21Maricá 91.2 33.2 70.9Queimados 55 75.8 36Itaguaí 37.4 97.9 59.9Japeri 59.1 100.7 58.3Seropédica 38.25 96.5 54.5Rio Bonito 108.9 47.3 89.8Guapimirim 79.8 52.9 56.7Cachoeiras de Macacu 119 66 97.6Paracambi 58.3 107.5 65.5Tanguá 97.1 43.3 79
Seguem listados abaixo todas as conexões da solução Primal da 1a iteração:
• Rio de Janeiro: Itaguaí, Seropédica, Paracambi e Nilópolis;
• Duque de Caxias: São João de Meriti, Belford Roxo, Mesquita, Nova Iguaçu,
Japeri e Queimados;
• São Gonçalo: Niterói, Magê, Guapimirim, Itaboraí, Maricá, Tanguá, Rio Bonito
e Cachoeiras de Macacau.
Com os limitantes definidos, em seguida, realizamos o Método do Subgradi-
ente. O cálculo do subgradiente é desenvolvido para todos o municípios. Sendo,
gkj = 1− yj −∑i∈V
xij,
a Tabela 4.8 apresenta o subgradiente de cada município. Lembrando que
o subgradiente é feito para a solução Dual, então, como no início não há ligações∑i∈V xij = 0 ∀i = 1, 2, 3, ...21.
56
Tabela 4.8: Subgradientes - 1a IteraçãoMunicípio ID gi
Rio de Janeiro 1 0São Gonçalo 2 0
Duque de Caxias 3 0Nova Iguaçu 4 1
Niterói 5 1Belford Roxo 6 1
São João de Meriti 7 1Magé 8 1
Itaboraí 9 1Mesquita 10 1Nilópolis 11 1Maricá 12 1
Queimados 13 1Itaguaí 14 1Japeri 15 1
Seropédica 16 1Rio Bonito 17 1Guapimirim 18 1
Cachoeiras de Macacu 19 1Paracambi 20 1
Tanguá 21 1
No passo seguinte calculamos o Tamanho de Passo θk dado. Neste momento,
zub será a menor solução Primal até o momento e zlb será a maior solução Dual z(λk)
encontrada até a presente iteração. Sendo α = 2, temos que:
θk = αzub − zlb‖gk‖2
θ0 = 2630.9− 0
18
θ0 = 70.1.
Atualizamos o λ de acordo com a expressão:
λk+1i = λki + θkgki
A Tabela 4.9 apresenta o λ1i para todo i = 1, 2, 3, ..., 21.
57
Tabela 4.9: Atualização do λ - 1a IteraçãoMunicípio ID λi
Rio de Janeiro 1 0São Gonçalo 2 0
Duque de Caxias 3 0Nova Iguaçu 4 70.1
Niterói 5 70.1Belford Roxo 6 70.1
São João de Meriti 7 70.1Magé 8 70.1
Itaboraí 9 70.1Mesquita 10 70.1Nilópolis 11 70.1Maricá 12 70.1
Queimados 13 70.1Itaguaí 14 70.1Japeri 15 70.1
Seropédica 16 70.1Rio Bonito 17 70.1Guapimirim 18 70.1
Cachoeiras de Macacu 19 70.1Paracambi 20 70.1
Tanguá 21 70.1
Como dualizamos uma restrição de igualdade, os Multiplicadores de Lagrange
serão irrestritos em sinal. Além disso, devido a forma que o cálculo do subgradiente foi
definido, a expressão que atualiza o λ possui uma adição e não uma subtração. Antes
de iniciarmos a 2a iteração, devemos construir a Matriz de Custo Lagrangeano (MCL)
que será utilizado posteriormente no cálculo do custo auxiliar. Essa nova matriz é
composta pelos custos dji, onde cada λi receberá o valor correspondente apresentado
na Tabela 4.9. As Tabelas 4.10 e 4.11 apresentam os Custos Lagrangeanos para a 2a
iteração.
Com isso, a 2a iteração é iniciada adotando λ1i = 0 para i = 1, 2, 3, e λ1i =
70.1 para i = 4, 5, 6, ..., 21. Em seguida, calculamos o custo auxiliar fj para todos
os municípios. Assim, obtemos a Tabela 4.12 que contém o fj de cada município,
onde os valores em negrito correspondem aos menores custos. Podemos observar que,
possuimos valores negativos na Matriz de Custo Lagrangeano, assim, os custos fj não
são mais nulos.
58
Tabela 4.10: Custos Lagrangeanos dos Municípios 1 ao 11
ji
12
34
56
78
910
1112
1314
1516
1718
1920
21
10
63.2
38.5
-40.
4-1
4.4
-34.
7-4
2.1
2.8
14.1
-47.
3-4
9.7
21.1
-15.
1-3
2.7
-11
-31.
8538
.89.
748
.9-1
1.8
272
63.2
060
.2-7
.7-5
4.25
-14.
3-1
9.7
-34.
9-4
9.1
-10.
3-1
0.8
-36.
95.
727
.830
.626
.4-2
2.8
-17.
2-4
.137
.4-2
6.8
338
.560
.20
-47.
9-3
8.6
-54.
1-6
0-2
6.8
-7.1
-50.
9-4
9.1
0.8
-34.
1-1
0.2
-11.
8-1
5.6
19.7
-13.
427
.5-4
.68.
94
29.7
62.4
22.2
0-2
1.6
-60.
7-5
7.1
-5.4
10.5
-64.
8-6
1.2
18.3
5-5
3.7
-9.8
-31.
2-3
5.3
37.4
7.9
48.9
-24.
426
.55
55.7
15.8
531
.5-2
1.6
0-2
7.7
-33.
2-2
1.8
-35.
4-2
3.7
-24.
3-2
6.7
-7.7
14.3
14.8
10.7
-8.6
-3.9
1021
.7-1
9.4
635
.455
.816
-60.
7-2
7.7
0-6
4.5
-16.
13.
9-6
3.3
-61
11.8
-47.
2-3
.2-2
4.7
-28.
736
.9-2
.738
.4-1
7.8
19.9
728
50.4
10.1
-57.
1-3
3.2
-64.
50
-16.
7-2
.1-5
9.8
-59.
36.
5-4
4.1
-10.
7-2
0.7
-25.
524
.5-4
.136
.9-1
3.7
15.2
872
.935
.243
.3-5
.4-2
1.8
-16.
1-1
6.7
0-3
9.4
-8-7
.6-1
0.6
436
.91.
814
.9-1
2.7
-49.
6-6
.724
.4-2
3.4
984
.221
6310
.5-3
5.4
3.9
-2.1
-39.
40
7.85
7.4
-28
33.9
-57.
130
.943
.9-4
1.1
-21.
6-1
9.8
53.9
-51.
910
22.8
59.8
19.2
-64.
8-2
3.7
-63.
3-5
9.8
-87.
850
-66.
417
.2-4
6.9
0.7
-24.
45-2
8.4
34.9
5.3
46.9
-17.
523
.911
20.4
59.3
21-6
1.2
-24.
3-6
1-5
9.3
-7.6
7.4
-66.
40
16-4
3.7
-19.
2-1
9.1
-23.
133
.95.
446
.9-1
2.1
23.4
59
Tabela 4.11: Custos Lagrangeanos dos Municípios 12 ao 21
ji
12
34
56
78
910
1112
1314
1516
1718
1920
21
1291
.233
.270
.918
.35
-26.
711
.86.
5-1
0.6
-28
17.2
160
32.9
53.9
54.9
59.9
-18.
75.
71.
861
.9-2
9.4
1355
75.8
36-5
3.7
-7.7
-47.
2-4
4.1
433
.9-4
6.9
-43.
732
.90
-18.
1-4
6.6
-43.
354
.917
.358
.9-3
2.6
43.9
1437
.497
.959
.9-9
.814
.3-3
.2-1
0.7
36.9
-57.
10.
7-1
9.2
53.9
-18.
10
-28
-36.
793
.471
.491
.9-2
0.6
81.9
1559
.110
0.7
58.3
-31.
214
.8-2
4.7
-20.
71.
830
.9-2
4.45
-19.
181
.9-4
6.6
-28
0-5
0.5
57.9
1556
.4-5
8.7
46.9
1638
.25
96.5
54.5
24.7
10.7
-28.
7-2
5.5
14.9
43.9
-28.
4-2
3.1
59.9
-43.
3-3
6.7
-50.
50
70.9
27.6
68.4
-48.
2559
.917
108.
947
.389
.837
.4-8
.636
.924
.5-1
2.7
-41.
134
.933
.9-1
8.7
54.9
93.4
57.9
70.9
05.
2-6
.281
.4-5
7.6
1879
.852
.956
.77.
9-3
.9-2
.7-4
.1-4
9.6
-21.
65.
35.
45.
717
.371
.415
27.6
5.2
0-2
4.7
45.4
10.5
1911
966
97.6
48.9
1038
.436
.9-6
.7-1
9.8
46.9
46.9
1.8
58.9
91.9
56.4
68.4
-6.2
-24.
70
78.4
-16.
920
58.3
107.
565
.5-2
4.4
21.7
-17.
8-1
3.7
24.4
53.9
-17.
5-1
2.1
61.9
-32.
6-2
0.6
-58.
7-4
8.25
81.4
45.4
78.4
069
.421
97.1
43.3
7926
.5-1
9.4
19.9
15.2
-23.
4-5
1.9
23.9
23.4
-29.
443
.981
.946
.959
.910
.510
.5-1
6.9
69.4
0
60
Tabela 4.12: Custo Auxiliar - 2a IteraçãoMunicípio ID fj
Rio de Janeiro 1 -331.1São Gonçalo 2 -308.9
Duque de Caxias 3 -424.2Nova Iguaçu 4 -425.2
Niterói 5 -254Belford Roxo 6 -417.6
São João de Meriti 7 -411.4Magé 8 -218
Itaboraí 9 -296.4Mesquita 10 -403.25Nilópolis 11 -397Maricá 12 -113.4
Queimados 13 -383.9Itaguaí 14 -203.4Japeri 15 -303.95
Seropédica 16 -284.45Rio Bonito 17 -144.9Guapimirim 18 -106.6
Cachoeiras de Macacu 19 -74.3Paracambi 20 -245.65
Tanguá 21 -141
Agora que os fj da 2a iteração estão definidos, como próximo passo, ordena-
mos em ordem crescente todos os fj, j = 1, 2, 3, ..., 21. Em seguida, tomamos os três
primeiros para serem medianas do problema. Portanto, Duque de Caxias, Nova Iguaçu
e Belford Roxo são as novas medianas. Obtemos o limitante inferior calculando z(λ1)
da seguinte forma:
z(λ1) =∑j∈V
fjyj +∑j∈V
xij
z(λ1) = −1267 + 1261.8
z(λ1) = −5.2.
A Figura 4.6 apresenta a solução Dual da 2a iteração. Devido a relaxação do
problema, podemos observar que agora existem nós com apenas uma mediana, nós
com mais de uma mediana e, também, medianas conectadas a outras medianas.
61
Figura 4.6: Solução Dual da 2a Iteração
Seguem listados abaixo todas as conexões da solução Dual da 2a iteração:
• Duque de Caxias: Nova Iguaçu, Niterói, Belford Roxo, São João de Meriti,
Magé, Itaboraí, Mesquita, Nilópolis, Queimados, Itaguaí, Japeri, Seropédica,
Guapimirim, Paracambi;
• Nova Iguaçu: Niterói, Belford Roxo, São João de Meriti, Magé, Mesquita, Quei-
mados, Itaguaí, Japeri, Seropédica, Paracambi;
• Belford Roxo:Nova Iguaçu, Niterói, São João de Meriti, Magé, Itaboraí, Mes-
quita, Nilópolis, Queimados, Itaguaí, Japeri, Seropédica, Guapimirim, Para-
cambi.
Utilizando a MCL e a Heurística, obtemos os custos dji entre cada mediana j
e cada nó i. A Tabela 4.13 apresenta os custos dji, onde os menores estão em negrito.
Assim, a Figura 4.7 apresenta a solução Primal da 2a iteração.
Seguem listados abaixo todas as conexões da solução Primal da 2a iteração:
• Duque de Caxias: Magé, Guapimirim, Cachoeiras de Macacu, Rio Bonito, Tan-
guá, Itaboraí, Niterói, Maricá;
• Nova Iguaçu: Rio de Janeiro, Nilópolis, Mesquita, Queimados, Japeri, Para-
cambi, Seropédica, Itaguaí;
62
Figura 4.7: Solução Primal da 2a Iteração
• Belford Roxo: São João de Meriti, São Gonçalo.
Com os limitantes definidos, em seguida, realizamos de novo o Método do
Subgradiente. O cálculo do subgradiente é desenvolvido para todos o nós i = 1, 2, 3, ..., 21.
a Tabela 4.14 apresenta o subgradiente de cada município. Como existem ligações na
solução Dual da 2a iteração, o∑
i∈V xij não é mais nulo para a maioria dos nós.
No passo seguinte calculamos o Tamanho de Passo θk dado. A atualização do
zub e zlb não é realizada em todas as iterações, pois apenas mudamos caso o valor seja
melhor. Por exemplo, se em uma iteração k + 1 encontrarmos, com a heurística, um
zub maior do que zub da iteração k não realizamos a atualização, pois este zub deve ser
sempre mais próximo possível de zlb. Fazer um "zigue-zague"sem ter melhora efetiva
não converge o problema. Sendo α = 2, temos que:
θ1 = 2630.9− 0
51
θ1 = 24.74.
A Tabela 4.15 apresenta o λ2i para todo i = 1, 2, 3, ..., 21.
Para iniciarmos a 3a iteração, construimos a MCL que será utilizado no cál-
culo do custo auxiliar. Essa nova matriz é composta pelos custos dji, onde cada λi
receberá o valor correspondente apresentado na Tabela 4.15. As Tabelas 4.16 e 4.17
apresentam os Custos Lagrangeanos para a 3a iteração.
63
Tabela 4.13: Custos dji - 2a Iteração
MunicípioMediana
3 4 6Rio de Janeiro 38.5 29.7 35.4São Gonçalo 60.2 62.4 55.8Niterói -38.6 -21.6 -27.7São João de Meriti -60 -57.1 -64.5Magé -26.8 -5.4 -16.1Itaboraí -7.1 10.5 3.9Mesquita -50.9 -64.8 -63.3Nilópolis -49.1 -61.2 -61Maricá 0.8 18.35 11.8Queimados -34.1 -53.7 -47.2Itaguaí -10.2 -9.8 -3.2Japeri -11.8 -31.2 -24.7Seropédica -15.6 -35.3 -28.7Rio Bonito 19.7 37.4 36.9Guapimirim -13.4 7.9 -2.7Cachoeiras de Macacu 27.5 48.9 38.4Paracambi -4.6 -24.4 -17.8Tanguá 8.9 26.5 19.9
Tabela 4.14: Subgradientes - 2a IteraçãoMunicípio ID gi
Rio de Janeiro 1 1São Gonçalo 2 1
Duque de Caxias 3 0Nova Iguaçu 4 -2
Niterói 5 -2Belford Roxo 6 -2
São João de Meriti 7 -2Magé 8 -2
Itaboraí 9 0Mesquita 10 -2Nilópolis 11 -2Maricá 12 1
Queimados 13 0Itaguaí 14 -2Japeri 15 -2
Seropédica 16 -2Rio Bonito 17 1Guapimirim 18 -1
Cachoeiras de Macacu 19 1Paracambi 20 -2
Tanguá 21 1
64
Tabela 4.15: Atualização do λ - 2a IteraçãoMunicípio ID λi
Rio de Janeiro 1 24.74São Gonçalo 2 24.74
Duque de Caxias 3 0Nova Iguaçu 4 20.62
Niterói 5 20.62Belford Roxo 6 20.62
São João de Meriti 7 20.62Magé 8 20.62
Itaboraí 9 70.1Mesquita 10 20.62Nilópolis 11 20.62Maricá 12 94.84
Queimados 13 70.1Itaguaí 14 20.62Japeri 15 20.62
Seropédica 16 20.62Rio Bonito 17 94.84Guapimirim 18 45.36
Cachoeiras de Macacu 19 94.84Paracambi 20 20.62
Tanguá 21 94.84
Com isso, iniciamos a 3a iteração calculando o custo auxiliar fj para todos os
municípios. Assim, obtemos a Tabela 4.18 que contém o fj de cada município, onde
os valores em negrito correspondem aos menores custos.
Agora que os fj da 3a iteração estão definidos, ordenamos em ordem cres-
cente todos os fj, j = 1, 2, 3, ..., 21 e tomamos os três primeiros para serem as novas
medianas do problema. Portanto, São Gonçalo, Itaboraí e Rio Bonito serão as novas
medianas. Obtemos o limitante inferior calculando z(λ1) da seguinte forma:
z(λ2) =∑j∈V
fjyj +∑j∈V
xij
z(λ2) = −874.5 + 842.2
z(λ2) = −33.3.
65
Tabela 4.16: Custos Lagrangeanos dos Municípios 1 ao 11 - 2a Iteração
ji
12
34
56
78
910
1112
1314
1516
1718
1920
21
10
38.4
638
.59.
135
.114
.87.
452
.314
.12.
2-0
.2-3
.6-1
5.1
16.8
38.5
17.6
14.1
34.4
24.2
37.7
2.3
238
.50
60.2
41.8
-4.7
35.2
29.8
14.6
-49.
139
.238
.7-6
1.6
5.7
77.3
80.1
75.9
-47.
57.
5-2
8.9
86.9
-51.
63
13.8
35.5
01.
610
.9-4
.6-1
0.5
22.7
-7.1
-1.4
0.4
-23.
5-3
4.1
39.3
37.7
33.9
-5.1
11.3
2.8
44.9
-15.
84
4.9
37.7
22.2
027
.9-1
1.2
-7.6
4.1
10.5
-15.
3-1
1.7
-6.4
-53.
739
.718
.314
.212
.732
.624
.225
.11.
85
30.9
-8.9
31.5
27.9
021
.816
.327
.7-3
5.4
25.8
25.2
-51.
5-7
.763
.864
.360
.2-3
3.3
20.8
-14.
771
.2-4
4.1
610
.731
.116
-11.
221
.80
-15.
133
.43.
9-1
3.8
-11.
5-1
2.9
-47.
246
.324
.820
.812
.222
13.7
31.7
-4.8
73.
225
.610
.1-7
.616
.2-1
50
32.7
-2.1
-10.
3-9
.8-1
8.2
-44.
138
.728
.723
.9-0
.220
.612
.135
.7-9
.58
48.1
10.4
43.3
4427
.633
.332
.70
-39.
241
.441
.8-3
5.3
486
.351
.264
.3-3
7.4
-24.
8-3
1.4
73.8
-48.
19
59.4
-3.7
6359
.914
53.3
47.3
100
57.3
56.8
-52.
733
.911
6.4
80.3
93.3
-65.
83.
1-4
4.5
103.
3-7
6.6
10-1
.935
19.2
-15.
325
.7-1
3.8
-10.
341
.47.
80
-16.
9-7
.5-4
6.9
50.2
2521
10.1
3022
.131
.9-0
.84
11-4
.334
.521
-11.
725
.1-1
1.5
-9.8
41.8
7.4
-16.
90
-8.7
-43.
730
.230
.326
.39.
130
.122
.137
.3-1
.3
66
Tabela 4.17: Custos Lagrangeanos dos Municípios 12 ao 21 - 2a Iteração
ji
12
34
56
78
910
1112
1314
1516
1718
1920
21
1266
.48.
470
.967
.822
.761
.255
.938
.8-2
866
.665
.40
32.9
103.
310
4.3
109.
3-4
3.4
30.4
-22.
911
1.3
-54.
113
30.2
5136
-4.2
41.7
2.2
5.3
53.4
33.9
2.5
5.7
8.1
031
.32.
86.
130
.142
34.1
16.8
19.1
1412
.673
.159
.939
.663
.746
.238
.786
.366
.950
.130
.229
.1-1
8.1
021
.412
.768
.696
.167
.128
.857
.16
1534
.375
.958
.318
.264
.224
.728
.751
.230
.925
30.3
57.1
-46.
621
.40
-133
.139
.731
.6-9
.222
.116
13.5
71.7
54.5
74.1
60.1
20.7
23.9
64.3
43.9
2126
.335
.1-4
3.3
12.7
-10
46.1
52.3
43.6
1.2
35.1
1784
.122
.589
.886
.840
.886
.373
.936
.7-4
1.1
84.3
83.3
-43.
454
.914
2.8
107.
312
0.3
029
.9-3
0.9
130.
8-8
2.3
1855
28.1
56.7
57.3
45.5
46.7
45.3
-0.1
-21.
654
.754
.8-1
917
.312
0.8
64.4
77.2
-19.
50
-49.
494
.8-1
4.2
1994
.241
.297
.698
.359
.487
.886
.342
.7-1
9.8
96.3
96.3
-22.
958
.914
1.3
105.
811
7.8
-30.
90.
040
127.
8-4
1.6
2033
.582
.765
.525
71.1
31.6
35.7
73.8
53.9
31.9
37.3
37.1
-32.
628
.8-9
.21.
256
.670
.153
.60
44.6
2172
.318
.579
75.9
3069
.364
.626
-51.
973
.372
.8-5
4.1
43.9
131.
396
.310
9.3
-14.
235
.2-4
1.6
118.
80
67
Tabela 4.18: Custo Auxiliar - 3a IteraçãoMunicípio ID fj
Rio de Janeiro 1 -43.7São Gonçalo 2 -268.2
Duque de Caxias 3 -102.6Nova Iguaçu 4 -126.6
Niterói 5 -216.3Belford Roxo 6 -137.2
São João de Meriti 7 -137.6Magé 8 -237.2
Itaboraí 9 313.6Mesquita 10 -134.2Nilópolis 11 -128.7Maricá 12 -243.4
Queimados 13 -74.3Itaguaí 14 -38.7Japeri 15 -77.6
Seropédica 16 -64.9Rio Bonito 17 -292.7Guapimirim 18 -169.3
Cachoeiras de Macacu 19 -210.2Paracambi 20 -62.4
Tanguá 21 -256.8
A Figura 4.8 apresenta a solução Dual da 3a.
Seguem listados abaixo todas as conexões da solução Dual da 3a iteração:
• São Gonçalo: Niterói, Itaboraí, Maricá, Rio Bonito, Cachoeiras de Macacu, Tan-
guá;
• Itaboraí: São Gonçalo, Maricá, Rio Bonito, Cachoeiras de Macacu, Tanguá;
• Rio Bonito: Itaboraí, Maricá, Cachoeiras de Macacu, Tanguá.
Utilizando a MCL e a Heurística, obtemos os custos dji entre cada mediana j
e cada nó i. A Tabela 4.19 apresenta os custos dji, onde os menores estão em negrito.
Assim, a Figura 4.9 apresenta a solução Primal da 3a iteração.
68
Figura 4.8: Solução Dual da 3a Iteração
Figura 4.9: Solução Primal da 3a Iteração
Seguem listados abaixo todas as conexões da solução Primal da 3a iteração:
• São Gonçalo: Maricá, Niterói, Duque de Caxias, Nova Iguaçu, Belford Roxo,
São João de Meriri, Mesquita, Nilópolis, Rio de Janeiro, Queimados, Japeri,
Seropédica, Paracambi, Itaguaí;
• Itaboraí: Magê, Guapimirim, Cachoeiras de Macacu;
• Rio Bonito: Tanguá.
69
Tabela 4.19: Custos dji - 3a Iteração
MunicípioMediana
3 4 6Rio de Janeiro 38.4 59.4 84.1Duque de Caxias 60.2 63 89.8Nova Iguaçu 41.8 59.9 86.8Niterói -4.8 14.1 40.8Belford Roxo 35.2 53.4 86.4São João de Meriti 29.8 47.4 73.9Magé 14.6 10.1 36.8Mesquita 39.2 57.33 84.3Nilópolis 38.6 56.8 83.3Maricá -61.6 -52.7 -43.4Queimados 5.7 33.9 54.9Itaguaí 77.2 116.4 142.8Japeri 80 80.4 107.3Seropédica 75.8 93.3 120.3Guapimirim 7.54 3.14 29.9Cachoeiras de Macacu -28.8 -44.5 -30.9Paracambi 86.8 103.3 130.8Tanguá -51.5 -76.6 -82.3
Com os limitantes definidos, em seguida, realizamos o Método do Subgradi-
ente. A Tabela 4.21 apresenta o subgradiente de cada município.
Em seguida, calculamos o Tamanho de Passo θk dado. Como o limitante
superior da 3a iteração (988.7) é maior que o melhor limitante superior (630.9) não
atualizamos zub. Além disso, como o limitante inferior desta iteração (-33.3) é menor
do que o melhor limitante inferior até o momento (0), também não atulizamos zlb.
Sendo α = 2, temos que:
θ2 = 2630.9− 0
32
θ2 = 39.43.
A Tabela 4.21 apresenta o λ3i para todo i = 1, 2, 3, ..., 21.
Com isso, finalizamos o exemplo desta Seção realizando três iterações para
o PPM. Portanto, até a última iteração feita, São Gonçalo, Itaboraí e Rio Bonito irão
distribuir as vacidas contra a gripe para os demais municípios da Região Metropolitana
do Rio de Janeiro.
70
Tabela 4.20: Subgradientes - 3a IteraçãoMunicípio ID gi
Rio de Janeiro 1 1São Gonçalo 2 -1
Duque de Caxias 3 1Nova Iguaçu 4 1
Niterói 5 0Belford Roxo 6 1
São João de Meriti 7 1Magé 8 1
Itaboraí 9 -2Mesquita 10 1Nilópolis 11 1Maricá 12 -2
Queimados 13 1Itaguaí 14 1Japeri 15 1
Seropédica 16 1Rio Bonito 17 -2Guapimirim 18 1
Cachoeiras de Macacu 19 -1Paracambi 20 1
Tanguá 21 -2
Tabela 4.21: Atualização do λ - 3a IteraçãoMunicípio ID λi
Rio de Janeiro 1 -14.7São Gonçalo 2 64.2
Duque de Caxias 3 -39.4Nova Iguaçu 4 -18.8
Niterói 5 20.62Belford Roxo 6 -18.8
São João de Meriti 7 -18.8Magé 8 -18.8
Itaboraí 9 148.9Mesquita 10 -18.8Nilópolis 11 -18.8Maricá 12 173.7
Queimados 13 30.7Itaguaí 14 -18.8Japeri 15 -18.8
Seropédica 16 -18.8Rio Bonito 17 173.7Guapimirim 18 5.93
Cachoeiras de Macacu 19 134.3Paracambi 20 -18.8
Tanguá 21 173.7
71
Considerações Finais
Definido um grafo, o desenvolvimento do trabalho nos permitiu avaliar um problema
que consiste em localizar p medianas em uma rede contendo n nós, com a intenção de
minimizar a soma total das distâncias entre cada nó e sua mediana mais próxima. Este
problema é denominado de Problema das p-Medianas. Além disso, caso este problema
seja de difícil resolução, o trabalho investigou uma forma de obter um problema mais
fácil através do original. Esta forma é denominada de Relaxação Lagrangeana, que
consiste em dualizar algumas restrições, ou seja, adicionar um vetor de Multiplicadores
de Lagrange e realizar sua subtração na função objetivo.
Para obtermos mais facilidade na compreensão sobre RLG e PPM, iniciamos
o trabalho aprentando conceitos de Programação Inteira. Este modelo de programação
permitiu que pudessemos formular e analisar o Problema das p-Medianas. Além disso,
o estudo da Programação Inteira expôs conceitos sobre limitantes, que foram impor-
tantes no decorrer do trabalho para verficarmos a condição de otimalidade do exemplo
proposto na Seção 4.3. Posteriormente, apresentamos o conceito de PPM desenvol-
vendo a formulação do problema e analisando cada restrição individualmente. Por
fim, anunciamos a definição da Relaxação Lagrangeana e desenvolvemos dois exem-
plos que facilitaram seu entendimento. Ademais, o estudo da Heurística Lagrangeana
contribuiu posteriormente com o desenvolvimento de uma Heurística.
Com todos os conceitos estabelecidos, assimilamos tudo para construirmos
uma Relaxação Lagrangeana para o Problema das p-Medianas e uma Heurística La-
grangeana, que foram utilizadas em um exemplo prático no final do trabalho. A coleta
de dados para este exemplo foi possível através do GoogleMaps. A criação do custo
72
auxiliar simplificou o problema, possiblitando desenvolver o Subproblema Lagrange-
ano, gerando, assim, o limitante inferior. Já o limitante superior foi estabelecido por
meio da Heurística. Realizamos três iterações para o problema, apresentado as solu-
ções Duais e Primais em cada uma.
A variável escolhida para o exemplo foi a distância em quilômetros entre
cada município da Região Metropolitada do Rio de Janeiro. Porém, outra variável que
poderiamos otimizar é o tempo de viagem. Contudo, não a consideramos, pois o tempo
depende das condições do trânsito. Em certos períodos do dia algumas estradas estão
com um tráfego mais intenso do que em outros intervalos de tempo. Com isso, seria
interessante realizar um levantamento de dados regularmente e obter a média de tempo
de viagem entre cada município. Além disso, é interessante ressaltar que: realizar um
algoritmo que seja capaz de desenvolver os cálculos propostos neste trabalho seria de
grande eficiência, pois com o aumento do número de iterações podemos encontrar uma
solução que seja melhor.
Com o objetivo de explicar de forma simples e apurada todos os conceitos
presentes no trabalho, contribuimos com a facilidade de compreensão. Além disso, o
uso de um exemplo prático contribuiu para aproximar o PPM a uma situação comum,
que a vacinação contra a gripe. Enfim, para melhorias e futuras pesquisas, este tra-
balho poderia server de ajuda para outros trabalhos com: a criação de um algoritmo
capaz de desenvolver os cálculos propostos; utilizar outras variáveis no problema, em
alguns casos, mais de uma; aumentar o número iterações com o objetivo de verificar
a oscilação entre o limitante inferior e limitante superior podendo gerar uma solução
melhor.
73
Referências Bibliográficas
[1] AMORIM, F. M. S, Metaheurísticas Aplicadas ao Problema das p-Medianas,
Dissertação de Mestrado, CEFET-MG, Belo Horizonte, MG, 2011, 3-9.
[2] AVELLA, P.; SASSANO, A. e VASIL’EV, I., Computacional Study of Large-
scale p-Median Problems, Math. Program, Ser., 2006, 89-91.
[3] BEASLEY, J. E., Modern Heuristic Techniques for Combinatorial Problems,
John Wiley & Sons, 1993, 245-256.
[4] BEKTAS, T., The multiple traveling salesman problem: an overview of formula-
tions and solution procedures, Volume 34, Omega, 2006, 209-219.
[5] BONDY, J. A. e MURTY, U. S. R., Graph Theory with Applicattions, Elsevier
Science Ltd., 1976, 171-172.
[6] CORDEAU, J; GENDREAU, M. e LAPORTE, G., A tabu search heuristic for
periodic and multi-depot vehicle routing problems, Volume 30, Networks An
International Journal, 2007, 105-119.
[7] DORIGOA, M. e GAMBARDELLA, L. M., Ant colonies for the travelling sa-
lesman problem, Volume 43, Biosystems, 1997, 73-81.
[8] FUKASAWA, R.; LYSGAARD, J.; POGGI, A. M.; REIS,M.; UCHOA, E. e
WERNECK, R. F., Robust Branch-and-Cut-and-Price for the Capacitated Vehi-
cle Routing Problem, Computer Science, 2004, 6-9.
74
[9] GEOFFRION, A. M., Lagrangian Relaxation end its uses in Integer Progam-
ming, Volume 2, Math Programming Study, 1974, 82-114.
[10] GLOVER, F., Tabu Search - Part I, Volume 1, ORSA Journal on Computing,
1989, 190-206.
[11] GLOVER, F., Tabu Search - Part II, Volume 2, ORSA Journal on Computing,
1990, 4-32.
[12] GOMORY, R. E., Outline of an Algorithm for Integer Solution to Linear Pro-
grams, Volume 64, Bulletin of the American Mathematical Society, 1958, 275-
278.
[13] GOMES, H. C., Relaxação Lagrangeana com Fixação de Variáveis Aplicada ao
Problema de Seqüenciamento em uma Máquina, Dissertação de Pós-Graduação
UFMG, Belo horizonte, MG, 2008, 11-16.
[14] HAKIMI, S.L., Optimum location of Switching Centers and the Absolute Centers
and the Medians of a Graph, Volume 12, Operations Research, 1964, 380-392.
[15] HANSEN, P. e JAUMARD, B., Cluster Analysis and Mathematical Program-
ming, Volume 79, Mathematical Programming, 1997, 191-215.
[16] HANSEN, P. e MLADENOVIC, N., Variable Neighborhood Search for the p-
Median, Location Science, 1997, 207-226.
[17] HELD, M. e KARP, R. M., The Traveling-Salesman Problem and Minimum
Spanning Trees, Volume 18, Operations Research, 1970, 1139-1162.
[18] HELD, M. e KARP, R.M, The Travelling Salesman Problem and Minimum Span-
ning Trees: part II, Volume 1, Mathematical Programming, 1971, 6-25.
[19] HELD, M.; WOLFE, P. e CROWDER, H. P., Validation of Subgradient Optimi-
zation, Volume 6 Mathematical Programming, 1975, 62-88.
75
[20] KARIV, O. e HAKIMI, S. L., An Algorithmic Approach to Network Location Pro-
blems. ii: The p-Medians, Volume 37, SIAM Journal on Applied Mathematics,
1979, 546-549.
[21] LAPORTE, G., The traveling salesman problem: An overview of exact and ap-
proximate algorithms, Volume 59, European Journal of Operational Research,
1992, 231-247.
[22] LORENA, L. A. N.; SENNE, E. L. F.; PAIVA J. A. C,. e PEREIRA, M. A.,
Integração de Modelos de Localização a Sistemas de Informações Geográficas,
Gestão e Produção, Volume 8, 2001, 180-195.
[23] MULVEY, J. M. e CROWDER, H. P., Cluster Analysis: an Application of La-
grangian Relaxation, Volume 25, Management Science, 1979, 329-340.
[24] PAPPALARDO, M., On the Duality Gap in Nonconvex Optimization, Volume 11,
Mathematics of Operations Research, 1986, 30.
[25] RAO, M.R., Cluster Analysis and Mathematical Programming, Volume 6, Jour-
nal of the American Statistical Association, 1971, 191-215.
[26] REVELLE, C. S. e SWAIN, R. W., Central Facilities Location, Volume 2, Geo-
graphical Analysis, 1970, 30-42.
[27] ROSÁRIO, R. R. L.; CARNIERI, C. e STEINER, M. T., Proposta de Solução
para o Problema das p-Medianas na Localização de Unidades de Saúde 24 Ho-
ras, XXII Encontro Nacional de Engenharia de Produção, 2002, 2-8.
[28] SAID, A. e PEARLMAN, W. A., A new, fast, and efficient image codec based on
set partitioning in hierarchical trees, Volume 6, IEEE, 1996, 243-250.
[29] TAO, J.; HONGBING, T.; KUN, Q.; YULONG, W.; CHENGKUN, L. e QILI,
G., Selecting the Optimal Healthcare Centers with a Modified p-Median Model:
a Visual Analytic Perspective, International Journal of Health Geographics, 2014,
2-4.
76
[30] TIETZ, M.B. e BART, P., Heuristic Methods for Estimating the Generalized Ver-
tex Median of a Weighted Graph, Volume 16, Operations Research, 1968, 955-
961.
[31] UMETANI, S. e YAGIURA, M., Relaxation Heuristics for the Set Covering Pro-
blem, Volume 50, Journal of the Operations Research Society of Japan, 2007,
350-354.
[32] Planos de Corte. Disponível em:<www.mathematik.uni-
kl.de/fileadmin/AGs/opt/Lehre/WS1314/IntegerProgrammingWS1314/ip-
chapter9.pdf>. Acesso em: 17 jan. 2017.
[33] Multiplicadores de Lagrange. Diponível em:
<www2.sorocaba.unesp.br/professor/luiza/CDI-III/func8.pdf>. Acessado
em: 2 Dec, 2016.
[34] Ceperj lança novo mapa alterando a Região Metropolitana do Rio de Janeiro. Di-
ponível em: <www.ceperj.rj.gov.br/noticias/Mar14/27/novomapa.html>. Aces-
sado em: 12 Nov, 2017.
[35] VERTER, V., Uncapacitated and Capacitated Facility Location Problems, Sprin-
ger US, 2011, 25-37.
[36] VINOD, H. D., Integer Programming and the Theory of Groups, Volume 64, J.
Amer. Statist. Assoc., 1969, 506-519.
[37] VOSS, S., A Reverse Elimination Approach for the p-Median Problem, Volume
8, Studies in Locational Analysis, 1996, 49-58.
[38] WOLSEY, L. A., Integer Programming, John Wiley & Sons, 1998, 3-8, 23-29,
91-94, 113-121.
77