鄭波盡 鐘凱瑞
摘要:產(chǎn)生式系統(tǒng)是人工智能教學(xué)中的重點(diǎn)和難點(diǎn)。本文進(jìn)行了七個(gè)學(xué)期的教學(xué)實(shí)踐,通過設(shè)置對(duì)照組,定性地研究了在不同教學(xué)方法下學(xué)生的表現(xiàn)。結(jié)果發(fā)現(xiàn):1)在教學(xué)環(huán)節(jié)中,強(qiáng)調(diào)實(shí)踐、要求學(xué)生自行編制出程序是重要的,這能有效地促進(jìn)學(xué)生理解;2)在開放式教學(xué)情形下,學(xué)生的創(chuàng)造性會(huì)得到發(fā)揮;3)激發(fā)學(xué)生的興趣,則能有效地提高學(xué)生參與編程的積極性。通過總結(jié)教學(xué)經(jīng)驗(yàn),凝練出在產(chǎn)生式系統(tǒng)教學(xué)中需遵循的“興趣導(dǎo)向、實(shí)踐優(yōu)先、開放活潑”的教學(xué)思路。
關(guān)鍵詞:產(chǎn)生式系統(tǒng);人工智能;教學(xué)實(shí)踐
中圖分類號(hào):TP3-05 文獻(xiàn)標(biāo)識(shí)碼:A DOI:10.3969/j.issn.1003-6970.2015.05.007
0 引言
產(chǎn)生式系統(tǒng)是人工智能中的一個(gè)經(jīng)典部分。產(chǎn)生式系統(tǒng)的教學(xué)在人工智能的教學(xué)具有承上啟下的作用。首先,學(xué)生需要理解知識(shí)表中的邏輯表示方法之后才能更容易地學(xué)習(xí)該部分,這里,產(chǎn)生式系統(tǒng)表現(xiàn)出承接作用;其次,理解了產(chǎn)生式系統(tǒng),才能更容易地學(xué)習(xí)人工智能中其他相關(guān)知識(shí)。正是因?yàn)楫a(chǎn)生式系統(tǒng)具有承上啟下的作用,該部分的教學(xué)對(duì)于學(xué)生的融合貫通起著關(guān)鍵作用。此外,編寫產(chǎn)生式系統(tǒng)可以訓(xùn)練學(xué)生的邏輯能力,也可以作為計(jì)算機(jī)語言教學(xué)的良好實(shí)例。
對(duì)于產(chǎn)生式系統(tǒng)部分的教學(xué),主要目的在于:讓學(xué)生理解產(chǎn)生式系統(tǒng)的基本構(gòu)造,并能利用產(chǎn)生式系統(tǒng)求解問題。在我們的教學(xué)中,要求學(xué)生能夠使用產(chǎn)生式系統(tǒng)解決一些有趣的智力題,從而真正體現(xiàn)機(jī)器求解智力問題的能力。
為了達(dá)到該目的,我們?cè)谄邆€(gè)學(xué)期的課程上進(jìn)行了各種探索。本文通過總結(jié)這七個(gè)學(xué)期的經(jīng)驗(yàn),提出產(chǎn)生式系統(tǒng)教學(xué)中需遵循的“興趣導(dǎo)向,實(shí)踐優(yōu)先,開發(fā)活潑”的教學(xué)思路。
1 教學(xué)實(shí)踐案例
在本教學(xué)實(shí)踐案例中,共選擇了2006—2007學(xué)年兩個(gè)學(xué)期、2007—2008學(xué)年第一個(gè)學(xué)期、2010—2011學(xué)年兩個(gè)學(xué)期,2011—2012學(xué)年兩個(gè)學(xué)期作為考察對(duì)象。在授課中,分為《人工智能A》和《人工智能B》兩種教學(xué)形式。選擇《人工智能B》的班級(jí)不進(jìn)行上機(jī)實(shí)驗(yàn)操作,而選擇《人工智能A》的班級(jí)需要在計(jì)算機(jī)上完成相應(yīng)的實(shí)驗(yàn)。
為了達(dá)到形象化教學(xué)的目標(biāo),在產(chǎn)生式系統(tǒng)的教學(xué)中,選擇了一個(gè)智力題作為算法求解目標(biāo)。該題目常稱為量水問題,可簡(jiǎn)單描述如下:
有兩個(gè)無刻度標(biāo)志的空水壺,分別可裝4升和3升的水。設(shè)另有一個(gè)10升的水壺裝滿了水。各個(gè)水壺之間僅可以相互傾灌。問如何通過倒水或灌水操作,量出2升的水來。
該問題是一個(gè)典型的智力問題。對(duì)于大學(xué)生來講,該問題并不困難。但是,用計(jì)算機(jī)來求解確實(shí)一個(gè)具有挑戰(zhàn)性的問題,因?yàn)椋瑢W(xué)生們不僅僅是自己會(huì)求解該問題,還要讓機(jī)器也能做到。
1.1 教學(xué)情況說明
為了考察實(shí)踐編程環(huán)境的影響,對(duì)于《人工智能B》的班級(jí),僅進(jìn)行理論教學(xué)。教學(xué)步驟為:1)簡(jiǎn)單介紹產(chǎn)生式系統(tǒng)的構(gòu)成:數(shù)據(jù)庫、規(guī)則庫、推理機(jī);2)講授水壺之間傾倒的所有規(guī)則;3)給出程序,將程序中的各條語句與理論一一對(duì)應(yīng)說明。
對(duì)程序部分,則教授由教師所編寫的程序。具體教學(xué)內(nèi)容如下:
1)首先定義數(shù)據(jù)庫中的變量,即水壺中已存水的數(shù)量。定義了三個(gè)變量,并賦予初值。程序用C語言可以寫作如下語句:
1.2 教學(xué)效果說明
對(duì)于所有班級(jí)的學(xué)生,都組織書面考試??荚嚨念}目就是默寫整個(gè)程序。由于選課學(xué)生的專業(yè)不同,因此,卷面成績(jī)的波動(dòng)較大。數(shù)學(xué)專業(yè)的學(xué)生選擇的是《人工智能B》,從卷面上看,小錯(cuò)漏較多,說明多數(shù)是靠背誦過關(guān)。自動(dòng)化專業(yè)和計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生選擇的是《人工智能A》,多數(shù)情形下表現(xiàn)略好。然而,在前五個(gè)學(xué)期的教學(xué)實(shí)踐中,教師先行給出了程序,相反地,學(xué)生錯(cuò)漏的出現(xiàn)率較高,說明學(xué)生的依賴心理較重,靠背誦過關(guān);在后兩個(gè)學(xué)期中,教師沒有先行給出程序,卷面成績(jī)反而上升,小錯(cuò)漏減少,說明學(xué)生理解的程度較高。這部分的結(jié)果表明:實(shí)踐環(huán)節(jié)對(duì)教學(xué)效果的影響很大,加入實(shí)踐環(huán)節(jié)能顯著提高教學(xué)效果。
除開書面考試成績(jī)的比較,當(dāng)沒有先行給出程序時(shí),學(xué)生們最主要的進(jìn)步是在實(shí)驗(yàn)環(huán)節(jié)。由于沒有程序,學(xué)生們開動(dòng)腦筋,對(duì)于量水問題給出了很多其他的方案。在2010—2011學(xué)年,學(xué)生提出了用寬度優(yōu)先、深度優(yōu)先等搜索策略來改進(jìn)隨機(jī)推理機(jī)制,以獲得最簡(jiǎn)單的倒水方案,并給出了正確的源程序。在2011—2012學(xué)年第二個(gè)學(xué)期,學(xué)生們又提出了一個(gè)意想不到的新策略。
學(xué)生提出的策略是:每次將4升壺的水倒入3升壺,3升壺的水倒入10升壺,而10升壺的水倒?jié)M4升壺。由于從數(shù)學(xué)上看,數(shù)字4和3互質(zhì),且相差僅僅為1,因此,這一個(gè)循環(huán)傾倒的策略總能獲得2升水。即使是換成要量出5升水等形式,也很容易地能得到。
學(xué)生所提出的策略從編程上看,更為簡(jiǎn)單,也能達(dá)到以前程序的效果,充分說明了大學(xué)生的創(chuàng)新能力。
從以上兩次學(xué)生提出的創(chuàng)新思路,尤其是后一次的思路來看,教學(xué)效果要遠(yuǎn)遠(yuǎn)好于以前的固定刻板的教學(xué)模式,說明在開放式情形下,學(xué)生的創(chuàng)造性能夠得到發(fā)揮。
因?yàn)閷?shí)踐環(huán)節(jié)對(duì)教學(xué)效果非常重要,在后面兩個(gè)學(xué)期的教學(xué)中,我們著重強(qiáng)調(diào)了提升學(xué)生興趣的教學(xué)環(huán)節(jié),增加了學(xué)生編寫程序的積極性。
2 經(jīng)驗(yàn)總結(jié)
從這個(gè)教學(xué)案例中,可以總結(jié)出這么幾方面的經(jīng)驗(yàn):
1)在產(chǎn)生式系統(tǒng)的教學(xué)中,切忌只是從理論到理論。從理論到理論的方式會(huì)使得學(xué)生失去基本的興趣。當(dāng)失去基本的興趣以后,學(xué)生將不再配合學(xué)習(xí),從而使得后續(xù)的教學(xué)更為艱難。
2)最好采用案例教學(xué)的方式。采用案例教學(xué)的方式會(huì)使得學(xué)生更容易理解,更容易接受。對(duì)于案例的選擇,可以選擇傳教士過河問題、量水問題、八皇后問題等學(xué)生喜聞樂見的智力題,要求學(xué)生用計(jì)算機(jī)程序的方式解決。在案例的選擇上,要堅(jiān)持簡(jiǎn)單原則,太復(fù)雜的程序?qū)W生會(huì)不太喜歡。從實(shí)踐上看,量水問題比傳教士過河問題要簡(jiǎn)單,因此,建議多選擇這樣的案例。
3)相信學(xué)生,從而給學(xué)生表現(xiàn)的機(jī)會(huì)。大學(xué)生處于創(chuàng)造力的高峰時(shí)期,如果能夠激發(fā)學(xué)生的興趣,則學(xué)生自然會(huì)在興趣的指引下發(fā)揮其創(chuàng)造力,給出更簡(jiǎn)單更有效的方案。
4)實(shí)踐優(yōu)先。由于長(zhǎng)期的應(yīng)試教育的熏陶,大學(xué)生普遍具有“等、靠、要”的思想。如果不給予實(shí)踐的機(jī)會(huì),多數(shù)大學(xué)生們通常不會(huì)去嘗試求解難度較大的問題。在實(shí)踐中,要避免將學(xué)生看作機(jī)器,不能要求學(xué)生完全按照實(shí)驗(yàn)操作規(guī)程進(jìn)行操作。這樣的標(biāo)準(zhǔn)化、刻板化的實(shí)踐的確從表面上看實(shí)驗(yàn)報(bào)告更漂亮,但實(shí)際上,學(xué)生多數(shù)情況下是知其然,不知其所以然。從教學(xué)的本質(zhì)上講,這樣做是違背教學(xué)規(guī)律的。
5)理論升華。在實(shí)踐完成以后,教師一定要抓住機(jī)會(huì),將程序中的各個(gè)部分與理論中的各個(gè)部分對(duì)應(yīng)起來。這樣學(xué)生才能夠融會(huì)貫通,真正理解產(chǎn)生式系統(tǒng)。
總而言之,對(duì)于產(chǎn)生式系統(tǒng)這樣的知識(shí)點(diǎn),在實(shí)踐中采用“興趣導(dǎo)向,實(shí)踐優(yōu)先,開放活潑”的教學(xué)思路是可行的。
3 結(jié)束語
對(duì)于《人工智能》課程中產(chǎn)生式系統(tǒng)這一知識(shí)點(diǎn),本文討論了教學(xué)中的一點(diǎn)心得體會(huì),總結(jié)出“興趣導(dǎo)向,實(shí)踐優(yōu)先,開放活潑”的教學(xué)思路。目前,在《人工智能》的教學(xué)中,對(duì)于產(chǎn)生式系統(tǒng)這部分的教學(xué),我們堅(jiān)持使用本文提到的思路,效果良好。從學(xué)生的反應(yīng)來看,加深了對(duì)于機(jī)器求解問題的理解,加深了對(duì)人工智能的理解。