Escolar Documentos
Profissional Documentos
Cultura Documentos
FORTALEZA – CEARÁ
2016
THALYSON GOMES NEPOMUCENO DA SILVA
FORTALEZA – CEARÁ
2016
Dados Internacionais de Catalogação na Publicação
Sistema de Bibliotecas
Gostaria de agradecer aos meus familiares, por estarem ao meu lado nessa caminhada.
Aos meus amigos e colegas, por sempre estarem dispostos à me ajudar em dificuldades na
pesquisa.
À minha namorada, por ter me aguentado e me ajudado durante todo o período do mestrado.
Gostaria de agradecer aos meus orientadores, que sempre estiveram dispostos a me ajudar, até
mesmo no período de férias deles.
À UECE e todo seu corpo docente, por estarem comigo deste 2010, me ensinando e me dando
oportunidade de sempre aprender um pouco mais.
“I’m on a boat.”
(Andy Samberg)
RESUMO
The vertex coloring problem is extensively studied in graph theory, and consists of coloring the
vertices of a graph such that adjacent vertices have different colors and the number of colors used
is minimum. This work presents four new heuristics for the vertices coloring problem, based on
a proposal technical of graph division and a post-processing using b-coloring. New instances
focused on the allocation of frequencies were made and also used in tests. In computational
tests, the proposed algorithms proved competitive with the processing time and solution quality.
Obtaining, for most instances, as good as the best current solution algorithms in respect of
solution quality and running in a better time cost.
Tabela 1 – A tabela apresenta os números de cores utilizadas por cada heurística em cada
instância. Os valores são apresentados de forma x → y, em que x representa a
quantidade de cores obtida pela heurística sem utilização da b-estratégia, e y
representa a quantidade de cores utilizadas ao final da b-estratégia. Na última
linha da tabela, são apresentadas as médias de cores utilizadas por cada uma
das heurísticas para o grupo de instâncias utilizado. . . . . . . . . . . . . . 52
Tabela 2 – Resumo de desempenho dos algoritmos para as instâncias da família QUEEN.
São apresentadas as quantidade de cores utilizadas por cada algoritmo em
cada instância. Também é apresentada a quantidade de vértices e a quantidade
de arestas e a densidade de cada instância. Números em negrito indicam
que foram as melhores soluções para determinada instância, considerando os
algoritmos testados. Onde é apresentado o caractere 0 −0 , indica que não se
tem dados suficientes para a inferência da informação. . . . . . . . . . . . 53
Tabela 3 – Para cada algoritmo testado, foi contabilizada a quantidade de soluções
ótimas encontradas nas 18 instâncias com ótimos conhecidos, e quantas
vezes cada algoritmo conseguiu encontrar a melhor solução entre as soluções
dos algoritmos testados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Tabela 4 – Tabela comparativa com o algoritmo DSATUR. A primeira coluna apresenta
o nome das instâncias utilizadas. Cada par de colunas posteriores apresenta
as quantidades de cores utilizadas nas colorações e os tempos de execução,
respectivamente. Nas últimas duas colunas é apresenta a quantidade de
vértices e a quantidade de arestas de cada instância. . . . . . . . . . . . . . 54
Tabela 5 – Tabela comparativa com o algoritmo FLOW. A primeira coluna apresenta o
nome das instâncias utilizadas. Cada par de colunas posteriores apresentam
as quantidades de cores utilizadas nas colorações e os tempos de execução,
respectivamente. Nas últimas duas colunas é apresenta a quantidade de
vértices e a quantidade de arestas de cada instância. . . . . . . . . . . . . . 55
Tabela 6 – Resultados médios do GRASP, BT e dos algoritmos propostos. O resultado
apresentado é a média aritmética do número de cores utilizadas nas soluções
finais em cada uma das famílias de instâncias. . . . . . . . . . . . . . . . . 56
Tabela 7 – Quantidade de cores utilizadas nas soluções para as instâncias da família MYC. 57
Tabela 8 – Comparação de tempo para MYC. . . . . . . . . . . . . . . . . . . . . . . 57
Tabela 9 – Quantidade de cores utilizadas nas soluções para as instâncias da família REG. 58
Tabela 10 – Tempo de execução das heurísticas, em segundos, para as instâncias da
família REG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Tabela 11 – Quantidade de cores utilizadas nas soluções para as instâncias da família SGB. 59
Tabela 12 – Tempo de execução das heurísticas, em segundos, para as instâncias da
família SGB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Tabela 13 – Quantidade de cores utilizadas nas soluções para as instâncias da família LEI. 60
Tabela 14 – Tempo de execução das heurísticas, em segundos, para as instâncias da
família LEI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Tabela 15 – Quantidade de cores utilizadas nas soluções para as instâncias da família
QUEEN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Tabela 16 – Tempo de execução das heurísticas, em segundos, para as instâncias da
família QUEEN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Tabela 17 – A tabela apresenta a quantidade de cores utilizadas nas soluções dos algorit-
mos RLF, DSATUR, SS1, SS2, SSP1 e SSP2 para as instâncias propostas. . 62
LISTA DE ALGORITMOS
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . 19
2.1 DEFINIÇÕES DE GRAFOS . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1 Grafo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 Adjacência, Vizinhança e Grau . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.3 Caminho, Circuito, Conectividade e Clique . . . . . . . . . . . . . . . . 20
2.1.4 Busca em Largura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.5 Conjuntos independentes . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 PROBLEMA DE COLORAÇÃO DE GRAFOS . . . . . . . . . . . . . . . 23
2.2.1 Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.1.1 Problema de uso de registradores num processador . . . . . . . . . . . . . . 24
2.2.1.2 Problema de Programação de Horários . . . . . . . . . . . . . . . . . . . . 25
2.2.1.3 Problema de Fluxo Aéreo . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1.4 Problema de alocação de frequência . . . . . . . . . . . . . . . . . . . . . . 26
2.3 CONSTRUÇÃO DE MYCIELSKI . . . . . . . . . . . . . . . . . . . . . . 27
2.4 B-COLORAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5 ALGORITMOS PARA COLORAÇÃO DE VÉRTICES . . . . . . . . . . . 28
2.5.1 Algoritmos de Natureza Gulosa . . . . . . . . . . . . . . . . . . . . . . . 28
2.6 BUCKET SORT E DECOMPOSIÇÃO EM RAIZ QUADRADA . . . . . . 30
3 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . 31
3.1 UM ALGORITMO DE COLORAÇÃO DE GRAFOS PARA GRANDES
PROBLEMAS DE ESCALONAMENTO . . . . . . . . . . . . . . . . . . . 31
3.2 NOVO MÉTODO PARA COLORIR VÉRTICES DE UM GRAFO . . . . . 31
3.3 COLORAÇÃO DE GRAFOS PARA O GERENCIAMENTO DE FLUXO
AÉREO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4 RESOLVENDO O PROBLEMA DE COLORAÇÃO DE GRAFOS UTILI-
ZANDO ALGORITMOS GENÉTICOS HÍBRIDOS . . . . . . . . . . . . . 33
3.5 RESOLVENDO O PROBLEMA DE COLORAÇÃO DE GRAFOS UTILI-
ZANDO ALGORITMOS CULTURAIS . . . . . . . . . . . . . . . . . . . 34
3.6 META-HEURÍSTICA BUSCA TABU PARA O PROBLEMA DE COLORA-
ÇÃO DE GRAFOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.7 UM GRASP PARA COLORAÇÃO DE GRAFOS ESPARSOS . . . . . . . 35
4 PROPOSTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 ALGORITMOS PROPOSTOS . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.1 Divisão em Raiz Quadrada . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3.2 Utilização da BFS na coloração . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.3 Sqrt Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.4 Sqrt Start Priority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3.5 Modificação do procedimento de b-coloração . . . . . . . . . . . . . . . 43
4.3.6 Heurísticas Propostas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.3.7 Formulação de instâncias . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5 TESTES COMPUTACIONAIS . . . . . . . . . . . . . . . . . . . . . . . 48
5.1 INSTÂNCIAS DE DIMACS . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.1.1 Mycielski graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.1.2 Queens Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.1.3 Miles graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.1.4 Books graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.1.5 Register graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.1.6 Leighton Graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 TESTES COMPARATIVOS UTILIZANDO INSTÂNCIAS DE DIMACS . 51
5.3 IMPACTO DA UTILIZAÇÃO DA B-ESTRATÉGIA . . . . . . . . . . . . . 52
5.3.1 Comparação com RLF e DSATUR . . . . . . . . . . . . . . . . . . . . . 53
5.3.2 Comparação com FLOW . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.3.3 Comparação com as propostas de BT e GRASP . . . . . . . . . . . . . . 55
5.3.4 Comparação com GA e CA . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.4 TESTES COMPARATIVOS UTILIZANDO INSTÂNCIAS DE ALOCAÇÃO
DE FREQUÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6 CONCLUSÕES E TRABALHOS FUTUROS . . . . . . . . . . . . . . . 63
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
ÍNDICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
17
1 INTRODUÇÃO
Qual o número mínimo de cores para colorir um mapa em que países adjacentes
possuem cores distintas? Apesar de parecer simples, esse problema despertou a atenção de vários
pesquisadores e, consequentemente, um grande empenho em resolvê-lo. Durante as pesquisas
relacionadas ao problema, foram desenvolvidos avanços em teoria dos grafos e em matemática.
Em 1852 o problema de coloração de países de um mapa foi proposto por Francis Cuthrie, ele
presumiu que países do mapa poderiam ser coloridos com no máximo quatro cores, de tal forma
que os países vizinhos não compartilhassem uma mesma cor. Porém, não sabia como provar
isso. O problema ficou conhecido como o Problema das Quatro Cores. Em 1976, Kenneth Appel
e Wolfang Haken, provaram computacionalmente que qualquer mapa pode ser colorido com
no máximo quatro cores. O problema foi estendido para ser aplicado em grafos gerais, que
consiste em colorir os vértices do grafo com um número mínimo de cores, de forma que vértices
adjacentes não compartilhem a mesma cor. Esse problema ficou conhecido como Problema de
Coloração de Grafos (KUBALE, 2004).
Alguns problemas reais podem ser modelados como um problema de coloração em
grafo, por exemplo:
• Problema de grade de horários de professores (WERRA, 1985);
• Alocação de tempo e frequência em sistemas de comunicação (GAMST, 1986);
• Alocação de registradores em um processador (CHAITIN et al., 1981);
• Controle de fluxo aéreo (BARNIER; BRISSET, 2004).
Em geral, problemas em que eventos conflitantes não podem ocorrer simultanea-
mente, podem ser modelados utilizando uma coloração de grafos, em que os vértices representam
objetos, e as arestas representam os conflitos existentes entre os objetos. A coloração é, então,
um particionamento dos objetos em conjuntos (cores), de tal forma que objetos conflitantes
(vértices adjacentes no grafos) não pertençam ao mesmo conjunto, sendo a solução do problema
a quantidade mínima de conjuntos necessários para particionar todos os objetos (LEIGHTON,
1979).
Apesar de ser um problema muito estudado, não é conhecido um algoritmo eficiente
para resolvê-lo, sendo classificado como um problema NP-Completo (GAREY; JOHNSON,
1979). O fato do problema ser classificado como NP-Completo justifica o uso de métodos
heurísticos para obter uma solução (GAREY; JOHNSON, 2002).
Inicialmente, algoritmos enumerativos de tempo exponencial foram propostos para
18
2 FUNDAMENTAÇÃO TEÓRICA
Um grafo é uma abstração matemática. Eles são utilizados para modelar situações
reais, onde os vértices representam objetos e as arestas representam os relacionamentos entre
esses objetos. A Teoria dos Grafos tem sido utilizada amplamente em várias áreas da ciência,
pois é possível representar qualquer tipo de relacionamento entre elementos de uma determinada
natureza (FEOFILOFF et al., 2011). Nessa seção, vamos definir um grafo e seus elementos.
As definições foram baseadas em (DIESTEL, 2000), e são voltadas para grafos finitos e não
direcionados.
2.1.1 Grafo
Um grafo é um dupla G(V, E), que consiste em um conjunto finito não vazio V =
{v1 , v2 , ..., vn } de vértices e um conjunto finito E = {e1 , e2 , ..., em } de arestas. Por exemplo,
grafos podem representar um mapa, onde seus vértices são as regiões delimitadas por suas
fronteiras, e suas arestas representam a existência de uma fronteira entre regiões do mapa.
Um caminho simples é um grafo não vazio P(V, E), de tal forma que V = {x0 , x1 , . . . , xk }
e E = {x0 x1 , x1 x2 , . . . , xk−1 xk }, onde os vértices xi são todos distintos. Os vértices x0 e xk são
chamados de extremos. O tamanho do caminho é igual ao número de arestas de E. Um caminho
P também pode ser denotado por x0 x1 . . . xk . A distância entre dois vértices v e u é igual ao
tamanho do menor caminho simples em que v e u sejam extremos.
Um circuito é um grafo C(V, E), de tal forma que V = {x0 , x1 , . . . , xk }, E = {x0 x1 , x1 x2 , . . . , xk x0 }
e |V | ≥ 3, onde os vértices xi são todos distintos. O tamanho do circuito é igual ao número de
arestas de E.
Dois vértices distintos v e u estão conectados se existe um caminho em que v e u
sejam extremos. Um grafo G(V, E) é conexo se para qualquer par de vértices v e u, existe um
caminho em que v e u são extremos, caso contrário, dizemos que o grafo é desconexo. Um grafo
completo G(V, E) é um grafo, tal que para qualquer par de vértices v e u, então vu ∈ E. Uma
clique em um grafo G(V, E) é um subgrafo completo de G. Detonamos como ω(G) o tamanho
21
da clique de tamanho máximo no grafo G. Na Figura 3 é apresentado um grafo que possui uma
clique de tamanho 4.
Definição 2.2.2 (k-coloração) Uma coloração de um grafo G(V, E) é dita uma k-coloração
quando o conjunto de cores S utilizado possui k cores, |S| = k.
24
Definição 2.2.3 (k-colorível) Um grafo é dito k-colorível se ele possui uma k-coloração.
Observação 2.2.1 Os vértices associados a uma cor formam uma classe de cores. Em uma
coloração, cada classe é um conjunto independente. Os únicos grafos que podem possuir uma
1-coloração são aquelas que não possuem arestas.
Definição 2.2.4 (Número cromático) O número cromático χ(G) é o menor inteiro k tal que G
seja k-colorível.
Teorema 2.2.1 (Teorema de Brooks (BROOKS, 1941)) Para qualquer grafo G(V, E), o nú-
mero cromático χ(G) é no máximo ∆(G) + 1.
Observação 2.2.2 Se um grafo for completo, será necessário colorir cada vértice utilizando
cores diferentes, logo χ(G) = |V |.
2.2.1 Aplicações
alocação de duas variáveis que ainda estão em uso em um mesmo registrador, uma vez que uma
variável está em uso se seu valor atual ainda será utilizado em uma instrução futura (CHOW;
HENNESSY, 1990). Para exemplificar, visualizamos na Figura 6, retirada de (PROLO, 2007),
que a variável s1 se mantém em uso da instrução a até a instrução e, enquanto a variável s2
se mantém em uso da instrução b até a instrução f . Após identificar os intervalos de usos das
variáveis, é necessário gerar um grafo de interferência, conectando variáveis que são utilizadas
durante intervalos coincidentes.
µ(G) ← G
Adicione um vértice k ao grafo µ(G);
for Cada vértice v ∈ G do
Adicione um vértice v0 em µ(G);
Adicione uma aresta kv0 em µ(G);
end for
for Cada aresta vu ∈ G do
Adicione uma aresta vu0 em µ(G);
Adicione uma aresta v0 u em µ(G);
end for
RETORNE: µ(G);
2.4 B-COLORAÇÃO
Em uma b-coloração de um grafo G(V, E), cada classe de cor utilizada na coloração
contém pelo menos um b-vértice, ou seja, um vértice que apresenta todas as demais cores
utilizadas na sua vizinhança.
Uma estratégia utilizada para encontrar uma b-coloração em um grafo, a partir de
uma coloração qualquer, é verificar se existem classes de cor que não contém um b-vértice. Caso
uma classe de cor não contenha um b-vértice, então podemos recolorir todos os vértices dessa
classe de cor, reduzindo assim uma classe de cor. A Figura 9, retirado de (ROCHA, 2009), ilustra
o funcionamento da estratégia citada. Denominaremos essa estratégia de b-estratégia.
vértices do grafo. A ideia do algoritmo é colorir todos os vértices do grafo seguindo a sequência
S, sempre colorindo o vértice com a menor cor possível, de tal forma que vértices adjacentes não
compartilhem a mesma classe de cor. Tal algoritmo é apresentado no Algoritmo 5.
O problema com esse algoritmo é que ele pode apresentar um desempenho ruim
dependendo da sequência S escolhida, retornando uma coloração que usa um número de cores
bem superior ao número cromático do grafo.
A Figura 10 ilustra a diferença de coloração dependendo da sequência S utilizada.
Perceba que para S =< 1, 2, 4, 3 > são utilizadas 3 cores na coloração, enquanto para S =<
1, 2, 3, 4 > são utilizadas apenas 2.
Várias heurísticas para determinar uma boa sequência S foram propostas na literatura,
como as heurístcas: DSATUR (BRÉLAZ, 1979) e RLF (Recursive Largest First) (LEIGHTON,
1979). Embora as heurísticas gulosas sejam muito rápidas, podem gerar soluções insatisfatória
para algumas instâncias de grafos. Nas últimas décadas, os algoritmos gulosos têm sido ampla-
mente utilizados em aplicações onde o tempo de execução é priorizado e para gerar soluções
iniciais em meta-heurísticas (LÜ; HAO, 2010).
Importante notar que não existe algoritmo polinomial que garante uma solução ótima
30
3 TRABALHOS RELACIONADOS
Nesse capítulo são descritos trabalhos relacionados com a pesquisa realizada. Ini-
cialmente, são apresentados os algoritmos propostos em (LEIGHTON, 1979) e (BRÉLAZ,
1979), pois são propostas gulosas, e apesar de serem trabalhos antigos, ainda hoje são frequen-
temente utilizados para gerar soluções iniciais para meta-heurísticas mais avançadas (NETO;
GOMES, 2015). Também são apresentados os trabalhos (DOUIRI; ELBERNOUSSI, 2015),
(ABBASIAN et al., 2011), (AGUIAR et al., 2005), e (LAGUNA; MARTÍ, 2001), que utilizaram
meta-heurísticas para resolução do problema de coloração.
são coloridos utilizando as cores dos respectivos vértices em S2 . Porém, em alguns casos é
necessário realizar modificações na solução gerada para se obter indivíduos que satisfazem o
problema trabalhado.
O processo de mutação de uma solução S é semelhante ao processo de busca utilizado
em (LAGUNA; MARTÍ, 2001), em que um vértice que apresente conflitos de cores é escolhido
aleatoriamente, e então sua cor é modificada para tentar reduzir o número de conflitos de cores
da solução.
Na etapa de atualização de solução, as soluções que possuem menor quantidade de
conflitos também possuem maior probabilidade de passarem para a geração seguinte.
Ao final do algoritmo, a solução que apresenta uma coloração válida e que tenha
utilizado a menor quantidade de cores é retornada.
4 PROPOSTA
4.1 JUSTIFICATIVA
4.2 OBJETIVOS
p
Na divisão proposta, um grafo G(V, E) é dividido em |V | subgrafos, em seguida,
colori-los utilizando busca em largura a partir dos vértice iniciais de cada subgrafo. A inspiração
para a divisão do grafo antes da coloração vem do algoritmo de ordenação por Bucket, que divide
p
um vetor em buckets para então ordena-lo. A divisão de um grafo G(V, E) em |V | grafos
p
é realizada da seguinte forma: Inicialmente, |V | vértices são selecionados, e adicionados
em uma fila, em seguida, é realizada uma busca em largura a partir dos vértices selecionados,
realizando uma busca para cada vértice, essas buscas acontecem simultaneamente. O algoritmo
p
da divisão de um grafo G(V, E) em |V | subgrafos é apresentado no Algoritmo 6. Para melhor
entendimento do procedimento, a Figura 11 ilustra o passo a passo da execução do algoritmo
para um grafo de 9 vértices. Na Figura 11(a), os vértices 1, 4 e 7 são selecionados como iniciais
e adicionados na fila. Na Figura 11(b), o vértice 1 é removido da fila e o vértice 2 é adicionado
na fila e no subgrafo iniciado em 1. Na Figura 11(c), o vértice 4 é removido da fila e os vértices 6
e 8 são adicionados na fila e no subgrafo iniciado em 4. Na Figura 11(d), o vértice 7 é removido
da fila e os vértices 5 e 9 são adicionados na fila e no subgrafo iniciado em 7. Na Figura 11(e), o
vértice 2 é removido da fila e o vértice 3 é adicionado na fila e no subgrafo iniciado em 1. Na
Figura 11(f), não é possível adicionar outro vértice na fila, assim, todos os vértices são removidos
da fila e 3 subgrafos são retornados.
39
porém, após colorir um vértice v, somente serão adicionados na fila, os vértices que possuam
distância igual a 2 de v. Perceba que a utilização dessa busca pode não colorir todo o grafo,
como ilustrado na Figura 12, então, ao final da busca, os vértices não coloridos são coloridos de
forma sequencial pelos identificadores dos vértices.
Figura 12 – Execução de busca em largura com utilização de passos de tamanho dois. Nessa
figura é ilustrado um grafo e 4 vértices, inicialmente, não coloridos. Em (a), o
vértice 1 é adicionado na fila para coloração. Em (b), o vértice 1 é colorido e o
vértice 3 é adicionado na fila para coloração. Em (c), o vértice 3 é colorido, e
nenhum vértice é adicionado na fila, pois todos os vértices com distância 2 do
vértice 3 já foram coloridos. Em (d), os vértices 2 e 4 são coloridos.
O primeiro algoritmo proposto nesse trabalho é o Sqrt Start 1 (SS1). Ele é a aplicação
do método sequencial guloso, utilizando como ordem de coloração, a sequência em que os
41
vértices são visitados na divisão por raiz quadrada. Para melhor entendimento do funcionamento
do algoritmo, um pseudocódigo é apresentado em Algoritmo 8.
A complexidade do algoritmo é O(n2 ), tornando sua execução tão rápida quanto os
algoritmos DSATUR e RLF, o que torna possível também uma aplicação em grafos com número
elevado de vértices.
Por conta da utilização de uma árvore binária balanceada no algoritmo, sua comple-
xidade é multiplicada por log(|V |) no pior caso, tornando a complexidade do algoritmo igual a
O(n2 .log(n)).
43
Como dito na Seção 2.4, o procedimento para conseguir uma b-coloração, a partir
de uma coloração, consiste em verificar se existem classes de cor que não pussem um b-vértice.
Então podemos recolorir todos os vértices dessa classe de cor, reduzindo assim uma classe de
cor.
Tomando como exemplo o grafo da Figura 13(a), se utilizarmos o algoritmo sequen-
cial para sua coloração, resultará na coloração ilustrada na Figura 13(b). Caso a b-estratégia
fosse utilizada, apenas a cor 1 seria eliminada, recolorindo o vértice 1 com a cor 2, o vértice 2
com a cor 3, o vértice 4 com a cor 3 e o vértice 5 com a cor 2, resultando na Figura 14. Perceba
que todas as cores utilizadas possuem um b-vértice, o vértice 6 é um b-vértice de cor 2, o vértice
7 é um b-vértice de cor 3 e o vértice 8 é um b-vértice de cor 4. Perceba também que 3 cores são
utilizadas na coloração.
Figura 13 – (a) Representa um grafo de 8 vértices, sendo o número escrito em cada vértice
correspondente ao respectivo índice. (b) Ilustra a coloração final do grafo (a) caso
fosse utilizado o algoritmo sequencial para sua coloração.
vértice 6 não é alterada, pois ele é um b-vértice. Resultando no grafo da Figura 15(a). Agora
analisando a classe de cor 3, o vértice 2 recebe a cor 2, o vértice 4 recebe a cor 4, o vértice 5
recebe a cor 2 e o vértice 7 recebe a cor 2. Resultando no grafo da Figura 15(b). Por fim, a classe
de cor 4 é analisada, porém nenhum vértice pode ser recolorido. Resultando em uma coloração
que utiliza apenas 2 cores, reduzindo em uma cor do resultado alcançado pela b-estratégia padrão
padrão.
Figura 15 – (a) Apresenta a configuração da coloração do grafo após a classe de cor 2 ser
analisada. (b) Apresenta a configuração da coloração do grafo após a classe de cor 3
ser analisada.
e estão dispostos em um plano, sendo cada vértice adicionado aleatoriamente em uma posição
(x, y) do plano, tal que 0 ≤ x, y ≤ 3000. Consideramos também que cada estação possui um raio
de alcance r, tal que 80 ≤ r ≤ 100. Para finalizar, para cada par de vértice, é verificado se a
distância entre eles é menor ou igual a soma de seus raios, caso positivo, adicionamos uma aresta
entre eles.
Figura 16 – A figura ilustra o processo de geração das instâncias. Inicialmente são gerados
pontos aleatórios no plano, em seguida pontos próximos são conectados por arestas.
4.4 METODOLOGIA
da família QUEEN para gerar uma extensão dessas instâncias e então utilizamos tanto as
instâncias originais quanto as extensões geradas nos testes. Essas instâncias foram escolhidas
por serem consideradas difíceis (AGUIAR et al., 2005). Um fato importante para decisão de
aplicar a construção de Mycielski, é o fato de estar provado que o número cromático do grafo
aumenta em uma unidade para cada aplicação da construção, assim temos conhecimento do
número cromático de cada instância resultante.
Após confrontar as abordagens propostas com os algoritmos DSATUR e RLF,
selecionamos alguns trabalhos cujo objetivo principal seja encontrar boas soluções para o
problema de coloração de grafos e que também utilizassem as instâncias de DIMACS, com
o objetivo de comparar os resultados e tempo entre os estratégias. Os trabalhos escolhidos
foram (AGUIAR et al., 2005), (ABBASIAN et al., 2011), (DOUIRI; ELBERNOUSSI, 2015) e
(LAGUNA; MARTÍ, 2001), (BARNIER; BRISSET, 2004).
Realizamos testes computaciais comparando a performance dos algoritmos propostos
com os algoritmos DSATUR e RLF para as instâncias propostas de alocação de frequências.
Também realizamos estudo sobre o impacto da utilização da b-estratégia quando aplicada nas
soluções para as instâncias QUEEN. Teste realizado tanto utilizando os algoritmos propostos,
quanto os algoritmos RLF e DSATUR.
Para finalizar a pesquisa, expomos, analisamos e discutimos os resultados obtidos
nos testes computacionais realizados.
48
5 TESTES COMPUTACIONAIS
Os grafos dessa família são inspirados no problema das 8 rainhas (WIRTH, 1971),
em que o objetivo é posicionar 8 rainhas em um tabuleiro de xadrez, de tal forma que nenhuma
delas se ataquem. Os grafos são gerados com base em um tabuleiro NxN, em que cada célula é
um vértice do grafo, e um par vértices são ligados se rainhas posicionadas neles se atacarem. Tal
49
construção gera grafos considerados densos, pois cada rainha pode atacar todos as células em
todas as direções. Todas as instâncias contém cliques de tamanho pelo menos N, o que significa
que possuem número cromático de pelo menos N. Em (GARDNER, 1968), foi afirmado que
em uma grafo Queen NxN é N-colorível se o resto da divisão de N por 6 for 1 ou 5, porém
sem provas matemáticas. Nas instâncias de DIMACS, são disponibilizadas 12 instâncias desse
tipo: queen_5_5, queen_6_6, queen_7_7, queen_8_8, queen_8_12, queen_9_9, queen_10_10,
queen_11_11, queen_12_12, queen_13_13, queen_15_15 e queen_16_16. A Figura 18, extraída
de (WEISSTEIN, 2011), ilustra alguns exemplos de Queen Graphs.
Os grafos dessa família foram extraídos de livros. Para cada obra literária, cada
personagem é representado por um vértice, e um par de vértices é conectado se os personagem
representados por eles se encontram pelo menos uma vez nas obras. No repositório de DIMACS,
são disponibilizadas 5 instâncias desse grupo: anna, david, homer, huck e jean. A instância
homer não foi utilizada nesse trabalho, pois é dito na literatura que a instância apresenta erro de
formatação (GONZÁLEZ-VELARDE; LAGUNA, 2002)(LAGUNA; MARTÍ, 2001)(CHAMS
et al., 1987)(GALINIER; HAO, 1999).
e fpsol2.i.3.
As instâncias desse grupo são geradas utilizando o método proposto em por Leighton
para produzir grafos com número cromático conhecido (LEIGHTON, 1982). O método para gerar
um grafo de N vértices e número cromático k, consiste em introduzir cliques no grafo, o tamanho
das cliques introduzidas variam de 2 até k. Nas instâncias de DIMACS, são disponibilizadas
12 instâncias: le450_5a, le450_5b, le450_5c, le450_5d, le450_15a, le450_15b, le450_15c,
le450_15c, le450_25a, le450_25b, le450_25c e le450_25d.
Em (RUIZ, 2012) é mencionando que uma das dificuldades para se comparar métodos
de coloração é por conta das diferentes formas de comparações utilizadas entre os autores.
Enquanto alguns autores disponibilizam os resultados de cada instância separadamente, outros
autores disponibilizam apenas as médias dos resultados. E também não existe um consenso
no que diz respeito as instâncias utilizadas, cada trabalho utiliza instâncias diferentes, porém,
normalmente são utilizadas as instâncias de DIMACS (JOHNSON; TRICK, 1996).
Vamos utilizar as seguintes abreviações para os trabalhos relacionados:
• DSATUR para o algoritmo proposto em (BRÉLAZ, 1979);
• RLF para o algoritmo proposto em (LEIGHTON, 1979);
• FLOW para o algoritmo proposto em (BARNIER; BRISSET, 2004);
• GRASP para o algoritmo proposto em (LAGUNA; MARTÍ, 2001);
• BT para o algoritmo proposto em (AGUIAR et al., 2005);
• GA para o algoritmo proposto em (DOUIRI; ELBERNOUSSI, 2015);
• CA para o algoritmo proposto em (ABBASIAN et al., 2011).
Nossos testes foram realizados e comparados seguindo a métrica de comparação
de cada autor. Primeiramente vamos comparar os resultados obtidos com os resultados de
algoritmos DSATUR, e RLF. Em seguida comparamos os resultados do algoritmo FLOW. Após
isso, confrontamos nossas propostas com os algoritmos GRASP e BT, pois os dois autores
utilizaram as mesmas métricas de avaliação dos resultados. Para finalizar apresentaremos uma
comparação geral dos resultados, apresentando os resultados obtidos em cada família de instância
utilizada, comparando com os resultados apresentados pelos algoritmos CA e GA.
52
Para estudar sobre o impacto da b-estratégia no resultado final obtidos pelos algorit-
mos propostos, utilizamos as instâncias da família Queen. Escolhemos as instâncias dessa família
por que, apesar de serem instâncias conhecidas pela sua dificuldade, os algoritmos propostos
conseguiram obter soluções comparáveis a soluções obtidas por meta-heurísticas avançadas.
Também iremos utilizar a b-estratégia no algoritmo DSATUR, aplicando o procedimento ao final
da execução do algoritmo.
Nos experimentos, foram verificadas as quantidades de cores utilizadas nas soluções
encontradas por cada heurística sem a utilização da b-estratégia, e em seguida, foi a b-estratégia
em cada solução, também registrando as quantidades de cores utilizadas nas soluções finais
obtidas. Os resultados obtidos nesse experimento foram compilados na Tabela 1.
Tabela 1 – A tabela apresenta os números de cores utilizadas por cada heurística em cada
instância. Os valores são apresentados de forma x → y, em que x representa a
quantidade de cores obtida pela heurística sem utilização da b-estratégia, e y
representa a quantidade de cores utilizadas ao final da b-estratégia. Na última linha
da tabela, são apresentadas as médias de cores utilizadas por cada uma das
heurísticas para o grupo de instâncias utilizado.
DSATUR SS1 SS2 SSP1 SSP2 Vértices Arestas
queen5_5 5→5 7→5 7→5 6→5 6→5 25 160
queen6_6 9→9 9→7 9→8 10 → 8 9→8 36 290
queen7_7 11 → 10 11 → 8 12 → 8 10 → 9 10 → 8 49 476
queen8_8 12 → 11 12 → 10 13 → 10 13 → 10 12 → 9 64 728
queen8_12 14 → 14 17 → 13 16 → 12 15 → 13 16 → 13 96 1368
queen9_9 13 → 12 13 → 11 15 → 11 14 → 11 14 → 11 81 2112
queen10_10 14 → 14 16 → 13 17 → 12 15 → 13 15 → 12 100 2940
queen11_11 15 → 15 18 → 14 16 → 14 17 → 13 18 → 14 121 3960
queen12_12 16 → 16 18 → 15 19 → 15 19 → 15 18 → 14 144 5192
queen13_13 17 → 16 21 → 16 20 → 16 20 → 16 20 → 15 169 6656
queen15_15 21 → 20 21 → 19 22 → 19 23 → 18 21 → 19 225 10360
queen16_16 23 → 22 26 → 20 24 → 20 26 → 20 24 → 20 256 12640
Média 14,16 → 13,66 15,75 → 12,58 15 → 12,5 15,6 → 12,58 15,25 → 12,33
quantidade de cores que possuem b-vértices, reduzindo o número de cores que necessitam ser
removidas para gerar uma b-coloração.
Tabela 2 – Resumo de desempenho dos algoritmos para as instâncias da família QUEEN. São
apresentadas as quantidade de cores utilizadas por cada algoritmo em cada instância.
Também é apresentada a quantidade de vértices e a quantidade de arestas e a
densidade de cada instância. Números em negrito indicam que foram as melhores
soluções para determinada instância, considerando os algoritmos testados. Onde é
apresentado o caractere 0 −0 , indica que não se tem dados suficientes para a inferência
da informação.
Instância \Método DSATUR RLF SS1 SS2 SSP1 SSP2 Melhor Ótimo Gap Vértices Arestas Densidade
queen10_10 14 15 13 12 13 12 12 - - 100 2940 0.5939393939
queen11_11 18 15 14 14 13 14 13 - - 121 3960 0.5454545455
queen12_12 16 19 15 15 15 14 14 - - 144 5192 0.5042735043
queen13_13 17 20 16 16 16 15 15 - - 169 6656 0.4688644689
queen15_15 21 23 19 19 18 19 18 - - 225 10360 0.4111111111
queen16_16 23 24 20 20 20 20 20 - - 256 12640 0.387254902
queen5_5 5 7 5 5 5 5 5 5 0.00% 25 160 0.5333333333
queen6_6 9 10 7 8 8 8 7 7 0.00% 36 290 0.4603174603
queen7_7 11 10 8 8 9 8 8 7 14.29% 49 476 0.4047619048
queen8_12 14 15 13 12 13 13 12 12 0.00% 96 1368 0.3
queen8_8 12 12 10 10 10 9 9 9 0.00% 64 728 0.3611111111
queen9_9 13 15 11 11 11 11 11 10 10.00% 81 2112 0.6518518519
queen10_10_mm1 15 16 13 13 13 13 13 - - 201 8920 0.4437810945
queen11_11_mm1 16 17 15 14 14 15 14 - - 243 12001 0.4081556304
queen12_12_mm1 17 19 16 15 14 15 14 - - 289 15720 0.377739331
queen13_13_mm1 18 21 17 17 16 17 16 - - 339 20137 0.3514862718
queen15_15_mm1 22 25 18 20 20 20 18 - - 451 31305 0.3084996305
queen16_16_mm1 23 25 21 20 21 21 20 - - 513 38176 0.2906920078
queen5_5_mm1 6 8 6 6 6 6 6 6 0.00% 51 505 0.3960784314
queen6_6_mm1 9 11 8 8 8 8 8 8 0.00% 73 906 0.3447488584
queen7_7_mm1 11 11 9 9 9 10 9 8 12.50% 99 1477 0.3044733045
queen8_12_mm1 15 16 13 13 13 13 13 13 0.00% 193 4200 0.2266839378
queen8_8_mm1 13 13 11 10 11 11 10 10 0.00% 129 2248 0.2722868217
queen9_9_mm1 14 16 12 11 12 12 11 11 0.00% 163 6417 0.4860259032
queen10_10_mm2 15 18 17 15 15 16 15 - - 403 26961 0.3328395245
queen11_11_mm2 18 19 18 17 17 18 17 - - 487 36246 0.3062843816
queen12_12_mm2 19 22 19 18 19 19 18 - - 579 47449 0.283563715
queen13_13_mm2 20 23 20 19 20 21 19 - - 679 60750 0.2639227391
queen15_15_mm2 23 27 25 22 23 24 22 - - 903 43242 0.1061796967
queen16_16_mm2 23 27 25 23 24 25 23 - - 1027 115041 0.2183558539
queen5_5_mm2 7 10 7 7 7 7 7 7 0.00% 103 1566 0.3040186372
queen6_6_mm2 10 13 10 9 9 10 9 9 0.00% 147 2791 0.2600875967
queen7_7_mm2 12 12 11 11 11 11 11 9 22.22% 199 4530 0.2299375666
queen8_12_mm2 16 17 16 15 16 16 15 14 7.14% 387 12793 0.1712790028
queen8_8_mm2 13 15 13 12 13 14 12 11 9.09% 259 6873 0.2057106941
queen9_9_mm2 15 18 15 14 15 15 14 12 16.67% 371 19414 0.2828585998
54
Tabela 3 – Para cada algoritmo testado, foi contabilizada a quantidade de soluções ótimas
encontradas nas 18 instâncias com ótimos conhecidos, e quantas vezes cada
algoritmo conseguiu encontrar a melhor solução entre as soluções dos algoritmos
testados.
Ótimos encontrados Melhores soluções entre os algoritmos
DSATUR 3 5
RLF 0 0
Sqrt Start 1 Step 7 13
Sqrt Start 2 Step 9 27
Sqrt Priority 1 Step 6 18
Sqrt Priority 2 Step 6 14
Tabela 4 – Tabela comparativa com o algoritmo DSATUR. A primeira coluna apresenta o nome
das instâncias utilizadas. Cada par de colunas posteriores apresenta as quantidades de
cores utilizadas nas colorações e os tempos de execução, respectivamente. Nas
últimas duas colunas é apresenta a quantidade de vértices e a quantidade de arestas
de cada instância.
DSATUR tempo(s) SS1 tempo(s) SS2 tempo(s) SSP1 tempo(s) SSP2 tempo(s) Vértices Arestas
queen5_5_mm8 14 0,23 15 0,11 13 27.47 14 3,9 14 913,76 6655 1210410
queen6_6_mm8 18 0,42 18 0,17 19 65,13 18 7,72 18 2148,87 9471 2132695
queen7_7_mm8 21 0,81 18 0,24 17 143,08 18 14,13 19 5768.95 12799 3435006
queen8_8_mm8 21 1,38 18 0,41 18 224,65 19 21,05 17 9660,68 16639 5182953
queen9_9_mm8 23 2,19 21 0,67 20 397,94 21 32,54 20 15429,54 20991 14370562
A partir dos resultados obtidos, observamos que a heurística SS1 executa em menor
tempo computacional que as demais. Também notamos que a utilização de passos de tamanho 2
na coloração pode aumentar consideravelmente o tempo de execução em instâncias grandes.
55
Tabela 5 – Tabela comparativa com o algoritmo FLOW. A primeira coluna apresenta o nome das
instâncias utilizadas. Cada par de colunas posteriores apresentam as quantidades de
cores utilizadas nas colorações e os tempos de execução, respectivamente. Nas
últimas duas colunas é apresenta a quantidade de vértices e a quantidade de arestas
de cada instância.
FLOW tempo(s) SS1 tempo(s) SS2 tempo(s) SSP1 tempo(s) SSP2 tempo(s) Vértices Arestas
miles250 8 0,01 9 < 0,005 8 < 0,005 8 < 0,005 8 < 0,005 128 387
miles500 20 0,01 20 < 0,005 20 < 0,005 20 < 0,005 20 < 0,005 128 1170
miles750 31 0,02 31 < 0,005 31 < 0,005 31 < 0,005 31 < 0,005 128 2113
miles1000 42 0,02 42 < 0,005 42 < 0,005 42 < 0,005 42 < 0,005 128 3216
miles1500 73 0,04 73 < 0,005 73 < 0,005 73 < 0,005 73 < 0,005 128 5198
queen5_5 5 < 0,005 5 < 0,005 5 < 0,005 5 < 0,005 5 < 0,005 25 160
queen6_6 7 0,02 7 < 0,005 8 < 0,005 8 < 0,005 8 < 0,005 36 290
queen7_7 7 0,03 8 < 0,005 8 < 0,005 9 < 0,005 8 < 0,005 49 476
queen8_8 9 3,23 10 < 0,005 10 < 0,005 10 < 0,005 9 < 0,005 64 728
queen9_9 10 99,20 11 < 0,005 11 < 0,005 11 < 0,005 11 < 0,005 81 2112
queen10_10 11 2352,28 13 < 0,005 12 < 0,005 13 < 0,005 12 < 0,005 100 2940
queen11_11 13 3,72 14 < 0,005 14 < 0,005 13 < 0,005 14 < 0,005 121 3960
queen12_12 14 40,95 15 < 0,005 15 < 0,005 15 < 0,005 14 < 0,005 144 5192
queen13_13 17 0,15 16 < 0,005 16 < 0,005 16 < 0,005 15 < 0,005 169 6656
queen15_15 18 18,40 19 < 0,005 19 < 0,005 18 < 0,005 19 0,01 225 10360
Para realizar uma comparação mais geral entre os algoritmos propostos e os trabalhos
relacionados, vamos apresentar todos os resultados das instâncias utilizadas, proporcionando
uma melhor base de dados para alguma comparação futura por outros trabalhos. Dividimos
as instâncias em 5 grupos: LEI (Leighton Graphs), MYC (Mycielski graphs), REG (Register
graphs), SGB (Books graphs, Miles graphs e a intância games120) e QUEEN (Queen graphs).
Os trabalhos (LAGUNA; MARTÍ, 2001) e (AGUIAR et al., 2005) não serão representados, pois
não é informado os resultados de cada instância, e sim da média deles. Nas tabelas apresentadas
a seguir, onde é apresentado o caractere 0 −0 , indica que o dado não foi fornecido pelo autor.
57
Tabela 7 – Quantidade de cores utilizadas nas soluções para as instâncias da família MYC.
SS1 SS2 SSP1 SSP2 GA CA SS1/SS2/SS1/SS2 Vértices Arestas
myciel3 4 4 4 4 4 4 4 11 20
myciel4 5 5 5 5 5 5 5 23 71
myciel5 6 6 6 6 6 6 6 47 236
myciel6 7 7 7 7 7 - 7 95 755
myciel7 8 8 8 8 8 - 8 191 2360
Tabela 9 – Quantidade de cores utilizadas nas soluções para as instâncias da família REG.
SS1 SS2 SSP1 SSP2 GA CA SS1/SS2/SS1/SS2 Vértices Arestas
fpsol2.i.1 65 65 65 65 65 - 65 496 11654
fpsol2.i.2 30 30 30 30 30 - 30 451 8691
fpsol2.i.3 30 30 30 30 30 - 30 425 8688
inithx.i.1 54 54 54 54 - - 54 864 18707
inithx.i.2 31 31 31 31 - - 31 645 13979
inithx.i.3 31 31 31 31 - - 31 621 13969
mulsol.i.1 49 49 49 49 49 49 49 197 3925
mulsol.i.2 31 31 31 31 31 31 31 188 3885
mulsol.i.3 31 31 31 31 31 - 31 184 3916
mulsol.i.4 31 31 31 31 31 - 31 185 3946
mulsol.i.5 31 31 31 31 31 - 31 186 3973
zeroin.i.1 49 49 49 49 49 - 49 211 4100
zeroin.i.2 30 30 30 30 30 - 30 211 3541
zeroin.i.3 30 30 30 31 30 - 30 206 3540
Tabela 11 – Quantidade de cores utilizadas nas soluções para as instâncias da família SGB.
SS1 SS2 SSP1 SSP2 GA CA SS1/SS2/SS1/SS2 Vértices Arestas
anna 11 11 11 11 11 11 11 138 493
david 11 11 11 11 11 11 11 87 406
games120 9 9 9 9 9 9 9 120 638
huck 11 11 11 11 11 11 11 74 301
jean 10 10 10 10 10 10 10 80 254
miles250 9 8 8 8 8 8 8 128 387
miles500 20 20 20 20 20 - 20 128 1170
miles750 31 31 31 31 - - 31 128 2113
miles1000 42 42 42 42 - - 42 128 3216
miles1500 73 73 73 73 - 73 73 128 5198
Tabela 12 – Tempo de execução das heurísticas, em segundos, para as instâncias da família SGB.
SS1 SS2 SSP1 SSP2 GA CA SS1/SS2/SS1/SS2 Vértices Arestas
anna <0,005 <0,005 <0,005 <0,005 11,63 7,42 <0,005 138 493
david <0,005 <0,005 <0,005 <0,005 10,89 4,26 <0,005 87 406
games120 <0,005 <0,005 <0,005 <0,005 10,77 12,46 <0,005 120 638
huck <0,005 <0,005 <0,005 <0,005 11,10 2,39 <0,005 74 301
jean <0,005 <0,005 <0,005 <0,005 9,92 2,10 <0,005 80 254
miles250 <0,005 <0,005 <0,005 0,01 4,39 6,90 0,01 128 387
miles500 <0,005 <0,005 <0,005 <0,005 14,48 - <0,005 128 1170
miles750 <0,005 <0,005 <0,005 <0,005 - - <0,005 128 2113
miles1000 <0,005 <0,005 <0,005 0,01 - - <0,005 128 3216
miles1500 <0,005 0,01 <0,005 0,01 - - 0,02 128 5198
Tabela 13 – Quantidade de cores utilizadas nas soluções para as instâncias da família LEI.
SS1 SS2 SSP1 SSP2 GA CA SS1/SS2/SS1/SS2 Vértices Arestas
le450_5a 11 11 11 11 - - 11 450 5714
le450_5b 12 11 11 11 - - 11 450 5734
le450_5c 14 11 12 14 - - 11 450 9803
le450_5d 14 11 13 14 - - 11 450 9757
le450_15a 19 18 19 20 - - 18 450 8168
le450_15b 19 18 19 19 - - 18 450 8169
le450_15c 24 22 24 24 15 - 22 450 16680
le450_15d 27 25 27 28 15 - 25 450 16750
le450_25a 26 25 26 25 - - 25 450 8260
le450_25b 25 25 25 25 - 25 25 450 8263
le450_25c 30 29 30 30 25 - 29 450 17343
le450_25d 29 28 32 30 25 - 28 450 17425
Tabela 14 – Tempo de execução das heurísticas, em segundos, para as instâncias da família LEI.
SS1 SS2 SSP1 SSP2 GA CA SS1/SS2/SS1/SS2 Vértices Arestas
le450_5a <0,005 <0,005 <0,005 <0,005 - - <0,005 450 5714
le450_5b <0,005 <0,005 <0,005 <0,005 - - <0,005 450 5734
le450_5c <0,005 0.01 0.01 0.01 - - 0,03 450 9803
le450_5d <0,005 0.01 0.01 0.01 - - 0,03 450 9757
le450_15a <0,005 0.01 0.01 0.01 - - 0,03 450 8168
le450_15b <0,005 0.01 0.01 0.01 - - 0,03 450 8169
le450_15c <0,005 0.04 0,02 0.04 93 - 0,10 450 16680
le450_15d <0,005 0.04 0,02 0.04 228 - 0,10 450 16750
le450_25a <0,005 0.01 0.01 0.01 - - 0,03 450 8260
le450_25b <0,005 0.01 0.01 0.01 - - 0,03 450 8263
le450_25c <0,005 0.05 0.02 0.05 740 - 0,12 450 17343
le450_25d <0,005 0.05 0.02 0.05 382 - 0,12 450 17425
Tabela 15 – Quantidade de cores utilizadas nas soluções para as instâncias da família QUEEN.
SS1 SS2 SSP1 SSP2 GA CA SS1/SS2/SS1/SS2 Vértices Arestas
queen5_5 5 5 5 5 5 5 5 25 160
queen6_6 7 8 8 8 7 7 7 36 290
queen7_7 8 8 9 8 7 8 8 49 476
queen8_8 12 10 10 9 9 - 9 64 728
queen8_12 13 12 13 13 - - 12 96 1368
queen9_9 11 11 11 11 10 - 11 81 2112
queen10_10 13 12 13 12 - 15 12 100 2940
queen11_11 14 14 13 14 - - 13 121 3960
queen12_12 15 15 15 14 - - 14 144 5192
queen13_13 16 16 16 15 - - 15 169 6656
queen15_15 19 19 18 19 - - 18 225 10360
queen16_16 20 20 20 20 - - 20 256 12640
Tabela 17 – A tabela apresenta a quantidade de cores utilizadas nas soluções dos algoritmos
RLF, DSATUR, SS1, SS2, SSP1 e SSP2 para as instâncias propostas.
RLF DSATUR SS1 SS2 SSP1 SSP2 Vértices Arestas
alo100 4 4 4 4 4 4 100 52
alo200 7 6 6 6 6 6 200 228
alo300 6 6 6 6 6 6 300 478
alo400 7 7 7 7 7 7 400 870
alo500 9 8 8 8 8 8 500 1323
alo600 9 10 9 9 9 9 600 1905
alo700 9 9 9 9 9 9 700 2634
alo800 12 11 10 9 10 9 800 3593
alo900 11 11 11 11 11 12 900 4438
alo1000 15 14 12 13 13 12 1000 5483
algoritmo RLF teve o pior desempenho médio dentre os algoritmos utilizados. O algoritmo que
obteve o pior desempenho médio dentre os algoritmos propostos, foi o SSP1, utilizando em
média 8, 3 cores, enquanto os demais algoritmos propostos utilizaram em média 8, 2 cores.
63
O fato das heurísticas propostas não conseguirem boas soluções para grafos da
família LEI, abre caminho para uma pesquisa mais detalhada sobre as características dos grafos
que as heurísticas têm dificuldades em conseguirem boas soluções. E possivelmente realizar
alterações nos métodos a fim de melhorar as soluções obtidas.
Notamos que a divisão proposta pode não ser eficiente, dependendo dos vértices
iniciais escolhidos, tornando um possível trabalho futuro, aprimorar a escolha dos vértices
iniciais na divisão em subgrafos, de modo a otimizar a performance da b-estratégia modificada,
que é aplicada posteriormente.
As instâncias que foram geradas, voltas para o problema de alocação de frequência,
foram geradas de forma aleatória, tornando um possível trabalho futuro, a geração de instâncias
tomando como base redes de rádio reais.
65
REFERÊNCIAS
ABBASIAN, R.; MOUHOUB, M.; JULA, A. Solving graph coloring problems using cultural
algorithms. In: FLAIRS Conference. [S.l.: s.n.], 2011.
AGUIAR, F. N. de; HONORATO, G. d. S. C.; SANTOS, H. G.; OCHI, L. S. Metaheurística
busca tabu para o problema de coloração de grafos. Anais do XXXVII SBPO, p. 2497–2504,
2005.
BARNIER, N.; BRISSET, P. Graph coloring for air traffic flow management. Annals of operati-
ons research, Springer, v. 130, n. 1-4, p. 163–178, 2004.
BELLO, G. S.; RANGEL, M. C.; BOERES, M. C. S. Uma Abordagem do Problema de
Programação de Grade Horária Sujeito a Restrições Utilizando Coloração de Grafos. Tese
(Doutorado) — Dissertação de Mestrado, Universidade Federal do Espírito Santo, Brasil, 2007.
BENDER, M. A.; FARACH-COLTON, M. The lca problem revisited. In: LATIN 2000: Theo-
retical Informatics. [S.l.]: Springer, 2000. p. 88–94.
BERKMAN, O.; VISHKIN, U. Recursive star-tree parallel data structure. SIAM Journal on
Computing, SIAM, v. 22, n. 2, p. 221–242, 1993.
BOMZE, I. M.; BUDINICH, M.; PARDALOS, P. M.; PELILLO, M. The maximum clique
problem. In: Handbook of combinatorial optimization. [S.l.]: Springer, 1999. p. 1–74.
BRÉLAZ, D. New methods to color the vertices of a graph. Communications of the ACM,
ACM, v. 22, n. 4, p. 251–256, 1979.
BROOKS, R. L. On colouring the nodes of a network. In: CAMBRIDGE UNIV PRESS.
Mathematical Proceedings of the Cambridge Philosophical Society. [S.l.], 1941. v. 37, n. 02,
p. 194–197.
BROWN, J. R. Chromatic scheduling and the chromatic number problem. Management Science,
INFORMS, v. 19, n. 4-part-1, p. 456–463, 1972.
CAPRARA, A.; FISCHETTI, M.; TOTH, P. Modeling and solving the train timetabling problem.
Operations research, Informs, v. 50, n. 5, p. 851–861, 2002.
CARTER, M. W. Or practice—a survey of practical applications of examination timetabling
algorithms. Operations research, INFORMS, v. 34, n. 2, p. 193–202, 1986.
CHAITIN, G. J.; AUSLANDER, M. A.; CHANDRA, A. K.; COCKE, J.; HOPKINS, M. E.;
MARKSTEIN, P. W. Register allocation via coloring. Computer languages, Elsevier, v. 6, n. 1,
p. 47–57, 1981.
CHAMS, M.; HERTZ, A.; WERRA, D. D. Some experiments with simulated annealing for
coloring graphs. European Journal of Operational Research, Elsevier, v. 32, n. 2, p. 260–266,
1987.
CHARTRAND, G.; ZHANG, P. A first course in graph theory. [S.l.]: Courier Corporation,
2012.
CHOW, F. C.; HENNESSY, J. L. The priority-based coloring approach to register allocation.
ACM Transactions on Programming Languages and Systems (TOPLAS), ACM, v. 12, n. 4,
p. 501–536, 1990.
66
COLEMAN, T. F.; MORÉ, J. J. Estimation of sparse jacobian matrices and graph coloring blems.
SIAM journal on Numerical Analysis, SIAM, v. 20, n. 1, p. 187–209, 1983.
COUDERT, O. Exact coloring of real-life graphs is easy. In: ACM. Proceedings of the 34th
annual Design Automation Conference. [S.l.], 1997. p. 121–126.
DOUIRI, S. M.; ELBERNOUSSI, S. A new heuristic for the sum coloring problem. Applied
Mathematical Sciences, v. 5, n. 63, p. 3121–3129, 2011.
DOUIRI, S. M.; ELBERNOUSSI, S. Solving the graph coloring problem via hybrid genetic
algorithms. Journal of King Saud University-Engineering Sciences, Elsevier, v. 27, n. 1, p.
114–118, 2015.
FISCHER, J.; HEUN, V. Theoretical and practical improvements on the rmq-problem, with
applications to lca and lce. In: SPRINGER. Combinatorial Pattern Matching. [S.l.], 2006. p.
36–48.
GALINIER, P.; HAO, J.-K. Hybrid evolutionary algorithms for graph coloring. Journal of
combinatorial optimization, Springer, v. 3, n. 4, p. 379–397, 1999.
GAMST, A. Some lower bounds for a class of frequency assignment problems. Vehicular
Technology, IEEE Transactions on, IEEE, v. 35, n. 1, p. 8–14, 1986.
GANDHAM, S.; DAWANDE, M.; PRAKASH, R. Link scheduling in wireless sensor networks:
distributed edge-coloring revisited. Journal of Parallel and Distributed Computing, Elsevier,
v. 68, n. 8, p. 1122–1134, 2008.
GARDNER, M. The unexpected hanging and other mathematical diversions. University of,
1968.
GONZÁLEZ-VELARDE, J. L.; LAGUNA, M. Tabu search with simple ejection chains for
coloring graphs. Annals of Operations Research, Springer, v. 117, n. 1-4, p. 165–174, 2002.
KIM, K.-Y. C. K. J. IT Convergence and Security 2012. [S.l.]: Springer Science Business
Media, 2012.
KIROVSKI, D.; POTKONJAK, M. Efficient coloring of a large spectrum of graphs. In: ACM.
Proceedings of the 35th annual Design Automation Conference. [S.l.], 1998. p. 427–432.
KNUTH, D. E. The art of computer programming: sorting and searching. [S.l.]: Pearson
Education, 1998. v. 3.
LAGUNA, M.; MARTÍ, R. A grasp for coloring sparse graphs. Computational optimization
and applications, Springer, v. 19, n. 2, p. 165–178, 2001.
LÜ, Z.; HAO, J.-K. A memetic algorithm for graph coloring. European Journal of Operational
Research, Elsevier, v. 203, n. 1, p. 241–250, 2010.
MANBER, U.; MYERS, G. Suffix arrays: a new method for on-line string searches. siam
Journal on Computing, SIAM, v. 22, n. 5, p. 935–948, 1993.
68
NEUFELD, G.; TARTAR, J. Graph coloring conditions for the existence of solutions to the
timetable problem. Communications of the ACM, ACM, v. 17, n. 8, p. 450–453, 1974.
RUIZ, I. C. R. Gravitational Swarm for Graph Coloring. Tese (Doutorado) — The University
of the Basque Country, 2012.
ÍNDICE
b-coloração, 26
Breadth-First Search (BFS), 22
Bucket Sort, 29
caminho simples, 20
circuito, 20
clique, 20
conexo, 20
Cultural Algorithm (CA), 33
densidade, 21
lista tabu, 34
mycielski, 25
r-partido, 22
Range Minimum Query (RMQ), 29
Recursive Largest First (RLF), 28
Tabu Search, 34
vizinhança, 20