太原科技大學(xué)應(yīng)用科學(xué)學(xué)院 姜旭磊 孫寶 范凱 王露梅 趙超
隨著科技的日益發(fā)達(dá)和計算機(jī)技術(shù)的廣泛應(yīng)用,最優(yōu)化方法愈發(fā)顯示出其重要作用,最優(yōu)化方法的重要性被愈來愈多的人所認(rèn)識。實(shí)踐表明,最優(yōu)化方法已成為現(xiàn)代管理科學(xué)的重要理論基礎(chǔ)和不可缺少的方法,被人們廣泛地應(yīng)用到公共管理、經(jīng)濟(jì)管理、工程建設(shè)、國防等各個領(lǐng)域,發(fā)揮著越來越重要的作用。而對于當(dāng)今社會的大學(xué)生而言,則更應(yīng)當(dāng)具備這方面的知識和能力。事實(shí)上,在眾多科技與工程領(lǐng)域中,如果沒有最優(yōu)化算法,就不可能產(chǎn)生一流的研究成果。正因如此,《最優(yōu)化方法》課程成為大學(xué)理工科學(xué)生非常重要的一門必修課程,也是國際工程教育認(rèn)證要求的必修課程之一。
《最優(yōu)化方法》課程是以“微分方程”“線性代數(shù)”和“高等數(shù)學(xué)”等學(xué)科為依托,以程序設(shè)計語言為技術(shù)手段,以計算機(jī)為工具,討論決策問題的最優(yōu)選擇之特點(diǎn),構(gòu)建求得最優(yōu)化解的方法,運(yùn)用數(shù)學(xué)方法研究各種系統(tǒng)的優(yōu)化途徑及方案,為決策者提供科學(xué)決策的依據(jù)[1]。該課程中同一問題的計算方法繁多,不同的方法又多是采取不同的思路得到的,這些基本特點(diǎn)使得《最優(yōu)化方法》課程中存在的計算公式多而復(fù)雜,很難熟記[2]。而GUI 可視化實(shí)驗系統(tǒng)在教學(xué)中的廣泛應(yīng)用,該系統(tǒng)同時具備用戶界面友好性和可以簡單操作實(shí)現(xiàn)各種圖像分析等特點(diǎn),使抽象的問題更加形象化,從而增加了學(xué)生的學(xué)習(xí)趣味、改善了教師的教學(xué)環(huán)境,使《最優(yōu)化方法》的學(xué)習(xí)過程變得更加方便化、趣味化。此外,該系統(tǒng)也可為科研人員對最優(yōu)化方法的研究提供便利。
MATLAB GUI 即為圖形用戶界面,是進(jìn)行人機(jī)互動的重要手段,擁有巨大的功能,可實(shí)現(xiàn)多種復(fù)雜的程序模塊。用戶圖形界面是MATLAB 的一個子模塊,是由窗口、光標(biāo)、按鍵、菜單、文件說明等對象構(gòu)成的一個用戶界面,是MATLAB 應(yīng)用于可視化交互式中的重要工具[3]。
采用GUI 開發(fā)操作界面,使用者可不必編制繁瑣的代碼程序即可完成工作,系統(tǒng)自動編寫好代碼并生成fig文件和相應(yīng)的m 文件。隨著版本的升高,新的內(nèi)容還將繼續(xù)增加,同時具有強(qiáng)大的繪圖功能,使得由MATLAB開發(fā)的程序可以被越來越多的用戶所接受。
開啟GUI 機(jī)制的密碼為GUIDE、Appdesigner。本文選擇了Appdesigner。相較于GUIDE,Appdesigner代碼整潔,且采用典型的面向?qū)ο蟮木幊谭绞?,上手更快。另外,其可以按照App、Web 的形式發(fā)布,直接安裝到MATLAB中,方便使用。最重要的是,為了更好地呈現(xiàn)可視化效果,Appdesigner 控件的UI 做的更加美觀,控件的數(shù)目更多,界面更加直觀。
系統(tǒng)的研究內(nèi)容主要包含《最優(yōu)化方法》實(shí)驗系統(tǒng)和可視化界面的實(shí)現(xiàn)兩部分。技術(shù)路線如圖1 所示。
圖1 技術(shù)路線圖Fig.1 Technology roadmap
最優(yōu)化方法可視化實(shí)驗系統(tǒng)針對最優(yōu)化方法的內(nèi)容分成一維無約束、多維無約束、約束優(yōu)化、二次規(guī)劃4個模塊,對各個模塊完成最優(yōu)化方法特定內(nèi)容的實(shí)驗,設(shè)置實(shí)驗內(nèi)容時全面考慮最優(yōu)化方法內(nèi)容的連貫性。
最優(yōu)化方法可視化平臺以學(xué)生為主體,通過搭建好的GUI 可視化實(shí)驗系統(tǒng),學(xué)生可通過界面上的菜單根據(jù)自己的需求選擇合適的屬性按鈕,去完成計劃的實(shí)驗任務(wù),同樣,各個學(xué)生也可以根據(jù)不同的專業(yè)和需求,自行設(shè)計試驗方案、適當(dāng)調(diào)整實(shí)驗中各變量的參數(shù)以得到多組實(shí)驗結(jié)果并進(jìn)行對比篩選[4]。在學(xué)生動手使用的過程中,可以把最優(yōu)化方法的理論知識內(nèi)化為認(rèn)知結(jié)果,從而充分體現(xiàn)出最優(yōu)化方法可視化實(shí)驗系統(tǒng)的可操作性、連續(xù)性、實(shí)用性、交互性和可擴(kuò)展性[5]。而基于最優(yōu)化技術(shù)實(shí)踐的靈活性和目的性,學(xué)生能夠根據(jù)實(shí)驗的要求調(diào)整操作按鍵和菜單,擴(kuò)展實(shí)驗內(nèi)容,設(shè)計滿足各個專業(yè)學(xué)生需求的應(yīng)用方面的實(shí)驗系統(tǒng)與界面,以此訓(xùn)練學(xué)生的發(fā)散性思維,調(diào)動其創(chuàng)新的積極性。
實(shí)驗系統(tǒng)實(shí)現(xiàn)是基于MATLAB,但它完全不同于MATLAB 所要求編寫程序,在命令窗口輸入命令才能完成運(yùn)算。系統(tǒng)采用的是最簡單、用戶最熟知的界面窗口操作,系統(tǒng)也是專門根據(jù)最優(yōu)化方法及實(shí)驗大綱設(shè)定,用戶只需要通過界面上的菜單功能、控件功能和輔助信息等來完成操作系統(tǒng)。該系統(tǒng)具有高度的可視性,所以每完成一次操作,系統(tǒng)都可以同步顯示操作信息,對于完成操作的用戶,系統(tǒng)還可以將運(yùn)行結(jié)果放在文本框中給出答案,還能夠通過圖形圖像方式直觀地表現(xiàn)出來。這樣就極大地提升了答疑解惑的效率,減輕了用戶的工作量。
為了介紹關(guān)于使用MATLAB GUI 構(gòu)建最優(yōu)化方法可視化實(shí)驗系統(tǒng)的研究內(nèi)容,以下使用了兩個例子來描述實(shí)驗系統(tǒng)中具體案例的設(shè)計過程,并從中感受GUI 圖形界面的視覺效果和實(shí)驗中所取得的收獲。
2.3.1 牛頓法求解一維無約束問題的可視化界面實(shí)現(xiàn)
牛頓法是一種線性化的方法,牛頓法的核心思想是極值點(diǎn)處的一階導(dǎo)數(shù)為0。牛頓法流程圖如圖2 所示。
圖2 牛頓法流程圖Fig.2 Newton's method flow chart
該界面的實(shí)現(xiàn)需要進(jìn)行以下幾個主要步驟:
(1)我們需要一個已知的目標(biāo)函數(shù),及初始點(diǎn)與其所需精度;
(2)牛頓法的實(shí)現(xiàn)需要輸入數(shù)據(jù)是目標(biāo)函數(shù)、初始點(diǎn)以及所需精度,對應(yīng)的輸出數(shù)據(jù)為目標(biāo)函數(shù)最值點(diǎn),并構(gòu)造對應(yīng)的函數(shù)圖像;
(3)之后根據(jù)上述分析的內(nèi)容去繪制圖形界面草圖;
(4)對所需要實(shí)現(xiàn)的特定功能設(shè)置相應(yīng)回調(diào)函數(shù)并編寫相應(yīng)的程序代碼;
(5)在最后階段對已實(shí)現(xiàn)的圖形界面做出相應(yīng)的測試和調(diào)整。
在界面中可以更換不同的目標(biāo)函數(shù)、初始點(diǎn)以及精度。
2.3.2 模式搜索法
模式搜索法的基本思路,是沿著相鄰的基點(diǎn)連線的方向進(jìn)行搜索迭代。它主要分為兩大步驟:(1)軸向搜索;(2)模式搜索。算法流程圖如圖3 所示。
圖3 模式搜索法流程圖Fig.3 Flowchart of pattern search method
該界面的實(shí)現(xiàn)需要進(jìn)行以下幾個主要步驟:
(1)我們需要一個已知的目標(biāo)函數(shù)、起始搜索點(diǎn)、初始步長、加速系數(shù)、收縮系數(shù)以及所要精度;
(2)模式搜索法的實(shí)現(xiàn)需要輸出數(shù)據(jù)為目標(biāo)函數(shù)最值點(diǎn),并構(gòu)造對應(yīng)的函數(shù)圖像;
(3)之后根據(jù)上述分析的內(nèi)容去繪制圖形界面草圖;
(4)對所需要實(shí)現(xiàn)的特定功能設(shè)置相應(yīng)回調(diào)函數(shù)并編寫相應(yīng)的程序代碼;
(5)在最后階段對已實(shí)現(xiàn)的圖形界面做出相應(yīng)的測試和調(diào)整。
本文以牛頓法、模式搜索法的可視化實(shí)踐為例,展示了采用MATLAB GUI 的最優(yōu)化實(shí)驗系統(tǒng)的操作過程。
可視化實(shí)驗系統(tǒng)是以MATLAB GUI 作為載體,將最優(yōu)化算法理論和MATLAB GUI 可視化技術(shù)相融合,讓使用者在學(xué)習(xí)最優(yōu)化方法理論的過程中,不需深入鉆研完整代碼就能夠進(jìn)行理論的計算過程。最優(yōu)化方法與交互式實(shí)驗系統(tǒng),為最優(yōu)化方法的理論教學(xué)與實(shí)驗教學(xué)的有機(jī)融合提供了抓手,提高了學(xué)生學(xué)習(xí)興趣。同時系統(tǒng)還具有以下4 項優(yōu)點(diǎn):
(1)可操作性。在教學(xué)中,學(xué)生作為主體,只以學(xué)習(xí)理論知識為中心,往往在實(shí)際操作中不理想,唯有親身實(shí)踐,才能將數(shù)學(xué)理論知識在實(shí)驗實(shí)際操作過程中內(nèi)化為學(xué)生自己的認(rèn)知結(jié)果。該實(shí)驗系統(tǒng)可通過MATLAB 程序設(shè)計實(shí)現(xiàn)所有模塊和菜單功能。學(xué)生可以按照該系統(tǒng)一定的規(guī)范和要領(lǐng)操作完成實(shí)驗,并得到準(zhǔn)確的實(shí)驗結(jié)果,不再需要MATLAB 編程就可以操作實(shí)驗。并且在親自操作完成實(shí)驗的同時,使實(shí)驗經(jīng)驗負(fù)載著數(shù)學(xué)知識成為認(rèn)知內(nèi)化的結(jié)果。
(2)交互性。最優(yōu)化方法交互式實(shí)驗系統(tǒng)通過GUI設(shè)計可視化用戶界面,學(xué)習(xí)者利用界面上特有的操作按鍵和菜單完成設(shè)定的實(shí)驗?zāi)繕?biāo),從而得到實(shí)驗結(jié)果;另外,也可以舉一反三,自行設(shè)計實(shí)驗方案、調(diào)整實(shí)驗參數(shù)、以及在各個實(shí)驗?zāi)K間查看、比較和應(yīng)用。
(3)連續(xù)性和獨(dú)立性。系統(tǒng)前期工作是進(jìn)行高等數(shù)學(xué)的試驗體系的建立和實(shí)現(xiàn)。它根據(jù)最優(yōu)化方法的內(nèi)容分為4 個獨(dú)立的子系統(tǒng),各系統(tǒng)實(shí)現(xiàn)最優(yōu)化方法特定內(nèi)容的實(shí)驗。另外,系統(tǒng)也還注意到最優(yōu)化方法內(nèi)容的連貫性。各個子系統(tǒng)實(shí)現(xiàn)最優(yōu)化理論方法特定的實(shí)驗內(nèi)容。同時,系統(tǒng)也全面考慮到每個章節(jié)部分內(nèi)容的關(guān)聯(lián)性。當(dāng)處理復(fù)雜或符合多種類型的問題時,各子系統(tǒng)既獨(dú)立體現(xiàn)不同內(nèi)容,也連貫反映整體內(nèi)容。從而使學(xué)生在實(shí)驗中深刻體會各個方法的內(nèi)涵和聯(lián)系。
(4)可擴(kuò)展性。本系統(tǒng)根據(jù)最優(yōu)化方法的實(shí)驗內(nèi)容,設(shè)計了4 個子系統(tǒng),分別承擔(dān)了不同的實(shí)驗內(nèi)容。然而出于數(shù)學(xué)實(shí)驗的高度靈活和目的性,學(xué)生能夠針對實(shí)驗的目標(biāo)以及自身實(shí)驗的要求添加和修改操作按鍵和菜單、從而擴(kuò)展實(shí)驗內(nèi)容,設(shè)計出滿足各個專業(yè)學(xué)生不同實(shí)驗和操作所需求的實(shí)驗系統(tǒng)和界面,以此訓(xùn)練學(xué)生的創(chuàng)造思路,調(diào)動其創(chuàng)新的積極性。
引用
[1] 劉燕,宋清華,王威強(qiáng),等.培養(yǎng)“過控”專業(yè)大學(xué)生的工程技術(shù)素養(yǎng)的探討[J].化工高等教育,2014,31(3):28-29+50.
[2] 裴明佳,孫寶.基于MATLAB GUI的數(shù)值分析教學(xué)實(shí)驗系統(tǒng)開發(fā)[J].信息系統(tǒng)工程,2021(8):174-176.
[3] 張光輝,任敏.基于MATLAB GUI的數(shù)值分析實(shí)驗系統(tǒng)設(shè)計[J].河北北方學(xué)院學(xué)報(自然科學(xué)版),2017,33(9):50-53.
[4] 臧營邦,劉旭陽,王加敏.基于MATLAB App Designer的最優(yōu)化方法輔助教學(xué)設(shè)計[J].電腦與信息技術(shù),2022,30(1):81-83.
[5] 唐世星,劉穎華.基于GUI的高等數(shù)學(xué)實(shí)驗教學(xué)系統(tǒng)[J].承德石油高等??茖W(xué)校學(xué)報,2012,14(3):83-86.