After incorporating the power balance constraint, the overflow occurred. I have also tried using opl run.But it is of no use. minimize 0.7*sum(i in nbus)(sum(j in tavail)sum(k in nport)((pt[i][j]*1000000-pl[i][j]1000000-pevch[j][k]+pevdis[j][k])+sum(k in nport)(pevdis[j][k]-pevch[j][k])))- 0.15(sum (j in tavail)(sum (k in nport)(c[j]*pevdis[j][k])))
+0.15* (sum (j in tavail)sum (k in nport)(c[j]*pevch[j][k]));
subject to
{
//constraint for discharging
forall(i in nbus,j in tavail,k in nport)
{ct1:if(c[j]==5 && 0.7<soc[k][j]<0.9)
{pevdis[j][k]==(0.9-soc[k][j])*100000;
}
//else
else
{pevdis[j][k]==0;
}}
//constraint for charging
forall(i in nbus, j in tavail, k in nport)
{ct4: if(c[j]==2.5 && soc[k][j]<=0.7 )
{pevch[j][k]==(0.7-soc[k][j])*100000;
}
else
{pevch[j][k]==0;}
}
forall(i in nbus, j in tavail, k in nport,l in nbus) {//power balance { p[j]==v[j][i](sum(l in nbus)(v[j][l](G[i][l]*deltacos[i][l][j]+B[i][l]*deltasin[i][l][j]))); p[j]*100000000+ pg[i][j]-pl[i][j]-pevch[j][k]+pevdis[j][k]==0; }
}
}
You should try what I suggested at
Plus since you have many "pevch[j][k]==0; " you may try to use an array that is not indexed by the full Euclidian product but by the indexes that make sense
See Exploiting sparsity in the CPLEX documentation
Discusses how to exploit the sparsity of large-scale problems, beyond the classical transportation problem exposed in the transp1.mod sample.