张聪品 孙全党 赵小莉
高中信息技术课包括必修与选修两个部分,高中信息技术课总学分为2+2,其中必修2学分,科目内选修(人工智能初步)2学分。4个学分是学生取得高中毕业资格的基本要求。人工智能初步选修模块包括五部分,分别是初识人工智能、知识的表示、人工智能语言(Prolog语言)、推理与专家系统、通过搜索求解问题。
中学生选修《人工智能初步》具有重要意义,第一,既培养了学生多种思维方式,又综合锻炼了信息素养。现实世界的问题可以按照结构化程度划分成三个层次:结构化问题、非结构化问题、半结构化问题。一般说来,中学阶段开设的传统意义上的信息技术课程中所介绍的信息技术,例如多媒体技术、网络技术、数据库技术、算法与程序设计等,都是求解结构化问题的基本技术。而人工智能技术则是解决非结构化、半结构化问题、复杂的结构化问题的一类有效技术;第二,使学生体验人类专家解决复杂问题的思路,从而提高学生的逻辑思维能力;第三,使学生了解信息技术发展的前沿,激发学生对信息技术未来的追求。
《人工智能初步》选修模块的教学内容决定了其课堂教学应与其他模块课堂教学存在较大的不同,如何呈现技术原理,如何把握技术深度,如何提练技术方法,如何创设技术情境等这些超越了技术本身的知识和原理框架的问题,是《人工智能初步》模块的课堂教学需要探索解决的。本文按照课程标准,通过研究人工智能初步选修模块中的技术对学生学习的价值,在省中学骨干教师培训过程中寻求教学内容的呈现和教学方法突破的方略。
一、《人工智能初步》模块内容简介
目前,比较流行的人工智能理论有思维理论、知识阈值理论、进化理论。《人工智能初步》选修模块的智能思想是基于知识阈值理论的,因此,教学中每一部分的讲解始终贯彻知识阈值理论的思想。
所谓知识阈值理论是指人类的智能活动过程主要是一个获得并运用知识的过程,知识是智能的基础。为了使计算机具有智能,就必须使它具有知识。为了使计算机具有知识,需要用适当的模式把知识表示出来才能存储到计算机中去,教材的第二部分详细介绍了常用的知识表示方法。
要在计算机上设计、实现智能系统,实现对人类脑功能的模拟和再现,就需要掌握计算机程序设计语言。教材的第三部分人工智能语言详细介绍了Proiog。Prolog是以一阶谓词逻辑为基础的逻辑程序设计语言。Prolog程序由事实、规则和目标组成,它通过演绎推理求解问题。Prolog是描述性非常强的一种语言,语句的说明性语义和过程性语义具有统一性,很适合表达人的思维和推理规则,具有模式匹配、回溯、递归、事实数据库等强大功能。随着人工智能技术的成熟和广泛应用,智能系统越来越受到重视,Prolog语言也得到充分应用。现在,Prolog语言已广泛应用于专家系统(教材第四部分)、复杂抽象问题求解(教材第五部分)等领域,在这些智能系统中,首先需要把知识在Prolog环境下表示出来。
知识表示和人工智能语言分别是知识阈值理论和智能系统开发的基础和核心部分,在教学中举足轻重。本文对这两部分的教学进行了深入研究探讨,在培训中跳出了教学习惯思维的羁绊,将知识表示方法与人工智能语言融于一体,教学中既体现技术方法和技术思想的挖掘,又关注技术文化与信息文化理念的表达。
二、《人工智能初步》核心内容——基于Prolog的知识表示
教材详细介绍了框架表示法、产生式表示法、谓词逻辑表示法、状态空间表示法、与或图表示法。本文在培训过程中探索了不同的知识表示法统一于Prolog语言下的教学思维。
1一阶谓词逻辑和产生式表示法
一阶谓词逻辑表示法以谓词公式来表示事物的状态、属性、概念、动作的主客体等事实性知识,表示事物之间的因果关系,表示对各种问题的比较与分析得出的规律性知识等过程性的知识。用谓词公式表示知识时,首先定义谓词,指出每个谓词的确切含义,然后再用联结词把有关的谓词连接起来,形成一个谓词公式表达一个完整的意义。Prolog语言的事实语句表示事物的性质和关系,规则语句表示事物间的因果关系、蕴含关系以及对应关系。显然,谓词公式很容易在Prolog环境下使用事实语句和规则语句实现。--
产生式表示法以产生式表示具有因果关系的知识,一组产生式放在一起,相互配合协同作用,在求解问题时,一个产生式生成的结论可以供另—个产生式作为已知事实使用,从而形成产生式系统。一个产生式系统通常包括规则库、综合数据库、控制系统三部分。综合数据库用来存放与求解问题有关的各种当前信息的数据结构,规则库存放与求解问题有关的所有规则的集合,控制系统由一组程序组成,用来控制整个产生式系统的运行,决定问题求解过程的推理线路,实现对问题的求解。在Prolog环境下,综合数据库中的事实使用事实语句实现,规则库中的规则使用规则语句实现,控制系统由Prolog语言提供的机制实现。
在培训过程中使用了教材第四部分推理与专家系统中动物识别系统中的知识作为例子,以便学员以知识阈值理论为主线,系统化教材的内容。
动物识别系统包含15条规则,见培训教材P78-79页,以规则10为例,“如果动物是食肉动物,它的颜色是黄褐色,它有深色斑点,那么这个动物是豹”,使用一阶谓词逻辑表示时,首先定义谓词:eating_meat(x)表示x是食肉动物,leopm'dl(x)表示x是豹,yellow_blaek(x)表示x是黄褐色,black_spot(x)表示x有深色斑点,然后使用联结词把谓词连接起来,形成谓词公式:(Vx) (eating_meat(x)^yellow_black(x)^black_spot(x)_leopardl(x))。用产生式表示为:IF eating_meat(x)AND yellow_black(x)AND black_spot(x)THEN leopardl(x)。
在培训过程中,在Prolog环境下定义谓词animal_is(x)表示动物是x,it_is(x)表示类别是x,posit]ve表示事实。下面的规则语句实现了上述产生式的功能。animal is(“豹”):一it_is(“食肉动物”),positive(“黄褐色”),positive(“深色斑点”)。
培训过程中在Pinlog语言环境下设计了动物识别系统程序,并把该识别程序和InterModeller v3,4下动物识别过程进行了分析比较,使学员同时掌握了第四章专家系统的基本原理以及设计思想。
2框架表示法
框架表示法是以框架理论为基础发展起来的一种结构化的知识表示方法。框架理论认为人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中,遇到一个新事物时,从记忆中找出一个合适的框架,根据新的情况对其细节加以修改、
补充,形成对新事物的认识。但是,人们不可能把过去的经验全部存放在大脑中,而只能以一种通用的数据结构形式把它们存储起来,当新情况发生时,只需把新的数据加入到通用数据结构中便可形成一个具体的实体,这样的通用数据结构就称为框架。一个框架系统由多个框架组成,一个框架由若干个槽组成,槽用于描述所论对象某一方面的属性,一个槽由若干个侧面组成,侧面用于描述相应属性的一个方面。下面是—个使用框架表示的关于中国地震的报道。
框架名:<中国地震>
地点:中国汶川
时间:5月12日
死亡人数:69200
受伤人数:374216
震级:8.0
框架表示法中的框架是一种描述所研究对象属性的数据结构,所研究对象的属性是事实性的知识,在Prolog环境下,使用事实语句实现事实性知识的表示,由于框架是一种结构化的知识表示法,因此关键问题是定义事实语句中的项,这些项应把对象的属性描述出来。把框架中的每一个槽定义成一个项,槽中的一个侧面定义为一个子项。
Frame(name(“中国地震”)
location(“中国汶川”)
time(“5月12日”)
number_of_death(“69200”)
number_of_hurted(“374216”)
level一o£_earthquake(“8.0”)
另外,在prolog下可以把框架的内容作为一项,槽作为框架内容的一个子项,侧面作为槽的子项实现框架知识表示。
3状态空间表示法和与或图表示法
在问题求解中,问题的状态空间表示法与问题的与或图表示法是使用最多的表示法。
在状态空间表示法中,问题是用“状态”和“操作”来表示的,问题求解过程是用“状态空间”来表示的。状态是表示问题求解过程中每一步问题状况的数据结构,它可形式地表示为:Sk={SkO,Ski…};操作是把问题从一种状态变换为另一种状态的手段;状态空间用来描述一个问题的全部状态以及这些状态之间的相互关系。在求问题的解时,首先为问题选择适当的“状态”及“操作”的形式化描述方法,然后从某个初始状态出发,每次使用一个“操作”,递增地建立起操作序列,直到达到目标状态为止。问题的一个解就是由初始状态到目标状态所使用的算符序列。利用prolog提供的匹配合一、回溯等运行机制,状态空间表示法描述的问题很容易实现。
与或图表示法是通过对问题进行分解或等价变换找到问题的解。分解是指如果一个问题P可以归约为一组子问题P1,P2,……,Pn,并且只有当所有子问题H(i_1,2,……,n)都有解时,原问题P才有解;任何一个子问题Pi无解都会导致原问题P无解,分解所得到的子问题的“与”和原问题P等价。等价变换是指如果一个问题P可以归纳为一组子问题Pl,P2,…一,Pn,并且这些子问题Pi中只要有一个有解则原问题P就有解,只有当所有子问题Pi都无解时原问题P才无解,变换所得到的子问题的“或”与原问题P等价。无论是分解还是变换,都是要将原问题归约为一系列直接解答的本原问题或不可解问题[5]。分解或等价变换的过程可以使用与或树描述出来,问题的解就是通过搜索与或树找到的解树。利用prolog提供的递归机制,与或树表示法描述的问题的解很容易实现。
在培训过程中,强调这两种知识表示方法是知识表示的具体方式,与问题密切相关,它们描述了人类解决问题的思维方式,进一步强调智能系统基于知识阈值理论的设计思想。培训过程中使用汉诺塔问题作为例子,汉诺塔问题在prolog下的实现见教材64-65页,该案例融合了教材第二部分、第三部分以及第五部分的教学内容。
本文对中学信息技术课选修模块《人工智能初步》的教材进行了深入研究,在对河南省骨干教师新课程培训中,突破了旧的教学习惯,紧紧围绕知识阈值理论,将整个教材融于一体,在较短的时间内,使学员掌握了《人工智能初步》的技术思想,取得了较好的培训效果。
参考文献
[1]普通高中课程标准实验教科书,信息技术选修5人工智能初步,上海:上海科技教育出版社,2005
[2]雷英杰,刑清华,王涛,人工智能(AI)程序设计(面向对象语言),北京:清华大学出版社,2005
[3]
George Kl~ger,Artifieial Intelligence Structures and Strategies for Complex Problem Solving Fifth Edition,Beijing:China Machine Press,2006
[4]
Wlodzimierz Drabent,Pmving correctness and completeness of normal programs—a declarative approach,Theory and Practice of Logic Programming,2005,5(6)
[5] Baudouin LE Charlier,Sabina Rossi,Pascal Van Hentenryck,Sequence-based abstract interpretation of prolog,Theory and Practice of Logic Programming,2002,2(1)
[6]王永庆,人工智能原理与方法,西安:西安交通大学出版社,2003
(责任编辑关燕云)