Atitit.5gl 第五代语言编程语言 PROLOG教程  人工智能语言的标准 与实现

1. 第五代语言就是自然语言又被称为知识库语言或人工智能语言,1

2. 人工智能语言特点2

2.1. 试探法2

2.2. 3.要有递归功能和回溯功能;2

2.3. prolog程序没有特定的运行顺序,其运行顺序是由电脑决定的,而不是编程序的人。 2

2.4. prolog程序中没有if、when、case、for这样的控制流程语句 前面已经说了,程序的运行方式有电脑自己决定,当然就用不到这些控制流程的语句了2

2.5.  prolog程序和数据高度统一2

2.6. 4. prolog程序实际上是一个智能数据库2

2.7. 5. 强大的递归功能2

3. ROLOG语言只有三种语句,分别称为事实、规则和问题。3

3.1. 完整的prolog程序是有事实和规则组成的。3

4. Index4

1. 第五代语言就是自然语言又被称为知识库语言或人工智能语言,

目标是最接近日常生活所用语言的程序语言。真正意义上的第五代语言尚未出现,LISP和PROLOG号称第五代语言,其实还远远不能达到自然语言的要求。

对于人工智能技术要解决的问题,往往无法把全部知识都体现在固定的程序中。通常需要建立一个知识库(包含事实和推理规则),程序根据环境和所给的输入信息以及所要解决的问题来决定自己的行动,所以它是在环境模式的制导下的推理过程。这种方法有极大的灵活性、对话能力、有自我解释能力和学习能力。这种方法对解决一些条件和目标不大明确或不完备,(即不能很好地形式化,不好描述)的非结构化问题比传统方法好,它通常采用启发式、试探法策略来解决问题。

在处理一些简单问题时,一般传统方法和人工智能用的方法没有什么区别。但在解决复杂问题时,人工智能方法与传统方法有差别。

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://www.cnblogs.com/attilax/

2. 人工智能语言特点

2.1. 试探法

人工智能方法:人工智能要解决的问题,无法把全部知识都体现在固定的程序中。这种方法对解决一些弱结构(ill structured)问题比传统方法好。弱结构指“x”、“y”不大明确或不完备,即不能很好地形式化,不好描述。“->”用试探法。AI也尚未发展到完全能解决这类问题的全部问题。这类问题是AI研究要解决的问题

2.2. 3.要有递归功能和回溯功能;

2.3. prolog程序没有特定的运行顺序,其运行顺序是由电脑决定的,而不是编程序的人。

2.4. prolog程序中没有if、when、case、for这样的控制流程语句
前面已经说了,程序的运行方式有电脑自己决定,当然就用不到这些控制流程的语句了

2.5.  prolog程序和数据高度统一

2.6. 4. prolog程序实际上是一个智能数据库

prolog的原理就是关系数据库,它是建立在关系数据库的基础上的。在以后的学习中你会发现它和SQL数据库查询语言有很多相似之处。使用prolog可以很方便的处理数据。

2.7. 5. 强大的递归功能

在其它的语言中,你也许已经接触过递归程序了。递归是一种非常简洁的方式,它能够有效的解决许多难题。而在prolog中,递归的功能得到了充分的体现,你甚至都会感到惊奇,递归居然又如此巨大的能力。

3. ROLOG语言只有三种语句,分别称为事实、规则和问题。

定义规则。上面这句话的意思就是,某人甲和某人乙是情侣的规则就是:某人甲爱某人乙,并且某人乙爱某人甲。上面用来分隔两个爱的句子的“,”表示并且的意思。

当然为了能够让电脑运行,这个句子要改为英文的:

lovers(X,Y):-love(X,Y),love(Y,X).

3.1. 完整的prolog程序是有事实和规则组成的。

love(zhangxueyou,wanfei). 
love(zhangxueyou,zouhuimin). 
love(wanfei,xietinfen). 
love(zouhuimin,zhangxueyou). 
love(xietinfen,wanfei). 
love(xietinfen,zouhuimin). 
love(liudehua,zouhuimin). 
lovers(X,Y):-love(X,Y),love(Y,X).

我们可以看出来,完整的prolog程序是有事实和规则组成的。事实用来储存一些数据,而规则用来储存某种可以推理出来的关系。

prolog解释器的提示符号为“?-”,你只需要在在这个提示符后面输入自己的句子就可以了。让我们来看第一个询问:

?-love(zhangxueyou,wanfei).

在询问中我们可以使用大写字母代表未知的事物,让解释器找到答案。例如:

?-love(zhangxueyou,X).

这句话询问的是:都喜欢那些人。解释器将给出答案:

X=wanfei; 
X=zouhuimin; 
no.

注意1:上面的两个“;”是人工输入的,当解释器找到一个答案之后,它将这个答案输出,并且等待用户的进一步输入,如果用户输入“;”,解释器将继续寻找其他的答案,如果输入的是别的符号,解释器将终止查询。

4. Index

Prolog教程1-补充教程(写在正式教程的前面)

Prolog教程2-入门

Prolog教程3-事实

Prolog教程4-简单查询

Prolog教程5-混合查询

Prolog教程6-规则

Prolog教程7-小结

Prolog教程8-算术

Prolog教程9-数据管理

Prolog教程10-递归

Prolog教程11-数据结构

Prolog教程12-列表

Prolog教程13-操作符

Prolog教程14-截断

Prolog教程15-流程控制

Prolog教程16-自然语言

Prolog调用C语言 - 以扩展谓词为例

C语言调用Prolog Amzi逻辑服务器

人工智能语言--PROLOG

Prolog教程_prolog吧_百度贴吧.htm

Prolog教程 - zhaoyang17的博客 - 博客频道 - CSDN.NET.htm

Atitit.5gl 第五代语言编程语言 PROLOG教程  人工智能语言的标准 与实现的更多相关文章

  1. Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结

    Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结 1. Sql语言应该得到更大的范围的应用,1 1.1. 在小型系统项目中,很适合存储过程写业务逻辑2 1.2. 大型 ...

  2. Atitit.软件与编程语言中的锁机制原理attilax总结

    Atitit.软件与编程语言中的锁机制原理attilax总结 1. 用途 (Db,业务数据加锁,并发操作加锁.1 2. 锁得类型 排它锁 "互斥锁 共享锁 乐观锁与悲观锁1 2.1. 自旋锁 ...

  3. Apple Swift编程语言入门教程

    Apple Swift编程语言入门教程 作者: 日期: 布衣君子 2015.09.22 目录 1   简介 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 ...

  4. 苹果Swift编程语言新手教程【中国版】

    Swift代码语言教程:在刚刚过去的WWDC2014大会上,苹果公司新公布了一种编程语言Swift.据悉.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.对于广 ...

  5. Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结

    Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结 1.1. 边缘检测的基本方法Canny最常用了1 1.2. 编写matlab边缘检测代码, ...

  6. Atitit.软件的建模种类and 建模语言选型and UML???

    Atitit.软件的建模种类and  建模语言选型and UML??? 1. 4大的建模种类:ui建模,业务流程建模 , 业务对象建模, 数据库建模 1 2. 文本还是图片化(推荐)的建模 1 3.  ...

  7. 2013年6月编程语言排行榜,C语言位据第一位

    2013年6月编程语言排行榜,C语言位据第一位 C语言是很多主流开发语言的母体,.NET的底层,Java的底层都是C开发的,虽然很多新语言来势汹汹,但究其根源,都脱离不开C语言

  8. Swift初体验之HelloWord+苹果Swift编程语言新手教程【中文版】

    AppDelegate.swift : <span style="font-size:24px;"><strong>// // AppDelegate.sw ...

  9. swift编程语言基础教程 中文版

    swift编程语言基础教程 中文版 http://download.csdn.net/detail/u014036026/7845491

随机推荐

  1. HDU 6301.Distinct Values-贪心、构造字典序最小的数列 (2018 Multi-University Training Contest 1 1004)

    HDU6301.Distinct Values 这个题就是给你区间要求区间内的数都不相同,然后要求是字典序最小,直接贪心走一遍,但是自己写的时候,思路没有错,初始化写挫了... 将区间按左端点小的排序 ...

  2. 小程序收集formid跳转后收集不到

    为了突破微信小程序模板消息限制,需收集到足够的推送码,即每次提交表单时获取到的formId.一个formId代表着开发者有向当前用户推送模板消息的一次权限.当表单组件中的属性report-submit ...

  3. Python的网络编程[3] -> BOOTP 协议[0] -> BOOTP 的基本理论

    BOOTP协议 / BOOTP Protocol 目录 基本理论 BOOTP 与 DHCP 通信流程 数据报文格式 报文加解码实现 1. 基本理论 / Basic Theory BOOTP(Boots ...

  4. HDU 3966 Aragorn's Story(树链剖分)(线段树区间修改)

    Aragorn's Story Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. What makes grep consider a file to be binary?

    grep -a worked for me: $ grep --help [...] -a, --text equivalent to --binary-files=text

  6. SQLite中的内连接简化技巧

    SQLite中的内连接简化技巧   在SQLite中,通过内连接可以将两个表通过条件表达式关联起来,构成一个新记录集或视图.形式如下:   SELECT ... FROM t1 JOIN t2 ON ...

  7. 集合框架(05)Collections

    1.Collections.sort方法(以及自定义的比较字符串长度排序) package Collections; import java.util.*; class StrLenComparato ...

  8. 线程同步-CountDownLatch

    应用场景: 有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行. 假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的await()方法,其他的任务执行 ...

  9. Android 常驻与很驻型广播的差别,及ListView优化,Android新手基本知识巩固

    1.常驻型广播  常驻型广播,当你的应用程序关闭了,假设有广播信息来,你写的广播接收器相同的能接受到.  他的注冊方式就是在你的应用程序中的AndroidManifast.xml进行注冊. 通常说这样 ...

  10. JS方面重点摘要(二)

    1.函数声明与函数表达式 (1)变量声明会置顶提前,但赋值仍在原地方(2)函数声明同变量声明一样会提前:但是,函数表达式没有提前,就相当于平时的变量赋值(3)函数声明会覆盖变量声明,但不会覆盖变量赋值 ...