cplex java_【CPLEX教程02】配置Cplex的Java环境以及API说明
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说明相关推荐
- 【CPLEX教程02】配置Cplex的Java环境以及API说明
00 前言 因为小编一般用的C++和Java比较多,而且现在开发大型算法用这类面向对象的编程语言也方便得多.基于上面的种种考虑,加上时间和精力有限,所以就暂时只做C++和Java的详细教程辣.关于ma ...
- Win11安装VScode详细教程、配置Anaconda与python环境
1. Anaconda与VSCode的下载与安装 首先参考该教程进行 Anaconda与VSCode的基础安装:Anaconda + VSCode 最详细教程 注意: 1) 上方教程中下载32位.64 ...
- 卸载CentOS 5.4自带的OpenJDK,配置新的Java环境
本文CentOS版本为5.4 final,使用图形界面与命令结合的操作方式 由于CentOS 5.4在默认情况下,会安装OpenOffice之类的软件,而这些软件需要Java支持,因此系统会默认安装一 ...
- linux php和java环境变量配置_Linux下Java环境变量的安装与配置
安装 以JDK1.6.0_43为例 增加可执行权限 chmod +x jdk-6u43-linux-x64.bin, 执行 ./jdk-6u43-linux-x64.bin 生成目录jdk1.6.0_ ...
- ubuntu中java环境配置_Ubuntu下java环境的搭建
喜欢捣鼓计算机相关的,然后大二的时候就想着用linux,于是当时就装了个ubuntu,还想着把java环境搭建进去,但当时由于"意志不坚定"后来就没用linux了,知道最近突然想在 ...
- display环境变量如何配置_JDK 安装 Java环境变量配置
你的关注是我们最大的动力 JDK 安装 Java环境变量配置 JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAV ...
- java环境变量设置 win2003,2021-03-09Win10的Java环境配置Win10下Java环境变量配置
接下来主要讲怎么配置 Java 的环境变量,也是为了以后哪天自己忘记了做个备份 (注:win10的Java环境变量配置和其他的windows版本稍有不同) 在电脑桌面 右键点击 "此电脑&q ...
- java环境变量配置linux_14行脚本配置Linux下Java环境变量
对于Java初学者而言,可能在Java开发环境的配置上要花一番功夫,而在Linux下,配置Java的环境变量,这个功夫可能又会增加.为此,我编了一个bash脚本来实现自动配置Java的环境变量.你只需 ...
- java6_64.tar配置_centos6.5_64 java 环境变量配置
jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 解压 1.mk ...
- macbook配置java环境变量_配置mac上Java环境变量
从ubuntu上转到mac上来做开发,一切配置都要重新开始 1. 下载jre http://www.oracle.com/technetwork/java/javase/downloads/index ...
最新文章
- python3 命令行参数
- No module named 'urlparse'
- Java内存模型深度解析:总结--转
- darknet: ./src/parser.c:348: parse_region: Assertion `l.outputs == params.inputs' failed.yolov3训练问题
- vue 项目白屏解决方案
- lvs mysql 端口_LVS配置及多端口服务配置
- php k线图粒度计算,【k线】k线图中MA均线计算
- android控件的touch事件_Android touch 事件分发时序
- ROS里程计的学习(odometry) (一)
- SSM框架学习(2)CRM项目软件开发周期
- 不浪费原料的汉堡制作方案--贪心算法
- 华字后面配什么字比较好_和华字搭配的男孩名字 华后面取什么名字男孩 带华字好听好寓意男孩名...
- 二分法查找--Dichotomy search
- 白化深度学习与tensorflow——强化学习
- python-字典列表集合字符串
- WIN10自带杀毒怎么才能不让他自动删除文件(实测有效)
- 科技型中小企业的申报流程及材料?
- 游戏美术次世代制作流程图文详解
- UVA10110-灯光
- java并发惊群_成都汇智动力-Java并发:其他(总结性的东西)