Hi
you get some conflicts and that is why you get a relaxed solution.
But if you comment cons2:
// forall (i in B, j in 1..12)
// cons2:
// p[i][j]<=(z[j]/dist[j,i])/e[i][j] ;
Then your model gets feasible.
Since your model has only integer decision variables, you may also use CPO. For that, at the beginning of your model, simply write:
using CP;
regards
#DecisionOptimization#OPLusingCPLEXOptimizer