# Solving the pooling problem at scale with extensible solver GALINI

arXiv: https://arxiv.org/abs/2105.01687 · HTML: https://mlsanity.com/paper/2105.01687/

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 4 May 2021.

## Built on by (most cited first, 1 of 1)

- [Tightening Discretization-based MILP Models for the Pooling Problem using Upper Bounds on Bilinear Terms](https://mlsanity.com/paper/2207.03699/) (2022)

## Abstract (arXiv)

This paper presents a Python library to model pooling problems, a class of network flow problems with many engineering applications. The library automatically generates a mixed-integer quadratically-constrained quadratic optimization problem from a given network structure. The library additionally uses the network structure to build 1) a convex linear relaxation of the non-convex quadratic program and 2) a mixed-integer linear restriction of the problem. We integrate the pooling network library with galini, an open-source extensible global solver for quadratic optimization. We demonstrate galini's extensible characteristics by using the pooling library to develop two galini plug-ins: 1) a cut generator plug-in that adds valid inequalities in the galini cut loop and 2) a primal heuristic plug-in that uses the mixed-integer linear restriction. We test galini on large scale pooling problems and show that, thanks to the good upper bound provided by the mixed-integer linear restriction and the good lower bounds provided by the convex relaxation, we obtain optimality gaps that are competitive with Gurobi 9.1 on the largest problem instances.
