当前位置:文档之家› 西电数据结构大作业

西电数据结构大作业

西电数据结构大作业
西电数据结构大作业

题目:数据结构上机报告学院:电子工程学院

专业:信息对抗技术

学生姓名:甘佳霖

学号:14020310092

西安电子科技大学

数据结构课程实验报告实验名称线性表

电子工程学院 1402031 班Array姓名甘佳霖学号 14020310092

同作者

实验日期 2017 年 3 月 18 日

实验一线性表

一、实验目的

1.熟悉线性表的顺序和链式存储结构

2.掌握线性表的基本运算

3.能够利用线性表的基本运算完成线性表应用的运算

二、实验要求

1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n, e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。

2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。

三、设计思路

1.顺序表做逆置操作时将对应的首尾元素位置交换,单链表的指针end指向链表的末尾,指针start指向链表头结点,指针s用来找到指向end节点的节点,将指向链表末尾和头结点的存储内容交换,然后头结点指针指向下一节点,s指针从start节点开始遍历寻找指向end 指针的节点,并将end指针赋值为s指针,就完成了单链表的逆置,可以看出单链表和顺序表都可以完成线性表的逆置。

2.分解单链表的实现思路是首先新建3个循环链表,然后顺序遍历单链表,ASCII码判断链表中的元素属于哪一类元素,然后将这个元素添加到对应的循环链表中,从而实现分解单链表的功能。

四、运行结果

1.单链表逆置:

顺序表逆置:

2.分解单链表

五、实验总结

线性表和单链表是最简单的、最常用的数据结构类型,是实现其他数据结构的基础,熟悉对它们的操作有助于后面对数据结构课程的学习和理解。

附录:

单链表逆置代码如下:

//单链表逆置主文件.cpp

#include

#include

#include"单链表结构类型定义.h"

#include"建立单链表.h"

#include"输出单链表.h"

#include"单链表逆置.h"

void main()

{

linklist*head;

creat(head);

print(head);

invert(head);//调用单链表逆置的函数

print(head);

}

//单链表结构类型定义.h

typedef char datatype;

typedef struct node

{

datatype data;

struct node *next;

}linklist;

//建立单链表.h

void creat(linklist*&head)

//采用尾插法建立具有结点的单链表{

char ch;

linklist *s,*r;

head=new linklist;

r=head;

while((ch=getchar())!='*')

{

s=new linklist;

s->data=ch;

r->next=s;

r=s;

}

r->next=NULL;

}

//输出单链表.h

void print(linklist *head)

{

linklist*p=head->next;

while(p!=NULL)

{

cout<data<<" ";

p=p->next;

}

cout<

}

//单链表逆置.h

void invert(linklist*head)

{

linklist*p,*q,*r;

p=head->next;

q=p->next;

while(q!=NULL)

{

r=q->next;

q->next=p;

p=q;

q=r;

}

head->next->next=NULL;

head->next=p;

}

顺序表逆置代码如下:

//顺序表逆置主文件.cpp

#include

#include

#include"顺序表结构类型定义.h" #include"建立顺序表.h"

#include"输出顺序表.h"

#include"顺序表逆置.h"

void main()

{

sequenlist*L;

creat(L);

print(L);

invert(L);//调用顺序表逆值的函数 print(L);

}

//顺序表的结构类型定义.h

typedef char datatype;

const int maxsize=1024;

typedef struct

{ datatype data[maxsize];

int last;

}sequenlist;

//建立顺序表.h

void creat(sequenlist*&L)

{

L=new sequenlist;

L->last=0;

char ch;

while((ch=getchar())!='*')

{

L->data[L->last]=ch;

L->last++;

}

}

//输出顺序表.h

void print(sequenlist*L)

{

for(int i=0;ilast;i++)

cout<data[i]<<" ";

cout<

}

//顺序表逆置.h

void invert(sequenlist*L)

{char mid;

int i,j;

i=0;

j=L->last-1;

while(i

{

mid=L->data[i];

L->data[i]=L->data[j]; L->data[j]=mid;

i++;j--;

}

}

西安电子科技大学

数据结构课程实验报告实验名称栈和队列

电子工程学院 1402031 班Array姓名甘佳霖学号 14020310092

同作者

实验日期 2017 年 4 月 11 日

实验二栈和队列

一、实验目的

1.熟悉栈和队列的顺序和链式存储结构

2.掌握栈和队列的基本运算

3.能够利用栈和队列的基本运算完成栈和队列应用的运算

二、实验要求

1.假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen分别指示循环队列中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。

2.设单链表中存放有n个字符,试编写算法,判断该字符串是否有中心对称的关系,例如xyzzyx是中心对称的字符串。(提示:将单链表中的一半字符先依次进栈,然后依次出栈与单链表中的另一半字符进行比较。)

三、设计思路

1.队列是一个先进先出的线性表,入队时,先判断队列是否已满,如果不满将元素插入到队尾,然后判断rear是否指向sequ[m],如果是,指向队尾指针rear+1,否者rear=sequ[0],队列内元素个数quelen+1。出队时头指针front后移一位,如果front=sequ[m],front指向sequ[0],否则front++,quelen-1,从而实现入队与出队的操作。

2.要判断字符串是否中心对称,首先获取栈的长度N,将前N/2个元素(N为偶数)或前(N-1)/2个元素(N为奇数)顺序压入栈中,然后依次出栈(先进后出),与另一半元素依次对应比较,全为真则可判断字符串中心对称。

四、运行结果

1.循环队列入队出队

2.判断字符串中心对称

五、实验总结

通过这次实验,我掌握了栈和队列的基本原理,了解了对于栈和队列的操作,让我对栈和队列的知识有了更多的了解。

附录:

1.循环队列入队出队代码

//循环队列入队出队的主程序文件.cpp

#include

#include

#include

#include"循环队列的结构类型定义.h"

#include"置空队.h"

#include"入队.h"

#include"出队.h"

void main()

{ qu *sq;

datatype x, *p;

int key;

sq=new qu;

setnull(sq);

do

{ cout<<"1.Enter Queue 2.Delete Queue -1.Quit:";

cin>>key;

switch(key)

{ case 1: cout<<"Enter the Data:"; cin>>x;

enqueue(sq,x);

break;

case 2: p=dequeue(sq);

if(p!=NULL) cout<<*p<

break;

case -1: exit(0);

}

}while(1);

}

//出队.h

datatype *dequeue(qu *sq)

{

datatype *temp;

if(sq->quelen==0)

{

printf("队列为空,请先进行入队操作\n");

return 0;

}

else

{

temp=(datatype*)malloc(sizeof(datatype)); sq->quelen--;

*temp=sq->sequ[(sq->rear-sq->quelen+m)%m];

cout<<"出队成功!\n";

return (temp);

}

}

//入队.h

voidenqueue(qu *sq, datatype x)

{

if(sq->quelen==m)

printf("队列已满,请先进行出队操作\n");

else {

sq->quelen++;

sq->rear=(sq->rear+1)%m;

sq->sequ[sq->rear]=x;

cout<<"入队成功!\n";

}

}

//循环队列的结构类型定义.h

constint m=5;

typedefint datatype;

typedefstruct

{ datatypesequ[m];

int rear, quelen;

}qu;

//置空队.h

voidsetnull(qu *sq)

{ sq->rear=m-1;

sq->quelen=0;

}

2.判断字符串中心对称代码

//判字符串中心对称的主程序文件.cpp

#include

#include"单链表顺序栈结构类型定义.h"

#include"置栈空.h"

#include"求单链表长度.h"

#include"输出单链表.h"

#include"建立单链表.h"

#include"顺序栈入栈.h"

#include"顺序栈出栈.h"

#include"判字符串是否中心对称.h"

void main()

{

linklist *head;stack *s;

datatypestr[80];

cin>>str;

creat(head,str);

printlink(head);

setnull(s);

if(symmetry(head,s)) cout<<"字符串\""<

else cout<<"字符串\""<

}

//定义单链表结构类型.h

typedef char datatype;

typedefstruct node

{ datatype data;

struct node *next;

}linklist;

//定义顺序栈结构类型

constintmaxsize=40;

typedefstruct

{ datatype elements[maxsize];

int top;

}stack;

//建立具有头结点的单链表.h

voidcreat(linklist *&head,datatype*str) { datatype *p=str;

linklist *s,*r;

head=new linklist;

r=head;

while(*p!='\0')

{

s=new linklist;

s->data=*p;

r->next=s;

r=s;

p++;

}

r->next=NULL;

}

//判断字符是否中心对称.h

int symmetry(linklist*head,stack*s)

{

int n=length(head)/2;

linklist*p=head->next;

datatype x;

for(inti=0;i

{

push(s,p->data);

p=p->next;

}

if(length(head)%2==1)

p=p->next;

while(p!=NULL)

{

x=pop(s);

if(x==p->data)

p=p->next;

else return 0;

}

return 1;

}

//求单链表长度.h

int length(linklist*head)

{ linklist *p=head->next;

int n=0;

while(p!=NULL){ n++; p=p->next; } return n;

}

//输出单链表.h

voidprintlink(linklist*head)

{ linklist *p=head->next;

while(p!=NULL)

{ cout<data;

p=p->next;

}

cout<

}

//顺序栈出栈.h

datatype pop(stack*s)

{

datatype temp;

s->top--;

temp=s->elements[s->top+1];

return temp;

}

//顺序栈入栈.h

void push(stack*s,datatype e)

{

s->top++;

s->elements[s->top]=e;

}

//置栈空.h

voidsetnull(stack *&s)

{

s=new stack;

s->top=-1;

}

西安电子科技大学

数据结构课程实验报告实验名称数组

电子工程学院 1402031 班Array姓名甘佳霖学号 14020310092

同作者

实验日期 2017 年 5 月 6 日

实验三数组

一、实验目的

1.熟悉数组的结构

2.掌握矩阵的进行运算

二、实验要求

若在矩阵A m×n中存在一个元素A[i-1[j-1],其满足A[i-1[j-1]是第i行元素中最小值,且又是第j列元素中最大值,则称此元素为该矩阵的一个马鞍点。用二维数组存储矩阵A m×n,设计算法求出矩阵中所有马鞍点。

三、设计思路

若称元素为该矩阵的一个马鞍点,即说明该元素是第i行元素中最小值,且又是第j列元素中最大值。用两个循环遍历所有元素,第一个循环遍历行,第二个循环遍历列,将

A[i-1][j-1]与对应行和列的每一个元素比较,如果第i行的某元素比A[i-1][j-1]小或第j 列的某元素比A[i-1][j-1]大则跳出内层循环,实现寻找马鞍点的要求。

四、运行结果

五、实验总结

本次实验设计了一个算法来寻找数组中的马鞍点,数组的知识在大一的C语言程序设计中已经有过接触,在这次实验里通过编程,对数组的结构有了进一步的了解。

附录:

//找马鞍点的主程序文件.cpp

#include

#include"数组的结构类型定义.h"

#include"找马鞍点.h"

using namespace std;

void main()

{

array*pa=new array;

int i, j;

for (i=0;i

for (j=0;j

cin>>pa->A[i][j];

minmax(pa);

getchar();

}

//数组的结构类型定义.h

constint m=3;

constint n=3;

typedefstruct{

int A[m][n];

int max[m],min[n];

}array;

//找马鞍点.h

voidminmax(array*p)

{

inti,j,have=0;

for(i=0;i

{

p->min[i]=p->A[0][i];

for(j=1;j

if(p->A[i][j]min[i])

p->min[i]=p->A[i][j];

}

for (j=0;j

{

p->max[j]=p->A[0][j];

for(i=1;i

if(p->A[i][j]>p->max[j])

数据结构大作业报告

数据结构大作业报告 数据结构大作业实验报告课程名称:数据结构设计题目:客户去银行储蓄模拟程序一( 实验题目 (1)内容描述:编写一个程序反映客户到银行储蓄的过程。 (2)基本要求:要实现以下功能:1:排队 2:储蓄 3:查看排队4.:删除自己所排的队 5.不再排队,剩下的客户依次储蓄 6:下班 二( 实验的工程组成图和程序结构图 main bank 本工程的组成结构如左图所示,程序结构图如右图所示。三( 工程所包含的函数的功能描述 Bank():模拟客户到银行去储蓄的过程。客户排队储蓄,所以要用到一个队列, 这里设计了一个不带头结点的单链表作为队列。 四( 实验工程的算法描述及流程图 //客户排队去银行储蓄,用到了队列的知识,这里设计了一个不带头结点的单链表作为队列来完成排队储蓄过程 #include

#include typedef struct qnode { int data; struct qnode *next; } QNode; //定义链队结点类型 typedef struct { QNode *front,*rear; } QType; //定义链队类型 void bank() //模拟客户储蓄的过程 { int cho,onwork=1,no,find; QType *q; //定义链队类型的指针 QNode *p,*r; //定义链队结点的指针 q=(QType *)malloc(sizeof(QType)); //申请链队的空间 q->front=q->rear=NULL; //创建空队 while (onwork==1) //循环执行 { printf("1:排队 2:储蓄 3:查看排队4:删除自己所排的队 5:不再排队,剩下的客户依次储蓄 6:下班请选择:"); scanf("%d",&cho); switch(cho) { case 1://排队

西电人工智能大作业

人工智能大作业 学生:021151** 021151** 时间:2013年12月4号

一.启发式搜索解决八数码问题 1.实验目的 问题描述:现有一个3*3的棋盘,其中有0-8一共9个数字,0表示空格,其他的数字可以和0交换位置(只能上下左右移动)。给定一个初始状态和一个目标状态,找出从初始状态到目标状态的最短路径的问题就称为八数码问题。 例如:实验问题为

到目标状态: 从初始状态: 要求编程解决这个问题,给出解决这个问题的搜索树以及从初始节点到目标节点的最短路径。 2.实验设备及软件环境 利用计算机编程软件Visual C++ 6.0,用C语言编程解决该问题。 3.实验方法 (1).算法描述: ①.把初始节点S放到OPEN表中,计算() f S,并把其值与节点S联系 起来。 ②.如果OPEN表是个空表,则失败退出,无解。 ③.从OPEN表中选择一个f值最小的节点。结果有几个节点合格,当其 中有一个为目标节点时,则选择此目标节点,否则就选择其中任一节点作为节点i。 ④.把节点i从OPEN表中移出,并把它放入CLOSED的扩展节点表中。 ⑤.如果i是目标节点,则成功退出,求得一个解。 ⑥.扩展节点i,生成其全部后继节点。对于i的每一个后继节点j: a.计算() f j。 b.如果j既不在OPEN表中,也不在CLOSED表中,则用估价函数f

把它添加入OPEN表。从j加一指向其父辈节点i的指针,以便一旦 找到目标节点时记住一个解答路径。 c.如果j已在OPEN表或CLOSED表上,则比较刚刚对j计算过的f 值和前面计算过的该节点在表中的f值。如果新的f值较小,则 I.以此新值取代旧值。 II.从j指向i,而不是指向它的父辈节点。 III.如果节点j在CLOSED表中,则把它移回OPEN表。 ⑦转向②,即GO TO ②。 (2).流程图描述: (3).程序源代码: #include #include

西电数据挖掘大作业k-means和k-medoids

题 目: 数据挖掘 学 院: 电子工程学院 专 业: 智能科学和技术 学生姓名: ** 学 号: 02115*** k -means 实验报告 一、 waveform 数据 1、 算法描述 1. 从数据集{X n }n?1N 中任意选取k 个赋给初始的聚类中心c 1, c 2, …,

c k; 2.对数据集中的每个样本点x i,计算其和各个聚类中心c j的欧氏 距离并获取其类别标号: label(i)=arg min ||x i?c j||2,i=1,…,N,j=1,…,k 3.按下式重新计算k个聚类中心; c j=∑x j s:label(s)=j j ,j=1,2,…k 重复步骤2和步骤3,直到达到最大迭代次数为止2、实验结果 二、图像处理 1、算法描述 同上; 2、实验结果

代码: k_means: %%%%%%%%%K_means%%%%%%%% %%%%%%%%%函数说明%%%%%%%% %输入: % sample——样本集; % k ——聚类数目; %输出: % y ——类标(从0开始) % cnew ——聚类中心 % n ——迭代次数 function [y cnew n]=k_means(sample,k) [N V]=size(sample); %N为样本的个数 K为样本的维数 y=zeros(N,1); %记录样本类标 dist=zeros(1,k); rand_num=randperm(N); cnew=(sample(rand_num(1,1:k),:));%随机初始化聚类中心cold=zeros(k,V); n=0;

人工智能大作业

第一章 1、3 什么就是人工智能?它的研究目标就是什么? 人工智能(Artificial Intelligence),英文缩写为AI。它就是研究、开发用于模拟、延伸与扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 研究目标:人工智能就是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理与专家系统等。 1、7 人工智能有哪几个主要学派?各自的特点就是什么? 主要学派:符号主义,联结主义与行为主义。 1.符号主义:认为人类智能的基本单元就是符号,认识过程就就是符号表示下的符号计算, 从而思维就就是符号计算; 2.联结主义:认为人类智能的基本单元就是神经元,认识过程就是由神经元构成的网络的信 息传递,这种传递就是并行分布进行的。 3.行为主义:认为,人工智能起源于控制论,提出智能取决于感知与行动,取决于对外界复 杂环境的适应,它不需要只就是,不需要表示,不需要推理。 1、8 人工智能有哪些主要研究与应用领域?其中有哪些就是新的研究热点? 1、研究领域:问题求解,逻辑推理与定理证明,自然语言理解,自动程序设计,专家系统,机器 学习,神经网络,机器人学,数据挖掘与知识发现,人工生命,系统与语言工具。 2、研究热点:专家系统,机器学习,神经网络,分布式人工智能与Agent,数据挖掘与知识发 现。 第二章 2、8 用谓词逻辑知识表示方法表示如下知识: (1)有人喜欢梅花,有人喜欢菊花,有人既喜欢梅花又喜欢菊花。 三步走:定义谓词,定义个体域,谓词表示 定义谓词 P(x):x就是人

西电《软件技术基础》上机大作业答案解析

说明 每个实验题目含有一个main函数和一些函数,与实验题目相关的基本运算的函数定义和main函数定义的代码在附录以及对应的文件夹中给出,供上机实验参考使用。对于每个题目,只需要根据题目要求设计算法,补充函数定义,然后对程序进行编译、调试。

实验一线性表 一、实验目的 1.熟悉线性表的顺序和链式存储结构 2.掌握线性表的基本运算 3.能够利用线性表的基本运算完成线性表应用的运算 二、实验内容 1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n , e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。(文件夹:顺序表逆置、单链表逆置) 2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。(文件夹:分解单链表) 实验二栈和队列 一、实验目的 1.熟悉栈和队列的顺序和链式存储结构 2.掌握栈和队列的基本运算 3.能够利用栈和队列的基本运算完成栈和队列应用的运算 二、实验内容 1.设单链表中存放有n个字符,试编写算法,判断该字符串是否有中心对称的关系,例如xyzzyx是中心对称的字符串。(提示:将单链表中的一半字符先依次进栈,然后依次出栈与单链表中的另一半字符进行比较。)(文件夹:判字符串中心对称) 2.假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen 分别指示循环队列中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。 提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。(文件夹:循环队列)实验三串 一、实验目的 1.熟悉串的顺序存储结构 2.掌握串的基本运算及应用 二、实验内容 1.串采用顺序存储结构,编写朴素模式匹配算法,查找在串中是否存在给定的子串。(文件夹:模式匹配) 2.若S是一个采用顺序结构存储的串,利用C的库函数strlen和strcpy(或strncpy)编写

数据结构大作业-纸牌游戏

数据结构课程设计大作业 题目纸牌游戏 专业计算机科学与技术 学生姓名 __________________ 学号 _____________________ 指导教师 __________________ 完成日期 __________________ 信息与工程学院

目录 一、实验内容概述(设计任务与技术要求) (1) 二、实验目的概述(总体设计方案) (1) 三、解题思路的描述(数据结构和算法的设计): (1) 四、源程序清单(源程序中应该附有必要的注释) (2) 五、程序调试及测试结果 (4) 六、结论 (4) 七、参考文献 (5)

【内容摘要】 编号为1~52的牌,正面向上,从第二张开始,以2为基数,是2的倍数的牌翻一次,直到最 后一张牌;然后,从第三张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从 第四张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;依次类推,知道所有以52 为基数的牌翻过一次。输出:这时正面向上的牌有哪些? 【关键字】 52张纸牌,倍数,基数,数组 【Abstract 】 Numbered 1 to 52 cards, face up, starting from the second to 2 as the base, is a multiple of 2 cards turning on ce, un til the last card; and the n, begi nning from the third to 3 as the base,is a multiple of 3 cards turning once, un til the last card; and the n start from the fourth to 4 as the base, is a multiple of 4 cards turning once, un til the last card; and so on, that was all of 52base of the card turned over on ce.Output: At this time what the cards face up? 【Key words 】 52 cards, multiple, base, array

西安电子科技大学人工智能试题

1.(该题目硕士统招生做)请用框架法和语义网络法表示下列事件。(10分) 2015年2月20日上午11点40分,广东省深圳市光明新区柳溪工业园附近发生山体滑坡,经初步核查,此次滑坡事故共造成22栋厂房被掩埋,涉及公司15家,截至目前已安全撤离900人,仍有22人失联。 答:框架表示法(5分):(给分要点:确定框架名和框架槽,根据报道给出的相关数据填充,主要内容正确即可给分,不必与参考答案完全一致) <山体滑坡> 时间:2015年2月20日上午11点40分 地点:广东省深圳市光明新区柳溪工业园附近 掩埋厂房:22栋 涉及公司数目:15家 安全撤离人数:900人 失联人数:22人 语义网络表示法(5分):(给分要点:确定语义网络的节点及其连接关系,根据报道内容进行填充,主要内容正确即可给分,不必与参考答案完全一致) 1. (该题目全日制专业学位硕士做)请用一种合适的知识表示方法来表示下面知识。(10分) How Old Are YOU是微软推出的一款测年龄应用,该应用架设在微软服务平台Azure上,该平台具有机器学习的开发接口,第三方开发者可以利用相关的接口和技术,分析人脸照片。

(给分要点:采用合适的知识表示方法,正确即可给分,不必与参考答案完全一致) 答: 类属(继承):<应用程序> 用途:测年龄 开发者:微软 服务平台: 开发接口:机器学习 用途:分析人脸照片 2.(该题目硕士统招生做)请用归结反演的方法求解下述问题。(15分) 已知:张和李是同班同学,如果x和y是同班同学,则x的教室也是y的教室,现在张在302教室上课。 问:现在李在哪个教室上课? 解:第一步:定义谓词;(谓词不一定与参考答案完全相同,只要正确表示即可给分)(3分)C(x, y) x和y是同班同学; At(x, u) x在u教室上课。 第二步:根据定义的谓词写出上述知识的谓词表示,并化成子句集;(6分) 把已知前提用谓词公式表示如下: C(zhang, li) (?x) (?y) (?u) (C(x, y)∧At(x, u)→At(y,u)) At(zhang, 302) 把目标的谓词公式表示如下: (?v)At(li, v) 把上述公式化为子句集: (1) C(zhang, li) (2) ﹁C(x, y)∨﹁At(x, u)∨At(y, u) (3) At(zhang, 302) 把目标的否定化成子句式: (4) ﹁At(li,v) ∨Answer(v) 第三步:使用归结原理对子句集进行归结;(6分)(注意:具体的归结顺序不一定和参考答案完全一致,只要归结过程正确,最后得到的答案正确即可给分)

SQL数据库期末大作业

学校:北京联合大学 系别:信息管理系 姓名:孙超 学号:2013110444006 《餐饮业信息管理系统的开发》 1、本项目的需求分析 随着今年来中国餐饮行业的日益火爆,在强烈的行业竞争中,一个高效的餐饮信息管理系统的应用,无疑是至关重要的。高效,便捷的管理系统,不仅仅极大的方便了食客的就餐,同时对于餐饮公司的各项信息管理有着很大的帮助,同时,我们的餐饮信息管理系统还能帮助餐厅降低错误率,扩大营业范围,增加知名度等。 为了使得系统在操作的过程中,更加便捷,具有针对性,本次系统设计主要分为:员工登陆操作信息系统,以及店主操作管理信息系统。不同的设计从而达到不同的功能,实现信息的有效传达与管理。 第一:在员工使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.查询菜单 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 第二:管理员使用本餐饮信息管理系统应可以实现以下功能: 1.添加修改查询客户会员信息(修改客户信息需客户确认) 2.添加修改查询菜单信息,最好能看到菜品图片 3.添加查询预定信息,为老顾客打折 4.客户可以在自己的会员账户里充值 5.顾客可以用现金买单也可以从会员账户里扣取 6.设定具体的打折方法 7.添加职员信息,权限也可以定为管理员。 8.可以查询使用者的现金收款金额。 二、餐饮业管理数据库管理系统的E-R模型(概念结构设计) 1.用户(员工)的信息:

编号、密码、类型、姓名、电话、收款金额 2.客户信息: 用户编号、客户编号、姓名、电话、密码、开卡时间、卡内余额 3.食谱: 类型、名称、价格、配料、照片 4.预定: 用户编号、日期、预定时间、客户姓名、类型、预定食谱、桌号5桌台管理: 桌号、使用情况、 6.点餐管理: 用户编号、类型、菜品、数量、价格、照片 7.盈利管理: 日期、日支出金额、店内收入、外卖收入、盈利额度 各对象之间的联系图: 用户E-R图 主要存储一些用户信息,如用户的账号、密码和类型地点等等,主要用于用户登录,添加客户和添加预定时会使用到用户信息。

西电数据结构大作业

题目:数据结构上机报告学院:电子工程学院 专业:信息对抗技术 学生姓名:甘佳霖 学号:14020310092

西安电子科技大学 数据结构课程实验报告实验名称线性表 电子工程学院 1402031 班Array姓名甘佳霖学号 14020310092 同作者 实验日期 2017 年 3 月 18 日

实验一线性表 一、实验目的 1.熟悉线性表的顺序和链式存储结构 2.掌握线性表的基本运算 3.能够利用线性表的基本运算完成线性表应用的运算 二、实验要求 1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n, e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。 2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。 三、设计思路 1.顺序表做逆置操作时将对应的首尾元素位置交换,单链表的指针end指向链表的末尾,指针start指向链表头结点,指针s用来找到指向end节点的节点,将指向链表末尾和头结点的存储内容交换,然后头结点指针指向下一节点,s指针从start节点开始遍历寻找指向end 指针的节点,并将end指针赋值为s指针,就完成了单链表的逆置,可以看出单链表和顺序表都可以完成线性表的逆置。 2.分解单链表的实现思路是首先新建3个循环链表,然后顺序遍历单链表,ASCII码判断链表中的元素属于哪一类元素,然后将这个元素添加到对应的循环链表中,从而实现分解单链表的功能。 四、运行结果 1.单链表逆置:

西电电院人工智能课程大作业

西电人工智能大作业

八数码难题 一.实验目的 八数码难题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。例如: (a) 初始状态 (b) 目标状态 图1 八数码问题示意图 请任选一种盲目搜索算法(深度优先搜索或宽度优先搜索)或任选一种启发式搜索方法(A 算法或 A* 算法)编程求解八数码问题(初始状态任选),并对实验结果进行分析,得出合理的结论。 本实验选择宽度优先搜索:选择一个起点,以接近起始点的程度依次扩展节点,逐层搜索,再对下一层节点搜索之前,必先搜索完本层节点。 二.实验设备及软件环境 Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI 等编程语言。 三.实验方法 算法描述: (1)将起始点放到OPEN表; (2)若OPEN空,无解,失败;否则继续; (3)把第一个点从OPEN移出,放到CLOSE表; (4)拓展节点,若无后继结点,转(2); (5)把n的所有后继结点放到OPEN末端,提供从后继结点回到n的指针; (6)若n任意后继结点是目标节点,成功,输出;否则转(2)。

流程图:

代码: #include #include typedef struct Node { int num[9]; //棋盘状态 int deepth; //派生的深度 g(n) int diffnum; //不在位的数目 h(n) int value; //耗散值 f(n)=g(n)+h(n) struct Node * pre; struct Node * next; struct Node * parent; }numNode; /* ---------- end of struct numNode ---------- */ int origin[9]; //棋盘初始状态 int target[9]; //棋盘目标状态 int numNode_num,total_step; numNode *open,*close; //Open表和Close表 numNode *create_numNode() { return (numNode *)malloc(sizeof(numNode)); } numNode *open_getfirst(numNode *head); //返回第一项,并从Open表中删除

数据结构大作业题目

《数据结构大作业》要求 一、作业目的 1、掌握用数据结构的知识进行Java或者C程序设计。 2、应用所学的数据结构完成一个具有一定实际意义的应用程序的设计、编码、调试,锻炼 实践动手能力,提高编程水平。 二、作业内容 1、图书管理系统 问题描述:实现图书管理系统,主要为图书管理员和借阅者提供管理和查询服务。 基本功能要求: 程序必须采用链表数据结构实现。 图书信息至少包括以下信息:书名,ISBN、作者、出版社、出版时间,入库时间,库存量(图书馆购买此书的数目),借阅数(被借阅的本数)。 图书管理员身份可以完成以下操作: (1)录入:增加一本图书信息; (2)删除:删除某一本图书的信息; (3)修改:修改某一本图书的信息; (4)查询:根据书名或图书ISBN等查询图书信息(可选择:简单条件查询,组合 条件查询等)。 (5)排序:根据书名或入库时间等信息进行排序,尽可能提高查找和维护性能; (6)借书:借出一本书,该书的借阅量增加一本。 (7)还书:还回一本书,该书的借阅量减少一本。 (8)统计:统计所有的借出的图书数目,即:所有图书借阅量之和。 (9)输出:输出所有图书的所有信息,要求格式清晰,方便查看。 扩展功能要求: (1)导出:把用户信息导出到文件中保存; (2)实现图形用户界面与用户进行交互。 2、学生管理系统 必须完成学籍登记表中的下面功能。 登记表中包括:学号、姓名、班级(如:13级软件1班)、性别、手机号码、选修课程等信息。 程序必须采用链表数据结构实现; (1)插入:将某学生的基本信息插入到登记表中; (2)删除:将满足条件的基本信息删除; (3)修改:对基本信息的数据项进行修改;

人工智能大作业翻译

Adaptive Evolutionary Artificial Neural Networks for Pattern Classification 自适应进化人工神经网络模式分类 Abstract—This paper presents a new evolutionary approach called the hybrid evolutionary artificial neural network (HEANN) for simultaneously evolving an artificial neural networks (ANNs) topology and weights. Evolutionary algorithms (EAs) with strong global search capabilities are likely to provide the most promising region. However, they are less efficient in fine-tuning the search space locally. HEANN emphasizes the balancing of the global search and local search for the evolutionary process by adapting the mutation probability and the step size of the weight perturbation. This is distinguishable from most previous studies that incorporate EA to search for network topology and gradient learning for weight updating. Four benchmark functions were used to test the evolutionary framework of HEANN. In addition, HEANN was tested on seven classification benchmark problems from the UCI machine learning repository. Experimental results show the superior performance of HEANN in fine-tuning the network complexity within a small number of generations while preserving the generalization capability compared with other algorithms. 摘要——这片文章提出了一种新的进化方法称为混合进化人工神经网络(HEANN),同时提出进化人工神经网络(ANNs)拓扑结构和权重。进化算法(EAs)具有较强的全局搜索能力且很可能指向最有前途的领域。然而,在搜索空间局部微调时,他们效率较低。HEANN强调全局搜索的平衡和局部搜索的进化过程,通过调整变异概率和步长扰动的权值。这是区别于大多数以前的研究,那些研究整合EA来搜索网络拓扑和梯度学习来进行权值更新。四个基准函数被用来测试的HEANN进化框架。此外,HEANN测试了七个分类基准问题的UCI机器学习库。实验结果表明在少数几代算法中,HEANN在微调网络复杂性的性能是优越的。同时,他还保留了相对于其他算法的泛化性能。 I. INTRODUCTION Artificial neural networks (ANNs) have emerged as a powerful tool for pattern classification [1], [2]. The optimization of ANN topology and connection weights training are often treated separately. Such a divide-and-conquer approach gives rise to an imprecise evaluation of the selected topology of ANNs. In fact, these two tasks are interdependent and should be addressed simultaneously to achieve optimum results. 人工神经网络(ANNs)已经成为一种强大的工具被用于模式分类[1],[2]。ANN 拓扑优化和连接权重训练经常被单独处理。这样一个分治算法产生一个不精确的评价选择的神经网络拓扑结构。事实上,这两个任务都是相互依存的且应当同时解决以达到最佳结果。

西电排队论大作业完整版

西电排队论大作业 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

西安电子科技大学 (2016年度) 随机过程与排队论 班级: XXXXXXX 姓名: XXX XXX 学号: XXXXXXXXXX XXXXXXXXXXX 一步转移概率矩阵收敛快慢的影响因素 作者姓名:XXX XXX 指导老师姓名:XXX (西安电子科技大学计算机学院,陕西西安) 摘要:根据课程教材《排队现象的建模、解析与模拟【西安电子科技大学出版 社曾勇版】》,第[马尔可夫过程]中,马尔可夫过程链n时刻的k步转移概率结 果,当k=1时,得到一步转移概率。进而得到一步转移概率矩阵P(1)。为研究 此一步转移概率矩阵(下称一步矩阵)的收敛特性以及影响其收敛快慢的因素,使 用MATLAB实验工具进行仿真,先从特殊矩阵开始做起,发现规律,然后向普通矩 阵进行拓展猜想,并根据算术理论分析进行论证,最终得出一步矩阵收敛快慢的影 响因素。 关键词:一步转移概率矩阵 MATLAB 仿真猜想 一、问题概述 我们讨论时一步矩阵的特性应从以下两方面来分析: (1)矩阵P(n)在满足什么条件时具有收敛特性; 对于矩阵P(n),当P(n)=P(n+1)时,我们说此矩阵 具有收敛特性,简称矩阵 P(n)收敛。 (2)若一个一步矩阵具有收敛特性,那么其收敛速度与什么有关

首先,我们需要明确什么是一步矩阵收敛: 对于一般的一步矩阵P 、矩阵An+1、矩阵An,若有: An+1=AnP=An 那么称该一步转移矩阵可收敛。 二、仿真实验 1、仿真环境 本次采用的是MATLAB仿真实验软件进行仿真实验 2、结果与分析 【1】、特殊矩阵:单位矩阵与类单位矩阵 从图(1)和图(2)可以看出,单位矩阵不具有收敛特性,类单位矩阵并非单位矩阵但是经过n次后也变为单位矩阵,所以此矩阵也不具有收敛特性。此类矩阵也易证明其不具有收敛性。 图(1)单位矩阵图(2):类单位 矩阵 【2】、一般单位矩阵 图(3):一般一步矩阵Ⅰ 图(4):一般一步矩阵 从图(3)和()可以看出他们分别在18次和4次后收敛到一个稳定的值 3、根据实验的猜想 根据在单位矩阵和一般单位矩阵和一般一步矩阵中得到的结果,可以对得出如下结论:类单位矩阵、单位矩阵是不具有收敛性的,而一般的一步矩阵是有收敛性的,而且收敛速率有快有慢。 对于上面结论中的状况,我们首先观察如上四个矩阵,不难发现,在矩阵收敛的最终结果矩阵中,其每行和均为1,而且每列上的值均为相同值。最终概率分布结果也是矩阵收敛后的一行。 所以根据上述的结果及分析做出如下猜想: 每一列比较均匀的矩阵收敛速度较快;与类单位矩阵类似的矩阵收敛速度较慢。 在极限情况下,有如下情况:

数据结构大作业(试题题目)

浙江大学城市学院实验报告 课程名称数据结构基础 实验项目名称实验九栈的应用 学生姓名丁汀专业班级信管1006 学号31001444 实验成绩指导老师(签名)日期 一.实验目的和要求 1、学会通过对问题的分析,设计一种合理的数据结构,并进行定义及操作的实现。 2、掌握利用栈各种操作来进行具体的实际应用。 3、加强综合程序的分析、设计能力。 二.实验内容 1、共享栈的设置,问题描述如下: 在一个数组空间stack[MaxSize]中可以同时存放两个顺序栈,栈底分别处在数组的两端,当第1个栈的栈顶指针top1等于-1时则栈1为空,当第2个栈的栈顶指针top2等于MaxSize时则栈2为空。两个栈均向中间增长,当有元素向栈1进栈时,使top1增1得到新的栈顶位置,当有元素向栈2进栈时,使top2减1得到新的栈顶位置。当top1==top2-1或top1+1==top2时,存储空间用完,无法再向任一栈做进栈操作,此时可考虑给出错误信息并停止运行。 要求: ⑴给出共享栈的顺序存储类型定义。 ⑵给出共享栈的抽象数据类型定义。 ⑶建立头文件test9_stack.h,包含共享栈的基本操作实现函数;建立主程序文件test9.cpp,在主函数中对共享栈的各个操作进行测试。 2、利用上述共享栈,实现火车车厢的调度模拟 设火车车厢分为三类:硬座、硬卧、软卧,分别用A、B、C表示。下图描述车厢调度的示意图,图中右端为排列无序的车厢,左端为调度后的车厢排列,使得所有软卧车厢在最前面、所有硬卧车厢在中间、所有硬座车厢在最后。 编程模拟上述车厢调度过程。 提示:两个辅助铁轨相当于两个栈,右端车厢进入用相应字符串给出,如“BBACBCAABBCAA”,左端车厢的用新生成的字符串给出。在test9_stack.h 给出模拟函数,并在主函数中进行调用测试。

人工智能大作业

人工智能基础 大作业 —---八数码难题 学院:数学与计算机科学学院 班级:计科14—1 姓名:王佳乐 学号:12 2016、12、20 一、实验名称 八数码难题得启发式搜索 二、实验目得 八数码问题:在3×3得方格棋盘上,摆放着1到8这八个数码,有1个方格就是空得,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移与空格下移这四个操作使得棋盘从初始状态到目标状态. 要求:1、熟悉人工智能系统中得问题求解过程; 2、熟悉状态空间得启发式搜索算法得应用; 3、熟悉对八数码问题得建模、求解及编程语言得应用。 三、实验设备及软件环境 1.实验编程工具:VC++ 6、0 2.实验环境:Windows7 64位 四、实验方法:启发式搜索 1、算法描述 1.将S放入open表,计算估价函数f(s)

2.判断open表就是否为空,若为空则搜索失败,否则,将open表中得第 一个元素加入close表并对其进行扩展(每次扩展后加入open表中 得元素按照代价得大小从小到大排序,找到代价最小得节点进行扩展) 注:代价得计算公式f(n)=d(n)+w(n)、其中f(n)为总代价,d(n)为节点得度,w(n)用来计算节点中错放棋子得个数. 判断i就是否为目标节点,就是则成功,否则拓展i,计算后续节点f(j),利用f(j)对open表重新排序 2、算法流程图: 3、程序源代码: #include<stdio、h> # include<string、h> # include # include〈stdlib、h> typedef struct node{ ?int i,cost,degree,exp,father; ?int a[3][3]; ?struct node *bef,*late;

云南大学数据库期末大作业:数据库设计

云南大学软件学院实验报告 课程:数据库原理与实用技术实验学期:任课教师: 专业:学号:姓名:成绩: 期末大作业:Electronic Ventor 数据库设计 一、实验目的 (1)掌握数据库设计的基本方法 (2)掌握各种数据库对象的设计方法 (3)熟练掌握DBA必须具备的技能 二、实验内容 1、根据项目的应用和项目的需求说明文档,进行详细的需求分析,给出需求分析的结果。 (1)客户可以在网站上注册,注册的客户要提供客户的姓名、电话、地址,以方便售后和联系,姓名即作为用户名,和密码一起用于注册和登录,客户编号可唯一识别用户,卡号可网上支付。其中地址、电话以方便联系和寄货; (2)网站管理员可以登记各种商品,供客户查询,订购。登记商品时要提供商品的名称、价格,商店中现有商品量,商品编号可唯一识别商品; (3)类别表示商品所属类别,类别编号可唯一识别类别,其中包含了,商品类别名称和制造厂商,可以对商品进行分类售卖; (4)客户可以在网上下订单,也可以到实体店购物,其在订单上所选择的支付方式不同(信用卡、借记卡、现金,现金代表实体店购物),网站管理员可以查看订单,并及时将订单的处理情况更新(比如货物已寄出的信息,订单状态:0:未处理,1:已处理,2:已发货);订单编号可唯一识别订单,订单中包含订单产生时间,订单状态,支付方式和支付总额; (5)实体商店有自己的店名,卖多种商品,每个商店都有固定的地址,顾客可以到店中买商品,(注:在实体店中购买商品的顾客一律将顾客名默认为佚名),当商店中的库存量小于10时会有提醒到仓库中拿货; (6)配送单中包含查询号可唯一识别配送单,配送人,联系方式; (7)仓库中仓库编号可唯一识别仓库,其中每个仓库都有区号,代表其地址。 (8)各实体间关系 1)一个客户可以购买多种商品,一种商品可以被多个客户购买; 2)一个商品属于且仅属于一种类别,一种类别的商品可以包含多个商品或没有; 3)一种商品放在多个商店中销售,一个商店至少销售一种或销售多种商品; 4)一个订单对应一个客户,一个客户对应多个订单; 5)一个订单对应至少有一件商品或多件,一个商品对应多个订单; 6)一个订单可以有一个商品配送单 7)一个仓库可以存放多种商品,一种商品可以存放在一个仓库;

2016年下半学期西电嵌入式系统设计大作业解析

嵌入式系统设计大作业 授课老师:孙江敏 学院:计算机学院 学生姓名: 学号: 日期:2016年6月12日

嵌入式系统设计大作业 1、判断题 ( ×)1.嵌入式系统调试通常可以分为硬件级调试和在线仿真器调试。 ( √)2.在ARM处理器中,快速中断(FIQ)的优先级高于外部中断(IRQ)。( ×)3.ROM能够永久或半永久地保存数据,ROM内的数据永远不会丢失。( √)4.内建测试系统(BIST)是SoC片上系统的重要结构之一,JTAG测试接口是IC 芯片测试方法的标准。 ( ×)5.VHDL的基本单元描述不包括库。 ( ×)6.嵌入式ARM架构的嵌入式处理器同时支持大端、小端(Big/Little-Endian)数据类型。 ( ×)7.嵌入式操作系统通常采用整体式内核或层次式内核的结构。 ( ×)8.ARM7TDMI中的T代表增强型乘法器。 ( ×)9.看门狗(Watch Dog)实际是一个简单的定时器,在固定时间内若正常清零,则自动复位处理器。 ( √)10.ARM-CPU由多家不同制造商生产,芯片外部提供的总线是不一致的。( √)11.Linux 内核稳定、功能强大并且可以裁减,因为非常适合嵌入式应用。( √)12.Linux 内核的中断服务程序运行于与所有进程都无关的中断上下文中。( √)13.Linux遵循POSIX标准,意味着绝大多数UNIX应用程序不需要任何改动就可以在Linux系统上编译且运行。 ( ×)14.Linux内核支持可以裁减的功能,因此它属于微内核架构。 ( √)15.Linux在fork()时采用了写时拷贝(简称COW)技术,允许父进程和子进程同时共享相同的物理页面。 ( √)16.任何一个Linux应用程序都需要调用exit()函数。 ( √)17.当前的Linux调度算法非常高效,但是查找当前最高优先级的可运行程序时,开销会随着可运行程序的多少而变化。 ( √)18.Linux的系统调用是作为C库的一部分提供的。 ( ×)19.为了对硬件做出迅速的响应并完成对时间严格的操作,中断处理下半部必须在关中断状态下执行。 ( ×)20.Linux的内存管理采用了分页的机制,因此即使是内核本身也全部是分页的。 ( ×)21.嵌入式系统由上到下主要分为3个层次:应用软件层,系统软件层,硬件层。 ( ×)22.嵌入式系统的软硬件是独立设计的。 ( √)23.嵌入式系统设计需要建立交叉开发环境。 ( √)24.通用系统程序开发不需要建立和使用交叉编译环境。 ( √)25.对于C++代码,gcc命令只能编译其源文件,而不能自动和C++程序使用的库链接。 ( √)26.嵌入式系统可以没有操作系统。

西安电子科技大学人工智能复习课习题

1.请选用框架法和语义网络法表示下述报道的沙尘暴灾害事件。 (虚拟新华社3月16日电)昨日,沙尘暴袭击韩国汉城,气场与高速公路被迫关闭,造成的损失不详。此次沙尘暴起因中韩专家认为是由于中国内蒙古地区过分垦牧破坏植被所致。 (提示:分析概况用下划线标出的要点,经过概念化形成槽或节点) 2. 请用归结反演的方法求解下述问题。 已知:(1)John 是贼。 (2)Paul 喜欢酒(wine )。 (3)Paul 也喜欢奶酪(cheese )。 (4)如果Paul 喜欢某物,那么John 也喜欢某物。 (5)如果某人是贼,而且他喜欢某物,那么他就会偷窃该物。 请回答下面的问题:John 会偷窃什么? 3. MYCIN 是一个用于细菌感染性疾病诊断的专家系统,它的不确定性推理模型中采用可信度作为不确定性量度。请简述什么是不确定性推理及不确定性推理几个关键问题,并按照MYCIN 系统的推理方法计算结论B1和B2的可信度。 已知初始证据A1,A2,A3的可信度值均为1,推理规则如下: R1: IF A1 THEN B1 (0.8) R2: IF A2 THEN B1 (0.5) R3: IF A3∧B1 THEN B2 (0.8) 求CF(B1)和CF(B2)的值。 ()()()(),()0,()0121212 ()()()()(),()0,()012121212 ()()12,()()0121min{|()|,|()|}12CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H CF H ????????????????? +-?≥≥=++?<<+?<- 4.设A 、B 分别是论域U 、V 上的模糊集, U=V={1,2,3,4,5}, A=1/1+ 0.5/2, B=0.4/3+0.6/4+1/5 并设模糊知识及模糊证据分别为: IF x is A THEN y is B x is A ’ 其中,A ’的模糊集为:A ’=1/1+ 0.4/2+ 0.2/3 假设A 和A ’可以匹配,请利用模糊推理的方法求出该模糊知识和模糊证据能得出什么样的模糊结论。

人工智能大作业

第一章 1.3 什么是人工智能?它的研究目标是什么? 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 研究目标:人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 1.7 人工智能有哪几个主要学派?各自的特点是什么? 主要学派:符号主义,联结主义和行为主义。 1.符号主义:认为人类智能的基本单元是符号,认识过程就是符号表示下的符号计算,从 而思维就是符号计算; 2.联结主义:认为人类智能的基本单元是神经元,认识过程是由神经元构成的网络的信息 传递,这种传递是并行分布进行的。 3.行为主义:认为,人工智能起源于控制论,提出智能取决于感知和行动,取决于对外界 复杂环境的适应,它不需要只是,不需要表示,不需要推理。 1.8 人工智能有哪些主要研究和应用领域?其中有哪些是新的研究热点? 1.研究领域:问题求解,逻辑推理与定理证明,自然语言理解,自动程序设计,专家系 统,机器学习,神经网络,机器人学,数据挖掘与知识发现,人工生命,系统与语言工具。 2.研究热点:专家系统,机器学习,神经网络,分布式人工智能与Agent,数据挖掘与 知识发现。 第二章 2.8 用谓词逻辑知识表示方法表示如下知识: (1)有人喜欢梅花,有人喜欢菊花,有人既喜欢梅花又喜欢菊花。 三步走:定义谓词,定义个体域,谓词表示 定义谓词 P(x):x是人 L(x,y):x喜欢y y的个体域:{梅花,菊花}。 将知识用谓词表示为: (?x)(P(x)→L(x, 梅花)∨L(x, 菊花)∨L(x, 梅花)∧L(x, 菊花)) (2) 不是每个计算机系的学生都喜欢在计算机上编程序。 定义谓词 S(x):x是计算机系学生

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