Treffer: GBOML: A Structure-exploiting Optimization Modelling Language in Python

Title:
GBOML: A Structure-exploiting Optimization Modelling Language in Python
Contributors:
Montefiore Institute - Montefiore Institute of Electrical Engineering and Computer Science - ULiège
Source:
Optimization Methods and Software (2024)
Publisher Information:
Taylor & Francis, 2024.
Publication Year:
2024
Document Type:
Fachzeitschrift journal article<br />http://purl.org/coar/resource_type/c_6501<br />article<br />peer reviewed
Language:
English
Relation:
https://gitlab.uliege.be/smart_grids/public/gboml; urn:issn:1055-6788; urn:issn:1029-4937
DOI:
10.1080/10556788.2023.2246169
Rights:
open access
http://purl.org/coar/access_right/c_abf2
info:eu-repo/semantics/openAccess
Accession Number:
edsorb.296930
Database:
ORBi

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.