Vous êtes sur la page 1sur 16

Optimizao Combinatria

Universidade de Coimbra Professor Joo Soares

rvore Geradora Mnima 16 pginas 1 de Maro de 2009

rvore Geradora Mnima 1 Conceitos bsicos


Uma empresa possui escritrios espalhados pela cidade e pretende construir uma linha privada de comunicao entre esses escritrios. Entre cada par de escritrios

pode

ser possvel ou no uma ligao directa de comunicao (cabos fsicos ligando os dois escritrios). Nos casos em que possvel, admite-se conhecido o custo (positivo) efectiva construo dessa linha de comunicao.

cvw

da

A empresa pretende identicar quais

so as linhas de comunicao que deve construir, de forma a que entre um qualquer par de escritrios possa estabelecer-se comunicao (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). Dado um grafo

G tal que a cada aresta e est associado um custo positivo ce , pretende-se encon-

Optimizao Combinatria
H
conexo e gerador cuja soma dos custos das suas arestas seja mnima.

trar um subgrafo

Por simplicidade, chamaremos soma dos custos das arestas de Do prximo lema decorrer que, se um grafo sem ciclos.

o custo de

H.

for um grafo conexo ento o subgrafo procurado

Lema 1 Se e uv aresta de um ciclo num grafo G ento existe um caminho-(u, v) em G\e. Prova:
P
Seja

um ciclo em

e uv

uma aresta de

C.

Ento

C = P/e G\e.

sendo

um

caminho-(u, v) em

que no usa a aresta

e.

Ento,

subgrafo de

Conclumos que

um caminho-(u, v) em

G\e.

Por isso, se removermos uma aresta de um ciclo num grafo conexo, o novo grafo permanece conexo (pense um pouco. Porque ser?). Em particular, e atendendo no negatividade dos custos, 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 conexa chama-se uma

oresta .

Uma oresta

rvore .

Em suma, o problema proposto um caso particular do

seguinte problema de optimizao:

rvore Geradora Mnima:


ciada um custo

Dado um grafo

conexo tal que a cada aresta

est asso-

ce R, encontrar uma rvore geradora que tenha custo total mnimo.

Note-se que o Lema 1 tambm 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.

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. Seja H = (V, T ) uma rvore com n vrtices. Uma incide uma nica aresta.
folha

um vrtice de um grafo no qual

rvore Geradora Mnima


a. Mostre que, se n 2 ento H tem pelo menos duas folhas. b. Mostre que, se v folha de H ento H\v rvore e conclua que H tem n 1 arestas.

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.
3. Use os resultados dos exerccios anteriores para demonstrar o Lema 2.

Uma primeira consequncia do Lema 2 a 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:
n1
O grafo

H/e

tem um nico ciclo e, pelo Lema 1,

H/e\f = H\f /e

conexo e tem

arestas. Pelo Lema 2,

uma rvore.

Exerccios:
componentes, uma que possui o vrtice v e a outra que possui o vrtice w.
4. Seja H = (V, T ) uma rvore e seja e vw T . Mostre que H\e possui exactamente duas

5. 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. 6. 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.

Optimizao Combinatria

Figura 2: Um grafo com alguns custos nas arestas desconhecidos.

surpreendente que algoritmos com uma descrio to simples consigam resolver o problema da rvore Geradora Mnima. se baseiam ambos num princpio denitiva de uma aresta. Vamos descrever e analisar dois algoritmos que  em cada passo do algoritmo faz-se a escolha

greedy 1

Input: Inicializao: Iterao:

Seja

G = (V, E)

um grafo conexo com custos

ce , e E .

Faa-se Seja

H := (V, ).
oresta}.

e = arg min{ce : e E, H/e H := H/. e

Faa-se Se

|E(H)| = |V | 1
parar prxima Iterao.

ento seno

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,
1A

gh,

ab,

af,

ad,

dg.

traduo deste termo no consensual.

rvore Geradora Mnima


Este mtodo foi proposto por (Kruskal, 1956). Algoritmo de Prim foi proposto por (Prim, 1957).

Um segundo algoritmo conhecido por

Input: Inicializaco: Iterao:

Seja Seja Seja

G = (V, E) r V,

um grafo conexo com custos

ce , e E .

qualquer. Faa-se

H := ({r}, ).
rvore}.

e = arg min{ce : e E, H/e H := H/. e

Faa-se Se

|E(H)| = |V | 1
parar prxima Iterao.

ento seno

Figura 4:

Mtodo de Prim.

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 um resultado de caracterizao da conexidade de um grafo que fundamental.

Teorema 1 Um grafo G conexo se e s se no existe um subconjunto no trivial de vrtices S tal que (S) = . Prova:
Se

(S) =

para algum subconjunto no trivial de vrtices

ento no existe caPara

minho entre algum vrtice

uS

e algum vrtice

v V \ S. S

Por isso,

G no conexo.

provar o recproco, suponhamos que

G no conexo.

Ento, existem dois vrtices distintos o conjunto de todos os vrtices

para os quais no existe caminho-(u, w). Seja

para os quais existe caminho-(u, v). Portanto, em particular,

uS

w V \S

e, por isso,

= S V.
com

Falta provar que

(S) = .

Suponhamos, por absurdo, que existe

pq (S)

p S e q V \S .

Ento, existe caminho de

u para q , o que absurdo pois q V \S .

Optimizao Combinatria
O nosso prximo resultado servir para concluir que ambos os algoritmos esto cor-

rectos. Dizemos que um subgrafo

de um grafo

expansvel a uma rvore geradora

mnima

se

subgrafo de alguma rvore geradora mnima.

Teorema 2 Seja G = (V, E) um grafo conexo, seja H um subgrafo de G e seja D (S), para algum subconjunto no trivial de vrtices S , um corte de G satisfazendo DE(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:
H/e
Seja

uma rvore geradora mnima tal que

E(H) E(H ).

A existncia est

assegurada porque , claramente,

expansvel a uma rvore geradora mnima. Se

e D E(H ) ento H

expansvel
com

a uma rvore geradora mnima. Por isso, suponhamos que distintos. Seja

e vw D \ E(H )
caminho-(v, w) em de

v, w

o caminho-(v, w) em

. Como no existe Por denio

G\D

ento existe uma aresta

de

tal que

f D.

e, cf ce .

Pelo Lema 3, o grafo ento

H \f /e

ainda uma rvore geradora mnima. Como

D E(H) = ,
mnima.

f E(H).

Conclumos que

H/e expansvel

a uma rvore geradora

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

e em ambos

os casos esse subgrafo mantido uma oresta. Portanto, ambos os algoritmos no podem fazer mais do que

|V | 1

iteraes.

Teorema 3 O algoritmo de Prim encontra uma rvore geradora mnima. Prova:


subgrafo No incio do algoritmo, o subgrafo

trivialmente expansvel a uma rvore

geradora mnima.

Seguidamente, provamos que, se no incio de uma dada iterao o

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 precisamente o conjunto de arestas lado, toda a aresta

(V (H)) H

eE

tais que

H/e

permanece uma rvore. Por um

eE

tal que

H/e

rvore tem de pertencer a

(V (H))

porque

rvore Geradora Mnima


uma rvore. Por outro lado, a insero de uma aresta em

e (V (H)) no pode criar um ciclo e


teriam de estar em

H/e

 porque, pelo Lema 1, ambas as extremidades de

V (H)) e

,

nem pode tornar em

H/e

desconexo  porque ento nenhuma das extremidades de

estaria

V (H).
Portanto, o algoritmo escolhe a aresta

de custo mnimo em

(V (H)).

Estando nas

condies do Teorema 2 para geradora mnima. Aps

D (v(H)), conclumos que H/ expansvel a uma rvore e (V (H)) = . H H

|V | 1

iteraes do algoritmo de Prim,

Isso signica que

r-

vore geradora. Sendo expansvel a rvore geradora mnima,

rvore geradora mnima.

Consideremos agora o algoritmo de Kruskal. Para cada vrtice se por

do grafo

G, G.

denoteComo

Cv

o conjunto de vrtices

w G.

para os quais existe caminho-(v, w) em

simples de vericar, so as

v Cw

se e s se

w Cv .

Os subgrafos de

da forma

G[Cv ]

componentes (conexas)

de

Obviamente, se

conexo ento tem apenas uma

componente.

Teorema 4 O algoritmo de Kruskal encontra uma rvore geradora mnima. Prova:


subgrafo No incio do algoritmo, o subgrafo

trivialmente expansvel a uma rvore

geradora mnima.

Seguidamente, provamos que, se no incio de uma dada iterao o

expansvel a uma rvore geradora mnima ento no nal dessa iterao

tambm o . Numa dada iterao do algoritmo de Kruskal, sejam vazios de vrtices das componentes de em

S1 , S2 , . . . , Sk Si .

os conjuntos no

H.

Pelo Lema 1,

f E

candidato a ser inserido Por isso, o conjunto A aresta

se e s se as extremidades de

esto em conjuntos distintos

das arestas candidatas a serem inseridas em

o conjunto

k (Si ). i=1

e escolhida i.

pelo algoritmo a aresta de menor custo que pertence ao corte Como

D (Si ), G

para algum

D E(H) = , |V | 1 H

conclumos que

H/ expansvel e H

a uma rvore geradora mnima. Como conexo, isso

Aps

iteraes do algoritmo de Kruskal,

k (Si ) = . i=1

signica que

rvore geradora. Por isso, no nal

uma rvore geradora mnima.

Optimizao Combinatria

Exerccios:
7. 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. 8. Mostre que, se D um corte minimal num grafo G = (V, E) ento existe um subconjunto prprio de vrtices S tal que D = (S).

Sej S o subconjunto de vrtices correspondente a uma qualquer componenente de G \ D. Claramente, (S) D pois, caso contrrio, S estaria mal denido. Suponhamos, por absurdo, que existe e D \ (S). Ento, e E(S) E(V \). Por isso, G \ D/e ainda desconexo, o que absurdo porque D um corte minimal.
Soluo:

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 T tem-se

cf ce ,

para todo f (Se ),

(1)

onde Se denota o conjunto de vrtices de uma das componentes de H\e. Mostre que, H rvore geradora mnima se e s se para toda a aresta e E \ T tem-se
10. Seja G = (V, E) um grafo com custos ce , e E , e seja H = (V, T ) uma rvore geradora.

cf ce ,

para todo f E(Pe ),

(2)

onde Pe denota o caminho em H ligando as extremidades de e.


11. (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.

Figura 5: Um grafo com custos nas arestas.

rvore Geradora Mnima


1.1 Ecincia dos Algoritmos de Prim e Kruskal
Comeamos com a explicao da maneira com

standard

de representar um grafo

G = (V, E)
uma lista

vrtices e

arestas no computador. Mantemos para cada vrtice

vV

Lv

das arestas que incidem em

e com indicao da outra extremidade. Quando o grafo Se existe um custo

simples, a lista

Lv

contm apenas a indicao das extremidades.

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

Lw .

Vejamos como dever car a implementao do Algoritmo de Prim. Tal como observmos na demonstrao do Teorema 3, em cada iterao do Algoritmo de Prim identica-se a aresta que tem custo mnimo no conjunto das arestas deve implementar? Armazenamos

(V (H)).

Como que isto se

V (H)

usando um vector caracterstico

(i.e.,

xv = 1

se

v V (H)

xv = 0

se

v V (H)). e de e

Em cada iterao, percorremos o conjunto de arestas  para isso, basta averiguar se

E


averiguando se cada aresta e procurando a aresta

e uv (V (H))

xu = xv

custo menor. Por isso, a aresta

e = vw x

pode ser determinada fazendo

em tempo proporcional a for a extremidade de proporcional a

O(m).

Depois, actualizamos o vector

xv := 1

se

tal que

xv = 0.

Portanto, o Algoritmo Prim funciona em tempo

O(nm).
Ar-

Vejamos uma implementao melhorada, e at com tempo de execuo inferior. mazenamos para cada vrtice vrtice de

v V (H),

uma aresta

h(v)

que a aresta que liga

a um

que tem custo menor  a inicializao de

h requer tempo proporcional a O(m). O(n).


Mas, as

Portanto, a aresta arestas

escolhida usando no mximo tempo proporcional a

h(v),

para

v V (H),

mudam de iterao para iterao. Suponhamos que, numa

dada iterao,

foi acrescentado a

V (H) e u permaneceu em V \ V (H).


tal que

Ento,

h(u) deve

mudar se existe alguma aresta alteraes a

e wu E Lw ,

ce < ch(u) .

Podemos efectuar todas estas

h()

percorrendo a lista

o que signica tempo proporcional a

O(n).

Por

isso, esta implementao do Algoritmo Prim requer tempo proporcional a a

n 1 iteraes de passos que requerem

O(n).

Por isso, esta implementao funciona em tempo proporcional

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

10

Optimizao Combinatria
Isto pode ser feito em tempo proporcional por um algoritmo de ordenao como o

por ordem crescente do valor do seu custo. a

O(m ln m)

heapsort ,

por exemplo  veja-se o

exerccio 12. 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

 tal como observmos na

demonstrao do Teorema 4. Portanto, todas estas iteraes podem ser efectuadas percorrendo as arestas pela ordem estipulada na primeira fase e inserindo em aresta tiver as suas extremidades em conjuntos Como que essa ideia se implementa? conjunto

sempre que uma

Si

distintos.

Durante a fase das iteraes, mantemos o

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 a que esse vrtice pertence. Por exemplo, bloco

b que indica para cada vrtice qual o bloco


signica que o vrtice

b(v) = k H

pertence ao Seja

k.

Assim, uma aresta

e vw pertence a k (Si ) se e s se b(v) = b(w). i=1


(e, portanto,

e = vw

uma aresta seleccionada para ser inserida em

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 feito em

b(v) na cauda da lista dos vrtices do bloco b(w)  isto pode ser b(j) := b(w) n1
para todos os vrtices Portanto, o

O(1)

operaes. Depois, preciso actualizar

que pertenciam ao bloco

b(v).

Isto requer no mximo

atribuies.

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. so sugeridos em (Tarjan, 1983). Mais melhoramentos

Exerccios:
porcional a O(n log n).
Soluo:

12. (algoritmo de ordenao) Descreva um algoritmo que ordene n nmeros em tempo pro-

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

rvore Geradora Mnima

11

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 .

que no existe.
14.

13. Mostre que, em tempo proporcional a O(m) pode encontrar um rvore geradora ou concluir

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?

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

12

Optimizao Combinatria
x()
denota

solues ptimas. Considere o seguinte problema de optimizao linear, onde a soma de todas as componentes Minimizar

xe

com

em `',

ce xe
eE

sujeito a

x(E(S)) |S| 1, x(E) = |V | 1, xe 0,

para todo

SV

tal que

= S = V,

(3)

para todo

e E.

Vejamos que, todo o vector caracterstico de uma rvore geradora admissvel em (3). Seja

H = (V, T )

uma rvore geradora e seja

x0

o vector caracterstico de

(em

E ).

Para todo

o subconjunto no trivial de vrtices

S,

x0 (E(S)) = |E(S) T | |S| 1


porque que

no contm ciclos. Alm disso,

x0 0

x0 (E) = |V | 1.

Assim, conclumos

x0

admissvel em (3). Alm disso,

ce x0 = e
eE eT

ce = c(T ), x0
igual ao custo total de

o que signica que o valor na funo objectivo em

H.

Tudo isto

permite-nos concluir que o valor ptimo do problema linear (3) dene um limite inferior para o custo da rvore geradora mnima. valores so, na verdade, iguais. (Edmonds, 1971) estabeleceu que esses dois

Teorema 5 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 (3). Prova:
(A)
Comeamos por reescrever (3) de forma equivalente. Para

A E,

denote-se por

o nmero de componentes do subgrafo

(V, A)

 note-se que se trata de um subgrafo

gerador. Considere o problema de optimizao linear Minimizar

ce xe
eE

sujeito a

x(A) |V | (A), x(E) = |V | 1, xe 0,

para todo

AE

tal que

= A = E,

(4)

para todo

e E.

rvore Geradora Mnima


ambos coincidem. Seja

13

Para concluir que (3) e (4) so equivalentes mostraremos que as regies admissveis de

uma qualquer soluo admissvel em (4) e seja

um qualquer

subconjunto no trivial de vrtices. O conjunto de arestas

A = E(S)

tal que

AE

= A = E.

Atendendo admissibilidade de

em (4), conclumos que

xe |V | k(E(S)) |V | (|V \ S| + 1) = |S| 1.


eE(S)
Portanto,

admissvel em (3). Reciprocamente, seja

uma qualquer soluo admissvel

em (3) e seja

um qualquer subconjunto no trivial de arestas. Sejam

S1 , S2 , . . . , Sk(A)

os

conjuntos de vrtices das componentes do grafo em (3), conclumos que

(V, A).

Atendendo admissibilidade de

k(A)

k(A)

xe
eA
Portanto,

xe
i=1 eE(Si ) i=1

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

admissvel em (4). Fica assim concluda a igualdade entre as regies admis-

sveis de (3) e de (4). 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 (3), e em (4). Vamos mostrar que

x0

soluo ptima para (4) atravs do Teorema da Complementaridade de Folgas da

optimizao linear. O dual do problema linear (4) Maximizar

(|V | (A)) yA
AE : A=

sujeito a

yA ce ,
AE : eA

para todo

yA 0,
(note que

para todo

AE

tal que

eE = A = E.

(5)

yE

no tem restrio de sinal). Suponhamos que o algoritmo de Kruskal analisou

as arestas de

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 yRm = cem
e

Agora, considere-se uma soluo dual

y0

denida do seguinte modo:

0 yRi = cei cei+1 ,

14

Optimizao Combinatria
i = 1, 2, . . . , m 1,
sendo zero nas restantes componentes no denidas. Devido

para cada

forma como as arestas foram ordenadas temos que trivial de arestas denotado por

yA 0

para todo o subconjunto no

A.
m

Alm disso, para toda a aresta

e ei ,

m1 0 y Rj

0 yA AE : eA

=
j=i

=
j=i

cej cej+1 + cem = cei ce .

Portanto, dispomos de soluo missvel.

y0

dual admissvel, bem como uma soluo

x0

primal ad-

Vamos agora mostrar que se verica a complementaridade de folgas. Por um lado, sempre que em

x0 > 0 e

a correspondente restrio do dual verica-se trivialmente como igualdade

y0.

Por outro lado, seja

um subconjunto no trivial de arestas tal que para algum

0 yA < 0.

Isso

s pode acontecer quando

A = Ri ,

i {1, 2, . . . , m 1}.

Se a correspodente

restrio no primal for satisfeita como desigualdade estrita, i.e., isso signica que a oresta grafo

x0 (Ri ) < |V | (Ri ) ento

(V, T Ri )

tem menos arestas que a maior oresta contida no Portanto, existe uma aresta em

(V, Ri ) (que tem, precisamente, |V | (Ri ) arestas). (V, T Ri ) faz

Ri

cuja insero no subgrafo

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 Conclumos que

x0 (A) = |V | (A).

x0

y0

satisfazem as condies de complementaridade de folgas pelo

que so solues ptimas para os problemas (4) e (5), respectivamente. Como as regies admissveis de (3) e (4) coincidem, conclumos que

x0

tambm soluo ptima para (3).

Como todo o vector caracterstico de uma rvore geradora mnima admissvel para (3) e dene um valor na funo objectivo igual da soluo encontrada pelo algoritmo de Kruskal conclumos que o vector caracterstico de toda a rvore geradora mnima soluo ptima em (3).

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 5 estabelece tambm uma nova demonstrao da correco do Algoritmo de Kruskal.

rvore Geradora Mnima

15

Mais, o Teorema 5 estabelece que existe sempre uma soluo ptima para (3) que vector caracterstico de uma rvore geradora. Portanto, os pontos extremos do poliedro denido pela regio admissvel de (3) so os vectores caractersticos de rvores geradoras  ver exerccio 18.

Exerccios:
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, (6) 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 (6) se e s se H rvore geradora. b. Encontre um exemplo (G, c), no qual nenhuma soluo ptima de (6) vector caracterstico do conjunto de arestas de uma rvore geradora.
16. Seja G = (V, E) um grafo com custos c e seja H = (V, T ) uma rvore geradora mnima. 15. Seja G = (V, E) um grafo com custos ce , e E . Neste exerccio, vamos considerar uma outra

a. Quanto pode diminuir ao custo de uma aresta e E \ T at que H deixe de ser 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 .
17. (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. 18. 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. b. Para o vector c determinado na alnea anterior, mostre que a soluo ptima de (3) nica. c. Conclua que o conjunto dos vectores caractersticos de rvores geradoras e o conjunto dos pontos extremos da regio admissvel de (3) so o mesmo conjunto.

16

Optimizao Combinatria

Para a elaborao deste texto de apoio acompanhmos (Cook e outros textos dispersos.

et al., 1998, Captulo 2)

Referncias Bibliogrcas
Ahuja, Ravindra K., Magnanti, Thomas L., & Orlin, James B.
ows.
1993.

Network

Englewood Clis, NJ: Prentice Hall Inc. Theory, algorithms, and applications.

Cook, William J., Cunningham, William H., Pulleyblank, William R., & Schrijver, Alexander Combinatorial optimization
. 1998. . Wiley-Interscience Publication.

Wiley-Interscience Series

in Discrete Mathematics and Optimization. New York: John Wiley & Sons Inc. A

Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L., & Stein, Clifford Introduction to algorithms
. 2001. . Second edn. Cambridge, MA: MIT Press.

Edmonds, Jack
127136.

. 1971.

Matroids and the greedy algorithm.

Math. Programming, 1,

Kruskal, Jr., Joseph B. Prim, R. C.

1956. On the shortest spanning subtree of a graph and the

traveling salesman problem.

Proc. Amer. Math. Soc., 7, 4850. Bell System

1957. Shortest connection networks and some generalizations.

Technical Journal, 36, 13891401.

Tarjan, Robert Endre West, Douglas B.


Hall Inc.

. 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).

1996.

Introduction to graph theory. Upper Saddle River, NJ: Prentice

Vous aimerez peut-être aussi