production planning
play

Production planning Big factory, produces widgets, doodads Each - PowerPoint PPT Presentation

Production planning Big factory, produces widgets, doodads Each widget: 1 unit of wood, 2 units steel, profit $1 Each doodad 1 unit wood, 5 units steel, profit $2 Have: 4M units wood, 12M units steel A wrinkle Due


  1. Production planning • Big factory, produces widgets, doodads • Each widget: – 1 unit of wood, 2 units steel, profit $1 • Each doodad – 1 unit wood, 5 units steel, profit $2 • Have: 4M units wood, 12M units steel

  2. A wrinkle • Due to limitations of machinery, must produce in lots of exactly 1M widgets or 1M doodads

  3. Effect of integrality

  4. Integer linear programs • max c T x s.t. E.g., max s.t. Ax + b ≥ 0 Cx + d = 0 x integer

  5. Variations • Mixed integer linear program (MILP) • Integer quadratic program • 0-1 ILP

  6. Combinatorial optimization • Roughly, any optimization problem whose decision version is in NP • ILP, MILP, 0/1 IP:

  7. Applications • SAT • MAXSAT

  8. Applications • Facility location problem: – have n stores, at positions y 1 , y 2 , … – can build m warehouses, at x 1 , x 2 , … – minimize distance from each store to nearest warehouse • Extra vars: • min s.t.

  9. Embedding logic in MILPs • z ==> a T x + b ≥ 0 • OR: • k-of-n:

  10. Piecewise-linear functions

  11. Applications • Planning (e.g., STRIPS)

  12. Have cake & eat it as CNF

  13. Applications • Scheduling

  14. Solving combinatorial optimization problems • Two basic strategies • And,

  15. Basic search • Schema: if n 0/1 variables, {0, 1, *} n • E.g., • Schema is full if no *s: e.g., • Notation: schema/(variable → value) • E.g., 10**1/(x 3 → 1) =

  16. Basic search [schema, value] = search(F, sch) • If full(sch): return [sch, F(sch)] • pick a variable x i • [sch (0) , v (0) ] = search(F, sch/(x i → 0)) • [sch (1) , v (1) ] = search(F, sch/(x i → 1)) • if v (0) ≥ v (1) return [sch (0) , v (0) ] else return [sch (1) , v (1) ]

  17. Exercise • SAT problem w/ XOR constraints: search(a ⊕ b ^ b ⊕ c ^ c ⊕ a, ***) • How many total calls to search()?

  18. search(a ⊕ b ^ b ⊕ c ^ c ⊕ a)

  19. Constraint propagation • Start w/ table of feasible values • When we set a var, look at its constrs – e.g., set a = 0: – • If a domain becomes empty: • If one becomes singleton:

  20. Search tree

  21. Relaxation • min f(x) s.t. x ∈ S 1 (*) • min g(y) s.t. y ∈ S 2 (**) • (*) is a relaxation of (**) if: – – • Example:

  22. Why are relaxations useful? • Relaxation may be • From solution of relaxed problem: • Suppose x*, y* are optimal solutions to original / relaxed problems – we know:

  23. Example: have & eat LP … min 5s 1 + 5s 2 + … + 5s 19 + s 20 + 2s 21 s.t. … h 2 + (1–B 2 ) + (1–M 2 ) ≥ 1–s 15 (1–e 2 ) + e 1 + M 2 ≥ 1–s 16 … 0 ≤ M 1 , h 1 , e 1 , M 2 , B 2 , h 2 , e 2 , s 1 , …, s 21 ≤ 1

  24. How should we relax?

  25. Combine relaxation w/ search • Given a schema: e.g., • Substitute in fixed variables • Relax integrality constraints for *s • Solve relaxation • Quiz: in min problem, lower value for relaxation w/ or ? – A:

  26. A random 3-CNF formula

  27. Example search tree

  28. Branch & bound [schema, value] = bb(F, sch, bnd) • [v rx , rsch] = relax(F, sch) • if integer(rsch): return [rsch, v rx , bnd] • if v rx ≥ bnd: return [sch, v rx , bnd] • Pick variable x i • [sch (0) , v (0) ] = bb(F, sch/(x i → 0), bnd) • [sch (1) , v (1) ] = bb(F, sch/(x i → 1), min(bnd, v (0) )) • if (v (0) ≤ v (1) ): return [sch (0) , v (0) ] • else: return [sch (1) , v (1) ]

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend