公交站点IC刷卡计数算法及其MATLAB实现
基于Matlab仿真的公交系统运行时间可靠性评价方法
城市交通UrbanTransportofChina2006年7月第4卷第4期Jul.2006Vol.4No.4摘要:从公交系统发车时间可靠性,途中运行时间可靠性及出行者出行时刻、等待时间、途中乘运时间、到达终点的时间调查入手,通过对出行过程的分析,建立出行者在运行时间可靠性水平不同的3条公交线路之间的出行时间分布模型。
利用此模型,对出行者在3条公交线路之间的换乘过程中,多种不同公共交通服务水平对出行者的影响进行仿真。
对公交系统运行时间可靠性问题进行了分析探讨,提出了一套基于Matlab仿真技术的公共交通系统运行时间可靠性分析和评价方法,并应用所建模型进行公交系统运行时间的可靠性评价。
Abstract:Basedontheinvestigationofdeparturetimereliabilityoftrans-portsystemandtraveltimereliabilityandpassengerstarttimeandwait-ingtimeandcarriedtimeandarrivalfinaldestinationtime,theanalysisbeganwithanassumedpersonaljourney,thisstudyhassetupamodewhichcontainstheinterchangejourneysviadifferentdistributingmodesofpublictransport.Applythemodetosimulatetheimpactsofdeparturetimereliabilityofpublictransportservicesonarrivallateness,whichcon-tainsthreesectionspublictransportsarecarefullyanalysisanddiscussed.Asimulationmethodforanalysisandevaluationofoperationtimerelia-bilityoftransportsystemonMatlabisintroduced.Furthermore,accordingtothesimulationmethodcarriesoutevaluationoperationtimereliabilityoftransportsystem.关键词:公交系统;运行时间;可靠性;延误;Matlab仿真;评价方法Keywords:publictransportationsystem;runningtime;reliability;late-ness;Matlabsimulation;evaluationmethod中图分类号:U491文献标识码:A我国城市道路交通是包括行人、非机动车和机动车辆在内的混合交通,交通流中存在很多随机因素。
公交站点IC刷卡计数算法及其Matlab实现
1 现 状 分 析
智 能交 通系 统 要求 大 量 的交 通 流 信 息 共 享 ,
公交 I c卡 收费 系统 可记 载有 关公 共交 通流 信息 ,
具 有数 量大 、 自动化 、 覆盖 广 、 作 简单 、 操 生成 的数
广州 市市 内约有 3 0条 公交 线路 、 0 0 62 0多辆公 交
收 稿 日期 : 0 0 0 — 3 2 1—21 修 回 日期 : 0 0 0 0 2 1 33
*江 西 省 创 新 资 金项 目( 准 号 : O C l ) 助 批 YC 9 O O 资 作 者 简 介 : 伟 雄 (9 3 , 授 . 究 方 向 : 通 管 理 与规 划 , 通运 输 系统 分 析 . — i 1 9 0 1 2 q .o 查 16 )教 研 交 交 E mal 15 8 4 @ q cr : n
以下 3种情 况 : 1 I ) C卡 系 统 可 以 自动 记 录 每 1 车 到 达 、 辆
查 样本 数量 和特征 的要 求 , 与人 工调查 方法 相 比 , I c卡信 息 不 易 受 人 为 因 素 的 影 响 , 据 准 确 真 数
实 , 到的客 流结 果 更 能 真 实 反 映城 市 公 交 运 营 得 情 况 和居 民公 交 出行 特 征 。I 卡 系 统不 仅 给 乘 C 客、 公交 公 司带来 了 巨大 的便 利 , 而且 其数 据库 系
统 记 录 了大 量交 通 流 信 息 , 为交 通 调 查 提供 了最 原始 、 最直 接 和具有 丰 富操作 性 的第一 手 资料l , 3 ]
因此研 究从 I c卡 系 统数 据库 中获 取 交 通 流信 息 的方法 具有 重 要 的意 义 。本 文 所 提 出 的算 法 , 目 的就是 实现 从 I c卡 系统 数 据 库 中获 取 交通 流 信
Matlab在智能交通系统中的应用与案例研究
Matlab在智能交通系统中的应用与案例研究智能交通系统近年来受到了广泛关注,它利用计算机与通信技术来优化交通流量、提高交通效率与安全性。
在智能交通系统的发展中,Matlab作为一个功能强大的数值计算与数据分析软件,发挥了重要作用。
本文将探讨Matlab在智能交通系统中的应用,并通过一些案例研究来展示其价值。
一、交通流量预测交通流量的预测对于交通系统的优化至关重要。
Matlab提供了丰富的预测建模工具,可以通过历史交通数据进行统计分析,建立合适的模型进行预测,并进行模型评估。
例如,可以利用神经网络工具箱在Matlab中构建交通流量预测模型,基于历史数据来预测未来特定路段的交通流量,以便在实际交通管理中做出相应的调整和决策。
二、交通信号优化交通信号的优化是提高交通效率的关键步骤。
Matlab可以利用优化算法来进行交通信号的优化,以最小化交通拥堵并提高通行效率。
例如,可以通过Matlab中的遗传算法来确定最佳的交通信号配时方案,以最大程度地减少车辆等待时间和停止次数,并提高整体交通流动性。
这种基于优化的交通信号控制方法可以显著改善交通系统的性能。
三、交通事故分析交通事故的分析对于交通安全的提升和事故预防至关重要。
Matlab可以利用统计分析和数据挖掘技术来分析交通事故相关数据,以发现事故发生的规律和原因,并进一步提出改进建议。
例如,可以通过Matlab中的聚类分析工具来识别事故发生的热点区域,并研究其影响因素。
这些分析结果可为交通管理部门制定相关政策和措施提供依据。
四、车辆轨迹分析通过对车辆轨迹的分析可以对车辆行为进行研究,为交通管理提供有效的数据支持。
Matlab提供了强大的图像处理和轨迹分析工具,可以处理车辆行驶轨迹数据,并通过数据挖掘技术进行行为分析。
例如,可以利用Matlab中的图像处理工具箱对交通摄像头的图像进行处理,提取出车辆的轨迹信息,并进一步分析车辆的速度、加速度等行为信息。
这些分析结果有助于交通管理部门了解交通状况并制定针对性的措施。
公交站点IC刷卡计数算法及其Matlab实现
公交站点IC刷卡计数算法及其Matlab实现查伟雄;刘金行【摘要】中国大部分城市的公交公司早期并未充分利用信息技术和数据库技术,因此其IC刷卡记录与车辆调度记录很难达到精确性、实时性和关联性的要求.为了最大限度利用这些海量的原始记录,文中针对实际情况,在允许一定误差的前提下,提出了公交站点IC刷卡计数算法,并结合实例使用数学软件Matlab实现此算法.【期刊名称】《交通信息与安全》【年(卷),期】2010(028)002【总页数】5页(P93-97)【关键词】智能交通;IC卡收费系统;公交站点;Matlab【作者】查伟雄;刘金行【作者单位】华东交通大学交通运输与经济研究所,南昌,330013;华东交通大学交通运输与经济研究所,南昌,330013【正文语种】中文【中图分类】U495引言我国许多大城市都开始使用公交IC卡,并且已经初具规模。
例如,青岛市2 600辆电汽车已经配备了IC卡收费系统,占公交车总数的80%,每天持卡乘车约90万人·次,占无人售票款收入的70%;天津市区已有2 500辆公交车可以使用公交IC卡乘车,约占市区公交车总量的80%,市区已有12万乘客持卡坐车,约占乘坐公交车总人数的26%;太原市持卡者占总客运人次的40%;广州市市内约有300条公交线路、6 200多辆公交车,95%以上的公交车辆已开通或安装了车载收费机[1]。
南昌市市内有2 345辆公交车,全部安装并开通了车载收费机。
可以说持卡乘车是公交发展的必然趋势,但与国外相比,国内对收费系统的利用还远远不够[1]。
公交乘客是公共交通客流组成的基本要素,公交IC卡数据库记录了每1个公交乘客任何1次刷卡的相关信息,从这些信息中挖掘出反映公交运营状况的数据是可行的[2]。
IC卡信息量所反映的居民公交出行的数量及分布完全达到调查样本数量和特征的要求,与人工调查方法相比,IC卡信息不易受人为因素的影响,数据准确真实,得到的客流结果更能真实反映城市公交运营情况和居民公交出行特征。
完整版数字图像处理车牌识别课程设计matlab实现附源代码
精品实验项目字符识别预处理的设计与实现专业:电子信息工程姓名:高勇学号:2010021204指导老师:郑蕊蕊1目录一、实验类型:设计性实验 (3)二、实验目的 (3)三、实验设备:扫描仪、安装有MATLAB软件的计算机 (3)四、实验内容及原理 (3)(1)字符图像的获取 (3)(2)字符图像预处理 (3)(3)字符图像分割 (3)(4)函数的作用 (4)五、实验步骤 (8)1.载入车牌图像: (8)2.将彩图转换为灰度图并绘制直方图: (9)3. 用roberts算子进行边缘检测: (10)4.图像实施腐蚀操作: (10)5.平滑图像 (11)6. 删除二值图像的小对象 (12)7.车牌定位 (12)8.字符分割与识别 (14)9.车牌识别: (20)六、思考题 (27)2:实验类型一、设计性实验实验目的二、1. 掌握图像的获取、预处理和分割的原理及MATLAB实现方法。
2. 掌握使用扫描仪和计算机获取数字图像的方法,理解扫描仪的原理。
3. 自学一种字符图像的分割算法并用MATLAB编程实现该算法。
:实验设备三、扫描仪、安装有MATLAB软件的计算机实验内容及原理四、)字符图像的获取1(用扫描仪获取图像是字符图像处理常用的数字化过程的方法之一。
以办公设备中常用的台式扫描仪为例,其主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等,这些指标都可以从扫描仪的说明手册中获得。
分辨率的单位是dpi(Dot PerInch),意思是每英寸的像素点数。
扫描仪工作时,首先由可移动带状光源将光线照在欲输入的图稿上,并沿y方向扫描稿件,产生表示图像特征的反射光或透射光。
照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x 方向的光带,经光学系统采集和过滤成RGB三色光带分别照射到RGB分量的CCD上,CCD将光信号转换为模拟电信号。
内部电路的A/D变换器将模拟电信号转变为数字电子信号输送给计算机。
公交线路的选择Matlab程序
clear,clc%从Excel中导入数据a=importdata('C:\Users\Wan Huajian\Desktop\第四组,第七题程序\第四组第七题数据.xls','Sheet1');gq_zd=a.data.Sheet1;gq_xl=a.rowheaders.Sheet1;%输入起点和终点的数据q=[3359 1557 971 8 148 87];z=[1828 481 485 73 485 3676];%%%第一问的程序%直达hc_0_SJ=zeros(1,length(q));hc_0_XL=zeros(1,length(q));hc_0_xl=zeros(11,length(q));for k=1:length(q)[i1,j1]=find(gq_zd==q(k));[i2,j2]=find(gq_zd==z(k));b=intersect(i1,i2);if ~isempty(b)v=zeros(1,length(b));for i=1:length(b)s=b(i);t=find(gq_zd(s,:)==q(k));u=find(gq_zd(s,:)==z(k));if t<uv(i)=(u-t)*3;endend[ii,jj,vv]=find(v);[aa,bb]=min(vv);hc_0_SJ(k)=aa;hc_0_XL(k)=b(jj(bb));endend%%%换乘一次q(7)=3676;z(7)=1189;A=cell(7,1);for k=1:length(q)[i1,j1]=find(gq_zd==q(k));[i2,j2]=find(gq_zd==z(k));B=cell(length(i1),length(i2));for xl_q=1:length(i1)for xl_z=1:length(i2)c=intersect(gq_zd(i1(xl_q),j1(xl_q):end),gq_zd(i2(xl_z),1:j2(xl_z)));B(xl_q,xl_z)={c};endendA(k)={B};endhc_1_SJ=zeros(1,6);hc_1_q_xl=zeros(5,6);hc_1_z_xl=zeros(5,6);hc_1_zz=zeros(120,6);for k=7[i1,j1]=find(gq_zd==q(k));[i2,j2]=find(gq_zd==z(k));sj=inf*ones(length(i1),length(i2));index=zeros(length(i1),length(i2));for xl_q=1:length(i1)for xl_z=1:length(i2)if ~isempty(A{k}{xl_q,xl_z})h=zeros(1,length(A{k}{xl_q,xl_z}));for i=1:length(A{k}{xl_q,xl_z})d=gq_zd(i1(xl_q),:);e=find(d==A{k}{xl_q,xl_z}(i));f=gq_zd(i2(xl_z),:);g=find(f==A{k}{xl_q,xl_z}(i));h(i)=(e-j1(xl_q))*3+(j2(xl_z)-g)*3;end[sj_ ind]=min(h(i));sj(xl_q,xl_z)=sj_;index(xl_q,xl_z)=A{k}{xl_q,xl_z}(ind);endendendhc_1_SJ(k)=min(min(sj));[qd_ zd_]=find(sj==min(min(sj)));hc_1_q_xl(1:length(qd_),k)=i1(qd_);hc_1_z_xl(1:length(zd_),k)=i2(zd_);hc_1_zz(1:length(qd_),k)=diag(index(qd_,zd_));end%换乘两次hc_2_SJ=zeros(1,6);hc_2_q_XL=zeros(1,6);hc_2_ql_XL=zeros(1,6);hc_2_z_XL=zeros(1,6);hc_2_q_ZZ=zeros(1,6);hc_2_z_ZZ=zeros(1,6);for k=1[i1,j1]=find(gq_zd==q(k));[i2,j2]=find(gq_zd==z(k));bb=inf*ones(length(i1),length(i2));dd=zeros(length(i1),length(i2));ee=zeros(length(i1),length(i2));ff=zeros(length(i1),length(i2));for xl_q=1:length(i1)for xl_z=1:length(i2)d=gq_zd(i1(xl_q),j1(xl_q):end);f=gq_zd(i2(xl_z),1:j2(xl_z));gq_zd_bj=gq_zd;gq_zd_bj([i1(xl_q);i2(xl_z)],:)=0;ql=zeros(1,size(gq_zd,1));aa=zeros(1,size(gq_zd,1));gg=zeros(1,size(gq_zd,1));hh=zeros(1,size(gq_zd,1));for ql_=1:size(gq_zd,1)s=intersect(d,gq_zd_bj(ql_,:));t=intersect(f,gq_zd_bj(ql_,:));ql(ql_)=(length(s)>=1)&(length(t)>=1);if ql(ql_)==1n_q=zeros(1,length(s));n_z=zeros(1,length(t));for i=1:length(s)m_q=find(d==s(i));n_q(i)=m_q;endfor j=1:length(t)m_z=find(f==t(j));n_z(j)=m_z;endN_Q=min(n_q);N_Z=max(n_z);ql_q=find(gq_zd_bj(ql_,:)==d(N_Q));ql_z=find(gq_zd_bj(ql_,:)==f(N_Z));if ql_q<ql_zaa(ql_)=N_Q*3+(ql_z-ql_q)*3+(j2(xl_z)-N_Z)*3;gg(ql_)=d(N_Q);hh(ql_)=f(N_Z);endendend[ii,jj,vv]=find(aa);[ss,tt]=min(vv);if ~isempty(ss)bb(xl_q,xl_z)=ss;dd(xl_q,xl_z)=jj(tt);ee(xl_q,xl_z)=gg(jj(tt));ff(xl_q,xl_z)=hh(jj(tt));endendendhc_2_SJ(k)=min(min(bb));[xx,yy]=find(bb==hc_2_SJ(k));hc_2_q_XL(k)=i1(xx(1));hc_2_z_XL(k)=i2(yy(1));hc_2_ql_XL(k)=dd(xx(1),yy(1));hc_2_q_ZZ(k)=ee(xx(1),yy(1));hc_2_z_ZZ(k)=ff(xx(1),yy(1));end%%%第二问的程序D=cell(39,1);D(1)={[0567 0042 0025]};D(2)={1487};D(3)={[0303 0302]};D(4)={0566};D(5)={[0436 0438 0437 0435]};D(6)={[0392 0394 0393 0391]};D(7)={[0386 0388 0387 0385]};D(8)={[3068 0617 0619 0618 0616]};D(9)={1279};D(10)={[2057 0721 0722 0720]};D(11)={[0070 2361 3721]};D(12)={[0609 0608]};D(13)={[2633 0399 0401 0400]};D(14)={[3321 2535 2464]};D(15)={[3329 2534]};D(16)={[3506 0167 0168]};D(17)={[0237 0239 0238 0236 0540]};D(19)={[0180 0181]};D(20)={[2079 2933 1919 1921 1920]};D(21)={[0465 0467 0466 0464]};D(22)={3457};D(23)={2512};D(24)={[0537 3580]};D(25)={[0526 0528 0527 0525]};D(26)={[3045 0605 0607]};D(27)={[0087 0088 0086]};D(28)={[0855 0856 0854 0857]};D(29)={[0631 0632 0630]};D(30)={[3874 1426 1427]};D(31)={[0211 0539 0541 0540]};D(32)={[0978 0497 0498]};D(18)={0668};D(33)={[1894 1896 1895]};D(34)={[1104 0576 0578 0577]};D(35)={[3010 0583 0582]};D(36)={[3676 0427 0061 0060]};D(37)={[1961 2817 0455 0456]};D(38)={[3262 0622]};D(39)={[1956 0289 0291]};T1=[01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23]; T2=[24 25 26 12 27 28 29 30 31 32 18 33 34 35 36 37 38 39 24];a1=T1(1:end-1);b1=T1(2:end);w1=2.5*ones(1,length(a1));a2=T2(1:end-1);b2=T2(2:end);w2=2.5*ones(1,length(a2));R=sparse([a1,a2],[b1,b2],[w1,w2]);R(39,39)=0;h=view(biograph(R,[],'ShowWeights','on'));gq_dt_gq_SJ=zeros(1,length(q));gq_dt_gq_q_XL=zeros(1,length(q));gq_dt_gq_z_XL=zeros(1,length(q));gq_dt_gq_q_ZZ=zeros(1,length(q));gq_dt_gq_z_ZZ=zeros(1,length(q));gq_dt_gq_path=cell(1,length(q));for k=1:6[i1,j1]=find(gq_zd==q(k));[i2,j2]=find(gq_zd==z(k));gq_dt_gq_sj=inf*ones(length(i1),length(i2));kk=zeros(length(i1),length(i2));ll=zeros(length(i1),length(i2));path_=cell(length(i1),length(i2));for xl_q=1:length(i1)for xl_z=1:length(i2)d=gq_zd(i1(xl_q),j1(xl_q):end);f=gq_zd(i2(xl_z),1:j2(xl_z));fj_q=zeros(1,length(d));fj_z=zeros(1,length(f));gq_q=zeros(1,length(d));gq_z=zeros(1,length(f));for i=1:length(d)for m=1:39if ~isempty(intersect(D{m},d(i)));fj_q(i)=m;gq_q(i)=d(i);endendendfor j=1:length(f)for n=1:39if ~isempty(intersect(D{n},f(j)));fj_z(j)=n;gq_z(j)=f(j);endendend[ii1,jj1,vv1]=find(fj_q);[ii2,jj2,vv2]=find(fj_z);gq_dt_gq_=zeros(length(vv1),length(vv2));oo=cell(length(vv1),length(vv2));for ii=1:length(vv1)for jj=1:length(vv2)[d,p]=graphshortestpath(R,vv1(ii),vv2(jj));gq_dt_gq_(ii,jj)=jj1(ii)*3+d+(j2(xl_z)-jj2(jj))*3;oo(ii,jj)={p};endendif ~isempty(gq_dt_gq_)gq_dt_gq_sj(xl_q,xl_z)=min(min(gq_dt_gq_));[mm,nn]=find(gq_dt_gq_==min(min(gq_dt_gq_)));path_(xl_q,xl_z)=oo(mm(1),nn(1));kk(xl_q,xl_z)=gq_q(jj1(mm(1)));ll(xl_q,xl_z)=gq_z(jj2(nn(1)));endendendgq_dt_gq_SJ(k)=min(min(gq_dt_gq_sj));[xx,yy]=find(gq_dt_gq_sj==gq_dt_gq_SJ(k));gq_dt_gq_q_XL(k)=i1(xx(1));gq_dt_gq_z_XL(k)=i2(yy(1));gq_dt_gq_q_ZZ(k)=kk(xx(1),yy(1));gq_dt_gq_z_ZZ(k)=ll(xx(1),yy(1));gq_dt_gq_path(k)=path_(xx(1),yy(1));end%%%第三问程序q(7)=3676;z(7)=1189;hc_0_SJ_3=zeros(1,length(q));hc_0_XL_3=zeros(1,length(q));hc_0_BX=zeros(1,length(q));for k=7[i1,j1]=find(gq_zd==q(k));[i2,j2]=find(gq_zd==z(k));hc_0_sj_3=inf*ones(length(i1),length(i2));hc_0_xl_3=zeros(length(i1),length(i2));hc_0_bx=zeros(length(i1),length(i2));for xl_q=1:length(i1)for xl_z=1:length(i2)d=gq_zd(i1(xl_q),j1(xl_q):j1(xl_q)+1);f=gq_zd(i2(xl_z),j2(xl_z));[i11,j11]=find(gq_zd==d(1));[i12,j12]=find(gq_zd==d(2));[i21,j21]=find(gq_zd==f(1));b1=intersect(i11,i21);b2=intersect(i12,i21);if ~isempty(b2)for i=1:length(b2)s=b2(i);t=find(gq_zd(s,:)==d(2));u=find(gq_zd(s,:)==f(1));if t<uv(i)=(u-t)*3;endend[ii,jj,vv]=find(v);[aa,bb]=min(vv);hc_0_sj_3(xl_q,xl_z)=aa(1);hc_0_xl_3(xl_q,xl_z)=b2(end);hc_0_bx(xl_q,xl_z)=d(2);endendend%乘车时间hc_0_SJ_3(k)=min(min(hc_0_sj_3));[xx,yy]=find(hc_0_sj_3==hc_0_SJ_3(k));hc_0_XL_3(k)=hc_0_xl_3(xx(1),yy(1));hc_0_BX(k)=hc_0_bx(xx(1),yy(1));end。
Matlab在智能交通与智能城市中的应用实践
Matlab在智能交通与智能城市中的应用实践智能交通与智能城市是当下深受关注的热门话题,而Matlab作为一种重要的计算软件,也在这个领域发挥着重要的作用。
本文将从智能交通和智能城市的角度出发,探讨Matlab在这两个领域中的应用实践。
一、智能交通中的应用实践智能交通的概念涵盖了交通信息管理、交通控制、交通管理和交通运营等方面。
而Matlab在智能交通领域的应用主要体现在数据处理和算法优化两个方面。
1.1 数据处理智能交通系统需要大量的数据进行分析和处理,以便优化交通流量、提高交通安全等。
而Matlab作为一种强大的数据处理工具,能够帮助开发人员快速高效地处理这些数据。
首先,Matlab可以对交通数据进行预处理。
例如,可以通过Matlab对原始交通数据进行噪声去除、异常值检测等操作,进一步提高数据的可靠性。
其次,Matlab可以利用其丰富的数据分析工具对交通数据进行深入的统计分析。
通过对交通数据的离散化、聚类分析等处理,可以获取到交通流量、车速等关键信息,为交通运营的决策提供有力支持。
1.2 算法优化在智能交通系统中,优化算法的设计和应用是至关重要的。
而Matlab拥有强大的数学计算和优化工具箱,可以帮助开发人员设计和应用各种优化算法。
以交通信号优化为例,Matlab可以根据交通流量、车辆速度等参数,利用优化算法对信号的灯周期进行优化。
通过最小化车辆的延误和排队长度,可以提高交通效率和减少拥堵。
此外,Matlab还可以应用在路径规划、交通仿真等方面。
通过设计合理的路径规划算法,可以帮助驾驶员选择最佳路线,并减少交通拥堵。
而通过交通仿真,可以模拟真实的交通场景,从而评估各种交通策略的效果。
二、智能城市中的应用实践智能城市是指利用信息技术手段对城市的各个方面进行综合优化和智能化管理的城市。
而Matlab在智能城市领域的应用主要涉及城市规划、能源管理和环境监测等方面。
2.1 城市规划在城市规划中,Matlab可以通过模型构建和仿真来评估不同城市规划方案的效果。
Matlab实现公交查询
查询公交路线实验报告一、功能实现1.从excel加载数据源模块data2.出发地是广工公交站,根据选择的目的地会选择有直达模块和转乘模块二、效果图1.原Excel数据源结构图2.Data发送到matlab3.起点4.选择目的地,为了测试,数据很小5.选择目的为华工,可以直达线路的公交6.目的地为燕塘,需要换乘的公交线路指导三、源码1.从excel加载数据源模块%从Excel中导入数据 dataa=importdata('I:\复习\大四第一学期\matlab\实验\实验报告\buses.xls','Sheet1');2.输入起点和判断选择的目的地%输入的起点sta=menu('出发地:','广工');A=['广工']; 、rowheaders={'381路','382路','大学城1线','大学城2线','大学城3线','大学城4线','503路'};destination={'华师','华工','广外','科韵路','赤岗','棠安路','燕岭大厦','白云索道','动物园南门'};%判断输入的目的地des=menu('选择目的地:',destination{:});for i=1:9if des==iB=destination{i};endend3.直达模块, flag=1%data数据arr = cell(1); %arr = cell(1,7);i=0;v=0;flag=0;for k=1:7 %7个,角标超过了矩阵的维数for f=1:33 %33个if strcmp(data{k,f},B)%1.一次直达for j=1:33if strcmp(data{k,j},A)count='选择广工站!';i=i+1;h=rowheaders{1,k};arr{1,i}=sprintf('%s%s',h,'----------------->乘坐到',B,'下车');%使用= = = >加上矩阵尺寸必须同意。
基于元胞自动机模拟带收费站和红绿灯的交通问题matlab源码
基于元胞自动机模拟带收费站和红绿灯的交通问题matlab源码基于元胞自动机模拟带收费站和红绿灯的交通问题,是交通仿真领域的一项研究。
这项技术可以帮助交通规划者预测交通问题的发生,并为改善交通流提供数据支持。
MATLAB是一款强大的数值计算软件,可以用来实现这个问题的仿真过程。
下面将分步骤阐述如何实现这个交通问题的元胞自动机仿真。
1.建立环境首先我们需要在MATLAB中建立仿真环境,包括定义道路网格、交通流量和车辆类型等。
在此基础上,我们可以设定道路的长度和宽度、车流量、车辆速度等参数,构建仿真模型。
这些参数的设定对仿真结果的准确性和效率都有较大影响。
2.模拟红绿灯控制在交通流模型中,红绿灯控制是最关键的问题之一。
我们需要设定红绿灯时序和控制方式,用元胞自动机“告诉”仿真环境哪些车辆可以通行、哪些车辆需要停车等。
3.实现收费站功能收费站是现代城市交通网络中一个非常重要的环节。
在仿真中,我们可以通过定义特定的元胞状态,用元胞自动机实现收费站的功能。
根据收费站的类型不同,我们可以定义不同的元胞状态和处理流程。
4.仿真流程优化模拟仿真的流程对最后的结果影响很大。
我们需要根据仿真实验的目标、节点、数据等内容对仿真流程进行优化,提升仿真效率、降低误差率。
5.仿真结果分析仿真结束后,我们需要对仿真结果进行分析,包括交通流量分布、车辆延误情况、交通拥堵等细节。
通过分析这些数据,我们可以了解交通流中的瓶颈和问题,提出相应的改进方案。
总之,利用MATLAB和元胞自动机技术可以很好地模拟带收费站和红绿灯的交通问题,为交通规划和改进提供有力的支持。
对于交通问题的研究者和交通规划人员,这项技术都有很大的研究与应用前景。
基于matlab的FAHP数据处理器的开发与研究--以快速公交系统BRT为例
基于matlab的FAHP数据处理器的开发与研究--以快速公
交系统BRT为例
肖国君;傅慧敏
【期刊名称】《读写算(教研版)》
【年(卷),期】2015(000)018
【摘要】目前,我国许多大城市都被交通拥挤、道路堵塞、交通事故增多等诸多交通问题所困扰。
在这种情况下,快速公交系统逐渐被越来越多的人视为先进的公共交通系统。
但实施快速公交系统是否经济,需要对其进行评价。
本文主要通过MATLAB来使其实现模糊综合评价。
【总页数】5页(P21-25)
【作者】肖国君;傅慧敏
【作者单位】浙江省杭州市富阳区职业高级中学浙江 310000;浙江省杭州市富阳区职业高级中学浙江 310000
【正文语种】中文
【中图分类】G632
【相关文献】
1.建成区快速公交系统(BRT)建设探讨——以温州市快速公交一号线为例
2.快速公交系统模式研究——以广州市BRT试验线系统为例
3.浅谈快速公交系统的经济评价方法——以乌鲁木齐市快速公交系统BRT-1号线为例
4.BRT快速公交系统的创新与实践
5.BRT快速公交系统评价体系研究综述
因版权原因,仅展示原文概要,查看原文内容请购买。
基于matlab的公交车调度排班系统设计 毕业设计
基于matlab的公交车调度排班系统设计毕业设计在这篇文章中,我将深入探讨基于Matlab的公交车调度排班系统设计,以及如何将其作为毕业设计项目的相关内容。
我会从简单的概念开始,逐步深入,为你解释这个主题的重要性、实现方法以及我对这个主题的个人理解和观点。
一、主题的重要性1. 公交车调度排班系统是公共交通领域的一个重要组成部分,对城市的交通运行和人民出行起着至关重要的作用。
2. Matlab作为一种强大的计算工具,能够提供多种方法和技术来解决公交车调度排班系统中的复杂问题。
3. 通过深入研究和设计这样一个系统,不仅可以提高城市交通的效率,还可以为公共交通行业的发展做出贡献。
二、实现方法1. 使用Matlab编程软件,结合数学建模技术,对公交车调度排班系统进行建模和仿真。
2. 采集和分析公共交通系统的运行数据,为系统设计提供可靠的数据依据。
3. 运用优化算法,对公交车的运行路线、发车间隔等进行调度和排班。
三、个人观点和理解1. 在设计这样一个系统的过程中,我认为需要充分考虑城市的实际情况和公交系统的特点,以及乘客的出行需求。
2. Matlab的强大功能可以帮助我们更好地分析和解决公交车调度排班系统中的复杂问题,提高系统的精准度和效率。
3. 作为毕业设计项目,基于Matlab的公交车调度排班系统设计不仅可以锻炼我们的工程能力,还可以为城市的发展和人民的生活质量做出贡献。
总结回顾基于Matlab的公交车调度排班系统设计作为毕业设计项目具有重要的实践意义和应用前景。
通过深入研究和设计这样一个系统,不仅可以提高城市交通的效率,还可以为公共交通行业的发展做出贡献。
Matlab这一强大的计算工具为我们提供了丰富的方法和技术来解决公交车调度排班系统中的复杂问题。
我个人认为,系统的设计需要充分考虑城市的实际情况和公交系统的特点,以及乘客的出行需求,从而提高系统的精准度和效率。
希望通过这篇文章的阐述,你能更全面、深刻和灵活地理解基于Matlab的公交车调度排班系统设计这个主题。
基于Matlab的BP神经网络在公交车辆调度中的应用
翠 、 燕 青 等口 提 出 的基 于 B 张 P神 经 网络 的公 交
线路 站 点时 段上 下 客预 测模 型适 合公 交 车辆 实 时 调度 模 型 的数 据 准 备 工 作 , 且 以 哈尔 滨 市八 路 并
公交 线路 为例 证 明 了 3层 B P神 经 网络模 型在 公 交站 点 的上下 车人 数 预 测 上 具 有 极 高 的精 度 . 借
1 )输 出节 点 的输入 , . 2 )隐节点 的输 出
1 M alb 的 神 经 网络 工 具 箱 ta
11 B . P神 经 网 络 算 法 原 理 B ( a kp o a ain 误 差 反 传 ) 经 网 络 P b c — rp g t , o 神
一厂 ∑训 z 一0 ( 1 )
式确 定
q 。一 q o ( 3) 1
式 中 :。为 车 辆 额 定 载 客 量 ; 为 车 辆 满 载 率 q
K 一
(5 1 )
第 3期
孙 静 怡 , : 于 Malb的 BP神 经 网 络 在 公 交 车 辆 调 度 中 的应 用 等 基 ta
ห้องสมุดไป่ตู้
・6 O1 ・
式 中 : 为 高单 向客 运 量 , 统计 时 间 线 路 最 大 Q 即
车站平 均乘 客集 散 量之 比 , 即
n
式 中 : 为 统计 时 间 内第 i 时段 客 流 量 ; 为 个
统计 时 间内平 均路段 客 流量 .
路 段 客 流 量 差 ( Q? , 统 计 时 间 内 某 高 路 A )指 段 客 流量与 沿线 各路 段平 均客 流 量之差 , 即
△ — Q 一 Q ( 2 1)
Kc一 J
Matlab在智能交通系统中的应用案例
Matlab在智能交通系统中的应用案例智能交通系统是一种利用先进的信息技术和通信技术,以及计算机和传感器等设备,对交通流动进行监控、管理和优化的系统。
近年来,随着人工智能和大数据技术的快速发展,智能交通系统在城市交通管理中发挥了重要作用。
本文将探讨Matlab在智能交通系统中的应用案例,并深入分析其对交通管理的意义。
一、交通流量预测与优化交通流量预测是智能交通系统中的重要任务之一。
通过对历史交通数据的分析和建模,可以准确预测未来某一时刻或某一路段的交通流量,为交通管理部门提供决策支持。
Matlab提供了强大的数据分析和建模工具,可以帮助交通管理人员通过分析大量的历史交通数据,建立精确的交通流量预测模型。
通过预测交通流量,交通管理人员可以根据实际情况进行交通信号灯的调整,优化交通路网,提高交通效率。
二、交通事故预警与分析交通事故是交通管理中的严重问题,对人身安全和交通秩序造成重大影响。
利用Matlab的图像处理和模式识别技术,可以对交通监控摄像头拍摄到的交通画面进行实时分析,检测交通事故的发生,并及时报警。
利用Matlab的数据处理和统计分析功能,可以对交通事故数据进行深入分析,找出事故发生的规律和原因,为交通管理人员提供有效的决策依据。
通过交通事故预警和分析,可以及时采取措施减少事故事件的发生,提高道路安全性。
三、道路拥堵监测与调控道路拥堵是城市交通中一大难题,在高峰时段给人们出行带来极大的不便。
通过利用Matlab对交通数据进行分析,可以实时监测城市各个道路段的交通状况。
通过采集和分析交通数据,可以找出道路拥堵的原因和影响因素,并通过调整交通信号灯的周期来缓解道路的拥堵情况。
此外,通过Matlab的优化算法,可以为出行车辆规划最佳的路线,避开拥堵的道路,减少通行时间。
通过道路拥堵监测与调控,可以提高城市交通的流畅性和效率,为居民提供更加便捷的出行服务。
四、智能交通信号控制传统的交通信号控制方法往往无法适应城市交通的变化,导致交通拥堵和效率低下。
Matlab在智能交通系统中的使用方法
Matlab在智能交通系统中的使用方法智能交通系统是指通过对交通信息进行采集、传输、处理和分析,提供交通管理、控制、监测和服务的一种综合应用系统。
Matlab作为一款强大的数据处理和模拟仿真工具,在智能交通系统中具有重要的应用价值。
本文将介绍Matlab在智能交通系统中的使用方法,并重点讨论其在交通流优化、交通模型建立以及交通预测等方面的应用。
一、交通流优化交通流优化是智能交通系统中的一项重要任务,目的是通过合理的交通信号控制和路网优化,提高交通网络的效率和安全性。
Matlab提供了强大的优化算法和可视化工具,可以帮助交通工程师对交通流进行建模和优化。
首先,通过Matlab的数据处理能力,可以对交通流进行实时的数据采集和处理。
例如,通过连接传感器或摄像头,可以实时获取交通流的车流量、速度和密度等数据。
然后,利用Matlab的算法库和优化工具,可以对这些数据进行分析和优化。
例如,通过分析交通流的拥堵状况和道路条件,可以利用优化算法对交通信号的配时方案进行优化,从而减少拥堵和排队长度。
其次,Matlab还提供了强大的绘图和可视化工具,可以帮助交通工程师对交通流进行可视化分析和展示。
通过Matlab的图形界面设计工具,可以绘制交通流的流量图、速度图和密度图等,直观地展示交通流的分布和变化趋势。
这对交通工程师来说是非常重要的,可以帮助他们更好地理解交通流的特点和规律,并制定相应的交通优化策略。
二、交通模型建立交通模型是智能交通系统中的另一个重要组成部分,用于描述交通流的变化和预测交通流的发展趋势。
Matlab作为一个强大的数值计算和模拟工具,可以帮助交通工程师构建和验证交通模型。
首先,通过Matlab的数据处理和建模能力,可以对交通流的历史数据进行分析和建模。
例如,通过统计不同时间段的交通流量和速度等数据,可以建立交通流的统计模型;通过分析交通流的时空分布,可以构建交通流的空间模型。
这些模型可以帮助交通工程师预测交通流的变化趋势,并提供相应的交通规划和管理建议。
Matlab技术在智能交通中的应用案例解析
Matlab技术在智能交通中的应用案例解析智能交通作为一个快速发展的领域,涵盖了诸多技术和应用,其中Matlab技术在智能交通中的应用具有重要意义。
本文将通过几个实际案例来解析Matlab技术在智能交通中的具体应用。
一、车辆检测与跟踪车辆检测与跟踪是智能交通中的一个重要环节。
利用摄像头或传感器采集的交通图像或数据,可以进行车辆的检测和跟踪。
而Matlab提供了丰富的图像处理和计算工具箱,能够有效地进行车辆检测与跟踪。
在一次车辆行驶记录数据的分析中,使用Matlab的图像处理工具箱提取图像中的车辆轮廓。
通过对轮廓进行处理,可以得到车辆的位置、大小、方向等信息。
然后,结合跟踪算法,可以实现对车辆的实时跟踪,并进行相关的数据分析和统计。
二、交通流量预测交通流量预测是智能交通中的另一个重要应用场景。
利用历史交通数据和相关的影响因素,可以预测未来交通流量的变化趋势。
而Matlab提供了强大的数据分析和预测建模工具,能够对交通流量进行准确的预测。
在一个城市交通流量预测的实际案例中,使用Matlab中的时间序列分析工具箱对交通数据进行建模和分析。
通过构建适当的时间序列模型,可以预测未来不同时间段的交通流量变化情况。
这对于智能交通系统的优化和调整具有重要意义。
三、智能信号控制智能信号控制是提高交通效率和减少交通拥堵的关键手段。
而Matlab提供了灵活的模拟和优化工具,使得智能信号控制的实现更加高效和智能化。
在一个交通信号优化的实际案例中,利用Matlab的仿真工具进行信号配时方案的模拟和优化。
通过对不同方案的仿真比较和评估,可以找到最优的信号配时策略。
这将有助于减少交通堵塞和提高通行效率。
四、交通拥堵识别与预警交通拥堵识别与预警是智能交通系统中的一个重要环节。
提前识别和预测交通拥堵情况,能够帮助驾驶员选择更优的路线并减少交通延误。
而Matlab提供了强大的数据处理和模式识别工具,能够实现交通拥堵的快速识别和准确预警。
MATLAB在智能交通系统中的应用概述
MATLAB在智能交通系统中的应用概述智能交通系统是现代城市交通管理的重要组成部分,它借助信息技术和通信技术,在交通流量监测、交通信号控制、交通事故预警等方面发挥着重要作用。
其中,MATLAB作为一种强大的科学计算软件,具有丰富的工具箱和广泛的应用领域,在智能交通系统的设计、优化和性能评估等方面发挥着重要的作用。
本文将从交通流量分析、交通信号控制和交通事故预警等方面,探讨MATLAB在智能交通系统中的应用。
一、交通流量分析交通流量是智能交通系统中的核心概念之一,准确地监测和分析交通流量对于交通管理和规划具有重要意义。
MATLAB提供了一系列用于交通流量分析的工具,例如图像处理工具箱和统计工具箱。
利用图像处理工具箱,可以将交通摄像头拍摄到的交通图像进行处理和分析,识别交通流量、车辆类型和行驶速度等信息。
统计工具箱提供了各种统计方法,可以对交通数据进行分析,例如平均流量、车辆密度和拥堵指数等。
此外,MATLAB还可以结合其他传感器数据,如地磁传感器和无线电频率识别传感器,获取更全面准确的交通流量信息。
通过使用MATLAB的数据融合算法,可以将来自不同传感器的数据进行融合,以提高交通流量的准确性和精确度。
二、交通信号控制交通信号控制是智能交通系统中的重要环节,它通过合理的信号配时和交通信号优化算法,提高交通运输效率和安全性。
MATLAB提供了多种用于交通信号控制的工具和算法,例如智能交通系统仿真工具箱和优化工具箱。
使用智能交通系统仿真工具箱,可以对交通信号控制方案进行仿真和优化。
通过建模并模拟现实交通场景,并结合交通流量数据和车辆行为模型,可以评估不同的信号控制策略,并找到最佳的信号配时方案。
优化工具箱提供了多种优化算法,如遗传算法和模拟退火算法,可以在复杂的交通网络中寻找最佳的信号配时参数。
三、交通事故预警交通事故是智能交通系统中的重要问题之一,及早发现和预警交通事故,对交通安全具有重要意义。
MATLAB通过分析交通数据和交通模型,可以帮助预测和预警交通事故的发生。
计算方法MATLAB程序样例
1.利用共轭梯度法求解大规模稀疏方程组1.1.算法原理共轭梯度法是把求解线性方程组的问题转化为求解一个与之等价的二次函数极小值的问题。
对于特定的线性方程组来说,选取与之等价的二次函数之后,可以从任意给定的初始点出发,沿一组关于矩阵A 的共轭方向进行线性搜索,在无舍入误差的假定下,最多迭代n次(其中n为矩阵A 的阶数),就可以求得二次函数的极小点,也就求得了线性方程组A x=b的解。
对于特定线性方程组A x=b,其对应的n元二次函数为:f(x)=12x T Ax−b T x其中A为对称正定矩阵,二次函数的梯度为:∇f(x)=Ax+b 通过一系列的数学推导,最终可以得到共轭梯度的计算公式:{d(0)=r(0)=b−Ax(0)αk=r(k)T d(k)d(k)T Ad(k)x(k+1)=x(k)+αk d(k) r(k+1)=b−Ax(k+1)βk=−r(k+1)T Ad(k)d(k)T Ad(k)d(k+1)=r(k+1)+βk d(k)共轭梯度法在形式上具有迭代法的特征,即给定初始向量x(0)后,由迭代格式x(k+1)=x(k)+αk d(k)能够产生迭代序列x(1),x(2),x(3),最终得到满足约束条件的解。
而该方法中关键的两点是,确定上述迭代格式中的搜索方向d(k)和最佳步长αk。
实际上,搜索方向d(k)是关于矩阵A的共轭向量,在迭代中逐步构造之。
步长αk的确定原则是给定迭代点x(k)和搜索方向d(k)后,要求选取非负实数αk使得f(x(k)+αk d(k))达到最小。
因此,由该算法原理可得共轭梯度法的程序流程图如下图所示。
图 1.1共轭梯度法程序流程图1.2.程序使用说明针对相关问题的源程序及注释如下:clc;clear all;format long;n=100;%A的阶数A=zeros(100);A=diag(repmat([1],1,n-1),1)+diag(repmat([1],1,n-1),-1)+diag(repmat([-2],1,n));%构建三对角矩阵b=zeros(n,1);b(1,1)=-1;b(n,1)=-1;x0=zeros(n,1);d0=b-A*x0;r0=b-A*x0;D0=d0;R0=r0;X0=x0;C=norm(A)*norm(inv(A));%共轭梯度法¨for k=1:3*na0=(r0.'*d0)/(d0.'*A*d0);x=x0+a0*d0;r=b-A*x;beta=-(r.'*A*d0)/(d0.'*A*d0);d=r+beta*d0;x0=x;r0=r;d0=d;if norm(r)< 1e-9seigm(k)=norm(r);breakelseseigm(k)=norm(r);endendR=r0;X=x0;%最速下降法¨r0=R0;d0=D0;x0=X0;%读取初始向量初始残差与初始方向for k=1:3*na0=(r0.'*r0)/(r0.'*A*r0);x=x0-a0*r0;r=A*x-b;f=x-x0;x0=x;r0=r;if norm(f)< 1e-9seigm1(k)=norm(r);breakelseseigm1(k)=norm(r);endendR1=r0;X1=x0;m=1:length(seigm);M=1:length(seigm1);figure;plot(m,log(seigm),'r');%误差对数的变化曲线hold on;grid on;plot(M,log(seigm1),'b');hold on;grid on;legend('¹²éîÌݶȷ¨','×îËÙϽµ·¨','fontname','ËÎÌå');运行上述程序可得共轭梯度法和最速下降法误差收敛速度图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公交站点IC刷卡计数算法及其MATLAB实现查伟雄1,刘金行(1华东交通大学,南昌330013)摘要:中国大部分城市的公交公司早期并未成熟利用信息技术和数据库技术,因此其IC刷卡记录与车辆调度记录很难达到对精确性、实时性和关联性的要求。
为了最大限度利用这些海量的原始记录,本文针对实际情况,在允许一定误差的前提下,提出了公交站点IC刷卡计数算法,并能够结合实例使用数学软件MATLAB实现此算法。
关键词:智能交通,IC卡收费系统,公交站点,MATLAB中图分类号:U495 文献标识码:ABus Station IC Credit Cards Counting Algorithm andMatLab ImplementationZHA Wei-xiong, LIU Jin-hang(1.School of Eastchina Jiao Tong University,Nanchang 330013)Abstract: In early time,most of the city's public transport company in China is not mature use of information technology and database technology, so the IC credit cards records and vehicle scheduling records difficult to achieve on the accuracy, timeliness and relevance requirements. In order to maximize the use of these massive amounts of original records, this paper depending on the circumstances allowed under the premise of a certain error is proposed Bus Station IC credit card counting algorithm, and can combine instances of the use of mathematical software MATLAB realization of this algorithm.Key words: Intelligent Transportation System, IC card payment system, public transportation sites, MatLabCLC number: U495 Document code: A0 引言现在,我国许多大城市都开始使用公交IC卡,并且已经初具规模。
例如,青岛市2 600辆电汽车已经配备了IC卡收费系统,占公交车总数的80%,每天持卡乘车90万人次,占无人售票款收入的70%左右;天津市区已有2 500辆公交车可以使用公交IC卡乘车,占市区公交车总量的80%,市区已有12万乘客持卡坐车,占乘坐公交车总人数的26%;太原市持卡者占总客运人次的40%;广州市市内约有300条公交线路、6 200多辆公交车,95%以上的公交车辆已开通或安装了车载收费机[1]。
可以说持卡乘车是公交发展的必然趋势,但与国外相比,国内对收费系统的利用还远远不够[1]。
IC卡系统不仅给乘客、公交公司带来了具大的便利,而且其数据库系统记录了大量交通流信息,为交通调查提供了最原始、最直接和具有丰富操作性的第一手资料[2],因此研究从IC卡系统数据库中获取交通流信息的方法具有很重要的意义。
1 现实中IC卡系统现状现实中的IC卡系统存在以下三种情况:(1)IC卡系统与车辆调度系统共用一个时间钟,并且可以自动记录每一辆车到达、离作者简介:查伟雄,男,1963年生,教授开任一站点的时间,如使用了公交车GPS,便能够实现对任何装有终端的公交车进行实时监控[5],或者直接采集公交车行驶公里数,也可以实现对中间站点的记录[6]。
这类情况可以利用IC刷卡记录在数据库中自动匹配站点,即而准确无误差地将各站点任意时段的刷卡数统计出来。
这类情况无需设计算法,只需要在数据库系统中进行检索即可直接得到所需要的信息。
(2)IC卡系统与车辆调度系统共用一个时间钟,并且可以自动记录车辆从起点站发车时间和到达终点站时间,但不能够记录车辆到达、离开中间各站的时间[2]。
这类情况说明车辆调度系统仅仅停留在车辆发车与收车的调度上,并未实现对中间站的实时记录。
车辆调度系统不能够实时记录车辆到达、离开中间各站的时间,并不意味着IC卡系统的刷卡记录失去了作为交通流量调查原始资料的作用。
我们仍然可以按照公交车的运行规律设计算法,在一定误差范围内将刷卡记录匹配到各站点,戴霄、陈学武已经提出针对这种情况的相关算法。
(3)IC卡系统与车辆调度系统分别使用自己的时间钟,并且人工记录车辆从起点站发车时间和到达终点站时间,甚至仅仅人工记录车辆运行误差时间。
这类情况比起前者来说更为复杂,车辆发车时间、中间各站点间停留时间、收车时间均无准确记录,要把平均每天每条线路数万条刷卡记录准确匹配到线路各站点间,几乎不可能做到。
虽然这对于统计来说非常不利,但它却是存在于现实中最多的情况之一。
如果在允许一定误差的前提下,通过研究公交车运行规律,则可以设计算法将每一条刷卡记录匹配到线路各站点。
2 针对第三种情况的算法公交车的运行规律一般是:一、每辆车所跑线路、工作时间相对稳定。
二、每辆车每天从第一次发车开始,在以后的工作时间内一般属于循环作业,即:若线路形状为环形线路,则车辆沿环形线路持续作顺时针运动或逆时针运动;若线路形状为路段线路,则车辆重复作起点站——终点站——起点站运动。
跟据观察发现,车辆调度时为了尽可能提高经济效益,每辆车在完成一轮循环回到原始出发点时不会长时间停留,所停留时间与中间站点停留时间相差无几。
每辆车在一天当中不会轻易改变其所在线路号,在无故障的情况下,也不会停止车辆的循环作业。
在设计算法时,考虑到由于刷卡时间记录由IC系统自动记录,其时间精确到秒,而人工记录完全精确不到这一时间单位,甚至有较大误差。
按照人工记录形成的行车记录表来将刷卡记录划分至每一循环阶段的方法在程序对表格进行操作时是行不通的,因此本算法提出将所有刷卡记录和每辆车当天经过所有站点一起进行匹配的基本思想。
提出此思想的根据在于:许多公交公司在管理中为了加强管理力度,为每辆公交车从起始站到终点站人为规定了明确的行程时间,前车不许压点(故意放慢速度),后车不许提前(故意加快速度),对于公交车司机来说,每次的循环作业时间是相对固定的,这种现象可以证明本文算法的合理性。
本算法流程如下:图1. 算法流程图Fig1. Algorithm flow chart具体步骤如下:STEP1: 对IC刷卡源数据和行车记录表进行预处理,将IC卡源数据整理成至少具有以下三列信息的表格形式,命名为IC:表1. IC样表Tab1. IC Sample Table将行车记录表整理成至少具有以下二列信息的表格形式,命名为PLAN:表2. PLAN样表Tab2. PLAN Sample Table在形成表格的时候应该注意:为了方便MA TLAB计算,将刷卡时间的数值类型由时间型改为数值型,车号和卡号也都由文本型改为数值型,数值转换格式以EXCEL为标准。
其中IC表必须包含完整的全天刷卡记录,PLAN表中车号排列顺序必须符合当天的完整发车顺序。
由于行车记录表中起点站出发时间和终点站到达时间均不准确,因此无法对精确到秒的IC表进行关联操作,对本算法来说属于无效数据。
整个算法只利用行车记录表中的各线路发车次数和IC表中刷卡时间来确定全线路各站点刷卡数。
STEP2:确定各线路站点时距比例信息,即确定每条路线的公交车每次循环作业所经过的各站点间距离时所用的时间比例,可以采用人工调查方法,也可以根据距离来确定,本算法利用公式来确定比例,其中为第i站到第i+1站间距离,,Z为该线路的站点总数,由于将所有线路均抽象成环形线路,因此站间距离必然也有Z个。
第L条线路设数组,中的元素(i)=。
从数组的第二个元素起执行(i)=(i)+(i-1)计算,直至最后一个元素。
STEP3:按车号筛选出发生于每一辆车的刷卡记录,并将每一辆车的刷卡记录形成一个子过程。
(1)生成代表含有线路号信息的刷卡时间流水数据的初始空数组CARD(),生成代表含有线路站点数的初始空数组CARD1();(2)导入表IC,生成矩阵IC,导入表PLAN,生成矩阵PLAN,令n=1;(3)判断IC(n,2)是否为0,若为0,则转步骤(8),否则,令B= IC(n,2);(4)寻找PLAN(:,2)中所有与B相等的元素,记录个数为M;(5)从PLAN(:,2)中查出第一个与IC(n,2)相等的元素所在行数X,则令线路号L=PLAN(X,1),将L作为一个元素写入数组CARD,并将M作为一个元素写入CARD1;(6)将IC(:,2)所有与B相等的元素所在行的第一个元素同时写入CARD和CARD1,然后将IC(:,2)中所有与B相等的元素清零,将PLAN(:,2)中所有与B相等元素清零;(7)计算IC的行数ICL=size(IC,1);(8)n=n+1,若n>ICL,则结束,否则返回步骤(3);STEP4:按时间段筛选刷卡时间记录。
(1)设TIME=1;(2)生成与CARD同维的零数组CARD3。
对CARD的每一个元素执行判断R=(TIME-1)/24<CARD(1)<(TIME)/24,若R=1,则将此元素写入同样位置的CARD3;STEP5:为CARD和CARD1中的每个刷卡时间数据匹配站点。
(1)生成L个空矩阵,l=1……L,分别对应于L条线路;(2)令N=1;计算数组CARD的维数W=size(CARD(1,:));(3)由于EXCEL中转换为数值类型后的时间数值取值范围为[0,1],可以通过检测大于1的元素来寻找CARD和CARD1中非刷卡时间记录的元素位置。
查找CARD数组中第N个大于1的元素位置C,得到线路号,查找对应数组,计算数组元素个数Z,生成零矩阵A=zeros(1,Z);(4)查找CARD数组中第N+1个大于1的元素位置D,令H= ;(5)若CARD3(C+1)>0,则计算H1)+ CARD(C-1)+(CCARD3的余数MOD,在数组中查找大于MOD的第一个元素的位置z,z就是刷卡记录CARD3(C+1)在线路CARD(C)刷卡的站点位置,令A[1,z]= A[1,z]+1;(6)依次对CARD3(C+1)以后的元素执行步骤(5),直至CARD3(D-1);(7)N=N+1,重复步骤(3) (4) (5) (6)。