Wednesday, November 1, 2017

Solving a Nonlinear Programming Problem Involving 3 Noncovex Posynomial Terms in Constraints

Jsun Yui Wong

The computer program listed below seeks to solve the following problem from Lu [14, p. 449]: 

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

subject to

         X(1) + X(3) + X(5) + X(7) - 2 * X(4)<=18,

         X(3) - X(4) + X(7) + 2 * X(6) - 3 * X(2)=12,

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

         .8 * X(1) * X(3) * X(4) - 3 * X(6)<=4,

         1.3 * X(2) * X(3) * X(6) - 3 * X(2)<=5,

        1<= X(i) <= 10, i=1, 5, 6, 7,

        1<= X(i) <= 1000, i=2, 3, 4.

One notes that the following computer program's line 283, which is 283 IF X(J99) < -2.55D-06 THEN X(J99) = X(J99) ELSE X(J99) = 0, uses the feasibility tolerance of
2.55*10^(-06) from Lu [14, p. 450].   


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(133)

12 FOR JJJJ = -32000 TO 32000 STEP .01


    14 RANDOMIZE JJJJ
    16 M = -1D+37

    22 FOR J55 = 1 TO 7


        67 A(J55) = 1 + RND * 3


    71 NEXT J55
 

    128 FOR I = 1 TO 200000


        129 FOR KKQQ = 1 TO 7


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

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


            151 J = 1 + FIX(RND * 7)

            153 r = (1 - RND * 2) * A(J)
            157 X(J) = A(J) + (RND ^ (RND * 10)) * r
         

        161 NEXT IPP
        163 REM

        164 X(3) = 12 + X(4) - X(7) - 2 * X(6) + 3 * X(2)
        197 IF X(1) < 1 THEN 1670

        199 IF X(1) > 10 THEN 1670

        201 IF X(2) < 1 THEN 1670

        203 IF X(2) > 1000 THEN 1670

        205 IF X(3) < 1 THEN 1670

        207 IF X(3) > 1000 THEN 1670

        209 IF X(4) < 1 THEN 1670

        211 IF X(4) > 1000 THEN 1670

        213 IF X(5) < 1 THEN 1670

        215 IF X(5) > 10 THEN 1670

        217 IF X(6) < 1 THEN 1670

        219 IF X(6) > 10 THEN 1670

        221 IF X(7) < 1 THEN 1670

        223 IF X(7) > 10 THEN 1670


        261 X(8) = 18 - X(1) - X(3) - X(5) - X(7) + 2 * X(4)

        264 X(9) = 5 - .5 * X(1) * X(2) * X(4) + 3 * X(7)

        267 X(10) = 4 - .8 * X(1) * X(3) * X(4) + 3 * X(6)

        269 X(11) = 5 - 1.3 * X(2) * X(3) * X(6) + 3 * X(2)
        281 FOR J99 = 8 TO 11

            283 IF X(J99) < -2.55D-06 THEN X(J99) = X(J99) ELSE X(J99) = 0


        285 NEXT J99


        365 POBA = X(1) - 2 * X(2) + 3 * X(3) - X(4) - X(5) ^ 2 + 5 * X(6) ^ .6 + 1000000 * (X(8) + X(9) + X(10) + X(11))

        466 P = POBA

        1111 IF P <= M THEN 1670


        1452 M = P
        1454 FOR KLX = 1 TO 11



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

    1670 NEXT I


    1889 IF M < 23.86 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), A(11), M, JJJJ

1999 NEXT JJJJ


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

9.999999994672203        1.00034612016621         1.000660271878407
1.001888834118436        1.000000008183936
6.148457689470717        2.705351543797224          0
0         0         0              23.86661799397463
-31999.64000000006

9.999999999978774        1.000048194661112         1.00135793334377
1.001998889919505        1.000000002143264
6.145317132756756        2.71015127504556          0
0          0          0            23.86463992982906
-31995.52000000072

Above there is no rounding by hand; it is just straight copying by hand from the monitor screen.  The computational results above can be compared with the results in Table 5 of Lu [14, p.  450].

On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM and qb64v1000-win [27], the wall-clock time for obtaining the output through
JJJJ= -31995.52000000072 was 190 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. 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 (2012).  An efficient convexification method for solving generalized geometric problems.  Journal of Industrial and Management Optimization, Volume 8, Number 2, May 2012, pp. 429-455.
[15]  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.
[16] 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/
[17] 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.
[18] 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…/
[19] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[20] 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.
[21] 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.
[22] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[23] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[24] 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
[25] 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.
[26] 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.
[27] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[28] 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/
[29]  Helen Wu (2015).  Geometric Programming.  https://optimization.mccormick.northwstern.edu/index.php/Geometric_Programming.
[30] 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.
[31] 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.
[32] B. D. Youn, K. K. Choi (2004). A new responsesurface methodology for reliability-based design optimization.  Computers and Structures 82 (2004) 241-256.

No comments:

Post a Comment