文档库 最新最全的文档下载
当前位置:文档库 › 人工智能导论实验

人工智能导论实验

人工智能导论实验
人工智能导论实验

人工智能导论

实验报告

姓名:蔡鹏

学号: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')

{

n=n+m;

}

}

return n;

}

void tree_gener(struct node *fn,struct node *root)

{

if (calcu_h(fn->seq)!=0)

{

int i;

int j=0,k;

for (i=0;i<7;i++)

{

if(fn->seq[i]=='#')

{

for(k=1;k<=3;k++)

{

if(i+k<7)

{

fn->sn[j]=(struct node *)malloc(sizeof(struct node));

swap(fn->sn[j],fn,i,i+k);

fn->sn[j]->g = fn->g+k;

fn->sn[j]->f = fn->sn[j]->g + 3*calcu_h(fn->sn[j]->seq);

fn->sn[j]->n=0;

j++;

}

if(i-k>=0)

{

fn->sn[j]=(struct node *)malloc(sizeof(struct node));

swap(fn->sn[j],fn,i,i-k);

fn->sn[j]->g = fn->g+k;

fn->sn[j]->f = fn->sn[j]->g + 3*calcu_h(fn->sn[j]->seq);

fn->sn[j]->n=0;

j++;

}

}

}

}

fn->n=j;

fn->f=inf;

find_min_f(root);

}

int main() {

struct node *root;

printf("seq:每一次选择的f最小的序列\ng:当前节点已花费的代价\nf:预计花费和已花费的代价的和。\n");

printf("倒序输出:\n");

root=(struct node *)malloc(sizeof(struct node));

root->seq[0]='B';

root->seq[1]='B';

root->seq[2]='B';

root->seq[3]='W';

root->seq[4]='W';

root->seq[5]='W';

root->seq[6]='#';

root->g=0;

root->f=0;

tree_gener(root,root);

}

三、实验结果

四、代码解释

3.函数调用关系

4.算法介绍

这里用到了A*算法

(1)main函数首先生成一个根节点,调用tree_gener(根节点,根节点)

(2)tree_gener,为传入的节点生成所有可能的子节点,并计算每个节点的g、f,调用find_min_f(根节点)

(3)find_min_f深搜遍历树节点,找到f最小的的叶节点,调用tree_gener(f最小叶节点,根节点)

(4)直到find_min_f找不到最小叶节点为止

路径即为解。

5.计算f用到的策略

f=g+h,h等于所有白格子左边黑格子个数和的和。

6.A*算法(引用百度百科)

A* (A-Star)算法是一种静态路网中求解最短路最有效的直接搜索方法。

注意是最有效的直接搜索算法。之后涌现了很多预处理算法(ALT,CH,HL等等),在线查询效率是A*算法的数千甚至上万倍。

公式表示为:f(n)=g(n)+h(n),

其中f(n) 是从初始点经由节点n到目标点的估价函数,

g(n) 是在状态空间中从初始节点到n节点的实际代价,

h(n) 是从n到目标节点最佳路径的估计代价。

保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取:

估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。并且如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行,此时的搜索效率是最高的。

如果估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。

实验二

一、实验内容

编程实现mgu一般合一算法

二、mgu一般和一算法的定义

?置换:可以简单的理解为是在一个谓词公式中用置换项去置换变量。

?定义:

置换是形如{t1/x1, t2/x2, …, t n/x n}的有限集合。其中,x1, x2, …, x n是互不相同的变量,t1, t2, …, t n是不同于x i的项(常量、变量、函数);t i/x i表示用t i置换x i,并且要求t i与x i不能相同,而且x i不能循环地出现在另一个t i中。

例如:

{a/x,c/y,f(b)/z}是一个置换。

{g(y)/x,f(x)/y}不是一个置换。

置换的合成

?设θ={t1/x1, t2/x2, …, t n/x n},

λ={u1/y1, u2/y2, …, u n/y n},是两个置换。

则θ与λ的合成也是一个置换,记作θ·λ。它是从集合

{t1·λ/x1, t2·λ/x2, …, t n·λ/x n, u1/y1, u2/y2, …, u n/y n }

中删去以下两种元素:

–当t iλ=x i时,删去t iλ/x i (i = 1, 2, …, n);

–当y i∈{x1,x2, …, x n}时,删去u j/y j (j = 1, 2, …, m) 最后剩下的元素所构成的集合。

合成即是对t i先做λ置换然后再做θ置换

?例:

设:θ={f(y)/x, z/y},λ={a/x, b/y, y/z},求θ与λ的合成。

解:先求出集合

{f(b/y)/x, (y/z)/y, a/x, b/y, y/z}={f(b)/x, y/y, a/x, b/y, y/z}

其中,f(b)/x中的f(b)是置换λ作用于f(y)的结果;y/y中的y是置换λ作用于z的结果。在该集合中,y/y满足定义中的条件i,需要删除;a/x,b/y满足定义中的条件ii,也需要删除。最后得

θ·λ={f(b)/x,y/z}

合一

?合一可以简单地理解为“寻找相对变量的置换,使两个谓词公式一致”。

?定义:设有公式集F={F1,F2,…,F n},若存在一个置换θ,可使F1θ=F2θ=…= F nθ,则称θ是F的一个合一。同时称F1,F2,... ,F n是可合一的。

?例:

设有公式集F={P(x, y, f(y)), P(a,g(x),z)},则λ={a/x, g(a)/y, f(g(a))/z}是它的一个合一。

注意:一般说来,一个公式集的合一不是唯一的。

最一般合一

?设σ是谓词公式集F的一个合一,如果对F的任意一个合一θ都存在一个置换λ,使

得θ=σ.λ,则称σ是一个最一般合一。

?最一般合一求取方法

–令W={F1,F2}

–令k=0,W0=W, σ0=ε

–如果W k已合一,停止,σk=mgu,否则找D k

–若D k中存在元素v k和t k,其中,v k不出现在t k中,转下一步,否则,不可合一。

–令σk+1= σk.{t k/v k},W k+1=W k{t k/v k}=W σk+1

–K=k+1转第3步。

例:W={P(a,x,f(g(y))),P(z,f(a),f(u))},其中,F1= P(a,x,f(g(y))),F2=

P(z,f(a),f(u))

求F1和F2的mgu

解:由mgu算法

(1)W= {P(a,x,f(g(y))),P(z,f(a),f(u))}

(2)W0=W,σ0=ε

(3) W0 未合一,从左到右找差异集,有D0={a,z}

(4)取V0=z,t0=a

(5)’’令σ3=σ2. {t2/v2}={a/z,f(a)/x,g(y)/u}

W3= W2 σ3={P(a,f(a),f(g(y))),P(a,f(a),f(g(y)))}

(3)’’’ W3 已合一

σ3= {a/z,f(a)/x,g(y)/u}

便是F1和F2的mgu。

算法的第(4)步,当不存在v k或不存在t k或出现差异集为{x,f(x)},都会导致不可合一。此时,算法返回失败。

三、实验代码

故而,我们利用以上的理论和样例解释,我们可以进编程实现以上功能的C++代码。

代码:

#include

#include

#include

using namespace std;

int iC=0;

class Syncretism

{

private:

struct Transform

{

string t_f1;

string t_f2;

};

public:

bool Issyn(string f1,string f2, vector&t );

Transform different(const string f1,const string f2)

{

int i=0;

Transform t;

while(f1.at(i)==f2.at(i))

i++;

int j1=i;

while(j1

j1++;

if(j1-i==0) return t;

t.t_f1=f1.substr(i,j1-i);

int j2=i;

while(j2

j2++;

if(j2-i==0) return t;

t.t_f2=f2.substr(i,j2-i);

while(t.t_f1[j1-i-1]==t.t_f2[j2-i-1])

{

t.t_f1.erase(j1-1-i);

t.t_f2.erase(j2-i-1);

j1--;

j2--;

}

return t;

}

bool same(const string f1,const string f2);

string change(string f,Transform t);

bool legal(Transform &t);

int var(const string s);

void show();

};

bool Syncretism::Issyn(string f1,string f2,vector&lan) {

while(!same(f1,f2))

{

Transform t=different(f1,f2);

bool flag=legal(t);

if(!flag)

return false;

else

{

lan.push_back(t);

if(flag)

{

f1=change(f1,lan.back());

f2=change(f2,lan.back());

cout<<"变换后:"<

cout<<"f1:"<

cout<<"f2:"<

}

if(same(f1,f2)) break;

}

}

return true;

}

bool Syncretism::same(const string f1, const string f2)

{

if(https://www.wendangku.net/doc/108213115.html,pare(f2)==0) return true;

else return false;

}

string Syncretism::change(string f,Transform t)

{

int i=f.find(t.t_f2);

while(i

{

i=f.find(t.t_f2);

if(i

f=f.replace(i,t.t_f2.length(),t.t_f1);

}

return f;

}

bool Syncretism::legal(Transform &t)

{

if(t.t_f1.length()==0||t.t_f2.length()==0)

return false;

else if(var(t.t_f1)==0||var(t.t_f2)==0) return false;

else if(var(t.t_f1)==1&&var(t.t_f2)==1&&t.t_https://www.wendangku.net/doc/108213115.html,pare(t.t_f2)!=0) return false;

else if(var(t.t_f1)==2)

{

if(var(t.t_f2)==1)

{

string temp=t.t_f1;

t.t_f1=t.t_f2;

t.t_f2=temp;

}

else

{

int i1=var(t.t_f2);

i1=iC;

iC=0;

int i2=var(t.t_f1);

i2=iC;

if(i1

{

string temp=t.t_f1;

t.t_f1=t.t_f2;

t.t_f2=temp;

}

}

return true;

}

else

return true;

}

int Syncretism::var(const string s)

{

if(s.length()==0) return 0;

if(s.length()==1&&s[0]>='a'&&s[0]<='g') return 1;

if(s.length()>1)

{

int i=0;

while(i

i++;

iC++;

string ss=s.substr(i+1,s.length()-i-2);

return var(ss);

}

else return 2;

}

void Syncretism::show()

{

cout<<"常量:形如a,b,c,d(a-g)等"<

cout<<"输入F1:";

cin>>f1;

cout<<"输入F2:";

cin>>f2;

vector lan;

if(Issyn(f1,f2,lan))

{

if(same(f1,f2))

{

cout<<"合一σ = ε "<

return;

}

cout<<"合一σ ={ ";

int i=0;

for(; i

cout<

cout<

else

cout<<"不能进行合一"<

}

int main()

{

Syncretism Sy;

Sy.show();

return 0;

}

相应的样例输入为:

F1:p(a,x,f(g(y)))

F2:p(z,f(z),f(u))

对应的样例输出为:(详见下图中的样例输出)

实验三

一、实验内容

Nim游戏:

Nim游戏是博弈论中最经典的模型(之一),它又有着十分简单的规则和无比优美的结论 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combinatorial Games”(ICG)。

游戏条件:

1、有两名选手;

2、两名选手交替对游戏进行移动(move),每次一步,选手可以在有限的合法移动集合

中任选一种进行移动;

3、对于游戏的任何一种可能的局面,合法的移动集合只取决于这个局面本身,不取决

于轮到哪名选手操作、以前的任何操作、骰子的点数或者其它什么因素;

4、如果轮到某名选手移动,且这个局面的合法的移动集合为空(也就是说此时无法进

行移动),则这名选手负。

形象描述:

Nim游戏的定义是这样的:有若干堆火柴(本题目为11),每堆火柴的数量都是有限的,合法的移动是“选择一堆火柴并拿走若干根(不能不拿)”,如果轮到某个人时所有的火柴堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。

必胜策略:

定义P-position和N-position,其中P代表Previous,N代表Next。直观的说,上一次move的人有必胜策略的局面是P-position,也就是“后手可保证必胜”或者“先手必败”,现在轮到move的人有必胜策略的局面是N-position,也就是“先手可保证必胜”。更严谨的定义是:1.无法进行任何移动的局面(也就是terminal position)是P-position;2.可以移动到P-position的局面是N-position;3.所有移动都导致N-position的局面是P-position。

根据上面这个过程,可以得到一个递归的算法——对于当前的局面,递归计算它的所有子局面的性质,如果存在某个子局面是P-position,那么向这个子局面的移动就是必胜策略。

可以证明,对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示异或(xor)运算。

按照如上介绍,改写策略代码,实现电脑难以被战胜。

二、实验结果

实验测试:

多次游戏均为AI获胜

结果如下图:

四、实验代码:

def nim_func(p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11): print p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11

p = [0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11]

x = 0

for i in range(1,12):

x=x^p[i]

if(x==0):

for i in range(1,12):

if(p[i]>0):

return (i,p[i-1])

else:

for i in range(1,12):

if(p[i]^x

return (i,p[i]^x)

return (-1,-1)

人工智能实验报告大全

人工智能实验报告大 全

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

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

一、选择题答案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整除。

《人工智能导论》试卷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、A2、A 二、填空题答案 1、基于规则的正向演绎系统使用的条件是(1)事实表达式是任意形式(2)规则形式为L→W或L1∨L2→W,其中L为单文字,W为任意形(3)目标公式为文字析取形 2、基于规则的逆向演绎系统使用的条件是(1)事实表达式是文字合取形(2)规则形式为W→L 或W→L1∧L2 ,其中L为单文字,W为任意形(3)目标公式为任意形式 3、归结法中,可以通过修改证明树的方法得到问题的解答。 三、问答题答案 第1题答:

得解图:

第2题 第3题 答:综合数据库: (m1, m5, m9, b) 设从河的左岸到右岸,其中m1, m5,m9分别表示过河时间需要1分钟,5分钟和9分钟的人,在河左岸的人数。b=1表示船在左岸,b=0表示船在右岸。规则集: 初始状态:(2, 1, 1, 1) 结束状态:(0, 0, 0, 0) h函数:h(n) = m - b,其中m为在左岸的人数,b为船是否在左岸。 对于任意两个节点ni和nj,其中nj是ni的子节点。 当ni中b=1时,则nj中b=0,因此:max(h(ni)-h(j))=(m-1)-(m-1)=0, 而C(ni, nj)最小为1, 因此h(ni)-h(nj)

因此该h函数满足单调性条件。所以h满足A*条件。 第4题 答:对事实和规则进行skolem化: (1)(s) ~P(a) (2)(s)(P(g(s))) P(g(s)) (3)(x)(s)(y)((P(s)∧Q(b,x,s))→H(y) (P(s)∧Q(b,c,s))→H(f(s)) (4)(x)(s)(Q(b,x,s)→Q(b,x,g(s))) Q(b,x,s)→Q(b,x,g(s)) (5)(x)(s)(y)(~P(s)→Q(b,x,y)) ~P(s)→Q(b,x,h(x, s)) 经变量换名后,有事实和规则如下: ~P(a) P(g(s1)) r1: (P(s2)∧Q(b,c,s2))→H(f(s2)) r2: Q(b,x3,s3)→Q(b,x3,g(s3)) r3: ~P(s4)→Q(b,x4,h(x4, s4)) 用对偶形式对目标skolem 化: (x)H(x) H(x) 演绎图如下图(这里只给出了一个一致解图)。

公需公需科目3人工智能导论答案

公需科目3 人工智能导论答案 1、(单选,4分) 当前最流行的深度学习属于() A、连接主义 B、符号注意 C、行为主义 D、经验主义 答案:A 2、(单选,4分) AI是()的英文缩写 A、Automatic?Intelligence B、Artificial Intelligence C、Automatice?Information D、Artifical?Information 答案:B 3、(单选,4分) 下列哪个不是人工智能的研究领域() A、机器学习 B、图像处理 C、自然语言处理 D、编译原理 答案:D

4、(单选,4分) ()最早提出了机器智能的测试模型,并提出了人工智能的含义 A、爱因斯坦 B、霍金 C、波尔 D、图灵 答案:D 5、(单选,4分) 人工智能的目的是让机器能够( ),以实现某些脑力劳动的机械化。 A、具有完全的智能 B、和人脑一样考虑问题 C、完全代替人 D、模拟、延伸和扩展人的智能 答案:D 6、(单选,4分) 下列关于人工智能的叙述不正确的有( ) A、人工智能技术它与其他科学技术相结合极大地提高了应用技术的智能化水平。 B、人工智能是科学技术发展的趋势。 C、因为人工智能的系统研究是从上世纪五十年代才开始的,非常新,所以十分重要。 D、人工智能有力地促进了社会的发展。 答案:C 7、(单选,4分) 自然语言理解是人工智能的重要应用领域,下面列举中的()不是它要实现的目标。 A、理解别人讲的话。 B、对自然语言表示的信息进行分析概括或编辑。 C、欣赏音乐。

D、机器翻译。 答案:C 8、(单选,4分) 一般来讲,下列语言不常直接用于人工智能开发的是()。 A、Python B、Go C、R D、汇编语言 答案:D 9、(单选,4分) 确定性知识是指()知识。 A、可以精确表示的 B、正确的 C、在大学中学到的知识 D、能够解决问题的 答案:A 10、(单选,4分) 阿尔法狗打败柯洁,用的是() A、人工思维 B、机器思维 C、人工智能 D、博弈论 答案:C 11、(单选,4分) 下列( )不属于艾莎克.阿莫西夫提出的“机器人三定律”内容? A、机器人不得伤害人,或任人受到伤害而无所作为

(完整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)

人工智能导论课参考答案第2章

第2章知识表示方法部分参考答案 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。 其中,每一个操作都可分为条件和动作两部分,具体描述如下:

2019公需科目《人工智能导论》答案

请选择答案。 1、(单选,4分) 当前最流行的深度学习属于() A、连接主义 B、符号注意 C、行为主义 D、经验主义 答案:A 2、(单选,4分) AI是()的英文缩写 A、Automatic?Intelligence B、Artificial Intelligence C、Automatice?Information D、Artifical?Information 答案:B 3、(单选,4分) 下列哪个不是人工智能的研究领域() A、机器学习 B、图像处理 C、自然语言处理 D、编译原理 答案:D 4、()最早提出了机器智能的测试模型,并提出了人工智能的含义 A、爱因斯坦 B、霍金 C、波尔 D、图灵 答案:D

5、(单选,4分) 人工智能的目的是让机器能够( ),以实现某些脑力劳动的机械化。 A、具有完全的智能 B、和人脑一样考虑问题 C、完全代替人 D、模拟、延伸和扩展人的智能 答案:D 6、(单选,4分) 下列关于人工智能的叙述不正确的有( ) A、人工智能技术它与其他科学技术相结合极大地提高了应用技术的智能化水平。 B、人工智能是科学技术发展的趋势。 C、因为人工智能的系统研究是从上世纪五十年代才开始的,非常新,所以十分重要。 D、人工智能有力地促进了社会的发展。 答案:C 7、(单选,4分) 自然语言理解是人工智能的重要应用领域,下面列举中的()不是它要实现的目标。 A、理解别人讲的话。 B、对自然语言表示的信息进行分析概括或编辑。 C、欣赏音乐。 D、机器翻译。 答案:C 8、(单选,4分) 一般来讲,下列语言不常直接用于人工智能开发的是()。 A、Python B、Go C、R

《人工智能导论》试卷

一、填空: 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)算法基本思想的文字描述;

2019公需科目计算智能+人工智能导论答案

D、人造机器人 答案:C PEAS分别是指哪些组件? A、性能/环境/执行器/传感器 B、传感器/性能/环境/执行器 C、环境/执行器/传感器/性能 D、传感器/环境/执行器/性能 答案:A 智能体程序分别有哪些类型?() A、感知智能体/决策智能体/学习智能体/规划智能体 B、简单反射型智能体/基于模型的反射型智能体/基于目标的智能体/基于效用的智能体 C、机器人/软件/硬件/算法 D、类人智能体/类动物智能体 答案:B 智能体使用什么组件来获得环境信息?() A、执行器 B、CPU C、传感器 D、条件--行动规律 答案:C 基于模型的反射型智能体的核心组件比简单反射型智能体多了什么?() A、执行器 B、传感器 C、CPU D、世界模型 答案:D 基于目标的智能体比基于模型的反射型智能体多了什么组件?() A、CPU B、世界模型 C、目标 D、环境 答案:C 可以把效用想象成什么?() A、效果 B、能源 C、金钱 D、智能体 答案:C 基于效用的智能体比基于目标的智能体多了什么核心组件?() A、世界模型 B、CPU C、效用评估 D、金钱

答案:C 哪个例子是强链接?() A、收音机听到的一个人 B、微博上的陌生朋友 C、亲人 D、同事 答案:CD 一个图表示为G = (V, E),其中V是指?() A、一个点 B、一条边 C、边集合 D、点集合 答案:D 局部信息相似性链路预测的优势是什么?() A、精准 B、速度快 C、符合实际场景 D、包含节点属性 答案:B 下面哪个是全局信息预测算法?() A、Common neighBors (CN) B、JACCArD (JC) C、ADAmiC-ADAr (AA) D、PAgeRAnk 答案:D 谷歌搜索引擎的算法基本框架是?() A、Common neighBors (CN) B、JACCArD (JC) C、ADAmiC-ADAr (AA) D、PAgeRAnk 答案:D PAgeRAnk中,参数Oj是指() A、所有网页的数量 B、从网页引出去的链接的数量 C、指向网页的链接的数量 D、可调参数 答案:B 一个好的学习训练模型应该是?() A、在训练时最小化错误率(提高在训练集上的准确率) B、模型应该简单(防止过拟合) C、将模型函数正则化 D、可以利用已知的数据特性,例如稀疏、低秩等 答案:ABCD 正则化是为了什么?

人工智能导论在线作业

人工智能导论在线作业集团标准化办公室:[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')

《人工智能导论》期末复习知识点

《人工智能导论》期末复习知识点 选择题知识点 1.人工智能、人工神经网络、机器学习等人工智能中常用词的英文及其英文缩写。 人工智能Artificial Intelligence,AI 人工神经网络Artificial Neural Network,ANN 机器学习Machine Learning,ML 深度学习Deep Learning,DL 2.什么是强人工智能? 强人工智能观点认为有可能制造出真正能推理(Reasoning)和解决问题(Problem_solving)的智能机器,并且,这样的机器将被认为是有知觉的,有自我意识的。可以独立思考问题并制定解决问题的最优方案,有自己的价值观和世界观体系。有和生物一样的各种本能,比如生存和安全需求。在某种意义上可以看作一种新的文明。 3.回溯算法的基本思想是什么? 能进则进。从一条路往前走,能进则进,不能进则退回来,换一条路再试。 4.面向对象、产生式系统、搜索树的定义? 面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。 把一组产生式放在一起,让它们相互配合,协同工作,一个产生式生成的结论可以供另一个产生式作为前提使用,以这种方式求得问题的解决的系统就叫作产生式系统。 对于需要分析方法,诸如深度优先搜索和广度优先搜索(穷尽的方法)以及启发式搜索(例如最佳优先搜索和A*算法),这样的问题使用搜索树表示最合适。 5.机器学习的基本定义是什么? 机器学习是一门研究及其获取新知识和新技能,并识别现有知识的学问。6.智慧地球的概念,智慧地球提出的背景是怎样的?

人工智能导论试卷 (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)

相关文档
相关文档 最新文档