Gurobi,又稱Gurobi Optimizer,是一個用來求解數學規劃的優化引擎,為目前市面上相當知名的數學規劃優化器,主要由Zonghao Gu、Edward Rothberg、Robert Bixby開發,Gurobi即由三位開發者的名子命名而來。
✒️ 支持的數學規劃類型 🔗
目前Gurobi已經更新至7.5.2版本,並且能求解以下類型的數學規劃問題:
- Linear Programming (LP)
- Mixed-Integer Linear Programming (MILP)
- Quadratic Programming (QP)
- Mixed-Integer Quadratic Programming (MIQP)
- Quadratically Constrained Programming (QCP)
- Mixed-Integer Quadratically Constrained Programming (MIQCP)
⚡ 因此Gurobi是能夠求解非線性問題,但僅限於二次規劃問題。
✒️ 支持的程式語言(programming language)及建模語言(modeling language) 🔗
Gurobi支援許多不同程式語言及建模語言的開發,如以下所示:
🔽 程式語言
- 物件導向(Object-oriented interfaces):C++, Java, .NET, and Python
- 矩陣導向(Matrix-oriented interfaces):C, MATLAB, and R
🔽 建模語言
- AMPL, GAMS, AIMMS, and MPL
⚡ 本repository主要著重於python-gurobi的應用
要使用Gurobi,必須先取得Gurobi License才能進行使用,Gurobi License主要分為兩個類型,商業使用(Commercial Licenses)及學術使用(Academic Licenses),商業使用是必須付費的,不過Gurobi有提供測試License,讓公司進行Gurobi試用,而學術使用是完全免費的,並且在Gurobi使用上沒有任何限制,不管是在建模的大小或功能的使用等,但學術License僅有一年的有效期,一旦到期了,就必須重新申請新的License才可再次使用,不過以整體來說Gurobi算是非常好的數學規劃求解器,對於學術上的使用是非常大方的。