張聰品 孫全黨 趙小莉
高中信息技術(shù)課包括必修與選修兩個部分,高中信息技術(shù)課總學(xué)分為2+2,其中必修2學(xué)分,科目內(nèi)選修(人工智能初步)2學(xué)分。4個學(xué)分是學(xué)生取得高中畢業(yè)資格的基本要求。人工智能初步選修模塊包括五部分,分別是初識人工智能、知識的表示、人工智能語言(Prolog語言)、推理與專家系統(tǒng)、通過搜索求解問題。
中學(xué)生選修《人工智能初步》具有重要意義,第一,既培養(yǎng)了學(xué)生多種思維方式,又綜合鍛煉了信息素養(yǎng)?,F(xiàn)實世界的問題可以按照結(jié)構(gòu)化程度劃分成三個層次:結(jié)構(gòu)化問題、非結(jié)構(gòu)化問題、半結(jié)構(gòu)化問題。一般說來,中學(xué)階段開設(shè)的傳統(tǒng)意義上的信息技術(shù)課程中所介紹的信息技術(shù),例如多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)、數(shù)據(jù)庫技術(shù)、算法與程序設(shè)計等,都是求解結(jié)構(gòu)化問題的基本技術(shù)。而人工智能技術(shù)則是解決非結(jié)構(gòu)化、半結(jié)構(gòu)化問題、復(fù)雜的結(jié)構(gòu)化問題的一類有效技術(shù);第二,使學(xué)生體驗人類專家解決復(fù)雜問題的思路,從而提高學(xué)生的邏輯思維能力;第三,使學(xué)生了解信息技術(shù)發(fā)展的前沿,激發(fā)學(xué)生對信息技術(shù)未來的追求。
《人工智能初步》選修模塊的教學(xué)內(nèi)容決定了其課堂教學(xué)應(yīng)與其他模塊課堂教學(xué)存在較大的不同,如何呈現(xiàn)技術(shù)原理,如何把握技術(shù)深度,如何提練技術(shù)方法,如何創(chuàng)設(shè)技術(shù)情境等這些超越了技術(shù)本身的知識和原理框架的問題,是《人工智能初步》模塊的課堂教學(xué)需要探索解決的。本文按照課程標(biāo)準(zhǔn),通過研究人工智能初步選修模塊中的技術(shù)對學(xué)生學(xué)習(xí)的價值,在省中學(xué)骨干教師培訓(xùn)過程中尋求教學(xué)內(nèi)容的呈現(xiàn)和教學(xué)方法突破的方略。
一、《人工智能初步》模塊內(nèi)容簡介
目前,比較流行的人工智能理論有思維理論、知識閾值理論、進化理論。《人工智能初步》選修模塊的智能思想是基于知識閾值理論的,因此,教學(xué)中每一部分的講解始終貫徹知識閾值理論的思想。
所謂知識閾值理論是指人類的智能活動過程主要是一個獲得并運用知識的過程,知識是智能的基礎(chǔ)。為了使計算機具有智能,就必須使它具有知識。為了使計算機具有知識,需要用適當(dāng)?shù)哪J桨阎R表示出來才能存儲到計算機中去,教材的第二部分詳細介紹了常用的知識表示方法。
要在計算機上設(shè)計、實現(xiàn)智能系統(tǒng),實現(xiàn)對人類腦功能的模擬和再現(xiàn),就需要掌握計算機程序設(shè)計語言。教材的第三部分人工智能語言詳細介紹了Proiog。Prolog是以一階謂詞邏輯為基礎(chǔ)的邏輯程序設(shè)計語言。Prolog程序由事實、規(guī)則和目標(biāo)組成,它通過演繹推理求解問題。Prolog是描述性非常強的一種語言,語句的說明性語義和過程性語義具有統(tǒng)一性,很適合表達人的思維和推理規(guī)則,具有模式匹配、回溯、遞歸、事實數(shù)據(jù)庫等強大功能。隨著人工智能技術(shù)的成熟和廣泛應(yīng)用,智能系統(tǒng)越來越受到重視,Prolog語言也得到充分應(yīng)用?,F(xiàn)在,Prolog語言已廣泛應(yīng)用于專家系統(tǒng)(教材第四部分)、復(fù)雜抽象問題求解(教材第五部分)等領(lǐng)域,在這些智能系統(tǒng)中,首先需要把知識在Prolog環(huán)境下表示出來。
知識表示和人工智能語言分別是知識閾值理論和智能系統(tǒng)開發(fā)的基礎(chǔ)和核心部分,在教學(xué)中舉足輕重。本文對這兩部分的教學(xué)進行了深入研究探討,在培訓(xùn)中跳出了教學(xué)習(xí)慣思維的羈絆,將知識表示方法與人工智能語言融于一體,教學(xué)中既體現(xiàn)技術(shù)方法和技術(shù)思想的挖掘,又關(guān)注技術(shù)文化與信息文化理念的表達。
二、《人工智能初步》核心內(nèi)容——基于Prolog的知識表示
教材詳細介紹了框架表示法、產(chǎn)生式表示法、謂詞邏輯表示法、狀態(tài)空間表示法、與或圖表示法。本文在培訓(xùn)過程中探索了不同的知識表示法統(tǒng)一于Prolog語言下的教學(xué)思維。
1一階謂詞邏輯和產(chǎn)生式表示法
一階謂詞邏輯表示法以謂詞公式來表示事物的狀態(tài)、屬性、概念、動作的主客體等事實性知識,表示事物之間的因果關(guān)系,表示對各種問題的比較與分析得出的規(guī)律性知識等過程性的知識。用謂詞公式表示知識時,首先定義謂詞,指出每個謂詞的確切含義,然后再用聯(lián)結(jié)詞把有關(guān)的謂詞連接起來,形成一個謂詞公式表達一個完整的意義。Prolog語言的事實語句表示事物的性質(zhì)和關(guān)系,規(guī)則語句表示事物間的因果關(guān)系、蘊含關(guān)系以及對應(yīng)關(guān)系。顯然,謂詞公式很容易在Prolog環(huán)境下使用事實語句和規(guī)則語句實現(xiàn)。--
產(chǎn)生式表示法以產(chǎn)生式表示具有因果關(guān)系的知識,一組產(chǎn)生式放在一起,相互配合協(xié)同作用,在求解問題時,一個產(chǎn)生式生成的結(jié)論可以供另—個產(chǎn)生式作為已知事實使用,從而形成產(chǎn)生式系統(tǒng)。一個產(chǎn)生式系統(tǒng)通常包括規(guī)則庫、綜合數(shù)據(jù)庫、控制系統(tǒng)三部分。綜合數(shù)據(jù)庫用來存放與求解問題有關(guān)的各種當(dāng)前信息的數(shù)據(jù)結(jié)構(gòu),規(guī)則庫存放與求解問題有關(guān)的所有規(guī)則的集合,控制系統(tǒng)由一組程序組成,用來控制整個產(chǎn)生式系統(tǒng)的運行,決定問題求解過程的推理線路,實現(xiàn)對問題的求解。在Prolog環(huán)境下,綜合數(shù)據(jù)庫中的事實使用事實語句實現(xiàn),規(guī)則庫中的規(guī)則使用規(guī)則語句實現(xiàn),控制系統(tǒng)由Prolog語言提供的機制實現(xiàn)。
在培訓(xùn)過程中使用了教材第四部分推理與專家系統(tǒng)中動物識別系統(tǒng)中的知識作為例子,以便學(xué)員以知識閾值理論為主線,系統(tǒng)化教材的內(nèi)容。
動物識別系統(tǒng)包含15條規(guī)則,見培訓(xùn)教材P78-79頁,以規(guī)則10為例,“如果動物是食肉動物,它的顏色是黃褐色,它有深色斑點,那么這個動物是豹”,使用一階謂詞邏輯表示時,首先定義謂詞:eating_meat(x)表示x是食肉動物,leopm'dl(x)表示x是豹,yellow_blaek(x)表示x是黃褐色,black_spot(x)表示x有深色斑點,然后使用聯(lián)結(jié)詞把謂詞連接起來,形成謂詞公式:(Vx) (eating_meat(x)^yellow_black(x)^black_spot(x)_leopardl(x))。用產(chǎn)生式表示為:IF eating_meat(x)AND yellow_black(x)AND black_spot(x)THEN leopardl(x)。
在培訓(xùn)過程中,在Prolog環(huán)境下定義謂詞animal_is(x)表示動物是x,it_is(x)表示類別是x,posit]ve表示事實。下面的規(guī)則語句實現(xiàn)了上述產(chǎn)生式的功能。animal is(“豹”):一it_is(“食肉動物”),positive(“黃褐色”),positive(“深色斑點”)。
培訓(xùn)過程中在Pinlog語言環(huán)境下設(shè)計了動物識別系統(tǒng)程序,并把該識別程序和InterModeller v3,4下動物識別過程進行了分析比較,使學(xué)員同時掌握了第四章專家系統(tǒng)的基本原理以及設(shè)計思想。
2框架表示法
框架表示法是以框架理論為基礎(chǔ)發(fā)展起來的一種結(jié)構(gòu)化的知識表示方法??蚣芾碚撜J為人們對現(xiàn)實世界中各種事物的認識都是以一種類似于框架的結(jié)構(gòu)存儲在記憶中,遇到一個新事物時,從記憶中找出一個合適的框架,根據(jù)新的情況對其細節(jié)加以修改、
補充,形成對新事物的認識。但是,人們不可能把過去的經(jīng)驗全部存放在大腦中,而只能以一種通用的數(shù)據(jù)結(jié)構(gòu)形式把它們存儲起來,當(dāng)新情況發(fā)生時,只需把新的數(shù)據(jù)加入到通用數(shù)據(jù)結(jié)構(gòu)中便可形成一個具體的實體,這樣的通用數(shù)據(jù)結(jié)構(gòu)就稱為框架。一個框架系統(tǒng)由多個框架組成,一個框架由若干個槽組成,槽用于描述所論對象某一方面的屬性,一個槽由若干個側(cè)面組成,側(cè)面用于描述相應(yīng)屬性的一個方面。下面是—個使用框架表示的關(guān)于中國地震的報道。
框架名:<中國地震>
地點:中國汶川
時間:5月12日
死亡人數(shù):69200
受傷人數(shù):374216
震級:8.0
框架表示法中的框架是一種描述所研究對象屬性的數(shù)據(jù)結(jié)構(gòu),所研究對象的屬性是事實性的知識,在Prolog環(huán)境下,使用事實語句實現(xiàn)事實性知識的表示,由于框架是一種結(jié)構(gòu)化的知識表示法,因此關(guān)鍵問題是定義事實語句中的項,這些項應(yīng)把對象的屬性描述出來。把框架中的每一個槽定義成一個項,槽中的一個側(cè)面定義為一個子項。
Frame(name(“中國地震”)
location(“中國汶川”)
time(“5月12日”)
number_of_death(“69200”)
number_of_hurted(“374216”)
level一o£_earthquake(“8.0”)
另外,在prolog下可以把框架的內(nèi)容作為一項,槽作為框架內(nèi)容的一個子項,側(cè)面作為槽的子項實現(xiàn)框架知識表示。
3狀態(tài)空間表示法和與或圖表示法
在問題求解中,問題的狀態(tài)空間表示法與問題的與或圖表示法是使用最多的表示法。
在狀態(tài)空間表示法中,問題是用“狀態(tài)”和“操作”來表示的,問題求解過程是用“狀態(tài)空間”來表示的。狀態(tài)是表示問題求解過程中每一步問題狀況的數(shù)據(jù)結(jié)構(gòu),它可形式地表示為:Sk={SkO,Ski…};操作是把問題從一種狀態(tài)變換為另一種狀態(tài)的手段;狀態(tài)空間用來描述一個問題的全部狀態(tài)以及這些狀態(tài)之間的相互關(guān)系。在求問題的解時,首先為問題選擇適當(dāng)?shù)摹盃顟B(tài)”及“操作”的形式化描述方法,然后從某個初始狀態(tài)出發(fā),每次使用一個“操作”,遞增地建立起操作序列,直到達到目標(biāo)狀態(tài)為止。問題的一個解就是由初始狀態(tài)到目標(biāo)狀態(tài)所使用的算符序列。利用prolog提供的匹配合一、回溯等運行機制,狀態(tài)空間表示法描述的問題很容易實現(xiàn)。
與或圖表示法是通過對問題進行分解或等價變換找到問題的解。分解是指如果一個問題P可以歸約為一組子問題P1,P2,……,Pn,并且只有當(dāng)所有子問題H(i_1,2,……,n)都有解時,原問題P才有解;任何一個子問題Pi無解都會導(dǎo)致原問題P無解,分解所得到的子問題的“與”和原問題P等價。等價變換是指如果一個問題P可以歸納為一組子問題Pl,P2,…一,Pn,并且這些子問題Pi中只要有一個有解則原問題P就有解,只有當(dāng)所有子問題Pi都無解時原問題P才無解,變換所得到的子問題的“或”與原問題P等價。無論是分解還是變換,都是要將原問題歸約為一系列直接解答的本原問題或不可解問題[5]。分解或等價變換的過程可以使用與或樹描述出來,問題的解就是通過搜索與或樹找到的解樹。利用prolog提供的遞歸機制,與或樹表示法描述的問題的解很容易實現(xiàn)。
在培訓(xùn)過程中,強調(diào)這兩種知識表示方法是知識表示的具體方式,與問題密切相關(guān),它們描述了人類解決問題的思維方式,進一步強調(diào)智能系統(tǒng)基于知識閾值理論的設(shè)計思想。培訓(xùn)過程中使用漢諾塔問題作為例子,漢諾塔問題在prolog下的實現(xiàn)見教材64-65頁,該案例融合了教材第二部分、第三部分以及第五部分的教學(xué)內(nèi)容。
本文對中學(xué)信息技術(shù)課選修模塊《人工智能初步》的教材進行了深入研究,在對河南省骨干教師新課程培訓(xùn)中,突破了舊的教學(xué)習(xí)慣,緊緊圍繞知識閾值理論,將整個教材融于一體,在較短的時間內(nèi),使學(xué)員掌握了《人工智能初步》的技術(shù)思想,取得了較好的培訓(xùn)效果。
參考文獻
[1]普通高中課程標(biāo)準(zhǔn)實驗教科書,信息技術(shù)選修5人工智能初步,上海:上??萍冀逃霭嫔纾?005
[2]雷英杰,刑清華,王濤,人工智能(AI)程序設(shè)計(面向?qū)ο笳Z言),北京:清華大學(xué)出版社,2005
[3]
George Kl~ger,Artifieial Intelligence Structures and Strategies for Complex Problem Solving Fifth Edition,Beijing:China Machine Press,2006
[4]
Wlodzimierz Drabent,Pmving correctness and completeness of normal programs—a declarative approach,Theory and Practice of Logic Programming,2005,5(6)
[5] Baudouin LE Charlier,Sabina Rossi,Pascal Van Hentenryck,Sequence-based abstract interpretation of prolog,Theory and Practice of Logic Programming,2002,2(1)
[6]王永慶,人工智能原理與方法,西安:西安交通大學(xué)出版社,2003
(責(zé)任編輯關(guān)燕云)