【CPLEX教程02】配置Cplex的Java环境以及API说明
00 前言
因为小编一般用的C++和Java比较多,而且现在开发大型算法用这类面向对象的编程语言也方便得多。基于上面的种种考虑,加上时间和精力有限,所以就暂时只做C++和Java的详细教程辣。关于matlab和python的也许后续会补上的吧。
然后在开始之前,照例先把环境给配置好。那么就先配置java的环境吧。
CPLEX系列教程可以关注我们的公众号哦!获取更多精彩消息!
01 添加环境变量
前面已经说了怎么下载和安装cplex了,如图:
首先要确保cplex的相关路径已经添加进path这个环境变量了,具体是\bin\x64_win64这个文件夹。cplex在安装的时候添加的环境变量好像并没有起到作用,所以最好手动添加一下。
打开cmd,运行cplex,如果出现下面的界面,则添加成功:
02 将CPLEX库导入ECIPLSE
java小编一般用的ide是eclipse,就配置一下关于eclipse的。其他的开发环境请大家自行设置哈。
新建一个工程,添加一个package,添加一个带main函数的类。代码先别写。
在项目右键,选择build path -> Configure Build Path……
找到Libraries->Add External JARs……,然后定位到\lib这个文件夹,把cplex.jar给添加进去。
03 求解一个简单的模型
一个简单的线性规划问题:
把下面代码复制进main函数里面:
try {IloCplex cplex = new IloCplex(); // creat a modeldouble[] 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
[1] https://blog.csdn.net/robert_chen1988/article/details/78678289
【CPLEX教程02】配置Cplex的Java环境以及API说明相关推荐
- 卸载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 ...
- Win11安装VScode详细教程、配置Anaconda与python环境
1. Anaconda与VSCode的下载与安装 首先参考该教程进行 Anaconda与VSCode的基础安装:Anaconda + VSCode 最详细教程 注意: 1) 上方教程中下载32位.64 ...
- java环境变量设置 win2003,2021-03-09Win10的Java环境配置Win10下Java环境变量配置
接下来主要讲怎么配置 Java 的环境变量,也是为了以后哪天自己忘记了做个备份 (注:win10的Java环境变量配置和其他的windows版本稍有不同) 在电脑桌面 右键点击 "此电脑&q ...
- java环境变量配置linux_14行脚本配置Linux下Java环境变量
对于Java初学者而言,可能在Java开发环境的配置上要花一番功夫,而在Linux下,配置Java的环境变量,这个功夫可能又会增加.为此,我编了一个bash脚本来实现自动配置Java的环境变量.你只需 ...
- macbook配置java环境变量_配置mac上Java环境变量
从ubuntu上转到mac上来做开发,一切配置都要重新开始 1. 下载jre http://www.oracle.com/technetwork/java/javase/downloads/index ...
- java写脸萌_Linux环境下配置JDK,java环境
1.查看Linux自带的JDK是否已安装 # java -version 2. 查看JDK信息 # rpm -qa | grep java 显示: java-x.x.x-gcj-compat-x.x. ...
最新文章
- 剑指Offer(Java实现)删除链表中重复的结点
- 敏捷转型历程 - Sprint3 回顾会
- 这或许是实现重试最优雅的姿势了!
- 如何使用 SAP API Portal Policy Editor 给 SAP API 调用自动添加认证信息
- ubuntu修改默认系统启动项
- 魅族16s Pro最新预热海报公布:将配备双扬声器
- python入门第六章 信息安全策略-文件备份 用户账户管理
- 地址栏引用PHP中变量,PHP 读取地址栏 参数
- 等级考试(三):三级网络---似曾相识(续)
- 蓝桥杯 PREV-54 历届试题 合根植物
- 机器学习--聚类分析(划分方法,层次方法、密度方法)
- 仅对 LINQ to Entities 中已排序的输入支持方法“Skip”。必须在调用“Skip”方法之前调用方法“OrderBy”
- java 调用tomcat api,tomcat处理http请求-下
- 谷歌、领英、汇丰、桥水、联合航空、联合利华、雷克萨斯、Expedia、OYO等公司高管变动情况...
- spider_study 1
- 新手剪辑师秒变大神 高级感视频剪辑的几种常用技巧
- 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
- 考研英语二计算机词汇,考研英语词汇84分的一些经验
- Connor学Android - Android动画
- Android键盘监听事件
热门文章
- nnUNet保姆级使用教程!从环境配置到训练与推理(新手必看)
- 录屏怎么录声音苹果_苹果手机自带录屏功能,自己的声音也能录进去?还真没想到...
- 巨杉数据库—错误码40006,Failed to begin transaction, RR is isolation is only supported when mvccon is true.
- 利用C程序绘制一个正方形的矢量图形,不借助其他类库
- 安卓苹果通用超强兼容性蓝牙耳机,连接稳定音质卓越,双11必备
- 罗马神话缪斯_缪斯游戏专访
- 探索C#之微型MapReduce
- SSH服务器支持的算法漏洞
- win10 移动热点自动关闭
- 电脑插上耳机但听不到声音的问题解决