What is the GLPK solver in Python PuLP?

The GLPK solver

The GNU Linear Programming Kit (GLPK) solver is an open-source solver designed to solve linear programming, mixed-integer, and other related problems. It can easily be accessed and used through Python PuLP with the aid of an API.

Set up the GLPK Solver in PuLP

PuLP uses an API solver from a list of available optimizers to solve a given linear programming problem. We can use the PuLP's listSolvers() method to view the list of solver APIs it can access:

print(listSolvers())
print(listSolvers(onlyAvailable = True))

Explanation

  • Line 1: We print a list of solvers accessible through PuLP. We can see that GLPK_CMD is on this list. However, this does not mean that GLPK is necessarily available for use.
  • Line 2: We print a list of solvers currently available to PuLP by passing the onlyAvailable = True argument to PuLP's listSolvers() method. This is the second list in our output. We can see that GLPK_CMD is on this list as well. This confirms that GLPK is available for use in our environment.

Note: If you are attempting to use GLPK with PuLP on your local machine or any other environment, and do not see GLPK_CMD in the list returned by the listSolvers(onlyAvailable = True) command, try running pip install glpk on your shell. You might have to install required dependencies as well.

Specify a solver in PuLP

To use a particular solver in PuLP, the user must specify the solver in the code. PuLP's solve() method allows users to specify their solver of choice. A solver instance can be loaded using the PuLP getSolver() method. The code below shows a way to use the GLPK solver using PuLP:

# using "solve()"
prob.solve(GLPK(msg = True))
print("******************************************")

Explanation

  • Line 2: This shows a way to specify our solver of choice at the time of solving prob—an instance of PuLP's LpProblem class—by passing it as an argument to the solve() method.

Free Resources

Copyright ©2024 Educative, Inc. All rights reserved