上海地铁列车运行图自动编制系统
第29卷 第21期Vol.29 № 21
计 算 机 工 程Computer Engineering
文献标识码:A
2003年12月 December 2003
中图分类号:TP278
文章编号:1000—3428(2003)21 —0165—03・工程应用技术与实现・
上海地铁列车运行图自动编制系统
庄 巍,陈永生
(同济大学电子信息工程学院计算机系,上海 200331)
摘 要:介绍了一个基于数据库和矢量图形的列车运行图自动生成系统的设计和实现。系统实现了数据的输入、修改,并根据数据的更新自动生成地铁列车运行图。
关键词:列车运行图;矢量图形;数据库
Auto-generating System for Shanghai Metro Train Route Map
ZHUANG Wei, CHEN Yongsheng
(Dept. of Computer, College of Informafion Engineering, Tongji University, Shanghai 200331)
【Abstract 】This paper describes the design and implementation of an auto-generating system for train route map based on database and vector graph .In this system,the management graphs of trains are generated automatically according to the renewed data.【Key words】Train route map; Vector graph; Database
伴随着世界范围内城市化的发展进程,为解决日益恶化的城市交通问题,各国纷纷规划与建设立体化的城市轨道交通系统。而作为城市轨道交通运营组织的重要工具,列车运行图有着重要的意义。它是城轨交通行车组织的工作计划和工作基础。根据城市轨道交通的特点――全部为旅客运输、运行距离短、有明显的高峰期、客流随季节的变化大等,轨道交通在设计上一般是:站间距离较短,行车密度较高,行驶速度较快, 安全性能好。因此,在编制城轨交通运行图时,既要满足载客的要求,又要满足设备的要求。
目前,在城轨交通列车运行图的排布过程中,编图人员依靠经验和概算,根据客流、运能、季节、站点分布等情况,用铅笔和二分格图纸编制完成,不仅复杂度高、工作量大、编图周期长,而且编制质量得不到保证。且不说绘图时间,单说编图资料的收集及查询,对资料的分析、处理、计算,都是费时费力的工作,需要面对大堆的表格和大批的数据,若要保证其正确性就更要花功夫。而且轨道交通每经过一定时期就有必要重新编制一次列车运行图,以适应客运量和技术设备的较大变化或运输组织方法的调整。如果能把编制运行图的工作交给计算机来完成,我们要做的只是输入资料和参数,并在计算机自动编制一幅运行图后做一些合乎我们要求的修改,那么就将大大减少编制运行图的工作量,缩小编图周期,从而提高工作效率。同时根据上海交通总体发展趋势和轨道交通需求的客运分析,上海将形成“十字加环”和若干放射线组成的便捷、快速的轨道交通骨干网络,覆盖上海大多数区域的线网格局。而在编制网状线路列车运行图时,人脑却很难适应复杂的线网结构和列车自动运行系统复杂的规则。地铁列车运营计划自动排布系统是在轨道交通路网范围内,计算机自动编制列车运行图,以期达到减轻编图人员劳动强度,缩小编图周期,提高运行图编制质量的目的。
储、组织、管理整个排布系统的数据信息。运行图自动排布子系统包括运行图自动编制、运行图调整、运行图输出模块。它是系统的核心部分,根据地铁运营情况,通过求解模型中的函数,得到编制列车运行图的数据,自动完成列车运行图的排布并经人工介入调整后输出使用。图形采用矢量存储格式可以在计算机屏幕或打印机上无极缩放的输出。各个模块的切换和调度通过排布系统的主控管理界面来完成。
整个城轨交通列车运行图自动排布软件的核心是运行图的数学建模部分。关键技术包括列车运行图编制模块、列车运行图调整模块、列车运行图输出模块及数据管理模块。
软件采用单文档视图结构,将列车运行图涉及许多方面的编图数据(列车信息、车站信息、线路信息、车库信息、列车时刻表信息和图形显示信息等)的处理,还有复杂的运行图优化编图算法,编图数据预处理和结果输出处理(编调图数据库管理、运行图人工调整、运行图输出、列车时刻表输出以及指标统计),都在文档中完成,视图只负责将文档中的数据进行显示。
系统框架如图1
。
图1 系统的框架
1 系统设计
根据现有业务的分析,系统由数据库子系统和运行图自动排布子系统组成。其中数据库子系统包括数据管理和数据存储两个模块。它是编图的基础,又是编图的归属,负责存
2 运行图数据库管理子系统
运行图数据库管理子系统是编制地铁列车运行图的关键
代码 2(创建表格的方法)所在和主要数据的源头,分为基础数据操作、编图数据操
CreateTable(CString tdName,CDaoFieldInfo* fieldInfo,int 作、其他数据操作(运算参数及结果数据)及维护、相关工
nFields) 具、帮助等功能,可将大量的编图资料信息,按顺序排列收
{ CDaoTableDef td(m_pDB);
集输入,统一分类汇总,前后呼应联络,形成了系统编程科
td.Create(tdName);
学合理、编图数据选编齐全、输入数据操作简便快捷、基础
for(int i=0;i
数据输入完毕后可自动生成部分关键编图数据的特点,不仅
{td.CreateField(fieldInfo[i]);
减少了部分输入数据工作量,提高了数据的准确度,而且经 }检查、查询、修改、保存,形成准确、完整、稳定、可靠的 td.Append();运行图数据库管理子系统。 td.Close(); }2.1 运行图数据库设计3 运行图自动排布子系统
由地铁列车运行图的特点决定采用Access2000作为平运行图自动排布子系统以列车运行图建模为中心,通过台,共分为3个数据库――系统数据库,基本数据库及结果基础运营分析,辅以基础运营手段,建立完整性、通用性和数据库。其中系统数据库包含了地铁线路表和运算参数表智能性的网络运营计划自动排布系统的数学模型。该模型(表1),这两个表决定了排哪一条线路的运行图以及对该中,结合地铁运营的实际情况,在由N 个车站和N-1个区间线路运行图的基本要求;基本数据库则可以储存该线路的所组成的线路区段内同方向的列车具有相同的运行路径,将区有参数(车站(表2)、股道、道岔、区间、列车、上下行客段内的车站从区段起点站顺序编号,以各折返段行车密度和
) 流、车库、日行车计划等多个数据字典;而结果数据库则客流量变量,区间列车运行时间、列车停站时间、列车追踪
保存了经过计算后该线路的旅客时刻表、查错记录表及质量间隔时间、车站间隔时间、列车禁停、列车到发时刻特殊要指标表。求、车站折返线、列车具体情况等为约束条件,以列车使用
表1 运算参数表
LineCode
Begin_RunTime运营开始时间
Diagraph_Type运行图类型
{ m_pDB=new CDaoDatabase;
m_pDB->Create(dbName);}
End_RunTime运营结束时间
线路代码
UseTrain_Count
能用列车数
Solution_Number
Diagraph_date编图日期
结果编号
数(公式1)、上座率(公式2)、时间分段数(公式3)为优化目标函数。实际上,求解区段的运行图就是求解一个具有列车数×车站数×2个变量的多目标规划问题。对于单线路来说,通常情况下简化为运行速度极大的单目标规划问题。对于网络线路,则通过局部的多次优化来实现全局优化,用统筹的方法求解。求解的顺序是从区段起点站开始顺序计算或从区段内的限制区间端点站向两端延伸计算。计算机计算出合理的列车到发时间,在列车运行图坐标上编制列车运行线。列车运行图自动生成后,可通过操作灵活、方便的调图模块进行调整,最后输出所需列车运行图。
i i
(1)+∑i +1⋅t i 折N =∑i
i =1
i =0
m
表2 车站数据字典
Name
Code 代码
Type 站型
Plat_X站台中心X 坐标
t 上旅+t 下旅
d i
m
24
m −1
d −d d i ⋅d i +1
站名
Plat_Type
N 为列车使用数;d i 为高峰行车间隔时间) (其中max Z 1=∑∑ (2)i =1
j =1
F ij
Stop_Time停站时间
Rev_Time折返时间
Store_Out_Time存车线入正线时间
D ij ⋅C 2
站台类型
2.2 数据库管理和维护的实现
计算机编制列车运行图系统并不是简单的应用程序,Visual C++ 6.0一直以其功能强大、友好界面倍受程序员青睐。而MFC 的文档/视图结构为实现运行图自动编制系统提供了方便的、实用的框架结构。所以数据库模块也以Visual C ++6.0为数据库前台编程语言。
VC++ 6.0对Access 2000提供了非常友好的数据库接口――DAO (Data Access Objects)。MFC DAO是微软提供的用于访问Microsoft Jet *.mdb数据库文件()的强有力的数据库开发工具。由于MFC 对DAO 的封装比较充分,甚至可以通过该接口对数据库的结构进行操作(见代码1,2)。
在实际设计中,地铁列车运行图自动排步系统是个单文
/档应用框架(SDI )。由于MFC 的文档视图结构,因此把所
有数据库的后台操作均放在文档类,而把所有的前台操作则通通放在视图类,这样条理清晰,便于管理及修改。
代码 1 (创建数据库的方法)
CreateDatabase(CString dbName)
(其中Z 1为上座率;F ij 为每折返段每小时平均断面客流量)
min Z 2=∑∑T ij (3)
i =1j =1m
24
Z 2为时间分段数;T ij 为最优的时间分段)(其中 3.1 运行图的调图
文档/视图结构本身就是一种面向对象的框架设计,它将数据存储与数据显示分离,即将描述服务的函数和表示事务特征的数据用类来封装。面向对象的方法在进行调图系统设计与实现时都多次运用,利用C++语言面向对象的特点,使得整个设计直观、方便。
首先,识别应用范围实体。这些实体也许是资源、事件,或其它意义明确轮廓分明的特殊或专门的领域。在运行图调图系统中,实体最后确定为运行图和运行图上的各车次线路。后者原本也属于运行图输出的一部分,但对于不同的运行图这些线是主要区别,每幅图的线的数量、位置、形状都不相同。各车次的线是运行图的重要组成部分,也是调图
—166—
操作的主要单位。因此将这些线作为一个实体。
其次,确定实体的性态,即确定实体向应用过程提供的服务。构造、析构函数必不可少,用于初始化、分配资源,以及结束时回收分配的资源。考虑到运行图的操作,如绘制、缩放、整图显示、格式设置、信息读写等,分别设计了
/擦除,也相应的函数;对于线路的操作,包括创建、绘制设计了相应的函数,并考虑到调图时对线路的操作,为线路提供了拾取、移动点(代码3)、坐标与时间转换等操作。
最后,确定依赖性。由于调度子系统设计时仅牵涉两个实体,而且两者只是简单的从属关系。因此依赖性很容易确定。线路类对象是运行图类属性的一部分,两者通过指针连接。运行图对象可以拥有多个线路对象作为其内部元素,而每条线都必须从属于一个运行图类。所有对运行图的操作必须通过运行图对象进行,所有对线路操作都必须经过运行图对象再取到线路对象指针才能进行。
打开的运行图,可通过运行图调整来进行修改编辑。包括缩放图形,对运行线的操作(添加、删除、移动)。可将对运行图的调整进行撤销或者恢复。在每一步调图之前之后都用约束条件进行运算,只有允许的条件下才能进行调整,不然不能调整,给出提示。在完成所有的调图操作之后,通过刷新菜单进行全图的检查,看调图完成后的结果是否满足约束条件。如果满足,则提示调图成功,不然给出错误提示,并在错误记录表中记录。调整好的运行图,则可通过保存菜单进行保存更新结果数据库或者另存为不同的运行图结果。
代码 3(移动运行图上的点的方法)
CMovePoint::OnMouseMove(nFlags,CPoint ScrollPos,CPoint point){
if(!IsLButtonDown()) return;
CPoint ActPt = ScrollPos + point; CPoint pt;
CView* pView = GetView(); CDC* pDC = pView->GetDC(); pt.x = -ScrollPos.x; pt.y = -ScrollPos.y;
pDC->SetViewportOrg(pt);
m_pTrainLine->DrawPickedFlag(FALSE,pDC,m_nPtPos); m_pTrainLine->DrawSection(FALSE,pDC,m_nPtPos-1,m_nPtPos+1);
m_pTrainLine->MovePoint(ActPt,m_nPtPos); CRect rectBounding;
m_pTrainLine->GetRectBounding(rectBounding);
m_pTrainLine->DrawSection(TRUE,pDC,m_nPtPos-1,m_nPtPos+1);
m_pTrainLine->DrawPickedFlag(TRUE,pDC,m_nPtPos); pView->ReleaseDC(pDC);}
3.2 运行图的输出
运行图的输出分为图形输出和表格输出(列车时刻表)两部分。
图形输出:图形输出时,弹出对话框,选择线路代码、线路名称,出现已经存在的时刻表的结果编号,选择之后,在视图工作区显示。通过格式设置,可以不同的显示格式进行显示。然后通过打印预览、打印设置,进一步查看打印是否正确,最后打印输出。
表格输出:流程基本与图形输出类似,不同的是以表格形式输出。
4 结束语
采用计算机编制列车运行图,减轻了编图人员劳动强度、缩小了编图周期,又提高了运行图编制质量。下一步的开发研究可以考虑与日常管理的实时系统相结合,直接从现场自动采集数据,实现地铁列车运行图实时监控系统,为生产管理提供决策辅助功能。
参考文献
季令张国宝城市轨道交通运营组织北京中国铁道出版社1 , . . : , 1998
刘刀桂孟繁晶实践与提高数据库篇. : 北京中国铁2 , . Visual C++道 2001出版社,
谢杰华兰海列车运行图自动生成系统的设计与实现广西3 , . . 科 2001,17(4)学院学报,
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
(上接第140页)
由式(11)知矩阵(βA ) ∗满足式(12),所以该矩阵是半正定的,当然在空间{−2, 0, 2}n 上也是半正定的。而矩阵βB 是行对角或列对角占优的。由定理1和定理2知式(1)是并行
收敛的。
参考文献
1 Hopfield J J. Neural Networks and Physical Systems Emergent Collec-tive Computational Abilities. Proceedings of National Academy of Science USA,1982,79(4):2554-2558
2 Xu Z B, Kwong C P. Global Convergence and Asymptotic Stability of Asymmetric Hopfield Neural Networks, J. Mathematical Analysis and Applications,1995,191(3):405-427
3 Lee D L. New Stability Condotions for Hopfield Neural Networks in Partial Simultaneous Update Mode. IEEE Trans. Neural Networks, 1999,10(4):975-978
4 Ma Runnian, Zhang Qiang, Xu Jin. Convergence of Discrete-time Cellular Neural Networks. Chinese Journal of Electronics,2002,11(3): 352-356
廖晓昕昌 莉, 沈 . Hopfield轶离散神经网络的稳定性研究. 自5 ,
动 ,1999,25(6): 721-727化学报
马润年张强, 许 . Hopfield进离散神经网络的稳定性研究. 电6 ,
子 ,2002,30(7):1089-1091学报
3 小结
网络有没有稳定点只与网络的连接权矩阵和阈值有关。
如果一个网络是收敛的,那么给其连接权矩阵一个行对角(或列对角) 占优的增量矩阵后,所得的新网络是否仍然是收敛的?这正是本文讨论的重点。在一般情况下的回答是否定的,即使所给的增量矩阵是非负的对角矩阵也不能保证新网络的收敛性不变,但是特殊情况下还是成立的,如文中的定理1和定理2及推论等。
—167—