This tool was part of a larger project for a university course. In this repo lies a solver plugin for Pyomo that converts a Pyomo linear programing model into a bytestream that can be sent over ethernet to an FPGA. The bytestream is the serialized representation of a linear programming tableau, in standard form. The tableau is generated using a custom presolve algorithm.
The tool was tested using this SWITCH model. Tests show that the generated tableau, when solved with Gurobi, produce the same results as running SWITCH with Gurobi directly. This confirms, that our tableau generation process works as intended.
The presolve includes multiple transforms that have successfully reduced large models by ~10x in size. Compared to Gurobi, the presolve efficiency was similar (better in some cases!).
The code in this repository builds on my code from the lp-analyzer project and the Pyomo library. Copyright belongs to those respective libraries when applicable while new code is under the MIT license.