***************************************************************** *** Chapter 8 *** Section: Batch Plant Design Under Uncertainty *** Test Problem 5 *** *** Mixed-Product Campaign with Unlimited Intermediate Storage *** (4 products, 6 stages, 1 scenario) ***************************************************************** SET i products /1*4/ j equipment /1*6/ q1 quadrature index /1*5/ q2 quadrature index /1*5/ q3 quadrature index /1*5/ q4 quadrature index /1*5/ p periods /1*1/; **************************************************************************** * c = penalty parameter * d, a(j), beta(j) = equipment cost parameters * omega(p) = weighting parameter for scenario p * pr(i) = price of product i * v#(q#), W#(q#) = Gaussian quadrature parameters * k(q1,q2) = joint probability for quadrature point * S(i,j,p) = size parameter * t(i,j,p) = processing time parameter * H = planning time horizon * theta(i,q1,q2) = demand for product i at quadrature point * mean#, sigma# = statistics for demand distribution PARAMETERS d, c, a(j), beta(j), omega(p), pr(i), v1(q1), v2(q2), v3(q3), v4(q4), W1(q1), W2(q2), W3(q3), W4(q4), k(q1,q2,q3,q4), S(i,j,p), theta(i,q1,q2,q3,q4), H, t(i,j,p), sigma1, sigma2, sigma3, sigma4, mean1, mean2, mean3, mean4, t1max, t1min, t2max, t2min, t3max, t3min, t4max, t4min, PI; PI = 3.1415927; mean1 = 150; mean2 = 150; mean3 = 180; mean4 = 160; sigma1 = 10; sigma2 = 8; sigma3 = 9; sigma4 = 10; t1max=mean1+4*sigma1; t1min=mean1-4*sigma1; t2max=mean2+4*sigma2; t2min=mean2-4*sigma2; t3max=mean3+4*sigma3; t3min=mean3-4*sigma3; t4max=mean4+4*sigma4; t4min=mean4-4*sigma4; v1('1')=-0.9061798459; W1('1') = 0.23692885; v1('2')=-0.5384693101; W1('2') = 0.4786286705; v1('3')=0; W1('3') = 0.56888889; v1('4')=0.5384693101; W1('4') = 0.4786286705; v1('5')=0.9061798459; W1('5') = 0.23692885; v2('1')=-0.9061798459; W2('1') = 0.23692885; v2('2')=-0.5384693101; W2('2') = 0.4786286705; v2('3')=0; W2('3') = 0.56888889; v2('4')=0.5384693101; W2('4') = 0.4786286705; v2('5')=0.9061798459; W2('5') = 0.23692885; v3('1')=-0.9061798459; W3('1') = 0.23692885; v3('2')=-0.5384693101; W3('2') = 0.4786286705; v3('3')=0; W3('3') = 0.56888889; v3('4')=0.5384693101; W3('4') = 0.4786286705; v3('5')=0.9061798459; W3('5') = 0.23692885; v4('1')=-0.9061798459; W4('1') = 0.23692885; v4('2')=-0.5384693101; W4('2') = 0.4786286705; v4('3')=0; W4('3') = 0.56888889; v4('4')=0.5384693101; W4('4') = 0.4786286705; v4('5')=0.9061798459; W4('5') = 0.23692885; theta('1',q1,q2,q3,q4) = 0.5*(t1max*(1+v1(q1))+t1min*(1-v1(q1))); theta('2',q1,q2,q3,q4) = 0.5*(t2max*(1+v2(q2))+t2min*(1-v2(q2))); theta('3',q1,q2,q3,q4) = 0.5*(t3max*(1+v3(q3))+t3min*(1-v3(q3))); theta('4',q1,q2,q3,q4) = 0.5*(t4max*(1+v4(q4))+t4min*(1-v4(q4))); k(q1,q2,q3,q4) = EXP(-0.5*( ((theta('1',q1,q2,q3,q4)-mean1) *(theta('1',q1,q2,q3,q4)-mean1)) /(sigma1*sigma1) +((theta('2',q1,q2,q3,q4)-mean2) *(theta('2',q1,q2,q3,q4)-mean2)) /(sigma2*sigma2) +((theta('3',q1,q2,q3,q4)-mean3) *(theta('3',q1,q2,q3,q4)-mean3)) /(sigma3*sigma3) +((theta('4',q1,q2,q3,q4)-mean4) *(theta('4',q1,q2,q3,q4)-mean4)) /(sigma4*sigma4) ) )/(2*PI*2*PI*sigma1*sigma2*sigma3*sigma4); d = 0.3; c = 0; a(j) = 10; beta(j) = 0.6; omega(p) = 1; H = 8; pr('1') = 3.5; pr('2') = 4; pr('3') = 3; pr('4') = 2; S('1','1','1') = 8; S('1','2','1') = 2; S('1','3','1') = 5.2; S('1','4','1') = 4.9; S('1','5','1') = 6.1; S('1','6','1') = 4.2; S('2','1','1') = 0.7; S('2','2','1') = 0.8; S('2','3','1') = 0.9; S('2','4','1') = 3.8; S('2','5','1') = 2.1; S('2','6','1') = 2.5; S('3','1','1') = 0.7; S('3','2','1') = 2.6; S('3','3','1') = 1.6; S('3','4','1') = 3.4; S('3','5','1') = 3.2; S('3','6','1') = 2.9; S('4','1','1') = 4.7; S('4','2','1') = 2.3; S('4','3','1') = 1.6; S('4','4','1') = 2.7; S('4','5','1') = 1.2; S('4','6','1') = 2.5; t('1','1','1') = LOG(7.0); t('1','2','1') = LOG(8.3); t('1','3','1') = LOG(6.0); t('1','4','1') = LOG(7.0); t('1','5','1') = LOG(6.5); t('1','6','1') = LOG(8.0); t('2','1','1') = LOG(6.8); t('2','2','1') = LOG(5.0); t('2','3','1') = LOG(6.0); t('2','4','1') = LOG(4.8); t('2','5','1') = LOG(5.5); t('2','6','1') = LOG(5.8); t('3','1','1') = LOG(4.0); t('3','2','1') = LOG(5.9); t('3','3','1') = LOG(5.0); t('3','4','1') = LOG(6.0); t('3','5','1') = LOG(5.5); t('3','6','1') = LOG(4.5); t('4','1','1') = LOG(2.4); t('4','2','1') = LOG(3.0); t('4','3','1') = LOG(3.5); t('4','4','1') = LOG(2.5); t('4','5','1') = LOG(3.0); t('4','6','1') = LOG(2.8); ********************************************************************* **** Variable bounds PARAMETERS vubd(j), vlbd(j), blbd(i), bubd(i), Qlbd(i,q1,q2,q3,q4,p), Qubd(i,q1,q2,q3,q4,p); Qlbd('1',q1,q2,q3,q4,p) = t1min; Qlbd('2',q1,q2,q3,q4,p) = t2min; Qlbd('3',q1,q2,q3,q4,p) = t3min; Qlbd('4',q1,q2,q3,q4,p) = t4min; Qubd(i,q1,q2,q3,q4,p) = theta(i,q1,q2,q3,q4); vlbd(j) = LOG(500); vubd(j) = LOG(4500); blbd('1') = LOG(500/8); blbd('2') = LOG(500/3.8); blbd('3') = LOG(500/3.4); blbd('4') = LOG(500/4.7); bubd('1') = LOG(4500/8); bubd('2') = LOG(4500/3.8); bubd('3') = LOG(4500/3.4); bubd('4') = LOG(4500/4.7); ****************************************************************** * z = objective value * v(j) = capacity of equipment j (volume) * b(i) = batch size of produce i * Q(i,q1,q2,q3,q4,p) = production of i at quadrature point (q1,q2) * for scenario p VARIABLES z, v(j), Q(i,q1,q2,q3,q4,p), b(i); ****************************************************************** * obj = objective function * con1 = equipment size constraint * con2 = planning horizon constraint EQUATIONS obj Convex objective function con1(i,j,p) Convex Inequality con2(j,q1,q2,q3,q4,p) Nonconvex Inequality; *-------------------------------------------------------------------- obj.. z =e= d*SUM(j,a(j)*EXP(beta(j)*v(j))) -SUM(p, SUM(q1, SUM(q2, SUM(q3, SUM(q4, SUM(i, (c+1)*((t1max-t1min)/2)*((t2max-t2min)/2) *((t3max-t3min)/2)*((t4max-t4min)/2) *omega(p)*W1(q1)*W2(q2)*W3(q3)*W4(q4) *k(q1,q2,q3,q4)*pr(i)*Q(i,q1,q2,q3,q4,p) -c*((t1max-t1min)/2)*((t2max-t2min)/2) *((t3max-t3min)/2)*((t4max-t4min)/2) *omega(p)*W1(q1)*W2(q2)*W3(q3)*W4(q4) *k(q1,q2,q3,q4)*pr(i)*theta(i,q1,q2,q3,q4) ) ) ) ) ) ); con1(i,j,p).. v(j) - b(i) =g= LOG(S(i,j,p)); con2(j,q1,q2,q3,q4,p).. SUM(i, Q(i,q1,q2,q3,q4,p)*EXP(t(i,j,p)-b(i))) =l= H; *------------------------------------------------------- MODEL uis / all /; *------------------------------------------------------