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.
No comments:
Post a Comment