太原科技大學應用科學學院 姜旭磊 孫寶 范凱 王露梅 趙超
隨著科技的日益發達和計算機技術的廣泛應用,最優化方法愈發顯示出其重要作用,最優化方法的重要性被愈來愈多的人所認識。實踐表明,最優化方法已成為現代管理科學的重要理論基礎和不可缺少的方法,被人們廣泛地應用到公共管理、經濟管理、工程建設、國防等各個領域,發揮著越來越重要的作用。而對于當今社會的大學生而言,則更應當具備這方面的知識和能力。事實上,在眾多科技與工程領域中,如果沒有最優化算法,就不可能產生一流的研究成果。正因如此,《最優化方法》課程成為大學理工科學生非常重要的一門必修課程,也是國際工程教育認證要求的必修課程之一。
《最優化方法》課程是以“微分方程”“線性代數”和“高等數學”等學科為依托,以程序設計語言為技術手段,以計算機為工具,討論決策問題的最優選擇之特點,構建求得最優化解的方法,運用數學方法研究各種系統的優化途徑及方案,為決策者提供科學決策的依據[1]。該課程中同一問題的計算方法繁多,不同的方法又多是采取不同的思路得到的,這些基本特點使得《最優化方法》課程中存在的計算公式多而復雜,很難熟記[2]。而GUI 可視化實驗系統在教學中的廣泛應用,該系統同時具備用戶界面友好性和可以簡單操作實現各種圖像分析等特點,使抽象的問題更加形象化,從而增加了學生的學習趣味、改善了教師的教學環境,使《最優化方法》的學習過程變得更加方便化、趣味化。此外,該系統也可為科研人員對最優化方法的研究提供便利。
MATLAB GUI 即為圖形用戶界面,是進行人機互動的重要手段,擁有巨大的功能,可實現多種復雜的程序模塊。用戶圖形界面是MATLAB 的一個子模塊,是由窗口、光標、按鍵、菜單、文件說明等對象構成的一個用戶界面,是MATLAB 應用于可視化交互式中的重要工具[3]。
采用GUI 開發操作界面,使用者可不必編制繁瑣的代碼程序即可完成工作,系統自動編寫好代碼并生成fig文件和相應的m 文件。隨著版本的升高,新的內容還將繼續增加,同時具有強大的繪圖功能,使得由MATLAB開發的程序可以被越來越多的用戶所接受。
開啟GUI 機制的密碼為GUIDE、Appdesigner。本文選擇了Appdesigner。相較于GUIDE,Appdesigner代碼整潔,且采用典型的面向對象的編程方式,上手更快。另外,其可以按照App、Web 的形式發布,直接安裝到MATLAB中,方便使用。最重要的是,為了更好地呈現可視化效果,Appdesigner 控件的UI 做的更加美觀,控件的數目更多,界面更加直觀。
系統的研究內容主要包含《最優化方法》實驗系統和可視化界面的實現兩部分。技術路線如圖1 所示。

圖1 技術路線圖Fig.1 Technology roadmap
最優化方法可視化實驗系統針對最優化方法的內容分成一維無約束、多維無約束、約束優化、二次規劃4個模塊,對各個模塊完成最優化方法特定內容的實驗,設置實驗內容時全面考慮最優化方法內容的連貫性。
最優化方法可視化平臺以學生為主體,通過搭建好的GUI 可視化實驗系統,學生可通過界面上的菜單根據自己的需求選擇合適的屬性按鈕,去完成計劃的實驗任務,同樣,各個學生也可以根據不同的專業和需求,自行設計試驗方案、適當調整實驗中各變量的參數以得到多組實驗結果并進行對比篩選[4]。在學生動手使用的過程中,可以把最優化方法的理論知識內化為認知結果,從而充分體現出最優化方法可視化實驗系統的可操作性、連續性、實用性、交互性和可擴展性[5]。而基于最優化技術實踐的靈活性和目的性,學生能夠根據實驗的要求調整操作按鍵和菜單,擴展實驗內容,設計滿足各個專業學生需求的應用方面的實驗系統與界面,以此訓練學生的發散性思維,調動其創新的積極性。
實驗系統實現是基于MATLAB,但它完全不同于MATLAB 所要求編寫程序,在命令窗口輸入命令才能完成運算。系統采用的是最簡單、用戶最熟知的界面窗口操作,系統也是專門根據最優化方法及實驗大綱設定,用戶只需要通過界面上的菜單功能、控件功能和輔助信息等來完成操作系統。該系統具有高度的可視性,所以每完成一次操作,系統都可以同步顯示操作信息,對于完成操作的用戶,系統還可以將運行結果放在文本框中給出答案,還能夠通過圖形圖像方式直觀地表現出來。這樣就極大地提升了答疑解惑的效率,減輕了用戶的工作量。
為了介紹關于使用MATLAB GUI 構建最優化方法可視化實驗系統的研究內容,以下使用了兩個例子來描述實驗系統中具體案例的設計過程,并從中感受GUI 圖形界面的視覺效果和實驗中所取得的收獲。
2.3.1 牛頓法求解一維無約束問題的可視化界面實現
牛頓法是一種線性化的方法,牛頓法的核心思想是極值點處的一階導數為0。牛頓法流程圖如圖2 所示。

圖2 牛頓法流程圖Fig.2 Newton's method flow chart
該界面的實現需要進行以下幾個主要步驟:
(1)我們需要一個已知的目標函數,及初始點與其所需精度;
(2)牛頓法的實現需要輸入數據是目標函數、初始點以及所需精度,對應的輸出數據為目標函數最值點,并構造對應的函數圖像;
(3)之后根據上述分析的內容去繪制圖形界面草圖;
(4)對所需要實現的特定功能設置相應回調函數并編寫相應的程序代碼;
(5)在最后階段對已實現的圖形界面做出相應的測試和調整。
在界面中可以更換不同的目標函數、初始點以及精度。
2.3.2 模式搜索法
模式搜索法的基本思路,是沿著相鄰的基點連線的方向進行搜索迭代。它主要分為兩大步驟:(1)軸向搜索;(2)模式搜索。算法流程圖如圖3 所示。

圖3 模式搜索法流程圖Fig.3 Flowchart of pattern search method
該界面的實現需要進行以下幾個主要步驟:
(1)我們需要一個已知的目標函數、起始搜索點、初始步長、加速系數、收縮系數以及所要精度;
(2)模式搜索法的實現需要輸出數據為目標函數最值點,并構造對應的函數圖像;
(3)之后根據上述分析的內容去繪制圖形界面草圖;
(4)對所需要實現的特定功能設置相應回調函數并編寫相應的程序代碼;
(5)在最后階段對已實現的圖形界面做出相應的測試和調整。
本文以牛頓法、模式搜索法的可視化實踐為例,展示了采用MATLAB GUI 的最優化實驗系統的操作過程。
可視化實驗系統是以MATLAB GUI 作為載體,將最優化算法理論和MATLAB GUI 可視化技術相融合,讓使用者在學習最優化方法理論的過程中,不需深入鉆研完整代碼就能夠進行理論的計算過程。最優化方法與交互式實驗系統,為最優化方法的理論教學與實驗教學的有機融合提供了抓手,提高了學生學習興趣。同時系統還具有以下4 項優點:
(1)可操作性。在教學中,學生作為主體,只以學習理論知識為中心,往往在實際操作中不理想,唯有親身實踐,才能將數學理論知識在實驗實際操作過程中內化為學生自己的認知結果。該實驗系統可通過MATLAB 程序設計實現所有模塊和菜單功能。學生可以按照該系統一定的規范和要領操作完成實驗,并得到準確的實驗結果,不再需要MATLAB 編程就可以操作實驗。并且在親自操作完成實驗的同時,使實驗經驗負載著數學知識成為認知內化的結果。
(2)交互性。最優化方法交互式實驗系統通過GUI設計可視化用戶界面,學習者利用界面上特有的操作按鍵和菜單完成設定的實驗目標,從而得到實驗結果;另外,也可以舉一反三,自行設計實驗方案、調整實驗參數、以及在各個實驗模塊間查看、比較和應用。
(3)連續性和獨立性。系統前期工作是進行高等數學的試驗體系的建立和實現。它根據最優化方法的內容分為4 個獨立的子系統,各系統實現最優化方法特定內容的實驗。另外,系統也還注意到最優化方法內容的連貫性。各個子系統實現最優化理論方法特定的實驗內容。同時,系統也全面考慮到每個章節部分內容的關聯性。當處理復雜或符合多種類型的問題時,各子系統既獨立體現不同內容,也連貫反映整體內容。從而使學生在實驗中深刻體會各個方法的內涵和聯系。
(4)可擴展性。本系統根據最優化方法的實驗內容,設計了4 個子系統,分別承擔了不同的實驗內容。然而出于數學實驗的高度靈活和目的性,學生能夠針對實驗的目標以及自身實驗的要求添加和修改操作按鍵和菜單、從而擴展實驗內容,設計出滿足各個專業學生不同實驗和操作所需求的實驗系統和界面,以此訓練學生的創造思路,調動其創新的積極性。
引用
[1] 劉燕,宋清華,王威強,等.培養“過控”專業大學生的工程技術素養的探討[J].化工高等教育,2014,31(3):28-29+50.
[2] 裴明佳,孫寶.基于MATLAB GUI的數值分析教學實驗系統開發[J].信息系統工程,2021(8):174-176.
[3] 張光輝,任敏.基于MATLAB GUI的數值分析實驗系統設計[J].河北北方學院學報(自然科學版),2017,33(9):50-53.
[4] 臧營邦,劉旭陽,王加敏.基于MATLAB App Designer的最優化方法輔助教學設計[J].電腦與信息技術,2022,30(1):81-83.
[5] 唐世星,劉穎華.基于GUI的高等數學實驗教學系統[J].承德石油高等??茖W校學報,2012,14(3):83-86.