Найдите правильную функцию пригодности для оптимизации, используя Дифференциальную эволюцию для задачи бюджетирования
Я строю веб-сайт для системы рекомендаций, используя дифференциальную эволюцию. Сайт запросит бюджет пользователя и некоторые критерии и вернет оптимальный пакет. Поле данных выглядит так, и у меня есть 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.