addle

更新时间:2022-12-27 12:54:41 阅读: 评论:0


2022年12月27日发(作者:教育机构)

CPLEX-求解⼀个简单的模型

接下来我们⽤Java语⾔调⽤Cplex来求解下⾯的⼀个简单模型:

⾸先新建项⽬,将包导⼊项⽬中且配置好环境。

;

eption;

Var;

ex;

publicclasstest01{

publicstaticvoidmain(String[]args){

try{

IloCplexcplex=newIloCplex();//创建⼀个模型

doublelb[]={0.0,0.0,0.0};//三个变量的下界

doubleub[]={40.0,_VALUE,_VALUE};//三个变量的上界

IloNumVarx[]=Array(3,lb,ub);//三个变量

doubleobjvals[]={1.0,2.0,3.0};//⽬标函数的系数

imize(od(x,objvals));//⽬标函数

doublecoeff1[]={-1.0,1.0,1.0};//约束1的系数

doublecoeff2[]={1.0,-3.0,1.0};//约束2的系数

(od(x,coeff1),20.0);//约束1

(od(x,coeff2),30.0);//约束2

if(()){

().println("Solutionstatus="+tus());//解的状态

().println("Solutionvalue="+Value());//解的值

doubleval[]=ues(x);

for(inti=0;i<;i++){

().println("x"+(i+1)+"="+val[i]);//打印三个变量的值

}

}

();

}catch(IloExceptione){

n("Concertexceptioncaught:"+e);

}

}

}

运⾏结果:

注:

(1)cplex的java程序整体框架⼀般如下:

try{

}catch(IloExceptione){

n("Concertexceptioncaught:"+e);

}

(2)IloCplex类创建⼀个cplex模型,IloNumVar定义求解变量,IloNumExpr定义中间变量,od(x,y)不仅求xy,还求

它们的累加和,(a,b)表⽰a⼩于等于b,(a,b)表⽰a⼤于等于b,(a,b)表⽰a=b,

(3)()求解模型,()结束求解,().println()打印

(4)cplex的javaapi不⽀持加减乘除符号,加必须⽤sum⽅法,减必须⽤diff⽅法,乘除必须⽤prod⽅法

本文发布于:2022-12-27 12:54:41,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/40433.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:holdup
标签:addle
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图