C'è un problema (molto generale) che ho visto come parte di un progetto: una variante di questo problema rimane NP-dura anche su grafici con due vertici e un bordo singolo, e una variante diversa è NP-dura sugli alberi. Poiché la durezza NP della prima variante ovviamente non deriva dalla forma del grafico, la seconda è probabilmente più interessante.
SCG=(V,E)S⊂VC⊂VS∩C=∅s∈S|s|Ff∈F|f|e∈EteR⊆C×F(c,f)∈Rcf
s∈SAs∑f∈As|f|≤|s|PrGr=(c,f)∈Rcsf∈AseDer=(c,f)∈DePre∑(c,f)∈De|f|≤te
Se non si necessita di tutti i download per essere instradati, ma invece cercare di massimizzare la somma delle dimensioni dei file dei download che vengono instradati si può facilmente ridurre sottoinsieme-sum a questo problema: si dispone di un singolo server con grandi quantità di spazio, un un singolo client connesso al server con un bordo con una capacità pari al valore target dell'istanza di somma parziale e per ogni numero intero nell'istanza di somma parziale si crea un file con le stesse dimensioni; il client desidera quindi scaricare tutti questi file.
Una (molto?) Variante più interessante per questa domanda è il caso in cui si tenta di ridurre al minimo il numero di fronti la cui capacità viene superata - forse la rete su cui stiamo lavorando modella i cavi transatlantici di Internet e la sostituzione di un cavo è così costosa che la differenza nel costo dell'aggiornamento a un fattore due più veloce e un aggiornamento a un fattore tre più veloce è trascurabile. Diciamo anche che i posizionamenti dei file sui server sono già indicati e non possono essere modificati, quindi esaminiamo esclusivamente i problemi di routing.
US⊆P(U)u∈U
s∈Su∈su
L'idea è che il client necessita di file univoci per tutti i cluster di server, quindi i bordi che collegano il client ai cluster di server sono già al limite delle loro capacità (le loro capacità sono 1, i file hanno dimensioni 1). Se il client scarica elementi dell'universo da qualsiasi cluster, il bordo che si collega a quel cluster diventa sovraccarico. Dal momento che abbiamo solo bisogno di ridurre al minimo il numerodi sovraccarichi (e non di quanto superiamo le capacità), il client può scaricare il resto degli elementi dell'universo ospitati in quel cluster di server (quindi il resto degli elementi del sottoinsieme corrispondente) senza penalità. Ciò corrisponde quindi al sottoinsieme scelto. Il client desidera scaricare tutti i file nell'universo una volta, quindi l'universo sarà effettivamente coperto e per ridurre al minimo il numero di bordi sovraccaricati, è necessario ridurre al minimo il numero di sottoinsiemi scelti.
Nota che la costruzione di cui sopra produce un grafico ad albero, quindi è un esempio di un problema NP-difficile sugli alberi.