Python中的線性優化通過編寫腳本來解決建模問題

來源:互聯網
上載者:User
關鍵字 PYTHON 腳本 建模問題 線性優化

本系列文章將展示如何利用 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 能夠在它的路徑上找到此解算器。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.