Combinatorial optimization @
CO@Work 2020, Pawel Lichocki, 25.09.2020 htups://developers.google.com/optimization
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
CO@Work 2020, Pawel Lichocki, 25.09.2020 htups://developers.google.com/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
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
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
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
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
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)
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)
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)
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)
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)
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
Define Prototype
Define Prototype Collect data Implement Verify
Define Prototype Collect data Implement Verify
Define Prototype Collect data Implement Verify
Redefine
Define Prototype Collect data Implement Verify Deploy Monitor Redefine
Define Prototype Collect data Implement Verify Deploy Monitor Add features Redefine
Define Prototype Collect data Implement Verify Deploy Monitor Add features Redefine
Define Prototype Collect data Implement Verify Deploy Monitor Add features Redefine
1 month +1 year 3 months forever :-)
DISCUSSION GET DATA CODE EXPLAIN RESULTS
CO@Work 2020, Pawel Lichocki, 25.09.2020 htups://developers.google.com/optimization