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