基于网络流模型的多梯级多线船闸联合调度方法及结构
技术领域
本发明涉及船舶调度技术领域,特别涉及一种基于网络流模型的多梯级多线船闸联合调度方法及结构。
背景技术
目前一般性特征的多梯级多线船闸联合调度方案设计方法尚未见诸报道,已有的方法只能解决特殊结构的梯级船闸调度方案设计,如单级船闸调度、每个船闸只含有一个闸室的梯级船闸调度(密西西比河梯级船闸)、两级船闸调度且其中一个船闸的闸室只能提供单向过闸服务(三峡-葛洲坝梯级船闸)。
目前尚无多梯级多线船闸调度方案优化方法,本申请提案相对于已有的单级多线船闸调度(A)、每个船闸只含有一个闸室的梯级船闸调度(B)和两级船闸调度且其中一个船闸的闸室只能提供单向过闸服务(C)的方案优化方法,其技术优点体现如下:
A:A技术将闸次视为工件,将闸室视为机器,将闸室排档视为含附加约束的二维装箱问题,建立了单级船闸调度的混合整数线性规划模型,并用商业求解器对模型进行求解。但是该技术只能应用于单级船闸调度方案优化,无法应用于多梯级船闸调度方案优化。
B:B技术建立了多梯级单线船闸联合调度方案优化的混合整数线性规划模型,并用商业求解器对模型进行求解。但是该模型假设每个船闸均只含有一个闸室,并且所有船闸的闸室属性(尺寸,运行时间)相同,该方法不能应用于每个船闸可能含有多个并行闸室的情况,即无法应用于多梯级多线船闸联合调度方案优化。
C:C方案针对两级船闸调度方案优化建立了混合整数非线性规划模型,并提出了启发式方法对问题进行求解。但是该模型中假设一个船闸含有两个闸室,并且其中一个闸室只提供上行过闸服务,另一个闸室只提供下行过闸服务。该方案的建模过程和求解方法设计过程均利用了这一特殊性,因而该方案无法应用于三个及以上船闸联合调度,也无法应用于闸室均可提供双向过闸服务的两级船闸调度方案优化问题。
发明内容
本发明提供了一种基于网络流模型的多梯级多线船闸联合调度方法及结构,其目的是为了解决背景技术中既有船闸潜力挖掘不够,船舶通航效率不高的问题。
为了达到上述目的,本发明的实施例提供的多梯级多线船闸结构包括多个船闸及河道,多个所述船闸设于所述河道,且在所述河道上下游方向依次设置,所述船闸包括多个闸室,多个所述闸室并行设于所述河道中,多个所述闸室互为独立结构。
其中,所述河道包括支流,所述支流设于相邻的所述船闸间,并与所述河道相接。
其中,多个所述闸室为不同类型的闸室。
本发明的实施例提供的基于网络流模型的多梯级多线船闸联合调度方法包括如下步骤:
S1、获取船舶信息及船闸的属性信息,所述船舶信息包括船舶尺寸、船舶过闸路线、船舶到达其始发船闸的时间、船舶在船闸间航行时间在内的船舶信息,所述船闸的属性信息包括船闸尺寸、一次服务运行时间、倒闸时间;
S2、设置目标函数和约束条件,其中目标函数最小化船舶在梯级系统的停留时间,约束条件描述闸室排档条件以及船舶与闸次的时间变化和空间转移关系;
S3、建立混合整数线性规划模型,并根据S1中获取的信息对模型求解,得到解决多梯级多线船闸联合调度方案,为每艘船寻找一个从起始点到目的点的最优路径,包括以下三部分内容:为船舶分配闸室、确定船舶在闸室中的停泊位置、给出每个闸次的开始时间。
其中,所述S2中建立混合整数线性规划模型中,用一个多重有向图描述多梯级多线船闸联合调度方案优化问题:G=(V,A),其中A={(Vl,Vk i)}表示弧集合,V={x(1),x(2),····,x(n),D,y(1),y(2),···,y(n)}表示顶点集合;i表示船舶下标,D表示闸次对应的顶点集合;每艘船i由两个顶点x(i)和y(i)表示,分别称为起始顶点和目的顶点;
根据每艘船的航行方向和需要通过的船闸,确定闸次顶点集合D,闸次顶点集合D由每个闸室的上行和下行闸次组成,即D={k|k∈De,e∈E},De={k|k∈Dew,w∈We}且Dew={D'ew∪D″ew,e∈E,w∈We};e表示船闸下标,E表示船闸的集合;W表示闸室的集合,We表示船闸e可用的闸室类型的集合;De为D的子集,表示船闸e的所有闸次对应的顶点集合;Dew表示船闸e的闸室w提供的闸次对应的顶点集合;D'ew和D″ew为Dew的子集,分别表示船闸e中闸室w的上行和下行闸次对应的顶点集合;
确定所有可行的弧的集合A:
引入子图Gi=(Vi,Ai),i∈N来定义所有可行的弧的集合A,其中Vi={x(i),Ψi,y(i)}是顶点集合,Ai是弧集;
Ψi中的顶点对应可能服务船舶i过闸的闸次;上行船舶i∈M'和下行船舶j∈M”对应的闸次顶点分别表示为Ψi={k|k∈D'e,e∈Ei}和Ψj={k|k∈D″e,e∈Ej};D'e和D″e分别表示表示船闸e的上行和下行闸次对应的顶点集合;Ei和Ej分别表示表示船舶i和船舶j在航行过程中需要通过的船闸集合;
为每个顶点引入了与该顶点连接成弧的弧尾和弧头集合;对于任意顶点k∈Vi,其对应的弧尾和弧头集合分别定义为ξ-(k)={l∈Vi:(l,k)∈Ai}和ξ+(k)={l∈Vi:(k,l)∈Ai};一旦定义了每个顶点k∈Vi对应的弧尾和弧头,并确定了Gi中的Ai,则G中弧的集合A也随之确定:
其中,上行船舶i∈M'若连续通过船闸其对应的弧尾和弧头集合定义如下:
该船舶对应的弧尾定义如下:
当k为船舶的起始顶点时,即k=x(i)时,当k为船舶最后通过的船闸对应的闸次时,即/>时,ξ+(k)=y(i);当k既非船舶起始顶点也非船舶最后通过的船闸对应的闸次时,即/>时,/>
该船舶对应的弧头定义如下:
当k为船舶的终止顶点时,即k=y(i)时,当k为船舶第一个通过的船闸对应的闸次时,即/>时,ξ+(k)=x(i);当k既非船舶终止顶点也非船舶第一个通过的船闸对应的闸次时,即/>时,/>
其中,所述S2中建立混合整数线性规划模型中,用一个目标函数描述优化目标:Minimize∑i∈M(Ty(i)-Tx(i)),即船舶到达始发船闸与离开目的船闸的时间差最小化;
其中,当有多艘船舶在同一个闸次被服务的时候,船舶在闸室内的位置摆放还需要满足闸室排档相关约束,包括如下:
上述约束条件保证任意两艘被安排在同一闸次过闸的船舶不能互相重叠;
上述约束条件保证每艘船舶都应该在服务其闸室的长度与宽度范围内;
上述约束条件描述了只有船舶i的长度完全包含在船舶j的长度范围内并且两艘船相邻时,船舶i才能系泊在船舶j的左侧;
上述约束条件描述当船舶i系泊在闸室右壁时,该船舶需与闸室右壁相邻;
上述约束条件确保船舶不能系泊在不服务该船舶的闸室的右壁;
上述约束条件确保当船舶i要系泊在船舶j的右侧时需要保证这两艘船舶相邻并且船舶i的长度完全包含在船舶j的长度范围内;
上述约束条件描述当船舶i系泊在闸室左壁时,该船舶需与闸室左壁相邻;
上述约束条件确保每艘船舶必须系泊在另一艘船舶的一侧或闸室的一侧;
上述约束条件避免当两艘船舶有相同的长度时,这两艘船舶可能会互相系泊且均未系泊在闸室的任何一侧的情况发生;
上述约束条件描述不是同一闸次过闸的两艘船舶不能相互系泊;
所述约束条件包括基于多重有向图Gi=(Vi,Ai)描述船舶与闸次的时间变化和空间转移关系的约束条件,包括如下:
上述约束条件在Gi中为每艘船舶定义一条从始发船闸到目的船闸的路径;
上述约束条件描述不同船闸的闸次开始时间之间的关系;
上述约束条件描述同一闸室的闸次开始时间之间的关系,确保被分配了船舶的闸次必须运行,确保仅当闸次至少服务一艘船舶时方才运行该闸次,其中,二进制变量vk来表示闸次k是否服务了船舶,其中M(k)表示满足以下条件的船舶集合,i)通过闸次k对应的船闸,ii)与闸次k具有相同的方向;
上述约束条件描述同一闸室的闸次开始时间;
上述约束描述船舶i是否由闸次k服务过闸。
αie∈{0,1,…,Bmax},βie∈{0,1,…,Hmax},
上述约束条件表示每个变量的类型和取值范围。
本发明的上述方案有如下的有益效果:
将本申请文件技术方案中列出的模型按照商业软件Gurobi要求的LP模型格式整理为一个.LP文件,则可以调用Gurobi进行求解。
通过提取比利时艾伯特运河(Albertkanaal canal)上6个船闸的数据以及船舶的历史航行数据以及三峡-葛洲坝历史通航数据,对本方案进行了仿真测试。测试环境如下:
操作系统:Windows 10;
CPU:Inter i7-8086K
内存:32GB
Gurobi版本:Gurobi 8.1.0教育版
仿真测试结果表明:该方法能最优化求解不同类型的多梯级多线船闸联合调度方案优化问题。对于比利时艾伯特运河的案例,能在1200秒内求解含10艘船舶的6级单线船闸的联合调度方案优化案例,能在300秒内最优化求解含20艘船舶的2级多线船闸的联合调度方案优化案例。对于三峡-葛洲坝案例,能在1800秒内最优化求解20艘船舶通航的最优化调度方案。
附图说明
图1为本发明的多梯级多线船闸结构的结构示意图;
图2为本发明的基于网络流模型的多梯级多线船闸联合调度方法的示意图;
图3为本发明的基于网络流模型的多梯级多线船闸联合调度方法的闸室排挡约束示意图;
图4为本发明的基于网络流模型的多梯级多线船闸联合调度方法的流程图。
【附图标记说明】
1-闸室、2-船闸、3-支流、A-船闸1、B-河段、C-船闸2。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明针对现有的问题,提供了一种多梯级多线船闸结构,所述多梯级多线船闸结构的结构如图1所示,包括多个船闸2及河道。多个所述船闸2设于所述河道,且在所述河道上下游方向依次设置。所述船闸2包括多个闸室1。多个所述闸室1并行设于所述河道中,多个所述闸室1互为独立结构。所述河道包括支流3。所述支流3设于相邻的所述船闸2间,并与所述河道相接。多个所述闸室1为不同类型的闸室。
本发明提供了一种多梯级多线船闸结构于网络流模型的多梯级多线船闸联合调度方法,包括如下步骤:
S1、获取船舶信息及船闸的属性信息,所述船舶信息包括船舶尺寸、船舶过闸路线、船舶到达其始发船闸的时间、船舶在船闸间航行时间在内的船舶信息,所述船闸的属性信息包括船闸尺寸、一次服务运行时间、倒闸时间;
S2、设置目标函数和约束条件,其中目标函数最小化船舶在梯级系统的停留时间,约束条件描述闸室排档条件以及船舶与闸次的时间变化和空间转移关系;
S3、建立混合整数线性规划模型,并根据S1中获取的信息对模型求解,得到解决多梯级多线船闸联合调度方案,为每艘船寻找一个从起始点到目的点的最优路径,包括以下三部分内容:为船舶分配闸室、确定船舶在闸室中的停泊位置、给出每个闸次的开始时间。
具体建模思路和模型将在以下详细介绍。
基于网络流视角的多梯级多线船闸联合调度方案优化
如果将每艘船及其需要通过的船闸对应的闸次视为图中的顶点,则多梯级多线船闸联合调度方案优化问题可以用一个多重有向图进行描述:G=(V,A),其中A={(Vl,Vk i)}表示弧集合,V={x(1),x(2),····,x(n),D,y(1),y(2),…,y(n)}表示顶点集合。i表示船舶下标,D表示闸次对应的顶点集合。每艘船i由两个顶点x(i)和y(i)表示,分别称为起始顶点和目的顶点。如果忽略闸室排档限制,多梯级多线船闸联合调度方案优化则可转化为每艘船寻找一个从起始点到目的点的最优路径。图2显示了一个三个梯级的船闸联合调度的可行方案,图中水平方向表示时间。为了便于理解,图2中显示的是每个船闸只有一个闸室的情况,并且只展示了闸次的开始时间和闸次中船舶的组合,并没有展示船舶在闸室内的平面布局(闸室排档)。
由于每艘船的航行方向和需要通过的船闸是已知的,所以对于每个船闸而言,需要通过该船闸的船舶集合可以确定。为了建立多梯级多线船闸联合调度方案优化问题的混合整数线性规划模型,每个船闸的闸室生成的上行闸次和下行闸次数量均等于需要通过该船闸的船舶数量。因此,闸次顶点集合D由每个闸室的上行和下行闸次组成,即D={k|k∈De,e∈E},De={k|k∈Dew,w∈We}且Dew={D'ew∪D″ew,e∈E,w∈We};e表示船闸下标,E表示船闸的集合;W表示闸室的集合,We表示船闸e可用的闸室类型的集合;De为D的子集,表示船闸e的所有闸次对应的顶点集合;Dew表示船闸e的闸室w提供的闸次对应的顶点集合;D'ew和D″ew为Dew的子集,分别表示船闸e中闸室w的上行和下行闸次对应的顶点集合;。
对于每艘船舶,其过闸路线上的所有船闸均至少要提供一个闸次服务该船舶过闸。同时,每艘船舶均需要连续通过其始发船闸和目的船闸,且为该船舶提供过闸服务的闸次的方向应与船舶航行方向一致。因此,V中并不是所有顶点之间都可以连接成弧。例如,同一个船闸的闸次对应的顶点之间不能连接成弧。为了定义所有可行的弧的集合A,我们引入子图,其中Vi={x(I),ΨI,y(i)}是顶点集合,Ai是弧集。Ψi中的顶点对应可能服务船舶i过闸的闸次。上行船舶i∈M'和下行船舶j∈M”对应的闸次顶点分别表示为Ψi={k|k∈D'e,e∈Ei}和Ψj={k|k∈D″e,e∈Ej},其中D'e和D″e分别表示表示船闸e的上行和下行闸次对应的顶点集合;Ei和Ej分别表示表示船舶i和船舶j在航行过程中需要通过的船闸集合。为了定义Ai,我们为图中的每个顶点引入了与该顶点连接成弧的弧尾和弧头集合。对于任意顶点k∈Vi,其对应的弧尾和弧头集合分别定义为ξ-(k)={l∈Vi:(l,k)∈Ai}和ξ+(k)={l∈Vi:(k,l)∈Ai}。一旦定义了每个顶点k∈Vi对应的弧尾和弧头,并确定了Gi中的Ai,则G中弧的集合A也随之确定。
假设上行船舶i∈M'若连续通过船闸其对应的弧尾和弧头集合定义如下:
该船舶对应的弧尾定义如下:
当k为船舶的起始顶点时,即k=x(i)时,当k为船舶最后通过的船闸对应的闸次时,即/>时,ξ+(k)=y(i);当k既非船舶起始顶点也非船舶最后通过的船闸对应的闸次时,即/>时,/>
该船舶对应的弧头定义如下:
当k为船舶的终止顶点时,即k=y(i)时,当k为船舶第一个通过的船闸对应的闸次时,即/>时,ξ+(k)=x(i);当k既非船舶终止顶点也非船舶第一个通过的船闸对应的闸次时,即/>时,/>
对于下行船舶,顶点对应的弧尾和弧头集合定义方式类似。对于每个顶点k∈V,定义λk表示闸次一次服务时间。为了方便表示,定义了顶点x(i)和y(i)(i∈M)为:λx(i)=λy(i)=0,i∈M。对于每条弧(l,k)∈Ai,时间变量ulki与其关联,表示船舶i在闸次l和k对应的船闸间航行时间。由于图中包含船舶i的起点和终点,因此有必要定义ux(i)k=0,i∈M,k∈ξ+(x(i))和uly(i)=0,i∈M,l∈ξ-(y(i))。
多梯级多线船闸联合调度方案优化混合整数线性规划(MILP)模型构建
本文研究了船闸调度问题的最主要目标,即最小化船舶等待时间。该目标可通过船舶在整个梯级船闸系统中的滞留时间描述,即船舶到达始发船闸与离开目的船闸的时间差。因此,目标函数表达如下:
Minimize∑i∈M(Ty(i)-Tx(i)), (1)
其中Sx(i)和Sy(i)分别为船舶i到达其始发船闸与目的船闸的时间。
约束条件可分为两部分,其中约束条件(2)-(24)描述闸室排档,约束条件(25)-(33)基于多重有向图Gi=(Vi,Ai)描述船舶与闸次的时间变化和空间转移关系,具体如下:
以下部分描述闸室排档约束。由于下行方向的参数、变量和约束与上行方向的相同,因此在此处省略了下行方向的参数、变量和约束,完整的MILP模型可以通过增加与下行方向对应的参数、变量和约束。
约束条件(2)-(4)保证任意两艘被安排在同一闸次过闸的船舶不能互相重叠,如图3(a)中的船舶1和船舶4所示。其中,二进制变量ωije来表示船闸e中船舶i是否完全摆放在船舶j的左侧;zije来表示船闸e中船舶i是否完全摆放在船舶j的后面;αie,βie表示船舶i在船闸e中停泊的位置(α,β);hi,bi分别表示船舶i的长和宽;Hmax,Bmax表示所有闸室的最大的长和宽;M'e表示需要通过船闸e的上行船舶。
每艘船舶排挡时都应该在服务其闸室的长度与宽度范围内,约束(5)和(6)确保了该要求。图3(b)中的船舶4违反了该约束。
约束条件(7)-(25)包含了闸室排档过程的具体系泊约束。约束(7)–(10)描述了只有船舶i的长度完全包含在船舶j的长度范围内并且两艘船相邻时,船舶i才能系泊在船舶j的左侧,其中约束(9)-(10)确保了两艘船舶相邻的要求。如图3(a)所示的实例中,船舶2停靠在船舶3的左侧。而图3(c)船舶2和船舶4则违反了该约束条件。其中,二进制变量ρije表示来船闸e中船舶i是否系泊在船舶j的左侧;Nie表示在船闸e允许船舶i系泊的船舶集合。
船舶i不仅可以系泊在另一艘船的左侧,也可以系泊在闸室的右壁。其中,船闸e中闸室w的右侧由船舶n+w表示,其位置定义为(Bew,0)。由于约束(6)保证了船舶i始终处在船闸e的长度内,我们只需要通过约束(11)和(12)来确保它们是相邻的。例如图3(b)中的船舶3所示。
约束(13)确保船舶不能系泊在不服务该船舶的闸室的右壁。例如,图3(e)中假设一艘船舶被闸室2服务过闸,则该船舶不能系泊在闸室1的右壁。
当船舶i要系泊在船舶j的右侧时需要保证这两艘船舶相邻并且船舶i的长度完全包含在船舶j的长度范围内,可由约束(14)–(17)描述。其中,约束(16)–(17)确保了两艘船舶相邻的要求。如图3(b)所示,船舶2系泊在船舶1的右侧。其中,二进制变量θije来表示船闸e中船舶i是否系泊在船舶j的右侧。
船舶i不仅能系泊在其他船舶的右侧,也能系泊在闸室的左壁。本文中,所有闸室其左侧由一艘附加的船舶0表示,其位置固定为(0,0)。因此,只需用约束(18)和(19)确保两艘船舶是相邻的。例如在图3(c)中,船舶1系泊在闸室的左壁。
约束(20)确保每艘船舶必须系泊在另一艘船舶的一侧或闸室的一侧。
当两艘船舶有相同的长度时,这两艘船舶可能会互相系泊且均未系泊在闸室的任何一侧,约束(21)避免了这种情况的发生,如图3(d)所示的船舶1和船舶2。
约束(22)–(24)描述不是同一闸次过闸的两艘船舶不能相互系泊。其中,二进制变量mij来表示船舶i和j是否在同一个闸次中过闸。
以下部分描述船舶与闸次的时间变化和空间转移关系:
首先,引入一个变量gik表示船舶i是否由闸次k服务过闸,如下(25)所示,
约束条件(26)-(28)在Gi中为每艘船舶定义一条从始发船闸到目的船闸的路径。约束条件(29)描述不同船闸的闸次开始时间之间的关系。同时,还需要引入另一约束来描述同一闸室的闸次开始时间之间的关系。为此,定义二进制变量vk来表示闸次k是否服务了船舶;二进制变量δkli来表示船舶i是否经过弧(k,l);Sl为闸次l的开始时间;λl表示闸次l服务一次的时间;Tmax为所有船舶离开梯级船闸系统时间的上界(足够大的常数)。
其中M(k)表示满足以下条件的船舶集合,i)通过闸次k对应的船闸,ii)与闸次k具有相同的方向。约束(30)确保被分配了船舶的闸次必须运行,约束(31)确保仅当闸次至少服务一艘船舶时方才运行该闸次。
由此,同一闸室的闸次开始时间需满足以下约束:
其中,二进制变量γlk来表示闸次k和l是否对应相同闸次,并且闸次k在l的前面;μlk来同一闸室中的闸次k和闸次l开始运行的最小间隔时间。
最后,约束(34)-(43)表示每个变量的类型和取值范围。
αie∈{0,1,…,Bmax},βie∈{0,1,…,Hmax}, (43)
采用本发明所提供的基于网络流模型的多梯级多线船闸联合调度方法及结构,其技术优点体现如下:
将本申请文件技术方案中列出的模型按照商业软件Gurobi要求的LP模型格式整理为一个LP文件,则可以调用Gurobi进行求解。
通过提取比利时艾伯特运河(Albertkanaal canal)上6个船闸的数据以及船舶的历史航行数据以及三峡-葛洲坝历史通航数据,对本方案进行了仿真测试。测试环境如下:
操作系统:Windows 10;
CPU:Inter i7-8086K
内存:32GB
Gurobi版本:Gurobi 8.1.0教育版
仿真测试结果表明:该方法能最优化求解不同类型的多梯级多线船闸联合调度方案优化问题。对于比利时艾伯特运河的案例,能在1200秒内求解含10艘船舶的6级单线船闸的联合调度方案优化案例,能在300秒内最优化求解含20艘船舶的2级多线船闸的联合调度方案优化案例。对于三峡-葛洲坝案例,能在1800秒内最优化求解20艘船舶通航的最优化调度方案。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。