https://towardsdatascience.com/how-to-create-your-first-linear-programming-solver-in-python-284e3fe5b811