すみません、数学関係で、組み合わせ最適問題について教えてください。
ナップザック問題の派生のような感じなのですが。

ナップザックにN個荷物を入れるが、荷物はN種類のジャンルから1つずつ入れないといけない。
N種類のジャンルにはそれぞれ複数個の候補の荷物があり、それぞれ重さ、価値が決まっている。
このとき、

�@ナップザックに入れられる物の重さは制限以下にする。
�Aナップザックに入れる物の価値は出来るだけ高くしたい。
�Bナップザックに入れる際に、各ジャンルから1つずつ荷物を入れる。

という条件で、最適な組み合わせを求めるやり方を教えていただきたいのです。
線型計画法とか、Genetic Algorithmとかで解くのかなと思いますが、
どうも、年のせいか、数学がわからなくなってしまいまして。