Permettez-moi d'essayer d'expliquer la situation du mieux que je peux.
permet de dire que j'ai 3 valeurs p> je dis un algorithme de diviser ces valeurs en x colonnes x . Disons X = 2 pour clarification. P> L'algorithme détermine que le groupe de valeurs est mieux placé dans deux colonnes de la manière suivante. P> permet maintenant de dire que j'ai les valeurs suivantes p> Je dis à l'algorithme que je veux Valeurs divisées en 3 colonnes. L'algorithme me dit maintenant que ce qui suit est le meilleur ajustement. P> remarque comment les colonnes ne sont pas silencieuses, mais c'est aussi proche que possible. Un peu plus et un peu sous est considéré comme ok, tant que la liste est aussi proche de même que possible. P> Quelqu'un a eu des suggestions? Connaître de bonnes méthodes de faire cela? P> p>
3 Réponses :
Si vous voulez exactement les mêmes valeurs, alors pour le nombre de colonnes x = 2, c'est le classique Problème qui est NP-complet, mais a des solutions pseudo-polynomiales. P>
Plus de colonnes (c'est-à-dire x> 2), et cela devient fortement complet NP. Problème de 3 partitions . P>
pour x> 3, je soupçonne que ce sera toujours fortement np-complet. P>
Étant donné que le problème de la partition X peut être réduit à votre problème, cela sera aussi difficile que les problèmes ci-dessus. P>
Vous auriez probablement besoin de méthodes heuristiques pour vous aider. P>
Je le ferais comme ceci: p>
J'ai répondu à une question similaire au dos. p>
Je peux penser à une solution sous-optimale gourmande. p>
Cela ne va jamais vous donner la solution optimale. P>
Pour votre cas, 8 7 4 3 1 serait la commande. Et vous auriez (heureusement) obtenez les mêmes résultats que vous avez mentionné. P>
8 = 8 p>
7 1 = 8 p>
4 3 = 7 p>
Cela ne vous donnera pas toujours la solution optimale p>
C'est une excellente solution heuristique qui évite l'utilisation de n'importe quel paramètre de réglage et est très facile à programmer. En utilisant un knapacacier sur un sous-ensemble itératif des éléments de risque que nous quitterons de nombreux éléments jusqu'à la fin et semble être une douleur à mettre en œuvre. Cela semble beaucoup plus robuste.