《《智能软件开发》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《智能软件开发》PPT课件.ppt(45页珍藏版)》请在三一办公上搜索。
1、2023/7/18,智能软件开发(1-2),范锐广东海洋大学软件学院2010年9月,2023/7/18,基本要求,基本掌握基于Agent技术开发智能软件的方法、技术和工具。在今后的实际工作中,应用Agent技术开发出具有较高智能化程度的软件系统。组成至多三人一组的开发小组,自选一个多Agent应用软件开发项目,完成系统的分析设计及编码实现。利用课余时间,小组团结协作,主动熟悉JACK或JADE等智能软件开发平台;开展自选项目的开发实践。提交项目开发的文档、源码和执行程序。,2023/7/18,1:绪论,OOM的不足什么是Agent?为什么需要AOP?,2023/7/18,OOM的不足,没有对现
2、实世界中的实体加以区分。同步和异步被人为地剥离。不能自然地模拟现实世界的感知能力。,2023/7/18,什么是Agent?,Agent:智能体,主体,艾真体 在计算机和人工智能领域中,主体可以看作是一个实体,它通过传感器感知环境,通过效应器作用于环境。,主体,作用,环境,感知,2023/7/18,什么是Agent?,智能主体的几个典型的实例:Microsoft的Office助手计算机病毒(破坏主体)计算机游戏或模拟中的智能角色贸易和谈判主体(如Ebay的拍卖主体)网络蜘蛛Web Spider(搜索引擎中的数据搜集和索引主体,如Google),2023/7/18,什么是Agent?,主体弱概念:
3、自治性交互性协作性可通信性长寿性,主体强概念:知识、信念、意图、承诺等心智状态其它属性:移动性推理能力规划能力学习和适应能力诚实、善意、理性,2023/7/18,什么是Agent?,根据人类思维的层次模型,可将主体分成四类:反应主体形象思维主体抽象思维主体复合式主体 形象思维主体和抽象思维主体也可以合称为认知主体,2023/7/18,什么是Agent?,主体结构需要解决的问题包括:主体由那些模块组成,模块之间如何交互信息,主体感知到的信息如何影响它的行为和内部状态,如何将这些模块用软件或硬件的方式组合起来形成一个有机的整体。,2023/7/18,什么是Agent?,智能主体的工作过程,环境,交
4、互,信息融合,信息处理,作用,交互,作用,感知,2023/7/18,什么是Agent?,主体骨架程序:function Skeleton-Agent(percept)returns actionstatic:memory/*主体的世界记忆*/memory Update-Memory(memory,percept)action Choose-Best-Action(memory)memory Update-Memory(memory,action)return action*怎样存储映射信息?,2023/7/18,什么是Agent?,基于表的主体程序:function TABLE-DRIVEN-
5、Agent(percept)returns actionstatic:percepts,/*a sequence,initially empty*/table/*indexed by percept sequences,initially fully specified append percept to the end of percept*/action LOOKUP(percepts,table)return action*程序的问题有?,2023/7/18,什么是Agent?,反应主体:,环境,当前世界状态,传感器,动 作,效应器,条件-动作规则,主体,2023/7/18,什么是Age
6、nt?,反应主体程序:function Reactive-Agent(percept)returns action static:rules,/*一组条件-动作规则*/state Interpret-Input(percept)rule Rule-Match(state,rules)action Rule-Actionrule return action,2023/7/18,什么是Agent?,状态反应主体:,环境,当前世界状态,传感器,动 作,效应器,条件-动作规则,主体,内置状态,世界改变规律,以前动作影响,2023/7/18,什么是Agent?,状态反应主体程序:function Rea
7、ctive-Agent-with-state(percept)returns action static:state,/*现实世界的状态*/rules/*条件-动作规则集合*/state UPDATE-STATE(state,percept)rule Rule-Match(state,rules)action Rule-Actionrule state UPDATE-STATE(state,action)return action,2023/7/18,什么是Agent?,认知主体,环境,信息融合,传感器,动 作,效应器,主体,规 划,知识库,目标,内部状态,2023/7/18,什么是Agent
8、?,认知主体程序框架:function Cognitive-Agent(percept)returns actionstatic:environment,/*描述当前世界环境*/kb,/*知识库*/environment Update-World-Model(environment,percept)state Update-Mental-State(environment,state)action Decision-Making(state,kb)environment Update-World-Model(environment,action)return action,2023/7/18,
9、什么是Agent?,BDI主体模型可以通过下列要素描述:一组关于世界的信念;主体当前打算达到的一组目标;一个规划库,描述怎样达到目标和怎样改变信念;一个意图结构,描述主体当前怎样达到它的目标和改变信念。Belief信念,主体对环境的基本看法。Desire愿望,主体想要实现的状态,即目标。Intention意图,目标的子集。,2023/7/18,什么是Agent?,BDI解释器:BDI-Interpreterinitialize-state();dooptions:=option-generator(event-queue,B,G,I);selected-options:=deliberate(
10、options,B,G,I);update-intentions(selected-options,I);execute(I);get-new-external-events();drop-successful-attitudes(B,G,I);drop-impossible-attitudes(B,G,I);until quit,2023/7/18,什么是Agent?,规划库的形式化表示:环境状态:State=P1,P2,Pn 目标:Goal=动作模板:Act_template=主体能力:Ability=,2023/7/18,什么是Agent?,主体间的消息传递,消息传输服务(MTS),消息
11、传输协议MTP,Agent i,Agent j,消息M(ACL),消息M(ACL),2023/7/18,什么是Agent?,FIPA ACL,(inform:sender agent1:receiver hpl-auction-server:content(price(bid good02)150):in-reply-to round-4:reply-with bid04:language s1:ontology hpl-auction),消息结构开始,通信动作类型,消息参数,消息内容表达式,参数表达式,2023/7/18,什么是Agent?,Accept Proposal 接受提议Agree
12、 同意Cancel 取消Call for Proposal要求提议Confirm 确认Disconfirm 确认为否定Failure 失败Inform 通知Inform If 通知是否Inform Ref 通知有关对象Not Understood 不理解Propagate传播Propose 提议Proxy 代理,Query If 询问是否Query Ref 询问有关对象Refuse 拒绝(请求)Reject Proposal 拒绝提议Request 请求Request When 请求某个条件下执行Request Whenever 请求 一旦某个条件成立就执行Subscribe 预定,FIPA通
13、信动作库,2023/7/18,什么是Agent?,MAS定义:能进行问题求解,能随环境改变而修改自己行为,并能通过网络与其它Agent通信、交互、协作、协同完成求解统一问题的分布式智能系统。,2023/7/18,什么是Agent?,Agent是一种混合结构,每个Agent 包含感知、动作、反应、建模,规划、通信、决策等模块。,2023/7/18,为什么需要AOP?,程序设计思想告诉软件开发人员应该按照什么样的方式来编写源程序代码,如何得到高质量(易于理解、可维护、易于测试等等)的目标软件系统 如结构化、OO程序设计思想程序设计语言以一种计算机能够理解的方式来编写软件系统的代码为某些工具(比如编
14、译器或者解释器)所识别如C、Java编译器或者解释器对源程序代码进行编译以生成在目标机器上可执行的程序代码,或者交由某些解释器对它进行解释执行 如Visual Studio(C+),2023/7/18,为什么需要AOP?,在软件工程领域,不同的程序设计范型依赖于不同的基本概念和基础理论,对程序设计有不同的理解和认识,因而具有不同的程序设计思想,需要提供不同的程序设计语言以及相应的编译器或者解释器来支持程序设计阶段的软件开发活动。20世纪60、70年代的结构化程序设计思想和语言比如C、Pascal、Fortran20世纪80年代提出的OO程序设计思想和语言比如SmallTalk、C+、Java最
15、近的面向Agent的程序设计思想以及语言Agent-0,JAL(Java Agent Language),2023/7/18,为什么需要AOP?,OOP vs AOP,2023/7/18,为什么需要AOP?,应用:动态路由网络管理信息检索入侵检测工作流应用移动数据库电子商务远程教学软件工程,2023/7/18,为什么需要AOP?,标准:FIPAOMGFIPA-OMG规范国际会议:PAAMICMASRPRIMA,2023/7/18,课后学习,登陆http:/Agent开发实验指导书中的关于基于JADE开发Agent应用的相关概念、术语和实例;登陆http:/网站,下载、学习、研究JADE的概念、
16、术语和开发方法。,2023/7/18,2:面向Agent建模,特点对象与AgentMAS软件介绍,2023/7/18,Agent建模特点,在 现实世界中存在很多非集中控制的离散系统,例如蚁群、鸟群、交通运输以及市场经济等。基于主体的建模方式既重视群体中的每个个体的特性,更重视个体之间的 相互交互作用。每个“主体”都是主动的实体,具有对环境的适应性或学习能力。这一特点使其成为在经济、社会、生态等领域中用于研究适应性复杂系统的有力手 段。,2023/7/18,Agent建模特点,确定性与随机性相结合基 于主体的建模方式是从底层建立仿真模型,每一个体由相对比较简单的确定法则组成。建模思想认为,个体的
17、运动和变化不是来自系统的外部,而是在一定条件下系统内部各种因素相互作用的结果。利用蒙特卡洛方法模拟随机状态,每一个体根据其自身的准则产生近似随机行为的复杂现象,反映出“适应性造就复杂性”。,2023/7/18,Agent建模特点,动态仿真波 动、不平衡是复杂系统运动的常态,系统本身处于不断运动变化当中。个体之间的非线性作用使得整个系统的宏观状态不是各个微观个体的简单叠加;系统整体的性质与各子系统的性质并不存在必然的因果关系。这是传统的数学建模和其他将宏观与微观割裂开来研究的分析方法力所不及的。因此,基于主体的计算模型具有更强 的描述和表达能力,更接近客观现实世界的真实情况。,2023/7/18
18、,Agent建模特点,宏观与微观任何复杂系统中大量个体的动态行为成为整个系统演变的基础,个体与环境,个体与个体之间的相互影响、相互作用,形成系统演化的主要动力。基于主体的建模思想 是将系统的宏观变化看作是微观变化导致的结果。赋予宏观模型一个虚拟的微观基础,便于探索微观层次众多个体交互作用导致整个系统显现某种动态演化的趋势,即宏观层次所呈现的模式或规律。,2023/7/18,对象与Agent,相似:实体性、封装性;可以执行某种动作和方法;通过消息进行通讯;区别:决定权:OO,决定权在主动调用方法的对象,Agent,决定权在接受请求的Agent。行为能力(反应的、预动的、社会的):Agent全具有
19、;OO对象不具备。并行性:Agent的最基本特性;OO对象不具备。,2023/7/18,对象与Agent,2023/7/18,多Agent模拟软件简介,1 Swarm 2 NetLogo 3 StarLogo4 Repast5 TNG Lab 6 jES 7 Ascape8 Ecolab,9 MASON 10 ABLE 11 Cougaar12 JADE 13 JACK 14 AgentBuilder15 Zeus16 Aglets,2023/7/18,多Agent模拟软件简介,2023/7/18,多Agent模拟软件简介,JADE平台简介 JADE(Java Agent Developmen
20、t Framework)是一个软件开发框架,用于开发多Agent系统和符合FIPA标准的智能Agent应用程序。,2023/7/18,多Agent模拟软件简介,Agent管理系统(AMS)是负责监督管理对Agent平台的访问和使用的Agent。目录服务(DF)是在平台上提供默认的黄页服务的Agent。消息传输系统,又叫做Agent通信通道(ACC),是控制平台内所有的信息交换,包括与远端平台进行信息交换的软件。,2023/7/18,多Agent模拟软件简介,JDAE框架模型,2023/7/18,课后学习,登陆http:/Agent开发实验指导书中的关于基于JADE开发Agent应用的相关概念、术语和实例;登陆http:/网站,下载、学习、研究JADE的概念、术语和开发方法。组成项目小组,初步提出智能软件开发项目题目。,