亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

人工智能語言--PROLOG

  • 相關(guān)推薦

人工智能語言--PROLOG

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

【人工智能語言--PROLOG】相關(guān)文章:

淺談網(wǎng)絡(luò)語言對漢語言文化影響05-31

論文寫作語言技巧09-09

C語言教法初探05-19

淺議對比語言學(xué)08-21

語言文化論文格式標(biāo)準(zhǔn)05-29

雕塑創(chuàng)作中的語言及感受09-12

C語言程序設(shè)計(jì) (一)05-11

語言文學(xué)畢業(yè)論文11-03

漢語言文學(xué)論文02-17

語言的科學(xué)性與藝術(shù)性—談重視修辭教學(xué)與提高語言能力的關(guān)系[論06-23