When building a JuMP model, one thing I feel very important is to distinguish between variables and parameters in each equation. It’s important because, for example, the term “var. * par.” is linear but the term “var. * var.” is nonlinear, so linear solvers like CPLEX won’t return anything if you have a nonlinear equation like that.
So a good name style could not only give the model a good look but also helps to debug. I think it might be a good idea to have all the variables in lower cases and parameters in upper case, e.g., ’ @variable(m, x) ’ and X = 1
so you can tell immediately the different between @constraint(m, x * X <= 3)
and @constraint(m, x * x <= 3)
How about the name of sets, models, equations?