C#调用Cplex学习笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

使用C#调用Cplex学习笔记1.构建约束及目标函数调用cplexCplexModel=newCplex();表示建立一个新的cplex模型主要介绍一些基本的结构:Model.AddEq(函数1,函数2)函数1=函数2Model.AddLe(函数1,函数2)函数1=函数2Model.AddGe(函数1,函数2)函数1=函数2Model.Sum(函数1,函数2)函数1+函数2Model.Prod(doublevar,函数2)值*函数2Model.ScalProd(double[]vals,INumVar[]vars)一维矩阵*矩阵并求和2.Model.AddMinimize(目标函数)表示求解目标函数(求最小)Model.AddMaximize(目标函数)表示求解目标函数(求最大)3.第一部分:构建常量和决策变量第二部分:构建约束及目标函数第三部分:输出决策变量4.定义变量(类似于C#的编码规则,将INumVar类似于int,是一个类型)(1)一个变量:INumVarvar=Model.NumVar(0.0,1.0,NumVarType.Bool);【括号中,变量的下限、上限、类型-布尔类型】(2)一维(int)整形变量INumVar[]var=Model.NumVarArray(5,0.0,1.0,NumVarType.Int);【括号中,变量的数组个数下限、上限、类型-布尔类型】(3)二维(double)变量:INumVar[][]var=newINumVar[3][];for(inti=0;i3;i++){Var[i]=Model.NumVarArray(5,0.0,20,NumVarType.Double);}(4)三维0,1决策变量:INumVar[][][]XIJK=newINumVar[4][][];for(inti=0;i4;i++){XIJK[i]=newINumVar[5][];for(intj=0;j5;j++){XIJK[i][j]=Model.NumVarArray(7,0.0,1.0,NumVarType.Bool);}}一些小方法:1.Model.NumVarArray(intn,doublelb,doubleub,NumVarTypetype);//添加决策变量括号中的四项依次是个数,下界,上界,变量类型比如:C=Model.NumVarArray(NumberOfJobs+2,0.0,System.Double.MaxValue,NumVarType.Float);浮点型变量--连续类型B=Model.NumVarArray(NumberOfMachines,0.0,1.0,NumVarType.Bool);布尔型变量还有NumVarType.Int整数型--离散类型2.Model.NumVar(0.0,System.Double.MaxValue,NumVarType.Float);//括号中的三项依次是下界,上界,变量类型3.Model.Prod(1.0,X)1*x数相乘Model.ScalProd(x,y)相当于,矩阵x每点和y对应点每点相乘后相加。4.Model.GetValue(x)获得x的值5.计算程序运行时间DateTimeA=DateTime.Now;//开始的时候设置DateTimeB=DateTime.Now;//结束的时候设置System.TimeSpanCC=B-A;//运行的时间6.INumVar[][]var=newINumVar[1][];//用于求解后调用或查看结果IRange[][]rng=newIRange[1][];//用于求解后调用或查看松弛程度7.Model.ObjValue获得求解的结果

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功