复杂背包变异的高效算法

时间:2015-06-13 15:35:47

标签: java algorithm options processing-efficiency multipleselection

我正在努力为我的问题找到一个有效的算法

我有一个人员列表,每个人都知道他需要/想要订购多少物品以及他可用物品的清单。

选项列表包含按某种"得分"

排序的选项

  • num - 想要的物品数量
  • availableItems - 包含此项可用项的列表 人

选项

  • 应订购的物品
  • 项目与人之间的某种联系(格式并不重要)

输入 -

  • 人员
  • 列表
  • batchNum

输出 -

  • 选项列表

备注(可用于提高效率) -

  • 每个人都需要 1-8件
  • 每个人都有 3-n可用商品
  • 可用商品来自包含 n个可用商品的已关闭列表 (n约为30,但将来可能会有所改变)
  • 选项列表按得分
  • 排序
  • 每个人都更喜欢订购唯一项目(效果得分)
  • batchNum 表示每件商品的批次(通常为2,3或4),这意味着只能在一批 batchNum
  • 中订购商品

如果 batchNum = 3,则可以订购商品 x ,如果有3,6,9 ...则需要重复项

目前我的算法是愚蠢的,只计算所有选项,但它花了太多时间,我无法找到一个聪明的解决方案

假设我只需要20个最佳分数就可以建议更好的算法 ??

它将用java编写,但如果好的话,伪代码将受到欢迎:)

0 个答案:

没有答案