Qual è la complessità di questo problema grafico?


16

Dato un semplice grafico non orientato G , trova un sottoinsieme A di vertici, tale che

  1. per ogni vertice almeno la metà dei vicini di x sono anche in A , exAxA

  2. la dimensione di è minima.A

Cioè, stiamo cercando un cluster, in cui almeno la metà del vicinato di ogni vertice interno rimanga interna. La semplice esistenza di un tale cluster è ovvia, poiché l'intero insieme di vertici ha sempre la proprietà 1. Ma quanto è difficile trovare il cluster più piccolo (non vuoto)?V(G)

Esiste un nome standard per questo problema? Cosa si sa della sua complessità?


2
Sembra una variante del problema della partizione soddisfacente . Non so se la tua variante è nota ed è stato dimostrato di essere NPC; ma probabilmente una riduzione da k-cricca dovrebbe funzionare: collegamento ogni nodo del grafo originale k + 1 nodi di C i "cricca esterna" di dimensione 2 ( k + 1 ) (ogni nodo ha la sua cricca esterna). Quindi puoi trovare un set non banale A di dimensione k se e solo se a kvik+1Ci2(k+1)Akk-clique esiste nel grafico originale (devi selezionare almeno un nodo, ma devi evitare qualsiasi cricca esterna). Ma è solo un'idea; se avrò abbastanza tempo proverò a vedere se la riduzione è corretta.
Marzio De Biasi,

@MarzioDeBiasi Grazie, dopo alcune ricerche ho scoperto che il problema della partizione soddisfacente è effettivamente correlato. Tuttavia, in ogni variante che ho trovato, cercano una partizione, piuttosto che un singolo set. Non è chiaro come siano correlati. Nella tua riduzione, a meno che non abbia frainteso qualcosa, un -clique del grafico originale non soddisfa la definizione, poiché ogni nodo in esso avrà k - 1 vicini interni, ma almeno k + 1 vicini esterni, a causa dell'aggiunta esterna cricche. kk1k+1
Andras Farago,

2
Penso che questo problema sia noto come "alleanza difensiva"
daniello,

1
@daniello: fantastico, ho cercato nel sondaggio IG Yero, JA Rodriguez-Velazquez, "Alleanze difensive nei grafici: un sondaggio", 2013 ma non ho trovato la parola "metà"; quando avrò abbastanza tempo lo leggerò attentamente; è probabile che il problema OP sia già noto!
Marzio De Biasi,

2
Sembra essere formulato come "ogni vertice ha almeno tanti vicini dentro e fuori", che è lo stesso della domanda fino all'arrotondamento, ed eventualmente includendo / non includendo il vertice stesso nel conteggio
daniello,

Risposte:


6

Questa è una riduzione da Clique al tuo problema.

Iniziamo con un'istanza di Clique: un grafo e un intero k , lasciate V = { v 1 , v 2 , . . . , v n } .GkV={v1,v2,...,vn}

La cricca rimane NPC anche sotto il vincolo che (schizzo di prova: se m a x ( d e g ( v i ) > 2 ( k - 1 ) quindi aggiungi una K t dove t = 2 ( k - 1 ) - m a xmax(deg(vi))2(k1)max(deg(vi)>2(k1)Kt e collegalo a tutti i nodi di G e chiedi una cricca di dimensioni k = k + t nel nuovo grafico).t=2(k1)max(deg(vi))Gk=k+t

Quindi supponiamo che in , m a x ( d e g ( v i ) ) 2 ( k - 1 ) . Per ogni nodo v i per cui d e g ( v i ) < 2 ( k - 1 ) creiamo una cricca "esterna" C i di dimensione 2 ( k + 1 ) + 1 (ogni nodo di CGmax(deg(vi))2(k1)videg(vi)<2(k1)Ci2(k+1)+1 cricca ha almeno 2 ( k + 1 ) vicini).Ci2(k+1)

Se è il grado di v i , colleghiamo v i a 2 ( k - 1 ) - d e g ( v i ) nodi di C i .deg(vi)vivi2(k1)deg(vi)Ci

Nel risultante , ogni v i ha grado 2 ( k - 1 ) ; così | A | k perché è necessario selezionare almeno un vertice.Gvi2(k1)|A|k

È chiaro che se uno dei vertici di è incluso in A, devono essere inseriti anche almeno 2 ( k + 1 ) / 2 = k + 1 nodi. Si noti che se un nodo originale ha d e g ( v i ) < k - 1, è necessario includere almeno un nodo della C i collegata , portando a | A | > kCiA2(k+1)/2=k+1deg(vi)<k1Ci|A|>k .

Quindi possiamo costruire un set di dimensioni minime | A | = k se e solo se G contiene una cricca di dimensione kA|A|=kGk .

Un esempio della riduzione in cui chiediamo se il grafico rappresentato dai nodi gialli e dai bordi in grassetto contenga una cricca di dimensioni k = 3 (un triangolo).Gk=3

satisfactory problem variant 30CC0991E0BCCCD16E41CBD9CD3EEECC

I nodi blu (raggruppati per una migliore leggibilità) sono , i bordi rossi sono i collegamenti tra i nodi di G con d e g ( v i ) < 2 ( k - 1 ) .K9Gdeg(vi)<2(k1)


@WillardZhan: perché ogni vertice di ha grado 2 ( k - 1 ) per costruzione, quindi se A contiene un vertice, deve contenere almeno 2 ( k - 1 ) / 2 = k - 1 vicini (e lo stesso si applica a tutti i vertici di A ), quindi | A | k . La "dimensione minima" k può essere raggiunta solo se A è una cricca di dimensione k . G2(k1)A2(k1)/2=k1A|A|kkAk
Marzio De Biasi

@WillardZhan: ho aggiunto un'altra condizione al problema iniziale della cricca (ma dovrebbe rimanere NPC) ... Lo sto ancora verificando (non del tutto convinto che sia corretto).
Marzio De Biasi,

1
Sì, ora funziona perfettamente (anche se dovrebbe essere nell'espressione di t ). Forse dovrò cancellare i miei commenti? kt
Willard Zhan,

@WillardZhan: penso che sia corretto, perché in quel paragrafo mi riferisco alla riduzione da Clique [istanza ] a Clique + vincolo m a x ( d e g ( v i ) ) 2 ( k - 1 ) [istanza ( G , k ) ]. t è il numero dei nodi (cricca) da aggiungere a G per ottenere la nuova istanza di Clique che stastisfica il vincolo. (G,k)max(deg(vi))2(k1)(G,k)t
Marzio De Biasi
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.