簡體   English   中英

Objective-C中的多維背包編碼

[英]multidimensional knapsack coding in objective-c

我在這里是新手,因此請盡我最大的努力與本網站的精神相提並論,提出詳細的問題。

我正在Objective-C上研究多維背包問題的算法,其中用戶確定的約束條件有很多。 在這種情況下,棒球運動員:

我想解決基於以下條件的累積約束從玩家數據庫創建列表:

  • 薪水(等於或接近一億)

  • 本壘打(總數等於或接近150)

  • RBI(等於或接近200)

和是或否選擇

  • 30歲以上/未滿:是或否
  • 在美國境外出生:是或否

我很幸運能找到有關一個簡單背包問題的編碼幫助,該問題涉及2個維度(權重和價值),但沒有找到更多有關多個維度的答案的方法。

有人可以為我提供一些建議嗎? 先感謝您。

如果您有很多約束,那么表達和解決此問題的最佳方法可能是使用整數線性程序(您可以在線查找)。 首先將每個維度除以目標總和,以使每個目標總和為1.0。 然后為每個玩家定義一個變量Xi,該變量Xi可以是0或1(即大於或等於0且小於或等於1),如果包括了玩家i,則變量1,如果不包括玩家i,則變量0。 然后,對於每個維度(薪水,本壘打,打點等),令Ci為玩家i的歸一化值。 然后,對於每個維度,約束C1X1 + C2X2 + ... + CnXn <= 1.0。 為了使整體盡可能接近目標值,您希望在所有參與者和所有維度上最大化所有條款CiXi的總計。 在線有整數線性規划求解器可用,有些是免費的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM