小编urn*_*sam的帖子

使用背包变体的最佳MLB阵容

我正在编写一个程序,使用背包解决方案找到最佳的MLB阵容.为此,我传递了玩家数据,其中包含玩家计算的价值和工资.作为一个背包问题,工资将是我的"重量".

我的问题是无法选择球员,而是选择最佳阵容.我选择投手,中锋,一垒手,二垒手,三垒手,短暂停站和三名外野手.我能成功地做到这一点.我希望我的"体重"为36,000,但我目前只选择一个总共21,000的阵容.

这是我的背包代码:

CalculateLineUp.prototype.findOptimalLineUp = function(data, capacity) {
  var items = data.data;
  var idxItem   = 0,
      idxCapSpace = 0,
      idxPosition = 0,
      oldMax    = 0,
      newMax    = 0,
      numItems  = items.length,
      weightMatrix  = new Array(numItems+1),
      keepMatrix    = new Array(numItems+1),
      positionArray = new Array("P", "C", "1B", "2B", "3B", "SS", "OF", "OF", "OF"),
      solutionSet   = [];

  // Setup matrices
  for(idxItem = 0; idxItem < numItems + 1; idxItem++){
    weightMatrix[idxItem] = new Array(capacity+1);
    keepMatrix[idxItem]   = new Array(capacity+1);
  }

  // Build weightMatrix from [0][0] …
Run Code Online (Sandbox Code Playgroud)

javascript knapsack-problem multidimensional-array

6
推荐指数
1
解决办法
219
查看次数