1.历史文章

1.CPLEX&Java 1.简单的线性规划问题
https://blog.csdn.net/qq_40275637/article/details/109491891
2.CPLEX&Java 2.简单的线性规划问题
https://blog.csdn.net/qq_40275637/article/details/109513360

2.要解决的问题

下面我来详细解释一下这个问题,和背包问题比较相似,有限的质量和容量,怎么装载价值最大。

1.问题描述
①有一架载货飞机,有三个隔间可以装载货物,分别是头部,中间,尾部。每个小隔间有相应的质量和容量约束,如表1所示。为了保持飞行平衡,要求头部、中间、尾部装的货物质量必须成比例,与满载情况下的头部、中间、尾部货物质量比值一致。
②有四种商品,它们的质量、体积、利润如表2所示,飞机可以选择装载这四种商品的任意比例,放在任意位置,以达到利润最大。
2.模型:
①参数:
A:货物的集合,A={C1 ,C2 , C3 , C4 }
B:飞机隔间的集合,B={头部,中间,尾部}
xij :表示 i 货物在某个隔间 j 装载的质量
ai : i 货物的总质量
vi : i 货物的体积/吨
pi : i 货物的利润/吨
cj :j 隔间可容纳的货物质量
Vj :j 隔间可容纳的货物体积
y :某一个不确定比例
②目标函数:最大化总利润
③约束:略

3.Java代码

package com.cplex.youtube;
import ilog.concert.*;
import ilog.cplex.*;public class test03 {public static void main(String[] args) {// TODO Auto-generated method stubsolveme();}  public static void solveme() {int n = 4;//cargosint m = 3;//compartmentsdouble[] p = {310.0, 380.0, 350.0, 285.0}; //profitdouble[] v = {480.0, 650.0, 580.0, 390.0}; //volume per ton of cargodouble[] a = {18.0, 15.0, 23.0, 12.0};//available weightdouble[] c = {10.0, 16.0, 8.0};//capacity of compartment double[] V = {6800.0, 8700.0, 5300.0}; //volume capacity of each compartmenttry {//define new modelIloCplex cplex =new IloCplex();//variablesIloNumVar[][] x = new IloNumVar[n][];for (int i=0; i<n; i++) {x[i] = cplex.numVarArray(m, 0, Double.MAX_VALUE);}IloNumVar y = cplex.numVar(0, Double.MAX_VALUE);//expressions 创建第二三条约束的左边表达式IloLinearNumExpr[] usedWeightCapacity = new IloLinearNumExpr[m];//创建新的变量IloLinearNumExpr[] usedVolumeCapacity = new IloLinearNumExpr[m];for (int j=0; j<m; j++) {usedWeightCapacity[j] = cplex.linearNumExpr();//将变量与模型连接起来usedVolumeCapacity[j] = cplex.linearNumExpr();//将变量与模型连接起来for (int i=0; i<n; i++) {usedWeightCapacity[j].addTerm(1.0, x[i][j]);usedVolumeCapacity[j].addTerm(v[i], x[i][j]);}}//目标函数IloLinearNumExpr objective =cplex.linearNumExpr();for (int i=0; i<n; i++) {for (int j=0; j<m; j++) {objective.addTerm(p[i], x[i][j]);}}//define objectivecplex.addMaximize(objective);//constrainsfor (int i=0; i<n; i++) { //第一条约束cplex.addLe(cplex.sum(x[i]), a[i]);}for (int j=0; j<m; j++) {cplex.addLe(usedWeightCapacity[j],c[j]);cplex.addLe(usedVolumeCapacity[j],V[j]);cplex.addEq(cplex.prod(1/c[j], usedWeightCapacity[j]), y);}//set paramcplex.setParam(IloCplex.IntParam.SimDisplay, 0);//solve modelif(cplex.solve()) {System.out.println("Obj = "+cplex.getObjValue());for (int i=0; i<n; i++) {for (int j=0; j<m; j++) {System.out.print("C"+(i+1)+": x["+(i+1)+"]["+(j+1)+"]  = "+cplex.getValue(x[i][j]));}System.out.println();}}else {System.out.println("Model not solved");}cplex.end();}catch (IloException exc) {exc.printStackTrace();}}
}

4.结果展示

 Obj = 12151.57894736842
C1: x[1][1]  = 0.0C1: x[1][2]  = 0.0C1: x[1][3]  = 0.0
C2: x[2][1]  = 10.0C2: x[2][2]  = 0.0C2: x[2][3]  = 5.0
C3: x[3][1]  = 0.0C3: x[3][2]  = 12.947368421052632C3: x[3][3]  = 3.0
C4: x[4][1]  = 0.0C4: x[4][2]  = 3.0526315789473686C4: x[4][3]  = 0.0

CPLEXJava 3.简单的线性规划问题相关推荐

  1. 二元一次函数最值问题_高中数学必考知识点:二元一次不等式(组)及简单的线性规划问题...

    对于高考来临,同学和家长非常关心数学如何去复习,高考数学考的知识点非常多,需要考生需要考生运用大量方法技巧进行解决问题,等等这些都增加高考数学的难度. 为了能帮助考生各个击破高考数学知识点,今天肖老师 ...

  2. 高中数学必考知识点:二元一次不等式(组)及简单的线性规划问题

    对于高考来临,同学和家长非常关心数学如何去复习,高考数学考的知识点非常多,需要考生需要考生运用大量方法技巧进行解决问题,等等这些都增加高考数学的难度. 为了能帮助考生各个击破高考数学知识点,今天肖老师 ...

  3. matlab使用linprog()函数解决简单的线性规划问题

    *matlab关于用linprog函数求解简单的线性规划问题 问题描述 这是一道高中都见过的线性规划题目,那接下来我们将用linprog函数来求解目标函数的最优解即最大值 一.Matlab代码如下 & ...

  4. 图解法求最优解的例题_简单的线性规划求最优解

    教你如何做出最佳选择 --简单的线性规划求最优解 在线性约束条件下,求线性目标函数最值问题,称为"线性规划".目标函 数 ) , ( y x f z  取得最值时,变量 y x ...

  5. 线性规划图解法求最优解_高中数学:简单的线性规划问题

    1. 简单线性规划问题的有关概念 先来看一道高考题: 某公司招收男职员x名,女职员y名,x和y须满足约束条件 ,则 的最大值是( ) A. 80 B. 85 C. 90 D. 95 (1)约束条件:变 ...

  6. 简单理解线性规划的单纯形算法

    自己写的,csdn的markdown不怎么会用,所以在知乎写的. 文章-理解线性规划的单纯形算法

  7. 利用python和matlab求解简单的线性规划问题

    [Python和Matlab中的linprog函数进行线性规划的求解] Python和Matlab中的linprog函数都可以用于求解线性规划问题,两者在语法上基本相似. [PS]我也只是编程小白,写 ...

  8. Excel求简单的线性规划问题

    一.问题 &emsp某寻呼公司雇佣了多名话务员工作,他们每天工作3节,每节3小时,每节开始时间为午夜.凌晨3点钟.凌晨6点钟,上午9点.中午12点,下午3点.6点.9点,为方便话务员上下班,管 ...

  9. 3D演示帮你一眼看懂线性规划问题,这篇可视化教程火了

    行早 发自 凹非寺 量子位 | 公众号 QbitAI 你印象中的线性规划是什么样的? 先在二维平面上画图再找最优解? 但毕竟是学理论嘛,大家或多或少都会觉得枯燥晦涩. 那么为何不试试更加直观.好玩的学 ...

最新文章

  1. 2022-2028年中国灭火器行业市场前瞻与投资战略规划分析报告
  2. disk boot failure,insert system disk and press enter
  3. 三种基本排序的实现及其效率对比:冒泡排序、选择排序和插入排序
  4. GNS3错误7200:无法开始Dynamips于端口7200
  5. PyQt5 技术篇 - 按钮隐藏并保留位置,pyqt5设置按钮的可见度,设置按钮透明度
  6. python基础——迭代器与生成器
  7. 字符串处理 —— 回文串相关 —— Manacher 算法
  8. 第十四:Pytest进阶之html测试报告
  9. 开发人员如何高效编程?
  10. 你们知道我们山东考生是怎么过来的么!山大校长写给你!
  11. Git 头像修改 原
  12. 新版bscroll轮播图无缝切换
  13. 置信区间,置信水平/置信度
  14. Flutter水波纹效果
  15. 2021年WordPress博客装修美化(一)
  16. ikbc c104win键盘失灵以及数字键失灵
  17. 不同tab页sessionStorage共享情况
  18. java 当前类相对路径_JAVA文件中获取该项目的相对路径方法
  19. 保姆级给电脑分盘,和合并两个盘
  20. openwrt mysql改密码_openwrt的路由器重置root密码

热门文章

  1. 中国铁路轮轴行业市场供需与战略研究报告
  2. QQ个性签名:承诺一生不离不弃
  3. 天池 IJCAI17《口碑商家客流量预测》回顾
  4. win10系统待机之后无法唤醒进入桌面怎么办?
  5. The application could not be installed: INSTALL_FAILED_TEST_ONLY解决方案
  6. Linux上磁盘坏道检查和规避
  7. Java线程--同步和异步的区别
  8. 对称锥规划:锥与对称锥
  9. 基于云开发的答题活动小程序v2.0-完整项目分享(附源码)
  10. Ecshop后台拿shell方法总结