物品的重量取决于所选物品的背包问题

时间:2018-09-24 20:20:56

标签: algorithm dynamic-programming knapsack-problem

假设存在students[]ages[]subjectsFailed[]subjectsTaken[]。假设每个学生的质量指数为subjectsFailed[i]/subjectsTaken[i]。我需要选择学生,以便考虑到averageQualityIndex <= x其中

averageQualityIndex = ∑subjectsFailed[k]/∑subjectsTaken[k],其中k是所选的学生。

在正常的背包问题中,权重是独立的。但是,在这种情况下,平均体重将取决于到目前为止选择的学生人数及其各自的体重。有没有办法可以用背包解决这个问题(最好的解决方案),或者有其他方法可以解决这个问题(如果可以的话,那是什么方法?)。

1 个答案:

答案 0 :(得分:2)

您要满足约束{ "spec_dir": "bin/test", "spec_files": [ "**/*[sS]pec.js" ], "stopSpecOnExpectationFailure": false, "random": false }

∑subjectsFailed[k]/∑subjectsTaken[k] <= x乘以两边,就变成∑subjectsTaken[k]

重新排列我们发现∑subjectsFailed[k] <= x.∑subjectsTaken[k]∑(subjectsFailed[k]-x.subjectsTaken[k]) <= 0,其中∑weights[k] <= 0

因此,按照这种权重定义,它又成为背包问题。