combinatorial optimization
play

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


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

  2. Introduction Deep dive Benefits Challenges

  3. Introduction Deep dive Benefits Challenges

  4. Combinatorial optimization 3 2 8 4 6 5 3 1 6 3 5 4 1 6 4 8 7 9 9 5 8 7 9 6 2 8

  5. Solvers 3 2 8 4 6 5 3 1 6 3 5 4 1 6 4 8 7 9 9 5 8 7 9 6 2 8 VRP CP MIP LP SAT Graph

  6. OR-tools 3 2 8 4 6 5 3 1 6 3 5 4 1 6 4 8 7 9 9 5 8 7 9 6 2 8 VRP CP MIP LP SAT Graph

  7. Image stabilization

  8. Datacenter optimization

  9. Street view

  10. Loon

  11. Introduction Deep dive Benefits Challenges

  12. MIP model min/max c 0 + c T x lb ct ≤ Ax ≤ ub ct lb var ≤ x ≤ ub var x j ∈ Z, j ∈ J

  13. Place items

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

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

  16. Indices Variables Constants Item i = 1..I place(i, b) in {0, 1} double Required(i, r) Bin b = 1..B double Available(b, r) Resource r = 1..R 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) Objective

  17. Redundancy

  18. Indices Variables Constants Item i = 1..I place(i, b) in [0..Copies(i)] int Copies(i) Bin b = 1..B double Required(i, r) Resource r = 1..R double 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) Objective

  19. Fault tolerance

  20. Indices Variables Constants Item i = 1..I place(i, b) in {0, 1} int Copies(i) Bin b = 1..B double Required(i, r) Resource r = 1..R double 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) Objective

  21. Balance

  22. Indices Variables Constants Item i = 1..I place(i, b) in {0, 1} int Copies(i) Bin b = 1..B surplus(b) in [0, +inf) double Required(i, r) Resource r = 1..R double 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..I Copies(i) / B ≤ surplus(b) Objective min ∑ b = 1..B surplus(b)

  23. Minimize churn

  24. Indices Variables Constants Item i = 1..I place(i, b) in {0, 1} int Copies(i) Bin b = 1..B surplus(b) in [0, +inf) double Required(i, r) Resource r = 1..R double Available(b, r) int MaxChange Constraints bool Placed(i, b) 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..I Copies(i) / B ≤ surplus(b) ∑ b = 1..B ∑ i = 1..I Placed(i, b) * (1 - place(i, b)) ≤ MaxChange Objective min ∑ b = 1..B surplus(b)

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

  26. Introduction Deep dive Benefits Challenges

  27. Imperative vs Declarative Input Algorithm Action Input Model Solver Action

  28. Minimalistic min/max c 0 + c T x lb ct ≤ Ax ≤ ub ct lb var ≤ x ≤ ub var x j ∈ Z j ∈ J

  29. Modular 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..I Copies(i) / B ≤ surplus(b) surplus(b) ≤ max_surplus ∑ b = 1..B ∑ i = 1..I Placed(i, b) * (1 - place(i, b)) ≤ MaxChange

  30. Encapsulated Input Algorithm Action

  31. Encapsulated Input Input Input Algorithm Action Action Action

  32. Encapsulated Input Input Model Solver Input Action Action Action

  33. Introduction Deep dive Benefits Challenges

  34. Meet Define Prototype

  35. Meet Solve Collect data Define Prototype Implement Verify

  36. Meet Solve Collect data Define Prototype Implement Verify

  37. Meet Solve Redefine Collect data Define Prototype Implement Verify

  38. Meet Solve Land Redefine Deploy Collect data Define Prototype Implement Monitor Verify

  39. Meet Solve Land Maintain Redefine Deploy Collect data Define Add features Prototype Implement Monitor Verify

  40. Meet Solve Land Maintain Redefine Deploy Collect data Define Add features Prototype Implement Monitor Verify

  41. Meet Solve Land Maintain 1 month +1 year 3 months forever :-) Redefine Deploy Collect data Define Add features Prototype Implement Monitor Verify

  42. Time spent Investigate Implement GET DATA DISCUSSION CODE EXPLAIN RESULTS

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

Recommend


More recommend