
Explore optimization algorithms from linear and integer programming to metaheuristics and stochastic methods, with hands-on coding in Python, Julia, Matlab, and R, applied to real world scenarios.
Understand why the course withholds full code files across Python, Julia, Matlab, and R, encouraging you to listen to explanations and type out code yourself to learn the concepts.
This lecture urges you to withhold course ratings until you’ve completed half the content to judge it fairly. It also explains the slower, deliberate delivery for an international audience.
Master essential math symbols for optimization, including limits, derivatives, gradients, Hessians, Jacobians, integrals, transforms, vectors, norms, probability, and KL divergence.
Explore math symbols for data analysis and optimization: mu, sigma, variance, covariance, correlation rho, arg max, arg min, subject to, union, intersection, subset, empty set, and numbers R and R^n.
Explore number sets and symbols, integers Z, natural numbers N, complex C, rational Q, along with logical quantifiers for all, exists, implies, and iff, used in optimization and proofs.
Learn Python's history, readability-driven syntax, and versatility across web development, data science, AI, and automation, supported by a rich standard library and an open source community.
Explore Anaconda, Jupyter notebooks, and Visual Studio Code to streamline Python development, manage environments with Conda, and use the Python extension and integrated terminal for efficient coding.
Explore Google Colab for writing and running Python in your browser, compare it with VSCode and Anaconda Jupyter, and learn about the Pro plan and GPU access.
Install Python, Anaconda, and Visual Studio Code, enable add to path during setup, verify installations with Python version, and install the Python extension in VS Code for an optimization workflow.
Master Python syntax and basic operations, including variables, data types, and dynamic typing. Learn arithmetic, comparisons, boolean logic, and type conversions for practical programming.
Explore data structures in Python by examining lists, tuples, and sets, and learn to access, modify, and perform operations such as indexing, slicing, and set operations.
Explore control structures in Python, mastering conditional statements (if, elif, else) and looping with for, range, and while, including break, continue, and else for robust, efficient code.
Explore functions and functional programming in Python, using def to define functions, and apply lambda functions, map, filter, and reduce for manipulation, including parameters, return values, and higher order functions.
Explore intermediate functions like recursion, tail recursion, factorial examples, currying, partial functions, closures with state, decorators, and generators to build modular, efficient Python code.
Explore Python dictionaries by mapping unique keys to values, adding and updating entries, safely accessing data with get, and using methods and comprehensions to transform, filter, or invert mappings.
Explore Python modules and packages to organize code and enable reuse. Import standard and third-party libraries like NumPy and pandas, using from and as aliases.
Master file handling in Python, including opening, reading, writing, and closing files in various modes. Explore csv and pandas for loading, manipulating, and exporting data.
Explore exception handling in Python to build robust code using try, except, else, and finally blocks. Learn to raise and catch custom exceptions for input validation and reliable error feedback.
Explore object-oriented programming concepts in Python, including classes, objects, attributes and methods, plus encapsulation, inheritance, and polymorphism, with examples of constructors, super, and multiple inheritance.
Explore data visualization basics in python using matplotlib and seaborn to install, import pyplot, and create line plots, bar plots, histograms, heatmaps, with customization and color palettes.
Master advanced list operations in Python, including list comprehensions, enumerate, and zip, with conditions, nested loops, and data transformations for concise, readable code.
Clarifies that real-world optimization uses solvers like simplex, Gurobi, and Glpk, not manual calculations. Covers linear, mixed-integer, nonlinear, and heuristic methods, emphasizing problem formulation and software configuration.
Explore linear programming to optimize outcomes under linear constraints, highlighting objective functions, decision variables, feasible region, and corner-point optimal solutions in supply chain, finance, healthcare, and marketing.
Translate a real-world problem into a linear program by defining the goal, decision variables, objective function, and constraints, then solve it with graphical or simplex methods.
Convert linear programs to standard form for the simplex method by maximizing the objective, turning inequalities into equalities with select variables, and enforcing non-negativity on all variables.
Formulate a linear programming model with decision variables x1 and x2 to maximize 40x1 + 30x2, subject to 3x1 + 2x2 ≤ 120 and x1, x2 ≥ 0.
Understand canonical form for linear programming: min c^T x, Ax = b, x ≥ 0, using slack variables and replacing unrestricted variables with two non-negative variables.
learn how basic feasible solutions correspond to corner points of a convex polyhedron, and how the simplex method pivots between vertices along edges to maximize the objective until optimal.
Convert a linear program to standard form and maximize when needed. Build and pivot the simplex tableau, apply the minimum ratio test, and iterate to the optimal solution.
Learn step-by-step how the simplex method solves a linear programming problem, including constructing the simplex tableau, performing pivots, and reaching the optimal solution with x1 and x2.
Use branch and bound to solve integer and mixed-integer problems by branching, solving lp relaxations, and pruning subproblems with bounds to find the optimal solution.
Explore how the branch and bound diagram splits the root problem, uses lower bounds to prune branches, and guides pruning with x<5 bound 2 and x>5 bound 6.
Apply branch and bound to the binary knapsack problem, bound the maximum profit with LP relaxation, branch on x3, and compare subproblems to find the optimal integer solution.
Apply branch and bound to a mixed integer production planning problem, using LP relaxation and branching on x1 to obtain the best integer solution x1=2, x2=3 with profit 210.
Explore nonlinear programming by optimizing an objective under nonlinear constraints, using gradient based or derivative free methods. Learn how nonlinearity enables realistic models and faces local optima and convexity challenges.
Explore the Karush-Kuhn-Tucker conditions, using Lagrange multipliers to handle inequality and equality constraints in convex optimization. See primal feasibility, stationarity, active constraints, dual feasibility, and complementary slackness in an example.
Explore SAP-based production planning and optimization, covering master data, MRP, BOM, and capacity. Learn how advanced algorithms balance materials, capacity, scheduling, and costs to create feasible production plans.
Explore an advanced production optimizer that models bills of materials, EOQ-based lot sizing, ATP, and make-to-order vs make-to-stock, with Streamlit visualizations.
Explore particle swarm optimization as a swarm of particles updating velocity toward personal bests, with no genetic operators, applying to wind turbine blade design: blade length, twist angle, and material.
Explore the mathematical model for particle swarm optimization of turbine blades, with three variables: length, twist angle, density; and four parameters, cost coefficients and a budget constraint to maximize efficiency.
Learn how to apply particle swarm optimization in Python with NumPy to maximize wind turbine blade efficiency by optimizing length, twist angle, and material density under bounds and constraints.
Explore simulated annealing, a temperature-driven optimization method that uses the Metropolis criterion to balance exploration and refinement in routing and scheduling problems.
Implement simulated annealing in Python to optimize a delivery route from a distance matrix, using 2-opt reversals and probabilistic acceptance to escape local minima.
Explore how simulated annealing yields the optimal route and distance from a distance matrix, with the route 1-2-3-0 and a total distance of 22 units.
Explore ant colony optimization to solve the traveling salesman problem by simulating pheromone trails, evaporation, and probabilistic path selection, balancing exploration and exploitation.
Harness the Piggott Python toolkit to design genetic algorithms using natural selection, applying NSGA-II for multi-objective optimization with biased sorting to balance two functions, evolve generations, and visualize results.
Explore NSGA-II theory for multi-objective optimization with the Pi library for Python, covering population setup, fitness functions, selection, crossover, mutation, and non-dominated sorting with crowding distance to the pareto front.
Explore how the NSGA-II algorithm in Python optimizes two functions through a multi-objective genetic algorithm, using a fitness function, population evolution, selection, crossover, and mutation to reach target outputs.
Explore how NSGA-II uses genetic algorithms to optimize two objectives, balancing weights for the best compromise, with predictions for the two functions 58.27 and 29 across 100 generations.
Apply tabu search to the traveling salesman problem, using memory structures and a tabu list to escape local minima and avoid revisiting solutions.
Explore dynamic programming fundamentals, including memoization, optimal substructure, and overlapping subproblems, and apply top-down and bottom-up strategies to classic problems like Fibonacci, knapsack, and matrix chain multiplication.
build and solve a vehicle routing problem with time windows using google tools, defining depot, customers, demands, service times, and vehicle capacities, then optimize routes with time constraints and visualization.
This lecture walks through the solver output, detailing each vehicle route, stop times, and total duration, and evaluates the plotted routes for time windows and capacity adherence.
Optimization is at the core of decision-making in engineering, business, finance, artificial intelligence, and operations research. If you want to solve complex problems efficiently, understanding optimization algorithms is essential.
This course provides a thorough understanding of optimization techniques, from fundamental methods like Linear Programming (LP) and Integer Programming (IP) to advanced metaheuristic algorithms such as Particle Swarm Optimization (PSO), Simulated Annealing, and Ant Colony Optimization. We will implement these techniques using Python, Julia, MATLAB, and R, ensuring you can apply them across different platforms.
Throughout the course, we will work with real-world optimization problems, covering essential topics like the Traveling Salesman Problem, Portfolio Optimization, Job Shop Scheduling, and more. You will gain hands-on experience with numerical optimization, stochastic optimization, and machine learning-based approaches.
We will also explore key mathematical concepts behind optimization and discuss how these methods are applied across different industries. Whether you are an engineer, data scientist, researcher, or analyst, this course will provide the practical skills needed to optimize solutions effectively.
No prior experience with optimization is required; we’ll start from the basics and gradually move into advanced topics. By the end of this course, you’ll be able to confidently apply optimization techniques in real-world applications.
Join now and start learning!