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

Table A2. Operational and inventory costs.

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.

Table A3. Yields, capacities and productivities.

Y_fIjk Forest yield (m3/ha) in stand i, of growth jand 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.

Table A4. Allowable quantities to penalize lumber production, capacity usage, and economic penalties.

%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.

Table A5. Decision variables.

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.

Table A6. Objective functions.
NotationDescription
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
ijkrTijkrCjkSTU+ijkrTijkrCiH+ijklrUijklrTilT1+ijkrIijkrSCBCiSCB=Logging costs: harvesting costs, stumpage costs, primary transportation cost, and stems inventory costs
knlrWknlrClSY+knlorXknlorCloT2+jklrIjklrSYSClSYS+knlrIknlrSYLClSYLSort yarding costs: sort yard processing cost, transportation cost, and stems and logs costs
kqorZkqorCoSW+kqo_oorZIkqo_oorCo_oorT3+kqorZOkqorCoSWAT           +knorIknorSALCoSAL+kqorIkqorSAPCoSAP           +kqorBYkqorCknoSETUPSawmilling costs, including processing cost at internal and outsourced sawmill, lumber production swat, and logs and lumber inventory costs
kqorDB_1kqorPBkqorL_PkqorCost to penalize below lumber demand satisfaction
irDO_LOr[PO_LOr]CiH+irDB_LOr[PB_LOr]CiHLogging penalization costs
lrDO_SYlr[PO_SYlr]ClrSY+lrDB_SYlr[PB_SYr]ClrSYSort yarding penalization costs
orDO_SWor[PO_SWor]CorSW+orDB_SWor[PB_SWor]CorSWSawmilling penalization costs
kqorZkqorL_Pkqor+krCkrC_Pkr+kqorDO_1kqorPOkqorL_PkqorLumber and chips incomes: includes lumber incomes, chips incomes, and over demand production incomes
knlrDB1knlrPB_2knlrl_pknlrCost to penalize below log demand satisfaction
kqorDB1kqorPBkqorL_PkqorCost to penalize below lumber demand satisfaction
knlrWknlrlpknlrCosts of buying logs

Table A7. Constraints of the models.



Constraint 1 ensures that all period cut-block harvests do not exceed the cut-block area. Constraint 2 computes the cut-block volume harvested, and constraint 3 limits the time expended in logging. As I constrained the rate of capacity usage between periods, constraint 4 computes the time used for logging per period and constraint 5 adds slack variables to track logging time deviations between periods. The same principle was applied for sort-yards and sawmills (constraints 5–11). Several flow balance constraints were applied on the: logging side, sort-yard side, and internal and outsourced sawmills side (12, 13, 18, and 19). Constraint 14 determined log productions at the sort-yards. Constraint 15 limits the time expended in sort-yarding. Constraint 16 calculated the time used at sort-yards per period, and constraint 17 works in the same fashion as constraint 5. Constraints 20-21 determined the lumber production at internal and outsourced sawmills. A setup cost was applied when sawmills changed log species and grades; thus, a binary variable, which is 1 if log species and grades are changed, and zero otherwise (constraint 22).

The chips produced are determined by constraint 23. Constraint 24 limits the time expended in sawmilling. Constraint 25 limits the time expended in outsourcing sawmilling to 20% of the available period's sawmilling capacity, and constraint 27 ensures that internal sawmill production will not be exceeded by outsourced sawmill production. As I constrained the deviations of capacity usage between periods, constraint 26 computes the time used on sawmilling per period. Constraint 28 limited the sawmilling time deviations between periods by adding slack variables. A market constraint 29 ensured that lumber demand would be satisfied with all sources of lumber production. Balance constraint 30 determined the volume of lumber to be considered for order fulfillment parameter calculations. Constraints 31–32 determined the volume of lumber that arrived in interchanges from other sawmills to sawmill "o" and determined the lumber that is sent to other sawmills from sawmill "o". Constraint 33 ensured that the amount of lumber produced over demand will not exceed a given [%] of the lumber demand. Constraint 34 ensured that the amount of lumber produced below the demand will not exceed a given [%] of the lumber demand. Constraints 35–38 ensured that the final inventories are positive.

Furthermore, several parameters calculated were not included in the formulations, but brief explanations follow. Process flow time is the ratio between the inventory and the process throughput. Over/under production is the difference between lumber production and demand. Order fulfillment is the ratio between lumber production and demand. Procurement cost is the ratio between the summation of all costs prior to the sawmill log yard and the logs produced by sort-yards. Manufacturing cost is the ratio between the summation of all costs after logs are fed to the sawmills and the lumber produced.
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.