Açgözlü bir algoritma bozuk para değişim problemini ne zaman çözebilir?


24

Verilmiş olan ve v değerlerine sahip bir madeni para seti göz önüne alındığında v değerini temsil etmek için gereken en az sayıda madeni para bulmak istersiniz.c1,...,cn

Örneğin, 1,5,10,20 madeni para birimi için bu, toplam 19 için 6 ve 6 için toplam 2 madeni para verir.

Asıl sorum şu: Bu sorunu çözmek için açgözlü bir strateji ne zaman kullanılabilir?


Bonus puanları: Bu ifade doğru yanlış mı? (Kimden: Asgari para değişim problemi için açgözlü algoritmanın yeterli olup olmadığını nasıl anlarsınız? )

Bununla birlikte, bu yazının açgözlü algoritması ilk en büyük ikinci en büyük ikinci değer için çalışıyorsa, o zaman hepsi için işe yaradığını ve sadece kontrol etmek için en uygun DP algoritmasına karşı açgözlü algoritmayı kullanmanızı önerdiğini kanıtlamaktadır. http://www.cs.cornell.edu/~kozen/papers/change.pdf

Ps. Bu konudaki cevapların inanılmaz derecede kırılgan olduğunu unutmayın - bu yüzden soruyu tekrar sordum.


İçin ikili sırt çantası sorun, kolay formüle ölçüt vardır: Algoritma sorunu çözer tüm mezhepleri için ise . Bozuk para değişimi için kolay değil (isteğe bağlı integral değişkenleri olan sırt çantası). Dergi, Nemhauser ve Trotter fuarına mı ihtiyacınız var? cben>Σj=1ben-1cj
Dmitri Chubarov

2
Dexter Kozen tarafından yazılan bildiride, açgözlü algoritma tüm için en uygun olanı kabul ederse , o zaman keyfi v için en uygun çözümü verecektir . Bu açıklamada yanlış bir şey görmüyorum. v<cn-1+cnv
Dmitri Chubarov

@Dmitri Chubarov Teşekkürler, şimdi bonusun nasıl çalıştığını anlıyorum. Güçlü indüksiyona benziyor mu? Diğer sorunuzla ilgili olarak, bir çözüm içeren bir cevap ve tercihen bir kanıt istiyorum.
Unfun Kedisi

Soruyu değiştireceğim ve eğer kimse atlamazsa, MNT'yi haftasonu birkaç örnekle özetleyin.
Dmitri Chubarov

Ayrıca bu soruya bakınız ; özellikle, Shallit ile bağlantılı kağıt ilgi çekici olabilir.
Raphael

Yanıtlar:


13

Açgözlü algoritma tarafından değiştirilen verilen para sayısı tüm miktarlar için en uygun ise bir para sistemi kanoniktir .

Kağıt D. Pearson. Değişim Yapma Problemi için Polinom Zaman Algoritması. İşlemler Araştırma Mektupları, 33 (3): 231-234, 2005 , bir madeni para sisteminin kanonik olup olmadığına karar vermek için bir algoritması sunar , burada n , farklı türdeki paraların sayısıdır. Özetten:O(n3)n

Daha sonra en küçük karşı örneği içermesi gereken bir olası değerleri türetiriz. Her test edilebilir , O ( n ) , bize veren, aritmetik işlemler O ( n, 3 ) algoritması.O(n2)O(n)O(n3)

Kağıt oldukça kısa.

cc

O(n2)n

Bu soru sorusunda da bazı tartışmalar var .


Teşekkürler. Sorunun düşündüğümden çok daha fazla ilgisi olduğunu görüyorum - Sanırım gerçek kriterleri neden bulamadınız? Benim fikrim, "bütün paralar birbirinin katıysa, açgözlü algoritmanın en iyi sonucu verir" açıkçası çok basitti.
Unfun Kedisi

Asıl kriterleri göndermedim, çünkü önceden hatırlamıyordum ve kağıdı tekrar okuyacak vaktim yoktu. Elbette cevabımı düzenlemek için çekinmeyin.
Mark Dominus

Cevabı ve makaleyi birkaç kez okudum, ancak insan tarafından okunabilecek kriterleri bulamadım canonical coin system. Örnek, örneğin önerilen sistemin nasıl test edileceği çok iyi olurdu1,5,10,20
The Godfather
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.