修正背包问题的评估功能

时间:2019-03-24 14:42:01

标签: artificial-intelligence knapsack-problem hill-climbing

我正在尝试使用爬山算法来解决背包问题的修改版本,但是找不到很好的评估功能。在此版本的背包问题中,解决方案中所有对象的权重之和必须等于(不是<=)背包的容量,并且其成本之和必须最大化。

我尝试了几种评估功能,但没有一个起作用:

  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个对象的背包上进行10 ^ 6次迭代后,它仍然不一定总能找到最佳解决方案,而且我认为这是因为我无法真正处理对象权重之和为>超过背包的容量

0 个答案:

没有答案