王敏

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