Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这是多约束背包变化吗?_C++_Algorithm_Knapsack Problem - Fatal编程技术网

C++ 这是多约束背包变化吗?

C++ 这是多约束背包变化吗?,c++,algorithm,knapsack-problem,C++,Algorithm,Knapsack Problem,我已经检查了其他问题(),但我不认为它们真的解决了我的问题 假设我们有N个bucket(用数字标记),每个bucket都包含一个有限且大于0的标记M(i)(M可以在不同的bucket之间更改) 每个标记都有两个属性x和y(您可以将它们看作实数)。我的问题是找到满足以下条件的配置: 1) 每个铲斗只能选择一个或零个元素 2) 在最终配置中选择的每个元素的x属性必须大于输入值x 3) 最终配置中属性y的所有元素的总和必须大于或等于输入值y。但是,删除最终列表中的任何元素都必须导致总和严格小于y 4)

我已经检查了其他问题(),但我不认为它们真的解决了我的问题

假设我们有N个bucket(用数字标记),每个bucket都包含一个有限且大于0的标记M(i)(M可以在不同的bucket之间更改)

每个标记都有两个属性x和y(您可以将它们看作实数)。我的问题是找到满足以下条件的配置:

1) 每个铲斗只能选择一个或零个元素

2) 在最终配置中选择的每个元素的x属性必须大于输入值x

3) 最终配置中属性y的所有元素的总和必须大于或等于输入值y。但是,删除最终列表中的任何元素都必须导致总和严格小于y

4) 应首选具有较少元件的配置

现在,在我看来,它类似于多约束背包问题,但是,有两个不同点,我不能真正把我的头绕过去(主要是桶和条件3)

问题

因为,我不想重新发明轮子

我的问题有名字和已知的解决方案吗

如果不是,哪一个是最接近的算法?我是否错过了一些明显的东西,使我的问题回到背包问题上

注意


理想情况下,我正在寻找C++(库/实例/分析),但我很乐意得到任何编程语言的引用。对于C++,GLPK和CBC虽然有可能是较低级别的风格。举个小例子怎么样?了解你的问题可能会有帮助。用例是什么?删除元素导致