Java 复杂背包变化的有效算法
我正试图找到一个有效的算法来解决我的问题 我有一份人员名单,每个人都知道他需要/想要订购多少物品,以及他可以订购的物品清单 选项列表包含按某种“分数”排序的选项 人:Java 复杂背包变化的有效算法,java,algorithm,options,processing-efficiency,multipleselection,Java,Algorithm,Options,Processing Efficiency,Multipleselection,我正试图找到一个有效的算法来解决我的问题 我有一份人员名单,每个人都知道他需要/想要订购多少物品,以及他可以订购的物品清单 选项列表包含按某种“分数”排序的选项 人: num-需要的项目数 availableItems-包含此项目可用项的列表 人 选项 应该订购的物品 项目和人员之间存在某种联系(格式不重要) 输入- 人员名单 batchNum 输出- 选项列表 注释(可用于提高效率) 每个人需要大约1-8个项目 每人大约有3-n件可用物品 可用项来自包含n个可用项的封闭列表
- num-需要的项目数
- availableItems-包含此项目可用项的列表 人
- 应该订购的物品
- 项目和人员之间存在某种联系(格式不重要)
- 人员名单
- batchNum
- 选项列表
- 每个人需要大约1-8个项目
- 每人大约有3-n件可用物品
- 可用项来自包含n个可用项的封闭列表 (n约为30,但将来可能会有一点变化)
- 选项列表按得分排序
- 每个人都喜欢订购独特的物品(效果分数)
- batchNum表示每个项目的批次(通常为2、3或4),这意味着一个项目只能在batchNum的批次中订购
它将用java编写,但如果伪代码好的话,它将受到欢迎:)欢迎使用SO。你能告诉我们你试过什么吗?最好是您已经拥有的代码。我想我不理解您的问题,但是为什么第一个人不能从项目列表中尽可能地订购,然后第二个人,依此类推,直到您的项目或人员用完为止?每个人都“知道”他到底要买多少项目(在带有字段“num”的人员中指定),这是限制条件之一