Хорошо, если я правильно понимаю проблему, вам нужно выбрать x1 объекты длиной 34, x2 объекты длины 65 и т. Д., И т. Д., Так, чтобы сумма всех этих объектов была равна W, но естьуклон в сторону более длинных объектов (в данном случае 126,0 будет наиболее предпочтительным объектом).
Я полагаю, вы могли бы создать целевую функцию, подобную этой:
f (x1, x2), .., xn) = b1 * x1 * L1 + b2 * x2 * L2 + ... + bn * xn * Ln - p * (W - x1 * L1 + x2 * L2 + ... + xn * Ln)^ 2
Где b1 - bn - смещения этих объектов (положительные числа благоприятны, отрицательные числа означают, что объект обесценен), L1 - Ln - длины этих объектов, а p - штраф за отсутствиеточно W (если это должно быть точно W, p - это inf.)
(Мы могли бы также поместить его в матричную форму как f (X) = b ^ T * X * L - p * (W - I^ T * X * L) ^ 2, где b и L - векторы, X - квадратно-диагональная разреженная матрица из x1, x2, ..., xn I - вектор из 1, а T - транспонирование.)
Так что цель то максимаИзмените f, выполнив поиск по n-кортежному набору целых чисел x1, x2, ..., xn.
whew Хорошо, теперь я думаю, что понимаю проблему.:)
Это какая-то целочисленная задача программирования, но я не думаю, что она точно квалифицируется как квадратично-целочисленная задача программирования.Возможно, кто-то еще знает, что это такое.
Я много изучал и экспериментировал с имитацией отжига в своих исследованиях.Это обычно может легко решить эти типы задач дискретной оптимизации.Вероятно, вы можете просто использовать линейный или логарифмический температурный график для этой проблемы.
Если у вас есть всего несколько объектов, хотя и без намерения широкого масштабирования, то грубая сила, вероятно, будет в порядке.Но если вы собираетесь делать это на сотнях или тысячах объектов, то генетические алгоритмы, рой частиц или моделируемый отжиг, вероятно, будут разумными идеями.Насколько я знаю, на самом деле невозможно определить, какая эвристика оптимизации будет работать лучше (например, найти результат с требуемой точностью в удовлетворительном периоде времени) априори.
Я недостаточно знаю одругие методы решения для предоставления комментариев.