
Explore optimization in Julia, solving mathematical formulations to maximize or minimize objective functions, from distance minimization to resource allocation, and compare Julia’s performance with Python’s ecosystem.
Learn how the objective function guides minimization or maximization, apply constraints and variables (continuous, integer, binary), and distinguish fixed parameters from optimizable decisions in optimization problems.
Understand the business problem, model it as a mathematical formulation using a framework, and invoke a solver to maximize X plus Y, then print the results.
Explore solving linear, mixed integer linear, nonlinear, and mixed integer nonlinear optimization problems in Julia, formulating business problems into mathematical models and implementing them with various solvers.
Download Julia from the official website, install it on your operating system, add Julia to the path, and verify by launching the app from the start menu.
Install and configure Visual Studio Code from Microsoft, install the Julia extension, and learn to run Julia code in the integrated terminal for future classes.
Create your first Julia program in VS code by making a folder, saving test.jl, defining x and y, printing their product with println, and running it in the terminal.
Use for loops in Julia by organizing code in functions to avoid global and local variable issues. Sum numbers from 1 to 10 with a loop, end it, and print the result, or pass a parameter n to the function.
Explore lists, arrays, and dictionaries in Julia, learn how to create and index them, and compute sums and averages from collections and dictionary values.
Explore how to accelerate Julia coding by using packages like Statistics and JuMP to compute the mean and build mathematical models, installing them via the Julia terminal.
Learn to read Excel files in Julia by importing XLSX and DataFrames, converting the first worksheet to a DataFrame, and filtering ages to explore rows.
Classify problems as linear or nonlinear from the equations, apply linear programming for linear cases, and note that linear problems yield a global optimum at constraint intersections.
Define p1 and p2 and maximize revenue 2 p1 + 5 p2, with labor 1000 hours, stock 3000 units (p1 uses 3, p2 uses 4), p1 + p2 ≤ 600.5.
Solve the first linear program in Julia by modeling with Jump and Glpk, defining P1 and P2, and maximizing the objective under the given constraints.
Install IBM CPLEX academic edition and set it up in Julia to run a first linear program, comparing results with simplex and gurobi.
Form a program to maximize profit from a, b, and c using x kilograms with constraints: total ≤ 300, a's cost ≥ 10% of total cost, and c ≤ b+50.
Allocate a $1 million portfolio among funds A, B, and C to maximize return under a 13% risk cap, with a minimum 20% for A and maximum 40% for B.
Learn to solve a financial investment linear program in Julia by building a model with sets, parameters, and variables, applying GLPK, and printing the optimal allocations.
Learn how to select milp solvers based on problem size and licensing, compare glpk and gurobi, and address formulation issues to improve performance.
Solve a zombie shopping problem with mixed integer linear programming to minimize makespan by allocating machines to three jobs in a job shop, reflecting sequencing constraints.
Learn to model and solve a job shop MILP in Julia using GLPK, defining machines and jobs, parameters, binary variables, constraints, and an objective to optimize scheduling.
Learn how to formulate and implement double summations, compare two notations for summing over i and j, and express constraints for all i and j in optimization problems.
Learn to implement double summations in Julia for an optimization model, defining i and j indices and a constraint equal to one.
Define a new replicated constraint in the Julia optimization model for all i in I and j in J, enforcing x[i, j] + y[i, j] ≤ 1.
Learn to manage complex constraint declarations in Julia by naming constraints (C1, C2, C3), printing selected constraints, and iterating with loops to inspect each indexed constraint for debugging and feasibility.
Formulate a routing problem in Julia by modeling a graph with nodes and arcs, using Excel data and dataframes, and applying binary arc variables to minimize distance under node constraints.
Structure the data input in Excel with two worksheets, nodes and arcs, defining origin, destination, and arc distances for use in code.
Structure your data as a table and read two Excel sheets, nodes and arcs, into Julia data frames for a generic formulation, then validate inputs with debugging and GLPK-ready code.
Export the optimization result to a csv file, install and use the csv package in Julia, and view the solution in Excel, adjusting inputs to see new routes.
Learn to monitor solver progress and tune parameters like tolerance and time limits for large problems, and track the gap to the optimal solution using GLPK and Gurobi.
Explore how to check and set solver parameters, including the output flag, presolve options, and time limit, using Gurobi and GLPK documentation.
Explore why non-linear problems challenge solvers by creating multiple peaks, how linearization helps convert to linear problems, and how processing time affects locating a global solution.
Explore Julia's nonlinear and mixed-integer nonlinear solvers and note two famous free options for nonlinear problems. CMC and GLPK cannot solve nonlinear cases; Gurobi handles certain nonlinear forms.
Maximize revenue by setting price as the decision variable. Model volume as a function of price with an exponential competition curve, under capacity and price constraints, in a Julia-based optimization.
Solve a transportation problem with Ipopt in Julia by building a nonlinear model in vscode, maximizing revenue with V*P under a nonlinear demand constraint, then run and print results.
Explore cosine-based nonlinear optimization of x and y in [-5,5] using Ipopt in Julia, showing how starting points yield different local solutions. Learn looping over starts to avoid local minima.
Explore mixed integer nonlinear problems using a simple maximization of x plus x*y with integer x and a nonlinear constraint, and review solvers like Padrone and Cohen.
Solve a mixed-integer nonlinear problem in Julia using Couenne, define x as integer and y as bounded continuous, maximize x + x*y under nonlinear constraints, yielding x=5, y=1.2.
Discover how Bonmin uses CBC for the integer problem and Ipopt for the nonlinear part, as a heuristic within the Coin-OR project, and how to configure its solver parameters.
The increasing complexity of the modern business environment has made operational and long-term planning for companies more challenging than ever. To address this, optimization algorithms are employed to find optimal solutions, and professionals skilled in this field are highly valued in today's market.
As an experienced data science team leader and holder of a PhD degree, I am well-equipped to teach you everything you need to solve optimization problems in both practical and academic settings.
In this course, you will learn how to problems problems using Mathematical Optimization, covering:
Linear Programming (LP)
Mixed-Integer Linear Programming (MILP)
Nonlinear Programming (NLP)
Mixed-Integer Nonlinear Programming (MINLP)
Implementing summations and multiple constraints
Working with solver parameters
The following solvers: CPLEX, Gurobi, GLPK, CBC, IPOPT, Couenne, Bonmin, SCIP
This course is designed to teach you through practical examples, making it easier for you to learn and apply the concepts.
If you are new to Julia or programming in general, don't worry! I will guide you through everything you need to get started with optimization, from installing Julia and learning its basics to tackling complex optimization problems.
By completing this course, you'll not only enhance your skills but also earn a valuable certification from Udemy.
Operations Research | Operational Research | Operation Research | Mathematical Optimization
I look forward to seeing you in the classes and helping you advance your career in operations research!