0

我希望有一个人可以帮助我。我在 cplex studio 中实现了以下最大化问题:

//Parameter

`int n=...;` //number of items

`int c=...;` //number of bundles 

`int k=...;` //number of price vectors

`int m =...;` //number of bidders

range range_M =1..m;

    range range_N =1..n;

    range range_B =1..c;

    range range_K =1..k;

    float vj [range_B][range_M]=...; //Wert von Bündel b 

    float s [range_B]=...; 

//Adjazenzmatrix

int a[range_B][range_N]=...;

//Variablen

dvar boolean x[range_B];

dvar float+ pbk[range_B][range_K];

dvar float+ pb[range_B];

dvar float+ pik[range_N][range_K];

dvar float+ pi[range_N];

dvar float v[range_B];

//Zielfunktion



 maximize sum (b in range_B) (v[b]*x[b]);

//Restriktionen



  subject to {

//Values OR



 forall (b in range_B) v[b]==max(j in range_M) vj[b][j];

//Jedes Item kann nur einmal zugeordnet werden



 forall (i in range_N) sum (b in range_B) a[b][i]*x[b]<=1;

//Preise sind nicht negativ



 forall (i in range_N) pi[i]>=0;

    forall (b in range_B) pb[b]>=0;

    forall (i in range_N) pik[i][k]>=0;

    forall (b in range_B) pbk[b][k]>=0;

        //supporting Preise pbk

        forall (b in range_B, k in range_K) pbk[b][k]<= v[b] +10000*(1-x[b]);

        forall (b in range_B, k in range_K) pbk[b][k]>= v[b]-10000*x[b];    



    //unsold items



forall (i in range_N) pi[i]<=10000*sum(b in range_B)x[b]*a[b][i];

//Lineare Preisvektoren



forall (b in range_B, k in range_K) sum (i in range_N) pik[i][k]*a[b][i]==pbk[b][k];

//Bündel mit nur einem Item



  forall (b in range_B: s[b]==1, i in range_N: a[b][i]==1) pi[i]==pb[b];

//pb Auswahl 

f

orall (b in range_B) pb[b]<= max (k in range_K) pbk [b][k] + 10000*(1-x[b]);

    forall (b in range_B) pb[b]>= min (k in range_K) pbk [b][k] - 10000*x[b];

    forall (b in range_B) pb[b]<= min (k in range_K) pbk [b][k] + 10000*x[b];

    forall (b in range_B) pb[b]>= max (k in range_K) pbk [b][k] - 10000*(1-x[b]);

}

现在我想获得不止一个向量 pb。让我们说 k 个向量,每个向量都有 b 个元素。我引入了另一个变量 pbk[b][k],其中 k 给出了向量的数量。不幸的是,cplex 返回 k 次相同的向量。我还在 Gurobi 中实现了相同的模型,它返回 k 个不同的向量。

有谁知道如何在 cplex 中获得不同的向量?

谢谢!

4

0 回答 0