NBA 常规赛赛程安排建模和算法初探一、 NBA 赛制的问题描述NBA(National Basketball Association)是美国国家职业篮球比赛它是全世界篮球爱好者们最钟爱的一项赛事,姚明、易建联加盟 NBA 以后,中国球迷更加热爱这项运动,我就是火箭队的忠实球迷NBA 目前共有 30 支球队,分为两个联盟,即东部联盟和西部联盟每个联盟各有三个赛区,共六个赛区每个赛区有五支球队,即 5 支球队 Х 6 个赛区 = 30 支球队NBA 比赛分为常规赛、季后赛和总决赛每个球队在常规赛里都要参加 82场比赛,一般是从每年的 10 月底到第二年的 4 月中旬,历时 165 天常规赛结束后,两个联盟分别选出排在前八名的 8 支球队参加季后赛在季后赛里,东部赛区的冠军和西部赛区的冠军进行总决赛,最后决出 NBA 冠军如何安排 NBA 比赛的赛程,使对各支球队都尽量公平呢一方面,要使得各支球队能够在一定的比赛周期内,每两场比赛中间间隔的休整时间比较均等;另一方面,赛程安排中尽量不要出现在某些天比赛场次过多的情况,以防运动员因为消耗体力太大,影响比赛结果我一直对 NBA 比赛非常感兴趣,因为这些比赛非常好看。
所以我对 NBA的赛制规则非常了解,也一直在猜测 NBA 联盟委员会是以什么原则安排比赛赛程的这篇论文总结了我在 NBA 赛程安排方面做的一些探讨研究本论文只描述常规赛的赛制和赛程安排在常规赛里,NBA 的 30 支球队,每只球队要参加 82 场比赛,因为每场比赛有两支球队对抗,所以共有(82 Х 30)÷ 2 = 1230 场比赛每支球队都要与其余的 29 支球队进行 82 场比赛,具体规则是这样的:1、 每支球队要与同一个赛区的另外 4 支球队各比赛 4 场,两场主场,两场客场所以与同一个赛区的球队共有 4 Х 4 = 16 场比赛2、 每支球队要与不同联盟的另外 15 支球队各比赛 2 场,一场主场,一场客场所以与不同联盟的球队共有 2 Х 15 = 30 场比赛3、 每支球队要与同一联盟不同赛区的另外 10 支球队中的 6 支各比赛 4 场,两场主场,两场客场;10 支球队中的 4 支各比赛 3 场,两场主场,一场客场,或一场主场,两场客场所以与同一联盟不同赛区的球队共有 (4 Х 6)+(3 Х 4) = 36 场比赛对于要与同一联盟不同赛区的另外 10 支球队中的 4 支各比赛 3 场的情况,比赛规则是:设同一联盟的三个赛区分别为 P,Q,R,P 赛区的第 1 支球队与1) Q 赛区的第 2 支球队和第 4 支球队进行 3 场比赛2) R 赛区的第 3 支球队和第 5 支球队进行 3 场比赛二、 NBA 赛程安排的问题与假设为了让赛程安排尽可能公平,在建立 NBA 赛程安排的模型和算法时,希望能满足以下条件:1. 每支球队不能一天比赛两场2. 每支球队的两场比赛之间尽可能地间隔一天3. 赛程安排尽可能对每支球队公平,即各球队比赛平均间隔的天数尽可能接近NBA 赛程安排的假设:1. 由于每一支球队都有自己的球场,所以安排比赛不需要考虑球场问题。
即 30 支球队可以在同一天比赛,也可以说一天最多可以安排 15 场比赛2. 因为不考虑球场,所以主场和客场比赛是对等的,在赛程安排中也不需要考虑主客场问题另外,因为每支球队要在 165 天里比赛 82 场,所以平均每两天至少要比赛一场三、 建立模型和算法的准备根据 NBA 赛制的描述, 30 支球队分别表示为:设东、西两个联盟分别表示为 E(Eastern)和 W(Western);东部赛区 E 的三个赛区分别表示为:Ea ,Eb,Ec西部赛区 W 的三个赛区分别表示为: Wa,Wb,Wc 东部赛区 E 的三个赛区的 15 支球队分别表示为:Ea1, Ea2, Ea3,Ea4, Ea5Eb1, Eb2, Eb3,Eb4, Eb5Ec1,Ec2 ,Ec3 ,Ec4,Ec5西部赛区 W 的三个赛区的 15 支球队分别表示为:Wa1,Wa2,Wa3,Wa4,Wa5Wb1,Wb2,Wb3,Wb4,Wb5Wc1,Wc2,Wc3,Wc4,Wc5赛制规则 1 定义为规则 A,即每支球队与同赛区的球队进行 16 场比赛赛制规则 2 定义为规则 B,即每支球队与不同联盟的球队进行 30 场比赛赛制规则 3 定义为规则 C,即每支球队与同联盟不同赛区的球队进行 36 场比赛。
第 i 支球队用 Ti(Team)表示,用于表示赛程安排的比赛次序两支球队比赛的场数用(数字)表示例如:规则 A,T1 支球队与 Ea 赛区的其余 4 支球队各比赛(4)场;规则 B,T1 与 Wa、Wb、Wc 赛区的 15 支球队各比赛(2 )场;规则 C,T1 与 Eb、Ec 赛区的 10 支球队各比赛(3 )场或(4)场赛程安排的比赛时间用数字表示,即 date = i,其中 i=1,2 ,…,165表示比赛安排在第 i 天四、 建立 NBA 赛程安排的模型和算法在建立 NBA 赛程安排模型中,设计了以下三个原则:原则一、在确定球队和球队之间的比赛次序时,原则是联盟之间互相交叉,同时赛区之间互相交叉,因为这样球队与球队之间比赛的次序比较均等图 1 是基于这个原则的一种安排次序,Ti 就是第 i 次安排的球队东部赛区:Ea Eb EcEa1 T1 Eb1 T3 Ec1 T5Ea2 T7 Eb2 T9 Ec2 T11Ea3 T13 Eb3 T15 Ec3 T17Ea4 T19 Eb4 T21 Ec4 T23Ea5 T25 Eb5 T27 Ec5 T29--------------------------------------------------------------------------------------------------------------------------西部赛区:Wa Wb WcWa1 T2 Wb1 T4 Wc1 T6Wa2 T8 Wb2 T10 Wc2 T12Wa3 T14 Wb3 T16 Wc3 T18Wa4 T20 Wb4 T22 Wc4 T24Wa5 T26 Wb5 T28 Wc5 T30图 1. 球队之间的比赛次序因此,第 1 次安排的球队 T1(Ea1)与其余 29 支球队比赛;第 2 次安排的球队 T2( Wa1)与其余 28 支球队比赛;第 3 次安排的球队 T3(Eb1)与其余 27 支球队比赛;…;第 i 次安排的球队 Ti(… )与其余 30 – i 支球队比赛;…;第 29 次安排的球队 T29(Ec5)与剩下 1 支球队比赛;第 30 次安排的球队 T30(Wc5)与 0 支球队比赛。
所以,按照 T1、T2、…、T30 的比赛的次序,共需要安排 435 个球队和球队之间的比赛(∑i,i=1,2,…,29)在这种比赛次序下,每两支球队比赛的场数由规则 A、规则 B、规则 C 决定原则二、在原则一给出的比赛次序中,按照交叉的原则安排比赛时间即 Ti 次序的球队,要同(30 – i)支球队比赛当 i 为奇数时,时间安排从前到后;当 i 为偶数时,时间安排从后到前这样可以使得一支球队一天比赛两场的可能性比较小,并且一支球队两场比赛间隔一天的可能性比较大图 2 是在一种比赛次序下的比赛时间的安排图表中的数字为比赛时间 date,即第 i 天(i=1 ,2,...,165)比赛T1T2T3T4T5T6T7T8T9T10T25T26T27T28T29T30T1 X 1 3 5 7 9 11131517 47 49 51 53 55 57T2 0 X 5654525048464442 12 10 8 6 4 2T3 0 0 X 7 9 1113151719 53 55 57 59 61 63::T290 0 0 0 0 0 0 0 0 0 0 0 0 0 X 85T300 0 0 0 0 0 0 0 0 0……0 0 0 0 0 X图 2. 比赛时间安排因为不考虑主客场,T1 对 T2 的比赛就是 T2 对 T1 的比赛,这里都设为0。
原则三、两支球队之间有多场比赛,有的球队之间需要比赛 4 场(按照规则 A或规则 C),有的需要比赛 2 场(按照规则 B),有的需要比赛 3 场(按照规则 C)不同场之间的时间安排原则是:比赛 4 场的,时间安排间隔为 40 天;比赛 2 场的,时间安排间隔为 80 天;比赛 3 场的,时间安排间隔为 50 天;这样可以使相同球队的几场比赛间隔天数尽可能大,比赛会比较好看因为比赛周期是 165 天,所以按照 150 或 160 的 2、3 、4 倍数关系选择上面的间隔天数NBA 赛程安排算法:第一步:先按照原则一,以联盟和赛区为单位,设定出球队和球队比赛安排的次序 Ti;第二步:再按照原则二,在第一步设置的比赛次序中安排比赛时间 date第三步:再按照原则三,对两支球队的多场比赛,安排比赛时间 date第四步:对以上安排的比赛时间 date 进行判断:If(要比赛的两支球队中的任何一支球队在同一天已经有比赛了)Then { 这场比赛就向后顺移时间,即:date 165 天) then date <= 1 }五、 模型和算法的分析上面给出的算法的第四步判断一定能满足赛程安排的第一个条件,即每支球队不可能一天比赛两场。
理论上,一定有至少一种赛程安排因为没有场地的限制,一天最多可以比赛 15 场,所以,很多球队如果没有间隔地每天连续比赛,就可以安排但这种安排不太好我给出的原则和算法就是希望尽可能满足赛程安排的第二个条件,即每支球队的两场比赛之间尽可能地间隔一天在算法的第二步就是先按照隔一天一场比赛的情况安排,算法的第三步是按照同一球队的场与场之间尽可能间隔的远的情况安排的如果判断出安排的比赛有冲突,就按照连续每天比赛的情况安排赛程安排的第三个条件没有考虑,即赛程安排尽可能对每支球队公平,各球队比赛平均间隔的天数尽可能接近待以后进一步完善另外,NBA 比赛的排名也有很多规则,要考虑很多因素我希望能在以后补充这部分模型和算法我们国家也有 CBA 篮球比赛,目前共有 18 个球队,但我们的赛区分配没有 NBA 那么复杂,可以简化这个模型,建立 CBA 赛程安排六、 参考文献【1】 韩中庚.数学建模竞赛—获奖论文精选与点评.北京:科学出版社,2007.【2】 姜启源等.《数学模型(第三版)》习题参考解答.北京:高等教育出版社,2003.【3】 NBA 英文网. 全国大学生数模竞赛网. 1. 美国 30 支球队名单东部联盟:东南区 中区 大西洋区迈阿密热队 底特律活塞队 波士顿凯尔特人队奥兰多魔。