Cheat Sheet
Cheat Sheet
In the chase plan one tries to exactly match the forecast demand. In the level plan it is important that regular production is constant. LP: Mixed Model
Inventory/backlog are not used. Instead, overtime/subcontracting are used. Fluctuation in demand is covered using inventory and backlog. Set: i = months (1 to 6)
Decision Variables:
𝑋 = # of units produced regular
LP: Chase Plan LP: Chase Plan 𝑋 = # of units produced using overtime
Set: i= months (1 to 6) Set: i= months (1 to 6) 𝑋 = # of units using subcontractor
Variables: Variables: 𝑋 = # of units kept in ending inventory
𝑋 = # of units produced regular 𝑋 = # of units produced 𝑋 = # of backorders
𝑋 = # of units produced using overtime 𝑋 = # of units kept in ending Inventory Objective Function: Min (30 ∗ (𝑋 +. . +𝑋 ) + 40 ∗ (𝑋 +. . +𝑋 ) +
𝑋 = # of units produced using subcontractor Objective Function: Min (30 ∗ (𝑋 +. . +𝑋 ) + 10 ∗ ( + 50 ∗ (𝑋 +. . +𝑋 ) + (70 ∗ (𝑋 +. . +𝑋 ) + 10 ∗ ( +
Objective Function: Min (30 ∗ (𝑋 +. . +𝑋 ) + 40 ∗ (𝑋 +. . +𝑋 ) + +. . + )
50 ∗ (𝑋 +. . +𝑋 )) +. . + )
Constraints: Constraints: Constraints:
𝑋 ≤ 4500 ,…, 𝑋 ≤ 4500 (Capacity Constraints) 𝑋 = 𝑋 ,.., 𝑋 = 𝑋 (Constant production Constraints) 𝑋 ≤ 4500, 𝑋 ≤ 5000, 𝑋 ≤ 3000 for i=1-6 (Capacity Constraints)
𝑋 + 𝑋 + 𝑋 = 4000, …, 𝑋 + 𝑋 + 𝑋 = 4000 (Flow Constraints) 𝑋 ≤ 4500 ,…, 𝑋 ≤ 4500 (Capacity Constraints) 𝑋 +𝑋 +𝑋 +𝑋 = 8000 + 𝑋
All variables are non-negative integers (Domain Constraints) 𝑋 = 4000+𝑋 , 𝑋 + 𝑋 = 4000 + 𝑋 ,.., 𝑋 + 𝑋 = 4000 + 𝑋 𝑋 +𝑋 +𝑋 +𝑋 +𝑋 = 7000 + 𝑋 + 𝑋
(Flow Constraints) ..
All variables are non-negative integers (Domain Constraints) 𝑋 + 𝑋 + 𝑋 + 𝑋 = 8000 + 𝑋 (Balance Constraints)
All variables are non-negative integers (Domain Constraints)
Location Planning
Center of Gravity Optimal Location
LP: Location Planning
Variables: 𝑋=
( ∗ )
;𝑌=
( ∗ ) How to check for better Location other than optimal location:
(𝑋 ): 𝑤𝑒𝑖𝑔𝑡ℎ ∗ |𝑋 − 𝑋 | + 𝑤𝑒𝑖𝑔ℎ𝑡 ∗ |𝑋 − 𝑋 | 𝑢𝑠𝑤.
𝑋 = # of of orders transported from production facility [i] (1 to 4) to the
Calculate for all X and Y & choose the coordinates with the lowest values as the better solution.
retail locations [j] (A to C)
𝑌 = (1 if new location (3 and 4) is opened, 0 otherwise) W
Objective Function: Min (0.5𝑋 + 1.1𝑋 + 0.7𝑋 + ⋯ + 0.5𝑋 +
300𝑌 + 1000𝑌 )
Constraints:
LP: Center of Gravity (Example Range [5,4] to [7,7])
Variables: * y=5=x 12
=
One binary (opened or not) for every possible center’s location (12 in total)
𝑋 + 𝑋 + 𝑋 + 𝑋 ≥ 450(Demand Constraints) 𝑦 , 𝑦 , 𝑦 , . . 𝑦 , 𝑦 (𝑒. 𝑔. 54 𝑠𝑡𝑎𝑛𝑑𝑠 𝑓𝑜𝑟 𝑡ℎ𝑒 𝑙𝑜𝑐𝑎𝑡𝑖𝑜𝑛 𝑋 = 5 𝑎𝑛𝑑 𝑌 = 4)
𝑋 + 𝑋 + 𝑋 + 𝑋 ≥ 600 One binary for every possible sending path (48 in total) (store options production centus)
-> x
Scheduling
Johnson’s Rule: -> use to minimise completion time w/ 2 workstations Hungarian Method: > LP: Hungarian Method
Create Sequence by ordering by lowest processing time: Step 1: Row min. subtracted from each value in row (for all rows) Variables: (all variables are binaries)
If on Machine A: Job is placed at beginning. Step 2: (new table) Column min subtracted from each value in Binary taking 1 (0 if not) if the worker I (A to E) is allocated to the job
If on Machine B: Job is placed at end (repeat until all jobs are allocated) column (for all) (1 to 5)
Jobs are always allocated for both Machines at once! (If there is a 0 in the column you don’t have to do anything as 0 is 𝑦
When mapping out the times: Jobs on Machine B can only start after the same your min) Objective Function: Min (31𝑦 +. . . +23𝑦 )
Job on Machine A is done! Step 3: Cross out all 0 with the lowest possible number of lines. If Constraints:
Idle Time: If Machine B could potentially start but Machine A is not done yet the number of lines is equal to the number of jobs, you are done Sum of 𝑦 = 1, ..., Sum of 𝑦 = 1 (assign each worker once)
Job Splitting: Look at the Idle times in the middle of Machine B. Try to split the and can allocate the workers. If a worker has a 0 for a job it
Sum of 𝑦 = 1, ..., Sum of 𝑦 = 1 (assign each job once)
previous job on Machine A that is causing the Idle time on Machine B in half means that he is most efficient for that job.
All variables are binaries (Domain Constraints)
and redo the Mapping and see whether Idle time has been reduced. If less lines than jobs: find the min among the numbers that are
If you don’t want to assign a worker for a certain job:
Idle time and total makespan are correlated as if one goes up the other not covered by a line, subtract min. from uncovered numbers and
𝑦 = 0 (for whichever I and j)
one goes up as well and vice versa. add to numbers that are covered by two lines (crossings points)
un
Inventory Management better SD per
->
Daily SD, year
d b2 4ac
3 Etate"
-
is
x
=
monthly a.
𝑑̅: average demand per period 12
Risk Stock out with delayed order by 1 day: On Hand = ROP – used
=yeaty
demand gear
*
I
𝐿𝑡 : average lead time Fixed Interval Order Size: Order size = 𝑑̅(𝑂𝐼 + 𝐿𝑇) + 𝑧 ∗ 𝜎 √𝑂𝐼 + 𝐿𝑇 − OR ofdays in agree
𝜎 : variance of demand per time period 𝑆𝑡𝑜𝑐𝑘 𝑜𝑛 𝐻𝑎𝑛𝑑
𝜎 : variance of lead time ( )
Performance Measures z: depends on desired service level Find Stock out Risk (find z): Quality Control
√
Step 3: Same as Step 2 but the Job Time that you subtract from the due dates is the sum
of the Job Times from Step 1 and Step 2. 𝑅 : Average Range
Step 4: Repeat until you have a sequence. X= Average Mean
[Ixi x
((y: -3)
=
-
+
Muther Grid
y 1y, y)xc
=
-
+,(y2-y)x...
Facility Layout:
Euclidean: Euclidean cost:
Muther Grid: (heuristic appro)
(x, (y, y))).
+
A= absolutely necessary x)
y)"
-
i
I= important
O= ordinary important
U= unimportant
Critical Pairs: 1-4; 3-5; 6-2
X= undesirable (only if stated)
Sequence: 3-5-1-4-6-2
Appendix to
Facility Layout
->
Extra formulas
Appendix scheduling to
Cj completion
di due
date
linen
=
=
time
* 2
11
Y
mir
2
min.
Tardiness
Pi Processing Flowtie
=
Find:
Av. Flow the E G/n 5j2Cj
-
d;
Finish AFAP
Makespan create new variable [max? C=> Min
=> (E
Min Cmax
Au Tardiness => ceate new
non-neg
Variable Tj? j-d;
Min Tj/n
late 8 otherwise
Total late jobs binary (j for
1 =
=>
new
(4M+2j cj dj
= -
un
MinL;
X
late XEND
2 -
Deadline