貪欲なアルゴリズムはいつコイン交換の問題を解決できますか?


24

異なる金種および値v のコインのセットが与えられた場合、値vを表すのに必要な最小数のコインを見つけたいと考えます。c1,...,cn

たとえば、コインセット1,5,10,20の場合、合計6の場合は2コイン、合計19の場合は6コインになります。

私の主な質問は、この問題を解決するために貪欲な戦略をいつ使用できるかということです。


ボーナスポイント:この文は明らかに間違っていますか?(From:最小コイン変更問題に対して貪欲なアルゴリズムで十分かどうかを見分ける方法は?

ただし、この論文では、欲張りアルゴリズムが最初の最大値と2番目に大きい値に対して機能する場合、それらすべてに対して機能するという証拠があり、それをチェックするために欲張りアルゴリズムと最適なDPアルゴリズムを使用することを提案します。 http://www.cs.cornell.edu/~kozen/papers/change.pdf

追伸 そのスレッドの答えは信じられないほどぎこちないことに注意してください。そのため、私は新たに質問をしました。


以下のためにバイナリナップザック問題容易に製剤化基準がある:貪欲アルゴリズムは、すべての金種のための場合、問題を解決する。コインの交換は簡単ではありません(任意の整数変数を持つナップサック)。Magazine、Nemhauser、Trotterの博覧会が必要ですか?ci>Σj=1i1cj
ドミトリチュバロフ

2
Dexter Kozenの論文の文は、貪欲なアルゴリズムがすべてのの最適値と一致する場合、任意の最適解を与えると述べています。私はこの声明に何の問題もありません。v<cn1+cnv
ドミトリチュバロフ

@Dmitri Chubarovおかげで、ボーナスqがどのように機能するのか理解できました。強い誘導に似ていますか?あなたの他の質問については、解決策とできれば証拠を提供する答えが欲しいです。
不愉快な猫

質問に賛成します。誰も参加しない場合は、週末にいくつかの例を挙げてMNTを要約します。
ドミトリチュバロフ

この関連する質問も参照してください。特に、Shallitによるリンクされた論文は興味深いかもしれません。
ラファエル

回答:


13

貪欲アルゴリズムによって変化で与えられたコインの数がすべての量に対して最適である場合、コインシステムは正規です。

O(n3)n

O(n2)O(n)O(n3)

論文はかなり短い。

cc

O(n2)n

このse.mathの質問にはいくつかの議論もあります。


ありがとう。質問は私が思っていたよりもはるかに複雑だと思います-それがあなたが実際の基準を投稿しなかった理由だと思いますか?「すべてのコインが互いの倍数である場合、貪欲なアルゴリズムが最適な結果をもたらす」という私の考えは明らかに単純すぎました。
不愉快な猫

私は実際の基準を投稿しませんでした。なぜなら、私はすぐに思い出せず、論文を読み直す時間もなかったからです。もちろん、私の回答を自由に編集してください。
マークドミナス

答えと記事を数回読みましたが、の人間が読める基準を見つけることができませんでしたcanonical coin system。あなたは例を追加することができればそれは、つまり、どのようにテストすることが提案システムは素晴らしいことだ1,5,10,20
ゴッドファーザー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.