王敏
摘 要: 在高中數學教學中,為了培養學生使用數學解決實際問題的創新能力,本文提出了基于智能優化算法的研究性課題。在這一研究性課題的教學設計中,通過引入課題、介紹算法、建立模型、進行運算、討論結果這五步,使學生解決了日常生活中的優化問題。教學設計的結果表明,基于智能優化算法的課題適用于高中數學研究性學習。
關鍵詞: 高中數學 研究性學習 算法
1.高中數學的研究性學習
高中數學的研究性學習有著重要意義[1,2],它能使學生在思考和分析數學材料的過程中,培養理解和感悟數學的能力,進一步認識數學的本質。研究性學習可以啟發學生的創新意識,使學生遇到生活中的一些問題時,能夠自主使用數學知識解決這些問題。由此可見,研究性學習需要的問題,應該是與高中數學基礎相近的問題。對于高中數學的研究性課題,學生可以進行學習、試驗、思考、爭辯,并在課題的研究中找到數學領域的新天地。
高中數學教材[3]指出,算法是計算機科學的基礎,計算機已成為人們日常生活不可缺少的工具。對于高中生,從日常生活中選擇引入研究性課題的材料,更容易被學生接受。人們在日常生活遇到的很多問題,都可以利用一些已有的算法和相應的計算機程序解決。因此,在算法教學中開展研究性學習,有著廣闊的前景。下面提出一種基于智能優化算法的課題式教學設計。我們計劃采用NSGA2作為教學實踐中的智能優化算法。
2.基于智能優化算法的課題式教學設計
基于智能優化算法的課題式教學設計分為引入課題、介紹算法、建立模型、進行運算、討論結果五個部分。
2.1引入課題
教師:如果在假期我們打算去旅游,有很多景區可以選擇。我們對這些景區的興趣不同,這些景區的門票和交通費用也不同,去更多的景區開闊眼界是每個人的愿望。因此,我們應該認真思考選擇哪些景區。這是一個很難通過思考得到結果的問題,通過智能優化算法可以代替我們的大腦解決這個問題。
2.2介紹算法
教師:所謂人工智能,就是通過各種算法模擬大腦的工作,目的是代替我們的大腦進行思考,解決各種問題。智能優化算法是人工智能的一種算法,它可以代替我們的大腦解決優化問題。
學生:那上面的問題是優化問題嗎?
教師:在上面選擇哪些景區的問題中,我們有三個目的,一是選擇的景區總的興趣較高,二是選擇的景區總的門票和交通費用較低,三是選擇景區的數量盡量多。這三個目的往往是相互沖突的,我們需要選擇一些景區最好地達到這三個目的。由此可見,這是一個優化問題,智能優化算法可以幫助我們解決這個問題。
學生:我們怎么使用智能優化算法呢?
教師:我們首先應該運用課本中所學的算法知識,初步了解智能優化算法的計算原理。我們已經選擇的這些景區被稱為決策變量;對于我們選擇范圍內的所有景區,稱為決策空間。決策變量是在決策空間中隨機選擇的。如果我們可以最多同時選擇5個景區,決策變量就是5維向量,即■=(x■,x■,…,x■),其中x■到x■這5個景區在所有景區中隨機選擇,這5個景區可以互相重復。
學生:景區怎么用數字代替呢?
教師:景區可以按照先后順序依次用數字代替,比如第一個景區就是1。對于我們的三個目的,也需要把它們轉化成數字才能進行計算。我們對每個景區都進行排名,排名靠前表明興趣高。這樣第一個目的就是中所有互不重復的景區名次的和。類似的,第二個目的就是中所有互不重復的景區門票和交通費用的和。第三個目的應該是中所有互不重復的景區數量。景區的名次和費用如表1所示。表中第一行和第四行是景區的編號,第二行和第五行是景區的排名,第三行和第六行是景區的費用,數字的單位是元。
表1 景區的名次和費用
學生:怎樣計算呢?
教師:通過以上分析可知,不管是景區名次的和,景區門票和交通成本的和,還是景區數量,它們的大小都是由■決定的。它們是■的函數,因此我們稱這些函數為目標函數。我們只要擁有用數字表示的決策空間和決策變量,以及用數字計算的目標函數,就可以使用智能優化算法選擇到最適合我們的景區。
2.3建立模型
學生:怎樣建立目標函數呢?
2.4進行運算
學生:怎樣調用智能優化算法的程序呢?
教師:為了降低讀寫程序的難度,我們選擇matlab語言。在調用智能優化算法程序的主文件中正確編程,就可以實現建立的數學模型,得到需要的結果。主文件中的matlab代碼是:
X2=fix(X*20);
X3=X2+1;
C=zeros(20,1);
forn=1:5
C(X3(n,1),1)=1;
end
[a,b]=find(C);
C2=[a,b];
[a1,b1]=size(C2);
A=[6;3;16;11;7;17;14;8;5;19;15;1;2;4;18;13;9;20;10;12];
forn=1:a1
W1(n)=A(C2(n,1),1);
end
W2=sum(W1);
B=[1200;2000;200;1400;1500;1000;1300;1800;800;900;100;500;1700;1100;700;600;1600;300;400;1900];
forn=1:a1
W3(n)=B(C2(n,1),1);
end
W4=sum(W3);
F(1)=W2;
F(2)=W4;
F(3)=1/a1;
對于智能優化算法,代碼中的X是m1維矩陣。通過設定m=5,這里X是5x1維矩陣,其中的5個元素均是從0.0000到0.9999中的隨機數。fix()是matlab的取整函數,即實數的整數部分。因此,X2中的5個元素均是從0到19中的隨機數。X3中的5個元素均是從1到20中的隨機數。這樣,代碼中的X3是模型中的。zeros()是matlab的矩陣生成函數,生成的矩陣中元素都是0。因此C是201維0矩陣。通過for循環語句,我們使X3指定的元素全是1。find()是matlab的查找函數,查找矩陣中非0元素的位置,生成相應的矩陣。因此C2是C中非0元素的位置,也是X3中所有互不重復的數。size()函數得到矩陣的行數和列數,這樣a1是C2的行數,是模型中的n。代碼中的A和B是模型中的A和B。通過for循環語句,我們使W1和W3中的元素,是C2指定的A和B中的值,代碼中的F(1)、F(2)、F(3)表示目標函數。對于智能優化算法,可以設定優化結果的個數,我們設定結果的個數是10,計算結果如表2所示。
表2 計算結果
2.5討論結果
教師:從表2可以看出,這10個景區的選擇方式都很好,分別偏向了我們的三個目的。把它們互相比較,難分高低。智能優化算法很好地解決了選擇哪些景區的問題,我們的大腦也很難想出這樣的結果。在生活中還有很多其他的優化問題,我們也可以通過建立數學模型、編寫matlab程序、進入智能優化算法進行計算的辦法,解決這些復雜的問題。
3.總結
基于智能優化算法的課題式教學設計,主要涉及隨機數的產生和矩陣的基本定義這兩個知識點,它們在高中數學教材中都有介紹。matlab語言簡單易學,通過互聯網就可以了解其編程技巧。因此,基于智能優化算法的課題適用于高中數學研究性學習。
參考文獻:
[1]杜振義.關于高中數學研究性學習的思考[J].數學教學與研究,2014(10),54-55.
[2]張曉兵.例談數學教學中的“微課題”研究[J].數學教育研究,2012(5),13-14.
[3]普通高中課程標準實驗教科書數學必修3[M].人民教育出版社,2012.
[4]鄭金華.多目標進化算法及其應用[M].科學出版社,2007.