Massimizzazione dei pesi del bordo di somma


9

Mi chiedo se il seguente problema abbia un nome o qualsiasi risultato ad esso correlato.

G=(V,w)w(u,v)uvu,vVw(u,v)[1,1]

maxSV(u,v):uS or vSw(u,v)
Si noti che sto contando i bordi sia all'interno del sottoinsieme che all'esterno del sottoinsieme, che è ciò che distingue questo problema dal taglio massimo. Tuttavia, anche se sia u che v sono in S , voglio solo contare il bordo (u,v) una volta (anziché due volte), che è ciò che distingue l'obiettivo dalla semplice somma dei gradi.

Si noti che il problema è banale se tutti i pesi dei bordi non sono negativi: basta prendere l'intero grafico!


La definizione non corrisponderà in seguito alla nota relativa al non conteggio dei bordi duplicati. Stai sommando coppie ordinate o sottoinsiemi di 2 elementi? (quest'ultimo ti darebbe la proprietà di cui hai bisogno, credo)
Suresh Venkat,

1
Un'altra nota: gli unici pesi dei bordi NON conteggiati sono quelli all'interno di V \ S. Sei interessato a risultati di durezza o approssimazioni, perché nel primo caso, minimizzare la somma dei pesi dei bordi all'interno di S '= V \ S potrebbe essere il problema più naturale .
Suresh Venkat,

@Suresh: la definizione formale nella domanda è corretta per quanto riguarda il rapporto di approssimazione. Dà esattamente il doppio di ciò che ci si aspetta dalle parole.
Tsuyoshi Ito,

@TsuyoshiIto: oh capisco, perché anche i bordi del taglio vengono contati due volte.
Suresh Venkat,

1
Il problema esatto è NP-hard perché, come ha scritto Suresh nel suo commento, il problema è equivalente alla programmazione quadratica senza restrizioni {0,1}, che è NP-hard.
Tsuyoshi Ito

Risposte:


3

Non proprio una soluzione ma alcune osservazioni.

Questo è un caso speciale del seguente problema: dato un universo e una raccolta di insiemi e una funzione peso , trova l'insieme tale che sia massimizzato (il peso di un insieme è il peso totale dei suoi elementi). Il tuo problema corrisponde al caso in cui ogni elemento di appare esattamente in due set (ma non sono sicuro di come sfruttare questa restrizione, sebbene possa essere d'aiuto).U={1,,m}S1,,SnUw:U[1,1]I[n]w(iISi)U

Questo è un problema di copertura: simile a Max-k-Set-Cover, ma senza la limitazione di usare set e con pesi negativi consentiti. L'approssimazione avida di Max-k-Set-Cover (ad ogni uscita emessa l'insieme che ha finora il peso maggiore di elementi scoperti) genera una sequenza di insiemi tale che i primi insiemi sono un'approssimazione al ottimale (quindi questa è un'approssimazione simultanea per tutti i ). Sfortunatamente, come al solito, c'è un problema nell'analizzarlo quando i pesi potrebbero essere negativi. L'osservazione di base dell'analisi dell'algoritmo greedy è che se è il primo set che viene emesso, allora (kk1+1/ekS1w(S1)OPTk/kOPTkessendo il peso massimo coperto da insiemi), perché è inferiore alla somma dei pesi degli insiemi nella soluzione ottimale e ognuno di essi ha un peso inferiore a . Tuttavia, con pesi negativi non è più vero che sia inferiore alla somma dei pesi nella soluzione ottimale. In generale, un vincolo sindacale non è più vero.kOPTkkw(S1)OPTk


5

FWIW, il tuo problema è difficile da approssimare all'interno di un fattore moltiplicativo di per qualsiasi .n1ϵϵ>0

Dimostriamo che di seguito, dando una riduzione che preserva l'approssimazione dal set indipendente, per il quale è nota la durezza dell'approssimazione.

Riduzione dal set indipendente

Lascia che il grafico non indirizzato sia un'istanza di Set indipendente. Lasciare denotano il grado di vertice in . Lasciate è il numero di vertici in .G=(V,E)dvvGnG

Costruire il grafico ponderato per i bordi da come segue. Dare ciascun bordo in peso 1. Per ogni vertice non isolato , aggiungi nuovi bordi, ciascuno con peso , a nuovi vertici. Per ogni vertice isolato , aggiungi un nuovo bordo di peso 1 a un nuovo vertice.G=(V,E)GEvVdv11dv1vV

(Nota: ogni nuovo vertice (in ma non ) ha esattamente un vicino, che è in )GGG

Lemma. ha un set indipendente di dimensioni iff (come istanza del tuo problema) ha una soluzione di valore almeno .GkGk

Prova. Lasciate essere qualsiasi insieme indipendente in . Quindi, poiché i vertici in sono indipendenti in , il valore di in (secondo il tuo obiettivo) è SGSGSG

vSdv(dv1) = |S|.

Al contrario, sia una soluzione per di valore almeno . Senza perdita di generalità, supponiamo che non contenga nuovi vertici. (Ogni nuovo vertice trova su un singolo bordo . Se non è stato isolato in , il peso del bordo è , quindi la rimozione di da aumenta il valore di Se è stato isolato, quindi il peso del bordo è 1, quindi la rimozione di da e l'aggiunta di mantiene il valore di )SGkSv(v,v)vG1vSSvvSvS

Senza perdita di generalità, si supponga che è un insieme indipendente in . (Altrimenti, sia un bordo tale che e siano in Il peso totale dei bordi incidenti di in è , quindi il peso totale di I bordi degli incidenti diversi da sono al massimo pari a zero. Pertanto, la rimozione di da non aumenterebbe il valore di )SG(u,v)uvSvGdv(dv1)=1v(u,v)vSS

Ora, con lo stesso calcolo all'inizio della dimostrazione, il valore di è. Ne segue che . QEDS|S||S|k

A parte, potresti invece chiedere un'approssimazione additiva di, diciamo, o . O(n)ϵm

Mi sembra possibile che per il tuo problema anche decidere se esiste una soluzione di valore positivo potrebbe essere NP-difficile.

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.