在CPLEX中,对于混合整数规划模型的求解是其核心功能之一,因此我们对相关CPLEX的示例程序进行了深入的了解。如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ILOG.Concert;
using ILOG.CPLEX;// MIPex3.cs - Entering and optimizing a MIP problem with SOS sets
//             and priority orders.  It is a modification of MIPex1.cs.
//             Note that the problem solved is slightly different than
//             MIPex1.cs so that the output is interesting.namespace MiPex3
{class Program{static void Main(string[] args){try{//create CPLEX optimizer/modeler and turn off presolve. 关闭MIP求解器的预处理模块Cplex cplex = new Cplex();cplex.SetParam(Cplex.Param.Preprocessing.Presolve, false);//build the modelINumVar[][] var = new INumVar[1][];IRange [][] rng = new IRange[1][];PopulateByRow(cplex, var, rng);//setup branch priorities,设置分支界定的优先级INumVar[] ordvar = { var[0][1], var[0][3] };int[] ordpri = { 8, 7 };cplex.SetPriorities(ordvar, ordpri);//setup branch directions.设置分直界定求解路线cplex.SetDirection(ordvar[0], Cplex.BranchDirection.Up);cplex.SetDirection(ordvar[1], Cplex.BranchDirection.Down);//write priority order to filecplex.WriteOrder("mipex3.ord");//optimize and output solution informationif (cplex.Solve()) {double[] x = cplex.GetValues(var[0]);double[] slack = cplex.GetSlacks(rng[0]);System.Console.WriteLine("Solution status = " + cplex.GetStatus());System.Console.WriteLine("Solution value  = " + cplex.ObjValue);for (int j = 0; j < x.Length; ++j) {System.Console.WriteLine("Variable   " + j +": Value = " + x[j]);}for (int i = 0; i < slack.Length; ++i){System.Console.WriteLine("Constraint " + i +": Slack = " + slack[i]);}}cplex.ExportModel("mipex3.lp");cplex.End();System.Console.ReadKey();}catch(ILOG.Concert.Exception e) {System.Console.WriteLine("Concert exception caught: " + e);}}internal static void PopulateByRow(IMPModeler model,INumVar[][] var,IRange[][] rng) {//Define the variables one-by-oneINumVar[] x = new INumVar[4];x[0] = model.NumVar(0.0, 40.0, "x0");x[1] = model.IntVar(0, System.Int32.MaxValue, "x1");x[2] = model.IntVar(0, System.Int32.MaxValue, "x2");x[3] = model.IntVar(2, 3, "x3");var[0] = x;//objective functionmodel.AddMaximize(model.Sum(model.Prod(1.0, x[0]),model.Prod(2.0, x[1]),model.Prod(3.0, x[2]),model.Prod(1.0, x[3])));//define three constraints one-by-onerng[0] = new IRange[3];rng[0][0] = model.AddLe(model.Sum(model.Prod(-1.0, x[0]),model.Prod(1.0, x[1]),model.Prod(1.0, x[2]),model.Prod(10.0, x[3])),20.0, "rng0");rng[0][1] = model.AddLe(model.Sum(model.Prod(1.0, x[0]),model.Prod(-3.0, x[1]),model.Prod(1.0, x[2])),30.0, "rng1");rng[0][2] = model.AddEq(model.Sum(model.Prod(1.0, x[1]),model.Prod(-3.5, x[3])),0, "rng2");// add special ordered set of type 1INumVar[] sosvars = { x[2], x[3] };double[] sosweights = { 25.0, 18.0 };model.AddSOS1(sosvars, sosweights);}}
}

CPLEX求解混合整数规划模型相关推荐

  1. python调用cplex_如何用python结合cplex求解混合整数规划问题

    展开全部 第一步:注册IBM id账号 第二步:下载相关系统的CPLEX(windows/linux/mac) 这里需要系统中安装62616964757a686964616fe4b893e5b19e3 ...

  2. python求解混合整数规划_如何用python结合cplex求解混合整数规划问题

    展开全部 第一步:注册IBM id账号 第二步:下载相关系统的e69da5e6ba9062616964757a686964616f31333363396432CPLEX(windows/linux/m ...

  3. matlab cplex 混合整数规划,Leapms + cplex解决 混合整数规划问题

    Leapms + cplex解决 混合整数规划问题 O.概述 CPleX是一个神秘的求解器, 听说久了就想用, 但是直接用有些困难, 尤其入门困难. 对初学者来说Leapms是一个好的通道. 在Lea ...

  4. 使用python求解混合整数规划问题

      摘要:当前使用Python求解混合整数规划问题的实例大多使用了cplex库.本文基于教材上的混合整数规划和0-1整数规划两道例题,尝试使用Python语言予以解决,得到的答案与教材上一致.现将有关 ...

  5. python 混合整数规划_matlab求解混合整数规划的困惑

    请问谁用过CPLEX 之类的 求解混合整数规划(Mixed integer prgramming)的matlab插件 mex file 1.能给我传一个直接可用(好用)的么... 万分感谢 网上找了好 ...

  6. 任务车间调度问题的混合整数规划模型

    任务车间调度问题的混合整数规划模型 文献[1]的7.3节讲了一个任务车间调度问题. 一个车间生产套印纸张,分别套印蓝绿黄三种颜色.三种纸张根据需求分别在蓝.绿.黄三个机器上印刷,印刷时间如下表:   ...

  7. 流水车间调度问题混合整数规划模型

    流水车间调度问题(FSP)描述为:有n个独立的工件按照相同的工艺路线在m台机器伤加工,每个工件需要经过m道工序,这些工序分别要求不同的机器,并且各工序的加工过程不能中断. 以最大完工时间为目标的流水车 ...

  8. java调用cplex实现经典Benders分解算法求解混合整数规划问题

    算法介绍 Benders分解算法是由Jacques F. Benders在1962年首先提出,目的是用于解决混合整数规划问题(MIP问题),即连续变量与整数变量同时出现的极值问题.随着分解算法的不断演 ...

  9. 使用Cplex求解均值方差模型

       在进行多目标进化算法求解投资组合问题时,由于多目标进化算法求得的是一组近似最优解,对于最大化收益和最小化风险的两目标M-V模型,需要找到一个基准,方便作为参考.这里利用Cplex工具求解均值-方 ...

最新文章

  1. UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multib...
  2. UA MATH571A QE练习 R语言 非参数回归 上
  3. php jquery选择器,常用jQuery选择器总结_jquery
  4. postman+newman生成html报告
  5. 交通警察手势信号(动画演示)
  6. 删库跑路事件发生,SaaS云服务如何守护数据安全
  7. tsc - error TS2304 Cannot find name 'Set'/'Promise'
  8. GitHub上如何删除fork别人的repository
  9. html调用js函数_使用Require.js实现模块化开发
  10. 今日恐慌与贪婪指数为77 贪婪程度有所缓解
  11. 面试IT公司的时候,程序员的简历应该写多少个项目经验比较合适?
  12. Qt创建桌面快捷方式
  13. 怎么把计算机隐藏文件显示出来,隐藏文件夹怎么显示出来
  14. 【模型压缩】蒸馏神经网络(Distill the Knowledge in a Neural Network)
  15. ch1_2 二分查找 C++
  16. Nature子刊:中大骆观正组在RNA修饰方法学领域取得重要进展
  17. 东野圭吾梦幻花读后感_让梦幻花绽放在心灵深处——读东野圭吾《梦幻花》有感...
  18. 用于android的音乐可视化工具,Android音乐播放可视化
  19. 构建之法阅读笔记002
  20. KONICA MINOLTA China | 柯尼卡美能达-SMB扫描问题

热门文章

  1. 3d机器学习笔记5--TriangleMesh处理(1)
  2. Osmo Pocket 分辨率、帧率怎么设置?什么是4k分辨率?ccd和cmos像素都一亿了,为啥视频分辨率才4k?
  3. 华为颁奖Polar码之父,致敬基础研究和探索精神
  4. 笔记本网卡mini pci-e intel 7260AC双频5G无线网卡 无法连接网络却能看见该硬件在电脑上 以及Windows仍在设置此设备的类配置(代码56)或(代码31)
  5. 分布式 PostgreSQL - Citus 架构及概念
  6. 【大数据】大数据学习
  7. 物联网卡让物流行业“灵活”起来
  8. 学金融和计算机有什么前途,金融学和计算机科学与技术哪个有前途
  9. IntelliJ IDEA创建Servlet最新方法 Idea版本2020.2.2以及IntelliJ IDEA创建Servlet 404问题(超详细)
  10. java 获取邮编_基于JAVA的根据地名查邮编api调用代码实例