私は動的プログラミングを勉強しており、次の問題を解決しようとしています。
X と Y の寸法 (X と Y は正の整数) の長方形の布と、その布を使用して作成できる n 個の製品のリストが与えられます。[1,n] の各製品 i について、寸法 ai x bi の布の長方形が必要であり、製品の最終販売価格が ci であることを知っています。ai、bi、および ci はすべて正の整数であると仮定します。長方形の布を縦または横に 2 つに切断できる機械があります。X x Y の布を裁断して得られる布から作られた製品の販売価格の合計が最大になるように、布を裁断するための最適な戦略を見つけるアルゴリズムを設計します。特定の製品のコピーを好きなだけ自由に作成できます。必要に応じてコピーを作成することもできません。(Dasgupta、Papadimitriou、および Vazirani による Algorithms から。)
2 次元のナップザック問題のようなものがあるようですが、重みを長方形の面積と見なすことで、従来のナップザック アルゴリズムで解決できるのではないかと考えています。これは合理的なアプローチのように思えますか?
これは私が受講しているコースのプログラミング課題です。概念的な議論やアイデアを説明するための疑似コードのみを含めてください。