福建工程学院交通运输学院 李 斌
摘 要:集装箱码头物流系统(Container Terminal Logistics Systems, CTLS)的作业调度一直是物流工程领域的难点与焦点之一。现有的运筹、仿真与优化等方法在解决CTLS的生产调度时都有一定的局限性且欠缺通用性。计算思维为CTLS的控制决策提供了新的解决思路。本文围绕计算机操作系统(Operating System,OS)中的进程和线程概念,参照OS任务调度的框架、机制、模式和算法,提出了CTLS调度决策计算体系,并针对某集装箱枢纽码头作业场景,融合OS中的多种机制和策略,设计了一种综合调度算法,随后针对该生产实例进行了仿真分析,验证了基于计算思维对CTLS进行调度决策的优越性。
关键词:作业调度 计算思维 集装箱码头 进程 线程
引言
集装箱码头物流系统(Container Terminal Logistics Systems,CTLS)的调度决策十分复杂,其各单一作业环节的调度往往就具有NP-Hard难度[1],多环节或整体控制决策的数学模型更是难以建立和求解[2],利用现有的运筹规划、系统仿真、智能优化和基于仿真的优化极难在可行的时间限制内获得实践作业中的最优解,甚至较优解。故本文基于计算思维,探讨不确定环境下CTLS的调度决策计算体系及其相应的计划控制算法,以期得出敏捷、高效、鲁棒和较为普适的CTLS滚动运营计划、协同作业组织和集成生产调度体系和控制策略,为提高我国集装箱港口的控制决策水平和“软环境”提出新的解决方案和做出有益尝试。
一、计算思维的引入
计算思维(Computational Thinking)是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为的一种方法,以设计和构造为特征,抽象和自动化是其本质[3]。计算思维以计算机学科为代表。计算机系统从本质来看,是一种离散事件动态系统、分布式控制系统、并行处理系统和资源动态重构服务系统,CTLS与计算机系统的本质相似[4]
集装箱码头是集装箱运输的核心枢纽,其多式联运和拆拼存储的功能使得港口在结构、行为和地位上极类似于信息网络中的骨干路由器(特定功能的计算机),都是对到达“数据包”进行拆拼、存储和转发操作(协议转换等同于多式联运)。两者之间的区别主要是:(1)前者是针对物理世界中的集装箱流,后者则是面向信息空间中的数据流。前者相对于后者,在作业空间、处理工艺和设备配置等约束方面都有更为严格的要求;(2)路由器根据网络状况和路由表来实时判定数据包转发何处,数据包去向不唯一且很难确定当前转发路径是否最优,系统运作以增大数据吞吐量、减少数据包转发延迟和健壮容错为首要目标;而CTLS中的每个集装箱都有明确的集疏运路线和载运对象,在保证系统通过能力和任务延迟的既定目标前提下,需将每个集装箱准确发送到指定对象。故集装箱码头物流的综合需求较骨干路由器更为严苛,其任务调度和资源分配体系和机制更为复杂。
故在计算思维体系下,综合应用计算机系统原理,同时注重CTLS与计算机系统的差异性,有望获得较为完备的集装箱码头物流调度决策计算体系(Container Terminal Logistics Scheduling and Decision Computing Architecture,CTLSDCA)。
二、集装箱码头物流调度决策计算体系
(一)集装箱码头物流服务的进程与线程定义
计算机的多道程序操作系统(Multi-programming Operating System,MPOS)的作业组织和资源分配皆围绕着进程和线程的概念进行展开,其中进程的概念是MPOS设计的核心,线程则是充分利用计算机硬件进行并行计算的基础。CTLS与计算机系统的运作机制在很大程度上具有相似性[4],于是利用进程和线程的概念和视图来建模、分析和优化集装箱码头的物流服务过程。参照计算机MPOS的任务调度与资源分配框架、机制和模式,根据CTLS的作业组织和生产调度过程,可给出CTLSDCA中进程和线程的相关定义如下。
(1)CTLSDCA中的进程:计算机操作系统中进程的概念是能分配给处理器并由处理器执行的实体,一组指令序列的执行、一个当前状态和相关的系统资源集,其两个基本元素是程序代码和代码相关联的数据集。从面向MPOS的视角来看,挂靠港口预计到港的集装箱船舶及其所运送的集装箱/货物集合是CTLS的作业,其一旦进入到集装箱港口中进入预备装卸作业阶段(从在锚地等待停靠开始),就将被映射成为集装箱码头操作系统(Container Terminal Operation System,CTOS)中的软件实体,其实际是CTLS中的用户进程(Container Terminal Consumer Process,CTCP)。类似地,CTCP亦有两个基本元素,一个是装卸及配载计划,一个是本港待装卸集装箱集合及其在舱位和堆场中的立体分布状况。
(2)CTLSDCA中的线程:MPOS中拥有资源所有权的单位通常是进程。多线程是指操作系统在单个进程内支持多个并发执行路径的能力。线程是一个可被操作系统调度和分派的实体。当前计算机系统正在向多核并行处理发展,CTLS也表现出了类似的演化发展趋势。如果面向离散泊位分配模式,将每艘停靠泊位作业的船舶视为一个用户进程,其占有一个泊位(CTCP的中心资源),那么每条装卸运输作业线路,是用户进程中的一个活动线程,其围绕码头前沿和港口堆场的核心作业设备岸桥、场桥、正面吊和集卡(线程的中心资源)展开装卸作业的广义计算。