基于FIPA
提出具有开放性的基于多智能体体系结构的调度框架,实现柔性制造系统的动态调度系统。系统中的个体智能体可根据实际需要进行增加、删减、修改,有利于系统的优化配置。另外采用FIPA规范的ACL/SL作为智能体系统的通信原语,并给出合同网交互协议的时序图和原语实例。
用多智能体系统进行分布式问题求解时,集成在一个系统中的智能体彼此之间必须能通信和协作,通信是协作的基础。目前国际上主要的智能体消息语言有ACL和KQML这两种,语义语言有SL和KIF这两种。KQML和KIF是美国ARPA的知识共享计划[1]提出的,曾经一度成为最通用的智能体通信语言。而ACL和SL是由智能物理主体基金(Foundation for Intelligent Physical Agents,FIPA)提出的,现已成为大多数开发平台的智能体通信语言。柔性制造系统(Flexible Manufacturing System,FMS)的调度问题是FMS能否实现其设计初衷的重要问题之一,而FMS调度问题的复杂性、不确定性使得多智能体系统实现其动态调度具有相对的优势[3’4]。为此本文提出了FMS多智能体调度系统,并以招标/投标过程为例设计其FIPA-ACL及FIPA-SL通信语言,实现智能体之间的交互。
1 多智能体系统及FIPA通信语言
1.1 多智能体系统的特征
智能体(Agent)是处在某个环境中的计算机系统,该系统有能力在这个环境中自主行动以实现其设计目标[2]。多智能体系统(Multi-agent System,MAS)是通过某种协议而松散联系的智能体形成的网络,各智能体之间互相协作和协调,共享知识和信息,解决单个智能体不能处理的问题。MAS具有以下特点:①每个智能体只拥有部分的、不完备的信息或者只具有求解部分问题的能力,因此每个智能体的能力是有限的;②多智能体系统没有一个全局的控制系统;③数据是分散处理和存储的;④能够实现异步计算。而智能体之间要实现协作,个体之间必须以一种能够互相理解的语言(智能体语言)进行交互,因此智能体语言的设计是实现多智能体系统的重要内容。
1.2 FIPA-ACL与FIPA-SL
用多智能体系统进行分布式问题求解,集成在一个系统中的智能体彼此之间必须能通信和协作,通信是协作的基础。
在叙述以下内容之前,先明确几个概念:①消息(message):智能体问通信的载体;②消息内容(content):消息的一个参数,用以说明消息所要表达的内容;③通信语言(或消息语言):用于表示消息的语言,如ACL和KQML;④语义语言:用于表示消息内容的语言,如SL和KIF。
图1为一个智能体消息的ACL格式。
图1 ACL消息格式
由图1可以看出,ACL消息包含一组参数(一个或多个)。消息以一对括弧作为起止标记。消息的第一个参数是通信动作(Communicative Act,CA)类型,在本例中为“inform”,通信动作类型这个参数是必不可少的,它表明了这个消息的基本类型。其余的参数的取舍根据实际情况而定,且必须以冒号“:”开头,中间无空格。其中参数content包含用某种语言编码的消息内容。其他参数用于消息传输服务正确传递消息(如sender,receiver),或帮助接收者解释消息含义(如language,ontology),或者帮助接收者能更合作地回复(如reply-with,reply-by)。更多的消息参数参见表1。
表1 FIPA-ACL消息参数
在FIPA规范中,通信动作类型有一个库,包含着FIPA规范的所有通信动作类型的定义[5],常用的通信动作类型见表2。
表2 FIPA通信动作类型
如果说ACL为人的发音系统,那么SL则为能够使人们相互理解的语言。语义语言可以用来表达ACL消息的内容,一般用于以下三种情形:①命题(Proposition):用于inform通信动作及其派生动作;②动作(Act):动作可以是单个动作,也可以是由顺序或选择算子连接的合成动作。当动作是request及其他派生动作,一个动作可以被作为内容表达式;⑧确定的参考表达式(An identifying reference expression):确定域内的对象。用于inform-ref及其派生活动。
其他有效的内容表达式都可以从以上三个基本点合成。而一般用原子式[6]、完型表达式[6]和参考算子[6]表示以上三种情形。
消息内容表达式是智能体之间传递信息的核心内容,只有规范内容表达式的格式,智能体才能正确识别接收到的信息。除了标准原子式以,还可以根据需要自定义一些原子式,这时必须有“:language<语言文件>”这个消息参数,而消息内容中所用的词语则由“:ontology<文件>”解释。FIPA-ACL的消息内容表达式有其格式上的固定要求,关键字和参数也有词汇上的定义,具体见文献[6]。
2 FMS多智能体调度系统的体系结构
一般来说,多智能体计划调度系统不像普通的计划调度系统那样由生产计划、作业计划、生产控制等生产管理的功能模块组成。而是由生产流程中各功能单元所对应的智能体组成。普通计划调度系统中的生产计划、作业计划等模块涵盖了所有的生产工序和主体设备,而多智能体计划调度系统中的智能体则承担了该工序从计划到控制的全部功能。
体系结构对于软件系统的运行性能有着重要的影响。多智能体计划调度系统的这种体系结构,提高了系统应对突发事件的敏捷性,适合于动态的求解环境。当发生只涉及个别智能体的外部突发事件时,由于智能体的相互独立性,它们可以快速地做出响应。另一方面,这种体系结构也便于自主处置像设备故障、质量事故等内部突发事件。
在下面提出的多智能体系统结构中,FMS的调度系统被建模成智能体社会,每一个智能体仅对它自己的目标负责。在这里我们把组成系统的智能体划分为四类:服务器智能体、订单智能体、生产智能体和运输智能体,括号中的数字表示数量,如图2所示。
服务器智能体管理着某一时刻的智能体系统。负责个体智能体的增加、删减;订单智能体负责任务的接收和分解,它具品工艺数据库。
图2 FMs多智能体调度系统体系结构
系统工作过程:
stepl:订单、生产、运输智能体向服务器智能体进行注册/注销,形成一个动态工作集体;
step2:外部环境(操作员或者其他系统的输出)向订单智能体下达订单,外部环境可通过订单智能体随时查询订单的执行情况;
step3:订单智能体根据加工工艺数据库将订单分解成多个子任务(工件的一道工序);
step4:订单智能体把第一批子任务(每个工件的第一道工序)的加工任务向外公开招标,生产智能体对标的物进行投标;
step5:获得标的物的生产智能体向运输智能体请求运输任务;
step6:运输智能体根据规则调度AGV将工件输送给获得标的物的生产智能体;
step7:获得标的物的生产智能体所在的机床加工工件的该工序,完成后通知订单智能体,同时检查该工件是否有下一道工序,如果没有则请求运输智能体将该工件运输入库,否则将下一道工序的加工任务向生产智能体(包括本身和其他生产智能体)进行新一轮的公开招标;
step8:回到step5。
以上各个步骤并不一定是顺序执行,在第1步,除了在系统开始运行时进行外,当系统内设备发生故障或故障恢复时都将发生;在第2步,外部环境随时可以将订单提交给订单智能体等等。
3 通信实例
任务的招标和投标采用的是合同网交互协议,在介绍招标和投标之前,先对FIPA规范的合同网交互协议进行分析。FIPA合同网交互协议的顺序图如图3所示。
图3 合同网交互协议
解释:招标主席向n个投标者发出招标通知,这个通知包括任务(task)以及附加信息。这n个投标者将各自的响应发给招标主席,在这行个响应中,j(其中)为标书的数量(有的投标者放弃投标权利),招标者的标书包括执行任务的前提,可以是任务执行的价格、时间、费用等,而i=n-j为放弃的数量。一旦有效期(deadline)过去,招标主席就开始评估所接收到的j个标书,并确定一个中标者。这个中标者将收到accept-proposal消息(授权),同时将有n-1个投标者将接收到reject-proposal消息(不授权)。一旦这个投标者完成任务,就向招标主席发送完成消息,inform-done表示任务完成,inform-result将更详细描述完成状况,而failure则表明任务完成失败。
在本文论述的智能体系统中,当某个智能体手头上有需要其他智能体进行处理的任务时,就会成为招标主席,该任务向其他智能体进行招标。在招标之前,前者会向服务器智能体询问那些智能体的地址,获得所有的地址之后,任务智能体就通过一个或多个cfp活动进行招标。假设智能体agentl要对工件的某一道工序x进行招标,其通信原语为:
(cfp
:sender(agentl)
:receiver(agent2,agent3,……,agenti)
//当receiver参数为集合时,消息的发送方式为多播
:content
”((action(agent2,agent3,……,agenti)(processtype x))
(iota?bid((and(>?P precision)(<?t time))?bid=f(?P,?t)))))”
:language fipa-sl
:ontology fins-agent
:protocol fipa-contract-net
)
招标智能体发布招标信息后,其他的智能体分析任务的工艺信息和自身的利益,如果能够胜任该工作,则向招标智能体提交(propose)自己标书,否则refuse该招标信息。
假设智能体agent2要对agentl的标书进行投标,其通信原语如下:
(propose
:sender(agent2)
;receiver(agent1)
:content
”((action agent2(processtype x))
(=(iota?bid((and(>?P precision)(<?t time))?bid=f(?P,?t))))C))”
:language fipa-sl
:ontology fms-agent
:protocol fipa-contract-net
)
4 结构及展望
为了促进MAS在生产系统中的应用以提高生产过程智能化,本文就MAS在FMS中的应用作了一些探讨。目前本文仅涉及到体系结构及通信原语问题,下一步的工作任务是实现调度系统的最优化算法。
作者:西部车床,如若转载,请注明出处:https://www.lathe.cc/2022/09/5407.html