调用cplex求解优化问题的简化方法

调用cplex求解优化问题的简化方法

ID:2044711

大小:80.00 KB

页数:2页

时间:2017-11-14

调用cplex求解优化问题的简化方法_第1页
调用cplex求解优化问题的简化方法_第2页
资源描述:

《调用cplex求解优化问题的简化方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、(个人总结的ILOG-CPLEX最简约的建模和使用方法,非常实用)数学规划模型可描述极为复杂的实际问题。利用优化算法,应用程序能迅速找到这些问题模型的解决方案。ILOGCPLEX的速度非常快,可以解决现实世界中许多大规模的问题,并利用现在的应用系统快速提交可靠的解决方案。这一特点可以从它在全球各地的使用情况和能在极端苛刻条件下应用的现状得到完全证明。它能够处理有数百万个约束(constraint)和变量,而且一直刷新数学规划的最高性能记录。ILOGCPLEX接受的优化问题的一般形式:其中x中的决策变量可指定为连续类型(NumVarType.Float)或离散(整数)类型(NumVarT

2、ype.Int);下界lb最小至零(即决策变量非负),上届最大至C#可处理的最大值(System.Double.MaxValue)。这里规定所有不等式约束的方向为“”。调用CPLEX求解前需要给出:double[]c——优化函数向量,数组长度为决策变量个数;这里要看看c能否为数组的数组,添加目标函数时能否按照数组的数组添加;double[][]var——其行数为决策变量的组数,其列数应为决策变量的个数;double[][]A_le——不等式约束矩阵,其列数应为决策变量的个数;double[]b_le——不等式约束界,数组长度与A_le的行数保持一致;double[][]A_eq——等式

3、约束矩阵,其列数应为决策变量的个数;double[]b_eq——等式约束界,数组长度与A_eq的行数保持一致;double[]lb——决策变量的下界,数组长度与决策变量个数保持一致,若某个x[i]无下界则置为0;double[]ub——决策变量的上界,数组长度与决策变量个数保持一致,若某个x[i]无上界则置为System.Double.MaxValue;double[]xt——决策变量类型,数组长度与决策变量个数保持一致;xt[i]=NumVarType.Float表示连续变量,xt[i]=NumVarType.Int表示整数变量;若混合整数规划问题退化为线性规划问题(即所有xt[i]

4、=NumVarType.Int)则可省略xt;【注】为调用ILOGCPLEX,项目中需要添加引用——指定路径下的ILOG.CONCERT.DLL及ILOG.CPLEX.DLL,同时为调用求解器本身,需要加载CPLEX.DLL(可置于程序所在目录);此外需要使用命名空间ILOG.CONCERT及ILOG.CPLEX。以下假定已经为以上提到的所有数组均赋值,且数据一致性良好。需要说明的是若无不等式约束/等式约束,则勿将对应数组赋空(null);以等式约束不存在为例,请赋为:double[][]A_eq={};double[]b_eq={};若某变量x[i]无下界(程序限制非负),则lb[i

5、]=0.0;若x[i]无上界,则ub[i]=System.Double.MaxValue;C#调用ILOGCPLEX求解的简化方法:Cplexcplex=newCplex();//建立问题模型INumVar[][]var=newINumVar[1][];//用于求解后调用或查看结果IRange[][]rng=newIRange[1][];//用于求解后调用或查看松弛程度intn=lb.Length;//变量个数,亦可赋值为c.Length或ub.LengthINumVar[]x=cplex.NumVarArray(n,lb,ub,xt);//添加决策变量//若退化为纯线性规划则可省略x

6、t,改写为//INumVar[]x=cplex.NumVarArray(n,lb,ub);var[0]=x;//加引用(指针变化),两个可以等同cplex.AddMaximize(cplex.ScalProd(x,c));//添加优化目标//若需要最小化目标则改为AddMinimize//下面将定义约束rng[0]=newIRange[A_le.Length+A_eq.Length];//尝试添加约束的一种方法for(intj=0;j

7、[j]);}for(intj=0;j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。