收藏 分享(赏)

人工智能实验指导书.doc

上传人:hskm5268 文档编号:7880582 上传时间:2019-05-28 格式:DOC 页数:12 大小:115.50KB
下载 相关 举报
人工智能实验指导书.doc_第1页
第1页 / 共12页
人工智能实验指导书.doc_第2页
第2页 / 共12页
人工智能实验指导书.doc_第3页
第3页 / 共12页
人工智能实验指导书.doc_第4页
第4页 / 共12页
人工智能实验指导书.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、贵州大学计算机科学与技术学院计算机科学与技术科系本科生人工智能实验指导书 /实验教学大纲王以松 2012 年- 2 -目 录实验一 人工智能冲浪 .3实验二 SAT 求解描述性问题 4实验三 Prolog 基本编程环境 5实验四 ASP 描述性问题求解 8参考资料: 10- 3 -实验一 人工智能冲浪1、 实验目的了解人工智能的定义/讨论,研究内容,研究进展以及相关的重要人物和有影响的事件。2、 实验原理通过网络搜索引擎,例如 google,baidu,yahoo 等,以关键词在网络上搜索相关内容。3、 实验内容搜索如下内容:1) 人工智能的定义与讨论,特别是 wiki 百科在这方面的讨论.2

2、) 人工智能研究方向/领域,以及本领域中有重大影响力的论文 1-2 篇,例如在citeseer 上的被引用次数最多.3) Turing 奖获得者中,人工智能领域的专家,例如 McCarthy, Pearl, Newell, Simon, Feigenbaum 等,他们的获奖理由/在人工智能方面的突出贡献.4) IBM Deep Blue, Watson;Checker;Big Dog(Boston Dynamics) 4、 实验描述及要求选择其中一个实验内容,整理形成一个 AI 的主题介绍。5、 实验步骤无要求.6、 参考程序无.- 4 -实验二 SAT 求解描述性问题 1、 实验目的通过学习

3、并使用一个 SAT 求解器,例如 MiniSat,了解 Satisfiability 描述性问题求解方法。了解 SAT 求解器的研发现状。2、 实验原理把给定的问题表达成逻辑公式 CNF 形式, 使得其模型对应问题的解。经过翻译后,输入给 SAT 求解器,并将其输出结果解释后输出,从而读出问题的一个解。3、 实验内容1) 选用一个 SAT 求解器,例如 MiniSat 等。2) 搜索公开的 SAT 的 benchmark/测试用例,就图着色等问题生成 CNF 公式, 或随机生成 CNF 公式。3) 调用 SAT 求解器,例如 MiniSat,计算其模型。4) 输出对应问题的解。4、 实验描述及

4、要求将上述实验内容和结果书写成实验报告。5、 实验步骤无要求。6、 参考程序sat 的输入格式可采用 DIMACS 字句的如下形式:c 表示注释c file name: fc start with commentsccp cnf 5 3 c (5个原子,3个字句 开始的第一行)1 -5 4 0 c 字句结束 是0,-5表示第5个原子的经典否定-1 5 3 4 0-3 -4 0上面字句集为:- 5 -x1, x5, x4, x1, x5, x3, x4 x3, x4调用 minisat f 将得到输出表示该字句集是可满足的,使之满足的赋值是把全部原子赋值为 false(如果是赋值为true,则会

5、输出该原子的编号)。- 6 -实验三 Prolog 基本编程环境1、 实验目的通过 Prolog 环境下的编程,了解基于逻辑的问题求解理论。并熟悉一个具体的 Prolog语言,特别是各种数据结构,及其开发环境和开发方法。通过具体的编程实践,掌握基本的 prolog 解决问题的方法。2、 实验原理Prolog(Programming in Logic 的缩写)是一种逻辑编程语言。它建立在逻辑学的理论基础之上, 最初被运用于自然语言等研究领域。现在它已广泛的应用在人工智能的研究中,它可以用来建造专家系统、自然语言理解、智能知识库等。 3、 实验内容1) 快速排序:给定一个整数链表,按照给定顺序重排

6、并输出。2) 图着色:给定一个图(可以有各种表示),和一些颜色,输出对图的一种着色方案。3) 图的给定两点的最短距离:给定一个距离图(节点之间有距离),和其中的两个点,输出一个该两点之间的最短路径及其距离。4) N-皇后问题:给定一个 N,输出在 N 个皇后在 NN 棋盘上的一种可行布局(见参考程序)。4、 实验描述及要求选择上述实验内容中的任何一个,完成实验并书写实验报告。5、 实验步骤1) 熟悉 Prolog 语言的基本规范;2) 熟悉 Prolog 的基本数据结构3) 熟悉 Prolog 解决问题的思路(链表和递归)。6、 参考程序/* - - - - - - - - - - - - -

7、 - - - - - - - - - - - - - - - - - - - - - - - -N Queens problemFileName: nqueen.plTo run at command line like,swipl -quiet -c nqueen.plTo compile it into an exe file, run like- 7 -swipl -goal=goal -o nqueen.exe -c nqueen.plrevised by Yisong Wang (ys_)from http:/rosettacode.org/wiki/N-queens_problem

8、#Prologvia adding some comments.-*/nqueens(N,Queens) :-range(1,N,Qs), % Qs=1,2,.,Npermutation(Qs, Queens),safe(Queens).range(N,N,N).range(M,N,M|Ns):-M =Pivot */( X Smalls = X|Rest,partition(Xs, Pivot, Rest, Bigs); Bigs = X|Rest,partition(Xs, Pivot, Smalls, Rest).quicksort() . /* 表 empty list視為排序好的 l

9、ist */quicksort(X|Xs) /* 此行相當於quicksort(X|Xs,Start,End) :- 此 rule 讓 Start 為 sorted list */ partition(Xs, X, Smaller, Bigger) , /* 由上行最左端元素為 Pivot */quicksort(Smaller), X, quicksort(Bigger). /* 此行相當於 quicksort(Smaller,Start,A),A=X|B, 注意首字母大寫者皆視為變數 (list)quicksort(Bigger,B,End). */:- initialization(q)

10、. /* 啟動 q 處 goals */2)下面简洁的排序范例可以体会到为什么 AI 领域喜用 Prolog:/* sortcsj.pl 原始參考: Computer Science J. Glenn Brookshear */- 9 -/* sortcsj()中的第二個引數帶有排序好的結果 */* 僅為示範,若為 gprolog 使用者則用內建 sort 等較佳 */* 在 gprolog 下之編譯例: gplc -min-size sortcsj.pl */* 執行 sortcsj 後會出現排序結果 2,9,18,18,25,33,66,77 */q:- L=33,18,2,77,18,6

11、6,9,25, (sortcsj(L,P), write(P), nl). sortcsj(L,S) :- permutation(L,S), ordered(S). /* L 為原 list, S 為排序好的 list, 此為 permutation 關係 (built-in) */ordered(). /* 表 empty list 視為排序好的 list */ordered(_|). /* 只有一元素之 list 視為排序好的 list */ordered(A|B|T) :- A = B, ordered(B|T). /* 此 rule 約束所謂的排序好是指前項元素小於或等於後一項元素

12、*/:- initialization(q). /* 啟動 q 處 goals */- 10 -实验四 ASP 描述性问题求解1、 实验目的通过学习 Answer Set Programming(ASP)的基本概念,了解 ASP 的描述性问题求解基本方法;通过具体的 ASP 编程实验,体验基于逻辑的描述性问题求解的基本思想。2、 实验原理回答集编程是语法上类似传统逻辑编程而语义上密切于非单调逻辑的一种声明式编程。在传统逻辑编程和回答集编程之间的主要区别是如何表示否定为失败。在传统逻辑编程中,否定为失败指示推导失败;在回答集编程中,它指示一个文字的一致性。 回答集编程由规则的集合构成,每个规则由

13、一个头部和一个后部构成:规则的头部和后部二者都是文字的集合,每个文字都是可能被否定的原子。与传统逻辑程序相反,原子都是命题而不是一阶的,并且可以使用两种形式的否定去否定它们: 经典否定(指示为 )和否定为失败(指示为 )。文字要么是原子要么是(使用经典否定)否定的原子。与 Prolog 相反,回答集程序的语义不依赖于规则的求值和原子在每个规则中的特定次序。 检查一个程序的回答集的存在性的复杂性,和检查一个程序是否蕴涵一个文字复杂性,范围是从 P 到多项式层次的第二级,依赖于一个程序可以满足也可以不满足的一组条件(就是说分层、头部中的析取)。3、 实验内容1) 图的着色:问题与 Prolog 情

14、形一致。2) N 皇后问题:问题与 Prolog 情形一致。3) 汉密尔顿回路问题:给定一图,输出该图的一条汉密尔顿回路(如果有的话)。4) 学校课表排课:给定学校课表安排的约束(教室、教师、课程),输出一种排课方案(参考 The third International Timetabling Competition 2011 以及张青伟 ,赵岭忠 .回答集程序设计在 TTP 求解中的应用 )。4、 实验描述及要求选择上述实验内容中的任何一个,编写 ASP 程序并用 clasp 计算其回答集,输出试验结果;书写实验报告。5、 实验步骤- 11 -1) 了解 ASP 的基本语法语义2) 了解 A

15、SP 语言 lparse/gringo3) 熟悉 ASP 规则的问题求解方法4) 编写 ASP 程序并运行验证。6、 参考程序*更多的测试用例参考 Answer Set Programming Competition 2011% To run like this, lparse color.lp p10 | clasp%-% file name: color.lpc(g;r;b).1 clr(X,I) : c(I) 1 :- v(X).:- clr(X,I), clr(Y,I), e(X,Y), c(I).#hide.#show clr(X,Y).% -% Petersen graph % f

16、ile name: p10e(X,Y) :- e(Y,X), v(X;Y). v(110). e(1,2).e(1,5).e(1,6).e(2,7).e(2,3).e(3,8).e(3,4).e(4,9).e(4,5).e(5,10).e(6,8).e(6,9).e(7,9).e(7,10).e(8,10).- 12 -参考文献:、Artificial Intelligence: A New Synthesis, by Nils J. Nilsson. San Francisco, CA: Morgan Kaufmann Publishers, Inc. 1998.、Russell and N

17、orvig, Artificial Intelligence: A Modern Approach, Prentice Hall, 1995. 、人工智能 郑扣根 庄越挺 译 机械工业出版社、Sat Live. http:/www.satlive.org/、The Satisfiability Library. http:/www.cs.ubc.ca/hoos/SATLIB/index-ubc.html、SWI-Prologs home. http:/www.swi-prolog.org/、Bartak. Prolog in Examples. http:/kti.mff.cuni.cz/ba

18、rtak/prolog/learning.html、clasp . www.cs.uni-potsdam.de/clasp/ 、Smodels. www.tcs.hut.fi/Software/smodels、Answer Set Programming Competition 2011. https:/www.mat.unical.it/aspcomp2011/FrontPage 、The third International Timetabling Competition 2011. http:/www.utwente.nl/ctit/itc2011/ 、List of important publications in computer science (including Artificial Intelligence). http:/en.wikipedia.org/wiki/List_of_important_publications_in_computer_science#Artificial_intelligence. 、张青伟 赵岭忠. 回答集程序设计在 TTP 求解中的应用. 桂林电子科技大学学报. 2010 年第 4 期

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报