SimplePDLP: a directory to illustrate how to implement a Julia optimization solver for teaching purpose

Dear friends,

SimplePDLP (BUSN-36919-Modern-Large-Scale-Optimization--Theory-and-Computation-2023/SimplePDLP at main · haihaolu/BUSN-36919-Modern-Large-Scale-Optimization--Theory-and-Computation-2023 · GitHub) is a directory we created for my PhD-level optimization course. It is intended for teaching purpose to illustrate how to design, structure and implement a solver in Julia using an example of PDHG for LP. It includes reading the data from an .mps file, preconditioning, PDHG, outputting, and examples of solving an LP instances, plotting the outputs, and calling the solver from the JuMP interface. The implementation is not designed to be computationally efficient, but rather include the basic components of a first-order method LP solver.

I hope this can be helpful for people who are interested in learning or teaching how to implement an optimization solver in Julia by providing a simple yet comprehensive example.