Monday, October 23, 2017
Solving Sandgren's Pressure Vessel Design Problem
Jsun Yui Wong
The computer program listed below seeks to solve Example 3 in Lu [11, pp. 20-21]:
Minimize .6224 * X(1) * X(3) * X(4) + 1.7781 * X(2) * X(3) ^ 2+ 3.1661 * X(1) ^ 2 * X(4) + 19.84 * X(1) ^ 2 * X(3)
subject to
- X(1) + .0193 * X(3)<=0
-X(2) + .00954 * X(3)<=0,
1296000 - 3.141592654 * X(3) ^ 2 * X(4) - (4 / 3) * 3.141592654 * X(3) ^ 3<=0
-240 + X(4)<=0,
.0625<=X(1) <= 6.1875,
.0625<= X(2) <= 6.1875 ,
10<=X(3) <= 200,
10<=X(4) <= 200,
where X(1) and X(2) are discrete variables with discreteness of .0625, and X(3) and X(4) are integer variables.
One notes line 67 and line 68 below. X(5) through X(8) below are slack variables, which are added.
0 DEFDBL A-Z
2 DEFINT K
3 DIM B(99), N(99), A(99), H(99), L(99), U(99), X(1111), D(111), P(111), PS(33)
12 FOR JJJJ = -32000 TO 32000 STEP .01
14 RANDOMIZE JJJJ
16 M = -1D+37
22 REM
67 A(1) = .0625 + INT(RND * 98) * .0625
68 A(2) = .0625 + INT(RND * 98) * .0625
77 A(3) = 10 + FIX(RND * 191)
78 A(4) = 10 + FIX(RND * 191)
79 REM
128 FOR I = 1 TO 10000
129 FOR KKQQ = 1 TO 4
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 REM J = 1 + FIX(RND * 2)
183 REM r = (1 - RND * 2) * A(J)
187 REM X(J) = A(J) + (RND ^ (RND * 10)) * r
189 REM IF RND < .333 THEN X(1) = .009 + INT(RND * 250) * .002 ELSE IF RND < .5 THEN X(2) = .6 + INT(RND * 170) * .02 ELSE X(3) = 1 + FIX(RND * 120)
190 IF RND < .5 THEN 192
191 X(1) = .0625 + INT(RND * 98) * .0625
192 IF RND < .5 THEN 194
193 X(2) = .0625 + INT(RND * 98) * .0625
194 IF RND < .5 THEN 196
195 X(3) = 10 + FIX(RND * 191)
196 IF RND < .5 THEN 200
198 X(4) = 10 + FIX(RND * 191)
200 NEXT IPP
201 IF X(1) < .0625 THEN 1670
203 IF X(1) > 6.1875 THEN 1670
255 REM
258 IF X(2) < .0625 THEN 1670
266 IF X(2) > 6.1875 THEN 1670
277 IF X(3) < 10 THEN 1670
288 IF X(3) > 200 THEN 1670
289 IF X(4) < 10 THEN 1670
291 IF X(4) > 200 THEN 1670
304 REM X(4) = 10 - X(1) - X(2) - X(3)
306 X(5) = X(1) - .0193 * X(3)
307 X(6) = X(2) - .00954 * X(3)
317 X(7) = -1296000 + 3.141592654 * X(3) ^ 2 * X(4) + (4 / 3) * 3.141592654 * X(3) ^ 3
320 X(8) = 240 - X(4)
321 REM X(9) = -8 * (11.5D+06) ^ -1 * 300 * X(1) ^ -4 * X(2) ^ 3 * X(3) + 6
323 REM X(10) = -1.25 + 8 * (11.5D+06) ^ -1 * 700 * X(1) ^ -4 * X(2) ^ 3 * X(3)
325 FOR J99 = 5 TO 8
330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
331 NEXT J99
359 POBA = -.6224 * X(1) * X(3) * X(4) - 1.7781 * X(2) * X(3) ^ 2 - 3.1661 * X(1) ^ 2 * X(4) - 19.84 * X(1) ^ 2 * X(3) + 1000000 * (X(5) + X(6) + X(7) + X(8))
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 8
1459 A(KLX) = X(KLX)
1460 NEXT KLX
1557 REM GOTO 128
1670 NEXT I
1889 IF M < -6075 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4), A(5)
1903 PRINT A(6), A(7), A(8)
1907 PRINT M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [24]. The complete output through JJJJ = -31997.69000000037 is shown below:
.8125 .4375 42 178 0
0 0 0
-6074.99836015625 -31999.83000000003
.8125 .4375 42 178 0
0 0 0
-6074.99836015625 -31997.69000000037
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen. One can compare the results above with the results given in Lu [11, Table 5, p. 21; Table 6, p. 21].
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [24], the wall-clock time for obtaining the output through JJJJ= -31997.69000000037 was 18 seconds, including the seconds for creating the .EXE file.
Acknowledgment
I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.
References
[1] Yuichiro Anzai (1974). On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3] Ching-Ter Chang (2006). Formulating the mixed integer fractional posynomial programming, European Journal of Operational Research 173 (2006) pp. 370-386.
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9] Han-Lin Li, Jung-Fa Tsai (2008). A distributed computational algorithm for solving portfolio problems with integer variables. European Journal of Operational Research 186 (2008) pp. 882-891.
[10] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.9
[11] Hao-Chun Lu (2013). A logarithnic method for eliminating binary variables and cpnstraints for the product of free-sign discrete functions. Discrete Optimization (2013), Volume 10, Issue 1, pp. 11-24.
[12] Hao-Chun Lu (2017). Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms. Journal of Global Optimization (2017) 68, pp. 95-123.
[13] Mathworks. Solving a mixed integer engineering design problem using the genetic algorithm – MATLAB & Simulink Example.
https://www.mathworks.com/help/gads/examples/solving-a-mixed-integer-engineering-design-problem-using-the-genetic-algorithm.html/
[14] Microsoft Corp., BASIC, Second Edition (May 1982), Version 1.10. Boca Raton, Florida: IBM Corp., Personal Computer, P. O. Box 1328-C, Boca Raton, Florida 33432, 1981.
[15] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[16] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[17] H. S. Ryoo, N. V. Sahinidis (1995). Global optimization of nonconvex NLP and MINLP with applications in process design. Computers and Chemical Engineering Vol. 19 (5) (1995) pp. 551-566.
[18] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[19] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[20] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[21] Jung-Fa Tsai, Ming-Hua Lin (2007). Finding all solutions of systems of nonlinear equations with free variables. Engineering Optimization (2007) 39:6, pp. 649-659
[22] Jung-Fa Tsai, Ming-Hua Lin, Yi-Chung Hu (2007). On generalized geometric programming problems with non-positive variables. European Journal of Operational Research 178 (2007) pp. 10-19.
[23] Jung-Fa Tsai, Ming-Hua Lin (2008). Global optimization of signomial mixed-integer nonlinear programming with free variables. Journal of Global Optimization (2008) 42 pp. 39-49.
[24] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[25] Jsun Yui Wong (2012, April 12). The Domino Method of General Integer Nonlinear Programming Applied to a Nonlinear Fractional Programming Problem from the Literature. http://myblogsubstance.typepad.com/substance/2012/04/12/
[26] Xin-She Yang, Christian Huyck, Mehmet Karamanoglu, Nawaz Khan (2014). True global optimality of the pressure vessel design problem: A benchmark for bio-inspired optimisation algorithms.
https://arxiv.org/pdf/1403.7793.pdf.
[27] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[28] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization. Computers and Structures 82 (2004) 241-256.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment