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.6k
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
8.9k
Decision Algorithms In Production.
philipithomas
0
290
Staffjoy Dec 2015 Angel Round Pitch Deck
philipithomas
1
9k
Staffjoy Y Combinator Fellowship Demo Day Pitch Deck
philipithomas
1
8.2k
Predictive Analysis using JuMP
philipithomas
0
280
Overview of Programming Languages
philipithomas
0
420
Other Decks in Technology
See All in Technology
生成AIサービスPanorama AIご説明資料
sdt
0
300
オブジェクト指向CSSが叶えたかったことと、CSSのいま / The aims of Object-oriented CSS and the current state of CSS usage
shinkufencer
11
3.2k
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
150
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
23
6.8k
Kubeflow Pipelines v2 で変わる機械学習パイプライン開発
asei
4
330
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
760
現実世界の事象から学ぶSOLID原則
h0r15h0
24
9.5k
OCI Data Integration技術情報 / ocidi_technical_jp
oracle4engineer
PRO
1
1.5k
ハイパフォーマンスな組織をつくるための開発生産性の考え方 / developer-productivity-high-performer-link-and-motivation
lmi
3
230
10分でわかるfreeeのQA
freee
0
220
MongoDB Atlas Vectorsearchではじめる生成AIアプリ開発
chie8842
3
500
AMLD 2024 - Build Your Own GPT
donlelef
1
260
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
92
4.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
67
38k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
11
1.4k
Clear Off the Table
cherdarchuk
82
310k
GitHub's CSS Performance
jonrohan
1023
450k
Gamification - CAS2011
davidbonilla
76
4.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.8k
Building Flexible Design Systems
yeseniaperezcruz
317
37k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
4 Signs Your Business is Dying
shpigford
174
21k
What's in a price? How to price your products and services
michaelherold
236
11k
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