Gurobi软件求解线性规划问题(卜算学习记录)
摘要:本文回顧了卜老師GLPK求解家庭主婦購物問題的過程,提供了在python中安裝Gurobi的方法,給出了Gurobi求解線性規劃問題的具體步驟。通過對比Gurobi和Glpk的不同,帶著讀者邊學習邊復習了Glpk的使用方法。線性規劃是看家本領,不僅要熟練掌握建模方法,還要學會使用軟件進行求解。
01前言
上課時,卜老師介紹了幾種求解線性規劃的軟件,并演示了GLPK軟件的使用。同時,卜老師說Gurobi是幾種軟件中比較好用的軟件,并且對教學是免費的。所以本文選擇介紹Gurobi軟件求解線性規劃問題。(如果大家對其他軟件有所學習,歡迎后續補充)
上課時,卜老師是在龍芯電腦上直接調出代碼進行演示的。這里提供上課拍的GLPK演示求解家庭主婦購物問題的照片:
圖1 家庭主婦問題
圖2 對應的GLPK代碼
圖3 GLPK求解
圖4 GLPK求解結果
02 Gurobi軟件安裝配置
接下來進入正文,用Gurobi軟件求解線性規劃問題。
為了寫代碼方便,我選擇在python環境中安裝Gurobi,這樣就能直接在pycharm中運行,十分方便。前面提到了Gurobi對學生免費,大家可以使用國科大的郵箱進行注冊申請,親測有效。軟件下載可以到官網進行下載,或者可以從我的網盤下載:(鏈接: https://pan.baidu.com/s/1tnLlkO0QqEr7gZ5pOVes0w 提取碼: 5ucc) 不過軟件激活的時候依舊需要通過注冊申請獲得注冊碼。
這里分享一篇CSDN寫的安裝配置過程。博主寫的非常詳細,按照這個步驟走,應該都能安裝好。
(https://blog.csdn.net/weixin_41596280/article/details/89112302?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultCTRLISTdefault-1.no_search_link)
03 Gurobi軟件求解線性規劃問題
安裝好Gurobi軟件之后,下一步當然是玩玩看啦~
3.1問題敘述
線性規劃作業中給出一道題目:你的工廠生產三種產品:A、B、C。2都需要用到兩種原材料:鎳和鋁。每種產品的利潤和成本如下表所示。
你只有200公斤的鎳和300公斤的鋁庫存。如何安排生產使得利潤最大化?請將此問題表述為LP并將其轉換為對偶形式。然后您可以使用GLPK或Gurobi或其他類似工具解決原始問題和對偶問題。
( 往期的公眾號文章中詳細總結了“如何將原問題轉換為對偶問題”,在此不多贅述)
在這里給讀者朋友們留一個小練習:用Gurobi求解原問題的對偶問題。
05 感悟
在我們小的時候要從1+1開始計算,隨著學習難度增加,我們開始要計算復雜的運算,但我們學習了計算器的使用,問題迎刃而解。初中的時候我們又開始接觸一些實際應用問題,初中老師要求列出計算等式,簡單問題可以用消元法求解,計算量大的問題不要求求解。到今天我們遇到了線性規劃問題(一堆線性不等式),我們學會了使用Gurobi和Glpk進行求解,只要寫出問題形式化模型,然后變為Gurobi或Glpk能讀懂的語言,丟給Gurobi或Glpk求解即可。卜老師課堂上以及作業中大量的練習了如何寫出問題的形式化模型。只留了一道Gurobi或Glpk求解問題的題目,我認為既然線性規劃是我們的“看家本領”那么不僅要會寫出問題的形式化模型,也要學會Gurobi和Glpk的使用。所以本文詳細的寫了Gurobi的安裝配置以及使用方法。另外,通過對比Gurobi和Glpk的不同,帶著讀者復習了Glpk的使用方法。并留了一道練習題,祝大家玩得愉快。
如有謬誤,還請指正。
總結
以上是生活随笔為你收集整理的Gurobi软件求解线性规划问题(卜算学习记录)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理工科专业精品书系列
- 下一篇: 计算机专业英语词汇1500词