跳到主要內容區

最佳化決策模式設計與應用 - 物理系四年級 廖品瑜

banner top

課程名稱►最佳化決策模式設計與應用      授課教師►工資管系 王逸琳老師
心得分享者►物理系四年級 廖品瑜

「最佳化」這個詞,在一開始看到時便引起我許多遐想:是否只要修了這門課,以後在賣場裡猶豫不決時,便可以藉由這個決策模式,來決定要買哪些東西?看了課程大綱後,發現是先設計數學模式再以python與GuRoBi來求解並模擬,因此老師希望我們有一定的python基礎後再來學習。然而以電腦來寫程式解決問題的方法,之前也在資工系的「演算法」這門課中學習過,很好奇這個「最佳化」課程和僅僅寫程式究竟有那些不一樣呢?雖然是以英文授課,但這個課程看起來實在很有趣,抱著想要一探究竟的心態,選修了這門課。

由於需要用到電腦實作,在課程開始前,王老師就先寄給同學一些關於軟體環境設定的說明,可以預先設定好,之後開始上課也會再說明一次。課堂上也有實作的部分,會由許多助教帶領,因此不用擔心找不到人問問題。王老師先由最佳化這個領域的歷史講起,原來最佳化這個概念起源於二次世界大戰,不管是部隊調派或後勤支援都需要精打細算。但當要考慮的條件越來越多,人腦已不敷使用,便將條件和目標以數學列式寫下,再以電腦求解,這樣就可以處理更多更複雜的問題,所以最佳化背後的一切都是以數學理論作支撐。依據模式的數學特性,這些問題可以分成許多種類,而不同種類有不同的複雜度與困難度。這其中最簡單也最基本的最佳化模式,就是我們高中就學過的線性規劃!但若複雜一些的模式有些甚至需要花上好多時間才能解決。老師在上課時並沒有使用太多的數學證明,但都會舉很多例子去幫助同學了解,讓大家學習將問題分類,在應用時才會清楚自己遇到的問題是否有解、需要哪些條件。

在短短五天裡,老師採用說明與實作並進的方式,讓我們可以更清楚瞭解課堂上所講述的內容,另外有兩項回家的作業,一個是關於停車的問題,另外一個則是自訂題目。此外在第二第三天,會有實作的小考,老師會提前一天給題目,隔天需要在一定時間完成。課堂上老師會用Zuvio進行簡單的選擇題考試,藉由考試來確認重點。在課程結束之後也有一個正式大考,不用緊張,其實老師考出來的都是最重要的概念,例如:什麼問題是多項式時間內可以得出解的?加了一些條件後會使難度變高或變低?在做作業時,由於題目比較困難,很少人能在期限內繳交,老師還延期並一一確認學生的問題在哪裡,我真的覺得王逸琳老師蠻用心的,對於我們提出的問題他也都有給予回饋。最後甚至有一個加分心得,因此認真上課,不難拿到分數。

在用電腦撰寫程式解決作業的時候,我覺得最困難的部分是將條件翻譯成程式語言,且要注意翻譯成線性的模式。課堂的第三、四天也有教如何將一個非線性的邏輯運算轉換成線性邏輯運算。如果是照著老師出的題目做,我想大部分都可以很快的解決,畢竟老師出的題目有給解答,只要懂如何翻譯就成功了,不需要對背後的數學性質、複雜度等都清楚了解。拿Transportation problem 做例子,它是求解最佳方法引導發電廠的電運送到各個城市的狀況。由於每個發電廠輸電到不同城市的費用相異,需要求出總花費最低的情況下完成配送需求,因此會有三個條件:(1)每個城市收到的電總和必須大於需求量;(2)每個電廠不能發送超過本身附載量;(3)運送量不可以小於0,只要將這些條件轉換成線性規劃,便可以求解。但是在第二個作業要自己發想一個問題的時候,課堂上的知識就非常重要。那些考試的內容雖然在實作時可能用不太上,但是當需要去分析一個問題是否可以簡單快速的解出來時,這些上課知識就非常重要。

我覺得這堂課與資工系演算法不同的地方在於解決問題的方式。「演算法」這個課主要是學習使用電腦操作處理數據的方法(演算法),包括數據資料搜尋、儲存、比較、運算等步驟的研究,是一種研究電腦作業工序的課程;「最佳化」則是先將決策問題寫成數學模式,並用數學研究出求解模式最佳解的數學計算步驟(也叫做演算法)。這些解決最佳化問題的數學步驟則是要用電腦去操作題目給定數據(在資工系演算法課程所學)去加以實現,才能使用電腦算出決策問題的最佳解,因此兩個學門是不太一樣的面向。能夠在這短短五天內學到與演算法部分雷同但又不完全相同的解決問題方式,覺得收穫很多。上完這堂課,我會想更進一步去了解其中數學概念,像是線性規劃、simplex method等等,因為運算的過程都被包含在GuRoBi裡面,很好奇它是如何做到快速求解並得出最佳答案的。其實有另一門模組化課程「實用線性規劃理論及應用」就是專門講線性規劃求最佳解的數學原理。回到最一開始的問題:在賣場裡猶豫不決時,是否可以藉由這個決策模式,來決定要買哪些東西?王老師在課堂最後講解了一些範例,強調想要使問題可以計算,一定要先量化,並加入假設條件來簡化模型。而在賣場裡決定買甚麼東西這個問題其實不算複雜,尺度也不大,一般不太需要用到最佳化來解決,但要量化卻有點困難。看來這堂課並沒有解決這個問題。不過其中的內容確實非常有趣,我向老師要了書單,準備日後研讀。

關鍵字 #成大模組化 #最佳化 #python #GuRoBi #整數線性規劃


banner

瀏覽數: