Monday, February 19, 2018

Solving a Nonlinear Integer Fractional Programming Problem with This Blog's Solver

Jsun Yui Wong


The computer program listed below seeks to solve the problem shown immediately below:

Maximize               (2 * X(1) + 4 * X(2)) / (4 * X(1) + X(2) + 1)

subject to

        - 2 * X(1) + X(2)   + X(3) = 1,

        5 * X(2) + 2 * X(1)  + X(4) = 23,   

         2 * X(1) + X(2)         + X(5) = 15, 

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

         4 * X(2) + X(1)    + X(7) = 22,

         5 * X(1) + 4 * X(2)   + X(8) = 46,

         -2 * X(2) + X(1)       + X(9) = 5,

            X(1)*X(2) = 0,

          0<=X(1), X(2), X(3),..., X(9)<=12,

          X(1) through X(9) are general integer variables.

One notes the special constraint above--X(1)*X(2) = 0; one also notes the second last line above, which is 0<=X(1), X(2), X(3),..., X(9)<=12.

The problem above is based on the following problem on page 560 of Garg and Swarup [12]:

Maximize          Z=     (2 * X(1) + 4 * X(2)) / (4 * X(1) + X(2) + 1)

subject to

        - 2 * X(1) + X(2)   + X(3) = 1,

        5 * X(2) + 2 * X(1)  + X(4) = 23,   

         2 * X(1) + X(2)         + X(5) = 15, 

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

         4 * X(2) + X(1)    + X(7) = 22,

         5 * X(1) + 4 * X(2)   + X(8) = 46,

         -2 * X(2) + X(1)       + X(9) = 5,

            X(1)*X(2) = 0.

Below one notes line 443, which is         443 POBA = (2 * X(1) + 4 * X(2)) / (4 * X(1) + X(2) + 1) + 1000000 * (X(3) + X(4) + X(5) + X(6) + X(7) + X(8) + X(9)) - 1000000 * ABS(X(1) * 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 -31999 STEP .01


    14 RANDOMIZE JJJJ
    16 M = -1D+37
    19 FOR J44 = 1 TO 9
        22 A(J44) = RND * 12
       
    31 NEXT J44
   

    128 FOR I = 1 TO 500000



        129 FOR KKQQ = 1 TO 9


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


            181 j = 1 + FIX(RND * 9)


            183 r = (1 - RND * 2) * A(j)
            187 X(j) = A(j) + (RND ^ (RND * 10)) * r
        222 NEXT IPP


        223 FOR j41 = 1 TO 9

            224 X(j41) = INT(X(j41))

            225 IF X(j41) < 0 THEN 1670


        235 NEXT j41



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

        303 X(4) = 23 - 5 * X(2) - 2 * X(1)

        305 X(5) = 15 - 2 * X(1) - X(2)

        307 X(6) = 4 - 2 * X(2) + 3 * X(1)

        309 X(7) = 22 - 4 * X(2) - X(1)

        311 X(8) = 46 - 5 * X(1) - 4 * X(2)

        313 X(9) = 5 + 2 * X(2) - X(1)




        337 FOR J44 = 3 TO 9


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


        339 NEXT J44
     
        443 POBA = (2 * X(1) + 4 * X(2)) / (4 * X(1) + X(2) + 1) + 1000000 * (X(3) + X(4) + X(5) + X(6) + X(7) + X(8) + X(9)) - 1000000 * ABS(X(1) * X(2))


        466 P = POBA

        1111 IF P <= M THEN 1670


        1450 M = P



        1454 FOR KLX = 1 TO 9

            1455 A(KLX) = X(KLX)
        1456 NEXT KLX
        1557 GOTO 128

    1670 NEXT I

    1889 IF M < -111111 THEN 1999
    1900 PRINT A(1), A(2), A(3), A(4), A(5)
    1901 PRINT A(6), A(7), A(8), A(9), M, JJJJ

1999 NEXT JJJJ


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

5 0 0 0 0
0 0 0 0       .4761904761904762
-31999.98

5 0 0 0 0
0 0 0 0       .4761904761904762
-31999.73000000004

5 0 0 0 0
0 0 0 0       .4761904761904762
-31999.72000000005

5 0 0 0 0
0 0 0 0       .4761904761904762
-31999.60000000006

0 1 0 0 0
0 0 0 0       2
-31999.56000000007

1 0 0 0 0
0 0 0 0       .4
-31999.4100000001

0 1 0 0 0
0 0 0 0       2
-31999.34000000011

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 [45], the wall-clock time for obtaining the output through JJJJ= -31999.34000000011 was 70 seconds, total,  including the time for "Creating .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 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]  S. S. Chadha (2002).   Fractional programming with absolute-value functions.   European Journal of Operational Research 141 (2002) pp. 233-238.
[4]  Ching-Ter Chang (2002).   On the posynomial fractional programming problems.  European Journal of Operational Research 143 (2002) pp. 42-52.
[5]  Ching-Ter Chang (2006).   Formulating the mixed integer fractional posynomial programming,  European Journal of Operational Research 173 (2006) pp. 370-386.     

[6]  Ching-Ter Chang (2017).   Fuzzy linearization strategy for multiple objective linear fractional programming with binary utility functions. Computers and Industrial Engineering 112 (2017) 437-446.     

[7] Piya Chootinan, Anthony Chen (2006). Constraint Handling in genetic algorithms using a gradient-based repair method. Computers and Operations Research 33 (2006) 2263-2281.
[8] Amir Hossein Gandomi, Xin-She Yang, Amir Hossein Alavi (2011). Mixed variable structural optimization using Firefly Algorithm, Computers and Structures 89 (2011) 2325-2336.
[9] Amir Hossein Gandomi, Xin-She Yang, Siamak Taratahari, Amir Hossein Alavi (2013). Firefly Algorithm with Chaos, Communications in Nonlinear Science and Numerical Simulation 18 (2013) 89-98.
[10]  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.
[11] 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.

[12]  K. C. Garg, Kanti Swarup  (1978).  Linear fractional functional complementary programming with extreme point optimization, Indian Journal of Pure and Applied Mathematics 9, 556-563.

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

[14]  Xue-Ping Hou,  Pei-Ping Shen, Chun-Feng Wang (2014).  Global Minimization for Generalized Polynomial Fractional Program.  Mathmatical Problems in Engineering, Volume 2014.  Hindawi Publishing Company.

[15]  Majid Jaberipour, Esmaile Khorram (2010).  Solving the sum of ratios problems by a harmony search algorithm.  Journal of Computational and Applied Mathematics 234 (2010) 733-742.

[16]  Sanjay Jain, Kailash Lachhwani (2010).  Linear plus fractional multiobjective programming problem with homogeneous constraints using fuzzy approach.  Iranian Journal of Operations Research, Vol. 2, No. 1, 2010, pp. 41-49.

[17]  Hongwei Jiao, Zhankui Wang, Yongqiang Chen (2013).   Global Optimization Algorithm for Sum of Generalized Polynomial Ratios Problems.  Applied Mathematical Modelling 37 (2013) 187-197.

[18]  Ali Husseinzadeh Kashan  (2011).  An effective algorithm for constrained global optimization and application to mechanical engineering design:  League championship algorithm (LCA).  Computer-Aided Design 43 (2011) 1769-1792.

[19]  Ali Husseinzadeh Kashan  (2015).  An effective algorithm for constrained optimization based on optics inspired optimization (OIO).  Computer-Aided Design 63 (2015) 52-71.

[20]  K. Lachhwani (2012).  Fuzzy Goal Programming Approach to Multi Objectve Quadratic Programming Problem.  Proceedings of the National Academy of Sciences, India, Section A Physical Sciences (October-December 2012) 82 (4): 317-322.
https://link.springer.com/journal/40010

[21] K. Lachhwani (2014).  FGP approach to multi objectve quadratic fractional programming problem.  International Journal of Industrial Mathematics, vol. 6, No.1, pp. 49-57.  Available online at http://ijim.srbiau.ac.ir/

[22]  Han-Lin Li, Jung-Fa Tsai, Christodoulos A. Floudas (2008).  Convex underestimating for posynomial functions of postive variables.  Optimization Letters 2, 333-340 (2008).
[23] 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.
[24] Han-Lin Li, Shu-Cherng Fang, Yao-Huei Huang, Tiantian Nie (2016).  An enhanced logarithmic method for signomial programming with discrete variables.  European Journal of Operational Research 255 (2016) pp. 922-934.
[25] Ming-Hua Lin, Jung-Fa Tsai (2011).  Finding multiple optimal solutions of signomial discrete programming problems with free variables, Optimization and Engineering (2011) 12:425-443.
[26] Ming-Hua Lin, Jung-Fa Tsai (2014). A deterministic global approach for mixed-discrete structural optimization, Engineering Optimization (2014) 46:7, pp. 863-879.
[27]  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.
[28]  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.
[29]  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.

[30] Kenneth R. MacCrimmon (1973).  An overview of multiple objective decision making.  In James L. Cochrane, Milan Zeleny (editors),  Multiple Criteria Decisiom Making.  University of South Carolina Press, Columbia.
[31] 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/
[32] 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.

[33] Katta G. Murty.  Operations Research.  Prentice-Hall, Inc., 1995..

[34] 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…/
[35] Gideon Oron (1979) An algorithm for optimizing nonlinear contrained zero-one problems to improve wastewater treatment, Engineering Optimization, 4:2, 109-114.
[36] Osama Abdel Raouf, Ibraham M. Hezam (2014).  Solving Fractional Programming Problems Based on Swarm Intelligence.  Journal of Industrial Engineering International (2014) 10:56.
[37] 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.
[38] 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.
[39]  Pei-Ping Shen, Yun-Peng Duan, Yong-Gang Pei.  A simplicial branch and duality boundalgorithm for the sum of convex-convex ratios problem.  Journal of Computational and Applied Mathematics 223 (2009) 145-158.
[40] P. B. Thanedar, G. N. Vanderplaats (1995). Survey of discrete variable optimization for structural design, Journal of Structural Engineering, 121 (2), 301-306 (1995).
[41] Jung-Fa Tsai (2005). Global optimization of nonlinear fractional programming problems in engineering design. Engineering Optimization (2005) 37:4, pp. 399-409.
[42] 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
[43] 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.
[44] 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.
[45] Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.
[46] Jsun Yui Wong (2018, January 1). Solving a Nonlinear Integer Fractional Programming Problem with 20 General Integer Variables. http://nonlinearintegerprogrammingsolver.blogspot.ca/2018/01/solving-nonlinear-integer-fractional.html.         

No comments:

Post a Comment