Cplex求解线性规划
生活随笔
收集整理的這篇文章主要介紹了
Cplex求解线性规划
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
前言
本文將介紹使用Cplex進(jìn)行簡單的線性規(guī)劃求解,包括Cplex中兩種常用的建模方式,即按行建模和按列建模。實(shí)際上還有一種按非零元素建模,本文暫時(shí)不涉及。編程環(huán)境是VS2019+Cplex12100,環(huán)境配置可參考博客:環(huán)境配置
按行添加
代碼
#include<ilcplex/ilocplex.h>ILOSTLBEGIN/*數(shù)學(xué)模型Maximize x1+x2s.t. x1+2x2<=10 (1)x1-x2<=3 (2) */ int main() {IloEnv env;//環(huán)境IloModel model(env);//模型IloNumVarArray var(env);//變量IloRangeArray con(env);//約束var.add(IloNumVar(env, 0, IloInfinity, ILOINT));//添加變量(大于0,整型)var.add(IloNumVar(env, 0, IloInfinity, ILOINT));//添加變量(大于0,整型)IloObjective obj = IloMaximize(env, var[0] + var[1]);//目標(biāo)函數(shù)(極大化)con.add(var[0] + 2 * var[1] <= 10);//約束(1)con.add(var[0] - var[1] <= 3);//約束(2)model.add(obj);//將目標(biāo)導(dǎo)入模型model.add(con);//將約束導(dǎo)入模型IloCplex cplex(model);//將模型導(dǎo)入求解器cplex.solve();//求解env.out() << cplex.getObjValue() << endl;//輸出目標(biāo)值for (int i = 0; i < var.getSize(); i++)env.out() << cplex.getValue(var[i]) << "\t";//輸出變量值env.out() << endl;env.end();system("pause"); }結(jié)果
按列添加
代碼
#include<ilcplex/ilocplex.h>ILOSTLBEGIN/*數(shù)學(xué)模型Maximize x1+x2s.t. x1+2x2<=10 (1)x1-x2<=3 (2) */ int main() {IloEnv env;//環(huán)境IloModel model(env);//模型IloNumVarArray var(env);//變量IloRangeArray con(env);//約束con.add(IloRange(env, -IloInfinity, 10));//約束1邊界條件con.add(IloRange(env, -IloInfinity, 3));//約束3邊界條件IloObjective obj = IloMaximize(env);//目標(biāo)函數(shù)var.add(IloNumVar(obj(1) + con[0](1) + con[1](1), 0, IloInfinity, ILOINT));//添加x1列var.add(IloNumVar(obj(1) + con[0](2) + con[1](-1), 0, IloInfinity, ILOINT));//添加x2列model.add(obj);//將目標(biāo)導(dǎo)入模型model.add(con);//將約束導(dǎo)入模型IloCplex cplex(model);//將模型導(dǎo)入求解器cplex.solve();//求解cplex.exportModel("test.lp");//將模型導(dǎo)出,命名為test.lpenv.out() << cplex.getObjValue() << endl;//輸出目標(biāo)值for (int i = 0; i < var.getSize(); i++)env.out() << cplex.getValue(var[i]) << "\t";//輸出變量值env.out() << endl;env.end();system("pause"); }結(jié)果
總結(jié)
可以看到按行添加和按列添加得到的結(jié)果是一致的,我們添加的是同一個(gè)模型。
總結(jié)
以上是生活随笔為你收集整理的Cplex求解线性规划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数字图像处理与分析_第一章
- 下一篇: 机器人学导论第七章