Hi,
what you do is not possible with CPLEX. (Not linear)
With CP Optimizer, it would work better:
using CP;
int c = ...; range customer = 1..c;
float sigma[customer]=...;
float alpha[customer]=...;
int hd[customer]=...;
int hw[customer]=...;
int S[customer]=...;
int Ab[customer]=...;
float beta=...;
int Av=...;
int Ar=...;
int hv=...;
int hr=...;
int P=...;
float T[customer];
//decision variables dvar
int n_r; dvar
int n_v[customer]; dvar
int n_b[customer]; dvar
int q2[customer] in -1000000..1000000; dexpr
float q1[c in customer]=q2[c]/1000;;
//objective function maximize sum(i in customer)(-(Av+n_r*Ar)/(n_v[i]*n_b[i]*T[i])) -sum(i in customer)(hv*((n_b[i]*q1[i])/2)*((2-n_v[i])*q1[i]/(P*T[i])+(-1+n_v[i])-hr*(n_v[i]*n_b[i]*q1[i])/(2*T[i]*n_r*P))) +sum(i in customer)(sigma[i]*(q1[i])/(T[i])-(1/(T[i]))*(((Ab[i])/(n_b[i]))+(S[i])) +hd[i]*((1-beta)/(2-beta))*q1[i]+(hw[i]/2)*(n_b[i]-1)*q1[i]) ; subject to
{ ct1: forall(i in customer)q1[i]>=1; ct2: forall(i in customer)q1[i]<=500; ct3: forall(i in customer)T[i]==((q1[i])^(1-beta)) /(alpha[i]*(1-beta));
}
Regards
#DecisionOptimization#OPLusingCPLEXOptimizer