我必须解决以下问题,基本上是选择最好的组合(可能的)(巨大的) - 我必须从可能的球员中挑选出最好的足球队,每个球员都得到一个分数,我必须选择选定球员总得分最高的球队。
我可以选择对球员有限制:最多我只能从俱乐部中挑选N(= 2)球员。例如,如果我选择G1(来自切尔西)作为守门员,那么切尔西只剩下1个位置。
说我必须选择最好的阵型1-4-4-2
守门员(1):g1,g2,g3,g4 ...(此位置的球员姓名,他们的分数相应地为gc1,gc2,gc3,gc4 ...)
防御者(4):d1,d2,d3,......
中场(4):m1,m2,m3,......
攻击者(2):s1,s2,s3,s4,...
我可以在这里使用什么算法?我正在看所谓的匈牙利算法: http://en.wikipedia.org/wiki/Hungarian_algorithm
但它看起来很复杂,不确定这种情况是否有用。
非常感谢任何帮助。
最佳,
答案 0 :(得分:2)
它可以通过minimum-cost flow problem解决,这是匈牙利算法解决的问题的概括。
创建一个网络,其中(1)每个俱乐部一个节点(2)每个玩家一个节点(3)每个打开位置一个节点。每个俱乐部节点获得两个流量单位,并且每个开放位置节点下沉单位,但是需要该位置的许多玩家。每个这样的关系都有俱乐部到球员的弧线,容量为1,成本为零。还有玩家到开放位置的弧线,其容量为1且成本等于玩家在该位置的值的减值(如果在幻想的美式足球中存在“弯曲”点,则涉及一个玩家的多个这样的弧是可能的)。 / p>
找出价值十一的最小成本积分流。每个玩家用作零或一个流量单位的过境。最好的团队由后者组成。