Acessibilidade / Reportar erro

Um algoritmo de planos-de-corte para o número cromático fracionário de um grafo

Resumos

O número cromático fracionário χF(G) de um grafo G é um conhecido limite inferior para seu número cromático χ(G). Experimentos relatados na literatura mostram que usar χF(G), em lugar do tamanho da clique máxima, pode ser muito mais eficiente para orientar a busca em um algoritmo tipo branch-and-bound para determinação de χ(G). Uma dificuldade, porém, é tratar o modelo linear conhecido para χF(G), o qual apresenta um número exponencial de variáveis e demanda um caro processo de geração de colunas. Neste trabalho, examinamos uma formulação alternativa para obter um limite inferior para χF(G) que possui um número de variáveis linear no tamanho do grafo, porém um número exponencial de restrições. Utilizamos o método de planos-de-corte para lidar com esse inconveniente. Algumas heurísticas de separação são propostas, e experimentos computacionais mostram que valores muito próximos de χF(G), em muitos casos iguais, são encontrados em tempo inferior à implementação com geração de colunas.

número cromático; planos-de-corte; otimização combinatória


The fractional chromatic number χF(G) of a graph G is a well-known lower bound for its chromatic number χ(G). Experiments reported in the literature show that using χF(G), instead of the size of the maximum clique, can be much more efficient to drive a search in a branch-and-bound algorithm for finding χ(G). One difficulty though is to deal with the linear program that is known for χF(G). Such a formulation has an exponential number of variables and demands an expensive column generation process. In this work, we investigate the use of an alternative formulation to find a lower bound for χF(G), which has a linear number of variables but an exponential number of constraints. We use a cutting plane method to deal with this inconvenience. Some separation heuristics are proposed, and some computational experiments were carried out. They show that values very close to χF(G) (in many cases exact values) are found in less time than that required by the column generation.

chromatic number; cutting planes; combinatorial optimization


Um algoritmo de planos-de-corte para o número cromático fracionário de um grafo

Manoel CampêloI,* * Corresponding author / autor para quem as correspondências devem ser encaminhadas ; Victor A. CamposII; Ricardo C. CorrêaII

IProg. de Mestrado e Doutorado em Ciência da Computação e Dep. de Estatística e Matemática Aplicada Universidade Federal do Ceará (UFC) Fortaleza – CE, Brasil mcampelo@lia.ufc.br

IIProg. de Mestrado e Doutorado em Ciência da Computação Universidade Federal do Ceará (UFC) Fortaleza – CE, Brasil campos@lia.ufc.br; correa@lia.ufc.br

RESUMO

O número cromático fracionário χF(G) de um grafo G é um conhecido limite inferior para seu número cromático χ(G). Experimentos relatados na literatura mostram que usar χF(G), em lugar do tamanho da clique máxima, pode ser muito mais eficiente para orientar a busca em um algoritmo tipo branch-and-bound para determinação de χ(G). Uma dificuldade, porém, é tratar o modelo linear conhecido para χF(G), o qual apresenta um número exponencial de variáveis e demanda um caro processo de geração de colunas. Neste trabalho, examinamos uma formulação alternativa para obter um limite inferior para χF(G) que possui um número de variáveis linear no tamanho do grafo, porém um número exponencial de restrições. Utilizamos o método de planos-de-corte para lidar com esse inconveniente. Algumas heurísticas de separação são propostas, e experimentos computacionais mostram que valores muito próximos de χF(G), em muitos casos iguais, são encontrados em tempo inferior à implementação com geração de colunas.

Palavras-chave: número cromático; planos-de-corte; otimização combinatória.

ABSTRACT

The fractional chromatic number χF(G) of a graph G is a well-known lower bound for its chromatic number χ(G). Experiments reported in the literature show that using χF(G), instead of the size of the maximum clique, can be much more efficient to drive a search in a branch-and-bound algorithm for finding χ(G). One difficulty though is to deal with the linear program that is known for χF(G). Such a formulation has an exponential number of variables and demands an expensive column generation process. In this work, we investigate the use of an alternative formulation to find a lower bound for χF(G), which has a linear number of variables but an exponential number of constraints. We use a cutting plane method to deal with this inconvenience. Some separation heuristics are proposed, and some computational experiments were carried out. They show that values very close to χF(G) (in many cases exact values) are found in less time than that required by the column generation.

Keywords: chromatic number; cutting planes; combinatorial optimization.

1. Introdução

Dado um inteiro positivo k, uma k-coloração de um grafo G = (V, E) é uma atribuição de valores de {1, ..., k} aos vértices de G tal que cada vértice receba pelo menos um valor e que vértices adjacentes recebam valores diferentes. O problema de coloração de vértices consiste em encontrar uma χ(G)-coloração de G, sendo χ(G), conhecido como número cromático de G, o menor número tal que G admite uma χ(G)-coloração. Este problema é um dos mais estudados em teoria dos grafos pela sua relevância tanto do ponto de vista teórico, visto que até mesmo achar uma aproximação para o número cromático é um problema computacionalmente difícil (Lund & Yannakakis, 1994), quanto do de aplicações, como escalonamento de tarefas (deWerra, 1985), alocação de frequências (Gamst, 1986), alocação de registros em compiladores (Chow & Hennessy, 1990) e o método de elementos finitos (Saad, 1996).

A importância do problema de coloração tem incentivado a investigação de algoritmos enumerativos, orientados por limites inferiores, para o número cromático de G ou de subgrafos de G (Johnson & Trick, 1996). Historicamente, as primeiras tentativas nessa direção tomavam o provável tamanho de uma clique máxima como limite inferior, como é o caso dos algoritmos tipo branch-and-bound descritos por Brélaz (1979), Brown (1972), Glover, Parker & Ryan (1996), Kubale & Jackowski (1985), Peemöller (1983) e Sewell (1996). Porém, como o número cromático de um grafo pode ser arbitrariamente maior do que a sua clique máxima, essa abordagem tende a examinar um número de subproblemas que somente é tolerável para grafos com poucos vértices.

Procurando reduzir o tamanho da árvore de busca, Mehrotra & Trick (1996) utilizaram o número cromático fracionário como limite inferior para χ(G). O número cromático fracionário χF(G) é a menor razão k/ℓ que permite uma atribuição de ℓ elementos do conjunto {1, ..., k} a cada vértice de G de tal forma que os subconjuntos atribuídos a vértices adjacentes sejam disjuntos (Larsen, Propp & Ullman, 1995). Sendo G o conjunto de todos os conjuntos independentes maximais de G e associando uma variável a cada elemento de S, chega-se a

Este programa linear é usado para calcular limites inferiores para χ(G) pelo algoritmo apresentado por Mehrotra & Trick (1996), que se mostrou muito mais eficiente do que aqueles baseados no tamanho de uma clique maximal. No entanto, dado o número exponencial de variáveis em (1), essa abordagem encontra dificuldades, que podem ser contornadas de forma efetiva em alguns casos com um procedimento de geração de colunas também proposto por Mehrotra & Trick (1996). Ressaltamos que determinar χF(G) é um problema NP-difícil (Lund & Yannakakis, 1994).

Uma abordagem alternativa origina-se na formulação de programação inteira para o problema de coloração de vértices, proposta por Campêlo, Corrêa & Frota (2004) e aprimorada por Campêlo, Campos & Corrêa (2008), que se baseia na ideia de vértices representantes de cores. Em relação a (1), a relaxação linear dessa formulação tem a vantagem de possuir um número de variáveis e de restrições que são, respectivamente, linear e quadrático no tamanho do grafo. Em contrapartida, seu valor ótimo é, em geral, inferior a χF(G). Este limite inferior, porém, pode ser fortalecido pelo acréscimo de desigualdades válidas também propostas por Campêlo, Campos & Corrêa (2008).

Neste trabalho, avaliamos uma relaxação do modelo baseado em representantes de cores na qual consideramos um número exponencial de restrições originadas de algumas das desigualdades válidas estudadas por Campêlo, Campos & Corrêa (2008). Para lidar com o número exponencial de restrições, utilizamos o método de planos-de-corte (Dantzig, Fulkerson & Johnson, 1954; Nemhauser & Wolsey, 1988). Algumas heurísticas de separação são propostas, e resultados de experimentos computacionais realizados para avaliar o limite inferior obtido para χF(G) são apresentados. As heurísticas de separação propostas são adaptações de ideias que podem ser encontradas na literatura (Hoffman & Padberg, 1993; Nemhauser & Sigismindi, 1992). Nosso principal objeto de investigação é o seu uso na determinação do número cromático fracionário de G. Nesse sentido, uma comparação com os resultados obtidos por Mehrotra & Trick (1996) mostra que valores muito próximos do número cromático fracionário, em muitos casos iguais, são encontrados em tempo inferior à implementação com geração de colunas.

O restante do texto está organizado da seguinte maneira. Na Seção 2, a notação utilizada e o programa linear empregado no algoritmo de planos-de-corte são descritos. A apresentação das heurísticas de separação é o assunto da Seção 3, enquanto os demais detalhes de implementação aparecem na Seção 4. A descrição dos experimentos computacionais e dos resultados obtidos está na Seção 5. Finalmente, a Seção 6 é dedicada a conclusões e comentários.

2. Formalização do problema

2.1 Notação

A notação adotada ao longo do texto é a seguinte. Utilizamos uv para nos referir à aresta (u, v) ∈ E. O complemento de G é denotado por = (V, ) e || = . A vizinhança e a antivizinhança de u são dadas por N(u) = {vV| uvE} e (u) = V\(N(u) ∪ {u}), respectivamente. Dada uma orientação de G, ou seja, uma função σ : EV tal que σ(uv) ∈ {u,v}, definimos a vizinhança positiva de u por N+(u) = {vN(u) | σ(uv) = v} e a vizinhança negativa como N–(u) = {v N(u) | σ(uv) = u} . Se uma orientação é definida para , as antivizinhanças positiva e negativa podem ser definidas de forma similar e são denotadas por + e –(u), respectivamente.

Um ciclo em G é uma sequência de arestas 〈u0u1,u1u2,...,ukuk+1〉 tal que uk+1 = u0, sendo um ciclo direcionado se σ(ujuj+1) = uj+1, para j = 1,2,..., k. Uma orientação de G é acíclica se não definir ciclo direcionado.

Se HV, então G[H] = (H, E[H]) é o subgrafo induzido em G por H, cujos vértices são os elementos de H e cujas arestas são aquelas de G com ambas as extremidades em H. Quando H é tal que G[H] possui um conjunto vazio de arestas, H é chamado de conjunto independente de G, sendo maximal se não existir outro conjunto independente em G que o contenha. Uma clique (maximal) de G ocorre quando H é um conjunto independente (maximal) de . Um buraco de G é a denominação usada para H se o subgrafo induzido E[H] define um ciclo. Diz-se que o buraco é ímpar quando sua quantidade de vértices (ou arestas) é ímpar.

2.2 Formulação por vértices representantes

Suponha uma ordem definida sobre os vértices de G, o que induz uma orientação acíclica σ em tal que, para cada uv, σ(uv) = v se u

v. Dada essa orientação, usamos G–(v) para representar G[– (v)] e G+(v) para representar G[– (v)]. Sendo acíclica, a orientação σ produz dois conjuntos especiais não-vazios: o conjunto de vértices-fonte S = {sV | – (s) = Ø} e o conjunto de vértices-sumidouro T = {tV | + (t) = Ø}.

Uma k-coloração de G = (V, E), k > χ(G), pode ser descrita por um conjunto R = {r1, r2, ..., rk} de vértices e uma família W = {W1, ..., Wk} de conjuntos independentes de G, onde cada W1, contido em +(ri), é formado pelos vértices que recebem a mesma cor de ri. Cada vértice ri é chamado o representante da cor i, enquanto os vértices em Wi são representados por ri. Note que ri é o menor vértice na ordem recebendo a cor i e, portanto, se u e r são vértices tais que u v, então v não pode representar a cor de u. Particularmente, um vértice uS não pode ser representado por qualquer outro vértice, o que significa que SR.

Para caracterizar essa descrição, definimos um vetor x que contém variáveis binárias indexadas pelas arestas de , orientadas segundo , tal que xuv = 1 se, e somente se, u representa v. Por simplicidade, para todos uV e H+ (u), adotamos a notação x(u, H) = . Caso H contenha um único vértice v ou somente as extremidades de uma única aresta vw, utilizamos x(u, v) ou x(u, vw), respectivamente. De modo similar, quando H –(u), denotamos x(H, u) = . No caso em que H = –(u), adotamos a notação mais compacta

Usando essa notação, conclui-se, em decorrência do exposto por Campêlo, Campos & Corrêa (2008), que x define uma coloração de G se

A condição (5) corresponde a x(–(u), u) < 1, assegurando que uT é representado por no máximo um vértice na sua antivizinhança negativa. Esse mesmo fato é assegurado para uV\T por (3), (4) e pela integralidade de x. Como consequência, a notação (u) definida em (2) expressa a atribuição de um valor binário a 1–x(–(u),u), o qual indica se u é representado ((u) = 0) ou representante ((u) = 1). Já as desigualdades (3)-(4) garantem que as extremidades de uma aresta recebem cores diferentes e que uma cor só pode ser atribuída a um vértice se estiver representada.

Sendo assim, um vetor x que satisfaça (3)-(5) e minimize o número de cores

descreve uma coloração ótima de G, fornecendo pois χ(G). Naturalmente, a relaxação linear dessa formulação define um programa linear com um número polinomial de variáveis e restrições, cujo valor ótimo χ(G) é um limite inferior para χF(G) e χ(G).

Para fortalecer esse limite, podemos considerar desigualdades válidas da forma

onde H +(u) e αH é o tamanho máximo de um conjunto independente de G[H]. Essas desigualdades (denominadas desigualdades externas por Campêlo, Campos & Corrêa (2008) e rank inequalities por Rossi & Smriglio (2001)) generalizam (3)-(4) ao estabelecer que um representante seja capaz de representar, no máximo, αH vértices em H. A inclusão, na relaxação linear, de desigualdades do tipo (6) associadas a conjuntos H apropriadamente escolhidos leva, conforme resultados apresentados por Campêlo, Campos & Corrêa (2008) relacionando a formulação (1) àquela derivada de (3)-(5), a um novo limite para o número cromático fracionário dado por:

Embora χF(G) > χ(G), há que se lidar com um número elevado (potencialmente exponencial) de restrições em (7), sendo que muitas delas podem ser redundantes na descrição do poliedro correspondente.

Nas próximas seções, tratamos do problema de como obter, através do método de planos-de-corte, uma aproximação χF(G) para χF(G) derivada da inclusão de desigualdades do tipo (6) que definem facetas do poliedro associado a (3)-(5). Seguindo a descrição parcial desse poliedro apresentada por Campêlo, Campos & Corrêa (2008), duas estruturas de G são consideradas, tomando-se um conjunto H+(u) : H é uma clique maximal no subgrafo G+(u) ou H é um buraco ímpar, maximal com relação a αH em G+(u) (entende-se por maximal o fato αH' > αH, para todo H' tal que HH'+(u)). No primeiro caso, αH = 1, enquanto que no segundo αH = (| H| –1)/2. Neste trabalho, consideramos a formulação (7) com as desigualdades (6) restritas a estes dois tipos de estruturas.

3. Algoritmo de planos-de-corte

Conforme mencionado na seção anterior, adotamos o método de planos-de-corte para a obtenção de um limite inferior para χF(G), superior a χ(G) devido à introdução de cortes do tipo (6) em (7). Nesse algoritmo, chamamos de PL o programa linear que evolui com a inclusão dos planos-de-corte e denotamos por x* uma solução ótima do estado corrente de PL. Nesta seção, descrevemos as restrições que estão presentes em PL desde o seu estado inicial e propomos heurísticas que determinam um vértice uV\T e um conjunto H+(u) cuja inequação (6) correspondente seja violada por x*. As heurísticas apresentadas correspondem aos casos em que H induz uma clique maximal ou um buraco ímpar em G+(u).

Desigualdades do tipo (6) aparecem em diversos outros problemas que envolvem conjuntos independentes, o que tem motivado o surgimento de heurísticas de separação, particularmente para cliques maximais e buracos ímpares (Atamturk, Nemhauser & Savelsbergh (2000), Hoffman & Padberg (1993), Nemhauser & Sigismindi (1992), Rossi & Smriglio (2001)). Neste estudo acerca do problema do número cromático fracionário, damos ênfase à redução do número de estruturas enumeradas durante a separação. Este é um aspecto relevante quando comparamos a abordagem baseada em cortes, que é o foco deste trabalho, com a abordagem de geração de colunas de Mehrotra & Trick (1996), a qual exige a enumeração das cliques maximais de G. Nas heurísticas que apresentamos nesta seção, as estruturas violadas são determinadas em subgrafos de G+(u), para cada uV, do qual retiramos vértices seguindo as propriedades estabelecidas ao longo desta seção.

3.1 Programa linear inicial

Para obter o PL inicial, o primeiro passo é determinar uma ordem sobre o conjunto de vértices. Para tal, usamos a heurística QUALEX-MS (Busygin, 2002) para encontrar SV induzindo uma provável clique máxima de G. Em seguida, ordenamos os vértices em uma ordem não-decrescente das distâncias a S em G. Com a ordem determinada, definimos as variáveis xuv, com uV\T e v+(u).

Além das inequações do tipo 0 < xuv < 1, o PL inicial inclui restrições que garantem um ponto ótimo inicial x* satisfazendo

Para uT, com |–(u)|>1, colocamos em PL a restrição x(–(u), u) < 1 (o que, devido a (2), corresponde a forçar (u) > 0). Já para uV\T, tomamos uma partição Ku = {K1,..., } de +(u) em cliques maximais de G+(u) e incluímos as restrições x(u,Ki) < (u), para cada i ∈ {1,...,ju}, exceto quando uS e |Ki|=1. Estando tais restrições sempre presentes em PL, consideramos daqui em diante que as propriedades são satisfeitas.

3.2 Separação via cliques maximais

Dados uV e H+(u) induzindo uma clique, a inequação de clique Qu(H) é obtida fazendo αH = 1 em (6). A heurística de separação para Qu(H) consiste em calcular a antivizinhança reduzida de u, dada por

(u) = {u+(u)|0 < x* (x, v) < * (u)},

efetuar a busca de cliques violadas em G[(u)] e, finalmente, estendê-las para cliques maximais de G+(u).

Antes de entrarmos nos detalhes da heurística, vejamos a propriedade da antivizinhança reduzida de u que nos leva a restringir a busca por cliques violadas a G[(u)]. Para isso definimos núcleo de H com relação a x* como o subconjunto

ou seja, os vértices em H que são parcialmente representados por u. Se a restrição (6) é violada para H, também o é para Nu(H) ou para alguma aresta em G[H], conforme a propriedade abaixo.

Proposição 1.A inequação Qu(H), para a clique H+(u), é violada por x* se, e somente se, x*(u, Nu(H)) > *(u) ou existe uma aresta vwE[H] tal que x*(u, vw) > *(u).

Prova: Suponha que as duas condições não sejam satisfeitas. Segue que x*(u, v) < *(u), para todo vwE[H]. Se, para algum vértice vH, a equação x*(u, v) = *(u) ocorre, então *(u, w) = 0, para todo wH\{v}. Isto implica que x*(u, H) = x*(u, v) = *(u), ou seja, Qu(H) não é violada. Por outro lado, quando x*(u, v) < *(u), para todo vH, podemos escrever H = Nu(H)∪{vH | x* (u, v) = 0} e x*(u, H) = x*(u,Nu(H))) < *(u), novamente levando a Qu(H) não violada.

Caso uma das condições seja válida, claramente Qu(H) é violada.

A heurística de separação de cliques, apresentada no Algoritmo 1, consiste em uma enumeração parcial de cliques maximais na antivizinhança reduzida de cada uV tal que *(u) > 0. Primeiro, construímos iterativamente (u), ao mesmo tempo em que procuramos por arestas violadas. Em outras palavras, para cada v+(u), a ser possivelmente colocado em (u), e cada w+(u) ∩ N(v), verificamos se u representa em mais de *(u) unidades as extremidades de vw. Neste caso, geramos uma clique maximal em G+(u) contendo v e w. Em uma segunda etapa, tentamos garantir a inclusão de pelo menos uma inequação de clique para cada v+(u), marcando os vértices que já participaram de uma clique violada. Utilizamos o QUALEX-MS (Busygin, 2002) para gerar as cliques maximais ponderadas segundo x*. Finalmente, é utilizada uma heurística gulosa para tornar maximais em G+(u) as cliques encontradas que definem cortes.


3.3 Separação via buracos ímpares

Nesta seção, tratamos do caso em que H possui h > 5 vértices e induz um buraco ímpar em G+(u). A inequação de buracos Lu(H), associada a u e H, é obtida fazendo em (6). Sua violação também se restringe à antivizinhança reduzida, como segue.

Proposição 2.Se a inequação de buracos Lu(H) é violada por x*, então ou existe uma aresta vw ∈E[H] tal que x*(u, vw) > *(u).

Prova: Seja H = 〈v1, ..., vh〉 um subconjunto de +(u) que induz um buraco ímpar em G tal que e que as arestas em E[H] não são violadas por representação de u. Por contradição, suponha que x*(u, v) = 0 ou x*(u, v) = *(u), para algum vH. Sem perda de generalidade, assuma que v = v1. Se x*(u, v1) = 0, então x*(u, H) = x*(u, Ph-1), com Ph-1 = 〈v2, ..., vh〉. O somatório das inequações x*(u, v2iv2i+1) < * (u) para i ∈ {1, ..., (h - 1)/2} resulta em , que contradiz a hipótese. Caso x*(u, v1) = *(u), temos que x*(u, v2) = 0, pois x*(u, v1v2) < *(u). Obtemos assim a mesma contradição de antes com v = v2. Logo, 0 < x*(u, v) < *(u), para todo vH.

A heurística de separação proposta para buracos ímpares é baseada na seguinte propriedade, onde Pk denota um subconjunto de k vértices que induz um caminho em G+(u).

Proposição 3.Se Lu(H) é violada por x*, então, para cada k ∈ {1, ..., h - 1}, existe Pk⊆ H tal que

Prova: Seja H = 〈v0, ..., vh-1〉. Suponha que existe k ∈ {1, ..., h - 1} tal que, para todo Pk H, a inequação seja válida. Considere

Obtemos que , o que contradiz a hipótese de Lu(H) ser violada por x*.

Pelas proposições 2 e 3 e sendo h > 5, podemos restringir a busca por inequações Lu(H) a vértices uV com x*(u, v) > 0,4*(u), para algum , como feito no Algoritmo 2. Para encontrar buraco ímpar cuja inequação correspondente é violada, procuramos nas componentes conexas G[B] de . Esta busca enumera caminhos da forma P3 = (w, v, z), satisfazendo a Propriedade 3 com h > 5, ou seja, x*(u, P3) > 1,2*(u), e determina um caminho mínimo entre w e z em G[B\(N(w)∩N(z))]. Uma busca em largura modificada é utilizada para gerar este caminho mínimo P. Note que P e u definem um buraco H de tamanho |P|+1.


4. Implementação

Nesta seção, apresentamos alguns detalhes relevantes para a eficiência do algoritmo de planos-de-corte implementado.

4.1 Pré-processamento

A complexidade do problema pode ser substancialmente reduzida com a remoção de vértices apropriados do grafo original, como por exemplo um vértice uV tal que χF (G) possa ser facilmente obtido a partir de χF(G[V\{u}]). A seguir, enumeramos três critérios de remoção de um vértice u com tal propriedade:

1. (u) = Ø: como em qualquer coloração de G uma cor atribuída a u deve ser distinta das cores de todos os vértices em V\{u}, então χF(G) = χF(G[V\{u}])+1.

2. N(u) ⊆ N(v) para outro vértice v: dada qualquer coloração fracionária ótima de G[V\{u}], uma coloração fracionária para G é obtida atribuindo a u as mesmas cores de v. Logo, χF(G) =χF(G[V\{u}].

3. O grau de u é menor que um limitante inferior para ω(G), o tamanho da maior clique de G: dado que ω(G) < χF(G), no máximo (ω(G)-1 < (χF(G) - 1) < k - cores aparecem na vizinhança de u em qualquer coloração fracionária de G[V\{u}] com k cores e cores por vértice. Assim, restam ainda cores para serem atribuídas a u, e χF(G) = χF(G[V\{u}]).

Após a remoção dos vértices satisfazendo as propriedades acima, o grafo pode tornar-se desconexo. O algoritmo de planos-de-corte vai trabalhar, então, sobre cada componente conexa separadamente.

4.2 Seleção de inequações

Conforme é usual em algoritmos de planos-de-corte, manter reduzido o número de restrições em PL é essencial para limitar o tempo gasto em sua solução (Ferreira & Wakabayashi, 1996). Em nosso caso, mantemos apenas as restrições cuja variável dual associada seja básica. Observe que esta política gera um PL compacto cuja solução ótima se mantém x*. Além disso, as restrições que definem o modelo inicial são sempre conservadas em PL para que as propriedades (8) se mantenham válidas.

Uma restrição é ativa se ela está em PL, e inativa em caso contrário. Um repositório de restrições é utilizado para guardar algumas restrições inativas que podem eventualmente tornar-se ativas no decorrer das separações subsequentes. Particularmente, quando uma restrição é retirada de PL (tornando-se inativa), ela é transferida para o repositório para que possa retornar, eventualmente, a PL. De modo a evitar que o tamanho do repositório se torne excessivamente grande, restrições com idade superior ou igual a 10 são descartadas. A idade de uma restrição inicia em 0, quando ela entra no repositório, e aumenta de uma unidade a cada vez que o repositório é pesquisado, se ela permanecer inativa.

Em cada iteração, o repositório é percorrido e as heurísticas de separação são aplicadas na busca por inequações violadas por x*, que são movidas para PL. Como a política de manutenção de restrições conserva apenas uma descrição compacta da solução ótima corrente, toda desigualdade encontrada que corte x* é adicionada a PL, sendo ela obtida do repositório ou por heurísticas de separação. Para muitos grafos, há a ocorrência de diversas iterações em que a quantidade de restrições adicionadas tende a ser bem grande. Mesmo assim, esta escolha mostra-se adequada para obter o maior passo possível entre os valores de duas soluções ótimas consecutivas.

4.3 Parâmetros do algoritmo de planos-de-corte

A forma geral de um algoritmo de planos-de-corte consiste em resolver iterativamente PL, adicionando cortes e removendo restrições inativas, até que nenhum corte seja adicionado ao modelo ou que sua solução seja inteira. Em nosso caso, fazemos uma modificação para que o algoritmo possa terminar mesmo com a existência de cortes sobre a solução corrente.

Definimos a margem de lucro e a tolerância como sendo, respectivamente, a melhoria necessária no limite inferior para que a iteração seja considerada boa e a quantidade de iterações que podem ocorrer consecutivamente sem que nenhuma delas seja uma iteração boa. Se a tolerância é atingida, interrompe-se o algoritmo, mesmo que ainda existam cortes a serem adicionados ao PL. O uso desses dois parâmetros permite parar o processo em situações nas quais o valor da função objetivo não esteja melhorando de maneira significativa com os cortes gerados durante uma sequência de iterações. Para esta implementação, baseados em testes preliminares, utilizamos a margem de lucro de 1% e a tolerância de 5 iterações.

5. Experimentos e resultados

As instâncias utilizadas nos experimentos computacionais constam de um conjunto de problemas de coloração de grafos comum a diversos outros estudos experimentais (Trick, 1996). As classes de instâncias escolhidas apresentam grande diferença entre o valor da clique máxima e do número cromático fracionário ou, mesmo estes valores sendo próximos, o processo de geração de colunas mostra-se bem caro. O objetivo dos nossos experimentos é determinar a robustez do limite inferior obtido bem como o tempo necessário para calculá-lo. Para cada grafo G da Tabela 1, são apresentadas as seguintes informações: número de vértices (n) e arestas (m), tamanho da maior clique (ω(G)), melhor limite superior conhecido para χ(G)e para χF(G) (respectivamente, e (G) e F(G)), marcado com * caso seja ótimo, além de:

  • χF(G): limite inferior obtido para χF(G) (valor ótimo de PL ao final do algoritmo),

  • Int = ⌈χF(G)⌉: limite inferior obtido para χ(G),

  • T: tempo total de execução em segundos,

  • %T(PL): porcentagem do tempo gasto na resolução de PL,

  • Iter: quantidade de vezes em que PL é resolvido para obter o resultado. Caso esse número seja zero, a coloração ótima foi obtida durante o pré-processamento do grafo.

Os testes foram implementados em Java, utilizando um computador Pentium IV 1,4 GHz com 1024 MBytes de memória e usando CPLEX 7.5 para resolver os problemas de programação linear. Todos os resultados, fornecidos na Tabela 1, tiveram tempo limite de 10 minutos.

A partir destes resultados, podemos verificar a qualidade do limite inferior para χ(G) fornecido pela implementação, comparando o campo Int = ⌈χF(G)⌉ da tabela com ⌈χF(G)⌉. Observamos que nosso limite inferior difere não mais que uma unidade de ⌈χF(G)⌉ em todas as instâncias para as quais F(G) é conhecido, a menos de uma dessas instâncias (myciel7), onde a diferença é de duas unidades. Adicionalmente, também conseguimos determinar o número cromático fracionário exato (e sua igualdade ao número cromático) de algumas instâncias para as quais o processo de geração de colunas é excessivamente dispendioso. Isto comprova a força da formulação para um tempo de processamento relativamente baixo.

6. Conclusões

Neste trabalho, é investigado o uso da formulação por vértices representantes para o problema de determinação do número cromático fracionário de um grafo G . Nesse contexto, um algoritmo de planos-de-corte utilizando algumas heurísticas de separação para desigualdades válidas associadas a cliques maximais e buracos ímpares de subgrafos de G é proposto. Experimentos computacionais realizados para avaliar o limite inferior obtido para χF(G) e, consequentemente, para χ (G), são descritos. Uma comparação com os resultados obtidos em trabalhos anteriores mostra que valores muito próximos do número cromático fracionário, em muitos casos iguais, são encontrados em tempo significativamente inferior. Uma direção para trabalhos futuros é a implementação de um algoritmo branch-and-cut para o problema de coloração de vértices usando as heurísticas propostas.

Agradecimentos

Este trabalho foi apoiado pelos projetos CNPq/Universal, CT-INFO e ALPHA. Os autores são parcialmente financiados pelo Conselho Nacional de Desenvolvimento Científico e Tecnológico – CNPq. Agradecimentos são devidos também aos revisores, cujas críticas e observações ajudaram a melhorar a qualidade do trabalho.

Recebido em 06/2008; aceito em 01/2009 após 1 revisão

Received June 2008; accepted January 2009 after one revision

  • (1) Atamturk, A.; Nemhauser, G.L. & Savelsbergh, M.W.P. (2000). Conflict graphs in solving integer programming problems. European Journal of Operational Research, 121, 40-55.
  • (2) Brélaz, D. (1979). New methods to color the vertices of a graph. Communications of the ACM, 22(4), 251-256.
  • (3) Brown, J. (1972). Chromatic scheduling and the chromatic number problem. Management Science, 19(4), 456-463.
  • (4) Busygin, S. (2002). Quick almost exact maximum weight clique solver based on a generalized Motzkin-Straus formulation. <http://www.busygin.dp.ua/npc.html>
  • (5) Campêlo, M.; Campos, V. & Corrêa, R. (2008). On the asymmetric representatives formulation for the vertex coloring problem. Discrete Applied Mathematics, 156(7), 1097-1111.
  • (6) Campêlo, M.; Corrêa, R. & Frota, Y. (2004). Cliques, holes and the vertex coloring polytope. Information Processing Letters, 89, 159-164.
  • (7) Chow, F. & Hennessy, J. (1990). The priority-based coloring approach to register allocation. ACM Transactions on Programming Languages and Systems, 12(4), 501-536.
  • (8) Dantzig, G.B.; Fulkerson, D.R. & Johnson, S.M. (1954). Solutions of a large-scale travelling salesman problem. Operations Research, 2, 393-410.
  • (9) de Werra, D. (1985). An introduction to timetabling. European Journal of Operations Research, 19, 151-162.
  • (10) Ferreira, C.E. & Wakabayashi, Y. (1996). Combinatória Poliédrica e Planos-de-corte Faciais X Escola de Computação, Ed. Campinas, SP.
  • (11) Gamst, A. (1986). Some lower bounds for a class of frequency assignment problems. IEEE Transactions on Vehicular Technology, 35(1), 8-14.
  • (12) Glover, F.; Parker, M. & Ryan, J. (1996). Coloring by tabu branch-and-bound. In: DIMACS Series in Discrete Mathematics and Theoretical Computer Science [edited by D.S. Johnson and M.A. Trick], vol. 26, 285-307.
  • (13) Hoffman, K. & Padberg, M. (1993). Solving airline crew scheduling by branch and cut. Management Science, 39(6), 657-682.
  • (14) Johnson, D. & Trick, M. (1996). Cliques, Coloring and Satisfiability: Second DIMACS Implementation Challenge. DIMACS Series in Discrete Mathematics and Theoretical Computer Science, vol. 26, American Mathematical Society.
  • (15) Kubale, M. & Jackowski, B. (1985). A generalized implicit enumeration algorithm for graph coloring. Communications of the ACM, 28(4), 412-418.
  • (16) Larsen, M.; Propp, J. & Ullman, D. (1995). The fractional chromatic number of Mycielski’s graphs. Journal of Graph Theory, 19(3), 411-416.
  • (17) Lund, C. & Yannakakis, M. (1994). On the hardness of approximating minimization problems. Journal of the ACM, 41(5), 960-981.
  • (18) Mehrotra, A. & Trick, M. (1996). A column generation approach for graph coloring. INFORMS Journal in Computing, 8(4), 344-354.
  • (19) Nemhauser, G. & Sigismondi, G. (1992). A strong cutting plane/branch-and-bound algorithm for node packing. Journal of Operational Research Society, 43(5), 443-457.
  • (20) Nemhauser, G. & Wolsey, L. (1988). Integer and Combinatorial Optimization Wiley.
  • (21) Peemöller, J. (1983). A correction to Brélaz’s modification of Brown’s coloring algorithm. Communications of the ACM, 26(8), 595-597.
  • (22) Rossi, F. & Smriglio, S. (2001). A branch-and-cut algorithm for the maximum cardinality stable set problem. Operations Research Letters, 28, 63-74.
  • (23) Saad, Y. (1996). Iterative Methods for Sparse Linear Systems PWS Publishing Company, Boston, MA, USA.
  • (24) Sewell, E. (1996). An improved algorithm for exact graph coloring. ORSA Journal on Computing, 3, 226-373.
  • (25) Trick, M. (1996). Appendix: Second DIMACS Challenge test problems. In: DIMACS Series in Discrete Mathematics and Theoretical Computer Science [edited by D.S. Johnson and M.A. Trick], vol. 26, 653-657. Disponível em <http://mat.gsia.cmu.edu/COLOR/instances.html>
  • *
    Corresponding author / autor para quem as correspondências devem ser encaminhadas
  • Datas de Publicação

    • Publicação nesta coleção
      28 Maio 2009
    • Data do Fascículo
      Abr 2009

    Histórico

    • Aceito
      Jan 2009
    • Recebido
      Jun 2008
    Sociedade Brasileira de Pesquisa Operacional Rua Mayrink Veiga, 32 - sala 601 - Centro, 20090-050 Rio de Janeiro RJ - Brasil, Tel.: +55 21 2263-0499, Fax: +55 21 2263-0501 - Rio de Janeiro - RJ - Brazil
    E-mail: sobrapo@sobrapo.org.br