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

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

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

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