2014-11-15 28 views
1

团队定义这是什么样的背包模拟?组建最佳团队

一个团队由一组玩家组成。每个球员都有一个位置,球队必须在每个位置都有一个给定的号码。例如在足球比赛中,可能会有1个QB,2个WR,2个RB,1个TE和5个OL。

优化团队的定义

每个玩家既具有贡献和价格。一个最佳团队在保持最高价格(工资上限)的同时最大化贡献,但仍填充每个角色。再次就足球而言,这可能意味着您必须必须正好 1 QB,3 WR,2 RB和1 TE。

我的问题

我需要考虑玩家的数量不是特别大。我试图建立的团队由1个QB,3个WR,2RB和1个TE组成,其中有20个QB,97个WR,60个RB和29个TE(总计206个玩家)。如果仅仅是找到一个价格最高的组,那么这就是0/1背包问题。

现在让我们说我需要找到7个玩家的最佳组合(保持总价)。这会使这个问题非常类似于多维背包问题,因为每个玩家可以被赋予1的权重,所以这个群体权重将必须是< = 7 价格应该保持在最大价格下。然而,必要的条件就是正是 7球员使事情变得复杂。很有可能如果你选择较少的球员,你可以获得比使用的球员更高的价值。

最终的约束使事情进一步复杂化。同样可以说它与多维背包问题类似,因为你可以为每个位置分配4个维度,然后多维重量将确定玩家的位置,例如, p(12, $10000, 0, 1,0,0)可以代表价值12的玩家;价格1万美元;并且是WR。那么约束条件是团队的最终分量必须是<= w(MAX_PRICE, 1, 3, 2, 1)。除此之外,它应该是,确切地说等于确定谁在队中的权重,不小于或等于这些限制。

那么,什么是我的问题

我的问题仍然是什么类型的问题是这样的,以及是否有解决这些问题的“标准”的算法。看起来这不是一些奇怪的古怪问题,它似乎与背包问题非常相似,因此我假设已经进行了研究。我正在寻找关于这个问题的信息(首先是什么)和/或涉及这类问题的研究论文。

+0

你的问题到底是什么?你在寻找一个描述你的问题的名字,对于某些输入大小的一个好的算法,等等? – arghbleargh

+0

@arghbleargh是的,我正在寻找一个描述这类问题的名称。假设问题已经被命名,那么我可以找到一个好的算法(或者可能没有好的算法)。这显然是“最普通的背包问题”的一些变体,我们将物品放入箱中,并且对有效清单可能存在“许多”限制。我在问1)是否存在这样的概括,我可以在哪里找到关于它的信息,或者2)如果不是,这种情况是对背包问题的已知概括的组合或甚至特例吗?希望澄清? – Jared

+0

@arghbleargh在底部,我尝试推测可能的“已知”背包问题,这可能是......如果这有帮助的话,也就是说它是一个** [多目标背包问题](http://en.wikipedia .org/wiki/Knapsack_problem#Multi-objective_knapsack_problem)**(我想也许,但我不确定),一个** [多背包问题](http://en.wikipedia.org/wiki/Knapsack_problem#Multiple_knapsack_problem )**(我不认为这是),** [bin装箱问题](http://en.wikipedia.org/wiki/Bin_packing_problem)**(我认为不是这样),或者那些(或其他)方法的组合(我不确定)? – Jared

回答

2

假设没有玩家值得为两个可能的玩家类别中的任何一个值得雇佣,您应该能够使用伪多项式背包逼近的变体。缩放和舍入价值或成本价值将其转化为整数。然后逐个查看玩家课程。在每个阶段,您都会追踪每种可能成本所能达到的最高价值,或者每种可能价值所能达到的最低成本,具体取决于您是否缩放并舍入了成本或价值 - 通过缩放和四舍五入确保那里只是可控数量的不同成本或价值。

您从零成本和零价值开始。在每个阶段结束时,您知道每种可能成本的最高价值,或每种可能价值的最低成本。通过考虑该玩家等级的所有选项,为包含该玩家指定数量的球队制定新的最高/最低成本。最后,您对每项成本都有最高的价值或每项价值最低的成本,而您的答案就是实惠。如果知道这个答案,您可以使用之前存储的信息来追踪整个团队的选择。

相关问题