Friday, October 20, 2017

Approximating Continuous Variables with Discrete Variables by Using the Method of the Present Blog

Jsun Yui Wong

Based on the problem on p. 113 of the 2017 article by Lu [11], the computer program listed below seeks to solve the following problem:   

Minimize           2 * X(1) ^ .9 * X(2) ^ -1.5 * X(3) ^ -3 + 5 * X(4) ^ -.3 * X(5) ^ 2.6 + 4.7 * X(6) ^ -1.8 * X(7) ^ -.5 * X(8)

subject to

        7.2 * X(1) ^ -3.8 * X(2) ^ 2.2 * X(3) ^ 4.3 + .5 * X(4) ^ -.7 * X(5) ^ -1.6 + .2 * X(6) ^ 4.3 * X(7) ^ -1.9 * X(8) ^ 3.5<=695479

        10 * X(1) ^ 2.3 * X(2) ^ 1.7 * X(3) ^ 4.5<=1963735

         .6 * X(4) ^ 2.1 * X(5) ^ -.4<=2.84

         6.2 * X(6) ^ 4.5 * X(7) ^ -2.7 * X(8) ^ -.6<=13105

         3.1 * X(1) ^ 1.6 * X(2) ^ .4 * X(3) ^ -3.8<=131

         3.7 * X(4) ^ 5.4 * X(5) ^ -1.3<=9068

         .3 * X(6) ^ -1.1 * X(7) ^ 3.2 * X(8) ^ 5.6<=730

        .5 <=X(i)<=5.5, i=1,..., 8,

        where all eight variables are discrete variables with discreteness of .01.

One notes line 67, which is 67 A(J55) = .5 + INT(RND * 500) * .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 8


        67 A(J55) = .5 + INT(RND * 500) * .01
    71 NEXT J55

    128 FOR I = 1 TO 10000


        129 FOR KKQQ = 1 TO 8

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

            181 J = 1 + FIX(RND * 8)

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

        191 NEXT IPP

        196 FOR J44 = 1 TO 8

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

        305 X(9) = 695479 - 7.2 * X(1) ^ -3.8 * X(2) ^ 2.2 * X(3) ^ 4.3 - .5 * X(4) ^ -.7 * X(5) ^ -1.6 - .2 * X(6) ^ 4.3 * X(7) ^ -1.9 * X(8) ^ 3.5

        306 X(10) = 1963735 - 10 * X(1) ^ 2.3 * X(2) ^ 1.7 * X(3) ^ 4.5



        307 X(11) = 2.84 - .6 * X(4) ^ 2.1 * X(5) ^ -.4

        317 X(12) = 13105 - 6.2 * X(6) ^ 4.5 * X(7) ^ -2.7 * X(8) ^ -.6
        320 X(13) = 131 - 3.1 * X(1) ^ 1.6 * X(2) ^ .4 * X(3) ^ -3.8


        321 X(14) = 9068 - 3.7 * X(4) ^ 5.4 * X(5) ^ -1.3
        323 X(15) = 730 - .3 * X(6) ^ -1.1 * X(7) ^ 3.2 * X(8) ^ 5.6



        325 FOR J99 = 9 TO 15


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

        331 NEXT J99



        359 POBA = -2 * X(1) ^ .9 * X(2) ^ -1.5 * X(3) ^ -3 - 5 * X(4) ^ -.3 * X(5) ^ 2.6 - 4.7 * X(6) ^ -1.8 * X(7) ^ -.5 * X(8) + 1000000 * (X(9) + X(10) + X(11) + X(12) + X(13) + X(14) + X(15))


        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 < -.73457 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)

    1950 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 [24]. The complete output through JJJJ = -31999.30000000011 is shown below:

.8995470444473125          5.499236273042842            5.494153702639266
1.83725169679902            .500000163840347
5.500000116942503          5.499990603156311            .5000004224069985
0   0
0   0   0   0   0
-.7345684486311725            -31999.49000000008

.9001589351195958           5.494286996731506            5.499995283054193
1.837252959730133           .5000000244508314
5.499967480413166           5.499930538245196            .4999999928413964
0   0
0   0   0   0   0
-.734567479639929           -31999.30000000011

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 [11, Table 6, p. 117].

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.30000000011 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 (2017).  Improved logarithnic linearizing method for optimization problems with free-sign pure discrete signomial terms.    Journal of Global Optimization (2017) 68, pp. 95-123.
[12] 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/
[13] Ong Kok Meng, Ong Pauline, Sia Chee Kiong, H. A. Wahab, N. Jafferi. Application of Modified Flower Pollination Algorithm on Mechanical Engineering Design Problem. IOP Conf. Series: Materials Science and Engineering 165 (2017) 012032.
[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 15, 2017

Solving an Integer, Continuous, and Nonlinear Fractional Programming Problem

Jsun Yui Wong

The computer program listed below seeks to solve Tsai’s Example 3 [20, p. 408] plus the restrictions that X(1) and X(2) are integer variables.  In other words,
minimize (2 + X(5)) / (X(1) * X(2) * (2 * X(3) + X(4))) – X(5) ^ .5 * X(3) ^ 1.5 + 2 * X(2) + X(4)
subject to
8 / (X(1) * (X(2) + 3 * X(4)) ^ 2) + 1 / (X(5) ^ 3)<=2,
– 2 * X(1) + X(3) – X(4)<=10,
X(1) + X(3) + .5 * X(5)<=8,
0.1<X(1), X(2), X(3), X(4), X(5)<=10,
X(1) and X(2) are integers.

One notes line 193 and line 195, which are 193 X(1) = INT(X(1)) and 195 X(2) = INT(X(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
    70 FOR J44 = 1 TO 5

        72 A(J44) = .1 + RND * 9.9



    73 NEXT J44



    128 FOR I = 1 TO 1000


        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 r = (1 - RND * 2) * A(J)
            187 X(J) = A(J) + (RND ^ (RND * 10)) * r

        191 NEXT IPP

        193 X(1) = INT(X(1))
        195 X(2) = INT(X(2))

        196 FOR J99 = 1 TO 5

            201 IF X(J99) < .1 THEN 1670
            203 IF X(J99) > 10 THEN 1670
        204 NEXT J99

        305 X(6) = 2 - 8 / (X(1) * (X(2) + 3 * X(4)) ^ 2) - 1 / (X(5) ^ 3)



        306 X(7) = 10 + 2 * X(1) - X(3) + X(4)



        307 X(8) = 8 - X(1) - X(3) - .5 * X(5)

        325 FOR J99 = 6 TO 8

            327 XX(J99) = X(J99)



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

        331 NEXT J99



        357 POBA = -(2 + X(5)) / (X(1) * X(2) * (2 * X(3) + X(4))) + X(5) ^ .5 * X(3) ^ 1.5 - 2 * X(2) - X(4) + 1000000 * (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 GOTO 128

    1670 NEXT I



    1889 IF M < 19.66716 THEN 1999


    1900 PRINT A(1), A(2), A(3), A(4), A(5)

    1902 PRINT A(6), A(7), A(8)

    1912 PRINT M, JJJJ

1999 NEXT JJJJ

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

1       1        5.305667124554657         .337658200135698
3.388665750861434
.0       0       0
19.66716832645138         -31996.3200000006

1       1        5.305604649517398         .3376577173193283.
3.388790700959914
.0       0       0
19.6671691557842           -31993.730000001

1       1        5.303200376710177         .3376391826591685.
3.393599246578964
.0       0       0
19.6671855740736           -31991.8900000013

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 [24], the wall-clock time for obtaining the output through JJJJ= -31991.8900000013 was 45 seconds, including the time 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] 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] 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] Harry Markowitz (1952). Portfolio Selection. The Journal of Finance 7 (2008) pp. 77-91.
[12] 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/
[13] Ong Kok Meng, Ong Pauline, Sia Chee Kiong, H. A. Wahab, N. Jafferi. Application of Modified Flower Pollination Algorithm on Mechanical Engineering Design Problem. IOP Conf. Series: Materials Science and Engineering 165 (2017) 012032.
[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.

Friday, October 13, 2017

Solving a Nonconvex Generalized Geometric Programming Problem with Continuous and Discrete Free Variables


Jsun Yui Wong

The computer program listed below seeks to solve the following problem from Li and Tsai [10, p. 1190]:

Minimize      X(1) ^ 3 * X(2) ^ 1.5 * X(3) ^ 3 + X(2) ^ 5.5 * X(3) + X(1) ^ 5

subject to

         3 * X(1) + 2 * X(2) - X(3)<=7,
     
         -5<=X(1) <= 2,
   
         0<=X(2) <=4,
     
        -5<= X(3) <=-1,
       
X(1) and X(2) are integers.

"This problem is a nonconvex GGP program with continuous and discrete variables.  Current exponential transformation methods [8, 9, 11, 20 ]) developed for solving mixed-integer GGP problems can not be adopted to treat this kind of problems," Li and Tsai [10, p. 1190].  For these four references, see Li and Tsai [10, p. 1192].

The added variable X(4) below is a slack variable.  One takes note of line 330, which is 330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.


0 DEFDBL A-Z

2 DEFINT K

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

    14 RANDOMIZE JJJJ
    16 M = -1D+37

    43 IF RND < .125 THEN A(1) = -5 ELSE IF RND < .143 THEN A(1) = -4 ELSE IF RND < .167 THEN A(1) = -3 ELSE IF RND < .2 THEN A(1) = -2 ELSE IF RND < .25 THEN A(1) = -1 ELSE IF RND < .333 THEN A(1) = 0 ELSE IF RND < .5 THEN A(1) = 1 ELSE A(1) = 2


    46 IF RND < .2 THEN A(2) = 0 ELSE IF RND < .25 THEN A(2) = 1 ELSE IF RND < .333 THEN A(2) = 2 ELSE IF RND < .5 THEN A(2) = 3 ELSE A(2) = 4


    58 A(3) = -5 + RND * 4


    128 FOR I = 1 TO 1000



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


            181 J = 3 + FIX(RND * 0)

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

        191 NEXT IPP

        211 IF X(1) < -5 THEN 1670

        212 IF X(1) > 2 THEN 1670

        213 IF X(2) < 0 THEN 1670

        214 IF X(2) > 4 THEN 1670


        215 IF X(3) < -5 THEN 1670

        216 IF X(3) > -1 THEN 1670


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

        325 FOR J99 = 4 TO 4


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


        331 NEXT J99


        357 POBA = -X(1) ^ 3 * X(2) ^ 1.5 * X(3) ^ 3 - X(2) ^ 5.5 * X(3) - X(1) ^ 5 + 1000000 * (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 GOTO 128

    1670 NEXT I

    1889 IF M < 4300 THEN 1999

    1900 PRINT A(1), A(2), A(3), A(4)
    1901 PRINT M, JJJJ

1999 NEXT JJJJ


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

-2         4         -3.265986310694554         0
4491.159993973288         -32000

-2         4         -3.26598632362249         0
4491.159993973288         -31999.77000000004

-2         4         -3.265986340302407         0
4491.159993973288         -31999.32000000011

-2         4         -3.265986334731874         0
4491.159993973288         -31998.94000000017

-2         4         -3.265986310366938         0
4491.159993973288         -31997.96000000033

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=  -31997.96000000033 was 10 seconds, including the time 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.
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]  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]  Han-Lin Li, Jung-Fa Tsai (2008).  Generalized Geometric Programming:  Mixed Continuous and Discrete Free Variables.  In: C. A. Floudas,  P. M. Pardalos (editors) Encyclopedia of Optimization, Second Edition, Ebook, pp. 1185-1192.  Springer, New York.

[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.9

[12]  Harry Markowitz  (1952).   Portfolio Selection.   The Journal of Finance  7 (2008) pp. 77-91.

[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]  Ong Kok Meng, Ong Pauline, Sia Chee Kiong, H. A. Wahab, N. Jafferi. Application of Modified Flower Pollination Algorithm on Mechanical Engineering Design Problem.  IOP Conf. Series: Materials Science and Engineering 165 (2017) 012032.

[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.  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]  Jung-Fa Tsai, Ming-Hua Lin (2013). An improved framework for solving NLIPs with signomial terms in the objective or constraints to global optimality.  Computers and Chemical Engineering (2013) 53 pp. 44-54.

[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] 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.

Monday, October 9, 2017

Applying the Nonlinear Programming Algorithm of This Blog To Solve a Geometric Programming Problem Involving Discrete Variables

Jsun Yui Wong

The computer program listed below seeks to solve the following problem from page 710 of Li and Lu [9, Program 3].

Minimize     X(1) ^ 3 * X(2) * X(3) ^ 3 * X(4) + X(1) ^ 3 * X(2) * X(3) * X(4) ^ 2

subject to

         X(1) ^ 3 * X(2) * X(3) ^ 2 + X(3) * X(4)<=-500,

        - X(1) ^ 3 * X(2) * X(3) + X(3) ^ 2 * X(4)<=500,

         -5<=X(1) <=5,

        -5<=X(2) <=5,

where

X(3) Epsilon{   -1,  0,  1,  4, 5,  6, 7.5,  8,  9, 10    },

X(4) Epsilon{  -27,  -18, -9, -7,  -4,  -1, 1, 3, 4, 5  }.
     
The added variables X(5) and X(6) below are slack variables.  One takes note of line 330, which is 330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.


0 DEFDBL A-Z

2 DEFINT K

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

    14 RANDOMIZE JJJJ
    16 M = -1D+37

    75 A(1) = -5 + RND * 10
    77 A(2) = -5 + RND * 10

    86 IF RND < .100 THEN A(3) = -1 ELSE IF RND < .111 THEN A(3) = 0 ELSE IF RND < .125 THEN A(3) = 1 ELSE IF RND < .143 THEN A(3) = 4 ELSE IF RND < .167 THEN A(3) = 5 ELSE IF RND < .200 THEN A(3) = 6 ELSE IF RND < .25 THEN A(3) = 7.5 ELSE IF RND < .333 THEN A(3) = 8 ELSE IF RND < .5 THEN A(3) = 9 ELSE A(3) = 10

    88 IF RND < .100 THEN A(4) = -27 ELSE IF RND < .111 THEN A(4) = -28 ELSE IF RND < .125 THEN A(4) = -9 ELSE IF RND < .143 THEN A(4) = -7 ELSE IF RND < .167 THEN A(4) = -4 ELSE IF RND < .200 THEN A(4) = -1 ELSE IF RND < .25 THEN A(4) = 1 ELSE IF RND < .333 THEN A(4) = 3 ELSE IF RND < .5 THEN A(4) = 4 ELSE A(4) = 5

    128 FOR I = 1 TO 3000

        129 FOR KKQQ = 1 TO 4
            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        133 FOR IPP = 1 TO (1 + FIX(RND * 1))
            134 r = (1 - RND * 2) * A(1)

            135 IF RND < .5 THEN 137

            136 X(1) = A(1) + (RND ^ (RND * 10)) * r
            137 IF RND < .5 THEN 139
            138 X(2) = A(2) + (RND ^ (RND * 10)) * r

            139 IF RND < .5 THEN 151

            141 IF RND < .100 THEN X(3) = -1 ELSE IF RND < .111 THEN X(3) = 0 ELSE IF RND < .125 THEN X(3) = 1 ELSE IF RND < .143 THEN X(3) = 4 ELSE IF RND < .167 THEN X(3) = 5 ELSE IF RND < .200 THEN X(3) = 6 ELSE IF RND < .25 THEN X(3) = 7.5 ELSE IF RND < .333 THEN X(3) = 8 ELSE IF RND < .5 THEN X(3) = 9 ELSE X(3) = 10
            151 IF RND < .5 THEN 191

            161 IF RND < .100 THEN X(4) = -27 ELSE IF RND < .111 THEN X(4) = -18 ELSE IF RND < .125 THEN X(4) = -9 ELSE IF RND < .143 THEN X(4) = -7 ELSE IF RND < .167 THEN X(4) = -4 ELSE IF RND < .200 THEN X(4) = -1 ELSE IF RND < .25 THEN X(4) = 1 ELSE IF RND < .333 THEN X(4) = 3 ELSE IF RND < .5 THEN X(4) = 4 ELSE X(4) = 5

        191 NEXT IPP

        208 IF X(1) < -5 THEN 1670

        210 IF X(1) > 5 THEN 1670


        211 IF X(2) < -5 THEN 1670

        212 IF X(2) > 5 THEN 1670

        301 X(5) = -500 - X(1) ^ 3 * X(2) * X(3) ^ 2 - X(3) * X(4)
        303 X(6) = 500 + X(1) ^ 3 * X(2) * X(3) - X(3) ^ 2 * X(4)

        325 FOR J99 = 5 TO 6

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

        331 NEXT J99

        357 POBA = -X(1) ^ 3 * X(2) * X(3) ^ 3 * X(4) - X(1) ^ 3 * X(2) * X(3) * X(4) ^ 2 + 1000000 * (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 GOTO 128

    1670 NEXT I

    1889 IF M < 369900 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 [26].  The complete output through JJJJ = -31999.96000000001 is shown below:

-4.958160881457932         4.323632488239245      1
-27
0         0           369953.99999999944      -31999.98

-4.842381486860238         4.64123558725103        1
-27
0         0           369953.99999999944      -31999.97000000001

-4.762515957826314         4.878668210944634         1
-27
0         0           369954                           -31999.96000000001

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.96000000001 was 8 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.
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]  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 , Hao-Chun Lu (2009).  Global Optimization for Generalized Geometric Programs with Mixed Free-Sign Variables.   Operations Research, 57 (3) May-June 2009, pp. 701-713.

[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.9

[12]  Harry Markowitz  (1952).   Portfolio Selection.   The Journal of Finance  7 (2008) pp. 77-91.

[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]  Ong Kok Meng, Ong Pauline, Sia Chee Kiong, H. A. Wahab, N. Jafferi. Application of Modified Flower Pollination Algorithm on Mechanical Engineering Design Problem.  IOP Conf. Series: Materials Science and Engineering 165 (2017) 012032.

[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.  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]  Jung-Fa Tsai, Ming-Hua Lin (2013). An improved framework for solving NLIPs with signomial terms in the objective or constraints to global optimality.  Computers and Chemical Engineering (2013) 53 pp. 44-54.

[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] 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.

Sunday, October 8, 2017

Solving a Geometric Programming Problem That Has Three Discrete Variables

Jsun Yui Wong

The computer program listed below seeks to solve the following problem from page 711 of Li and Lu [9, Program 8].

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

subject to

        X(1) ^ .8 + X(2) ^ .9 + X(3) ^ .5>=16,

         X(1) ^ -1.5 + X(2) ^ 1.7 + X(3) ^ 1.2<=31,

where

X(1) Epsilon { 1.1, 3.2, 5.3, 7.4, 9.5, 12.6, 14.7, 16.8},

X(2), X(3) Epsilon { 1.1, 1.2, 1.3, 1.4, 1.5, 2.0, 2.6, 2.7,  2.8,  2.9,  3.1,  3.2,  3.3,  3.4,  3.5,  4.0,  4.6,  4.7,  4.8,  4.9,
.
.
.

23.1, 23.2,  23.3, 23.4, 23.5, 24.0, 24.6, 24.7, 24.8, 24.9, 25.1, 25.2, 25.3, 25.4, 25.5, 26.0, 26.6, 26.7}.

The added variables X(4) and X(5) below are slack variables.  One takes note of line 330, which is 330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.


0 DEFDBL A-Z

2 DEFINT K

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

    14 RANDOMIZE JJJJ
    16 M = -1D+37
    51 IF RND < .125 THEN A(1) = 1.1 ELSE IF RND < .143 THEN A(1) = 3.2 ELSE IF RND < .167 THEN A(1) = 5.3 ELSE IF RND < .2 THEN A(1) = 7.4 ELSE IF RND < .25 THEN A(1) = 9.5 ELSE IF RND < .333 THEN A(1) = 12.6 ELSE IF RND < .5 THEN A(1) = 14.7 ELSE A(1) = 16.8

    71 FOR J44 = 2 TO 3
        73 J99 = 2 * INT(RND * 12)
        89 IF RND < .1 THEN A(J44) = 1.1 + J99 ELSE IF RND < .111 THEN A(J44) = 1.2 + J99 ELSE IF RND < .125 THEN A(J44) = 1.3 + J99 ELSE IF RND < .143 THEN A(J44) = 1.4 + J99 ELSE IF RND < .167 THEN A(J44) = 1.5 + J99 ELSE IF RND < .2 THEN A(J44) = 2.0 + J99 ELSE IF RND < .25 THEN A(J44) = 2.6 + J99 ELSE IF RND < .333 THEN A(J44) = 2.7 + J99 ELSE IF RND < .5 THEN A(J) = 2.8 + J99 ELSE A(J) = 2.9 + J99



    99 NEXT J44

    128 FOR I = 1 TO 20000


        129 FOR KKQQ = 1 TO 3
            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        133 FOR IPP = 1 TO (1 + FIX(RND * 1))
            151 J99 = 2 * INT(RND * 12)


            161 J = 2 + FIX(RND * 2)
            169 IF RND < .1 THEN X(J) = 1.1 + J99 ELSE IF RND < .111 THEN X(J) = 1.2 + J99 ELSE IF RND < .125 THEN X(J) = 1.3 + J99 ELSE IF RND < .143 + J99 THEN X(J) = 1.4 + J99 ELSE IF RND < .167 THEN X(J) = 1.5 + J99 ELSE IF RND < .2 THEN X(J) = 2.0 + J99 ELSE IF RND < .25 THEN X(J) = 2.6 + J99 ELSE IF RND < .333 THEN X(J) = 2.7 + J99 ELSE IF RND < .5 THEN X(J) = 2.8 + J99 ELSE X(J) = 2.9 + J99



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

        191 NEXT IPP


        211 IF X(1) < 1.1 THEN 1670

        212 IF X(1) > 16.8 THEN 1670

        213 IF X(2) < 1.1 THEN 1670

        214 IF X(2) > 26.7 THEN 1670

        215 IF X(3) < 1.1 THEN 1670

        216 IF X(3) > 26.7 THEN 1670

        301 X(4) = -16 + X(1) ^ .8 + X(2) ^ .9 + X(3) ^ .5

        303 X(5) = 31 - X(1) ^ -1.5 - X(2) ^ 1.7 - X(3) ^ 1.2


        325 FOR J99 = 4 TO 5


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


        331 NEXT J99


        357 POBA = -X(1) ^ 2 * X(2) ^ .816 + X(2) ^ .5 + X(3) ^ 1.2 + 1000000 * (X(4) + 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 GOTO 128

    1670 NEXT I

    1889 IF M < -685.5 THEN 1999

    1900 PRINT A(1), A(2), A(3), A(4)
    1901 PRINT A(5), M, JJJJ

1999 NEXT JJJJ


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

16.8         3.1         14       0
0         -685.0154632676962         -31988.7500000018

16.8         3.1         14         0
0         -685.0154632676962         -31974.990000004

16.8         3.1         14       0
0         -685.0154632676962         -31890.48000001753

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=  -31890.48000001753 was 8 minutes.

Acknowledgment

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

References

[1]  Yuichiro Anzai (1974).  On Integer Fractional Programming. Journal Operations Research Society of Japan, Volume 17, No. 1, March 1974, pp. 49-66.
www..orsj.or.jp/~archiv/pdf/e_mag/Vol.17_01_049.pdf.

[2]  Sjirk Boon. Solving systems of nonlinear equations. Sci. Math. Num-Analysis,1992, Newsgroup Article 3529.     .

[3]  H. Chickermane, H. C. Gea (1996)  Structural optimization using a new local approximation method, International Journal for Numerical Methods in Engineering, 39, pp. 829-846.

[4]  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 , Hao-Chun Lu (2009).  Global Optimization for Generalized Geometric Programs with Mixed Free-Sign Variables.   Operations Research, 57 (3) May-June 2009, pp. 701-713.

[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.9

[12]  Harry Markowitz  (1952).   Portfolio Selection.   The Journal of Finance  7 (2008) pp. 77-91.

[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]  Ong Kok Meng, Ong Pauline, Sia Chee Kiong, H. A. Wahab, N. Jafferi. Application of Modified Flower Pollination Algorithm on Mechanical Engineering Design Problem.  IOP Conf. Series: Materials Science and Engineering 165 (2017) 012032.

[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.  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]  Jung-Fa Tsai, Ming-Hua Lin (2013). An improved framework for solving NLIPs with signomial terms in the objective or constraints to global optimality.  Computers and Chemical Engineering (2013) 53 pp. 44-54.

[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] 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.

Saturday, October 7, 2017

Solving a Nonlinear Integer/Discrete Programming Problem That Has Three Discrete Variables

Jsun Yui Wong

The computer program listed below seeks to solve the following problem from page 51 of Tsai and Lin [24].

Minimize         X(1) ^ 2 * X(2) ^ .816 * X(3) ^ 1.2 - X(1) ^ .8 - X(2) ^ .5 - X(3) ^ 1.2
 
subject to

      X(1) ^ .8 + X(2) ^ .9 + X(3) ^ .5>=16,

      X(1) ^ -1.5 + X(2) ^ 1.7+ X(3) ^ 1.2<=500,

where

X(1) Epsilon { 1.1, 1.2, 1.3, 1.4},

X(2) Epsilon { 1.1, 1.2, 1.3, 1.4, 1.5, 2.0, ..., 13.4},

X(3) Epsilon { 1.1, 1.2, 1.3, 1.4, 1.5, 2.0, ..., 205.4}; (This list is only partly clear to the present blogger.)

X(1), X(2), and X(3) are three discrete variables. 

The added variables X(4) and X(5) below are slack variables.  One takes note of line 330, which is 330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.


0 DEFDBL A-Z

2 DEFINT K

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

    14 RANDOMIZE JJJJ
    16 M = -1D+37
    51 IF RND < .25 THEN A(1) = 1.1 ELSE IF RND < .333 THEN A(1) = 1.2 ELSE IF RND < .5 THEN A(1) = 1.3 ELSE A(1) = 1.4

    71 FOR J44 = 2 TO 3

        75 A(J44) = 1.1 + (INT(RND * 2043)) * .1

    79 NEXT J44

    128 FOR I = 1 TO 1000

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


            181 J = 2 + FIX(RND * 2)
            182 X(J) = 1.1 + (INT(RND * 2043)) * .1


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

        191 NEXT IPP

        211 IF X(1) < 1.1 THEN 1670

        212 IF X(1) > 1.4 THEN 1670

        213 IF X(2) < 1.1 THEN 1670

        214 IF X(2) > 13.4 THEN 1670

        215 IF X(3) < 1.1 THEN 1670

        216 IF X(3) > 205.4 THEN 1670


        301 X(4) = -16 + X(1) ^ .8 + X(2) ^ .9 + X(3) ^ .5

        303 X(5) = 500 - X(1) ^ -1.5 - X(2) ^ 1.7 - X(3) ^ 1.2

        325 FOR J99 = 4 TO 5


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


        331 NEXT J99


        357 POBA = -X(1) ^ 2 * X(2) ^ .816 * X(3) ^ 1.2 + X(1) ^ .8 + X(2) ^ .5 + X(3) ^ 1.2 + 1000000 * (X(4) + 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 GOTO 128

    1670 NEXT I

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

1999 NEXT JJJJ

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

1.1         13.4         21.2         0
0         -348.9524957034698        -31990.51000000152

1.1         13.4         21.1         0
0         -346.9514092084562         -31985.33000000235

1.1         13.4         21.2         0
0         -348.9524957034698         -31967.64000000518

1.1         13.4         21.1         0
0         -346.9514092084562         -31928.8400000114

1.1         13.4         21.1         0
0         -346.9514092084562         -31916.20000001341

Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.  If  21.1 is a possible value of X(3), then (1.1   13.4    21.1) is a solution to the problem given in Tsai and Lin [24, p. 51].

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=  -31916.20000001341 was 30 seconds, total.

Acknowledgment

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

References

[1]  Yuichiro Anzai (1974).  On Integer Fractional Programming. JaJournal 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]  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]  Harry Markowitz  (1952).   Portfolio Selection.   The Journal of Finance  7 (2008) pp. 77-91.

[12]  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/

[13]  Ong Kok Meng, Ong Pauline, Sia Chee Kiong, H. A. Wahab, N. Jafferi. Application of Modified Flower Pollination Algorithm on Mechanical Engineering Design Problem.  IOP Conf. Series: Materials Science and Engineering 165 (2017) 012032.

[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.  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]  Jung-Fa Tsai, Ming-Hua Lin (2013). An improved framework for solving NLIPs with signomial terms in the objective or constraints to global optimality.  Computers and Chemical Engineering (2013) 53 pp. 44-54.

[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] 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.

[28]  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.

[29]  B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.Computers and Structures 82 (2004) 241-256.

Tuesday, October 3, 2017

Solving a Signomial Nonlinear Integer/Discrete Programming Problem from the Literature

Jsun Yui Wong

The computer program listed below seeks to solve the following problem based on/modified from Example 5 on page 50 of Tsai and Lin [24].

Minimize         X(1) ^ 2 * X(2) ^ .816 * X(3) ^ 1.2 - X(1) ^ .8 - X(2) ^ .5 - X(3) ^ 1.2
 
subject to

      X(1) ^ .8 + X(2) ^ .9 + X(3) ^ .5>=16

      X(1) ^ -1.5 + X(2) ^ 1.7+ X(3) ^ 1.2<=500

where X(1), X(2), X(3) Epsilon { 1.1, 1.2, 1.3,..., 52.0}.
     
X(1), X(2), and X(3) are discrete variables.

The added variables X(4) and X(5) below are slack variables.  One takes note of line 330, which is 330 IF X(J99) < 0 THEN X(J99) = X(J99) ELSE X(J99) = 0.


0 DEFDBL A-Z

2 DEFINT K

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

    14 RANDOMIZE JJJJ
    16 M = -1D+37
    71 FOR J44 = 1 TO 3

        75 A(J44) = 1.1 + (INT(RND * 510)) * .1
    79 NEXT J44


    128 FOR I = 1 TO 50


        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 * 3)
            182 X(J) = 1.1 + (INT(RND * 510)) * .1
            183 REM r = (1 - RND * 2) * A(J)
            187 REM X(J) = A(J) + (RND ^ (RND * 10)) * r

        191 NEXT IPP

        211 IF X(1) < 1.1 THEN 1670

        212 IF X(1) > 52 THEN 1670

        213 IF X(2) < 1.1 THEN 1670

        214 IF X(2) > 52 THEN 1670

        215 IF X(3) < 1.1 THEN 1670

        216 IF X(3) > 52 THEN 1670


        301 X(4) = -16 + X(1) ^ .8 + X(2) ^ .9 + X(3) ^ .5

        303 X(5) = 500 - X(1) ^ -1.5 - X(2) ^ 1.7 - X(3) ^ 1.2

        325 FOR J99 = 4 TO 5


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


        331 NEXT J99


        357 POBA = -X(1) ^ 2 * X(2) ^ .816 * X(3) ^ 1.2 + X(1) ^ .8 + X(2) ^ .5 + X(3) ^ 1.2 + 1000000 * (X(4) + 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 GOTO 128

    1670 NEXT I

    1889 IF M < -8.33 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4)
    1901 PRINT A(5), M, JJJJ
1999 NEXT JJJJ


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

1.1        18.6       1.1       0
0         -8.222813024242807          -31988.67000000181

1.1        18.6       1.1       0
0         -8.222813024242807          -31981.340000003

1.1        18.7       1.1       0
0         -8.275851373759423          -31974.60000000407

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 [25], the wall-clock time for obtaining the output through JJJJ=-31974.60000000407 was 10 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. JJournal 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]  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]  Harry Markowitz  (1952).   Portfolio Selection.   The Journal of Finance  7 (2008) pp. 77-91.

[12]  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/

[13]  Ong Kok Meng, Ong Pauline, Sia Chee Kiong, H. A. Wahab, N. Jafferi. Application of Modified Flower Pollination Algorithm on Mechanical Engineering Design Problem.  IOP Conf. Series: Materials Science and Engineering 165 (2017) 012032.

[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.  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]  Jung-Fa Tsai, Ming-Hua Lin (2013). An improved framework for solving NLIPs with signomial terms in the objective or constraints to global optimality.  Computers and Chemical Engineering (2013) 53 pp. 44-54.

[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] 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.

[28]  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.

[29]  B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.Computers and Structures 82 (2004) 241-256.