GPO-D: Graph-based Prescriptive Optimization with Dataflows
Authors
Ivan, Samuel ; Kolev, Simeon Plamenov ; Schoblocher, Bence
Term
4. term
Education
Publication year
2025
Submitted on
2025-06-06
Pages
74
Abstract
Prescriptive analytics (PSA) recommends actions based on data by combining data processing, machine learning, and mathematical optimization. Many existing PSA tools cover only parts of this process, focus mainly on optimization, or are less user-friendly for developers. This thesis introduces GPO-D (Graph-based Prescriptive Optimisation with Dataflows), a Python library that streamlines PSA workflows by bringing together graph-based optimization modeling and dataflow pipelines. The goal is to support the full PSA workflow and improve developer productivity. GPO-D manages dataflows as Directed Acyclic Graphs (DAGs)—a way to list tasks in a clear order without loops—drawing on ideas from Apache Airflow. For optimization, it uses CVXPY, a widely used library for formulating and solving optimization problems. The thesis demonstrates GPO-D on a microgrid scheduling example that coordinates solar generation and battery charging and discharging. This solution is then used to compare performance and developer effort with other Python libraries, including CVXPY, Pyomo, and GBOML. The results show that GPO-D achieves similar computational performance while reducing the amount of code required.
Præskriptiv analyse (PSA) anbefaler handlinger på baggrund af data ved at kombinere databehandling, maskinlæring og matematisk optimering. Mange eksisterende PSA-værktøjer dækker kun dele af processen, er primært fokuseret på selve optimeringen, eller er mindre brugervenlige for udviklere. Denne afhandling præsenterer GPO-D (Graph-based Prescriptive Optimisation with Dataflows), et Python-bibliotek, der forenkler PSA-arbejdsgange ved at samle grafbaseret optimeringsmodellering og dataflow-processer. Formålet er at understøtte hele PSA-forløbet og øge udvikleres produktivitet. GPO-D styrer dataflows som rettede acykliske grafer (Directed Acyclic Graphs, DAG’er) – en måde at beskrive trin i en fast rækkefølge uden løkker – inspireret af Apache Airflow. Til selve optimeringen anvendes CVXPY, et udbredt værktøj til at formulere og løse optimeringsproblemer. Afhandlingen demonstrerer GPO-D på et mikronet-eksempel, hvor solproduktion samt batteriets lade- og afladecyklus planlægges. Denne løsning bruges derefter til at sammenligne ydeevne og udviklerindsats med andre Python-biblioteker, herunder CVXPY, Pyomo og GBOML. Resultaterne viser, at GPO-D opnår tilsvarende beregningsmæssig ydeevne, samtidig med at mængden af nødvendig kode reduceres.
[This apstract has been rewritten with the help of AI based on the project's original abstract]
Keywords
