Learning Paths
Welcome! These guided paths will take you from foundational concepts to understanding real optimization solver implementations.
Choose Your Journey
LP Fundamentals
From linear algebra to the simplex method
Master the core algorithms that power linear programming solvers. You'll learn how sparse matrices work, understand LU factorization, and trace through the simplex method step by step.
Start Learning โMIP Journey
From LP relaxation to branch-and-cut
Understand how integer programming solvers work. You'll explore branch-and-bound trees, cutting planes, and the heuristics that make modern MIP solvers practical.
Start Learning โNonlinear Optimization
Interior point methods and beyond
Dive into nonlinear programming with Ipopt. Learn Newton's method, barrier functions, and how automatic differentiation enables efficient gradient computation.
Start Learning โGlobal Optimization
From convex to nonconvex: spatial branch-and-bound
Learn how to find global optima in nonconvex problems. Master spatial branch-and-bound, convexification techniques, and MINLP solvers Bonmin and Couenne.
Start Learning โHow These Paths Work
Each learning path follows a consistent structure:
- Concepts - Understand the mathematical foundations
- Algorithms - See the step-by-step procedures with worked examples
- Code - Explore the actual COIN-OR implementation
- Practice - Try modifications and see what happens
You don't need to complete paths in order, but LP Fundamentals provides the foundation for everything else.
Prerequisites
Before starting, you should be comfortable with:
- Linear algebra: Vectors, matrices, solving $Ax = b$
- Basic calculus: Derivatives, gradients (for NLP path)
- Programming: Reading C++ code (you don't need to write it)
Not sure if you're ready? Each path has a "check your knowledge" section at the start.