勤学路无边 2022-03-09 09:31 采纳率: 100%
浏览 174
已结题

cplex目标函数怎么写

问题遇到的现象和发生背景

有一个优化的问题,使用了cplex库,刚开始学习,目标函数是

img

怎么代码实现呢

问题相关代码,请勿粘贴截图

``https://img-mid.csdnimg.cn/release/static/image/mid/ask/92738298764613.png "#left")

Cplex cplex = new Cplex();
//lb(low bound)与ub定义决策变量的上下界                
                double[] lb = {0.00.00.0};
                double[] ub = { double.MaxValue,double.MaxValue,double.MaxValue};
string[] varsName = { "w1","w2","w3"};
//决策变量
INumVar[] numVar=cplex.NumVarArray(count, lb, ub, varsName);
//目标函数
 double[] objCoefRisk ={1.01.01.0};
double[] objCoefReturn = {2.02.02.0};
double maxSharpe=0.08//重点是下面这个怎么写?我是这样写的,现在报错 “错误    CS0019    运算符“/”无法应用于“double”和“ILinearNumExpr”类型的操作数    ”,求指教
cplex.AddMinimize((Convert.ToDouble(cplex.ScalProd(numVar, objCoefRisk)) - maxSharpe) * (-1)/ cplex.ScalProd(numVar, objCoefReturn) );
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 勤学路无边 2022-03-09 10:55
    关注

    CPLEX提供sum()、diff()、prod()函数进行加、减、乘的操作,完善一下代码,不过还是没找到除得方法

    INumExpr expr = cplex.Prod(cplex.Diff(cplex.ScalProd(numVar, objCoefRisk), maxSharpe), (-1));
    INumExpr numExpr = cplex.ScalProd(numVar, objCoefReturn);
    
    cplex.AddMinimize(expr /numExpr );
    
    评论

报告相同问题?

问题事件

  • 系统已结题 3月17日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加