Algoritmos de Aproximação
Marelo Henriques de Carvalho
UniversidadeFederaldoMatoGrossodoSul
Mária RosanaCerioli
UniversidadeFederaldoRiodeJaneiro
Riardo Dahab
UniversidadeEstadualdeCampinas
Paulo Feolo
Cristina GomesFernandes
CarlosEduardo Ferreira
UniversidadedeSãoPaulo
KatiaSilvaGuimarães
UniversidadeFederaldePernambuo
Flávio Keidi Miyazawa
UniversidadeEstadualdeCampinas
José Coelho de Pina Jr.
José Augusto R. Soares
YoshikoWakabayashi
UniversidadedeSãoPaulo
O desenvolvimento de algoritmos de aproximação e de provas de
inaproximabilidadeé umadaslinhasde pesquisaque maistêmresido
na áreadeotimizaçãoombinatória eteoria da omputação. Oobjetivo
destetextoéapresentarsuintamenteumavisãosistemátiadasténias
utilizadas noprojeto dealgoritmos de aproximaçãoe dar umaidéia dos
limites intrínseosda aproximabilidade.
Ainda que os tópios obertos neste texto possam ser enontrados
em outros livros[Ho97, MPS98 , ACG +
99 , Vaz01 ℄, o presente texto se
justia pela esassez de material em língua portuguesa. Além disso,
a seleção de tópios e a profundidade om que ertos assuntos foram
tratados aquisão, paranossoonheimento, inéditas.
Estetextoésuinto nosentidodequeselimitaaapresentarosalgo-
ritmose suasanálises,sem sealongaromomentárioseexemplos. Mas
ada apítulo ontémnotas bibliográas eumavariedade de exeríios
que omplementam o texto. Esperamos que apesar de suinto, o livro
tenhaumaráterdidátioesejaútiltanto aosqueprouramumaintro-
dução à áreaquanto aosquequeiram estudar essefasinantetema mais
profundamente.
O assunto tem muitos pré-requisitos (teoria dos grafos, programa-
ção linear,teoriadasprobabilidades,omplexidade omputaional), que
prouramos obrir ompatamente em apêndies. Reomendamos que
o leitor reorra aos apêndies somente na medida do neessário, om a
ajuda do índie.
Os apítulos1 e2apresentam asdeniçõesbásias, umhistórioda
área e os primeiros algoritmos de aproximação para alguns problemas
lássios deotimizaçãoombinatória. Isoladamente, essesdoisapítulos
formamuma introdução ao assunto.
Os apítulos de 3 a 5 apresentam os métodos baseados em progra-
mação linear. A seção 3.1e o apítulo 4 tratam de algoritmos simples,
ujaanálisedependeapenasdeoneitoseresultados básiosde progra-
mação linear. Ao leitor que tenhaonheimento superialno assunto,
reomendamos a leitura do apêndie C. A seção 3.2 desreve um algo-
ritmonão-trivialujaanáliseélongaeelaborada,aindaquenãoenvolva
oneitos avançados. Oapítulo 5 apresenta uma téniaelegantee so-
stiada,derivadadométodoprimal-dualdeprogramaçãolinear, quese
apóianooneito defolgas omplementares.
Oapítulo6disutealgoritmosprobabilístiospormeiodeumexem-
plosimplesmas instrutivo. Umdosalgoritmos apresentadosneste apí-
tuloutilizaprogramaçãolinear. Areditamosqueoonteúdodoapítulo
sejaaessível aqualquer leitorque onheçaosoneitos de variável ale-
atória e esperança, etenha noçõesbásias deprogramação linear.
No apítulo 7, sobre programação semidenida, desrevemos uma
ténia sostiada e relativamente reente que tem sido apliada om
suesso a diversos problemas. Este apítulo usa todas as ferramentas
apresentadasnosapítulos anteriores: generaliza aténiaderelaxações
lineares e usa um tipo de arredondamento probabilístio bem mais so-
stiado que os vistos no apítulo 6. O apítulo requer maturidade e
familiaridade omosvários oneitos envolvidos.
Oapítulo 8desreve alassiação geral de problemas deotimiza-
ção do ponto de vista da aproximabilidade. Também disute a posição
queosdiversosproblemas tratadosnotextooupamnestalassiação.
Esteapítulopodeserlido àpartepelosinteressadosem teoriada om-
putação.
Este livropode seradotado emdisiplinas denal dagraduação ou
de pós-graduação. Alguns dos problemas no apítulo 2, e talvez uma
ou duasdemonstraçõesde inaproximabilidade do apítulo8, podemser
usados omo um tópio em uma disiplina de graduação de análise de
algoritmos. As denições básias e dois ou três exemplos devem ser
suientes para dar uma idéia dos objetivos da área. Uma disiplina
dediada exlusivamente a algoritmos de aproximação tem omo pré-
requisitos noções de teoria dos grafos, programação linear e teoria de
omplexidade de algoritmos. Oonteúdo ompleto do livro é adequado
paraumadisiplinadepós-graduaçãoomduraçãode umsemestre. Na
graduação, pode-se optar, dependendo da maturidade e interesse dos
alunos, por não obrir o material da seção 3.2 e do apítulo 7, e obrir
apenas parialmente o apítulo 8. Uma versão preliminar do livro foi
graduação na UFRJ e em disiplinas de pós-graduação na USP e na
UNICAMP.
O livro tem 11 autores, provenientes de ino universidades espa-
lhadas por três regiões do país: UFMS (1 autor), UFPE (1 autora),
UFRJ (1 autora), UNICAMP (2 autores) e USP (6 autores). Todos
partiipam do Projeto ProNEx Complexidade de Estruturas Disretas
(http://www.ime.usp.br/yoshi/pronex/),oordenadoporYoshiharu
Kohayakawa,eaelaboraçãodolivrofezpartedasatividadesdoProjeto.
Quatro dosautores atuaram omo editores,uidando da oordenação e
dosdetalhesdeedição. Comtantosenvolvidos,équaseimpossívelhegar
aumonsensosobrequalquerquestãoespeía. Pode-sedizerqueada
parágrafo do textodesagrada algum dosautores; esperamos, ao menos,
que não desagrade a todosos leitores! Os autores reuniram-se algumas
vezes para disutir o texto, mas boa parte da interação e da redação
aonteeu via internet. Foiumperíodo de trabalho oletivointenso.
Manteremosemhttp://www.ime.usp.br/d/livros/aprox/uma
errata do livro e umendereço eletrnio para onde podem ser enviadas
asomuniações deerros, dúvidasesugestões.
Este não é o primeiro texto em língua portuguesa sobre o assunto:
Katia S. Guimarães, uma das autoras desse livro,apresentou umurso
sobreoassunto[Gui98 ℄naXVIIJornadadeAtualizaçãoemInformátia,
em1997. Aquelematerialserviuomoversãoiniial paraduasseçõesdo
presentelivro.
Agradeemos a Celina M. H. Figueiredo (UFRJ), Sulamita Klein
(UFRJ) e Luerbio Faria (UERJ) pela sua ontribuição om uma pri-
meira versão da seção 2.3. Agradeemos aos alunos que leram e riti-
aram versões preliminares de alguns apítulos. Somos gratos também
ao ProjetoProNEx Complexidade de Estruturas Disretas pelo suporte
naneiro para os enontros que se zeram neessários. Em espeial,
agradeemos ao oordenador doprojetopeloinentivoe pela disposição
em responderquestões ténias sobre algoritmos probabilístios. Agra-
deemos também à Comissão Organizadora do 23 o
Colóquio Brasileiro
de Matemátia pelaoportunidade.
Esperamos que os leitores se divirtam e aprendam tanto quanto os
autores enquanto esreviam olivro!
Riode Janeiro, SãoPauloe Campinas, maiode 2001
M.R.C.,P.F., C.G.Fe F.K.M.
1 Introdução 1
1.1 Problemas de otimização . . . 2
1.2 Algoritmos de aproximação . . . 3
1.3 Notação básia . . . 4
2 AlgoritmosClássios 5 2.1 Esalonamento . . . 5
2.2 Cobertura por onjuntos . . . 8
2.3 Mohila . . . 10
2.4 Caixeiro viajante . . . 14
3 Método Primal 23 3.1 Ténia doarredondamento . . . 23
3.2 Ténia métria . . . 25
4 Método Dual 35 4.1 Cobertura por vérties . . . 35
5 Método Primal-Dual 41 5.1 Método primal-dual lássio . . . 41
5.2 Método deaproximação primal-dual . . . 44
5.3 Transversal mínima . . . 46
5.4 Florestade Steiner . . . 49
6 Algoritmos Probabilístios 63
6.1 Satisfatibilidade máxima . . . 64
6.2 Desaleatorização . . . 69
6.3 Geradores de númerosaleatórios . . . 72
7 Programação Semidenida 77 7.1 Cortemáximo . . . 77
7.2 Programassemidenidos . . . 82
7.3 Consideraçõesprátias . . . 83
8 Inaproximabilidade 87 8.1 Classesde problemas deotimização . . . 88
8.2 NP-ompletudee inaproximabilidade . . . 90
8.3 Completudeparaproblemas de otimização . . . 93
8.4 Limiaresde aproximação . . . 96
A Teoria dos Grafos 101
B Vetores e Matrizes 107
C Programação Linear 113
D Teoria das Probabilidades 121
E Complexidade Computaional 125
Bibliograa 133
Introdução
Problemas deotimização têmoobjetivo deenontrar umponto óti-
mo(mínimooumáximo)deumafunçãodenidasobreumertodomínio.
Os problemas de otimização ombinatória têm domínio nito. Embora
oselementosdodomíniopossam, emgeral,serfailmenteenumerados,a
idéia ingênuadetestartodososelementosnabusapelomelhormostra-
seinviável naprátiapoiso domínioé tipiamentemuito grande.
Como exemplos lássios de problemas de otimização ombinatória
podemositar oproblema do aixeiroviajante, oproblema da mohila,
o problema da obertura mínima por onjuntos, o problema da ores-
ta de Steiner e o problema da satisfatibilidade máxima. Todos surgem
naturalmente em apliações prátias, tais omo o projeto de redes de
teleomuniação e de iruitos VLSI, o empaotamento de objetos em
ontainers, a loalização de entros distribuidores, o esalonamento e
roteamentodeveíulos,et. Outrasáreasdeapliaçãoinluemaestatís-
tia (análisede dados), aeonomia(matrizes deentrada/saída),a físia
(estadosdeenergiamínima),abiologiamoleular(alinhamento deDNA
e proteínas, inferênia depadrões), et.
Odesenvolvimento de algoritmosde aproximação surgiu emrespos-
ta à diuldade omputaional de muitos dos problemas de otimização
ombinatória: em termos ténios, muitos são NP-difíeis. Nessa situ-
ação, é razoável sariar a otimalidade em troa de uma aproximação
de boa qualidade quepossa ser eientemente alulada. Esse ompro-
misso entre perda de otimalidade e ganho em eiênia é o paradigma
dos algoritmos de aproximação. Convém observar queum algoritmo de
aproximação não é simplesmenteumaheurístia: elegarante enontrar,
eientemente, um elemento do domínio ujo valor guardauma relação
pré-estabeleidaom ovalorótimo.
No iníio da déada de 70, Garey, Graham e Ullman [GGU72℄,
bem omo Johnson [Joh74 ℄, formalizaram o oneito de algoritmo
de aproximação. O oneito já estava implíito em um trabalho de
Graham[Gra66 ℄sobreumproblemadeesalonamento emmáquinas pa-
ralelas e emum trabalho de Erd®s [Erd67 ℄ sobre grafos bipartidos. Na
déada de 90, o estudo de algoritmos de aproximação passou a reeber
umtratamento maissistemátio, omaformalizaçãoeousodeténias
e ferramentasapliáveis a todaumagama de problemas.
É importante menionar também o apareimento de ertos resulta-
dosnegativos deaproximabilidade: para algunsproblemas,aproximar é
tãodifíil quanto resolver. Em termos mais ténios, alguns problemas
nãoadmitemalgoritmosdeaproximaçãoomrazãomelhorqueumerto
limiar,amenosqueP=NP. Asteoriasnessadireçãoforamimpulsiona-
dasnadéadade90pelasdesobertasdeAroraetal.[ALM +
92,Aro95℄,
queprovaram resultadosdessetipoparavários problemasusandoara-
terizações probabilístiasda lasseNP.
O desenvolvimento de algoritmos de aproximação e de provas de
inaproximabilidade é uma das linhas de pesquisa que mais reseu ul-
timamente na área de otimização ombinatória e teoria da omputa-
ção. Estaobservaçãoenontrarespaldonagrandequantidadedeartigos
de pesquisa que surgiram nos últimos anos(veja nossa lista de referên-
ias bibliográas). Vários livros sobre o assunto também foram pu-
bliados reentemente: Ausiello et al. [ACG +
99℄, Hohbaum [Ho97℄,
Mayr et al. [MPS98 ℄ e Vazirani [Vaz01 ℄. Outro indíio da eferves-
ênia da área é a grande quantidade de teses de doutorado on-
luídas na déada de 90, algumas introduzindo teorias revoluionári-
as[Aro94,Blu91, Kan92 ,Tre96 , Wil93℄.
1.1 Problemas de otimização
Um problema de otimização tem três ingredientes prinipais: um
onjunto de instânias 1
(instanes), um onjunto Sol (I) de soluções Sol(I)
viáveis (feasible solutions) para ada instânia I, e uma função que
atribui um número val (S) a ada solução viável S. Onúmero val(S) é val(S)
o valor de S. Quando o onjunto Sol(I) dassoluções viáveis assoiado
a uma instânia I é vazio, dizemos que a instânia é inviável; aso
ontrário, ainstânia é viável.
1
Éumapenaqueousotenhaimpostoatraduçãoinorretainstâniaparaotermo
Um problema de minimização está interessado nas soluções viá-
veis de valor mínimo, enquanto um problema de maximização está
interessado nas soluçõesviáveis de valormáximo.
2
Quandouma dessas
alternativas mínimo ou máximo está subentendida, dizemos sim-
plesmentevalorótimoeproblemadeotimização. Umasoluçãoviável
ujovaloréótimoéhamadasoluçãoótima(optimalsolution). Ovalor
de qualquer das soluções ótimas de uma instânia I será denotado por
opt(I). Portanto, opt(I)
opt(I):=val(S
);
onde S
é uma solução ótima de I. É laro que esse número só está
denido seainstânia I é viável.
A títulodeexemplo,eisumproblemade otimizaçãobemonheido:
enontrar umiruito hamiltoniano de usto mínimo em umgrafo om
ustos nas arestas. Uma instânia desse problema onsiste em um gra-
fo Ge umafunção queassoiaumnúmero não-negativo aada aresta
de G. O onjunto das soluçõesviáveis de uma instânia (G;) é o on-
junto de todosos iruitoshamiltonianos de G. Ovalor de umiruito
hamiltoniano C é val (C):=
P
e2C
e .
1.2 Algoritmos de aproximação
Considere umproblema deotimização emqueval(S)0para toda
soluçãoviávelSdequalquerinstâniadoproblema. SejaAumalgoritmo
que,paratodainstâniaviávelIdoproblema,devolveumasoluçãoviável
A(I) de I. Se oproblema é deminimização e
val(A(I)) opt(I) (1.1)
para toda instânia I, dizemos que A é uma -aproximação para o
problema. OfatoréumnúmeroquepodedependerdeI. Dizemosque
é umarazão de aproximação (approximation fator) doalgoritmo.
É laro que 1, umavez que o problemaé de minimização. No aso
de problemade maximização, bastarefazer a denição om
val(A(I)) opt(I)
2
A expressão valordasolução podesertroadapor ustodasolução noa-
so deproblemas deminimização e por peso dasolução noaso deproblemas de
no lugar de (1.1). É laro que nesse aso 0 < 1. Um algoritmo
deaproximação(approximationalgorithm)éuma-aproximação para
algum . Uma 1-aproximação para um problema de otimização é um
algoritmo exato paraoproblema.
Observe que um algoritmo A é uma -aproximação para um pro-
blema de minimização (maximização) se é uma delimitação superior
(inferior)paraarazãoentreval (A(I))eopt (I)paraumainstânia arbi-
trária I do problema. Como o valor de opt(I) é emgeral tão difíil de
alular quanto uma solução ótima do problema, para demonstrar que
umalgoritmoé uma-aproximação é essenial,omo veremos, terboas
delimitações paraovalor deopt (I).
Aada instânia I deumdado problemaestáassoiadoumnúmero
natural hIi quehamamos tamanho da instânia. (Podemos imaginar
que as instânias, bem omo as soluções viáveis, são adeias de ara-
teres; nesse aso, hIi é o omprimento da adeia de arateres I.) Um
algoritmoAparaoproblemaépolinomialseexisteumpolinmioptal
que o onsumo de tempo do algoritmo é limitado por p(hIi) para ada
instânia I. O oneito de algoritmo polinomial deve ser entendido o-
moumaformalizaçãoda idéia dealgoritmo eiente. Se umproblemaé
NP-difíil então éimprovável queexista umalgoritmo polinomial exato
parao problema.
1.3 Notação básia
Aqui estabeleemos algumas onvenções básias de notação. Dada
umafunçãoqueassoiaumnúmero aadaelementoedeumonjunto
nitoE,denotamosovalordeemepor
e
. Paraqualquersubonjunto
F deE,denotamospor(F)asomadosvaloresdenoselementosdeF: ()
(F) :=
P
f2F
f :
Essaonvençãovale,empartiular,quandoéumvetorindexadoporE.
Os onjuntos dos números inteiros, raionais e reais são denotados
por Z, Q e R, respetivamente. Os subonjuntos desses onjuntos que Z,Q, R
ontêm somente osnúmerosnão-negativos sãoindiadospor um
; os
que ontêm somente ospositivossão indiados por um
>
. Assim,por
exemplo,o onjuntodosraionais não-negativos édenotado por Q
e o Q
dosraionais positivospor Q
>
. Q
>
Paraoutrasonvençõesdenotação, envolvendografos,vetoresema-
trizes, programação linear, probabilidades e omplexidade omputaio-
Algoritmos Clássios
Neste apítulodesrevemos algoritmos de aproximação para quatro
dos mais élebres problemas de otimização ombinatória. Estes estão
entreosprimeirosalgoritmosdeaproximaçãomenionadosnaliteratura.
Cada umdeles foi desenvolvido de forma independente, em função das
araterístias estruturais doproblema emquestão.
2.1 Esalonamento
Um problemabastanteonheido nos ontextos de produção indus-
trial e de sistemas operaionais é o de esalonamento (sheduling) de
tarefas em máquinas. Estamos interessados em uma das versões mais
simplesdo problema: dadasmmáquinas idêntiase ntarefasomtem-
posdeexeuçãopré-determinados, enontrarumaatribuição dastarefas
às máquinas que minimize o tempo máximo de operação de qualquer
umadas máquinas(makespan).
Formalmente, o problema do esalonamento em máquinas
idêntias (multiproessor shedulingproblem) onsisteno seguinte:
Problema Esalonamento(m;n;t): Dadosinteirospositivos
m, n e um tempo t
i em Q
para ada i em f1;:::;ng, en-
ontrarumapartiçãofM
1
;:::;M
m
gde f1;:::;ngqueminimize
max
j t(M
j ).
De aordo om nossa onvenção de notação, t(M
j ) :=
P
i2Mj t
i .
Dizemos que uma partição de f1;:::;ng em m bloos é um esalona-
mento e que o número max
j t(M
j
) é o usto do esalonamento. Com
essaterminologia,oproblemapodeserformuladoomo: dadosm,net,
M
1
t
1
t
6
t
7
M
2 t
2
t
5
M
3 t
3
t
4
t
1 t
2 t
3 t
4 t
5 t
6 t
7
4 2 1 5 9 2 6
Figura 2.1: Exemplo de esalonamento om 7 tarefas em 3 máqui-
nas. A duração da tarefa i é t
i
. O ritério de Graham produz o es-
alonamento ff1;6;7g;f2;5g;f3;4gg,representado na gura. Esse es-
alonamento tem usto t
1 +t
6 +t
7
= 12. Um outro esalonamento é
ff1;7g;f2;4;6g;f3;5gg,quetemustot
3 +t
5
=10.
enontrar umesalonamento de ustomínimo.
Este problema é NP-difíil mesmo para duas máquinas, ou seja,
quando m = 2 [GJ79 ℄. O primeiro algoritmo de aproximação para o
problemafoidesrito e analisadopor Graham[Gra66 ℄eusaum ritério
muito simples: aloar as tarefas uma a uma, destinando ada tarefa à
máquina menos oupada. Por esse ritério, a esolha da máquina que
vaireeberdeterminada tarefa não depende dostemposdastarefasque
ainda não foram atribuídas a nenhuma máquina. Veja umexemplo na
gura2.1.
AlgoritmoEsalonamento-Graham(m;n;t)
1 paraj de 1am façaM
j
;
2 para ide 1an faça
3 sejak uma máquinatalque t(M
k
)é mínimo
4 M
k M
k [fig
5 devolva fM
1
;:::;M
m g
Claramente, ao nal, fM
1
;:::;M
m
g é uma partição de f1;:::;ng,
ou seja, um esalonamento. Há duasdelimitações simplespara o usto
e o usto que obteríamos se pudéssemos distribuir as tarefas por igual
entreasm máquinas. Em fórmulas,
opt (m;n;t)max
i t
i
e opt(m;n;t) 1
m P
n
i=1 t
i
: (2.1)
Noexemplodagura2.1,osegundoesalonamentoapresentadoéótimo,
já que 1
m P
i t
i
=9; 666::: Essasdelimitações são usadas na análise do
algoritmo.
O aso em que n < m pode ser resolvido de maneira simples,
atribuindo-se uma tarefa a ada máquina, assim no seguinte teorema
nosrestringimos aoaso emquenm.
Teorema2.1: Oalgoritmo Esalonamento-Grahaméuma
2-aproximação polinomial para o Esalonamento(m;n;t),
quando nm.
Demonstração: Seja ovalordet(M
k
)imediatamenteantesdaexe-
ução da linha 4 do algoritmo em uma iteração qualquer. É laro que
t(M
j
) paratodoj e, portanto, emvirtude de(2.1),
1
m P
m
j=1 t(M
j )
1
m P
n
i=1 t
i
opt(m;n;t):
Assim,imediatamentedepoisdaexeuçãodalinha4doalgoritmo,temos
t(M
k
)=+ t
i
2opt(m;n;t),poist
i
opt(m;n;t)deaordoom(2.1).
Essadelimitaçãovalenomdeadaiteraçãoeportantoaplia-seaada
umadas máquinas. Logo,no mdaúltima iteração,
max
j t(M
j
)2opt (m;n;t):
Quantoaotempodeexeução,éfáilverqueoalgoritmoonsometempo
polinomialem n,já quemn. Assim,o algoritmo épolinomial. 2
Conforme já observamos,o algoritmo proessa osdados semonhe-
imento préviodasuatotalidade. Váriassituaçõesreaisdemandamesse
tipo de abordagem, entre elas o esalonamento de tarefas em proessa-
dores e a aloação de páginas na memória primária de omputadores.
Algoritmos para tais apliações devem ser rápidos e forneer soluções
viáveisujo valorsejapróximodovalorótimo. Oalgoritmo Esalona-
mento-Graham possuiestasaraterístias eé oneitualmentemuito
simples. Esse foi o primeiro algoritmo de aproximação de que se tem
2.2 Cobertura por onjuntos
O segundo problema que vamos disutir é uma abstração de vários
problemas quesãoabordadosao longo destetexto.
Dada uma oleção nita S de onjuntos nitos, dizemos que uma
suboleção T de S obre um onjunto nito E se todo elemento de E
pertene a algum onjunto de T. Neste aso, dizemos também que T
é uma obertura de E. O problema da obertura mínima por
onjuntos(minimum set over problem) onsiste noseguinte:
Problema MinCC(E;S;): Dadosum onjunto nitoE,uma
oleção nita Sde onjuntos nitos queobre E e um usto
S
emQ
paraada S emS,enontrar umaobertura Tde E que
minimize (T).
A exigênia de que S ubra E é inóua: ela apenas exlui as ins-
tânias inviáveis do problema. Chamamos o número (T) de usto da
obertura T. Assim, o problema onsiste em enontrar uma obertura
de ustomínimo.
OMinCCé NP-difíil mesmoquando adaonjunto em Snão tem
mais que três elementos [GJ79 ℄. Uma estratégia gulosa simples para o
problema onsiste em seleionar repetidamente o onjunto em S que é
maispromissor emtermosdeustoomrelaçãoao númerode elemen-
tos ainda não obertos que ele ontém. Essa estratégia dá origem ao
seguintealgoritmo, propostoporChvátal[Chv79 ℄,queapresentamosem
suaversão reursiva.
AlgoritmoMinCC-Chvátal(E;S;)
1 se E=;
2 então devolva;
3 senãosejaZ emStal que
Z
=jZ\Ejé mínimo
4 E
0
EnZ
5 S
0
fS 2S:S\E 0
6=;g
6 seja
0
arestriçãode aS 0
7 T
0
MinCC-Chvátal(E 0
;S 0
; 0
)
8 devolva fZg [ T 0
Claramente o algoritmo devolve uma obertura de E. Há umaboa
relaionada ao algoritmo aima. Para mostrá-la, suponha que Z é um
elemento deStalque
Z
=jZ\Ej
S
=jS\EjparatodoS emS. Então,
paraqualquer obertura T deE,
Z
jZ\Ej
jEj
Z
jZ\Ej P
S2T
jS\Ej
P
S2T
S
jS\Ej
jS\Ej
= P
S2T
S
= (T):
Seguedaíque
opt (E;S;)jEj
Z
jZ\Ej
: (2.2)
Aseguir,mostramosqueoalgoritmo MinCC-ChvátaléumaH
n -apro-
ximação, onden:=jEje H
n
é onúmero harmnio: Hn
H
n
:=1+ 1
2 +
1
3
++ 1
n :
Teorema2.2: Oalgoritmo MinCC-Chvátalé uma H
n -apro-
ximação polinomialparao MinCC(E;S;), onde n:=jEj.
Demonstração: A prova de que oalgoritmo é umaH
n
-aproximação
é porindução emjEj. Se jEj=0,entãooalgoritmo devolveo onjunto
vazio, queéumaoberturade ustomínimo. Agora,suponhaquejEj>
0,eportantojSj>0. Adoteasabreviaturasn:=jEjek :=jZ\Ej,onde
Z é oonjunto esolhido nalinha 3do algoritmo. Como jE 0
j=n k <
jEj, podemos supor quea oleção T 0
produzida nalinha 7 do algoritmo
é uma obertura de E 0
e que 0
(T 0
) H
n k opt(E
0
;S 0
; 0
). Além disso,
opt(E 0
;S 0
; 0
) opt (E;S;), uma vez que toda obertura de E ontém
umaobertura deE 0
formadaporonjuntosdeS 0
. Comisso,emvirtude
de (2.2),
(fZg[T 0
) =
=
Z +
0
(T 0
)
k
n
opt (E;S;)+H
n k
opt (E;S;)
1
n +
1
n 1
++ 1
n k+1 +H
n k
opt(E;S;)
= H
n
opt(E;S;):
O algoritmo MinCC-Chvátal pode produzir oberturas de usto
arbitrariamente próximo de H
n
opt(E;S;), onde n:= jEj. Maisprei-
samente,paraada "positivo,existeumainstânia do problemaparaa
qual oalgoritmo produz umaobertura de usto H
n
opt(E;S;)=(1+"):
basta tomar E := f1;:::;ng, S := fE;f1g;:::;fngg,
E
:= 1+" e
fig
:=1=iparaada i. Umaobertura deustomínimoéfEgeousto
desta obertura é 1+". Por outro lado, o algoritmo MinCC-Chvátal
produz aobertura ff1g;:::;fngg,ujo usto éH
n .
Assintotiamente,oalgoritmoMinCC-Chvátaltemamelhorrazão
possívelparaoproblemaMinCC,poissabe-se[RS97℄queH
n
1+lnn
e existe uma onstante positiva para a qual não existe algoritmo
om razão de aproximação menor que lnn, om n = jEj, para o
MinCC(E;S;), a menos que P = NP . Veremos mais sobre isso no
apítulo8.
2.3 Mohila
Nesta seção tratamosde umoutro problemade otimização bemo-
nheido: o problema da mohila(knapsak problem). Esse problema
temimportantesapliações,omopor exemplooarregamento ótimode
ontainers. Podemos enuniá-lo daseguintemaneira.
Problema Mohila(m;n;v;w): DadosumnúmeromemQ
,
umnúmero nemZ
>
,umnúmero v
i emZ
eumnúmerow
i em
Q
para ada i em f1;:::;ng,enontrar umsubonjunto S de
f1;:::;ngquemaximize v(S) sobarestrição w(S)m.
Os números v
i e w
i
podemser interpretados omo valor e peso res-
petivamente de umobjeto i. Onúmero m pode serinterpretado omo
a apaidade de uma mohila, ou seja, o peso máximo que a mohila
omporta. O objetivo do problema é então enontrar uma oleção de
objetosa maisvaliosapossívelque respeite aapaidade damohila.
1
Umaabordagemdeprogramaçãodinâmia[CLR92 ℄resolveoproble-
maMohila: bastaonstruirumatabelaW ondeW
ij
éopesomínimo
de umsubonjunto de f1;:::;igujo valoré pelo menosj:
W
ij
:=minfw(S):S f1;:::;ige v(S)jg:
1
Convém não onfundir o problema Mohila om a sua variante fraioná-
Aquiivariade0anej de0aovalorótimo opt(m;n;v;w) doproblema
mais1. Senãohásubonjuntodef1;:::;igdevalorpelomenosj,então
W
ij
=1. Abaixo,segue oalgoritmo e, nagura2.2, umexemplo.
Algoritmo Mohila-Exato(m;n;v;w)
1 para ide 0 anfaçaW
i0 0
2 j 0
3 repita
4 j j+1
5 W
0j 1
6 para ide 1a nfaça
7 sev
i j
8 então W
ij
minfW
i 1;j
; w
i g
9 senãoW
ij
minfW
i 1;j
; w
i +W
i 1;j v
i g
10 atéqueW
nj
>m
11 sejaS um subonjunto de f1;:::;ng
12 om w(S)=W
n;j 1
ev(S)j 1
13 devolvaS
W 0 1 2 3 4 5 6 7 8 9 10
0 0 1 1 1 1 1 1 1 1 1 1
1 0 4 4 1 1 1 1 1 1 1 1
2 0 2 4 6 1 1 1 1 1 1 1
3 0 1 1 1 3 5 7 1 1 1 1
4 0 1 1 1 2 3 3 3 5 7 9
5 0 1 1 1 2 3 3 3 5 7 9
Figura2.2: ApliaçãodoalgoritmoMohila-Exatoàinstânia
m = 7, n = 5, v = (2;1;3;4;1), w = (4;2;1;2;2) do problema
Mohila. AguraexibeatabelaW queoalgoritmoalula. O
valor ótimo dessa instânia é 9 eexistem duas soluções ótimas:
f1;3;4gef2;3;4;5g.
Aslinhas7a9sãofáeisdeentender. SuponhaqueSéumonjunto
de peso mínimo dentre os queestão inluídos emf1;:::;ig e têm valor
pelomenosj. Sei62S então S éumonjunto depesomínimodentreos
entãoSnfigéumonjuntodepesomínimodentreosqueestãoinluídos
emf1;:::;i 1getêmvalorpelomenosj v
i . (Sev
i
jentãoS=fig.)
Parajustiaraondição deparadanalinha10,observequeW
nj
W
nk
para todo k j, uma vez que todo subonjunto S de f1;:::;ng
que satisfaz v(S) k também satisfaz v(S) j. Assim, se W
nj
>m,
então W
nk
>m para todo k >j e, portanto, podemos interromper os
álulos.
Infelizmente, onúmero de exeuçõesdas linhas3 a10 pode não ser
polinomialemhvi. Porexemplo,sen=1em>v
1
,essenúmeroév
1 +1
enquantoquehv
1
i=O(logv
1
). Abemdaverdade,oproblemaMohila
é NP-difíil [GJ79 ℄. Podemos dizer entretanto que o algoritmo Mohi-
la-Exato onsometempo proporional ao número de omponentes da
matrizW. Esse número élimitado por (n+1)(
v
+1),onde
v :=
P
i:w
i m
v
i
;
já que o valor ótimo do problema Mohila(m;n;v;w) não ultrapassa
v
(om
v
=0 setodo w
i
>m). Não édifíil veriar queaslinhas11
a12podemserexeutadasemtempoO(n+
v
). Assimoonsumo total
de tempo doalgoritmo Mohila-Exato é O(n(
v +1)).
Esquema de aproximação
Seja " um número raional no intervalo aberto (0;1). Vamos ver
agoraomousaroMohila-Exatoparaobteruma(1 ")-aproximação
polinomialpara o problema Mohila. Oseguinte algoritmo, proposto
por Ibarra e Kim [IK75℄, faz uma mudança de esala nos valores de
uma instânia (m;n;v;w) do problema, obtendo uma outra instânia
para a qual o algoritmo Mohila-Exato onsome tempo polinomial
emm;n;hvi ehwi.
AlgoritmoMohila-IK
"
(m;n;v;w)
1 sew
i
>mpara todo i
2 então devolva;
3 senão# max
i:wim v
i
#
4 "#=n
5 paraide 1an façau
i bv
i
=
6 S Mohila-Exato(m;n;u;w)
Na linha 5do algoritmo, bxé omaior inteiro que nãoexede x. bx
Como S é uma solução ótima do problema Mohila(m;n;u;w),
temos que P
i2S w
i
m, ou seja, S é uma solução viável do problema
Mohila(m;n;v;w).
O valor do objeto mais valioso ujo peso não exede a apaidade
da mohila, que é o número #, é uma delimitação inferior para o valor
ótimodo problema:
opt (m;n;v;w) #: (2.3)
Essa delimitação éusadana análisedo algoritmo.
Teorema2.3: O algoritmo Mohila-IK
"
é uma (1 ")-apro-
ximação polinomialparao problemaMohila.
Demonstração: OonjuntoS nalinha6doalgoritmo éumasolução
ótimadoproblemaMohila(m;n;u;w). SeS
éumasoluçãoótimado
Mohila(m;n;v;w), então
P
i2S v
i
P
i2S u
i
P
i2S
u
i
(2.4)
P
i2S
( v
i
1) (2.5)
= v(S
) jS
j
v(S
) n
= v(S
) "#
(1 ")opt(m;n;v;w): (2.6)
A desigualdade(2.4) valepoisS éumasolução ótimadoproblemaMo-
hila(m;n;u;w). Já (2.5) vale pois u
i
>v
i
= 1 para todo i em S
.
Finalmente, (2.6) valepor (2.3).
Quanto ao tempo de exeução do algoritmo, temos o seguinte. A
linha 6 onsome tempo O(n(
u
+1)), onde
u :=
P
i:w
i m
u
i . Mas
u
i v
i
= n=", para todo i tal que w
i
m. Assim
u n
2
=" e
portanto o Mohila-IK
"
onsometempoO(n 3
="). 2
Note que o algoritmo Mohila-IK
"
é um esquema que nos for-
nee, para ada " raional no intervalo (0;1), uma (1 ")-aproximação
que onsome tempo polinomial em n=" para resolver a instânia Mo-
hila(m;n;v;w). Assim, Mohila-IK
"
é onheido um esquema de
aproximação plenamente polinomial(fully polynomial-time approximati-
2.4 Caixeiro viajante
Nestaseção,abordamosumproblemaquesurgeemváriasapliações
prátias,omoaperfuraçãodeplaasdeiruitoimpressoeadetermina-
çãode rotasdetransportedeustomínimo. Informalmente,oproblema
onsisteemdeterminarumarotadeomprimentomínimoquepasseexa-
tamente umavez emada umdospontos deumonjunto dado.
Éonvenienteformalizaroproblemanalinguagemdeteoriadosgra-
fos(apêndieA). Empartiular,onvémreorreraooneitodeiruito
hamiltoniano: umiruitoqueontémtodososvértiesdografo. Opro-
blema do aixeiro viajante (traveling salesman problem), denotado
porTSP, édenido daseguintemaneira:
Problema TSP(G;): DadosumgrafoGeumusto
e emQ
paraada aresta e,determinar umiruito hamiltoniano C que
minimize (C).
Esse é talvez o mais famoso problema de otimização ombinatória,
empartegraçasàsonexõesomváriosoutros problemasdeotimização.
Ele é NP-difíil mesmo se
e
2f1;2g para toda aresta e [GJ79 ℄. Além
disso, não se onhee um algoritmo de aproximação om razão ons-
tante para o problema, onforme veremos no apítulo 8. Nesta seção,
nosrestringimosa umasopartiular do TSPqueadmite algoritmo de
aproximação omrazão onstante.
Caixeiro viajante métrio
SuponhaqueografoGéompletoe temosumusto
ij
assoiadoa
ada par ij de vérties. Dizemos que os ustos satisfazem a desigual-
dade triangularse
ik
ij +
jk
(2.7)
para quaisquer três vérties i, j e k. O TSP restrito ao onjunto de
instânias (G;) em que G é ompleto e satisfaz a desigualdade tri-
angularé onheidoomo problema doaixeiro viajante métrioe
serádenotado aqui por TSPM.O problemaé NP-difíil[GJ79 ℄.
TSPM
Disutimos a seguir doisalgoritmos de aproximação parao TSPM.
Aestratégiautilizadapelosdoisalgoritmostemquatropassos: (1)ons-
truir uma árvore geradora T de G; (2) aresentar novas arestas a T
para obter umnovo grafo T 0
ujosvérties têm grau par; (3) obter um
ilo euleriano P em T 0
; e (4) obter um iruito hamiltoniano em G a
adotada paraaresentarnovasarestasà árvore T.
Chamamos o número (S) de usto de S,onde S pode ser umir-
uito, umilo, umaárvore, umaminho ouumonjunto de arestas.
O passo 1 da estratégia envolve uma árvore geradora de usto mí-
nimo (minimum-ost spanning tree). Umaárvoregeradora deusto mí-
nimo dá uma boa delimitação inferior para o valor ótimo do problema
TSPM(G;): seremovemosumaarestadeumiruitohamiltonianote-
mosumaárvoregeradoradeustonãosuperioraodoiruito. Portanto,
opt(G;)(T): (2.8)
Existem algoritmos simples e eientes [BM76 , CLR92 ℄ para onstruir
uma árvore geradora de usto mínimo em um grafo onexo. Vamos
designar por MST um algoritmo qualquer desse tipo. O onsumo de MST
tempodo algoritmoé O(n 2
), onden éo número de vérties dografo.
Aoperaçãoaqueserefereopasso2podeserformalizadadaseguinte
maneira. Para qualquer onjunto F de pares não-ordenados de vérties
de T, seja T +F o multigrafo (V
T
;E
T :
[ F), onde E
T :
[ F denota o T+F
multionjunto quetem duasópias deada elemento de E
T
\F (apên-
dieA). Como ografosubjaente éompleto, ada arestadomultigrafo
T +F tem umusto bemdenido.
Um ilo euleriano em um grafo ou multigrafo T 0
é qualquer i-
lo que ontém todas as arestas de T 0
. Um multigrafo onexo T 0
tem
um ilo euleriano se e somente se ada um de seus vérties tem grau
par [BM76℄. Sãobemonheidososalgoritmos [AHU74℄que onstroem
umiloeulerianoemummultigrafoonexosemvértiesdegrauímpar.
Para ospropósitosdopasso3,vamosdesignarporEulerumalgoritmo Euler
qualquer desse tipo. O onsumo de tempo do algoritmo é proporional
ao número de arestasdo multigrafo.
Opasso4daestratégiatransformaumilogerador,ouseja,umilo
queontémtodososvértiesdomultigrafo,emumiruitohamiltoniano.
O proedimento é simples: basta extrair uma subseqüênia maximal
sem vérties repetidos da seqüênia (v
0
;v
1
;:::;v
m
) de vérties do ilo
gerador. Isso podeser realizadopeloseguinteproedimento:
Atalho
1 w
0 v
0
2 n 0
3 para ide 1a m faça
4 se v
i
= 2fw
0
;:::;w
n g
5 então n n+1
6 w v
Como o grafo é ompleto, a seqüênia (w
0
;w
1
;:::;w
n
;w
0
) dene um
iruito. O iruito ontém todososvérties do grafo, pois o ilodado
ontém todos osvérties. Cada par (w
j
;w
j+1
) de vérties onseutivos
noiruitoéligadoporumsegmento(v
i
;v
i+1
;:::;v
i+p
)doilo. Graças
à desigualdade triangular (2.7), o usto da aresta w
j w
j+1
não é maior
queoustodosegmento. Portanto,ousto doiruitoresultanteC não
é maiorqueo doilodado P:
(C)(P): (2.9)
Denotamos por Atalho (short-ut) o proedimento que aabamos de
desrever. O tempo gasto pelo proedimento é proporional ao número
de arestasdo ilodadoe portanto ao número de arestasdo grafo.
Algoritmo de Rosenkrantz, Stearnse Lewis
Noalgoritmodesritoaseguir,omultigrafoT 0
(passo2daestratégia)
é obtido por meio da dupliação de ada uma das arestas da árvore
geradoraT. Oalgoritmoaparee emumartigo deRosenkrantz, Stearns
e Lewis[RSL77 ℄.
AlgoritmoTSPM-RSL(G;)
1 T MST(G;)
2 T 0
T+E
T
3 P Euler(T 0
)
4 C Atalho(P)
5 devolva C
Evidentemente, todo vértiedeT 0
temgrau pare, portanto, T 0
tem
umiloeuleriano. OalgoritmoEulerdeterminaumtalilo. Comoo
onjuntodevértiesdeT 0
éV
G
,oiloeulerianoP égerador. Oiruito
C devolvidopor Atalho na linha 4 é,então, umiruito hamiltoniano
de G.
Teorema2.4: OalgoritmoTSPM-RSLéuma2-aproximação
polinomialparao TSPM.
Demonstração: ComoP éumiloeulerianoemT+E
T
,temosque
(P)=2(T). Então, por (2.8) e (2.9),
A linha1 doalgoritmoonsometempoO(jV
G j
2
). Asdemaislinhason-
somemtempoO(jV
G
j),poisonúmerodearestasdeT 0
émenorque2jV
G j.
Em suma,o algoritmoé polinomial. 2
Algoritmo de Christodes
Um emparelhamento (mathing) em um grafo é um onjunto de
arestas sem extremos em omum (ou seja, ada vértie pertene a no
máximo uma das arestas do emparelhamento). Um emparelhamento
M é perfeito seada vértiedo grafo pertene a umaaresta de M. O
algoritmodeEdmonds[LP86℄,quedenotaremosporEdmonds,enontra Edmonds
umemparelhamento perfeitode usto mínimoemtempoO(n 3
),onde n
é onúmero de vértiesdo grafo.
O algoritmode Christodes [Chr76 ℄ aresenta à árvore geradora T
um emparelhamento perfeito no subgrafo de G induzido pelos vérties
que têmgrauímpar emT.
Algoritmo TSPM-Christofides(G;)
1 T MST(G;)
2 sejaI o onjuntodosvértiesde grauímparde T
3 M Edmonds(G[I℄;)
4 T 0
T+M
5 P Euler(T 0
)
6 C Atalho(P)
7 devolva C
Como M é um emparelhamento perfeito em G[I℄, todo vértie de
T+M temgraupare,portanto,omultigrafoT 0
nalinha4temumilo
euleriano. OiloégeradorpoisT égeradora. Na linha6doalgoritmo,
C éumiruito hamiltoniano deG.
Teorema2.5: O algoritmo TSPM-Christofides é uma 3
2 -
aproximação polinomial parao TSPM.
Demonstração: Preisamos mostrar que C tem usto no máximo
3
2
opt(G;). De aordo om (2.9), temos que (C) (P). Por ou-
tro lado, (P) = (T 0
) = (T) + (M). Usando (2.8), temos que
(C) 3
2
opt(G;), bastamostrar que
opt(G;)2(M): (2.10)
Seja C
umasolução ótimaparaoTSPM. Sejamu
1
;u
2
;:::;u
2k
osvér-
ties de I na ordem em que apareem em C
. Como G é ompleto, a
seqüênia D := (u
1
;u
2
;:::;u
2k
;u
1
) é um iruito em G[I℄. Em outras
palavras, D pode ser obtido de C
pela substituição de ada segmen-
to de C
que liga u
i a u
i+1
pela aresta u
i u
i+1
de G. A desigualdade
triangular (2.7) garante que (D) (C
). Além disso, omo D tem
omprimento par, E
D
é a união de dois emparelhamentos perfeitos em
G[I℄mutuamente disjuntos, digamos M 0
e M 00
. Logo,
2(M)(M 0
)+(M 00
)=(D)(C
)=opt (G;);
sendoqueaprimeiradesigualdadevaleporqueM éumemparelhamento
perfeitodeusto mínimo. Issoompleta aprova de(2.10).
A linha 3 onsome tempo O(jV
G j
3
), enquanto que as demais linhas
onsomem tempo O(jV
G j
2
). Portanto, o algoritmo é polinomial. 2
Propostoem1976, TSPM-Christofidesé aindaomelhor algorit-
modeaproximação onheido paraoTSPM. OalgoritmoTSPM-RSL
podeserumaboaalternativaemertasirunstânias: eleonsomeme-
nostempo queoTSPM-Christofides eé bem maissimples, poisnão
envolve a determinação de um emparelhamento perfeitode usto míni-
mo.
Exeríios
2.1 Mostre que o algoritmo Esalonamento-Graham(m;n;t) tem
razão de aproximação 2 1
m
. Para ada m, exiba uma instânia
para a qual o algoritmo produz um esalonamento que atinge tal
razãoem relaçãoao ótimo.
2.2 Considere avariantedoalgoritmo deGrahamqueoloaastarefas
em ordem não-deresente de tempo antes de omeçar o proes-
so de esalonamento. Mostre que essa variante é uma 4=3-aproxi-
mação polinomial parao Esalonamento. Exiba uma instânia
(m;n;t)paraaqualoalgoritmoproduzumesalonamentodeusto
4
3
opt(m;n;t).
2.4 O problema da obertura máxima (maximum overage pro-
blem) onsiste noseguinte:
Problema MaxCC(E;w;S;k): Dadosumonjuntonito
E, um peso w
e em Q
para ada e em E, uma oleção S
de subonjuntos de E e um inteiro não-negativo k jSj,
enontrarumasuboleção T de Btal quejTj=k e w(
S
T)
émáximo.
Este problema é NP-difíil [GJ79 ℄. Mostre que o algoritmo guloso
queesolheaadapassoumonjuntoqueobreosubonjuntomais
pesado de elementos desobertos é uma( 1 (1 k 1
) k
)-aproxima-
ção polinomialparao problema. Lembre-sede que1 (1 k 1
) k
>
1 e 1
,ondeeéabasedoslogaritmos naturais,eonluaqueesse
algoritmo éuma 0; 63-aproximaçãopara oMaxCC.
2.5 Construa instâniasdo MinCC omustos unitários, ou seja, ins-
tânias (E;S;) om
S
= 1 para todo S em S, para as quais o
ustodaoberturaproduzidapeloalgoritmo MinCC-Chvátalpo-
de hegararbitrariamentepertode H
n
opt(E;S;), onde n:=jEj.
2.6 Lembre-se que lnx é a primitiva da função 1=x. Deduza daí que
H
n
1 +lnn. Conlua que o algoritmo MinCC-Chvátal é
umaO(log n)-aproximação polinomialparaoMinCC(E;S;),on-
de n:=jEj>1.
2.7 Reesreva o algoritmo Mohila-Exato(m;n;v;w) de modo que
que mais evidente que as linhas 11 e 12 do algoritmo podem ser
exeutadas em tempo O(n+
v
), onde
v :=
P
i:wim v
i .
2.8 Considere oseguintealgoritmo gulosoparaoproblemadamohila:
seleione um a um os objetos j ujo valor de v
j
=w
j
é máximo até
que a apaidade da mohila seja atingida ou todos os objetos já
foram onsiderados. Mostre que este algoritmo não tem razão de
aproximação onstante, ou seja, exiba uma família de instânias
(m;n;v;w) do problema para as quais a razão entre o valor da
soluçãoproduzidapeloalgoritmoeopt (m;n;v;w)éarbitrariamente
pequena.
2.9 O problema do empaotamento unidimensional(bin paking
problem) onsisteno seguinte:
Problema Empaotamento(n;): Dadosuminteiropo-
sitivo n e, para ada i em f1;:::;ng, umnúmero raional
no intervalo fehado [0;1℄, enontrar umapartição B de
f1;:::;ng tal que (B) 1 para todo B em B e jBj seja
mínimo.
Este problema é NP-difíil no sentido forte [GJ79 ℄. Mostre que o
algoritmo abaixo é uma 2-aproximação polinomial para o Empa-
otamento. Exiba uma instânia (n;) para a qual o algoritmo
produz umapartiçãoB talque jBj=2opt (n;).
AlgoritmoEmpaotamento-Next-Fit(n;)
1 k 1
2 B
k
;
3 paraide 1anfaça
4 se
i
1 (B
k )
5 entãoB
k B
k [fig
6 senãok k+1
7 B
k fig
8 devolvafB
1
;:::;B
k g
2.10 Construaumafamíliadeinstânias(G;)doTSPMparaasquaiso
usto do iruito hamiltoniano obtido pelo algoritmo TSPM-RSL
pode ser arbitrariamente próximo de 2opt (G;). Construa uma
família de instânias (G;) do TSPM para as quais o usto do
iruito hamiltoniano obtido pelo algoritmo de Christodes pode
serarbitrariamente próximode 3
2
opt (G;).
2.11 Considere astrês seguintes variantesdo TSPM. Na primeira,bus-
amos um aminho hamiltoniano de usto mínimo no grafo dado.
Na segunda, queremos umaminho hamiltonianode usto mínimo
dentre os que omeçam em um dado vértie s. Na tereira, que-
remos um aminho hamiltoniano de usto mínimo dentre os que
omeçam emumdado vértie se terminam emumdado vértie t.
Modiqueo algoritmode Christodespara queelesejaumalgorit-
mo de aproximação om razão menor que 2 paraada uma destas
variantes.
2.12 MostrequeosalgoritmosTSPM-RSLeTSPM-Christofidespo-
demproduzirpéssimosresultadosseapliadosainstâniasdoTSP
que nãosatisfazem adesigualdade triangular.
Notas bibliográas
A primeira versão desse apítulo teve por base o livro editado por
Hohbaum [Ho97℄, o livro de Cormen et al. [CLR92 ℄, o texto de Gui-
ténio de Christodes [Chr76 ℄. Oexeríio 2.4 foiextraído do livro de
Vazirani[Vaz01 ℄.
Para o problema do esalonamento em máquinas idêntias, Hoh-
baum e Shmoys [HS88℄ obtiveram um esquema de aproximação polino-
mial, ouseja, uma(1+ ")-aproximação polinomialparatodonúmero ra-
ional positivo"xo. Oalgoritmo desrito noexeríio2.2 foiproposto
por Graham [Gra69 ℄. O algoritmo apresentado na seção 2.1 é onhe-
ido omo list sheduling. Diversas variantes do problema são disuti-
das na literatura. Uma boa amostra dessas variantes e suas apliações
enontra-senolivrodeBruker[Bru98 ℄enolivroeditadoporChrétienne
et al. [CJLL95℄.
O problema da obertura mínima por onjuntos, no aso espeial
em que todos os ustos são unitários, foi estudado primeiramente por
Johnson [Joh74 ℄, que apresentou uma(1+lnn)-aproximação, onde né
o número de elementos no onjunto que sequer obrir. Lovász[Lov75 ℄,
estudando oberturas em hipergrafos, obteve esse mesmo resultado. O
algoritmoMinCC-Chvátalapliado aessasinstâniasespeiaisoini-
de omesse algoritmo.
Umesquemadeaproximaçãoplenamentepolinomialparaoproblema
damohila,queonsomemenos tempoeespaçodoqueosanteriormente
onheidos, foireentemente obtidoporKellerer[KP99 ℄. Oproblemada
mohilatemdiversasvariantes(ompreedênia,não-linear,estoástia,
multidimensional). O livro de Martello e Toth [MT90 ℄ é umaexelente
resenha do estado-da-arte para muitas dessas variantes. Entre outras
oisas,olivroapresentaresultadosomputaionaissobreimplementações
deváriosalgoritmosexatosedeaproximaçãoeontémumdisqueteom
osódigos dasimplementações.
O TSP é onsiderado um problema entral na área de otimização
ombinatória. O livro editado por Lawler et al. [LLRS90 ℄, om ontri-
buições de diversos autores, fornee uma resenha uniada, ompleta e
atualizada até 1985. Uma resenha mais reente, devida a Jünger, Rei-
nelt e Rinaldi [JRR95℄, disute várias ténias, onentrando-se naque-
las que têm semostrado mais eazes pararesolver instânias do TSP
que surgem na prátia. Dentre essas, destaamos a heurístia de Lin e
Kernighan [LK73 ℄ e os métodos branh-and-ut, quebaseiam-se em um
poliedroassoiadoao TSP[ABCC98℄.
A bibliotea TSPLIB, mantida por Reinelt [Rei00 ℄, é uma oletâ-
nea de instânias do TSP de diversos tamanhos e tipos. Ela é usada
em estudos omparativos da eiênia e eáia de novas heurístias e
Umesquemadeaproximaçãopolinomialpara aversãoeulidianado
TSPemdimensãoxa foiobtidopor Arora[Aro98 ℄e, logoemseguida,
independentemente,porMithell[Mit99℄. Umalgoritmodeaproximação
para o problema do aminho hamiltoniano de usto mínimo, nos mol-
des do algoritmo de Christodes, foi projetado por Hoogeveen [Hoo91℄
(exeríio 2.11). Arora et al. [AGK +
98℄ apresentaram um esquema de
aproximação polinomial parao TSPMrestrito a grafos planares.
Osostiado algoritmode Edmonds[Edm65a,Edm65b ,LP86℄para
enontrar um emparelhamento perfeito de usto mínimo é um maro
na teoria algorítmia dos grafos e está ligado às origens da teoria de
omplexidade (apêndieE).
Método Primal
Vimos no apítulo anteriorque ténias bemonheidas de projeto
dealgoritmos, omoaprogramação dinâmiaeométodo guloso,podem
resultar em bonsalgoritmos de aproximação. Neste apítulo e nos pró-
ximos três, mostramos omo programação linear(apêndie C) pode ser
usadana riaçãode bonsalgoritmosde aproximação.
Programação linear é uma ferramenta útil pois existem bons algo-
ritmos para resolver programas lineares. Além disso, ela pode forneer
boas delimitações para o valor ótimo do problema em questão e, omo
já vimos,taisdelimitaçõessãoesseniais paraa análiseda qualidadeda
solução produzida por umalgoritmo de aproximação.
Para riar um algoritmo de aproximação baseado em programação
linear, neessitamos de um programa linear que seja uma relaxação do
problema de otimização: ada solução viáveldo problema ombinatório
deveorresponder aumasolução viável doprograma linear.
3.1 Ténia do arredondamento
Uma ténia simplesmas às vezes eaz é a do arredondamento.
Esta ténia onsiste em arredondar uma solução ótima de um progra-
ma linearque represente o problema original. A ténia pode dar bons
resultados não sóomprogramas lineares, omo veremosno apítulo 7.
Nestaseção,vamosapliaraténiadoarredondamento aoproblemada
obertura mínima por onjuntos, já disutidona seção2.2.
Problema MinCC(E;S;): DadosumonjuntonitoE,uma
oleção nita Sde onjuntos nitos queobre E e um usto
S
emQ
paraada S emS,enontrar umaobertura Tde E que
minimize (T).
Para apliar a téniado arredondamento, preisamosformular um
programalinearquerepresenteoMinCC.Considereoseguinteprograma
linear: enontrar umvetor x indexadopor Sque
minimize x
sobasrestrições P
S:e2S x
S
1 para ada eemE;
x
S
0 para ada S em S:
(3.1)
Neste programa,tem-se umavariávelx
S
para adaS emSe,paraada
e em E, uma restrição que orresponde à exigênia de que e seja o-
berto. O programa linear (3.1) é limitado, pois x 0 para qualquer
solução viável x de (3.1), e é viável já que o vetor araterístio de S
satisfaz as restrições de (3.1). Assim, pelo teorema forte da dualidade
(teoremaC.3,apêndieC),o programa(3.1) temumasolução ótimara-
ional. Como o vetoraraterístio dequalquer obertura deE éviável
em (3.1), temos a seguinte delimitação inferior para o valor ótimo do
problemaMinCC(E;S;):
opt(E;S;) x^ (3.2)
paratoda solução ótimax^de (3.1).
Setodososomponentesdeumasolução ótimax^sãointeiros,asub-
oleçãofS2S:x^
S
>0géumasoluçãoótimadoMinCC,ouseja,éuma
obertura deE deusto mínimo. Em geral,porém,vários omponentes
de x^ sãofraionários. Ao arredondarmos osvaloresdesses omponentes
de maneira apropriada, podemos obter uma obertura de E. A seguir,
analisamosuma possívelmaneirade realizar estearredondamento.
Para ada e emE, sejaf
e
afreqüênia dee emS, isto é,o número
de elementosde Saos quaisepertene. Seja a maior dasfreqüênias.
Como S obre E, temos que > 0. O próximo algoritmo, projetado
porHohbaum[Ho82℄,esolheumonjunto S emSparafazerparteda
obertura seesomente seo valorda variávelx^ é pelomenos 1=.
Algoritmo MinCC-Hohbaum(E;S;)
1 sejax^ uma soluçãoótimaraionalde (3.1)
2 para adaeem E faça f
e
jfS2S:e2Sgj
3 max
e2E f
e
4 T fS 2S:x^
S
1=g
5 devolva T
A oleçãoTé umaobertura,omopassamosamostrar. Cadaeem
E pertene a no máximo onjuntos de S. Este fato, juntamente om
a restrição P
S:e2S x
S
1, garante que x^
S
1= para algum S que
ontém e. Portanto, T ontém algum S queontém e, ouseja, T é uma
obertura de E.
Teorema3.1: Oalgoritmo MinCC-Hohbauméuma-apro-
ximação polinomialparao MinCC(E;S;), onde é onúmero
máximo de vezes que um elemento de E aparee em onjuntos
de S.
Demonstração: Ousto daobertura T produzidapeloalgoritmo é
(T) = P
S2T
S
P
S2T
S
^ x
S
x^ opt(E;S;);
onde a primeira desigualdade vale pois x^
S
1 para todo S em T e a
última valepor (3.2).
O programalinear (3.1) tem jSj variáveis e jEjrestrições(as restri-
ções x
S
0 são implíitas) e, portanto, o tamanho do sistema (3.1) é
(jSj+1)jEj+hi. Como programas lineares podem ser resolvidos em
tempo polinomial (fato C.4), a linha 1 do algoritmo pode ser exeuta-
da em tempo polinomial. Asdemais linhas laramente também podem
ser exeutadas emtempo polinomial emjEje jSj. Assim,o algoritmo é
polinomial. 2
3.2 Ténia métria
Como naseção anterior,usaremos uma solução ótimax^ deum pro-
grama linear assoiado ao problema ombinatório. Desta vez, x^ é um
vetor indexado pelas arestas de um grafo e ada omponente x^
e será
interpretado omoo omprimento da aresta e.
Vamosdesreveraapliaçãodessaténiaaoproblemadomultiorte
dizemos queumaminho de sa té umK-aminhose fs;tg2K. Um
onjuntoM dearestaséumK-multiortesenão existeK-aminhono
grafoG M. Oproblemadomultiortemínimo(minimummultiut
problem) onsiste noseguinte:
Problema MinMCut(G;K ;): Dados um grafo G, um on-
junto K de pares de vérties e um usto
e em Q
para ada
aresta e, enontrarumK-multiorte M queminimize (M).
Há um bem onheido algoritmo polinomial [AMO93℄ para o aso
em que jKj = 1. Para o aso em que jKj = 2, também existe um
algoritmopolinomial[Hu63,Ita78℄. Dahlhausetal.[DJP +
94 ℄mostraram
que o problema é NP-difíil mesmo quando restrito às instânias em
quejKj=3.
Denote por P o onjunto de todos osK-aminhos e onsidere o se- P
guinte problemade programaçãolinear: enontrarumvetor xindexado
porE
G que
minimize x
sobasrestrições x(E
P
) 1 paraada P emP;
x
e
0 paraada eemE
G :
(3.3)
O vetor araterístio de E
G
é viável em (3.3) e x 0 para qualquer
solução viável x de (3.3). Portanto, de aordo om o teorema forte da
dualidade,o programa(3.3) temumasolução ótimaraional. Arelação
entreeste programa e o MinMCut é simples: o vetor araterístio de
qualquer K-multiorte éviávelem (3.3)e portanto
opt (G;K ;)x^ (3.4)
paraqualquer solução ótimax^ de (3.3).
O algoritmo abaixo foi onebido por Garg, Vazirani e Yannaka-
kis [GVY96℄ e fornee a melhor razão de aproximação onheida para
o MinMCut. Ele supõe que K 6= ;; em aso ontrário, o problema é
trivial.
AlgoritmoMinMCut-GVY(G;K ;)
1 sejax^ umasoluçãoótimaraionalde (3.3)
2 k jKj k
3 M Central(G;k;K ;;x)^
O algoritmo Central, que detalhamos adiante, produz um K-
multiorte M talque
(M) (4ln2k)x: (3.5)
Teorema3.2: Oalgoritmo MinMCut-GVYé uma(4ln2k)-
aproximaçãopolinomialparao MinMCut(G;K ;), sendok :=
jKj>0.
Demonstração: Em virtude de (3.5) e (3.4),o usto (M) do multi-
orte M queo algoritmodevolve satisfaz
(M) (4ln2k)x^ (4ln2k)opt(G;K ;):
Onúmeroderestriçõesdoprograma (3.3)podeserexponenialemjV
G j.
Ainda assim, a linha 1 do algoritmo MinMCut-GVY pode ser exeu-
tadaem tempo polinomialem hGi+hi, já quetemos umalgoritmo de
separação (apêndie C)para (3.3): interprete x
e
omo omprimento da
aresta e,aluleumaminho deomprimento mínimodesatparaada
fs;tg em K. Se algum destes aminhos, digamos P, tiveromprimento
menor que1, o vetor x não satisfaz a restrição de (3.3) orrespondente
a P. Doontrário, x satisfaz todas asrestrições de (3.3). Esse algorit-
mode separaçãoonsometempopolinomialemhGi (useoalgoritmo de
Dijkstra[AMO93℄, por exemplo)eportanto alinha1doalgoritmo pode
ser exeutadaemtempopolinomial emhGi+hi.
Asoluçãox^éraionaleh^xiélimitadoporumpolinmioemhGi(fa-
toC.4). Comomostraremosaoanalisaroalgoritmo Central,alinha3
onsometempopolinomialemhGi+hi+h^xieportanto polinomialem
hGi+hi. Assim,podemosonluir queoalgoritmo MinMCut-GVYé
polinomial. 2
Algoritmo entral
O algoritmo Central reebe um grafo G, um inteiro k 1, um
onjunto K deno máximok pares devérties,umvetorraional eum
vetorraionalnão-negativoxtalquex(E
P
)1paratodoK-aminhoP.
Dado o aráterreursivo do algoritmo, é neessário renar aespeia-
ção (3.5): o algoritmoCentral produz umK-multiorte M talque
(M) (2ln2k)(1+ 1
k
jKj)x: (3.6)
Paraobter umtalmultiorte, Central alulaumapartição (S;T) de S
V
G
que separe os dois vérties de algum par em K de modo a man-
ter (Æ(S)) razoavelmente pequeno. A partição (S;T) induz a partição
(A;Æ(S);B) de E
G
,onde A é oonjunto dasarestas que têm ambos os A
extremosemS e B éoonjuntodasarestasquetêmambososextremos B
emT. Oalgoritmoé entãoapliado, reursivamente, ao grafo(V
G
;B).
Para desrever o algoritmo Central, preisamos de alguma nota-
ção. Para quaisquer vérties s e u, seja x(s;u) := min
P x(E
P
), onde x(s;u)
o mínimo é tomado sobre todos os aminhos P de s a u (é laro que
x(s;u) = 1 se não existe aminho de s a u). Podemos interpretar
x(s;u)omo a distânia de s a u. Paraqualquer número , denotamos
porV(s;)oonjunto detodososvértiesàdistânianomáximodes, V(s;)
ouseja,
V(s;):=fv 2V
G
:x(s;v)g:
Imagine que as arestas do grafo são tubos, sendo x
e
o omprimento e
e
a área da seção transversal do tubo e. Com essa interpretação em
mente, denote por #(s;) ovolume da parte da tubulação que dista no
#(s;)
máximo des:
#(s;):=
A x
A +
P
uv2Æ(S);u2S
uv
( x(s;u));
onde S :=V(s;)e
A e x
A
sãoasrestriçõesde e x,respetivamente,
ao onjunto de arestas A := E
G[S℄
. É laro que #(s;) x qualquer
queseja.
Agoraestamos prontos paradesrevero algoritmo Central.
AlgoritmoCentral(G;k;K ;;x)
1 seK =;
2 então devolva;
3 senãose x=0
4 então devolvafe2E
G :x
e
>0g
5 senãosejamse tos extremosde umK-aminho
6 sejav
1
;:::;v
n
uma ordenação dosvérties
7 talquex(s;v
1
)x(s;v
n )
8 para ide 1an façap
i
x(s;v
i ) p
i
9 j 1+maxfi:p
i
=0g
10 enquanto #(s;p
j
)>((2k) 2p
j
1) 1
k x
11 façaj j+1
12 S V(s;p )
13 T V
G nS
14 B E
G[T℄
15 G
B (V
G
;B) GB
16 K
B
Knffs 0
;t 0
g: S separa s 0
de t 0
g
17 M
B
Central(G
B
;k;K
B
;
B
;x
B )
18 devolvaÆ(S)[M
B
Na linha16,dizemosqueS separas 0
det 0
seS ontémexatamente
umde s 0
et 0
. Na linha17, osvetores
B e x
B
são asrestriçõesde e x
a B,respetivamente.
No m da linha 9, temos 2 j n pois p
1
= x(s;s) = 0 e p
n
x(s;t)1. Apósaslinhas10e 11,omo p
n
1 e k1,
((2k) 2pn
1) 1
k
x((2k) 2
1) 1
k
x>(2k 1) 1
k
xx#(s;p
n ):
Nalinha17,asondiçõesdeapliabilidadedoalgoritmoCentralestão
satisfeitas: jK
B
jjKjk,x
B
énão-negativo e x
B (E
P
)1paratodo
K
B
-aminho P emG
B .
Lema 3.3: Ao m da linha 12 do algoritmo Central, temos
que
(Æ(S))(2ln2k)
A x
A +
Æ(S) x
Æ(S) +
1
k x
;
onde
A e x
A
sãoas restriçõesde e x ao onjunto A :=E
G[S℄
enquanto
Æ(S) ex
Æ(S)
sãoasrestriçõesde e x a Æ(S).
Demonstração: É preisoveriarque, apósaslinhas10 e11,
p
j 1
< p
j
; (3.7)
#(s;p
j 1
) ((2k) 2p
j 1
1) 1
k
x e (3.8)
#(s;p
j
) ((2k) 2p
j
1) 1
k
x: (3.9)
Como já vimos aima, 2j n após aslinhas 10 e 11. Suponha pois
quej=2. Então, emvirtudedalinha 9,temosquep
j 1
=p
1
=0<p
j .
Além disso, aindasupondo j=2,temosque
#(s;p
j 1
)=#(s;p
1
)=#(s;0)=0=((2k) 0
1) 1
k x;
enquanto que#(s;p
j
)((2k) 2p
j
1) 1
k
x emvirtudedaslinhas10e 11.
Agora analisemos oaso emquej >2. Claramente, (3.8) e(3.9) valem
emvirtudedaslinhas10e 11. Dissoseguequep
j 1 6=p
j
. Como p
j 1
p ,pelaslinhas6 e 7,temosque(3.7) vale.
Agora prosseguimos om a prova do lema. De (3.8) e (3.9) temos
que
#(s;p
j )+
1
k x
#(s;p
j 1 )+
1
k x
(2k) 2(p
j p
j 1 )
: (3.10)
Tomando-se o logaritmo natural do lado esquerdo de (3.10) e
desenvolvendo-o, obtemos
ln( #(s;p
j )+
1
k
x) ln(#(s;p
j 1 )+
1
k x) =
= Z
p
j
pj
1 d
d
ln(#(s;)+ 1
k x)d
= Z
p
j
p
j 1
(Æ(S))
#(s;)+ 1
k x
d;
poisaderivada de#(s;)+ 1
k
x emrelaçãoa no intervalo (p
j 1
;p
j ) é
(Æ(S)). Fazendo-se omesmoom o ladodireitode (3.10), obtemos
2(p
j p
j 1
)ln2k = Z
pj
p
j 1
(2ln2k)d:
Como ologaritmo éumafunção resente,onluímosde (3.10) que
Z
pj
p
j 1
(Æ(S))
#(s;)+ 1
k x
d
Z
pj
p
j 1
(2ln2k)d:
Então, paraalgum no intervalo (p
j 1
;p
j
), quenão é vazio emvirtude
de (3.7),temosque(Æ(S))=(#(s;)+ 1
k
x)(2ln2k).
Para onluir olema,resta mostrarque#(s;)
A x
A +
Æ(S) x
Æ(S) .
Para isso, note que, para todo uv em Æ(S) om u em S, temos que
x(s;v) > e x(s;v) x(s;u)+x
uv
, donde x(s;u) < x
uv
. Como
S=V(s;p
j 1
)=V(s;), segueque
#(s;) =
A x
A +
P
uv2Æ(S);u2S
uv
( x(s;u))
A x
A +
P
uv2Æ(S)
uv x
uv
=
A x
A +
Æ(S) x
Æ(S)
;
omoqueríamos demonstrar. 2
Finalmente, estamos preparados para apresentar a análise do algo-
Teorema3.4: Oalgoritmo Central(G;k;K ;;x)produzum
K-multiorte M tal que
(M)(2ln2k)(1+ 1
k
jKj)x (3.11)
e onsometempopolinomial emhGi+hi+hxi.
Demonstração: Vamos omeçar provando que, após a exeução das
linhas10 e 11,
p
j 1
<
1
2
: (3.12)
Para isso, seja h o menor natural tal que p
h
1
2
. Tal h existe e é
maior que 1 já que p
n
x(s;t) 1 e p
1
= 0. Como #(s;p
h
) x e
(2k) 2p
h
1k,poisk 1e p
h
1
2
,então#(s;p
h
)((2k) 2p
h
1) 1
k x.
Assim, j h depois da exeução da linha 11 e, omo p
h 1
<
1
2 pela
esolhade h e porque p
1
=0,a desigualdade (3.12) vale.
Agora vamos veriarqueo onjunto devolvidopeloalgoritmo éde
fatoumK-multiorte. SeK=;,entãooonjunto vazioqueoalgoritmo
devolve é um multiorte. Se x = 0, o onjunto fe 2 E
G : x
e
> 0g é
um K-multiorte: omo x(E
P
) 1 para todo K-aminho P, todo K-
aminho tempelomenos umaaresta e omx
e
>0. Suponha agora que
K 6= ; e x > 0. Neste aso, o algoritmo devolve M := Æ(S) [M
B
;
podemos supor, por hipótese de indução, que M
B
é um K
B
-multiorte
no grafo G
B
. Vamos veriar que M é um K-multiorte em G. Para
quaisquer doisvérties u e vem S,
x(u;v) x(u;s)+x(s;v)<1; (3.13)
poisdistâniassatisfazemadesigualdade triangulare vale(3.12). Supo-
nha agoraque P é umK-aminhoem G. Como x(E
P
)1,a desigual-
dade (3.13) garante que P tem pelo menos um extremo fora de S. Se
P temum vértieem S,então tambémtem pelomenos uma aresta em
Æ(S). Se P não tem vérties em S,então tambémé umK
B
-aminho e,
portanto, tem pelo menos uma aresta em M
B
. Logo, Æ(S)[M
B é um
K-multiorte.
Se K = ; ou x = 0, laramente (3.11) vale. Suponha então que
K 6= ; e x > 0. Neste aso, o algoritmo devolve M := Æ(S) [M
B .
Comofs;tgestáemKmasnãoemK
B
,temosjK
B
j<jKj. Issogarante
o suesso da reursão na linha 17 e, portanto, (3.11) vale om M
B ,
B ,
x eK
B
nolugardeM,,xeK. Disso,edo lema3.3,onluímosque