Durezza NP di un caso speciale di partizionamento numerico


12

Considera il seguente problema,

  • Dato un insieme di numeri positivi in cui è una costante, vogliamo dividere l'insieme in sottogruppi di dimensioni modo che il prodotto della somma di ciascuno il sottoinsieme è massimizzato.{ a 1 , , a n } k 3 m kn=km{a1,,an}k3mk

Il problema è abbastanza simile al noto partizionamento dei numeri -way, tranne per il fatto che abbiamo un limite al numero di numeri in ciascuna partizione. Per può essere proposto il seguente algoritmo polinomiale semplice,k = 2mk=2

  • supponiamo che i numeri siano ordinati, ovvero . Quindi, per assegnare al sottoinsieme , per , assegnarlo al sottoinsieme . i m un i i i > m n - i + 1a1<a2<...<animaiii>mni+1

Non è difficile capire perché l'algoritmo funzioni. Scegli due bidoni arbitrari. Qualsiasi scambio tra i numeri non aumenterà la quantità del prodotto.

Ma per più grandi , mi chiedo se il problema possa essere risolto in un tempo polinomiale o no? Sarei anche grato se qualcuno potesse mostrare la sua durezza np.k

Nota: ho riscontrato il problema mentre stavo lavorando a un problema di pianificazione nelle reti wireless. Ho trovato un buon algoritmo euristico per risolvere il problema. Ma dopo un po 'ho pensato che il problema potesse essere teoricamente interessante.


2
Hmm. Sarei interessato a vedere il tuo semplice algoritmo polinomiale per . k=2
mjqxxxx,

2
@Mohsen, grazie. Suggerirei di includere questi commenti sulla motivazione, sullo sfondo e su cosa sai del caso k = 2 nella domanda. Ciò probabilmente lo renderebbe più interessante per gli altri.
Kaveh,

4
La mia intuizione è che il prodotto della somma di ciascun sottoinsieme è massimizzato quando le somme sono uguali o la differenza massima a coppie è minima. In base a questo presupposto, otteniamo una facile riduzione da 3 partizioni che è NP-completo (per k = 3).
Mohammad Al-Turkistany,

3
(Ho rimosso due commenti che ho pubblicato poche ore fa per riscriverli in modo più accurato.) Come suggerito dal turco, il problema della partizione k è riducibile a questo problema, e quindi questo problema è NP-difficile per ogni costante k≥3. L'unica proprietà rilevante è che il massimo del prodotto delle somme è almeno (∑a_i / k) ^ m se e solo se i numeri possono essere suddivisi in m insiemi ciascuno con dimensione k le cui somme sono tutte uguali. Il prodotto non è sempre ottimizzato dalla partizione che minimizza la differenza massima a coppie, ma è irrilevante fintanto che consideriamo il problema esatto. (altro)
Tsuyoshi Ito,

3
(seguito) Se si richiede che l'input sia un set anziché un multiset , questa riduzione funziona ancora perché il problema della partizione k rimane NP-completo anche con un set, ma fare attenzione perché la prova standard della completezza NP del problema delle 3 partizioni funziona solo quando l'input può contenere lo stesso numero intero più di una volta. Vedi Complessità computazionale del problema delle 3 partizioni con numeri distinti (attenzione: autopromozione).
Tsuyoshi Ito,

Risposte:


11

(Questa è una versione un po 'più dettagliata dei miei commenti sulla domanda.)

Come il turco ha suggerito in un commento sulla domanda, questo problema è NP-difficile per ogni costante k ≥3 di una riduzione dal problema della partizione k . La riduzione non cambia affatto le istanze: basta notare che il massimo del prodotto delle somme è almeno (∑ a i / k ) m se e solo se i numeri possono essere suddivisi in m insiemi ciascuno con dimensione k le cui somme sono tutti uguali.

Si noti che l'input per il problema della partizione k è generalmente definito come numeri di km che potrebbero non essere tutti distinti , e questo è essenziale nella prova standard della sua completezza NP (come quella di Garey e Johnson ). Pertanto, la riduzione di cui sopra dimostra solo la durezza NP di una leggera generalizzazione del problema attuale in cui è consentito che l'input sia un multiset anziché un set. Tuttavia, questo gap può essere colmato perché il problema della partizione k rimane NP-completo anche se i numeri nell'input devono essere tutti distinti; vedi [HWW08] per il caso di k = 3 (vedi anche la risposta di Serge Gaspersa un'altra domanda), che può essere facilmente modificato per valori maggiori di k .

Inoltre, tutto quanto indicato qui rimane NP-completo / NP-difficile anche quando i numeri nell'input sono indicati in modo unario.

[HWW08] Heather Hulett, Todd G. Will, Gerhard J. Woeginger. Realizzazioni multigrafo di sequenze di gradi: la massimizzazione è facile, la minimizzazione è dura. Operations Research Letters , 36 (5): 594-596, settembre 2008. http://dx.doi.org/10.1016/j.orl.2008.05.004

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.