Я пытаюсь разделить набор из 100 объектов на два подмножества.Каждый объект имеет набор числовых атрибутов.
Текущая целевая функция состоит в том, чтобы минимизировать среднее значение разницы между средними значениями атрибутов каждого набора.Другими словами, мы сначала вычисляем среднее значение каждого атрибута в каждом наборе, затем берем разницу каждого атрибута между наборами и, наконец, берем среднее значение этих различий.
Обратите внимание, что эта целевая функция является одной из нескольких (и является самой простой);Мне нужно общее решение, которое работает независимо от того, как вычисляется целевая функция.
Решения, которые я придумаю, довольно просты:
- Используйте жадный алгоритм для итеративного добавленияновый объект для одного из подмножеств
- То же, что и выше, но разрешается возвратный контроль для перебалансировки подмножеств после каждого нового распределения
- Начать с полностью заполненных наборов (на основе случайного назначения), а затем выполнитьжадный поиск для перемещения объекта из одного набора в другой, если он понижает целевую функцию.
Существуют ли более точные методы, чем эти;то есть это приведет к более близко подобранным наборам, но не займет очень много времени для оценки?