タグ付けされた質問 「knapsack-problem」

4
ナップサック問題が疑似多項式であるのはなぜですか?
KnapsackDPによって解決できる一方で、それはNP完全であることを私は知っています。彼らは、DPソリューションはpseudo-polynomial「入力の長さ」(つまり、入力をエンコードするために必要なビット数)で指数関数的であるため、であると言います。残念ながら、私はそれを取得できませんでした。誰かpseudo-polynomialが私にそのことをゆっくり説明できますか?

2
フィールドに基づいてオブジェクトの大きなリストの最も効率的な組み合わせを取得します
特定の予算と組み合わせの上限を考慮して、星の数を最大化しようとしています。 質問の例: 500ユーロの予算で、許可された最大数以下のレストランのみを訪れ、食事を取り、可能な限り多くの星を集めます。 最大10個のレストランの100万のRestaurantインスタンスを処理できる可能性のある効率的なアルゴリズムを作成しようと思っています。 これは私が昨日質問した質問のクロスポストです: Java:フィールドに基づいてオブジェクトの大きなリストの最も効率的な組み合わせを取得してください 以下の解決策では、r8レストランにスターごとに15 $を割り当てます。つまり、リストを生成するとき、リストに最初にそれを入れ、残りの70 $では、さらに4つ星を与える2つだけのスターを取得できます。ただし、r8レストランをスキップするのに十分なほど賢い場合は(星あたりの最高のドルの比率ですが)、r1100ドルのコストと5つ星であるため、実際にはレストランの方が予算に適しています。 誰かが問題を試し、現在の解決策を打つのを手伝ってくれる? import itertools class Restaurant(): def __init__(self, cost, stars): self.cost = cost self.stars = stars self.ratio = cost / stars def display(self): print("Cost: $" + str(self.cost)) print("Stars: " + str(self.stars)) print() r1 = Restaurant(100, 5) r2 = Restaurant(140, 3) r3 = …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.