态度决定学习的“深度”,我愿与prolog共成长
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
态度决定学习的“深度”,我愿与“prolog”共成长
昨天是第一次接触并学习人工智能,在这以前对它充满了神秘和恐惧,认为它遥不可及,深不可测。
但通过一天的学习和同事们的研讨及与专家的交流,发现人工智能其实离我们很近。
在学习研讨过程中,我接触到人工智能最流行的一门语言----prolog,在此之前,对它一点认识都没有,脑海里印象几呼等于零,在结束第一天的作业时了解到今天的作业是:写出程序并在计算机上进行解决。
当时感觉大脑有点懵:专家怎么这样出题?刚刚学了人工智能的一点知识就要求写程序并运行。
虽然有这样的想法,但是还是很快调整了心态,既然专家提出来,一定有它的道理。
所以晚上吃饭时、到公园散步时,根据一天来接触到的prolog 知识,大脑一直在捉摸这个编程的问题。
但是这个问题始终没有清晰的思路,知识的条理性很乱。
带着这样的疑问还是早回了家,上网查资料、找教程查阅了大量的关于prolog的知识。
就这样对prolog的认识慢慢在增加,对程序里面提到的的一些术语也了解了不少。
但时间必竟是短暂的,一天的时间你不可能把一个新生的事物学的很精。
抱着很多很的疑问,眼睛一闭一睁一天就很快过去了。
今天八点一开始,我们就打开了视频,带着昨天整理的满满的问题开始一天的求知之路。
听视频、记笔记,做研讨,遇到不理解的,我们就暂停视频,或者再把视频向后倒,反复听讲,记下所需要的知识,中间还不时和同事们进行讨论,随着学习的进行和研讨的继续,利用prolog语言编写程序的框架有了清晰的思路。
中间休息时我又上网查了相关的资料,了解了一些更为具体的prolog语言方面的知识,并把今天的作业输入到计算机里进行了验证,从而对prolog有了一个较全面的认识。
以下是今天第一个作业的全部程序代码,并且我对每一行、每一段都给出了详细的标注,我想对大家一定有不小的帮助.
作业一:用人工智能编程:判断两个城市之间是否可以到达
Domains *用来定义程序中将要用到的变量和符号的类型用取值范围
Note=symbol *定义note为符号类型
Predicates *定义渭词
Connected(node,node) *connected渭词
Path(node,node) *path渭词
Clauses *定义子句
Connected(a,b). *描述事实:a,b相通
Connected(a,c). *描述事实:a,c相通
Connected(b,e). *描述事实:b,e相通
Connected(c,d). *描述事实:c,d相通
Path(X,Y):- Connected(X,Y). *定义规则:直接到达
Path(X,Y):- Connected(X,Y),path(Z,Y). *定义规则:由中间结点到达
如果大家还有疑问的话,我还对prolog语言总节了一些信息:一方面通过今天的学习我发现prolog与我们大家熟悉的教学语言pascal有很多相似之处,在学习它时可以参考我们的pascal语言;另一方面在prolog语言中,它的基本结构一般分为4段,含义如下:Domains段:用来定义程序中将要用到的变量和符号的类型用取值范围。
Predicates段:用来定义程序中的渭词。
Clauses段:用来存放事实和规则。
Goal段:用来定义程序中的目标,即运行程序的起点。
大家可能说了,为什么在上面的这个程序中没有出现goal段呢?其实goal段的主要功能就是在程序运行时用到它,这也是我们真正体验prolog完整编程到检测我们的程序是否达到我们的目的的精华所在了。
说的不当之处,请各位专家和老师给予指正,谢谢!。