MODEL:
! Economic order quantity with quantity discounts;
! This model determines the optimal order quantity
for a product that has quantity discounts;
SETS:
! Each order size range has;
RANGE/1..4/:
B, ! An upper breakpoint;
P, ! A price/unit over this range;
H, ! A holding cost/unit over this range;
EOQ, ! An EOQ using this ranges H and K;
Q, ! An optimal order qty within this range;
AC; ! Average cost/year using this range's Q;
ENDSETS
DATA:
D = 40000; ! The yearly demand;
K = 90; ! The fixed cost of an order;
IRATE = .2; ! Yearly interest rate;
!The upper break points, B, and price per unit, P:
Range: 1 2 3 4;
B = 10000, 20000, 40000, 60000;
P = .35225, .34525, .34175, .33825;
ENDDATA
! The model;
! Calculate holding cost, H, and EOQ for each
range;
@FOR( RANGE:
H = IRATE * P;
EOQ = ( 2 * K * D/ H) ^.5;
);
! For the first range, the optimal order quantity
is equal to the EOQ ...;
Q( 1) = EOQ( 1)
! but, if the EOQ is over the first breakpoint,
lower it;
- ( EOQ( 1) - B( 1) + 1) *
( EOQ( 1) #GE# B( 1));
@FOR( RANGE( J)| J #GT# 1:
! Similarly, for the rest of the ranges, Q = EOQ;
Q( J) = EOQ( J) +
! but, if EOQ is below the lower breakpoint,
raise it up;
( B( J-1) - EOQ( J)) *
( EOQ( J) #LT# B( J - 1))
! or if EOQ is above the upper breakpoint,
lower it down;
- ( EOQ( J) - B( J) + 1) *
( EOQ( J) #GE# B( J));
);
! Calculate average cost per year, AC,
for each stage;
@FOR( RANGE: AC = P * D + H * Q/ 2 + K * D/ Q);
! Find the lowest average cost, ACMIN.;
ACMIN = @MIN( RANGE: AC);
! Select the Q that gives the lowest AC per year;
! Note: TRUE = 1, FALSE = 0;
QUSE = @SUM( RANGE: Q * ( AC #EQ# ACMIN));
END
|