一种基于MAS的自动化集装箱码头堆场双ARMG调度方法与流程

文档序号:13736661阅读:987来源:国知局
一种基于MAS的自动化集装箱码头堆场双ARMG调度方法与流程

本发明涉及集装箱运输领域,特别是自动化集装箱码头堆场对进出口集装箱装的调度领域。



背景技术:

随着经济全球化以及世界贸易的发展,集装箱运输持续快速增长。集装箱吞吐量的增加以及船舶的大型化、高速化给集装箱码头生产管理提出了更高的要求。集装箱存储选位和双armg的调度是自动化集装箱码头堆场中的两个重要研究内容。装卸设备的合理调度是提高码头效率的关键内容之一,又由于大部分集装箱运输在自动化码头堆场的开始或结束位置,合理分配集装箱的堆存位置不仅能减少翻箱率而且能提高码头的运行效率。

尽管在自动化集装箱码头的研究中,调度问题和集装箱存储问题已经得到了广泛关注,但是双armg的调度和集装箱堆存位置的选择及翻箱问题相互影响,研究双armg的调度同时考虑集装箱的存储选位及翻箱问题并不多,而基于mas研究堆场中进出口集装箱双armg的调度同时考虑集装箱的存储选位及翻箱问题还没有涉及。mas是具有一定资源和能力、相对独立且相互作用的agent组成的系统,具有分布式并行处理、可伸缩性、可维护性等特点,非常适用于多变的分布式复杂系统调度优化问题。基于此,本发明提出了一种基于mas的自动化集装箱码头堆场双armg调度方法来提高码头的作业效率。



技术实现要素:

本发明针对自动化集装箱码头堆场不可相互穿越的双armg调度问题,提出了一种运用mas的方法来改进双armg的调度策略。mas(multi-agentsystem)是多个智能体(agent)组成的集合,agent是一个具有适应性和智能性的软件实体,能代替用户或其他程序,以主动服务的方式完成一项工作。armg(automatedrail-mountedgantry)是指自动化轨道式龙门起重机,在自动化集装箱码头堆场中用于装卸作业,每个箱区的armg是固定的,不会出现跨箱区作业的情况,集装箱只能在堆场的两端进行交互作业。在本发明中,建立了5类agent:信息agent,船舶agent,堆场agent,优化agent和用户agent,这5类agent之间相互协作,共同完成进出口集装箱作业,这样可以使得双armg调度效率更高。

该双armg对进出口集装箱的调度方法主要包括以下步骤:

步骤一、判断当前任务是装载出口集装箱还是卸载进口箱。若当前任务是装载出口箱,则执行步骤二,否则,执行步骤八;

步骤二、若当前任务是装载出口箱,此时,船舶请求装载出口箱,经船舶agent发送装载出口箱请求给堆场agent和用户agent,同时实时查询堆场状态功能;

步骤三、堆场agent收到船舶agent发送的请求信息后,向用户agent发送请求确认信息,并查询堆场箱区的数据库获取目标集装箱的准确位置并返回给船舶agent;

步骤四、船舶agent通过查询堆场箱区的数据库获取目标箱所在位置状态,判断目标箱上方是否有箱,若无,则发送提箱号、当前贝位、排、层状态等数据给优化agent进行双armg优化调度,双armg调度如下:

1)首先定义目标函数和适应度函数,然后加入一个虚拟点随机生成一组实数编码;

2)根据适应度函数选择父代x、y,对x、y进行适应度值交叉计算,并通过递归迭代生成若干组优化解;

3)初始化蚁群算法中的参数,并根据优化解生成信息素初始分布;

4)选择靠近两个armg初始位置最近的集装箱作为m只蚂蚁路径的起点;

5)由出口集装箱的位置和调度规则采用集装箱任务间的转移概率和蚂蚁在当前任务转移到下一任务的概率转移函数逐渐确定后续的集装箱任务:

p(k)=[τ(i,k)]α·[s(i,k)]β,i∈tabu,k∈allow(1)

式中,p(k)表示蚂蚁在集装箱k处的概率值;s(i,k)表示集装箱任务k的评分值;τ(i,k)为信息素矩阵中第i行第k列的值;tabu为禁忌表记录已访问的任务;allow为未访问任务的集合;α为信息重要度因子;β为启发式函数重要度因子。

调度规则为:armg的重进重出r1,即当前任务若为卸载任务,则下一个任务希望是装载任务,其权重值为g1;armg与任务的起始位置的距离r2,其权重为g2;任务的性质(接力任务或主任务,主任务的优先级高于接力任务)r3,其权重为g3;翻箱r4,其权重为g4;根据公式得到任务i的评分,其中r1,r3,r4为0-1变量。

6)当所有蚂蚁完成一次路径巡访,即完成一次搜索后需要进行信息素更新。根据下面两个式子进行信息素更新:

τ(t+1)(i,j)=(1-ε)·τt(i,j)+ε·δτ(i,j),0<ε<1(3)

式中,τ(t+1)(i,j)表示第t+1次搜索中任务i与j之间的信息浓度;δτ(i,j)表示蚁群任务i与j之间释放信息素浓度;ε表示信息素的挥发程度,τt(i,j)表示第t次搜索中任务i与j之间的信息素浓度;δτ为一个矩阵,表示蚁群在任务间释放的信息素浓度矩阵;δτq(i,j)表示第q只蚂蚁在任务i和j之间释放的信息素浓度。

7)剔除对不满足两armg之间具有2个贝位的安全距离的约束和不满足路径要求的解。

8)重复上述步骤,更新信息素和剔除不满足条件的解,当算法运行次数达到设定值时,停止计算,输出最优解和最优目标值。

若目标箱上方有集装箱,则先发送提箱号、当前贝位状态等数据给优化agent进行翻箱落位优化计算,然后再进行双armg调度优化进行调度作业;翻箱落位优选计算如下:

首先对该算法做出以下假设:翻箱在同贝内进行;提箱序列;和贝内箱分布已知;提箱过程中贝内无新箱进场。采用下述两个公式选取翻箱增加量最小的考察栈为翻箱最佳落箱位:

式中,e为剩余空箱数;n为栈内箱号最小编号;pro为非考察栈内箱编号;p(e,n,pro)为箱pro翻倒到考察栈可能性代表值;a为候选栈最小箱序总和,候选栈就是除当前翻倒箱以外的贝内其他栈;b为考察栈箱序总和;e(0,n)=0。

步骤五、优化agent返回优化结果给堆场agent,堆场agent输出优化结果并发送结果给用户agent,然后更新目标箱所在贝、排、层的状态及堆场箱区数据库;

步骤六、判断是否需要翻箱,若需要翻箱,则重复步骤三和步骤四直至可直接提取到目标箱为止,然后对目标箱进行调度;若无需翻箱,则直接对目标集装箱进行调度;并更新堆场的箱位信息,当前任务调度结束;

步骤七、判断下一集装箱任务。若下一任务是卸载进口箱,则执行步骤八;若下一任务是装载出口箱,则执行步骤二;否则执行步骤十二;

步骤八、船舶请求卸载进口箱,经船舶agent发送卸载进口箱请求给堆场agent和用户agent;步骤九、堆场agent收到船舶agent发送的请求信息后,向用户agent发送确认请求,并查询堆场箱区数据库获取进口箱存储选位初始调度方案等优化数据,向优化agent发送进口箱存储选位和双armg调度优化请求和相关数据;其中,进口箱存储选位如下:

进口箱存储选位分为两个阶段,形成两级调度。第一级,在滚动调度基础上,首先根据预约进口箱信息根据启发式算法为即将进入堆场的进口箱优化分配箱位,形成初始调度方案;第二级,当进口箱进入堆场时和出口箱出堆场时,根据动态装卸载进出口箱信息进一步优化初始调度方案中的进场箱箱位,生成再调度方案,根据实时调度,更新再调度初始方案。

步骤十、优化agent收到堆场agent发送的优化请求及相关数据后,对进口箱存储选位进行优化及双armg调度进行优化,并返回计算结果给堆场agent;

步骤十一、堆场agent收到优化agent发送的结果,输出进口箱存储选位和双armg调度优化结果并将其转发给用户agent,然后更新箱区数据库;

步骤十二、判断预约箱量是否调度完毕,若调度完毕,则发送消息给消息agent进行下一轮滚动调度,得到初始调度方案;否则执行步骤七。

本发明具有如下效果和优点:

本发明采用多智能体的方法进行双armg调度,根据堆场系统的复杂性,该方法能够提高双armg调度的实时性和鲁棒性。它能根据堆场的箱区信息得到进口集装箱的合适存储位置和双armg调度的合适序列,减少集装箱的翻箱率、提高码头堆场的作业效率。

附图说明

图1为自动化集装箱堆场双armg调度多agent系统框图

图2为多agent协作完成调度过程示意图

图3为gaaa流程图

图4为集装箱存储选位的两级调度流程图

具体实施方式

在本发明中,如图1所示,建立了5类agent:信息agent,船舶agent,堆场agent,优化agent和用户agent,这5类agent采用点对点方式进行通信,相互协作,共同完成进出口集装箱作业。数据库主要包括堆场状态、装卸载进出口箱序列、调度方案等信息数据。知识库主要包括箱操作和数据更新知识,供agent群使用。下面结合图2对本发明作进一步详细描述:

步骤一、判断当前任务是装载出口集装箱还是卸载进口箱。若当前任务是装载出口箱,则执行步骤二,否则,执行步骤八;

步骤二、若当前任务是装载出口箱,此时,船舶请求装载出口箱,经船舶agent发送装载出口箱请求给堆场agent和用户agent,同时实时查询堆场状态功能;

步骤三、堆场agent收到船舶agent发送的请求信息后,向用户agent发送请求确认信息,并查询堆场箱区的数据库获取目标集装箱的准确位置并返回给船舶agent;

步骤四、船舶agent通过查询堆场箱区的数据库获取目标箱所在位置状态,判断目标箱上方是否有箱,若无,则发送提箱号、当前贝位、排、层状态等数据给优化agent进行双armg优化调度,如图3所示,采用遗传与蚁群融合算法(gaaa)进行双armg调度,调度步骤如下:

1)首先定义目标函数和适应度函数,然后加入一个虚拟点随机生成一组实数编码;

2)根据适应度函数选择父代x、y,对x、y进行适应度值交叉计算,并通过递归迭代生成若干组优化解;

3)初始化蚁群算法中的参数,并根据优化解生成信息素初始分布;

4)选择靠近两个armg初始位置最近的集装箱作为m只蚂蚁路径的起点;

5)由出口集装箱的位置和调度规则采用集装箱任务间的转移概率和蚂蚁在当前任务转移到下一任务的概率转移函数逐渐确定后续的集装箱任务:

p(k)=[τ(i,k)]α·[s(i,k)]β,i∈tabu,k∈allow(1)

式中,p(k)表示蚂蚁在集装箱k处的概率值;s(i,k)表示集装箱任务k的评分值;τ(i,k)为信息素矩阵中第i行第k列的值;tabu为禁忌表记录已访问的任务;allow为未访问任务的集合;α为信息重要度因子;β为启发式函数重要度因子。

调度规则为:armg的重进重出r1,即当前任务若为卸载任务,则下一个任务希望是装载任务,其权重值为g1;armg与任务的起始位置的距离r2,其权重为g2;任务的性质,是接力任务还是主任务为r3,其权重为g3;翻箱r4,其权重为g4;根据公式得到任务i的评分,其中r1,r3,r4为0-1变量。

6)当所有蚂蚁完成一次路径巡访,即完成一次搜索后需要进行信息素更新。根据下面两个式子进行信息素更新:

τ(t+1)(i,j)=(1-ε)·τt(i,j)+ε·δτ(i,j),0<ε<1(3)

式中τ(t+1)(i,j)表示第t+1次搜索中任务i与j之间的信息浓度;δτ(i,j)表示蚁群任务i与j之间释放信息素浓度;ε表示信息素的挥发程度,τt(i,j)表示第t次搜索中任务i与j之间的信息素浓度;δτ为一个矩阵,表示蚁群在任务间释放的信息素浓度矩阵;δτq(i,j)表示第q只蚂蚁在任务i和j之间释放的信息素浓度。

7)对不满足两armg之间具有2个贝位的安全距离的约束和不满足路径要求的解,需剔除。

8)重复上述步骤,更新信息素浓度和剔除不满足条件的解,当算法运行次数达到设定值时,停止计算,输出最优解和最优目标值。

若目标箱上方有集装箱,则先发送提箱号、当前贝位状态等数据给优化agent进行翻箱落位优化计算,然后再进行双armg调度优化进行调度作业;翻箱落位优选计算如下:

首先对该算法做出以下假设:翻箱在同贝内进行;提箱序列;和贝内箱分布已知;提箱过程中贝内无新箱进场。采用下面两个公式选取翻箱增加量最小的考察栈为翻箱最佳落箱位。

式中,e为剩余空箱数;n为栈内箱号最小编号;pro为非考察栈内箱编号;p(e,n,pro)为箱pro翻倒到考察栈可能性代表值;a为候选栈(除当前翻倒箱以外的贝内其他栈)最小箱序总和;b为考察栈箱序总和;e(0,n)=0。

步骤五、优化agent返回优化结果给堆场agent,堆场agent输出优化结果并发送结果给用户agent,然后更新目标箱所在贝、排、层的状态及堆场箱区数据库;

步骤六、判断是否需要翻箱,重复步骤三和步骤四直至可直接提取到目标箱为止,对目标箱进行调度,并更新堆场的箱位信息,完成当前的调度任务。

步骤七、判断下一集装箱任务。若下一任务是卸载进口箱,则执行步骤八;若下一任务是装载出口箱,则执行步骤二;否则执行步骤十二;

步骤八、船舶请求卸载进口箱,经船舶agent发送卸载进口箱请求给堆场agent和用户agent;步骤九、堆场agent收到船舶agent发送的请求信息后,向用户agent发送确认请求,并查询堆场箱区数据库获取进口箱存储选位初始调度方案等优化数据,向优化agent发送进口箱存储选位和双armg调度优化请求和相关数据;如图4所示,进口箱存储选位如下:

进口箱存储选位分为两个阶段,形成两级调度。第一级,在滚动调度基础上,首先根据预约进口箱信息根据启发式算法为即将进入堆场的进口箱优化分配箱位,形成初始调度方案;第二级,当进口箱进入堆场时和出口箱出堆场时,根据动态装卸载进出口箱信息进一步优化初始调度方案中的进场箱箱位,生成再调度方案,根据实时调度,更新再调度初始方案。

步骤十、优化agent收到堆场agent发送的优化请求及相关数据后,对进口箱存储选位进行优化及双armg调度进行优化,并返回计算结果给堆场agent;

步骤十一、堆场agent收到优化agent发送的结果,输出进口箱存储选位和双armg调度优化结果并将其转发给用户agent,然后更新箱区数据库;

步骤十二、判断预约箱量是否调度完毕,则发送消息给消息agent进行下一轮滚动调度,得到初始调度方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1