Live Online training

# Intro to Mathematical Optimization

## What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

• The basic principles behind common optimization techniques and what problems they are good for.
• Recognize which situations require optimization and which techniques to use.
• The relationship between machine learning and optimization algorithms.

And you’ll be able to:

• Have enough information to code optimization algorithms themselves or use libraries that do it for them.
• Align more appropriate solutions to their businesses by having a greater breadth of “AI” methodologies in their tool belts.

## This training course is for you because...

• You are a data scientist interested in optimization methodologies and how they apply to machine learning
• You are a programmer looking to solve nondeterministic problems like scheduling staff, server jobs, or other resources.
• You are a manager of a data science/analytics team wanting to understand other methodologies outside of machine learning, and what algorithm to use and when.

Prerequisites

• Familiarity with a programming language like Python, Java, or Scala, may be useful, but the conceptual explanations in this course will be accessible to those without any prior programming experience.

Complete the below before the course begins:

Please do these two thought experiments and write down what you think is the best approach to solve these two problems (hint: machine learning is not the answer). Try not to research online and the answers will be revealed in class. Even if you cannot figure out a solution, make a guess on what direction you would pursue.

• 1) Take a sheet of paper and mark 25 dots in random places, like they were cities on a map. Pretend you had to visit each city in a round-trip tour, starting and ending in the same city. How do you find the shortest tour possible?
• 2) You run a small business with 50 workers reporting to you. Your business partner complains how much time is spent scheduling the workers, and trying to make sure they don’t exceed 40 hours. On top of that, she has to keep senior workers happy by giving their preferred shifts, prevent wages from exceeding a budget, and try to respect vacation requests. How do you schedule your workers algorithmically while respecting these constraints?

• Thomas Nield is the founder of Nield Consulting Group and a professional author, conference speaker, and trainer at O’Reilly. He wrote two books including Getting Started with SQL (O’Reilly) and Learning RxJava (Packt). He regularly teaches classes on analytics, machine learning, and mathematical optimization and has written several popular articles like “How it Feels to Learn Data Science in 2019” and “Is Deep Learning Already Hitting Its Limitations?” Valuing problem-solving over problem finding, Thomas believes using solutions that are practical, which are often unique in every industry.

## Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Introduction (10 minutes)

• The Traveling Salesman Problem
• What to expect in this course

Metaheuristics (40 minutes)

• Hill Climbing and Simulated Annealing with the Traveling Salesman Problem explained
• Doing a linear regression with hill climbing/simulated annealing
• Other metaheuristics algorithms
• Exercise: True/false and multiple choice questions
• Q&A

Tree Search Algorithms (40 minutes)

• Solving a Sudoku
• Creating a schedule under constraints
• Knapsack Problem (Choosing which shipments to put in container)
• Branch-and-bound Intuition
• Exercise: Choose the right heuristic
• Q&A
• Break (10 minutes)

Linear/Integer/Mixed Programming (40 minutes)

• Basic Convex Optimization Intuition
• Using libraries for linear/integer/mixed programming
• Blending Problem
• Manufacturing problem
• Exercise: Finding the right constraints
• Q&A