Функция оценки для модифицированной задачи о ранце - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь решить модифицированную версию задачи о ранце, используя алгоритм восхождения на холм, но не могу найти хорошую функцию оценки.В этой версии задачи о рюкзаке сумма весов всех объектов в решении должна быть равна (не <=) емкости рюкзака, а сумма их стоимости должна быть максимальной. </p>

Я пробовалнесколько функций оценки, но ни одна из них не сработала:

  1. Я пытался минимизировать выражение __abs(sum_of_weights_in_solution - knapsack's capacity)__.Очевидно, что это не сработало, потому что это выражение не учитывает стоимость объекта, но, по крайней мере, оно предоставляет решение, которое заполняет рюкзак
  2. Я пытался минимизировать это выражение: __abs(sum_of_weights_in_solution - knapsack's capacity) - sum_of_costs_in_solution__.Этот вариант лучше, но, тем не менее, он не всегда находит оптимальное решение даже после 10 ^ 6 итераций в рюкзаке с 10 объектами, и я думаю, что это потому, что я не могу реально обработать случаи, когда сумма весов объектов равна> чем вместимость ранца
...