Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Optimization in Julia
Search
Philip I. Thomas
November 14, 2014
Technology
0
1.8k
Optimization in Julia
Philip I. Thomas
November 14, 2014
Tweet
Share
More Decks by Philip I. Thomas
See All by Philip I. Thomas
Staffjoy Seed Round Pitch Deck
philipithomas
1
9.4k
Decision Algorithms In Production.
philipithomas
0
300
Staffjoy Dec 2015 Angel Round Pitch Deck
philipithomas
1
9.4k
Staffjoy Y Combinator Fellowship Demo Day Pitch Deck
philipithomas
1
8.6k
Predictive Analysis using JuMP
philipithomas
0
420
Overview of Programming Languages
philipithomas
0
540
Other Decks in Technology
See All in Technology
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
12k
あの夜、私たちは「人間」に戻った。 ── 災害ユートピア、贈与、そしてアジャイルの再構築 / 20260108 Hiromitsu Akiba
shift_evolve
PRO
0
750
20260114_データ横丁 新年LT大会:2026年の抱負
taromatsui_cccmkhd
0
310
Data Intelligence on Lakehouse Paradigm
scotthsieh825
0
170
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.7k
Behind the Stream - How AbemaTV Engineers Build Video Apps at Scale
ygoto3
0
110
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
2
940
Web Intelligence and Visual Media Analytics
weblyzard
PRO
1
6.8k
新米スクラムマスターの4ヶ月 -「スクラムイベントを回しているのに手応えがない」からの脱出 / Four Months as a New Scrum Master — When Scrum Events Were Running, but Nothing Felt Right
owata
0
190
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
1.2k
ソフトとハード両方いけるデータ人材の育て方
waiwai2111
1
480
サラリーマンソフトウェアエンジニアのキャリア
yuheinakasaka
41
19k
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
290
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
AI: The stuff that nobody shows you
jnunemaker
PRO
2
180
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
140
Speed Design
sergeychernyshev
33
1.5k
Statistics for Hackers
jakevdp
799
230k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
220
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
82
Done Done
chrislema
186
16k
How Software Deployment tools have changed in the past 20 years
geshan
0
31k
Transcript
Optimization in Julia Philip I. Thomas, philipithomas.com
Goal Give an understanding of how to formulate and express
an optimization problem in JuMP (Julia for Mathematical Programming)
About Me • philipithomas.com • Engineer, OpenDNS • Education -
Systems Engineering and Physics • For fun - Workforce Scheduling
Agenda • Optimization and Operations Research • Julia • JuliaOpt
• Examples
Optimization and OR
Optimization Minimize or maximize a function subject to constraints. •
Linear Programming • Nonlinear Programming • Dynamic Programming • Constraint Programming
Minimize x Subject to x >= 0
Minimize x Subject to x >= 0 Min 0
Minimize x - y Subject to x <= 0 y
>= -4 x - 2y = -2
Minimize x - y Subject to x <= 0 y
>= -4 x - 2y = -2 Substitute x - y = -2 + y Min -6 (x = -2, y = 4)
Minimize -2x - 3y - 3z Subject to 3x +
2y + z = 10 3x + 5y +3z = 15 x, y, z > 0 Source: Wikipedia
Minimize -2x - 3y - 3z Subject to 3x +
2y + z = 10 3x + 5y +3z = 15 x, y, z > 0 Min -130/7 Source: Wikipedia
Simplex Algorithm Source: Wikipedia
Minimize -2x - 3y - 3z Subject to 3x +
2y + z = 10 3x + 5y +3z = 15 x, y, z > 0 x, y, z ∈ Z
Minimize -2x - 3y - 3z^2 Subject to 3x +
2y + z = 10 3x + 5y +3z = 15 x, y, z > 0
Minimize -2x - 3y*z Subject to 3x + 2y +
z = 10 3x + 5y +3z = 15 x, y, z > 0
Complexity Notation • Nondeterministic-Polynomial Time • Some of the hardest
problems in computer science
Operations Research Optimization and Applied Mathematics in Business • Military
• Workforce scheduling • Routing • Factories • Sports Games
Julia
None
About Julia • Fast • JIT Compiler • Dynamic Dispatch
• Package Manager • Parallel and Distributed • Call C and Python functions • Open Source (JuliaLang.org)
http://learnxinyminutes.com/docs/julia/
JuMP
Julia for Mathematical Programming • Modeling language written in Julia
• Supports a variety of solvers • LP, IP, Convex Programming, Constraint Programming
Solvers • Commercial / Open Source • Parallelism / Stability
Source: JuliaOpt.org
Why JuMP • High-Level • Portable • Extensible
Examples
Examples Online github.com/philipithomas/jump-examples Need Julia with JuMP package and CBC
Solver.
macklemore.jl We’re going to the thriftshop and need 99 cents.
Coins are heavy - minimize the mass needed to carry 99 cents. Source: ProjectEuler.net
sudoku.jl Constraint Satisfaction - Not Optimization http://www.dailysudoku.com/sudoku/today.shtml
salesman.jl https://forio.com/app/showcase/route-optimizer/
Scheduling • 20 employees • not available all the time
• varying demand throughout a day • some part time, some full time • minimum shift length, maximum shift length • time between shifts
Conclusion
Agenda • Optimization and OR • Julia • JuliaOpt •
Applications
Goal Give an understanding of how to formulate and express
an optimization problem in JuMP (Julia for Mathematical Programming)
Further Reading • In Pursuit of the Traveling Salesman: Mathematics
at the Limits of Computation by William Cook • Data Smart (Chapter 4) by John Foreman • Intro to Operations Research by Hillier
Optimization in Julia Philip I. Thomas, philipithomas.com