航运公司运输调度寻优(张建根 袁同斌 赵二帅)
- 格式:doc
- 大小:101.00 KB
- 文档页数:9
航运公司运输调度寻优 张建根 袁同斌 赵二帅 摘要 本文是为某驳运公司建立运输调度的最优模型,以达到实现合理利用资源并获取最大利润的目的。对于运单和驳船给定的情况下的单天调度问题,我们根据运单的起始港的不同分为两类(一级港、二级港)分别考虑,分别对其建立求最大利润的0-1规划模型,求解得出该天最大利润为52000元。具体承运方案如下: 运单 No.1 No.2 No.3 No.4 No.5 No.6 No.7 No.8 No.9 No.10 驳船 A2 B6 B1 B3 B5 C1 B6 B4 B2 A1
对于周期为三天的驳船调度方案,是一个全局最优问题,我们还依然建立一个求解最大利润的0-1规划。此规划实际上将三天内所有的调度可能包含在内。具体思想为首先根据航线许可证、体积、重量约束列出每一天每个运单可能被承运的驳船,对于第二天某个运单的可能承运的驳船,考虑其前一天的所有可能的调度驳运情况。如此建立0-1规划,用lingo求解,得出此三天的最大利润为53150元,具体承运方案为: 第一天: NO.1 NO.3 NO.7 NO.10 B4黄埔到香港 B5香港到广州 A2江门到广州到香港 A1香港到湛江
第二天: NO.4 NO.8 NO.9 香港——广州 B3汕头到香港 B2黄埔到香港 B5广州到江门到香港 B1香港到广州
第三天: NO.2 NO.5 NO.6 A1湛江到香港 A2香港到江门 C1广州到香港
关键词:驳船调度 0-1 规划 lingo 一、 问题分析 本文是为某驳运公司设计一个调度计划,为每天的运输任务进行排班,使得资源利用达到最优,从而使公司达到最大利润。公司有10条驳船,按承载能力分为三种类型:A、B和C;承运的是湛江、江门、广州、黄埔、汕头等五个二类港口和香港等一类港口之间的业务运单。根据题目给出的各港口之间的距离表,分析后可近似认为湛江、江门、广州、黄埔、汕头、香港在一条直线上,且相邻两港口之间的距离为50千米。对于运输的20’和40’两种集装箱,我们通过网络调查,它们的宽和高相同,20’的长接近40’的长的一半,20’的体积是40’的一半;且20’集装箱的自重为2.275吨,40’集装箱的自重为3.66吨。 对于问题一,在驳船和运单给定的情况下,综合考虑航线许可证约束、装箱个数即体积约束和载重约束,我们可建立求最大利益的0-1规划,用lingo求解即可得出最大利润以及具体调度方案。问题二是一个求全局最优的动态规划问题,综合考虑各种约束及所有可能的运输调度,我们亦可建立一个0-1规划对问题求解。
二、 模型假设与符号说明 一、模型假设: 1、假设每条船每天至多只能运行一条航线,且运输完毕后就近停靠在其到达的目的港口; 2、假设船在一级港口和二级港口之间的航行为一条航线,二类港口之间的调动不算运行一条航线; 3、假设驳船运输成本与运输路程成正比; 4、假设货物装卸时间可以忽略不计。 二、符号说明 a[i][j]:0、1变量,取1时表示A[i]承接运单j,取0时相反; b[k][j]:0、1变量,取1时表示B[k]承接运单j,取0时相反; c[m][j]:0、1变量,取1时表示C[m]承接运单j,取0时相反; y:总利润。
三、 单天调度计划的模型建立与求解 1、各运单货物和箱重总质量的计算 过互联网的调查,我们得知集装箱的重量20’的为2.275吨,40’的为3.66吨。一批这样的集装箱的重量是不可忽略的,根据各个运单信息,我们将每个运单的实际货物和箱重总质量计算得下表:(表一) No.1 754.75 No.6 1775.8 No.2 219.6 No.7 992 No.3 920.625 No.8 989.4 No.4 1342.8 No.9 1051.7 No.5 579.25 No.10 766.5
2、订单3、5、10的确定 订单3、5、10是由香港运往二级港口的,根据我们的假设1、2,只可能由原来停在香港的A1、B1、B5来运。根据许可证、所能装载的最大集装箱个数、所能装载的最大重箱个数(这实际仍为体积约束,故一个20’的重箱我们按照半个40’的重箱计算)、所能承受的最大重量4个约束,我们可得下面的利润表:(表二)
A1 B1 B5 No.3 6000 5250 5250 No.5 2500 No.10 3500 2250 注:表中空格表示此驳船在此航线无许可证,表中数据为此驳船承运相应运单的利润(运单收入—成本)。
建立以下0-1规划: max y=6000a13+5250b13+5250b53+2500b55+2250b10+3500a10 ST a13+b13+b53<=1 b55<=1 a10+b10<=1 920.625a13+766.5a10<=1000 920.625b13+766.5b10<=1500 920.625b53+579.25b55<=1500
采用lindo求解,y=11250,b13=b55=a10=1,即A1运运单No.10,B1运运单No.3,B5运运单No.5,此时利益为11250元。 注意到上述模型未考虑一船多运的情况,事实上,考虑体积、重量的约束,A1、B1、B5中可能运两单以上的只有B5运No.3、No.5两单,那么令A1或B1承运运单10,即可得一种运法。简单计算表明,当A1运No.1,B5运No.3、No.5可得最大利润,为13500元。 显然,后一种运法利润更大。 3、 订单1、2、4、6、7、8、9的确定。 类似2,我们可得出下表:(表三) A2 A3 B2 B3 B4 B6 C1 No.1 5000 4750 5500 4300 No.2 -900 -2400 -150 -2700 No.4 8850 8100 5850 6300 No.6 10500 No.7 6000 4250 4250 5300 No.8 6750 7500 6300 No.9 4450 2900 3700 根据2 的经验,我们首先考虑一船运两单的情况,只需考虑重量的约束,用枚举法可知,只有运单1、2和2、7可能被一船两运。对于运单1、2,考虑许可证约束,只能由A1或B4同时运,A1在香港显然不可能,B4的话利润为7000―100×15+3600―400×15=3100。由上表知,B4运其它单的利润,远远大于3600,故不可能考虑B4运1、2的情况,对于运单2、7,考虑许可证,只能被B6同时运,利润为:3600+5000-250×15=7850。 又由上表发现运单6只能被C1船运,考虑运单6利润最大且广州-〉香港为固定航线,故我们安排C1运No.6,其利润为10500元。这样结果不变,却可以大大简化下步计算。 对于剩下的5条船5个运单,建立0-1规划(不含一船两单的情况) Max 5000a21+4750b21+6750b28+4450b29+8850b34+2950b39+5500b41+8100b44+7500b48+5850b64 ST a21<=1 b21+b28+b29<=1 b34+b39<=1 b41+b44+b48<=1 b64<=1 b28+b48<=1 b29+b39<=1 end
采用lingo求解,最大利润为33650,解为a21=b29=b34=b48=1,即A2运第1单,B2运第9单,B3运第4单,B4运第8单。 综上,此方案的总利润为7850+10500+33650=52000元。 事实上,假如我们不考虑一船多单的情况,建立一个7船7单的线性规划,用lingo求解,最优值为40550元,低于上数的值。显然,考虑一船两单的情况更优。
4、 单天调度方案的给出 有上述的分析,采取方案:(表四) 运单 No.1 No.2 No.3 No.4 No.5 No.6 No.7 No.8 No.9 No.10 驳船 A2 B6 B1 B3 B5 C1 B6 B4 B2 A1
其中,C1和B6在固定航线上。 由上表知,运单2、3、4、5、6、8、10都是直航,运单7是由B6经过广州时捎带运走的,运单1需要将A2从江门调到黄埔去,运单9需要将广州的B2调至江门。可见,此方案较好的满足了题目中尽量直航的要求。此方案下,总利润为52000元。 四、周期三天的调度计划模型的建立和求解 1、模型建立与求解。 首先我们分析这三天的运单以及固定航道可以发现第三天C1船必然运行广州—香港这一航线,这样就大大减少了我们的运算。这样在考虑三天的最优方案时我们设立0,1变量,把可能的船与订单相匹配的情况全部列出,然后用船的位置、容量、作为约束条件,这里注意到B5船的约束在三天中不能在一个表达式中完全表出,于是我们用了分类讨论的方法,分了两种情况: 第一种B5运NO:3业务 max=a21*5000+b21*4750+b41*5500+c11*4300+a13*6000+b13*5250+b53*5250+a27*6000+b37*4250+b67*4250+a10*3500+b10*2250+b34*8850+b44*8100+b64*5850+c14*7350+b28*6750+b48*7500+c18*6300+b29*4450+b39*2950+b591*4450+c19*3700-a1a*1500-a2a*1500-b1a*2250-b3a1*2250-b5a*2250-b6a1*2250-c1a1*2700+a121*100+a122*1100-a31*900-b121*1650-b122*150-b42*2400-b621*150+a25*3500+b25*2500+b35*2500+b55*2500+c16*10500; a21+b21+b41+c11<=1; a13+b13+b53<=1; a27+b37+b67<=1; a10+b10<=1; a13+a10<=1; a21+a27<=1; b13+b10<=1; b21<=1; b37<=1; b41<=1; b53<=1; b67<=1; c11<=1;
b34+b44+b64+c14<=1; b28+b48+c18<=1; b29+b39+b591+c19<=1; c14+c18+c19+c1a1<=1; b28+b29<=1; b34+b39+b3a1<=1; b44+b48<=1;
b541+b5a<=1; b64+b6a1<=1; b37*(b34+b39)=0; b41*(b44+b48)=0;b53>=b591; b67*64=0; a1a+a2a+b1a+b3a1+b5a+b6a1+c1a1<=1;