Cplex是不是可以像这样编写目标函数
Posted
技术标签:
【中文标题】Cplex是不是可以像这样编写目标函数【英文标题】:Cplex is it possible to write objective function like thisCplex是否可以像这样编写目标函数 【发布时间】:2021-05-13 14:33:42 【问题描述】:我有一个分数的二维矩阵作为参数。 我有 nxm 个变量 x[i,j],这些变量可以采用预定范围内的整数值。 我需要最大化这样的东西: desidered objective function
其中 score 是矩阵。 是否可以定义这样的目标函数?
【问题讨论】:
请参阅下面的指南。 tour / how-to-ask / how-to-create-minimal-reproducible-code 【参考方案1】:How to use a decision variable as an index with CPLEX 部分 HOW TO WITH OPL CPLEX 中所说的 2 个选项?
在 CPLEX 中使用 CPOptimizer
using CP;
range r=1..5;
float value[r]=[2,3,4.5,1,0];
dvar int i in 1..5;
maximize value[i];
subject to
execute
writeln("i=",i);
或使用 CPLEX MIP
range r=1..5;
float value[r]=[2,3,4.5,1,0];
dvar int i in 1..5;
maximize sum(k in r) value[k]*(k==i);
subject to
execute
writeln("i=",i);
并根据您的目标给出
using CP;
int N=4;
int M=5;
range R=1..10;
int scores[i in R][j in R]=i*j;
dvar int x[0..N+1][0..M] in R;
maximize sum(i in 0..N,j in 0..M) scores[x[i,j],x[i+1,j]];
subject to
【讨论】:
以上是关于Cplex是不是可以像这样编写目标函数的主要内容,如果未能解决你的问题,请参考以下文章
使用带有Concert Technology的CPLEX编写C ++程序
我不知道如何在 CPLEX 中编写 (i ∈ V^a∪ V^s) 以下条件?