英语原文共 10 页
摘要
海港集装箱码头是海运货物运输网络的重要节点。因此,集装箱码头在处理通过它们的集装箱时的经营效率在全球化的世界经济中起着关键作用。许多模型和算法被开发出来去处理集装箱码头中的各种决策问题,以帮助提高运营效率,这些决策支持工具通常单独用于特定目的。但是,他们试图解决的问题往往是相互关联的。因此,在这方面,需要一种能够为不同的决策问题捕获尽可能多的操作条件的评估工具。本文介绍了一个名为MicroPort的通用仿真平台,旨在提供一个集成且灵活的建模系统,用于评估不同设计的海港集装箱码头的运营能力和效率。
MicroPort的软件结构包括三个编程层:(1)功能层;(2)应用层;(3)扩展层。不同的层由应用程序编程接口(API)绑定。功能层中内置的基本功能支持应用层,其中主要操作流程可以通过基于代理的方法建模。然后,扩展层中的外部模块和决策支持工具使用API来调整系统,以便为特定目的生成合适的仿真模型。
关键词:集装箱码头;港口运营;离散事件模拟;多代理系统
目录
第1章 介绍
集装箱码头在全球化的世界经济中发挥着关键作用。在集装箱码头,运营商负责根据航运公司(其客户)的装载说明从海到岸处理集装箱,反之亦然。在集装箱码头,如图1.1所示,来自不同航运公司的船只根据一些预定的时间表到达,船到岸起重机,或简称码头起重机,将集装箱从船舶卸载到堆场卡车或从堆场卡车装载集装箱到船上。堆场卡车在码头起重机和堆场起重机之间往返以运送集装箱。横跨在堆场中的堆场起重机处理堆场卡车和集装箱堆栈之间的集装箱。
图1.1 集装箱码头
各设备之间需要大量协调,以确保集装箱能够实现无缝流动。这需要从长期战略到实时操作决策的各种规划。由于问题的规模和复杂性,港口运营商通常会雇佣不同的团队人员来负责不同的流程。在每个过程中,都需要不同级别的规划。例如,在泊位规划中,港口运营商需要根据船舶的预定到达时间,提前确定船舶的泊位分配,并根据船舶的预定到达时间分配码头起重机以服务这些船舶。然而,由于延误或其他不可预见的情况,船舶的实际到达时间往往会偏离预定的到达时间。因此,实时决定将船舶重新分配到泊位以及码头起重机分配到这些船舶往往是必要的。港口经营者在作出这些决定时,目的是要使港口的效率最大化,包括尽量缩短船只周转时间、尽量提高码头起重机的生产力,以及尽量提高集装箱码头的吞吐量。然而,实际上,这一目标可能无法实现。这是因为这些决策通常是分层的和局部的。此外,一些决策由复杂的决策支持工具支持,而另一些决策则是在特定的基础上做出的,因此,人们不能确定整个系统是否有效地执行,因为这些决策过程之间经常有重要的交互作用,例如,泊位分配和堆场管理之间,由于系统中存在许多不确定性,例如,船舶延迟,设备故障等,使问题更加复杂。
为了有效地评估这些决策过程,我们需要一个评估工具, 它可以有效地捕捉复杂和相互关联的系统的性质,以便整合复杂的决策支持工具(可以是商业软件或港口运营商使用的现有决策支持工具)。从文献来看,虽然已经建立了很多集装箱码头的仿真模型,但是这些模型往往过于死板,无法适应不同的码头配置。本文提出了一种通用的仿真平台MicroPort,该平台能够提供一个集成的、灵活的建模系统来评估港口集装箱码头不同设计方案的运行能力和效率。MicroPort的软件结构包括三个编程层,其中较低的层使用应用程序编程接口(API)支持较高的层。基本功能构建在最底层。将主要操作过程建模为中间层改进的多代理系统。最后,顶层包含外部程序,通过API对系统进行调整,生成合适的仿真模型。
第2章 文献评论
最近,由于计算机技术的快速发展,模拟已被广泛用于研究集装箱码头的运营。我们首先通过一些模拟模型,重点关注集装箱码头的具体操作流程。然后将讨论一些集成的仿真模型,其后是几个多代理系统。最后,给出了一个比较表。
大量研究为集装箱码头建立了仿真模型,并将其作为子系统用于测试,评估和预测其决策算法和策略。Gambardella等人[1]]建立了一个专注于资源分配问题的决策支持系统,并使用一个码头仿真模型作为检验系统有效性和稳健性的试验台。Kia等人[2]通过仿真模型比较了两种不同的操作系统(当前和已被提出的),并提出了一种减少码头拥塞和增加码头容量的操作方法。Nam等人[3]使用具有四种情景的模拟模型来检查Gamman集装箱码头在泊位和码头起重机方面的最佳尺寸。Demirci等人[4]使用模拟实验来确定港口系统中最关键的瓶颈过程,并开发了一种投资策略来平衡港口中的负载。Lee等人[5]开发了一个模拟模型来评估供应链网络中的港口运营。Sgouridis等人[6]创建了一个模拟模型来研究卡车运输集装箱的处理过程,并使用该模型进行短期和长期规划以及过程改进。Liu等人[7]开发了仿真模型研究自动化和码头布局对码头性能的影响。尤其考虑了具有不同堆场配置的两个不同码头。Parola 和 Sciomachen[8]试图模拟整个西北意大利港口系统的物流链,评估了集装箱流量可能的未来增长。Duinkerken等人[9]开发了一个配备基于规则的控制系统的仿真模型,用于比较两个集装箱运输系统:多拖车自动导引车和自动升降车。Lee等人[10][11]开发了仿真模型,以研究不同的车辆和不同的场地布局如何影响港口运营的效率。他们进一步构建了一个名为自动布局生成的程序,以生成不同的仿真模型。Ha 等人[12]提出了一个三维实时可视化仿真模型,非常详细的描述了集装箱码头设备的行为,该模型可用于评估新设备的性能。Hadjiconstantinou 和 Ma [13]开发了一个决策支持系统,通过考虑通过堆场的所有集装箱流量并使用模拟模型进行验证来优化堆场操作。Zeng 和 Yang[14]开发了一种用于在集装箱码头中调度装载操作的仿真模型,然后将该模型嵌入到优化方法中以确定最优调度方案。
虽然上述仿真模型可以很好地表示集装箱码头的某些部件或过程,但为了更真实地表示实际操作,有必要将相互关联的子系统作为一个整体来处理,只有少数研究考虑了集装箱码头的综合模拟模型。这些模型涵盖了集装箱码头运营的大部分。Nevins等人[15][16]开发了一个海港模拟模型,用于计算吞吐量能力并确定高水平细节的资源利用率,仿真模型允许多种货物类型以及多种船型。Shabayek 和Yeung[17]创建了一个模拟Kwai Chung集装箱码头的模拟模型,以研究模拟模型能够以高精度预测实际集装箱码头运营的程度。Hartmann[18]介绍了一种为海港集装箱码头生成场景的方法,场景可以用作仿真模型的输入数据。此外,它们可以用作解决集装箱码头物流中的优化问题的算法的测试数据,例如泊位规划和起重机调度。Bielli 等人[19]使用面向对象的设计来开发集装箱码头的模拟器。每个设备,队列或区域都作为对象实现,对象之间的通信实现为消息。Ottjes 等人[20]为多码头系统的设计和评估引入了通用仿真模型结构,该模型由三个基本功能组成:传输,转移和堆叠。Petering[21]开发了一个综合的仿真模型,以解决码头设计,存储和检索位置以及码头起重机控制方面的问题,这些研究都没有能够为不同的集装箱码头提供灵活的综合解决方案。因此,在本研究中,我们的目标是引入一个通用的平台来生成各种集装箱码头的仿真模型。
通常情况下,集装箱码头的仿真模型采用集中式结构,由一个控制中心控制每个事件和过程。然而,在典型的集装箱码头中,设备可能由人类驾驶员手动驱动并且可能彼此交互以形成复杂的系统。这些系统的复杂性不能通过集中式单调逻辑建模,而是通过分散的自治代理来建模。一些研究使用多代理方法开发了仿真模型。Rebollo 等人[22]开发了一个多代理系统来模拟港口集装箱码头管理。Henesey 等人[23—27]采用基于多代理的模拟方法来评估集装箱码头管理运营,该方法旨在通过映射码头的对象和资源来规划和协调码头内的过程。Franz 等人[28]提出了一个基于多代理的模拟器来模拟集装箱码头管理中的市场机制。
本文献综述中涉及的模型如表2.1所示。表2.2从外部功能的角度比较了商业软件产品,因为它们的内部机制总是受到保护。本文提出的仿真平台与现有的仿真模型主要在软件结构上有所不同。基于混合建模结构,可以生成不同的仿真模型来满足不同的需求。因此,即使与商业软件相比,它的外部功能也是多种多样的。
表2.1 集装箱码头仿真研究综
表2.2 仿真软件和MicroPort的功能比较
第3章 MicroPort的软件结构
MicroPort的软件结构包括三个编程层,即功能层、应用层和扩展层,如图3.1所示,在功能层中,实现了许多基本功能以支持更高层。在应用层中,构建了一个改进的多代理系统,以表示各种类型的设备和主要决策过程之间的交互。在扩展层中,可以插入用户模块以实现模拟启动、图形用户界面、动态图形输出等。这些层将在以下小节中进一步详细说明。
图3.1 MicroPort的软件结构
3.1功能层
作为MicroPort的基础层,功能层应该快速,通用且灵活。在比较了许多不同的仿真软件之后,MicroCity[29]被选为MicroPort的骨干,原因如下,首先,MicroCity具有开放式架构,可以轻松扩展以满足各种需求。其次,MicroCity已经提供了许多功能(如地理信息系统,网络求解器,混合整数规划求解器,三维实时渲染引擎等),这些功能在其他软件中没有配备。最后,MicroCity通过使用C/C 作为其低级编程语言和Lua[30]作为其更高级别的脚本语言来保证非常高的运行速度。MicroCity不会在其下层直接提供模拟相关功能,尽管这些功能可以在更高层中实现而没有太大困难,但是使用较低级语言来实现这些功能将在性能方面提供巨大优势。
在功能层中,在MicroCity之后,基本功能在C/C 中实现,并升级为可以从更高层执行的Lua功能,功能层内置了两个功能系列,用于实现基本的仿真功能。第一个由随机数发生器组成,第二个包括离散事件调度器。Mersenne Twister随机数发生器(Matsumoto和Nishimura[31])实现与变换函数相结合,以便于生成用于统计概率分布的随机数。
对于离散事件调度器,传统的实现很简单。程序的主体维护一个优先级队列,其中事件按其开始时间的升序排序,从队列中弹出事件时,将触发关联的子例程。然而,如果传统的面向过程的编程语言和面向对象的编程语言在数据或逻辑上相互关联,那么面向对象的编程语言就无法将运行环境从一个进程保留到另一个进程。另一方面,在像Lua这样的现代动态编程语言中,我们可以通过协作线程轻松地暂停和恢复当前的程序状态(Jouvin[32]).因此,本研究将Lua协同例程(通用子例程允许多个入口点暂停和恢复在某些位置执行)绑定到事件以保留运行的上下文。如果事件之间没有关系,则相关的协同例程将充当子例程。如果多个事件属于同一实体或操作过程,则将使用单个协同例程,这个协同例程将由初始化事件创建、暂停并稍后由中继事件恢复,而不需要在存储数据或逻辑方面做任何努力,如图3.2所示。MicroPort的功能层中的此事件执行模式为更高层提供了灵活性。串行、并发或串行并发混合建模概念可以在更高层中轻松实现。
图3.2 离散事件调度器中提出的延续实现
3.2应用层
MicroPort的应用层旨在代表集装箱码头的主要运营流程,目前的集装箱码头有两种主要类型的控制系统,即集中式系统和分布式系统。集中式系统有一个控制中心,可以做出所有决策并控制所有设备的运动和操作,集中系统目前广泛用于集装箱码头和模拟模型。但是,观察集装箱码头是一个高度复杂的相互关联系统至关重要,单个设备之间的许多交互很难直接或精确地在集中式系统中建模。因此,最近多代理系统的开发逐渐流行开来,其中各种设备类型和决策过程由特定软件代理表示。
通过在功能层中使用已被提出的离散事件调度程序,已在应用层中实现了改进的多代理系统。如图3.3所示,提出的多代理系统有一个主线程和多代理协同例程,主线程能够在串行模式和并发模式之间切换系统。在串行模式下
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。