人工智慧語言

人工智慧(AI)語言是一類適應於人工智慧和知識工程領域的、具有符號處理和邏輯推理能力的電腦程式設計語言。能夠用它來編寫程式求解非數值計算、知識處理、推理、規劃、決策等具有智慧型的各種複雜問題。

人工智慧(AI)語言是一類適應於人工智慧和知識工程領域的、具有符號處理和邏輯推理能力的電腦程式設計語言。能夠用它來編寫程式求解非數值計算、知識處理、推理、規劃、決策等具有智慧型的各種複雜問題。
典型的人工智慧型語言主要有LISP、Prolog、Smalltalk、C++等。
一般來說,人工智慧語言應具備如下特點:
•具有符號處理能力(即非數值處理能力);
•適合於結構化程式設計,編程容易;
•具有遞歸功能和回溯功能;
•具有人機互動能力;
•適合於推理;
•既有把過程與說明式數據結構混合起來的能力,又有辨別數據、確定控制的模式匹配機制。
人們可能會問,用人工智慧語言解決問題與傳統的方法有什麼區別呢?
傳統方法通常把問題的全部知識以各種的模型表達在固定程式中,問題的求解完全在程式制導下按著預先安排好的步驟一步一步(逐條)執行。解決問題的思路與馮.諾依曼式計算機結構相吻合。當前大型資料庫法、數學模型法、統計方法等都是嚴格結構化的方法。
對於人工智慧技術要解決的問題,往往無法把全部知識都體現在固定的程式中。通常需要建立一個知識庫(包含事實和推理規則),程式根據環境和所給的輸入信息以及所要解決的問題來決定自己的行動,所以它是在環境模式的制導下的推理過程。這種方法有極大的靈活性、對話能力、有自我解釋能力和學習能力。這種方法對解決一些條件和目標不大明確或不完備,(即不能很好地形式化,不好描述)的非結構化問題比傳統方法好,它通常採用啟發式、試探法策略來解決問題。
人工智慧程式與傳統程式之間的差別
在處理一些簡單問題時,一般傳統方法和人工智慧用的方法沒有什麼區別。但在解決複雜問題時,人工智慧方法與傳統方法有差別。
(人工智慧程式與傳統程式的差別)——傳統方法:把問題的全部知識以各種的模型表達在固定程式中,問題的求解完全在程式制導下按著預先安排好的步驟一步一步(逐條)執行。這種方法解決嚴格結構(Well Structured)問題非常有效。如果把這類問題形式化為三元組(x,->,y),“x”是給定的信息,“->”為求解途徑,“y”是目標。傳統方法的特點:“x”、“y”是明確的、完備的;“->”有著固定的明確的程式。這個方法之所以有效,主要是因為這個思路與馮.諾依曼式計算機結構相吻合。當前大型資料庫法、數學模型法、統計方法等都是嚴格結構化的方法。
人工智慧方法:人工智慧要解決的問題,無法把全部知識都體現在固定的程式中。它要建立一個知識庫(包含事實和推理規則),程式根據環境和所給的輸入信息以及所要解決的問題來決定自己的行動,所以它是在環境模式的制導下的推理過程。這種方法有極大的靈活性、對話能力、有自我解釋能力和學習能力。這種方法對解決一些弱結構(ill structured)問題比傳統方法好。弱結構指“x”、“y”不大明確或不完備,即不能很好地形式化,不好描述。“->”用試探法。AI也尚未發展到完全能解決這類問題的全部問題。這類問題是AI研究要解決的問題。隨之而來也希望計算機硬體結構也來一個革命,突破馮.諾依曼體系結構。
人工智慧語言的特點
由於人工智慧研究的問題的特點和解決問題的方法的特殊性,為了能方便而有效地建立人工智慧系統,需要發展專門的人工智慧語言。人工智慧語言的特點是什麼,亦即人工智慧語言應具備的特徵是什麼?
一般來說,人工智慧語言應具備如下特點:
1.要有符號處理能力(即非數值處理能力);
2.適合於結構化程式設計,編程容易;(要把系統分解成若干易於理解和處理的小單位的能力,從而既能較為容易地改變系統的某一部分,而又不破壞整個系統。)
3.要有遞歸功能和回溯功能;
4.要有人機互動能力;
5.適合於推理;
6.要有把過程與說明式數據結構混合起來的能力,又要有辨別數據、確定控制的模式匹配機制。
函式型語言LISP和邏輯型語言PROLOG都適合作符號處理,都適合於結構化程式設計(LISP提供了函式定義,prolog提供了謂詞定義),都具有遞歸功能(prolog還具有自動回溯功能),都具有人機互動能力(prolog還特別適合於推理),也都具有把過程與說明式數據結構混合起來的能力以及辨別數據、確定控制的模式匹配機制(LISP將程式與數據均表示為表,因此可以把程式作為數據處理,也可將數據當作程式來執行。Prolog用一致的數據結構“項(term)”來構造數據和程式,事實、規則和詢問的表現形式都為Horn子句,執行時作統一的操作匹配。LISP的匹配函式、prolog的合一運算自動匹配、自動搜尋都具有很強的模式匹配機制。)因此可以說LISP和prolog是兩種較為典型的人工智慧語言。
人工智慧語言
在人工智慧的研究發展過程中,從一開始就注意到了人工智慧語言問題。人工智慧發展的初期,人工智慧語言就得到了研究和開發。實際上四十多年來有一百來種人工智慧語言先後出現過,但很多都被淘汰了。它們大抵有三個來源。第一個來源是計算機科學家們對可計算性理論的研究。例如,LISP語言是為處理人工智慧中大量出現符號編程問題而設計的,它的理論基礎是符號集上的遞歸函式論。已經證明,用LISP可以編出符號集上的任何可計算函式。Prolog語言是為處理人工智慧中也是大量出現的邏輯推理問題(首先是為解決自然語言理解問題)而設計的。它的理論基礎是一階謂詞演算(首先是它子集Horn子句演算)的消解法定理證明,其計算能力等價於LISP。OPS5面對的問題也是邏輯推理。不過PROLOG是向後推理,OPS5是向前推理。OPS5的理論基礎是Post的產生式系統,其計算能力也等價於LISP。第二個來源是認知科學的研究成果。人們研究出各種各樣的認知模型,並為這些模型設計相應的知識表示語言。例如產生式表示、框架表示、語義網路表示等實際上都有其認知模型作為背景。如上所述的OPS5是產生式表示的語言,SRL、FRL、FEST等是框架語言,概念圖和SNetI都是語義網路表示語言。面向對象的程式設計是在SIMULA中的類程和Minsky的框架表示兩種思想融合的基礎上發展起來的(它適用於計算機軟體的所有領域,不只是人工智慧)。
近年來出現了具有人工智慧特色面向對象程式設計,稱為面向主體(Agent,亦稱活體)程式設計。往一個對象中增加更多的智慧型,使它能根據環境的變化進行推理並規劃自己的行為,就得到主體(Agent)。主體概念符合Minsky提出的“意念社會”認知模型,特別適用於分布環境。經典的面向對象程式設計語言是Smalltalk,面向主體的程式設計語言也已經有了一些,如OZ等,但還沒被大家公認和普遍採用。也有基於PDP認知模型(Parallel Distributed Processing)的神經網路語言。第三來源是知識工程的實際需要。例如,為了開發各種領域的專家系統而設計的包含不精確推理或不確定推理功能,甚至包含多種不同推理機制的AI語言,例如Loops和TUILI。還有的是看到某一個專家系統做得比較成功,乾脆抽去它的領域知識,留下它的表示方法,也成為一種語言,俗稱專家系統外殼。例如,抽去醫學專家系統MYSIN的領域知識就得到一個外殼語言Emycin。
在人工智慧手冊中介紹了七種人工智慧語言:
LISP,PLANNER,CINNIVER,QLISP,POP-2,SAIL,FUZZY。近百種人工智慧語言中,只有LISP和後起之秀Prolog是人工智慧研究和套用中占重要地位的兩種人工智慧程式設計語言。雖然國內外對這兩種AI語言曾有爭議,褒貶不一,但LISP和PROLOG的重要性是都不可否認的。
談到LISP和PROLOG兩種AI語言的重要性,我們可以從美國AI界的權威學者、麻省理工學院教授P.H.Winston(溫斯頓)所說的三段話來體會:
(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是人工智慧更高級的語言。

相關詞條

相關搜尋

熱門詞條

聯絡我們