NP-Completude de um problema de coloração de gráfico

10

Formulação Alternativa

Eu vim com uma formulação alternativa para o problema abaixo. A formulação alternativa é realmente um caso especial do problema abaixo e usa gráficos bipartidos para descrever o problema. No entanto, acredito que a formulação alternativa ainda é NP-difícil. A formulação alternativa usa um conjunto separado de nós de entrada e saída que simplifica a definição do problema.

Dado nós de saída e n de entrada (os nós vermelho e azul na figura, respectivamente) e um conjunto w i j 's de tamanho n × n de pesos de borda entre os vértices de saída e de entrada. O objetivo do problema é colorir as arestas grossas da figura para que, para cada nó recebido, uma condição seja mantida.nnwijn×n

Gráfico bipartido do problema

Dado um conjunto de vértices de saída, um conjunto { I i{Oi|i=1n} de vértices de entrada, n x n pesos w i j0 entre O i 's e eu j ' s para i , j = 1 ... n , e uma constante positiva β , encontrar o número mínimo de cores para as arestas e i i (arestas grossas na figura acima), de modo que, para todos os j = 1 n ,{Ii|i=1n}n×nwij0OiIji,j=1nβeiij=1n

wjj1+c(i)=c(j),ijwijβ

onde mostra a cor da aresta e i i .c(i)eii


Formulação antiga

O seguinte problema parece difícil para mim, mas não consegui mostrar. Qualquer prova / comentário para mostrar a dureza ou facilidade é apreciada.

Suponha é um gráfico ponderada completo dirigido com n nodos e n ( n - 1 ) arestas. Deixe w i j0 mostrar o peso da aresta i j e c ( i j ) mostre a cor da aresta i j . Dado um subconjunto das arestas T E e uma constante positiva β, o objetivo é: encontrar o número mínimo de cores para que cadaKn=V,Enn(n1)wij0ijc(ij)ijTEβ :eijT

e c(ij)c(ik)

wij1+c(kl)=c(ij),klijwkjβ.
c(ij)c(ik)forjk

Observe que no problema acima, apenas as arestas em precisam ser coloridas. Esse é o problema que pode ser resolvido em O ( | T | ! ) .TO(|T|!)

Atualizar:

Após o comentário de Tsuyoshi Ito, atualizei o problema. O denominador é alterado de para 1 + c ( k l ) = c ( i j ) , k l i j w k j1+c(kj)=c(ij),ki,ekjTwkj1+c(kl)=c(ij),klijwkj. Portanto, o denominador contém os pesos exteriores bem. Foi por isso que mencionei o gráfico completo na definição.T

Também adicionei uma restrição adicional . Isso significa que as arestas de saída de um nó devem ter cores diferentes (mas as cores recebidas podem ser as mesmas desde que a desigualdade se mantenha). Isso coloca um intuitivo limite inferior no número de cores, que é o grau out-máxima dos nós no T .c(ij)c(ik)forjkT

wijTβ

Atualização 2:

eijeji

Hélio
fonte
@ Rafael: Normalmente, um problema de coloração das bordas parece ser um bom candidato para a redução. Encontrar o problema np-hard mais simples para a redução é a parte mais difícil. O próximo passo é encontrar os pesos adequados para o mapeamento. Eu acho que, se um problema de coloração de borda for reduzido ao problema acima, os pesos devem ser iguais a 0/1 ou precisamos resolver um sistema de desigualdades para encontrar os pesos.
Helium
Alguns comentários sobre a formulação do problema: (1) Qual é a contribuição? Eu acho que a entrada é w_ij para todas as arestas, T e β, mas, se for o caso, você não deve definir w_ij ec (ij) como se fossem dados da mesma maneira. (2) Pelo que entendi o que você escreveu, as bordas fora de T nunca são mencionadas. Portanto, é mais simples definir o gráfico direcionado que consiste nas arestas em T em vez de considerar o gráfico direcionado completo.
Tsuyoshi Ito
@TsuyoshiIto: Obrigado por seus comentários, atualizei a pergunta.
Helium
11
A propósito, o problema parece bastante confuso para mim. Se você explicar como alcançou esse problema (em outras palavras, por que está interessado nesse problema), isso pode ajudar outras pessoas a entender o problema.
Tsuyoshi Ito
11
T

Respostas:

3

nnniwii=1ijijwij=wji=1wij=wji=0β=1

CRRCRC

ijCRijwjj1+c(i)=c(j),ijwij11+XXCRCRCRRCC fornece uma solução com um número menor de cores.

Hélio
fonte
0

c(ij)=c(ji)T0

G=(V,E)D=(V,A)uvE(u,v)(v,u)AaAwa=1xyE(x,y)(y,x)Awxy=wyx=0β1T=A

0

kNP

NP

Luke Mathieson
fonte
Como você impõe que c (ij) = c (ji)? Isso não é necessariamente verdade no problema em questão, se eu entendi corretamente.
Tsuyoshi Ito
Bom ponto. Vou editar a postagem original para observar o problema.
Luke Mathieson