อัลกอริทึมโลภสามารถแก้ไขปัญหาการเปลี่ยนเหรียญได้เมื่อใด


24

ให้ชุดเหรียญที่มีค่าแตกต่างกันและค่า v คุณต้องการค้นหาจำนวนเหรียญที่น้อยที่สุดที่จำเป็นในการแทนค่า vc1,...,cn

เช่นสำหรับชุดเหรียญ 1,5,10,20 สิ่งนี้ให้ 2 เหรียญสำหรับผลรวม 6 และ 6 เหรียญสำหรับผลรวม 19

คำถามหลักของฉันคือเมื่อสามารถใช้กลยุทธ์โลภเพื่อแก้ปัญหานี้ได้อย่างไร


คะแนนโบนัส: ข้อความนี้ไม่ถูกต้องธรรมดาหรือไม่ (จาก: จะทราบได้อย่างไรว่าอัลกอริทึมโลภเพียงพอสำหรับปัญหาการเปลี่ยนเหรียญขั้นต่ำหรือไม่ )

อย่างไรก็ตามบทความนี้มีข้อพิสูจน์ว่าหากอัลกอริทึมโลภใช้ได้กับค่า denom ที่ใหญ่ที่สุด + ค่า denom ที่ใหญ่เป็นอันดับสองมันก็ใช้ได้กับมันทั้งหมดและมันแสดงให้เห็นเพียงแค่ใช้อัลกอริธึมโลภเทียบกับอัลกอริธึม DP ที่เหมาะสมที่สุด http://www.cs.cornell.edu/~kozen/papers/change.pdf

ps โปรดทราบว่าคำตอบในหัวข้อนั้นพังอย่างไม่น่าเชื่อ - นั่นคือเหตุผลที่ฉันถามคำถามใหม่


สำหรับเป้ไบนารีปัญหามีเกณฑ์สูตรได้อย่างง่ายดาย: ธึแก้ปัญหาถ้าทุกนิกายc_j ไม่ใช่เรื่องง่ายสำหรับการเปลี่ยนเหรียญ (เป้สะพายหลังที่มีตัวแปรอินทิกรัลตามอำเภอใจ) คุณต้องการนิทรรศการของนิตยสาร Nemhauser และ Trotter หรือไม่? ci>Σj=1i1cj
Dmitri Chubarov

2
คำสั่งในกระดาษโดยเด็กซ์เตอร์โคเซนบอกว่าถ้าธึมเห็นด้วยกับการที่ดีที่สุดสำหรับทุกแล้วมันจะให้ทางออกที่ดีที่สุดสำหรับพลวีฉันเห็นอะไรผิดปกติกับคำสั่งนี้ v<cn1+cnv
Dmitri Chubarov

@Dmitri Chubarov ขอบคุณตอนนี้ฉันเข้าใจว่าโบนัสทำงานอย่างไร มันคล้ายกับการเหนี่ยวนำที่แข็งแกร่ง? สำหรับคำถามอื่น ๆ ของคุณฉันต้องการคำตอบที่ให้คำตอบและเป็นข้อพิสูจน์
Cat Unfun

ฉันจะถอนรากถอนโคนคำถามและถ้าไม่มีใครกระโดดเข้ามาสรุป MNT ด้วยตัวอย่างเล็ก ๆ น้อย ๆ ในช่วงสุดสัปดาห์
Dmitri Chubarov

ดูคำถามที่เกี่ยวข้องนี้ด้วย; โดยเฉพาะอย่างยิ่งกระดาษที่เชื่อมโยงโดย Shallitอาจเป็นที่สนใจ
กราฟิลส์

คำตอบ:


13

ระบบเหรียญเป็นที่ยอมรับถ้าจำนวนเหรียญที่มอบให้มีการเปลี่ยนแปลงโดยอัลกอริทึมโลภที่ดีที่สุดสำหรับจำนวนทั้งหมด

กระดาษD. Pearson อัลกอริทึมเวลาพหุนามสำหรับปัญหาการเปลี่ยนแปลง Operations Reseach Letters, 33 (3): 231-234, 2005เสนออัลกอริทึมสำหรับการตัดสินใจว่าระบบเหรียญเป็นที่ยอมรับหรือไม่โดยที่คือจำนวนเหรียญที่แตกต่างกัน จากนามธรรม:O(n3)n

จากนั้นเราจะได้รับชุดของค่าที่เป็นไปได้ซึ่งจะต้องมีตัวอย่างที่เล็กที่สุด แต่ละคนสามารถทดสอบด้วยการดำเนินการทางคณิตศาสตร์ทำให้เรามีอัลกอริทึมO(n2)O(n)O(n3)

กระดาษสั้นมาก

สำหรับระบบเหรียญที่ไม่ใช่บัญญัติมีจำนวนซึ่งอัลกอริทึมโลภสร้างจำนวนเหรียญที่ไม่ดี เรียกว่าcounterexample ระบบเหรียญแน่นถ้าตัวอย่างที่เล็กที่สุดของมันใหญ่กว่าเหรียญเดียวที่ใหญ่ที่สุดcc

กระดาษCanonical ระบบเหรียญสำหรับการเปลี่ยนแปลงการทำปัญหาให้เงื่อนไขที่จำเป็นและเพียงพอสำหรับระบบเหรียญถึงห้าเหรียญที่จะเป็นที่ยอมรับและขั้นตอนวิธีการสำหรับการตัดสินใจไม่ว่าจะเป็นระบบเหรียญตึงตัวของเหรียญเป็นที่ยอมรับO(n2)n

นอกจากนี้ยังมีการอภิปรายในคำถาม se.mathนี้


ขอบคุณ ฉันเห็นคำถามเกี่ยวข้องมากกว่าที่ฉันคิด - ฉันเดาว่านั่นเป็นเหตุผลที่คุณไม่โพสต์เกณฑ์จริง ความคิดของฉันที่ว่า "ถ้าเหรียญทั้งหมดเป็นทวีคูณของอัลกอริทึมโลภให้ผลลัพธ์ที่ดีที่สุด" เห็นได้ชัดว่าง่ายเกินไป
Cat Unfun

ฉันไม่ได้โพสต์เกณฑ์จริงเพราะฉันจำไม่ได้ทันทีและฉันไม่มีเวลาอ่านรายงาน แน่นอนคุณควรรู้สึกฟรีเพื่อแก้ไขคำตอบของฉัน
ทำเครื่องหมาย Dominus

ผมอ่านคำตอบและคู่บทความครั้ง แต่ผมก็ไม่สามารถที่จะหามนุษย์สามารถอ่านได้canonical coin systemตามเกณฑ์ของ มันจะดีถ้าคุณสามารถเพิ่มตัวอย่างเช่นวิธีทดสอบระบบที่แนะนำ1,5,10,20
The Godfather
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.