00 前言

因为小编一般用的C++和Java比较多,而且现在开发大型算法用这类面向对象的编程语言也方便得多。基于上面的种种考虑,加上时间和精力有限,所以就暂时只做C++和Java的详细教程辣。关于matlab和python的也许后续会补上的吧。

然后在开始之前,照例先把环境给配置好。那么就先配置java的环境吧。

CPLEX系列教程可以关注我们的公众号哦!获取更多精彩消息!

01 安装好CPLEX

前面已经说了怎么下载和安装cplex了,如图:

确保已经安装上这个版本,我们才能开始下一步的工作。

02 将CPLEX库导入ECIPLSE

java小编一般用的ide是eclipse,就配置一下关于eclipse的。其他的开发环境请大家自行设置哈。

新建一个工程,添加一个package,添加一个带main函数的类。代码先别写。

在项目右键,选择build path -> Configure Build Path……

找到Libraries->Add External JARs……,然后定位到\lib这个文件夹,把cplex.jar给添加进去。

到这一步还不行,还需要把CPLEX的动态运行库给添加进去,好让java程序运行的时候能够找到,具体做法是:在项目右键,选择build path -> Configure Build Path……,找到Libraries,点开JRE System Library,在Native library location那里点edit,把cplex下的\bin\x64_win64文件夹给添加进去,这里面有程序运行所需要动态库。

03 求解一个简单的模型

一个简单的线性规划问题:

把下面代码复制进main函数里面:

try {

IloCplex cplex = new IloCplex(); // creat a model

double[] lb = {0.0, 0.0, 0.0};

double[] ub = {40.0, Double.MAX_VALUE, Double.MAX_VALUE};

IloNumVar[] x = cplex.numVarArray(3, lb, ub);

double[] objvals = {1.0, 2.0, 3.0};

cplex.addMaximize(cplex.scalProd(x, objvals));

double[] coeff1 = {-1.0, 1.0, 1.0};

double[] coeff2 = {1.0, -3.0, 1.0};

cplex.addLe(cplex.scalProd(x, coeff1), 20.0);

cplex.addLe(cplex.scalProd(x, coeff2), 30.0);

if (cplex.solve()) {

cplex.output().println("Solution status = " + cplex.getStatus());

cplex.output().println("Solution value = " + cplex.getObjValue());

double[] val = cplex.getValues(x);

for (int j = 0; j < val.length; j++)

cplex.output().println("x" + (j+1) + " = " + val[j]);

}

cplex.end();

} catch (IloException e) {

System.err.println("Concert exception caught: " + e);

}

点击运行,出现下面的结果就成功啦:

最后,如果提示找不到build path ,share libraries什么的,请确保第二步配置正确!至此,我们已经能愉快使用cplex啦。

04 API说明[1]

cplex的java程序整体框架一般如下:

try {

} catch (IloException e) {

System.err.println("Concert exception caught: " + e);

}

使用 IloCplex 类新建一个 cplex 类。

使用 IloNumVar 定义求解变量。

使用 addMaximize 或addMinimize 定义求解目标。

使用 addLe 添加约束条件.

使用 solve() 方法求解。

使用 IloNumExpr 定义中间变量。

cplex 的 java api 不支持加减乘除符号,加必须用 sum 方法, 减必须用 diff 方法, 乘除必须用 prod 方法。

05 reference

cplex java_【CPLEX教程02】配置Cplex的Java环境以及API说明相关推荐

  1. 【CPLEX教程02】配置Cplex的Java环境以及API说明

    00 前言 因为小编一般用的C++和Java比较多,而且现在开发大型算法用这类面向对象的编程语言也方便得多.基于上面的种种考虑,加上时间和精力有限,所以就暂时只做C++和Java的详细教程辣.关于ma ...

  2. Win11安装VScode详细教程、配置Anaconda与python环境

    1. Anaconda与VSCode的下载与安装 首先参考该教程进行 Anaconda与VSCode的基础安装:Anaconda + VSCode 最详细教程 注意: 1) 上方教程中下载32位.64 ...

  3. 卸载CentOS 5.4自带的OpenJDK,配置新的Java环境

    本文CentOS版本为5.4 final,使用图形界面与命令结合的操作方式 由于CentOS 5.4在默认情况下,会安装OpenOffice之类的软件,而这些软件需要Java支持,因此系统会默认安装一 ...

  4. linux php和java环境变量配置_Linux下Java环境变量的安装与配置

    安装 以JDK1.6.0_43为例 增加可执行权限 chmod +x jdk-6u43-linux-x64.bin, 执行 ./jdk-6u43-linux-x64.bin 生成目录jdk1.6.0_ ...

  5. ubuntu中java环境配置_Ubuntu下java环境的搭建

    喜欢捣鼓计算机相关的,然后大二的时候就想着用linux,于是当时就装了个ubuntu,还想着把java环境搭建进去,但当时由于"意志不坚定"后来就没用linux了,知道最近突然想在 ...

  6. display环境变量如何配置_JDK 安装 Java环境变量配置

    你的关注是我们最大的动力 JDK 安装 Java环境变量配置 JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAV ...

  7. java环境变量设置 win2003,2021-03-09Win10的Java环境配置Win10下Java环境变量配置

    接下来主要讲怎么配置 Java 的环境变量,也是为了以后哪天自己忘记了做个备份 (注:win10的Java环境变量配置和其他的windows版本稍有不同) 在电脑桌面 右键点击 "此电脑&q ...

  8. java环境变量配置linux_14行脚本配置Linux下Java环境变量

    对于Java初学者而言,可能在Java开发环境的配置上要花一番功夫,而在Linux下,配置Java的环境变量,这个功夫可能又会增加.为此,我编了一个bash脚本来实现自动配置Java的环境变量.你只需 ...

  9. java6_64.tar配置_centos6.5_64 java 环境变量配置

    jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 解压 1.mk ...

  10. macbook配置java环境变量_配置mac上Java环境变量

    从ubuntu上转到mac上来做开发,一切配置都要重新开始 1. 下载jre http://www.oracle.com/technetwork/java/javase/downloads/index ...

最新文章

  1. python3 命令行参数
  2. No module named 'urlparse'
  3. Java内存模型深度解析:总结--转
  4. darknet: ./src/parser.c:348: parse_region: Assertion `l.outputs == params.inputs' failed.yolov3训练问题
  5. vue 项目白屏解决方案
  6. lvs mysql 端口_LVS配置及多端口服务配置
  7. php k线图粒度计算,【k线】k线图中MA均线计算
  8. android控件的touch事件_Android touch 事件分发时序
  9. ROS里程计的学习(odometry) (一)
  10. SSM框架学习(2)CRM项目软件开发周期
  11. 不浪费原料的汉堡制作方案--贪心算法
  12. 华字后面配什么字比较好_和华字搭配的男孩名字 华后面取什么名字男孩 带华字好听好寓意男孩名...
  13. 二分法查找--Dichotomy search
  14. 白化深度学习与tensorflow——强化学习
  15. python-字典列表集合字符串
  16. WIN10自带杀毒怎么才能不让他自动删除文件(实测有效)
  17. 科技型中小企业的申报流程及材料?
  18. 游戏美术次世代制作流程图文详解
  19. UVA10110-灯光
  20. java并发惊群_成都汇智动力-Java并发:其他(总结性的东西)

热门文章

  1. kali linux常用命令
  2. 全球及中国晶圆锯划片刀行业发展态势及投资潜力预测报告2021-2027年
  3. 8、Python车牌数据集自动生成及其图片叠加
  4. java 无限循环语句_java学习之循环语句
  5. 遗传算法python实现
  6. 关于数模中编程的一点愚见
  7. WIFI密码破解技巧---简单之成功率极高
  8. 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例14
  9. Ubuntu(小名乌班图)的安装顺便附带VMware的安装教程,以及VM的激活密钥
  10. EasyUI 中自定义组件 icon 图标