好的快速概述
我研究过背包问题
http://en.wikipedia.org/wiki/Knapsack_problem
我知道这是我的项目所需要的,但我项目的复杂部分是我需要在一个主袋内有多个袋子。
装着所有“袋子”的大背包只能携带 x 个“袋子”(例如 9 个)。每个包都有不同的价值;
- 重量
- 成本
- 尺寸
- 容量
依此类推,所有这些值都是整数。让我们假设从 0-100。
内袋也将被分配一个类型,外袋中只能有一种类型,尽管程序输入将被赋予多个相同类型。
我需要指定主包可以容纳的最大重量,而小包的所有其他属性都需要按加权值分组。
例子
外袋:
- 可容纳 9 个较小的袋子
- 重量不超过 98 [两边各取 5 个]
- 每种必须持有一种,每次只能持有一种。
内袋:
- 成本,100% 加权
- 大小,权重为 67%
- 容量,权重为 44%
程序将输入多个袋子,然后必须计算出较小袋子的组合才能进入较大的袋子,根据输入会有多个解决方案,程序会为我输出最佳解决方案。
我想知道你们认为我解决这个问题的最佳方法是什么。
我将使用 Java 或 C# 对其进行编程。我很想用 PHP 对其进行编程,但我担心该算法对于 Web 服务器来说效率很低。
谢谢你提供的所有帮助
-扎克