
Please, after completing this lesson, download the zip file attached to it and extract its contents. Then, follow carefully the tutorial of this lesson to set up your Python virtual environment. Remember, to preview the render contents of a markdown file (such as README.md), you can press Ctrl+Shift+V or Cmd+Shift+V on MacOS.
Explore the fundamentals of numeric optimization and operations research in Python, covering linear and integer programming, inventory planning, sequencing, dispersion, and rolling models.
Explore min-max and max-min objectives in discrete subset selection using mixed-integer linear programming and the big-M method, with binary x_i and C for min or max.
Optimize the facility dispersion problem by selecting p nodes to maximize dispersion on a weighted graph while using a lexicographic strategy: first maximize the minimum distance, then maximize total dispersion.
Explore routing models and their combinatorial complexity, and apply mixed integer linear programming alongside Google-inspired heuristics to tackle typical routing problems.
Define and solve a capacitated vehicle routing model in Pyomo, with arc flow, vehicle assignment, capacity constraints, and subtour elimination, then compute and visualize multi-vehicle tours.
Learn to use Google OR-Tools for routing models, creating a manager with nodes and vehicles, defining unary and transit callbacks, and solving with arc cost evaluator and capacity constraints.
Master linear programming and mixed integer linear programming to model integrality, lot sizes, sequences, dispersion, and routing problems. Build your own numerical optimization app using custom heuristics.
Numerical Optimization and Operations Research in Python
Use data efficiently to support decision-making by applying numerical optimization and operations research concepts seen throughout this comprehensive course. It combines theoretical foundations and practical coding applications, designed to empower you with the skills needed to tackle complex problems in a professional or academic context.
You will learn:
Theory:
Principles of Mathematical Optimization
Linear programming (LP)
Integer and Mixed-integer linear programming (MILP)
Handle infeasible scenarios
Multi-objective hierarchical (lexicographic) formulations
Constructive Heuristics and Local Search
Software:
Pyomo
Google OR-Tools
HiGHS
Problems:
Knapsack
Product-Mix
Transportation
Lot-Sizing
Job-Shop Scheduling
Facility Dispersion
Traveling Salesman
Capacitated Vehicle Routing Problem
Industry-Grade Skills: By the end of this course, you'll be able to formulate and solve your own optimization problems, a highly sought-after competency in industries ranging from logistics to finance. You'll also be able to convert your models into scalable programs for your company or team even though they are not familiar with optimization.
Who is this course for?
Data scientists and engineers who want to add optimization skills to their toolkit.
Professionals in logistics, supply chain management, or finance, who are looking to leverage optimization for decision-making.
Academics and students seeking a practical application of operations research and optimization theories.
Course Features:
More than 4 hours of comprehensive video lectures explaining concepts in a clear and engaging manner.
13+ Interactive Python notebooks for hands-on practice (and corresponding solutions).
Carefully selected articles and external references to improve your learning experience.
Access to a community forum for discussion and networking with fellow learners.
Lifetime access to course materials, including future updates.
Embark on this journey to master decision-making using optimization in Python. Whether you aim to advance your career, academically explore operations research, or simply enjoy the thrill of solving complex problems, this course is your gateway to new possibilities.