足球比赛日程安排问题.docx

上传人:b****7 文档编号:15847121 上传时间:2023-07-08 格式:DOCX 页数:15 大小:126.18KB
下载 相关 举报
足球比赛日程安排问题.docx_第1页
第1页 / 共15页
足球比赛日程安排问题.docx_第2页
第2页 / 共15页
足球比赛日程安排问题.docx_第3页
第3页 / 共15页
足球比赛日程安排问题.docx_第4页
第4页 / 共15页
足球比赛日程安排问题.docx_第5页
第5页 / 共15页
足球比赛日程安排问题.docx_第6页
第6页 / 共15页
足球比赛日程安排问题.docx_第7页
第7页 / 共15页
足球比赛日程安排问题.docx_第8页
第8页 / 共15页
足球比赛日程安排问题.docx_第9页
第9页 / 共15页
足球比赛日程安排问题.docx_第10页
第10页 / 共15页
足球比赛日程安排问题.docx_第11页
第11页 / 共15页
足球比赛日程安排问题.docx_第12页
第12页 / 共15页
足球比赛日程安排问题.docx_第13页
第13页 / 共15页
足球比赛日程安排问题.docx_第14页
第14页 / 共15页
足球比赛日程安排问题.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

足球比赛日程安排问题.docx

《足球比赛日程安排问题.docx》由会员分享,可在线阅读,更多相关《足球比赛日程安排问题.docx(15页珍藏版)》请在冰点文库上搜索。

足球比赛日程安排问题.docx

足球比赛日程安排问题

数学建模论文

 

题目:

比赛日程安排问题

 

学院:

计算机科学与工程学院

系别:

计算机科学与技术

班级:

080402

姓名:

李真雄

学号:

20082365

TEL:

155****5725

 

目录

1.题目1

2.摘要1

3.问题重述1

2.模型建立2

2.1模型假设2

2.2符号设定3

2.3模型建立4

3.模型计算5

注:

当n支球队比赛时,各队每两场比赛中间隔的场次数的上限为[(n-3)/2]。

10

4.模型推广12

当n支球队比赛时,各队每两场比赛中间隔的场次数的上限为[(n-3)/2]12

附录:

13

1.题目

比赛日程安排

2.摘要

本文在合理假设的基础上,由问题的数学实质,建立出问题的线性规划模型;由问题的特殊性将n分为偶数与奇数分别研究,获得关于各队每两场比赛之间相隔天数上限的一般公式;运用归纳的方法发现了这种特殊排序中的对称规律,并由逆时针法编写出计算程序。

文中对赛程优劣的评价指标也作了较多的探讨。

(1)对于7支球队的比赛,给出了一个各队每两场比赛中间都至少相隔一场的赛程,利用图论知识可以得出一个简单可行的日程安排表。

(2)当n支球队比赛时,各队每两场比赛中间相隔的场次数的上限是[(n-3)/2],在达到以上上限的条件下,利用循环轮转模型编制了n=8和n=9的赛程。

(3)给出衡量一个赛程优劣的指标,如总间隔数、平均间隔数、间隔数方差等,并使这些指标达到最优!

3.问题重述

(1)7支球队进行单循环比赛,每天一场,给出一个比赛日程,使每支球队在两场比赛之间至少间隔一天(要有安排赛日程的可操作的方法)。

(2)若有8支、9支球队,如何安排;能使每支球队在两场比赛之间至少间隔两天吗。

(3)推广到n支球队的情形,如何安排;每支球队在两场比赛之间可至少间隔多少天。

(4)你建议用哪些指标衡量比赛日程的优劣,如何使这些指标达到最优。

2.模型建立

2.1模型假设

1.基本假设:

(1)设n支参赛队在同一场地上进行单循环赛;

(2)假设赛程的公平性只与赛程安排有关,而与裁判等其它因素无关;

(3)在假设

(2)赛程的公平性就是指各队每两场比赛中间得到休整时间均等性,其中“每队每两场比赛”限定为指“每队每相邻两场比赛;

2.在假设

(1)下,即n个队同一场地进行循环赛共有M=

场比赛,有M=(

)!

种赛程安排,通常M是较大的数字。

M种赛程中各队比赛间隔情况不同,因而对各队的比赛有影响。

题目中4个问题相互联系,基本的题是赛程安排公平性及其编排法;

3.各队每两场比赛中间隔的场次数的上限,每个队都满足的间隔上限,其数学表达:

d=maxdi

di=min

i=1,2,3,…..

!

j,k,t=1,2,3,…n

2.2符号设定

表1

n

参赛队数

N

比赛场数

M

赛程总共安排数

j队与k队比赛场次序号数

t队与j队及k队两场比赛间最小相隔天数

i-j

第i队与第j队比赛

e

各队在全部赛程中间隔天数

d

各队每两场比赛中间相隔天数的上限

di

第i赛程各队每两场比赛间相隔最小天数

2.3模型建立

建模思想[1]:

d的数学实质是一个最大值,因此可用一个线性规划模型来描述。

具体考虑满足上限d要求的赛程编排法,则由于问题的特殊性,可将n分为偶数与奇数分别考虑;

(1)当n=2k,我们建立一种称为‘循环规则”的赛程编制法,并得到d的公式,作出证明;(3)当n=2k+1,建立一种称为“移位规则”的赛程编制法,并得到d的公式,作出证明;两种证明的思路方法一样,都属于“构造证明法”。

最后将n为偶数与奇数的上限公式统一起来。

一般模型:

d=maxdi

di=min

3.模型计算

问题

(1)的解

n=7的编制过程:

(1).移位规则,考虑一般n=2k+1,先建立一个2k(2k+1)矩阵称之为“生成矩阵”,由此矩阵即可生成赛程。

下面是此矩阵的生成规则:

①将任一队(如2k+1队)先占第2k+1列的各行,余下各队占第一行的余下位置,不妨设1,2,…2k队分别占第一行的1,2,…2k列。

②将第一行前2k个数按下述规则向下移动得第二行,依次类似得其余各行;

将奇数行从第一行算起的第奇数个数右移1位到下一行;

A.将奇数行的第偶数个数左移1位到下一行;

B.将偶数行的第奇数个数左移1位到下一行;

C.将偶数行的第偶数个数右移1位到下一行;

D.不能移动(指移出矩阵外)的数垂直下移到下一行,如此移动n-2次则生成矩阵,由生成矩阵从第一行

生起依次相邻两数表示一场比赛。

此赛程满足各队每两场比赛中间相隔天数达到上限d=[(n-3)/2].由此可得结果。

(2)表4是用实际方法对n=7编制的赛程(首轮1队轮空,1队不动)。

其弊端是此赛程d=1,而按公式d=[(n-3)/2]=2。

说明各队每两场比赛中间极不均等,如有间隔6场,有间隔1场,具体到一个队(如5队比赛与休整时间极不均等)。

从比赛与休整的节奏,第一队最有利,第五队最不利,另外从各队总间隔场次数看,也有较大差异,说明实际赛程编制法有待改进。

而本模型算法提出的“生成规则”(见上文n为奇数编派法)既简便又公平。

表3

1

2

3

4

5

6

7

每两场比赛间相隔场次数

总间隔场次数

1

X

19

16

13

10

7

4

2,2,2,2,2

10

2

19

X

9

17

5

15

1

3,3,5,1,1

13

3

16

9

X

6

14

2

12

3,2,2,1,1

9

4

13

17

6

X

3

11

20

2,4,1,3,2

12

5

10

5

14

3

X

21

8

1,2,1,3,6

13

6

7

15

2

11

21

X

18

4,3,3,2,2

14

7

4

1

12

20

8

18

X

2,3,3,5,1

14

(3).图论知识求解

每个队的对手如下表示:

A(B,C,D,E,F,G);B(A,C,D,E,F,G);C(A,B,D,E,F,G);D(A,B,C,E,F,G);E(A,B,C,D,F,G);F(A,B,C,D,E,G);G(A,B,C,D,E,F)

通过图论知识:

可以得到,当有7个队时,且每队每场比赛之间最多隔2天:

表4

B-G

C-F

D-E

A-G

B-E

C-D

A-F

G-E

B-C

A-E

F-D

G-C

F-B

A-C

B-D

F-G

A-B

D-G

E-F

A-D

E-C

问题

(2)的解:

n=8的编制过程:

循环规则[2]

八个队排成一个42矩阵,同一行两数表示这两队比赛(称为比赛矩阵),此矩阵表示第一轮比赛安排,如图1下面的安排中将某队(如1队)固定不移动,余下的队逆时针循环移动1位(上、下相邻两数的位置叫“1位”),得第二轮比赛安排,如图2

图1图2

按此规则移动6次,既得8队比赛28场的一个赛程,此赛程满足各队每两场比赛中间相隔场次数,达到上限d=[(8-3)/2]=2见表5。

表5

1

2

3

4

5

6

7

8

比赛相隔场次数

总场次数

1

X

1

25

5

21

9

17

13

3,3,3,3,3,3

18

2

1

X

16

20

26

6

11

23

4,4,4,3,2,2

19

3

25

16

X

2

12

19

22

7

4,4,3,2,2,2

17

4

5

20

2

X

15

24

27

10

2,4,4,4,3,2

19

5

21

26

12

15

X

3

8

18

4,3,2,2,2,4

17

6

9

6

19

24

3

X

14

28

2,2,4,4,4,3

19

7

17

11

22

27

8

14

X

4

3,2,2,2,4,4

17

8

13

23

7

10

18

28

4

X

2,2,2,4,4,4

18

一般n=2k,一个赛程有M=

场比赛,按此规则需移动(n-2)次,得满足d的赛程。

由“循环规则”编程得一上结果。

综上可得适当的日程安排:

表6

1-8

2-7

3-6

4-5

1-7

8-6

2-5

3-4

1-6

7-5

8-4

2-3

1-5

6-4

7-3

8-2

1-4

5-3

6-2

7-8

1-3

4-2

5-8

6-7

1-2

3-8

4-7

5-6

注:

当n支球队比赛时,各队每两场比赛中间隔的场次数的上限为[(n-3)/2]。

9支队伍也类似,具循环法则,得表:

1

2

3

4

5

6

7

8

9

1

33

29

25

21

17

13

9

5

2

33

16

30

11

27

6

24

1

3

29

16

12

26

7

23

2

20

4

25

30

12

8

22

3

19

34

5

21

11

26

8

4

18

35

15

6

17

27

7

22

4

36

14

31

7

13

6

23

3

18

36

32

10

8

9

24

2

19

35

14

32

28

9

5

1

20

34

15

31

10

28

注:

9支队伍是单数,其与8支队伍区别在于,它要先虚拟一个0队伍,以便于与循环轮转法则进行运算。

如:

1234510234

0987698765

其中,当队伍碰到0队时,说明当时比赛是没有的,而其他则正常进行比赛,0对只是一个虚拟队伍,用于循环轮转法的进行赛事安排。

问题(3)的解:

证明:

有n支队伍,对任意一支队伍k,设其相邻的两场比赛为 k-i, k-j,中间间隔p场比赛。

现在即求p的上限值。

由于此两场比赛已有k,i,j 参加,为达到间隔上限,中间p场比赛中不能出现此三支队伍,即还剩下n-3支队伍,且此n-3支队伍在p场比赛中最多只能出现一次。

当n为奇数时,n-3为偶数,则p最多即为(n-3)/2场(此时(n-3)/2=[(n-3)/2])。

当n为偶数时,n-3为奇数,则有一队要轮空,即p最多则为(n-3-1)/2场(此时(n-3-1)/2=[(n-3)/2])。

综上所述,各队两场比赛中间隔的天数的上限为[(n-3)/2]。

所以,对于7支或8支球队,有如上适当安排,但不能使每支球队在两场比赛之间至少隔两天,应该是最多隔两天。

其证明见上详证!

问题(4)的解:

4.衡量一个赛程优劣,除各队每两场比赛间相隔天数上限d这个指标外,各队在整个赛程中总间隔场天数e的差异程度E也是一个重要指标。

可设E=Emax-Emin,E越大说明各队总体休整间隔数的差异大。

E越大说明各队总体休整间隔天数的差异大。

这里n=8的赛程中差异度较小,表现出各队总体休整时间较为均匀,因而此赛程就指标而言,也较为公平的。

而且要考虑到比赛的间隔方差的大小,波动性。

应合理考察各队情况,合理安排各队比赛间隔天数,保证各队队员可充分发挥。

关于赛程的优劣,除考虑公平性外,还有效率性问题,即考虑如何合理紧凑地安排赛程,使赛程的时间较短。

[3]

所以,要使以上指标达到最优,我们可以从以下方向入手:

1.尽可能使得总体休息时间均匀,差异小;

2.间隔方差尽可能小;

2.观察各队情况后进行时间调配;

3.尽量使日程安排公平,而且考虑效率,使得时间合理紧凑!

4.模型推广

当n支球队比赛时,各队每两场比赛中间隔的场次数的上限为[(n-3)/2]

证明:

有n支队伍,对任意一支队伍k ,设其相邻的两场比赛为 k-i, k-j,中间间隔p场比赛。

现在即求p的上限值。

由于此两场比赛已有k,i ,j 参加,为达到间隔上限,中间p场比赛中不能出现此三支队伍,即还剩下n-3支队伍,且此n-3支队伍在p场比赛中最多只能出现一次。

当n为奇数时,n-3为偶数,则p最多即为(n-3)/2场(此时(n-3)/2=[(n-3)/2])。

当n为偶数时,n-3为奇数,则有一队要轮空,即p最多则为(n-3-1)/2场(此时(n-3-1)/2=[(n-3)/2])。

综上所述,各队两场比赛中间隔的天数的上限为[(n-3)/2]。

附录:

1.逆时针转换法[4][5]:

#include

#include

#include

usingnamespacestd;

typedefstd:

:

vectorint_array;

typedefstd:

:

vector

:

vector>gap;

voidmain(){

intteam_count;//队伍总数

std:

:

cout<<"输入队伍总数:

"<

:

endl;

std:

:

cin>>team_count;

intvirtual_team_count=team_count;//虚拟队伍数,保证是偶数

if(virtual_team_count%2!

=0)

++virtual_team_count;

intturn_count=virtual_team_count-1;//比赛轮数

intgame_count_per_turn=virtual_team_count/2;//每轮的比赛数

int_arraygame_numbers(virtual_team_count);//所有的队伍号码

gapteamgap(team_count,vector(0));

for(inta=1;a<=team_count;++a)

game_numbers[a-1]=a;

if(virtual_team_count!

=team_count)

game_numbers[virtual_team_count-1]=0;//虚拟的队伍号码为0

intcountsum=0,n,m;

for(inti=1;i<=turn_count;++i){

std:

:

cout<<"第"<

";

for(intj=1;j<=game_count_per_turn;j++){

if(game_numbers[j-1]==0||game_numbers[virtual_team_count-j]==0)

std:

:

cout<<"无";

else{

cout<<"<"<";

n=game_numbers[j-1]-1;

m=game_numbers[virtual_team_count-j]-1;

countsum++;

teamgap[n].push_back(countsum);

teamgap[m].push_back(countsum);

}

}

std:

:

cout<

:

endl;

std:

:

rotate(game_numbers.begin()+1,game_numbers.end()-1,game_numbers.end());

}

for(intp=0;p

cout<<"第"<

";

for(vector:

:

iteratorit=teamgap[p].begin();it!

=teamgap[p].end();++it)

cout<<*it<<"";

cout<

}

for(p=0;p

cout<<"第"<

";

for(vector:

:

iteratorit=teamgap[p].begin();it!

=teamgap[p].end()-1;++it)

cout<<*(it+1)-*it-1<<"";

cout<

}

}

程序运行结果截图:

位规则考虑一般n=2k+1,先建立一个2k(2k+1)矩阵称之为“生成矩阵”,由此矩阵即可生成赛程。

下面是此矩阵的生成规则:

将任一队(如2k+1队)先占第2k+1列的各行,余下各队占第一行的余下位置,不妨设1,2,…2k队分别占第一行的1,2,…2k列。

(1)将第一行前2k个数按下述规则向下移动得第二行,依次类似得其余各行;

A.将奇数行从第一行算起的第奇数个数右移1位到下一行;

B.将奇数行的第偶数个数左移1位到下一行;

C.将偶数行的第奇数个数左移1位到下一行;

D.将偶数行的第偶数个数右移1位到下一行;

E.不能移动(指移出矩阵外)的数垂直下移到下一行,如此移动n-2次则生成矩阵,由生成矩阵从第一行

生起依次相邻两数表示一场比赛。

此赛程满足各队每两场比赛中间相隔场次数达到上限d=[(n-3)/2].由此可得结果。

3.间隔上限数学表达:

d=maxdidi=min

i=1,2,3,…..

!

j,k,t=1,2,3,…n

 

参考文献

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2