CPLEX(default) cannot extract expression

Hi all,

I am a newbie in using OPL,i have written like this:

int M=…;
float P2=…;
float H1[1..M][1..M]=…;
float B0=…;
float n0=…;
dvar float+ Yji1[1..M][1..M]in 0..1 ;
//dvar int Yji1[1..M][1..M] in 0..1 ;
 
maximize
B0*sum(i in 1..M)(
     log(1+sum(j in 1..M)(
             P2*H1[j][i]*Yji1[j][i]/ 
               (n0+sum(n,q in 1..M)P2*H1[n][i]*Yji1[n][q]
                 -P2*H1[j][i]*sum(k in 1..M)Yji1[j][k])
           )
         )/log(2)
   );
When I run the code i get errors like:

CPLEX(default) cannot extract expression: maximize (sum(i in 1..3) (ln(sum(j in 1..3) ((H1[j][i]*0.126)*Yji1[j][i]) / (sum(n in 1..3, q in 1..3) (H1[n][i]*0.126)*Yji1[n][q]+((H1[j][i]*0.126)*(sum(k in 1..3) Yji1[j][k]))*(-1)+6.3e-13)+1) / 2.30258509299405) / (ln(2) / 2.30258509299405))*20000000. 20180120.mod /Solve 20:1-30:5 /home/sky/opl/Solve/20180120.mod OPL Problem Marker

When I remove the sum of noise power behind, the procedure is right, and this is why

maximize
B0*sum(i in 1..M)(
     log(1+sum(j in 1..M)(
             P2*H1[j][i]*Yji1[j][i]/n0 
               //(n0+sum(n,q in 1..M)P2*H1[n][i]*Yji1[n][q]
                 //-P2*H1[j][i]*sum(k in 1..M)Yji1[j][k])
           )
         )/log(2)
   );

 I dont know how to fix this or other problems in the code.

Source: CPLEX(default) cannot extract expression