好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

人工智能软件中的面向对象程序设计.docx

7页
  • 卖家[上传人]:M****1
  • 文档编号:432957835
  • 上传时间:2022-09-07
  • 文档格式:DOCX
  • 文档大小:82.72KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 人工智能课程论文人工智能中的面向对象程序设计学生姓名:学 号:专业班级:计算机技术人工智能中的面向对象程序设计摘要 面向对彖的程序设计(OOP)以多种面貌广泛地出现在AI系统中面向AI的OOP模 型与结构依赖于对AI中对彖的理解,以及相应的AI软件开发才法本文提出在三个层次 上,即世界观的层次上,方法论的层次土以及语言与环境的层次上理解OOP我们根据AI 中扣识表示假设,将AI软件中的对象规定为智能代理者,并在此基础上讨论了 AI软件的 OOP方法学和结构最后我们介绍反映上述忠恕的人工智能语言及其坏境ROOTo 关键字:智能软件面向对彖软件工程应用OBJECT ・ORIENTED PROGRAN1MINGFORAIAbstract In tlie paper , we propose three levels of understanding for object oriented programming (OOP) : philosophy level , metliodology level , and Language /environment level We consider "object as intelligent agent'1 based on knowledge representation hypotliesis.Along with tlie view , we discuss the methodology and architecture of OOP in AI software。

      ROOT , which is an AI programming Language and environment developed by our group , re fleets the u nderstanding discussed in the paper.1.引言被称为八十年代结构程序设计的面向对彖程序设计(OOP)不仅在软件工程(SE)领域 产生了重大影响,而且已经成为基于知识的人工智能(AI)系统及其开发环境(简称为AI软 件)的重要范型,在AI软件中以多种形式表现出来:直接用OOP语言设计AI软件一些AI软件,例如基于知识的智能控制与制造系统,直 接利用Smalltalk-80 , C++等OOP语言设计实现其特点是知识以状态的形式分布在控制过 程的各个坏节,程序的过程性代替了知识的形式表示建立在函数/逻辑语言上的02环境 函数范型的符号处理语言LISP是具有较长历史和 丰富环境的AI语言,人们自然希望在LISP±建立OOP环境Flavors , LOOPS和ObjVLisp 是这一思想的典型体现这一工作的核心是在LISP环境上定义有关对象定义,方法定义和 消息传递等支持OOP的函数,从而在LISP±建立OOP的外壳。

      同样在具有元级描述机制的 Prolog上也可以类似地建立OOP外壳建立在抽象数据类型(ADT)上的OOP ADT与OOP的许多共性使人们希望建立两者的联 系Jo Ao Goguen的工作Fooplog就是试图在ADT中引入反映状态变化的属性和反映继承 关系的继承说明以扩展ADT建立OOPoOOP作为多范型AI环境的一部分一种观点认为多种范型并存在的AI语言与坏境是一种 合理和现实的选择知识系统开发工具KEE就是一种集知识的规则表示,框架表示和OOP 于一体的集成环境OOP仅作为AI软件的整体结构这种OOP强调AI软件的模块成分是对彖,整体结构 是面向对彖结构而对象的内部结构不追求统一的纯OOP原则,可以是规则、逻辑、函数 等范型的组织形式0rient84/K, NEXPERT OBJECT等工作反映了这一思想OOP方法在AI软件中的多样性不仅说明了 OOP在AI中的广泛应用,而且反映了人们对 OOP不同层次的理解,以及在AI中不同深度的应用下面我们首先在三个层次上一般地讨 论对OOP的理解,然后依据知识表示假设提出对彖作为智能代理者的OOP观点和程序设计方 法最后介绍基于这一观点的AI语言和环境ROOT的OOP结构。

      2.关于OOP不同层次的理解人们对OOP的认识反映在面向对彖的世界观,面向对彖的方法学和OOP语言等不同层次 上1) 面向对象的世界观OOP被广泛接受的一个重要原因是面向对象的世界观更接近于人们对现实世界的自然 感受对此作了如下概括:“OOP的基本粋学是使程序尽可能反映人们正在考虑的现实世界 的那一部分,这样常常易于对程序的理解,以及对程序所描述爭物的全面把握因为人们是 遵循现实世界的发展认识世界的,越接近于用这种方法思考程序设计,就越容易设计和理解 程序 OOP是将“程序的执行看成模拟现实世界某一部分行为的物理模型 “一个物理模 型涉及一组对彖,对彖由属性和动作序列刻划尽管人们对OOP的特点有各种各样的榄括,但对OOP世界观的认识基本上是一致的2) OOP方法学OOP方法学是OOP世界观在程序设计方法上的具体反映,它与OOP语言的性质紧密联系 在一起对象之间通过消息传递建立联系对彖通过一个方法的执行响应一个消息一组具 有共性的对彖组成一类,而类之间又构成了继承关系按照上述OOP的图景,OOP方法包括:确定系统中涉及的对彖和;确定对彖,以及类之 间的联系;完成对彖中属性和方法的设计由于OOP具有信息隐蔽,数据抽彖,动态约束和继承等特性,因此人们也说:OOP方法二抽象数据+动态约束+继承由于基于OOP的软件具有模块性,强壮性,可理解性,可重用性,可扩展性,开放性等 一系列优点,OOP在SE领域被广泛采用。

      3) OOP语言OOP方法学体现在OOP语言中一般认为:对彖,类,消息,方法和继承是OOP语言重 要的概念尽管人们普遍认为没有绝对标准的OOP语言,但反映在Smalltalk-80中的语言 概念成为设计和衡量OOP语言的相对标准我们把它归纳为以下原则:一切皆为对象;对彖 是属性及其操作方法的有机构成OOP对彖是系统的活跃成分;对象是类的实例,实例关系和 继承关系是对彖之间的静态关系:消息传递是计算的唯一形式,也是对象之间动态联系的唯 一形式,方法是消息的序列实际上,包括Smalltalk 80在内的许多OOP语言都没有绝对恪守上述原则因为这些 原则不仅给OOP语言的实现技术和实现效率带来许多问题,而且其简单统一的倾向也与面向 对象的世界观产生了冲突由于OOP源于一种世界观,而不是一种局部具体的理论或方法, 因此OOP在SE ,DB (数据库)或AI中的表现形式由于领域问题的不同而变得多种多样3・从AI的角度看OOP传统AI研究遵循了称之为知识表示假设的途径Smith将这一假设归纳为:任何机械 的表现智能的过程由以下结构成分组成:a) 人们作为外部观察者,将被处理过程作用的知识当作命题自然地表示出来。

      b) 独立于这些知识的外部语义属性,形式地引发表现知识意义的行为,这些行为与知识 有着实质性的因果联系知识表示假设规定智能代理者由知识表示结构和作用于此结构上的处理过程组成知识 表示结构与相应的处理过程密不可分,互为存在知识表示结构的意义通过处理过程的行为 体现简单地讲:智能代理者二知识表示结构+处理方法与对彖的般结构相比较,智能代理者正是对彖在AI软件中的一种具体解释我们认为 把对象作为智能代理者对于复杂的AI软件设计具有十分重要的意义第一代AI软件可以说是一种单个智能代理者结构的AI系统,这种软件结构的问题是知 识表示结构与一种统一的知识处理方法以隐含形式相联系知识处理方法的单一性及其在系 统实现中的“固化”使人们在AI软件的设计中产生一种错觉:AI软件设计的核心是知识表 示结构的设计,这种结构必须为这种单一的推理机制理解也就是说,知识表示结构是第一 性的Feigenbaum甚至把这类专家系统称之为知识传输系统对象作为智能代理者意味着:1) AI软件不再是单智能代理者系统,而是由一组协同工作的对象构成2) AI软件设计不再是单纯的知识表示结构的设计,而是对彖的设计每个对彖内部不 仅涉及知识表示结构的设计,而且更主要的是具有决定意义的特殊的知识处理方法的设计。

      3) AI软件的执行不再是简单重复性的问答对象作为AI软件中能够自主进化的动态实 体,可以根据自身的行为和整个系统的状态调整对彖内部的知识表示结构,显示简单的成长 过程人类认识和处理问题的一般过程是从一个认识基点出发曲折的探索过程AI软件的开 发作为一种智力投入也应立足于一个认识基点我们把这一认识基点规定为OOP结构OOP结构包括环境中已经建立的类以及类与对彖的构造方式1) 环境中的基本类OOP环境中的基本类(记为SCLASS)是OOP结构的基础素质SCLASS中汇集了一个阶 段成熟的和常用的知识处理方法SCLASS的设计与实现是人对OOP结构最初的智力灌输 SCLASS应具有非构造性和开放性的特点非构造性是指SCLASS中的方法是不可分解的基本 方法,用它们可以定义同一层次的其它方法,但其自身不可被同一层次的其它方法定义 开放性是指SCLASS中的方法允许被修改和丰富SCLASS是OOP结构与其支持环境相联系 的窗口2) 结构方式类和对彖的定义与结构方式是OOP结构的成长素质类以及对彖之间的关系包括一个静 态关系,即继承结构:一个准静态关系,即实例化结构;和一个动态关系,即消息传递•继承结构对继承结构的认知意义人们强调的侧重点不尽相同,这里我们强调:子类对父类的继承 是:1)子类对父类的信息共享。

      2)子类对父类一次丰富或细化我们用规则(R1)表示继承 结构R1)说如果A是类,那么新定义成分Def与A构成以A为父类的新类BB中的 Def是对A的丰富或细化Class A e [、(K ])Class B: 图1(a)是子类B对父类A的引用关系圈,图1 (b)所示的继承链被解释为从B到B的 不断逼真的开发过程继承结构的起点通常是SCLASSo信息共享走向——<=SH3软件开发是向(b)图1类的继承关系图2实例化关系•实例化结构Class AObject a of A(R2)类是一组对彖的抽象,对象是类的实例化我们用规则(R2)表示实例化关系R2) 表示如果A是类,则A的实例a是对象图2是对彖al, a2, a3对其类A的引用关系图这里我们强调两点:⑴实例化结构是从 一般到具体的结构抽象是SE的重要原则,但是实例化结构不是刻划抽象行为的机制我 们只能由类A通过实例化机制得到具体的对彖al, a2, a3,还不能由al, a2, a3通过某种抽象 机制得到A到目前为止OOP乃至整个AI技术还没有比较成熟的描述抽象过程的机制OOP 结构 仅提供了描述抽象成分的语言设施一一类类的设计仍然依赖于人的智力投入。

      2) 按照纯统一的OOP语言原则,OOP,结构中要求存在最一般的(元)类:OOP环境中所有的 类和对彖均源于这个类的实例化尽管一些OOP结构追求这种理想,但我们注意到:a) 实例化过程不能反映从具体到一般的发现过程;b) 如果把最一般的(元)类看成最抽象的爭物,那么这种(元)类是不存在的;c) 人们能够实现的最一般的(元)类实际上是类的定义模式我们主张在对彖作为智能 代理者的观点下,类仅作为对彖的静态抽象描述;类的定义通过OOP环境支持:类不再作为 对象被元类的实例化生成;允许类似变量类型说明的静态实例化说明•消息传递消息传递是OOP结构中,对象之间协同工作的动态联系方式我们主张知识表示结构不 能独立成为对彖,因此对象内部的知识处理不被解释。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.