人工智能技术基础实验报告PROLOG语言编程练习
- 格式:doc
- 大小:1.74 MB
- 文档页数:12
实验1: Prolog语言程序设计人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。
能够用它来编写求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。
Prolog是当代最有影响的人工智能语言之一,由于该语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,已经成为人工智能应用领域的强有力的开发语言。
尽管Prolog语言有许多版本,但它们的核心部分都是一样的。
Prolog的基本语句仅有三种,即事实、规则和目标三种类型的语句,且都用谓词表示,因而程序逻辑性强,方法简捷,清晰易懂。
另一方面,Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。
一、实验目的1、加深学生对逻辑程序运行机理的理解。
2、掌握Prolog语言的特点、熟悉其编程环境。
3、为今后人工智能程序设计做好准备。
二、实验内容1、编写一个描述亲属关系的Prolog程序,然后再给予出一些事实数据,建立一个小型演绎数据库。
提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。
2、编写一个路径查询程序,使其能输出图中所有路径。
提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。
e3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。
为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。
(a)用Prolog规则表述这个雇主的选择准则。
(b)用Prolog事实描述下列申请者的情况:史密斯住在剑桥,会开车但不会打字。
布朗住在伦敦,会开车也会打字。
简住在格拉斯哥,不会开车但会打字。
埃文斯住在伦敦,会开车也会打字。
格林住在卢顿,会开车也会打字。
(c)要求Prolog提供一个候选人名单。
人工智能实验报告内容人工智能实验报告内容人工智能(Artificial Intelligence, AI)作为一种重要的技术,正在逐渐影响到我们的日常生活和工作。
本次实验旨在学习和探索人工智能的基本技术,并通过实践加深对其原理和应用的理解。
首先,本次实验分为两个部分:人工智能基础技术的学习和人工智能应用的实践。
在人工智能基础技术学习的部分,我们研究了人工智能的核心技术包括机器学习、神经网络、深度学习等。
我们首先学习了机器学习的基本概念和算法,包括监督学习、无监督学习和强化学习等。
我们使用Python编程语言,利用机器学习库进行了实践,例如使用Scikit-learn库实现了线性回归和K-means 聚类算法。
其次,我们学习了神经网络的基本原理和算法,在激活函数、损失函数、优化算法等方面进行了深入研究。
我们利用TensorFlow库搭建了神经网络模型,并使用MNIST数据集进行了手写数字识别的实验。
通过不断调整网络结构和参数,我们逐渐提高了模型的准确率。
最后,我们学习了深度学习的原理和常用的深度学习模型,包括卷积神经网络(Convolutional Neural Network, CNN)、循环神经网络(Recurrent Neural Network, RNN)等。
我们使用Keras库搭建了CNN模型,并使用CIFAR-10数据集进行了图像分类实验。
通过优化网络结构和参数,我们的模型在测试集上取得了较高的准确率。
在人工智能应用的实践部分,我们选择了自然语言处理(Natural Language Processing, NLP)为主题,具体研究了文本分类和情感分析两个任务。
我们使用了Python编程语言和NLTK(Natural Language Toolkit)库进行了实践。
首先,我们使用朴素贝叶斯算法实现了文本分类的任务,通过比较不同的特征提取方法,我们找到了最适合该任务的特征提取方法。
其次,我们使用情感词典和机器学习算法实现了情感分析的任务,通过对情感分析模型进行评估和调优,我们提高了模型的准确率和鲁棒性。
P Lc实训报告时间过得真快,转眼就到了我们实习的时间,这次实习使我对 pc程序有了更深刻的认识,为以后的工作打下坚实的基础。
虽然这是我大学生涯中第一次正式接手一项系统的编程工作,但对自己能够独立完成这样一个程序还是有相当大的信心了。
在做完开发任务后我就开始投入到实际操作当中了,这次实习我主要是通过观察代码来学习 pc编程与程序设计之间的关系及流程与技巧。
首先,我们先来看一下编程语言:pc语言是一种非常高级的软件开发语言,它以使用 C#作为基本语言,并采用 Java作为主要编程工具和实现手段为特征。
主要用于设计程序框架和接口。
在完成一个项目时必须首先编写程序和开发相应的功能应用场景,然后根据该应用场景编写相应的代码、实现相应功能。
在实际项目中,针对不同应用场景、不同用户需要而设计开发一些功能强但是使用复杂度较高的程序都可以通过应用程序模块实现相关自动化功能。
所以我们主要以 Pc环境开发为例来介绍 pc语言。
一、 pc环境开发步骤a.首先从硬件环境开始,运行 pc环境运行测试环境中的所有程序。
b.用 pc的图形界面来展示整个 pc环境,并对其进行配置。
c.开始将 Pcserver文件插入到 pc应用程序模块,创建pcserver的配置文件(图1)为环境配置,用 pc界面来显示环境的所有功能,并在环境创建好后对环境进行配置。
d.当应用程序配置完毕后,返回 pcserver文件中对环境进行配置并显示其主要功能及效果,这时再进行修改。
e.根据实际应用场景对实现结果进行调试(图2)。
f.最终结果并返回 pcserver文件完成环境应用程序的开发与调试工作(图3)。
f.最后对这个环境进行维护,实现环境相关功能和效果。
f.最后将该环境发布到 pc工具中去。
整个过程其实就是一个页面构建的一次循环,而开发完这个页面之后再利用 java构建出一个完整的 pc文件就完成了完整的开发过程,而最终呈现给大家的就是我们理想中呈现在眼前一款软件程序产品罢了。
《人工智能》实验报告
一、实验目的
本实验旨在通过实际操作,加深对人工智能的理解,探索人工智能在不同领域的应用。
二、实验过程
1. 准备数据集:选取一个合适的数据集作为实验对象,确保数据质量和多样性。
2. 数据预处理:对选取的数据进行清洗、去噪和标准化等预处理操作。
3. 选择模型:根据实验要求,选择适合的人工智能模型,如神经网络、决策树等。
5. 模型评估:使用测试数据评估模型的性能指标,如准确率、召回率等。
6. 结果分析:对模型的性能进行分析和解释,提出改进意见。
三、实验结果
根据实验所选取的数据集和模型,得到了以下实验结果:
- 在测试数据集上,模型的准确率达到了 Y%。
- 模型的召回率为 Z%。
四、实验总结
通过本次实验,我更深入地了解了人工智能的工作原理和应用
方法,掌握了数据预处理、模型训练和评估的基本流程。
同时,也
发现了一些可以改进的地方,如增加数据集规模、尝试其他模型等。
这些经验对于今后的研究和实践具有重要意义。
五、参考文献
[1] 参考文献1
[2] 参考文献2
...。
武 夷 学 院实验报告数学与计算机系PROLOG编程练习一、目的要求进入实验机房,加深学生理解-逻辑程序运行的机理,如简单逻辑与、或、非的运算等;使学生掌握PROLOG语言(也可用数据库、C或C++语言中逻辑类指令来实现的语言)的特点、熟悉其编程环境,同时为后面人工智能程序设计做好准备。
二、实验内容在Turbo PROLOG 或 Visual Prolog 集成环境下调试运行简单的PROLOG程序,如描述亲属关系的PROLOG程序,或其它语言小型演绎数据库程序,等等。
具体要求:1.程序自选,但必须是描述某逻辑关系的小程序(也可用数据库指令或C或C++语言实现)。
2.跟综程序运行过程,理解逻辑程序特点(特别是逻辑值状态等)。
3.对原程序可做适当修改,以方便熟悉程序的编辑、编译和调试等过程。
4.示例程序(逻辑电路模拟程序),详见教材P295-296。
⑴逻辑“与”运算⑵逻辑“或”运算⑶逻辑“非”运算三、实验环境Windows 7 , dev c++四、实验步骤1.概述逻辑程序运行的机理答:逻辑程序设计将逻辑直接作为程序设计语言并将计算作为受控推理的一种程序设计技术。
这种将逻辑与控制分开的方法具有下列的优点:①可以在控制部分设计之前不断改进逻辑程序。
②可以改进控制部分而无需变动逻辑程序本身。
③可以从程序说明中生成逻辑程序,加以验证和变换,而无需考虑其控制部分。
④只需在逻辑程序中规定目标和实现这些目标的现有条件,也就是只需告诉系统做什么(What to do),至于如何执行也就是说怎样做(How to do),则由系统的控制部分,即解释程序处理解决。
2.写出逻辑程序语言特点及其编程环境(结合你所选择语言系统硬软件情况)# include <stdlib.h>IntMain(){Int a,b,c;c = a || b; /* 或,与,非*/c = a && b;c = !a;c = !b;}五、实验心得体会通过本次实验,我懂得了什么是逻辑编程语言,懂得了基本的逻辑关系,与逻辑的实现。
人工智能技术基础实验报告姓名:学号:班级:指导教师:完成时间:实验一 PROLOG语言编程练习1目的与要求实验目的:加强学生对逻辑程序运行机能的理解,使学生掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。
实验要求:(1)程序自选,但必须是描述某种逻辑关系的小程序。
(2)跟踪程序的运行过程,理解逻辑程序的特点。
(3)对原程序可作适当修改,以便熟悉程序的编辑、编译和调试过程。
2实验环境Turbo PROLOG3实验内容在Turbo PROLOG或Visual Prolog集成环境下调试运行简单的PROLOG程序,如描述亲属关系的PROLOG程序或其他小型演绎数据库程序等。
4实验题目与结果(1)源程序:domainsd=integerpredicatesnot_(D,D)and_(D,D,D)or_(D,D,D)xor(D,D,D)clausesnot_(1,0).not_(0,1).and_(0,0,0).and_(0,1,0).and_(1,0,0).and_(1,1,1).or_(0,0,0).or_(0,1,1).or_(1,0,1).or_(1,1,1).xor(Input1,Input2,Output):-not_(Input1,N1),/*(1,0)*/not_(Input2,N2),/*(0,1)*/and_(Input1,N2,N3),and_(Input2,N1,N4),or_(N3,N4,Output).实验结果:(2)源程序:predicatesstudent(integer,string,real)gradegoalgrade.clausesstudent(1,"zhang",90.2).student(2,"li",95.5).student(3,"wang",96.4).grade:-write("Please input name:"),readln(Name), student(_,Name,Score),nl,write(Name,"grade is",Score).grade:-write("Sorry,the student cannot find!"). 实验结果:(3)源程序:domainsn,f=integerpredicatesfactorial(n,f)goalreadint(I),factorial(I,F),write(I,"!=",F).clausesfactorial(1,1).factorial(N,Res):-N>0,N1=N-1,factorial(N1,FacN1),Res=N*FacN1.实验结果:(4)源程序:domainss=symbolpredicatesp(s) p1(s) p2(s) p3(s) p4(s) p5(s,s) p11(s) p12(s) p31(s) goalp(X),write("the x is ",X).clausesp(a1):-p1(b),p2(c).p(a2):-p1(b),p3(d),p4(e).p(a3):-p1(b),p5(f,g).p1(b):-p11(b1),p12(b2).p3(d):-p31(d1).p2(c1).p4(e1).p5(f,g).p11(b1).p12(b2).p31(d11).实验结果:(5)源程序:domainsname=symbolage =integerpredicatesplayer(name,age)match(name,name)clausesplayer(peter,9).player(paul,10).player(chris,9).player(susan,9).match(X,Y):- player(X,9), player(Y,9), X<>Y.match(X,Y):- !, player(X,9), player(Y,9), X<>Y.match(X,Y):- player(X,9), !, player(Y,9), X<>Y.match(X,Y):- player(X,9), player(Y,9), !, X<>Y. match(X,Y):- player(X,9), player(Y,9), X<>Y, ! .实验结果:5问题及解决:第一个程序中,简单定义了与、或、非、异或,之后验证异或结果是否正确,输入数据即可,但是注意电脑是二进制,只能输入1,0。
数学与软件科学学院实验报告学期:___至___ 第 __ 学期年月日课程名称:___人工智能 ___ 专业: _级__ _班实验编号:01实验项目熟悉Prolog语言环境和程序编写方法指导教师__姓名:_ __ 学号: __实验成绩:_____一、实验目的及要求(1) 熟悉VIP(Visual Prolog 5.2)的安装、运行环境;(2)基本Prolog程序语言技术(包含表的创建、查找、分解、拼接等主要技术)。
二、实验内容(1) 安装VIP;(2) 熟悉VIP的基本环境(掌握一个Prolog语言程序或工程的构建方法、测试目标、代码浏览等基本操作方法);(3)了解和熟悉一个实际的Prolog程序文件的基本结构。
例如:DOMAINS/PREDICATES/CLAUSES/GOAL等;(4) 编写并执行简单的Prolog程序,并熟悉测试或调试的方法。
三、实验准备及设备准备好VIP安装源;复习有关Prolog语言的上课记录;按实验大纲要求事先编制几个简单的Prolog语言程序,并根据Prolog的执行特点分析其执行结果过程,预测其执行结果。
四、实验步骤和实验过程及实验结果(1)安装VIP软件环境,如果已安装好,可以跳过此步;(2) 熟悉Prolog语言环境;打开prolog应用程序图标,可以看到整个菜单有File, Edit, Project, Options, Window和Help六种功能。
其下面是浮动菜单条,最下面有消息窗口和提示信息窗口。
File子菜单:主要涉及有关文件的操作。
新建、打开、关闭/保存/另存为、打印操作。
Edit子菜单:进入编辑器进行相应的文本编辑操作。
Project子菜单:有关工程文件的菜单功能。
主要用于生成一个包含多个文件和资源的工程环境及相关参数设置。
Options子菜单:其包括Project和Global两项内容的选择设置。
Project主要是有关Project的目录、编译方式、代码生成方法和运行参数和执行文件的生成等方面。
华北电力大学实验报告||实验名称PROLOG语言编程练习及图搜索问题求解课程名称人工智能及应用专业班级:学生姓名:学号:成绩:指导教师:实验日期:2014年5月(实验报告如打印,纸张用A4,左装订;页边距:上下2.5cm,左2.9cm, 右2.1cm;字体:宋体小四号,1.25倍行距。
)验证性、综合性实验报告应含的主要内容:一、实验目的及要求二、所用仪器、设备三、实验原理四、实验方法与步骤五、实验结果与数据处理六、讨论与结论(对实验现象、实验故障及处理方法、实验中存在的问题等进行分析和讨论,对实验的进一步想法或改进意见)七、所附实验输出的结果或数据设计性实验报告应含的主要内容:一、设计要求二、选择的方案三、所用仪器、设备四、实验方法与步骤五、实验结果与数据处理六、结论(依据“设计要求”)七、所附实验输出的结果或数据reverse_writelist([H|T]):-reverse_writelist(T),write(H),nl.empty_stack([]).stack(Top,Stack,[Top|Stack]).reverse_print_stack(Stack):-empty_stack(Stack).reverse_print_stack(Stack):-stack(E,Rest,Stack),reverse_print_stack(Rest),write(E),nl.member(X,[X|T]).member(X,[_|T]):-member(X,T).member_stack(Element,Stack):-member(Element,Stack).go(Start,Goal):-empty_stack(Empty_been_stack),stack(Start, Empty_been_stack, Been_stack),path(Start, Goal, Been_stack).test:-go(state(w,w,w,w), state(e,e,e,e)).六、讨论与结论Prlolg的求解过程就是一个不断通过规则进行匹配,最后匹配到事实后回溯得出解的过程。
实验一 PROLOG 语言编程一、实验目的1.加深学生对逻辑程序运行机理的理解。
2.掌握PROLOG 语言的特点、熟悉其编程环境。
3.为今后人工智能程序设计做好准备。
二、预习要求1.复习PROLOG 语言的语法。
2.熟悉PROLOG 的语言环境。
3.阅读一些PROLOG 的程序。
三、实验内容1、编写一个描述亲属关系的PROLOG 程序,然后再给予出一些事实数据,建立一个小型演绎数据库。
提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。
2、编写一个路径查询程序,使其能输出图中所有路径。
提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。
3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。
为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。
(a )用Prolog 规则表述这个雇主的选择准则。
(b )用Prolog 事实描述下列申请者的情况:史密斯住在剑桥,会开车但不会打字。
布朗住在伦敦,会开车也会打字。
简住在格拉斯哥,不会开车但会打字。
埃文斯住在伦敦,会开车也会打字。
格林住在卢顿,会开车也会打字。
(c )要求Prolog 提供一个候选人名单。
e四、代码1、编写一个描述亲属关系的PROLOG程序,然后再给予出一些事实数据,建立一个小型演绎数据库。
提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。
domainsname=symbol.predicatesmother(name,name).father(name,name).grandfather(name,name).grandmother(name,name).sister(name,name).aunt(name,name).goalgrandmother(a,X),write("X=",X),nl,father(b,Y),write("Y=",Y),nl,sister(d,Z),write("Z=",Z),nl,aunt(d,T),write("T=",T).clausesmother(a,c).mother(a,d).mother(c,g).mother(c,f).father(b,c).father(b,d).father(e,g).father(e,f).grandfather(X,Z):-father(X,Z),father(Y,Z).grandmother(X,Z):-mother(X,Y),mother(Y,Z).sister(X,Y):-mother(Z,X),mother(Z,Y).aunt(X,Y):-mother(Z,Y),sister(Z,X).2、编写一个路径查询程序,使其能输出图中所有路径。
人工智能技术基础实验报告
指导老师:朱力
任课教师:张勇
—实验一PROLOG语言编程练习
一、实验目的
加强学生对逻辑程序运行机能的理解,使学生掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。
二、实验环境
在Turbo PROLOG或Visual Prolog集成环境下调试运行简单的PROLOG程序,
三、实验内容
运行给定的五个程序,验证程序,得到结果,理解逻辑程序的特点,熟悉程序的编辑、编译和调试过程
四、实验步骤
1、打开Turbo prolog2.0文件,启动prolog.exe应用程序,并按空格键(SPACE)进入集成开发环境。
2、选择Setup项,打开下拉菜单,选择Directories项,进行工作目录修改,按Esc键退出,选择Save Configuration项,保存修改。
3、在相应的路径所在文件件夹中会生成work.Pro文件将其用文本打开,将要运行的程序写入,保存。
4、选择Files项,选择Load项,选择要打开的示例程序
5、编辑之后,可以选择Run项,执行程序,可以在Dialog窗口进行询问,即外部目标的执行,查看程序运行结果,分析程序之功能。
—
6、仿前例,可以选择其他程序并运行,分析程序功能。
7、退出,选择Quit项,可以退出Turbo Prolog程序。
五、实验源程序
验证题1:
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).
or_(0,0,0).
or_(0,1,1).
or_(1,0,1).
or_(1,1,1).
—xor(Input1,Input2,Output):-
not_(Input1,N1),/*(1,0)*/
not_(Input2,N2),/*(0,1)*/
and_(Input1,N2,N3),
and_(Input2,N1,N4),
or_(N3,N4,Output).
验证题2:
predicates
student(integer,string,real)
grade
goal
grade.
clauses
student(1,"zhang",90.2).
student(2,"li",95.5).
student(3,"wang",96.4).
grade:-write("Please input name:"),readln(Name),
student(_,Name,Score),
nl,write(Name,"grade is",Score).
grade:-write("Sorry,the student cannot find!").
验证题3:
domains
—n,f=integer
predicates
factorial(n,f)
goal
readint(I),
factorial(I,F),
write(I,"!=",F).
clauses
factorial(1,1).
factorial(N,Res):-
N>0,
N1=N-1,
factorial(N1,FacN1),
Res=N*FacN1.
验证题4:
domains
s=symbol
predicates
p(s) p1(s) p2(s) p3(s) p4(s) p5(s,s) p11(s) p12(s) p31(s)
goal
p(X),write("the x is ",X).
clauses
—p(a1):-p1(b),p2(c).
p(a2):-p1(b),p3(d),p4(e).
p(a3):-p1(b),p5(f,g).
p1(b):-p11(b1),p12(b2).
p3(d):-p31(d1).
p2(c1).
p4(e1).
p5(f,g).
p11(b1).
p12(b2).
p31(d11).
验证题5:
domains
name=symbol
age =integer
predicates
player(name,age)
match(name,name)
cluases
player(peter, 9).
player(paul, 10).
player(chris, 9).
player(susan, 9).
六、实验结果
验证一:计算数的非,与,或,异或,验证逻辑关系,非,与,或,异或的正确性
图1.1
图1.2
验证二:查找某个人的成绩
图2 验证三:计算数的阶层
图3
验证四:走迷宫找出口
图4
验证五
在外部Goal: match(X,Y)条件下,分别采用以上各match谓词,观察对应的执行结果。
1、match(X,Y):- player(X,9), player(Y,9), X<>Y.
图5.1
2、match(X,Y):- !, player(X,9), player(Y,9), X<>Y.
图5.2
3、match(X,Y):- player(X,9), !, player(Y,9), X<>Y.
图5.3
4、match(X,Y):- player(X,9), player(Y,9), !, X<>Y.
图5.4
5、match(X,Y):- player(X,9), player(Y,9), X<>Y, !
图5.5
七、实验中出现的问题及解决办法
实验初期,不知道如何加载示例,导致在editor中编辑了一段程序,发现程序的修改很困难
上课时通过老师的指导和向同学询问,知道可以先生成一个work.pro文件,然后用文本打开,在文本中编辑,然后在应用程序files—load中work.pro就可以了,解决了上述遇到的问题。
八、实验总结
通过这次实验,我对Turbo PROLOG编程环境有了初步的了解,对PROLOG语言特点有了更深的理解,熟悉程序的编辑、编译和调试过程,这次实验会对我以后的实验有很大的帮助。