求解數學最佳化問題的時候, 最頭痛就是把數學問題轉換成Solver要求的矩陣格式。轉換的過程複雜繁瑣, 還常常容易出錯,按常理這不是一般人類應該做的事,應該交給程式來自動解決。
在 Julia 世界中,許多 Solver 開發者會使用 MathOptInterface 處理以上問題,節省許多開發時間。 這次分享會介紹 MOI 這套工具背後的運作機制。
MathOptInterface 能從人類好懂的 Julia語言轉換成數學問題的矩陣形式,最重要是它 “Bridge” 這套機制。 打個比喻就像程式編譯器,前端是用Julia 語言寫下的數學問題,後端則是各種不同矩陣格式的 Solver,而 Bridge 像是把前端數學問題不斷往後端改寫的 Intermediate Representation (IR)。
但是通常一個數學最佳化問題,可以有多種轉換方式,因此 MOI 將這些 Bridge 透過 Hypergraph 進行建模,並在上面搜尋最佳的轉換路徑。這場分享會介紹透過自定義 Bridge 的簡單範例 ,展示 MOI 如何在Hypergraph 搜索路徑,將Julia描述的數學問題轉換到自定義Solver要求的矩陣格式。
About Jiawei
對機器學習與最佳化演算法很有興趣,目前在研究單位與演算法努力奮鬥的 Julia 初階新手。