Skip to content

Epic: 2020 GDP/MINLP roadmap revisited — status audit and open ideas (meeting_20200527) #2

Description

@bernalde

Epic: Revisiting the 2020 GDP/MINLP roadmap (IDAES meeting slides, 2020-05-27)

Source: meeting_20200527.pptxIDAES Subtask 3.1: Conceptual Design of Advanced Energy Systems (D. Bernal & I. Grossmann, CMU, May 27, 2020).
Audit: August 16, 2026, against Pyomo/pyomo@ce205a5fe (main).

This epic audits every improvement idea in that deck against today's Pyomo (code + literature), records what already landed, and tracks what is still open and interesting. Every open item now has its own issue — defects and broadly-wanted features upstream on Pyomo/pyomo, research-agenda items here on this fork. This issue is the index. Slide references as (sN).


Part 1 — Landed since 2020 (context, no action)

2020 idea Where it lives today
Logical modeling layer BooleanVar/LogicalConstraint (2020), core.logical_to_linear, contrib.logical_to_disjunctive (2022); GDP→MIP transformations handle logic internally
Hull perspective options (s3–4) gdp.hull with FurmanSawayaGrossmann (default) / LeeGrossmann / GrossmannLee ε-approximations (Furman et al., COAP 2020)
Exact hull via cones (s4) Partial: exact_hull_quadratic option in gdp.hull (landed 2026-03; quadratic-only, rotated-SOC form, per Gusev & Bernal Neira, arXiv:2508.16093) — see A4
Multiple big-M (s17) gdp.mbigm (2022; [Trespalacios & Grossmann 2015]) — see A5
Between big-M and hull (s17-adjacent) gdp.partition_disjuncts / gdp.between_steps (Kronqvist, Misener & Tsay, CPAIOR 2021) — restricted case only, see A7
Nested disjunctions (s10) bigm/hull/binary_multiplication nested rework (2024, e.g. Pyomo#3213)
MindtPy single-tree LP/NLP B&B (s16) mindtpy/single_tree.py lazy callbacks for cplex_persistent/gurobi_persistent — see C1
MindtPy FP + level/regularized OA (s12) mindtpy.fp; add_regularization ∈ {level_L1/L2/L∞, grad/hess/sqp Lagrangian via PyNumero} (Kronqvist et al., MathProg 2020; Bernal et al., JOGO 2022)
Community detection merge (s15) contrib.community_detection (Louvain, generate_structured_model()) — analysis-only, see C5
New GDPopt algorithms gdpopt.ric, gdpopt.enumerate, gdpopt.ldsda (Ovalle et al., C&ChE 2025) — see B7
GDP model library (s11) gdplib — active development at SECQUOIA/gdplib, see D1
Pyomo.GDP ecosystem paper (s18, s23) Chen et al., OptEng 2022

In flight right now: non-rigorous crossed-bound detection (Pyomo#3947 → PR Pyomo#4013), LBB time-limit results (PR Pyomo#4010), GLOA convex cut slope (PR Pyomo#4011), LBB relaxed-NLP node solver (PR Pyomo#4012).


Part 2 — Open ideas, each now tracked in its own issue

Filed upstream on Pyomo/pyomo (defects & broadly-wanted features)

Item Upstream issue
B1 — disjunctive FBBT/OBBT options silently ignored (regression) Pyomo#4014
B7a — LDSDA missing from meta-solver dispatch (+ vestigial code) Pyomo#4015
B9a — relative_gap() ZeroDivisionError / misplaced epsilon Pyomo#4016
B9b — docstring advertises unimplemented algorithms Pyomo#4017
(audit find) — gdpopt.enumerate TypeError on unbounded/float-bounded integers Pyomo#4018
A8 — solver-native indicator-constraint transformation Pyomo#4019
C1 — MindtPy single tree on APPSI/contrib.solver Pyomo#4020
B2 — LBB solver failures misclassified as node infeasibility Pyomo#4023

A. GDP reformulations (pyomo.gdp)

B. GDPopt

C. MindtPy

D. Ecosystem & papers


Suggested first wave

Small & well-scoped (all upstream, PR-ready): Pyomo#4014 (revive disjunctive bounds), Pyomo#4015 (LDSDA dispatch), Pyomo#4016 (one-line gap fix), Pyomo#4017 (docstring), Pyomo#4018 (enumerate errors). Then fork-side #3 (A1) as the first transformation project.
Paper-sized projects: #4 (A2), #5 (A3), #23 (B3), #12 (B5), #13 (B6), #19 (C5) — each pairs an implementation with a publishable contribution; A2/A3/B6 are unimplemented in any OSS package per the August 2026 literature check.

Key references

  • Kronqvist, Bernal Neira & Grossmann, 50 years of mixed-integer nonlinear and disjunctive programming, EJOR 2025 — current state-of-the-art survey.
  • Chen et al., Pyomo.GDP: an ecosystem for logic based modeling and optimization development, OptEng 2022.
  • Perez, Joshi & Grossmann, DisjunctiveProgramming.jl, JuliaCon Proc. 2023 — feature-parity checklist for A8.
  • Full per-item citations in the linked issues.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions