Combinatorial optimization @ CO@Work 2020, Pawel Lichocki, - - PowerPoint PPT Presentation

combinatorial optimization
SMART_READER_LITE
LIVE PREVIEW

Combinatorial optimization @ CO@Work 2020, Pawel Lichocki, - - PowerPoint PPT Presentation

Combinatorial optimization @ CO@Work 2020, Pawel Lichocki, 25.09.2020 htups://developers.google.com/optimization Introduction Deep dive Benefits Challenges Introduction Deep dive Benefits Challenges Combinatorial optimization 3 2 8 4


slide-1
SLIDE 1

Combinatorial optimization @

CO@Work 2020, Pawel Lichocki, 25.09.2020 htups://developers.google.com/optimization

slide-2
SLIDE 2

Introduction Deep dive Benefits Challenges

slide-3
SLIDE 3

Introduction Deep dive Benefits Challenges

slide-4
SLIDE 4

Combinatorial optimization

3 2 9 8 6 1 6 4 1 5 2 8 9 7 5 3 4 8 3 6 4 9 5 8 7 6

slide-5
SLIDE 5

Solvers

MIP LP SAT CP Graph VRP

3 2 9 8 6 1 6 4 1 5 2 8 9 7 5 3 4 8 3 6 4 9 5 8 7 6

slide-6
SLIDE 6

OR-tools

MIP LP SAT CP Graph VRP

3 2 9 8 6 1 6 4 1 5 2 8 9 7 5 3 4 8 3 6 4 9 5 8 7 6

slide-7
SLIDE 7

Image stabilization

slide-8
SLIDE 8

Datacenter optimization

slide-9
SLIDE 9

Street view

slide-10
SLIDE 10

Loon

slide-11
SLIDE 11

Introduction Deep dive Benefits Challenges

slide-12
SLIDE 12

min/max c0 + cTx lbct ≤ Ax ≤ ubct lbvar ≤ x ≤ ubvar xj ∈ Z, j∈J

MIP model

slide-13
SLIDE 13

Place items

slide-14
SLIDE 14

Constants double Required(i, r) double Available(b, r) Indices Item i = 1..I Bin b = 1..B Resource r = 1..R Variables Objective Constraints

slide-15
SLIDE 15

Constants double Required(i, r) double Available(b, r) Indices Item i = 1..I Bin b = 1..B Resource r = 1..R Variables place(i, b) in {0, 1} Objective Constraints

slide-16
SLIDE 16

Indices Item i = 1..I Bin b = 1..B Resource r = 1..R Objective Constraints for item i = 1..I: ∑b = 1..B place(i, b) = 1 for resource r = 1..R: for bin b = 1..B: ∑i = 1..I Required(i, r) * place(i, b) ≤ Available(b, r) Variables place(i, b) in {0, 1} Constants double Required(i, r) double Available(b, r)

slide-17
SLIDE 17

Redundancy

slide-18
SLIDE 18

Constants int Copies(i) double Required(i, r) double Available(b, r) Indices Item i = 1..I Bin b = 1..B Resource r = 1..R Variables place(i, b) in [0..Copies(i)] Objective Constraints for item i = 1..I: ∑b = 1..B place(i, b) = Copies(i) for resource r = 1..R: for bin b = 1..B: ∑i = 1..I Required(i, r) * place(i, b) ≤ Available(b, r)

slide-19
SLIDE 19

Fault tolerance

slide-20
SLIDE 20

Constants int Copies(i) double Required(i, r) double Available(b, r) Indices Item i = 1..I Bin b = 1..B Resource r = 1..R Variables place(i, b) in {0, 1} Objective Constraints for item i = 1..I: ∑b = 1..B place(i, b) = Copies(i) for resource r = 1..R: for bin b = 1..B: ∑i = 1..I Required(i, r) * place(i, b) ≤ Available(b, r)

slide-21
SLIDE 21

Balance

slide-22
SLIDE 22

Constraints for item i = 1..I: ∑b = 1..B place(i, b) = Copies(i) for resource r = 1..R: for bin b = 1..B: ∑i = 1..I Required(i, r) * place(i, b) ≤ Available(b, r) for bin b = 1..B: ∑i = 1..I place(i, b) - ∑i = 1..ICopies(i) / B ≤ surplus(b) Variables place(i, b) in {0, 1} surplus(b) in [0, +inf) Constants int Copies(i) double Required(i, r) double Available(b, r) Indices Item i = 1..I Bin b = 1..B Resource r = 1..R Objective min ∑b = 1..Bsurplus(b)

slide-23
SLIDE 23

Minimize churn

slide-24
SLIDE 24

Constraints for item i = 1..I: ∑b = 1..B place(i, b) = Copies(i) for resource r = 1..R: for bin b = 1..B: ∑i = 1..I Required(i, r) * place(i, b) ≤ Available(b, r) for bin b = 1..B: ∑i = 1..I place(i, b) - ∑i = 1..ICopies(i) / B ≤ surplus(b) ∑b = 1..B∑i = 1..IPlaced(i, b) * (1 - place(i, b)) ≤ MaxChange Variables place(i, b) in {0, 1} surplus(b) in [0, +inf) Constants int Copies(i) double Required(i, r) double Available(b, r) int MaxChange bool Placed(i, b) Indices Item i = 1..I Bin b = 1..B Resource r = 1..R Objective min ∑b = 1..Bsurplus(b)

slide-25
SLIDE 25

Multi-dimensional multi-packing with redundancy, fault tolerance, balancing, and reducing churn

slide-26
SLIDE 26

Introduction Deep dive Benefits Challenges

slide-27
SLIDE 27

Algorithm Input

Imperative vs Declarative

Action Input Action Model Solver

slide-28
SLIDE 28

Minimalistic

min/max c0 + cTx lbct ≤ Ax ≤ ubct lbvar ≤ x ≤ ubvar xj∈ Z j∈J

slide-29
SLIDE 29

Constraints for item i = 1..I: ∑b = 1..B place(i, b) = Copies(i) for resource r = 1..R: for bin b = 1..B: ∑i = 1..I Required(i, r) * place(i, b) ≤ Available(b, r) for bin b = 1..B: ∑i = 1..I place(i, b) - ∑i = 1..ICopies(i) / B ≤ surplus(b) surplus(b) ≤ max_surplus ∑b = 1..B∑i = 1..IPlaced(i, b) * (1 - place(i, b)) ≤ MaxChange

Modular

slide-30
SLIDE 30

Algorithm Input Action

Encapsulated

slide-31
SLIDE 31

Algorithm Input Action

Encapsulated

Input Input Action Action

slide-32
SLIDE 32

Input Action

Encapsulated

Input Input Action Action Model Solver

slide-33
SLIDE 33

Introduction Deep dive Benefits Challenges

slide-34
SLIDE 34

Define Prototype

Meet

slide-35
SLIDE 35

Define Prototype Collect data Implement Verify

Solve Meet

slide-36
SLIDE 36

Define Prototype Collect data Implement Verify

Solve Meet

slide-37
SLIDE 37

Define Prototype Collect data Implement Verify

Solve Meet

Redefine

slide-38
SLIDE 38

Define Prototype Collect data Implement Verify Deploy Monitor Redefine

Solve Land Meet

slide-39
SLIDE 39

Define Prototype Collect data Implement Verify Deploy Monitor Add features Redefine

Solve Land Maintain Meet

slide-40
SLIDE 40

Define Prototype Collect data Implement Verify Deploy Monitor Add features Redefine

Solve Land Maintain Meet

slide-41
SLIDE 41

Define Prototype Collect data Implement Verify Deploy Monitor Add features Redefine

Solve Land Maintain Meet

1 month +1 year 3 months forever :-)

slide-42
SLIDE 42

Time spent

DISCUSSION GET DATA CODE EXPLAIN RESULTS

Investigate Implement

slide-43
SLIDE 43

Thank you!

CO@Work 2020, Pawel Lichocki, 25.09.2020 htups://developers.google.com/optimization