Considérez le problème suivant,
- Étant donné un ensemble de nombres positifs { a 1 , … , a n } dans lesquels k ≥ 3 est une constante, nous voulons partitionner l'ensemble en m sous-ensembles de taille k de sorte que le produit de la somme de chaque sous-ensemble est maximisé.
Le problème est assez similaire au partitionnement de numéros -way bien connu, sauf que nous avons une limite sur le nombre de numéros dans chaque partition. Pour k = 2, l'algorithme polynomial simple suivant peut être proposé,
- supposons que les nombres sont triés, c'est dire a 1 < a 2 < . . . < a n . Ensuite, pour i ≤ m, affectez a i au sous-ensemble i , pour i > m , affectez-le au sous-ensemble n - i + 1 .
Il n'est pas difficile de voir pourquoi l'algorithme fonctionne. Choisissez simplement deux bacs arbitraires. Tout échange de chiffres n'augmentera pas la quantité du produit.
Mais pour les plus grands , je me demande si le problème peut être résolu en temps polynomial ou non? Je serais également reconnaissant si quelqu'un pouvait montrer sa dureté np.
Remarque: J'ai rencontré le problème alors que je travaillais sur un problème de planification dans les réseaux sans fil. J'ai trouvé un bon algorithme heuristique pour résoudre le problème. Mais après un certain temps, j'ai pensé que le problème pourrait être théoriquement intéressant.