人工智能程序设计语言主要有哪些

栏目:资讯发布:2023-12-02浏览:1收藏

人工智能程序设计语言主要有哪些,第1张

典型的人工智能语言主要有LISP、Prolog、Smalltalk、C等。

一般来说,人工智能语言应具备如下特点:

具有符号处理能力(即非数值处理能力);

适合于结构化程序设计,编程容易;

具有递归功能和回溯功能;

具有人机交互能力;

适合于推理;

既有把过程与说明式数据结构混合起来的能力,又有辨别数据、确定控制的模式匹配机制。

在人工智能手册中介绍了七种人工智能语言:

LISP,PLANNER,CINNIVER,QLISP,POP-2,SAIL,FUZZY。近百种人工智能语言中,只有LISP和后起之秀Prolog是人工智能研究和应用中占重要地位的两种人工智能程序设计语言。虽然国内外对这两种AI语言曾有争议,褒贬不一,但LISP和PROLOG的重要性是都不可否认的。

谈到LISP和PROLOG两种AI语言的重要性,我们可以从美国AI界的权威学者、麻省理工学院教授PHWinston(温斯顿)所说的三段话来体会:

(1)温斯顿认为,LISP 语言是AI的数学,不仅对AI的机器实现有重要意义,而且是AI理论研究的重要工具。

(2)“在中世纪,拉丁文和希腊文的知识对所有学者来说,都是必不可少的。只懂一种语言的学者必然是一个残缺不全的学者,他缺乏从两个方面来观察世界所获得的那种理解力。同样地,现代的AI专业人员如果不能同时大致通晓LISP和Prolog,也犹如一个残疾人,因为就广义来说,这两种人工智能的主要语言的知识都是必不可少的。”

“我一直热衷于Lisp,Lisp是在MIT被制造并且在那儿成长起来的。”

(3)概括地说,计算机语言的发展正是一个从HOW型低级语言向WHAT型高级语言进化的过程在HOW型语言中,程序编制者必须详细说明运算是怎样(HOW)一步一步进行的;而在WHAT型语言中,程序编制者只需简单说明要做的事情是什么(WHAT) 。 现代的LISP语言是这些语言的佼佼者,因为采用Common Lisp格式的Lisp具有非凡的表现力,但是如何做某件事情仍然是有待于Lisp程序编制者来表达的东西相反,Prolog是一种明显地冲破了HOW型语言陈规的语言, 它鼓励程序编制者去描述情况和问题,而不是那些用来解决问题的详细步骤。”

由以上论述可以看出LISP语言和Prolog语言对人工智能学科和人工智能学者的重要性。

一般来说,LISP可以称为人工智能的汇编语言, Prolog是人工智能更高级的语言。

函数型语言LISP和逻辑型语言PROLOG都适合作符号处理,都适合于结构化程序设计(LISP提供了函数定义,prolog提供了谓词定义),都具有递归功能(prolog还具有自动回溯功能),都具有人机交互能力(prolog还特别适合于推理),也都具有把过程与说明式数据结构混合起来的能力以及辨别数据、确定控制的模式匹配机制(LISP将程序与数据均表示为表,因此可以把程序作为数据处理,也可将数据当作程序来执行。Prolog用一致的数据结构“项(term)”来构造数据和程序,事实、规则和询问的表现形式都为Horn子句,执行时作统一的操作匹配。LISP的匹配函数、prolog的合一运算自动匹配、自动搜索都具有很强的模式匹配机制。)因此可以说LISP和prolog是两种较为典型的人工智能语言。

(1)LISP具有和图灵机相同的(也就是理论上最高的)计算能力;

在计算机科学的可计算理论中,人们已经证明递归函数和图灵机具有相同的(也就是理论上最高的)计算能力,通常指的是自然数集上的递归函数。这个结论对符号集上的递归函数也成立。JMcCarthy在LISP中设计了一套符号处理函数,它们具有符号集上的递归函数的计算能力,因此原则上可以解决人工智能中的任何符号处理问题。

(2)数据类型的唯一性,程序与数据的一致性;

LISP的数据类型和句法结构简单,甚至简单到具有唯一性和一致性:其数据和程序的表现形式是一样的, 都是用S-表达式一种形式基本的数据结构是表(表是S-表达式的特例)。

(3)数据和程序的 等价性;

LISP的数据和程序不仅类型一致,而且作用也等价;

即:程序可作为数据被处理,数据也可作为程序来执行。

(4)LISP一切功能由函数来实现,程序的运行就是求值;

LISP程序的通常形式是一串函数定义,其后跟着一串带有参数的函数调用,函数之间的关系只是在调用执行时才体现出来。

(5)LISP语言的控制结构以递归为主;

大多数语言使用的控制结构是以循环为主的,有的程序语言允许递归,而LISP以递归形式为主。递归是LISP能力的源泉。当然现在LISP也有循环结构和迭代。

(6)原子可以有任意多个值(特性值);

LISP非常重要的一个特点是每个文字原子可以加许多特性,每个特性有一个特性表及对应的特性值。由于原子的多值性给使用者带来很多方便,给问题表示带来好处,使LISP很好用。

(7)LISP具有表的结构形式和规模的灵活性,不必预先设定;

(8)具有收集无用单元的功能。

//--------------------------------------------------------------------

prolog语言

(1)WHAT型语言;

Prolog 由程序设计的“How to do the Job”向 “What you want to do”前进一步。用户只要说明已知事实是什么,定义规则(说明对象间的关系),再告诉要解决的问题是什么(询问)就行了,不必告诉计算机如何一步一步做,问题的求解是通过Prolog的内部机制自动生成。

(2) 基于一阶谓词逻辑,既有坚实的理论基础,又有较强的表现能力;

Prolog的文法简单,描述能力强,更接近于自然语言,程序易写易读,程序量小。

(3) Prolog自动实现模式匹配(合一功能),自动回溯,这两种是人工智能系统中常用的基本操作;

(4)内部的回溯能力及不确定性使Prolog对同一个问题可给出多个解;

Prolog具有不确定的原因有二个:①过程性的不确定性:Prolog谓词调用是用模式匹配方式、自顶向下的深度优先搜索自动回溯策略,当变元值不满足谓词时产生回溯,求得变元之另一值,如此下去直到谓词为真;②变元特性的不确定性:系指谓词中变元既可用来作输入变元又可作输出变元的这种性质。变元特性的非确定性引起提问方式的多样性,增强了交互能力(会话能力)。过程的不确定性和变元特性的不确定性,这是传统程序设计语言以及另一种AI语言LISP所不具备的智能特性。

(5)Prolog的数据和程序的统一,Prolog提供了一种统一的数据结构--项(term),用来构造数据和程序。数据和程序并没有明显区别,同样存在数据库中。并且提供了修改数据库的指令ADDCL和DELCL,在程序执行中,可以自行修改数据、改变控制,因而可以编制能自行修改程序和数据的程序,为实现某些智能提供了方便;

(6)递归是Prolog语言的重要特点之一。

缺点:

(1)在编译系统实现问题上,在执行效率低问题上,在系统开销大的问题上,Prolog遇到了比LISP更大的困难;

由于深度优先算法,由于控制机制具有普遍性,由于递归和自动回溯,Prolog程序中间变量过多严重浪费内存,对具体的问题不免有多余的回溯,因而浪费了较多的机器时间和空间,降低了效率。

(2) 大型的Prolog程序调试不容易;

Prolog算法都是深度优先搜索和自动回溯,在程序执行过程中细节由系统内部掌握,减少了人设计控制的工作。但反过来,用户很难或根本无法控制算法的细节,对程序控制的唯一途径是通过“cut”操作(但cut影响了prolog的完备性)。因此大型prolog程序比LISP程序调试困难得多。

(3) Prolog的“not”是“失败的not”,不是逻辑否定,只有在封闭世界假设基础上才能认为是逻辑否定。Prolog对量词的处理也不够。它视所有规则前面有对规则中所有变元的全称量词,而视询问公式前有对询问中变元的存在量词。但实际应用中封闭世界假设不一定合适。

(4) Prolog是描述笥语言,处理的是关系,因而在过程性控制方面局限性较大。

但目前不少国家已经实现了Prolog和LISP语言之间或它们与传统语言之间的转换软件接口。所以在过程控制方面也有推广使用Prolog的,例如PC-Prolog。又如,POPLOG是LISP、PROLOG和POP-11的混合物,其中允许这三种语言写的程序互相调用。也有以一种程序设计风范为主、引进并兼顾另一种风范的,例如LOGLISP(以LISP结构为基础,加进逻辑程序成分的)。

中文:操作系统控制不同的计算机进程,如运行一个电子表格程序或访问计算机存储器里的信息。一个重要的进程是解释(interpretation)使用户得以与计算机进行通信的命令。有些命令解释器(interpreter)是面向文本的,要求将命令键入。另一些命令解释器是面向图形(graphically oriented)的,允许用户通过指向并点击图标,即屏幕上代表具体(specific)命令的,来进行通信。初学者一般觉得面向图形的解释器使用起来容易一些,但是许多有经验的计算机用户更喜欢使用面向文本的命令解释器,因为它们的功能更强大一些。

操作系统或者是单一任务(single-tasking)处理的,或者是多任务(multitasking)处理的。早期的单一任务处理操作系统每次仅能运行一个进程。例如,当计算机打印文件时,在打印结束之前,计算机不能开始另一个进程或响应(respond)新的命令。

所有现代操作系统都是多任务处理的,可以同时运行数个进程。在大多数计算机中,只有一个中央处理器(CPU)(计算机的计算与控制单元),因此多任务处理操作系统造成一种假象,(creates the illusion)即数个进程同时在中央处理器上运行。用来造成这种假象的最常见办法是时间片(time-slice)多任务处理,依靠这种方法(whereby)每个进程都单独运行固定的一段时间。如果进程在分配(allotted)的时间内没有完成,它即被暂停(suspend),而另一个进程开始运行。进程之间的这种切换被称为上下文转换(context switching)。操作系统进行“簿记”(bookkeeping),保存被暂停进程的状态。它还有一种确定下一步运行哪个进程的机制,称之为调度程序(scheduler)。调度程序快速运行短进程,以尽可能缩短(minimize)可察觉的延迟(perceptible delay)。由于用户对时间的感觉要比计算机的处理速度慢得多,因此多个进程看似在同时运行。

英文:The operating system control different computer advancement, like moves an electronic forms procedure or in the visit computer storage's information An important advancement is explained that (interpretation) enables the user to carry on the correspondence with the computer the order Some order interpreter (interpreter) is faces the text, the request will order to enter Another some order interpreter is faces the graph (graphically oriented), the permission user through aims at and clicks on the icon, namely on the screen represents the concrete (specific) order the picture, carries on the correspondence The beginner thought generally uses easy somewhat face the graph interpreter, but many experienced computer users like using face the text order interpreter, because their function is more formidable some the operating system or is the sole duty (single-tasking) processing, or is the multi-duty (multitasking) processing The early sole task processing operating system each time can only move an advancement For example, when computer print file, before printing conclusion, the computer cannot start another advancement or respond the (respond) new order the all modern operating system is the multitaskings, may a same fortune number of lines advancement In majority computers, only then a central processor (CPU) (computer's computation and control unit), therefore the multitasking operating system creates one kind of false appearance, (creates the illusion) namely at the same time several advancements moves on the central processor Uses for to create this kind of false appearance the most common means is the time piece (time-slice) multitaskings, depends upon this method (whereby) each advancement isolated operation fixed period of time If advancement in assigns (allotted) in the time not to complete, it namely is suspended (suspend), but another advancement starts to move Between advancement this kind of cut is called the context to transform (context switching) The operating system carries on “the bookkeeping” (bookkeeping), preserves is suspended the advancement the condition It also has one kind to determine that which advancement mechanism next step moves, calls it scheduler program (scheduler) The scheduler program quick operating short advancement, by reduces the detention which as far as possible (minimize) may realize (perceptible delay) Because the user must be much slower than to the time feeling computer's processing speed, therefore many advancements looked that resembles is also moving

人工智能程序设计语言主要有哪些

典型的人工智能语言主要有LISP、Prolog、Smalltalk、C等。一般来说,人工智能语言应具备如下特点:具有符号处理能力(即非数值处理能力);...
点击下载
热门文章
    确认删除?
    回到顶部