由约束条件公式(3)可知,满足到站装车的条件有两种,信捷职称论文写作发表网,一是(Di ÎSi);二是(DiÏS直达 && min D (Di, Ti));第二种情况计算货物装载车次到站最短距离(CalculateMinDis)函数的实现相对复杂一些,但此函数是属于图论中求两点之间最短路径的问题。为了简化此函数的算法,在停靠站表(TKZB)中添加了一个中转站标志(CrossL)字段,有了此项将大大降低程序的复杂度和提高函数的处理速度。部分程序代码如下:
CreatTempTable(#TKZB_T); // 创建停靠站临时表
CreatTempTable(#XBXX_T); // 创建行包信息临时表
AdoQuery1.sql.clear;
AdoQuery1.add(‘insert into #TKZB_T (select * from TKZB where TrainNumber =”当前车次”)’);
AdoQuery1.ExeSql; // 将满足( Di Î Si )条件的到站添加到停靠站临时表中
CalculateMinDis (‘当前车次’); // 将满足(DiÏS直达 && min D (Di, Ti))条件的到站添加到停靠站临时表中 AdoQuery1.sql.close;
AdoQuery1.sql.clear;
AdoQuery1.add (‘insert into #XBXX_T (select XBXX.* from XBXX,#TKZB_T where #TKZB_T.StationName = XBXX.ArriveStation)’);
AdoQuery1.ExeSql; // 将满足到站条件的行包添加到行包信息临时表中
3.2.2 计算备装行包的maxB并排序
从目标函数公式(8)知,在计算maxB时将用到行包类别、货物存放时间、到站里程和保价金额。其中货物存放时间可根据制票时间求得。部分程序代码如下:
AdoQuery1.sql.close;
AdoQuery1.sql.clear;
AdoQuery1.add (‘update #XBXX_T set maxb =
PackageType* (now- TicketTime)+
Distance/200+ InsureMoney/500’);
AdoQuery1.ExeSql; // maxB
AdoQuery1.sql.close;
AdoQuery1.sql.clear;
AdoQuery1.add (‘select * from #XBXX_T order by maxb’);
AdoQuery1.Open; // 按maxB进行排序
3.2.3 根据约束条件剔除多出的行包约束条件公式(4)是在生成装成单时必须要考虑的项。目前在一些站由于每一个行包的体积不能准确给出,所以约束条件公式(5)这一项在实际编程时可根据实际的体积数据进行处理,主要是作为参考。停靠站装卸能力约束,如公式(7),此约束条件若知道了每一个停靠站的 ,则具体的编程实现并不复杂,单位时间装卸能力和装卸时间的值可通过系统参数输入界面人工维护进去。
4 结束语本配装算法对每一批行包是否装车的进行了科学的量化,避免了人为处理的随意性,算法程序的可实现性大大增强。此算法在实际的使用过程中,可根据各个车站的实际来调整maxB的各个条件权重值来取得最佳的装车效果。装车的约束条件可根据不同的车站而有选择性地进行处理。本文是作者在开发实践经验的基础上进行的归纳总结。
1 潘俊杰,王一新.铁路旅客列车行李车配装问题的遗传算法研究[J].兰州:甘肃科技,2004.6
2 孙远运.TMIS总体架构设计研究[J].北京:铁路计算机应用,2005.7
3 贺振欢,刘军.铁路车站行包配装计算机辅助决策系统的研究[J].北京:北京交通大学学报,2000.6
4 雷定献,陈德良.平衡装载问题的优化模型和算法[J].天津:系统工程学报,2004.6
5 吴清一.物流管理[M].北京:中国物资出版社,2003
6 谭显伦,阮永良.一种新的背包加强算法[J].合肥:电脑知识与技术,2004.10
7 浏小群,马士华,徐天亮.装载能力有限下多品种货物配装的容重比平衡法[J].上海:工业工程与管理,2004.3
8 中华人民共和国铁道部.铁路旅客运输管理规则[S].北京:中国铁道出版社,1998