我想爲這個問題想出一個合理的算法:這個問題NP-hard?
假設你有一堆球。每個球至少有一種顏色,但也可以是多彩的。每個球上還有一個數字。還有一堆只有一種顏色的盒子。我們的目標是最大限度地提高盒中的球數的總和,唯一的規則是:
- ,以便放置一個球在一個盒子裏,它 必須至少有框的顏色
- 您只能在每個 框中放置一個球。
例如,您可以將藍色和綠色的球放入藍色框或綠色框中,但不能放入紅色框中。
我已經想出了一些優化,在運行時間方面有很大幫助。例如,您可以按照點值的降序排列球。然後,當你從最高到最低,如果球只有一種顏色,並且沒有其他高點球含有這種顏色,你可以把它放在那個盒子裏(並且因此從那個盒子中移除那個盒子和那個球)其餘組合)。
我只是好奇是否有這種類型的問題的動態算法,或者如果它只是旅行推銷員問題的僞裝。如果我知道最多隻有X種顏色,會有幫助嗎?任何幫助是極大的讚賞。謝謝!
編輯 - 這裏有一個簡單的例子:
球:
- 1紅球 - 5分
- 1個藍色球 - 3分
- 1綠/紅球 - 2分
- 1綠色/藍色球 - 4分
- 1紅/藍色球 - 1點
盒:
- 1紅
- 1藍
- 1綠色
最優解:
- 紅球在紅色框
- 藍色球在藍色框
綠色/藍色球在綠色框
總價值:12分(5 + 3 + 4)
由於所有的球都有一個盒子,所有的組織都有相同的分值,對吧?或者我錯過了什麼? – TaslemGuy 2010-10-03 00:03:33
您能否詳細說明「最大限度地提高箱子中所有人數的總和」。你想最大化一個盒子嗎?你總是使用所有可用的球嗎? – JoshD 2010-10-03 00:04:30
你想要優化什麼?特定框中的值總和?所有盒子上的數值總和? – liori 2010-10-03 00:04:51