早期的“赛事生成器”大多是这样工作的:用户输入队伍数量,系统生成一串随机队名,再把它们塞进一张淘汰赛或循环赛的表格里。这对办一场朋友间的小比赛足够了,但放到一个虚拟体育游戏里,问题马上出现:8支球队除了名字没有任何区别;第一轮和第二轮排出了同一对对手;某支队伍连续四场客场;决赛被排在一个只能容纳几百人的小球馆里。最近一段时间,从公开的研究方向和产品思路来看,赛事生成正在从“填一张对阵表”走向“生成一个有内部逻辑的赛事生态”:球队、赛制、赛程、场馆、天气乃至赛季叙事,都成了生成对象。

赛程编排本来就是一门“硬”学问

先说一个容易被忽视的事实:给真实体育联赛排赛程,从来不是随机排列。运筹学领域对这个问题研究了几十年。2001年,Easton、Nemhauser和Trick提出了“旅行锦标赛问题”(Traveling Tournament Problem),以美国职业棒球大联盟为背景,要求在双循环赛制下,在满足主客场连续场次等约束的同时,使各队总旅行距离最小;这个问题即使在队伍数量不多时也很难求得最优解,至今仍是组合优化的经典基准之一。

名为ITC2021的第五届国际排程竞赛则以体育赛程编排为主题,题目是为16到20支球队构建紧凑的双循环赛程,参赛算法需要满足一系列硬约束,并尽量减少违反软约束带来的惩罚。整数规划、约束规划和各类启发式方法在这一领域都有大量公开研究。

这些研究说明,一张“看起来能用”的赛程和一张真正合理的赛程之间,差着大量约束。AI赛事生成器要做的,首先是不把这些约束丢掉。

数学正确是底线,不是亮点

对任何赛事生成器来说,赛制本身的数学必须先对。8队单败淘汰赛,第一轮4场、半决赛2场、决赛1场,共7场,并且必须产生唯一冠军;单循环N队需要N(N-1)/2场,8队就是28场;双循环10队需要90场,每轮5场,共18轮。如果改成16队分4组、每组4队单循环,小组赛共24场,各组前两名进入8队淘汰赛再打7场,整个赛事共31场。

这些数字本身不难,难的是它们在用户修改时依然成立。用户把10队改成9队,双循环总场次从90场变为72场,轮数仍是18轮,但每轮只有4场,每轮都有一支球队轮空;如果系统只是删掉一支球队、不重排赛程,就会留下“和不存在的球队比赛”的空洞。在乐鱼体育的体育赛事生成器里,这类修改会触发整张赛程的重新求解和校验,而不是局部删除。

生成对象从“对阵表”扩展到联赛里的每个实体

当生成范围扩大,赛事生成器面对的不再是一张表,而是一组相互关联的实体:

  • 球队:至少需要名称、身份背景、战术风格、核心球员、优势和短板。8支球队如果强度完全相同,比赛结果就只剩随机;如果差距过大,赛季悬念在前几轮就消失了。
  • 场馆:容量、场地类型、所在城市、是否室内。决赛场馆需要满足容量要求,两支共用主场的球队不能在同一轮都安排主场比赛。
  • 天气与环境:对户外运动来说,雨天会影响场地摩擦和传球速度,雪天可能导致比赛延期。公开的世界模型研究中已经出现“可提示的世界事件”,例如在生成环境中改变天气,但把天气与比赛规则、赛程改期逻辑绑定,仍需要赛事系统自己完成。
  • 赛季叙事:宿敌对决、升班马、卫冕冠军。这些叙事标签会影响赛程安排的偏好,比如宿敌对决尽量放在赛季后半段。

关于球队这一层为什么不能只随机生成队名和队徽,可以参考AI生成球队的讨论。

生态之间的耦合:一个改动牵动多少东西

实体一多,耦合就来了。以一个10队双循环的模拟联赛为例:用户在赛季中途决定“把第12轮的比赛改到新建的室外球场,并加一场暴雨”。这个改动至少会引出一串检查:新球场是否是比赛双方之一的主场,如果不是,主客场平衡是否被打破;暴雨导致比赛延期的话,延期到哪一轮,两队在那一轮是否已经有比赛;延期后某支球队是否会出现三天内两场比赛;如果延期的是积分榜前两名的直接对话,赛季最后一轮的悬念是否受影响。

随机赛程生成器不需要回答这些问题,因为它的输出和其他实体没有关系。赛事生态生成器必须回答,因为它生成的每个对象都和其他对象挂着钩。这也是为什么在乐鱼体育的生成流程里,场馆和天气不是装饰性素材,而是会被赛程校验读取的参数。

对虚拟赛事创作者意味着什么

对普通创作者来说,这个趋势带来的直接变化是:一句“做一个10支球队的雨季足球联赛”可以得到一个更完整的初始版本,包含有区别的球队、分配好的主场、考虑天气的赛程和默认的积分规则。但同时,创作者需要面对更多默认值。系统替他决定了哪支队是强队、哪个球场是决赛场地、暴雨延期规则是什么,这些默认值必须显示出来并允许修改,否则“生成得更多”反而意味着“藏起来的假设更多”。

另一个变化是版本管理变得更重要。赛程V1是一个平衡的双循环,V2加入了天气事件,V3因为用户换了两个场馆而重排。任何一个版本出现问题,都应该能回到上一个合法版本,而不是在一张改乱的表格上继续修补。

仍未解决的问题

  • “公平”如何量化:主客场分布、休息天数、强弱对手的出场顺序,各种公平指标之间可能互相冲突,很难用单一指标概括,取舍往往需要创作者自己决定。
  • 球队强度的平衡:生成的球队需要有差距又不能差距过大,而强度参数和模拟比赛结果之间的关系需要大量模拟才能校准。
  • 叙事与约束的冲突:用户希望“最后一轮是冠军争夺战”,但赛程约束下这未必总能实现,系统该如何告知和取舍仍是开放问题。
  • 中途修改的稳定性:赛季进行到一半时的改动,如何在不影响已完成比赛的前提下重排剩余赛程。

参考与说明

文中关于旅行锦标赛问题、ITC2021体育赛程竞赛和世界模型天气事件的信息来自公开发表的研究与官方资料,乐鱼体育相关的联赛规模、场次和修改场景均为模拟示例。