I was wondering if anyone had familiarity with something called MoDeL language. It seems to be some AML type optimization language. I found bizarre syntax in which constraints are written with d(variable). Meaning “change in” variable. There is an example here:
d(log(F_n[f, s])) = d(log(Y[s])) - d(log(PROG[f, s])) + d(SUBST_F[f, s])
This is an economics based model, this constraint comes from the Lagrangian solution to minimizing expenditure given a production function. This constraint describes the change in demand for a specific factor f
in a specific sector s
. It is equal to the change in output Y minus the productivity of the factor f
in sector s
plus the change in the subsitution for factor f
in sector s
.
The variables are indexed by factor f
, e.g labor, capital, land etc. and Sector s
meaning something like agriculture, wholesale retail & trade etc.
I have never heard of MoDeL language nor of .mdl files… And I am unsure as to how this d(variable) syntax could possibly work? The constraint from the documentation is written as such:
\Delta \log F_{n,f,s}
= \Delta (\log Y_{s}) - \Delta (\log PROG_{f,s}}) + \Delta (SUBST_{F_{f,s}})
I am not an optimization guru per se, so I may be unfamiliar with the various AMLs that exist and the syntax. But I have never seen something like this before.
I am hoping to write future models of this type in JuMP with Julia, a more open source, well-documented, and openly available language. However, not being an optimization expert, trying to transfer syntax to JuMP is difficult if, for example, I encounter bizarre syntax as noted above. Is there equivalencies in JuMP and do optimization experts have any guidance regarding .mdl language and documentation on the syntax.
Would appreciate any guidance