A research project on learning to pivot

SimplexRL

Reinforcement-learning agents that choose pivots for the simplex algorithm — learning, from the structure of each linear program, which entering variable to select next.

01

The package

Julia package github ↗

SyntheticLPs.jl

A generator library built for this project: each generator turns three knobs — a target variable count, a feasibility status, and a random seed — into a realistic, reproducible linear program for training and benchmarking.

github.com/flixpar/SyntheticLPs.jl
02

Method & architecture explainers

Method note

SearchPI

How SGTS and SGSPI turn an exact LP solver into a policy-improvement operator — and what happens when the loop feeding search back into the network goes wrong.

read the explainer
Method note

SGSPI

Phase-2 pivoting as a deterministic shortest-path problem: a learned-heuristic graph search over the exact solver produces improved decisions, distilled back into the network through a replay-and-reanalyse loop.

read the explainer
Architecture note

Solver-Feature Attention

A pivot-selection policy that scores entering-variable candidates by fusing a graph encoding of the LP with explicit, hand-derived simplex signals — reduced costs, basis status, pricing scores, and rankings — through attention.

read the explainer
Generator guide

SyntheticLPs, in depth

A high-level map of the generator families paired with the precise formulation, sizing rules, and feasibility tricks behind every generator in the package.

read the explainer
03

Interactive tools

Live demo

A* Pivot-Graph Visualizer

An interactive view of the simplex pivot graph: explore how A* search expands vertices of the LP polytope and traces the shortest pivot path from the starting basis to the optimum.

open the tool