Você está na página 1de 15

PROBLEMA E ALGORITMOS DE COLORAÇÃO EM GRAFOS - EXATOS E

HEURÍSTICOS
COLORING ALGORITHMS AND PROBLEM IN GRAPHS - EXACT AND
HEURISTIC

Alfredo Silveira Araújo Neto


Universidade Estadual do Ceará/Brasil
alfredosilveira@yahoo.com.br

Marcos José Negreiros Gomes


Universidade Estadual do Ceará/Brasil
negreiro@graphvs.com.br

Abstract: Context: Given a graph  and an integer I. INTRODUÇÃO


 > 0 the graph coloring problem consists to use a set Suponha a tarefa de colorir os países da
of  ≤  colors to assign to each node of  a certain América Sul, representados por meio do mapa da
color, so that adjacent vertices have distinct color. figura 1, de tal maneira que quaisquer dois países
Despite the existence of accurate methods capable of com uma fronteira em comum tenham que ser
determining the staining solution to the problem, it is
coloridos com cores distintas. Quantas cores, no
observed that these techniques have an exponential
complexity in some cases. The limitations presented
mínimo, seriam necessárias para execução desta
by exact methods when applied to instances of greater tarefa? A despeito de saber-se que o número
complexity motivated the development of several mínimo de cores necessário para este fim é quatro,
heuristics, able to indicate satisfactory solutions for pode-se afirmar que isto é verdadeiro para qualquer
graphs in general. This paper describes the problem mapa [4]?
of coloring graphs, presents some of the techniques Embora não seja difícil colorir um mapa da
that can be used in their determination, besides América do Sul com o emprego de apenas quatro
presenting some real problems that can be modeled as cores, esta tarefa torna-se impossível se tentarmos
a graph  and solved based on the result achieved by
utilizar somente três cores, pois os países
applying a coloring on .
Argentina, Bolívia, Brasil e Paraguai, por
Keywords: Coloring of graphs; Agorithms; Heuristics apresentarem fronteiras em comum, demandam no
mínimo quatro cores distintas para sua
Resumo: Contexto: Dados um grafo  e um inteiro representação, conforme as restrições impostas pelo
 > 0, o problema da coloração em grafos consiste em problema [4].
utilizar um conjunto de  ≤  cores para atribuir a Não obstante a apresentação dos países
cada vértice de  uma determinada cor, de modo que vizinhos em cores diferentes possa ser justificada
vértices adjacentes tenham cores distintas. A despeito pelo argumento de permitir uma melhor
da existência de métodos de exatos, capazes de visualização dos itens representados no mapa,
determinar a solução do problema de coloração, poderia não estar claro, entretanto, um raciocínio
observa-se que estas técnicas possuem em alguns casos
que sugerisse que quatro seria o número mínimo de
complexidade exponencial. A limitação apresentada
pelo métodos exatos quando aplicados a instâncias de
cores necessário para colorir os países de qualquer
maior complexidade motivou o desenvolvimento de mapa. De fato, seria provavelmente possível
diversas heurísticas, aptas a indicar soluções de imaginar um mapa complicado, contendo uma
maneira satisfatória para grafos em geral. Este grande quantidade de países, alguns dos quais com
trabalho descreve o problema da coloração em grafos, numerosos países vizinhos, construído de tal forma
apresenta algumas das técnicas que podem ser que possivelmente somente um grande número de
utilizadas na sua determinação, além de enumerar cores seria suficiente para colori-lo completamente
alguns problemas reais que podem ser modelados a [4].
partir de um grafo  e solucionados com base no
Embora possa parecer somente uma
resultado alcançado pela aplicação de uma coloração
sobre .
curiosidade, este problema despertou por muito
tempo o interesse e a atenção de muitos
Palavras-chave: Coloração de grafos; Algoritmos; pesquisadores, desta forma, as tentativas e
Heurísticas. iniciativas em solucioná-lo contribuíram de modo
significativo para o desenvolvimento de uma área
da matemática conhecida como Teoria dos Grafos.
Como conseqüência, o problema da coloração
acabou por adquirir uma denominação que o
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
tornaria conhecido em todo o mundo matemático: o número finito de casos particulares, dotados de
Problema das Quatro Cores [4]. certas propriedades que permitem estabelecer que a
coloração pode ser efetuada com somente quatro
cores. Por meio do uso de programas de
computador, em torno de 1.700 instâncias do
problema foram cuidadosamente criadas, e, após
1.200 horas de processamento verificou-se que
todos os casos necessitaram de no máximo quatro
cores para solução, ficando então este resultado
conhecido como o Teorema das Quatro Cores [3].
Não obstante outras demonstrações
semelhantes tenham sido apresentadas
posteriormente, uma importante questão ainda
permanece em aberto: existirá uma prova não-
enumerativa do Teorema da Quatros Cores, ou seja,
que possa ser obtida sem a utilização do
computador [3]?
Problemas de natureza algorítmica para os
quais existem soluções com tempo de execução
Fig. 1 - Mapa da América do Sul [4]. polinomial são considerados tratáveis, enquanto
aqueles que comprovadamente não podem ser
O problema das quatro cores pode ser descrito solucionados por algoritmos polinomiais são
como um problema de decisão que tem como denominados intratáveis. Os problemas tratáveis
objetivo indicar se os países representados em um constituem a classe  ao passo que os problemas
mapa qualquer, podem ser coloridos com quatro que somente podem ser resolvidos com o emprego
cores ou menos, de modo que países com uma de algoritmos enumerativos constituem a classe 
fronteira em comum sejam coloridos [3].
diferentemente. Muitos dos conceitos, teorias e A existência em  de uma classe extensa de
problemas da teoria dos grafos são decorrentes do problemas denominada de 

problema das quatro cores, e, a despeito do mesmo estimulou os estudos de complexidade e teoria dos
ser apresentado como um mapa real ou imaginário, algoritmos, além de promover o desenvolvimento
com fronteiras que delimitam vizinhanças entre de heurísticas, que podem ser definidas como
países, estados, províncias, ou distintas unidades quaisquer métodos ou técnicas criados para
geográficas, o mesmo conceito pode ser estendido solucionar determinados tipos de problemas [3]
para quaisquer outras divisões de caráter geral [4]. [10].
O problema da coloração foi proposto em O fato de um dado problema de programação
1852 por Francis Cuthrie, através de uma carta ser classificado como 
 constitui
escrita ao seu irmão Federick, que na ocasião era uma forte evidência de que não existem algoritmos
aluno do matemático Augusto De Morgan. Francis polinomiais que possam ser utilizados em sua
presumia em sua carta que aparentemente qualquer resolução, justificando portanto, o emprego de
mapa desenhado em uma folha de papel poderia ser métodos enumerativos ou desenvolvimento e uso de
colorido com apenas quatro cores sem que os países heurísticas [3].
com fronteiras em comum tivessem a mesma cor, e, Uma coloração em um grafo   , 
por meio da missiva, questionava ao seu irmão se consiste na atribuição de cores aos vértices em  de
haveria alguma maneira de provar este fato modo que vértices adjacentes tenham cores
matematicamente. Frederick apresentou o problema distintas. A entrada do problema é composta por
a De Morgan, porém este não foi capaz de um grafo  e um inteiro  > 0 enquanto que a
estabelecer uma prova, e, a despeito do grande saída resume-se em determinar se há uma coloração
esforço de pesquisa empregado ao longo dos 124 com  cores ou menos. Em grafos planares existe
anos seguintes, ninguém teve a capacidade de uma correspondência entre este problema e o
apresentar um mapa em que cinco cores fossem problema da coloração de mapas, no qual somente é
necessárias ou de estabelecer a prova formal de que possível distinguir regiões vizinhas se as mesmas
quatro cores seriam suficientes [3]. tiverem cores diferentes [3] [10].
O problema das quatro cores somente viria se A solução do problema do número cromático
resolvido em 1976 por Kenneth Appel e Wolfang em grafo  tem como objetivo determinar o menor
Haken, com o emprego de uma técnica de prova por valor de  que possibilite uma coloração, enquanto
computador, que utilizou resultados já estabelecidos que no problema do índice cromático deseja-se
da teoria dos grafos juntamente com certo colorir as arestas de  de maneira que duas arestas
raciocínio matemático adicional para demonstrar adjacentes tenham cores distintas. De acordo com o
que o problema geral pode ser reduzido a um Teorema de Vizing o índice cromático de  é igual
102
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
a  para grafos bipartidos e  ou  + 1 para meio dos quais  pode ser subdividido. Um
grafos em geral, onde  é o grau máximo dos grafo  com um número cromático  é um grafo -
vértices de  [3]. cromático, desta forma, se /   existe uma -
O problema do índice cromático pode ser coloração de  embora não exista uma  1 -
solucionado por meio de um algoritmo polinomial coloração. Um grafo é -colorível se e somente se
para algumas classes de grafos, a exemplo dos / ≤ , e, necessariamente, se uma -coloração
grafos bipartidos, porém este comportamento não é de um grafo -cromático é dada, então todas as 
verificado para grafos arbitrários. Desta maneira, cores estão sendo utilizadas [4].
embora o valor de  possa ser obtido para qualquer De maneira geral para demonstrar que um
grafo em tempo polinomial o problema de decisão dado grafo  tem um número cromático  é
associado, isto é, verificar se o índice cromático de necessário mostrar que existe uma -coloração de
 é igual a  é um problema 
 , G (/ ≤  ) e que cada coloração de  requer
sendo de difícil solução mesmo para pequenos pelo menos  cores (/ ≥  ). Não existe uma
valores de . De modo semelhante, dados um grafo fórmula geral para determinar o número cromático
  ,  e um inteiro positivo  ≤ || , de um grafo, por conseguinte, a análise deve estar
determinar se é -colorível também constitui um concentrada em identificar o número cromático de
problema de decisão classificado como  alguns grafos específicos, ou de grafos que

 [3][10]. pertencem a alguma classe de interesse, ou ainda


distinguir os limites superior ou inferior do número
II. NÚMERO CROMÁTICO DE UM GRAFO cromático de um grafo. Decerto, para um grafo 
qualquer de ordem 1, 1 ≤ / ≤ 1 [4].
O problema de coloração de grafos que tem Para determinadas categorias de grafos o
recebido maior atenção da literatura implica em número cromático é um valor que pode ser
colorir os vértices de um grafo, uma cor para cada presumido de modo trivial. Por exemplo [3]:
vértice, de modo que os vértices adjacentes sejam
coloridos de forma diferente. Embora as cores • Se 23 for um grafo completo com 1
usadas na representação do problema possam ser vértices então /23   1;
elementos de qualquer conjunto, cores reais (tais • Se 4 for um uma árvore (grafo conexo sem
como verde, vermelho, azul e amarelo) somente são ciclos) com pelo menos 2 vértices, então
utilizadas quando um pequeno número de cores está /4  2;
sendo considerado. Em muitas situações inteiros • /523,6 7  2 se 23,6 for um grafo
positivos 1,2, … ,  são empregados para bipartido com pelo menos uma aresta;
Se
3 for um grafo com 1 vértices
representar as cores e a razão desta substituição é

formando um único ciclo então /
3  
que na maioria das vezes o principal interesse
2, quando 1 for par e /
3   3, quando
consiste em determinar somente a quantidade de
cores utilizada na solução do problema [4].
1 for ímpar.
De modo formal uma coloração consiste em
função :  → ℕ, tal que $ ≠ &, se $ e &
são adjacentes em . Se cada cor utilizada no grafo
for uma das  cores estabelecidas, denomina-se a
coloração resultante como uma -coloração [4].
Suponha que é uma -coloração de um grafo
 , na qual os inteiros 1, 2, … ,  representam as
cores que estão sendo utilizadas. Se ' 1 ≤ ) ≤ 
é o conjunto de vértices em , destacados com a
cor ), então cada conjunto não vazio ' é nomeado
como uma classe de cor e todos os elementos não
vazios de {+ , , , … , - } constituem uma partição
de . Uma vez que não existem dois vértices
adjacentes de  associados por à mesma cor ) ,
cada uma das classes de cor ' 1 ≤ ) ≤ 
representa um conjunto independente de vértices de
 [4].
Um grafo  é  -colorível se houver uma
coloração de  construída a partir de um conjunto
de  cores. O menor inteiro positivo  para o qual
 é -colorível é o número cromático de  . Este
valor é representado por / e determina o
número mínimo de conjuntos independentes por
103
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
incorpora algoritmos de busca local à métodos
9 4 baseados em algoritmos evolucionários a fim de
obter um melhor equilíbrio entre intensificação e
diversificação [9].
Outra forma de solucionar o problema da
coloração para grafos de maiores dimensões
consiste em extrair do grafo original diversos sub-
conjuntos independentes e então determinar a
coloração aplicando o método escolhido ao grafo
/29   4 /4  2 residual. Esta técnica é particularmente útil para
grafos realmente extensos, sendo utilizada em geral
2,,; < como uma etapa de pré-processamento à aplicação
de outros algoritmos de coloração [9].

IV.ALGORITMOS

Uma vez que o problema da determinação de


uma partição cromática mínima é classificado como

 , qualquer algoritmo exato
/52,,; 7  2 /<   3
empregado em sua resolução terá complexidade
exponencial, desta maneira, torna-se importante se
Fig. 2 - Categorias triviais quanto a / [3]. dispor de técnicas heurísticas capazes de identificar
soluções de maneira satisfatória [1].
III. ESTADO DO CONHECIMENTO Considere   , = um grafo simples não
orientado com 1 vértices e arestas e Γ? o
As primeiras abordagens heurísticas conjunto dos vértices adjacentes a ? ∈  . Os
empregadas na solução do problema da coloração algoritmos heurísticos capazes de colorir os vértices
de grafos eram baseadas em métodos gulosos, os de  em ordem decrescente dos graus são
quais realizavam a coloração seqüencial dos conhecidos como seqüenciais, e, a seguir,
vértices guiados por uma função gulosa pré- descrevem-se algumas das técnicas que empregam
definida. Embora sejam muito rápidos, a qualidade esses e outros critérios na determinação da partição
das soluções obtidas são em geral insatisfatórias e cromática [3].
dentre os algoritmos que fazem parte desta classe
destacam-se as heurísticas Degree of Saturation A. Algoritmo de Welsh e Powell
(DSATUR) e Recursive Largest First (RLF). Nas
últimas décadas, essas heurísticas gulosas têm sido Foi proposto por Welsh e Powell em 1976. É
freqüentemente utilizadas para gerar soluções considerado de natureza míope, visto que determina
iniciais para meta-heurísticas mais avançadas [9]. a cor do vértice A após os A 1 vértices terem sido
Em contrapartida, algoritmos baseados em coloridos, tendo sempre como propósito minimizar
meta-heurísticas de busca local têm sido o número de cores necessárias [3].
amplamente utilizados para abordar o problema da
coloração. Um dos exemplos mais representativos é BC D) E   , Γ)
o então denominado algoritmo Tabucol o qual 1 ler {1, ΓA, A  1, 2, … , 1}
representou a primeira aplicação da meta-heurística 2 organizar os vértices {?+ , ?, , … , ?3 } de
Tabu Search na resolução do problema da modo que FΓ?G 7F≥ FΓ?GH+ 7F, A 
coloração de grafos. O método Tabucol foi
1, 2, … , 1
posteriormente melhorado por outros pesquisadores
3 para A  2 até 1 faça
e passou a ser empregado como um dos elementos
de algoritmos de coloração mais sofisticados.
4
G ← ∅
Diferentes meta-heurísticas baseadas em busca 5 fim-para
local incluem ainda Simulated Annealing, Iterated 6
+ ← {?+ }
Local Search, GRASP e Clustering-Guide Tabu 7 para A  2 até 1 faça
Search, entre outras [9]. 8  ← í1) {)|Γ?G  ∩
'  ∅, ) 
Em paralelo ao desenvolvimento dos 1, 2, … , 1}
métodos fundamentados em busca local, 9
- ←
- ∪ {?G }
pesquisadores propuseram diferentes técnicas para 10 fim-para
solucionar o problema da coloração, em particular 11  ← á?) {A|
G ≠ ∅, A  1, 2, . . 1}
para grafos de grandes dimensões, construídos de 12 escrever 
maneira randômica. Uma das mais recentes e
promissoras abordagens consiste na hibridação que
104
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
A intenção principal desta heurística é
determinar o número cromático / analisando os
vértices em ordem decrescente de seus graus, de
forma que na A -ésima iteração os vértices
?+, ?,, … , ?GP+ 1 ≤  ≤ A 1 já terão sido
examinados e coloridos com  cores. Para o vértice
?G , se houver alguma cor ), 1 ≤ ) ≤  ≤ A 1, tal
que Γ?G  ∩
'  ∅ , então esta cor pode ser
atribuída ao vértice ?G , ou seja,
' ←
' ∪ {?G }. De
outro modo atribui-se a cor  + 1 a ?G , isto é,

-H+ ←
-H+ ∪ {?G } . A probabilidade de ocorrer
Γ?G  ∩
' ≠ ∅ , para 1 ≤ ) ≤  , será diretamente
proporcional ao grau do vértice ?G e a obtenção da
coloração é garantida pois, para cada vértice ?G ∈ 
ao qual é atribuída a cor ), tem-se Γ?G  ∩
'  ∅
[3].

B. Algoritmo de Coloração Seqüencial

Este algoritmo considera a existência de uma


classe de cor
' , )  1,2, . . , 1 para cada vértice ?' Fig. 3 - Efeito da rotulação no resultado da
do grafo  que estarão, no primeiro momento, coloração [1].
vazias. Durante sua execução o algoritmo inicializa
sucessivamente as classes de cores por meio da Se sucessivas rotulações forem realizadas,
inserção individual dos vértices na classe de menor inevitavelmente a coloração mínima será obtida,
ordem , desde que a interseção entre o conjunto de porém existem 1! possíveis rotulações, o que
vizinhos do vértice e os elementos que pertencem à implica em um tempo de execução exponencial.
classe seja vazia. Quando não se consegue colocar Um forma de atenuar este efeito consiste em rotular
o vértice em uma das classes já inicializadas o os vértices na ordem decrescente dos graus dos seus
algoritmo promove a abertura de nova classe de vértices, aumentando o número de
ordem  + 1 ≤ 1. A complexidade do algoritmo de incompatibilidades verificadas em cada etapa com
coloração seqüencial é Q1 +  , onde 1 é o a conseqüente redução da cardinalidade da
número de vértices e o número de arestas [1]. coloração resultante [1].

BC D)
R   , Γ) C. Algoritmo de Coloração por Classe
1 para )  1 até 1 faça
2
' ← ∅ Esta técnica também considera a existência de
3 fim-para uma classe de cor
' , )  1,2, . . , 1 para cada vértice
4 ←1 ?' do grafo  que estarão inicialmente vazias.
5 para )  1 até 1 faça Durante a execução do algoritmo cada classe de cor
6 enquanto 1ã D)T$)D?' 
- faça é organizada de uma só vez por meio da inserção
7 se Γ?'  ∩
-  ∅ então dos vértices na classe de menor ordem , desde que
8
- ←
- ∪ {?' } a interseção entre o conjunto de vizinhos dos
9 senão vértices e os elementos que pertencem à classe seja
10  ←+1 vazia. Em cada etapa, os vértices que forem
11 fim-se rejeitados serão candidatos à formação da classe de
12 fim-enquanto ordem seguinte  + 1 ≤ 1. A complexidade deste
13 ←1 método também é Q1 + . [1].
14 fim-para

De modo similar ao que ocorre com outros


algoritmos heurísticos, o resultado alcançado será BC D)

  , Γ)
dependente da rotulação adotada para os vértices. 1 para )  1 até 1 faça
Por exemplo, com a primeira rotulação da figura 3 a 2
' ← ∅
seguir obtém-se uma 4 -coloração, enquanto que 3 fim-para
com a segunda rotulação o algoritmo computa uma 4 V←W
3-coloração (mínima) [1]. 5 ←1
6 enquanto V ≠ ∅ faça
105
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
7 para ?' ∈ V faça 13
G ←
G ∪ {?- }
8 se Γ?'  ∩
- então 14 senão
9
- ←
- ∪ {?' } 15 A ←A+1
10 V ← V {?' } 16 fim-se
12 fim-se 17 fim-enquanto
12 ....fim-para 18 fim-enquanto
13  ←+1
14 fim-enquanto O procedimento  $D)  atualiza o
conjunto E com a relação dos índices dos vértices
D. Algoritmo DSATUR de  de maior grau de saturação que ainda não
estão coloridos. Em seguida,  recebe o valor do
Diversas variações da heurística seqüencial maior elemento de E a fim de garantir que um
são propostas na literatura, diferindo em geral vértice arbitrário seja sempre selecionado, até
somente pelo método empregado na ordenação dos mesmo nas situações em que o grau máximo de
vértices. Algumas dessas variações exibem saturação seja comum a mais de um vértice de .
melhores resultados computacionais, e, dentre elas, O algoritmo DSATUR possui complexidade
destaca-se a heurística Degree of Saturation Q1,  é exato para grafos bipartidos sendo ainda
(DSATUR), a qual foi proposta por Brélaz em 1979 capaz de produzir bons resultados quando aplicado
[3]. a grafos em geral por ser um método de baixa
Seja  um grafo e
uma coloração parcial dos complexidade [3] [8].
vértices de , define-se o grau de saturação de um
vértice & como o número de diferentes cores E. Algoritmo de Zykov
apresentadas pelos vértices adjacentes a & . O
algoritmo DSATUR, assim denominado em função O problema da coloração também é passível
do emprego do grau de saturação, pode ser então de ser solucionado por meio do emprego de
descrito como um procedimento que compreende a algoritmos exatos os quais podem ser obtidos
execução das seguintes etapas [2]: utilizando-se a chamada árvore de Zykov. Dado um
grafo   , =, uma árvore de Zykov ^_ pode
1. Ordene os vértices de  em ordem ser construída a partir da aplicação iterativa em 
decrescente de graus; de dois tipos de alterações estruturais: adição e
2. Atribua ao vértice de maior grau a cor 1; condensação. Para que as operações de adição e
3. Selecione o vértice com maior grau de condensação tenham significância, o grafo  deve
saturação. Se houver vértices com mesmo conter pelo menos dois vértices não adjacentes
grau de saturação, opte por qualquer um de $, & ∈ , pois, do contrário, o problema torna-se
grau máximo pertencente ao sub-grafo trivial visto que para um grafo completo,  
ainda não colorido; 23 , /23   1 [3].
4. Atribua ao vértice selecionado a cor de Durante a construção da árvore de Zykov, que
menor índice disponível; na verdade é uma arborescência, as operações de
5. Se todos os vértices estiverem coloridos, adição e condensação são aplicadas em vértices não
pare. Caso contrário, retorne à etapa 3. adjacentes de , produzindo grafos homoformos do
grafo original, ou seja, grafos que preservam as
O pseudo-código para o algoritmo DSATUR é
relações de adjacência [1].
apresentado a seguir.
Dado um grafo , +  `a,b  será o grafo
obtido pela adição da aresta que une os vértices não
BC D) XRB4YZ   , Γ)
adjacentes $ e & , enquanto que ,  ca,b  é o
1 ler {1, ΓA, A  1, 2, … , 1}
grafo resultante da condensação de $ e & . A
2 organizar os vértices {?+ , ?, , … , ?3 } de
operação de adição preserva o número de vértices e
modo que FΓ?G 7F≥ FΓ?GH+ 7F, A  aumenta em uma unidade o número de arestas, ao
1, 2, … , 1 passo que a condensação minora o número de
3 para A  2 até 1 faça vértices em uma unidade e reduz a uma única aresta
4
G ← ∅ todo par de arestas $, d, &, d onde d ∈ Γ$ ∩
5 fim-para Γ& [1] [3].
6
+ ← {?+ }
7 enquanto ℎ $&D &éD)  ] D faça  +  `a,b 
8  $D) E
9  ← á?) {)| ) ∈ E}
10 A←1
11 enquanto ?- 1ã )&D D faça
12 se Γ?-  ∩
G  ∅ então
106
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
4 / ← h
5 escrever /

A figura a seguir ilustra a aplicação do


algoritmo de Zykov sobre um grafo  cujo número
cromático /  2 corresponde à ordem do
homomorfismo de comprimento 2, criado pela
,  ca,b  seqüência de condensações que resultaram na
imagem homomorfa ℎ  2, .

Fig. 4 - Adição e condensação [3].


É possível concluir que, pela natureza das
alterações estruturais aplicadas em , / será o
mínimo entre os números cromáticos dos grafos
assim formados, ou seja,
/  )1{/`a,b , /ca,b } [3]. /  2
No intuito de determinar os números
cromáticos de `a,b  e ca,b , as operações de Fig. 5 - Árvore de Zykov de .
adição e condensação são repetidas de maneira
recursiva, até que todos os grafos obtidos sejam F. Algoritmo de Dutton e Brigham (DB)
cliques. As arestas mais à direita de formam um
caminho constituído pela seqüência de Consiste numa heurística de ordem Q1; 
condensações, aplicadas da raiz até uma folha 2e , o formulada por Dutton e Brigham em 1981 e que
qual é denominado seqüência de condensações também utiliza a árvore de Zykov em sua
completa de ^_ [3]. implementação. A heurística constrói um caminho
Desta forma, uma árvore rigorosamente na árvore por meio de operações de condensação
binária ^_ é construída, na qual cada vértice realizadas de tal maneira que maximizam as
corresponde a um grafo da forma `a,b ′ ou possibilidades de se obter a folha na qual o clique é
ca,b ′ e cuja a raiz está relacionada ao grafo mínimo. A qualidade do caminho obtido resulta da
original  . Esta é a então denominada árvore de seleção dos vértices &+ e &, de  , sobre os quais
Zykov e o número cromático de  será será aplicada a operação de condensação a fim de se
correspondente ao número de arestas do menor obter ,  cbn,bo  . Desta forma, no intuito de
clique existente entre suas folhas [3]. antecipar a formação do clique, seleciona-se o par
O algoritmo de Zykov apresentado a seguir de vértices com o maior número de vértices
utiliza o procedimento recursivo
D g , h adjacentes em comum [3].
aplicado um grafo  g   g , =g , onde a variável h No contexto deste método um bom algoritmo
armazenará ao final da execução o tamanho do deve selecionar os pares de vértices de modo a
menor clique [3]. adiar ao máximo possível a formação de um grafo
completo. Como em cada condensação o número de
D i) 1
D  g   g , =g , h) vértices de  é minorado em somente uma unidade
1 j ← | g | deve-se optar pela escolha do par de vértices que
2 se  g  2k então promova a maior redução possível na quantidade de
3 h ← )1{h, j} arestas com o propósito de maximizar as operações
4 senão de condensação disponíveis nas iterações
5 QTD$, & ∉ =′ subseqüentes [5].
6
D `a,b  g , h O algoritmo proposto parte de um grafo inicial
7
D ca,b  g , h  , constituído por um conjunto de vértices
{&+ , &, , … , &3 }, e, a cada iteração, reduz o tamanho
8 fim-se
de  em um vértice. Em um dado momento durante
a execução o vértice &' representa não somente o
BC D) ^m &   , =, h)
vértice original &' , mas também todos os vértices
1 ler {  , =}
que foram direta ou indiretamente condensados em
2 h ← ||
&' pelas iterações precedentes [5].
3
D, h
107
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
BC D) X$ 1  pD)Cℎ 15  ← 1
1 Para todos os vértices não adjacentes &' e 16 descomprima -H+ atribuindo a $- e &-
&G calcule 'G , número de vértices a mesma cor de $&-H+
adjacentes em comum 17 fim-enquanto
2 Se não houver mais vértices não
adjacentes, pare. Se ainda houver O procedimento é interrompido quando o
determine o par &' e &G para o qual grafo original  é convertido em um clique. Seja
então  o número de vértices do clique final.
'G ≥ eq para cada par de vértices não
adjacentes &e e &q Colorindo este clique com  cores,
3 Condense &' e &G . Ajuste os valores de eq descomprimindo o grafo e atribuindo a $ e & a
mesma cor de $& obtém-se a  -coloração do
para todos os pares não adjacentes
grafo de  [8].
afetados pela condensação. Faça 1 ← 1
Os algoritmos DSATUR, DB e Cosine podem
1 e repetia a etapa 2
ser utilizados para determinar um limite superior
para o número cromático de  que posteriormente
O valor de 1 obtido quando da parada do
pode ser melhorado por meio do seguinte método
algoritmo, determinado na etapa 2, representará a
heurístico de coloração [8]:
estimativa do número cromático do grafo e para
1 ≤ ) ≤ 1 todos os vértices condensados em &'
1  ← limite superior de / , calculado
podem ser associados a )-ésima cor [5].
pelos métodos DSATUR, DB ou Cosine
2 1)1$ ← &Dii)D
G. Algoritmo Cosine
3 enquanto 1)1$ faça
4 use o método heurístico ℳ para tentar
Foi apresentado por Hertz em 1991. É uma
determinar uma  1-coloração de 
variação do algoritmo DB na qual a escolha do par
se ℳ produziu uma  1-coloração
de vértices $, & a ser condensado é determinada
5
pelo seguinte critério: se o vértice resultante da de  então
operação de condensação anterior não estiver 6  ← 1
conectado a todos os vértices do grafo ca,b 
7 senão
8 1)1$ ← s]
então este vértice é selecionado como $. De modo
9 fim-se
contrário, a operação de condensação é aplicada ao
10 fim-enquanto
par $, & , onde $ é escolhido aleatoriamente (ação
sempre tomada na primeira iteração) e & é o vértice
H. Algoritmo Las Vegas
que maximiza o número de vizinhos em comum, ou
seja |Γ$ ∩ Γ&|, entre os vértices não adjacentes
O problema da coloração de grafos que,
$ e & [3]. conforme já descrito, consiste em determinar para
um grafo  e um inteiro  se / ≤  , é um
O algoritmo Consine é descrito a seguir [8]:
problema de decisão 
 , e, para
BC D)
])1  , =) algumas de suas instâncias, não pode ser
1 r ←  solucionado por um método com tempo de
2 ←0 execução polinomial. Uma maneira de sobrepujar a
3 enquanto - 1ã s D $ )j$ faça 
$i de um problema consiste em
4 se existe pelo menos um vértice não elaborar algoritmos que, embora não sejam capazes
adjacente a $&- então de obter soluções para todas as instâncias, possam
5 $- ← $&- funcionar bem para a maioria dos casos. São
6 senão apresentadas na literatura duas categorias de
7 selecione para $- qualquer vértice algoritmos que podem ser empregadas na
que não seja adjacente a todos os outros abordagem de problemas classificados como
vértices de - 
 ] [6].
8 fim-se Um algoritmo de decisão do tipo Monte Carlo
9 escolha para &- qualquer vértice não sempre terminará sua execução em um tempo
adjacente a $- para o qual |Γ$-  ∩ polinomial, produzindo a resposta correta para
Γ&- | é máximo quase todas as instâncias do problema, porém com
10 construa -H+ condensado $- , &- em uma pequena probabilidade de obter uma resposta
um vértice $&-H+ equivocada. Um algoritmo Las Vegas
11  ←+1 corresponderá àquele que sempre obterá uma
12 fim-enquanto resposta correta e que quase sempre terminará em
13 atribua cores a - um tempo polinomial, ou seja, há uma pequena
14 enquanto  ≠ 0 faça chance do algoritmo demandar um tempo de
108
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
execução não-polinomial. Algoritmos da classe Las 8
 D)D, , 
Vegas são atrativos quando a presença de uma 9 fim-se
resposta incorreta for inaceitável, sendo preferível 10 se 1 1D $
D  s] e
assumir o risco do término não-polinomial à 4]
)j$+ ,   s] então
obtenção de uma solução de qualidade imprevisível 11
 D)D+ , 
[3]. 12 fim-se
13 fim-se
Algoritmo Tempo Resposta
Polinomial Correta BC D) u]C]  , =, 
Monte Carlo Sempre Quase sempre 1 ler {, }
Las Vegas Quase sempre Sempre 2 1 1D $
D ← s]
Tabela 1 - Características dos algoritmos Las Vegas 3 v1) ))dD
e Monte Carlo [3]. 4
 D)D, 
5 se 1 1D $
D  &Dii)D então
O algoritmo de coloração Las Vegas é um 6 escrever { é   Dí&}
método de tempo de execução quase polinomial 7 senão
capaz de determinar se, para um grafo  e um 8 escrever { 1ã é   Dí&}
inteiro  ,  é  -colorível. O algoritmo cria e 9 fim-se
transversa uma árvore de Zykov oriunda de . As
principais características deste algoritmo são [6]: Os procedimentos
D)D`a,b  e

1i1]Dca,b  criam, respectivamente, os
• Percorre conforme necessário toda a grafos + e , por meio das operações estruturais
árvore de Zykov. Quando uma folha, isto de adição de arestas e condensação de vértices
é, um clique, de dimensão maior do que  sobre o grafo  . O procedimento v1) ))dD
é alcançado uma operação de retrocesso é configura as estruturas de dados necessárias e
realizada e a busca continua; determina um clique focal que será submetido às
• Em cada ramificação da árvore, formada alterações estruturais. A escolha do clique focal é
pela adição de arestas ou condensação de realizada pela função
)j$, descrita a seguir, que
vértices, um teste é realizado a fim de seleciona de maneira randômica um vértice ? de
antecipar o surgimento de um  + 1 - grau máximo e determina um conjunto de vértice
clique. O teste é rápido, uma vez que é que constituem um clique contendo ? [6].
restrito à parte do grafo que foi submetida
às operações de adição de arestas e w$1çã
)j$
R←
condensação de vértices.
1
Conseqüentemente, a obtenção de uma
2 2←∅
resposta negativa pode estar incorreta,
3 enquanto R ≠ ∅ faça
visto que é possível existir um  + 1-
4 selecione de modo randômico ? ∈ R de
clique em alguma outra porção do grafo
grau máximo
não avaliada pelo teste. A aplicação do
5 2 ← 2 ∪ {?}
teste tem dois propósitos principais: em
6 R ← R ∪ Γ?
primeiro lugar ele possui a tendência de
7 fim-enquanto
podar a árvore de maneira a reduzir o
8
)j$ ← 2
espaço de busca de soluções; em segundo
lugar ele assegura que o procedimento
termine de forma correta para grafos que O procedimento QTD$, & seleciona dois
não são -coloríveis;
vértices não adjacentes para as operações de adição
e condensação de modo que um dos vértices
• A maneira como o par de vértices é
pertence ao clique focal e o outro é aquele que
selecionado para condensação e adição de
possui a maior quantidade de vizinhos no clique. Se
arestas é de fundamental importância para
há no grafo mais de um par de vértices que atendem
o método e será descrita em seguida.
aos critérios de escolha o par com o maior número
D i) 1
 D)D   , =, )
de vizinhos em comum é o selecionado. As
operações de adição de arestas e condensação de
1 se  ≤  vértices então
vértices podem promover o crescimento do clique,
2 1 1D $
D ← &Dii)D
desta forma, a função 4]
)j$ é utilizada com
3 senão
o objetivo de verificar se o clique focal tornou-se
4 QTD$, &
maior do que  [6].
5 , ←
1i1]Dca,b 
O procedimento recursivo
 D)D modifica o
6 + ←
D)D`a,b  valor da variável 1 1D $
D que será
7 se 4]
)j$, ,   s] então
109
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
verdadeira ao término da execução caso o grafo  -PCGs com valores decrescentes de  até que uma
seja  -colorível e falsa, caso contrário [3]. -coloração inválida seja obtida [7].
Um dos eficientes métodos heurísticos
I. Algoritmo de Memória Adaptativa - AMACOL utilizados para o  -PCG é uma busca local
genética, proposta por Galinier e Hao, a qual será
Estratégias evolucionárias, que abrangem denominada de algoritmo GH. Como a maioria das
algoritmos genéticos, colônias de formigas, heurísticas evolucionárias genéticas híbridas para o
algoritmos de memória adaptativa, entre outros,  -PCG, o algoritmo GH faz uso do algoritmo
podem ser definidas como procedimentos iterativos TABUCOL como método de busca local. A
que utilizam uma memória central de onde superioridade do algoritmo GH quando comparado
informações são obtidas durante o processo de a outras heurísticas híbridas evolucionárias é
pesquisa. Cada iteração ou geração é constituída de provavelmente decorrente do operador de
duas fases complementares que modificam a recombinação, que ao invés de determinar a solução
memória principal. Na fase cooperação um filha colorindo metade dos seus vértices com as
operador de recombinação é utilizado para criar cores do primeiro pai e a outra metade com as cores
novas soluções filhas a partir das soluções do segundo pai, estabelece que a solução filha seja
armazenadas, enquanto que na fase de auto- obtida combinando as classes de cores das soluções
adaptação as soluções filhas obtidas são pais, as quais correspondem aos conjuntos de
modificadas individualmente. As soluções filhas vértices que possuem a mesma cor [7].
resultantes das fases de cooperação e auto- Galinier, Hertz e Zufferey propuseram um
adaptação são utilizadas para atualizar o conteúdo algoritmo de memória adaptativa, chamado
da memória principal, e, o término do processo de AMACOL, para solução do  -PCG que é mais
pesquisa pode ser determinado pelo número simples e mais flexível do que algoritmo GH, com a
máximo de iterações do algoritmo, pela qualidade vantagem adicional de apresentar resultados tão
da solução obtida ou por outro critério de parada bons quanto o GH quando submetido à resolução de
qualquer, previamente estabelecido. As heurísticas instâncias clássicas do problema de coloração,
evolucionárias mais eficientes são as que fazem uso disponíveis na literatura.
de algoritmos híbridos nos quais uma técnica de O operador de recombinação adotado no
busca local é aplicada durante a fase de auto- AMACOL é inspirado em algumas das idéias
adaptação [7]. usadas no algoritmo GH, porém o primeiro difere
A estratégia evolucionária híbrida de maior do segundo em virtude de alguns importantes
popularidade é provavelmente o algoritmo genético aspectos. A memória central do AMACOL não
de busca local, que une a busca local padrão, a qual armazena soluções obtidas das gerações anteriores
é utilizada na fase de auto-adaptação, com o mas sim classes de cores extraídas dessas soluções.
algoritmo genético padrão. Nesta abordagem, a Além disso, uma solução filha pode ser produzida
memória central de uma busca local genética é usando classes de cores originadas de mais do que
constituída de uma população de soluções e o duas soluções [7].
operador de recombinação é um crossover que O algoritmo de memória adaptativa foi
produz uma ou mais soluções filhas utilizando um inicialmente proposto para solucionar o problema
par de soluções selecionadas da população. O do roteirização de veículos. É um heurística
algoritmo de memória adaptativa, que é uma das evolucionária híbrida que utiliza uma memória
mais recentes heurísticas evolucionárias híbridas, central ℳ para armazenar partes de soluções. Um
armazena partes de soluções (ao invés de soluções esquema elementar para este algoritmo é
completas) na memória central, e, enquanto que no apresentado a seguir [7].
algoritmo de busca local genética duas soluções
pais são combinadas para produzir uma solução BC D) i = óD) Bi )&
filha, na técnica de memória adaptativa todas as 1 inicialize a memória central ℳ com
peças de soluções armazenas na memória principal partes de soluções.
podem contribuir para criação da solução filha [7]. 2 enquanto D)éD) i Di  s]
Dado um inteiro fixo , pode-se definir um faça
problema de otimização denominado  -problema 3 crie uma solução filha ] usando um
de coloração de grafo (PCG), o qual consiste em operador de recombinação
determinar uma  -coloração do grafo  que 4 aplique um operador de busca local em
minimiza o número de vértices adjacentes que ] e verifique se ]′ representa uma solução
possuem a mesma cor. Se o valor ótimo do -PCG válida
for zero afirma-se que  possui uma -coloração. O 5 use partes de ]′ para atualizar ℳ
número cromático de  pode ser determinado 6 fim-enquanto
partindo-se de um limite superior para este valor, O processo de criar uma solução filha ]′ ,
calculado por meio de um método seqüencial aplicar uma busca local em ]′ e atualizar a memória
construtivo, para em seguida resolver-se uma série
110
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
principal com a solução obtida é denominado de coloração resultante
geração. A fim de criar a solução filha o operador 5 aplique o procedimento CLEAN em
de recombinação seleciona partes de soluções de cada classe de cor em ] g e introduza cada
ℳ . No contexto do  -PCG, ℳ deve conter conjunto maximal estável em ℳ
soluções estáveis (sem vértices adjacentes com a 6 fim-para
mesma cor) de forma que o operador escolhe 
conjuntos estáveis R+ , R, , … , R- a fim de construir a A fim de facilitar o entendimento da diferença
nova solução. A saída do operador é um  - entre o operador de recombinação do algoritmo GH
coloração (não necessariamente válida) que será a e o operador de recombinação do algoritmo
entrada para o operador de busca local [7]. AMACOL, descreve-se em detalhes a seguir o
Conforme já mencionado, a memória ℳ procedimento executado pela heurística GH.
conterá um conjunto de grafos estáveis e o número
de elementos de ℳ será um múltiplo de  , Q Di D i Z T)1çã }
|ℳ|   ∙ , onde é um parâmetro fornecido ao 1 selecione duas  -colorações ] 
método [7]. R+ , … , R-  e ]′  R′+ , … , R′-  da
O procedimento CLEAN, descrito a seguir, é memória principal onde R' e R′'
capaz de transformar qualquer subconjunto de correspondem ao conjunto de vértices
vértices em um conjunto maximal estável, sendo com a cor ) em ] e ]′, respectivamente
utilizado no preenchimento e atualização da 2 /*construa uma -coloração parcial ]′′ na
memória principal ℳ [7]. qual não há vértices duplicados, mas com
possíveis vértices não coloridos*/
D i) 1
uBR 3 para )  1 até  faça
1 enquanto R tem pelo menos um vértice 4 se ) é ímpar então
conflitante faça 5 escolha o conjunto RG em ] que
2 escolha um vértice ? em R que tem o contém o número máximo de vértices e
número máximo de vizinhos em R e faça R′′' ← RG
remova-o de R 6 senão
3 fim-enquanto 7 escolha R′G em ]′ que contém o
4 seja
o conjunto de vértices que não número máximo de vértices e faça
pertencem a R e que não têm vizinhos em R′′' ← R′G
R 8 fim-se
5 enquanto
≠ ∅ faça 9 remova os vértices de R′′' das soluções
6 escolha um vértice ? em
que tem o pais ] e ]′
número mínimo de vizinhos em
, insira ? 10 fim-para
em R e remova ? e todos os seus vizinhos 11 /* selecione a cor dos vértices não
de
coloridos */
7 fim-enquanto 12 se existem vértices que não pertencem a
O primeiro loop do procedimento CLEAN R′′+ ∪ … ∪ R′′- então selecione de modo
transforma R em um conjunto estável, removendo randômico uma cor para cada vértice (ou
os vértices conflitantes. O segundo loop insere seja, insira cada vértice em um conjunto
vértices em R até que R torne-se um conjunto R′′' )
maximal estável [7]. 13 /* a partição ]  R gg+ , … , R gg -  é uma -
O procedimento de inicialização da memória coloração filha de ] e ]′*/
principal consiste em construir -colorações, que
são posteriormente aplicadas ao operador de busca No intuito de ilustrar o procedimento de
local a fim de serem possivelmente melhoradas. As recombinação acima, suponha um grafo 
classes de cores das soluções resultantes são constituído de 10 vértices , T, … , A sobre o qual
convertidas em conjuntos maximais estáveis por tenta-se aplicar uma 3 -coloração. Seja ] 
meio do procedimento CLEAN, que são finalmente {{, T, }, {i, , s, C}, {ℎ, ), A}} e
introduzidos em ℳ [7]. ]′  {{ , i, , C}, {, s, )}, {T, ℎ. A}}. Tem-se que R, é
a maior classe de cor em ], assim R′′+ é configurado
D i) 1 i v1) )dçã i ℳ como igual a R,  {i, , s, C}. Os vértices de R, são
1 ℳ←∅ removidos de ] e ]′ , portanto, passamos a ter
2 para )  1 até faça ]  {{, T, }, {ℎ, ), A}} e ] g  {{ }, {, )}, {T, ℎ, A}} .
3 gere uma  -coloração randômica A maior classe em ]′ será R′; , logo R′′,  R′; 
associando de modo aleatório uma cor a {T, ℎ, A} . Esta atribuição leva a ]  {{, }, {)}} e
cada vértice ]′  {{ }, {, )}} , o que por sua vez resulta em
4 aplique o operador de busca local para R′′;  R+  {, } . Todos os vértices estão agora
no máximo v6{| iterações e seja ]′ a - coloridos em ]′′, exceto o vértice ) que deverá ser
111
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
colocado randomicamente em R′′+ , R′′, ou R′′; . Se empregado do algoritmo GH, o qual é um versão
o vértice ) for associado a R′′; teremos que a aprimorada do algoritmo TABUCOL [7].
solução filha será a  -coloração No algoritmo TABUCOL o espaço de busca é
] gg  {{i, , s, C}, {T, ℎ, A}, {, , )}} [7]. o conjunto de -colorações e a função objetivo s a
No algoritmo AMACOL a solução filha ser minimizada consiste no número total de arestas
R+ , … , R-  é construída classe por classe. Suponha conflitantes. Uma solução vizinha é obtida por meio
que as classes de cores R' , … , R'P+ já estão da alteração da cor de um dos vértices conflitantes.
construídas. No intuito de criar a solução R' o Quando a cor do vértice ? é modificada de ) para A,
operador de recombinação seleciona de modo a cor ) passa a ser um tabu para ? por um certo
randômico uma amostra {E+ , … , Ek } de j grafos número de interações (limite tabu) e todas as
estáveis de ℳ. O conjunto Ee na amostra com o soluções onde o vértice ? tem a cor ) serão
máximo número de vértices não coloridos é consideradas soluções tabu. Em cada iteração,
escolhido e a R' é atribuído o conjunto de vértices TABUCOL determina o melhor vizinho ]′ da
não coloridos de Ee . Uma vez que as  classes de solução ] de forma que ]′ não seja uma solução
cores tenham sido organizadas, vértices não tabu ou que s] g   0 , ou seja, ]′ seja uma  -
coloridos podem ainda existir, e estes são tratados coloração. O limite tabu será igual a D1i0,9 +
de modo semelhante ao empregado no algoritmo 0,6 ∙ 
] g , onde D1i, T retorna um inteiro
GH, ou seja, cada vértice não colorido é inserido aleatoriamente escolhido entre  e T e 
] g 
em um conjunto R' selecionado de modo corresponde ao número de vértices conflitantes em
randômico. Embora esta estratégia aleatória ]′ [7].
eventualmente ocasione uma grande quantidade de A solução ]′ resultante do operador de busca
arestas conflitantes, estes conflitos serão local é utilizada para atualizar a memória central
manipulados pelo operador de busca local [7]. ℳ. Cada classe de cor em ]′ é convertida em um
conjunto maximal estável por meio do
Q Di D i Z T)1çã B=B
Qu procedimento CLEAN. Desta forma, os  -
1 /*construa uma -coloração na qual não conjuntos maximais estáveis são introduzidos em
há vértices duplicados, mas com possíveis ℳ em substituição a  elementos de ℳ ,
vértices não coloridos*/ selecionados aleatoriamente [7].
2 para )  1 até  faça
3 selecione uma amostra E+ , … , Ek D i) 1 D B$)dçã i ℳ
randômica de j elementos de ℳ 1 selecione aleatoriamente  elementos de
4 determine um conjunto Ee com o ℳ e remova-os de ℳ
número máximo de vértices não presentes 2 aplique o procedimento CLEAN em cada
em R+ ∪ … ∪ R'P+ classe de cor R' da solução ]′ 
5 configure R'  Ee {R+ ∪ … ∪ R'P+ } R+ , … , R-  , calculada pelo operador de
6 fim-para busca local
7 /* selecione a cor dos vértices não 3 atualize ℳ com o conjunto maximal
coloridos */ estável resultante
8 se existem vértices que não pertencem a
R+ ∪ … ∪ R- então selecione de modo O algoritmo AMACOL interrompe seu
randômico uma cor para cada vértice (ou processamento quando uma -coloração é obtida ou
seja, insira cada vértice em um conjunto quando o limite do número total de iterações
R' ) realizados pelo operador de busca local, desde o
9 /* a partição ]  R gg+ , … , R gg -  é uma - início da execução do algoritmo, é alcançado. Um
coloração filha de ] e ]′*/ terceiro critério de parada está relacionado ao
conceito de diversidade das soluções armazenadas
A escolha do valor de j torna possível ajustar na memória. No AMACOL a perda de diversidade
o nível de aleatoriedade do procedimento. Um valor é caracterizada pelo fato de que ℳ contém 
de j elevado transforma o método numa heurística grupos de conjuntos maximais bastante
gulosa, ao passo que pequenos valores para j semelhantes. Quando este fenômeno ocorre o
ocasionam a escolha de conjuntos de ℳ com uma operador de recombinação sempre irá produzir
pequena quantidade de vértices não coloridos. resultados similares em cada iteração, tornando
Recomenda-se que o valor escolhido para j seja  portanto inútil o esforço empregado no
[7]. procedimento de pesquisa. A fim de medir a
A solução ] produzida pelo operador de diversidade da memória considera-se |R ∩ R g | como
recombinação serve de entrada para o operador de a medida de similaridade entre dois elementos R e
busca local, que procura melhorar a solução ] por R′ de ℳ e denota-se por R o conjunto dos /2
no máximo v6{| iterações. Para realizar a busca elementos de ℳ que são mais similares a R. Para
local utiliza-se o mesmo algoritmo de busca tabu
112
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
cada elemento R de ℳ calcula-se o seguinte valor, 4 1)1$ ← 1
representado por R [7]: 5 $) 
ℎ1  ← 0
∑ƒg∈„ƒ |R ∩ R g | 6 enquanto 1)1$  1 faça
R  crie uma solução filha ] por meio do
|R| ∙ |R| 7
Segue-se que, se houver pelo menos |R|  operador de recombinação
/2 conjuntos estáveis em ℳ que são idênticos a 8 aplique a busca local sobre ] por, no
R, então R  1. Por fim, calcula-se a grandeza máximo, v6{| iterações; seja ]′ a
da diversidade Xℳ [7]: solução resultante; se s] g  < s] ∗ 
1 então ] ∗ ← ]
Xℳ  1 … R v ← v + v6{|
|ℳ| 9
ƒ∈ℳ 10 atualize ℳ
Observe que Xℳ  1 quando, 11 determine Xℳ
supostamente, ℳ contiver |ℳ|   ∙ conjuntos se Xℳ < 0,1 e $) 
ℎ1  
disjuntos, enquanto que Xℳ  0 se ℳ possuir  0 então $) 
ℎ1  ← 1
agrupamentos de conjuntos idênticos [7]. se $) 
ℎ1   1 e ] ∗ não sofreu
Conforme já mencionado o método AMACOL melhora nas últimas 100 gerações então
utiliza três parâmetros , j e v6{| . O parâmetro 1)1$ ← 0
é utilizado para fixar o tamanho da memória 12 fim-enquanto
principal |ℳ|   ∙ , enquanto o parâmetro j 13 v6{| ← v6{| ∙ √2
determina o tamanho da amostra selecionada de ℳ
14 até s] g   0 ou v > v6{|
pelo operador de recombinação. Com base em
experimentos anteriores os valores de e j são V. APLICAÇÕES DA COLORAÇÃO DE GRAFOS
fixados, respectivamente, em 10 e  [7].
O esforço do algoritmo AMACOL é medido Existem diversos problemas que podem ser
pela quantidade de iterações realizadas pelo analisados e às vezes solucionados por meio da
operador de busca local e o parâmetro v6{| , modelagem da situação descrita no problema
utilizado por este operador, é um fator determinante através de um grafo e pela definição apropriada de
da performance do algoritmo. Valores elevados uma coloração no grafo utilizado [4].
para v6{| são capazes de preservar melhor a Para um determinado grupo de indivíduos,
diversidade de ℳ do que pequenos valores. Desta suponha que algumas comissões têm que ser
forma, a aplicação do método à resolução de constituídas e que o mesmo indivíduo possa
instâncias complexas do problema da coloração participar de modo concomitante de diversas
demanda a utilização de valores maiores para comissões distintas. Presuma ainda que um horário
v6{| , pois, do contrário, a diversidade das de reunião deve ser associado a cada comissão e
soluções armazenadas na memória principal pode que duas comissões que possuem um membro em
se exaurir rapidamente, antes que uma -coloração comum não podem se reunir simultaneamente. A
seja obtida. Ou seja, valores elevados para o situação descrita pode ser modelada com o emprego
parâmetro tendem a aumentar a robustez do de um grafo  no qual os vértices simbolizam as
algoritmo [7]. comissões e dois vértices são adjacentes sempre
No intuito de se determinar o valor adequado que as comissões que representam possuam
para v6{| adota-se a seguinte estratégia. Fixa-se membros em comum. Alguns exemplos específicos
inicialmente v6{| como igual ao número de da situação apresentada serão referidos a seguir [4].
vértices a serem coloridos. Se a medida da Considere um grupo constituído por oito
diversidade Xℳ torna-se menor do que 0,1 , empregados de uma empresa, representados por
multiplica-se v6{| por √2 contanto que 100 B  {+ , ,, … , ‹ } , que têm que se reunir em
gerações do AMACOL sejam realizadas sem ocorra comissões de três indivíduos com o objetivo de
melhoria na solução mais apta ] ∗ , computada até discutir sete temas de relevância para companhia.
então. Este procedimento é realizado até que uma As comissões formadas para este propósito serão
-coloração seja obtida ou que o número total de representadas por: B+  {+ , , , ; } , B, 
iterações da pesquisa local ( 4 v6{|  {, , ; , 9 } , B;  {9 , < , Œ } , B9  {< , Œ ,  } ,
250 )ℎõ]) seja alcançado desde que o processo B<  {+ ,  , ‹ } , BŒ  {+ , 9 ,  } e B 
de busca se iniciou [7]. {, , Œ , ‹ }. Se cada comissão tem que ser reunir
durante os intervalos: de 13h às 14h, de 14h às 15h,
BC D) B=B
Qu de 15h às 16h, de 16h às 17h e de 17h às18h, qual o
1 v6{| ← || número mínimo de períodos de tempo necessários
2 v ← 0 para que todas as sete comissões possam se
3 repita encontrar? Duas comissões não podem ser reunir
4 inicialize ℳ; seja ] ∗ a melhor solução durante o mesmo intervalo de tempo se algum dos
encontrada até então empregados faz parte das duas comissões. Defina
113
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
um grafo  constituído pelo conjunto de vértices adjacente a 4G ) ≠ A se 4' ∩ 4G ≠ ∅ , conforme
  {B+ , B, , … , B3 } no qual dois vértices B' e demonstrado por meio da figura 6. O número
BG são adjacentes se B' ∩ BG ≠ ∅, denotando que B' mínimo de dias necessários para realizar todos os
e BG devem se reunir em intervalos de tempo tours é /  6 . Desta forma, como o número
distintos [4]. mínimo de dias é superior a 5 conclui-se que alguns
O grafo  é demonstrado na figura 6. De dos fisioterapeutas terão que trabalhar nos finais de
acordo com [4], o número mínimo de períodos de semana [4].
tempo necessários para que as sete comissões
possam se reunir será /  4 e uma das
possíveis formas de distribuição das comissões
entre os intervalos de tempo seria: de 13h às 14h,
comissões B+ e B9 ; de 14h às 15h, comissões B, e
B< ; de 15h às 16h, comissão B; ; de 16h às 17h,
comissões BŒ e B .

Fig. 7 - Grafo dos dez tours de fisioterapeutas [4].

VI. CONCLUSÃO

Este trabalho descreveu o problema de


coloração em grafos e apresentou alguns exemplos
Fig. 6 - Grafo das sete comissões de empregados de técnicas que podem ser utilizadas em sua
[4]. resolução. Observa-se, por meio dos métodos
expostos, que diversas abordagens têm sido
Suponha uma comunidade rural na qual desenvolvidas, o que denota o grande esforço
existem dez crianças (representadas por empreendido no aperfeiçoamento dos algoritmos
,
+ , , … , +r ), que habitam em diferentes até então propostos para abordagem deste
residências e que necessitam de sessões de problema. Verifica-se ainda a existência de diversas
fisioterapia semanais. Dez fisioterapeutas de uma situações passíveis de serem modeladas e
comunidade vizinha se ofereceram para visitar solucionadas por meio do problema de coloração, o
algumas dessas crianças durante a semana, levando que por si só, já constitui um fator motivador para
em consideração a limitação de que nenhuma que novos métodos sejam desenvolvidos.
criança pode ser visitada mais de um vez no mesmo
dia. O conjunto de crianças visitadas num REFERENCES
determinado dia é referido como um tour, sendo
estabelecido que o número ideal de crianças a [1] BOAVENTURA NETTO, P. O. Grafos:
visitar em um tour é 4. Os seguintes dez tours são Teoria, Modelos, Algoritmos. 3 ed. São
então acordados: 4+  { + , , , ; , 9 } , 4,  Paulo: E. Blücher Ltda., 2003.
{ ; , < ,  , Ž } , 4;  { + , , , Ž , +r } , 49  [2] BRÉLAZ, D. New Methods to Color the
{ 9 , Œ ,  , ‹ } , 4<  { , , < , Ž , +r } , 4Œ  Vertices of a Graph, Communications of
{ + , 9 , Œ , ‹ } , 4  { ; , 9 , ‹ , Ž } , 4‹  the ACM, v. 22, n. 4, p. 251-256, 1979.
{ , , < ,  , +r } , 4Ž  { < , Œ , ‹ , +r } e 4+r  [3] CAMPELLO, R. E.; MACULAN, N.
{ Œ ,  , ‹ , Ž } [4]. Algoritmos e Heurísticas:
É preferível que todos os tours ocorram entre desenvolvimento e avaliação de
segunda e sexta-feira, porém os voluntários estão performance. 1 ed. EDUFF, 1994.
dispostos a trabalhar no final de semana, caso [4] CHARTRAND, G.; ZHANG, P.
necessário. É possível afirmar que todas as crianças Chromatic Graph Theory, 1st ed.
podem ser visitadas sem que nenhum fisioterapeuta Chapman and Hall CRC, 2008.
tenha que estar disponível durante o final de [5] DUTTON R. D.; BRIGHAM R. C. A
semana [4]? new graph coloring algorithm. The
Considere um grafo  constituído pelo Computer Journal, v. 24, n. 1, p. 85-86,
conjunto de vértices {4+ , 4, , … , 4+r } no qual 4' é 1981.
114
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc
[6] ELLIS J. A.; LEPOLESA, P. M. A Las
Vegas Colouring Algorithm. The
Computer Journal, v. 32, n. 5, p. 474-
476, 1989.
[7] GALINIER, P.; HERTZ, A.;
ZUFFEREY, N. An adaptive memory
algorithm for the K-colouring problem,
Discrete Applied Mathematics, v. 156,
n. 2, p. 267–279, 2008.
[8] HERTZ A. Cosine: A new graph
coloring algorithm. Operation Research
Letters, v. 10, p. 411-145, 1991.
[9] LU, Z.; HAO, J. A memetic algorithm
for graph coloring. European Journal of
Operation Reasearch, v. 203, p. 241-
250, 2009.
[10] VIANA, G. V. R. Meta-Heurísticas e
Programação Paralela em Otimização
Combinatória. 1 ed. EUFC, 1998.

115
Revista de Sistemas e Computação, Salvador, v. 4, n. 2, p. 101-115, jul./dez. 2014
http://www.revistas.unifacs.br/index.php/rsc

Você também pode gostar