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/

No comments:

Post a Comment