基于多Agent的第三方物流系统协作研究
发布时间:2015-07-11 10:01
摘 要 为了提高第三方物流服务商的效率,并适应第三方物流对业务流程动态变化的需求,本文利用多Agent技术,构造一种基于多Agent的第三方物流协作系统。讨论了系统Agent单元间的协作过程与通讯机制。
关键字 多Agent;第三方物流;协作
1 引言
为了提高供应链中物流的运转效率, 企业纷纷寻找专业化的物流服务商,即第三方物流, 而第三方物流正是以信息化、专业化和系统化的特征取代企业各自为政的物流体系,承担供应链部分或全部物流。因此,第三方物流服务商的效率,决定着整个供应链物流的效率。在物流的具体运作中,由于资源和地域的限制,第三方物流企业经常需要寻求合作伙伴,结成协作物流系统,实现成本的降低。同时,又由于物流本身的移动性使得第三方物流的业务流程处于动态变化之中,这种动态变化增加了企业的不确定性和风险,要求第三方物流企业具有更高的反应性和自治性。
在分布式人工职能领域中,基于Agent的结构提供了鲁棒性、可变性、柔性,适用于解决一些动态的、不确定的和分布式的问题。特别在开放式的互连网络结构中,Agent更是理想的选择结构。Agent之间能彼此交互达到各自的目标,并通过合作去达到共同的目标,或通过谈判去解决冲突,这正好适应了第三方物流企业对业务流程动态变化的要求。因此,为了使来自于各个物流企业的各种物流资源能够协调一致地工作,相互配合以完成物流企业的最终任务,本文借助多Agent 技术, 构造一种基于多Agent的协作物流系统,讨论了系统的构成以及协作过程与通讯机制。
2 多Agent协作物流系统结构模型
Agent本身就是一个自治体,其本身具有自治性、交互性和主动性,适应了第三方物流企业对业务流程动态化的要求。因此,本文根据第三方物流企业的内在机制,将其视为由许多相互协作的Agent单元构成的一个协作物流系统。在多Agent协作物流系统中,每个Agent单元都拥有要完成任务所需的信息或能力,并且它们的活动是自治和独立的。它们不仅要完成自己服务任务,还要通过协作共同完成供应链部分其他协作系统的各种任务。这种协作不仅包括本企业内部Agent单元的协作,同时也包含不同企业之间的信息共享与协作。从系统的角度而言, 这种协作体现了一种协同作用、优化作用,而不是简单的功能叠加,它能够确保物流系统之间采用最便捷的信息交流以及提出最佳解决问题方案。基于多Agent的协作物流系统模型如图1所示。
订单Agent:负责接收客户订单, 并且根据任务完成情况给客户返回必要的信息。
管理Agent:是系统的核心,负责协作系统内各个Agent的协作管理。同时,它还负责与其他物流协作系统进行通讯和任务发布。
任务Agent:负责任务的分配与处理,是动态生成的。
配送调度Agent:负责从客户订单申请、配送作业生成到实际配送出库的一系列管理。
基于多Agent的协作物流系统具有如下特点:
(1) 既可以独自为客户提供完整的物流服务,也可以在必要时动态寻求合作伙伴,进行物流资源的优化配置,共同完成。这使得物流系统具有较强的动态性。
(2) 通过Agent单元之间的通讯可以实现系统间不同层次的信息交流与资源共享,提高了物流服务效率。
3 多Agent协作系统的协作过程
物流企业之间通过协作系统实现业务实时协作。由图1可知,该系统是以物流任务为中心。订单Agent负责接收客户订单, 并且根据任务完成情况给客户返回必要的信息。当管理Agent接受到新的任务时,任务Agent根据系统内所提供的服务能力,进行任务的分配。当任务Agent发现无法独自完成任务时,就会产生协作需求。协作过程首先管理Agent以管理者的身份通过广播的方式向系统中的所有Agent发出协作请求。各Agent将依据自身能力特点,评价是否能够参与任务的协作,然后对发出任务的Agent系统作出回应。管理Agent在以“双赢”的原则,评估与哪些Agent系统进行协作,评价指标主要有:质量、信誉度、市场占有率等。最后根据评估的结果选取协作的伙伴。对于接受订单的第三方物流企业在寻找协作伙伴的同时,还要实现自身利益的最大化。当协作结束后,任务Agent也会被系统自动的删除。
4 多Agent 之间的协作通讯机制
在多Agent协作系统中。Agent之间的协作过程是通过Agent之间的通讯、信息共享来完成的。在具体实现时,本文采用消息传递的方式来实现Agent之间的通讯。在消息传输中,消息的语义内容是Agent通讯的核心部分。本文主要应用FIPA-ACL消息结构。FIPA-ACL消息结构由外到内分为三个层次:envelope、content、message。
envelope描述消息传输的各种附加信息,如发送者、接受者等。
content描述了传送的具体消息内容。
message描述消息传输的各种参数,如消息使用的编码格式,传输的协议等。
具体的消息格式
Message:: = MessageTypeMessageParameter
MessageType::=request|agree|cancel|cfp|confirm
MessageParameter::= :sender|:receiver|:content|:reply-with|:reply-by
例如:Agent A 请求(request) Agent B 去运送一个箱子的请求消息
(request :sender A
:receiver B
:content (action(agent-identifier:name B) (deliver box(loc 12))
:protocol fipa-request
:reply-with order1
)
Agent间通过这种消息传递, 实现了系统间相互通讯、合作, 共同完成了货物的配送任务,提高了第三方物流服务商的效率。
5 多Agent协作系统实现
在此基础上,为了实现第三方物流企业的合作,本文应用Java语言和Oracle数据库开发了协作物流系统。系统体系结构如图2所示。
该系统是基于B/S的三层结构。在客户端使用Applet技术实现各个Agent组件,在服务器端使用Servlet技术。通过Applet和Servelet之间信息的交互,实现多Agent间的通讯协作。在三层体系结构中,用户层包括终端服务用户与销售商等,他们通过平台进行信息的交互,接受客户的订单,动态配送货物以满足用户的需要。
6 结论
本文借助多Agent 技术, 构造一种基于多Agent的协作物流系统,讨论了系统的构成以及协作过程与通讯机制,满足了第三方物流对业务流程动态变化的需求,实现了各个物流企业的各种物流资源相互配合、协调一致地工作,完成物流企业的最终任务。
参考文献
[1] 陈军安,黄金国.基于多Agent技术的物流管理系统模型研究.华中科技大学学报(自然科学版),2002(4):32 -34
王道平,何海燕.第三方物流信息系统设计方法研究.物流技术,2003(7):31-34
高贵兵,刘炜琪等.第三方物流企业管理信息系统研究与开发.中国水运,2007(8):197-198