Vous êtes sur la page 1sur 67

IMPLEMENTAO E ANLISE DE

ALGORITMOS PARA COLORAO DE ARESTAS


TIAGO DE OLIVEIRA JANUARIO
IMPLEMENTAO E ANLISE DE
ALGORITMOS PARA COLORAO DE ARESTAS
Dissertao apresentada ao Programa de
Ps-Graduao em Cincia da Computao
do Instituto de Cincias Exatas da Univer-
sidade Federal de Minas Gerais como re-
quisito parcial para a obteno do grau de
Mestre em Cincia da Computao.
Orientador: Sebastin Alberto Urrutia
Belo Horizonte
Maro de 2011
c _ 2011, Tiago de Oliveira Januario.
Todos os direitos reservados.
Januario, Tiago de Oliveira
J35i Implementao e Anlise de Algoritmos para
Colorao de Arestas / Tiago de Oliveira Januario.
Belo Horizonte, 2011
xx, 0 f. : il. ; 29cm
Dissertao (mestrado) Universidade Federal de
Minas Gerais
Orientador: Sebastin Alberto Urrutia
1. Computao. 2. Teoria dos Grafos-Teses.
I. Orientador. II. Ttulo.
CDU 519.6*62 (043)
Agradecimentos
Agradeo a Deus pela vida. Agradeo a meus pais por cuidarem de mim mesmo de
longe e por estarem sempre presentes e acompanhando meus passos. Agradeo por ter
duas irms to lindas que sempre esto disponveis quando eu preciso de uma orelha
para puxar.
Agradeo ao meu orientador Sebastin, pela amizade, conana, pacincia, in-
centivos, compreeno nos momentos difceis, ensinamentos e pela oportunidade de
desenvolver este trabalho.
Ao Zilton, pelas noites em claro jogando conversa fora e tomando terer, por
todas as vezes em que samos juntos e gastei todo o meu dinheiro, pelo show do a-ha
que eu no vi, e pela honra de ter morado com um baiano to gente na.
Ao Mayron, que foi uma das pessoas que me motivou a estar aqui, com quem
passei boa parte da graduao trabalhando, que sempre foi para mim um exemplo de
dedicao e disciplina.
Aos professores do Departamento de Informtica da Universidade Federal de Vi-
osa, que me forneceram uma forte base de conhecimento que me ajudou a chegar at
aqui, em especial, aos professores Andr Gustavo e Jos Elias, pela amizade, compa-
nherismo e conana em mim depositada.
Aos meus companheiros do LaPO, com quem passei maior parte do meu tempo
ao longo desses dois anos de estrada.
A todos os amigos que z em Belo Horizonte, por todos os momentos de alegria e
tambm a todos os amigos que z nos eventos dos quais participei durante o mestrado.
Ao Conselho Nacional de Desenvolvimento Cientco e Tecnolgico (CNPq),
Universidade Federal de Minas Gerais e ao Departamento de Cincia da Computao,
pelo apoio nanceiro, por terem me acolhido e me proporcionado uma excelente infra-
estrutura de estudo e pesquisa.
A todos vocs, muito obrigado.
T.O.J.
vii
Resumo
O problema de Colorao de Arestas, extensivamente estudado em Teoria dos Grafos,
consiste em colorir as arestas de um grafo de tal forma que arestas incidentes em um
mesmo vrtice tenham cores distintas e que o nmero de cores utilizadas seja o menor
possvel.
O resultado mais importante a respeito do problema de colorao de arestas
surgiu em 1964 com o Teorema de Vizing, que deniu que o nmero mnimo de cores
necessrias para colorir um grafo, denominado de ndice cromtico

, est limitado
entre os valores e + 1, onde o grau mximo do grafo.
Neste trabalho so apresentados duas implementaes ecientes para colorao
de arestas de grafos simples, baseados no Teorema de Vizing, utilizando no mais que
+ 1 cores. Vrias adaptaes em estruturas de dados e na ordem de processamento
das arestas e cores foram propostas com o intuito de reduzir o tempo de execuo das
operaes realizadas com maior frequncia. Tambm foram desenvolvidas duas estrat-
gias de pr-processamento que fornecem um grafo parcialmente colorido como entrada
para o algoritmo de colorao de arestas. Os resultados experimentais mostram que as
estratgias desenvolvidas permitem uma reduo de 63,92% no tempo de execuo das
implementaes dos algoritmos de colorao de arestas aqui estudados.
Palavras-chave: Teoria dos Grafos, Colorao de Arestas, Teorema de Vizing, Im-
plementaes ecientes.
ix
Abstract
The Edge Coloring Problem, extensively studied in Graph Theory, concerns coloring
the edges of a graph such that edges incident on the same vertex have distinct colors
and the number of used colors is minimized.
The most important result on the edge coloring problem was proposed in 1964
with Vizings Theorem, which established that the minimum number of colors needed
to color a graph, the chromatic index

, is limited between the values and + 1,


where is the maximum degree of the graph.
This work presents two ecient edge coloring implementations for simple graphs
based on Vizings Theorem using no more than + 1 colors. Several adaptations in
data structures and in the processing order of edges and colors have been proposed
in order to reduce the runtime of the operations more frequently performed. We also
developed two preprocessing strategies that provide a partially colored graph as input
to the edge coloring algorithm. Experimental results show that the proposed strategies
allow gains up to 63.92% in terms of performance in the edge coloring algorithms
studied here.
Keywords: Graph theory, Edge coloring, Vizings Theorem, Ecient implementati-
ons.
xi
Lista de Figuras
1.1 Soluo tima para o exemplo do problema de agendamento de reunies
modelado atravs de colorao de arestas. . . . . . . . . . . . . . . . . . . 1
2.1 Critrios de parada na construo do fan maximal. . . . . . . . . . . . . . 11
2.2 Exemplo de rotao do fan em n = k passos. . . . . . . . . . . . . . . . . 12
2.3 Figura esquerda: o fan maximal encontrado, visto que, uma cor
k
,
disponvel em v
k
, tambm est disponvel em w. Figura direita: resultado
aps a rotao do fan em k passos. . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Figura esquerda: P termina em um vrtice diferente de vj ou w. Figura
direita: resultado aps alternar o caminho P e rotacionar o fan em k passos. 13
2.5 Figura esquerda: caso no qual P termina no vrtice vj. Figura direita:
resultado aps alternar o caminho P e rotacionar o fan em j passos. . . . 14
2.6 Figura esquerda: caso no qual P termina no vrtice w. Figura direita:
resultado aps alternar o caminho P e rotacionar o fan em j + 1 passos. . 14
3.1 Diferentes cenrios para a construo do caminho alternado / path
partindo do vrtice v
0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Obtendo uma cor disponvel em um vrtice utilizando estruturas de dados
em bits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Exemplo da obteno de uma cor disponvel para a colorao da aresta
e(v
2
, v
7
) com a representao em bits. As cores disponveis para a colorao,
obtidas atravs da operao AND, so Free(v
2
) Free(v
7
) = 2, 4, 7. . . 23
4.1 Grafos DENSOS: razo de colorao e tempos de execuo. . . . . . . . . . 31
4.2 Grafos GRANDES: razo de colorao e tempos de execuo. . . . . . . . 32
4.3 Grafos REGULARES: razo de colorao e tempos de execuo. . . . . . . 32
4.4 Grafos DENSOS: comparando as estruturas de dados que representam o
conjunto Free(v), para analisar a razo de colorao e tempos de execuo. 33
xiii
4.5 Grafos GRANDES: comparando as estruturas de dados que representam o
conjunto Free(v), para analisar a razo de colorao e tempos de execuo. 34
4.6 Grafos REGULARES: comparando as estruturas de dados que representam
o conjunto Free(v), para analisar a razo de colorao e tempos de execuo. 34
4.7 Grafos DENSOS: comparao com os algoritmos disponveis na literatura. 35
4.8 Grafos GRANDES: comparao com os algoritmos disponveis na literatura. 35
4.9 Grafos REGULARES: comparao com os algoritmos disponveis na litera-
tura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.10 Grafos DENSOS: comparao entre as implementaes bsicas dos algorit-
mos estudados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.11 Grafos GRANDES: comparao entre as implementaes bsicas dos algo-
ritmos estudados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.12 Grafos REGULARES: comparao entre as implementaes bsicas dos al-
goritmos estudados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.13 Grafos DENSOS: novos resultados obtidos com o auxlio da estratgia de
pr-processamento a priori. . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.14 Grafos GRANDES: novos resultados obtidos com o auxlio da estratgia de
pr-processamento a priori. . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.15 Grafos REGULARES: novos resultados obtidos com o auxlio da estratgia
de pr-processamento a priori. . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.16 Grafos DENSOS: novos resultados obtidos com o auxlio do pr-
processamento embutido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.17 Grafos GRANDES: novos resultados obtidos com o auxlio do pr-
processamento embutido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.18 Grafos REGULARES: novos resultados obtidos com o auxlio do pr-
processamento embutido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
xiv
Lista de Tabelas
2.1 Principais contribuies de algoritmos para colorao de arestas disponveis
na literatura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.1 Valores das mdias de reduo no tempo de execuo obtidos pelas estrat-
gias de pr-processamento para os algoritmos estudados. . . . . . . . . . . 40
xv
Lista de Algoritmos
1 Algoritmo de Colorao de Arestas Tradicional . . . . . . . . . . . . . . 15
2 Algoritmo de Colorao de Arestas Proposto . . . . . . . . . . . . . . . 18
3 Utilizando o pr-processamento a priori. . . . . . . . . . . . . . . . . . 27
4 Utilizando o pr-processamento embutido. . . . . . . . . . . . . . . . . 27
xvii
Sumrio
Agradecimentos vii
Resumo ix
Abstract xi
Lista de Figuras xiii
Lista de Tabelas xv
Lista de Algoritmos xvii
1 Introduo 1
1.1 Objetivos e Resultados desta Dissertao . . . . . . . . . . . . . . . . . 3
1.2 Organizao do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Colorao de Arestas e o Teorema de Vizing 5
2.1 Denies em Teoria dos Grafos . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 O Teorema de Vizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Algoritmo para Colorao de Arestas 17
3.1 Algoritmo de Colorao de Arestas Proposto . . . . . . . . . . . . . . . 17
3.2 Estruturas de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 Implementao e Atualizao das Estruturas de Dados . . . . . 21
3.3 Estratgias de Execuo . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Pr-processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Outras Implementaes para o Problema de Colorao de Arestas . . . 28
4 Anlises Experimentais 29
xix
4.1 Descrio do Ambiente Computacional e Instncias de Teste . . . . . . 29
4.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5 Concluso 43
Referncias Bibliogrcas 45
xx
Captulo 1
Introduo
O problema de Colorao de Arestas, extensivamente estudado em Teoria do Grafos,
consiste em colorir as arestas de um grafo de tal forma que arestas incidentes em um
mesmo vrtice tenham cores distintas e que o nmero de cores utilizadas seja o menor
possvel. Solues para problemas reais podem ser obtidas com o auxlio da colorao
de arestas, de tal forma que os vrtices podem representar: processadores, professo-
res e alunos, sensores, equipes esportivas, etc., enquanto as cores das arestas podem
representar: processos a serem executados, salas de aula, proximidades, estdios, etc.
O seguinte exemplo, ilustrado pela Figura 1.1, pode ser modelado atravs de
colorao de arestas: suponha que seja necessrio organizar uma srie de pequenas
reunies, entre duas pessoas, em um grupo com dez pessoas. Com o objetivo de
eliminar qualquer conito de horrios, todas as entrevistas poderiam ser agendadas em
momentos distintos, no entanto, menos recursos sero desperdiados (salas de reunies,
Figura 1.1. Soluo tima para o exemplo do problema de agendamento de
reunies modelado atravs de colorao de arestas.
1
2 Captulo 1. Introduo
horrios, etc.) se vrias entrevistas forem realizadas ao mesmo tempo. Neste caso, seja
um grafo cujos vrtices so as pessoas e cujas arestas representam as reunies a serem
agendadas. Uma colorao de arestas deste grafo dene a agenda de reunies, tal
que as diferentes cores representam diferentes horrios no cronograma, com todas as
reunies da mesma cor acontecendo simultaneamente. A Figura 1.1 apresenta uma
soluo tima para o problema, onde nesse resultado, so necessrios quatro horrios,
representados pelos nmeros de 1 a 4, para agendar as reunies entre as dez pessoas
em questo, tomadas duas a duas.
O resultado mais importante a respeito do problema de colorao de arestas
surgiu em 1964 com o Teorema de Vizing, que deniu que o nmero mnimo de cores
necessrias para colorir um grafo, denominado de ndice cromtico

, est limitado
entre os valores e + 1, onde o grau mximo do grafo.
A partir do Teorema de Vizing possvel classicar os grafos em Classe 1 ou
Classe 2. Um grafo dito Classe 1 se

= , e dito Classe 2 se

= + 1. O
Teorema de Vizing impe claramente que no existe outra possibilidade. Decidir a
qual classe um grafo pertence um problema de classicao. Para determinar se o
grafo G pertence Classe 1, primeiro procura-se uma colorao que utilize apenas
cores para G. Se esta colorao encontrada, ento G pertence Classe 1. No entanto,
encontrar uma colorao que utilize + 1 cores no garante que o grafo G pertena
Classe 2, uma vez que qualquer grafo que pertence Classe 1 tambm pode utilizar
uma cor extra em sua colorao e assim ser colorido com + 1 cores. Portanto, para
provar que um grafo pertence Classe 2, preciso provar que este grafo no pertence
Classe 1. Holyer [1981] demonstra que o problema de classicao ^T-Completo, o
que torna a busca por algoritmos polinomiais cada vez mais ecientes na obteno de
uma colorao com + 1 cores, um tema de interesse para a comunidade acadmica.
A demonstrao construtiva do Teorema de Vizing utiliza induo na colorao
das arestas do grafo. Essa demonstrao serviu como base para vrios algoritmos
polinomiais de colorao de arestas que utilizam no mximo +1 cores. Gabow et al.
[1985] apresentam uma reviso da bibliograa sobre o tema, com os melhores algoritmos
de colorao de arestas, suas evolues e um estudo terico quanto anlise de suas
complexidades assintticas. Porm, mesmo aps vrios anos de pesquisa a respeito
desse tema, at o momento no se conhecem resultados experimentais expressivos para
o problema de colorao de arestas de grafos simples que utilize no mximo + 1
cores, ilustrando os reais desempenhos dos algoritmos encontrados na literatura. To
pouco se tem conhecimento a respeito de publicaes de estratgias de execuo ou
heursticas que poderiam ser utilizadas para se obter melhores resultados com relao
aos tempos de execuo de suas implementaes. Alm disso, no h sinais de que
1.1. Objetivos e Resultados desta Dissertao 3
os algoritmos propostos na literatura tenham sido testados para grafos com grandes
valores de nmero de vrtices ou arestas.
Este trabalho apresenta propostas de adaptaes em estruturas de dados utiliza-
das para o armazenamento de informaes sobre as cores, vrtices e arestas dos grafos.
Diversas anlises experimentais realizadas consideraram a ordem de escolha das ares-
tas e das cores para investigar a inuncia destas variveis no tempo de execuo dos
algoritmos. Tambm foram desenvolvidas duas estratgias de pr-processamento que
fornecem um grafo parcialmente colorido como entrada para o algoritmo de colorao
de arestas.
1.1 Objetivos e Resultados desta Dissertao
Nesta dissertao, o problema de colorao de arestas com + 1 cores para grafos
simples estudado e tem-se como objetivo propor uma implementao mais eciente
de algoritmo de colorao de arestas para resolver este problema. Foram propostas
vrias verses de um algoritmo de colorao de arestas baseadas no Teorema de Vi-
zing. Com o objetivo de executar as operaes mais frequentes com maior ecincia,
foram projetadas estruturas de dados adaptadas para o problema a m de reduzir
o tempo de execuo dessas operaes em vrias etapas do algoritmo implementado.
Tambm foram desenvolvidas duas estratgias de pr-processamento para obter um
grafo parcialmente colorido como passo inicial do algoritmo de colorao.
Os resultados obtidos pelas implementaes apresentadas neste trabalho foram
experimentalmente comparadas com os resultados das implementaes disponveis na
literatura e obtiveram um desempenho expressivo em termos de tempo de execu-
o. Os resultados experimentais mostram que a combinao das estratgias de pr-
processamento e o projeto das estruturas de dados para resolver o problema em questo
permitem uma reduo de 63,92% no tempo de execuo das implementaes dos al-
goritmos de colorao de arestas aqui estudados.
1.2 Organizao do Texto
Neste captulo foi apresentada uma breve introduo do assunto a ser tratado no res-
tante desta dissertao. O Captulo 2 apresenta as principais denies necessrias
para o bom entendimento do texto, uma reviso bibliogrca atualizada do problema
de colorao de arestas com diversas variaes da formulao do problema e, nalmente,
a demonstrao tradicional do Teorema de Vizing.
4 Captulo 1. Introduo
O Captulo 3 apresenta todos os detalhes do algoritmo de colorao de arestas
proposto, a implementao das estruturas de dados e seus mtodos de atualizao, as
estratgias de execuo e de pr-processamento e, por m, um comentrio a respeito
das implementaes disponveis na literatura.
Resultados computacionais, descrio das instncias de teste e anlises experi-
mentais do algoritmo proposto so apresentadas no Captulo 4.
Concluses a respeito das principais contribuies deste trabalho, juntamente
com propostas para atividades futuras, so apresentadas no Captulo 5.
Captulo 2
Colorao de Arestas e o Teorema
de Vizing
Este captulo apresenta os principais conceitos em Teoria dos Grafos, necessrios para
o entendimento do trabalho apresentado nesta dissertao, relacionados ao problema
de colorao de arestas, incluindo a demonstrao do Teorema de Vizing que, alm
do principal resultado para os limites de colorao, foi utilizada como base para o
desenvolvimento dos algoritmos aqui estudados. Este captulo tambm expe uma
reviso dos trabalhos mais importantes relacionados ao problema clssico de colorao
de arestas e suas diversas variaes.
2.1 Denies em Teoria dos Grafos
As denies apresentadas abaixo, que sero utilizadas ao longo do texto, podem ser
encontradas em West [2001] e Diestel [2005].
Denio 1 G(V, E), ou simplesmente G, denota um grafo simples, sem lao, sem
mltiplas arestas, no direcionado e nito. V (G) e E(G) representam os conjuntos de
vrtices e arestas de G, respectivamente. Dois vrtices so ditos adjacentes quando
existe uma aresta que os conecta. Para ns de simplicidade, sero utilizados os termos
V e E quando o grafo em questo estiver implcito. Ser utilizada a letra n para
representar a cardinalidade do conjunto de vrtices [V [ e a letra m para representar a
cardinalidade do conjunto de arestas [E[.
Denio 2 Um multigrafo um grafo que pode possuir at arestas conectando
cada par de vrtices, onde a letra denominada multiplicidade do grafo. Em um
grafo simples, = 1.
5
6 Captulo 2. Colorao de Arestas e o Teorema de Vizing
Denio 3 Um subgrafo de G um grafo G

com V (G

) V (G) e E(G

) E(G).
Denio 4 Para cada vrtice v V , Adj(v) denota o conjunto de vrtices que so
adjacentes a v.
Denio 5 O grau de um vrtice v (v) = [Adj(v)[. O grau mximo de um
vrtice (G) = max
vV (G)
d(v), ou simplesmente quando o grafo em questo
estiver implcito. Um vrtice dito universal se este vrtice est conectado a todos
os demais vrtices do grafo.
Denio 6 Uma atribuio de cores s arestas de um grafo G, ou simplesmente
colorao, uma funo de colorao : E C. Os elementos do conjunto C so
chamados de cores.
Denio 7 Uma cor c C incide em um vrtice v se existe um vrtice w Adj(v)
tal que a aresta e(v, w) colorida com a cor c, ou seja, (e(v, w)) = c, caso contrrio
a cor encontra-se disponvel no vrtice v. Um conito em uma atribuio de cores
ocorre quando duas cores incidem em um vrtice comum.
Denio 8 Um vrtice u dito ser satisfeito quando (uv) = (uw) implica em
v = w, para todas as arestas em Adj(u). Uma colorao de arestas uma atribuio de
cores de forma que todo vrtice satisfeito, ou de forma equivalente, que no existam
conitos.
Denio 9 Uma colorao vlida de G um atribuio de cores a todas as arestas,
sem conitos. Uma colorao parcial uma colorao vlida onde algumas arestas
de G se encontraro descoloridas. Um grafo dito parcialmente colorido se esse
possui uma colorao parcial.
Denio 10 O nmero mnimo de cores necessrias para produzir uma colorao de
arestas vlida para G chamado de ndice cromtico, denido por

(G).
Denio 11 H G um subgrafo induzido pelo conjunto de arestas E(H) E(G),
se o seu conjunto de vrtices dado pelos vrtices que so extremidades das arestas
em E(H), e o seu conjunto de arestas dado por E(H). O grafo H(, ) G um
subgrafo induzido pelas arestas coloridas com as cores e .
Denio 12 Um / path H(, ) um caminho simples ou um ciclo de tama-
nho par formado pelas arestas de cores e . A troca das cores ao longo desse caminho
( por e por ) chamada de inverso. Se a colorao inicial de G vlida, a
mesma continua vlida aps a inverso de um / path Misra & Gries [1992].
2.2. Trabalhos Relacionados 7
Tabela 2.1. Principais contribuies de algoritmos para colorao de arestas
disponveis na literatura.
Autores
Classes de
Grafos
Nmero
de Cores
Complexidade
Skulrattanakulchai
[2002]
Planares + 1 3 O(n)
Gabow et al. [1985] Planares + 1 4, 5, 6, 7 O(n log n)
Cole & Kowalik
[2008]
Planares + 2 4, 5, 6, 7 O(n)
Gabow et al. [1985]
Planares 8 O(n
2
)
Cole & Kowalik
[2008]
Planares + 1 8 O(n)
Cole & Kowalik
[2008]
Planares 9 O(n)
Chrobak & Yung
[1989]
Planares 19 O(n)
Gabow et al. [1985] Simples + 1 - O(m

n log n)
Takabatake [2005] Bipartidos - O(m log + (
m

)log(
m

))
Kirkman [1847] K
n
, n par n 1 O(m)
Kirkman [1847]
K
n
, n
mpar
+ 1 n 1 O(m)
Januario [2011]
Com n
universal
+ 1 n 1 O(m)
2.2 Trabalhos Relacionados
Como provado por Holyer [1981], determinar o ndice cromtico de um grafo um
problema ^T-Completo, e assim incerto dizer se existe um algoritmo em tempo
polinomial que o computa. Portanto, um algoritmo polinomial que d um bom limite
superior para

pode ser muito til, uma vez que a busca por algoritmos computacio-
nais ecientes e de baixa complexidade para problemas em grafos muito importantes
e tem sido tema de pesquisa h vrios anos.
De acordo com Scheide & Stiebitz [2010], a grande maioria dos limites superiores
1
para o ndice cromtico, so dados pelos prprios algoritmos de colorao de arestas.
Em geral, esses algoritmos so projetados para classes especcas de grafos. Shannon
1
O limite inferior para a colorao de arestas de um grafo G dado por . A prova deste limite
inferior trivial, pois so necessrias diferentes cores para colorir as arestas incidentes nos vrtices
de maior grau do grafo.
8 Captulo 2. Colorao de Arestas e o Teorema de Vizing
[1949] provou que as arestas de qualquer grafo, incluindo multigrafos, podem ser co-
loridas com no mximo
3
2
, ou seja


3
2
. Vizing [1964] provou que

+
para qualquer grafo. Neste trabalho, os grafos estudados so todos simples, ou seja,
um caso particular de multigrafos onde = 1.
Um grafo simples dito da Classe 1 se

= e da Classe 2 se

= + 1. O
Teorema de Vizing dene que no existe outra possibilidade: todo grafo pertence ou
Classe 1, ou Classe 2. A Tabela 2.1 apresenta os trabalhos mais importantes e suas
contribuies quanto aos valores do nmero de cores utilizadas na colorao para vrias
classes de grafos e as complexidades assintticas dos seus algoritmos de colorao de
arestas.
Como pode ser visto pela Tabela 2.1, a colorao de arestas em grafos planares
tem sido alvo de estudo por muitos pesquisadores. Vrios investigaes j foram de-
senvolvidas para esses grafos, com o objetivo de classic-los quanto sua classe de
colorao. sabido que existem grafos planares com 2, 3, 4, 5, que pertencem
Classe 2. Sanders & Zhao [2001] provaram que todos os grafos planares com = 7
pertencem Classe 1. Determinar a existncia de um grafo planar com = 6 que
pertena Classe 2 um problema que permanece em aberto. A classicao desses
grafos permite guiar as pesquisas em direo busca de algoritmos mais ecientes,
considerando os novos valores de limites inferiores e superiores para

. Por outro lado,


em certas aplicaes, necessrio escolher entre ecincia ou qualidade da soluo.
Para grafos planares com = 8, Gabow et al. [1985] propuseram um algoritmo de
colorao de arestas utilizando cores, enquanto Cole & Kowalik [2008] propuseram,
para o mesmo tipo de grafo, um algoritmo de colorao de arestas mais eciente mas
que utiliza no mximo + 1 cores.
Para um caso particular de grafos planares, grafos Teia, Sharebaf [2009] apresenta
um algoritmo de colorao de arestas que utiliza cores, sem vericar as cores das
arestas incidentes em qualquer vrtice do grafo. Este algoritmo tem como base a soma
dos ndices associados aos vrtices conectados por uma aresta que ser colorida. Esta
soma calculada em mdulo k, onde k o nmero de pernas do grafo Teia
2
.
Para grafos bipartidos, Takabatake [2005] props um algoritmo de colorao de
arestas com complexidade O(m log +(
m

)log(
m

)), a menor complexidade conhecida.


Gabow et al. [1985] apresentaram um algoritmo para colorao de arestas de grafos
2
Uma rvore T = (V, E) uma Teia Base quando existe no mximo um vrtice de grau maior do
que dois, denominado raiz. Uma perna da Teia Base um caminho da raiz a um vrtice de grau 1.
Um Grafo Teia, T
k
, com k 3, uma teia base T com k pernas p
1
,..., p
k
, sendo que cada perna p
i
, i = 1, . . . , k, tem tamanho pelo menos igual a dois. Alm disso, dois vrtices em pernas distintas,
v p
i
e u p
j
, com i = j, so adjacentes quando [i j[ 1, k 1 e a distncia d(v, c) = d(u, c),
onde c a raiz do grafo T.
2.2. Trabalhos Relacionados 9
simples com no mximo +1 cores de complexidade O(m

n log n), no entanto at


o momento nenhuma implementao desse algoritmo relatada na literatura.
De acordo com Froncek [2010], o Mtodo do Polgono, descoberto por Kirkman
[1847], o mtodo mais conhecido e amplamente aplicado no planejamento de tabelas
de jogos esportivos (ainda que no tenha sido desenvolvido para esse m). Com esse
mtodo possvel obter uma colorao de arestas para grafos completos, K
n
, onde n
representa o nmero de vrtices do grafo, utilizando cores, quando n par, bem
como obter uma colorao de arestas para grafos K
n
, utilizando + 1 cores, quando
n mpar.
Nesta dissertao apresentado um mtodo capaz de colorir as arestas de qual-
quer grafo, que possua um vrtice universal, em tempo O(m). Esse mtodo utiliza
uma estratgia semelhante quela apresentada por Sharebaf [2009], fazendo uso das
informaes dos ndices associados vrtices adjacentes para determinar a cor da aresta
que os conecta. Maiores detalhes podem ser encontrados na Seo 3.4.
Tambm importante ressaltar a vasta literatura sobre as generalizaes do pro-
blema de colorao de arestas. O problema de Colorao de Arestas Generalizado em
multigrafos, ou f-colorao, proposto por Hakimi & Kariv [1986], similar ao tradici-
onal problema de Colorao de Arestas apresentado nesta dissertao, com a diferena
de que uma cor pode incidir em um vrtice at f vezes. No trabalho de Hsu et al. [2006],
alguns novos limites inferiores para o nmero de cores utilizadas neste problema so
denidos. Uma Colorao Generaliza das arestas de G necessita de no mnimo

f
|
cores. Assim tambm tem-se o nmero mnimo de cores necessrias para colorir as
arestas incidentes em um vrtice, dado por
(v)
f
|. A discrepncia global a diferena
entre o nmero de cores utilizadas pela colorao de G e o limite inferior

f
|, ou seja
[C[

f
|. Da mesma forma denido o conceito de discrepncia local de um n v
como a diferena entre o nmero de cores incidentes no vrtice e o limite inferior
(v)
f
|,
ou seja [C(v)[
(v)
f
|, onde [C(v)[ o nmero de cores incidentes no vrtice v. Um
algoritmo, que utiliza no mximo
+
f
| cores, de complexidade O(m

m log n) foi
proposto por Shin-ichi et al. [1993]. Esse limite superior naturalmente obtido do
resultado do Teorema de Vizing para grafos de multiplicidade .
Na Colorao de Arestas Acclica, onde no permitida a existncia de ciclos
de duas cores em um grafo G,

(G) representa o nmero mnimo de cores utilizadas


para a colorao e para qualquer grafo,

(G) (G) + 2. Dong & Xu [2010] provam


que qualquer grafo planar que atenda a determinados valores do grau mximo e do
comprimento do menor ciclo g(G) G possui

(G) = (G)
Em Liang et al. [1996] so estudados dois problemas de colorao de arestas:
concluir a colorao das arestas de um grafo parcialmente colorido aps a adio de
10 Captulo 2. Colorao de Arestas e o Teorema de Vizing
um novo vrtice a este grafo; e colorir as arestas de um grafo utilizando no mximo +1
cores. Os autores propuseram algoritmos paralelos para a resoluo deste problema,
mas sem qualquer anlise experimental.
At o momento, poucos trabalhos deram nfase a uma anlise profunda das im-
plementaes dos algoritmos baseados na prova do Teorema de Vizing. Tem-se conheci-
mento de trs implementaes disponveis. Uma delas Dongs [2010] no competitiva
com as outras duas. O cdigo disponvel em UTA [2010a] baseado no algoritmo
apresentado em Hu & Blake [1997] enquanto UTA [2010b] inspirado em Misra &
Gries [1992]. Estas implementaes esto disponveis online e foram desenvolvidos por
alunos da University of Texas at Arlington.
2.3 O Teorema de Vizing
O principal resultado sobre o estudo de colorao de arestas surgiu com o Teorema
de Vizing [1964]. Este teorema mostra que todo grafo G pode ser colorido com no
mximo + 1 cores. A demonstrao deste teorema, encontrado em Nakano et al.
[1995], baseada no aumento da colorao do grafo G, colorindo uma nova aresta a
cada iterao. Esta prova mostra como colorir uma aresta de um grafo parcialmente
colorido (o que pode exigir a recolorao de algumas arestas para garantir que todos os
vrtices sejam mantidos satisfeitos ao longo do processo de colorao) nunca utilizando
mais que +1 cores diferentes. Esse procedimento repetido at que todas as arestas
do grafo sejam coloridas. Dentre as diversas provas disponveis na literatura, escolheu-
se a demonstrao a seguir devido sua clareza e simplicidade
3
.
Teorema 1 Para todo grafo G simples, tem-se que:
(G)

(G) (G) + 1 (2.1)


Prova. A inequao da esquerda facilmente provada, uma vez que qualquer vrtice
de grau precisa de uma cor diferente para cada uma de suas arestas incidentes. O
restante da prova depende da estrutura de dados chamada fan. Seja e
0
(w, v
0
) uma
aresta no colorida de um grafo parcialmente colorido. Um fan F uma sequncia
de arestas distintas e
0
(w, v
0
), e
1
(w, v
1
), ..., e
k
(w, v
k
) , onde o vrtice w considerado o
3
Misra & Gries [1992] apresentam uma interessante discusso a respeito da evoluo da prova do
Teorema de Vizing. O estudo da atual verso do teorema iniciou com Edsger Wybe Dijkstra e ATAC
(Austin Tuesday Afternoon Club) a pedido de Robert Tarjan, que considerava a prova deste teorema
confusa e complexa. A demonstrao do teorema tornou-se mais clara somente aps a introduo dos
elementos: fan, inverso e rotao.
2.3. O Teorema de Vizing 11
centro do fan e os vrtices v
i
so suas folhas, tal que dada uma sequncia de cores
distintas
0
,
1
, ...,
k1
, as seguintes condies so satisfeitas:
1. A cor
i
encontra-se disponvel no vrtice v
i
, 0 i k 1; e
2. Toda aresta e
i
, 1 i k, encontra-se colorida com a cor
i1
.
A construo do fan inicia-se pela aresta descolorida e
0
(w, v
0
), onde w chamado
de vrtice central do fan. A seguir, adiciona-se a aresta e
1
(w, v
1
), colorida com a cor

0
disponvel no vrtice v
0
. Este procedimento repete-se para as arestas e
i
(w, v
i
),
coloridas com as cores
i1
, at a construo do fan maximal, ou seja, at que no
se possa mais adicionar uma aresta no fan de modo que as condies apresentadas
anteriormente mantenham-se satisfeitas.
1)
k
disponvel em v
k
e w. 2)
k
=
j
, incide no vrtice w.
Figura 2.1. Critrios de parada na construo do fan maximal.
Um fan dito maximal quando uma das seguintes condies for satisfeita (ver
Figura 2.1): a cor
k
, disponvel no vrtice v
k
, uma cor disponvel no vrtice w; ou,
a cor
k
=
j
, 0 j < k, onde
j
uma cor disponvel em um vrtice v
j
e colore a
aresta e
j+1
(w, v
j+1
).
Rotacionar o fan em n passos um procedimento onde cada aresta e
i
F
colorida com a cor
i
, para todo i, 0 i n k, e a cor
n1
removida da aresta
e
n
, fazendo com que esta aresta que descolorida. Com a rotao de F em n passos,
possvel obter uma outra colorao de arestas para G em que a aresta e
n
, ao invs da
aresta e
0
, aparece descolorida (ver Figura 2.2).
Considere um grafo G parcialmente colorido com, no mximo, +1 cores. Dada
uma aresta descolorida e(w, v
0
) E(G), esta prova mostra como aumentar a colorao
de G colorindo essa aresta, sem ultrapassar o limite de +1 cores diferentes, o que pode
12 Captulo 2. Colorao de Arestas e o Teorema de Vizing
exigir a troca das cores de algumas arestas j coloridas para garantir que a colorao
permanea vlida.
1) fan antes da rotao. 2) fan aps a rotao em n = k passos.
Figura 2.2. Exemplo de rotao do fan em n = k passos.
Inicialmente, busca-se uma cor que esteja disponvel tanto no vrtice w quanto
no vrtice v
0
, ou seja, busca-se uma cor Free(w), e uma cor
0
Free(v
0
), tal
que
0
= , onde Free(v) representa o conjunto de cores disponveis em um vrtice
v. Se essa cor existe, ento ela ser usada para colorir a aresta e
0
(w, v
0
) e aumentar a
colorao do grafo G. Porm, suponha
0
,= .
Seja o fan maximal F de tamanho k, tendo w como vrtice central, comeando
pela aresta descolorida e
0
(w, v
0
) at a aresta e
k
(w, v
k
), e seja tambm a cor
k
dispo-
nvel no vrtice v
k
.
Se a cor
k
tambm uma cor disponvel em w, basta rotacionar F em k passos,
fazendo com que
k
seja uma cor disponvel em ambas as extremidades da aresta
descolorida e
k
(w, v
k
). Consequentemente, colorir e
k
com
k
aumentaria a colorao do
grafo G, como ilustrado pela Figura 2.3.
Porm, suponha que a cor
k
no uma cor disponvel no vrtice w. Neste caso,

k
=
j
, tal que 0 j < k, uma vez que sabemos que F maximal. Seja uma cor
disponvel no vrtice w, e seja P o caminho maximal (
k
, )-path que parte do vrtice
v
k
.
Se P termina em qualquer vrtice diferente de w ou v
j
, inverte-se o caminho
P, fazendo com que a cor torne-se uma cor disponvel nas extremidades da aresta
e
k
(w, v
k
). Ento, rotaciona-se F em k passos, tornando a aresta e
k
(w, v
k
) descolorida,
bem como permitindo que e
k
seja recolorida com a cor , e assim aumentando a
colorao de G, como ilustrado pela Figura 2.4.
2.3. O Teorema de Vizing 13
Figura 2.3. Figura esquerda: o fan maximal encontrado, visto que, uma cor

k
, disponvel em v
k
, tambm est disponvel em w. Figura direita: resultado
aps a rotao do fan em k passos.
Figura 2.4. Figura esquerda: P termina em um vrtice diferente de vj ou w.
Figura direita: resultado aps alternar o caminho P e rotacionar o fan em k
passos.
Se P termina no vrtice v
j
, por uma aresta de cor , inverte-se o caminho P, fa-
zendo com que a cor torne-se uma cor disponvel nas extremidades da aresta e
j
(w, v
j
).
Ento, rotaciona-se F em j passos, tornando a aresta e
j
(w, v
j
) descolorida, bem como
permitindo que e
j
seja recolorida com a cor , aumentando a colorao de G, como
ilustrado pela Figura 2.5.
Se P termina no vrtice w, por uma aresta de cor
k
=
j
, inverte-se P, fa-
zendo com que a cor
k
=
j
torne-se uma cor disponvel nas extremidades da aresta
e
j+1
(w, v
j+1
). Ento, rotaciona-se F em j + 1 passos, tornando a aresta e
j+1
(w, v
j+1
)
descolorida, bem como permitindo que e
j+1
seja recolorida com a cor
k
, aumentando
a colorao de G, como ilustrado pela Figura 2.6.
14 Captulo 2. Colorao de Arestas e o Teorema de Vizing
Figura 2.5. Figura esquerda: caso no qual P termina no vrtice vj. Figura
direita: resultado aps alternar o caminho P e rotacionar o fan em j passos.
Figura 2.6. Figura esquerda: caso no qual P termina no vrtice w. Figura
direita: resultado aps alternar o caminho P e rotacionar o fan em j +1 passos.
Haja visto que no existem outros casos a serem tratados, o aumento da colorao
ca provado, sem que se faa necessrio utilizar mais que + 1 cores.
Os passos dessa demonstrao construtiva podem ser aplicados repetidas vezes a
partir de um grafo completamente descolorido at que todas as arestas do grafo sejam
coloridas.
O Algoritmo 1 foi obtido a partir da demonstrao apresentada, com base no
texto de Nakano et al. [1995].
A partir do passos 1 e 2, nota-se que o algoritmo de colorao de arestas au-
menta o nmero de arestas coloridas no grafo em uma unidade a cada iterao. Nos
passos 3 e 4, procura-se uma cor
0
disponvel tanto no vrtice w quanto no vr-
2.3. O Teorema de Vizing 15
Algoritmo 1: Algoritmo de Colorao de Arestas Tradicional
1 enquanto e Edge(G)[e.color = faa
2 e
0
(v
0
, w) e
0
Edge(G)[e
0
.color =
3 se
0
Free(v
0
) Free(w) ento
4 Colorir a aresta e
0
utilizando a cor
0
5 seno
6 Construa o fan maximal F = e
0
(w, v
0
), e
1
(w, v
1
), ..., e
k
(w, v
k
)
7 Seja
k
Free(v
k
)
8 se
k
Free(w) ento
9 Rotacionar(F, k)
10 Colorir a aresta e
k
utilizando a cor
k
11 seno
12 Seja Free(w) e j, tal que
j
=
k
13 Construa o caminho maximal P = (
k
, ) path partindo de v
k
14 se P termina em v
j
ento
15 Inverter as cores no caminho P
16 Rotacionar(F, j)
17 Colorir a aresta e
j
utilizando a cor
18 seno se P termina em w ento
19 Inverter as cores no caminho P
20 Rotacionar(F, j + 1)
21 Colorir a aresta e
j+1
utilizando a cor
k
22 seno /* P no termina nem em w ou em v
j
*/
23 Inverter as cores no caminho P
24 Rotacionar(F, k)
25 Colorir a aresta e
k
utilizando a cor
tice v
0
. Se essa cor existe, a mesma atribuda aresta e
0
(w, v
0
). Se no existe
uma cor na interseo Free(w) Free(v
0
) (passo 5), no passo 6 o fan maximal
F = e
0
(w, v
0
), e
1
(w, v
1
), ..., e
k
(w, v
k
) construdo. No passo 7, se a cor
k
encontra-se
disponvel no vrtice v
k
, e se
k
tambm uma cor disponvel no vrtice w, rotaciona-se
o fan F e ento utiliza-se a cor
k
para colorir a aresta e
k
(w, v
k
), de acordo com os
passos de 8 a 10.
Caso a cor
k
, disponvel no vrtice v
k
, seja igual a uma cor
j
atribuda a uma
aresta pertencente ao fan, ou seja
k
=
j
, para 0 j < k (passo 11), no passo 12 uma
cor escolhida dentre as cores disponveis no vrtice w. No passo 13 construdo o
caminho maximal P =
k
/ path comeando pelo vrtice v
k
. As prximas operaes
do algoritmo seguem as operaes apresentadas nos trs casos do Teorema de Vizing.
Os passos 14 a 17 correspondem ao Caso 1, onde o caminho P termina no vrtice v
j
.
16 Captulo 2. Colorao de Arestas e o Teorema de Vizing
Os passos 18 a 21 correspondem ao Caso 2, onde o caminho P termina no vrtice w
e os passos 22 a 25 correspondem ao caso 3, onde o caminho P termina em qualquer
vrtice diferente de w ou v
j
.
A corretude do algoritmo omitida uma vez que segue a prova do Teorema de
Vizing. A complexidade assinttica do algoritmo facilmente demonstrada. Uma
vez que o algoritmo aumenta a colorao do grafo, colorindo uma nova aresta a cada
iterao, sua complexidade dada por (m), pois necessrio percorrer todas as
arestas do grafo para obter uma colorao. O Teorema de Vizing garante que no
mximo arestas so selecionadas para a construo e rotao do fan, adicionando o
custo para construir a alternar as cores no caminho P = / path, que O(n). Em
consequncia, a complexidade assinttica do algoritmo dada por O(m ( +n)) que
equivalente a O(m n).
No prximo captulo, ser apresentado um algoritmo de colorao de arestas
baseado na demonstrao do Teorema de Vizing disponvel em Gould [1988]. Este
algoritmo difere do algoritmo apresentado neste captulo em algumas caractersticas
que sero detalhadas no Captulo 3.
Captulo 3
Algoritmo para Colorao de
Arestas
Este captulo descreve o algoritmo de colorao de arestas proposto, que utiliza no
mais que + 1 cores, considerando suas estruturas de dados e procedimentos de atu-
alizao, estratgias utilizadas na obteno de ganhos de desempenho, estudo do pr-
processamento das arestas e as suas diferentes formas de aplicao no algoritmo.
3.1 Algoritmo de Colorao de Arestas Proposto
O Algoritmo 2, que colore um grafo G com no mais que + 1 cores, baseado na
prova do Teorema de Vizing, disponvel em Gould [1988].
Para garantir que o algoritmo obtenha uma colorao vlida para G, em um
nmero de passos nito, denida uma varivel auxiliar chamada de taboo para repre-
sentar uma cor que tem o seu uso temporariamente proibido ao longo da colorao do
grafo. Inicialmente inicializa-se a cor taboo com o elemento vazio. Esta cor possuir
um valor diferente de vazio em uma iterao i do algoritmo quando, na iterao i 1,
para i > 1, o caminho alternado / path, partindo de v
0
, terminar no vrtice w.
Uma vez que a cor taboo nunca possui um valor diferente de vazio na primeira
iterao do algoritmo, em cada iterao, como pode ser visto atravs do passo 6, uma
aresta e
0
(w, v
0
) escolhida dentro do conjunto de arestas no coloridas de G.
No passo 7, busca-se uma cor Free(v
0
)Free(w). Se essa cor existe, utiliza-se
para colorir a aresta e
0
(w, v
0
) (passo 8) e atualiza-se a informao da cor taboo. Nos
passos de 10 a 13, Se no existe uma cor disponvel na interseo Free(v
0
) Free(w),
as cores Free(v
0
) e Free(w) so escolhidas para construir o caminho alternado
maximal / path comeando por v
0
. Pode-se armar que a cor Free(v
0
) incide
17
18 Captulo 3. Algoritmo para Colorao de Arestas
Algoritmo 2: Algoritmo de Colorao de Arestas Proposto
1 taboo nill
2 enquanto e Edge(G)[e.color = faa
3 se taboo ,= nil ento
4 e
0
(v
0
, w) e
1
(v
1
, w)
5 seno
6 e
0
(v
0
, w) e
0
Edge(G)[e
0
.cor =
7 se Free(v
0
) Free(w) ento
8 Colorir a aresta e
0
utilizando a cor
9 taboo nil
10 seno
11 Escolha Free(v
0
)[ ,= taboo
12 se taboo ,= nill ento
13 Escolha Free(w)[ ,= taboo
14 se P = (, ) path comeando em v
0
no termina em w ento
15 Inverter as cores no caminho P
16 Colorir a aresta e
0
utilizando a cor
17 taboo nill
18 seno
19 e
1
Table(w, ).e
20 Remover a cor da a aresta e
1
21 Colorir a aresta e
0
utilizando a cor
22 taboo
no vrtice w, caso contrrio seria possvel utilizar essa cor para colorir a aresta e
0
(v
0
, w).
Da mesma forma a cor Free(w) incide no vrtice v
0
, caso contrrio seria possvel
utilizar essa cor para colorir a aresta e
0
(v
0
, w).
Se, no passo 14, o caminho alternado / path partindo do vrtice v
0
no
termina em w, as cores e so invertidas ao longo do caminho (passo 15), e a aresta
e
0
(v
0
, w) colorida com (passo 16), que agora tambm est livre no vrtice v
0
graas
inverso das cores no caminho / path (ver Figura 22a). Quando o caminho
/ path termina em w, inverter as cores do caminho apenas ir trocar as posies
das cores disponveis nos vrtices terminais de e
0
, fazendo com que que disponvel
em w, mas no em v
0
e fazendo com que a cor que disponvel em v
0
, mas no em
w (ver Figura 22b). Nesse caso, nos passos 19 e 20, a aresta e(v
1
, w), que uma aresta
colorida com a cor e incide no vrtice w, tem a sua cor removida e, no passo 21, esta
mesma cor ser utilizada para colorir a aresta e
0
(v
0
, w). Na prxima iterao, a aresta
e
1
(v
1
, w) (passos 3 e 4), ser colorida com uma cor diferente de taboo = . A cor
3.1. Algoritmo de Colorao de Arestas Proposto 19
a) Caminho alternado / path no terminando no vrtice w.
b) Situao onde o caminho alternado / path encontra o vrtice w.
Figura 3.1. Diferentes cenrios para a construo do caminho alternado /
path partindo do vrtice v
0
.
existe, pois h pelo menos duas cores disponveis nos vrtices v
0
e w, j que em todo
vrtice incidem, no mximo, arestas de cores diferentes e, alm de sempre existirem
+ 1 cores disponveis, a aresta e
1
(v
1
, w) encontra-se descolorida. Essa ltima etapa
importante para manter a validade do algoritmo. Note que o algoritmo proposto no
constri a estrutura fan utilizada pelo algoritmo tradicional, no entanto a idia do fan
aparece de forma implcita, onde w o vrtice central.
Observe que quando a cor taboo assume um valor diferente de nill na iterao
atual, a aresta a ser colorida na prxima iterao incide no vrtice xo w, que ante-
riormente estava colorida com a cor . Neste caso, o vrtice w e a cor Free(w)
permanecem inalterados de uma iterao para a prxima at que a aresta incidente no
vrtice w seja nalmente colorida. A demonstrao do Teorema de Vizing, apresentada
em Gould [1988], garante que so necessrias, no mximo, iteraes de trocas de
cores das arestas ao redor do vrtice w para encontrar uma colorao vlida para todas
as suas arestas incidentes j coloridas.
Uma vez que o algoritmo apresentado aumenta a colorao de uma aresta a
cada vez (em uma ou mais iteraes), sua complexidade pode ser dada por (m)
vezes a complexidade para colorir uma nica aresta para aumentar a colorao parcial
do grafo. No algoritmo principal, a operao mais cara a ser executada em cada
iterao a construo e a inverso do caminho alternado maximal / path onde
20 Captulo 3. Algoritmo para Colorao de Arestas
sua complexidade computacional dada por O(n) uma vez que esse caminho simples.
Em consequncia, o tempo de execuo do algoritmo pode ser dado por O(m n).
Ainda que a complexidade do algoritmo proposto seja superior complexidade do
algoritmo de colorao de arestas tradicional, espera-se que na prtica esses algoritmos
apresentem desempenhos similares, ou ainda, que com o uso das estratgias de execu-
o e de pr-processamento apresentadas, o algoritmo proposto apresente desempenho
superior.
Esse tipo de resultado no indito na cincia da computao. De acordo com
Matouek & Grtner [2006], o mtodo de resoluo de problemas de programao linear
Simplex, que possui complexidade assinttica exponencial, na prtica possui um com-
portamento polinomial para a maioria dos problemas reais em que aplicado. Alm
disso o mtodo Simplex , em geral, mais eciente que o mtodo dos Pontos Interiores
e o mtodo dos Elipsides, que so algoritmos de complexidades polinomiais, mas que
na prtica tendem a apresentar comportamentos muito prximos aos resultados de pior
caso das suas respectivas anlises de complexidade.
3.2 Estruturas de Dados
A ecincia de um procedimento est fortemente associada forma como os dados so
organizados e manipulados. A escolha das estruturas de dados para a implementao
do algoritmo de colorao de arestas proposto neste trabalho foi baseada nas anlises
das operaes mais caras e realizadas com maior frequncia, buscando obter menor
complexidade em termos de espao e tempo computacional.
Inicialmente, se faz necessrio denir trs estruturas de dados desenvolvidas para
otimizar as operaes realizadas com maior frequncia durante a execuo do algoritmo:
Free(v), Edge(G) e Table(v, ).
A estrutura Free(v) armazena o conjunto de at + 1 cores disponveis para
colorir as arestas incidentes a um dado vrtice v.
A estrutura de dados Edge(G) = e E(G) um conjunto de tamanho m onde
cada elemento uma abstrao de uma das arestas do grafo G e possui as seguintes
variveis: v, w e cor. As variveis e.v e e.w representam os vrtices conectados pela
aresta e e a varivel e.cor armazena a informao referente cor atribuda a esta aresta.
Table(v, ) uma matriz em que cada uma das suas linhas est associada a um
vrtice v V (G) e cada uma das suas colunas est associada a uma cor C,
[C[ = + 1. Cada elemento de Table(v, ) que associa o vrtice v com a cor possui
as seguinte variveis: status, adj, e, e cIndex. A varivel booleana Table(v, ).status
3.2. Estruturas de Dados 21
assume o valor 1 (verdade) sempre que uma aresta de cor incide no vrtice v, e
assume o valor 0 (falso) caso esta cor encontre-se disponvel no vrtice v. A varivel
Table(v, ).adj representa o vrtice adjacente a v que est conectado pela aresta de
cor , Table(v, ).e um apontador que referencia a aresta e, que conecta os vrtices
v e Table(v, ).adj, na estrutura Edge(G). Finalmente, o campo Table(v, ).cIndex
armazena a informao sobre localizao da cor no conjunto Free(v).
3.2.1 Implementao e Atualizao das Estruturas de Dados
Neste trabalho, foram propostas duas implementaes para a estrutura de dados que
representa o conjunto Free(v). A primeira delas utiliza efetivamente uma lista de
nmeros inteiros para a representao das cores. Caso a cor seja selecionada para
colorir uma aresta incidente no vrtice v, o inteiro que a representa deve ser removido
da lista Free(v). Neste caso, a varivel Table(v, ).cIndex indicar a posio desta cor
na estrutura Free(v). Por outro lado, se a cor est sendo adicionada em Free(v) (por
que essa cor foi removida de alguma aresta incidente em v), basta apenas inseri-la no
m da lista Free(v). As operaes de insero e remoo so elementares no algoritmo
de colorao de arestas e so executadas em tempo O(1).
Para determinar uma cor no incidente em um vrtice v, basta acessar uma
posio vlida na lista que representa Free(v). No entanto, para determinar uma
cor Free(v) Free(w) necessrio consultar cada elemento de Free(v) e ve-
ricar se o mesmo est na lista de cores disponveis de w em tempo O(1) utili-
zando a varivel Table(w, ).status. A operao completa executada em tempo
O(min[Free(v)[, [Free(w)[), que, no pior caso, O(). Esta metodologia utilizada
para determinar uma cor disponvel em um par de vrtices foi primeiramente proposta
em Cole & Kowalik [2008].
Na segunda implementao de Free(v), utiliza-se um vetor de tamanho

+ 1
[palavra[
|, onde cada elemento um nmero inteiro do tamanho da palavra
1
da
arquitetura do computador onde o algoritmo est sendo executado. O j-simo bit do
i-simo inteiro do vetor representa a disponibilidade da cor [palavra[ (i 1) +j, onde
[palavra[ representa o nmero de bits em uma palavra. Nesta estrutura, uma cor dis-
ponvel em um vrtice denida por um bit 1, caso contrrio o bit denido como 0.
Neste trabalho, foi utilizada uma arquitetura com palavras com 32 bits.
1
O termo palavra (em ingls: word) a unidade de informao natural usada por um tipo de
computador particular. um grupo de bits de tamanho xo que processado em conjunto numa
mquina. O nmero de bits em uma palavra, ou o tamanho ou comprimento da palavra, uma
caracterstica especca de cada arquitetura de computador.
22 Captulo 3. Algoritmo para Colorao de Arestas
a) Representao em binrio de p = 5012 na posio i de Free(v
0
), onde seu bit mais
signicativo armazena a cor 32 (i 1) + 13.
b) Aps o deslocamento dos bits mais signicativos de p = 355090432, tem-se
bitTable[p] = 13, tal que o clculo da cor armazenada dado por 32 (i 1) + 29.
Figura 3.2. Obtendo uma cor disponvel em um vrtice utilizando estruturas de
dados em bits.
A atualizao do estado da cor nessa estrutura tambm feita em tempo O(1),
visto que s preciso calcular a localizao da cor no vetor de palavras e denir o seu
novo valor como 1 ou 0. Nota-se, que usando esta estratgia, no mais necessrio
manter as variveis Table(v, ).status e Table(v, ).cIndex.
Nesta segunda implementao, determinar uma cor disponvel em Free(v) requer
encontrar algum elemento inteiro diferente de zero nesse vetor. Uma vez encontrado,
deve-se determinar um bit 1 (ligado) nesse inteiro. Utilizando palavras de uma ar-
quitetura de 32 bits, essa operao pode ser feita de forma rpida se as posies dos
bits mais signicativos dos nmeros decimais de 1 a 2
16
forem calculadas a priori e
armazenadas em uma tabela bitTable. Se o inteiro i diferente de zero menor que
2
16
= 65536, a posio de seu correspondente bit mais signicativo bitTable[i], caso
contrrio, a posio do seu bit mais signicativo dada por bitTable[i >> 16] + 16,
onde >> representa uma operao de deslocamento de bits direita. Sabendo que a
estrutura Free(v), implementada com o uso de vetores de palavras, possui tamanho

+ 1
32
|, a operao para determinar uma cor disponvel nessa estrutura tem um custo
de O(), pois pode ser necessrio avaliar todos os elementos da estrutura para que
uma cor disponvel seja encontrada.
Como exemplo do uso da operao de deslocamento de bits, em uma arquitetura
de 32 bits, seja p a i-sima palavra na estrutura Free(v
0
), para 0 < i
+ 1
32
|. De
acordo com a Figura 3.2.1a, para uma palavra p = 5012 na posio i de Free(v
0
), as
cores correspondentes aos seus bits iguais a 1 so dadas por 32 (i 1) + j, para j =
3,5,8,9,10 e 13. Uma vez que p = 5012 < 65536, a posio do bit mais signicativo pr-
3.2. Estruturas de Dados 23
Figura 3.3. Exemplo da obteno de uma cor disponvel para a colorao da
aresta e(v
2
, v
7
) com a representao em bits. As cores disponveis para a colorao,
obtidas atravs da operao AND, so Free(v
2
) Free(v
7
) = 2, 4, 7.
calculado dado por bitTable[p] = 13. Para um cenrio onde p = 355090432 > 65536,
tem-se a situao ilustrada pela Figura 3.2.1b. Neste caso, os 16 bits mais signicativos
sero deslocados, o seu bit mais signicativo dado por bitTable[p] = 13, de tal forma
que a cor armazenada dada por 32 (i 1) + (13 + 16) = 32 (i 1) + 29.
Determinar uma cor Free(v) Free(w) implica em encontrar um bit 1 em
comum nos dois vetores de palavras, ou seja, neste caso necessrio calcular o resultado
da operao AND para cada elemento i, 0 < i
+ 1
32
|, nos vetores de bits Free(v)
e Free(w), at encontrar um resultado da operao AND que seja diferente de zero,
como ilustrado na Figura 3.2.1. Mesmo que esta operao tenha tempo O(), na
prtica, mais rpida que a mesma operao na implementao em lista, por permitir
a comparao de 32 elementos em um nico ciclo de processador.
Estas duas implementaes da estrutura Free(v) foram desenvolvidas devido
operao fundamental do algoritmo de colorao de arestas: determinar uma cor em
comum disponvel em dois vrtices adjacentes, uma vez que desejvel atribuir uma
cor vlida para uma aresta o mais cedo possvel.
Para o conjunto Free(v) importante discutir por que esta estrutura de dados no
foi implementada sobre as arestas do grafo G, uma vez que esta seria uma estratgia
natural a ser adotada sabendo que a informao referente s cores disponveis est
associada diretamente s arestas.
Se as cores disponveis estivessem representadas nas arestas, buscar uma cor
vlida para colorir uma aresta e = (v, w) tornar-se-ia muito mais simples, uma vez
que bastaria acessar um elemento vlido dentro da estrutura Free(e). No entanto, as
operaes de insero e remoo de uma dada cor implicaria em um alto custo para
atualizaes das informaes presentes nas demais arestas incidentes nos vrtices v e
24 Captulo 3. Algoritmo para Colorao de Arestas
w.
Enquanto a complexidade de tempo dessas operaes O(1) na estrutura
Free(v), utilizando a estrutura Free(e), cada operao teria um custo O(), pois
quando uma cor inserida em uma aresta e = (v, w), esta no poderia ser inserida
em nenhuma outra aresta incidente em v ou w, e quando uma cor removida de uma
aresta e = (v, w), esta tornar-se-ia disponvel para a colorao de qualquer aresta in-
cidente em v ou w, logo todas as informaes presentes nas arestas incidentes em v e
w deveriam ser atualizadas aps cada operao de insero ou remoo de uma cor no
grafo.
Ao longo da execuo do algoritmo de colorao de arestas, caso no exista uma
cor disponvel para colorir a aresta e = (v, w), devero ser escolhidas uma cor dis-
ponvel em v e uma cor disponvel em w. Novamente, enquanto a complexidade
de tempo para a obteno de uma cor disponvel em um vrtice O(1) na estrutura
Free(v), obter tal cor utilizando a estrutura Free(e) teria um custo O(), pois seria
necessrio vericar as cores disponveis em todas as arestas incidentes em v e w.
Analisando a complexidade de espao, a representao das cores disponveis nas
arestas possui complexidade O(m ), ao passo que a representao das cores dispon-
veis nos vrtices possui complexidade O(n ). Logo, representar as cores disponveis
nos vrtices a opo mais adequada ao contexto deste trabalho, uma vez que os grafos
analisados possuem m > n.
Outra importante operao no algoritmo de colorao de arestas encontrar o
vrtice w adjacente a v que conectado por uma aresta de cor . Caso a cor incida
no vrtice v, a estrutura Table(v, ).adj permite encontrar tal vrtice em tempo O(1).
Esta propriedade importante na determinao do caminho / path G a partir
do vrtice v com custo O(n).
3.3 Estratgias de Execuo
O Algoritmo 2 deixa em aberto duas estratgias de execuo. A primeira refere-se
seleo das cores a serem atribudas a uma aresta quando o nmero de cores disponveis
maior que um. A segunda estratgia leva em conta a ordem com que as arestas
ainda no coloridas so processadas pelo algoritmo. Estas escolhas podem inuenciar
diretamente no tempo de execuo do algoritmo implementado.
Dado um conjunto de cores disponveis Free(v) =
0
,
1
, ...,

, o mtodo de
seleo primeira disponvel
2
consiste em escolher a primeira cor livre
i
encontrada
2
O mtodo de seleo primeira disponvel no exige que as cores estejam ordenadas no conjunto
3.4. Pr-processamento 25
na estrutura Free. Em um mtodo de seleo aleatrio, uma cor valida selecionada
aleatoriamente a partir do conjunto de cores disponveis.
Para a seleo de arestas, denido o conceito de seleo lexicogrca. Neste
mtodo de seleo, todas as arestas no coloridas incidentes no vrtice v
i
so proces-
sadas antes das arestas no coloridas incidentes no vrtice v
i+1
. Alm disso, as arestas
tambm podem ser processadas em ordem aleatria.
Combinando estas duas diferentes possibilidades de estratgias de execuo, sur-
gem quatro diferentes verses para o algoritmo proposto:
PCAL: Seleo de cores pela primeira disponvel e seleo de arestas em ordem
lexicogrca.
PCAA: Seleo de cores pela primeira disponvel e seleo aleatria de arestas.
CAAL: Escolha aleatria de cores e seleo de arestas em ordem lexicogrca.
CAAA: Escolha aleatria de cores e arestas.
Diversas outras estratgias de escolhas de cores, arestas e vrtices foram testadas,
tais como: ordenar os vrtices de forma a selecionar primeiramente as arestas daqueles
de maior grau, ordenar os vrtices de forma a selecionar primeiramente as arestas
daqueles de menor grau, escolher a cor que aparece com a menor frequncia no grafo
para colorir a aresta, escolher a cor que aparece com a maior frequncia no grafo e por
m escolher as arestas do grafo que incidem nos vrtices com a maior quantidade de
arestas incidentes descoloridas. No entanto, nenhuma dessas estratgias se mostraram
to ecientes quanto as que esto sendo apresentadas neste trabalho. A apresentao
de tais resultados foi omitida com o objetivo de focar o texto nos resultados obtidos
com maior relevncia.
No Captulo 4 so apresentados os resultados empricos da anlise das estratgias
de execuo propostas com o intuito de determinar aquela com o melhor desempenho.
3.4 Pr-processamento
Com o objetivo de encontrar rapidamente uma cor vlida para as arestas do grafo,
foram propostas estratgias de pr-processamento que vericam todas as arestas do
grafo de entrada G na tentativa de determinar rapidamente uma cor vlida para cada
uma delas. O grafo de sada G um grafo parcialmente colorido que ser utilizado como
entrada para os algoritmos de colorao de arestas apresentados nesta dissertao.
Este pr-processamento uma funo hash que determina uma cor para uma
dada aresta utilizando a soma dos ndices dos vrtices conectados por ela, calculada
Free(v). Esta simplicao foi adotada para eliminar o custo de ordenao na estrutura Free(v).
26 Captulo 3. Algoritmo para Colorao de Arestas
em mdulo + 1. Por exemplo, para determinar uma cor de uma aresta e(v
i
, v
j
)
calcula-se o resultado de (i +j) mod +1 e ento a cor
(i+j) mod +1
ser utilizada
para colorir tal aresta.
Caso o grafo em questo possua um vrtice universal, possvel garantir que as
arestas do mesmo podem ser coloridas, utilizando no mximo + 1 cores, com com-
plexidade (m). Esta armao consequncia da proposio apresentada a seguir.
Proposio. Seja o conjunto de vrtices V (G) = v
o
, v
1
, ..., v
n1
e o conjunto
de cores C =
0
,
1
, ...,

. Se G contm um vrtice universal, possvel colorir


qualquer aresta e(v
i
, v
j
) com a cor
(i+j)mod(+1)
e assim obter uma colorao prpria
vlida utilizando no mais que + 1 cores.
Prova. Sejam v
i
, v
j
e v
k
trs vrtices distintos de um grafo que possui um vrtice
universal, tais que v
i
adjacente a v
j
e a v
k
. Assumindo, por absurdo, que as arestas
(v
i
, v
j
) e (v
i
, v
k
) sejam coloridas com a mesma cor, gerando uma colorao invlida,
temos que:
(i +j)mod( + 1) = (i +k)mod( + 1)
(i +j) (i + k)mod( + 1)
j k mod( + 1)
onde a ltima equao arma que j e k devem ter o mesmo resto da diviso por +1.
Uma vez que 0 j, k < n, onde n = + 1 devido presena de um vrtice universal,
implica que j = k, o que impossvel uma vez que os vrtices em questo so distintos.
Portanto, tambm impossvel que cores iguais sejam atribudas s arestas (v
i
, v
j
) e
(v
i
, v
k
).
A proposio apresentada pode ser utilizada na tentativa de colorir a maior quan-
tidade possvel de arestas de um grafo. Se este grafo no possui um vrtice universal,
a proposio falha para algumas arestas e, assim, as arestas que no puderam ser
coloridas pelo pr-processamento sero coloridas pelo algoritmo de colorao. Neste
trabalho, o pr-processamento aplicado de duas formas diferentes:
Pr-processamento a priori : Nesta abordagem, o algoritmo de pr-processamento
tenta colorir cada aresta (v
i
, v
j
) com a cor
(i+j)mod(+1)
. Se um conito ocorre (porque
outra aresta incidente em v
i
ou em v
j
j foi colorida com a mesma cor), a aresta no
colorida (v
i
, v
j
) armazenada na lista EdgeList(E) para ser posteriormente processada
pelo algoritmo principal. O Algoritmo 3 descreve os passos do pr-processamento
a priori.
O passo 1 do Algoritmo 3, mostra que o procedimento deve ser aplicado em todas
as arestas do grafo. No passo 2, o clculo da cor , a ser atribuda aresta e(v
i
, v
j
),
3.4. Pr-processamento 27
Algoritmo 3: Utilizando o pr-processamento a priori.
1 para cada e(v
i
, v
j
) Edge(G) faa
2 (i + j)mod( + 1)
3 se Free(v
i
) Free(v
j
) ento
4 Colorir a aresta e(v
i
, v
j
) utilizando a cor
5 seno
6 EdgeList(E) EdgeList(E) + e
7 Aplique o algoritmo de colorao de arestas utilizando o grafo parcialmente
colorido G e a lista EdgeList(E) como entrada
dado por (i + j)mod( + 1). No passo 3, verica-se a disponibilidade dessa cor nos
vrtices v
i
e v
j
. Caso esteja disponvel nos dois vrtices, no passo 4, a aresta e(v
i
, v
j
)
ser colorida com a cor . Caso contrrio, a aresta e ser armazenada em uma lista
de arestas no coloridas, EdgeList(E), de acordo com os passos 5 e 6. No passo 7, o
algoritmo de colorao de arestas utilizado para colorir cada uma das arestas da lista
EdgeList(E), com o objetivo de obter uma colorao vlida de G.
No Algoritmo 3, a ordem com que as arestas so fornecidas trata-se apenas de um
detalhe de implementao. Qualquer uma das ordens de seleo de arestas apresentadas
na Seo 3.3 podem ser adotadas. No entanto, a estratgia a priori no garante que as
arestas sero coloridas na mesma ordem em que foram passadas para o algoritmo de
pr-processamento, haja visto que algumas arestas podem ser armazenadas para serem
coloridas posteriormente pelo algoritmo de colorao de arestas.
Pr-processamento embutido: Nesta abordagem, o algoritmo de pr-processamento
tenta colorir cada aresta (v
i
, v
j
) com a cor
(i+j)mod(+1)
. Se um conito ocorre, o
algoritmo de colorao de arestas chamado imediatamente para resolv-lo. Neste caso,
o processamento embutido e o algoritmo principal de colorao de arestas trabalham
juntos. O Algoritmo 4 descreve os passos do pr-processamento embutido.
Algoritmo 4: Utilizando o pr-processamento embutido.
1 para cada e(v
i
, v
j
) Edge(G) faa
2 = (i +j)mod( + 1)
3 se Free(v
i
) Free(v
j
) ento
4 Colorir a aresta e(v
i
, v
j
) utilizando a cor
5 seno
6 Aplique o algoritmo de colorao de arestas em e
No Algoritmo 4, os passos de 1 a 5 so exatamente iguais aos descritos para o
28 Captulo 3. Algoritmo para Colorao de Arestas
Algoritmo 3. No entanto, no passo 5, ao invs de armazenar a aresta no colorida, o
algoritmo de colorao de arestas aplicado na aresta e(v
i
, v
j
), sempre garantindo uma
colorao parcial do grafo G, at que todas as arestas sejam coloridas.
Neste algoritmo, diferentemente do Algoritmo 3, o algoritmo de pr-
processamento, juntamente com o algoritmo de colorao de arestas, colore as arestas
de G na ordem em que so fornecidas. Assim, as estrategias de execuo para a ordem
de processamento das arestas, denidas na Seo 3.3, so respeitadas.
3.5 Outras Implementaes para o Problema de
Colorao de Arestas
Ao longo do desenvolvimento deste trabalho foram encontradas apenas trs implemen-
taes do algoritmo de colorao de arestas baseados no Teorema de Vizing, no entanto
nenhuma foi desenvolvida visando ecincia de implementao. A primeira implemen-
tao, disponvel em Dongs [2010], apresenta um desempenho muito ruim e nenhuma
anlise sobre ela ser apresentada neste texto.
A segunda implementao possui o cdigo disponvel em UTA [2010a] e baseada
na descrio do algoritmo apresentado em Hu & Blake [1997], que similar ao algoritmo
proposto. A ltima implementao, cujo cdigo encontra-se disponvel em UTA [2010b]
baseada na demonstrao do Teorema de Vizing apresentada em Misra & Gries [1992],
que similar ao algoritmo tradicional, alm de implementar a estrutura de dados fan
de forma explcita. Essas duas implementaes utilizam estruturas de dados muito
simples, no implementando qualquer forma eciente de buscar uma cor disponvel em
um vrtice, e assim, realizam esta operao em tempo O(n).
Nas duas implementaes, a representao das arestas dos grafos feita com o
uso de dois vetores de inteiros para armazenar os pares de vrtices adjacentes. Uma
matriz M de valores booleanos, com tamanho n ( + 1), utilizada para indicar a
presena de uma cor c em um vrtice v quando o elemento M[v][c] = 1, e indicar que
esta cor c encontra disponvel no vrtice v quando M[v][c] = 0.
Captulo 4
Anlises Experimentais
Neste captulo sero apresentadas as anlises experimentais realizadas a respeito dos
algoritmos de colorao de arestas estudados ao longo do texto. Atravs de uma grande
bateria de testes, busca-se avaliar o desempenho das estruturas de dados, ganhos obti-
dos com os mtodos de seleo de cores e de arestas, pr-processamento e comparar o
algoritmo desenvolvido neste trabalho com os algoritmos disponveis na literatura.
4.1 Descrio do Ambiente Computacional e
Instncias de Teste
Os algoritmos descritos nos Captulos 2 e 3 foram codicados na linguagem C++ e
compilados com a verso 4.4.1 do compilador g++. As implementaes UTA [2010a]
e UTA [2010b], que tambm sero comparadas neste trabalho, foram compiladas com
o mesmo compilador, utilizando os mesmos parmetros de congurao. Todas as
implementaes foram executadas em um mesmo ambiente computacional (Pentium
Core 2 Duo 2.0 GHz com 5 Gbyte de memria RAM) utilizando uma nica thread do
processador.
Dentre as possibilidades de instncias que poderiam ser utilizadas para analisar o
desempenho dos algoritmos, foram escolhidos os seguintes tipos de grafos, listados a se-
guir, considerando 10 replicaes em cada um dos conjuntos, totalizando 930 diferentes
instncias de grafos.
DENSOS: 30 grafos gerados aleatoriamente cujo nmero de vrtices varia uniforme-
mente no intervalo n [100, 10000] com uma probabilidade de conexo entre vrtices
denida em 99%. Estes grafos fazem parte do conjunto de instncias de testes por
apresentarem um alto valor para , e consequentemente so os que demandam maior
29
30 Captulo 4. Anlises Experimentais
tempo computacional para serem coloridos. Nesse cenrio, foram analisados 300 grafos.
GRANDES: 33 grafos gerados aleatoriamente, cujo nmero de vrtices xado
em n=10000 e sua densidade varia uniformemente entre 1% e 99%. Com este con-
junto de instncias, pretende-se analisar a inuncia da variao de sobre o tempo
computacional das implementaes estudadas. Nesse cenrio, foram analisados 330
grafos.
REGULARES: 30 grafos k regulares gerados aleatoriamente com o nmero
xo de vrtices em n=10000 e o valor de k variando uniformemente entre 50 e 1500.
Com este conjunto de instncias, pretende-se determinar se a alta simetria presente
nos grafos k regulares pode inuenciar nos tempos computacionais. Nesse cenrio,
foram analisados 300 grafos.
Acredita-se que as instncias escolhidas cobrem todas as caractersticas impor-
tantes a serem estudadas neste texto. Outros tipos de grafos, como grafos planares ou
grafos bipartidos no foram considerados, uma vez que as referncias para os melhores
resultados de limites superiores de

e complexidades assintticas podem ser encontra-


dos no Captulo 2, mostrando que j existem solues mais ecientes para essas classes
de grafos.
As instncias de testes utilizadas neste trabalho foram geradas de forma a garantir
a ausncia de qualquer vrtice universal. Como mostrado na Seo 3.4, uma vez que
um grafo possua um vrtice universal, possvel colorir tal grafo, utilizado +1 cores,
com custo computacional igual a O(m). Logo, essa medida foi tomada para evitar que
o pr-processamento fosse capaz de realizar toda a colorao do grafo em uma nica
execuo.
As anlises de desempenho dos algoritmos no esto restritas somente aos seus
tempos de execuo. Tambm foram avaliadas as informaes a respeito do nmero de
vezes que uma cor atribuda a uma aresta, pois sabe se que os algoritmos de colocao
aqui descritos eventualmente necessitam recolorir algumas arestas para aumentar a
colorao do grafo. desejvel encontrar a cor vlida para a colorao de uma aresta
o mais cedo possvel, evitando calcular e inverter o caminho / path, uma vez
que, isso implica em um alto custo de processamento na obteno de ganhos pouco
signicativos com relao ao nmero de arestas coloridas acrescidas ao grafo, pois se
faz necessrio realizar vrias manipulaes nas estruturas de dados para aumentar a
colorao do grafo em apenas uma cor.
4.2. Resultados 31
4.2 Resultados
Em um cenrio ideal, um algoritmo de colorao de arestas deveria atribuir uma
cor a cada aresta uma nica vez, assim como feito pelos procedimentos de pr-
processamento na presena de um vrtice universal. Neste cenrio, a razo de colo-
rao, denida por

m
, onde representa o nmero de vezes que uma cor atribuda
a uma aresta durante a execuo do algoritmo de colorao, deve ser igual a 1. Nas
anlises realizadas, deseja-se determinar as melhores conguraes de parmetros e de-
cises de implementao que levaro a um algoritmo que fornea resultados prximos
ao cenrio ideal.
Nos experimentos iniciais, os procedimentos de pr-processamento no foram con-
siderados para que no interferissem nas anlises de desempenho das estratgias de
execuo e para que fosse possvel perceber com maior clareza o comportamento das
estruturas de dados utilizadas. Em todos os grcos a serem apresentados, cada ponto
do grco representa a mdia de 10 execues das diferentes implementaes estudadas.
1
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
R
a
z

o

d
e

C
o
l
o
r
a

o
Numero de vrtices
PCAL
PCAA
CAAL
CAAA
0
50
100
150
200
250
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Numero de vrtices
PCAL
PCAA
CAAL
CAAA
Figura 4.1. Grafos DENSOS: razo de colorao e tempos de execuo.
O grco da Figura 4.1a, mostra a mdia de 10 execues dos resultados dos
valores de razo de colorao encontrados para os grafos DENSOS para cada uma das
estratgias de execuo apresentadas para o algoritmo proposto no Captulo 3. Esse
resultado foi obtido utilizando-se a estrutura de dados Free(v) baseada na lista de
inteiros para a representao de cores disponveis. possvel observar, juntamente
com a Figura 4.1b, que a razo de colorao est diretamente relacionada ao tempo
de execuo do algoritmo. Pode-se ver que as estratgias PCAL e CAAA so aquelas
com os maiores valores de razo de colorao, ou seja, em que as arestas necessitam
ser recoloridas uma maior quantidade de vezes, e as estratgias PCAA e CAAL so
aquelas com os menores valores de razo de colorao e tempos de execuo para grafos
32 Captulo 4. Anlises Experimentais
densos. Nos grcos da Figura 4.2 possvel observar que o mesmo comportamento
tambm aparece para o conjunto GRANDES.
1
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
0 10 20 30 40 50 60 70 80 90 100
R
a
z

o

d
e

C
o
l
o
r
a

o
Densidade do Grafo com 10000 vrtices
PCAL lista
PCAA lista
CAAL lista
CAAA lista
0
50
100
150
200
250
300
0 10 20 30 40 50 60 70 80 90 100
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Densidade do Grafo com 10000 vrtices
PCAL lista
PCAA lista
CAAL lista
CAAA lista
Figura 4.2. Grafos GRANDES: razo de colorao e tempos de execuo.
Nos grcos da Figura 4.3, observa-se que as estratgias CAAA e PCAA so
aquelas que apresentaram os resultados menos satisfatrios em termos de razo de
colorao e tempos de execuo para as instncias do conjunto REGULARES. Como
pode ser visto pelos grcos anteriormente apresentados, essas estratgias de execuo
apresentaram os segundo e terceiro piores resultados sobre os conjuntos de instncias
GRANDES e DENSOS.
1.5
2
2.5
3
3.5
4
4.5
0 150 300 450 600 750 900 1050 1200 1350 1500
R
a
z

o

d
e

C
o
l
o
r
a

o
Grau do grafo com 10000 vrtices
PCAL lista
PCAA lista
CAAL lista
CAAA lista
0
2
4
6
8
10
12
14
16
0 150 300 450 600 750 900 1050 1200 1350 1500
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Grau do grafo com 10000 vrtices
PCAL lista
PCAA lista
CAAL lista
CAAA lista
Figura 4.3. Grafos REGULARES: razo de colorao e tempos de execuo.
Intuitivamente possvel concluir que, dentre as estratgias de execuo adotadas,
a escolha lexicogrca das arestas aquela mais adequada a ser adotada, pois induz
colorao de todas as arestas de um vrtice v
i
antes de colorir as arestas incidentes no
vrtice v
i+1
aumentando as chances de escolha das cores vlidas mais adequadas para
todas as arestas incidentes no vrtice v
i
com a expectativa de reduzir as possibilidades
de recolorir estas arestas em um momento futuro.
4.2. Resultados 33
Escolher prioritariamente uma cor no momento de seleo das cores aumenta
as chances de conitos com as arestas j coloridas com esta cor. De fato, a ordem em
que as cores e as arestas so selecionadas no momento da execuo do algoritmo pode
inuenciar no seu desempenho. O uso da estratgia de busca aleatria por uma cor
na interseo das cores disponveis em dois vrtices permitiu acelerar esta etapa do
algoritmo.
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
R
a
z

o

d
e

C
o
l
o
r
a

o
Numero de vrtices
CAAL lista
CAAL bits
0
2
4
6
8
10
12
14
16
18
20
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Numero de vrtices
CAAL lista
CAAL bits
Figura 4.4. Grafos DENSOS: comparando as estruturas de dados que represen-
tam o conjunto Free(v), para analisar a razo de colorao e tempos de execuo.
O fato de a estratgia CAAL reduzir os valores de razo de colorao dos algorit-
mos reexo da grande taxa de acerto na escolha das cores atribudas nas arestas, o
que implica a reduo do nmero de execues da construo do caminho / path
(principalmente para o algoritmo proposto
1
) e da construo do fan (para o algoritmo
tradicional).
importante destacar que at o momento, a estratgia CAAL foi aquela que
obteve os melhores resultados para todos os conjuntos de instncias avaliados, em
termos de razo de colorao e tempos de execuo e, por esse motivo, ser escolhida
como a estratgia de execuo base nos prximos resultados experimentais a serem
apresentados.
Atravs dos grcos das Figuras 4.4, 4.5 e 4.6 possvel perceber a clara reduo
no tempo de execuo dos algoritmos com o uso da estrutura de dados em bits, embora
os valores de razo de colorao obtidos com as duas estruturas de dados sejam muito
similares. A implementao baseada em vetores de palavras mais complexa em
determinar uma cor disponvel em um dado vrtice que a implementao baseada em
lista de inteiros, no entanto mais eciente em determinar uma cor na interseo dos
conjuntos de cores disponveis em dois vrtices adjacentes. Uma vez que essa ltima
1
Como visto na descrio do algoritmo proposto apresentada no Captulo 3, nem toda a alternao
do caminho / path aumenta a colorao do grafo G.
34 Captulo 4. Anlises Experimentais
1
1.01
1.02
1.03
1.04
1.05
1.06
1.07
1.08
0 10 20 30 40 50 60 70 80 90 100
R
a
z

o

d
e

C
o
l
o
r
a

o
Densidade do Grafo com 10000 vrtices
CAAL lista
CAAL bits
0
5
10
15
20
25
0 10 20 30 40 50 60 70 80 90 100
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Densidade do Grafo com 10000 vrtices
CAAL lista
CAAL bits
Figura 4.5. Grafos GRANDES: comparando as estruturas de dados que re-
presentam o conjunto Free(v), para analisar a razo de colorao e tempos de
execuo.
1.7
1.8
1.9
2
2.1
2.2
0 150 300 450 600 750 900 1050 1200 1350 1500
R
a
z

o

d
e

C
o
l
o
r
a

o
Grau do grafo com 10000 vrtices
CAAL lista
CAAL bits
0
1
2
3
4
5
6
0 150 300 450 600 750 900 1050 1200 1350 1500
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Grau do grafo com 10000 vrtices
CAAL lista
CAAL bits
Figura 4.6. Grafos REGULARES: comparando as estruturas de dados que
representam o conjunto Free(v), para analisar a razo de colorao e tempos de
execuo.
operao realizada com uma frequncia muito maior que a primeira, o algoritmo
executado muito mais rpido na implementao que utiliza vetores de palavras para
armazenar as cores disponveis no incidentes em um vrtice.
Considerando os resultados apresentados, a melhor verso do algoritmo proposto
em termos de tempo de execuo foi obtida considerando a escolha das arestas em
ordem lexicogrca e cores aleatoriamente utilizando vetores de palavras para repre-
sentar as cores disponveis em um vrtice (CAAL bits). Este resultado era esperado
uma vez que esta verso do algoritmo utiliza a estratgia de execuo que realiza o
menor nmero de trocas de cores nas arestas do grafo, como visto atravs dos grcos
de razo de colorao, juntamente com a estrutura de dados que realiza a busca por
uma cor disponvel em dois conjuntos de cores disponveis ( Free(v) Free(w)) da
forma mais eciente.
4.2. Resultados 35
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
6
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
R
a
z

o

d
e

C
o
l
o
r
a

o
Numero de vrtices
Misra & Gries
Hu & Blake
CAAL bits
0
50
100
150
200
250
300
350
400
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Numero de vrtices
Misra & Gries
Hu & Blake
CAAL bits
Figura 4.7. Grafos DENSOS: comparao com os algoritmos disponveis na
literatura.
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
6
0 10 20 30 40 50 60 70 80 90 100
R
a
z

o

d
e

C
o
l
o
r
a

o
Densidade do Grafo com 10000 vrtices
Misra and Gries
Hu and Blake
CAAL bits
0
50
100
150
200
250
300
350
400
0 10 20 30 40 50 60 70 80 90 100
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Densidade do Grafo com 10000 vrtices
Misra & Gries
Hu & Blake
CAAL bits
Figura 4.8. Grafos GRANDES: comparao com os algoritmos disponveis na
literatura.
1.8
2
2.2
2.4
2.6
2.8
3
3.2
3.4
3.6
3.8
0 150 300 450 600 750 900 1050 1200 1350 1500
R
a
z

o

d
e

C
o
l
o
r
a

o
Grau do grafo com 10000 vrtices
Misra & Gries
Hu & Blake
CAAL bits
0
2
4
6
8
10
12
0 150 300 450 600 750 900 1050 1200 1350 1500
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Grau do grafo com 10000 vrtices
Misra & Gries
Hu & Blake
CAAL bits
Figura 4.9. Grafos REGULARES: comparao com os algoritmos disponveis
na literatura.
36 Captulo 4. Anlises Experimentais
Os grcos das Figuras 4.7, 4.8 and 4.9 apresentam as comparaes da implemen-
tao CAAL bits com os algoritmos UTA [2010b] inspirado em Misra & Gries [1992], e
UTA [2010a] inspirado em Hu & Blake [1997], disponveis na literatura, considerando
a razo de colorao e tempos de execuo. Para todas as instncias consideradas
possvel notar com clareza que a implementao CAAL bits supera as implementaes
disponveis na literatura.
Nas legendas dos prximos grcos, o termo tradicional ser utilizado para re-
ferenciar a implementao do algoritmo de colorao de arestas baseada na prova do
Teorema de Vizing disponvel em Nakano et al. [1995], que utiliza a estrutura fan de
forma explcita na demonstrao introduzida no Captulo 2. O termo proposto (ou
proposta) ser utilizado para representar a implementao do algoritmo de colora-
o de arestas baseada na prova do Teorema de Vizing disponvel em Gould [1988],
como apresentada no Captulo 3. Nas duas implementaes, foi utilizada a estratgia
de execuo CAAL e a implementao da estrutura de dados Free(v) utilizando a
representao das cores disponveis em vetores de palavras.
1
1.05
1.1
1.15
1.2
1.25
1.3
1.35
1.4
1.45
1.5
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
R
a
z

o

d
e

C
o
l
o
r
a

o
Numero de vrtices
Tradicional
Proposto
0
2
4
6
8
10
12
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Numero de vrtices
Tradicional
Proposto
Figura 4.10. Grafos DENSOS: comparao entre as implementaes bsicas dos
algoritmos estudados.
Os grcos das Figuras 4.10, 4.11 and 4.12 apresentam as comparaes para a
razo de colorao e tempos de execuo entre a implementao tradicional e a imple-
mentao proposta, para os grafos dos conjuntos DENSOS, GRANDES e REGULA-
RES, respectivamente. importante ressaltar que a implementao tradicional possui
complexidade assinttica O(m n) enquanto a implementao proposta possui com-
plexidade assinttica O(m n ), no entanto os resultados experimentais mostram
que ambas implementaes apresentam comportamentos similares para as instncias
de grafos do conjunto DENSOS e que as diferenas de tempo de execuo e razo de
colorao que deveriam ser diferentes, com base nos resultados tericos, no se conr-
mam na prtica, j que o algoritmo tradicional , na mdia, apenas um pouco mais
4.2. Resultados 37
1
1.01
1.02
1.03
1.04
1.05
1.06
1.07
1.08
0 10 20 30 40 50 60 70 80 90 100
R
a
z

o

d
e

C
o
l
o
r
a

o
Densidade do Grafo com 10000 vrtices
Tradicional
Proposto
0
2
4
6
8
10
12
14
0 10 20 30 40 50 60 70 80 90 100
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Densidade do Grafo com 10000 vrtices
Tradicional
Proposto
Figura 4.11. Grafos GRANDES: comparao entre as implementaes bsicas
dos algoritmos estudados.
1.7
1.8
1.9
2
2.1
2.2
0 150 300 450 600 750 900 1050 1200 1350 1500
R
a
z

o

d
e

C
o
l
o
r
a

o
Grau do grafo com 10000 vrtices
Tradicional
Proposto
0
1
2
3
4
5
6
0 150 300 450 600 750 900 1050 1200 1350 1500
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Grau do grafo com 10000 vrtices
Tradicional
Proposto
Figura 4.12. Grafos REGULARES: comparao entre as implementaes bsi-
cas dos algoritmos estudados.
rpido. Para os grafos do conjunto GRANDES, observa-se que o tempo de execuo
da implementao baseada no algoritmo tradicional ligeiramente menor que a imple-
mentao proposta. Os resultados obtidos para os grafos do conjunto REGULARES
mostram que a implementao proposta supera, em termos de tempos de execuo, a
implementao baseada no algoritmo tradicional.
Dois mtodos de pr-processamento foram aplicados aos algoritmos tradicional e
proposto. Os grcos das Figuras 4.13, 4.14 e 4.15 mostram, para cada conjunto de
instncias, o porcentual de reduo do tempo de execuo dos algoritmos e os tempos
de execuo acumulados que consideram a execuo do pr-processamento a priori
juntamente com a execuo dos algoritmos.
Os grcos das Figuras 4.16, 4.17 e 4.18 mostram, para cada conjunto de ins-
tncias, o porcentual de reduo do tempo de execuo dos algoritmos, tradicional
e proposto, e o tempo de execuo acumulado do pr-processamento embutido e dos
algoritmos.
38 Captulo 4. Anlises Experimentais
0
10
20
30
40
50
60
70
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
P
o
r
c
e
n
t
u
a
l

d
e

r
e
d
u

o

d
o

t
e
m
p
o

d
e

e
x
e
c
u

o
Numero de vrtices
Tradicional + a priori
Proposto + a priori
0
1
2
3
4
5
6
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Numero de vrtices
Tradicional + a priori
Proposto + a priori
Figura 4.13. Grafos DENSOS: novos resultados obtidos com o auxlio da estra-
tgia de pr-processamento a priori.
250
200
150
100
50
0
50
100
0 10 20 30 40 50 60 70 80 90 100
P
o
r
c
e
n
t
u
a
l

d
e

r
e
d
u

o

d
o

t
e
m
p
o

d
e

e
x
e
c
u

o
Densidade do Grafo com 10000 vrtices
Tradicional + a priori
Proposto + a priori
0
2
4
6
8
10
12
14
16
18
20
0 10 20 30 40 50 60 70 80 90 100
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Densidade do Grafo com 10000 vrtices
Tradicional + a priori
Proposto + a priori
Figura 4.14. Grafos GRANDES: novos resultados obtidos com o auxlio da
estratgia de pr-processamento a priori.
40
20
0
20
40
60
80
100
120
0 150 300 450 600 750 900 1050 1200 1350 1500
P
o
r
c
e
n
t
u
a
l

d
e

r
e
d
u

o

d
o

t
e
m
p
o

d
e

e
x
e
c
u

o
Grau do grafo com 10000 vrtices
Proposto + a priori
Tradicional + a priori
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
0 150 300 450 600 750 900 1050 1200 1350 1500
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Grau do grafo com 10000 vrtices
Tradicional + a priori
Proposto + a priori
Figura 4.15. Grafos REGULARES: novos resultados obtidos com o auxlio da
estratgia de pr-processamento a priori.
4.2. Resultados 39
60
40
20
0
20
40
60
80
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
P
o
r
c
e
n
t
u
a
l

d
e

r
e
d
u

o

d
o

t
e
m
p
o

d
e

e
x
e
c
u

o
Numero de vrtices
Tradicional + embutido
Proposto + embutido
0
1
2
3
4
5
6
7
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Numero de vrtices
Tradicional + embutido
Proposto + embutido
Figura 4.16. Grafos DENSOS: novos resultados obtidos com o auxlio do pr-
processamento embutido.
200
150
100
50
0
50
100
0 10 20 30 40 50 60 70 80 90 100
P
o
r
c
e
n
t
u
a
l

d
e

r
e
d
u

o

d
o

t
e
m
p
o

d
e

e
x
e
c
u

o
Densidade do Grafo com 10000 vrtices
Tradicional + embutido
Proposto + embutido
0
1
2
3
4
5
6
7
8
9
0 10 20 30 40 50 60 70 80 90 100
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Densidade do Grafo com 10000 vrtices
Tradicional + embutido
Proposto + embutido
Figura 4.17. Grafos GRANDES: novos resultados obtidos com o auxlio do
pr-processamento embutido.
8
6
4
2
0
2
4
6
0 150 300 450 600 750 900 1050 1200 1350 1500
P
o
r
c
e
n
t
u
a
l

d
e

r
e
d
u

o

d
o

t
e
m
p
o

d
e

e
x
e
c
u

o
Grau do grafo com 10000 vrtices
Tradicional + embutido
Proposto + embutido
0
1
2
3
4
5
6
0 150 300 450 600 750 900 1050 1200 1350 1500
T
e
m
p
o

d
e

e
x
e
c
u

o

(
s
e
g
u
n
d
o
s
)
Grau do grafo com 10000 vrtices
Tradicional + embutido
Proposto + embutido
Figura 4.18. Grafos REGULARES: novos resultados obtidos com o auxlio do
pr-processamento embutido.
40 Captulo 4. Anlises Experimentais
Tabela 4.1. Valores das mdias de reduo no tempo de execuo obtidos pelas
estratgias de pr-processamento para os algoritmos estudados.
Instncias Proposto Tradicional
de teste a priori embutido a priori embutido
DENSOS 49,18% 63,92% 50,63% 17,32%
GRANDES -4,77% 21,34% -26,97% -59,37%
REGULARES -22,16% -1,70% 21,67% -0,04%
Mdias 7,41% 27,85% 15,11% -14,03%
As mdias dos porcentuais de reduo do tempo de execuo obtidos pelas estra-
tgias de pr-processamento em cada algoritmo podem ser visto pela Tabela 4.1. Com
o auxlio dessa tabela possvel observar que, atravs dos resultados obtidos, todos os
procedimentos de pr-processamento apresentaram os melhores desempenhos para os
grafos do conjunto DENSOS, onde os valores de esto prximos a n. Para a imple-
mentao do algoritmo proposto, os melhores resultados foram alcanados com o auxlio
do pr-processamento embutido. Para a implementao tradicional, os melhores resul-
tados foram alcanados com o auxlio do pr-processamento a priori. Considerando
qualquer uma das estratgias de pr-processamento possvel ver, atravs dos gr-
cos das Figuras 4.13 e 4.16, que os melhores tempos de execuo foram obtidos pela
combinao dessas estratgias de pr-processamento com a implementao baseada no
algoritmo proposto.
Considerando apenas os grafos do conjunto GRANDES, a Tabela 4.1 mostra que
a estratgia de pr-processamento embutido foi aquela que efetivamente contribuiu na
reduo do tempo de execuo da implementao baseada no algoritmo de colorao
de arestas proposto. Considerando os demais cenrios que envolvem os grafos do con-
junto GRANDES, observa-se que os tempos de execuo aumentaram com o uso das
estratgias de pr-processamento. Esse fenmeno pode ser explicado pelo fato de que
algumas das cores que foram atribudas s arestas, com a utilizao dos procedimentos
de pr-processamento, podem ter sido temporariamente inadequadas, isso fez com que
o algoritmo necessitasse trocar a colorao de certas arestas, previamente coloridas,
para satisfazer todos os vrtices do grafo. Considerando qualquer uma das estratgias
de pr-processamento possvel ver, atravs dos grcos das Figuras 4.14 e 4.17, que
os melhores tempos de execuo foram obtidos utilizando a combinao da estratgia
de pr-processamento embutido com a implementao baseada no algoritmo proposto.
O pr-processamento pode no gerar bons resultados para a colorao inicial do
grafo quando o valor de muito menor que n, onde as chances de conitos no
4.2. Resultados 41
momento de determinao de uma cor durante o pr-processamento so muito altas,
o que justica os cenrios que apresentaram baixo desempenho dos procedimentos de
pr-processamento nesse conjunto de grafos.
Atravs dos resultados ilustrados na Tabela 4.1, com relao aos grafos do con-
junto REGULARES, possvel ver que a estratgia de pr-processamento a priori
foi aquela que apresentou-se mais adequada para ser aplicada em conjunto com a
implementao tradicional, enquanto que o pr-processamento embutido, foi o mais
adequando para ser aplicado em conjunto com a implementao baseada no algoritmo
proposto. Esses resultados so conrmados pelos grcos da Figura 4.15, onde a im-
plementao tradicional apresenta os melhores tempos de execuo, e pelos grcos
da Figura 4.18, onde a implementao baseada no algoritmo proposto apresenta os
melhores tempos de execuo.
Com base nos resultados aqui apresentados, possvel realizar as seguintes ar-
maes:
1. as estratgias de execuo propostas exerceram um papel fundamental no desem-
penho dos algoritmos de colorao de arestas, visto que, a escolha apropriada na
ordem em que as arestas e as cores so processadas reete nos tempos de exe-
cuo dos algoritmos. Com destaque, tem-se a estratgia CAAL, que promove a
escolha das cores aleatoriamente e a escolha das arestas em ordem lexicogrca;
2. o uso de vetores de palavras, na implementao da estrutura de dados Free(v),
ajudou a reduzir o tempo computacional para determinar uma cor na interseo
das cores disponveis em dois vrtices durante a execuo dos algoritmos estuda-
dos;
3. o uso dos procedimentos de pr-processamento produziram, na mdia, grandes
redues nos tempos computacionais dos algoritmos estudados, como visto atra-
vs da Tabela 4.1. Em especial, enfatiza-se a relevncia do pr-processamento
embutido, por destacar-se como a estratgia mais apropriada para a obteno de
melhores ganhos em termos de reduo no tempo de execuo em conjunto com a
implementao do algoritmo de colorao de arestas proposto, assim como o uso
do pr-processamento a priori em conjunto com a implementao tradicional.
Os desempenhos dos algoritmos de colorao de arestas podem ser inuenciados
pelas caractersticas do grafo em que so aplicados. Para os grafos do conjunto DEN-
SOS, a implementao do algoritmo proposto, com o auxlio do pr-processamento
embutido, foi aquela que, de acordo com o grco da Figura 4.16b, obteve os menores
tempos de execuo.
42 Captulo 4. Anlises Experimentais
De acordo com o grco da Figura 4.17b, a implementao do algoritmo proposto,
com o auxlio do pr-processamento embutido, sempre apresenta os menores tempos
de execuo para os grafos do conjunto GRANDES, fazendo com que esse algoritmo
seja escolhido como o mais adequado a ser aplicado nesse conjunto de grafos.
Com relao ao grafos do conjunto REGULARES, os resultados apresentaram
diferenas expressivas. Mesmo que o uso do pr-processamento embutido seja o mais
indicado para ser utilizado em conjunto com a implementao baseada no algoritmo
proposto, esse no foi capaz de reduzir o tempo de execuo do algoritmo de colorao
de arestas para esse conjunto de grafos. O pr-processamento a priori, por sua vez,
o mais indicado para ser utilizado em conjunto com a implementao baseada no
algoritmo tradicional nos grafos do conjunto REGULARES.
Captulo 5
Concluso
Neste trabalho, foram apresentadas diversas contribuies para o Problema de Colora-
o de Arestas utilizando no mais que +1 cores em grafos simples, tais como deni-
es das estratgias para a ordem de processamento das arestas e das cores, estratgias
de pr-processamento e estruturas de dados para representao das cores disponveis
em um vrtice. Duas implementaes ecientes em termos de tempo de execuo e
espao, baseadas no Teorema de Vizing, foram estudadas e analisadas empiricamente.
Diferentes estruturas de dados foram propostas para representar o conjunto de cores
disponveis em um vrtice do grafo. Estratgias de pr-processamento foram desenvol-
vidas com o objetivo de fornecer um grafo parcialmente colorido como entrada para o
algoritmo de colorao. Tais tcnicas de pr-processamento podem ser utilizadas por
qualquer algoritmo de colorao de arestas.
Atravs dos resultados obtidos, foi possvel perceber que a seleo das cores em
ordem aleatria e das arestas em ordem lexicogrca (CAAL) mostrou-se mais ade-
quada para os algoritmos estudados. Tal estratgia foi a que mais contribuiu para
reduzir os valores de razo de colorao dos algoritmos de colorao de arestas, fato
reetido na grande taxa de acerto na escolha das cores atribudas s arestas.
O pr-processamento embutido foi aquele que mais contribuiu para o aumento do
desempenho do algoritmo proposto, pois o que menos interfere na estratgia CAAL,
quando comparado com o pr-processamento a priori, para o mesmo algoritmo. Por
outro lado, a estratgia de pr-processamento a priori contribuiu de forma mais efe-
tiva na reduo dos tempos computacionais obtidos pela implementao do algoritmo
tradicional.
Na estratgia embutido, todas as arestas incidentes em um vrtice v
i
so consi-
deradas antes das arestas incidentes no vrtice v
i+1
, de tal forma que as chances do
algoritmo principal de recolorir as arestas incidentes no vrtice v
i
em alguma iterao
43
44 Captulo 5. Concluso
futura do algoritmo sejam minimizadas. Na estratgia a priori, as arestas descoloridas
restantes no grafo parcialmente colorido so facilmente coloridas pelo algoritmo tradi-
cional. Caso a cor de uma determinada aresta no seja obtida atravs da vericao
das cores disponveis nos vrtices que so conectados por essa aresta, espera-se que
seja possvel construir e rotacionar um fan em um grafo parcialmente colorido com
um menor nmero de passos nesse novo grafo.
Dado que algumas arestas incidentes em um vrtice v
i
podem ser deixadas des-
coloridas em caso de falha do pr-processamento, a construo da estrutura fan pode
ser realizada de forma mais rpida, necessitando um nmero menor de arestas para
constru-la.
A representao das cores disponveis em um vrtice com o uso de vetores de
palavras permitiu obter uma signicativa reduo no tempo computacional com relao
implementao baseada em lista de nmeros inteiros na etapa em que o algoritmo
precisa encontrar uma cor na interseo de cores disponveis em um par de vrtices
para colorir a aresta que os conecta. Como observado nos resultados computacionais,
estas contribuies apresentaram grande impacto no desempenho dos algoritmos.
Como trabalho futuro, sugere-se a realizao de anlises empricas da implemen-
tao do algoritmo de colorao de arestas proposto por Gabow et al. [1985]. Atravs
desta anlise, pretende-se vericar se o desempenho desse algoritmo na prtica cor-
responde ao resultado terico que o aponta como o melhor algoritmo de colorao de
arestas j publicado
1
, comparando tais resultados com os aqui apresentados.
1
At o momento da publicao deste texto, no se sabe a existncia de uma implementao de tal
algoritmo disponvel na literatura.
Referncias Bibliogrcas
Chrobak, M. & Yung, M. (1989). Fast algorithms for edge-coloring planar graphs. J.
Algorithms, 10:35--51.
Cole, R. & Kowalik, L. (2008). New linear-time algorithms for edge-coloring planar
graphs. Algorithmica, 50:351--368.
Diestel, R. (2005). Graph Theory, volume 173 of Graduate Texts in Mathematics.
Springer-Verlag, Heidelberg.
Dong, W. & Xu, B. (2010). Some results on acyclic edge coloring of plane graphs.
Information Processing Letters, 110:887--892.
Dongs, Y. (2010). Stony brook project implementations. http://www8.cs.umu.se/
kurser/TDBA77/VT06/algorithms/WEBSITE/IMPLEMEN/STONY/DISTRIB/VIZING/.
[Online; acessado em 10 de abril de 2010].
Froncek, D. (2010). Scheduling a tournament. Em Joseph A. Gallian, E., editor,
Mathematics and Sports, captulo 17. Mathematical Association of America, Duluth,
Minnesota.
Gabow, H. N.; Nishizeki, T.; Kariv, O. Leven, D. & Terada, O. (1985). Algorithms for
edge-coloring graphs. Relatrio tcnico, Tohoku University.
Gould, R. (1988). Graph Theory. Benjamin-Cummings.
Hakimi, S. L. & Kariv, O. (1986). A generalization of edge-coloring in graphs. Journal
of Graph Theory, 10:139--154.
Holyer, I. (1981). The NP-completeness of edge-coloring. SIAM Journal on Computing,
10:718 -- 720.
Hsu, C.-C.; Liu, P.; wei Wang, D. & Wu, J.-J. (2006). Generalized edge coloring
for channel assignment in wireless networks. International Conference on Parallel
Processing, pp. 82--92.
45
46 Referncias Bibliogrficas
Hu, Y. F. & Blake, R. J. (1997). Algorithms for scheduling with applications to parallel
computing. Adv. Eng. Softw., 28:563--572.
Januario, T. (2011). Implementao e anlise de algoritmos para colorao de arestas.
Dissertao de mestrado, Universidade Federal de Minas Gerais, Belo Horizonte,
Minas Gerais, Brasil.
Kirkman, T. P. (1847). On a problem in combinatorics. Cambridge and Dublin Mathe-
matical Journal, 2:191--201.
Liang, W.; Shen, X. & Hu, Q. (1996). Parallel algorithms for the edge-coloring and
edge-coloring update problems. J. Parallel Distrib. Comput., 32:66--73.
Matouek, J. & Grtner, B. (2006). Understanding and Using Linear Programming
(Universitext). Springer-Verlag New York, Inc., Secaucus, NJ, USA.
Misra, J. & Gries, D. (1992). A constructive proof of vizings theorem. Inf. Process.
Lett., 41:131--133.
Nakano, S.; Zhou, X. & Nishizeki, T. (1995). Edge-coloring algorithms. Em Computer
Science Today, volume 1000, pp. 172--183. Springer-Verlag.
Sanders, D. P. & Zhao, Y. (2001). Planar graphs of maximum degree seven are Class
I. J. Comb. Theory Ser. B, 83:201--212.
Scheide, D. & Stiebitz, M. (2010). Vizings coloring algorithm and the fan number. J.
Graph Theory, 65:115--138.
Shannon, C. E. (1949). A theorem on coloring the lines of a network. Journal of
Mathematical Physics, 28:148--151.
Sharebaf, S. R. (2009). Vertex, edge and total coloring in spider graphs. Applied
Mathematical Sciences, 3:877 -- 881.
Shin-ichi, N.; Takao, N. & Nobuji, S. (1993). Approximation algorithms for the f-edge-
coloring of multigraphs. Transactions of the Japan Society for Industrial and Applied
Mathematics, 3:279--307. em Japons.
Skulrattanakulchai, S. (2002). 4-edge-coloring graphs of maximum degree 3 in linear
time. Inf. Process. Lett., 81:191--195.
Takabatake, T. (2005). Another simple algorithm for edge-coloring bipartite graphs.
IEICE Transactions on Fundamentals of Electronics, Communications and Compu-
ter Sciences, E88-A:1303--1304.
Referncias Bibliogrficas 47
UTA (2010a). Prototype vizing (degree+1) edge colorer. http://reptar.uta.edu/
NOTES4351/edgeColor4.c. [Online; acessado em 10 de abril de 2010].
UTA (2010b). Prototype vizing (degree+1) edge colorer. http://reptar.uta.edu/
NOTES5311/misraGriesNew.c. [Online; acessado em 10 de abril de 2010].
Vizing, V. G. (1964). On an estimated of the chromatic class of a p-graph. Diskrete
Analiz., 3:25 -- 30. em Russo.
West, D. B. (2001). Introduction to Graph Theory (2nd Edition). Prentice Hall.

Vous aimerez peut-être aussi