Найдите правильную функцию пригодности для оптимизации, используя Дифференциальную эволюцию для задачи бюджетирования

Я строю веб-сайт для системы рекомендаций, используя дифференциальную эволюцию. Сайт запросит бюджет пользователя и некоторые критерии и вернет оптимальный пакет. Поле данных выглядит так, и у меня есть 8 измерений (таблиц).

Id | Name | Price
1  | A    | $100
2  | B    | $300

До сих пор я придумал это уравнение:

f = 1/abs(budget-x1-x2-x3-x4-x5-x6-x7-x8)+1
abs=(absolute)
x1 = 1st Dimension $ price
x2 = 2nd Dimension $ price
and so on

+1 в конце не должен делиться на ноль, поэтому f=1 будет лучшей ценой / счетом.

Я пробовал эту формулу, и если она не может найти f=1, то стоимость даст плохой результат.

У кого-то есть лучшее решение или какая-либо литература, близкая к этой проблеме?

заранее спасибо

1 ответ

Итак, DE - отличный эволюционный алгоритм. DE довольно прост, с одной стороны, и в то же время достаточно мощный.

Однако эта проблема является классической задачей целочисленного линейного программирования - цель является линейной по переменным, и нет никаких ограничений. Целочисленное линейное программирование будет идти намного быстрее, чем любой эволюционный алгоритм. Я бы посмотрел на pyomo или же glpk для решателей с открытым исходным кодом ILP.

Другие вопросы по тегам