王敏
摘 要: 為了培養(yǎng)高中生在數(shù)學(xué)領(lǐng)域的科學(xué)研究能力,針對高中數(shù)學(xué)的研究性學(xué)習(xí),本文提出了基于遺傳算法的教學(xué)設(shè)計。該教學(xué)設(shè)計分為引入問題、介紹算法、熟悉源代碼、編寫程序、討論結(jié)果,共五部分。研究性學(xué)習(xí)按這五部分的順序依次進行,使學(xué)生能夠了解遺傳算法的原理,并掌握如何使用遺傳算法解決實際問題。這一教學(xué)設(shè)計表明,學(xué)生可以在遺傳算法的學(xué)習(xí)中提高科學(xué)研究能力。
關(guān)鍵詞: 高中數(shù)學(xué) 研究性學(xué)習(xí) 遺傳算法
1.引言
高中數(shù)學(xué)的研究性學(xué)習(xí)是教學(xué)研究的熱點[1],[2]。高中數(shù)學(xué)包括很多基礎(chǔ)數(shù)學(xué)知識,高中生可以利用這些基礎(chǔ)數(shù)學(xué)知識開展一些科學(xué)研究工作。在進行科學(xué)研究工作的過程中,學(xué)生可以學(xué)習(xí)一些基本的研究方法,掌握一些現(xiàn)代的研究技術(shù),并解決生活中的實際問題。研究性學(xué)習(xí)可以培養(yǎng)學(xué)生的創(chuàng)新意識和能力。學(xué)生通過研究性學(xué)習(xí),利用所學(xué)知識解決了實際問題,對高中階段的教學(xué)有著重要意義。
高中數(shù)學(xué)的教科書[3]介紹了算法的基本概念和知識。算法是計算機科學(xué)和技術(shù)的理論基礎(chǔ)。目前,計算機已經(jīng)進入了人們的日常生活,人們利用計算機解決了各種各樣的實際問題。建立某個實際問題的數(shù)學(xué)模型,然后利用已有的算法和相應(yīng)的計算機程序求解數(shù)學(xué)模型,就可以解決這個實際問題。因此,在高中階段開展算法的研究性學(xué)習(xí)有著廣闊的前景。下面我們討論基于遺傳算法的研究性學(xué)習(xí),并提出相應(yīng)的教學(xué)設(shè)計。
2.對遺傳算法的認(rèn)識
人們?nèi)粘I钪械暮芏鄦栴}本質(zhì)上都是優(yōu)化問題。比如,在大量商品里選擇質(zhì)量最好的商品,或者選擇最適合自己的商品。一般來說,優(yōu)化問題可以轉(zhuǎn)化為優(yōu)化模型。在求解優(yōu)化模型的眾多算法中,遺傳算法具有突出的計算效率。因此,遺傳算法已經(jīng)成為一個熱門的科學(xué)研究方向[4]。
遺傳算法模擬生物種群的進化過程,通過種群中個體的交叉、變異和選擇,實現(xiàn)了種群的進化和最優(yōu)解的尋找。它的尋優(yōu)能力很強。此外,如果優(yōu)化模型的目標(biāo)函數(shù)值是離散的數(shù)值,遺傳算法適用于求解這類數(shù)學(xué)模型。對于實際優(yōu)化問題的數(shù)學(xué)模型,目標(biāo)函數(shù)值一般都是離散的數(shù)值。因此利用遺傳算法可以解決很多實際問題。
在遺傳算法中,交叉、變異和選擇的計算方法較容易理解,高中生可以學(xué)習(xí)和掌握。一般優(yōu)化問題的數(shù)學(xué)模型也較容易建立,高中生可以進行研究。因此,針對高中數(shù)學(xué)的研究性學(xué)習(xí),我們提出一種基于遺傳算法的研究性教學(xué)設(shè)計。
3.基于遺傳算法的研究性教學(xué)設(shè)計
基于遺傳算法的研究性教學(xué)設(shè)計分為引入問題、介紹算法、熟悉源代碼、編寫程序、討論結(jié)果,共五個部分依次展開。
3.1引入問題
教師:如果我們打算去購買衣服或者鞋,那么有很多同類的商品可以選擇。這些商品的質(zhì)量不同,適合我們的程度也不同。我們根據(jù)質(zhì)量或者適合程度選擇商品,就是選擇最好的商品,它本質(zhì)上是一個優(yōu)化問題。把所有同類的商品依次編號為1、2、3…,選擇的商品號碼就是決策變量。對所有同類的商品依次打分,選擇的商品得分就是目標(biāo)函數(shù)。如果同類商品的數(shù)量很少,我們就可以用大腦進行選擇。如果同類商品的數(shù)量有幾百個,甚至幾千個,我們就很難用大腦進行選擇了。遺傳算法可以幫助我們解決這個問題。
3.2介紹算法
學(xué)生:什么是遺傳算法?
教師:遺傳算法是尋找優(yōu)化問題最優(yōu)解的一種方法。它通過模擬生物種群的進化過程,產(chǎn)生生物的最優(yōu)個體,即找到最優(yōu)的決策變量。多個決策變量組成一個種群,一個決策變量就是一個個體。通過兩個個體的交叉計算,一個個體的變異計算,以及選擇較好的個體,使種群越來越好。最后,得到了一些很好的決策變量,并在其中得到一個最優(yōu)的決策變量。
學(xué)生:遺傳算法是怎樣計算的?
教師:第一步,隨機選擇一定數(shù)量的決策變量組成一個種群。第二步,選擇種群中兩個較好的個體進行交叉計算,得到兩個新個體。按此方法產(chǎn)生一些新個體。選擇種群中一個較好的個體進行變異計算,得到一個新個體。按此方法產(chǎn)生另一些新個體。其中,通過交叉得到的新個體較多,通過變異得到的新個體較少。所有的新個體組成了一個臨時種群。臨時種群中的個體數(shù)量與原種群中的個體數(shù)量相同。第三步,在臨時種群和原種群中,選擇一些較好的個體組成一個新種群。新種群中的個體數(shù)量與原種群相同。第四步,新種群重新進入第二步的計算,直到循環(huán)計算的次數(shù)達(dá)到給定的最大值。
3.3熟悉源代碼
學(xué)生:如何使用遺傳算法進行計算?
教師:調(diào)用遺傳算法的程序,就可以計算數(shù)學(xué)模型了。由于matlab程序語言較容易學(xué)習(xí)和理解,我們選用遺傳算法的matlab程序進行學(xué)習(xí)和實驗。在進行遺傳算法的計算時,需調(diào)用表1中的m文件。
文件1調(diào)用了數(shù)學(xué)模型,輸出結(jié)果是目標(biāo)函數(shù)值。文件2隨機產(chǎn)生了初始種群,輸出結(jié)果是初始種群,文件3在種群中選擇了一些較好的個體,輸出結(jié)果是一些較好的個體。文件4通過交叉和變異得到了臨時種群,輸出結(jié)果是臨時種群。文件5在臨時種群和原種群中選擇得到了新種群,輸出結(jié)果是新種群。文件6通過調(diào)用文件1,對種群中所有個體按照優(yōu)劣排序,輸出結(jié)果是所有個體的次序。
學(xué)生:遺傳算法的主文件是什么?
其中,chromosome表示一個種群,pop是種群中決策變量的數(shù)量,gen是循環(huán)計算的最大次數(shù)。顯然,pop和gen越大,計算的效果越好,計算的復(fù)雜度也越高,計算所需時間也越長。因此,我們對pop和gen選取合適的值就可以了。
3.4編寫程序
學(xué)生:怎樣建立數(shù)學(xué)模型呢?
其中,x是決策變量,Y(x)是其目標(biāo)函數(shù)值,文件dataY.mat包含了一個數(shù)列Y,這個數(shù)列就是我們建立的數(shù)學(xué)模型。在選購商品的實際問題中,數(shù)列中的數(shù)值是任一商品的得分,該數(shù)值的順序號是商品的代號。這樣,我們就建立了選購商品的數(shù)學(xué)模型。通過編寫數(shù)列Y,我們可以建立很多實際問題的數(shù)學(xué)模型。
3.5討論結(jié)果
教師:從以上學(xué)習(xí)內(nèi)容可以看出,遺傳算法的理論和計算機程序都較容易理解。生活中的很多實際問題都可以轉(zhuǎn)化為優(yōu)化問題,進而建立數(shù)學(xué)優(yōu)化模型。這樣,我們就可以采用遺傳算法解決這些問題,初步開展科學(xué)研究工作。
4.結(jié)語
基于遺傳算法的研究性教學(xué)設(shè)計,理論內(nèi)容較適合高中教學(xué)。遺傳算法的matlab程序簡單易學(xué),高中生可以較快掌握。解決的實際問題和建立的數(shù)學(xué)模型,都適用于高中數(shù)學(xué)的研究性學(xué)習(xí)。因此,學(xué)生可以在遺傳算法的學(xué)習(xí)中提高科學(xué)研究能力。
參考文獻(xiàn):
[1]倪紅升.新課程高中數(shù)學(xué)研究性學(xué)習(xí)的若干選題[J].數(shù)學(xué)通報,2007,46(06):31-33.
[2]邱福強.探求有效途徑形成科學(xué)模式——關(guān)于實施高中數(shù)學(xué)研究性學(xué)習(xí)的思考及途徑[J].數(shù)學(xué)學(xué)習(xí)與研究,2011(5):21-22.
[3]普通高中課程標(biāo)準(zhǔn)實驗教科書數(shù)學(xué)必修3[M].人民教育出版社,2012.
[4]鄭金華.多目標(biāo)進化算法及其應(yīng)用[M].科學(xué)出版社,2007.