- 相關推薦
人工智能語言--PROLOG
摘 要 Prolog是人工智能語言的一個典型代表。本文簡要闡述了人工智能語言及其特點,并通過實例介紹了Prolog語言及其基本結構。關鍵詞 人工智能語言 Prolog在國家高中信息技術課程新標準的《人工智能初步》選修模塊中,要求學生通過學習,“了解一種人工智能語言的基本數據結構和程序結構,掌握相關概念,知道人工智能語言的主要特征。……初步學會使用該語言設計程序求解簡單問題,并能夠上機調試、執(zhí)行相應的程序!笔聦嵣,廣大的中小學信息技術教師對于Basic、C等過程式程序設計語言大多比較熟悉。那么,什么是人工智能語言? Prolog有哪些特點?目前常用的軟件版本有哪些?這就是本文準備回答的問題。一、什么是人工智能語言人工智能(AI)語言是一類適應于人工智能和知識工程領域的、具有符號處理和邏輯推理能力的計算機程序設計語言。能夠用它來編寫程序求解非數值計算、知識處理、推理、規(guī)劃、決策等具有智能的各種復雜問題。典型的人工智能語言主要有LISP、Prolog、Smalltalk、C 等。一般來說,人工智能語言應具備如下特點:·具有符號處理能力(即非數值處理能力); ·適合于結構化程序設計,編程容易; ·具有遞歸功能和回溯功能; ·具有人機交互能力; ·適合于推理; ·既有把過程與說明式數據結構混合起來的能力,又有辨別數據、確定控制的模式匹配機制。 人們可能會問,用人工智能語言解決問題與傳統(tǒng)的方法有什么區(qū)別呢?事實上,在解決一些復雜的、非結構化的問題時,人工智能方法與傳統(tǒng)方法有著差別。傳統(tǒng)方法通常把問題的全部知識以各種的模型表達在固定程序中,問題的求解完全在程序制導下按著預先安排好的步驟一步一步(逐條)執(zhí)行。解決問題的思路與馮.諾依曼式計算機結構相吻合。當前大型數據庫法、數學模型法、統(tǒng)計方法等都是嚴格結構化的方法。對于人工智能技術要解決的問題,往往無法把全部知識都體現在固定的程序中。通常需要建立一個知識庫(包含事實和推理規(guī)則),程序根據環(huán)境和所給的輸入信息以及所要解決的問題來決定自己的行動,所以它是在環(huán)境模式的制導下的推理過程。這種方法有極大的靈活性、對話能力、有自我解釋能力和學習能力。這種方法對解決一些條件和目標不大明確或不完備,(即不能很好地形式化,不好描述)的非結構化問題比傳統(tǒng)方法好。它采用用試探法來解決問題。人工智能也尚未發(fā)展到完全能解決這類問題的全部問題。這類問題是人工智能研究要解決的問題。隨之而來也希望計算機硬件結構也來一個革命,突破馮.諾依曼體系結構。二、Prolog語言及其基本結構Prolog是當代最有影響的人工智能語言之一,由于該語言很適合表達人的思維和推理規(guī)則,在自然語言理解、機器定理證明、專家系統(tǒng)等方面得到了廣泛的應用,已經成為人工智能應用領域的強有力的開發(fā)語言,F在的Prolog語言有許多版本,但它們的核心部分都是一樣的。Prolog的基本語句僅有三種,即事實、規(guī)則和目標三種類型的語句,且都用謂詞表示,因而程序邏輯性強,文法簡捷,清晰易懂。另一方面,Prolog是陳述性語言,一旦給它提交必要的事實和規(guī)則之后,Prolog就使用內部的演繹推理機制自動求解程序給定的目標,而不需要在程序中列出詳細的求解步驟。1、事實事實用來說明一個問題中已知的對象和它們之間的關系。在Prolog程序中,事實由謂詞名及用括號括起來的一個或幾個對象組成。謂詞和對象可由用戶自己定義。例如,謂詞likes(bill,book).是一個名為like的關系,表示對象bill和book之間有喜歡的關系。2、規(guī)則規(guī)則由幾個互相有依賴性的簡單句(謂詞)組成,用來描述事實之間的依賴關系。從形式上看,規(guī)則由左邊表示結論的后件謂詞和右邊表示條件的前提謂詞組成。例如,規(guī)則 bird(X):-animal(X),has(X,feather).表示凡是動物并且有羽毛,那么它就是鳥。3、目標(問題)把事實和規(guī)則寫進Prolog程序中后,就可以向Prolog詢問有關問題的答案,詢問的問題就是程序運行的目標。目標的結構與事實或規(guī)則相同,可以是一個簡單的謂詞,也可以是多個謂詞的組合。目標分內、外兩種,內部目標寫在程序中,外部目標在程序運行時由用戶手工鍵入。例如問題 ?-student(john).表示“john是學生嗎?”
三.Prolog程序的簡單例子以下兩個例子在Turbo Prolog 2.0環(huán)境下運行通過。[ 注:一個Turbo Prolog程序至少包括謂詞段、子句段和目標段三項。目標可以包含在程序中,也可以在程序運行時給出。]
例1 誰是john的朋友?predicates /*謂詞段,對要用的謂詞名和參數進行說明*/likes(symbol, symbol)friend(symbol, symbol)clauses /*子句段,存放所有的事實和規(guī)則*/likes(bell,sports). /*前4行是事實*/likes(mary,music).likes(mary,sports).likes(jane,smith).friend(john,X):-likes(X,sports),likes(X,music). /*本行是規(guī)則*/當上述事實與規(guī)則輸入計算機后,運行該程序,用戶就可以進行詢問,如輸入目標:friend(john,X) 即詢問john的朋友是誰,,這時計算機的運行結果為:X=mary (mary是john的朋友)1 Solution (得到了一個結果)程序運行界面如下圖所示:例2 漢諾塔問題:有N個有孔的盤子,最初這些盤子都疊放在柱a上(如圖1),要求將這N個盤子借助柱b從柱a移到柱c(如圖2),移動時有以下限制:每次只能移動一個盤子;大盤不能放在小盤上。問如何移動?
該問題可以采用遞歸法思想來求解,其源程序為:predicates /*謂詞段*/hanoi(integer)move(integer,symbol,symbol,symbol)inform(symbol,symbol).
clauses /*子句段*/hanoi(N):-move(N,a,b,c).move(1,A,_,C):-inform(A,C),!.move(N,A,B,C):-N1=N-1,move(N1,A,C,B),inform(A,C),move(N1,B,A,C).inform(Loc1,Loc2):-nl,write("移動1個盤子從柱" ,Loc1,"到柱",Loc2).
goal /*目標段,問移動3個盤子的方法*/hanoi(3).
這個例子的目標包含在程序里面,因此運行時程序將直接輸出所有結果。程序運行界面如下圖所示:
四、Prolog語言的常用版本Prolog語言最早是由法國馬賽大學的Colmerauer和他的研究小組于1972年研制成功。早期的Prolog版本都是解釋型的,自1986年美國Borland公司推出編譯型Prolog,即Turbo Prolog以后,Prolog便很快在PC機上流行起來。后來又經歷了PDC PROLOG、Visual Prolog不同版本的發(fā)展。并行的邏輯語言也于80年代初開始研制,其中比較著名的有PARLOG、Concurrent PROLOG等。1、Turbo Prolog由美國Prolog開發(fā)中心(Prolog Development Center, PDC)1986年開發(fā)成功、Borland公司對外發(fā)行,其1.0,2.0,2.1版本取名為Turbo Prolog,主要在IBM PC系列計算機,MS-DOS環(huán)境下運行。2、PDC Prolog1990年后,PDC推出新的版本,更名為PDC Prolog 3.0,3.2,它把運行環(huán)境擴展到OS/2操作系統(tǒng),并且向全世界發(fā)行。它的主要特點是:·速度快。編譯及運行速度都很快,產生的代碼非常緊湊!び脩艚缑嬗押谩L峁┝藞D形化的集成開發(fā)環(huán)境。·提供了強有力的外部數據庫系統(tǒng)!ぬ峁┝艘粋用PDC Prolog編寫的Prolog解釋起源代碼。用戶可以用它研究Prolog的內部機制,并創(chuàng)建自己的專用編程語言、推理機、專家系統(tǒng)外殼或程序接口。 ·提供了與其他語言(如C、Pascal、Fortran等)的接口。Prolog和其他語言可以相互調用對方的子程序。·具有強大的圖形功能。支持Turbo C、Turbo Pascal同樣的功能。3、Visual PrologVisual Prolog是基于Prolog語言的可視化集成開發(fā)環(huán)境,是PDC推出的基于Windows環(huán)境的智能化編程工具。目前,Visual Prolog在美國、西歐、日本、加拿大、澳大利亞等國家和地區(qū)十分流行,是國際上研究和開發(fā)智能化應用的主流工具之一。Visual Prolog具有模式匹配、遞歸、回溯、對象機制、事實數據庫和謂詞庫等強大功能。它包含構建大型應用程序所需要的一切特性:圖形開發(fā)環(huán)境、編譯器、連接器和調試器,支持模塊化和面向對象程序設計,支持系統(tǒng)級編程、文件操作、字符串處理、位級運算、算術與邏輯運算,以及與其它編程語言的接口。Visual Prolog包含一個全部使用Visual Prolog語言寫成的有效的開發(fā)環(huán)境,包含對話框、菜單、工具欄等編輯功能。Visual Prolog與SQL數據庫系統(tǒng)、C 開發(fā)系統(tǒng)、以及Visual Basic、Delphi或Visual Age等編程語言一樣,也可以用來輕松地開發(fā)各種應用。Visual Prolog軟件的下載地址為:http:/// 。
參考文獻:1. 廉師友 人工智能技術導論(第二版) 西安電子科技大學出版社 20022. 陳群秀 《人工智能》(遠程教育研究生課程) http:///tsinghua/rgzn/art2011.htm http:///tsinghua/rgzn/art212.htm3. Visual Prolog語言簡介 數據采集系統(tǒng)的英文論文及詳盡翻譯
人工智能概述(原創(chuàng))
【人工智能語言--PROLOG】相關文章:
淺談網絡語言對漢語言文化影響05-31
論文寫作語言技巧09-09
C語言教法初探05-19
淺議對比語言學08-21
語言文化論文格式標準05-29
雕塑創(chuàng)作中的語言及感受09-12
C語言程序設計 (一)05-11
語言文學畢業(yè)論文11-03
漢語言文學論文02-17