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.

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.

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/

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/


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/

Thursday, August 3, 2017

Adapting the Mixed-Integer Nonlinear Programming (MINLP) Solver Presented Here for Solving Nonlinear Systems of Equations

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.

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)
12 FOR JJJJ = -32000 TO 32111

    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 379


        374 IF RND < .5 THEN X(2) = -(1 - X(4) ^ 2) ^ .5 ELSE X(2) = (1 - X(4) ^ 2) ^ .5

        379 X(5) = (1.2 - X(6) * X(4) ^ 3) / X(3) ^ 3


        386 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
        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=32111 is shown below:

-.915316          .4572198        -.4027364         1.040711
-1.442559        .9810117       -2.02933E-04              -31423  

.4021955           -.9152884             .9155538           -.402799
1.440758        -1.44273           -2.408289E-04            -21010

-.5961376           .9154932            -1.355668         .4023333
-.4439624    1.441352         -8.565298E-05                -14235

.5550773    -.9154617          1.262391             -.4024051
     .5497942     -1.441529             -4.222878E-05       4313

.8124468         .9154342         1.848123       .4024675      
 .1752132       1.441746      -1.225971E-05                  9206

.4026785           -.9155846             .9153415           -.4021255
1.442545        -1.440738           -2.219319E-04           10583

-.4021617           -.9152779            -.91555686           -.4028229
-1.440658        -1.442819           -2.638689E-04            10628

-.4022661           .9153302            -.9155228           .4027041
-1.441015        1.442447           -1.750053E-04            12645

.5349895    -3.031289               1.217944               -1.333414      
.6120817   -.0397175              -1.921458 E-04                18546

.4617415         .9153111           1.0513                .4027475
.9516512        1.442687           -2.454814E-04               23106

-.4872388         .9154198        -1.108508           .4025003
-.8119524         1.441869         -4.427775E-05            23690

.5734121         -.9154607        1.304184     -.4024074
.4986132       -1.441561    -3.151143E-05               31575

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=32111 was 90 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/