资源描述:
《人工智能语言与问题求解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、高中AI课程教学内容之三:-人工智能语言与问题求解主讲:张家华E-mail:zjnuzjh@zjnu.cn浙江师范大学教师教育学院福建省高中新课程《信息技术》学科骨干教师省级培训主要内容学习人工智能语言了解人工智能语言使用人工智能语言用搜索解决问题搜索及其类型盲目搜索宽度优先搜索深度优先搜索启发式搜索与博弈人工智能语言概述1、什么是人工智能语言人工智能语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写程序求解非数值计算、知识处理、推理、规划、决策等各种复杂的智能问题。人工智能语言概述2、人工
2、智能语言的特点•具有符号处理能力;•适合于结构化程序设计,容易编程;•具有递归和回溯的功能;•具有人机交互能力;•适合于推理;•……与其他语言的关系:都可以用来帮助人们解决问题。人工智能语言概述3、人工智能语言的种类Prolog:以谓词逻辑为基础,使计算机能够进行归结演绎TurboProlog、VisualPrologLISP:其程序是由一组函数组成,程序的执行过程就是一系列的函数调用和求值的过程其他:Smalltalk是一种面向对象的语言,其中所涉及的类、对象和继承等概念,与人工智能特别是知识表示和知识库具有天然的联系。TurboProlog
3、的交互环境窗口VisualProlog的交互环境窗口CommonLISP了解Prolog谓词逻辑-Prolog的理论基础谓词:用来描述对象的状态、性质及对象之间关系的词。逻辑:事物间的因果关系。例如:小明喜欢(打)羽毛球关系对象1对象2喜欢小明羽毛球likexiaomingbadmintonlike(xiaoming,badminton)了解PrologProlog的基本语句事实:表示对象的状态、性质或对象之间的关系。谓词名(参数1,参数2,……).likes(xiaofang,badminton).规则:表示对象之间的因果关系、蕴涵关系或对应
4、关系。谓词1(参数):-谓词2(参数),谓词3(参数),……friend(X,xiaohua):-likes(X,pingpong).目标:用户的询问?-friend(X,xiaohua).结论前提了解PrologProlog的运行机理例化:在Prolog中若变量X还没有值,则称之为自由变量,一旦变量X取得了一个值,则称之为约束变量,或者说X被某一个值例化了。friend(X,xiaohua).在X有值以前它是自由变量,若X=xiaoming,则X被xiaoming例化了匹配:当两个谓词的名称相同,参数的个数、类型相同,并且还满足某些条件时,则
5、这两个谓词可以匹配。friend(X,xiaohua)friend(xiaoming,xiaohua)当X是自由变量时,上面两个谓词friend是可以匹配的。了解PrologProlog的运行机理搜索与回溯走迷宫以上这种走不通再返回去寻找另一条路的方式,称为回溯了解PrologProlog求解问题的过程首先从目标出发,不断地进行例化、匹配,有时还要进行回溯,直到目标被完全满足或不能满足时为止。了解Prolog简单的Prolog程序likes(xiaofang,badminton)./*以下2行是一组事实*/likes(xiaoming,ping
6、pong).friend(X,xiaohua):-likes(X,pingpong)./*本行是规则*/?-friend(X,xiaohua)./*本行是目标*/输出结果:X=xiaoming使用PrologProlog的使用方法TurboPrologVisualPrologTurboProlog的使用TurboProlog的基本语法constants<常量说明语句>/*<注释>*/domains<领域说明语句>database<数据库说明语句>predicates<谓词说明语句>clauses<子句语句>goal<目标语句>TurboProl
7、og的程序示例domainsname,thing=symbolpredicateslikes(name,thing)friend(name,thing)clauseslikes(xiaofang,badminton).likes(xiaoming,pingpong).friend(X,xiaohua):-likes(X,pingpong).goalfriend(X,xiaohua),write(X,"isxiaohua'sfriend.").用TurboProlog进行数值计算例1从键盘输入2个整数,求两数之和。程序:goalreadint(X
8、),/*输入一个整数给X*/readint(Y),/*输入一个整数给Y*/Z=X+Y,write(X,"+",Y,"=",Z),nl./*输出计算结果