0/1背包算法优化

时间:2018-07-30 05:56:27

标签: algorithm optimization knapsack-problem

我的变量是;

customer = (1,2,3,4,5,6,7,8,9,10)  
cost of the promotion = (10,20,30)  
availability of the promotions = (2,3,5)
profit = positive integers around 100  
the capacity of the knapsack = total budget

我想通过为每个客户分配3个促销之一来最大化利润。背包的容量是总预算。我也有一些限制。

  • 该算法应仅向一个客户分配一次促销。
  • 该算法应分配所有可用的促销。

我是这样做的。
我列出了所有组合,如下所示,然后继续。

items = ((1,1,50),(1,2,78),(1,3,69),(2,1,45),(2,2,98),(2,3,47),(3,1,90),(3,2,36),(3,3,54),(4,1,35)...)  

其中:

items = (i,j,k)   :   
i = customer   
j = the promotion  
k = profit  

但是,“项目”列表中还有从属元素。 (属于同一客户)背包算法将元素视为独立元素,因此无法正常工作。它将两个或多个促销分配给一个客户。

感谢有人可以帮助我。
谢谢

0 个答案:

没有答案