Sunteți pe pagina 1din 18

Optimizao Combinatria Universidade de Coimbra Professor Joo Soares

rvore Geradora Mnima 18 pginas 23 de Janeiro de 2008

rvore Geradora Mnima 1 Conceitos bsicos

Uma empresa possui escritrios espalhados pela cidade e pretende construir uma linha privada de comunicao entre esses escritrios. Para cada par de escritrios v e w pode ser possvel ou no uma ligao directa de comunicao (cabos fsicos ligando os dois escritrios). Nos casos em que possvel, admita-se conhecido o custo (positivo) cvw da efectiva construo dessa linha de comunicao. A empresa pretende identicar quais so as linhas de comunicao que deve construir, de forma a que qualquer par de escritrios possa comunicar entre si (ainda que de forma indirecta, atravs de outros escritrios) e de forma a que o custo total de construo seja mnimo. A situao descrita no pargrafo anterior pode ser representada por um diagrama como o da Figura 1, onde um ponto identica um escritrio e uma linha ligando um par de pontos signica que possvel construir uma ligao directa de comunicao entre os dois escritrios. O custo associado a cada ligao directa encontra-se junto da respectiva linha.

Figura 1: Rede de potenciais ligaes directas e respectivos custos. Vamos descrever este problema de optimizao usando a linguagem dos grafos - aqui, bem como em outros textos de apoio, acompanharemos a notao de (West, 1996). Aquilo que se pretende a soluo para o seguinte problema: dado um grafo G tal que a cada

Optimizao Combinatria

aresta e est associado um custo positivo ce , pretende-se encontrar um subgrafo H conexo e gerador cuja soma dos custos das suas arestas seja mnima. Por simplicidade, chamaremos soma dos custos das arestas de H o custo de H. Lema 1 Se e uv aresta de um ciclo num grafo G ento existe um caminho-(u, v) em G\e. Prova: Seja C um ciclo em G e e uv uma aresta de C. Ento C = P/e sendo P um caminho-(u, v) em C que no usa a aresta e. Ento, P subgrafo de G\e. Conclumos que P um caminho-(u, v) em G\e.

Por isso, se removermos uma aresta de um ciclo num grafo conexo, o novo grafo permanece conexo. Em particular, isso implica que existe uma soluo para o problema proposto antes que denida por um grafo sem ciclos. Um grafo sem ciclos diz-se uma oresta. Uma oresta conexa chama-se uma rvore. Em suma, o problema proposto um caso particular do seguinte problema de optimizao: rvore Geradora Mnima: Dado um grafo G conexo tal que a cada aresta e est associada um custo ce R, encontrar uma rvore geradora que tenha custo total mnimo. Note-se que o Lema 1 permite armar que todo grafo conexo possui uma rvore geradora. Por isso, o problema da rvore Geradora Mnima possui sempre soluo. Iremos explicar como se resolve este problema e uma observao fundamental para o nosso desenvolvimento nesse sentido. A sua demonstrao ser analisada nos exerccios, bem como outros factos relacionados com rvores. Lema 2 Seja G um grafo com n vrtices e H um subgrafo conexo. Ento, H uma rvore geradora se e s se H tem n 1 arestas.

Exerccios:
1. (Primeira parte da prova do Lema 2) Seja H = (V, T ) uma rvore com n vrtices. a. Uma folha um vrtice de um grafo no qual incide uma nica aresta. Mostre que, se n 2 ento H tem pelo menos duas folhas.

rvore Geradora Mnima


b. Mostre que, se v folha de H ento H\v rvore. c. Conclua que H tem n 1 arestas. Soluo:

a. Seja H = (V, T ) uma rvore com pelo menos dois vrtices e seja P um caminho maximal1 em H. P um caminho-(u, v) com u, v V distintos pois H tem pelo menos uma aresta. Nem u nem v podem ter vrtices adjacentes para alm daquele que lhes adjacente em P (caso contrrio, existiria um ciclo em H ou P no seria maximal). Por isso, u e v so folhas de H. b. Seja v uma folha de H. Para todo u, w V \{v} distintos, o caminho-(u, w) em H no passa por v (porque no existiria forma de prosseguir para alm de v). Por isso, esse caminho(u, w) permanece caminho-(u, w) em H\v. Conclumos que H\v conexo e acclico (porque H tambm era acclico). c. Se n = 1 ento o resultado trivial. Por isso, suponhamos que n 2. Vimos que H tem folhas. Repetindo n 1 vezes o processo de remoo de uma folha obtemos uma rvore que tem um nico vrtice (e nenhuma aresta). Portanto, foram removidas n 1 arestas pelo que |T | = n 1.

2. (Segunda parte da prova do Lema 2) Seja G = (V, E) um grafo com n vrtices. Mostre que, as seguintes proposies so equivalentes: a. G conexo e no tem ciclos. b. G conexo e tem n 1 arestas. c. G tem n 1 arestas e no tem ciclos. d. Para todo u, v V existe exactamente um caminho-(u, v) em G. Soluo: Primeiro, demonstramos a equivalncia entre a,b e c. Pelo resultado do exerccio 1, se G conexo e no tem ciclos (i.e., a denio de rvore adoptada) ento G tem n 1 arestas. Por isso, a implica b. Seja G um grafo conexo com n1 arestas. Suponhamos que G contm um ciclo C. Ento, pelo Lema 1, para uma qualquer aresta e do ciclo C, o grafo G\e permanece conexo. Repetindo este procedimento as vezes que forem necessrias obtemos um grafo G sem ciclos que, obviamente, satisfaz E(G ) < E(G) = n 1. Pelo resultado do exerccio 1, o nmero de arestas de G V (G ) 1 = V (G) 1 = n 1. Chegamos a um absurdo. Por isso, b implica c. Seja G um grafo acclico com n 1 arestas e sejam G1 , G2 , . . . , Gk as componentes de G. Pelo resultado do exerccio 1,
k k k

n1=
i=1
1

|E(Gi )| =
i=1

(|V (Gi )| 1) =
i=1

|V (Gi )| k = n k.

i.e., no est contido num caminho maior.

Optimizao Combinatria

Conclumos que k = 1, i.e., G conexo. Por isso, c implica a. Claramente, a implica d. Seja G um grafo que verique d. Ento, G conexo e acclico pois caso contrrio existiria mais do que um caminho entre dois dos vrtices. Por isso, d implica a.

Uma primeira consequncia do Lema 2 o lema seguinte. Lema 3 Seja G um grafo e seja H uma rvore geradora. Para toda a aresta e vw E(G) \ E(H) e para toda a aresta f no caminho-(v, w) em H, o grafo H\f /e uma rvore geradora. Prova: O grafo H/e tem um nico ciclo e, pelo Lema 1, H/e\f = H\f /e conexo e tem n 1 arestas. Pelo Lema 2, H uma rvore.

Exerccios:
3. Seja H = (V, T ) uma rvore e e vw T . Mostre que H\e possui exactamente duas componentes, uma que possui o vrtice v e a outra que possui o vrtice w. 4. Seja G = (V, E) um grafo. Mostre que, se H e H so rvores geradoras e e E(H) \ E(H ), ento existe e E(H ) \ E(H), tal que H\e/e rvore geradora. 5. Considere o grafo da Figura 2. Os nmeros representam custos de arestas que so conhecidos. As restantes arestas possuem custos desconhecidos. A negrito encontram-se as arestas de uma rvore geradora. Demonstre que a rvore geradora apresentada no pode ser a rvore geradora mnima e encontre uma com custo menor.

surpreendente que algoritmos com uma descrio to simples consigam resolver o problema da rvore Geradora Mnima. Vamos descrever e analisar dois algoritmos que se baseiam ambos num princpio greedy 2 em cada passo do algoritmo faz-se uma escolha denitiva de uma aresta comparando apenas os custos de um determinado conjunto de arestas.
2

A traduo deste termo no consensual.

rvore Geradora Mnima

Figura 2: Um grafo com alguns custos nas arestas desconhecidos. Input: Inicializao: Iterao: Seja G = (V, E) um grafo conexo com custos ce , e E. Faa-se H := (V, ). Seja e = arg min{ce : e E, H/e oresta}. Faa-se H := H/. e Se |E(H)| = |V | 1 ento parar seno prxima Iterao. Figura 3: Algoritmo de Kruskal. Se aplicarmos o Algoritmo de Kruskal, descrito na Figura 3, ao grafo da Figura 1 ento as arestas so escolhidas na seguinte ordem gk, gh, ab, af, ad, dg.

Este mtodo foi proposto por (Kruskal, 1956). Um segundo algoritmo conhecido por Algoritmo de Prim foi proposto por (Prim, 1957). Se aplicarmos o Algoritmo de Prim, descrito na Figura 4, ao grafo da Figura 1 comeando com r = a ento as arestas so escolhidas na seguinte ordem ab, af, ad, dg, gk, gh.

Seguidamente, vamos provar a validade destes dois algoritmos na resoluo do problema da rvore Geradora Mnima. Comeamos com dois resultados fundamentais.

Optimizao Combinatria

Input: Inicializaco: Iterao:

Seja G = (V, E) um grafo conexo com custos ce , e E. Seja r V , qualquer. Faa-se H := ({r}, ). Seja e = arg min{ce : e E, H/e rvore}. Faa-se H := H/. e Se |E(H)| = |V | 1 ento parar seno prxima Iterao. Figura 4: Mtodo de Prim.

Teorema 1 Um grafo G conexo se e s se no existe um subconjunto no trivial de vrtices A tal que (A) = . Prova: Se (A) = para algum subconjunto no trivial de vrtices A ento no existe caminho entre algum vrtice u A e algum vrtice v V \ A. Por isso, G no conexo. Para provar o recproco, suponhamos que G no conexo. Ento, existem dois vrtices distintos u e w para os quais no existe caminho-(u, w). Seja A o conjunto de todos os vrtices v para os quais existe caminho-(u, v). Portanto, em particular, u A e w V \ A e, por isso, = A V . Falta provar que (A) = . Suponhamos, por absurdo, que existe pq (A) com p A e q V \ A. Ento, existe caminho de u para q, o que absurdo pois q V \ A.

Teorema 2 Um conjunto de arestas D um corte minimal de um grafo G se e s se existe um subconjunto no trivial de vrtices A tal que D = (A). Se D um corte minimal de um grafo G ento, para toda a aresta e uv D, no existe caminho-(u, v) em G \ D. O nosso prximo resultado servir para concluir que ambos os algoritmos esto correctos. Dizemos que um subgrafo H de um grafo G expansvel a uma rvore geradora mnima se H subgrafo de alguma rvore geradora mnima.

rvore Geradora Mnima

Teorema 3 Seja G = (V, E) um grafo conexo, H um subgrafo de G e D um corte minimal de G satisfazendo D E(H) = . Se H expansvel a uma rvore geradora mnima e e aresta de custo mnimo no conjunto D ento H/e expansvel a uma rvore geradora mnima. Prova: Seja H uma rvore geradora mnima tal que E(H) E(H ). A existncia est assegurada porque H expansvel a uma rvore geradora mnima. Se e D E(H ) ento H/e , claramente, expansvel a uma rvore geradora mnima. Por isso, suponhamos que e vw D \ E(H ) com v, w distintos. Seja P o caminho-(v, w) em H . Como no existe caminho-(v, w) em G\D ento existe uma aresta f de P tal que f D. Por denio de e, cf ce . Pelo Lema 3, o grafo H \f /e ainda uma rvore geradora mnima. Como D E(H) = , ento f E(H). Conclumos que H/e expansvel a uma rvore geradora mnima.

Note-se que ambos os algoritmos Kruskal e Prim terminam ao m de um nmero nito de passos porque em cada iterao uma nova aresta inserida no subgrafo H e em ambos os casos esse subgrafo mantido uma oresta. Portanto, ambos os algoritmos no podem fazer mais do que |V | 1 iteraes. Teorema 4 O algoritmo de Prim encontra uma rvore geradora mnima. Prova: No incio do algoritmo, o subgrafo H trivialmente expansvel a uma rvore geradora mnima. Seguidamente, provamos que, se no incio de uma dada iterao o subgrafo H expansvel a uma rvore geradora mnima ento no nal dessa iterao tambm o . Vejamos que, no incio de cada iterao do Algoritmo de Prim, o conjunto (V (H)) precisamente o conjunto de arestas e E tais que H/e permanece uma rvore. Por um lado, toda a aresta e E tal que H/e rvore tem de pertencer a (V (H)) porque H uma rvore. Por outro lado, a insero de uma aresta e (V (H)) no pode criar um ciclo em H/e porque, pelo Lema 1, ambas as extremidades de e teriam de estar em V (H)) , nem pode tornar H/e desconexo porque ento nenhuma das extremidades de e estaria em V (H).

Optimizao Combinatria Portanto, o algoritmo escolhe a aresta e de custo mnimo em (V (H)). Estando nas

condies do Teorema 3 para D (v(H)), conclumos que H/ expansvel a uma rvore e geradora mnima. Aps |V | 1 iteraes do algoritmo de Prim, (V (H)) = . Isso signica que H rvore geradora. Sendo expansvel a rvore geradora mnima, H rvore geradora mnima.

Consideremos agora o algoritmo de Kruskal. Para cada vrtice v do grafo G, denotese por Cv o conjunto de vrtices w para os quais existe caminho-(v, w) em G. Como simples de vericar, v Cw se e s se w Cv . Os subgrafos de G da forma G[Cv ] so as componentes (conexas) de G. Obviamente, se G conexo ento tem apenas uma componente. Teorema 5 O algoritmo de Kruskal encontra uma rvore geradora mnima. Prova: No incio do algoritmo, o subgrafo H trivialmente expansvel a uma rvore geradora mnima. Seguidamente, provamos que, se no incio de uma dada iterao o subgrafo H expansvel a uma rvore geradora mnima ento no nal dessa iterao tambm o . Numa dada iterao do algoritmo de Kruskal, sejam S1 , S2 , . . . , Sk os conjuntos no vazios de vrtices das componentes de H. Pelo Lema 1, f E candidato a ser inserido em H se e s se as extremidades de f esto em conjuntos distintos Si . Por isso, o conjunto das arestas candidatas a serem inseridas em H o conjunto k (Si ). A aresta e escolhida i=1 pelo algoritmo a aresta de menor custo que pertence ao corte D (Si ), para algum i. Como D E(H) = , conclumos que H/ expansvel a uma rvore geradora mnima. e Aps |V | 1 iteraes do algoritmo de Kruskal, k (Si ) = . Como G conexo, isso i=1 signica que H rvore geradora. Por isso, no nal H uma rvore geradora mnima.

Exerccios:
6. Determine a rvore geradora mnima para o grafo da Figura 5 usando: (a) o Algoritmo de Kruskal; (b) o Algoritmo de Prim, indicando a sua escolha do vrtice inicial.

rvore Geradora Mnima


7. Demonstre o Teorema 2. Soluo:

a. Por absurdo, suponhamos que existe caminho-(u, v) em G \ D. Como G \ D desconexo ento existem dois vrtices i e j para os quais no existe caminho-(i, j) (em G\D). Mais, no pode existir simultaneamente caminho-(v, i) e caminho-(v, j) pois, caso contrrio existiria caminho-(i, j). Sem perda de generalidade, no existe caminho-(v, i) o que, em particular, tambm implica que no existe caminho-(u, i) atendendo existncia de caminho-(u, v). Portanto, D \ e ainda um corte de D uma vez que G \ (D \ e) ainda desconexo, pois neste grafo continua a no existir caminho-(v, i). Chegamos a um absurdo porque D um corte minimal. b. Se D = ento G desconexo. Pelo Teorema 1, existe um subconjunto no trivial de vrtices A tal que (A) = = D. Se D = ento existe e uw D. Seja A o conjunto dos vrtices v para os quais existe caminho-(u, v) em G \ D. Note-se que A = porque u A e A = V porque w A. Por denio de A, (A) D. Mas, (A) um corte de G e D um corte minimal de G. Por isso, D = (A).

8. Seja G = (V, E) um grafo com custos ce , e E, e seja H = (V, T ) uma rvore geradora. Mostre que, H rvore geradora mnima se e s se para toda a aresta e T tem-se f (Se ) cf ce , onde Se denota o conjunto de vrtices de uma das componentes de H\e. 9. Seja G = (V, E) um grafo com custos ce , e E, e seja H = (V, T ) uma rvore geradora. Mostre que, H rvore geradora mnima se e s se para toda a aresta e E \ T tem-se f Ce cf ce , onde Ce denota o conjunto de arestas do nico ciclo em H/e.

Figura 5: Um grafo com custos nas arestas.

10

Optimizao Combinatria

10. (rvore Geradora Minmax) Dado um grafo G conexo tal que a cada aresta e de G est associado um custo ce R, pretende-se encontrar uma rvore geradora na qual seja mnimo o mximo dos custos das suas arestas. Mostre que toda a rvore geradora mnima resolve este problema.

1.1

Ecincia dos Algoritmos de Prim e Kruskal

Comeamos com a explicao da maneira standard de representar um grafo G = (V, E) com n vrtices e m arestas no computador. Mantemos para cada vrtice v V uma lista Lv das arestas que incidem em v e com indicao da outra extremidade. Quando o grafo simples, a lista Lv contm apenas a indicao das extremidades. Se existe um custo associado a cada aresta, o seu valor armazenado tambm junto com a informao da aresta. Portanto, cada aresta e vw aparece nas duas listas Lv e Lw . Vejamos como dever car a implementao do Algoritmo de Prim. Tal como observmos na demonstrao do Teorema 4, em cada iterao do Algoritmo de Prim identica-se a aresta que tem custo mnimo no conjunto das arestas (V (H)). Como que isto se deve implementar? Armazenamos V (H) usando um vector caracterstico x (i.e., xv = 1 se v V (H) e xv = 0 se v V (H)). Em cada iterao, percorremos o conjunto de arestas E averiguando se cada aresta e uv (V (H)) para isso, basta averiguar se xu = xv e procurando a aresta e de custo menor. Por isso, a aresta e = vw pode ser determinada em tempo proporcional a O(m). Depois, actualizamos o vector x fazendo xv := 1 se v for a extremidade de e tal que xv = 0. Portanto, o Algoritmo Prim funciona em tempo proporcional a O(nm). Vejamos uma implementao melhorada, e at com tempo de execuo inferior. Armazenamos para cada vrtice v V (H), uma aresta h(v) que a aresta que liga v a um vrtice de H que tem custo menor a inicializao de h requer tempo proporcional a O(m). Portanto, a aresta e escolhida usando no mximo tempo proporcional a O(n). Mas, as arestas h(v), para v V (H), mudam de iterao para iterao. Suponhamos que, numa dada iterao, w foi acrescentado a V (H) e u permaneceu em V \ V (H). Ento, h(u) deve mudar se existe alguma aresta e wu E tal que ce < ch(u) . Podemos efectuar todas estas

rvore Geradora Mnima

11

alteraes a h() percorrendo a lista Lw , o que signica tempo proporcional a O(n). Por isso, esta implementao do Algoritmo Prim requer n 1 iteraes de passos que requerem tempo proporcional a O(n). Por isso, esta implementao funciona em tempo proporcional a O(m + n2 ) = O(n2 ). Mais melhoramentos so sugeridos em (Tarjan, 1983). Voltamos a nossa ateno para a implementao do Algoritmo de Kruskal. A implementao desenrola-se em duas fases. Numa primeira fase ordenamos o conjunto das arestas por ordem crescente do valor do seu custo. Isto pode ser feito em tempo proporcional a O(m ln m) por um algoritmo de ordenao como o heapsort, por exemplo veja-se o exerccio 11. Numa segunda fase, desenrolam-se as iteraes, em cada uma das quais, se procura identicar a aresta que tem custo mnimo no conjunto das arestas k (Si ), sendo i=1 S1 , S2 , . . . , Sk os conjuntos de vrtices das componentes de H tal como observmos na demonstrao do Teorema 5. Portanto, todas estas iteraes podem ser efectuadas percorrendo as arestas pela ordem estipulada na primeira fase e inserindo em H sempre que uma aresta tiver as suas extremidades em conjuntos Si distintos. Como que essa ideia se implementa? Durante a fase das iteraes, mantemos o conjunto V particionado em blocos: os conjuntos S1 , S2 , . . . , Sk . Precisamos manter uma lista dos blocos e para cada bloco precisamos manter uma lista dos respectivos vrtices. Para alm disso, precisamos manter um vector b que indica para cada vrtice qual o bloco a que esse vrtice pertence. Por exemplo, b(v) = k signica que o vrtice v pertence ao bloco k. Assim, uma aresta e vw pertence a k (Si ) se e s se b(v) = b(w). Seja e = vw i=1 uma aresta seleccionada para ser inserida em H (e, portanto, b(v) = b(w)). A actualizao dos valores das estruturas de dados feita da seguinte modo. Primeiro, reposiciona-se a lista dos vrtices do bloco b(v) na cauda da lista dos vrtices do bloco b(w) isto pode ser feito em O(1) operaes. Depois, preciso actualizar b(j) := b(w) para todos os vrtices j que pertenciam ao bloco b(v). Isto requer no mximo n 1 atribuies. Portanto, o algoritmo funciona em tempo proporcional a O(m + n2 ) = O(n2 ) acrescido do tempo para ordenar as arestas. Na prtica, mantemos tambm a cardinalidade de cada bloco, de forma a que seja o bloco menor a ser acrescentado ao bloco maior e no o contrrio. Mas este procedimento no tem inuncia na complexidade computacional. Mais melhoramentos so sugeridos em (Tarjan, 1983).

12 Exerccios:

Optimizao Combinatria

11. (algoritmo de ordenao) Descreva um algoritmo que ordene n nmeros em tempo proporcional a O(n log n). Soluo: O Algoritmo Heapsort requer tempo proporcional a O(n log n) (Cormen et al., 2001). Uma Heap uma rvore binria completa e tal que toda a pesquisa em profundidade visita os ns por ordem no decrescente do seu valor (aqui estamos a usar terminologia de Algoritmos e Estruturas de Dados). A Figura 6 ilustra uma Heap. Portanto, construir uma Heap para os n nmeros requer tempo proporcional a O(n log n) porque existem log2 (n) nveis e inserir um nmero na posio correcta requer no mximo log2 (n) comparaes. A rvore pode ser armazenada como um vector porque o facto de ela ser completa permite identicar precisamente a posio de cada n da rvore nesse vector. Depois de ter a Heap construda a raiz contm o menor dos n nmeros. Remova-se esse elemento da rvore substituindo-o por uma qualquer folha (i.e., um n do ltimo nvel). Neste momento temos uma rvore binria completa. Falta apenas colocar na posio correcta aquele elemento que se colocou como raiz, mas isto requer no mximo 2 log2 (n) comparaes. Portanto, para ordenar os n nmeros precisamos de tempo proporcional a O(n log n).

Figura 6: Uma Heap.


12. Mostre que, em tempo proporcional a O(m) pode encontrar um rvore geradora ou concluir que no existe. 13. a. Mostre que, na implementao descrita para o Algoritmo de Kruskal, para cada vrtice v V , o valor de b(v) muda no mximo log n vezes. b. Como que esse conhecimento pode permitir acelerar o algoritmo?

rvore Geradora Mnima

13

1.2

rvore Geradora Mnima e Optimizao Linear

O problema da rvore Geradora Mnima pode tambm formular-se como um problema de optimizao linear. Dito de outro modo, para todo o problema da rvore Geradora Mnima existe um problema de optimizao linear para o qual as rvores geradoras mnimas so solues ptimas. Considere o seguinte problema de optimizao linear, onde x() denota a soma de todas as componentes xe com e em , Minimizar
eE

ce x e x(E(S)) |S| 1, x(E) = |V | 1, xe 0, para todo e E. para todo S V tal que = S = V,

sujeito a

(1)

Vejamos que, todo o vector caracterstico de uma rvore geradora admissvel em (1). Seja H = (V, T ) uma rvore geradora e seja x0 o vector caracterstico de T (em E). Para todo o subconjunto no trivial de vrtices S, x0 (E(S)) = |E(S) T | |S| 1 porque H no contm ciclos. Alm disso, x0 0 e x0 (E) = |V | 1. Assim, conclumos que x0 admissvel em (1). Alm disso, ce x 0 = e
eE eT

ce = c(T ),

o que signica que o valor na funo objectivo em x0 igual ao custo total de H. Tudo isto permite-nos concluir que o valor ptimo do problema linear (1) dene um limite inferior para o custo da rvore geradora mnima. (Edmonds, 1971) estabeleceu que esses dois valores so, na verdade, iguais. Teorema 6 Seja G = (V, E) um grafo conexo com custos ce , e E. Se x0 o vector caracterstico de uma rvore geradora mnima ento x0 soluo ptima em (1). Prova: Comeamos por reescrever (1) de forma equivalente. Para A E, denote-se por (A) o nmero de componentes do subgrafo (V, A) note-se que se trata de um subgrafo

14 gerador. Considere o problema de optimizao linear Minimizar


eE

Optimizao Combinatria

ce x e x(A) |V | (A), x(E) = |V | 1, xe 0, para todo e E. para todo A E tal que = A = E,

sujeito a

(2)

Para concluir que (1) e (2) so equivalentes mostraremos que as regies admissveis de ambos coincidem. Seja x uma qualquer soluo admissvel em (2) e seja S um qualquer subconjunto no trivial de vrtices. O conjunto de arestas A = E(S) tal que A E e = A = E. Atendendo admissibilidade de x em (2), conclumos que xe |V | k(E(S)) |V | (|V \ S| + 1) = |S| 1.
eE(S)

Portanto, x admissvel em (1). Reciprocamente, seja x uma qualquer soluo admissvel em (1) e seja A um qualquer subconjunto no trivial de arestas. Sejam S1 , S2 , . . . , Sk(A) os conjuntos de vrtices das componentes do grafo (V, A). Atendendo admissibilidade de x em (1), conclumos que
k(A) k(A)

xe
eA i=1 eE(Si )

xe
i=1

(|Si | 1) = |V | k(A).

Portanto, x admissvel em (2). Fica assim concluda a igualdade entre as regies admissveis de (1) e de (2). Por isso, os dois problemas so equivalentes. Seja H = (V, T ) a rvore geradora encontrada pelo Algoritmo de Kruskal. O seu vector caracterstico x0 , como vimos, admissvel em (1), e em (2). Vamos mostrar que x0 soluo ptima para (2) atravs do Teorema da Complementaridade de Folgas da optimizao linear. O dual do problema linear (2) Maximizar
AE : A=

(|V | (A)) yA y A ce ,
AE : eA

sujeito a yA 0,

para todo e E (3) para todo A E tal que = A = E.

rvore Geradora Mnima

15

(note que yE no tem restrio de sinal). Suponhamos que o algoritmo de Kruskal analisou as arestas de G pela ordem e1 , e2 , . . . , em (de acordo com a implementao descrita na seco anterior). Em particular, aps analisar a i-sima aresta dessa lista analismos todas as arestas em Ri {e1 , e2 , . . . , ei } e o algoritmo exibe a oresta (V, T Ri )
0 Agora, considere-se uma soluo dual y 0 denida do seguinte modo: yRm = cem e 0 yRi = cei cei+1 ,

para cada i = 1, 2, . . . , m 1, sendo zero nas restantes componentes no denidas. Devido forma como as arestas foram ordenadas temos que yA 0 para todo o subconjunto no trivial de arestas denotado por A. Alm disso, para toda a aresta e ei ,
m 0 yA AE : eA m1 0 yRj j=i

=
j=i

cej cej+1 + cem = cei ce .

Portanto, dispomos de soluo y 0 dual admissvel, bem como uma soluo x0 primal admissvel. Vamos agora mostrar que se verica a complementaridade de folgas. Por um lado, sempre que x0 > 0 a correspondente restrio do dual verica-se trivialmente como igualdade e
0 em y 0 . Por outro lado, seja A um subconjunto no trivial de arestas tal que yA < 0. Isso

s pode acontecer quando A = Ri , para algum i {1, 2, . . . , m 1}. Se a correspodente restrio no primal for satisfeita como desigualdade estrita, i.e., x0 (Ri ) < |V | (Ri ) ento isso signica que a oresta (V, T Ri ) tem menos arestas que a maior oresta contida no grafo (V, Ri ) (que tem, precisamente, |V | (Ri ) arestas). Portanto, existe uma aresta em Ri cuja insero no subgrafo (V, T Ri ) faz decrescer o seu nmero de componentes. Mas, uma tal aresta tem ambas as extremidades em duas componentes diferentes de (V, T Ri ) e, por isso, deveria ter sido inserida antes pelo Algoritmo de Kruskal e no o foi, o que absurdo. Por reduo ao absurdo conclumos que x0 (A) = |V | (A). Conclumos que x0 e y 0 satisfazem as condies de complementaridade de folgas pelo que so solues ptimas para os problemas (2) e (3), respectivamente. Como as regies admissveis de (1) e (2) coincidem, conclumos que x0 tambm soluo ptima para (1). Como todo o vector caracterstico de uma rvore geradora mnima admissvel para (1) e dene um valor na funo objectivo igual da soluo encontrada pelo algoritmo de

16

Optimizao Combinatria

Kruskal conclumos que o vector caracterstico de toda a rvore geradora mnima soluo ptima em (1).

Note que na demonstrao deste teorema no se usou o facto de que a rvore geradora encontrada pelo Algoritmo de Kruskal mnima. Por esse facto, o Teorema 6 estabelece tambm uma nova demonstrao da correco do Algoritmo de Kruskal. Mais, o Teorema 6 estabelece que existe sempre uma soluo ptima para (1) que vector caracterstico de uma rvore geradora. Portanto, os pontos extremos do poliedro denido pela regio admissvel de (1) so os vectores caractersticos de rvores geradoras ver exerccio 17. Exerccios:
14. Seja G = (V, E) um grafo com custos ce , e E. Neste exerccio, vamos considerar uma outra formulao para o problema da rvore Geradora Mnima no to til quanto as anteriores. Considere o seguinte problema linear Minimizar ce xe eE sujeito a xe 1, para todo S V tal que = S = V, (4) e(S) xe = |V | 1, eE xe 0, para todo e E. a. Seja H = (V, T ) um subgrafo de G = (V, E). Mostre que o vector caracterstico de T em E admissvel em (4) se e s se H rvore geradora. b. Encontre um exemplo (G, c), no qual nenhuma soluo ptima de (4) vector caracterstico do conjunto de arestas de uma rvore geradora. 15. Seja G = (V, E) um grafo com custos c e seja H = (V, T ) uma rvore geradora mnima. a. Quanto pode diminuir ao custo de cada aresta e T at que H deixe de ser uma rvore geradora mnima? b. Suponha que H foi encontrada pelo Algoritmo de Kruskal. Considere que um conjunto de novas arestas E acrescentado a G. Mostre como obter uma nova rvore geradora mnima a partir do conhecimento de H. 16. (Reoptimizao) Seja G = (V, E) um grafo com custos ce , e E. Seja H = (V, T ) a rvore geradora mnima relativamente a um outro conjunto de custos ce , e E. Mostre como pode esse conhecimento ajudar a descobrir a rvore geradora mnima relativamente a c quando c c.

rvore Geradora Mnima


17. Seja G = (V, E) e H = (V, T ) uma rvore geradora. a. Atribua custos s arestas de G de forma que H seja a nica rvore geradora mnima.

17

b. Para o vector c determinado na alnea anterior, mostre que a soluo ptima de (1) nica. c. Conclua que o conjunto dos vectores caractersticos de rvores geradoras e o conjunto dos pontos extremos da regio admissvel de (1) so o mesmo conjunto.

Para a elaborao deste texto de apoio acompanhmos (Cook et al., 1998, Captulo 2) e outros textos dispersos.

Referncias Bibliogrcas
Cook, William J., Cunningham, William H., Pulleyblank, William R., & Schrijver, Alexander. 1998. Combinatorial optimization. Wiley-Interscience Series in Discrete Mathematics and Optimization. New York: John Wiley & Sons Inc. A Wiley-Interscience Publication. Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L., & Stein, Clifford. 2001. Introduction to algorithms. Second edn. Cambridge, MA: MIT Press. Edmonds, Jack. 1971. Matroids and the greedy algorithm. Math. Programming, 1, 127136. Kruskal, Jr., Joseph B. 1956. On the shortest spanning subtree of a graph and the traveling salesman problem. Proc. Amer. Math. Soc., 7, 4850. Prim, R. C. 1957. Shortest connection networks and some generalizations. Bell System Technical Journal, 36, 13891401. Tarjan, Robert Endre. 1983. Data structures and network algorithms. CBMS-NSF Regional Conference Series in Applied Mathematics, vol. 44. Philadelphia, PA: Society for Industrial and Applied Mathematics (SIAM).

18

Optimizao Combinatria

West, Douglas B. 1996. Introduction to graph theory. Upper Saddle River, NJ: Prentice Hall Inc.

S-ar putea să vă placă și