当前位置:文档之家› 人工智能实验指导书

人工智能实验指导书

人工智能实验指导书
人工智能实验指导书

《人工智能》实验指导书

计算机科学与技术系

目录

实验一Turbo Prolog系统认识实验(2学时) (2)

实验二求N!及Fibonacci序列问题实验(3学时) (5)

实验三梵塔问题实验(3学时) (6)

实验四装错信封问题(4学时) (9)

实验五小型专家系统设计与实现(4学时) (12)

实验一Turbo Prolog系统认识实验(2学时)

一、实验目的

1、了解PROLOG解释器;

2、了解PROLOG语言中常量、变量的表示方法;

3、了解利用PROLOG进行事实库、规则库的编写方法;

4、了解利用PROLOG中的谓词asserta和retract进行数据管理。

二、实验要求

1、熟悉Prolog运行环境,包括硬件与软件环境;

2、学习示例程序,分析其功能;

3、写出Example 1、Example 11、Example 15示例程序的功能;

4、利用PROLOG进行事实库、规则库的编写,并在此基础上进行简单的询

问;

5、练习利用PROLOG中的谓词asserta和retract进行数据管理。

三、实验设备

网络计算机,Turbo prolog教学软件。

四、实验内容及步骤

一)实验内容:

1、熟悉Turbo prolog的运行环境,包括所用的机器的硬件与软件环境。

2、学习使用Turbo prolog,包括进入Prolog主程序、编辑源程序、修改

环境目录、退出等基本操作。

3、学习Turbo prolog的简单程序结构,掌握分析问题、询问解释技巧。

4、了解PROLOG语言中常量、变量的表示方法;

5、利用PROLOG进行事实库、规则库的编写,并在此基础上进行简单的询

问;

6、利用PROLOG中的谓词asserta和retract进行数据管理。

二)实验步骤:

1、启动Windows操作环境。

2、打开目录,执行prolog应用程序,启动Turbo prolog,并按空格键

(SPACE)集成开发环境。

3、选择Setup项,打开下拉菜单,选择Directories项,将工作目录进行

修改,按Esc键退出,选择Save Configuration项,保存修改。

4、选择Files项,打开下拉菜单,选择Load项,选择要打开的示例程序,

选择Example 1示例程序,再选择Edit项,可以进行编辑源程序。

5、编辑之后,可以选择Run项,执行程序,可以在Dialog窗口进行询问,

即外部目标的执行,并分析程序之功能。

6、仿前例,运行Example 11、Example 15,分析程序功能。

7、退出,选择Quit项,可以退出Turbo Prolog程序,返回到Windows环

境。

五、源程序

Example 1:

domains

person, activity = symbol

predicates

likes(person,activity)

clauses

likes(ellen,tennis).

likes(john,football).

likes(tom,baseball).

likes(eric,swimming).

likes(mark,tennis).

likes(bill,X) if likes(tom,X).

Example 11:

domains

namelist = name*

name = symbol

predicates

member(name,namelist).

clauses

member(Name,[Name|_]).

member(Name,[_|Tail]) if member(Name,Tail).

Example 15:

domains

name = symbol

predicates

father(name,name)

everybody

clauses

father(leonard,katherine).

father(carl,jason).

father(carl,marilyn).

everybody if

father(X,Y),

write(X," is ",Y,"'s father\n") and fail.

实验二求N!及Fibonacci序列问题实验(3学时)

一、实验目的

掌握Turbo prolog软件编程使用方法;

掌握Prolog程序的各域段含义;

初步学习分析、运用递归方法解决问题。

二、实验设备

网络计算机,Turbo prolog教学软件。

三、实验内容及步骤

一)Fibonacci序列问题描述:

数字的Fibonacci序列是个正整数序列,序列头两个数均为1,其余数为其前两个数相加得到,该序列排列如下:

1,1,2,3,5,8,13,21,34,55……

Fibonacci序列通式为:

F

1

=1

F

2

=1

F n =F

n-1

+F

n-2

二)实验内容:

1、进一步熟悉Turbo prolog的运行环境,程序调试的方法;

2、初步掌握递归原理,了解问题递归的详细过程。

3、理解递归停止条件对整个递归过程的作用。

4、写出求N!及Fibonacci序列问题的Prolog程序。

三)实验步骤:

1、启动prolog编辑环境,编辑求N!及Fibonacci序列源程序;

2、运行程序,分析结果;

3、尝试修改程序达到同样的目的。

实验三梵塔问题实验(3学时)

一、实验目的

1、掌握PROLOG编制递归程序的方法:边界条件与递归部分的设计;

2、掌握Prolog程序的各域段含义;

3、学会分析、运用递归方法解决问题。

二、实验要求

1、分析汉诺塔问题,找出问题本身存在的递归性,编制程序;

2、显示汉诺塔问题中圆盘的移动次序;

3、归纳出圆盘数目与移动步骤之间的数学关系;

4、分析递归问题的实质。

三、实验设备

网络计算机,Turbo prolog教学软件。

四、实验内容及步骤

一)问题描述:

如上图,目的是把左边的所有盘子移到右边的杆子上。一次只能移动一个盘子,你可以使用中间的杆子作为临时存放盘子的地方。在移动的过程中,小盘子必须放在大盘子之上。

二)分析问题:

如果盘子只有两三个,是很容易解决的。但是随着盘子数目的增加,问题就变得非常难解了。

事实上,已经通过数学证明过了,最少的移动次数是21 n,n为盘子的数目。最早提出这个问题的人设定的盘子数目为64,这就是说需要

64-=18446744073709551615次移动,假设计算机每秒钟能够计算10,000,000 21

(一千万)次,那也需要58494年,所以你千万不要试图使用此程序来解较大的数。

让我们来看看如何用递归来解决这个问题:

如果只有一个盘子,直接移过去就行了,这是递归的边界条件。

如果要移动N个盘子,就要分三步走:

1、把N-1个盘子移动到中间的杆子上(把右边的杆子作为临时存放盘子的

位置)。

2、把最后一个盘子直接移到右边的杆子上。

3、最后把中间杆子上的盘子移到右边的杆子上(把左边的杆子作为临时存

放盘子的位置)。

上面第一、三步用到了递归。我们看到,通过递归把N个盘子的问题变成了两个N-1个盘子的问题。如此下去,最后就变成了21-n个一个

盘子的问题了,这也就是说问题被解决了。

三)实验内容:

1、分析汉诺塔问题,找出问题本身存在的递归性。

2、分析递归原理,熟悉问题递归的详细过程。

3、编写求梵塔问题的Prolog程序。

4、显示汉诺塔问题中圆盘的移动次序。

5、更改圆盘数量,了解问题解决的递归过程。

四)实验步骤:

1、启动prolog编辑环境,编辑hanoi源程序;

2、运行程序,分析结果;

3、重复比较圆盘数目,根据其求解过程得到圆盘数量与步骤数目之间的规

律。归纳并理解问题递归的实质。

五、源程序

hanoi(N):-

move(N,left,middle,right).

move(1,A,_,C):-

inform(A,C),

!.

move(N,A,B,C):-

N1 is N-1,

move(N1,A,C,B),

inform(A,C),

move(N1,B,A,C).

inform(Loc1, Loc2):-nl,

write('Move a disk from '-Loc1-' to '-Loc2).

主程序为hanoi,它的参数为盘子的数目。它调用递归谓词move来完成任务。三个杆子的名字分别为left、middle、right。

第一个move子句是边界情况,即只有一个盘子时,直接调用inform显示移动盘子的方法。后面使用cut,是因为:如果只有一个盘子,就是边界条件,无需再对第二条子句进行匹配了。

第二个move子句为递归调用,首先把盘子数目减少一个,再递归调用move,把N-1个盘子从A杆通过C杆移到B杆,再把A杆上的最后一个盘子直接从A 杆移到C杆上,最后再递归调用move,把B杆上的N-1个盘子通过A杆移到C 杆上。这里的杆子都是使用变量来代表的,A、B、C杆可以是left、middle、right中的任何一个,这是在移动的过程中决定的。

inform,把移动过程通过write谓词写出,由于write只能有一个参数,所以使用“-”操作符相连。

实验四装错信封问题(4学时)

一、实验目的

1、进一步掌握PROLOG编制递归程序的方法;

2、理解谓词delete、permutation、some_element_right在程序中的作

用。

二、实验要求

1、分析该问题的实质以及其中存在的递归作用;

2、利用列表数据结构编写出装错信封问题的程序;

3、联系前面的全排列问题理解列表数据结构的作用。

三、实验设备

网络计算机,Turbo prolog教学软件。

四、实验内容及步骤

一)问题描述:

糊涂先生给他的五个朋友写信,他写了五封信,但是当他的朋友收到信后,都告诉他:“你的信寄错了”。那么请你计算一下:出现这种情况的概率有多少?(假设糊涂先生是随机地往信封里装信),你能不能把所有的情况都列出来呢?

二)分析问题及编写程序:

我们先来分析一下问题。往五个不同的信封里装五封不同的信,一共有5!=120种装法,这实际上是5封信的全排列。由于所有的信都装错了,所以一号信不在一号信封里,二号信不在二号信封里,......,如果用列表[1,2,3,4,5]表示所有的信都装对了的情况(1在第一位,2在第二位,......)。那么[5,4,3,2,1]就是一种装错了的情况。

先熟悉一下几个谓词:

% delete(A,B,C), B为列表,A为B中的某个元素,C为把B中的元素A 除去后的列表。

delete(A,[A|X],X).

delete(A,[B|X],[B|Y]) :- delete(A,X,Y).

% permutation(A,B), 列表A为列表B的全排列之一时,成功。

permutation([],[]).

permutation([A|X],Y) :- delete(A,Y,Y1), permutation(X,Y1).

我们使用“选择并校验”的方法。使用谓词permutation可以生成所有的排列情况,所以下面的任务就是编写校验部分。先来看some_element_right谓词: % some_element_right(A,B) 如果列表A与B中存在位置相同的元素则成功。

some_element_right([A|X],[A|Y]).

some_element_right([A|X],[B|Y]):-some_element_right(X,Y).

我们来看看它的功能:

?- some_element_right([3,2,1],[1,2,3]).

yes

?- some_element_right([3,2,1],[2,1,3]).

no

第一个询问失成功,因为元素2在两个列表中的位置相同;第二个询问失败,因为找不到位置相同的元素。

最后我们来编写主程序:

letter(X,Y):-

permutation(X,Y),

not(some_element_right(X,Y)).

not谓词表示否定,所以上面的第二各自目标的意思就是:列表X与Y没有位置相同的元素。

三)实验内容:

1、分析该问题的实质以及其中存在的递归作用;

2、利用列表数据结构编写出装错信封问题的程序;

3、联系全排列问题理解列表数据结构的作用。

四)实验步骤

1、启动prolog编辑环境,编辑装错信封问题源程序;

2、运行程序,分析结果;并算出其概率;

3、理解列表数据结构的作用。

结果一共44种情况,所以它的概率就是:44/120=0.367,看样子我们的糊涂先生不太走运。

实验五小型专家系统设计与实现(4学时)

专家系统涉及人工智能导论课程的大部分内容,而且实践性和应用性都很强。因此,本课程将专家系统设计与实现作为一个上机实验项目。该实验是一个设计性实验,它对加深课程内容的理解和掌握,培养学生运用所学知识开发智能系统的能力有重要意义。

一、实验目的

1. 加深理解专家系统的结构原理与实际应用。

2. 初步掌握知识获取的基本方法。

3. 掌握产生式规则知识表示方法及其编程实现方法。

4. 初步掌握知识库的组建方法。

5. 加深理解推理机的算法原理并初步掌握其编程实现方法。

二、实验内容

运用所学知识,设计并编程实现一个小型专家系统(如分类、诊断、预测等类型)。

三、基本要求

1. 具体应用领域自选,具体系统名称自定;但所做系统绝对不能雷同。

2. 用产生式规则作为知识表示,用产生系统实现该专家系统。

3. 可用PROLOG语言编程并参考下面示例程序;但也可用其他语言另行编

程。

4. 所实现的专家系统必须上机运行演示;程序运行时,应有人机对话过

程。

5. 系统完成后,要提交实验报告。

四、实验步骤

具体工作及步骤为:

1. 选题。

2. 系统分析。

3. 知识获取与知识表示选择/设计。

4. 知识库组建。

5. 推理机选择/编制。

6. 系统调试与测试:可先运行一两个简单的PROLOG程序,以熟悉语言环境;接着运行示例程序;然后编辑、调试、测试自己的系统程序。

7. 撰写实验报告。

五、系统示例

下面给出一个“小型动物分类专家系统”示例,以供参考。

1. 动物分类规则集

(1)若某动物有奶,则它是哺乳动物。

(2)若某动物有毛发,则它是哺乳动物。

(3)若某动物有羽毛,则它是鸟。

(4)若某动物会飞且生蛋,则它是鸟。

(5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。

(6)若某动物是哺乳动物且吃肉,则它是食肉动物。

(7)若某动物是哺乳动物且有蹄,则它是有蹄动物。

(8)若某动物是有蹄动物且反刍食物,则它是偶蹄动物。

(9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。

(10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。

(11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。

(12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。

(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。

(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。

(15)若某动物是鸟且善飞且不怕风浪,则它是海燕。

下面是该规则集所形成的(部分)推理网络:

2. 源程序

/* An Animal Classifying Expert System */

database

xpositive(symbol,symbol)

xnegative(symbol,symbol)

predicates

run

animal_is(symbol)

it_is(symbol)

positive(symbol, symbol)

negative(symbol, symbol)

clear_facts

remember(symbol, symbol, symbol)

ask(symbol, symbol)

goal

run.

clauses

run:-

animal_is(X),!,

write("\nYour animal may be a(n) ", X),

nl, nl, clear_facts.

run:-

write("\nUnable to determine what"),

write("your animal is. \n\n"), clear_facts.

positive(X, Y):-xpositive(X, Y),!.

positive(X, Y):-not(xnegative(X, Y)), ask(X, Y).

negative(X, Y):-xnegative(X,Y), !.

negative(X, Y):-not(xpositive(X, Y)), ask(X, Y).

ask(X, Y):-

write(X, " it ", Y, "\n"),

readln(Reply),

remember(X, Y, Reply).

remember(X, Y, y):-asserta(xpositive(X, Y)).

remember(X, Y, n):-asserta(xnegative(X, Y)), fail.

clear_facts:-retract(xpositive(_, _)), fail.

clear_facts:-retract(xnegative(_, _)), fail.

clear_facts:-write("\n\nPlease press the space bar to Exit"), readchar(_).

/* Knowledge Base */

animal_is(cheetah):-

it_is(carnivore),

positive(has, tawny_color),

positive(has, black_spots).

animal_is(tiger):-

it_is(carnivore),

positive(has, tawny_color),

positive(has, black_stripes).

animal_is(giraffe):-

it_is(ungulate),

positive(has, long_neck),

positive(has, long_legs),

positive(has, dark_spots).

animal_is(zebra):-

it_is(ungulate),

positive(has, black_stripes).

animal_is(ostrich):-

it_is(bird),

negative(does, fly),

positive(has, long_neck),

positive(has, long_legs),

positive(has, black_and_white_color). animal_is(penguin):-

it_is(bird),

negative(does, fly),

positive(does, swim),

positive(has, black_and_white_color).

animal_is(albatross):-

it_is(bird),

positive(does, fly_well).

it_is(mammal):-

positive(has, hair).

it_is(mammal):-

positive(does, give_milk).

it_is(bird):-

positive(has, feathers).

it_is(bird):-

positive(does, fly),

positive(does, lay_eggs).

it_is(carnivore):-

positive(does, eat_meat).

it_is(carnivore):-

it_is(mammal),

positive(has, pointed_teeth),

positive(has, claws),

positive(has,forward_eyes).

it_is(ungulate):-

it_is(mammal),

positive(has, hooves).

it_is(ungulate):-

it_is(mammal),

positive(does, chew_cud).

需要说明的是,严格来讲,该专家系统程序中并无显式的推理机,而是利用了PROLOG语言本身的推理机制实现推理的。这就是说,用PROLOG编写专家系统程序,可以省去推理机部分。如果用其他语言编程,推理机则是必不可少的。当然,用PROLOG编写专家系统程序,也可以不用它自身的推理机作为所实现的专家系统的推理机,而用户自己重新编写一个显式的推理机,这可根据问题和需要而定。如果要重新编写推理机,一般说来,规则就要用PROLOG的事实来实现。知识库就要用PROLOG的动态数据库来实现。

当然,以上实习也可用C或C++编程,但工作量要大得多。

六、实验报告

实验报告用学校统一的实验报告纸书写,表头严格按其要求填写,其中“实验名称”后填:小型专家系统设计与实现。下面是实验报告的基本内容和书写格式。——————————————————————————————————

一、实验目的

加深对专家系统的理解,初步掌握专家系统的设计与实现方法。

二、实验内容

运用所学知识,设计并编程实现一个小型专家系统。

三、实验步骤

1. 选题。

2. 系统分析。

3. 知识获取与知识表示选择/设计。

4. 知识库组建。

5. 推理机选择/编制。

6. 系统调试与测试。

四、实验结果

1. 系统名称

〈所做系统的名称〉

2. 系统概述

(包括所做系统的背景和主要功能等。)

3. 产生式规则集文本

4. 系统运行演示过程

(1) 输入的初始事实或数据:

(2) 系统运行时产生的推理树(网):

(3) 输出的结果:

5. 源程序清单——————————————————————————————————

人工智能原理及其应用(王万森)第3版 课后习题答案

第1章人工智能概述课后题答案 1.1什么是智能?智能包含哪几种能力? 解:智能主要是指人类的自然智能。一般认为,智能是是一种认识客观事物和运用知识解决问题的综合能力。 智能包含感知能力,记忆与思维能力,学习和自适应能力,行为能力 1.2人类有哪几种思维方式?各有什么特点? 解:人类思维方式有形象思维、抽象思维和灵感思维 形象思维也称直感思维,是一种基于形象概念,根据感性形象认识材料,对客观对象进行处理的一种思维方式。 抽象思维也称逻辑思维,是一种基于抽象概念,根据逻辑规则对信息或知识进行处理的理性思维形式。 灵感思维也称顿悟思维,是一种显意识与潜意识相互作用的思维方式。 1.3什么是人工智能?它的研究目标是什么? 解:从能力的角度讲,人工智能是指用人工的方法在机器(计算机)上实现智能;从学科的角度看,人工智能是一门研究如何构造智能机器或智能系统,使它能模拟、延伸和扩展人类智能的学科。 研究目标: 对智能行为有效解释的理论分析; 解释人类智能; 构造具有智能的人工产品; 1.4什么是图灵实验?图灵实验说明了什么? 解:图灵实验可描述如下,该实验的参加者由一位测试主持人和两个被测试对象组成。其中,两个被测试对象中一个是人,另一个是机器。测试规则为:测试主持人和每个被测试对象分别位于彼此不能看见的房间中,相互之间只能通过计算机终端进行会话。测试开始后,由测试主持人向被测试对象提出各种具有智能性的问题,但不能询问测试者的物理特征。被测试对象在回答问题时,都应尽量使测试者相信自己是“人”,而另一位是”机器”。在这个前提下,要求测试主持人区分这两个被测试对象中哪个是人,哪个是机器。如果无论如何更换测试主持人和被测试对象的人,测试主持人总能分辨出人和机器的概率都小于50%,则认为该机器具有了智能。 1.5人工智能的发展经历了哪几个阶段? 解:孕育期,形成期,知识应用期,从学派分立走向综合,智能科学技术学科的兴起

人工智能实验一指导

实验1: Prolog语言程序设计 人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。 Prolog是当代最有影响的人工智能语言之一,由于该语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,已经成为人工智能应用领域的强有力的开发语言。 尽管Prolog语言有许多版本,但它们的核心部分都是一样的。Prolog的基本语句仅有三种,即事实、规则和目标三种类型的语句,且都用谓词表示,因而程序逻辑性强,方法简捷,清晰易懂。另一方面,Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。 一、实验目的 1、加深学生对逻辑程序运行机理的理解。 2、掌握Prolog语言的特点、熟悉其编程环境。 3、为今后人工智能程序设计做好准备。 二、实验内容 1、编写一个描述亲属关系的Prolog程序,然后再给予出一些事实数据,建立一个小型演绎数据库。 提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。 2、编写一个路径查询程序,使其能输出图中所有路径。 提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。 e

3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。 (a)用Prolog规则表述这个雇主的选择准则。 (b)用Prolog事实描述下列申请者的情况: 史密斯住在剑桥,会开车但不会打字。 布朗住在伦敦,会开车也会打字。 简住在格拉斯哥,不会开车但会打字。 埃文斯住在伦敦,会开车也会打字。 格林住在卢顿,会开车也会打字。 (c)要求Prolog提供一个候选人名单。 4、实现递归谓词remove(X,Y,Z),它用于从表Y中除去所有整型数X的倍数值后得到新表Z。例如,对于询问 remove(2,[3,4,5,6,7,8,9,10],Z). 的回答为: Z=[3,5,7,9] 三、实验建议 1、首先运行Prolog安装目录中PROGRAM目录下的示例程序,对Prolog功能有一个感性认识。 (1)HANOI.PRO 实现汉诺塔演示的程序。 程序运行界面如图所示。

人工智能实验4三-专家系统方案

《人工智能导论》实验报告

一、实验题目:识别型专家系统设计 ————识别动物专家系统 二、实验目的 1、掌握专家系统的基本构成 2、掌握用人工智能程序设计语言编制智能程序的方法 三、实验容 1、所选编程语言:C语言; 2.拟订的规则: (1)若某动物有奶,则它是哺乳动物。 (2)若某动物有毛发,则它是哺乳动物。 (3)若某动物有羽毛,则它是鸟。 (4)若某动物会飞且生蛋,则它是鸟。 (5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。 (6)若某动物是哺乳动物且吃肉,则它是食肉动物。 (7)若某动物是哺乳动物且有蹄,则它是有蹄动物。 (8)若某动物是哺乳动物且反刍食物,则它是有蹄动物。 (9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。 (10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。 (11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。 (12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。 (13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。 (15)若某动物是鸟且善飞,则它是海燕。 2、设计思路: 用户界面:采用问答形式; 知识库(规则库):存放产生式规则,推理时用到的一般知识和领域知识,比如动物的特征,动物的分类标准,从哺乳动物、食肉动物来分,再具体地添加一些附加特征得到具体动物;建立知识库的同时也建立了事实库。事实库是一个动态链表,一个事实是链表的一个结点。知识库通过事实号与事实库发生联系。

数据库:用来存放用户回答的问题,存放初始状态,中间推理结果,最终结果; 推理机:采用正向推理,推理机是动物识别的逻辑控制器,它控制、协调系统的推理,并利用知识库中的规则对综合数据库中的数据进行逻辑操作。推理机担负两项基本任务:一是检查已有的事实和规则,并在可能的情况下增加新的事实;二是决定推理的方式和推理顺序。将推理机制同规则对象封装在一起,事实对象记录了当前的状态,规则对象首先拿出前提条件的断言(只有这些前提都有符合时才会做这条规则的结论),询问事实对象集,如事实对象集不知道,则询问用户,如所有前提条件都被证实为真则结论为真,否则系统不知道结论真假。 3、程序流程图: 程序运行如下: 以老虎,金钱豹,长颈鹿为例画出程序流程图如下:

人工智能实验报告大全

人工智能课内实验报告 (8次) 学院:自动化学院 班级:智能1501 姓名:刘少鹏(34) 学号: 06153034

目录 课内实验1:猴子摘香蕉问题的VC编程实现 (1) 课内实验2:编程实现简单动物识别系统的知识表示 (5) 课内实验3:盲目搜索求解8数码问题 (18) 课内实验4:回溯算法求解四皇后问题 (33) 课内实验5:编程实现一字棋游戏 (37) 课内实验6:字句集消解实验 (46) 课内实验7:简单动物识别系统的产生式推理 (66) 课内实验8:编程实现D-S证据推理算法 (78)

人工智能课内实验报告实验1:猴子摘香蕉问题的VC编程实现 学院:自动化学院 班级:智能1501 姓名:刘少鹏(33) 学号: 06153034 日期: 2017-3-8 10:15-12:00

实验1:猴子摘香蕉问题的VC编程实现 一、实验目的 (1)熟悉谓词逻辑表示法; (2)掌握人工智能谓词逻辑中的经典例子——猴子摘香蕉问题的编程实现。 二、编程环境 VC语言 三、问题描述 房子里有一只猴子(即机器人),位于a处。在c处上方的天花板上有一串香蕉,猴子想吃,但摘不到。房间的b处还有一个箱子,如果猴子站到箱子上,就可以摸着天花板。如图1所示,对于上述问题,可以通过谓词逻辑表示法来描述知识。要求通过VC语言编程实现猴子摘香蕉问题的求解过程。 图1 猴子摘香蕉问题 四、源代码 #include unsigned int i; void Monkey_Go_Box(unsigned char x, unsigned char y) {

人工智能实验一梵塔问题实验

实验一梵塔问题实验 (2学时) 一、实验目的: 熟悉和掌握问题规约法的原理、实质和规约过程;理解规约图的表示方法。 二、实验原理 从目标(要解决的问题)出发逆向推理,先把问题分解为子问题和子-子问题,直至最后把初始问题归约为一个平凡的本原问题集合,然后解决较小的问题。对所有本原问题的解答就 意味着原始问题的解决。 三、实验条件: 1.编写三圆盘梵塔问题系统实验程序。 2.编写多圆盘梵塔问题系统实验程序。 3.编写梵塔问题操作界面,如下图所示。 四、实验内容: 1.编写三圆盘梵塔问题系统实验程序,更改圆盘数量,了解问题解决的归约过程。 2.分析归约机理,熟悉问题规约的详细过程。 3.自己建造一个梵塔问题归约系统,然后根据归约原理进行逆向推理,得到本原问题集合。通过解决这 些本原问题,最终求解问题。 五、实验步骤: 根据操作界面编程实现如下实验步骤 1.开始演示。进入三圆盘实例程序,点击“play ”按钮开始演示程序,观察其求解步 骤,“Stop”按钮可停止演示,“Speed+”、“Speed-”按钮可增减演示速度。 2.改变圆盘数量。点击“ Re new”按钮,通过“ Number+ ”和“ Number- ”改变圆盘数量,再次点

击“ play ”按钮。 3.重复演示、比较,根据其求解过程得到圆盘数量与步骤数目之间的规律。归纳并理解问题归约的实质。 4.自己建立一个梵塔问题求解难题,利用归约法进行问题分解。 5.画出其问题规约图。 六、实验结论: 1.圆盘数目与移动步骤之间的数学关系。 2.根据自己所建梵塔问题,画出问题规约图,得到子问题集,列出求解过程。 3.分析问题规约的实质。

《人工智能及其应用》实验指导书Word版

《人工智能及其应用》 实验指导书 浙江工业大学计算机科学与技术学院—人工智能课程组 2011年9月

前言 本实验是为了配合《人工智能及其应用》课程的理论学习而专门设置的。本实验的目的是巩固和加强人工智能的基本原理和方法,并为今后进一步学习更高级课程和信息智能化技术的研究与系统开发奠定良好的基础。 全书共分为八个实验:1.产生式系统实验;2.模糊推理系统实验;3.A*算法求解8数码问题实验;4.A*算法求解迷宫问题实验;5.遗传算法求解函数最值问题实验;6.遗传算法求解TSP问题实验;7.基于神经网络的模式识别实验;8.基于神经网络的优化计算实验。每个实验包括有:实验目的、实验内容、实验条件、实验要求、实验步骤和实验报告等六个项目。 本实验指导书包括两个部分。第一个部分是介绍实验的教学大纲;第二部分是介绍八个实验的内容。 由于编者水平有限,本实验指导书的错误和不足在所难免,欢迎批评指正。 人工智能课程组 2011年9月

目录 实验教学大纲 (1) 实验一产生式系统实验 (3) 实验二模糊推理系统实验 (5) 实验三A*算法实验I (9) 实验四A*算法实验II (12) 实验五遗传算法实验I (14) 实验六遗传算法实验II (18) 实验七基于神经网络的模式识别实验 (20) 实验八基于神经网络的优化计算实验 (24)

实验教学大纲 一、学时:16学时,一般安排在第9周至第16周。 二、主要仪器设备及运行环境:PC机、Visual C++ 6.0、Matlab 7.0。 三、实验项目及教学安排 序号实验名称实验 平台实验内容学 时 类型教学 要求 1产生式系统应用VC++设计知识库,实现系统识别或 分类等。 2设计课内 2模糊推理系统应用Matlab1)设计洗衣机的模糊控制器; 2)设计两车追赶的模糊控制 器。 2验证课内 3A*算法应用I VC++设计与实现求解N数码问题的 A*算法。 2综合课内4A*算法应用II VC++设计与实现求解迷宫问题的A* 算法。 2综合课内5遗传算法应用I Matlab1)求某一函数的最小值; 2)求某一函数的最大值。 2验证课内6遗传算法应用II VC++设计与实现求解不同城市规模 的TSP问题的遗传算法。 2综合课内 7基于神经网络的模式识别Matlab1)基于BP神经网络的数字识 别设计; 2)基于离散Hopfiel神经网络 的联想记忆设计。 2验证课内 8基于神经网络的 优化计算 VC++设计与实现求解TSP问题的连2综合课内 四、实验成绩评定 实验课成绩单独按五分制评定。凡实验成绩不及格者,该门课程就不及格。学生的实验成绩应以平时考查为主,一般应占课程总成绩的50%,其平时成绩又要以实验实际操作的优劣作为主要考核依据。对于实验课成绩,无论采取何种方式进行考核,都必须按实验课的目的要求,以实际实验工作能力的强弱作为评定成绩的主要依据。

人工智能小型专家系统的设计与实现解读

人工智能技术基础实验报告 指导老师:朱力 任课教师:张勇

实验三小型专家系统设计与实现 一、实验目的 (1)增加学生对人工智能课程的兴趣; (2)使学生进一步理解并掌握人工智能prolog语言; (3)使学生加强对专家系统课程内容的理解和掌握,并培养学生综合运用所学知识开发智能系统的初步能力。 二、实验要求 (1)用产生式规则作为知识表示,用产生系统实现该专家系统。 (2)可使用本实验指导书中给出的示例程序,此时只需理解该程序,并增加自己感兴趣的修改即可;也可以参考该程序,然后用PROLOG语言或其他语言另行编写。 (3)程序运行时,应能在屏幕上显示程序运行结果。 三、实验环境 在Turbo PROLOG或Visual Prolog集成环境下调试运行简单的PROLOG程序。 四、实验内容 建造一个小型专家系统(如分类、诊断、预测等类型),具体应用领域由学生自选,具体系统名称由学生自定。 五、实验步骤 1、专家系统: 1.1建造一个完整的专家系统设计需完成的内容: 1.用户界面:可采用菜单方式或问答方式。

2.知识库(规则库):存放产生式规则,库中的规则可以增删。 3.数据库:用来存放用户回答的问题、已知事实、推理得到的中 间事实。 4.推理机:如何运用知识库中的规则进行问题的推理控制,建议 用正向推理。 5.知识库中的规则可以随意增减。 1.2推理策略 推理策略包括:正向(数据驱动),反向(目标驱动),双向 2、动物分类实验规则集 (1)若某动物有奶,则它是哺乳动物。 (2)若某动物有毛发,则它是哺乳动物。 (3)若某动物有羽毛,则它是鸟。 (4)若某动物会飞且生蛋,则它是鸟。 (5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。(6)若某动物是哺乳动物且吃肉,则它是食肉动物。 (7)若某动物是哺乳动物且有蹄,则它是有蹄动物。 (8)若某动物是有蹄动物且反刍食物,则它是偶蹄动物。 (9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。 (10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是猎豹。 (11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。 (12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。 (13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。

人工智能大作业实验

人工智能大作业实验-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

湖南中医药大学本科课程实验教学大纲 《人工智能》 计算机科学与技术专业 执笔人:丁长松 审定人:*** 学院负责人:*** 湖南中医药大学教务处 二○一四年三月

一、课程性质和教学目的 《人工智能》是计算机专业本科生的一门专业必修课,适应于计算机科学与技术专业、医药信息工程专业。本课程是关于人工智能领域的引导性课程,通过本课程的学习,是使学生了解和掌握人工智能的基本概念、原理和方法,培养学生在计算机领域中应用人工智能技术提高分析和解决较复杂问题的能力,启发学生对人工智能的兴趣,培养知识创新和技术创新能力。 《人工智能》主要研究智能信息处理技术、开发具有智能特性的各类应用系统的核心技术。本课程主要介绍人工智能的基本理论、方法和技术,主要包括常用的知识表示、逻辑推理和问题求解方法、人工智能发展学派以及主要理论。 先修课程:高等数学、数据结构、数据库原理、算法设计与分析、数理逻辑 二、课程目标 人工智能实验应在一种为高效率开发专家系统而设计的高级程序系统或高级程序设计语言环境中进行。在目前开来,专家系统开发工具和环境可分为5种主要类型:程序设计语言、知识工程语言、辅助型工具、支持工具及开发环境。在这里主要是要求学生能用相关术语描述、表示一些问题;用程序设计语言如:C、C++、JAVA编程来实现一些基本的算法、推理、搜索等过程。 三、实验内容与要求 实验一:谓词表示 【实验内容】 设农夫、狼、山羊、白菜都在河的左岸,现在要把它们运送到河的右岸去,农夫有条船,过河时,除农夫外船上至多能载狼、山羊、白菜中的一种。狼要吃山羊,山羊要吃白菜,除非农夫在那里。试设计出一个确保全部都能过河的方案。

人工智能及其应用总结

人工智能及其应用总结 1、感知能力、 2、记忆与思维能、 3、学习能力、 4、行为能力(表达能力)人工智能的研究内容:知识表示、机器感知、机器思维、机器学习、机器行为人工智能的研究目标:近期目标:使现有的电子数字计算机更聪明、更有用,使它不仅能做一般的数值计算及非数值信息的数据处理,而且能运用知识处理问题,能模拟人类的部分智能行为。建造智能机器人代替人类的部分智力劳动。远期目标:用自动机模仿人类的思维过程和智能行为。最终目标:机器智能实现生物智能的各项功能。智能行为:感知、推理、学习、通信和复杂环境下的动作行为知识发现的处理过程:数据挖掘、数据选择、知识评价人工智能的主要学派:符号主义、连接主义和行为主义人工智能的研究途径:心理模拟、生理模拟和行为模拟人工智能的应用领域:智能控制、智能管理、智能决策、智能仿真。人工智能的基本技术:表示、运算、搜索归纳技术、联想技术人工智能(机器智能)、学科和能力:(书)所谓人工智能就是用人工的方法在机器(计算机)上实现的智能,或者说是人们使机器具有类似于人的智能。从学科角度来看:人工智能是计算机科学中涉及研究、设计和应用智能机器的一个分支。它的近期主要目标在于研究用机器来模仿和执行人脑的某些智能功能,并开发相关理论和技术。从能力角度来看:人工智能是智能机器所执行的通常与人类智能有关的功能。对认知

行为进行研究:心理活动的最高层级是思维策略,中间一层是初级信息处理,最低层级是生理过程,与此相应的是计算机程序、语言和硬件。研究认知过程的主要任务是探求高层次思维决策与初级信息处理的关系,并用计算机程序来模拟人的思维策略水平,而用计算机语言模拟人的初级信息处理过程。人工智能新的研究热点:新的研究热点:分布式人工智能与Agent,计算智能与进化计算,数据挖掘与知识发现 (超市市场商品数据分析),人工生命第二章:知识表示方法知识的一般概念:知识是人们在改造客观世界的实践中积累起来的认识和经验知识表示:是研究用机器表示知识的可行性、有效性的一般方法,是一种数据结构与控制结构的统一体,既考虑知识的存储又考虑知识的使用。知识表示的要求:表示能力、可利用性、可实现性、可组织性、可维护性、自然性、可理解性状态空间法的三要素:状态、算符、状态空间方法问题求解技术:问题的表示和求解的方法二种不确定性:关于证据的不确定性和关于结论的不确定性原子公式:由若干谓词符号和项组成问题的状态空间包含三种说明的集合:初始状态集合S、操作符集合以及目标状态集合“我听音乐或者绘画”的谓词表示的析取式LISTEN(I,MUSIC)VDRAW(I,PAINTING)句子变换成子句形式:(x){P(x)→P(x)} (ANY x) { P(x)P(x) } (ANY x) {~P(x)

人工智能原理及其应用(第二版)习题答案

本页面为作品封面,下载文档后可自由编辑删除! 精 品 文 档

知识表示方法部分参考答案 2.8设有如下语句,请用相应的谓词公式分别把他们表示出来: (1)有的人喜欢梅花,有的人喜欢菊花,有的人既喜欢梅花又喜欢菊花。 解:定义谓词 P(x):x是人 L(x,y):x喜欢y 其中,y的个体域是{梅花,菊花}。 将知识用谓词表示为: (?x )(P(x)∧(L(x, 梅花)∨L(x, 菊花)∨L(x, 梅花)∧L(x, 菊花))) (2) 有人每天下午都去打篮球。 解:定义谓词 P(x):x是人 B(x):x打篮球 A(y):y是下午 将知识用谓词表示为: (?x )(?y) (A(y)∧B(x)∧P(x)) (3)新型计算机速度又快,存储容量又大。 解:定义谓词 NC(x):x是新型计算机 F(x):x速度快 B(x):x容量大 将知识用谓词表示为: (?x) (NC(x)→F(x)∧B(x)) (4) 不是每个计算机系的学生都喜欢在计算机上编程序。 解:定义谓词 S(x):x是计算机系学生 L(x, pragramming):x喜欢编程序 U(x,computer):x使用计算机 将知识用谓词表示为: ?(?x) (S(x)→L(x, pragramming)∧U(x,computer)) (5)凡是喜欢编程序的人都喜欢计算机。 解:定义谓词 P(x):x是人 L(x, y):x喜欢y 将知识用谓词表示为: (?x) (P(x)∧L(x,pragramming)→L(x, computer))

2.9用谓词表示法求解机器人摞积木问题。设机器人有一只机械手,要处理的世界有一张桌子,桌上可堆放若干相同的方积木块。机械手有4个操作积木的典型动作:从桌上拣起一块积木;将手中的积木放到桌之上;在积木上再摞上一块积木;从积木上面拣起一块积木。积木世界的布局如下图所示。 图机器人摞积木问题 解:(1) 先定义描述状态的谓词 CLEAR(x):积木x上面是空的。 ON(x, y):积木x在积木y的上面。 ONTABLE(x):积木x在桌子上。 HOLDING(x):机械手抓住x。 HANDEMPTY:机械手是空的。 其中,x和y的个体域都是{A, B, C}。 问题的初始状态是: ONTABLE(A) ONTABLE(B) ON(C, A) CLEAR(B) CLEAR(C) HANDEMPTY 问题的目标状态是: ONTABLE(C) ON(B, C) ON(A, B) CLEAR(A) HANDEMPTY (2) 再定义描述操作的谓词 在本问题中,机械手的操作需要定义以下4个谓词: Pickup(x):从桌面上拣起一块积木x。 Putdown(x):将手中的积木放到桌面上。 Stack(x, y):在积木x上面再摞上一块积木y。 Upstack(x, y):从积木x上面拣起一块积木y。 其中,每一个操作都可分为条件和动作两部分,具体描述如下: Pickup(x)

人工智能实验报告_2

课程实验报告 学年学期2015—2016年第一学期课程名称人工智能原理与技术实验名称PROLOG语言编程练习实验室无 专业年级电气134 学生姓名赵倩 学生学号2013011989 提交时间2015.12.28 成绩 任课教师樊强 水利与建筑工程学院

第一章PROLOG语言编程练习 1.1实验目的 加深学生对逻辑程序运行机理的理解,使学生掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。 (1)熟悉PROLOG语言编程环境的使用; (2)了解PROLOG语言中常量、变量的表示方法; (3)了解利用PROLOG进行事实库、规则库的编写方法; 1.2实验环境 计算机,Turbo PROLOG教学软件。 1.3预习要求 实验前应阅读实验指导书,了解实验目的、预习PROLOG语言的相关知识。 1.4实验内容 (1)学习使用Turbo PROLOG,包括进入PROLOG主程序、编辑源程序、修改环境目录、退出等基本操作。(2)在Turbo prolog集成环境下调试运行简单的Turbo PROLOG程序,如描述亲属关系的PROLOG程序或其他小型演绎数据库程序等。 1.5实验方法和步骤 (1)启动Windows XP操作环境。 (2)打开文件目录,执行prolog应用程序,启动Turbo prolog,并按空格键(SPACE)进入集成开发环境。(3)选择Setup项,打开下拉菜单,选择Directories项,进行工作目录修改,按Esc键退出,选择Save Configuration项,保存修改。 (4)选择Files项,打开下拉菜单,选择New file项,进入源程序输入和编辑,或选择Load项,选择要打开的示例程序,再选择Edit项,可以进行编辑源程序。 (5)编辑之后,可以选择Run项,执行程序,可以在Dialog窗口进行询问,即外部目标的执行,查看程序运行结果,分析程序之功能。 (6)仿前例,可以选择其他程序并运行,分析程序功能。 (7)退出,选择Quit项,可以退出Turbo Prolog程序,返回到Windows XP环境。 1.6示例程序 逻辑电路模拟程序。该程序以逻辑运算“与”、“或”、“非”的定义为基本事实,然后在此基础上定义了“异或”运算。那么,利用这些运算就可以对“与”、“或”、“非”和“异或”等逻辑电路进行模拟。事实上,在此基础上也可以对其他任一逻辑门电路进行模拟。 domains d=integer predicates not_(d,d) and_(d,d,d) or_(d,d,d) xor_(d,d,d) clauses not_(1,0). not_(0,1). and_(0,0,0). and_(0,1,0). and_(1,0,0). and_(1,1,1).

人工智能原理与应用_(张仰森_著)_高等教育出版社_课后答案

2.7解:根据谓词知识表示的步骤求解问题如下: 解法一: (1)本问题涉及的常量定义为: 猴子:Monkey,箱子:Box,香蕉:Banana,位置:a,b,c (2)定义谓词如下: SITE(x,y):表示x在y处; HANG(x,y):表示x悬挂在y处; ON(x,y):表示x站在y上; HOLDS(y,w):表示y手里拿着w。 (3)根据问题的描述将问题的初始状态和目标状态分别用谓词公式表示如下: 问题的初始状态表示: SITE(Monkey,a)∧HANG(Banana,b)∧SITE(Box,c)∧~ON(Monkey,Box)∧~HOLDS(Monkey,Banana) 问题的目标状态表示: SITE(Monkey,b)∧~HANG(Banana,b)∧SITE(Box,b) ∧ON(Monkey,Box)∧HOLDS(Monkey,Banana) 解法二: (1)本问题涉及的常量定义为: 猴子:Monkey,箱子:Box,香蕉:Banana,位置:a,b,c (2)定义谓词如下: SITE(x,y):表示x在y处; ONBOX(x):表示x站在箱子顶上; HOLDS(x):表示x摘到了香蕉。 (3)根据问题的描述将问题的初始状态和目标状态分别用谓词公式表示如下: 问题的初始状态表示: SITE(Monkey,a)∧SITE(Box,c)∧~ONBOX(Monkey)∧~HOLDS(Monkey) 问题的目标状态表示: SITE(Box,b)∧SITE(Monkey,b)∧ONBOX(Monkey)∧HOLDS(Monkey) 从上述两种解法可以看出,只要谓词定义不同,问题的初始状态和目标状态就不同。所以,对于同样的知识,不同的人的表示结果可能不同。 2.8解:本问题的关键就是制定一组操作,将初始状态转换为目标状态。为了用谓词公式表示操作,可将操作分为条件(为完成相应操作所必须具备的条件)和动作两部分。条件易于用谓词公式表示,而动作则可通过执行该动作前后的状态变化表示出来,即由于动作的执行,当前状态中删去了某些谓词公式而又增加一些谓词公式从而得到了新的状态,通过这种不同状态中谓词公式的增、减来描述动作。 定义四个操作的谓词如下,操作的条件和动作可用谓词公式的增、删表示: (1)goto

人工智能实训室建设方案

人工智能实验室 2021年1月 武汉唯众智创科技有限公司

人工智能实验室建设方案 一、专业背景 人工智能(Artificial Intelligence),它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 人工智能的实际应用有:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。 如今处于风口上的人工智能产业界,受到了众多企业的追捧。截至2019年6月,中国人工智能企业超过1200家,位居全球第二。但我国人工智能行业并未摆脱人才稀缺的发展短板,专业人才稀缺严重。根据猎聘发布的《猎聘2019年中国AI&大数据人才就业趋势报告》,中国人工智能人才缺口超过500万。为了满足人工智能产业界对人才的迫切需求,国家相继出台了多项政策方针,引导高校尽快设置人工智能相关专业,加大人工智能人才培养力度。2019年3月,35所高校获批建设人工智能本科专业。2019年10月18日在教育部发布的《普通高等学校高等职业教育(专科)专业目录》2019年增补专业中,增补了人工智能技术服务专科专业。 根据教育部《普通高等学校高等职业教育(专科)专业设置管理办法》,在相关学校和行业提交增补专业建议的基础上,教育部组织研究确定了2019年度增补专业共9个,自2020年起执行。在高等职业教育行业目录中,正式宣布人工智能技术服务专业诞生,专业代码610217。 该专业建设以人工智能技术与应用素质培养为基础,以人工智能技术与应用能力为培养主线,将人工智能技术服务专业技能知识和职业资格认证相结合,构建专业的理论教学体系和实践能力培养体系。采取多种形式,通过实施“双证书”和“多证书”制,培养社会所需的实用型人才。2018年4月2日,教育部印发了《高等学校人工智能创新行动计划》,行动计划中要求各大高校加快人工智能科技创新基地。因此,在高职院校设立人工智能专业迫在眉睫。

Fisher线性判别分析实验(模式识别与人工智能原理实验1)

-可编辑修改- 实验1 Fisher 线性判别分析实验 一、摘要 Fisher 线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有如下性质:同类样本尽可能聚集在一起,不同类的样本尽可能地远。 Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向W 和阈值y0,即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 二、算法的基本原理及流程图 1 基本原理 (1)W 的确定 各类样本均值向量mi 样本类内离散度矩阵i S 和总类内离散度矩阵 w S 12w S S S =+ 样本类间离散度矩阵b S 在投影后的一维空间中,各类样本均值T i i m '= W m 。样本类内离散度和总类内离散度 T T i i w w S ' = W S W S ' = W S W 。样本类间离散度T b b S ' = W S W 。 Fisher 准则函数满足两个性质: ·投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 T x S (x m )(x m ), 1,2 i i i i X i ∈= --=∑T 1212S (m m )(m m )b =--

·投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出W:-1 w12 W = S(m - m) 。 (2)阈值的确定 实验中采取的方法: 012 y = (m' + m') / 2。 (3)Fisher线性判别的决策规则 对于某一个未知类别的样本向量x,如果y=W T·x>y0,则x∈w1;否则x∈w2。 2 流程图 方差标准化(归一化处理) -可编辑修改-

《人工智能及其应用》实验指导书上课讲义

《人工智能及其应用》实验指导书

《人工智能及其应用》 实验指导书 浙江工业大学计算机科学与技术学院—人工智能课程组 2011年9月

前言 本实验是为了配合《人工智能及其应用》课程的理论学习而专门设置的。本实验的目的是巩固和加强人工智能的基本原理和方法,并为今后进一步学习更高级课程和信息智能化技术的研究与系统开发奠定良好的基础。 全书共分为八个实验:1.产生式系统实验;2.模糊推理系统实验;3.A*算法求解8数码问题实验;4.A*算法求解迷宫问题实验;5.遗传算法求解函数最值问题实验;6.遗传算法求解TSP问题实验;7.基于神经网络的模式识别实验;8.基于神经网络的优化计算实验。每个实验包括有:实验目的、实验内容、实验条件、实验要求、实验步骤和实验报告等六个项目。 本实验指导书包括两个部分。第一个部分是介绍实验的教学大纲;第二部分是介绍八个实验的内容。 由于编者水平有限,本实验指导书的错误和不足在所难免,欢迎批评指正。 人工智能课程组 2011年9月

目录 实验教学大纲 (1) 实验一产生式系统实验 (4) 实验二模糊推理系统实验 (6) 实验三 A*算法实验I (11) 实验四 A*算法实验II (14) 实验五遗传算法实验I (16) 实验六遗传算法实验II (21) 实验七基于神经网络的模式识别实验 (24) 实验八基于神经网络的优化计算实验 (28)

实验教学大纲 一、学时:16学时,一般安排在第9周至第16周。 二、主要仪器设备及运行环境:PC机、Visual C++ 6.0、Matlab 7.0。 三、实验项目及教学安排 序号实验名称实验 平台 实验内容学 时 类型教学 要求 1 产生式系统应 用VC++ 设计知识库,实现系统识 别或分类等。 2 设计课内 2 模糊推理系统 应用Matlab 1)设计洗衣机的模糊控制 器; 2)设计两车追赶的模糊控 制器。 2 验证课内 3 A*算法应用I VC++ 设计与实现求解N数码问 题的A*算法。 2 综合课内4 A*算法应用II VC++ 设计与实现求解迷宫问题 的A*算法。 2 综合课内 5 遗传算法应用 I Matlab 1)求某一函数的最小值; 2)求某一函数的最大值。 2 验证课内 6 遗传算法应用 II VC++ 设计与实现求解不同城市 规模的TSP问题的遗传算 法。 2 综合课内 7 基于神经网络 的模式识别Matlab 1)基于BP神经网络的数 字识别设计; 2)基于离散Hopfiel神经 网络的联想记忆设计。 2 验证课内 8 基于神经网络 的优化计算VC++ 设计与实现求解TSP问题 的连续Hopfield神经网 络。 2 综合课内 四、实验成绩评定

人工智能试验 结课报告

人工智能结课报告 学号:姓名: 一、课题:机器视觉及机器视觉系统的运用 二、摘要:科技在不停的发展,很多智能的东西在我们生活中随处可见,随着人工智能的不断发展,我们可以制造出真正的智能机器,而且这个领域也将成为下一个技术革命。机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是指通过机器视觉产品(即图像摄取装置,分 CMOS 和CCD 两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。 机器视觉系统适合于人工作业的危险工作环境或人工视觉难以满足要求的场合,常用机器视觉来替代人工视觉;同时在大批量工业生产过程中,用人工视觉检查产品质量效率低且精度不高,用机器视觉检测方法可以大大提高生产效率和生产的自动化程度。而且机器视觉易于实现信息集成,是实现计算机集成制造的基础技术。 机器视觉不会有人眼的疲劳,有着比人眼更高的精度和速度,借助红外线、紫外线、X 射线、超声波等高新探测技术,机器视觉在探测不可视物体和高危险场景时,更具有其突出的优点。机器视觉技术现已得到广泛的应用。 机器视觉技术的诞生和应用,极大地解放了人类劳动力,提高了生产自动化水平,改善了人类生活现状,其应用前景极为广阔。目前在国外,机器视觉技术已广泛应用于生产、生活中,而我国正处于起步阶段,急需广大科技工作者的共同努力,来迅速提高我国机器视觉技术的发展水平,为我国的现代化建设做出自己的贡献。 三、三个问题回答 (1)应用价值(10分):为什么跟踪这个人、项目、技术或者算法? 答:在学习人工智能时,从老师的课堂扩充中,我了解到了“机器视觉”这个词,所以我就对这项技术产生了兴趣,也对此进行了跟踪。 在国外,机器视觉的应用普及主要体现在半导体及电子行业。机器视觉系统还在质量检测的各个方面已经得到了广泛的应用,并且其产品在应用中占据着举足轻重的地位。 目前国内随着经济水平的提高,3D机器视觉也开始进入人们的视野。目前3D机器视觉大多用于水果和蔬菜、木材、化妆品、烘焙食品、电子组件和医药产品的评级。它可以提高合格产品的生产能力,在生产过程的早期就报废劣质产品,从而减少了浪费节约成本。这种功能非常适合用于高度、形状、数量甚至色彩等产品属性的成像。

《人工智能及其应用》实验指导书

《人工智能及其应用》 实验指导书

浙江工业大学计算机科学与技术学院—人工智能课程组 2011年9月

前言 本实验是为了配合《人工智能及其应用》课程的理论学习而专门设置的。本实验的目的是巩固和加强人工智能的基本原理和方法,并为今后进一步学习更高级课程和信息智能化技术的研究与系统开发奠定良好的基础。 全书共分为八个实验:1.产生式系统实验;2.模糊推理系统实验;3.A*算法求解8数码问题实验;4.A*算法求解迷宫问题实验;5.遗传算法求解函数最值问题实验;6.遗传算法求解TSP问题实验;7.基于神经网络的模式识别实验;8.基于神经网络的优化计算实验。每个实验包括有:实验目的、实验内容、实验条件、实验要求、实验步骤和实验报告等六个项目。 本实验指导书包括两个部分。第一个部分是介绍实验的教学大纲;第二部分是介绍八个实验的内容。 由于编者水平有限,本实验指导书的错误和不足在所难免,欢迎批评指正。 人工智能课程组 2011年9月

目录 实验教学大纲 (1) 实验一产生式系统实验 (4) 实验二模糊推理系统实验 (7)

实验三A*算法实验I (13) 实验四A*算法实验II (17) 实验五遗传算法实验I (19) 实验六遗传算法实验II (26) 实验七基于神经网络的模式识别实验 (29) 实验八基于神经网络的优化计算实验 (35)

实验教学大纲 一、学时:16学时,一般安排在第9周至第16周。 二、主要仪器设备及运行环境:PC机、Visual C++ 6.0、Matlab 7.0。 三、实验项目及教学安排 序号实验名称实验 平台实验内容学 时 类型教学 要求 1 产生式系统应用VC++ 设计知识库,实现系统识别或 分类等。 2 设计课内 2 模糊推理系统应 用Matla b 1)设计洗衣机的模糊控制器; 2)设计两车追赶的模糊控制 器。 2 验证课内 3 A*算法应用I VC++ 设计与实现求解N数码问题的 A*算法。 2 综合课内 4 A*算法应用II VC++ 设计与实现求解迷宫问题的A* 算法。 2 综合课内 5 遗传算法应用I Matla b 1)求某一函数的最小值; 2)求某一函数的最大值。 2 验证课内 6 遗传算法应用II VC++ 设计与实现求解不同城市规模 的TSP问题的遗传算法。 2 综合课内7 基于神经网络的Matla1)基于BP神经网络的数字识 2 验证课内

Fisher线性判别分析实验(模式识别与人工智能原理实验1)

实验1 Fisher 线性判别分析实验 一、摘要 Fisher 线性判别分析的基本思想:通过寻找一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,并且要求变换后的一维数据具有如下性质:同类样本尽可能聚集在一起,不同类的样本尽可能地远。 Fisher 线性判别分析,就是通过给定的训练数据,确定投影方向W 和阈值y0,即确定线性判别函数,然后根据这个线性判别函数,对测试数据进行测试,得到测试数据的类别。 二、算法的基本原理及流程图 1 基本原理 (1)W 的确定 各类样本均值向量mi 样本类内离散度矩阵i S 和总类内离散度矩阵w S 12w S S S =+ 样本类间离散度矩阵b S 在投影后的一维空间中,各类样本均值T i i m '= W m 。样本类内离散度和总类内离散度 T T i i w w S ' = W S W S ' = W S W 。样本类间离散度T b b S ' = W S W 。 Fisher 准则函数满足两个性质: ·投影后,各类样本内部尽可能密集,即总类内离散度越小越好。 ·投影后,各类样本尽可能离得远,即样本类间离散度越大越好。 根据这个性质确定准则函数,根据使准则函数取得最大值,可求出W : -1w 12W = S (m - m ) 。 (2)阈值的确定 实验中采取的方法:012y = (m ' + m ') / 2。 (3)Fisher 线性判别的决策规则 对于某一个未知类别的样本向量x ,如果y=W T ·x>y0,则x ∈w1;否则x ∈w2。 x 1 m x, 1,2 i i X i i N ∈= =∑T x S (x m )(x m ), 1,2 i i i i X i ∈= --=∑T 1212S (m m )(m m )b =--

人工智能 课程实验 专家系统 程序源代码

游戏人物识别专家系统 ——邢洪伟一试验题目 游戏人物识别专家系统 二、试验内容 游戏人物识别专家系统是流行的专家系统实验模型,主要基于暴风公司出品的经典角色类游戏《暗黑破坏神2》。它用产生式规则来表示知识,共15条规则、可以识别八种游戏人物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。游戏人物识别15条规则的中文表示是: 规则1: 如果:暴风公司出品的单机角色类游戏 则:该游戏是暗黑破坏神 规则2: 如果:暴风公司出品的单机对抗类游戏 则:该游戏是魔兽争霸 规则3: 如果:暴风公司出品的网络游戏 则:该游戏是魔兽世界 规则4: 如果:网易游戏出品的网络游戏 则:该游戏是梦幻西游 规则5: 如果:暗黑破坏神版本1 则:该游戏是暗黑破坏神1 规则6: 如果:是暗黑破坏神2 则:该游戏是暗黑破坏神2 规则7: 如果:是暗黑破坏神3 则:该游戏是暗黑破坏神3 规则8: 如果:暗黑破坏神版本2单手武器使用木棒的男性人物 则:该人物是德鲁伊 规则9: 如果:暗黑破坏神2单手武器使用手杖的男性人物 则:该人物是亡灵法师 规则10:

如果:暗黑破坏神版本2单手武器使用法杖的女性人物 则:该人物是巫师 规则11: 如果:暗黑破坏神版本2双手武器使用长剑和盾牌的男性人物 则:该人物是圣骑士 规则12: 如果:暗黑破坏神版本2单手武器使用斧头的男性人物 则:该人物是野蛮人 规则13: 如果:暗黑破坏神版本2单手武器使用爪子的男性人物 则:该人物是刺客 规则14: 如果:暗黑破坏神2单手武器使用长剑的女性人物 则:该人物是亚马逊 规则15: 如果:梦幻西游单手使用鞭子的女性人物 则:该人物是飞燕女 游戏人物识别专家系统由15条规则组成,可以识别八种动物,在15条规则中,共出现 37个概念(也称作事实),共37个事实,每个事实给一个编号,从编号从1到37,在规则对象中我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下:Char *str{}={"暴风公司出品 ","网易游戏出品","单机游戏","网络游戏", "角色类游戏","对抗类游戏","版本1","版本2","版本3","男性","女性", "暗黑破坏神","梦幻西游","暗黑破坏神1","暗黑破坏神2","暗黑破坏神3","单身武器","双手武器","使用木棒","是用手杖","使用法杖","使用长剑","使用盾牌","使用斧头","使用爪子","使用鞭子","巫师","德鲁伊","亡灵法师","法师","圣骑士","野蛮人","刺客","亚马逊","飞燕女","魔兽争霸","魔兽世界","\ 0"} 程序用编号序列的方式表达了产生式规则,如资料中规则15,如果动物是鸟,且善飞,则该动物是信天翁。相应的规则数组第八条是{26,17,13,11,0,0},第26个是“使用鞭子”,如果事实成立,询问使用者下一个事实,第17 个“单手武器”,如果也成立,询问使用者下一个事实,第13个是“梦幻西游”则,如果事实成立,询问使用者下一个事实,第11个是“女性”,如果事实成立,查找结论断言编号数组{28,29,30,31,32,33,34,35,14,15,16,1 3,12,36,37}中第八个“35”,这里35对应事实数组中的“飞燕女”。 上述就是程序的推理过程,也是程序中的重点,该部分是由规则类(类rul e)中的Query方法实现。 三、流程图及分析 主程序的流程主要是:1、实例化各个类 2、初始化事实集 3、初始化规则集

相关主题
文本预览
相关文档 最新文档