这是我的问题:
桶里有N个网球运动员
他们每周都打比赛
每个玩家都有其桶中可能的对手列表
每位玩家指定:
周一 8 点,1,2 和 3 号球场 周二 10 点法庭 2 等等
我需要构建算法来创建优化的时间表:
嗨,
我这里需要什么样的算法?是线性规划模型还是其他模型?
在理想的世界中 - 我会用 json 构建模型并将其发送到一些云优化引擎(如 Gurabi)以获取解决方案。或者您建议的任何其他工具。
谢谢 达科
首先要做的是检查是否有可行的解决方案。您需要检查每个玩家的可能对手是否共享在有场地的情况下可以比赛的时间。
现在你有了一个代理任务分配问题,可以使用最大流算法来解决(https://en.wikipedia.org/wiki/Maximum_flow_problem)。
“任务”是可行性检查发现的对手对和时间组合
“代理人”就是法庭时间。
当然,必须调整最大流算法的应用以包含您问题的特殊约束。
每个玩家至少玩一次
开箱即用的算法将优化所玩游戏的总数,即使有些玩家没有玩。建议:在没有此约束的情况下运行算法并检查没有进行游戏的玩家。强制这些玩家玩游戏,并从问题中删除玩家和所用的球场时间,然后重新运行算法
根据不同的标准优先考虑某些玩家
我不知道这意味着什么。如果玩家 A 被“优先”而玩家 B 不是,那么 A 和 B 的处理方式有何不同?
优先考虑某些时间
我知道这意味着什么。如果周三上午是“优先”的,但周三下午不是,这有什么区别?