Проблема рюкзака с весом предмета в зависимости от выбранных предметов - PullRequest
0 голосов
/ 24 сентября 2018

Предположим, есть students[] с ages[], subjectsFailed[] и subjectsTaken[].Предположим, что показатель качества для каждого учащегося составляет subjectsFailed[i]/subjectsTaken[i].Мне нужно выбрать учеников так, чтобы сумма их возрастов была максимальной, учитывая, что averageQualityIndex <= x, где

averageQualityIndex = ∑subjectsFailed[k]/∑subjectsTaken[k], где k - выбранные ученики.

В обычных задачах по ранцу веса не зависят,Но в этом случае средний вес будет зависеть от количества студентов, отобранных до настоящего времени, и их соответствующих весов.Есть ли способ, которым я могу решить это (наилучшее из возможных решений) с помощью рюкзака, или есть какой-то другой способ решения этой проблемы (если да, то каким способом?).

1 Ответ

0 голосов
/ 24 сентября 2018

Вы хотите удовлетворить ограничение ∑subjectsFailed[k]/∑subjectsTaken[k] <= x.

Умножая обе стороны на ∑subjectsTaken[k], это становится ∑subjectsFailed[k] <= x.∑subjectsTaken[k].

Перестановка мы находим ∑(subjectsFailed[k]-x.subjectsTaken[k]) <= 0 или ∑weights[k] <= 0 гдеweights[k] = subjectsFailed[k]-x.subjectsTaken[k].

Таким образом, с этим определением весов это снова становится проблемой ранца.

...