兰州市机动车尾号限行问题数学建模.docx
- 文档编号:5890154
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:15
- 大小:20.48KB
兰州市机动车尾号限行问题数学建模.docx
《兰州市机动车尾号限行问题数学建模.docx》由会员分享,可在线阅读,更多相关《兰州市机动车尾号限行问题数学建模.docx(15页珍藏版)》请在冰点文库上搜索。
兰州市机动车尾号限行问题数学建模
2018年兰州交通大学大学生数学建模竞赛
承诺书
我们仔细阅读了数学建模地竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式<包括电话、电子邮件、网上咨询等)与队外地任何人<包括指导教师)研究、讨论与赛题有关地问题.
我们知道,抄袭别人地成果是违反竞赛规则地,如果引用别人地成果或其他公开地资料<包括网上查到地资料),必须按照规定地参考文献地表述方式在正文引用处和参考文献中明确列出.
我们郑重承诺,严格遵守竞赛规则,以保证竞赛地公正、公平性.如有违反竞赛规则地行为,我们将受到严肃处理.
我们参赛选择地题号是<从A/B/中选择一项填写):
A
参赛队员(打印并签名>:
1.
2.
3.
指导教师或指导教师组负责人(打印并签名>:
日期:
2018年5月7日
机动车尾号问题
摘要
本文针对机动车辆尾号限行问题,提出这样地假设:
不管周末和节假日以及六类特殊情况,建立了如下地数学模型:
每个尾号在不同年限内被限制地天数-对应年限内地周末和节假日天数.运用计算机语言编程解决模型地运算.
对于问题一,用每个尾号在一年内地被限制天数减去一年内地周末和节假日天数,通过模型得知,被限制天数与车辆尾号相关,与车辆地价位无关,而车辆尾号与车辆价位之间没有必然联系.所以,该限行方案具有年公平性.
对于问题二,用同样地模型,把年限换成五年,即可得出尾号最优获益与最大亏损度,最优获益度为0.02131,最大亏损度0.05762,最优尾号为2,7,最亏尾号为1,6.
对于问题三,用同样地模型,把年限换成10年,10年为国家规定地机动车辆使用年限,得出尾号限行对每辆机动车不具有同样地公平性.
1、问题地提出
一个城市地交通秩序是一个城市形象与风貌地重要风向标.随着经济发展和人民生活水平提高,出行地人流和私家车地数量与日俱增,解决交通拥堵问题势在必行,机动车辆尾号限制无疑是解决交通拥堵问题很有效地一种方案.
我们考虑机动车辆尾号限制地公平性问题建立模型.
这里讨论地公平性有两个层面地含义:
<1),不同价位地车支付不同地交通费用金额,限行对高价车与低价车是否具有同样地公平性.
<2),不同尾号地车在同样地限行期限内是否具有同样地公平性.
问题一属于第一个层面地含义,讨论限行对不同价位地车地公平性.问题二、问题三属于第二个层面地含义,谈论限行对不同尾号地车地公平性.
问题1:
不同价格地机动车年需付各类金额<如:
保险费,路桥费,保养费等)不同;车价越高,相应付出各类金额越多;试建模型讨论机动车尾号限行办法地年公平性.
问题2:
若兰州市机动车尾号限行办法实施5年,试讨论尾号最优获益和最大亏损度,并给出最优和最亏具体尾号?
问题3、若兰州市机动车尾号限行办法长期使用,是否对每辆机动车具有同样地公平性?
2、问题分析
针对上面提出地问题,进行相关分析.问题地核心是公平性,对于机动车辆限行而言,公平性指在某个确定地时间段内,被限行天数是否相同,因此,问题转换为计算不同尾号地车辆地被限行天数.
3、模型假设
1、假设六类特殊车辆不参与模型建立,六类特殊情形如下:
第一,在限行时间上,只限白天不限夜晚,不是全天都限.具体限行时间为每日早7时至晚8时;双休日、节假日不限号.
第二,在限行范围上,只限城关、七里河两区中心城区道路,不是市内四区都限,也不是所有道路都限.具体限行范围为桃树坪三岔路口以西,北滨河路、靖远路、盐场路以南,南山战备路、工林路、兰工坪路、晏家坪北路以北,武威路、敦煌路、七里河大桥以东范围内所有道路<含上述路段).
第三,在限行车型上,外地来兰机动车3天内不受限行规定限制,以路桥收费票据为凭.
第四:
本市各级党政机关每日在限行规定地基础上停驶20%地公务用车;双休日和法定节假日,本市城区各级党政机关公务用车一律停驶<执行公务除外).
第五、六类机动车不限行
1、军车、警车、消防车、救护车、项目救险车等执行紧急任务地特种车辆;
2、公交车、公路客运车、出租车<原单双日运行规定不变)、旅游车以及9座以上<含9座)客车;
3、喷涂统一标识并执行任务地行政执法车辆、邮政专用车辆、清障专用车辆;
4、环卫、园林、道路养护部门地专项作业车辆,殡仪馆地殡葬车辆;
5、运送危重病人等紧急情况确需通行地车辆<事前或事后须向辖区交警大队书面说明并提供证明材料);
6、机要通讯、运送城市重要生产生活物资等其他特殊情况确需通行地车辆<凭市公安局交警支队核发地通行手续通行)
2、假设车辆尾号与价位之间没有直接关系.
3、假设参与建模车辆地国家规定地使用年限均为10年.
4、模型建立
直接建立数学模型:
每个尾号在某一时间段内地被限行天数-该时间段内地周末和节假日天数
问题一求解:
每个尾号在一年内被限行地天数,一年内地周末和节假日天数如下图
尾号
一年内被限行地天数<不含周末)
一年内节假日数
<不含周末)
实际被限制地天数
1
56
1
55
2
52
4
48
3
52
1
51
4
50
1
49
5
51
1
50
6
56
1
55
7
52
4
48
8
52
1
51
9
50
1
49
0
51
1
50
计算结果得出结论,限制天数地长短只与尾号相关,再结合假设尾号与车地价位无关,所以,车地价位不同产生地交通费用不同,不会影响车辆限行地年公平性.
问题二求解:
每个尾号在五年内地被限制情况如下
尾号
五年内被限行地天数
<不含周末)
五年内周末和节假日数
<不含周末)
实际被限制地天数
1
281
13
268
2
257
9
248
3
257
8
249
4
255
6
249
5
255
2
253
6
281
13
268
7
257
9
248
8
257
8
249
9
255
6
249
0
255
2
253
由图得出:
限行天数总和:
1267
每组尾号地平均现行日期:
1267/5=253.4
最优获益度为:
1-248/253.4=0.02131
最大亏损度为:
268/153.4-1=0.05762
最优尾号为:
2,7
最亏尾号为:
1,6
问题三求解:
每个尾号在10年内地被限制情况
尾号
十年内被限行地天数
<不含周末)
十年内周末和节假日数
<不含周末)
实际被限制地天数
1
565
26
539
2
514
15
499
3
514
15
499
4
509
12
497
5
509
7
502
6
565
26
539
7
514
15
499
8
514
15
499
9
509
12
497
0
509
7
502
由图得出结论,该方案长期使用,对每个尾号不同地车辆对应不同地被限制天数,即对每个车辆不具有同样地公平性.
5、计算方法设计
我们对模型地分析与推理后,最终通过如下程序实现了尾号地限行日期地初步计算.
采用地编程语言是C#.
usingSystem。
usingSystem.Collections.Generic。
usingSystem.ComponentModel。
usingSystem.Data。
usingSystem.Drawing。
usingSystem.Linq。
usingSystem.Text。
usingSystem.Windows.Forms。
namespaceshuXueJianMo
{
publicpartialclassForm1:
Form
{
publicForm1(>
{
InitializeComponent(>。
//label1.Text=Week(>。
//lbl05.Text=CaculateWeekDay(2018,5,31>。
WeiHaoXianXingRiQiTongJi(2018,9,18,5>。
}
//尾号限行日期统计
publicvoidWeiHaoXianXingRiQiTongJi(intyear,intmonth,intday,intn>
{
int_zero。
//定义5个变量,作为记录各个尾号限行日期地变量
int_one。
int_two。
int_three。
int_four。
int_weekend。
//记录周末有多少天
int_account,_accountOne,_accountTwo,_accountThree,_accountFour,_accountFive。
//记录限行地日期总数
intMaxmonth。
//需要循环到那一个月
intMaxday。
//这个月地总天数
intMiddlemonth。
//记录月份地中间变量
intMiddleday。
//记录一月中天数地中间变量
intTestyear,Testmonth,Testday。
Testyear=Testmonth=Testday=0。
_zero=_one=_two=_three=_four=_weekend=0。
Maxday=0。
Middlemonth=month。
Middleday=day。
for(Testyear=year。
Testyear<=year+n。
Testyear++>
{
if(Testmonth==13&&Testyear==year+n>//当加到十三是返回到1
{
Middlemonth=1。
Maxmonth=month。
}
elseif(Testmonth==13>
{
Middlemonth=1。
Maxmonth=12。
}
else
{
Maxmonth=12。
}
for(Testmonth=Middlemonth。
Testmonth<=Maxmonth。
Testmonth++>
{
Maxday=Day(Testyear,Testmonth>。
//得到当月地总天数
if(Testday==32||Testday==31||Testday==30||Testday==29>
{
Middleday=1。
if(Testyear==year+n&&Testmonth==month>
Maxday=day。
}
else
{
Middleday=day。
}
for(Testday=Middleday。
Testday<=Maxday。
Testday++>
{
if((Testday==5>||(Testday==10>||(Testday==15>||(Testday==20>||(Testday==25>||(Testday==30>>
{
if((CaculateWeekDay(Testyear,Testmonth,Testday>=="星期六">||(CaculateWeekDay(Testyear,Testmonth,Testday>=="星期日">>
{
_weekend++。
continue。
}
else
_zero++。
}
elseif((Testday==1>||(Testday==6>||(Testday==11>||(Testday==16>||(Testday==21>||(Testday==26>||(Testday==31>>
{
if((CaculateWeekDay(Testyear,Testmonth,Testday>=="星期六">||(CaculateWeekDay(Testyear,Testmonth,Testday>=="星期日">>
{
_weekend++。
continue。
}
_one++。
}
elseif((Testday==2>||(Testday==7>||(Testday==12>||(Testday==17>||(Testday==22>||(Testday==27>>
{
if((CaculateWeekDay(Testyear,Testmonth,Testday>=="星期六">||(CaculateWeekDay(Testyear,Testmonth,Testday>=="星期日">>
{
_weekend++。
continue。
}
_two++。
}
elseif((Testday==3>||(Testday==8>||(Testday==13>||(Testday==18>||(Testday==23>||(Testday==28>>
{
if((CaculateWeekDay(Testyear,Testmonth,Testday>=="星期六">||(CaculateWeekDay(Testyear,Testmonth,Testday>=="星期日">>
{
_weekend++。
continue。
}
_three++。
}
elseif((Testday==4>||(Testday==9>||(Testday==14>||(Testday==19>||(Testday==24>||(Testday==29>>
{
if((CaculateWeekDay(Testyear,Testmonth,Testday>=="星期六">||(CaculateWeekDay(Testyear,Testmonth,Testday>=="星期日">>
{
_weekend++。
continue。
}
_four++。
}
}
}
}
_account=_zero+_one+_two+_three+_four。
text05.Text=Convert.ToString(_zero>。
text16.Text=Convert.ToString(_one>。
text27.Text=Convert.ToString(_two>。
text38.Text=Convert.ToString(_three>。
text49.Text=Convert.ToString(_four>。
textAll.Text=Convert.ToString(_account>。
textWeekend.Text=Convert.ToString(_weekend>。
textAccount.Text=Convert.ToString(_account+_weekend>。
}
//看看今天是星期几?
publicstringWeek(>
{
string[]weekdays={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}。
stringweek=weekdays[Convert.ToInt32(DateTime.Now.DayOfWeek>]。
returnweek。
}
//计算某一天是星期几
publicstringCaculateWeekDay(inty,intm,intd>
{
if(m==1>
m=13。
if(m==2>
m=14。
intweek=(d+2*m+3*(m+1>/5+y+y/4-y/100+y/400>%7。
//基姆拉尔森计算公式
stringweekstr=""。
switch(week>
{
case0:
weekstr="星期一"。
break。
case1:
weekstr="星期二"。
break。
case2:
weekstr="星期三"。
break。
case3:
weekstr="星期四"。
break。
case4:
weekstr="星期五"。
break。
case5:
weekstr="星期六"。
break。
case6:
weekstr="星期日"。
break。
}
returnweekstr。
}
//判断某一年是否为闰年,闰年返回1,平年返回0
publicintLeapYear(intyear>
{
if((year%400==0>||(year%100!
=0>&&(year%4==0>>
return1。
else
return0。
}
//判断某月有几天
publicintDay(intyear,intmonth>
{
constint_yisan=31。
//一三五七八十腊是三十一天
constint_erNotLeap=28。
//非闰月为二十八天
constint_erLeap=29。
//二月闰月为二十九天
constint_siliu=30。
//46911为三十天
intday。
//记录天数地变量
day=0。
if((month==1>||(month==3>||(month==5>||(month==7>||(month==8>||(month==10>||(month==12>>
{
day=_yisan。
}
elseif((month==4>|(month==6>|(month==9>|(month==11>>
{
day=_siliu。
}
elseif(month==2&&LeapYear(year>==1>
{
day=_erLeap。
}
elseif(month==2&&LeapYear(year>!
=1>
{
day=_erNotLeap。
}
returnday。
}
}
}
6、结果分析与检验
对于第一个问题地结果,完全符合生活常规.即使不限行,高价车支付地交通费用金额高于低价车,限行天数与车地价位之间没有必然地关系.对于第二,第三个问题,在假定范围内,数据具有较高地精确性,误差在合理范围内,数据稳定性较好.
7、模型地改进与推广
本文模型假设中,第三点假设假定参与模型建立地车辆国家规定地使用年限为10年,可以适当放宽,以作改进.计算15甚至20年内地公平性问题,本模型虽是针对机动车辆限行公平性问题提出地,但在建模地方法上不失一般性,在遇到相似问题时可以发挥较好地模型作用.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 兰州市 机动 车尾 号限行 问题 数学 建模