
Learn to solve optimization problems with Python, from installation to advanced techniques like linear programming, mixed-integer linear programming, non-linear programming, genetic algorithms, particle swarm, and constraint programming, with practical examples.
Explore how optimization converts problems into mathematical models with constraints and an objective to maximize, solving linear, nonlinear, or mixed-integer formulations to boost profits.
Install Python from the official website, noting WinPython and Anaconda. Rely on the preinstalled Python on Linux; on Windows, download the 64-bit installer, add Python to PATH, and upgrade pip.
Discover how prebuilt packages help optimize operations research problems in Python, and learn to search for and install packages like matplotlib to plot charts.
Install and set up the Spyder development environment for Python by running pip install spyder and launching Spyder from the command prompt to write and run simple code.
Learn to install and start Jupyter lab, create a notebook, and run blocks to explore data in a web-based development environment; compare Jupyter's data exploration with Spyder's optimization focus.
Master Python basics for optimization by using lists, tuples, and dictionaries. Create, access, and compare these data structures to manage names and marks in simple examples.
Learn to use if, for, and while loops in Python, including single-line conditionals and proper indentation. Explore iterating over lists and ranges, and applying else and elif in optimization tasks.
Learn how to define and use Python functions with def, inputs and returns, and reuse them across files to keep optimization code clean and scalable.
Install NumPy and learn to convert lists to arrays, apply vectorized operations, and compute min, max, mean for optimized Python calculations.
Explore how pandas handles structured data in Python by creating data frames from dictionaries, joining tables, filtering data, and computing group means and counts for table-oriented optimization problems.
Learn to read excel files with pandas, merge student data by name, compute average marks by name, and save the results to a new spreadsheet for operations research workflows.
Learn to visualize optimization results using matplotlib in Python, plotting salaries with plt.plot or plt.bar, and configure colors, legends, and labels for clear insights.
Learn the basics of mathematical modeling by converting real world problems into mathematical framework and solving optimization tasks with variables, parameters, constraints, and an objective function to minimize or maximize.
Understand optimization problems by identifying constraints and variables, model the problem mathematically, then solve with a framework and a solver, and finally check results using practical examples.
Model optimization problems by translating real-world issues into mathematical form and focusing on modeling over solving, using examples to illuminate objective functions and constraints.
Maximize returns across four funds A–D under a 100,000 capital limit and fund-specific constraints. Incorporate fund D's quadratic term and a 30% cap, while building a generic optimization model.
Minimize production costs across three machines to meet a 10,000 shoe demand. Define ca, cb, cc and pa, pb, pc with a balance constraint and big-M binary on/off variables.
Present a generic arc-based routing formulation from A to B using binary x_i_j and distance D to minimize route length, with omega_in and omega_out and flow constraints for paths.
Model a 0-1 selection problem that maximizes revenue by choosing constructions under a five-team limit using binary variables and the constraint sum(n_t_o x_o) ≤ 5; B and C yield $7,000.
Model construction dependencies with binary decisions: c requires a, and d requires a and c, using simple constraints and later linearization of the product x_a x_c.
Learn to formulate a job assignment problem in optimization with python by defining binary variables, maximizing profit, and enforcing six-hour daily capacity with each demand attended at most once.
Learn to modify a job assignment formulation to enforce at most one job per day and assign every job to exactly one day, using the day-wise and job-wise constraints.
Start with the basics to master simple formulations before tackling complex models, then study books and articles, documenting every variable, constraint, and index to learn solving problems with your computer.
Learn how to solve linear programming problems in Python, using continuous variables, linear constraints and a simple objective to maximize x plus y, with guidance on popular solvers.
Understand your optimization problem—the rules, objective, and variables—and convert it into a mathematical model. Learn to select frameworks and solvers, like Pyomo and Gurobi, to solve and report results.
Master solving linear programming with ortools, compare frameworks like pyomo, and explore solvers such as Gurobi, Cplex, and GLP from installation to obtaining the optimal solution.
Explore SCIP, the fastest open-source solver for linear, non-linear, and integer problems. Learn to install the Python package, set environment variables, and compare open-source workflows with Cplex or Gurobi.
Install and configure Gurobi, Cplex, and Glpk solvers on Windows, activate academic licenses, set environment variables, and prepare to use Pyomo in follow-up lessons.
Learn to model and solve linear programs with Pyomo, swapping solvers such as GLPK, Gurobi, and CPLEX, and explore defining variables, constraints, and a max objective.
Learn to optimize linear problems in Python with PuLP by installing the package, defining a maximize problem for x and y with bounds 0–10, adding constraints, and solving with CBC.
Explore how to choose solvers and frameworks for linear and nonlinear programming, with Pyomo as an easy, well-documented option and zip as a solver framework that selects the best solver.
Learn to use the CBC solver in Pyomo by downloading CBC, configuring its path, and selecting CBC alongside Glpk, Gurobi, and Cplex for linear problems; Ipopt for nonlinear later.
Model a power generation optimization in Pyomo using arrays and summations, read inputs from Excel, and minimize cost under generator limits with load balance.
Learn how to inspect Pyomo models by printing the full model, individual variables, constraints, or the objective, and view a summary with variables, constraints, objective, status, and processing time.
Explore mixed integer linear programming, where linear problems include integer variables in the objective or constraints. See how constraining X to integers changes the solution and is solved in Python.
Solve mixed integer linear problems using Pyomo by defining x as integer, adjusting constraints, and running solvers like GLPK; compare linear programming to MILP in a hands-on example.
Explore solving milp with Ortools by defining integer variables, selecting compatible solvers like cbc, Gurobi, or Cplex, and running a pyomo-based linear problem in Spyder.
Solve a MILP exercise by building a Pyomo concrete model with five integer x variables and a y, applying summation and linear constraints, and measure time using Gurobi or alternatives.
Explore non-linear problems, transforming linear problems with the multiplication of variables in the objective function and the constraint, and learn why solvers often yield local rather than global solutions.
Use ipopt in pyomo to solve nonlinear problems with the interior point method. Download and configure ipopt, compare with glpk or gurobi, noting nonlinear solvers have small errors.
Open spyder and implement nonlinear optimization in scipy by transforming the problem with constraint y times x. Create an objective variable Z, then run the code to obtain the solution.
Solve a nonlinear Pyomo optimization by tuning initial point and solver tolerance to reveal global solutions of a cosine objective for x and y in -5 to 5, using Ipopt.
Explore solving mixed integer nonlinear problems (MINLP) using composition, artificial intelligence, and heuristics, and transform a simple linear problem into a case study with nonlinear equations and integer variables.
Solve a mixed integer nonlinear problem using Pyomo with the Couenne solver and define integer variables to obtain an optimal solution.
Use Pyomo mindtpy to decompose mixed integer nonlinear problems, pairing Gurobi for the linear part with Ipopt for the nonlinear part.
solve mixed integer nonlinear problems with SCIP by defining X as integer and introducing an auxiliary variable Z equal to objective function, then run the solver to obtain a solution.
Explore the genetic algorithm, an evolutionary metaheuristic that evolves an initial population of chromosomes through fitness function, mutation, and crossover across generations to optimize solutions within stop criteria.
Learn how the genetic algorithm optimizes problems in python by evolving a population of solutions with bounds and a penalized objective to drive convergence.
Explore the particle swarm heuristic to solve optimization problems by defining bounds, an initial point, and an objective function, then minimize with penalization and integer constraints to obtain a solution.
Operational planning and long term planning for companies are more complex in recent years. Information changes fast, and the decision making is a hard task. Therefore, optimization algorithms (operations research) are used to find optimal solutions for these problems. Professionals in this field are one of the most valued in the market.
In this course you will learn what is necessary to solve problems applying Mathematical Optimization and Metaheuristics:
Linear Programming (LP)
Mixed-Integer Linear Programming (MILP)
NonLinear Programming (NLP)
Mixed-Integer Linear Programming (MINLP)
Genetic Algorithm (GA)
Multi-Objective Optimization Problems with NSGA-II (an introduction)
Particle Swarm (PSO)
Constraint Programming (CP)
Second-Order Cone Programming (SCOP)
NonConvex Quadratic Programming (QP)
The following solvers and frameworks will be explored:
Solvers: CPLEX – Gurobi – GLPK – CBC – IPOPT – Couenne – SCIP
Frameworks: Pyomo – Or-Tools – PuLP – Pymoo
Same Packages and tools: Geneticalgorithm – Pyswarm – Numpy – Pandas – MatplotLib – Spyder – Jupyter Notebook
Moreover, you will learn how to apply some linearization techniques when using binary variables.
In addition to the classes and exercises, the following problems will be solved step by step:
Optimization on how to install a fence in a garden
Route optimization problem
Maximize the revenue in a rental car store
Optimal Power Flow: Electrical Systems
Many other examples, some simple, some complexes, including summations and many constraints.
The classes use examples that are created step by step, so we will create the algorithms together.
Besides this course is more focused in mathematical approaches, you will also learn how to solve problems using artificial intelligence (AI), genetic algorithm, and particle swarm.
Don't worry if you do not know Python or how to code, I will teach you everything you need to start with optimization, from the installation of Python and its basics, to complex optimization problems. Also, I have created a nice introduction on mathematical modeling, so you can start solving your problems.
I hope this course can help you in your career. Yet, you will receive a certification from Udemy.
Operations Research | Operational Research | Mathematical Optimization
See you in the classes!!