本系列文章將展示如何利用 Pyomo 的能力集成 Python 來建模優化應用程式。 本系列的第一篇文章將介紹HTTP://www.aliyun.com/zixun/aggregation/22929.html">基礎知識。 第 2 部分將介紹如何添加更多工具和構建一種可伸縮的架構。 第 3 部分將提供一些使用 IPython 和 pandas 進行投資分析和統計分析的實用示例。
建模是一種解決複雜問題的強大方法。 依據圖書 Modeling Languages in Mathematical Optimization(參閱 參考資料)的敘述,模型用於:
解釋現象 進行預測 評估關鍵因素 識別極限 分析折衷方法
在業界,Microsoft® Excel 等試算表軟體常常是建模問題的首要選擇。 現在,試算表通常非常直觀,但它們在解決大型問題上存在著局限性。 如果您是開發人員,那麼您可能會發現編寫腳本來解決建模問題會更有效,因為您可以輕鬆地將腳本集成到其他系統中。 本文將介紹使用 Pyomo 庫在 Python 應用中實現線性優化的基礎知識。
入門
首先要安裝 Pyomo。 Pyomo 是 Coopr 的一個中心元件,而 Coopr 是 Python 套裝軟體的集合。 您可以下載 coopr_install 腳本,在使用 Python 解譯器運行它時,它會創建一個 Python 虛擬環境。
創建一個名為 「coopr」 的相對目錄:
noahs-MacBook-Air% python coopr_install
使用下面的命令啟動 Pyomo,這會將該相對目錄和它的可執行檔放在您的路徑中:
noahs-MacBook-Air% source coopr/bin/activate
使用 Pyomo "--help 命令獲取使用 pyomo 的説明:
(coopr)noahs-MacBook-Air% pyomo --help
您需要一個編譯器來使用虛擬 Python 環境構建器 (virtualenv) 和 Pyomo。 在 OS X 上,使用 XCode Developer Tools 命令列工具。 在 Linux 上,使用 GNU Compiler Collection (GCC)。 初始化這個虛擬環境後,可通過以下兩種方式之一使用 Pyomo 解決問題:
使用 Pyomo 命令列工具: (coopr)noahs-MacBook-Air% pyomo my_problem.py --solver=glpk 或者,將初始化代碼嵌入您的腳本中,通過 Python 解譯器運行它:
清單 1. 在一個腳本中調用 Pyomo
#This is an optional code path that allows the script to be run outside of#pyomo command-line. For example: python wyndor.pyif __name__ == '__main__': #This replicates what the pyomo command-line tools does from coopr .opt import SolverFactory opt = SolverFactory("glpk") instance = model.create() results = opt.solve(instance) #sends resul ts to stdout results.write()
Pyomo 假設您至少安裝了一個解算器 (solver)。 GNU Linear Programming Kit (glpk) 是預設的解算器。 請參閱您希望使用的解算器的安裝說明。 然後確保 Pyomo 能夠在它的路徑上找到此解算器。