Jsun Yui Wong
The computer program listed below seeks to solve the corrugated bulkhead design problem on page 23 of Gandomi, Yang, and Alavi [5, p. 23]; its Equation (33) is not used--see Gandomi, Yang, and Alavi [6].
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
75 FOR J44 = 1 TO 4
76 A(J44) = 1 + RND * 20
79 NEXT J44
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 * 3))
181 J = 1 + FIX(RND * 4)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
191 NEXT IPP
199 IF X(3) < X(2) THEN 1670
200 X(5) = X(4) * X(2) * (.4 * X(1) + X(3) / 6) - 8.94 * (X(1) + ((X(3) ^ 2 - X(2) ^ 2) ^ .5))
202 REM X(6) = X(1) * X(2) - 180 - 7.375 * (X(1) ^ 2 / X(3))
203 X(6) = X(4) * X(2) ^ 2 * (.2 * X(1) + X(3) / 12) - 2.2 * (8.94 * (X(1) + ((X(3) ^ 2 - X(2) ^ 2) ^ .5)) ^ (4 / 3))
204 REM
205 X(7) = X(4) - .0156 * X(1) - .15
206 X(8) = X(4) - .0156 * X(3) - .15
208 X(9) = X(3) - X(2)
210 REM
221 IF X(1) < 0 THEN 1670
222 IF X(1) > 100 THEN 1670
223 IF X(2) < 0 THEN 1670
224 IF X(2) > 100 THEN 1670
225 IF X(3) < 0 THEN 1670
226 IF X(3) > 100 THEN 1670
228 IF X(4) < 0 THEN 1670
229 IF X(4) > 5 THEN 1670
268 FOR J99 = 5 TO 9
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
328 POBA = -(5.885 * X(4) * (X(1) + X(3))) / (X(1) + (X(3) ^ 2 - X(2) ^ 2) ^ .5) + 1000000 * X(5) + 1000000 * X(6) + 1000000 * X(7) + 1000000 * X(8) + 1000000 * X(9)
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 9
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -5.74 THEN 1999
1900 PRINT A(1), A(2), A(3)
1903 PRINT A(4), A(5), A(6)
1907 PRINT A(7), A(8), A(9)
1909 PRINT M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [19]. The complete output through JJJJ= -31999.13000000014 is shown below:
38.82681770033805 32.3641784744763 38.76431051342591
.7556983561252736 0 0
0 0 0
-5.735584584067152 -31999.4600000001
38.74108239461563 32.38600135389557 38.73441946649184
.7543608853560047 0 0
0 0 0
-5.733418010318105 -31999.13000000014
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [19], the wall-clock time for obtaining the output through JJJJ= -31999.13000000014 was 80 seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[5] 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.
[6] 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.
[7] 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.
[8] 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] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[10] 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/
[11] 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.
[12] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[13] 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.
[14] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[15] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[16] 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
[17] 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.
[18] 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.
[19] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[20] 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/
[21] 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.
Tuesday, August 29, 2017
Monday, August 28, 2017
Solving a Case of the Thanedar and Vanderplaats' Stepped Cantilever Beam Problem Involving Discrete Variables, Integer Variables, and Continuous Variables Using the Method of This Blog
Jsun Yui Wong
The computer program listed below seeks to solve the following problem:
Minimize (X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
subject to
600 * 50000 / (X(5) * X(10) ^ 2)<=14000
1200 * 50000 / (X(4) * X(9) ^ 2)<=14000
1800 * 50000 / (X(3) * X(8) ^ 2)<=14000
2400 * 50000 / (X(2) * X(7) ^ 2)<=14000
3000 * 50000 / (X(1) * X(6) ^ 2)<=14000
(50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))<=2.7
X(10) / X(5)<=20
X(9) / X(4)<=20
X(8) / X(3)<=20
X(7) / X(2)<=20
X(6) / X(1)<=20
X(1): {1, 2, 3, 4, 5}
X(2), X(3) : {2.4, 2.6, 2.8, 3.1}
X(6), X(7): {45.0, 50.0, 55.0, 60.0}
X(8): {30, 31, 32, ..., 65}
1<=X(4), X(5) <=5 and 30<=X(9), X(10)<=65.
The above description of the present case is based mainly on pp. 2332-2333 of Gandomi, Yang, and Alavi [4, p. 2332-2333]. Also see Thanedar and Vanderplaats [13] and Mathorks [9].
The X(11) through X(21) below are slacks variables.
It is important to note line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.
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 FOR J44 = 1 TO 4
68 A(1) = 1 + RND * 4
69 REM A(2) = 2.4 + RND * .7
70 IF RND < .25 THEN A(2) = 2.4 ELSE IF RND < .333 THEN A(2) = 2.6 ELSE IF RND < .5 THEN A(2) = 2.8 ELSE A(2) = 3.1
72 REM A(3) = 2.4 + RND * .7
73 IF RND < .25 THEN A(3) = 2.4 ELSE IF RND < .333 THEN A(3) = 2.6 ELSE IF RND < .5 THEN A(3) = 2.8 ELSE A(3) = 3.1
74 A(4) = 1 + RND * 4
76 A(5) = 1 + RND * 4
78 REM A(6) = 30 + RND * 35
80 IF RND < .25 THEN A(6) = 45 ELSE IF RND < .333 THEN A(6) = 50 ELSE IF RND < .5 THEN A(6) = 55 ELSE A(6) = 60
82 REM A(7) = 45 + RND * 15
83 IF RND < .25 THEN A(7) = 45 ELSE IF RND < .333 THEN A(7) = 50 ELSE IF RND < .5 THEN A(7) = 55 ELSE A(7) = 60
88 A(8) = 30 + RND * 35
89 REM IF RND < .25 THEN A(8) = 45 ELSE IF RND < .333 THEN A(8) = 50 ELSE IF RND < .5 THEN A(8) = 55 ELSE A(8) = 60
90 A(9) = 30 + RND * 35
92 A(10) = 30 + RND * 35
128 FOR I = 1 TO 15000
129 FOR KKQQ = 1 TO 10
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 10)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
191 NEXT IPP
192 REM FOR J100 = 1 TO 10
193 X(1) = INT(X(1))
194 X(6) = A(6)
195 REM NEXT J100
196 X(8) = INT(X(8))
197 X(2) = A(2)
198 X(3) = A(3)
199 X(7) = A(7)
200 REM X(8) = A(8)
201 X(11) = 14000 - 600 * 50000 / (X(5) * X(10) ^ 2)
202 X(12) = 14000 - 1200 * 50000 / (X(4) * X(9) ^ 2)
203 X(13) = 14000 - 1800 * 50000 / (X(3) * X(8) ^ 2)
204 X(14) = 14000 - 2400 * 50000 / (X(2) * X(7) ^ 2)
205 X(15) = 14000 - 3000 * 50000 / (X(1) * X(6) ^ 2)
206 X(16) = 2.7 - (50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))
207 X(17) = 20 - X(10) / X(5)
208 X(18) = 20 - X(9) / X(4)
209 X(19) = 20 - X(8) / X(3)
210 X(20) = 20 - X(7) / X(2)
211 X(21) = 20 - X(6) / X(1)
220 REM FOR J44 = 1 TO 5
221 IF X(1) < 1 THEN 1670
222 IF X(1) > 5 THEN 1670
223 IF X(2) < 2.4 THEN 1670
224 IF X(2) > 3.1 THEN 1670
225 IF X(3) < 2.4 THEN 1670
226 IF X(3) > 3.1 THEN 1670
227 IF X(4) < 1 THEN 1670
228 REM IF X(4) > 5 THEN 1670
229 IF X(5) < 1 THEN 1670
230 REM IF X(5) > 5 THEN 1670
231 IF X(6) < 30 THEN 1670
232 IF X(6) > 65 THEN 1670
233 IF X(7) < 45 THEN 1670
234 IF X(7) > 60 THEN 1670
235 IF X(8) < 30 THEN 1670
236 IF X(8) > 65 THEN 1670
237 IF X(9) < 30 THEN 1670
238 REM IF X(9) > 65 THEN 1670
239 REM IF X(10) < 30 THEN 1670
240 IF X(10) > 65 THEN 1670
246 REM FOR J44 = 6 TO 10
247 REM IF X(J44) < 30 THEN 1670
248 REM IF X(J44) > 65 THEN 1670
249 REM NEXT J44
268 FOR J99 = 11 TO 21
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBAprel1 = -(X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
319 POBAprel2 = 1000000 * X(11) + 1000000 * X(12) + 1000000 * X(13) + 1000000 * X(14) + 1000000 * X(15) + 1000000 * X(16) + 1000000 * X(17) + 1000000 * X(18) + 1000000 * X(19) + 1000000 * X(20) + 1000000 * X(21)
328 POBA = POBAprel1 + POBAprel2
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 21
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -63893.53 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4), A(5)
1901 PRINT A(6), A(7), A(8), A(9), A(10)
1902 PRINT A(11), A(12)
1903 PRINT A(13), A(14), A(15), A(16)
1904 PRINT A(17), A(18), A(19), A(20)
1909 PRINT A(21), M, JJJJ
1999 NEXT
This BASIC computer program was run with qb64v1000-win [18]. The complete output through JJJJ= -31858.12000002271 is shown below:
3 3.1 2.6 2.204593247131208
1.749764999625684
60 55 50 44.0907382797416
34.99506036215701
0 0
0 0 0 0
0 0 0 0
0 -63893.52756540382 -31939.51000000968
3 3.1 2.6 2.204576549544703
1.749777057681866
60 55 50 44.09090525228848
34.99493978304383
0 0
0 0 0 0
0 0 0 0
0 -63893.5118534721 -31918.2200000131
3 3.1 2.6 2.204557620380426
1.74975876971807
60 55 50 44.0910945424638
34.9951226608727
0 0
0 0 0 0
0 0 0 0
0 -63893.4381237899 -31858.12000002271
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
One can compare the solution above at JJJJ=31858.12000002271 with the solutions given in Table 15 of Gandomi, Yang, and Alavi [4, p. 2334].
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [18], the wall-clock time for obtaining the output through JJJJ= -31858.12000002271 was 2 hours and 5 minutes.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[5] 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.
[6] 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.
[7] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[8] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[9] 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/
[10] 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.
[11] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[12] 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.
[13] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[14] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[15] 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
[16] 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.
[17] 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.
[18] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[19] 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/
[20] 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.
The computer program listed below seeks to solve the following problem:
Minimize (X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
subject to
600 * 50000 / (X(5) * X(10) ^ 2)<=14000
1200 * 50000 / (X(4) * X(9) ^ 2)<=14000
1800 * 50000 / (X(3) * X(8) ^ 2)<=14000
2400 * 50000 / (X(2) * X(7) ^ 2)<=14000
3000 * 50000 / (X(1) * X(6) ^ 2)<=14000
(50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))<=2.7
X(10) / X(5)<=20
X(9) / X(4)<=20
X(8) / X(3)<=20
X(7) / X(2)<=20
X(6) / X(1)<=20
X(1): {1, 2, 3, 4, 5}
X(2), X(3) : {2.4, 2.6, 2.8, 3.1}
X(6), X(7): {45.0, 50.0, 55.0, 60.0}
X(8): {30, 31, 32, ..., 65}
1<=X(4), X(5) <=5 and 30<=X(9), X(10)<=65.
The above description of the present case is based mainly on pp. 2332-2333 of Gandomi, Yang, and Alavi [4, p. 2332-2333]. Also see Thanedar and Vanderplaats [13] and Mathorks [9].
The X(11) through X(21) below are slacks variables.
It is important to note line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.
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 FOR J44 = 1 TO 4
68 A(1) = 1 + RND * 4
69 REM A(2) = 2.4 + RND * .7
70 IF RND < .25 THEN A(2) = 2.4 ELSE IF RND < .333 THEN A(2) = 2.6 ELSE IF RND < .5 THEN A(2) = 2.8 ELSE A(2) = 3.1
72 REM A(3) = 2.4 + RND * .7
73 IF RND < .25 THEN A(3) = 2.4 ELSE IF RND < .333 THEN A(3) = 2.6 ELSE IF RND < .5 THEN A(3) = 2.8 ELSE A(3) = 3.1
74 A(4) = 1 + RND * 4
76 A(5) = 1 + RND * 4
78 REM A(6) = 30 + RND * 35
80 IF RND < .25 THEN A(6) = 45 ELSE IF RND < .333 THEN A(6) = 50 ELSE IF RND < .5 THEN A(6) = 55 ELSE A(6) = 60
82 REM A(7) = 45 + RND * 15
83 IF RND < .25 THEN A(7) = 45 ELSE IF RND < .333 THEN A(7) = 50 ELSE IF RND < .5 THEN A(7) = 55 ELSE A(7) = 60
88 A(8) = 30 + RND * 35
89 REM IF RND < .25 THEN A(8) = 45 ELSE IF RND < .333 THEN A(8) = 50 ELSE IF RND < .5 THEN A(8) = 55 ELSE A(8) = 60
90 A(9) = 30 + RND * 35
92 A(10) = 30 + RND * 35
128 FOR I = 1 TO 15000
129 FOR KKQQ = 1 TO 10
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 10)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
191 NEXT IPP
192 REM FOR J100 = 1 TO 10
193 X(1) = INT(X(1))
194 X(6) = A(6)
195 REM NEXT J100
196 X(8) = INT(X(8))
197 X(2) = A(2)
198 X(3) = A(3)
199 X(7) = A(7)
200 REM X(8) = A(8)
201 X(11) = 14000 - 600 * 50000 / (X(5) * X(10) ^ 2)
202 X(12) = 14000 - 1200 * 50000 / (X(4) * X(9) ^ 2)
203 X(13) = 14000 - 1800 * 50000 / (X(3) * X(8) ^ 2)
204 X(14) = 14000 - 2400 * 50000 / (X(2) * X(7) ^ 2)
205 X(15) = 14000 - 3000 * 50000 / (X(1) * X(6) ^ 2)
206 X(16) = 2.7 - (50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))
207 X(17) = 20 - X(10) / X(5)
208 X(18) = 20 - X(9) / X(4)
209 X(19) = 20 - X(8) / X(3)
210 X(20) = 20 - X(7) / X(2)
211 X(21) = 20 - X(6) / X(1)
220 REM FOR J44 = 1 TO 5
221 IF X(1) < 1 THEN 1670
222 IF X(1) > 5 THEN 1670
223 IF X(2) < 2.4 THEN 1670
224 IF X(2) > 3.1 THEN 1670
225 IF X(3) < 2.4 THEN 1670
226 IF X(3) > 3.1 THEN 1670
227 IF X(4) < 1 THEN 1670
228 REM IF X(4) > 5 THEN 1670
229 IF X(5) < 1 THEN 1670
230 REM IF X(5) > 5 THEN 1670
231 IF X(6) < 30 THEN 1670
232 IF X(6) > 65 THEN 1670
233 IF X(7) < 45 THEN 1670
234 IF X(7) > 60 THEN 1670
235 IF X(8) < 30 THEN 1670
236 IF X(8) > 65 THEN 1670
237 IF X(9) < 30 THEN 1670
238 REM IF X(9) > 65 THEN 1670
239 REM IF X(10) < 30 THEN 1670
240 IF X(10) > 65 THEN 1670
246 REM FOR J44 = 6 TO 10
247 REM IF X(J44) < 30 THEN 1670
248 REM IF X(J44) > 65 THEN 1670
249 REM NEXT J44
268 FOR J99 = 11 TO 21
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBAprel1 = -(X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
319 POBAprel2 = 1000000 * X(11) + 1000000 * X(12) + 1000000 * X(13) + 1000000 * X(14) + 1000000 * X(15) + 1000000 * X(16) + 1000000 * X(17) + 1000000 * X(18) + 1000000 * X(19) + 1000000 * X(20) + 1000000 * X(21)
328 POBA = POBAprel1 + POBAprel2
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 21
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -63893.53 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4), A(5)
1901 PRINT A(6), A(7), A(8), A(9), A(10)
1902 PRINT A(11), A(12)
1903 PRINT A(13), A(14), A(15), A(16)
1904 PRINT A(17), A(18), A(19), A(20)
1909 PRINT A(21), M, JJJJ
1999 NEXT
This BASIC computer program was run with qb64v1000-win [18]. The complete output through JJJJ= -31858.12000002271 is shown below:
3 3.1 2.6 2.204593247131208
1.749764999625684
60 55 50 44.0907382797416
34.99506036215701
0 0
0 0 0 0
0 0 0 0
0 -63893.52756540382 -31939.51000000968
3 3.1 2.6 2.204576549544703
1.749777057681866
60 55 50 44.09090525228848
34.99493978304383
0 0
0 0 0 0
0 0 0 0
0 -63893.5118534721 -31918.2200000131
3 3.1 2.6 2.204557620380426
1.74975876971807
60 55 50 44.0910945424638
34.9951226608727
0 0
0 0 0 0
0 0 0 0
0 -63893.4381237899 -31858.12000002271
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
One can compare the solution above at JJJJ=31858.12000002271 with the solutions given in Table 15 of Gandomi, Yang, and Alavi [4, p. 2334].
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [18], the wall-clock time for obtaining the output through JJJJ= -31858.12000002271 was 2 hours and 5 minutes.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[5] 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.
[6] 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.
[7] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[8] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[9] 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/
[10] 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.
[11] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[12] 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.
[13] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[14] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[15] 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
[16] 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.
[17] 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.
[18] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[19] 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/
[20] 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.
Saturday, August 26, 2017
Applying the Method of This Blog To Solve Thanedar and Vanderplaats' Stepped Cantilever Beam Problem Where All Design Variables Are Integers
Jsun Yui Wong
The computer program listed below seeks to solve the following problem in Thanedar and Vanderplaats [12], Mathworks [8]. Also see Nigdeli, Bekdas, and Yang [10, pp. 38-40].
Minimize (X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
subject to
600 * 50000 / (X(5) * X(10) ^ 2)<=14000
1200 * 50000 / (X(4) * X(9) ^ 2)<=14000
1800 * 50000 / (X(3) * X(8) ^ 2)<=14000
2400 * 50000 / (X(2) * X(7) ^ 2)<=14000
3000 * 50000 / (X(1) * X(6) ^ 2)<=14000
(50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))<=2.7
X(10) / X(5)<=20
X(9) / X(4)<=20
X(8) / X(3)<=20
X(7) / X(2)<=20
X(6) / X(1)<=20
1<= X(i) <=5, i=1, 2, 3, 4, 5
30<= X(j) <=65, j=6, 7, 8, 9, 10,
and these ten design variables are integers.
The X(11) through X(21) below are slacks variables.
It is important to note line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.
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 32111 STEP .01
14 RANDOMIZE JJJJ
16 M = -1D+37
22 REM FOR J44 = 1 TO 4
68 A(1) = 2 + RND * 2
69 A(2) = 2 + RND * 2
70 REM IF RND < .25 THEN A(2) = 2.4 ELSE IF RND < .333 THEN A(2) = 2.6 ELSE IF RND < .5 THEN A(2) = 2.8 ELSE A(2) = 3.1
72 A(3) = 2 + RND * 2
73 IF RND < .25 THEN A(3) = 2.4 ELSE IF RND < .333 THEN A(3) = 2.6 ELSE IF RND < .5 THEN A(3) = 2.8 ELSE A(3) = 3.1
74 A(4) = 2 + RND * 2
76 A(5) = 2 + RND * 2
78 A(6) = 40 + RND * 15
82 A(7) = 40 + RND * 15
83 IF RND < .25 THEN A(7) = 45 ELSE IF RND < .333 THEN A(7) = 50 ELSE IF RND < .5 THEN A(7) = 55 ELSE A(7) = 60
88 A(8) = 40 + RND * 15
89 REM IF RND < .25 THEN A(8) = 45 ELSE IF RND < .333 THEN A(8) = 50 ELSE IF RND < .5 THEN A(8) = 55 ELSE A(8) = 60
90 A(9) = 40 + RND * 15
92 A(10) = 40 + RND * 15
128 FOR I = 1 TO 10000
129 FOR KKQQ = 1 TO 10
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 10)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
191 NEXT IPP
192 FOR J100 = 1 TO 10
193 X(J100) = INT(X(J100))
195 NEXT J100
201 X(11) = 14000 - 600 * 50000 / (X(5) * X(10) ^ 2)
202 X(12) = 14000 - 1200 * 50000 / (X(4) * X(9) ^ 2)
203 X(13) = 14000 - 1800 * 50000 / (X(3) * X(8) ^ 2)
204 X(14) = 14000 - 2400 * 50000 / (X(2) * X(7) ^ 2)
205 X(15) = 14000 - 3000 * 50000 / (X(1) * X(6) ^ 2)
206 X(16) = 2.7 - (50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))
207 X(17) = 20 - X(10) / X(5)
208 X(18) = 20 - X(9) / X(4)
209 X(19) = 20 - X(8) / X(3)
210 X(20) = 20 - X(7) / X(2)
211 X(21) = 20 - X(6) / X(1)
221 FOR J44 = 1 TO 5
231 IF X(J44) < 1 THEN 1670
233 IF X(J44) > 5 THEN 1670
244 NEXT J44
246 FOR J44 = 6 TO 10
247 IF X(J44) < 30 THEN 1670
248 IF X(J44) > 65 THEN 1670
249 NEXT J44
268 FOR J99 = 11 TO 21
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBAprel1 = -(X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
319 POBAprel2 = 1000000 * X(11) + 1000000 * X(12) + 1000000 * X(13) + 1000000 * X(14) + 1000000 * X(15) + 1000000 * X(16) + 1000000 * X(17) + 1000000 * X(18) + 1000000 * X(19) + 1000000 * X(20) + 1000000 * X(21)
328 POBA = POBAprel1 + POBAprel2
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 21
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -66301 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4), A(5)
1901 PRINT A(6), A(7), A(8), A(9), A(10)
1902 PRINT A(11), A(12)
1903 PRINT A(13), A(14), A(15), A(16)
1904 PRINT A(17), A(18), A(19), A(20)
1909 PRINT A(21), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [17]. The complete output through JJJJ= -31999.94000000001 is shown below:
3 3 3 3 2
60 54 47 38 33
0 0
0 0 0 0
0 0 0 0
0 -66300 -32000
3 3 3 3 2
60 54 47 38 33
0 0
0 0 0 0
0 0 0 0
0 -66300 -31999.99
3 3 3 3 2
60 54 47 38 33
0 0
0 0 0 0
0 0 0 0
0 -66300 -31999.95000000001
3 3 3 3 2
60 54 47 38 33
0 0
0 0 0 0
0 0 0 0
0 -66300 -31999.94000000001
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [17], the wall-clock time for obtaining the output through JJJJ= -31999.94000000001 was ten seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] 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.
[5] 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.
[6] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[7] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[8] 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/
[9] 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.
[10] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[11] 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.
[12] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[13] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[14] 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
[15] 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.
[16] 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.
[17] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[18] 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/
[19] 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.
The computer program listed below seeks to solve the following problem in Thanedar and Vanderplaats [12], Mathworks [8]. Also see Nigdeli, Bekdas, and Yang [10, pp. 38-40].
Minimize (X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
subject to
600 * 50000 / (X(5) * X(10) ^ 2)<=14000
1200 * 50000 / (X(4) * X(9) ^ 2)<=14000
1800 * 50000 / (X(3) * X(8) ^ 2)<=14000
2400 * 50000 / (X(2) * X(7) ^ 2)<=14000
3000 * 50000 / (X(1) * X(6) ^ 2)<=14000
(50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))<=2.7
X(10) / X(5)<=20
X(9) / X(4)<=20
X(8) / X(3)<=20
X(7) / X(2)<=20
X(6) / X(1)<=20
1<= X(i) <=5, i=1, 2, 3, 4, 5
30<= X(j) <=65, j=6, 7, 8, 9, 10,
and these ten design variables are integers.
The X(11) through X(21) below are slacks variables.
It is important to note line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.
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 32111 STEP .01
14 RANDOMIZE JJJJ
16 M = -1D+37
22 REM FOR J44 = 1 TO 4
68 A(1) = 2 + RND * 2
69 A(2) = 2 + RND * 2
70 REM IF RND < .25 THEN A(2) = 2.4 ELSE IF RND < .333 THEN A(2) = 2.6 ELSE IF RND < .5 THEN A(2) = 2.8 ELSE A(2) = 3.1
72 A(3) = 2 + RND * 2
73 IF RND < .25 THEN A(3) = 2.4 ELSE IF RND < .333 THEN A(3) = 2.6 ELSE IF RND < .5 THEN A(3) = 2.8 ELSE A(3) = 3.1
74 A(4) = 2 + RND * 2
76 A(5) = 2 + RND * 2
78 A(6) = 40 + RND * 15
82 A(7) = 40 + RND * 15
83 IF RND < .25 THEN A(7) = 45 ELSE IF RND < .333 THEN A(7) = 50 ELSE IF RND < .5 THEN A(7) = 55 ELSE A(7) = 60
88 A(8) = 40 + RND * 15
89 REM IF RND < .25 THEN A(8) = 45 ELSE IF RND < .333 THEN A(8) = 50 ELSE IF RND < .5 THEN A(8) = 55 ELSE A(8) = 60
90 A(9) = 40 + RND * 15
92 A(10) = 40 + RND * 15
128 FOR I = 1 TO 10000
129 FOR KKQQ = 1 TO 10
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 10)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
191 NEXT IPP
192 FOR J100 = 1 TO 10
193 X(J100) = INT(X(J100))
195 NEXT J100
201 X(11) = 14000 - 600 * 50000 / (X(5) * X(10) ^ 2)
202 X(12) = 14000 - 1200 * 50000 / (X(4) * X(9) ^ 2)
203 X(13) = 14000 - 1800 * 50000 / (X(3) * X(8) ^ 2)
204 X(14) = 14000 - 2400 * 50000 / (X(2) * X(7) ^ 2)
205 X(15) = 14000 - 3000 * 50000 / (X(1) * X(6) ^ 2)
206 X(16) = 2.7 - (50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))
207 X(17) = 20 - X(10) / X(5)
208 X(18) = 20 - X(9) / X(4)
209 X(19) = 20 - X(8) / X(3)
210 X(20) = 20 - X(7) / X(2)
211 X(21) = 20 - X(6) / X(1)
221 FOR J44 = 1 TO 5
231 IF X(J44) < 1 THEN 1670
233 IF X(J44) > 5 THEN 1670
244 NEXT J44
246 FOR J44 = 6 TO 10
247 IF X(J44) < 30 THEN 1670
248 IF X(J44) > 65 THEN 1670
249 NEXT J44
268 FOR J99 = 11 TO 21
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBAprel1 = -(X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
319 POBAprel2 = 1000000 * X(11) + 1000000 * X(12) + 1000000 * X(13) + 1000000 * X(14) + 1000000 * X(15) + 1000000 * X(16) + 1000000 * X(17) + 1000000 * X(18) + 1000000 * X(19) + 1000000 * X(20) + 1000000 * X(21)
328 POBA = POBAprel1 + POBAprel2
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 21
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -66301 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4), A(5)
1901 PRINT A(6), A(7), A(8), A(9), A(10)
1902 PRINT A(11), A(12)
1903 PRINT A(13), A(14), A(15), A(16)
1904 PRINT A(17), A(18), A(19), A(20)
1909 PRINT A(21), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [17]. The complete output through JJJJ= -31999.94000000001 is shown below:
3 3 3 3 2
60 54 47 38 33
0 0
0 0 0 0
0 0 0 0
0 -66300 -32000
3 3 3 3 2
60 54 47 38 33
0 0
0 0 0 0
0 0 0 0
0 -66300 -31999.99
3 3 3 3 2
60 54 47 38 33
0 0
0 0 0 0
0 0 0 0
0 -66300 -31999.95000000001
3 3 3 3 2
60 54 47 38 33
0 0
0 0 0 0
0 0 0 0
0 -66300 -31999.94000000001
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [17], the wall-clock time for obtaining the output through JJJJ= -31999.94000000001 was ten seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] 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.
[5] 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.
[6] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[7] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[8] 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/
[9] 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.
[10] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[11] 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.
[12] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[13] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[14] 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
[15] 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.
[16] 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.
[17] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[18] 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/
[19] 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.
Friday, August 25, 2017
Solving Thanedar and Vanderplaats' Cantilever Beam of Five Steps with the Method of This Blog
Jsun Yui Wong
The computer program listed below seeks to solve the following problem in Thanedar and Vanderplaats [12], Mathworks [8], and Nigdeli, Bekdas, and Yang [10, pp. 34-36].
Minimize (X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
subject to
600 * 50000 / (X(5) * X(10) ^ 2)<=14000
1200 * 50000 / (X(4) * X(9) ^ 2)<=14000
1800 * 50000 / (X(3) * X(8) ^ 2)<=14000
2400 * 50000 / (X(2) * X(7) ^ 2)<=14000
3000 * 50000 / (X(1) * X(6) ^ 2)<=14000
(50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))<=2.7
X(10) / X(5)<=20
X(9) / X(4)<=20
X(8) / X(3)<=20
X(7) / X(2)<=20
X(6) / X(1)<=20
1<= X(i) <=5, i=1, 2, 3, 4, 5.
30<= X(j) <=65, j=6, 7, 8, 9, 10.
The X(11) through X(21) below are slacks variables.
It is important to note line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.
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 FOR J44 = 1 TO 4
68 A(1) = 2 + RND * 2
70 A(2) = 2 + RND * 2
72 A(3) = 2 + RND * 2
74 A(4) = 2 + RND * 2
76 A(5) = 2 + RND * 2
78 A(6) = 40 + RND * 15
82 A(7) = 40 + RND * 15
88 A(8) = 40 + RND * 15
90 A(9) = 40 + RND * 15
92 A(10) = 40 + RND * 15
128 FOR I = 1 TO 50000
129 FOR KKQQ = 1 TO 10
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 10)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
191 NEXT IPP
201 X(11) = 14000 - 600 * 50000 / (X(5) * X(10) ^ 2)
202 X(12) = 14000 - 1200 * 50000 / (X(4) * X(9) ^ 2)
203 X(13) = 14000 - 1800 * 50000 / (X(3) * X(8) ^ 2)
204 X(14) = 14000 - 2400 * 50000 / (X(2) * X(7) ^ 2)
205 X(15) = 14000 - 3000 * 50000 / (X(1) * X(6) ^ 2)
206 X(16) = 2.7 - (50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))
207 X(17) = 20 - X(10) / X(5)
208 X(18) = 20 - X(9) / X(4)
209 X(19) = 20 - X(8) / X(3)
210 X(20) = 20 - X(7) / X(2)
211 X(21) = 20 - X(6) / X(1)
221 FOR J44 = 1 TO 5
231 IF X(J44) < 1 THEN 1670
233 IF X(J44) > 5 THEN 1670
244 NEXT J44
246 FOR J44 = 6 TO 10
247 IF X(J44) < 30 THEN 1670
248 IF X(J44) > 65 THEN 1670
249 NEXT J44
268 FOR J99 = 11 TO 21
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBAprel1 = -(X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
319 POBAprel2 = 1000000 * X(11) + 1000000 * X(12) + 1000000 * X(13) + 1000000 * X(14) + 1000000 * X(15) + 1000000 * X(16) + 1000000 * X(17) + 1000000 * X(18) + 1000000 * X(19) + 1000000 * X(20) + 1000000 * X(21)
328 POBA = POBAprel1 + POBAprel2
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 21
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -61914.85 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), A(7), A(8)
1902 PRINT A(9), A(10), A(11), A(12)
1903 PRINT A(13), A(14), A(15), A(16)
1904 PRINT A(17), A(18), A(19), A(20)
1909 PRINT A(21), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [17]. The complete output through JJJJ= -31999.55000000007 is shown below:
2.992043018707838 2.7775729190822 2.523590842355113
2.204564851351432
1.749757371755625 59.840841901209 55.55125445247642
50.4716805348091
44..09102223302651 34.99513664058446 0
0
0 0 0 0
0 0 0 0
0 -61914.84202158146 -31999.97000000001
2.992042705033575 2.777578223956335 2.523586391280642
2.204566061683266
1.749757151583712 59.84084503795081 55.55120140400578
50.47172504549244
44..0910101297886 34.9951388423031 0
0
0 0 0 0
0 0 0 0
0 -61914.84686799372 -31999.73000000004
2.992045845104811 2.77756815102281 2.523589481268903
2.204556907724794
1.74976482689434 59.84081363726791 55.55130213295667
50.47169414563992
44..0911016690125 34.99506208945851 0
0
0 0 0 0
0 0 0 0
0 -61914.82933239185 -31999.55000000007
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
The solution above at JJJJ=-31999.55000000007 can be compared to the three solutions presented in Table 10 of Nigdeli, Bekdas, and Yang [10, p. 40]. .
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [17], the wall-clock time for obtaining the output through JJJJ= -31999.55000000007 was ten minutes.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] 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.
[5] 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.
[6] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[7] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[8] 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/
[9] 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.
[10] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[11] 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.
[12] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[13] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[14] 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
[15] 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.
[16] 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.
[17] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[18] 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/
[19] 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.
The computer program listed below seeks to solve the following problem in Thanedar and Vanderplaats [12], Mathworks [8], and Nigdeli, Bekdas, and Yang [10, pp. 34-36].
Minimize (X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
subject to
600 * 50000 / (X(5) * X(10) ^ 2)<=14000
1200 * 50000 / (X(4) * X(9) ^ 2)<=14000
1800 * 50000 / (X(3) * X(8) ^ 2)<=14000
2400 * 50000 / (X(2) * X(7) ^ 2)<=14000
3000 * 50000 / (X(1) * X(6) ^ 2)<=14000
(50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))<=2.7
X(10) / X(5)<=20
X(9) / X(4)<=20
X(8) / X(3)<=20
X(7) / X(2)<=20
X(6) / X(1)<=20
1<= X(i) <=5, i=1, 2, 3, 4, 5.
30<= X(j) <=65, j=6, 7, 8, 9, 10.
The X(11) through X(21) below are slacks variables.
It is important to note line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.
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 FOR J44 = 1 TO 4
68 A(1) = 2 + RND * 2
70 A(2) = 2 + RND * 2
72 A(3) = 2 + RND * 2
74 A(4) = 2 + RND * 2
76 A(5) = 2 + RND * 2
78 A(6) = 40 + RND * 15
82 A(7) = 40 + RND * 15
88 A(8) = 40 + RND * 15
90 A(9) = 40 + RND * 15
92 A(10) = 40 + RND * 15
128 FOR I = 1 TO 50000
129 FOR KKQQ = 1 TO 10
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 10)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
191 NEXT IPP
201 X(11) = 14000 - 600 * 50000 / (X(5) * X(10) ^ 2)
202 X(12) = 14000 - 1200 * 50000 / (X(4) * X(9) ^ 2)
203 X(13) = 14000 - 1800 * 50000 / (X(3) * X(8) ^ 2)
204 X(14) = 14000 - 2400 * 50000 / (X(2) * X(7) ^ 2)
205 X(15) = 14000 - 3000 * 50000 / (X(1) * X(6) ^ 2)
206 X(16) = 2.7 - (50000 * 1000000 / 6E+07) * (((12 * (1) / (X(5) * X(10) ^ 3)) + (12 * (7) / (X(4) * X(9) ^ 3)) + 12 * (19) / (X(3) * X(8) ^ 3)) + (12 * (37) / (X(2) * X(7) ^ 3)) + (12 * (61) / (X(1) * X(6) ^ 3)))
207 X(17) = 20 - X(10) / X(5)
208 X(18) = 20 - X(9) / X(4)
209 X(19) = 20 - X(8) / X(3)
210 X(20) = 20 - X(7) / X(2)
211 X(21) = 20 - X(6) / X(1)
221 FOR J44 = 1 TO 5
231 IF X(J44) < 1 THEN 1670
233 IF X(J44) > 5 THEN 1670
244 NEXT J44
246 FOR J44 = 6 TO 10
247 IF X(J44) < 30 THEN 1670
248 IF X(J44) > 65 THEN 1670
249 NEXT J44
268 FOR J99 = 11 TO 21
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBAprel1 = -(X(1) * X(6) * 100 + X(2) * X(7) * 100 + X(3) * X(8) * 100 + X(4) * X(9) * 100 + X(5) * X(10) * 100)
319 POBAprel2 = 1000000 * X(11) + 1000000 * X(12) + 1000000 * X(13) + 1000000 * X(14) + 1000000 * X(15) + 1000000 * X(16) + 1000000 * X(17) + 1000000 * X(18) + 1000000 * X(19) + 1000000 * X(20) + 1000000 * X(21)
328 POBA = POBAprel1 + POBAprel2
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 21
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -61914.85 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), A(7), A(8)
1902 PRINT A(9), A(10), A(11), A(12)
1903 PRINT A(13), A(14), A(15), A(16)
1904 PRINT A(17), A(18), A(19), A(20)
1909 PRINT A(21), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [17]. The complete output through JJJJ= -31999.55000000007 is shown below:
2.992043018707838 2.7775729190822 2.523590842355113
2.204564851351432
1.749757371755625 59.840841901209 55.55125445247642
50.4716805348091
44..09102223302651 34.99513664058446 0
0
0 0 0 0
0 0 0 0
0 -61914.84202158146 -31999.97000000001
2.992042705033575 2.777578223956335 2.523586391280642
2.204566061683266
1.749757151583712 59.84084503795081 55.55120140400578
50.47172504549244
44..0910101297886 34.9951388423031 0
0
0 0 0 0
0 0 0 0
0 -61914.84686799372 -31999.73000000004
2.992045845104811 2.77756815102281 2.523589481268903
2.204556907724794
1.74976482689434 59.84081363726791 55.55130213295667
50.47169414563992
44..0911016690125 34.99506208945851 0
0
0 0 0 0
0 0 0 0
0 -61914.82933239185 -31999.55000000007
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
The solution above at JJJJ=-31999.55000000007 can be compared to the three solutions presented in Table 10 of Nigdeli, Bekdas, and Yang [10, p. 40]. .
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [17], the wall-clock time for obtaining the output through JJJJ= -31999.55000000007 was ten minutes.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] 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.
[5] 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.
[6] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[7] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[8] 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/
[9] 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.
[10] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[11] 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.
[12] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[13] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[14] 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
[15] 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.
[16] 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.
[17] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[18] 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/
[19] 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.
Wednesday, August 23, 2017
Vertical Deflection Minimization Problem of an I-Beam with the Method of This Blog
Jsun Yui Wong
The computer program listed below seeks to solve the following problem in Nigdeli, Bekdas, and Yang [9, pp. 33-34].
Minimize (5000) / (((X(4) * (X(2) - 2 * X(3)) ^ 3 / 12) + (X(1) * X(3) ^ 3 / 6) + (2 * X(1) * X(3) * ((X(2) - X(3)) / 2) ^ 2)))
subject to
2 * X(1) * X(4) + X(4) * (X(2) - 2 * X(3))<=300
(180000 * X(2)) / (((X(4) * (X(2) - 2 * X(3)) ^ 3) + 2 * X(1) * X(4) * (4 * X(3) ^ 2 + 3 * X(2) * (X(2) - 2 * X(3)))) + (15000 * X(1)) / ((X(4) ^ 3 * (X(2) - 2 * X(3))) + (2 * X(4) * X(1) ^ 3)))<=6
10<=X(1) <= 50
10<=X(2) <= 80
.9<=X(3) <= 5
.9<=X(4) <= 5.
The X(5) and X(6) below are slack variables.
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 FOR J44 = 1 TO 4
68 A(1) = 20 + RND * 20
70 A(2) = 30 + RND * 30
72 A(3) = 1.9 + RND * 2.1
74 A(4) = 1.9 + RND * 2.1
71 REM NEXT J44
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 * 3))
181 J = 1 + FIX(RND * 4)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
249 X(5) = 300 - 2 * X(1) * X(4) - X(4) * (X(2) - 2 * X(3))
251 X(6) = 6 - (180000 * X(2)) / (((X(4) * (X(2) - 2 * X(3)) ^ 3) + 2 * X(1) * X(4) * (4 * X(3) ^ 2 + 3 * X(2) * (X(2) - 2 * X(3)))) - (15000 * X(1)) / ((X(4) ^ 3 * (X(2) - 2 * X(3))) + (2 * X(4) * X(1) ^ 3)))
253 IF X(1) < 10 THEN GOTO 1670
255 IF X(2) < 10 THEN GOTO 1670
257 IF X(3) < .9 THEN GOTO 1670
259 IF X(4) < .9 THEN GOTO 1670
261 IF X(1) > 50 THEN GOTO 1670
263 IF X(2) > 80 THEN GOTO 1670
265 IF X(3) > 5 THEN GOTO 1670
267 IF X(4) > 5 THEN GOTO 1670
268 FOR J99 = 5 TO 6
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBA = -(5000) / (((X(4) * (X(2) - 2 * X(3)) ^ 3 / 12) + (X(1) * X(3) ^ 3 / 6) + (2 * X(1) * X(3) * ((X(2) - X(3)) / 2) ^ 2))) + 1000000 * X(6) + 1000000 * X(5)
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 6
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 REM IF M < -1.339964 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [15]. The complete output through JJJJ=-31999.98 is shown below:
49.99999989957234 79.99999999999893 4.999999999999993
1.764705884437955
0 0 -6.625958177414923D-03 -32000
49.9999884666348 79.99999999890551 4.999999999999994
1.764706121811363
0 0 -6.625959531848595D-03 -31999.99
50 79.99999998885822 5 1.7647058824686
0 0 -6.625958167535851D-03 -31999.98
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
The solution above at JJJJ=-31999.98 can be compared to the four solutions presented in Table 5 of Nigdeli, Bekdas, and Yang [9, p. 34]. .
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [15], the wall-clock time for obtaining the output through JJJJ= -31999.98 was 8 seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] 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.
[5] 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.
[6] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[7] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[8] 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.
[9] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algorithm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[10] 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.
[11] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[12] 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
[13] 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.
[14] 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.
[15] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[16] 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/
[17] 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.
The computer program listed below seeks to solve the following problem in Nigdeli, Bekdas, and Yang [9, pp. 33-34].
Minimize (5000) / (((X(4) * (X(2) - 2 * X(3)) ^ 3 / 12) + (X(1) * X(3) ^ 3 / 6) + (2 * X(1) * X(3) * ((X(2) - X(3)) / 2) ^ 2)))
subject to
2 * X(1) * X(4) + X(4) * (X(2) - 2 * X(3))<=300
(180000 * X(2)) / (((X(4) * (X(2) - 2 * X(3)) ^ 3) + 2 * X(1) * X(4) * (4 * X(3) ^ 2 + 3 * X(2) * (X(2) - 2 * X(3)))) + (15000 * X(1)) / ((X(4) ^ 3 * (X(2) - 2 * X(3))) + (2 * X(4) * X(1) ^ 3)))<=6
10<=X(1) <= 50
10<=X(2) <= 80
.9<=X(3) <= 5
.9<=X(4) <= 5.
The X(5) and X(6) below are slack variables.
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 FOR J44 = 1 TO 4
68 A(1) = 20 + RND * 20
70 A(2) = 30 + RND * 30
72 A(3) = 1.9 + RND * 2.1
74 A(4) = 1.9 + RND * 2.1
71 REM NEXT J44
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 * 3))
181 J = 1 + FIX(RND * 4)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
249 X(5) = 300 - 2 * X(1) * X(4) - X(4) * (X(2) - 2 * X(3))
251 X(6) = 6 - (180000 * X(2)) / (((X(4) * (X(2) - 2 * X(3)) ^ 3) + 2 * X(1) * X(4) * (4 * X(3) ^ 2 + 3 * X(2) * (X(2) - 2 * X(3)))) - (15000 * X(1)) / ((X(4) ^ 3 * (X(2) - 2 * X(3))) + (2 * X(4) * X(1) ^ 3)))
253 IF X(1) < 10 THEN GOTO 1670
255 IF X(2) < 10 THEN GOTO 1670
257 IF X(3) < .9 THEN GOTO 1670
259 IF X(4) < .9 THEN GOTO 1670
261 IF X(1) > 50 THEN GOTO 1670
263 IF X(2) > 80 THEN GOTO 1670
265 IF X(3) > 5 THEN GOTO 1670
267 IF X(4) > 5 THEN GOTO 1670
268 FOR J99 = 5 TO 6
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBA = -(5000) / (((X(4) * (X(2) - 2 * X(3)) ^ 3 / 12) + (X(1) * X(3) ^ 3 / 6) + (2 * X(1) * X(3) * ((X(2) - X(3)) / 2) ^ 2))) + 1000000 * X(6) + 1000000 * X(5)
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 6
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 REM IF M < -1.339964 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [15]. The complete output through JJJJ=-31999.98 is shown below:
49.99999989957234 79.99999999999893 4.999999999999993
1.764705884437955
0 0 -6.625958177414923D-03 -32000
49.9999884666348 79.99999999890551 4.999999999999994
1.764706121811363
0 0 -6.625959531848595D-03 -31999.99
50 79.99999998885822 5 1.7647058824686
0 0 -6.625958167535851D-03 -31999.98
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
The solution above at JJJJ=-31999.98 can be compared to the four solutions presented in Table 5 of Nigdeli, Bekdas, and Yang [9, p. 34]. .
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [15], the wall-clock time for obtaining the output through JJJJ= -31999.98 was 8 seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] 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.
[5] 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.
[6] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[7] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[8] 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.
[9] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algorithm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[10] 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.
[11] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[12] 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
[13] 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.
[14] 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.
[15] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[16] 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/
[17] 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.
Tuesday, August 22, 2017
Solving a Gear Train Design Problem with the Method of This Blog
Jsun Yui Wong
The computer program listed below seeks to solve the following problem in Gandomi, Alavi, and Yang [4, pp. 25-27].
Minimize ABS((1 / 6.931) - ((X(3) * X(2)) / (X(1) * X(4))))
where the four unknowns are integers in the range 12-60.
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
71 FOR J40 = 1 TO 4
74 A(J40) = 12 + RND * 49
77 NEXT J40
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 * 3))
181 J = 1 + FIX(RND * 4)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
223 FOR J41 = 1 TO 4
225 X(J41) = INT(X(J41))
235 NEXT J41
256 FOR J47 = 1 TO 4
257 IF X(J47) < 12 THEN 1670
258 IF X(J47) > 60 THEN 1670
259 NEXT J47
333 POBA = -ABS((1 / 6.931) - ((X(3) * X(2)) / (X(1) * X(4))))
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 4
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -.000002 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1902 PRINT M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [15]. The complete output through JJJJ= -31999.67000000005 is shown below:
49 16 19 43
-1.643428473917233D-06 -31999.76000000004
43 19 16 49
-1.643428473917233D-06 -31999.67000000005
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
The solution above is comparable to the four solutions presented in Table 15 of Gandomi, Alavi, and Yang [4, p. 27].
One notes that here the gear ratio=(16*19)/(49*43)=.144280968.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [15], the wall-clock time for obtaining the output through JJJJ= -31999.67000000005 was 10 seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (20130 29:17-35.
[5] 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.
[6] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[7] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[8] 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.
[9] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[10] 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.
[11] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[12] 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
[13] 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.
[14] 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.
[15] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[16] 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/
[17] 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.
The computer program listed below seeks to solve the following problem in Gandomi, Alavi, and Yang [4, pp. 25-27].
Minimize ABS((1 / 6.931) - ((X(3) * X(2)) / (X(1) * X(4))))
where the four unknowns are integers in the range 12-60.
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
71 FOR J40 = 1 TO 4
74 A(J40) = 12 + RND * 49
77 NEXT J40
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 * 3))
181 J = 1 + FIX(RND * 4)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
223 FOR J41 = 1 TO 4
225 X(J41) = INT(X(J41))
235 NEXT J41
256 FOR J47 = 1 TO 4
257 IF X(J47) < 12 THEN 1670
258 IF X(J47) > 60 THEN 1670
259 NEXT J47
333 POBA = -ABS((1 / 6.931) - ((X(3) * X(2)) / (X(1) * X(4))))
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 4
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -.000002 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1902 PRINT M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [15]. The complete output through JJJJ= -31999.67000000005 is shown below:
49 16 19 43
-1.643428473917233D-06 -31999.76000000004
43 19 16 49
-1.643428473917233D-06 -31999.67000000005
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
The solution above is comparable to the four solutions presented in Table 15 of Gandomi, Alavi, and Yang [4, p. 27].
One notes that here the gear ratio=(16*19)/(49*43)=.144280968.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [15], the wall-clock time for obtaining the output through JJJJ= -31999.67000000005 was 10 seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.
[4] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (20130 29:17-35.
[5] 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.
[6] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[7] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[8] 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.
[9] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. www.springer.com/cda/content/document/cda.../
[10] 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.
[11] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[12] 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
[13] 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.
[14] 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.
[15] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[16] 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/
[17] 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.
Saturday, August 19, 2017
Solving a Mixed-Discrete Structural Optimization Problem with the Method of This Blog
Jsun Yui Wong
The computer program listed below seeks to solve the following problem in Lin and Tsai [5, pp. 873-875]:
Minimize 0.25 * PIE ^ 2 * X(2) * X(1) ^ 2 * X(3) + .5 * PIE ^ 2 * X(2) * X(1) ^ 2
subject to
4 * X(2) ^ 2 + 1.46 * X(1) * X(2) - 2.46 * X(1) ^ 2 - .5 * ((PIE * S) / (FMAX)) * (X(1) ^ 3 * X(2)) + .5 * ((PIE * S) / (FMAX)) * X(1) ^ 4<=0
8 * ((FMAX / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3)) + 1.05 * X(1) * X(3) + 2.1 * X(1) - LMAX<=0
DMIN - X(1)<=0
X(2) - DMAX<=0
3.0 - X(1) ^ (-1) * X(2)<=0
8 * ((FP / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3)) - SIGMAPM<=0
SIGMAW - 8 * (((FMAX - FP) / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3))<=0
where PIE = 3.141592654, FMAX = 1000, LMAX = 14.0, DMIN = .2, S = 189000.0, DMAX = 3.0, FP = 300.0, SIGMAPM = 6.0, SIGMAW = 1.25, and G = 11.5D+06,
X(1) equals .207, .225, .244, .263, .283, .307, .331, .362, .394, .4375, or .500,
0.6<= X(2) <=3,
1<= X(3) <=70 and integer.
X(4) through X(10) below are slack variables.
One notes line 269, which is 269 IF X(J99) < -.00001 THEN X(J99) = X(J99) ELSE X(J99) = 0; see Lin and Tsai [5, p. 875, Table 5].
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 32111 STEP .01
14 RANDOMIZE JJJJ
16 M = -1D+37
21 PIE = 3.141592654: FMAX = 1000: LMAX = 14.0: DMIN = .2: S = 189000.0: DMAX = 3.0: FP = 300.0: SIGMAPM = 6.0: SIGMAW = 1.25: G = 11.5D+06
67 IF RND < .091 THEN A(1) = .207 ELSE IF RND < .1 THEN A(1) = .225 ELSE IF RND < .111 THEN A(1) = .244 ELSE IF RND < .125 THEN A(1) = .263 ELSE IF RND < .143 THEN A(1) = .283 ELSE IF RND < .167 THEN A(1) = .307 ELSE IF RND < .2 THEN A(1) = .331 ELSE IF RND < .25 THEN A(1) = .362 ELSE IF RND < .333 THEN A(1) = .394 ELSE IF RND < .5 THEN A(1) = .4375 ELSE A(1) = .500
68 A(2) = .6 + RND * 2.4
69 A(3) = 1 + FIX(RND * 70)
128 FOR I = 1 TO 10000
129 FOR KKQQ = 1 TO 3
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 3))
181 J = 2 + FIX(RND * .2)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
225 X(3) = INT(A(3))
239 X(4) = -4 * X(2) ^ 2 - 1.46 * X(1) * X(2) + 2.46 * X(1) ^ 2 + .5 * ((PIE * S) / (FMAX)) * (X(1) ^ 3 * X(2)) - .5 * ((PIE * S) / (FMAX)) * X(1) ^ 4
241 X(5) = -8 * ((FMAX / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3)) - 1.05 * X(1) * X(3) - 2.1 * X(1) + LMAX
245 X(6) = -DMIN + X(1)
249 X(7) = -X(2) + DMAX
251 X(8) = -3.0 + X(1) ^ (-1) * X(2)
253 X(9) = -8 * ((FP / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3)) + SIGMAPM
255 X(10) = -SIGMAW + 8 * (((FMAX - FP) / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3))
260 IF X(1) < .2 THEN GOTO 1670
261 IF X(2) < .6 THEN GOTO 1670
262 IF X(3) < 1 THEN GOTO 1670
263 REM IF X(4) < 10 THEN GOTO 1670
264 IF X(1) > .5 THEN GOTO 1670
265 IF X(2) > 3 THEN GOTO 1670
266 IF X(3) > 70 THEN GOTO 1670
267 REM IF X(4) > 200 THEN GOTO 1670
268 FOR J99 = 4 TO 10
269 IF X(J99) < -.00001 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBA = -.25 * PIE ^ 2 * X(2) * X(1) ^ 2 * X(3) - .5 * PIE ^ 2 * X(2) * X(1) ^ 2 + 1000000 * X(4) + 1000000 * X(5) + 1000000 * X(6) + 1000000 * X(7) + 1000000 * X(8) + 1000000 * X(9) + 1000000 * X(10)
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 10
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -2.99 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), A(7), A(8)
1902 PRINT A(9), A(10), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [13]. The complete output through JJJJ=-31999.60000000006 is shown below:
.283 1.223037748512351 9 0
0 0 0 0
0 0 -2.658552077153712 -31999.60000000006
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
The solution above is comparable to the 5 solutions presented in Table 5 of Lin and Tsai [5, p. 875].
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [13], the wall-clock time for obtaining the output through JJJJ=-31999.60000000006 was 10 seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846..
[4] 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.
[5] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[6] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[7] 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.
[8] 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.
[9] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[10] 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
[11] 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.
[12] 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.
[13] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[14] 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
[15] 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/
The computer program listed below seeks to solve the following problem in Lin and Tsai [5, pp. 873-875]:
Minimize 0.25 * PIE ^ 2 * X(2) * X(1) ^ 2 * X(3) + .5 * PIE ^ 2 * X(2) * X(1) ^ 2
subject to
4 * X(2) ^ 2 + 1.46 * X(1) * X(2) - 2.46 * X(1) ^ 2 - .5 * ((PIE * S) / (FMAX)) * (X(1) ^ 3 * X(2)) + .5 * ((PIE * S) / (FMAX)) * X(1) ^ 4<=0
8 * ((FMAX / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3)) + 1.05 * X(1) * X(3) + 2.1 * X(1) - LMAX<=0
DMIN - X(1)<=0
X(2) - DMAX<=0
3.0 - X(1) ^ (-1) * X(2)<=0
8 * ((FP / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3)) - SIGMAPM<=0
SIGMAW - 8 * (((FMAX - FP) / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3))<=0
where PIE = 3.141592654, FMAX = 1000, LMAX = 14.0, DMIN = .2, S = 189000.0, DMAX = 3.0, FP = 300.0, SIGMAPM = 6.0, SIGMAW = 1.25, and G = 11.5D+06,
X(1) equals .207, .225, .244, .263, .283, .307, .331, .362, .394, .4375, or .500,
0.6<= X(2) <=3,
1<= X(3) <=70 and integer.
X(4) through X(10) below are slack variables.
One notes line 269, which is 269 IF X(J99) < -.00001 THEN X(J99) = X(J99) ELSE X(J99) = 0; see Lin and Tsai [5, p. 875, Table 5].
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 32111 STEP .01
14 RANDOMIZE JJJJ
16 M = -1D+37
21 PIE = 3.141592654: FMAX = 1000: LMAX = 14.0: DMIN = .2: S = 189000.0: DMAX = 3.0: FP = 300.0: SIGMAPM = 6.0: SIGMAW = 1.25: G = 11.5D+06
67 IF RND < .091 THEN A(1) = .207 ELSE IF RND < .1 THEN A(1) = .225 ELSE IF RND < .111 THEN A(1) = .244 ELSE IF RND < .125 THEN A(1) = .263 ELSE IF RND < .143 THEN A(1) = .283 ELSE IF RND < .167 THEN A(1) = .307 ELSE IF RND < .2 THEN A(1) = .331 ELSE IF RND < .25 THEN A(1) = .362 ELSE IF RND < .333 THEN A(1) = .394 ELSE IF RND < .5 THEN A(1) = .4375 ELSE A(1) = .500
68 A(2) = .6 + RND * 2.4
69 A(3) = 1 + FIX(RND * 70)
128 FOR I = 1 TO 10000
129 FOR KKQQ = 1 TO 3
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 3))
181 J = 2 + FIX(RND * .2)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
225 X(3) = INT(A(3))
239 X(4) = -4 * X(2) ^ 2 - 1.46 * X(1) * X(2) + 2.46 * X(1) ^ 2 + .5 * ((PIE * S) / (FMAX)) * (X(1) ^ 3 * X(2)) - .5 * ((PIE * S) / (FMAX)) * X(1) ^ 4
241 X(5) = -8 * ((FMAX / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3)) - 1.05 * X(1) * X(3) - 2.1 * X(1) + LMAX
245 X(6) = -DMIN + X(1)
249 X(7) = -X(2) + DMAX
251 X(8) = -3.0 + X(1) ^ (-1) * X(2)
253 X(9) = -8 * ((FP / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3)) + SIGMAPM
255 X(10) = -SIGMAW + 8 * (((FMAX - FP) / G)) * X(1) ^ (-4) * (X(2) ^ 3 * X(3))
260 IF X(1) < .2 THEN GOTO 1670
261 IF X(2) < .6 THEN GOTO 1670
262 IF X(3) < 1 THEN GOTO 1670
263 REM IF X(4) < 10 THEN GOTO 1670
264 IF X(1) > .5 THEN GOTO 1670
265 IF X(2) > 3 THEN GOTO 1670
266 IF X(3) > 70 THEN GOTO 1670
267 REM IF X(4) > 200 THEN GOTO 1670
268 FOR J99 = 4 TO 10
269 IF X(J99) < -.00001 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBA = -.25 * PIE ^ 2 * X(2) * X(1) ^ 2 * X(3) - .5 * PIE ^ 2 * X(2) * X(1) ^ 2 + 1000000 * X(4) + 1000000 * X(5) + 1000000 * X(6) + 1000000 * X(7) + 1000000 * X(8) + 1000000 * X(9) + 1000000 * X(10)
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 10
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -2.99 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), A(7), A(8)
1902 PRINT A(9), A(10), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [13]. The complete output through JJJJ=-31999.60000000006 is shown below:
.283 1.223037748512351 9 0
0 0 0 0
0 0 -2.658552077153712 -31999.60000000006
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
The solution above is comparable to the 5 solutions presented in Table 5 of Lin and Tsai [5, p. 875].
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [13], the wall-clock time for obtaining the output through JJJJ=-31999.60000000006 was 10 seconds.
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.
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] H. Chickermane, H. C. Gea (1996) Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846..
[4] 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.
[5] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[6] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[7] 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.
[8] 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.
[9] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[10] 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
[11] 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.
[12] 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.
[13] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[14] 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
[15] 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/
Thursday, August 17, 2017
Solving a Cantilever Beam Design Problem with the General Mixed Integer Nonlinear Programming (MINLP) Solver Presented Here
Jsun Yui Wong
The computer program listed below seeks to solve the following cantilever beam design problem in Yang et al.[13]:
Minimize .0624 * (X(1) + X(2) + X(3) + X(4) + X(5))
subject to 61 / (X(1) ^ 3) + 37 / (X(2) ^ 3) + 19 / (X(3) ^ 3) + 7 / (X(4) ^ 3) + 1 / (X(5) ^ 3) -1 <=0
0.01<= X(i) <=100, i=1, 2, 3, 4, 5.
The X(6) below is a slack variable.
One notes line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.
0 REM 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
64 FOR J44 = 1 TO 5
65 A(J44) = 1 + RND * 10
67 REM
68 REM
69 NEXT J44
128 FOR I = 1 TO 30000
129 FOR KKQQ = 1 TO 5
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 3))
181 J = 1 + FIX(RND * 5)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
241 X(6) = 1 - 61 / (X(1) ^ 3) - 37 / (X(2) ^ 3) - 19 / (X(3) ^ 3) - 7 / (X(4) ^ 3) - 1 / (X(5) ^ 3)
255 FOR J77 = 1 TO 5
257 IF X(J77) < .01 THEN 1670
258 IF X(J77) > 100 THEN 1670
259 NEXT J77
268 FOR J99 = 6 TO 6
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBA = -.0624 * (X(1) + X(2) + X(3) + X(4) + X(5)) + 1000000 * X(6)
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 6
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -1.339957 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [12]. The complete output through JJJJ=-31967.99 is shown below:
6.017338 5.308079 4.493506 3.501398
2.15334 0 -1.339956 -31967.99
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [12], the wall-clock time for obtaining the output through JJJJ=-31967.99 was 11 minutes.
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.
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] 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.
[4] Ming-Hua Lin, Jung-Fa Tsai, Ming-Hua Lin (2014). Finding all solutions of systems of nonlinear equations with free variables. Engineering Optimization (2014) 46:7, pp. 863-879.
[5] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[6] 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.
[7] 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.
[8] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[9] 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
[10] 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.
[11] 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.
[12] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[13] 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
[14] 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/
The computer program listed below seeks to solve the following cantilever beam design problem in Yang et al.[13]:
Minimize .0624 * (X(1) + X(2) + X(3) + X(4) + X(5))
subject to 61 / (X(1) ^ 3) + 37 / (X(2) ^ 3) + 19 / (X(3) ^ 3) + 7 / (X(4) ^ 3) + 1 / (X(5) ^ 3) -1 <=0
0.01<= X(i) <=100, i=1, 2, 3, 4, 5.
The X(6) below is a slack variable.
One notes line 269, which is 269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.
0 REM 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
64 FOR J44 = 1 TO 5
65 A(J44) = 1 + RND * 10
67 REM
68 REM
69 NEXT J44
128 FOR I = 1 TO 30000
129 FOR KKQQ = 1 TO 5
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 3))
181 J = 1 + FIX(RND * 5)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
241 X(6) = 1 - 61 / (X(1) ^ 3) - 37 / (X(2) ^ 3) - 19 / (X(3) ^ 3) - 7 / (X(4) ^ 3) - 1 / (X(5) ^ 3)
255 FOR J77 = 1 TO 5
257 IF X(J77) < .01 THEN 1670
258 IF X(J77) > 100 THEN 1670
259 NEXT J77
268 FOR J99 = 6 TO 6
269 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0
270 NEXT J99
318 POBA = -.0624 * (X(1) + X(2) + X(3) + X(4) + X(5)) + 1000000 * X(6)
466 P = POBA
1111 IF P <= M THEN 1670
1452 M = P
1454 FOR KLX = 1 TO 6
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 GOTO 128
1670 NEXT I
1889 IF M < -1.339957 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [12]. The complete output through JJJJ=-31967.99 is shown below:
6.017338 5.308079 4.493506 3.501398
2.15334 0 -1.339956 -31967.99
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [12], the wall-clock time for obtaining the output through JJJJ=-31967.99 was 11 minutes.
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.
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] 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.
[4] Ming-Hua Lin, Jung-Fa Tsai, Ming-Hua Lin (2014). Finding all solutions of systems of nonlinear equations with free variables. Engineering Optimization (2014) 46:7, pp. 863-879.
[5] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[6] 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.
[7] 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.
[8] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[9] 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
[10] 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.
[11] 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.
[12] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[13] 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
[14] 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/
Wednesday, August 9, 2017
Adapting the Mixed-Integer Nonlinear Programming (MINLP) Solver Presented Here for Solving Nonlinear Systems of Equations, Corrected Edition
Jsun Yui Wong
The computer program listed below seeks to solve the following Sjirk Boon [2] nonlinear system of equations used in Tsai and Lin [9]:
X(1) ^2+ X(3) ^ 2-1=0
X(2) ^2+ X(4) ^ 2 -1=0
X(5)*X(3) ^ 3 + X(6) * X(4) ^ 3 -1.2 =0
X(5) * X(1) ^ 3 + X(6) * X(2) ^ 3 - 1.2=0
X(5) * X(3) ^ 2 * X(1) + X(6) * X(4) ^ 2 * X(2) - .7=0
X(5) * X(3) * X(1) ^ 2 + X(6) * X(4) * X(2) ^ 2 - .7=0
-10<= X(i)<=10, i=1 to 6.
One notes the following new lines 1401 and 1403, which are 1401 IF ABS(X(1) ^ 2 + X(3) ^ 2 - 1) > .001 THEN GOTO 1670
and 1403 IF ABS(X(2) ^ 2 + X(4) ^ 2 - 1) > .001 THEN GOTO 1670.
0 REM DEFDBL A-Z
2 DEFINT I, 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 32111 STEP .01
14 RANDOMIZE JJJJ
16 M = -1D+37
64 FOR J44 = 1 TO 6
65 A(J44) = -1 + RND * 2
66 NEXT J44
126 REM IMAR=10+FIX(RND*32000)
128 FOR I = 1 TO 30000
129 FOR KKQQ = 1 TO 6
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 6)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
366 IF X(3) ^ 2 > 1 THEN GOTO 373
367 IF RND < .5 THEN X(1) = -(1 - X(3) ^ 2) ^ .5 ELSE X(1) = (1 - X(3) ^ 2) ^ .5
373 IF X(4) ^ 2 > 1 THEN GOTO 376
374 IF RND < .5 THEN X(2) = -(1 - X(4) ^ 2) ^ .5 ELSE X(2) = (1 - X(4) ^ 2) ^ .5
376 X(5) = (1.2 - X(6) * X(4) ^ 3) / X(3) ^ 3
379 REM PS(3) = -1.2 + X(5) * X(3) ^ 3 + X(6) * X(4) ^ 3
381 PS(4) = X(5) * X(1) ^ 3 + X(6) * X(2) ^ 3 - 1.2
387 PS(5) = X(5) * X(3) ^ 2 * X(1) + X(6) * X(4) ^ 2 * X(2) - .7
388 PS(6) = X(5) * X(3) * X(1) ^ 2 + X(6) * X(4) * X(2) ^ 2 - .7
393 FOR J59 = 1 TO 6
394 IF X(J59) < -10 THEN GOTO 1670
395 IF X(J59) > 10 THEN GOTO 1670
398 NEXT J59
417 POBA = -ABS(PS(4)) - ABS(PS(5)) - ABS(PS(6))
459 POB1 = POBA
463 P1NEWMAY = POB1
466 P = P1NEWMAY
1111 IF P <= M THEN 1670
1401 IF ABS(X(1) ^ 2 + X(3) ^ 2 - 1) > .001 THEN GOTO 1670
1403 IF ABS(X(2) ^ 2 + X(4) ^ 2 - 1) > .001 THEN GOTO 1670
1452 M = P
1453 PPOBA2 = POBA2
1454 FOR KLX = 1 TO 6
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 REM GOTO 128
1670 NEXT I
1889 IF M < -.0003 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1904 PRINT A(5), A(6), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [10]. The complete output through
JJJJ=- 31231.21 is shown below:
.4022811 -.9153819 .9155162 -.4025865
1.441177 -1.442175 -1.219519E-04 -31983.88
.4022723 -.9153851 .9155201 -.4025794
1.441166 -1.442169 -1.226053E-04 -31857.91
-.4025856 -.9155015 -.9153823 -.4023145
-1.442136 -1.44125 -1.083827E-04 -31829.4
.4023386 .9153696 .9154909 .4026144
1.441271 1.442172 -1.100843E-04 -31786.19
.4020621 -.9152825 .9156124 -.4028125
1.440454 -1.442906 -2.995486E-04 -31585.41
.4022415 .9153735 .9155336 .4026057
1.44107 1.44226 -1.458442E-04 -31523.03
-.4020789 .915285 -.915605 .4028068
-1.440496 1.442875 -2.905802E-04 -31231.21
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [10], the wall-clock time for obtaining the output through JJJJ= -31231.21 was 110 minutes.
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.
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] 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.
[4] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[5] 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.
[6] 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.
[7] 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.
[8] 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.
[9] 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
[10] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[11] 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/
Monday, August 7, 2017
An Illustration of the General Mixed-Integer Nonlinear Programming (MINLP) Solver Presented Here
Jsun Yui Wong
The computer program listed below seeks to solve the following example from Tsai, Lin, and Hu [10]:
Maximize 10 * (X(1) + X(2) + X(3)) + 8 * (X(4) + X(5) + X(6)) - 4 * (X(1) + X(4)) - 5 * (X(2) + X(5)) - 6 * (X(3) + X(6))
subject to X(1) + X(4)<=400
X(2) + X(5)<=300
X(3) + X(6)<=500
.2 * (X(1) + X(2) + X(3)) >= X(1)
.1 * (X(1) + X(2) + X(3)) >= X(2)
.2 * (X(1) + X(2) + X(3)) <= X(3)
.4 * (X(4) + X(5) + X(6)) >= X(4)
.5 * (X(4) + X(5) + X(6)) >= X(6)
X(i)=0, 1, 2, 3, ... where i=1 to 6.
In the following computer program X(7) through X(14) are slack variables.
0 REM DEFDBL A-Z
2 DEFINT I, J, K
3 DIM B(99), N(99), A(99), H(99), L(99), U(99), X(1111), D(111), P(111), PS(33), PE(111)
12 FOR JJJJ = -32000 TO 32111
14 RANDOMIZE JJJJ
16 M = -1D+37
64 FOR J44 = 1 TO 6
65 A(J44) = FIX(RND * 1001)
66 NEXT J44
128 FOR I = 1 TO 25000
129 FOR KKQQ = 1 TO 6
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 6)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
251 FOR J41 = 1 TO 6
253 X(J41) = INT(X(J41))
255 NEXT J41
261 FOR J42 = 1 TO 6
263 IF X(J42) < 0 THEN 1670
265 NEXT J42
291 X(7) = 400 - X(1) - X(4)
292 X(8) = 500 - X(2) - X(5)
293 X(9) = 300 - X(3) - X(6)
301 X(10) = .2 * (X(1) + X(2) + X(3)) - X(1)
302 X(11) = .1 * (X(1) + X(2) + X(3)) - X(2)
303 X(12) = -.2 * (X(1) + X(2) + X(3)) + X(3)
304 X(13) = .4 * (X(4) + X(5) + X(6)) - X(4)
305 X(14) = .5 * (X(4) + X(5) + X(6)) - X(6)
401 FOR J44 = 7 TO 14
402 IF X(J44) < 0 THEN PE(J44) = 1000000 * X(J44) ELSE PE(J44) = 0
403 NEXT J44
428 POBA = 10 * (X(1) + X(2) + X(3)) + 8 * (X(4) + X(5) + X(6)) - 4 * (X(1) + X(4)) - 5 * (X(2) + X(5)) - 6 * (X(3) + X(6)) + PE(7) + PE(8) + PE(9) + PE(10) + PE(11) + PE(12) + PE(13) + PE(14)
459 POB1 = POBA
463 P1NEWMAY = POB1
466 P = P1NEWMAY
1111 IF P <= M THEN 1670
1452 M = P
1453 PPOBA2 = POBA2
1454 FOR KLX = 1 TO 14
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 REM GOTO 128
1670 NEXT I
1889 IF M < 4515 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), A(7), A(8)
1904 PRINT A(9), A(10), A(11), A(12), A(13), A(14), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [11]. The complete output through JJJJ=-31298 is shown below:
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31929
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31889
85 42 299 306
458 1 9 0
0 .2 .6 213.8 0
381.5 4516 -31860
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31726
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31712
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31662
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31646
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31624
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31619
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31590
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31565
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31530
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31490
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31460
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31445
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31391
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31365
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31363
85 42 299 306
458 1 9 0
0 .2 .6 213.8 0
381.5 4516 -31298
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [11], the wall-clock time for obtaining the output through JJJJ=-31298 was one minute.
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.
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] 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.
[4] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[5] 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.
[6] 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.
[7] 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.
[8] 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.
[9] 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
[10] Jung-Fa Tsai, Ming-Hua Lin, Yi-Chung Hu (2008). Fing multiple integer solutions to general integer linear programs. European Journal of Operational Research 184 (2008) pp. 802-809.
[11] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[12] 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/
The computer program listed below seeks to solve the following example from Tsai, Lin, and Hu [10]:
Maximize 10 * (X(1) + X(2) + X(3)) + 8 * (X(4) + X(5) + X(6)) - 4 * (X(1) + X(4)) - 5 * (X(2) + X(5)) - 6 * (X(3) + X(6))
subject to X(1) + X(4)<=400
X(2) + X(5)<=300
X(3) + X(6)<=500
.2 * (X(1) + X(2) + X(3)) >= X(1)
.1 * (X(1) + X(2) + X(3)) >= X(2)
.2 * (X(1) + X(2) + X(3)) <= X(3)
.4 * (X(4) + X(5) + X(6)) >= X(4)
.5 * (X(4) + X(5) + X(6)) >= X(6)
X(i)=0, 1, 2, 3, ... where i=1 to 6.
In the following computer program X(7) through X(14) are slack variables.
0 REM DEFDBL A-Z
2 DEFINT I, J, K
3 DIM B(99), N(99), A(99), H(99), L(99), U(99), X(1111), D(111), P(111), PS(33), PE(111)
12 FOR JJJJ = -32000 TO 32111
14 RANDOMIZE JJJJ
16 M = -1D+37
64 FOR J44 = 1 TO 6
65 A(J44) = FIX(RND * 1001)
66 NEXT J44
128 FOR I = 1 TO 25000
129 FOR KKQQ = 1 TO 6
130 X(KKQQ) = A(KKQQ)
131 NEXT KKQQ
133 FOR IPP = 1 TO (1 + FIX(RND * 4))
181 J = 1 + FIX(RND * 6)
183 R = (1 - RND * 2) * A(J)
187 X(J) = A(J) + (RND ^ (RND * 10)) * R
222 NEXT IPP
251 FOR J41 = 1 TO 6
253 X(J41) = INT(X(J41))
255 NEXT J41
261 FOR J42 = 1 TO 6
263 IF X(J42) < 0 THEN 1670
265 NEXT J42
291 X(7) = 400 - X(1) - X(4)
292 X(8) = 500 - X(2) - X(5)
293 X(9) = 300 - X(3) - X(6)
301 X(10) = .2 * (X(1) + X(2) + X(3)) - X(1)
302 X(11) = .1 * (X(1) + X(2) + X(3)) - X(2)
303 X(12) = -.2 * (X(1) + X(2) + X(3)) + X(3)
304 X(13) = .4 * (X(4) + X(5) + X(6)) - X(4)
305 X(14) = .5 * (X(4) + X(5) + X(6)) - X(6)
401 FOR J44 = 7 TO 14
402 IF X(J44) < 0 THEN PE(J44) = 1000000 * X(J44) ELSE PE(J44) = 0
403 NEXT J44
428 POBA = 10 * (X(1) + X(2) + X(3)) + 8 * (X(4) + X(5) + X(6)) - 4 * (X(1) + X(4)) - 5 * (X(2) + X(5)) - 6 * (X(3) + X(6)) + PE(7) + PE(8) + PE(9) + PE(10) + PE(11) + PE(12) + PE(13) + PE(14)
459 POB1 = POBA
463 P1NEWMAY = POB1
466 P = P1NEWMAY
1111 IF P <= M THEN 1670
1452 M = P
1453 PPOBA2 = POBA2
1454 FOR KLX = 1 TO 14
1455 A(KLX) = X(KLX)
1456 NEXT KLX
1557 REM GOTO 128
1670 NEXT I
1889 IF M < 4515 THEN 1999
1900 PRINT A(1), A(2), A(3), A(4)
1901 PRINT A(5), A(6), A(7), A(8)
1904 PRINT A(9), A(10), A(11), A(12), A(13), A(14), M, JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with qb64v1000-win [11]. The complete output through JJJJ=-31298 is shown below:
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31929
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31889
85 42 299 306
458 1 9 0
0 .2 .6 213.8 0
381.5 4516 -31860
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31726
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31712
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31662
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31646
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31624
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31619
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31590
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31565
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31530
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31490
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31460
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31445
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31391
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31365
85 41 300 306
459 0 9 0
0 .2 1.6 214.8 0
382.5 4516 -31363
85 42 299 306
458 1 9 0
0 .2 .6 213.8 0
381.5 4516 -31298
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [11], the wall-clock time for obtaining the output through JJJJ=-31298 was one minute.
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.
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] 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.
[4] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[5] 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.
[6] 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.
[7] 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.
[8] 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.
[9] 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
[10] Jung-Fa Tsai, Ming-Hua Lin, Yi-Chung Hu (2008). Fing multiple integer solutions to general integer linear programs. European Journal of Operational Research 184 (2008) pp. 802-809.
[11] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64
[12] 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/
Subscribe to:
Posts (Atom)