Tuesday, October 31, 2017

Another Approach to Solving a Nonlinear Integer Programming Problem

Jsun Yui Wong

The computer program listed below seeks to solve the following 100-variable problem: 

Minimize             - (1 / 2) * ((X(1) ^ 4 - 16 * X(1) ^ 2 + 5 * X(1)) + (X(2) ^ 4 - 16 * X(2) ^ 2 + 5 * X(2)) + (X(3) ^ 4 - 16 * X(3) ^ 2 + 5 * X(3)) + (X(4) ^ 4 - 16 * X(4) ^ 2 + 5 * X(4)) +...+ (X(99) ^ 4 - 16 * X(99) ^ 2 + 5 * X(99)) + (X(100) ^ 4 - 16 * X(100) ^ 2 + 5 * X(100))), 

-5<= X(1), X(2), X(3), ..., X(98), X(99), X(100)  <=2. 
 
The problem above is a modified version of the last problem in Table 2 of Gounaris and Floudas [9, p. 88].

One notes line 67,  which is   67 A(J55) = -5 + FIX(RND * 7.1) * 1.



0 DEFDBL A-Z

2 DEFINT K

3 DIM B(199), N(199), A(199), H(199), L(199), U(199), X(1111), D(111), P(111), PS(33)
12 FOR JJJJ = -32000 TO 32000 STEP .01

    14 RANDOMIZE JJJJ
    16 M = -1D+37

    22 FOR J55 = 1 TO 100


        67 A(J55) = -5 + FIX(RND * 7.1) * 1


    71 NEXT J55

    128 FOR I = 1 TO 5000000


        129 FOR KKQQ = 1 TO 100

            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        133 FOR IPP = 1 TO (1 + FIX(RND * 100))

            181 J = 1 + FIX(RND * 100)

            183 REM r = (1 - RND * 2) * A(J)
            187 REM  X(J) = A(J) + (RND ^ (RND * 10)) * r
            189 X(J) = -5 + FIX(RND * 7.1) * 1



        191 NEXT IPP
        200 FOR J44 = 1 TO 100

            201 IF X(J44) < -5 THEN 1670

            203 IF X(J44) > 2 THEN 1670
        255 NEXT J44
        301 ssuumm = 0

        305 FOR J44 = 1 TO 100

            308 ssuumm = ssuumm + X(J44) ^ 4 - 16 * X(J44) ^ 2 + 5 * X(J44)


        311 NEXT J44


        359 REM
        361 REM
        364 POBA = (1 / 2) * ssuumm



        466 P = POBA

        1111 IF P <= M THEN 1670


        1452 M = P
        1454 FOR KLX = 1 TO 100



            1459 A(KLX) = X(KLX)
        1460 NEXT KLX
        1557 REM GOTO 128

    1670 NEXT I


    1889 REM IF M < 2998 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), A(5)

    1911 PRINT A(6), A(7), A(8), A(9), A(10)

    1915 PRINT A(11), A(12), A(13), A(14), A(15)
    1917 PRINT A(16), A(17), A(18), A(19), A(20)

    1918 PRINT A(21), A(22), A(23), A(24), A(25)
    1919 PRINT A(26), A(27), A(28), A(29), A(30)


    1928 PRINT A(91), A(92), A(93), A(94), A(95)
    1929 PRINT A(96), A(97), A(98), A(99), A(100), M, JJJJ

1999 NEXT JJJJ


This BASIC computer program was run with qb64v1000-win [26]. The complete output through JJJJ =  -31999.90000000002 is  shown below:

-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -32000 

-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.99

-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.98
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.97000000001
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.96000000001
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.95000000001
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.94000000001
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.93000000001
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.92000000001
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
10000      -31999.91000000001
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
0      -5      -5      -5      -5
-5      -5      -5      -5      -5
9900         -31999.90000000002     
 
Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.

Because of line 1900 through line 1929, only 40 of the 100 A's are shown above.  The objective function value at JJJJ=-32000, for example, is optimal;  the objective function value of 9900 at JJJJ=-31999.90000000002 is not optimal.

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [26], the wall-clock time for obtaining the output through JJJJ=  -31999.90000000002  was 40 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 of the Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.       
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9]  Chrysanthos E. Gounaris, Christodoulos A. Floudas.  Tight convex underestimators for Csquare-continuous problems: II. multivariate functions.  Journal of Global Optimization (2008) 42, pp. 69-89.

[10]  Han-Lin Li, Jung-Fa Tsai, Christodoulos A. Floudas (2008).  Convex underestimating for posynomial functions of postive variables.  Optimization Letters 2, 333-340 (2008).
[11] 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.
[12] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[13]  Hao-Chun Lu, Han-Lin Li, Chrysanthos E. Gounaris, Christodoulos A. Floudas (2010).  Convex relaxation for solving posynomial problems.  Journal of Global Optimization (2010) 46, pp. 147-154.
[14]  Hao-Chun Lu (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms. Journal of Global Optimization (2017) 68, pp. 95-123.
[15] 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/
[16] 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.
[17] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[18] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[19] 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.
[20] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[21] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[22] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[23] 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
[24] 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.
[25] 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.
[26] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[27] 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/
[28]  Helen Wu (2015).  Geometric Programming.  https://optimization.mccormick.northwstern.edu/index.php/Geometric_Programming.
[29] 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.
[30] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[31] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.

Saturday, October 28, 2017

Using Discrete Variables To Solve an Extension of a Gounaris and Floudas Problem

Jsun Yui Wong

The computer program listed below seeks to solve the following extension of Gounaris and Floudas' [9, p. 86] last problem in Table 2 of 5 variables to 15 variables:   

Minimize             - (1 / 2) * ((X(1) ^ 4 - 16 * X(1) ^ 2 + 5 * X(1)) + (X(2) ^ 4 - 16 * X(2) ^ 2 + 5 * X(2)) + (X(3) ^ 4 - 16 * X(3) ^ 2 + 5 * X(3)) + (X(4) ^ 4 - 16 * X(4) ^ 2 + 5 * X(4)) +...+ (X(14) ^ 4 - 16 * X(14) ^ 2 + 5 * X(14)) + (X(15) ^ 4 - 16 * X(15) ^ 2 + 5 * X(15))),

-5<= X(1), X(2), X(3), ..., X(13), X(14), X(15)  <=2.

One notes line 67,  which is 67 A(J55) = -5 + FIX(RND * 705) * .01.   



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 FOR J55 = 1 TO 15


        67 A(J55) = -5 + FIX(RND * 705) * .01


    71 NEXT J55

    128 FOR I = 1 TO 100000


        129 FOR KKQQ = 1 TO 15

            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        133 FOR IPP = 1 TO (1 + FIX(RND * 10))

            181 J = 1 + FIX(RND * 15)

            183 REM r = (1 - RND * 2) * A(J)
            187 REM  X(J) = A(J) + (RND ^ (RND * 10)) * r
            189 X(J) = -5 + FIX(RND * 705) * .01



        191 NEXT IPP
        200 FOR J44 = 1 TO 15

            201 IF X(J44) < -5 THEN 1670

            203 IF X(J44) > 2 THEN 1670
        255 NEXT J44
        301 ssuumm = 0

        305 FOR J44 = 1 TO 15

            308 ssuumm = ssuumm + X(J44) ^ 4 - 16 * X(J44) ^ 2 + 5 * X(J44)


        311 NEXT J44


        359 REM
        361 REM
        364 POBA = (1 / 2) * ssuumm



        466 P = POBA

        1111 IF P <= M THEN 1670


        1452 M = P
        1454 FOR KLX = 1 TO 15



            1459 A(KLX) = X(KLX)
        1460 NEXT KLX
        1557 REM GOTO 128

    1670 NEXT I


    1889 IF M < 1495 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), A(5)

    1911 PRINT A(6), A(7), A(8), A(9), A(10)

    1915 PRINT A(11), A(12), A(13), A(14), A(15), M, JJJJ

1999 NEXT JJJJ


This BASIC computer program was run with qb64v1000-win [26]. The complete output through JJJJ =-31999.75000000004 shown below:

-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -4.98     -5      -5      -4.99
1495.008410085      -31999.95000000001

-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
1500      -31999.88000000002

-5      -5      -5      -5      -5
-5      -5      -4.99       -4.99      -5
-5      -5      -5      -5      -5 
1496.66338001      -31999.82000000003

-5      -5      -5      -5      -5
-5      -5      -5      -5      -5
-5      -5      -5      -5      -5 
1500      -31999.75000000004

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 [26], the wall-clock time for obtaining the output through JJJJ= -31999.75000000004 was 30 seconds, including the seconds for creating the .EXE file.   
 
Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] Yuichiro Anzai (1974). On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.       
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9]  Chrysanthos E. Gounaris, Christodoulos A. Floudas.  Tight convex underestimators for Csquare-continuous problems: II. multivariate functions.  Journal of Global Optimization (2008) 42, pp. 69-89.

[10]  Han-Lin Li, Jung-Fa Tsai, Christodoulos A. Floudas (2008).  Convex underestimating for posynomial functions of postive variables.  Optimization Letters 2, 333-340 (2008).
[11] 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.
[12] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[13]  Hao-Chun Lu, Han-Lin Li, Chrysanthos E. Gounaris, Christodoulos A. Floudas (2010).  Convex relaxation for solving posynomial problems.  Journal of Global Optimization (2010) 46, pp. 147-154.
[14]  Hao-Chun Lu (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms.   Journal of Global Optimization (2017) 68, pp. 95-123.
[15] 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/
[16] 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.
[17] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[18] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[19] 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.
[20] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[21] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[22] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[23] 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
[24] 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.
[25] 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.
[26] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[27] 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/
[28]  Helen Wu (2015).  Geometric Programming.  https://optimization.mccormick.northwstern.edu/index.php/Geometric_Programming.
[29] 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.
[30] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[31] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.

Friday, October 27, 2017

Erratum to: Solving a Continuous Nonlinear Programming Problem Using Discrete Variables


Jsun Yui Wong

Reference 9 of the preceding paper should read as follows:

[9]  Chrysanthos E. Gounaris, Christodoulos A. Floudas.  Tight convex underestimators for Csquare-continuous problems: II. multivariate functions.  Journal of Global Optimization (2008) 42, pp. 69-89.


Solving a Continuous Nonlinear Programming Problem Using Discrete Variables

Jsun Yui Wong

The computer program listed below seeks to solve the following problem based on the last problem in Table 2 of Gounaris and Floudas [9, p. 86]:   

Minimize      - (1 / 2) * ((X(1) ^ 4 - 16 * X(1) ^ 2 + 5 * X(1)) + (X(2) ^ 4 - 16 * X(2) ^ 2 + 5 * X(2)) + (X(3) ^ 4 - 16 * X(3) ^ 2 + 5 * X(3)) + (X(4) ^ 4 - 16 * X(4) ^ 2 + 5 *

X(4)) + (X(5) ^ 4 - 16 * X(5) ^ 2 + 5 * X(5))),

-5<= X(1), X(2), X(3), X(4), X(5)<=2.



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 FOR J55 = 1 TO 5


        67 A(J55) = -5 + FIX(RND * 705) * .01

    71 NEXT J55

    128 FOR I = 1 TO 60000




        129 FOR KKQQ = 1 TO 5

            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        133 FOR IPP = 1 TO (1 + FIX(RND * 4))

            181 J = 1 + FIX(RND * 5)

            183 REM r = (1 - RND * 2) * A(J)
            187 REM  X(J) = A(J) + (RND ^ (RND * 10)) * r
            189 X(J) = -5 + FIX(RND * 705) * .01



        191 NEXT IPP
        200 FOR J44 = 1 TO 5

            201 IF X(J44) < -5 THEN 1670

            203 IF X(J44) > 2 THEN 1670
        255 NEXT J44


        359 REM
        365 POBA = (1 / 2) * ((X(1) ^ 4 - 16 * X(1) ^ 2 + 5 * X(1)) + (X(2) ^ 4 - 16 * X(2) ^ 2 + 5 * X(2)) + (X(3) ^ 4 - 16 * X(3) ^ 2 + 5 * X(3)) + (X(4) ^ 4 - 16 * X(4) ^ 2 + 5 * X(4)) + (X(5) ^ 4 - 16 * X(5) ^ 2 + 5 * X(5)))


        466 P = POBA

        1111 IF P <= M THEN 1670


        1452 M = P
        1454 FOR KLX = 1 TO 5


            1459 A(KLX) = X(KLX)
        1460 NEXT KLX
        1557 REM GOTO 128

    1670 NEXT I


    1889 REM IF M < -.7346 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), A(5), M, JJJJ

1999 NEXT JJJJ


This BASIC computer program was run with qb64v1000-win [26]. The complete output through JJJJ = -31999.97000000001 is shown below:

-5      -5      -5      -5      -5
500      -32000

-5      -5      -5      -5      -5
500      -31999.99

-5      -5      -5      -5      -5
500      -31999.98

-5      -5      -5      -5      -5
500      -31999.97000000001

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 [26], the wall-clock time for obtaining the output through JJJJ=  -31999.97000000001 was 14 seconds; most of these seconds were for creating the .EXE file.     

Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] Yuichiro Anzai (1974). On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.       
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9]  Chrysanthos E. Gounaris, Christodoulos A. Floudas (2008).  Convex relaxation for solving posynomial problems.  Journal of Global Optimization (2008) 42, pp. 69-89.
[10]  Han-Lin Li, Jung-Fa Tsai, Christodoulos A. Floudas (2008).  Convex underestimating for posynomial functions of postive variables.  Optimization Letters 2, 333-340 (2008).
[11] 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.
[12] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[13]  Hao-Chun Lu, Han-Lin Li, Chrysanthos E. Gounaris, Christodoulos A. Floudas (2010).  Convex relaxation for solving posynomial problems.  Journal of Global Optimization (2010) 46, pp. 147-154.
[14]  Hao-Chun Lu (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms. Journal of Global Optimization (2017) 68, pp. 95-123.
[15] 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/
[16] 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.
[17] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[18] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[19] 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.
[20] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[21] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[22] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[23] 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
[24] 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.
[25] 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.
[26] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[27] 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/
[28]  Helen Wu (2015).  Geometric Programming.  https://optimization.mccormick.northwstern.edu/index.php/Geometric_Programming.
[29] 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.
[30] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[31] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.

Solving a Geometric Programming Problem with the Method of the Present Blog

Jsun Yui Wong

The computer program listed below seeks to solve the illustrative example in Wu [27]:   

Minimize           X(1) * X(2) ^ .5 * X(3) ^ 1.2+ 2 * X(1)

subject to

         2 * X(1) + X(2) + X(3)>=8,

         X(2) + 2 * X(3)>=10.5,

        X(1) + 2 * X(3)<=10,

1<= X(1), X(2), X(3)<=5.

X(4), 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 FOR J55 = 1 TO 3


        67 A(J55) = 1 + FIX(RND * 405) * .01


    71 NEXT J55

    128 FOR I = 1 TO 30000


        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 = 1 + FIX(RND * 3)

            183 REM r = (1 - RND * 2) * A(J)
            187 REM  X(J) = A(J) + (RND ^ (RND * 10)) * r
            189 X(J) = 1 + FIX(RND * 405) * .01


        191 NEXT IPP
        200 FOR J44 = 1 TO 3

            201 IF X(J44) < 1 THEN 1670
            203 IF X(J44) > 5 THEN 1670
        255 NEXT J44

        301 X(4) = -8 + 2 * X(1) + X(2) + X(3)

        305 X(5) = -10.5 + X(2) + 2 * X(3)
        308 X(6) = 10 - X(1) - 2 * X(3)

        333 FOR J44 = 4 TO 6

            335 IF X(J44) < 0 THEN X(J44) = X(J44) ELSE X(J44) = 0

        339 NEXT J44


        359 POBA = -X(1) * X(2) ^ .5 * X(3) ^ 1.2 - 2 * X(1) + 1000000 * (X(4) + X(5) + X(6))


        466 P = POBA

        1111 IF P <= M THEN 1670


        1452 M = P
        1454 FOR KLX = 1 TO 6


            1459 A(KLX) = X(KLX)
        1460 NEXT KLX
        1557 REM GOTO 128

    1670 NEXT I

    1889 IF M < -9.5 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), A(5), A(6), M, JJJJ

1999 NEXT JJJJ


This BASIC computer program was run with qb64v1000-win [25]. The complete output through JJJJ = -31999.90000000002 is shown below:

1       1.52        4.49         0        0
0      -9.475106820436846       -31999.99

1       1.5        4.5         0        0
0      -9.445616203848971       -31999.94000000001

1       1.5        4.5         0        0
0      -9.445616203848971       -31999.91000000001

1       1.5        4.5         0        0
0      -9.445616203848971       -31999.90000000002

Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.  One can compare the computational results above to the results in Wu [27].

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [25], the wall-clock time for obtaining the output through JJJJ=   -31999.90000000002 was 15 seconds; most of these seconds were for creating the .EXE file.     

Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] Yuichiro Anzai (1974). On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.       
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9]  Han-Lin Li, Jung-Fa Tsai, Christodoulos A. Floudas (2008).  Convex underestimating for posynomial functions of postive variables.  Optimization Letters 2, 333-340 (2008).
[10] 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.
[11] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[12]  Hao-Chun Lu, Han-Lin Li, Chrysanthos E. Gounaris, Christodoulos A. Floudas (2010).  Convex relaxation for solving posynomial problems.  Journal of Global Optimization (2010) 46, pp. 147-154.
[13]  Hao-Chun Lu (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms. Journal of Global Optimization (2017) 68, pp. 95-123.
[14] 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/
[15] 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.
[16] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[17] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[18] 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.
[19] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[20] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[21] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[22] 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
[23] 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.
[24] 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.
[25] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[26] 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/
[27]  Helen Wu (2015).  Geometric Programming.  https://optimization.mccormick.northwstern.edu/index.php/Geometric_Programming.
[28] 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.
[29] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[30] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.

Wednesday, October 25, 2017

Solving a Posynomial Program with the Method of the Present Blog

Jsun Yui Wong

The computer program listed below seeks to solve Example 2 of Lu et al. [11, p. 153]:   

Minimize          X(1) ^ -2 * X(2) ^ -1.5 * X(3) ^ 1.2 * X(4) ^ 3 - 3 * X(3) ^ .5 + X(2) - 4 * X(4)

subject to        0.01<= X(1), X(2), X(3), X(4)<=10.


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 FOR J55 = 1 TO 4


        67 A(J55) = .01 + FIX(RND * 1005) * .01

    71 NEXT J55

    128 FOR I = 1 TO 60000


        129 FOR KKQQ = 1 TO 4

            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        133 FOR IPP = 1 TO (1 + FIX(RND * 4))

            181 J = 1 + FIX(RND * 4)

            183 REM r = (1 - RND * 2) * A(J)
            187 REM  X(J) = A(J) + (RND ^ (RND * 10)) * r
            189 X(J) = .01 + FIX(RND * 1005) * .01


        191 NEXT IPP
        200 FOR J44 = 1 TO 4

            201 IF X(J44) < .01 THEN 1670
            203 IF X(J44) > 10 THEN 1670
        255 NEXT J44


        359 POBA = -X(1) ^ -2 * X(2) ^ -1.5 * X(3) ^ 1.2 * X(4) ^ 3 + 3 * X(3) ^ .5 - X(2) + 4 * X(4)


        466 P = POBA

        1111 IF P <= M THEN 1670


        1452 M = P
        1454 FOR KLX = 1 TO 4


            1459 A(KLX) = X(KLX)
        1460 NEXT KLX
        1557 REM GOTO 128

    1670 NEXT I

    1889 REM IF M < -.7346 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), M, JJJJ

1999 NEXT JJJJ


This BASIC computer program was run with qb64v1000-win [24]. The complete output through JJJJ = -31999.97000000001 is shown below:

10      .32      .01      10      39.76007478129893
-32000

10      .32      .01      10      39.76007478129893
-31999.99

10      .32      .01      10      39.76007478129893
-31999.98

10      .32      .01      10      39.76007478129893
-31999.97000000001

Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.  One can compare the computational results above to the results in Lu et al. [11, Table 1, p. 153].

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [24], the wall-clock time for obtaining the output through JJJJ=-31999.97000000001 was 15 seconds; most of these seconds were for creating the .EXE file.     

Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] Yuichiro Anzai (1974). On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.       
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9] Han-Lin Li, Jung-Fa Tsai (2008). A distributed computational algorithm for solving portfolio problems with integer variables. European Journal of Operational Research 186 (2008) pp. 882-891.
[10] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[11]  Hao-Chun Lu, Han-Lin Li, Chrysanthos E. Gounaris, Christodoulos A. Floudas (2010).  Convex relaxation for solving posynomial problems.  Journal of Global Optimization (2010) 46, pp. 147-154.
[12]  Hao-Chun Lu (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms. Journal of Global Optimization (2017) 68, pp. 95-123.
[13] Mathworks. Solving a mixed integer engineering design problem using the genetic algorithm – MATLAB & Simulink Example.
https://www.mathworks.com/help/gads/examples/solving-a-mixed-integer-engineering-design-problem-using-the-genetic-algorithm.html/
[14] Microsoft Corp., BASIC, Second Edition (May 1982), Version 1.10. Boca Raton, Florida: IBM Corp., Personal Computer, P. O. Box 1328-C, Boca Raton, Florida 33432, 1981.
[15] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[16] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[17] H. S. Ryoo, N. V. Sahinidis (1995). Global optimization of nonconvex NLP and MINLP with applications in process design. Computers and Chemical Engineering Vol. 19 (5) (1995) pp. 551-566.
[18] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[19] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[20] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[21] Jung-Fa Tsai, Ming-Hua Lin (2007). Finding all solutions of systems of nonlinear equations with free variables. Engineering Optimization (2007) 39:6, pp. 649-659
[22] Jung-Fa Tsai, Ming-Hua Lin, Yi-Chung Hu (2007). On generalized geometric programming problems with non-positive variables. European Journal of Operational Research 178 (2007) pp. 10-19.
[23] Jung-Fa Tsai, Ming-Hua Lin (2008). Global optimization of signomial mixed-integer nonlinear programming with free variables. Journal of Global Optimization (2008) 42 pp. 39-49.
[24] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[25] Jsun Yui Wong (2012, April 12). The Domino Method of General Integer Nonlinear Programming Applied to a Nonlinear Fractional Programming Problem from the Literature. http://myblogsubstance.typepad.com/substance/2012/04/12/
[26] Xin-She Yang, Christian Huyck, Mehmet Karamanoglu, Nawaz Khan (2014). True global optimality of the pressure vessel design problem: A benchmark for bio-inspired optimisation algorithms.
https://arxiv.org/pdf/1403.7793.pdf.
[27] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[28] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.

Monday, October 23, 2017

Solving Sandgren's Pressure Vessel Design Problem


Jsun Yui Wong

The computer program listed below seeks to solve Example 3 in Lu [11, pp. 20-21]:   

Minimize         .6224 * X(1) * X(3) * X(4) + 1.7781 * X(2) * X(3) ^ 2+ 3.1661 * X(1) ^ 2 * X(4) + 19.84 * X(1) ^ 2 * X(3)

subject to

        - X(1) + .0193 * X(3)<=0


        -X(2) + .00954 * X(3)<=0,

        1296000 - 3.141592654 * X(3) ^ 2 * X(4) - (4 / 3) * 3.141592654 * X(3) ^ 3<=0


        -240 + X(4)<=0,

       
        .0625<=X(1) <= 6.1875,


       .0625<= X(2) <= 6.1875 ,

       
         10<=X(3) <= 200,


         10<=X(4) <= 200,

        where X(1) and X(2) are discrete variables with discreteness of .0625, and X(3) and X(4) are integer variables.

One notes line 67 and line 68 below.  X(5) through X(8) below are slack variables, which are added.


0 DEFDBL A-Z

2 DEFINT K

3 DIM B(99), N(99), A(99), H(99), L(99), U(99), X(1111), D(111), P(111), PS(33)
12 FOR JJJJ = -32000 TO 32000 STEP .01

    14 RANDOMIZE JJJJ
    16 M = -1D+37

    22 REM


    67 A(1) = .0625 + INT(RND * 98) * .0625

    68 A(2) = .0625 + INT(RND * 98) * .0625

    77 A(3) = 10 + FIX(RND * 191)
    78 A(4) = 10 + FIX(RND * 191)

    79 REM


    128 FOR I = 1 TO 10000



        129 FOR KKQQ = 1 TO 4

            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ

        133 FOR IPP = 1 TO (1 + FIX(RND * 4))

            181 REM J = 1 + FIX(RND * 2)

            183 REM r = (1 - RND * 2) * A(J)
            187 REM X(J) = A(J) + (RND ^ (RND * 10)) * r


            189 REM IF RND < .333 THEN X(1) = .009 + INT(RND * 250) * .002 ELSE IF RND < .5 THEN X(2) = .6 + INT(RND * 170) * .02 ELSE X(3) = 1 + FIX(RND * 120)


            190 IF RND < .5 THEN 192

            191 X(1) = .0625 + INT(RND * 98) * .0625



            192 IF RND < .5 THEN 194

            193 X(2) = .0625 + INT(RND * 98) * .0625


            194 IF RND < .5 THEN 196
            195 X(3) = 10 + FIX(RND * 191)

            196 IF RND < .5 THEN 200

            198 X(4) = 10 + FIX(RND * 191)



        200 NEXT IPP


        201 IF X(1) < .0625 THEN 1670
        203 IF X(1) > 6.1875 THEN 1670
        255 REM

        258 IF X(2) < .0625 THEN 1670
        266 IF X(2) > 6.1875 THEN 1670

        277 IF X(3) < 10 THEN 1670
        288 IF X(3) > 200 THEN 1670


        289 IF X(4) < 10 THEN 1670
        291 IF X(4) > 200 THEN 1670



        304 REM X(4) = 10 - X(1) - X(2) - X(3)



        306 X(5) = X(1) - .0193 * X(3)



        307 X(6) = X(2) - .00954 * X(3)

        317 X(7) = -1296000 + 3.141592654 * X(3) ^ 2 * X(4) + (4 / 3) * 3.141592654 * X(3) ^ 3


        320 X(8) = 240 - X(4)



        321 REM X(9) = -8 * (11.5D+06) ^ -1 * 300 * X(1) ^ -4 * X(2) ^ 3 * X(3) + 6


        323 REM X(10) = -1.25 + 8 * (11.5D+06) ^ -1 * 700 * X(1) ^ -4 * X(2) ^ 3 * X(3)


        325 FOR J99 = 5 TO 8


            330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0

        331 NEXT J99


        359 POBA = -.6224 * X(1) * X(3) * X(4) - 1.7781 * X(2) * X(3) ^ 2 - 3.1661 * X(1) ^ 2 * X(4) - 19.84 * X(1) ^ 2 * X(3) + 1000000 * (X(5) + X(6) + X(7) + X(8))



        466 P = POBA

        1111 IF P <= M THEN 1670



        1452 M = P
        1454 FOR KLX = 1 TO 8


            1459 A(KLX) = X(KLX)
        1460 NEXT KLX
        1557 REM GOTO 128

    1670 NEXT I

    1889 IF M < -6075 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), A(5)
    1903 PRINT A(6), A(7), A(8)
    1907 PRINT M, JJJJ

1999 NEXT JJJJ

This BASIC computer program was run with qb64v1000-win [24]. The complete output through JJJJ = -31997.69000000037 is shown below:

.8125      .4375      42      178      0
0      0      0
-6074.99836015625      -31999.83000000003

.8125      .4375      42      178      0
0      0      0
-6074.99836015625      -31997.69000000037

Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.  One can compare the results above with the results given in Lu [11, Table 5, p. 21; Table 6, p. 21].

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [24], the wall-clock time for obtaining the output through JJJJ=  -31997.69000000037 was 18 seconds, including the seconds for creating the .EXE file.   

Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] Yuichiro Anzai (1974). On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.       
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9] Han-Lin Li, Jung-Fa Tsai (2008). A distributed computational algorithm for solving portfolio problems with integer variables. European Journal of Operational Research 186 (2008) pp. 882-891.
[10] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.9
[11]  Hao-Chun Lu (2013).  A logarithnic method for eliminating binary variables and cpnstraints for the product of free-sign discrete functions.  Discrete Optimization (2013), Volume 10, Issue 1,  pp. 11-24.
[12]  Hao-Chun Lu (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms. Journal of Global Optimization (2017) 68, pp. 95-123.
[13] Mathworks. Solving a mixed integer engineering design problem using the genetic algorithm – MATLAB & Simulink Example.
https://www.mathworks.com/help/gads/examples/solving-a-mixed-integer-engineering-design-problem-using-the-genetic-algorithm.html/
[14] Microsoft Corp., BASIC, Second Edition (May 1982), Version 1.10. Boca Raton, Florida: IBM Corp., Personal Computer, P. O. Box 1328-C, Boca Raton, Florida 33432, 1981.
[15] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[16] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[17] H. S. Ryoo, N. V. Sahinidis (1995). Global optimization of nonconvex NLP and MINLP with applications in process design. Computers and Chemical Engineering Vol. 19 (5) (1995) pp. 551-566.
[18] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[19] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[20] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[21] Jung-Fa Tsai, Ming-Hua Lin (2007). Finding all solutions of systems of nonlinear equations with free variables. Engineering Optimization (2007) 39:6, pp. 649-659
[22] Jung-Fa Tsai, Ming-Hua Lin, Yi-Chung Hu (2007). On generalized geometric programming problems with non-positive variables. European Journal of Operational Research 178 (2007) pp. 10-19.
[23] Jung-Fa Tsai, Ming-Hua Lin (2008). Global optimization of signomial mixed-integer nonlinear programming with free variables. Journal of Global Optimization (2008) 42 pp. 39-49.
[24] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[25] Jsun Yui Wong (2012, April 12). The Domino Method of General Integer Nonlinear Programming Applied to a Nonlinear Fractional Programming Problem from the Literature. http://myblogsubstance.typepad.com/substance/2012/04/12/
[26] Xin-She Yang, Christian Huyck, Mehmet Karamanoglu, Nawaz Khan (2014). True global optimality of the pressure vessel design problem: A benchmark for bio-inspired optimisation algorithms.
https://arxiv.org/pdf/1403.7793.pdf.
[27] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[28] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.

Sunday, October 22, 2017

Solving a Version of Sandgren's Compression Spring Design Problem, Corrected Edition

Jsun Yui Wong

The computer program listed below seeks to solve the following problem from p. 116-118 of  the 2017 article by Lu [12]:   

Minimize      .25 * 3.141592654 ^ 2 * X(1) ^ 2 * X(2) * X(3) + .5 * 3.141592654 ^ 2 * X(1) ^ 2 * X(2)

subject to

        (3.141592654) ^ -1 * 1000 * (8 * X(1) ^ -3 * X(2) ^ 2 + 2.92 * X(1) ^ -2 * X(2) - 4.92 * X(1) ^ -1) - 189000 * (X(2) - X(1))<=0,


        8 * (11.5D+06) ^ -1 * 1000 * X(1) ^ -4 * X(2) ^ 3 * X(3) + 1.05 * X(1) * X(3) + 2.1 * X(1) - 14<=0,

        .009 - X(1)<=0,

        X(2) - 4<=0,

        3 * X(1) - X(2)<=0,

         8 * (11.5D+06) ^ -1 * 300 * X(1) ^ -4 * X(2) ^ 3 * X(3) - 6<=0,

        1.25 - 8 * (11.5D+06) ^ -1 * 700 * X(1) ^ -4 * X(2) ^ 3 * X(3)<=0,

         .009<=X(1) <=.5,   

        .6<= X(2) <=4,         

        1<= X(3) <=120,     
   
        where X(1) and X(2) are positive discrete variables and X(3) ls a positive integer variable.

X(4) through X(10) below are slack variables, which are added.

Like Lu [11, p. 23], the following computer program uses discreteness of .002 for X(1) and discreteness of .02 for X(2).  That gives line 67 and line 69, which are
67 A(1) = .009 + INT(RND * 250) * .002 and 69 A(2) = .6 + INT(RND * 170) * .02, respectively.


0 DEFDBL A-Z

2 DEFINT K

3 DIM B(99), N(99), A(99), H(99), L(99), U(99), X(1111), D(111), P(111), PS(33)
12 FOR JJJJ = -32000 TO 32000 STEP .01

    14 RANDOMIZE JJJJ
    16 M = -1D+37

    22 REM


    67 A(1) = .009 + INT(RND * 250) * .002


    69 A(2) = .6 + INT(RND * 170) * .02

    77 A(3) = 1 + FIX(RND * 120)

    79 REM


    128 FOR I = 1 TO 30000



        129 FOR KKQQ = 1 TO 3

            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ

        133 FOR IPP = 1 TO (1 + FIX(RND * 3))

            181 REM J = 1 + FIX(RND * 2)

            183 REM r = (1 - RND * 2) * A(J)
            187 REM X(J) = A(J) + (RND ^ (RND * 10)) * r


            189 IF RND < .333 THEN X(1) = .009 + INT(RND * 250) * .002 ELSE IF RND < .5 THEN X(2) = .6 + INT(RND * 170) * .02 ELSE X(3) = 1 + FIX(RND * 120)


        191 NEXT IPP


        196 REM


        201 IF X(1) < .009 THEN 1670
        203 IF X(1) > .5 THEN 1670
        255 REM

        258 IF X(2) < .6 THEN 1670
        266 IF X(2) > 4 THEN 1670

        277 IF X(3) < 1 THEN 1670
        288 IF X(3) > 120 THEN 1670


        304 X(4) = -(3.141592654) ^ -1 * 1000 * (8 * X(1) ^ -3 * X(2) ^ 2 + 2.92 * X(1) ^ -2 * X(2) - 4.92 * X(1) ^ -1) + 189000 * (X(2) - X(1))


        306 X(5) = -8 * (11.5D+06) ^ -1 * 1000 * X(1) ^ -4 * X(2) ^ 3 * X(3) - 1.05 * X(1) * X(3) - 2.1 * X(1) + 14


        307 X(6) = -.009 + X(1)

        317 X(7) = -X(2) + 4


        320 X(8) = -3 * X(1) + X(2)


        321 X(9) = -8 * (11.5D+06) ^ -1 * 300 * X(1) ^ -4 * X(2) ^ 3 * X(3) + 6


        323 X(10) = -1.25 + 8 * (11.5D+06) ^ -1 * 700 * X(1) ^ -4 * X(2) ^ 3 * X(3)


        325 FOR J99 = 4 TO 10


            330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0

        331 NEXT J99


        359 POBA = -.25 * 3.141592654 ^ 2 * X(1) ^ 2 * X(2) * X(3) - .5 * 3.141592654 ^ 2 * X(1) ^ 2 * X(2) + 1000000 * (X(9) + X(10) + X(4) + X(5) + X(6) + X(7) + X(8))


        466 P = POBA

        1111 IF P <= M THEN 1670



        1452 M = P
        1454 FOR KLX = 1 TO 10


            1459 A(KLX) = X(KLX)
        1460 NEXT KLX
        1557 REM GOTO 128

    1670 NEXT I

    1889 IF M < -2.65 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), A(5)
    1903 PRINT A(6), A(7), A(8), A(9), A(10)
    1907 PRINT M, JJJJ

1999 NEXT JJJJ

This BASIC computer program was run with qb64v1000-win [24]. The complete output through JJJJ =  -31996.3200000006 is shown below:

.287         1.3         8         0         0
0         0         0         0         0
-2.642085696658291         -31999.99


.287         1.3         8         0         0
0         0         0         0         0
-2.642085696658291         -31997.97000000033


.287         1.3         8         0         0
0         0         0         0         0
-2.642085696658291         -31997.84000000035

.287         1.3         8         0         0
0         0         0         0         0
-2.642085696658291         -31997.78000000036


.287         1.3         8         0         0
0         0         0         0         0
-2.642085696658291         -31997.75000000036


.287         1.3         8         0         0
0         0         0         0         0
-2.642085696658291         -31996.3200000006

Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.  One can compare the solutions above to the solutions given in Lu [12, Table 7, p. 120] and in Lu [11, Table 8, p. 24].

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [24], the wall-clock time for obtaining the output through
JJJJ= -31996.3200000006 was 42 seconds, including the seconds for creating the .EXE file.   

Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] Yuichiro Anzai (1974). On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.       
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9] Han-Lin Li, Jung-Fa Tsai (2008). A distributed computational algorithm for solving portfolio problems with integer variables. European Journal of Operational Research 186 (2008) pp. 882-891.
[10] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.9
[11]  Hao-Chun Lu (2013).  A logarithnic method for eliminating binary variables and cpnstraints for the product of free-sign discrete functions.  Discrete Optimization (2013), Volume 10, Issue 1,  pp. 11-24.
[12]  Hao-Chun Lu (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms. Journal of Global Optimization (2017) 68, pp. 95-123.
[13] Mathworks. Solving a mixed integer engineering design problem using the genetic algorithm – MATLAB & Simulink Example.
https://www.mathworks.com/help/gads/examples/solving-a-mixed-integer-engineering-design-problem-using-the-genetic-algorithm.html/
[14] Microsoft Corp., BASIC, Second Edition (May 1982), Version 1.10. Boca Raton, Florida: IBM Corp., Personal Computer, P. O. Box 1328-C, Boca Raton, Florida 33432, 1981.
[15] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[16] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[17] H. S. Ryoo, N. V. Sahinidis (1995). Global optimization of nonconvex NLP and MINLP with applications in process design. Computers and Chemical Engineering Vol. 19 (5) (1995) pp. 551-566.
[18] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[19] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[20] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[21] Jung-Fa Tsai, Ming-Hua Lin (2007). Finding all solutions of systems of nonlinear equations with free variables. Engineering Optimization (2007) 39:6, pp. 649-659
[22] Jung-Fa Tsai, Ming-Hua Lin, Yi-Chung Hu (2007). On generalized geometric programming problems with non-positive variables. European Journal of Operational Research 178 (2007) pp. 10-19.
[23] Jung-Fa Tsai, Ming-Hua Lin (2008). Global optimization of signomial mixed-integer nonlinear programming with free variables. Journal of Global Optimization (2008) 42 pp. 39-49.
[24] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[25] Jsun Yui Wong (2012, April 12). The Domino Method of General Integer Nonlinear Programming Applied to a Nonlinear Fractional Programming Problem from the Literature. http://myblogsubstance.typepad.com/substance/2012/04/12/
[26] Xin-She Yang, Christian Huyck, Mehmet Karamanoglu, Nawaz Khan (2014). True global optimality of the pressure vessel design problem: A benchmark for bio-inspired optimisation algorithms.
https://arxiv.org/pdf/1403.7793.pdf.
[27] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[28] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.

Solving a Version of Sandgren's Compression Spring Design Problem

Jsun Yui Wong

The computer program listed below seeks to solve the following problem from p. 116-118 of  the 2017 article by Lu [12]:   

Minimize      .25 * 3.141592654 ^ 2 * X(1) ^ 2 * X(2) * X(3) + .5 * 3.141592654 ^ 2 * X(1) ^ 2 * X(2)

subject to
        (3.141592654) ^ -1 * 1000 * (8 * X(1) ^ -3 * X(2) ^ 2 + 2.92 * X(1) ^ -2 * X(2) - 4.92 * X(1) ^ -1) - 189000 * (X(2) - X(1))<=0,


        8 * (11.5D+06) ^ -1 * 1000 * X(1) ^ -4 * X(2) ^ 3 * X(3) + 1.05 * X(1) * X(3) + 2.1 * X(1) - 14<=0,

        .009 - X(1)<=0,

        X(2) - 4<=0,

        3 * X(1) - X(2)<=0,

         8 * (11.5D+06) ^ -1 * 300 * X(1) ^ -4 * X(2) ^ 3 * X(3) - 6<=0,

        1.25 - 8 * (11.5D+06) ^ -1 * 700 * X(1) ^ -4 * X(2) ^ 3 * X(3)<=0,

         .009<=X(1) <=.5,   

        .6<= X(2) <=4,         

        1<= X(3) <=120,     
   
        where X(1) and X(2) are positive discrete variables and X(3) ls a positive integer variable.

X(4) through X(10) below are slack variables, which are added.

Like Lu [11, p. 23], the following computer program uses discreteness of .002 for X(1) and discreteness of .02 for X(2).  That gives line 67 and line 69, which are
67 A(1) = .009 + INT(RND * 250) * .002 and 69 A(2) = .6 + INT(RND * 170) * .02, respectively.


0 DEFDBL A-Z

2 DEFINT K

3 DIM B(99), N(99), A(99), H(99), L(99), U(99), X(1111), D(111), P(111), PS(33)
12 FOR JJJJ = -32000 TO 32000 STEP .01


    14 RANDOMIZE JJJJ
    16 M = -1D+37

    22 REM


    67 A(1) = .009 + INT(RND * 250) * .002


    69 A(2) = .6 + INT(RND * 170) * .02

    77 A(3) = 1 + FIX(RND * 120)

    79 REM


    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 * 2))

            181 J = 1 + FIX(RND * 2)

            183 r = (1 - RND * 2) * A(J)
            187 X(J) = A(J) + (RND ^ (RND * 10)) * r

        191 NEXT IPP


        196 REM


        201 IF X(1) < .009 THEN 1670
        203 IF X(1) > .5 THEN 1670
        255 REM

        258 IF X(2) < .6 THEN 1670
        266 IF X(2) > 4 THEN 1670

        277 IF X(3) < 1 THEN 1670
        288 IF X(3) > 120 THEN 1670



        304 X(4) = -(3.141592654) ^ -1 * 1000 * (8 * X(1) ^ -3 * X(2) ^ 2 + 2.92 * X(1) ^ -2 * X(2) - 4.92 * X(1) ^ -1) + 189000 * (X(2) - X(1))


        306 X(5) = -8 * (11.5D+06) ^ -1 * 1000 * X(1) ^ -4 * X(2) ^ 3 * X(3) - 1.05 * X(1) * X(3) - 2.1 * X(1) + 14


        307 X(6) = -.009 + X(1)

        317 X(7) = -X(2) + 4


        320 X(8) = -3 * X(1) + X(2)


        321 X(9) = -8 * (11.5D+06) ^ -1 * 300 * X(1) ^ -4 * X(2) ^ 3 * X(3) + 6


        323 X(10) = -1.25 + 8 * (11.5D+06) ^ -1 * 700 * X(1) ^ -4 * X(2) ^ 3 * X(3)


        325 FOR J99 = 4 TO 10


            330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0

        331 NEXT J99


        359 POBA = -.25 * 3.141592654 ^ 2 * X(1) ^ 2 * X(2) * X(3) - .5 * 3.141592654 ^ 2 * X(1) ^ 2 * X(2) + 1000000 * (X(9) + X(10) + X(4) + X(5) + X(6) + X(7) + X(8))


        466 P = POBA

        1111 IF P <= M THEN 1670



        1452 M = P
        1454 FOR KLX = 1 TO 10



            1459 A(KLX) = X(KLX)
        1460 NEXT KLX
        1557 REM GOTO 128

    1670 NEXT I


    1889 IF M < -2.62 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), A(5)
    1903 PRINT A(6), A(7), A(8), A(9), A(10)
    1907 PRINT M, JJJJ

1999 NEXT JJJJ

This BASIC computer program was run with qb64v1000-win [24]. The complete output through JJJJ =-31998.28000000028 is shown below:

.2916175494333378     1.384178625681288         7
0     0
0     0     0     0     0   
-2.613976714086823        -31998.49000000024

.2916175518899017     1.384178658661224         7
0     0
0     0     0     0     0   
-2.613976820408248        -31998.28000000028

Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.  One can compare the two solutions above to the solutions given in Lu [12, Table 7, p. 120] and in Lu [11, Table 8, p. 24].

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [24], the wall-clock time for obtaining the output through JJJJ= -31998.28000000028  was 20 seconds, including the seconds for creating the .EXE file.     

Acknowledgment

I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.

References

[1] Yuichiro Anzai (1974). On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
http://www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.
[2] Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529. .
[3]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.       
[4] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[5] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[6] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Sinulation 18 (2013) 89-98.
[7] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:17-35.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2013). Erratum to: Cuckoo search algorithm: a metaheuristicapproach to solve structural optimization problem. Engineering with Computers (2013) 29:245.
[9] Han-Lin Li, Jung-Fa Tsai (2008). A distributed computational algorithm for solving portfolio problems with integer variables. European Journal of Operational Research 186 (2008) pp. 882-891.
[10] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.9
[11]  Hao-Chun Lu (2013).  A logarithnic method for eliminating binary variables and cpnstraints for the product of free-sign discrete functions.  Discrete Optimization (2013), Volume 10, Issue 1,  pp. 11-24.
[12]  Hao-Chun Lu (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms.  Journal of Global Optimization (2017) 68, pp. 95-123.
[13] Mathworks. Solving a mixed integer engineering design problem using the genetic algorithm – MATLAB & Simulink Example.
https://www.mathworks.com/help/gads/examples/solving-a-mixed-integer-engineering-design-problem-using-the-genetic-algorithm.html/
[14] Microsoft Corp., BASIC, Second Edition (May 1982), Version 1.10. Boca Raton, Florida: IBM Corp., Personal Computer, P. O. Box 1328-C, Boca Raton, Florida 33432, 1981.
[15] Sinan Melih Nigdeli, Gebrail Bekdas, Xin-She Yang (2016). Application of the Flower Pollination Algoritm in Structural Engineering. Springer International Publishing Switzerland 2016. http://www.springer.com/cda/content/document/cda…/
[16] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[17] H. S. Ryoo, N. V. Sahinidis (1995). Global optimization of nonconvex NLP and MINLP with applications in process design. Computers and Chemical Engineering Vol. 19 (5) (1995) pp. 551-566.
[18] c. R. Seshan, V. G. Tikekar (1980) Algorithms for Fractional Programming. Journal of the Indian Institute of Science 62 (B), Feb. 1980, Pp. 9-16.
[19] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[20] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[21] Jung-Fa Tsai, Ming-Hua Lin (2007). Finding all solutions of systems of nonlinear equations with free variables. Engineering Optimization (2007) 39:6, pp. 649-659
[22] Jung-Fa Tsai, Ming-Hua Lin, Yi-Chung Hu (2007). On generalized geometric programming problems with non-positive variables. European Journal of Operational Research 178 (2007) pp. 10-19.
[23] Jung-Fa Tsai, Ming-Hua Lin (2008). Global optimization of signomial mixed-integer nonlinear programming with free variables. Journal of Global Optimization (2008) 42 pp. 39-49.
[24] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[25] Jsun Yui Wong (2012, April 12). The Domino Method of General Integer Nonlinear Programming Applied to a Nonlinear Fractional Programming Problem from the Literature. http://myblogsubstance.typepad.com/substance/2012/04/12/
[26] Xin-She Yang, Christian Huyck, Mehmet Karamanoglu, Nawaz Khan (2014). True global optimality of the pressure vessel design problem: A benchmark for bio-inspired optimisation algorithms.
https://arxiv.org/pdf/1403.7793.pdf.
[27] Xin-She Yang, Amir Hossein Gandomi (2012). Bat algorithm: a novel approach for global engineering optimization. Engineering Computations: International Journal for Computer-Aided Engineering and Software, Vol. 20,No. 5, 2012, pp. 461-483.
[28] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.