典型的人工智能語(yǔ)言主要有LISP、Prolog、Smalltalk、C++等。
一般來說,人工智能語(yǔ)言應(yīng)具備如下特點(diǎn):
具有符號(hào)處理能力(即非數(shù)值處理能力);
適合于結(jié)構(gòu)化程序設(shè)計(jì),編程容易;
具有遞歸功能和回溯功能;
具有人機(jī)交互能力;
適合于推理;
既有把過程與說明式數(shù)據(jù)結(jié)構(gòu)混合起來的能力,又有辨別數(shù)據(jù)、確定控制的模式匹配機(jī)制。
編輯本段人工智能語(yǔ)言與傳統(tǒng)語(yǔ)言的區(qū)別
人們可能會(huì)問,用人工智能語(yǔ)言解決問題與傳統(tǒng)的方法有什么區(qū)別呢?
傳統(tǒng)方法通常把問題的全部知識(shí)以各種的模型表達(dá)在固定程序中,問題的求解完全在程序制導(dǎo)下按著預(yù)先安排好的步驟一步一步(逐條)執(zhí)行。解決問題的思路與馮.諾依曼式計(jì)算機(jī)結(jié)構(gòu)相吻合。當(dāng)前大型數(shù)據(jù)庫(kù)法、數(shù)學(xué)模型法、統(tǒng)計(jì)方法等都是嚴(yán)格結(jié)構(gòu)化的方法。
對(duì)于人工智能技術(shù)要解決的問題,往往無(wú)法把全部知識(shí)都體現(xiàn)在固定的程序中。通常需要建立一個(gè)知識(shí)庫(kù)(包含事實(shí)和推理規(guī)則),程序根據(jù)環(huán)境和所給的輸入信息以及所要解決的問題來決定自己的行動(dòng),所以它是在環(huán)境模式的制導(dǎo)下的推理過程。這種方法有極大的靈活性、對(duì)話能力、有自我解釋能力和學(xué)習(xí)能力。這種方法對(duì)解決一些條件和目標(biāo)不大明確或不完備,(即不能很好地形式化,不好描述)的非結(jié)構(gòu)化問題比傳統(tǒng)方法好,它通常采用啟發(fā)式、試探法策略來解決問題。
人工智能程序與傳統(tǒng)程序之間的差別
在處理一些簡(jiǎn)單問題時(shí),一般傳統(tǒng)方法和人工智能用的方法沒有什么區(qū)別。但在解決復(fù)雜問題時(shí),人工智能方法與傳統(tǒng)方法有差別。
傳統(tǒng)方法
(人工智能程序與傳統(tǒng)程序的差別)——傳統(tǒng)方法:把問題的全部知識(shí)以各種的模型表達(dá)在固定程序中,問題的求解完全在程序制導(dǎo)下按著預(yù)先安排好的步驟一步一步(逐條)執(zhí)行。這種方法解決嚴(yán)格結(jié)構(gòu)(Well Structured)問題非常有效。如果把這類問題形式化為三元組(x,->,y),“x”是給定的信息,“->”為求解途徑,“y”是目標(biāo)。傳統(tǒng)方法的特點(diǎn):“x”、“y”是明確的、完備的;“->”有著固定的明確的程式。這個(gè)方法之所以有效,主要是因?yàn)檫@個(gè)思路與馮.諾依曼式計(jì)算機(jī)結(jié)構(gòu)相吻合。當(dāng)前大型數(shù)據(jù)庫(kù)法、數(shù)學(xué)模型法、統(tǒng)計(jì)方法等都是嚴(yán)格結(jié)構(gòu)化的方法。
人工智能方法
人工智能方法:人工智能要解決的問題,無(wú)法把全部知識(shí)都體現(xiàn)在固定的程序中。它要建立一個(gè)知識(shí)庫(kù)(包含事實(shí)和推理規(guī)則),程序根據(jù)環(huán)境和所給的輸入信息以及所要解決的問題來決定自己的行動(dòng),所以它是在環(huán)境模式的制導(dǎo)下的推理過程。這種方法有極大的靈活性、對(duì)話能力、有自我解釋能力和學(xué)習(xí)能力。這種方法對(duì)解決一些弱結(jié)構(gòu)(ill structured)問題比傳統(tǒng)方法好。弱結(jié)構(gòu)指“x”、“y”不大明確或不完備,即不能很好地形式化,不好描述?!?>”用試探法。AI也尚未發(fā)展到完全能解決這類問題的全部問題。這類問題是AI研究要解決的問題。隨之而來也希望計(jì)算機(jī)硬件結(jié)構(gòu)也來一個(gè)革命,突破馮.諾依曼體系結(jié)構(gòu)。
編輯本段人工智能語(yǔ)言的特點(diǎn)
由于人工智能研究的問題的特點(diǎn)和解決問題的方法的特殊性,為了能方便而有效地建立人工智能系統(tǒng),需要發(fā)展專門的人工智能語(yǔ)言。人工智能語(yǔ)言的特點(diǎn)是什么,亦即人工智能語(yǔ)言應(yīng)具備的特征是什么?
一般來說,人工智能語(yǔ)言應(yīng)具備如下特點(diǎn):
1.要有符號(hào)處理能力(即非數(shù)值處理能力);
2.適合于結(jié)構(gòu)化程序設(shè)計(jì),編程容易;(要把系統(tǒng)分解成若干易于理解和處理的小單位的能力,從而既能較為容易地改變系統(tǒng)的某一部分,而又不破壞整個(gè)系統(tǒng)。)
3.要有遞歸功能和回溯功能;
4.要有人機(jī)交互能力;
5.適合于推理;
6.要有把過程與說明式數(shù)據(jù)結(jié)構(gòu)混合起來的能力,又要有辨別數(shù)據(jù)、確定控制的模式匹配機(jī)制。
編輯本段lisp和prolog
函數(shù)型語(yǔ)言LISP和邏輯型語(yǔ)言PROLOG都適合作符號(hào)處理,都適合于結(jié)構(gòu)化程序設(shè)計(jì)(LISP提供了函數(shù)定義,prolog提供了謂詞定義),都具有遞歸功能(prolog還具有自動(dòng)回溯功能),都具有人機(jī)交互能力(prolog還特別適合于推理),也都具有把過程與說明式數(shù)據(jù)結(jié)構(gòu)混合起來的能力以及辨別數(shù)據(jù)、確定控制的模式匹配機(jī)制(LISP將程序與數(shù)據(jù)均表示為表,因此可以把程序作為數(shù)據(jù)處理,也可將數(shù)據(jù)當(dāng)作程序來執(zhí)行。Prolog用一致的數(shù)據(jù)結(jié)構(gòu)“項(xiàng)(term)”來構(gòu)造數(shù)據(jù)和程序,事實(shí)、規(guī)則和詢問的表現(xiàn)形式都為Horn子句,執(zhí)行時(shí)作統(tǒng)一的操作匹配。LISP的匹配函數(shù)、prolog的合一運(yùn)算自動(dòng)匹配、自動(dòng)搜索都具有很強(qiáng)的模式匹配機(jī)制。)因此可以說LISP和prolog是兩種較為典型的人工智能語(yǔ)言。
編輯本段人工智能語(yǔ)言的歷史
人工智能語(yǔ)言
在人工智能的研究發(fā)展過程中,從一開始就注意到了人工智能語(yǔ)言問題。人工智能發(fā)展的初期,人工智能語(yǔ)言就得到了研究和開發(fā)。實(shí)際上四十多年來有一百來種人工智能語(yǔ)言先后出現(xiàn)過,但很多都被淘汰了。它們大抵有三個(gè)來源。第一個(gè)來源是計(jì)算機(jī)科學(xué)家們對(duì)可計(jì)算性理論的研究。例如,LISP語(yǔ)言是為處理人工智能中大量出現(xiàn)符號(hào)編程問題而設(shè)計(jì)的,它的理論基礎(chǔ)是符號(hào)集上的遞歸函數(shù)論。已經(jīng)證明,用LISP可以編出符號(hào)集上的任何可計(jì)算函數(shù)。Prolog語(yǔ)言是為處理人工智能中也是大量出現(xiàn)的邏輯推理問題(首先是為解決自然語(yǔ)言理解問題)而設(shè)計(jì)的。它的理論基礎(chǔ)是一階謂詞演算(首先是它子集Horn子句演算)的消解法定理證明,其計(jì)算能力等價(jià)于LISP。OPS5面對(duì)的問題也是邏輯推理。不過PROLOG是向后推理,OPS5是向前推理。OPS5的理論基礎(chǔ)是Post的產(chǎn)生式系統(tǒng),其計(jì)算能力也等價(jià)于LISP。第二個(gè)來源是認(rèn)知科學(xué)的研究成果。人們研究出各種各樣的認(rèn)知模型,并為這些模型設(shè)計(jì)相應(yīng)的知識(shí)表示語(yǔ)言。例如產(chǎn)生式表示、框架表示、語(yǔ)義網(wǎng)絡(luò)表示等實(shí)際上都有其認(rèn)知模型作為背景。如上所述的OPS5是產(chǎn)生式表示的語(yǔ)言,SRL、FRL、FEST等是框架語(yǔ)言,概念圖和SNetI都是語(yǔ)義網(wǎng)絡(luò)表示語(yǔ)言。面向?qū)ο蟮某绦蛟O(shè)計(jì)是在SIMULA中的類程和Minsky的框架表示兩種思想融合的基礎(chǔ)上發(fā)展起來的(它適用于計(jì)算機(jī)軟件的所有領(lǐng)域,不只是人工智能)。
編輯本段面向主體(Agent,亦稱活體)程序設(shè)計(jì)
近年來出現(xiàn)了具有人工智能特色面向?qū)ο蟪绦蛟O(shè)計(jì),稱為面向主體(Agent,亦稱活體)程序設(shè)計(jì)。往一個(gè)對(duì)象中增加更多的智能,使它能根據(jù)環(huán)境的變化進(jìn)行推理并規(guī)劃自己的行為,就得到主體(Agent)。主體概念符合Minsky提出的“意念社會(huì)”認(rèn)知模型,特別適用于分布環(huán)境。經(jīng)典的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言是Smalltalk,面向主體的程序設(shè)計(jì)語(yǔ)言也已經(jīng)有了一些,如OZ等,但還沒被大家公認(rèn)和普遍采用。也有基于PDP認(rèn)知模型(Parallel Distributed Processing)的神經(jīng)網(wǎng)絡(luò)語(yǔ)言。第三來源是知識(shí)工程的實(shí)際需要。例如,為了開發(fā)各種領(lǐng)域的
專家系統(tǒng)而設(shè)計(jì)的包含不精確推理或不確定推理功能,甚至包含多種不同推理機(jī)制的AI語(yǔ)言,例如Loops和TUILI。還有的是看到某一個(gè)專家系統(tǒng)做得比較成功,干脆抽去它的領(lǐng)域知識(shí),留下它的表示方法,也成為一種語(yǔ)言,俗稱專家系統(tǒng)外殼。例如,抽去醫(yī)學(xué)專家系統(tǒng)MYSIN的領(lǐng)域知識(shí)就得到一個(gè)外殼語(yǔ)言Emycin。
編輯本段人工智能手冊(cè)
在人工智能手冊(cè)中介紹了七種人工智能語(yǔ)言:
LISP,PLANNER,CINNIVER,QLISP,POP-2,SAIL,FUZZY。近百種人工智能語(yǔ)言中,只有LISP和后起之秀Prolog是人工智能研究和應(yīng)用中占重要地位的兩種人工智能程序設(shè)計(jì)語(yǔ)言。雖然國(guó)內(nèi)外對(duì)這兩種AI語(yǔ)言曾有爭(zhēng)議,褒貶不一,但LISP和PROLOG的重要性是都不可否認(rèn)的。
談到LISP和PROLOG兩種AI語(yǔ)言的重要性,我們可以從美國(guó)AI界的權(quán)威學(xué)者、麻省理工學(xué)院教授P.H.Winston(溫斯頓)所說的三段話來體會(huì):
(1)溫斯頓認(rèn)為,LISP 語(yǔ)言是AI的數(shù)學(xué),不僅對(duì)AI的機(jī)器實(shí)現(xiàn)有重要意義,而且是AI理論研究的重要工具。
(2)“在中世紀(jì),拉丁文和希臘文的知識(shí)對(duì)所有學(xué)者來說,都是必不可少的。只懂一種語(yǔ)言的學(xué)者必然是一個(gè)殘缺不全的學(xué)者,他缺乏從兩個(gè)方面來觀察世界所獲得的那種理解力。同樣地,現(xiàn)代的AI專業(yè)人員如果不能同時(shí)大致通曉LISP和Prolog,也猶如一個(gè)殘疾人,因?yàn)榫蛷V義來說,這兩種人工智能的主要語(yǔ)言的知識(shí)都是必不可少的?!?
“我一直熱衷于Lisp,Lisp是在MIT被制造并且在那兒成長(zhǎng)起來的?!?
(3)概括地說,計(jì)算機(jī)語(yǔ)言的發(fā)展正是一個(gè)從HOW型低級(jí)語(yǔ)言向WHAT型高級(jí)語(yǔ)言進(jìn)化的過程.在HOW型語(yǔ)言中,程序編制者必須詳細(xì)說明運(yùn)算是怎樣(HOW)一步一步進(jìn)行的;而在WHAT型語(yǔ)言中,程序編制者只需簡(jiǎn)單說明要做的事情是什么(WHAT) 。 …現(xiàn)代的LISP語(yǔ)言是這些語(yǔ)言的佼佼者,因?yàn)椴捎肅ommon Lisp格式的Lisp具有非凡的表現(xiàn)力,但是如何做某件事情仍然是有待于Lisp程序編制者來表達(dá)的東西.相反,Prolog是一種明顯地沖破了HOW型語(yǔ)言陳規(guī)的語(yǔ)言, 它鼓勵(lì)程序編制者去描述情況和問題,而不是那些用來解決問題的詳細(xì)步驟。”
由以上論述可以看出LISP語(yǔ)言和Prolog語(yǔ)言對(duì)人工智能學(xué)科和人工智能學(xué)者的重要性。
一般來說,LISP可以稱為人工智能的匯編語(yǔ)言, Prolog是人工智能更高級(jí)的語(yǔ)言。