当前位置:文档之家› 人工智能实验报告

人工智能实验报告

人工智能实验报告
人工智能实验报告

人工智能课内实验报告

主观贝叶斯方法的研究

一、实验题目

主观Bayes方法的研究。

二、实验目的

在证据不确定的情况下,根据充分性量度LS、必要性量度LN、E的先验

概率P(E)和H的先验概率P(H)作为前提条件,分析P(H/S)和P(E/S)的

关系。

三、实验原理

1、证据不确定性的表示

1. 在主观Bayes方法中,证据的不确定性用概率表示。对于证据E,由

用户根据观察S给出P(E|S),即动态强度。用P(E|S)描述证据的不

确定性(证据E不是可以直接观测的)。

2. 证据肯定存在时,P(E|S)=1;

3. 证据肯定不存在时, P(E|S)=0;

4. 证据具有不确定性时, 0

2、LN和LS的意义

1.当证据E愈是支持H为真时,则应是使相应的LS值愈大。

若证据E对H愈是必要,则相应LN的值愈小。

2.不能出现LS>1且LN>1的取值

因为: LS>1:表明证据E是对H有利的证据。

LN>1:表明证据?E是对H有利的证据。

3.不能出现LS<1且LN<1的取值

因为:LS<1: 表明证据 E是对H不利的证据。

LN<1:表明证据?E是对H不利的证据。

4. 一般情况下,取LS>1, LN<1。

3、证据不确定的情况

在现实中,证据肯定存在和肯定不存在的极端情况是不多的,更多的是介于二者之间的不确定情况。对初始证据来说,由于用户对客观

事物或现象的观察不是很精确,因而所提供的证据是不确定的;另外,

一条知识的证据往往来源于另一条知识推出的结论,一般也具有某种

程度的不确定性。所以我们要在S对E的观察的先验概率0

的情况下确定H的后验概率P(H/S)。

在证据确定的情况下,我们因该用杜达等人1976年证明了的公式来

进一步讨论:

(/)(/)*(/)(/)*(/)P H S P H E P E S P H E P E S =+--

分四种情况讨论这个公式:

1. P(E/S)=1

当P(E/S)=1时,P(-E/S)=0。此时公式变成(肯定存在的情况):

*()(/)(/)(1)*()1

LS P H P H S P H E LS P H ==-+ 2. P(E/S)=0

当P(E/S)=0时,P(-E/S)=1.此时公式变成(肯定不存在的情况):

*()(/)(/)(1)*()1

LN P H P H S P H E LN P H =-=-+ 3. P(E/S)=P(E)

当P(E/S)=P(E)时,表示E 与S 无关。利用全概率公式就将公式变为: (/)(/)*()(/)*()()P H S P H E P E P H E P E P H =+--=

4. 当P(E/S)为其它值时,通过分段线性插值就可得到计算P(H/S)的公式:

()(/)(/)*(/),0(/)()()(/)(/)()()*[(/)()],()(/)11()P H P H E P H E P E S P E S P E P E P H S P H E P H P H P E S P E P E P E S P E --?-+≤

若若该公式称为EH 公式或UED 公式。

四、实验程序

ls=input('ls=');

ln=input('ln=');

ph=input('ph=');

pe=input('pe=');

phe=(ls*ph)/((ls-1)*ph+1);

phfe=(ln*ph)/((ln-1)*ph+1);

phs=[];

for pes=0:0.01:1

if pes<=pe

a=phfe+(ph-phfe)/pe*pes;

phs=[phs,a];

else

a=ph+(phe-ph)/(1-pe)*(pes-pe);

phs=[phs,a];

end

end

pes=0:0.01:1;

plot(pes,phs)

五、实验结果

ls=1000

ln=0.3

ph=0.3

pe=0.3

六、试验总结

通过实验,使我更加熟悉了主观Bayes方法的实质,根据先验概率的条件不同来分析后验概率,利用它们之间的关系,更好的了解不确定性推理

利用A*算法实现重排九宫格

一、实验题目

利用A*算法实现重排九宫格

二、实验目的

熟悉启发式搜索的思想,加深对各种图搜索策略概念的理解。

三、实验原理

1搜索的一般过程

(1)把初始节点S0放入OPEN表,并建立只含S0的图,记为G。OPEN:=S0,G:=G0(G0=S0)(2)检查OPEN表是否为空,若为空则问题无解,退出。LOOP:IF(OPEN)=()THENEXIT (FAIL)

(3)把OPEN表的第一个节点取出放入CLOSE表,记该节点为节点n。N:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSE)(4)观察节点n是否为目标节点,若是,则求得问题的解,退出。IFGOAL(n)THENEXIT(SUCCESS)

(5)扩展节点n,生成一组子节点。把其中不是节点n先辈的那些子节点记作集合M,并把这些节点作为节点n的子节点加入G中。EXPAND(n)-->M(mi),G:=ADD(mi,G)针对M中子节点的不同情况,分别进行如下处理:

对于那些未曾在G中出现过的M成员设置一个指向父节点(n)的指针,并把它放入OPEN 表;

对于那些先前已在G中出现过的M成员,确定是否要修改指向父节点的指针;对于那些先前已在G中出现,并且已经扩展了的M成员,确定是否需要修改其后继结点指向父节点的指针。

(6)按某种搜索策略对OPEN表中的节点进行排序(7)转第2步。2.2.2A*算法

我在实验中采用A*算法实现重排九宫格。A*算法是一种全局择优的启发式算法,可以证明它具有最优性。

A*算法可以描述为f(n)=h(n)+g(n)的形式。其中,h(n)被称作启发函数,是当前结点到目标结点的代价描述;而g(n)是代价函数,描述了起始结点到当前结点的代价;f(n)是估价函数。A*算法是不回溯的,每次都选择f值最小的路径推进。

在程序中,我按如下思路实现了A*算法。其中,启发函数h(n)我选取的是当前结点和目标结点状态不同的个数。

(1)建立一个链表,计算初始结点的估价函数f,并将初始结点入表,设置链表头和尾指针。

(2)取出头(头指针所指)结点,如果该结点是目标结点,则输出路径,程序结束。否则对结点进行扩展。

(3)检查扩展出的新结点是否与链表中的结点重复,若与不能再扩展的结点重复(位于头指针之前),则将它抛弃;若新结点与待扩展的结点重复(位于头指针之后),则比较两个结点的估价函数中g的大小,保留较小g值的结点。跳至第五步。

(4)如果扩展出的新结点与链表中的结点不重复,则按照它的估价函数f大小将它插入头结点后待扩展结点的适当位置,使它们按从小到大的顺序排列,最后更新尾指针。

(5)如果头结点还可以扩展,直接返回第二步。否则将头指针指向下一结点,再返回第二步。

四、实验程序

#include

#include

#include

#include

//#include

using namespace std;

const int ROW = 3;//行数

const int COL = 3;//列数

const int MAXDISTANCE = 10000;//最多可以有的表的数目

const int MAXNUM = 10000;

typedef struct _Node{

int digit[ROW][COL];

int dist; // distance between one state and the destination一个表和目的表的距离int dep; // the depth of node深度

// So the comment function = dist + dep.估价函数值

int index; // point to the location of parent父节点的位置

} Node;

Node src, dest;// 父节表目的表

vector node_v; // store the nodes存储节点

bool isEmptyOfOPEN() //open表是否为空

{

for (int i = 0; i < node_v.size(); i++) {

if (node_v[i].dist != MAXNUM)

return false;

}

return true;

}

bool isEqual(int index, int digit[][COL]) //判断这个最优的节点是否和目的节点一样{

for (int i = 0; i < ROW; i++)

for (int j = 0; j < COL; j++) {

if (node_v[index].digit[i][j] != digit[i][j])

return false;

}

return true;

}

ostream& operator<<(ostream& os, Node& node)

{

for (int i = 0; i < ROW; i++) {

for (int j = 0; j < COL; j++)

os << node.digit[i][j] << ' ';

os << endl;

}

return os;

}

void PrintSteps(int index, vector& rstep_v)//输出每一个遍历的节点深度遍历{

rstep_v.push_back(node_v[index]);

index = node_v[index].index;

while (index != 0)

{

rstep_v.push_back(node_v[index]);

index = node_v[index].index;

}

cout << "----------------------" << endl;

for (int i = rstep_v.size() - 1; i >= 0; i--)//输出每一步的探索过程

cout << " step:" << rstep_v.size() - i

<< endl <

}

void Swap(int& a, int& b)

{

int t;

t = a;

a = b;

b = t;

}

void Assign(Node& node, int index)

{

for (int i = 0; i < ROW; i++)

for (int j = 0; j < COL; j++)

node.digit[i][j] = node_v[index].digit[i][j];

}

int GetMinNode() //找到最小的节点的位置即最优节点

{

int dist = MAXNUM;

int loc; // the location of minimize node

for (int i = 0; i < node_v.size(); i++)

{

if (node_v[i].dist == MAXNUM)

continue;

else if ((node_v[i].dist + node_v[i].dep) < dist) { loc = i;

dist = node_v[i].dist + node_v[i].dep;

}

}

return loc;

}

bool isExpandable(Node& node)

{

for (int i = 0; i < node_v.size(); i++) {

if (isEqual(i, node.digit))

return false;

}

return true;

}

int Distance(Node& node, int digit[][COL])

{

int distance = 0;

bool flag = false;

for(int i = 0; i < ROW; i++)

for (int j = 0; j < COL; j++)

for (int k = 0; k < ROW; k++) {

for (int l = 0; l < COL; l++) {

if (node.digit[i][j] == digit[k][l]) {

distance += abs(i - k) + abs(j - l);

flag = true;

break;

}

else

flag = false;

}

if (flag)

break;

}

return distance;

}

int MinDistance(int a, int b)

{

return (a < b ? a : b);

}

void ProcessNode(int index)

{

int x, y;

bool flag;

for (int i = 0; i < ROW; i++) {

for (int j = 0; j < COL; j++) {

if (node_v[index].digit[i][j] == 0)

{

x =i; y = j;

flag = true;

break;

}

else flag = false;

}

if(flag)

break;

}

Node node_up;

Assign(node_up, index);//向上扩展的节点

int dist_up = MAXDISTANCE;

if (x > 0)

{

Swap(node_up.digit[x][y], node_up.digit[x - 1][y]); if (isExpandable(node_up))

{

dist_up = Distance(node_up, dest.digit);

node_up.index = index;

node_up.dist = dist_up;

node_up.dep = node_v[index].dep + 1;

node_v.push_back(node_up);

}

}

Node node_down;

Assign(node_down, index);//向下扩展的节点

int dist_down = MAXDISTANCE;

if (x < 2)

Swap(node_down.digit[x][y], node_down.digit[x + 1][y]); if (isExpandable(node_down))

{

dist_down = Distance(node_down, dest.digit);

node_down.index = index;

node_down.dist = dist_down;

node_down.dep = node_v[index].dep + 1;

node_v.push_back(node_down);

}

}

Node node_left;

Assign(node_left, index);//向左扩展的节点

int dist_left = MAXDISTANCE;

if (y > 0)

{

Swap(node_left.digit[x][y], node_left.digit[x][y - 1]);

if (isExpandable(node_left))

{

dist_left = Distance(node_left, dest.digit);

node_left.index = index;

node_left.dist = dist_left;

node_left.dep = node_v[index].dep + 1;

node_v.push_back(node_left);

}

}

Node node_right;

Assign(node_right, index);//向右扩展的节点

int dist_right = MAXDISTANCE;

if (y < 2)

{

Swap(node_right.digit[x][y], node_right.digit[x][y + 1]); if (isExpandable(node_right))

{

dist_right = Distance(node_right, dest.digit);

node_right.index = index;

node_right.dist = dist_right;

node_right.dep = node_v[index].dep + 1;

node_v.push_back(node_right);

}

}

node_v[index].dist = MAXNUM;

}

int main() // 主函数

{

int number;

cout << "起始九宫格:" << endl;

for (int i = 0; i < ROW; i++)//输入初始的数据

for (int j = 0; j < COL; j++) {

cin >> number;

src.digit[i][j] = number;

}

src.index = 0;

src.dep = 1;

cout << "目标九宫格:" << endl;//输入目的数据

for (int m = 0; m < ROW; m++)

for (int n = 0; n < COL; n++) {

cin >> number;

dest.digit[m][n] = number;

}

node_v.push_back(src);//在容器的尾部加一个数据

clock_t start = clock();

while (1)

{

if (isEmptyOfOPEN())

{

cout << "无解!" << endl;

return -1;

}

else

{

int loc; // the location of the minimize node最优节点的位置loc = GetMinNode();

if(isEqual(loc, dest.digit))

{

vector rstep_v;

cout << " 起始的九宫格为:" << endl;

cout << src << endl;

PrintSteps(loc, rstep_v);

cout << " 成功!" << endl;

break;

}

else

ProcessNode(loc); }

}

return 0;

}

五、实验结果

六、实验总结

这次实验让我对状态空间的搜索问题有了更深刻的了解,对于学好人工智能这门课程帮助颇大

读书报告

----各种各样的知识表示方法及其应用知识是人类进行一切活动的基础。具有相对性,不确定性,可表示性与可利用性。人类的智能活动过程是一个获取知识并运用知识的过程;人工智能问题求解是以知识为基

础;知识的获取、知识的表示和运用知识进行推理是人工智能学科要研究的主要问题。

人工智能研究的目的是要建立一个模拟人类智能行为的系统,为达到这个目的就必须研究人类智能行为在计算机上的表示形式,只有这样才能把知识存储到计算机中去。知识表示是研究用计算机表示知识的可能性、有效性的一般方法,是一种数据结构与控制结构的统一体,既考虑知识的存储又考虑知识的作用。知识表示实际上就是对人类知识的一种描述,以把人类知识表示成计算机能够处理的数据结构。对知识进行表示的过程就是把知识编码成某种数据结构的过程。

按照人们从不同角度进行探索以及对问题的不同理解,知识表示方法可分为陈述性知识表示和过程性知识表示两大类。对同一知识,一般都可以用多种方法进行表示,不同的方法对同一知识的表示效果是不一样的,有时需要把几种表示模式结合起来,作为一个整体来表示领域知识。知识的表示方法多种多样,但目前还没有哪种表示方法可以适应于一切知识系统,不同的知识表示方法各有特色,适用于不同的领域。

知识的常见表示方法有:

一、经典逻辑表示法

一阶谓词逻辑表示法:谓词逻辑是一种知识表示方法,是到目前为止能够表达人类思维活动规律的一种最精确的形式语言;

谓词逻辑与人类的自然语言较接近,又可方便的存储到计算机中,并被计算机做精确处理。谓词逻辑是一种最早应用于人工智能中的知识表示方法。

知识的谓词逻辑表示法:

1、人类的一条知识一般可以由具有完整意义的由一句话或几句话表示出来,而这些知识要用谓词表示出来,一般是一个谓词公式;

2、谓词公式是用谓词联接符号将一些谓词联接起来所形成的公式;

3、用谓词公式既可以表示事物的状态、属性、概念等事实性的知识,也可以表示事物间具有确定因果关系的规则性知识。

4、对事实性知识,谓词逻辑的表示法通常是由以合取符号(∧)和析取符号(∨)联接形成的谓词公式表示。

一阶谓词逻辑是一种形式语言系统,它用数理逻辑的方法研究推理的规律,即条件和结论之间的蕴含关系。特点是:

1)、自然性。

2)、适宜于精确性知识的表示,而不适宜不确定性知识的表示。

3)、易实现。

4)、有与谓词逻辑表示法相对应的推理方法(归结推理方法或消解法)

二、产生式表示法

“产生式”是1943年由美国数学家Post首先提出,他根据“串替代”规则提出了一种称为Post

机的计算模型,模型中的每一条规则称为一个产生式(产生式表示法又称为产生式规则表示法)。 1972年,A.Newell和Simon在研究人类的认知模型中开发了基于规则的产生式系统。目前,产生式表示法已成为人工智能中应用最多的一种知识表示方法。

1、可表示的知识种类

适合于表示事实性知识和规则性知识。

在表示事实性知识时又可根据知识是确定性的还是不确定性的分别进行表示。

2、产生式的基本形式

产生式通常用于表示因果关系的知识,基本形式为

P→Q 或者

IF P THEN Q

其中,P是产生式的前提,用于指出该产生式是否可用的条件;

Q是一组结论或操作,用于指出前提P所指示的条件被满足时,应该得出的结论或应该执行的操作。

3、产生式与谓词逻辑中蕴含式的区别

(1)产生式的基本形式与谓词逻辑中的蕴含式具有相同的形式。蕴含式只是产生式的一个特殊情

况。

(2)蕴含式只能表示精确性的知识。

(3)产生式不仅可以表示精确性的知识,而且可以表示不精确性知识。

(4)在产生式表示知识的智能系统中,决定一条知识是否可用,只要前提条件与已知事实的相似

度达到某个指定的范围,就认为是可匹配的。

(5)在谓词逻辑中,蕴含式前提条件的匹配总是要求精确匹配。

4、产生式系统的组成

把一组产生式放在一起,让它们互相配合,协同作用,一个产生式生成的结论可以供另一个产生式作为已知事实使用,以求得问题的解决,这样的系统称为产生式系统。

产生式系统由三个基本部分组成:规则库、综合数据库和推理机。

规则库是用于描述某领域内知识的产生式集合。

综合数据库又称为事实库,用于存放输入的事实、外部数据库输入的事实以及中间结果(事实)和最后结果的工作区

推理机是一个或一组程序,用来控制和协调规则库与综合数据库的运行,包含了推理方式和控制策略。控制策略的作用就是确定选用什么规则或如何应用规则。

5、产生式系统推理机的推理方式有正向推理、反向推理、双向推理。

6、产生式表示的特点(1)清晰性。产生式表示格式固定,形式简单,规则间相互较为独立。

(2)模块性。知识库与推理机是分开的。(3)自然性。产生式表示法用“如果…,则…”的形式表示知识,是人们常用的表示因果关系的知识表示形式。产生式既可以表示确定性知识又可以表示不确定性知识,更符合人们日常见到的问题。

三、层次结构表示法

1、框架理论:

1957年美国著名的人工智能学者明斯基在其论文“A framework for representing knowledge”中提出了框架理论,并把它作为理解视觉、自然语言对话及其它复杂行为的基础。该理论认为人们对现实世界中各种事物的认识都是以一种类似于框架的结构存储在记忆中的,当面临一个新事物时,就从记忆中找出一个合适的框架,并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认识。

2、框架的定义及组成

框架是一种描述所论对象的数据结构;所论的对象可以是一个事物、一个事件或者一个概念。

一个框架由若干个“槽”组成,每个“槽”又可划分为若干个“侧面”。槽”用于描述所论及对象某一方面的属性。“侧面”用于描述相应属性的一个方面。槽和侧面所具有的属性值称为槽值和侧面值;槽值可以是逻辑型或数字型的,具体的值可以是程序、条件、默认值或是一个子框架。

3框架表示知识的框架步骤:

1)、分析待表达知识中的对象及其属性,对框架中的槽进行合理设置。

2)、对各对象间的联系进行考察。

3)、对各层对象的“槽”、及“侧面”进行合理的组织安排,避免信息描述的重复。

应用举例

例下面是一则关于地震的报道,请用框架表达这段报道。

“今天,一次强度为里氏8.5级的强烈地震袭击了下斯洛文尼亚(Low Slabovia)地区,造成25人死亡和25亿美元的财产损失。下斯洛文尼亚地区主席说:多年来,靠近萨迪壕金斯断层的重灾区一直是一个危险地区。这是本地区发生的第3号地震。”解:第一步:确定属性—即框架的槽。

本报道中关于地震的关键属性是地震发生的地点、时间、伤亡人数、财产损失数量、地震强度的震级、断层情况。

第二步:分析本报道中各对象间的联系,由于其中只涉及地震一件事,所以本步可以省略。下面是将本报道中有关数据填入相应槽后得到的3号地震的框架。

框架名:<地震3>

地点:Low Slabovia

时间:今天

伤亡人数:25

财产损失:250,000,000

震级:8.5

断层:萨迪壕金斯。

知识表示是人工智能的主要问题之一,也是利用人工智能求解实际问题的必经之路。

人工智能实验报告大全

人工智能实验报告大 全

人工智能课内实验报告 (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) { printf("Step %d:monkey从%c走到%c\n", ++i, x, y);//x表示猴子的位置,y为箱子的位置 } void Monkey_Move_Box(char x, char y) { printf("Step %d:monkey把箱子从%c运到%c\n", ++i, x, y);//x表示箱子的位置,y为香蕉的位置 } void Monkey_On_Box() { printf("Step %d:monkey爬上箱子\n", ++i); } void Monkey_Get_Banana() { printf("Step %d:monkey摘到香蕉\n", ++i); } void main() { unsigned char Monkey, Box, Banana; printf("********智能1501班**********\n"); printf("********06153034************\n"); printf("********刘少鹏**************\n"); printf("请用a b c来表示猴子箱子香蕉的位置\n"); printf("Monkey\tbox\tbanana\n"); scanf("%c", &Monkey); getchar(); printf("\t"); scanf("%c", &Box); getchar(); printf("\t\t"); scanf("%c", &Banana); getchar(); printf("\n操作步骤如下\n"); if (Monkey != Box) { Monkey_Go_Box(Monkey, Box); } if (Box != Banana)

游戏人工智能实验报告记录四

游戏人工智能实验报告记录四

————————————————————————————————作者:————————————————————————————————日期:

实验四有限状态机实验 实验报告 一、实验目的 通过蚂蚁世界实验掌握游戏中追有限状态机算法 二、实验仪器 Windows7系统 Microsoft Visual Studio2015 三、实验原理及过程 1)制作菜单 设置参数:点击会弹出对话框,设置一些参数,红、黑蚂蚁的家会在地图上标记出来 运行:设置好参数后点击运行,毒药、食物、水会在地图上随机显示 下一步:2只红蚂蚁和2只黑蚂蚁会随机出现在地图上,窗口右方还会出现红、黑蚂蚁当前数量的统计 不断按下一步,有限状态机就会不断运行,使蚁群产生变化 2)添加加速键

资源视图中下方 选择ID和键值

3)新建头文件def.h 在AntView.cpp中加入#include"def.h" 与本实验有关的数据大都是在这里定义的 int flag=0; #define kForage 1 #define kGoHome 2 #define kThirsty 3 #define kDead 4 #define kMaxEntities 200 class ai_Entity{ public: int type; int state; int row; int col; ai_Entity(); ~ai_Entity() {} void New (int theType,int theState,int theRow,int theCol); void Forage(); void GoHome(); void Thirsty(); void Dead();

《人工智能导论》试卷B

人工智能试卷(B) 试题部分: 一、选择题(15小题,共15分) 1、97年5月,著名的“人机大战”,最终计算机以3.5比2.5的总比分将世界国际象棋棋王卡斯帕罗夫击败,这台计算机被称为(A) A)深蓝B)IBM C)深思D)蓝天 2、下列不在人工智能系统的知识包含的4个要素中D A)事实B)规则C)控制和元知识D)关系 3、谓词逻辑下,子句, C1=L∨C1‘, C2= ? L∨C2‘, 若σ是互补文字的(最一般)合一置换,则其归结式C=(A ) A) C1’σ∨C2’σB)C1’∨C2’C)C1’σ∧C2’σD)C1’∧C2’ 4、或图通常称为D A)框架网络B)语义图C)博亦图D)状态图 5、不属于人工智能的学派是B A)符号主义B)机会主义C)行为主义D)连接主义。 6、人工智能的含义最早由一位科学家于1950年提出,并且同时提出一个机器智能的测试模型,请问这个科学家是C A)明斯基B).扎德C)图林D)冯.诺依曼 7、要想让机器具有智能,必须让机器具有知识。因此,在人工智能中有一个研究领域,主要研究计算机如何自动获取知识和技能,实现自我完善,这门研究分支学科叫(B )。 A)专家系统B)机器学习C)神经网络D)模式识别 8、下列哪部分不是专家系统的组成部分(A) A.)用户B)综合数据库C)推理机D)知识库 9、产生式系统的推理不包括(D ) A)正向推理B)逆向推理C)双向推理D)简单推理 10、C(B|A) 表示在规则A->B中,证据A为真的作用下结论B为真的B A)可信度B)信度C)信任增长度D)概率 11、AI的英文缩写是B A)Automatic Intelligence B)Artifical Intelligence C)Automatice Information D)Artifical Information 12、反演归结(消解)证明定理时,若当前归结式是(C)时,则定理得证。 A)永真式B)包孕式(subsumed)C)空子句 13、在公式中?y?xp(x,y)),存在量词是在全称量词的辖域内,我们允许所存在的x可能依赖于y值。令这种依赖关系明显地由函数所定义,它把每个y值映射到存在的那个x。这种函数叫做(B ) A. 依赖函数 B. Skolem函数 C. 决定函数 D. 多元函数 14、子句~P∨Q和P经过消解以后,得到(B ) A. P B. Q C. ~P D.P∨Q

人工智能实验报告

《人工智能》课外实践报告 项目名称:剪枝法五子棋 所在班级: 2013级软件工程一班 小组成员:李晓宁、白明辉、刘小晶、袁成飞、程小兰、李喜林 指导教师:薛笑荣 起止时间: 2016-5-10——2016-6-18

项目基本信息 一、系统分析 1.1背景

1.1.1 设计背景 智力小游戏作为人们日常休闲娱乐的工具已经深入人们的生活,五子棋更成为了智力游戏的经典,它是基于AI的αβ剪枝法和极小极大值算法实现的人工智能游戏,让人们能和计算机进行对弈。能使人们在与电脑进行对弈的过程中学习五子棋,陶冶情操。并且推进人们对AI的关注和兴趣。 1.1.2可行性分析 通过研究,本游戏的可行性有以下三方面作保障 (1)技术可行性 本游戏采用Windows xp等等系统作为操作平台,使用人工智能进行算法设计,利用剪枝法进行编写,大大减少了内存容量,而且不用使用数据库,便可操作,方便可行,因此在技术上是可行的。 (2)经济可行性 开发软件:SublimText (3)操作可行性 该游戏运行所需配置低、用户操作界面友好,具有较强的操作可行性。 1.2数据需求 五子棋需要设计如下的数据字段和数据表: 1.2.1 估值函数:

估值函数通常是为了评价棋型的状态,根据实现定义的一个棋局估值表,对双方的棋局形态进行计算,根据得到的估值来判断应该采用的走法。棋局估值表是根据当前的棋局形势,定义一个分值来反映其优势程度,来对整个棋局形势进行评价。本程序采用的估值如下: 状态眠二假活三眠三活二冲四假活三活三活四连五 分值 2 4 5 8 12 15 40 90 200 一般来说,我们采用的是15×15的棋盘,棋盘的每一条线称为一路,包括行、列和斜线,4个方向,其中行列有30路,两条对角线共有58路,整个棋盘的路数为88路。考虑到五子棋必须要五子相连才可以获胜,这样对于斜线,可以减少8路,即有效的棋盘路数为72路。对于每一路来说,第i路的估分为E(i)=Ec(i)-Ep(i),其中Ec(i)为计算机的i路估分,Ep(i)为玩家的i路估分。棋局整个形势的估值情况通过对各路估分的累加进行判断,即估值函数: 72 F(n)= Σ E(i) i=1 1.2.2 极小极大值算法: 极大极小搜索算法就是在博弈树在寻找最优解的一个过程,这主要是一个对各个子结点进行比较取舍的过程,定义一个估值函数F(n)来分别计算各个终结点的分值,通过双方的分值来对棋局形势进行分析判断。以甲乙两人下棋为例,甲为max,乙为min。当甲走棋时,自然在博弈树中寻找最大点的走法,轮到乙时,则寻找最小点的走法,如此反复,这就是一个极大极小搜索过程,以此来寻找对机器的最佳走法。

人工智能导论试卷一答案 (上海交大)

一、选择题答案1、b 2、A 3、A 二、填空题答案 1、在修正的A算法中,fm的含义是到当前为止,扩展的节点中,f的最大值 2、对任意节点n,设m是n的子节点,当h满足条件h(n)-h(m) ≤ C(n, m), h(t) = 0时,称h是单调的。 三、问答题答案 第1题 答:当问题有解时,A*算法总是找到问题的最优解结束。如果h函数定义的不合理,则当扩展一个节点时,不一定就找到了从初始节点到该节点的最优路径,对于这样的节点,就有可能被多次扩展。特别是如果这样的节点处于问题的最优解路径上时,则一定会被多次扩展。解决的方法一是对h函数的定义给出限制,使得h满足单调性。对于满足单调性条件的h,则一定不会出现重复扩展节点问题。二是对A*算法加以改进,使用修正的A*算法进行搜索,则可以减少重复扩展节点问题。 第2题 答:回溯搜索策略与深度有限搜索策略最大的不同是深度有限搜索策略属于图搜索,而回溯搜索则不是图搜索。在回溯搜索中,只保留了从初始节点到当前节点的搜索路径。而深度优先搜索,则保留了所有的已经搜索过的路径。 第3题 答:化子句集如下:

归结树如下: 修改证明树:

得到问题的解答:R(h(f(g(c, a)))) 第4题 第5题 答:搜索图如图所示,其中括号内标出的是节点的f值,圆圈内的数字是扩展的次序。F(16) 得到的解路径为:S-B-F-J-T 第6题 答:如下的知识可以帮助求解该问题: (1)序列中,偶数在偶数位置,奇数在奇数位置; (2)第五个数为5。 综合数据库:

用一个1到9的序列表示:N = {x},其中x为1到9的数字之一。规则集: r1: IF len(N)=4 THEN {x}∪{5} r2: IF len(N)为偶数and n=In(1, 3, 7, 9) THEN {x}∪{n} r3: IF len(N)为奇数and n=In(2, 4, 6, 8) THEN {x}∪{n} 其中len(N)为求序列的长度,In(a, b, c, d)为取a、b、c、d之一。初始状态:{} 结束条件:得到的序列N前i个数组成的整数能被i整除。

(完整word版)哈工大人工智能导论实验报告

人工智能导论实验报告 学院:计算机科学与技术学院 专业:计算机科学与技术 2016.12.20

目录 人工智能导论实验报告 (1) 一、简介(对该实验背景,方法以及目的的理解) (3) 1. 实验背景 (3) 2. 实验方法 (3) 3. 实验目的 (3) 二、方法(对每个问题的分析及解决问题的方法) (4) Q1: Depth First Search (4) Q2: Breadth First Search (4) Q3: Uniform Cost Search (5) Q4: A* Search (6) Q5: Corners Problem: Representation (6) Q6: Corners Problem: Heuristic (6) Q7: Eating All The Dots: Heuristic (7) Q8: Suboptimal Search (7) 三、实验结果(解决每个问题的结果) (7) Q1: Depth First Search (7) Q2: Breadth First Search (9) Q3: Uniform Cost Search (10) Q4: A* Search (12) Q5: Corners Problem: Representation (13) Q6: Corners Problem: Heuristic (14) Q7: Eating All The Dots: Heuristic (14) Q8: Suboptimal Search (15) 自动评分 (15) 四、总结及讨论(对该实验的总结以及任何该实验的启发) (15)

人工智能实验报告大全

人工智能课内实验报告 (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) {

《人工智能导论》试卷

一、填空: 1.人工智能的研究途径有(1)、(2)和行为模拟。 2.任意列举人工智能的四个应用性领域(3)、(4)、(5)、(6)。 3.人工智能的基本技术包括(7)、(8)、(9)归纳技术、联想技术。 4.谓词逻辑是一种表达能力很强的形式语言,其真值的特点和命题逻辑的区别是 (10)。 5.谓词逻辑中,重言式(tautlogy)的值是(11)。 6.设P是谓词公式,对于P的任何论域,存在P为真的情况,则称P为(12)。 7.在著名的医疗专家系统MYCIN中规定,若证据A的可信度CF(A)=0,则意味 着13 ,CF(A)=-1,则意味着(14),CF(A)=1,则意味着(15)。 8.谓词公式G是不可满足的,当且仅当对所有的解释(16)。 9.谓词公式与其子句集的关系是(17)。 10.利用归结原理证明定理时,若得到的归结式为(18),则结论成立。 11.若C1=┐P∨Q,C2=P∨┐Q,则C1和C2的归结式R(C1,C2)= (19)。 12.若C1=P(x) ∨Q(x),C2=┐P(a) ∨R(y),则C1和C2的归结式R(C1,C2)= (20)。 13.有谓词公式G,置换δ,则G·ε= (21),δ·ε= (22)。 14.有子句集S={P(x),P(y)},其MGU= (23)。 15.在归结原理中,几种常见的归结策略并且具有完备性的是(24),(25),(26)。 16.状态图启发式搜索算法的特点是(27)。 17.广度优先搜索算法中,OPEN表的数据结构实际是一个(28),深度优先搜索算 法中,OPEN表的数据结构实际是一个(29)。 18.产生式系统有三部分组成(30),(31)和推理机。其中推理可分为(32)和 (33)。 19.专家系统的结构包含人机界面、(34),(35),(36),(37)和解 释模块。

人工智能实验报告

计算机科学与技术1341901301 敏 实验一:知识表示方法 一、实验目的 状态空间表示法是人工智能领域最基本的知识表示方法之一,也是进一步学习状态空间搜索策略的基础,本实验通过牧师与野人渡河的问题,强化学生对知识表示的了解和应用,为人工智能后续环节的课程奠定基础。 二、问题描述 有n个牧师和n个野人准备渡河,但只有一条能容纳c个人的小船,为了防止野人侵犯牧师,要求无论在何处,牧师的人数不得少于野人的人数(除非牧师人数为0),且假定野人与牧师都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出小船来回次数最少的最佳方案。 三、基本要求 输入:牧师人数(即野人人数):n;小船一次最多载人量:c。 输出:若问题无解,则显示Failed,否则,显示Successed输出一组最佳方案。用三元组(X1, X2, X3)表示渡河过程中的状态。并用箭头连接相邻状态以表示迁移过程:初始状态->中间状态->目标状态。 例:当输入n=2,c=2时,输出:221->110->211->010->021->000 其中:X1表示起始岸上的牧师人数;X2表示起始岸上的野人人数;X3表示小船现在位置(1表示起始岸,0表示目的岸)。 要求:写出算法的设计思想和源程序,并以图形用户界面实现人机交互,进行输入和输出结果,如: Please input n: 2 Please input c: 2 Successed or Failed?: Successed Optimal Procedure: 221->110->211->010->021->000 四、算法描述 (1)算法基本思想的文字描述;

人工智能实验报告

实验报告 1.对CLIPS和其运行及推理机制进行介绍 CLIPS是一个基于前向推理语言,用标准C语言编写。它具有高移植性、高扩展性、 强大的知识表达能力和编程方式以及低成本等特点。 CLIPS由两部分组成:知识库、推理机。它的基本语法是: (defmodule< module-n ame >[< comme nt >]) CLIPS的基本结构: (1).知识库由事实库(初始事实+初始对象实例)和规则库组成。 事实库: 表示已知的数据或信息,用deftemplat,deffact定义初始事实表FACTLIS,由关系名、后跟 零个或多个槽以及它们的相关值组成,其格式如下: 模板: (deftemplate [] *) :: = | 事实: (deffacts [] *) 当CLIPS系统启动推理时,会把所有用deffact定义的事实自动添加到工作存储器中。常用命令如下:asser:把事实添加到事实库(工作存储器)中retract:删除指定事实 modify :修改自定义模板事实的槽值duplicate :复制事实 clear:删除所有事实 规则库 表示系统推理的有关知识,用defrule命令来定义,由规则头、后跟零个或多个条件元素以 及行为列表组成,其格式如下: (defrule [] * ; =>

人工智能导论在线作业

人工智能导论在线作业集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

答:决策树是一种数据挖掘分类算法、是直观运用概率分析的一种图解法、是一个预测模型。 基本方法: 决策树一般由方块结点、圆形结点、方案枝、概率枝等组成,方块结点称为决策结点,由结点引出若干条细支,每条细支代表一个方案,称为方案枝;圆形结点称为状态结点,由状态结点引出若干条细支,表示不同的自然状态,称为概率枝。每条概率枝代表一种自然状态。在每条细枝上标明客观状态的内容和其出现概率。在概率枝的最末稍标明该方案在该自然状态下所达到的结果(收益值或损失值)。这样树形图由左向右,由简到繁展开,组成一个树状网络图。 步骤: a.绘制决策树图。从左到右的顺序画决策树,此过程本身就是对决策问题的再分析过程。 b.按从右到左的顺序计算各方案的期望值,并将结果写在相应方案节点上方。期望值的计算是从右到左沿着决策树的反方向进行计算的。 c.对比各方案的期望值的大小,进行剪枝优选。在舍去备选方案枝上,用“=”记号隔断。 2、什么是知识它有哪些特性列举至少六种知识表示方法 答:经过国内外学者的共同努力,目前已经有许多知识表示方法得到了深入的研究,目前使用较多的知识表示方法主要有:谓词逻辑表示法,产生式表示法、框架表示法、语义网络表示法、表示法、基于本体的知识表示法等。本文将介绍这些知识表示方法的特征和优缺点,进行一些分析和比较。 (1)词逻辑表示法。谓词逻辑表示法是指各种基于(ormalogic)知识表示方式,用逻辑公式描述对象、性质、状况和关系,例如“在轨道上”可以描述成:(npaceshiporbit)它是领域中使用最早和最广泛的知识表示方法之一。其根本目的在于把数学中的逻辑论证符号化,能够采用数学演绎的方式,证明一个新语句是从哪些已知正确的语句推导出来的,那么也就能够断定这个新语句也是正确的。 在这种方法中,识库可以看成一组逻辑公式的集合,识库的修改是增加或删除逻辑公式。使用逻辑法表示知识,将以描述的知识通过引入谓词、函数来加以形式描述,得有关的逻辑公式,而以机器内部代码表示。在逻辑法表示下可采用归结法或其它方法进行准确的推理。

人工智能导论1-4章作业

《人工智能导论》作业(1-4章) 1.人工智能有哪几个主要的学派?各学派的基本理论框架和主要研究方向有何不同?2.用谓词逻辑方法表述下面问题积木世界的问题。 (定义谓词、描述状态、定义操作、给出操作序列) 3.请给出下列描述的语义网络表示: 1)11月5日,NBA常规赛火箭主场对阵小牛,火箭107-76大胜小牛。 2)张老师从9月至12月给自动化专业学生教授《自动控制原理》。李老师从10至12月 给计算机专业学生教授《操作系统原理》。 3)树和草都是植物;树和草都有根和叶;水草是草,生活在水中;果树是树,会结果; 苹果树是果树,结苹果。 4.请用相应谓词公式描述下列语句: 1)有的人喜欢足球、有的人喜欢篮球;有的人既喜欢足球又喜欢篮球。 2)喜欢编程的同学都喜欢计算机。 3)不是每个自控系的学生都喜欢编程。 4)有一个裁缝,他给所有不自己做衣服的人做衣服。 5)如果星期六不下雨,汤姆就会去爬山。 5.什么是谓词公式的解释?对于公式?x ?y (P(x)→Q(f(x),y)) D={1,2,3} 分别给出使公式为真和假的一种解释。 6.什么是合一?求出下面公式的最一般合一: P(f(y), y, x) P(x, f(a),z)。 7.把下面谓词公式化为子句集 ?x ?y (P(x,y)∨Q(x,y))→R(x,y)) ?x (P(x) →?y(P(y)∧R(x,y))

?x (P(x)∧?y(P(y) →R(x,y))) 8.证明下面各题中,G是否是F的逻辑结论? F1: ?x (P(x) →?y(Q(y)→L(x,y))) F2: ?x (P(x)∧?y(R(y) →L(x,y))) G: ?x (R(x) →~Q(x)) F1: ?z (~B(z)→?y(D(z,y)∧C(y))) F2: ?x (E(x)∧A(x)∧?y (D(x,y) →E(y))) F3: ?y(E(y) →~B(y)) G: ?z (E(z) ∧C(z)) 9.已知:John, Mike, Sam是高山俱乐部成员。 高山俱乐部成员都是滑雪运动员或登山运动员(也可以都是)。 登山运动员不喜欢雨。 滑雪运动员都喜欢雪。 凡是Mike喜欢的,John就不喜欢。 凡是Mike 不喜欢的,John就喜欢。 Mike喜欢雨和雪。 问:高山俱乐部是否有一个成员,他是登山运动员,但不是滑雪运动员?如果有,他是谁?10.为什么说归结式是其亲本子句的逻辑结论? 11.何为完备的归结策略?有哪些归结策略是完备的? 12.何谓搜索?有哪些常用的搜索方法?盲目搜索与启发式搜索的根本区别是什么?13.用状态空间法表示问题时,什么是问题的解?什么是最优解?在图搜索算法中,OPEN 表和CLOSED表的作用是什么?f(x)有何不同含义? 14.宽度优先搜索和深度优先搜索有何不同?在何种情况下,宽度优先搜索优于深度优先搜索,何种情况反之? 15.什么是启发式搜索,g(x)与h(x)各有什么作用?A*算法的限制条件是什么?

福州大学《人工智能导论》试卷

福州大学2014~2015学年第2学期考试A卷 课程名称人工智能导论考试日期2015-6-14 考生姓名学号专业或类别 题号一二三四总分累分人 签名题分100 得分 考生注意事项:1、本试卷共8 页,请查看试卷中是否有缺页。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。 一、填空题(每空1分,共20分) 得分评卷人 1. 人工智能三大学派是、和。 2. 在知识表示方法中,与谓词逻辑表示为ISA(LIMING ,MAN)等效的语义网络形式 为。 3.状态空间表示法的两个基本概念是和。 4. 产生式系统由3个部分组成:一个总数据库、、。 5. ANN中文意义是。 6. 反向传播(back-propagation,BP)算法过程是从输出节点开始, ,所以称为“反向传播”。 7. 消解反演证明定理时,若当前归结式是,则定理得证。 8. 子句和P经过消解以后,得到。 9.基于规则的正向演绎系统,其规则形式为,其中前项要满足的条件是。 10. 语义网络下的推理是通过和实现的。 11. 被成为人工智能之父,曾提出一个机器智能的测试模型。 12. 谓词公式(?x)(?y)(?z)(P(x,y)∨Q(y,z)W(z))消去存在量词后,可以化为 。

13. 设E 1=P(a,v,f(g(y))),E 2 =P(z,f(a),f(u)),则E 1 和E 2 的mgu(最一般合一)为 。 14. 进化策略是在父矢量x i ,i=1,2,……p中,通过加入一个 变量以及预先选择x的标准偏差来产生子代矢量x。 二、选择题(每小题2分,共20分) 得分评卷人 1. 在图搜索中,选择最有希望的节点作为下一个要扩展的节点,这种搜索方法叫做( ) A. 宽度搜索 B. 深度搜索 C. 有序搜索 D. 广义搜索 2. 下列人工神经网络属于反馈网络的是() A. Hopfield网 B. BP网络 C. 多层感知器 D. LVQ网络 3. 使用一组槽来描述事件的发生序列,这种知识表示法叫做( ) A. 语义网络法 B. 过程表示法 C. 剧本表示法 D. 框架表示法 4. 产生式系统的推理不包括( ) A. 正向推理 B. 逆向推理 C. 双向推理 D. 简单推理 5. 启发式搜索是寻求问题()解的一种方法 A. 最优 B. 一般 C. 满意 D. 最坏 6. 语义网络表达知识时,有向弧AKO链、ISA链表达节点知识的() A. 无悖性 B. 可扩充性 C. 继承性 D. 完整性 7. 下面表达式对中()是能够合一的。 A. P(q(f(v)),g(u))和P(x,x) B. P(x,f(x))和P(y,y) C. P(y,y,B)和P(z,x,z) D. P(f(A),x),P(x,A) 8. 在遗传算法中,变量x的定义域为 [-2,5],要求其精度为10-6,现用二进制进行编码,

人工智能导论实验

人工智能导论 实验报告 姓名:蔡鹏 学号:1130310726 实验一

一、实验内容 有如下序列,试把所有黑色格移到所有白色格的右边,黄色格代表空格,黑色格和白色格可以和距离不超过三的空格交换。 二、实验代码 #include #include #include #define N 10 #define inf 9999 int g=999; void tree_gener(struct node *fn,struct node *root); struct node { char seq[7]; int f,g,n; struct node *sn[N]; }; struct stack { int num; struct node *n[50]; }; void Enstack(struct node *sn,struct stack *S) { S->n[S->num]=sn; S->num++; } struct node *Destack(struct stack *S) { S->num--; return S->n[S->num]; } void find_min_f(struct node *root) { int i; struct node *n,*min; struct stack S; S.num=0; min=root;

Enstack(root,&S); while(S.num!=0) { n=Destack(&S); if(n->f < min->f) { min=n; } for(i=0;in;i++) { Enstack(n->sn[i],&S); } } tree_gener(min,root); if(g>min->g) { printf("seq:%c %c %c %c %c %c %c | g:%d \n",min->seq[0],min->seq[1],min->seq[2],min->seq[3],min->seq[4],min->seq[5],min->seq[6],min->g); } g=min->g; } void swap(struct node *sn,struct node *fn,int n,int m) { int i; for(i=0;i<7;i++) { sn->seq[i]=fn->seq[i]; } sn->seq[n]=fn->seq[m]; sn->seq[m]=fn->seq[n]; } int calcu_h(char seq[]) { int m=0,n=0,i; for(i=0;i<7;i++) { if(seq[i]=='B') { m++; } if(seq[i]=='W')

人工智能实验报告

人工智能课程项目报告 姓名: 班级:二班

一、实验背景 在新的时代背景下,人工智能这一重要的计算机学科分支,焕发出了他强大的生命力。不仅仅为了完成课程设计,作为计算机专业的学生, 了解他,学习他我认为都是很有必要的。 二、实验目的 识别手写字体0~9 三、实验原理 用K-最近邻算法对数据进行分类。逻辑回归算法(仅分类0和1)四、实验内容 使用knn算法: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3.使用knnClassify()进行测试 4.依据k的值,得出结果 使用逻辑回归: 1.创建一个1024列矩阵载入训练集每一行存一个训练集 2. 把测试集中的一个文件转化为一个1024列的矩阵。 3. 使用上式求参数。步长0.07,迭代10次 4.使用参数以及逻辑回归函数对测试数据处理,根据结果判断测试数 据类型。 五、实验结果与分析 5.1 实验环境与工具 Window7旗舰版+ python2.7.10 + numpy(库)+ notepad++(编辑)

Python这一语言的发展是非常迅速的,既然他支持在window下运行就不必去搞虚拟机。 5.2 实验数据集与参数设置 Knn算法: 训练数据1934个,测试数据有946个。

数据包括数字0-9的手写体。每个数字大约有200个样本。 每个样本保持在一个txt文件中。手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下图所 示 建立一个kNN.py脚本文件,文件里面包含三个函数,一个用来生成将每个样本的txt文件转换为对应的一个向量:img2vector(filename):,一个用 来加载整个数据库loadDataSet():,最后就是实现测试。

人工智能遗传算法实验报告

人工智能实验报告 学号: 姓名: 实验名称:遗传算法 实验日期:2016.1.5

【实验名称】遗传算法 【实验目的】 掌握遗传算法的基本原理,熟悉遗传算法的运行机制,学会用遗传算法来求解问题。 【实验原理】 遗传算法( Genetic Algorithm )是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化, 如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来 越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学 的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。 遗传算法程度流程图为:

【实验名称】遗传算法 【实验目的】 掌握遗传算法的基本原理,熟悉遗传算法的运行机制,学会用遗传算法来求解问题。 【实验原理】 遗传算法( Genetic Algorithm )是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。 遗传算法是从代表问题可能潜在的解集的一个种群开始的,而一个种群则由经过基因编码的一定数目的个体组成。每个个体实际上是染色体带有特征的实体。在一开始需要实现从表现型到基因型的映射即编码工作。由于仿照基因编码的工作很复杂,我们往往进行简化, 如二进制编码,初代种群产生之后,按照适者生存和优胜劣汰的原理,逐代演化产生出越来 越好的近似解,在每一代,根据问题域中个体的适应度大小选择个体,并借助于自然遗传学 的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。这个过程将导致种群像自然进化一样的后生代种群比前代更加适应于环境,末代种群中的最优个体经过解码,可以作为问题近似最优解。 遗传算法程度流程图为:

人工智能导论试卷 (2)

课程名称人工智能导论考试日期2007-6-14 考生姓名学号专业或类别 题号一二三四总分累分人 签名题分100 得分 考生注意事项:1、本试卷共8 页,请查看试卷中是否有缺页。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。 一、填空题(每空1分,共20分) 得分评卷人 1. 人工智能三大学派是符号主义,连接主义,行为主义、和。 2. 在知识表示方法中,与谓词逻辑表示为ISA(LIMING ,MAN)等效的语义网络形式 为。 3.状态空间表示法的两个基本概念是和。状态,操作符 4. 产生式系统由3个部分组成:一个总数据库、一套规则,一个控制策略 、。 5. ANN中文意义是人工神经元网络 。 6. 反向传播(back-propagation,BP)算法过程是从输出节点开始, 将误差信号沿原来的连接通路返回,通过修改各层神经元的连接权值,使误差信号减至最小 ,所以称为“反向传播”。 7. 消解反演证明定理时,若当前归结式是空子句 ,则定理得证。 8. 子句和P经过消解以后,得到 Q 。 9.基于规则的正向演绎系统,其规则形式为,其中前项要满足的条件是。→W或L1∨L2→W,L为单文字

2006~2007学年第2学期考试A卷

13. 设E 1=P(a,v,f(g(y))),E 2 =P(z,f(a),f(u)),则E 1 和E 2 的mgu(最一般合一)为 。 14. 进化策略是在父矢量x i ,i=1,2,……p中,通过加入一个零均方差的高斯随机变量以及预先选择x的标准偏差来产生子代矢量x。 二、选择题(每小题2分,共20分) 得分评卷人 1. 在图搜索中,选择最有希望的节点作为下一个要扩展的节点,这种搜索方法叫做( ) A. 宽度搜索 B. 深度搜索 C. 有序搜索 D. 广义搜索 2. 下列人工神经网络属于反馈网络的是() A. Hopfield网 B. BP网络 C. 多层感知器 D. LVQ网络 3. 使用一组槽来描述事件的发生序列,这种知识表示法叫做( ) A. 语义网络法 B. 过程表示法 C. 剧本表示法 D. 框架表示法 4. 产生式系统的推理不包括( ) A. 正向推理 B. 逆向推理 C. 双向推理 D. 简单推理 5. 启发式搜索是寻求问题()解的一种方法 A. 最优 B. 一般 C. 满意 D. 最坏 6. 语义网络表达知识时,有向弧AKO链、ISA链表达节点知识的() A. 无悖性 B. 可扩充性 C. 继承性 D. 完整性 7. 下面表达式对中()是能够合一的。 A. P(q(f(v)),g(u))和P(x,x) B. P(x,f(x))和P(y,y) C. P(y,y,B)和P(z,x,z) D. P(f(A),x),P(x,A)

人工智能实验报告

《一人工智能方向实习一》 实习报告 专业:计算机科学与技术 班级:12419013 学号: 姓名: 江苏科技大学计算机学院 2016年3月

实验一数据聚类分析 一、实验目的 编程实现数据聚类的算法。 二、实验内容 k-means聚类算法。 三、实验原理方法和手段 k-means算法接受参数k ;然后将事先输入的 n个数据对象划分为 k个聚类以便使得 所获得的聚类满足:同一聚类中的对象相似度较高 四、实验条件 Matlab2014b 五、实验步骤 (1)初始化k个聚类中心。 (2)计算数据集各数据到中心的距离,选取到中心距离最短的为该数据所属类别。 (3)计算(2)分类后,k个类别的中心(即求聚类平均距离) (4)继续执行(2)(3)直到k个聚类中心不再变化(或者数据集所属类别不再变化) 六、实验代码 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % mai n.m % k-mea ns algorithm % @author matcloud %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; close all ; load fisheriris ; X = [meas(:,3) meas(:,4)]; figure; plot(X(:,1),X(:,2), 'ko' ,'MarkerSize' ,4); title( 'fisheriris dataset' , 'FontSize' ,18, 'Color' , 'red'); [idx,ctrs] = kmea ns(X,3); figure; subplot(1,2,1); plot(X(idx==1,1),X(idx==1,2), 'ro' , 'MarkerSize' ,4); hold on;

《人工智能导论》试卷A(答案)

2006~2007学年第2学期考试A 卷 参考答案 一、1. 符号主义,连接主义,行为主义 3.状态,操作符 4.一套规则,一个控制策略 5.人工神经元网络 6.将误差信号沿原来的连接通路返回,通过修改各层神经元的连接权值,使误差信号减至最小 7.空子句 8.Q 9. L→W 或L1∨L2→W,L 为单文字 10.继承,匹配 11.图灵 12. 13. 14. 零均方差的高斯随机 二、CBCDCCADAB 三、1. (1)自然语言理解 (2)人工神经元网络 数据库智能检索 智能控制 专家咨询系统 智能调度和指挥 定理机器证明 智能决策支持系统 博弈 知识发现和数据发掘 机器人学 分布式人工智能 自动程序设计 组合调度问题 感知问题 2.

3.构成:略 特征:(1)能较好的模拟人的形象思维。 (2)具有大规模并行协同处理能力。 (3)具有较强的学习能力。 (4)具有较强的容错能力和联想能力。 (5)是一个大规模自组织、自适应的非线性动力系统。 4.遗传算法是一种随机搜索算法。该算法将优化问题看作是自然界生物的进化过程。模拟大自然生物进化的遗传规律来达到寻优的目的。 5.设A(x):想出国留学 P(x):欲穷千里目 Q(x):更上一层楼 (1)?x(~A(x)) (2)(?x)(Q(x) P(x)) 四、1. 得到的解路径为:S-B-F-J-T 2.启发式搜索图:

状态空间图:

3.

4.证明: R1:所有不贫穷且聪明的人都快乐:?x(~Poor(x)∧Smart(x)→Happy (x)) R2:那些读书的人是聪明的:?x(read(x)→Smart(x)) R3:约翰能读书且不贫穷:read(John)∧ ~Poor(John) R4:快乐的人过着幸福的生活:?x(Happy(x)→Blest(x)) 结论:约翰过着幸福的生活的否定:~ Blest(John) 将上述谓词公式转化为子句集并进行归结如下: 由R1可得子句: Poor(x)∨~Smart(x)∨Happy(x) 由R2可得子句: ~read(y)∨Smart(y) 由R3可得子句: read(John) ~Poor(John) 由R4可得子句: ~ Happy(z)∨Blest(z) 由结论的否定可得子句: ~ Blest(John) 根据以上6条子句,归结如下: ~ Happy(John)⑤⑥ John/z Poor(John)∨~Smart(John)⑦① John/x ~Smart(John)⑧④ ~ read(John)⑨② John/y □⑩③ 由上可得原命题成立。

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