Optimization with Python: Solve Operations Research Problems

Optimization with Python: Solve Operations Research Problems

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 13.5 Hours | 2.95 GB

Solve optimization problems with CPLEX, Gurobi, Pyomo… using linear programming, nonlinear, evolutionary algorithms…

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)
  • Particle Swarm (PSO)
  • Constraint Programming (CP)
  • Second-Order Cone Programming (SCOP)
  • NonConvex Quadratic Programmin (QP)

The following solvers and frameworks will be explored:

  • Solvers: CPLEX – Gurobi – GLPK – CBC – IPOPT – Couenne – SCIP
  • Frameworks: Pyomo – Or-Tools – PuLP
  • 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.

What you’ll learn

  • Solve optimization problems using linear programming, mixed-integer linear programming, nonlinear programming, mixed-integer nonlinear programming,
  • LP, MILP, NLP, MINLP, SCOP, NonCovex Problems
  • Main solvers and frameworks, including CPLEX, Gurobi, and Pyomo
  • Genetic algorithm, particle swarm, and constraint programming
  • From the basic to advanced tools, learn how to install Python and how to use the main packages (Numpy, Pandas, Matplotlib…)
  • How to solve problems with arrays and summations
Table of Contents

Introduction to the course
1 Introduction
2 What is optimization

Installing Python
3 Installing Python
4 Packages
5 IDE Spyder
6 Jupyter Notebook Lab

Starting with Python
7 Lists, Tuples, and Dictionary
8 If, For, While
9 Functions
10 Numpy
11 Pandas
12 Pandas reading Excel
13 Graphs
14 PDFs to learn more about Python

Introduction to mathematical modelling
15 What is Mathematical Modelling
16 How do we solve optimization problems
17 Type of Variables
18 Objective Function and Constraints
19 How to model your problem
20 Example 1 investiment
21 Example 2 investiment
22 Example 3 production cost
23 Example 4 route problem
24 Example 5 construction assignment
25 Example 6 construction assignment
26 Example 7 job assignment
27 Example 8 job assignment
28 How to Learn More
29 Some references for you learn more (problems of VRPTW, TSP, JobShop…)

Linear Programming (LP)
30 LP Introduction
31 Framework and Solvers
32 LP Ortools
34 LP Gurobi, CPLEX, and GLPK (installation)
35 LP Pyomo (using Gurobi, CPLEX, and GLPK)
36 LP PuLP
37 Which solver and frameworks should we choose
38 LP Exercise, solve it by yourself
39 LP Concepts

Working with Pyomo
40 Pyomo Using other solvers (CBC)
41 Pyomo Summations
42 Pyomo Pprint
43 Pyomo Manual

Mixed-Integer Linear Programming (MILP)
44 MILP Introduction
45 MILP Pyomo
46 MILP Ortools
48 MILP Exercise, solve it by yourself
49 MILP Exercise solution
50 MILP Concepts

Nonlinear Programming (NLP)
51 NLP Introduction
52 NLP Pyomo (IPOPT)
54 NLP Exercise, solve it by yourself
55 NLP Exercise Solution
56 NLP Concepts

Mixed-Integer Nonlinear Programming (MINLP)
57 MINLP Introduction
58 MINLP Pyomo (Couenne)
59 MINLP Pyomo (decomposition using mindtpy)
61 MINLP Genetic Algorithm
62 MINLP Genetic Algorithm Concepts
63 MINLP Particle Swarm (PSO)
64 MINLP PSO Concepts

Constraint Programming (CP)
65 CP Ortools
66 CP Concepts

Special Cases
67 Introduction
68 SCOP Second-Order Cone Programming
69 NonConvex Quadratic Programming
70 Vehicle Routing Problems (VRP) with Or-Tools, An introduction
71 Linearization binary continuos using BigM
72 Linearization binary binary

Advanced Features for Pyomo
73 Introduction and a new Case Study (hands-on)
74 Check the solver progress
75 Define a Gap Limit
76 Define a Time Limit
77 More parameters for the solvers
78 Working with inequality
79 pyo.summation
80 Parameters and Sets
81 Rules inside Constraints
82 Rules with indexes
83 WarmStart
84 Differential Algebraic Equations (DAE)

More exercises and modeling
85 Introduction
86 Garden problem
87 Revenue problem
88 Route problem [subtitled]
89 Optimal power flow problem [subtitled]

90 Congratulation