UM PROBLEMA DE CAMINHO TRI-OBJETIVO
Leizer de Lima PintoPESC / COPPE / UFRJ
Cidade Universitária, Rio de Janeiro, RJ, Brasil leizer@cos.ufrj.br
Cláudio Thomás Bornstein
PESC / COPPE / UFRJ
Cidade Universitária, Rio de Janeiro, RJ, Brasil ctbornst@cos.ufrj.br
Nelson Maculan Filho
PESC / COPPE / UFRJ
Cidade Universitária, Rio de Janeiro, RJ, Brasil maculan@cos.ufrj.br
RESUMO
O foco deste artigo é o problema de caminho tri-objetivo onde duas das funções objetivo são do tipo gargalo, por exemplo, MinMax ou MaxMin. A terceira função objetivo pode ser, por exemplo, MinSum ou MaxProd. Um algoritmo reverso para o problema é apresentado. Um exemplo de uma aplicação em redes de sensores, um exemplo do funcionamento do algoritmo, provas de otimalidade e resultados computacionais para um conjunto de problemas gerados aleatoriamente também são dados.
PALAVRAS CHAVE. Problema de caminho multi-critério. Conjunto mínimo completo de soluções Pareto-ótimas. Algoritmos polinomiais.
MC – Multicritério.
ABSTRACT
This paper examines the tricriterion shortest path problem where two objective functions are of the bottleneck type, for example MinMax or MaxMin. The third objective function may be, for example, MinSum or MaxProd. A reverse algorithm is formulated for this problem. An example of an application for sensor networks is given as well as an example of the operation of the algorithm. Optimality proofs and computational experience for a set of randomly generated problems are presented.
KEYWORDS. Multicriteria shortest path problem. Minimal complete set of Pareto-optimal solutions. Polynomial algorithms.
1. Introdução
Tradicionalmente, o problema de caminho mínimo considera apenas uma função objetivo e consiste em minimizar a soma (MinSum) dos pesos dos arcos do caminho. Para pesos não negativos este problema pode ser resolvido, por exemplo, pelo algoritmo de Dijkstra, e para o caso geral por algum algoritmo de atualização de distâncias (ver Ahuja et al. (1993)). Gondran & Minoux (1986) generalizam esses resultados considerando várias outras funções como MaxSum, MaxProd e MaxMin. Extensões para MinProd, MinMax, MinMin e MaxMax também são possíveis. Um software gratuito e didático para a resolução destes problemas mono-objetivo citados acima está disponível em Pinto & Bornstein (2006a) e é suportado por Pinto & Bornstein (2006b).
Muitos problemas de caminho mínimo consideram mais de uma função objetivo, ou seja, são de natureza multi-objetivo. Para estes problemas objetiva-se, normalmente, determinar um conjunto mínimo completo de soluções não dominadas (Pareto-ótimas). Este problema de caminho mínimo multi-objetivo é NP-completo quando contém mais de uma função objetivo MinSum (ver Serafini(1987)) e é examinado em Martins (1984a), Current & Marsh (1993), Guerriero & Musmanno (2001) e Gandibleux et al. (2006). Uma revisão da literatura de programação multi-objetivo em otimização combinatória é apresentado em Ehrgott & Gandibleux (2000).
Explorando a estrutura das funções gargalo, que na literatura são consideradas as funções MinMax e MaxMin, Hansen (1980), Martins (1984b) e Berman et al (1990) apresentam algoritmos polinomiais para a obtenção de um conjunto mínimo completo de soluções Pareto-ótimas para o problema de caminho bi-objetivo MinMax-MinSum. Nestes trabalhos acima não são dadas provas de otimalidade para os algoritmos.
Aqui estamos interessados no problema de caminho tri-objetivo MaxMin-MinMax-MinSum. Um algoritmo polinomial para a obtenção de um conjunto mínimo completo de soluções Pareto-ótimas para este problema é apresentado. Consideramos três diferentes pesos
( )
i
j
p
1,
,p
2( )
i
,
j
ep
3( )
i
,
j
para cada arco( )
i
,
j
, que estão associados aos três objetivos. Oalgoritmo ordena os pesos dos arcos gerando grafos parciais de forma a eliminar, sucessivamente, arcos que não satisfazem limites inferiores/superiores para
p
1( )
i
,
j
ep
2( )
i
,
j
. Para cada grafoparcial o algoritmo tenta encontrar uma solução MinSum considerando os pesos
p
3( )
i
,
j
. Paraeste problema, em Pinto et al (2007) é apresentado um algoritmo chamado MMS. No algoritmo
MMS ao invés de excluir inserimos arcos ao longo das iterações. A vantagem do presente
algoritmo, que vamos chamar de MMS-R, com relação ao MMS é que, para alguns casos, o número de iterações pode ser bem menor. Se em uma determinada iteração identificamos a não existência de caminhos, então como o processo consiste em excluir arcos, temos a garantia de que nas iterações seguintes também não existem caminhos. Desta forma não é necessário executar tais iterações. Existem problemas em que o número de iterações executadas pelo MMS é
2
m
, enquanto que no MMS-R é apenas 1. A quantidade de iterações requeridas pelo MMS-R éobviamente sempre menor ou igual a do MMS, porque o MMS executa sempre o número máximo de iterações possíveis. Além disso, considerando o pior caso para cada algoritmo, o número de operações em uma certa iteração do MMS é maior do que o número de operações da iteração correspondente no MMS-R.
Na seção 2 é apresentado o problema de caminho tri-objetivo MaxMin-MinMax-MinSum, seguido de algumas definições e uma aplicação envolvendo redes de sensores. Na seção 3 é apresentado um algoritmo para o problema, seguido de um exemplo que ilustra o seu funcionamento e provas de otimalidade, ou seja, que o algoritmo gera um conjunto mínimo completo de soluções Pareto-ótimas. Na seção 4 são apresentados resultados computacionais obtidos da comparação entre implementações dos algoritmos MMS e MMS-R. Finalizamos o trabalho com considerações finais.
2. O Problema
Seja
G =
(
N
,
M
)
um grafo onde N é o conjunto de nós e M é o conjunto de arcos, comn
|N| = e |M| = m. Funções reais
p
1( )
i
,
j
,p
2( )
i
,
j
ep
3( )
i
,
j
são associadas a cada arco( )
i,
j
∈
M
. Sejamm
1 em
2 a quantidade de valores distintos assumidos porp
1 ep
2respectivamente. Sem perda de generalidade, vamos supor que os
m
1 valores 1 12 1 1,p , ,pm1 p K e os
m
2 valores 2 2 2 2 1,p , ,pm2p K estão em ordem crescente e decrescente respectivamente, isto é,
1 1 2 1 1 p pm1 p < <L< e 2 2 2 2 1 p pm2 p > >L> . Considere
{
( )
1( )
1 e 2( )
2}
g r rg i, j M | p i, j p p i, j p M = ∈ ≥ ≤ e seja Grg =(
N,Mrg)
um grafo parcial de G. Observe que Mrg ⊆Mr'g' para r' ≤r e g' ≤g. É fácil ver que
M M11 = .
Um caminho em G de s ∈N a t ∈N é um conjunto ordenado Pst
=
{
s,i1,i2,K,ih,t}
onde N i i1,K, h∈
.{
}
1 2 1, , , +=
h st a a a AP K ondea
(
s
i
)
a
(
i
,i
)
a
(
i
t
)
M
h h=
∈
=
=
,
1,
2 1 2,...,
+1,
1 é oconjunto de arcos do caminho acima. Seja st
G
S o conjunto de todos os caminhos de s a t em G.
Neste trabalho estamos interessados no seguinte problema tri-objetivo de otimização em grafos:
( )
{
( )
}
( )
{
}
( )
. S P ujeito a: s i,j p inimizar m i,j p max inimizar m i,j p min maximizar P st G st AP (i,j) AP (i,j) AP (i,j) st st st∈
∑
∈ ∈ ∈ 3 2 1Em uma rede de sensores, por exemplo,
p
1( )
i
,
j
pode representar a quantidade de carga debateria disponível no nó i,
p
2( )
i
,
j
o tempo médio de espera em i (tempo que decorre entre achegada e a saída da informação no nó; o tempo médio de espera da uma medida de congestionamento no nó) e
p
3( )
i
,
j
o custo gasto na transmissão de i para j. Uma companhia decomunicação pode estar interessada em encontrar um rota de s a t que, simultaneamente, maximize a carga mínima das baterias disponíveis e minimize o tempo máximo de espera e o custo total. Observe que temos
p
1( )
i
,
j
=p
1( )
i
,
l
ep
2( )
i
,
j
=p
2( )
i
,
l
para quaisquer j e lsucessores de i, logo para este caso particular temos
m
1,
m
2≤
n
.Considerando o problema
( )
P
, dizemos que(
)
33 2
1
∈
ℜ
=
q , q , qqPst Pst Pst Pst é o vetor
objetivo associado ao caminho Pst, onde q
{
p( )
i,j}
st st AP (i,j) P 1 1
=
min∈ , q{
p( )
i,j}
st st AP (i,j) P 2 2=
max∈ e( )
∑
∈=
st st AP (i,j) Pi,j
p
q
33 . Um caminho Pst domina outro caminho Pst se
st st P P q q1 ≥ 1 , qPst qPst 2 2 ≤ e st st P P
q
q
3≤
3 com pelo menos uma destas desigualdades sendo atendida estritamente. Um caminhost
P é uma solução Pareto-ótima quando não existe outro caminho Pst que domina Pst. Um
conjunto de soluções Pareto-ótimas distintas C* é um conjunto mínimo completo quando
" ' st st P P q q ≠ , P',P" C* st st
∈
∀
e para qualquer solução Pareto-ótima Pst existe P C*st
∈
tal quest st P
P
q
q
=
. O conjunto de todas as soluções Pareto-ótimas é denominado de conjunto máximo3. O Algoritmo MMS-R
Apresentaremos agora o algoritmo MMS-R para a obtenção de um conjunto mínimo completo de soluções Pareto-ótimas para o problema
( )
P
. Em cada iteração i j do MMS-R, onde1
,
,
1
m
i
=
K
e 2,
,
1
m
j
=
K
, tentamos determinar um caminho de s a t no grafoij
G . Caso não
exista caminho fazemos Cij
=
∅
e Qij=
∞
, onde C=
( )
Cij e Q=
( )
Qij são matrizes dedimensão
m ×
1m
2. Caso exista caminho fazemos ijst ij
P
C =
e Pstij ij q Q = 3 , onde ij st P é o caminhodeterminado pelo algoritmo. Para determinar estes caminho utilizamos AlgS, que é algum algoritmo para a resolução do problema de caminho mínimo, considerando s o nó origem e t o nó destino. A variável ctrl que aparece em MMS-R é utilizada para evitar a execução de iterações para as quais não existe caminho de s a t. Segue-se o algoritmo:
1. Dados: G =(N,M),
s ∈
N
et ∈
N
2. Faça: Cij :=∅ e Qij :=∞ parai
=
1
,
2
,
K
,
m
1 e 2,
,
2
,
1
m
j
=
K
, 2: m
ctrl =
e i:=1 3. Enquantoi ≤
m
1 e ctrl≠0 faça 3.1. j:=1 3.2. Enquanto j ≤ctrl faça3.2.1. Aplique AlgS em Gij considerando a função
p
3 3.2.2. Se não existe caminho de s a t em Gij então1 := j−
ctrl
3.2.3. Senão, seja Pstij o caminho obtido por AlgS ij st ij
P
C
:
=
e Pstij ij q Q := 3 Se j>1 e Qij =Qij−1 então ∅ = −1: ij C e Qij−1:=∞ Se i>1 e Qij =Qi−1j então ∅ = −1 j : i C e Qi−1 j :=∞ 1 := j+ j 3.3. Fim Enquanto j 3.4. i:= i+1 4. Fim Enquanto iÉ fácil ver que o número máximo de iterações é 2
2 1
m
m
m
≤
e que a complexidade de cadaiteração no pior caso é p(n), onde p(n) é a complexidade de AlgS. Portanto, MMS-R é
(
m
2p
(
n
)
)
O
. Por exemplo, para o caso em que os pesosp
3 são não negativos podemosconsiderar AlgS como sendo o algoritmo
O
( )
n
2 de Dijkstra (1959). Para este caso temos umalgoritmo
O
(
m
2n
2)
para MMS-R.Segue-se um exemplo da aplicação do algoritmo MMS-R. Para isso considere o grafo da Figura 1 a seguir, com s=1 e t=5.
Iteração i=1 e j=1:
M
=
{
( )
i, j
∈
M
|
p
1( )
i, j
≥
2
e
p
2( )
i, j
≤
7
}
=
M
11 ,G =
11G
,
∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ = 5 , 3 , 4 , 1 C e
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ = 4 Q . Iteração i=1 e j=2:{
( )
1( )
2
e
2( )
6
}
12=
i, j
∈
M
|
p
i, j
≥
p
i, j
≤
M
, Figura 2. Grafo G12.
∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ = 5 , 2 , 1 5 , 3 , 4 , 1 C e
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ = 6 4 Q . Iteração i=1 e j=3:{
( )
1( )
2e 2( )
5}
13 = i, j ∈M | p i, j ≥ p i, j ≤ M , Figura 3. Grafo G13. 4 | 4 | 2 3 | 1 | 1 2 | 2 | 3 5 | 3 | 2 4 4 | 5 | 9 3 1 2 5 4 | 4 | 2 3 | 1 | 1 2 | 2 | 3 5 | 3 | 2 3 | 6 | 3 4 4 | 5 | 9 3 1 2 5 4 | 4 | 2 3 | 1 | 1 2 | 2 | 3 5 | 3 | 2 3 | 6 | 3 5 | 7 | 1 4 4 | 5 | 9 3 1 2 5
∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ = 5 , 3 , 1 5 , 2 , 1 5 , 3 , 4 , 1 C e
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ = 10 6 4 Q . Iteração i=1 e j=4:{
( )
1( )
2
e
2( )
4
}
14=
i, j
∈
M
|
p
i, j
≥
p
i, j
≤
M
, Figura 4. Grafo G14.ctrl
= 3
. Iteração i=2 e j=1:{
( )
1( )
3
e
2( )
7
}
21=
i, j
∈
M
|
p
i, j
≥
p
i, j
≤
M
, Figura 5. Grafo G21.
∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ = 1,4,3,5 5 , 3 , 1 5 , 2 , 1 C e
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ = 4 10 6 Q . Iteração i=2 e j=2:{
( )
1( )
3
e
2( )
6
}
22=
i, j
∈
M
|
p
i, j
≥
p
i, j
≤
M
, Figura 6. Grafo G22. 4 | 4 | 2 3 | 1 | 1 5 | 3 | 2 3 | 6 | 3 4 4 | 5 | 9 3 1 2 5 4 | 4 | 2 3 | 1 | 1 5 | 3 | 2 3 | 6 | 3 5 | 7 | 1 4 4 | 5 | 9 3 1 2 5 4 | 4 | 2 3 | 1 | 1 2 | 2 | 3 5 | 3 | 2 4 3 1 2 5
∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ = 1,4,3,5 1,2,3,5 5 , 3 , 1 C e
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ = 4 6 10 Q . Iteração i=2 e j=3:{
( )
1( )
3e 2( )
5}
23 = i, j ∈M | p i, j ≥ p i, j ≤ M , Figura 7. Grafo G23.
∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ ∅ = 1,4,3,5 1,2,3,5 1,3,5 C e
∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ = 4 6 10 Q . Iteração i=3 e j=1:{
( )
1( )
4e 2( )
7}
31= i, j ∈M | p i, j ≥ p i, j ≤ M , Figura 8. Grafo G31. ctrl= 0Fim da execução do algoritmo.
Veja que foram executadas 8 iterações do algoritmo MMS-R para a resolução deste problema. Como
m
1=
4
em
2=
7
, então pelo algoritmo MMS seriam necessárias 28 iterações, ou seja, 3,5 vezes o total gasto por MMS-R.4 | 4 | 2 5 | 3 | 2 5 | 7 | 1 4 4 | 5 | 9 3 1 2 5 4 | 4 | 2 3 | 1 | 1 5 | 3 | 2 4 4 | 5 | 9 3 1 2 5
Os três resultados a seguir garantem a otimalidade do algoritmo MMS-R. Ou seja, que o algoritmo MMS-R gera um conjunto mínimo completo de soluções Pareto-ótimas para o problema (P).
Teorema 1: Considere a matriz C após a aplicação do algoritmo MMS-R. Todos os caminhos de C são soluções Pareto-ótimas.
Demonstração: Sem perda de generalidade, suponhamos que da iteração i = r e j = g resulta
rg st rg
P
C
=
. Logo rgst
P é um caminho em Grg, então temos 1
1 r P
p
q
strg≥
e 2 2 g P p q strg ≤ .A demonstração é por contradição. Para isso, suponhamos que rg
st
P não seja um
Pareto-ótimo. Então existe uma solução Pst que domina Pstrg, ou seja, rg st st P r P
q
p
q
1 1 1=
≥
,( )
1
rg st st P g P q p q 2 2 2 = ≤ e( )
2
rg st st P P q q3 ≤ 3 ,( )
3
com pelo menos uma das desigualdades estrita. Temos que Pst é um caminho no grafo Gij, onder
i ≤ e j ≤ g. Como r ≤r e g ≤g, então Pst é um caminho em Grg. A otimalidade de AlgS
na iteração i = r e j = g garante st rg st P
P
q
q3 ≤ 3 , o que junto com
( )
3
nos leva a qPst qPstrg3
3 = . A
exigência de ao menos uma desigualdade estrita entre
( )
1
,( )
2
e( )
3
, juntamente comrg st st P
P
q
q3 = 3 , obriga que pelo menos uma das desigualdades
q
Pstq
Pstrg1 1
>
ou rg st st P Pq
q
2<
2 seja verdadeira. Suponhamos 1 1 1 1 r P r Pp
q
p
q
st=
>
strg≥
. Logo r >r. Seja r g stP +1 a solução obtida por
AlgS na iteração i= r+1 e j =g (esta solução existe pois Pst está em Gr+1g). A otimalidade
de AlgS na iteração i= r+1 e j =g garante que qPstr g qPst qPstrg
3 3 3 1 = ≤ +
. Por outro lado, como
rg g
r M
M +1 ⊆ , então a otimalidade de AlgS na iteração i = r e j = g garante strg
g r st P P q q3 +1 ≥ 3 . Logo rg st g r st P P q
q3 +1 = 3 . A segunda linha de testes dentro de 3.2.3 nos leva a Crg =∅, o que leva a uma
contradição. O caso 2 2 2 2 g P g P p q p
q st = < strg ≤ é análogo. Portanto o caminho rg
st
P é um Pareto-ótimo.
▀ Agora vejamos no resultado a seguir que para qualquer vetor objetivo
q
Pst, associado aalguma solução Pareto-ótima Pst, existe em C uma solução cujo vetor objetivo é igual a
q
Pst.Teorema 2: Para qualquer solução Pareto-ótima Pst existe um caminho Pst em C, no final do algoritmo MMS-R, tal que
q
Pst=
q
Pst.Demonstração: Seja Pst uma solução Pareto-ótima qualquer. Temos que 1
1 r P p q st = e 2 2 g P
p
q
st=
para algum
r
∈
{
1
,
2
,
K
,
m
1}
e algumg
∈
{
1
,
2
,
K
,
m
2}
. Então Pst é caminho de Gij ∀i ≤r eg j ≤
∀ , o que nos garante a existência de rg st
P , solução obtida por AlgS na iteração i =r e
g
j = . Pela otimalidade de AlgS nesta iteração temos qPstrg qPst
3 3 ≤ . Como
p
1(
l
,
h
)
≥
p
1r e(
)
2 2 , g p h l p ≤ ∀(
l,h)
∈Mrg, então strg Pst r Pq
p
q
1 1 1≥
=
e st rg st P g P q p q 2 2 2 ≤ = . Pelas trêsdesigualdades acima envolvendo os vetores objetivo de rg st P e Pst, se st rg st P P q q ≠ então rg st P
domina Pst, o que é um absurdo, pois Pst é um Pareto-ótimo por hipótese. Logo qPstrg =qPst .
Segue-se, por contradição, a demonstração de que rg
st
P está em C. Para isto suponha que rg
st
P
tenha sido excluída de C. Isto implica que em alguma das duas iterações posteriores, i =r e
1 + = g
j ou i= r+1 e j =g obtemos Pst tal que qPst qPstrg
3
3 = . Suponha que seja na iteração
r
i = e j= g+1 (para o outro caso a demonstração é idêntica). Como Pst foi obtida em Grg+1,
então, st Pstrg r P
q
p
q
1 1 1≥
=
e rg st st P g g P q p p q 2 2 2 12 ≤ + < = (a última parte destas desigualdades é
garantida por strg st
(
Pst)
g r P
P
q
p
p
q
q
=
=
1,
2,
3 ), o que implica quest
P domina Pstrg e Pst, o que é um
absurdo, pois Pst é um Pareto-ótimo. Portanto rg
st rg
P
C
=
.▀ Para concluir que no final do algoritmo MMS-R os caminhos de C formam um conjunto mínimo completo, resta mostrar que todos os vetores objetivo dos caminhos de C são distintos, ou seja, para quaisquer Pst e Pst em C temos
q
Pst≠
q
Pst. Este fato é imediato do resultado aseguir.
Teorema 3: Considere C no final do algoritmo MMS-R. Para qualquer
=
rg≠
∅
st rg
P
C
temos: 1 1 r Pp
q
strg=
e 2 2 g P p q strg = .Demonstração: Obviamente que 1
1 r P
p
q
strg≥
e 2 2 g P p q strg ≤ , pois rg st P foi obtido em Grg. Ademonstração é por contradição. Suponha que 1
1 r P
p
q
strg>
. Logo 1 1 1≥
r+ Pp
q
strg e, assim, rg st P é umcaminho em Gr+1g, o que nos garante que algum caminho será obtido por AlgS na iteração
1 + = r
i e j =g. Seja Pstr g
1
+ este caminho. A otimalidade de AlgS na iteração 1
+ = r i e j =g nos leva a strg g r st P P q
q3 +1 ≤ 3 . Por outro lado como Mr+1g ⊆Mrg então r g st
P +1 está em Grg, o que junto com a otimalidade de AlgS na iteração i =r e j =g garante que qPstr g qPstrg
3 3 1 ≥ + . Logo rg st g r st P P q
q3 +1 = 3 o que pela segunda linha de testes de 3.2.3 do algoritmo MMS-R implica em fazer
∅ =
rg
C , o que leva a um absurdo. Portanto 1
1 r P
p
q
strg=
. O caso 2 2 g P p q strg < é análogo. Logo também temos 2 2 g P p q strg = . ▀ 4. Resultados ComputacionaisNesta seção vamos apresentar comparações entre o algoritmo MMS-R, apresentado na seção anterior, e o algoritmo MMS de Pinto et al (2007). Grafos aleatórios com até 5000 nós foram gerados. Para cada nó i geramos k números aleatórios que indicam os sucessores de i. Assim o grau de saída de qualquer nó é no máximo k. Para os pesos
p
3 geramos valores inteirose aleatórios entre 1 e 10000 e para
p
1 ep
2 inteiros nos intervalos [1, 10], [1, 50] e [1, 100].Cada linha da Tabela 1 representa a média de 5 problemas, cmc, iterMMS, iterMMS-R, tempoMMS e tempoMMS-R indicam, respectivamente, a cardinalidade do conjunto mínimo completo, total de
Utilizamos um computador pessoal com processador INTEL CORE 2 DUO de 1.73 GHz e
1024 Mb de memória RAM. A implementação dos algoritmos, MMS e MMS-R, foi desenvolvida
em linguagem de programação C e utilizamos, em ambos, o algoritmo de Dijkstra para AlgS.
Tabela 1: Valores médios dos tempos, números de iterações e número de Pareto-ótimos. n m k m1 = m2 cmc iterMMS iterMMS-R tempoMMS tempoMMS-R
500 4942 10 10 25 100 67 0,106 0,084 500 4940 10 10 23 100 64 0,112 0,095 500 4945 10 100 95 10000 4779 8,988 7,870 500 4943 10 100 76 10000 4882 11,242 8,832 1000 9954 10 50 99 2500 1245 12,369 9,657 1000 9948 10 50 112 2500 1405 9,692 8,623 5000 24988 5 10 21 100 38 5,541 4,854 5000 24987 5 10 24 100 46 6,366 6,279 5000 99787 20 10 39 100 76 12,429 11,246 5000 99796 20 10 42 100 77 15,556 13,939 5000 248742 50 10 62 100 97 19,974 19,710 5000 248740 50 10 61 100 96 17,315 17,247 5. Conclusões
O primeiro comentário é com relação aos resultados computacionais. Embora tenhamos obtido, para alguns casos, uma diferença significativa no número de iterações, os tempos não foram tão diferentes. Observamos que, para os grafos gerados, o tempo gasto nas iterações do algoritmo MMS em que não existiam soluções viáveis foi próximo de zero. Além disso, para as demais iterações do MMS o tempo gasto foi muito próximo ao tempo gasto nas iterações correspondentes do algoritmo MMS-R. Estes fatos justificam a pequena diferença entre os tempos consumidos pelos algoritmos. Acreditamos que podem existir classes de problemas em que o tempo gasto em iterações do algoritmo MMS, onde não existe solução viável, não seja tão próximo de zero e, então, o tempo total gasto pelo MMS-R irá apresentar uma vantagem significativa com relação ao tempo do MMS.
As extensões citadas em Pinto et al (2007) para o algoritmo MMS como por exemplo a geração do conjunto máximo completo, considerar o problema de árvore geradora ao invés do problema de caminho, substituir a função MinSum por uma função MaxProd, por exemplo, também são possíveis para o algoritmo MMS-R.
Com relação a trabalhos futuros, acreditamos ser interessante estudar a generalização do problema, ou seja, considerar o caso multi-objetivo onde apenas uma função objetivo não necessariamente é do tipo gargalo.
Referências Bibliográficas
Ahuja RK, Magnanti TL, Orlin JB. Network flows. New Jersey; 1993.
Berman O, Einav D, Handler G. The constrained bottleneck problem in networks. Operations Research 1990; 38; 178-181.
Current JR, Marsh M. Multiobjective transportation network design and routing problems: Taxonomy and annotation. European Journal of Operational Research 1993; 103; 426-438. Dijkstra EW. A note on two problems in connexion with graphs. Numer. Math. 1959; 1; 269-271. Ehrgott M, Gandibleux X. A survey and annotated bibliography of multiobjective combinatorial
optimization. OR Spektrum 2000; 22; 425-460.
Gandibleux X, Beugnies F, Randriamasy S. Martins’ algorithm revisited for multi-objective shortest path problems with a MaxMin cost function. A Quarterly Journal of Operations Research 2006; 4; 47-59.
Guerriero F, Musmanno R. Label correcting methods to solve multicriteria shortest path problems. Journal of Optimization Theory and Applications 2001; 111 (3); 589-613.
Gondran M, Minoux M. Graphs and Algorithms. John Wiley; 1986.
Hansen P. Bicriterion path problems. In: Fandel G, Gal T (Eds), Multicriteria decision making: Theory and applications. Lecture Notes in Economics and Mathematical Systems, vol. 177. Springer, Heidelberg; 1980. p. 109-127.
Martins EQV. On a multicriteria shortest path problem. European Journal of Operational Research 1984a; 16; 236-245.
Martins EQV. On a special class of bicriterion path problems. European Journal of Operational Research 1984b; 17; 85-94.
Pinto LL, Bornstein CT. Software CamOtim. Em: http://www.cos.ufrj.br/camotim; 2006a. Pinto LL, Bornstein CT. Algoritmos para problemas de caminho ótimo em grafos. Anais do
XXXVIII Simpósio Brasileiro de Pesquisa Operacional. Goiânia-GO; 2006b; 2418-2419. Pinto LL, Bornstein CT, Maculan NF. The tricriterion shortest path problem with at least two
bottleneck objective functions. Submetido à European Journal of Operational Research, 2007.
Serafini P. Some considerations about computational complexity for multi objective combinatorial problems. In: Krabs W, Jahn J (eds), Recent advances and historical development of vector optimization. Lecture Notes in Economics and Mathematical Systems, vol. 294. Springer, Berlin, Heidelberg, New York; 1987, p. 222-232.