Modeling Lean and Agile Approaches: A Western Canadian Forest Company Case Study
Read this article. Both lean and agile principles were tested to determine if they improved performance in the coastal forest industry. While both agile and lean methodologies have obvious differences, in your analysis what are some similarities?
Appendix A
The mathematical formulations aim to solve the lumber planning problem emulating our MEs, keeping in mind that the BC Coastal forest SC has 3 nodes: forest cut-block, sort-yards, and sawmills. First, the objective functions were stated: for lean (1L), for agile (1A), and for BC-SC, the problem was divided in timber procurement (1T), and lumber production (1W). Second, a set of common constraints for all problems were stated, with the full formulation as follows:
Table A1. Model's sub-index.
I | Cut-block |
J | Growth |
K | Species |
L | Sort-yard |
M | Bucking policy |
N | Log grade |
O | Sawmill |
P | Sawing policy |
Q | Sawn-woods products |
R | Periods |
C Hi, C Stu kj | Harvesting cost ($/m3) at stand i, and stumpage cost ($/m3) for species k, growth j. |
C SCBi, Ci SYSl | Cost of keeping 1 m3 of stem at cut-block i, and cost of keeping 1 m3 of stem at sort-yard l. |
Ci Sly, Ci SALo | Cost of keeping 1 m3 of logs at sort-yard l, and sawmill o. |
Ci SAPo | Cost of keeping 1 m3 of sawn wood products at sawmill o. |
C T1 il, C T2 lo | Transportation cost ($/m3) from stand i to sort yard l, and from sort yard l to sawmill o. |
CT3 o oo | Transportation cost in $/m3 of lumber from sawmill o to sawmill oo. |
C SYl, C SWo | Sort-yard production cost ($/m3) in sort-yard l, and sawmilling cost ($/m3) in sawmill o. |
C Setup kno | Sawmill setup cost in $, charged when a sawmill changes species and log grade. |
C SWOUTo | Outsourced sawmilling cost in $/m3, for sawmill o. |
L_Pkqor, C_Pkr | Lumber and chips price ($/m3) of species k, product q, sold by sawmill o, in period r. |
l_p knlr | Log price ($/m3) of species k, grade n, sort-yard l, in period r. |
Y_fIjk | Forest yield (m3/ha) in stand i, of growth j, and species k. |
Y_syjkmn | Bucking yield (%) of product n by stem growth j, species k, by applying bucking policy m. |
Y_swknpq | Sawing yield (%) of product q by log grade n, species k, by applying sawing policy p. |
Y_chk | Chipping yield (%) of sawing sub-products species k. |
C_fr,C_syr, C_swr | Harvesting, sort-yarding and sawmilling capacity (hours) on period r. |
P_fj | Logging productivity (hour/m3) in a stand predominantly of growth j. |
P_syjkl | Bucking-sorting productivity (hour/m3) for stems of growth j, species k, at sort-yard l. |
P_swjkl | Sawing productivity (in hour/m3) when sawing species k, log grade n, at sawmill o. |
io_sysjkl | Zero inventory of stems of growth j, species k at sort-yard l |
io_syl knl | Zero inventory of logs of species k, log grade n, at sort-yard l. |
io_salkno | Zero inventory of logs of species k, log grade n, at sawmill o. |
io_sapkqo | Zero inventory of sawn-wood of species k, product q, at sawmill o. |
Dkqor | Lumber demand (m3) of species k, product q, in sawmill o, for period r. |
Log_Dknlr | Logs demand (m3) of species k, log grade n, in sort-yard l, for period r. |
%O_1kqor, %B_1kqor | Max. % for over/below production defined in function of the demand of lumber product species k, product q, produced/sold by sawmill o, period r. |
%O_LOr, %B_LOr | Max. over/below hours usage for logging in period r, defined as percentage of the hours available in period r. |
%O_SYlr, %B_SYlr | Max. over/below hours usage for sort-yarding in sort-yard l, period r, defined as percentage of the hours available in period r. |
%O_SWor, %B_SWor | Max. over/below hours usage for sawmilling in sawmill o, period r, defined as percentage of the hours available in period r. |
PO_1kqor, PB_1kqor | Pct. of the lumber price of lumber product species k, product q, produced-sold by sawmill o, period r, to penalize 1 m3 produced over/below the lumber demand. |
PB_2knlr | Pct. of the log price species k, log grade n, produced-sold by sort-yard l, period r, to penalize 1 m3 produced below the log demand. |
PO_LOr, PB_LOr | Pct. of the logging cost charged for every over/below hour usage in logging in period r. |
PO_SYl r, PB_SYlr | Pct. of the sort-yarding cost charged for every over/below hour usage in sort-yard l period r. |
PO_SWor, PB_SWor | Pct. of the sawing cost charged for every over/below hour usage in sawing in sawmill o, period r. |
Hir | Land harvested (ha.) at stand i, in period r. |
Tijk r | Harvested volume (m3) at stand i, growth type j, species k in period r. |
ISCBIjkr | Inventory of stems (m3) at cub-block i, of growth j, species k, in period r. |
Uijklr | Vol. of stems (m3) of growth j, species k sent from stand i to sort-yard l, in period r. |
Vjklmr | Sort-yard l input of stems (m3) of growth j, species k, bucked with policy m, period r. |
ISYSjklr | Inventory of stems (m3) of growth j, species k, at sort-yard l, in period r. |
Wknlr | Vol. of logs (m3) of species k, grade n, produced in sort-yard l in period r. |
Yknopr | Vol. of logs (m3) of species k, grade n, sawn with sawing policy p, at sawmill o, in period r. |
YOknopr | Vol. of logs (m3) of species k, grade n, sawn with sawing policy p, at the outsourcing sawmill of sawmill o, in period r. |
ISALknor, ISYLknlr | Inventory of logs (m3) of species k, grade n at sawmill o and at the sort yard l, in period r. |
Xknlor | Vol. of logs (m3) of species k, grade n, sent from sort-yard l to sawmill o, in period r. |
Zkqor | Vol. of lumber (m3) of species k, product q, produced-sold by sawmill o, in period r. |
ZOkqor | Vol. of lumber (m3) of species k, product q, produced-sold by outsourced sawmill of sawmill o, in r. |
ZI O_OOkqor | Vol. of lumber (m3) of species k, product q, arrived in interchanges to sawmill o, in period r. |
ZI OO_Okqor | Vol. of lumber (m3) of species k, product q, sent in interchanges to sawmill o, in period r. |
DO_1kqor, DB_1kqor | Vol. (m3) of over, below demand lumber production of species k, product q, produced-sold by sawmill o, in period r. |
DB1knlr | Vol. (m3) of below demand log production of species k, log grade n, produced-sold by sort yard l, in period r. |
DO_LOr, DB_LOr | Quantity of over/below cap. Usage (hours) in logging operation in period r. |
DO_SYlr, DB_SYlr | Quantity of over/below cap. Usage (hours) in sort-yarding operation at sort-yard l in period r. |
DO_SWor, DB_SWor | Quantity of over/below cap. Usage (hours) in sawmilling operation at sawmill o in period r. |
BAkqor | Lumber balance (m3) for species k, product q, produced-sold by sawmill o, in period r. |
Ckr | Produced chips (m3) of species k in period r. |
ISAPkqor | Inventory of sawn-wood products (m3) of species k, sawn-wood products q, in period r. |
LOTr, SYTlr,SWTor | Logging time, Sort yard l processing time, and Sawmill o processing time in hours for period r. |
BYknor | Binary variable, 1 if sawmill o consumes logs species k, grade n, in period r, 0 otherwise. |
Notation | Description |
Minimization of costs (1l) | =Logging costs + sort yarding costs + sawmilling costs + cost to penalize below demand satisfaction + logging penalization cost + sort yarding penalization cost + sawmilling penalizations costs |
Maximization of profit (1a) | =Lumber and chips incomes-logging costs − sort yarding costs − sawmilling costs − cost to penalize below demand satisfaction − logging penalization cost − sort yarding penalization cost − sawmilling penalizations costs |
Minimization of timber procurement costs (1T) | =Logging costs + sort yarding costs + cost to penalize below log demand satisfaction + logging penalization cost + sortyarding penalization cost |
Maximization of lumber profits (1W) | =Lumber and chips incomes − cost of buying logs − sawmilling costs − cost to penalize below lumber demand satisfaction − sawmilling penalizations costs |
=Logging costs: harvesting costs, stumpage costs, primary transportation cost, and stems inventory costs | |
Sort yarding costs: sort yard processing cost, transportation cost, and stems and logs costs | |
Sawmilling costs, including processing cost at internal and outsourced sawmill, lumber production swat, and logs and lumber inventory costs | |
Cost to penalize below lumber demand satisfaction | |
Logging penalization costs | |
Sort yarding penalization costs | |
Sawmilling penalization costs | |
Lumber and chips incomes: includes lumber incomes, chips incomes, and over demand production incomes | |
Cost to penalize below log demand satisfaction | |
Cost to penalize below lumber demand satisfaction | |
Costs of buying logs |
(1) | |
(2) | |
(3) | |
(4) | |
(5) | |
(6) | |
(7) | |
(8) | |
(9) | |
(10) | |
(11) | |
(12) | |
(13) | |
(14) | |
(15) | |
(16) | |
(17) | |
(18) | |
(19) | |
(20) | |
(21) | |
(22) | |
(23) | |
(24) | |
(25) | |
(26) | |
(27) | |
(28) | |
(29) | |
(30) | |
(31) | |
(32) | |
(33) | |
(34) | |
(35) |
The agile objective function (1A) maximizes profit and the lean objective function (1L) minimizes costs. Both objective functions operate on the same feasible region (convex hull defined by Equations (2–35)). Therefore, 1A will always dominate 1L. However, this dominance is minimized by the use of penalty coefficients for over/under production and order fulfillment. The penalty values are important components of the models and strongly influence how they behave. They were discussed further when the results were presented.