NP-completezza di un problema di colorazione del grafico


10

Formulazione alternativa

Ho trovato una formulazione alternativa al problema seguente. La formulazione alternativa è in realtà un caso speciale del seguente problema e utilizza grafici bipartiti per descrivere il problema. Tuttavia, credo che la formulazione alternativa sia ancora NP-difficile. La formulazione alternativa utilizza un insieme disgiunto di nodi in entrata e in uscita che semplifica la definizione del problema.

Dato uscita e n nodi in entrata (nodi rosso e blu nella figura rispettivamente), e un set w i j 'S di dimensione n × n di pesi bordo tra i vertici uscita e in entrata. L'obiettivo del problema è colorare i bordi spessi nella figura in modo tale che per ogni nodo in arrivo sia valida una condizione.nnwijn×n

Grafico bipartito del problema

Dato un set dei vertici di output, un set { I i{Oi|i=1n} dei vertici di ingresso, n × n pesi w i j0 tra O i 's ed io j ' s per i , j = 1 ... n , e una costante positiva β , trovare il numero minimo di colori per i bordi e i i (bordi spessi nella figura sopra) tale che per tutti j = 1 n ,{Ii|i=1n}n×nwij0OiIji,j=1nβeiij=1n

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

dove mostra il colore del bordo e i i .c(i)eii


Vecchia formulazione

Il seguente problema mi sembra NP-difficile, ma non ho potuto dimostrarlo. È gradita qualsiasi prova / commento per dimostrarne la durezza o la facilità.

Assumere è un grafo orientato completo zavorrato con n nodi e n ( n - 1 ) bordi. Let w i j0 mostra il peso del bordo i j e c ( i j ) mostra il colore del bordo i j . Dato un sottoinsieme dei bordi T E e una costante positiva β l'obiettivo è: trovare il numero minimo di colori tale che per ogniKn=V,Enn(n1)wij0ijc(ij)ijTEβ :eijT

e c(ij)c(ik)

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

Si noti che nel problema precedente, solo i bordi in devono essere colorati. Questo è il problema che può essere risolto in O ( | T | ! ) .TO(|T|!)

Aggiornare:

Dopo il commento di Tsuyoshi Ito ho aggiornato il problema. Il denominatore viene modificato da in 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. Pertanto, il denominatore contiene i pesi esterni pure. Ecco perché ho menzionato il grafico completo nella definizione.T

Ho anche aggiunto un vincolo aggiuntivo . Ciò significa che i bordi in uscita da un nodo devono essere di colori diversi (ma i colori in entrata possono essere gli stessi purché la disuguaglianza sia valida). Questo pone un limite inferiore intuitivo il numero di colori, che è il grado in uscita-massimo dei nodi in T .c(ij)c(ik)forjkT

wijTβ

Aggiornamento 2:

eijeji


@Raphael: Normalmente, un problema di colorazione dei bordi sembra essere un buon candidato per la riduzione. Trovare il problema np-hard più semplice per la riduzione è la parte più difficile. Il prossimo passo è trovare i pesi corretti per la mappatura. Immagino, se un problema di colorazione del bordo si riduce al problema sopra, i pesi dovrebbero essere come 0/1 o dobbiamo risolvere un sistema di disuguaglianze per trovare i pesi.
Elio

Alcuni commenti sulla formulazione del problema: (1) Qual è l'input? Immagino che l'input sia w_ij per tutti gli spigoli, T e β, ma in tal caso, non dovresti definire w_ij ec (ij) come se fossero dati allo stesso modo. (2) Come capisco quello che hai scritto, i bordi esterni a T non vengono mai citati. Quindi è più semplice definire il grafico diretto costituito dai bordi in T invece di considerare il grafico diretto completo.
Tsuyoshi Ito,

@TsuyoshiIto: Grazie per i tuoi commenti, ho aggiornato la domanda.
Elio

1
A proposito, il problema mi sembra piuttosto disordinato. Se spieghi come hai raggiunto questo problema (in altre parole, perché sei interessato a questo problema), potrebbe aiutare gli altri a capire il problema.
Tsuyoshi Ito,

1
T

Risposte:


3

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

CRRCRC

ijCRijwjj1+c(i)=c(j),ijwij11+XXCRCRCRRCC fornisce una soluzione con un numero inferiore di colori.


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


Come imponi che c (ij) = c (ji)? Questo non è necessariamente vero nel problema in questione, se lo capisco correttamente.
Tsuyoshi Ito,

Buon punto. Modificherò il post originale per notare il problema.
Luke Mathieson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.