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

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

0 голосов
/ 06 декабря 2018

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

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

...