Я намагаюся з'ясувати алгоритм ...
Вхідні дані - це сукупність об'єктів, які мають кілька значень (наприклад, 3 значення на об'єкт, колір / смак / вік, хоча це може бути більше).
Алгоритм розповсюджуватиме об'єктив задану кількість наборів. Кожен набір має закінчуватися майже однаковою кількістю об'єктів (бажано, щоб кількість об'єктів на набір не відрізнялася більше ніж 1), а також досягти мети як справедливого розподілу значень за набір (наприклад, намагайтеся мати близький стільки червоних у кожному комплекті, та той же для інших кольорів, так же, як і смаків та віку, тощо).
Значення прив'язані до об'єктів і не можуть бути змінені. Якщо ви переміщуєте об'єкт з одного набору в інший, він приносить всі його значення.
Я знайшов це пов'язане запитання: Алгоритм справедливого розподілу чисел на два множини
і запропонована проблема "розбиття номерів", здається, допомагає з розподілом одного значення, але я шукаю інформацію / алгоритми з кількома значеннями на об'єкт (як описано вище).
Також зауважте, що значення не можуть бути нормалізовані, тобто кожен об'єкт не може бути складений в єдине значення.
Дякуємо за будь-яку допомогу.
Відповіді:
2 для відповіді № 1ІМХО, ви повинні підходити до цього як проблема кластеризації http://en.wikipedia.org/wiki/Cluster_analysis .