algorithm - 最大化支出并将成本保持在 X 以下

标签 algorithm knapsack-problem minimize maximize

假设我有 100 个节点,每个节点包含(支出,成本)

是否有一种算法可以在成本不超过 Y 金额的情况下找到产生最多支出的 X 个节点?

我不确定是否有简单的排序算法或以某种方式从中生成加权树。还是暴力破解是唯一的方法?

示例:
我们希望在不超过 20 成本的情况下从 3 个节点获得最佳支出

节点[] = (10, 8), (7, 8), (6, 7), (5, 3), (11, 14)

最佳结果:(10, 8), (7, 8), (5, 3)
支出 = 22
成本 = 19

最佳答案

这是一个名为 0/1 knapsack problem 的著名问题,并且有很多方法可以用来解决它。最简单且最有效的解决方案之一是动态规划算法,它一次只考虑一个元素。记住这个术语,我认为您应该能够在 Stack Overflow 上或更广泛的互联网上找到一些很棒的资源。

关于algorithm - 最大化支出并将成本保持在 X 以下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47186096/

相关文章:

arrays - 在两个数组中找到方程的解

php - PHP 中的组合、配置和排列

c++ - 如何使用背包算法[而不仅仅是包的值(value)]找到包中的哪些元素?

c++ - 使用递归算法求解背包

graphics - 最小化多边形顶点

algorithm - 将域中的一组整数散列到一组桶中

algorithm - 如何用算法解决索桥问题?

python - 根据字段获取大量对象列表的最有效组合

c++ - 如何使用boost最小化C++函数?

javascript - 注入(inject)尽可能少的字符的 javascript 文件?