• Nenhum resultado encontrado

seja A 0 =minÍA e }.

No documento Redes : fluxo máximo e corte mínimo (páginas 90-98)

* eeQ

para cada arco e do caminho Q que aumenta o fluxo se e é um arco dirigido para a frente

/ • ( « ) - / • ( « ) + A .

se não (se e é um arco dirigido para trás)

até que um caminho que aumenta o fluxo / * não possa ser encontrado na rede N voltar o fluxo / *

Saída: um fluxo máximo / * da rede N

Este algoritmo é melhor que o de Ford - Fulkerson pois na instrução "enquanto" (**) deste último algoritmo, o caminho que aumenta o fluxo é procurado usando um método de procura breadth first, ou seja, o caminho que aumenta o fluxo passa a ser o caminho mais curto desde a fonte S até ao destino T na rede residual, onde cada aresta tem distância unitária. A análise deste algoritmo depende das distâncias até aos vértices na rede residual.

Em seguida, introduzem-se noções necessárias para mostrar qual o tempo de execução do algoritmo de Edmonds - Karp.

Definição 5.5.4.3: S(u,v) é a distância do caminho mais curto desde os vértices u ate v.

Antes de mostrar a eficiência do algoritmo de Edmonds - Karp, vejamos uma propriedade importante das distâncias dos caminhos mais curtos.

Lema 5.5.4.4: Sejam G um grafo e s G V um vértice qualquer, então para qualquer aresta uv G E, S(s,v)<õ(s,u)+\.

Demonstração:

Se se puder alcançar u através de s, então o mesmo ocorre com v, pois u está ligado ao vértice v. Neste caso, o caminho mais curto desde 5 até v não pode ser mais longo do que o caminho mais curto de s

até u passando pela aresta uv e, deste modo, a desigualdade mantém-se válida. Se não se pode chegar a u através de s, então não existe nenhum caminho desde 5 até u e a desigualdade mantém-se. ■

Notação 5.5.4.5: Seja ôf(u,v) a distância do caminho mais curto desde u até v na rede residual da rede N

com fluxo / , na qual cada aresta tem distância unitária.

Lema 5.5.4.6: Se o algoritmo de Edmonds - Karp for executado usando um fluxo / numa rede N, com fonte S e destino T, então para todos os vértices veVN -{S,T}, a distância do caminho mais curto vtVN- {s,T} na rede residual aumentará monotonamente com cada aumento do fluxo.

Demonstração:

Suponha-se que, para algum vértice v&VN -{S,T}, existe um aumento de fluxo que faz com que a

distância do caminho mais curto entre S e v diminua.

Seja / o fluxo imediatamente antes do primeiro aumento que diminui a distância do caminho mais curto e seja / ' o fluxo imediatamente após. Seja ,v o vértice com ôf.(s,v) mínimo, no qual a distância foi diminuída

pelo aumento de tal modo que: Sf.(S,v)<ôf(S,v). Seja P=<S^> > u - > v > um caminho mais curto

de S até v na rede residual de modo que uveEf, e

Sf,{s,u)=ôr{S,v)-\. (1)

Devido ao modo como v foi escolhido, a etiqueta da distância do vértice u não diminuiu, isto é:

ôf.{s,u)>Sf{s,u). (2)

Tem-se que uveEf, uma vez que se uv e Ef se teria que:

ôf {S, v)=ôf{s,u)+l (usando o Lema 5.5.4.4)

<Sf.(s,u)+\ (peladesigualdade ( 2 ) 0 Sf( s , u ) < ôr{ S , « ) ) = Sf.(S,v) (pelaigualdade (\)oSf.(s,v) = Sr(s,u)+\)

contrariando a hipótese ôf.(s,v)<ôf(s,v).

Repare-se que uveEf e uveEf., uma vez que o aumento efectuado deve ter aumentado o fluxo de v

para u. Este algoritmo aumenta sempre o fluxo ao longo de caminhos mais curtos e, deste modo, o caminho mais curto entre s e u na rede residual tem como último arco uv, assim:

S

f

(S,v)-Ô

f

(S,u)-l

<ôf.(s,u)-\ (peladesigualdade (2)0Sf{s,u)<Sr(s,u))

= ôr {S,v)-l-1 (pela igualdade (l)) = ôf,(S,v)-2,

contrariando a hipótese de õr(s,v)< ôf(S,v). Assim, concluiu-se que a suposição de que tal vértice v existe

é incorrecta. ■

Teorema 5.5.4.7: Se o algoritmo de Edmonds - Karp for executado usando um fluxo / numa rede N, com fonte S e destino T, então o número total de aumentos de fluxo executados é no máximo o(VE).

Antes de provar este teorema introduza-se a noção de aresta crítica.

Definição 5.5.4.8: Diz-se que uma aresta é crítica numa rede residual se num caminho que aumenta o fluxo

P, a capacidade residual de P é igual à capacidade residual da aresta.

Demonstração do Teorema 5.5.4.7:

Depois de se ter aumentado o fluxo ao longo de um caminho que aumenta o fluxo, qualquer aresta crítica no caminho desaparece da rede residual. Além disso, pelo menos uma aresta em qualquer caminho que aumenta o fluxo deve ser crítica. Mostra-se seguidamente que cada uma das \E\ arestas pode tornar-se crítica no máximo

\v\

— - 1 vezes. 2

Sejam u e v dois vértices ligados por uma aresta de E. Sabendo que os caminhos que aumentam o fluxo

são os caminhos mais curtos, quando a aresta uv é crítica pela primeira vez tem-se que:

õ

f

(s,v) = ô

f

(s,u)+\. (3)

Uma vez que o fluxo é aumentado, a aresta uv desaparece da rede residual, não aparecendo mais até que o fluxo desde u até v seja diminuído, o que acontecerá se vu aparecer num caminho que aumenta o fluxo. Se

/ ' for o fluxo da rede N quando tal acontece (ou seja, quando vu se torna crítica), então:

ô

r

{s,u) = ô

f

.(s,v)+l.

Tendo em conta que ôf(s,v)<ôf,(s,v) pelo Lema 5.5.4.6 tem-se que:

ôr{s,u) = ôf.(s,v)+\

^ Sf {S,v)+1 (pela desigualdade do Lema 5.5.4.6)

= ^ ( 5 ^ ) + 1 + 1 (pela igualdade (3))

= õf{s,u)+2.

Consequentemente, a partir do momento em que uv se torna crítica até ao momento em que se torna crítica outra vez, a distância de u a partir da origem aumenta pelo menos em 2. A distância de u, desde a origem, é inicialmente pelo menos 0. Os vértices intermédios num caminho mais curto desde S até u não podem conter S, u ou T, uma vez que uv no caminho crítico implica u * T, Então, até u se tornar inacessível a partir da origem, se isso acontecer a distância será no máximo \v\-2. Deste modo, a aresta uv

tomar-se-á crítica pelo menos — — = — - 1 vezes. Como existem O(E) pares de vértices que podem ter entre eles uma aresta numa rede residual, o número total de arestas críticas durante a execução do algoritmo de Edmonds - Karp será O(VE). Cada caminho que aumenta o fluxo terá pelo menos uma aresta crítica e o teorema decorre. ■

Como cada iteração do algoritmo de Ford - Fulkerson pode ser executada em tempo O(E) , quando o caminho que aumenta o fluxo é encontrado por uma procura BFS, o tempo de execução do algoritmo de Edmonds - Karp será oi^E2 ).

A sequência de acontecimentos considerada no algoritmo de Edmonds - Karp é:

fluxo / -> rede residual -» procura BFS -> caminho que aumenta o fluxo P -> novo fluxo / ' - > -> nova rede residual -> nova procura BFS -> novo caminho que aumenta o fluxo P '.

6. Demonstração do Teorema de Menger

Nesta secção demonstram-se as diversas formas do Teorema de Menger, usando o Teorema do Fluxo Máximo e Corte Mínimo. Comece-se por recordar este último teorema.

Teorema 5.3.14: (Teorema do Fluxo Máximo e Corte Mínimo) Em qualquer rede, o valor do fluxo máximo é igual à capacidade do corte mínimo.

Começa-se por demonstrar o Teorema de Menger para digrafos na forma de arcos.

Teorema 3.3.3: TEOREMA DE MENGER para digrafos (forma de arcos) Seja D um digrafo conexo e sejam

set vértices de D. O número máximo de caminhos - st de arcos disjuntos é igual ao número mínimo de arcos que separam s de t.

Demonstração:

Se existem k caminhos - st de arcos disjuntos, o número minimo de arcos que podem ser removidos tal que t não fique alcançável através de 5 é obviamente k. Assuma-se que existe um conjunto de k arcos no qual a sua remoção leva a que não existam caminhos de 5 para t e que exista um caminho de 5 para / obtido pela remoção de qualquer conjunto de k-\ arcos. Suponha-se que a capacidade de cada arco é 1. Deste modo, a capacidade do corte mínimo é k, logo, pelo Teorema do Fluxo Máximo e Corte Minimo, o valor do fluxo máximo é também k.

Use-se indução sobre k para mostrar que existem k caminhos de arcos disjuntos da fonte para o destino. Seja / o conjunto de todos os números positivos n tais que, se existe um fluxo de valor n, então existem n caminhos - st de arcos disjuntos. Claro que l e / , pois tem de existir pelos menos um caminho que una s a

t. Suponha-se que (k-\)e I e que o fluxo tem valor k . Então existe um caminho P de s para / ao longo

do qual um fluxo de uma unidade pode ser enviado. Se se removerem todos os arcos pertencentes a P,o valor do fluxo da rede resultante é {k-l). Pela hipótese de indução, existem (k-\) caminhos - st de arcos disjuntos. Juntando esses (k-\) caminhos com o caminho P, forma-se um conjunto de k caminhos de arcos disjuntos. Assim, kel. Logo, existem k caminhos de arcos disjuntos da fonte para o destino. ■

Teorema 3.2.4: TEOREMA DE MENGER para grafos (forma de arestas) Seja G um grafo conexo e sejam s e / vértices de G. O número máximo de caminhos - st de arestas disjuntas é igual ao número mínimo de arestas que separam s de t.

Demonstração:

Seja G um grafo conexo. Construa-se o digrafo associado D(G) substituindo cada aresta do grafo por

dois arcos, um em cada direcção. Apaguem-se todos os arcos dirigidos que entram em s e todos os arcos dirigidos que saem de t. O resultado será o digrafo G ' :

L > L

í>

Grafo G Digrafo D(G) Digrafo G '

Existe uma correspondência entre o conjunto dos caminhos dirigidos de s para t em G ' e 0 conjunto dos caminhos 5 e / e m G . Deste modo, o teorema decorre como consequência do Teorema de Menger para digrafos (forma de arcos), uma vez que:

o número máximo de caminhos - st de o número mínimo de arcos que separam 5 de arcos disjuntos em G' t em G',

e então:

o número máximo de caminhos - st de o número mínimo de arestas que separam s arestas disjuntas em G de t em G ,

como pretendido. ■

Teorema 3.3.7: TEOREMA DE MENGER para digrafos (forma de vértices) Seja D um digrafo conexo e sejam s e t vértices não adjacentes de D. O número máximo de caminhos - st de vértices disjuntos é igual

ao número mínimo de vértices que separam s de t.

Demonstração:

Seja D um digrafo conexo. Construa-se um outro digrafo associado D ', substituindo cada vértice v de

D (diferentes de s e t ) por dois vértices v, e v2 unidos por um arco (repare-se que fazer esta transformação

é o mesmo que afirmar que a rede tem restrições de capacidades nos vértices). Esquematizando:

i=>

Digrafo D'

Digrafo D

Todos os arcos dirigidos em D que entram num vértice v transformam-se em arcos dirigidos em D' que entram num vértice v, e todos os arcos dirigidos de D que saem de v transformam-se em arcos dirigidos de

D' que saem de um vértice v2.

Não é difícil ver que dois ou mais caminhos - st em D são vértices disjuntos, se e só se os seus correspondentes caminhos- st em D' são arcos disjuntos. Aplicando o Teorema de Menger para digrafos na forma de arcos em D', obtém-se o Teorema de Menger para digrafos na forma de vértices para D. m

Teorema 3.3.4: TEOREMA DE MENGER para grafos (forma de vértices) Seja G um grafo conexo e sejam

set vértices não adjacentes de G . O número máximo de caminhos - st de vértices disjuntos é igual ao número minimo de vértices que separam s de t.

Demonstração:

Seja G um grafo conexo construa-se o digrafo associado D(G) , substituindo cada aresta do grafo por

dois arcos, um em cada direcção. Apaguem-se todos os arcos dirigidos que entram em s e todos os arcos dirigidos que saem de t. O resultado será o digrafo G '. Existe uma correspondência entre o conjunto dos caminhos dirigidos de s para t em G ' e o conjunto dos caminhos s e / em G. Deste modo, o teorema decorre como consequência do Teorema de Menger para digrafos (forma de vértices), analogamente ao que foi visto anteriormente para o Teorema de Menger para grafos (forma de arestas) que resulta do Teorema de Menger para digrafos (forma de arcos). ■

7. Conclusão

Como vimos existem diversos problemas que podem ser modelados como um problema de fluxo máximo, abstraindo-se dos detalhes. Os métodos de resolução de problemas aqui apresentados têm uma quantidade muito grande de aplicação, podendo ser utilizados em diversas situações, reduzindo o problema inicial ao problema do fluxo máximo.

Bibliografia

[l] ALDOUS, J. & WILSON, R. (2000). Graphs and applications: an introductory approach. London. Springer.

[2] BONDY, J. & MURTY, U. (1978). Graph theory with applications. London. The Macmillian Press LTD.

[3] BUCKLEY, F. & LEWINTER, M. (2003). A friendly introduction to graph theory. New Jersey. Prentice Hall.

[4] CLARK, J. & HOLTON, D. (1991). A first look at graph theory. Singapore. World Scientific.

[5] CORMEN, T., LEISERSON, C, RIVEST, R. & STEIN, C. (2001). Introduction to algorithms. London. McGraw-Hill Book Company.

[6] GROSS, J. & YELLEN, J. (1999). Graph theory and its applications. Boca Raton. CRC Press.

[7] GROSS, J. & YELLEN, J. (2004). Handbook of Graph Theory. Boca Raton. CRC Press.

[8] JUNGNICKEL, D. (1999). Graphs, networks and algorithms. Berlin. Springer.

[9] THE OPEN UNIVERSITY (2003). Networks, Vol. 1: Networks Flows. Milton Keyes. The Open University.

[lO] THE OPEN UNIVERSITY (2005). Graphs, Vol. 4: Graphs and computing. Milton Keyes. The Open University.

No documento Redes : fluxo máximo e corte mínimo (páginas 90-98)

Documentos relacionados