Treffer: GBOML: A Structure-exploiting Optimization Modelling Language in Python
Weitere Informationen
Many real-life problems can be tackled as Structured Mixed Integer Linear Programs(MILP). The workflow when dealing with MILPs usually involves two tools : amodelling tool and a solver. This work focuses on modelling tools. Most modellingtools either enable an encoding close to the mathematical one but lack supportfor structures or offer predefined components to assemble but adding componentsor modifying them is difficult. In this work, we explain the inner workings of theGraph-Based Optimization Modelling Language (GBOML), a modelling tool thatcombines the strengths of both worlds. It supports structure and offers an encodingclose to the mathematical one and library-like functionalities such as reuse andcomponent assembling. We explain how GBOML consistently exploits the structurefrom model encoding to the solving and show that structure exploitation can lead toa natural encoding of problems, faster time to build the intermediate representationand sometimes faster solving time. We benchmark GBOML, JuMP, Plasmo andPyomo on a structured MILP. We show that GBOML and JuMP take a similar timeto build the intermediate representation and outperform Plasmo and Pyomo. Withparallelism, GBOML outperforms the three tools. In terms of memory footprint,GBOML uses the least memory.