tft每日頭條

 > 教育

 > 數學建模遺傳算法的應用

數學建模遺傳算法的應用

教育 更新时间:2025-02-23 14:07:25

數學建模遺傳算法的應用(數學建模與編程教學融合的計算思維教育分析)1

教學實踐中數學建模應用的疑惑

《普通高中信息技術課程标準(2017年版)》(簡稱《課标》)指出:計算思維是指個體運用計算機科學領域的思想方法,在形成問題解決方案的過程中産生的一系列思維活動。這一系列的思維活動包括界定問題、抽象特征、建立結構模型、合理組織數據等操作。可見,建模是形成解決方案所産生的一系列思維活動中的重要環節之一。

模型是對事物原型進行模拟或抽象後形成的在某些方面不失真的近似反映。模型可分為對真實事物按比例縮放的直觀模型、知識或經驗存儲于人腦中的思維模型、用符号語言抽象描述事物特征及關系的符号模型等,不同學科也會用不同模型來描述并解決學科問題,如數學模型、計算模型、經濟模型等。由于《課标》沒有對“結構模型”作出具體闡述,在教學實踐中,一線教師往往都将數學建模作為計算思維培養的重要環節。

案 例 一

項目學習“BMI 指數測算”。情境描述如下:在國家學生體質健康标準中,不僅測算身高、體重,還會測算體質指數BMI。根據相關規定,BMI指數是用體重千克數除以身高米數的平方得出的數值,WHO規定了偏瘦、正常、偏胖的BMI 值範圍。要求畫出BMI 測算的流程圖,并編寫Python程序,能夠根據輸入的身高、體重值判斷偏瘦、正常還是偏胖。教師設計的教學流程如下:

①抽象與建模,确定BMI的計算公式,即完成BMI=體重值/身高值^2的數學建模;

②設計算法,畫出反映分支結構的流程圖,并編寫程序;

③調試運行,記錄運行結果。

根據案例1預設的教學要求,學生以解決身邊真實問題為目标,通過數學建模,學習算法的分支結構,實現計算思維的培養。對照《課标》關于計算思維的描述,仍存在一些困惑:其一,①中關于BMI 指數的數學建模,是不是符合《課标》中“建立結構模型”的要求,這涉及“建立結構模型”究竟是什麼,及其與數學建模的關系;其二,①中抽象與建模,隻是針對WHO有關規定書寫了BMI計算公式及判别範圍,該過程是否達到了數學建模教學所要求的學習效果,這涉及什麼是數學建模教學的問題;其三,②中分支結構的運用,是否也是一種建模,這涉及如何理解程序設計中的建模問題。

數學模型與數學建模概念追溯

數學模型是将某事物系統的主要特征、主要關系經抽象以後用數學語言概括地或近似地表達的一種數學結構。數學模型是實際問題的一種數學刻畫,可以是方程、函數乃至圖表或圖形。例如,BMI的計算公式就是描述人的健康狀況的一種數學刻畫,結果用分段函數表示人的體型胖瘦是否正常。

以數學模型為工具來解決實際問題的方法稱為數學模型方法。數學模型具有概括性,現實世界的一些問題可以歸納為某一成熟的數學模型來解決。植樹問題就是小學數學中的一個典型數學模型,通過該模型可以讓學生深刻理解并感悟全長與間距、棵數與間隔數之間的關系。生活中許多例子可以歸結為植樹模型,如剪彩的人數和所得繩子的段數之間的關系、日曆中具體的日期和中間間隔的天數之間的關系都符合植樹模型。

數學模型方法也包括建立數學模型,即數學建模,就是将某一領域的具體問題,經過抽象、簡化,明确變量和參數,依據某種規律建立變量和參數間的數學關系(數學模型),然後求解問題,并對此結果進行解釋和驗證,必要時還需要修正模型。如在案例1中,BMI模型的建立,就是依據健康醫學方面的知識并采集相關數據,運用回歸分析等數學方法,提出假設,建立BMI指數與身高、體重的函數關系以及判别健康與否的分段函數,最後對該數學模型進行驗證。由此可知,在案例1中,學生并沒開展有關BMI的數學建模活動,而是直接引用了BMI的計算公式,教學設計中的數學建模隻是一種問題導入的情境素材,其本質上是為了實現分支結構教學目标。

數學建模是數學學科的核心素養要素之一。高中數學課程标準要求:數學建模活動是對現實問題進行數學抽象的一個過程,學生首先要學會用數學語言表達實際問題,再用數學方法構建模型解決問題。學生需要經曆以下過程:聯系生活實際,以數學的視角發現問題、提出問題、分析問題、形成模型,通過數學的語言對模型進行參數确定、計算求解,對模型進行結果檢驗、模型改進,解決實際問題。

觀點1:數學建模是數學學科的教學内容之一。在數學建模教學活動中,學生從現實世界中獲取有價值信息并進行定量分析,運用所學的數學知識、技能以及思想方法表達現實問題,形成通過數量關系認識事物的思維品質,提高用數學思維發現和提出問題、分析和解決問題的能力。

數學建模中的編程應用分析

數學是人類對世界直觀感知、高度抽象以及理性認識的産物,數學建模則是應用數學聯系現實世界的重要紐帶。數學建模的發展從數學學科向計算機、生物、物理等領域滲透,幾乎涉及人類所有的知識領域,成為這些學科不可或缺的必備工具。另外,計算機技術的應用,也提高了數學建模的功效,運用計算技術能夠更有效、快捷、準确地發現問題、理解問題、解決問題。無論是在模型假設階段還是在驗證階段,計算機都可以幫助收集基本信息、基本數據,提供多種假設的可能性,快速驗證假設的有效性。特别是在模型求解時,通過編制計算機程序,可以高速、準确地求得模型的解,從而提高數學模型的應用效率。開展數學建模教學,融入編程及算法實現的教學内容,既反映了計算機技術支持下數學建模解決問題的真實現狀,也有利于通過跨學科學習培養學生解決問題的綜合能力。

案 例 二

筆者早期主編的《數學建模與算法實現》一書中收錄的一個高中數字建模教學案例“籃球罰球投籃”。問題情境如下:按照标準尺寸,罰球位置與籃框水平距離4.6米,籃框高3.05米,籃球直徑0.246米,質量0.6千克,籃框直徑0.45米,讨論怎樣的出手角度和出手速度可以使罰球投中成功率最高。學習活動設計如下:

①分析問題,簡化條件,提煉關鍵信息,如不考慮籃球在空中運動時的空氣阻力和籃球自轉産生的影響;

②分析籃球、球架、球框等參數關系,提出反映出手高度、出手速度、出手角度與上述參數之間關系的函數表達以及合理的數值範圍,即實現初步的數學建模;

③編制程序,采用循環方法,針對不同的出手高度和出手速度,計算合理的出手角度,記錄數據;

④應用數學模型,分析數據,得到若幹結論,如随着出手速度的增加,出手高度對出手角度的影響變小。

比較案例1和案例2可以發現,案例2中的學生經曆了數學建模的全過程,将身邊的一個非純數學問題轉化為數學問題并用數學方法解決。教學過程主要體現了數學思想方法的培養,計算思維支持學生自如地使用編程工具解決數學建模過程中的計算問題。在實際教學實踐中,要求學生已經掌握了循環結構的編程技能,能夠以編程技術為工具獲得投籃命中的出手高度、出手速度、出手角度相關數據供分析。因為如果學生不具備相應的編程技能,就會出現兩方面的問題:其一,學生在數學建模的問題解決過程中,難以主動意識到用編程的方法産生數據進行分析;其二,學習編程技能所需要的時間成本開銷可能會沖淡數學建模教學的連貫性。

觀點2:案例2是以數學思想方法學習為教學主線,編程技術是教學實施環節中的一種支持工具。在這一類教學實踐中,學生計算思維的培養主要體現在計算學科思想方法應用的意識建立和熟練應用方面,而應用意識的養成是以掌握學科方法為前提的。

計算學科中的模型與建模

模型方法就是根據研究要求,舍棄次要的、非本質的因素,抓住主要的、本質的因素,建立一個便于研究、能反映研究對象目标要求的新形象。模型方法并不是數學學科所獨有的,如知識管理專業就用DIKW模型描述從數據、信息、知識到智慧的進階關系。由于專業視角不同,模型也有局限性,如DI KW強調從數據中獲取信息,而不強調客觀世界的本體信息用數據表征的過程。在計算學科,建立模型就是運用模型方法表達出一般化的計算方法或計算過程。計算思維作為一種學科思維,支持計算學科的建模過程。

因此,運用模型方法可以簡潔地表示計算學科的基本原理和工作模式。例如,由CPU、存儲器、I/O及接口、三種總線等組成的一般化的計算機組織結構,就是反映計算機工作原理的模型。依據該模型,可以解釋鍵盤輸入的鍵值通過I/O接口及總線讀入CPU,并根據需要存入内存的工作過程。

模型具有層次性,不同層次需要用不同的模型來表述。在高級語言層次的模型,CPU不再被關注,重點反映的是數據的存儲與處理流程。所以,程序設計所涉及的模型通常是一種反映自動執行序列的過程模型,這類模型的關鍵要素有數據結構、運算公式和流程控制,具體是通過變量定義、賦值語句、控制語句來構造自動化的。

案 例 三

求1 2 …… 100的累加和的編程教學。通常的教學過程如下:①問題分析,确定采用s=s i,i=1、2……100的循環累加方法;②确定循環初值、結束條件以及循環體的操作;③繪制流程圖,編寫程序。

累加求和是程序設計中的一種基礎算法。如在案例3中,變量s作為累加器,與變量i 相加後結果存回累加器s中;随着i 的變化,該操作重複100次。案例3的教學過程,是學習用循環結構實現累加的算法,也是經曆建模的過程,該模型由變量s和i、運算公式s=s i和i=i 1、循環控制結構所确定。①完成了累加求和學科方法的初步認識,②完成了累加求和算法的實施細節,③完成了用程序設計語言表述該模型的構造。從某種意義上說,算法就是用于計算的一種過程模型,程序是該模型的一種形式化表達。

學生在掌握了累加求和算法後,遇到相類似的問題,就可以用相同的算法或相似的建模方法來構造程序。例如,對于連續輸入100個數,求該100個數之和這樣一個問題,學生很容易通過遷移獲得解決問題的方法。一般而言,學生面對問題,可以遷移成熟算法的建模思想,或者将該問題轉化為成熟算法問題,最終實現計算。以上建模和化歸的應用,都是計算思維的體現。

在案例1中,其教學目标是通過BMI指數判别學習分支結構。用建模的觀點分析案例1,可以發現,該教學可以使學生經曆這樣一個建模過程,即建立一個由分支結構、BMI計算公式以及相關參數變量組成的模型。同時,學生也形成這樣一種解決問題的意識:凡是具有分段函數特征的問題,都可以轉換為分支結構的模型來實現可計算化。

觀點3:計算思維重點體現在個體是否具備将問題可計算化的意識與能力,其中算法起到了很明顯的作用。算法作為一個成熟的模型,是運用計算學科的思想和建模方法,将問題一般化,經過抽象以及形式化表達,并經曆自動化執行驗證所形成的。理解并運用成熟算法,或經曆算法形成的建模過程,都是良好的計算思維培養渠道。

編程教學與數學建模的融合

由于數學學科和計算學科的天然關聯,許多數學學科思想方法支持計算學科的發展。在算法與程序實現中,往往可以直接使用成熟的數學模型,在案例1中,就是直接采用BMI模型作為程序的計算公式。這是因為許多數學模型具有确定性、符号性等特征,恰好與程序設計所需要的可計算要求相吻合。數學建模的思想方法也支持具有自動化屬性的程序構造,在案例3中,累加求和本質上就是數學思想的實現,隻是在數據結構、程序流程控制等方面有明顯的計算機技術特征。

案例3原本就是一個學習循環結構的典型例題。從教學視角分析可以發現,該例題可以清晰地闡述循環結構的關鍵要素,如執行累加操作的循環體、循環結束的判斷條件以及循環初值設定等。在教學過程中,可以清晰地闡述這些關鍵要素,幫助學生理解循環結構的編程應用。

事實上,案例3 的教學情境并不是一個完全真實的應用場景。作為一名程序員,如果要完成1 2 …… 100這一類等差數列累加操作,一般不會采用累加求和的方法,而隻要采用高斯定理s=(1 100)*100/50,僅需要一條賦值語句就可以高效地完成運算。

如果在教學中,采用高斯定理編程實現,将會如何呢?當然其教學目标就不再是循環結構的認識了。将1 2 …… 100的計算,用s=(1 100)*100/50公式表示,這一過程本質上也是數學建模,即用數學模型方法來解決數學問題。在此教學過程中,學生獲得的體驗是:運用成熟的數學模型結論可以清晰地形式化表達問題,方便程序構造,最後自動化實現。

如果學生沒有高斯定理的認知基礎,那麼,在教學中,教師就需要引導學生完成1 2 …… 100求和的計算推導,即首先需要數學建模s=(1 100)*100/50,然後才程序實現。在此教學過程中,雖然高斯定理的推導是解決數學問題,但數學建模是為程序實現服務的,經曆這樣的過程,可以使學生體會到數學建模對程序實現的重要性,同時也感受到數學建模的思想方法可以遷移到程序實現的應用中。

案 例 四

遞推算法。主要教學過程如下:

①引入課題,分享斐波那契和兔子的故事;②分析兔子問題,推導斐波那契數公式;③提出實際問題:走道上有15塊地闆,規定每步可以走一塊或兩塊地闆,從第一塊走到最後一塊,共有幾種走法?最後得出符合斐波那契數公式的結論;④編寫程序并調試運行;⑤歸納總結。

案例4預設的教學目标是:學會運用遞推算法來解決實際生活問題,培養計算思維。在實際教學中,因為學生沒有斐波那契數的認知基礎,故花費了大部分的課時來理解和推導斐波那契數公式,結果學生重點關注的是用數學的方法解決問題,缺乏體驗到采用合理的算法構造及程序實現來實現遞推的巧妙,同時也淡化了計算思維培養的實際效果。

觀點4:數學建模作為将現實問題經抽象以後形式化表達的一種有效方式,在編程實現中有獨特的作用。編程教學是中小學計算思維培養的重要渠道,在計算思維教育中,需要正确理解數學建模的作用,合理運用數學建模開展編程教學。

數學建模教學給計算思維教育的啟示

計算思維教育不在于宏大叙事,而在于教學細微之處的落實。數學建模的教學實踐經驗對計算思維教育有啟示意義。程序設計的工作是通過問題分析、構造算法,最終形成可以自動執行的指令序列。程序設計與數據建模在方法上很相似。數學建模教學不滿足套用現成的數學公式解決問題,而是強調學生在經曆分析問題、建立模型、确定參數、計算求解、檢驗結果、改進模型過程中自覺地用數學的眼光觀察世界并發現問題和解決問題。編程及其算法教學可以借鑒數學建模的教學理念,不能僅以學會使用Python語言、冒泡算法或者調用庫函數實現人臉識别為目标,而應培養學生形成用計算的觀點看待世界,形成将問題可計算化的意識與能力。這也正是計算思維教育的目标。

數學建模教學強調經曆問題解決的全過程,計算思維教育也一樣。任何理性的思維都是解決問題的思維,在計算思維教育中,問題解決僅是一個基礎性目标,不能把所有的問題解決都歸為計算思維,關鍵在于是否采用計算學科的思想方法解決問題。從數學建模與編程教學相融合的教學案例中可以發現,數學建模與程序實現中的建模要求有相同也有不同。就模型類型而言,數學模型有函數模型、概率模型、幾何模型等,而程序設計通常是選擇合适的數學模型結果,并用程序語言描述的過程模型來實現,該過程模型的建立,是以自動化實現為目标的,是用形式化的方式精确表達的,具有符号性、離散性、确定性等特征,可以實現對象控制和數據交換。

計算思維的培養不可能架空于計算學科知識與方法的學習而存在,個體對計算學科知識與方法的認識深度也影響其計算思維形成的深刻性。計算機應用的廣泛性,促使計算思維有更廣泛的應用價值,其教學形态往往是在與其他學科知識相結合解決實際問題的場景下完成的,具有跨學科學習特征。

在本文中所列的數學建模與編程教學融合的案例中,數學學科和計算學科的思想方法也是相互交融互為支持的,但不同的案例所側重的教學目标還是有差别的。以計算思維為培養目标的編程教學,其相關教學需要符合計算學科的問題解決脈絡,合理運用計算學科知識與方法獲得可計算的形式化表達,設計算法以獲得可計算的構造,不能以跨學科學習為理由來掩蓋對計算學科認識的模糊。


(本文作者:王榮良,華東師範大學)

文章刊登于《中國信息技術教育》2022年第12期

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关教育资讯推荐

热门教育资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved