Introduction to Optimization in Python
Turn production, budgeting and allocation problems into optimization models and solve them in Python with SymPy, SciPy and PuLP.
Production plans, profit targets, budgets and staff allocation all become optimization problems here: the work is to translate each practical question into a mathematical model with an objective and constraints, then solve it in Python. Calculus results come from SymPy, numerical answers from SciPy, and linear and integer programs from PuLP. Later exercises search for a global optimum among several good solutions and test how much the best plan shifts when its inputs change.
What You Will Achieve
- Translate a manufacturing, budgeting or resource allocation question into an objective function with constraints
- Find and classify maxima and minima analytically with SymPy and numerically with SciPy
- Set up mixed integer linear programs with whole-number decisions and solve them with PuLP or SciPy
- Read slack and shadow prices to judge how changes in the inputs move the optimal solution
Program Overview
Optimization Basics and a Mathematical Primer
Defines an optimization problem and its parts, solves a first example by exhaustive search, and reviews the derivatives the rest of the course relies on.
- Objective functions and exhaustive search
- Univariate and multivariate optimization
- Derivatives and partial derivatives with SymPy
- Limitations of differentiation
Unconstrained and Linear Constrained Optimization
Solves problems analytically with SymPy and numerically with SciPy in one or more dimensions, then adds bounds, inequalities and linear programs.
- Finding maxima with SymPy and SciPy
- Bound constraints and hard inequalities
- Linear programming in SciPy and PuLP
Non-linear Constraints and Robust Optimization Techniques
Moves to convex and integer problems, then linearizes non-linear models, searches for a global optimum and applies the methods to capital budgeting and HR allocation.
- Convex-constrained optimization and utility maximization with indifference curves
- Mixed integer linear programming
- Linearization, global optimization and callbacks
- Sensitivity analysis in PuLP
Certificate Awarded (Paid)
Job Outlook
These modeling skills apply in engineering, the sciences and the social sciences, and in business planning tasks such as setting production levels, allocating staff and resources, and choosing which projects to fund.
Good for: Python users who want to model planning questions such as production, budgets and staffing as optimization problems and solve them with SymPy, SciPy and PuLP.
Keep in mind: It assumes intermediate Python and NumPy. Basic calculus helps, though the first chapter reviews derivatives and SymPy computes them, so the work centers on building models and reading solver results.
Bottom line: A practical route through three Python libraries for optimization that ends with global optimum searches and shadow prices showing how sensitive a plan is to its inputs.
Frequently Asked Questions
Which Python libraries does each part of the course rely on?
SymPy gives analytical solutions through calculus, SciPy finds numerical solutions and handles global optimization, and PuLP models linear and mixed integer programs. Several exercises solve the same kind of problem in both SciPy and PuLP.
What does sensitivity analysis mean in this course?
It is the study of how changes in a problem's parameters affect the optimal solution. The last chapter works through it in PuLP, reading slack and shadow prices on a juice example and a revisited diet problem.
Which worked problems appear in the exercises?
The problems include manufacturing, profit maximization, resource allocation, biscuit models with linear and nonlinear constraints, a diet problem, HR allocation with training costs, and capital budgeting with dependent projects.
How are non-linear problems handled?
Convex-constrained problems are solved directly, including cases with inequality constraints and the question of interior or corner solutions. Linearization techniques then reduce harder non-linear problems to forms that SciPy or PuLP solve easily.
User Reviews
Write your review
You must be logged in to post a review.
Reviews can only be posted by registered learners. Log in or create a free account, then you will return here to post.


There are no reviews yet.