Académique Documents
Professionnel Documents
Culture Documents
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
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.
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.
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
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 .
Dado um grafo
est asso-
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
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.
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
H/e\f = H\f /e
conexo e tem
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
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
Seja
G = (V, E)
ce , e E .
Faa-se Seja
H := (V, ).
oresta}.
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.
G = (V, E) r V,
ce , e E .
qualquer. Faa-se
H := ({r}, ).
rvore}.
Faa-se Se
|E(H)| = |V | 1
parar prxima Iterao.
ento seno
Figura 4:
Mtodo de Prim.
r=a
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) =
uS
e algum vrtice
v V \ S. S
Por isso,
G no conexo.
G no conexo.
uS
w V \S
e, por isso,
= S V.
com
(S) = .
pq (S)
p S e q V \S .
Optimizao Combinatria
O nosso prximo resultado servir para concluir que ambos os algoritmos esto cor-
de um grafo
mnima
se
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
E(H) E(H ).
A existncia est
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
G\D
de
tal que
f D.
e, cf ce .
H \f /e
D E(H) = ,
mnima.
f E(H).
Conclumos que
H/e expansvel
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.
geradora mnima.
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
eE
tal que
H/e
(V (H))
porque
H/e
V (H)) e
,
H/e
estaria
V (H).
Portanto, o algoritmo escolhe a aresta
de custo mnimo em
(V (H)).
Estando nas
|V | 1
r-
do grafo
G, G.
denoteComo
Cv
o conjunto de vrtices
w G.
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
componente.
geradora mnima.
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
se e s se as extremidades de
o conjunto
k (Si ). i=1
e escolhida i.
D (Si ), G
para algum
D E(H) = , |V | 1 H
conclumos que
H/ expansvel e H
Aps
k (Si ) = . i=1
signica que
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 ,
(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 ,
(2)
standard
de representar um grafo
G = (V, E)
uma lista
vrtices e
vV
Lv
simples, a lista
Lv
associado a cada aresta, o seu valor armazenado tambm junto com a informao da aresta. Portanto, cada aresta
e vw
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)).
V (H)
(i.e.,
xv = 1
se
v V (H)
xv = 0
se
v V (H)). e de e
E
e uv (V (H))
xu = xv
e = vw x
O(m).
xv := 1
se
tal que
xv = 0.
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)
a um
h(v),
para
v V (H),
dada iterao,
foi acrescentado a
Ento,
h(u) deve
e wu E Lw ,
ce < ch(u) .
h()
percorrendo a lista
O(n).
Por
O(n).
O(m + n2 ) = O(n2 ).
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
O(m ln m)
heapsort ,
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
S1 , S2 , . . . , Sk
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
Si
distintos.
S1 , S2 , . . . , Sk .
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(v) = k H
pertence ao Seja
k.
e = vw
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)
b(v).
atribuies.
O(m + n2 ) = O(n2 )
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
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?
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
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 )
x0
o vector caracterstico de
(em
E ).
Para todo
S,
x0 0
x0 (E) = |V | 1.
Assim, conclumos
x0
ce x0 = e
eE eT
ce = c(T ), x0
igual ao custo total de
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
(V, A)
ce xe
eE
sujeito a
para todo
AE
tal que
= A = E,
(4)
para todo
e E.
13
Para concluir que (3) e (4) so equivalentes mostraremos que as regies admissveis de
um qualquer
A = E(S)
tal que
AE
= A = E.
Atendendo admissibilidade de
em (3) e seja
S1 , S2 , . . . , Sk(A)
os
(V, A).
Atendendo admissibilidade de
k(A)
k(A)
xe
eA
Portanto,
xe
i=1 eE(Si ) i=1
(|Si | 1) = |V | k(A).
H = (V, T )
O seu
vector caracterstico
x0
x0
(|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
as arestas de
pela ordem
e1 , e2 , . . . , em
seco anterior). Em particular, aps analisar a i-sima aresta dessa lista analismos todas as arestas em
Ri {e1 , e2 , . . . , ei }
(V, T Ri )
0 yRm = cem
e
y0
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
A.
m
e ei ,
m1 0 y Rj
0 yA AE : eA
=
j=i
=
j=i
y0
x0
primal ad-
Vamos agora mostrar que se verica a complementaridade de folgas. Por um lado, sempre que em
x0 > 0 e
y0.
0 yA < 0.
Isso
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
(V, T Ri )
tem menos arestas que a maior oresta contida no Portanto, existe uma aresta em
Ri
(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
que so solues ptimas para os problemas (4) e (5), respectivamente. Como as regies admissveis de (3) e (4) coincidem, conclumos que
x0
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.
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.
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.
Math. Programming, 1,
. 1983.
CBMS-NSF
Regional Conference Series in Applied Mathematics, vol. 44. Philadelphia, PA: Society for Industrial and Applied Mathematics (SIAM).
1996.