# Solving Pyomo Models¶

## Solving ConcreteModels¶

If you have a ConcreteModel, add these lines at the bottom of your Python script to solve it

>>> opt = pyo.SolverFactory('glpk')
>>> opt.solve(model)


## Solving AbstractModels¶

If you have an AbstractModel, you must create a concrete instance of your model before solving it using the same lines as above:

>>> instance = model.create_instance()
>>> opt = pyo.SolverFactory('glpk')
>>> opt.solve(instance)


## pyomo solve Command¶

To solve a ConcreteModel contained in the file my_model.py using the pyomo command and the solver GLPK, use the following line in a terminal window:

pyomo solve my_model.py --solver='glpk'


To solve an AbstractModel contained in the file my_model.py with data in the file my_data.dat using the pyomo command and the solver GLPK, use the following line in a terminal window:

pyomo solve my_model.py my_data.dat --solver='glpk'


## Supported Solvers¶

Pyomo supports a wide variety of solvers. Pyomo has specialized interfaces to some solvers (for example, BARON, CBC, CPLEX, and Gurobi). It also has generic interfaces that support calling any solver that can read AMPL “.nl” and write “.sol” files and the ability to generate GAMS-format models and retrieve the results. You can get the current list of supported solvers using the pyomo command:

pyomo help --solvers