
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 if statements in Julia by writing a condition, indenting the block, and ending with end; compare x > 10 with x <= 10 and print appropriate outputs.
Learn to define a Julia function check_child(age) to determine if someone is a child using if...end, then call the function with various ages and return true or false for reusability.
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.
Learn how the Jump framework models optimization problems and delegates solving to solvers like glpk, and discover how to switch solvers with simple code changes for linear and integer programs.
Switch solvers in Julia with the Jump framework in 1–2 lines, and compare linear, mixed‑integer, and nonlinear options from Gurobi, CBC, GLPK, and Baron.
Install and configure Gurobi, a solver for linear, integer linear, and some nonlinear problems such as quadratics, and set up licenses, environment variables, and the Gurobi package in Julia.
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.
Learn to solve a meal-planning linear program in Julia using jump and glpk, defining xA, xB, xC, and maximizing profit from costs and revenues under constraints.
refactor an lp in julia by replacing scalars with dictionaries, defining an index set, and using indexed variables to form summations and constraints; learn debugging and model printing.
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.
Explore integer and binary variables, showing how discrete solutions differ from continuous intersections and how binary modeling enables mixed integer linear programming for countable decisions like allocating a machine.
Define x as an integer variable in Julia to transform a continuous linear problem into a mixed integer linear programming example, replacing kilograms with plates and preserving constraints.
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.
Develop Julia models with two-index sets I and J, declare a two-dimensional variable X, and structure a model using Jump and glpk in VS code.
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 define a multi-constraint in Julia using a summation over j, with i restricted to two and three and terms x_ij and y_i.
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.
Create parameters and sets by filtering a data frame to extract nodes and arcs, using dot equal filters, and define distances as parameters for your optimization model.
In Julia, build a routing model with GLPK, use binary x variables on arcs to minimize total distance under origin, destination, and node balance constraints.
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.
Set and interpret the mip gap or gap tolerance in solvers like Gurobi, CBC, and GLPK, using branch-and-bound and linearization to reduce the gap between current and best solutions.
Set a timing limit for the solver to handle large problems, using glpk PM limit in seconds or gurobi time limit, and compare zero and five seconds.
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.
Learn to use a global solver to find the global solution for mixed-integer nonlinear problems, focusing on Cohen via the NL writer package, starting points matter.
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.
Learn how to install and run sip in julia, troubleshoot common windows setup errors, and work around nonlinear objective function issues with practical steps.
Move divisions to the left and avoid right-side variables, convert divisions to multiplication, and start near zero instead of zero to improve nonlinear MINLP solver convergence.
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!