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 k
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 = 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 + 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.
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.