單建華,汪永明,謝能剛
(安徽工業(yè)大學 機械工程學院,安徽 馬鞍山234002)
機械優(yōu)化設(shè)計是我校機械類研究生的專業(yè)選修課。課程特點是理論性強,公式多且推導過程繁瑣,需要極強的數(shù)學能力和編程能力。[1]機械類學生數(shù)學和計算機基礎(chǔ)較弱,導致學生的學習熱情不高,對課程普遍有畏難情緒。筆者采用問卷調(diào)查,結(jié)果表明大部分學生認為課程內(nèi)容理論性太強,抽象,不易理解,內(nèi)容枯燥,缺乏直觀性和結(jié)果可視性。為了提高機械優(yōu)化設(shè)計課程的教學效果及質(zhì)量,筆者根據(jù)多年來的理論和實踐教學經(jīng)驗,在分析課程特點基礎(chǔ)上,利用MATLAB軟件對課程的教學內(nèi)容、教學手段和考核方式等方面進行改革,[2]使學生把注意力集中在算法基本原理、問題建模、模型求解和結(jié)果可視化方面,擺脫繁瑣的公式和算法流程,取得良好效果。
機械優(yōu)化設(shè)計教學是一門把最優(yōu)化技術(shù)、計算機技術(shù)和機械設(shè)計結(jié)合起來、融為一體的課程。課程內(nèi)容極多極難,實踐性強,教學重點在于掌握各種優(yōu)化方法的特點,并用來解決機械設(shè)計問題。優(yōu)化設(shè)計問題求解是以數(shù)值解法為基礎(chǔ)的,利用計算機的各種編程語言進行編程求解所建立的優(yōu)化設(shè)計的數(shù)學模型。計算機編程對大部分工科學生來說是非常困難的,在有限的課時內(nèi)用一般的計算機高級語言編程實現(xiàn)幾乎是不可能的。教師和學生疲于優(yōu)化理論和編程實現(xiàn)算法,在教學課時內(nèi)幾乎不可能完成教學任務,學生難以達到利用優(yōu)化理論解決實際機械設(shè)計問題的水平。
機械優(yōu)化設(shè)計理論部分講授內(nèi)容:1、數(shù)學預備知識(如凸函數(shù)、泰勒級數(shù)展開、等高線、梯度、二次型、共軛等);2、優(yōu)化設(shè)計數(shù)學模型和幾何解釋(重點);3、優(yōu)化設(shè)計基本理論(難點);4、優(yōu)化解法(無約束、約束線性或非線性規(guī)劃問題);5、優(yōu)化設(shè)計在工程實踐中的某些問題。這部分理論內(nèi)容著重減小數(shù)學理論知識和優(yōu)化知識內(nèi)容比重,突出優(yōu)化算法思想和基礎(chǔ),強調(diào)形象化和可視化,這部分占總課時的30%。
理論部分利用MATLAB軟件進行數(shù)學概念可視化,優(yōu)化算法原理和流程講解,最優(yōu)解和迭代過程可視化,將算法的每步迭代過程實時地演示出來,形象、生動、直觀地呈現(xiàn)出算法流程,幫助學生理解并掌握優(yōu)化算法,加深印象,提高課程的教學質(zhì)量。優(yōu)化設(shè)計基本理論重點講解數(shù)值計算迭代法的基本思想和迭代格式,這是優(yōu)化算法的精髓,也是優(yōu)化算法的基礎(chǔ)。筆者采用盲人爬山做形象比喻,盲人每走一步為一個迭代步,拐杖搜索范圍即為步長因子,盲人所選最陡方向即為搜索方向。如何確定搜索方向是難點,學生很難理解梯度方向(最陡方向)為最速下降方向,筆者采用單變量、雙變量函數(shù),通過MATLAB計算出梯度方向,并畫出函數(shù)圖,讓學生直觀地感受到梯度方向就是最陡方向,并進一步說明熱量就是沿溫度場梯度方向傳導的,讓學生學以致用。迭代法首先采用拋物線求最值進行講解,因為拋物線學生最熟悉且存在解析解,方便學生理解。通過MATLAB編程把迭代的每一步顯示給學生看,讓學生直觀地觀察到迭代法是如何一步一步逼近最優(yōu)解的。通過選取不同的步長因子讓學生觀察算法的穩(wěn)定性。采用多峰函數(shù)讓學生理解優(yōu)化算法對初始點的敏感。
實踐部分教授內(nèi)容:(1)MATLAB編程基礎(chǔ);(2)MATLAB優(yōu)化工具箱介紹。重點介紹七類優(yōu)化模型:有邊界的標量非線性最小化,線性規(guī)劃,無約束非線性最小化,最大最小化,有約束的非線性最小化,二次規(guī)劃和多目標達到問題.[3]對每種模型詳細介紹函數(shù)用法、注意事項、函數(shù)返回值、解的合理性等問題,并舉例說明函數(shù)用法和布置作業(yè)讓學生自己調(diào)用函數(shù),使學生充分掌握,具備利用MATLAB優(yōu)化工具箱解決工程實際問題的能力。重點針對有邊界的標量非線性最小化的模型,該模型原理簡單,易于理解。首先簡要介紹理論知識,然后結(jié)合MATLAB源程序詳細介紹算法流程,從而使學生掌握了用MATLAB編程實現(xiàn)優(yōu)化理論和MATLAB編程技巧得到極大提升,學生反應收獲很大。改變算法參數(shù),讓學生直觀看到最優(yōu)解對參數(shù)的敏感,使學生深刻體會到優(yōu)化算法中參數(shù)的合理設(shè)置是難點,很難做到參數(shù)對所有實例均適用。這部分占總課時的30%。
對近年來出現(xiàn)遺傳算法、蟻群算法、粒子群算法和模擬退火算法等方法采用研討課形式進行教學,這些方法能較好地解決普通算法難以解決的不連續(xù)、多峰、高維、具有凹凸性等優(yōu)化問題。筆者重點介紹其中一種算法,如遺傳算法,其他算法要求學生分組自學并在課堂上進行PPT展示。針對遺傳算法,筆者首先介紹基本原理,采用MATLAB編程實現(xiàn),與傳統(tǒng)優(yōu)化算法進行比較,展示遺傳算法解決復雜問題的優(yōu)點。在學生充分理解遺傳算法的基礎(chǔ)上,針對遺傳算法的缺點,如參數(shù)設(shè)定依靠經(jīng)驗,缺乏通用性和理論指導;早熟現(xiàn)象和運行機理不十分清楚,理論上存在缺陷等,介紹改進算法,如分層遺傳算法、CHC算法、自適應遺傳算法和混合遺傳算法等。重點介紹改進算法思想,是為了克服傳統(tǒng)遺傳算法哪個缺點進行設(shè)計的,為什么能克服這個缺點,改進效果如何等,使學生領(lǐng)會到一個成熟的優(yōu)化算法從提出到成熟,是需要眾多學者多年的艱辛努力才能取得的,這激發(fā)了學生立志科研的興趣,鼓勵學生提出自己的改進算法思想的勇氣。這部分占總課時的20%。
學生以5人一組選擇一個主題,充分利用互聯(lián)網(wǎng)和圖書館進行資料查找、閱讀和分析,總結(jié)整理并做成PPT,小組代表在課堂上限時10分鐘講解,老師和同學可提問,小組成員需回答。通過主題講解及回答問題,老師可及時了解學生知識掌握程度。主題可以是具體的優(yōu)化算法、數(shù)學基礎(chǔ)知識或優(yōu)化算法解決機械設(shè)計問題等。通過這種開放式課堂教學,學生自學,主動學習,查找資料,研究能力得到了鍛煉,并且學生在團隊合作能力、自我表達能力等方面也得到提高,學生反映良好。這部分占總課時的20%。
考核不是教學過程的最后階段和最終目的,可以分階段貫穿于整個教學過程,并且考核形式應該多樣化,通過不同形式的考核,側(cè)重了解學生不同方面的能力。理論強、公式多是機械優(yōu)化設(shè)計課程難點所在。傳統(tǒng)考試著眼于考核學生套用公式的能力和計算能力,學生盲目追求高分只能采取死記硬背的方法,難以領(lǐng)會優(yōu)化算法精髓,達不到利用優(yōu)化算法解決實際問題的能力。因此,考試內(nèi)容上既要考核機械優(yōu)化設(shè)計理論知識,也要考核機械優(yōu)化設(shè)計應用程序編制能力和解決實際工程問題能力。我們改變原純筆試形式,采取筆試與平時成績(如出勤率,大作業(yè),優(yōu)化算法解決工程問題,小組報告,閱讀文獻、算法改進等)相結(jié)合的方法給出綜合成績。
為了解本課程教學改革的效果,我們對學生進行了關(guān)于“機械優(yōu)化設(shè)計課程教學改革”效果反饋的調(diào)查,收集學生意見和建議。從調(diào)查情況看,學生基本認可采用MATLAB軟件進行的課程教學改革,認為改革降低了學習難度,激發(fā)了學習熱情,增強了解決實際問題的能力和更深入了解了MATLAB軟件的功能,認為教學改革很有必要。學生還建議加強實例教學,加強編程指導和出本理論和實踐結(jié)合的教材。這些建議為下一步完善教學改革提供了思路。
本課程的教學改革,著重改變了原有教學方法,突出了應用MATLAB軟件解決機械優(yōu)化實例的能力,精簡了大量具體而微的優(yōu)化理論知識。教學重點放在數(shù)學模型的建立,優(yōu)化方法的選擇,以及各種優(yōu)化函數(shù)的使用上,培養(yǎng)了學生解決實際問題的工程實踐能力。學生的學習興趣大大提高,分析問題、解決問題的能力得到增強。
[1]孫靖民,馬履中,柯尊忠,等.機械優(yōu)化設(shè)計[M].北京:機械工業(yè)出版社,2003.
[2]溫建明,馬繼杰,程光明.基于 MATLAB的機械優(yōu)化設(shè)計課程數(shù)字化教學改革[J].吉林省教育學院學報,2011(5):81-82.
[3]李旻,李靜,饒雄新,等.MATLAB優(yōu)化工具箱在機械優(yōu)化設(shè)計教學中的應用[J].裝備制造技術(shù),2010(3):156-158.