一:cplex的使用:

1.1 导入cplex.jar,包的地址:https://pan.baidu.com/s/1Q0Bv24EQdelV2rY-IrLoZQ 提取码:xn14

1.2 将cplex1290.dll (地址:https://pan.baidu.com/s/1sQXqYTSJWywwaZt5AHVkZQ 提取码:nm0l)添加到VM option中,这里以IDEA为例,

同样eclipse

**二、求解问题。

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

maxs.t.x1+2×2+3×3

−x1+x2+x3≤20

x1−3×2+x3≤30

0≤x1≤40

java 中的 cplex 代码如下:

import ilog.concert.IloException;

import ilog.concert.IloNumVar;

import ilog.cplex.IloCplex;

public class LP1 {

public static void main(String[] args) {

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);

}

}

}

输出结果:

Tried aggregator 1 time.

N

o LP presolve or aggregator reductions.

Presolve time = 0.00 sec. (0.00 ticks)

Iteration log . . .

Iteration: 1 Dual infeasibility = 0.000000

Iteration: 2 Dual objective = 202.500000

Solution status = Optimal

Solution value = 202.5

x1 = 40.0

x2 = 17.5

x3 = 42.5

这里注意一下,求的是线性公式的最大值,而在MATLAB中利用x=linprog(f,[],[],Aeq,beq,lb);求解的是最小值(我怎么调试都不一致的原因),这里的参数就不在赘述了。

还有就是设置cplex API在https://wenku.baidu.com/view/7095dd76777f5acfa1c7aa00b52acfc789eb9fed.html有介绍(虽然是c#的,但是java可以借鉴。

cplex java_线性最优解java实现+Cplex java调用相关推荐

  1. 补充1 设计区域网络配置的优化模型(工厂选址模型)——基于java和cplex的实现

    这一部分是第二部分的供应链网络的设计(二)供应链的网络设计第四部分设计区域网络配置的优化模型. 目录 一.所需输入 二.有能力约束的工厂选址模型 1.利用excel进行规划求解 2.利用java和cp ...

  2. 补充3 需求分配和工厂选址模型(工厂和仓库同时选址)——基于java和cplex的实现

    这一部分是第二部分的供应链网络的设计(二)供应链的网络设计第六部分在区域内识别潜在地点的模型. 目录 一.所需输入 二.将需求分配给现有生产设施的需求分配模型 三.生产设施选址模型 四.更复杂的.有能 ...

  3. 蚁群算法画图java_[转载]简单蚁群算法 + JAVA实现蚁群算法

    一 引言 蚁群算法(ant colony optimization,ACO),又称蚂蚁算法,是一种用来在图中寻找优化路径的机率型技术.它由Marco Dorigo于1992年在他的博士论文中引入,其灵 ...

  4. [JAVA_开课吧资源]第一周 Java语言概述、Java语言基础

    主题一 Java语言概述 » JDK介绍及其基本组件 Sun公司利用Java开发工具箱(Java Development Toolkit ,JDK)发布Java的各个版本.JDK由开发和测试Java程 ...

  5. stringbuilder寻找字符串位置可能存在多个 java_【面试题系列】——Java基础

    本文主要包括Java基础及面向对象相关面试题. 1,Java科普1.1 为什么安装包要分JDK和JRE?1.2 为什么Java语言是跨平台的?1.3 为什么安装完JDK后要设置环境变量?1.4 Jav ...

  6. w3c java_无法从W3C加载Java类

    我尝试使用提供的gui运行群集,但是随后出现此异常: Error in starting visualizer window. java.lang.NoClassDefFoundError: org/ ...

  7. 定义入栈java_小师妹学JVM之:java的字节码byte code简介

    简介 Byte Code也叫做字节码,是连接java源代码和JVM的桥梁,源代码编译成为字节码,而字节码又被加载进JVM中运行.字节码怎么生成,怎么查看字节码,隐藏在Byte Code背后的秘密是什么 ...

  8. as3调用java_关于openamf我用as3链接java程序,并调用相关的方法,但是能够连上,却不能够调用是怎么回事...

    我用的openamf做flashremoting服务器是没问题的!这是as的代码!package{importflash.display.Sprite;importflash.net.ObjectEn ...

  9. 容器安装java_在docker容器中安装Java(从宿主机向docker容器中拷贝文件)

    操作系统 [root@Optimus /]# uname -a Linux Optimus 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2 ...

  10. 怎么样才能学好java_论新手该如何学习java?

    由于我国高等教育制度教材陈旧,加上java自身发展不过十年左右的时间,还有一个很重要的原因就是java这门语言更适合商业应用,所以高校里大部分博士老师们对此语言的了解甚至不比本科生多. 在这种环境下, ...

最新文章

  1. 传感器融合带来多重好处
  2. 2、已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列; * 他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直
  3. STL容器之优先队列
  4. 一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)
  5. Windows下卸载Oracle
  6. html table导出到Excel中,不走后台,js完成
  7. [HDOJ5542]The Battle of Chibi(DP,树状数组)
  8. Error -Cannot add direct child without default aggregation defined for control
  9. 综合场景搞清楚同步 异步 阻塞 非阻塞
  10. android高级资料
  11. 文件夹缩写(文件夹空格问题解决)
  12. C++ std:: 的坑
  13. Electron —— Cannot find module ‘jquery.min.js’(II)
  14. 制作Linux系统安装程序,制作自己的rpm包
  15. 毕设题目:Matlab瑕疵检测
  16. 【转参考】MySQL利用frm和ibd文件进行数据恢复
  17. Java中Math类的随机数公式
  18. 01背包问题解法及优化
  19. HTML5 之 Link 标签
  20. Android 音视频开发(二):使用 AudioRecord 采集音频PCM并保存到文件(学习笔记)

热门文章

  1. 【Qt】arm-none-eabi-gdb-py.exe由于找不到python27.dll 无法继续执行代码
  2. 一款好用的取色工具TakeColor
  3. 44款最适合海报设计的英文字体
  4. 企业微服务架构转型-关键诉求
  5. mysql成绩是什么数据类型_mysql数据类型
  6. 通达信版弘历软件指标_弘历指标源码:弘历软件主要功能是什么?选股精不精准?...
  7. 【高质量分享】Axure组件库_含大厂和个人博主
  8. 基于C++的人机对弈的五子棋AI程序
  9. pip install -r requirements.txt 报错。
  10. win10c语言乱码修复方法,“字体库异常、电脑乱码的解决方案”的解决方案