人工智能語言--PROLOG

學識都 人氣:5.14K
人工智能語言--PROLOG
摘 要 Prolog是人工智能語言的一個典型代表。本文簡要闡述了人工智能語言及其特點,並通過實例介紹了Prolog語言及其基本結構。關鍵詞 人工智能語言 Prolog
在國家高中信息技術課程新標準的《人工智能初步》選修模塊中,要求學生通過學習,“瞭解一種人工智能語言的基本數據結構和程序結構,掌握相關概念,知道人工智能語言的主要特徵。……初步學會使用該語言設計程序求解簡單問題,並能夠上機調試、執行相應的程序。”事實上,廣大的中小學信息技術教師對於Basic、C等過程式程序設計語言大多比較熟悉。那麼,什麼是人工智能語言? Prolog有哪些特點?目前常用的軟件版本有哪些?這就是本文準備回答的問題。一、什麼是人工智能語言人工智能(AI)語言是一類適應於人工智能和知識工程領域的、具有符號處理和邏輯推理能力的計算機程序設計語言。能夠用它來編寫程序求解非數值計算、知識處理、推理、規劃、決策等具有智能的各種複雜問題。典型的人工智能語言主要有LISP、Prolog、Smalltalk、C 等。一般來說,人工智能語言應具備如下特點:·具有符號處理能力(即非數值處理能力); ·適合於結構化程序設計,編程容易; ·具有遞歸功能和回溯功能; ·具有人機交互能力; ·適合於推理; ·既有把過程與說明式數據結構混合起來的能力,又有辨別數據、確定控制的模式匹配機制。 人們可能會問,用人工智能語言解決問題與傳統的方法有什麼區別呢?事實上,在解決一些複雜的、非結構化的問題時,人工智能方法與傳統方法有着差別。傳統方法通常把問題的全部知識以各種的模型表達在固定程序中,問題的求解完全在程序制導下按着預先安排好的步驟一步一步(逐條)執行。解決問題的思路與馮.諾依曼式計算機結構相吻合。當前大型數據庫法、數學模型法、統計方法等都是嚴格結構化的方法。對於人工智能技術要解決的問題,往往無法把全部知識都體現在固定的程序中。通常需要建立一個知識庫(包含事實和推理規則),程序根據環境和所給的輸入信息以及所要解決的問題來決定自己的行動,所以它是在環境模式的制導下的推理過程。這種方法有極大的靈活性、對話能力、有自我解釋能力和學習能力。這種方法對解決一些條件和目標不大明確或不完備,(即不能很好地形式化,不好描述)的非結構化問題比傳統方法好。它採用用試探法來解決問題。人工智能也尚未發展到完全能解決這類問題的全部問題。這類問題是人工智能研究要解決的問題。隨之而來也希望計算機硬件結構也來一個革命,突破馮.諾依曼體系結構。二、Prolog語言及其基本結構Prolog是當代最有影響的人工智能語言之一,由於該語言很適合表達人的思維和推理規則,在自然語言理解、機器定理證明、專家系統等方面得到了廣泛的應用,已經成爲人工智能應用領域的強有力的開發語言。現在的Prolog語言有許多版本,但它們的核心部分都是一樣的。Prolog的基本語句僅有三種,即事實、規則和目標三種類型的語句,且都用謂詞表示,因而程序邏輯性強,文法簡捷,清晰易懂。另一方面,Prolog是陳述性語言,一旦給它提交必要的事實和規則之後,Prolog就使用內部的演繹推理機制自動求解程序給定的目標,而不需要在程序中列出詳細的求解步驟。1、事實事實用來說明一個問題中已知的對象和它們之間的關係。在Prolog程序中,事實由謂詞名及用括號括起來的一個或幾個對象組成。謂詞和對象可由用戶自己定義。例如,謂詞likes(bill,book).是一個名爲like的關係,表示對象bill和book之間有喜歡的關係。2、規則規則由幾個互相有依賴性的簡單句(謂詞)組成,用來描述事實之間的依賴關係。從形式上看,規則由左邊表示結論的後件謂詞和右邊表示條件的前提謂詞組成。例如,規則 bird(X):-animal(X),has(X,feather).表示凡是動物並且有羽毛,那麼它就是鳥。3、目標(問題)把事實和規則寫進Prolog程序中後,就可以向Prolog詢問有關問題的答案,詢問的問題就是程序運行的目標。目標的結構與事實或規則相同,可以是一個簡單的謂詞,也可以是多個謂詞的組合。目標分內、外兩種,內部目標寫在程序中,外部目標在程序運行時由用戶手工鍵入。例如問題 ?-student(john).表示“john是學生嗎?”