EnergyScope without AMPL

Hi everyone,

As discussed with some of you during the workshop, I have used an LLM to translate the ampl code of EnergyScope ESTD into open languages. I tried with two different libraries:

  • Linopy: building the model takes forever if the xarray formalism is not used. The LLM did not manage to use xarrays properly
  • PyOptInterface: works fine, with 2% error in the objective function compared to AMPL, that still requires some investigation.

PyOptInterface solve time is similar to AMPL (~53s vs ~40s), but model construction is slower (~40s vs a few seconds in AMPL)

For a fully open source workflow with PyOptInterface+Highs, the total resolution time is ~600s vs ~45s for AMPL+Gurobi

There still a lot of room for optimization!

Hi @squoilin,

Cool, thanks for the update!
I think Evren Turan has also been looking into translating EnergyScopeTD to JuMP in Julia. Maybe you can connect with him on this topc (He is on vaction until this Thursday though).

I believe in JuMP the integration of decomposition algorithms such as Benders is easier, but I don’t know the details …
The overarching goal would also to be able to use EnergyScope on High Performing Clusters (HPCs) which is currently not possible with the AMPL community license.

Hi @squoilin,
Yes I’ve been creating a JuMP version, however this is on pause at the moment. It is mostly done but I need to run some checks.
And yes as @Gabriel_Wiest said my motivation was primarily to investigate alternative solution approaches.