um algoritmo para o problema de fluxo de custo …palavaras chave. problema de fluxo de custo...
TRANSCRIPT
UM ALGORITMO PARA O PROBLEMA DE FLUXO DE CUSTO MÍNIMO COM INCERTEZAS
Fábio Hernandes
Universidade Estadual do Centro-Oeste – UNICENTRO Departamento de Ciência da Computação - DECOMP
85.015-430, caixa postal 3010, Guarapuava-PR [email protected]
João Paulo Minoru Kobayashi Katayama
Universidade Estadual do Centro-Oeste – UNICENTRO Departamento de Ciência da Computação - DECOMP
85.015-430, caixa postal 3010, Guarapuava-PR [email protected]
Felipe Ribas Forbeck
Universidade Estadual do Centro-Oeste – UNICENTRO Departamento de Ciência da Computação - DECOMP
85.015-430, caixa postal 3010, Guarapuava-PR [email protected]
RESUMO O problema de fluxo de custo mínimo (PFCM) com incertezas é um importante
problema da teoria dos grafos, com aplicações nas mais diversas áreas (computação, telecomunicações, transportes, distribuição de energia, etc). Porém, devido à alta complexidade em se trabalhar com este tipo de problema, poucos são os algoritmos existentes que tratam do tema, sendo que estes transformam o problema incerto em um problema clássico e aplicam um algoritmo da literatura para resolvê-lo. Neste artigo é proposto um algoritmo que trabalha com o problema incerto até a obtenção da solução final. As incertezas estão nos custos e nas capacidades dos arcos e são abordadas utilizando a teoria dos conjuntos fuzzy.
PALAVARAS CHAVE. Problema de fluxo de custo mínimo. Teoria dos conjuntos fuzzy. Problema de caminho mínimo fuzzy. Teoria dos grafos.
ABSTRACT The minimum cost flow problem (PFCM) with uncertainty is an important problem in
graphs theory, it has a wide range of applications in different areas (computation, telecommunications, transportations, distribution of energy, etc). However, due to high complexity in working with this kind of problem, there are few algorithms which demand the issue, where they transform the uncertain problem in a crisp problem and then apply an algorithm of literature to solve it. In this paper, an algorithm is proposed which works with the uncertain problem until obtaining of the final solution. The uncertainties are in the costs and capacities of the arcs and they are solved using the fuzzy sets theory.
KEYWORDS. Minimum cost flow problem. Fuzzy sets theory. Fuzzy shortest path problem. Graphs theory.
2590
1. Introdução Os problemas que envolvem fluxo em redes são alguns dos mais estudados na área de
teoria dos grafos, pois possuem aplicações nos mais diversos campos da Engenharia e da Computação (telecomunicações, transportes, distribuição de energia, redes de computadores, manufatura, dentre outras). O problema de fluxo de custo mínimo (PFCM) é um importante problema desta área, pois pode ser aplicado em alguns dos campos supracitados (por exemplo: redes de distribuição, transportes, comunicações, dentre outras (Ahuja et al, 1993; Lawler, 1976; Philips e Garcia-Diaz, 1981)). Este problema consiste em atender, a um custo mínimo, a demanda em uma rede, dada a oferta de recursos e às restrições de capacidades dos arcos.
Normalmente, neste problema, existem restrições de fluxo associadas a cada arco (i,j) da rede (máximo e mínimo), sendo atribuído um custo cij referente ao trânsito de cada unidade de fluxo naquele arco. Em muitas aplicações reais, tanto os custos dos arcos quanto as capacidades são parâmetros conhecidos aproximadamente. Muitas vezes, devido à falta de informações ou a informações insuficientes (por exemplo, no trajeto de automóvel entre duas localidades, o tempo requerido é um dado incerto), transforma o problema clássico em um problema incerto. Neste trabalho é abordado o problema de fluxo de custo mínimo em redes com parâmetros incertos, denotado por PFCM fuzzy, sendo que as incertezas são tratadas com o auxílio da teoria dos conjuntos fuzzy (Zadeh, 1965, 1968, 1978). Embora o PFCM fuzzy tenha um vasto campo de aplicações, são poucos os trabalhos encontrados na literatura que abordam o tema. As principais referências nesta área são Shih e Lee (1999), Liu e Kao (2004) e Takahashi (2004). Shih e Lee fazem uma adaptação do método Húngaro, utilizando programação possibilística, que transforma o problema incerto em um de programação linear crisp. Já no trabalho de Liu e Kao (2004) é utilizado o índice de “defuzzificação” de Yager (1981), o qual transforma os custos incertos (fuzzy) em clássicos, (crisp) e, em seguida, é aplicado um algoritmo clássico para encontrar a solução do problema. Os trabalhos de Takahashi (2004) figuram entre os mais recentes, sendo propostos três algoritmos: um considerando apenas o problema com capacidades incertas, outro abordando os custos incertos e, o último considerando os custos e as capacidades incertos, caracterizando-se este como a união dos dois primeiros algoritmos. O primeiro algoritmo é baseado em α-cortes, resolvendo um problema crisp para cada α. Já o segundo resume-se em encontrar soluções factíveis, tendo como idéia trabalhar com as capacidades dos arcos para desviar o fluxo para rotas alternativas enumerando todas as possíveis soluções. O terceiro algoritmo é a união dos dois primeiros, podendo, porém, ser aplicado apenas a problemas de pequeno porte devido à estrutura apresentada visto que é necessário enumerar todas as soluções possíveis. Analisando os trabalhos supracitados verifica-se que estes transformam (“defuzzificam”) o problema incerto em um problema crisp, aplicando posteriormente um algoritmo clássico da literatura como, por exemplo, o Big-M para resolvê-lo. Porém, tendo-se em vista que a “defuzzificação” do problema gera perda de informações, neste trabalho, é apresentado um algoritmo para o PFCM fuzzy que contorna esta desvantagem, ou seja, trabalha com as incertezas nos custos e nas capacidades até a obtenção da solução final sem convertê-lo em um problema clássico (crisp). O algoritmo proposto é composto de duas fases. Na primeira é aplicado um algoritmo para o problema de caminho mínimo com incertezas e na segunda fase é distribuído o fluxo ao longo destes caminhos. Vale ressaltar que não se tem conhecimento de estudos que trabalham com o problema incerto até a obtenção da solução final uma vez que os principais trabalhos, mencionados anteriormente, transformam o problema fuzzy em crisp. Este artigo está organizado da seguinte forma: na Seção 2 são apresentados os conceitos da teoria dos conjuntos fuzzy, necessários para o entendimento do algoritmo proposto. As formulações matemáticas do PFCM clássico e fuzzy estão na Seção 3. A Seção 4 apresenta o algoritmo proposto. Na Seção 5 encontram-se os resultados computacionais. Conclusões e trabalhos futuros são abordados na Seção 6.
2591
2. Teoria dos Conjuntos Fuzzy: conceitos e preliminares A teoria dos conjuntos fuzzy é uma ferramenta que tem sido freqüentemente utilizada
em problemas de grafos com incertezas (Blue et al, 2002; Hernandes et al, 2006; Hernandes et al, 2007; Hernandes et al, 2008; Muñoz et al, 2005; Nayeem e Pal, 2005; Okada e Soper, 2000; Okada, 2004), além de outros problemas da Pesquisa Operacional (García e Lamata, 2005; Nezhad e Assadi, 2008), da Engenharia (problemas de controle (Shaw e Simões, 1988) e reconhecimento de padrões (Bezdek, 1981)) e da Programação Matemática (Malik e Moderson, 2001).
2.1 Conjuntos Fuzzy Nesta subseção são apresentados os conceitos da teoria dos conjuntos fuzzy necessários para o entendimento do algoritmo proposto, sendo encontrados em Pedrycz e Gomide (1998).
Definição 1. Conjunto é uma tentativa de organizar, resumir e generalizar conhecimento sobre objetos. Neste sentido trabalha-se com uma dicotomia sobre um objeto pertencer ou não a um determinado conjunto. Esta dicotomia pode ser representada por uma função característica:
⎩⎨⎧
∉∈
=AxAx
xf A se,0 se,1
)( (1)
Um conjunto fuzzy A em um universo de discurso U é definido por uma função de pertinência )(~ xaμ que assume valores em um intervalo [0,1]:
]1,0[:~ →Uaμ (2)
Definição 2. Um número fuzzy triangular pode ser definido como ( )βδ ,,~1ma = , tendo sua
função de pertinência, )(~ xaμ , definida pela expressão:
( )( )
tal que: Figura 1. Exemplo de um número fuzzy triangular m1: valor modal (Definição 4); δ: espalhamento à esquerda; e β: espalhamento à direita.
Definição 3. Um número fuzzy trapezoidal, denotado por ( )βδ ,,,~21 mma = , possui sua função
de pertinência, )(~ xaμ , definida da seguinte forma:
⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
+≥
+<<−+
≤≤
<<−−−
−≤
=
se ,0
se ,)( se ,1
se ,)( se ,0
)(
2
222
21
111
1
~
β
βββ
δδ
δδ
μ
mx
mxmxmmx m
mxmmxmx
xa
t al que: Figura 2. Exemplo de um número fuzzy trapezoidal
m1, m2: extremos (inferior e superior) do intervalo modal; δ: espalhamento à esquerda; e β: espalhamento à direita.
( )( ) ( )
( )⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
+>
+≤<−+
≤≤−−−
−<
=
β
βββ
δδ
δδ
μ
1
111
111
1
~
se ,0
se ,
se ,
se ,0
)(
mx
mxmxm
mxmmx
mx
xa
m1-δ m1+β m1 x
μ 1
μx
1
m2 m2+β xm1-δ m1
2592
Notação: Os valores m1-δ e m2+β (m1+β, para triangulares) são denominados de limitante inferior e limitante superior, respectivamente.
Definição 4. Valor modal é o valor [ ]βδ +−∈ 21 , mmx (ou [ ]βδ +−∈ 11 , mmx para número triangular ) para o qual a função de pertinência tem valor máximo.
Definição 5. Sejam a~ e b~ números fuzzy triangulares, ( )111 , ,~ βδma = e ( )222 , ,~βδmb = , então
a soma fuzzy pode ser notada por: ( ) ( ) ( )212121222111 ,,,,,,~~ ββδδβδβδ +++=⊕=⊕ mmmmba
A Definição 5 pode ser aplicada de forma análoga para números fuzzy trapezoidais.
Definição 6. Um α -corte de um subconjunto fuzzy é um conjunto [ ] { }αμα ≥= )(|~ ~ xxa a , tal que ]1,0[∈α .
Definição 7. A medida de possibilidade de um conjunto fuzzy A ser menor do que um conjunto fuzzy B, denotado por Poss(A,B), é definida como:
[ ]))(),(min(sup),( xxBAPoss BAXx
μμ∈
=
tal que: )(xAμ e )(xBμ são as funções de pertinência e X o intervalo onde estes conjuntos fuzzy estão determinados. 2.2 Capacidades fuzzy Na maioria das aplicações de problemas de fluxo em redes que envolvem capacidades com incertezas, estas são limitadas apenas superiormente. Logo, as capacidades dos arcos, consideradas neste trabalho, são números fuzzy trapezoidais, tendo seus limitantes inferiores (m1-δ) e extremos inferiores do intervalo modal (m1) iguais a zero, conforme exemplifica a Figura 3.
Figura 3. Exemplo de capacidade fuzzy
Analisando a figura anterior, pode-se dizer que se o fluxo que percorrer o arco (i,j) for
menor ou igual a m2, seu grau de satisfação é 1, ou seja, estará satisfazendo a restrição de capacidade daquele arco. Caso o fluxo esteja entre m2 e m2+β, o seu índice de satisfação estará entre 1 e zero, satisfazendo parcialmente a restrição de capacidade daquele arco. 2.3 Defuzzificação
A “defuzzificação” não é exatamente o processo inverso da “fuzzificação”, mas sim métodos para conversão de números fuzzy em números clássicos. Diversos métodos têm sido propostos na literatura, entre os quais se pode destacar o centro de área, a média dos máximos e a média dos centros (Pedrycz e Gomide, 1998).
3. O Problema de Fluxo de Custo Mínimo Nesta seção são apresentadas as formulações clássica (PFCM Clássico) e incerta
(PFCM Fuzzy) do problema de fluxo de custo mínimo.
1
m1 m2=uij
μx
xijum + β =2
2593
3.1 O PFCM Clássico Seja G=(N,A) uma rede direcionada com custo cij associado a cada unidade de fluxo xij
que percorre o arco Aji ∈),( . Para cada arco (i, j) tem-se uma capacidade mínima lij e máxima uij de fluxo e para cada nó tem-se um parâmetro bi, tal que:
• bi>0, se i for um nó gerador (nó-origem); • bi=0, se i for um nó de transbordo; e • bi<0, se i for um nó consumidor (nó-destino).
O problema de fluxo de custo mínimo clássico é formulado da seguinte forma:
),(
,...,2,1 :..
min
1 1
1 1
Ajiuxl
nibxxas
xcz
ijijij
n
j
n
jijiij
n
i
n
jijij
∈≤≤
==−
=
∑ ∑
∑∑
= =
= =
(3)
Existem vários algoritmos para a resolução do PFCM Clássico, dentre os mais
conhecidos destaca-se o método simplex para redes (Bazaraa et al, 1990).
3.2 O PFCM Fuzzy Suponha que se tenha um PFCM com custos e capacidades incertos, logo, este
problema pode ser formulado da seguinte forma:
),( ~~
,...,2,1 :..
~ min
1 1
1 1
Ajiuxl
nibxxas
xcz
ijijij
n
j
n
jijiij
n
i
n
jijij
∈≤≤
==−
=
∑ ∑
∑∑
= =
= =
(4)
tal que: ijijij ulc ~ ,~ ,~ representam os custos fuzzy, e os limitantes inferior e superior da capacidade, respectivamente. Sem perda de generalidade os números fuzzy adotados para os custos são triangulares e para as capacidades são trapezoidais.
4. Algoritmo Proposto Nesta seção é apresentado o algoritmo proposto que, diferente dos trabalhos existentes na literatura, não transforma o problema incerto em um problema clássico. O algoritmo é composto de duas etapas, sendo que na primeira é utilizado o algoritmo de Hernandes et al (2007), para detectar o conjunto dos caminhos não-dominados (Passo 1), e a segunda é a atribuição do fluxo ao longo estes caminhos (Passos 2 a 4). A finalidade do Passo 1 é eliminar alguns caminhos considerados caros, ou seja, caminhos que são dominados por caminhos mais baratos (vide Definição 8). Na Subseção 4.1 está o algoritmo proposto, enquanto que na Subseção 4.2 é apresentado o algoritmo que determina o conjunto dos caminhos não-dominados. 4.1 Algoritmo Proposto para o PFCM Fuzzy
Informações sobre o algoritmo: Pod: conjunto dos caminhos não-dominados entre um nó origem i e destino j; pk: caminho não-dominado entre um nó origem i e destino j, com rótulo k; μpk: possibilidade do caminho pk ser mínimo;
: custo kpμ possibilidade do custo do caminho pk ser mínimo; e
2594
: capac kpμ possibilidade de passar fluxo pelo caminho pk .
Algoritmo Proposto Passo 1: Encontrar os conjuntos de todos os caminhos não-dominados para cada par de nós
origem-destino {Pod1, Pod2, Pod3,..., Podn} (Algoritmo da Subseção 4.2).
Passo 2: Ordenar os caminhos pk ∈ {Pod1, Pod2, Pod3,..., Podn} decrescente da forma: μpk = Poss{pk ser o melhor caminho}= { }
kkk ppp capac custo ,min μμ , tal que :
• { } e ;mínimoser custo custo kk pp Poss=μ
• { } { }kPlp pPosslkk
empassar fluxo )( min capac capac == ∈ μμ .
Passo 3: Para o nó destino i1 do primeiro caminho ordenado, executar os seguintes passos: • Enviar fluxo para o melhor caminho (em termos de
kpμ ) até que:
{ } caminho) (próximo ,min 1
PodPodkkpkpk pcapaccustop ∈==∈
+μμμμ
Caso 1+
=kk pp μμ preencher este caminho até o próximo que tenha pertinência
diferente. Se não existir outro caminho com pertinência diferente ⇒ FIM (não é possível
enviar todo o fluxo por estes caminhos).
• Atualizar kpμ para todo pk ∈ {Pod1, Pod2, Pod3,..., Podn} e reordená-los baseado
em: { }kkkk pppp capac custo ,min μμμ = .
Passo 4: Critério de parada • Se o fluxo necessário ao nó-destino i1 foi satisfeito, eliminar todos os caminhos
não-dominados que tenham como nó destino i1 e voltar ao Passo 2. Caso contrário retorne à primeira etapa do Passo 3.
• Senão ⇒ FIM.
4.2 Algoritmo de Caminho Mínimo Fuzzy A escolha pelo algoritmo de caminho mínimo proposto por Hernandes et al (2007) deve-se pelo fato de ser um dos principais trabalhos da literatura, pois, além de trabalhar com incertezas até a obtenção da solução final, pode ser aplicado em redes com parâmetros quaisquer, inclusive negativo, inédito na literatura. Na comparação entre os custos dos caminhos não-dominados, este algoritmo utiliza a definição da relação de ordem de Okada e Soper (2000) - Definição 8 - sendo que pode apresentar, entre dois nós, mais de um caminho não-dominado, logo, cada caminho recebe uma tiqueta (rótulo) para que este seja construído no passo final do algoritmo. e
Definição 8. (Okada e Soper, 2000) Sejam a~ e b~ números fuzzy triangulares tal que ( )111 ,,~ βδma = e ( )222 ,,~
βδmb = , então ba ~~ p ( a~ domina b~ ) se, e somente se, as seguintes inequações forem satisfeitas:
2211212211 ; ; ββδδ +≤+≤−≤− mmmmmm e ba ~~ ≠ .
Informações sobre o algoritmo de Hernandes et al (2007):
N: conjunto dos nós; it: contador de iterações; ( ) :im β+ espalhamento à direita (m+β) do custo do arco (i,j) (limitante superior);
2595
:~jic custo do arco (j,i);
:~),(
itkic custo do caminho entre o nó 1 e o i com a etiqueta k na iteração it;
M: número grande que faz papel do infinito; e :1−Γi conjunto dos nós predecessores de i.
Algoritmo – Hernandes et al (2007) Passo 0: Inicialização das variáveis: 1 )0 ,0 ,0(~0
)1,1( =c ;
2. ; ,...,3 ,2 ),1 ,1 ,2(~0)1,( rjMc j =+= tal que:
• r: número de nós;
• ( )∑=
+=E
i
imM1
β ; e
• E: número de arestas. 3. 1=it .
Passo 1: Construção dos caminhos, seleção das etiquetas e verificação da dominância: 1. )0 ,0 ,0(~
)1,1( =itc ;
2. , ,...,3 ,2 ,1 ,1 rij i =Γ∈∀ − faça:
jiit
kjit
ki ccc ~~~ 1)2 ,()1 ,( ⊕= − (construção dos custos dos caminhos)
3. Verificação da dominância entre as etiquetas. Para todas as etiquetas do nó i faça: • Se etiqueta; 1 a elimine ~~
)2 ,()1 ,( ésimakcc itki
itki −⇒f
• Se etiqueta. 2 a elimine ~~)2 ,()1 ,( ésimakcc it
kiit
ki −⇒p
Passo 2: Critério de parada 1. Se ( ) ,~~ 1
)1,()1,( Nicc itki
itki ∈∀= − ou (it=r) faça:
• se it = r e ⇒∈∀≠ − ,~~ 1)1,()1,( Nicc it
kiit
ki Passo 4 (circuito negativo)
• senão ⇒ Passo 3 2. Senão: 1. Passo ao volte1 ⇒+= itit
Passo 3: Composição dos caminhos não-dominados: • Encontre os caminhos não-dominados entre os nós 1 e i.
Passo 4: FIM. 4.3 Corretude do Algoritmo Proposto
Considerando que o principal passo do algoritmo proposto é o Passo 1 (algoritmo de Hernandes et al (2007)), pois os demais (Passos 2 a 4) são apenas operações matemáticas para as atribuições de fluxos, pode-se afirmar que a corretude do algoritmo está vinculada somente a este passo. Porém, como este passo é baseado no algoritmo de Ford-Moore-Bellman (Hernandes et al, 2007), esta pode ser encontrada em Gondran e Minoux (1990).
5. Resultados Computacionais O algoritmo proposto foi executado em duas redes, sendo que para a primeira foram detalhados os passos para um melhor entendimento.
2596
Exemplo 1. Rede com um nó-origem e um nó-destino.
Figura 4. Rede com um nó-origem e um nó-destino
Na Tabela 1 encontram-se os dados referentes à rede da Figura 4.
Arcos Custos Capacidades 1 (45 12 5) (0 0 8 10) 2 (57 15 4) (0 0 12 16) 3 (52 2 9) (0 0 20 22) 4 (79 28 6) (0 0 11 18) 5 (58 2 14) (0 0 16 18) 6 (55 12 5) (0 0 10 15) 7 (110 35 4) (0 0 15 20) 8 (40 8 6) (0 0 16 18) 9 (92 4 42) (0 0 23 27) Tabela 1. Custos e capacidades da Figura 4.
1ª Iteração: Passo 1: Encontrar os caminhos não-dominados entre os nós 1 e 6, utilizando o algoritmo de
Hernandes et al (2007). Caminhos encontrados (Pod): Caminho 1 (p1): 1 → 2 → 4 → 6 com custo (234, 75, 15). Caminho 2 (p2): 1 → 3 → 4 → 6 com custo (222, 62, 13). Caminho 3 (p3): 1 → 2 → 5 → 6 com custo (195, 18, 61).
Passo 2: Ordenar os caminhos: . Podpk ∈μpk = Poss{pk ser o melhor caminho}= { }
kkk ppp capac custo ,min μμ tal que:
• { } e ;mínimoser custo custo kk pp Poss=μ
– Poss (p1 < p2) = 0.8636, Poss (p1 < p3) = 0.7132 – Poss (p2 < p1) = 1, Poss (p2 < p3) = 0.7805 – Poss (p3 < p1) = 1, Poss (p3 < p2) = 1
• { } { }kPlp plkk
empassar fluxo Poss)( min capac capac == ∈ μμ =1 (ainda não tem fluxo correndo nos arcos).
• Ordenação: p3, p2 e p1. 1pμ = min{0.7132; 1} = 0.7132
2pμ = min{0.7805; 1} = 0.7805
3pμ = min{1; 1} = 1
Passo 3: Para o nó destino executar os seguintes passos: • Enviar fluxo para o 1º cam nho até alcançar a pertinência do caminho seguinte: i
{ } caminho) (próximo ,min 2333
PodPod pcapaccustop pp∈==∈ μμμμ
2597
Relaxar as capacidades dos arcos do caminho p3 até a pertinência de 0.7805 (ordenado segundo melhor caminho), ou seja, aplicar α -cortes de 0.7805 em cada arco do caminho p3 e enviar a quantidade de fluxo correspondente à do arco que bloqueia (arco com menor capacidade), ficando da seguinte forma: Fluxo ao longo dos arcos: (8.439 0 0 0 8.439 0 0 0 8.439)
• Atualizar kpμ para todo pk ∈ Pod e reordená-los baseado em:
{ }kkkk pppp capac custo ,min μμμ =
- Para o caminho p1: { } 7132.07805.0 ;7132.0min
11== ppμ
tal que: { } { } 7805.01 1; .7805;0 )( min capac capac 11
=== ∈ Poss lPlp μμ
7132.01 custo =pμ (já foi calculado anteriormente, não muda)
- Para o caminho p2: { } 7805.07805.0 ;1min
22== ppμ
tal que: { } { } 11 1; ;1 )( min capac capac 12
=== ∈ Poss lPlp μμ
7805.02 custo =pμ (já foi calculado anteriormente, não muda)
- Para o caminho p3: { } 7805.01 ;7805.0min
33== ppμ
tal que: { } { } 11 1; .7805;0 )( min capac capac 33
=== ∈ Poss lPlp μμ
13 custo =pμ (já foi calculado anteriormente, não muda)
• Ordenação: p3, p2 e p1 (quando houver empate entre dois caminhos, será critério de desempate aquele que possuir o menor custo).
Passo 4: Critério de parada • Há fluxo a transitar ⇒ Passo 3.
2ª Iteração: Passo 3: Para o nó destino executar os seguintes passos:
• Enviar fluxo para o 1º caminho até alcançar a pertinência do caminho seguinte: (Como p3 (1º caminho) possui a mesma pertinência de p2 (2º caminho), então terá que enviar fluxo em p3 até o caminho p1 (3º caminho)):
{ } ,min 1333
PodPod pcapaccustop pp∈==∈ μμμμ
Relaxar as capacidades dos arcos do caminho p3 até a pertinência de 0.7132 (ordenado segundo melhor caminho). Fluxo ao longo dos arcos: (8.5735 0 0 0 8.5735 0 0 0 8.5735)
• Atualizar kpμ para todo pk ∈ Pod e reordená-los baseado em:
{ }kkkk pppp capac custo ,min μμμ =
- Para o caminho p1: { } 7132.07132.0 ;7132.0min
11== ppμ
tal que: { } { } 7132.01 1; .7132;0 )( min capac capac 11
=== ∈ Poss lPlp μμ
2598
7132.01 custo =pμ (já foi calculado anteriormente, não muda)
- Para o caminho p2: { } 7805.07805.0 ;1min
22== ppμ
tal que: { } { } 11 1; ;1 )( min capac capac 12
=== ∈ Poss lPlp μμ
7805.02 custo =pμ (já foi calculado anteriormente, não muda)
- Para o caminho p3: { } 7132.01 ;7132.0min
33== ppμ
tal que: { } { } 11 1; .7132;0 )( min capac capac 33
=== ∈ Poss lPlp μμ
13 custo =pμ (já foi calculado anteriormente, não muda)
• Ordenação: p2, p3 e p1 (quando houver empate entre dois caminhos, será critério de desempate aquele que possuir o menor custo).
Passo 4: Critério de parada • Há fluxo a transitar ⇒ Passo 3.
3ª Iteração: Passo 3: Para o nó destino executar os seguintes passos:
• Enviar fluxo para o 1º caminho até alcança a pertinência do caminho seguinte: r{ } ,min 3222
PodPod pcapaccustop pp∈==∈ μμμμ
Relaxar as capacidades dos arcos do caminho p2 até a pertinência de 0.7132 (ordenado segundo melhor caminho). Fluxo ao longo dos arcos: (8.5735 7.4265 0 0 8.5735 7.4265 7.4265 0 8.5735)
• Atualizar kpμ para todo pk ∈ Pod e reordená-los, similar à 2ª iteração. Não será
calculado porque o algoritmo será finalizado.
Passo 4: Critério de parada • Não há fluxo a transitar ⇒ FIM.
Portanto, a solução final é:
Arco 1 2 3 4 5 6 7 8 9 Fluxo Final 8.5735 7.4265 0 0 8.5735 7.4265 7.4265 0 8.5735
Tabela 2. Resultado do Exemplo 1.
com pertinência 0.7132 e custo final (m1, δ1, β1) = (332.05, 61.48, 61.95) .
O custo final é calculado através da multiplicação dos custos dos arcos com a quantidade de fluxo que percorre em cada arco. Exemplo 2. Rede com múltiplos nós-origens e múltiplos nós-destinos.
Figura 5. Rede com múltiplos nós-origens e nós-destinos
2599
Na Tabela 3 encontram-se os dados referentes à rede da Figura 5.
Arcos Custos Capacidades 1 (2 1 1) (0 0 3 4) 2 (3 2 1) (0 0 1.5 2.5) 3 (3 3 2) (0 0 2 3) 4 (6 4 2) (0 0 2 4) 5 (5 1 1) (0 0 7 8) 6 (5 2 1) (0 0 3 4) 7 (2 1 1) (0 0 4 6) 8 (5 4 2) (0 0 4 5) 9 (3 1 1) (0 0 2 3) Tabela 3. Custos e capacidades da Figura 4.
A solução final obtida após a execução do algoritmo proposto é:
Arco 1 2 3 4 5 6 7 8 9 Fluxo Final 3.7778 1.2222 0 1.7778 4 1.2222 0 0 2
Tabela 4. Resultado do Exemplo 2.
com pertinência 0.1111 e custo final (m1, δ1, β1) = (54, 19.7778, 15.7778).
6. Conclusões e Trabalhos Futuros Problemas de fluxo em redes têm sido intensamente estudados e aplicados nas soluções de alguns problemas reais. Este trabalho apresenta um algoritmo para o problema de fluxo de custo mínimo com relaxamento nas exigências de valores precisos para os parâmetros relacionados aos arcos do grafo com incertezas nos mesmos. Grande parte das publicações apresenta incertezas em somente um dos parâmetros (exceto os algoritmos propostos por Shih e Lee (1999) e Takahashi (2004)), bem como, convertem o problema incerto em um problema clássico. Ao contrário, o algoritmo proposto, além de abordar as incertezas em dois parâmetros (custos e capacidades), possui a vantagem de ser aplicável em problemas de grande porte e trabalhar com as incertezas até a obtenção da solução final.
É importante destacar que, embora o algoritmo proposto seja para o PFCM Fuzzy, suas aplicações não estão restritas apenas a problemas desta categoria, podendo, por exemplo, ser aplicado em problemas de caminho mínimo com restrições de custo e tempos incertos.
Como propostas futuras pretende-se estudar novos índices de comparação entre números fuzzy e aplicar o algoritmo proposto em outros casos, tais como fluxo máximo e caminho mínimo com restrições de tempo.
Referências
Ahuja, R. K., Magnanti, T. L. e Orlin J. B., Network Flows: Theory, Algorithms and Applications, Prentice Hall, 1993.
Bazaraa, M. S., Jarvis, J. J. e Sherali, H. D., Linear Programming and Network Flows, John Wiley, 1990.
Bezdek, J. C., Pattern recognition with fuzzy objective function algorithms. Plenum Press, 1981.
Blue, M., Bush, B. e Puckett, J. (2002), Unified approach to fuzzy graph problems, Fuzzy Sets and Systems, 125, 355–368.
García, M. S. e Lamata, M. T. (2005), The fuzzy sets in maintenance process, Anais do European Society for Fuzzy Logic and Technology, 118–123.
2600
Gondran, M. e Minoux, M., Graphs and Algorithms, John Wiley & Sons, 1990.
Hernandes, F., Yamakami, A., Takahashi, M. T. e Verdegay, J. L. (2006). Um Algoritmo para o Problema de Fluxo Máximo em Redes com Incertezas. Anais do XXXVIII Simpósio Brasileiro de Pesquisa Operacional, 2272-2283.
Hernandes, F., Lamata, M. T., Verdegay, J. L. e Yamakami, A. (2007), The Shortest Path Problem on Networks with Fuzzy Parameters, Fuzzy Sets and Systems, 158, 1561-1570.
Hernandes, F., Lamata, M. T., Verdegay, J. L. e Yamakami, A., An Algorithm for the Shortest Path Problem on a Network with Fuzzy Parameters Applied to a Tourist Problem, em Bello, R., Falcón, R., Pedrycz, W. e Kacprzyk, J. (Eds,), Granular Computing: At the Junction of Rough Sets and Fuzzy Sets. 1ª edição, Springer-Verlag Berlin Heidelberg, New York, 224, 307-320, 2008.
Lawler, E. L., Combinatorial Optimization: Networks and Matroids, New York: Holt, Rinehart and Winston, 1976.
Liu, S.-T. e Kao, C. (2004), Network Flow Problems with Fuzzy Arc Lengths, IEEE Transactions on Sytems, Man, and Cybernetics - Part B: Cybernetics, 34, 765-769.
Malik, D. e Moderson, J. N., Fuzzy discrete structures. Physica-Verlag, New-York, 2001.
Muñoz, S., Ortuño, M. T., Ramírez, J. e Yáñez, J. (2005), Coloring Fuzzy Graphs, Omega, 33, 211–221.
Nayeem, S. M. e Pal, M. (2005), Shortest path problem on a network with imprecise edge weight, Fuzzy Optimization and Decision Making, 4, 293–312.
Nezhad, S.S. e Assadi, R. G. (2008), Preference ratio-based maximum operator approximation and its application in fuzzy flow shop scheduling, Applied Soft Computing, 8, 759–766.
Okada, S. e Soper, T. (2000). A Shortest Path Problem on a Network with Fuzzy Arc Lengths. Fuzzy Sets and Systems, 109, 129-140.
Okada, S. (2004). Fuzzy shortest path problems incorporating interactivity among paths. Fuzzy Sets and Systems 142 (3): 335-357.
Pedrycz, W. e Gomide, F., An Introduction to Fuzzy Sets: Analysis and Design, London: MIT Press, 1998.
Philips, D. T. e Garcia-Diaz, A., Fundamentals of Network Analysis, Englewood Cliffs, NJ: Prentice-Hall, 1981.
Shaw, I. S. e Simões, M. G., Controle e modelagem fuzzy. Edgar-Blucher/Fapesp, São Paulo, 1998.
Shih, H-S. e Lee, E. S., (1999), Fuzzy Multi-Level Minimum Cost Flow Problems, Fuzzy Sets and Systems, 107, 159-176.
Takahashi, M.T., Contribuições ao Estudo de Grafos Fuzzy: Teoria e Algoritmos. Tese de doutorado, Faculdade de Engenharia Elétrica e de Computação, Universidade Estadual de Campinas, 2004.
Yager, R. R. (1981), A Procedure for Ordering Fuzzy Subsets of the Unit Interval, Information Sciences, 24, 143-161.
Zadeh, L. A. (1965). Fuzzy sets. Information and Control, 8, 338-353.
Zadeh, L. A. (1968), Fuzzy algorithms. Information and Control, 12, 94-102.
Zadeh, L. A. (1978), Fuzzy Sets as a theory of possibility. Journal of Fuzzy Sets and Systems, 1, 3-28.
2601