Saturday, June 16, 2018

Everything You Need To Solve Your Mixed-Integer Nonlinear Programming (MINLP) Problems

Jsun Yui Wong

The computer program listed below seeks to solve the following problem based on the system reliability problem in Luus [25] and in Tambunen and Mawengkang [32]:

Maximize     

15
product    (1 - (1 - reliability(i)) ^ X(i))
i=1

subject to

15     
sum  cost(i) * X(i) <=400 
i=1

15
sum weight(i) * X(i) <=414
i=1
       
 X(i) =1, 2, 3,..., 10, i=1,..., 15.

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

X(16) and X(17) below are slack variables added.

One notes line 107, which is 107 A(J44) = 1 + FIX(RND * 10).


0 DEFDBL A-Z

1 DEFINT K

2 DIM B(99), N(99), A(2002), H(99), L(99), U(99), X(2002), D(111), P(111), PS(33), J44(2002), J(99), AA(99), HR(32), HHR(32), LHS(44), PLHS(44), LB(22), UB(22), PX(22), CC(20), RR(20), WW(20)


11 RR(1) = .90: RR(2) = .75: RR(3) = .65: RR(4) = .80: RR(5) = .85: RR(6) = .93: RR(7) = .78: RR(8) = .66: RR(9) = .78: RR(10) = .91: RR(11) = .79: RR(12) = .77: RR(13) = .67: RR(14) = .79: RR(15) = .67


31 CC(1) = 5: CC(2) = 4: CC(3) = 9: CC(4) = 7: CC(5) = 7: CC(6) = 5: CC(7) = 6: CC(8) = 9: CC(9) = 4: CC(10) = 5: CC(11) = 6: CC(12) = 7: CC(13) = 9: CC(14) = 8: CC(15) = 6


51 WW(1) = 8: WW(2) = 9: WW(3) = 6: WW(4) = 7: WW(5) = 8: WW(6) = 8: WW(7) = 9: WW(8) = 6: WW(9) = 7: WW(10) = 8: WW(11) = 9: WW(12) = 7: WW(13) = 6: WW(14) = 5: WW(15) = 7


88 FOR JJJJ = -32000 TO 32000

    89 RANDOMIZE JJJJ
    90 M = -3E+30


    106 FOR J44 = 1 TO 15


        107 A(J44) = 1 + FIX(RND * 10)

    109 NEXT J44


    128 FOR I = 1 TO 40000


        129 FOR KKQQ = 1 TO 15
            130 X(KKQQ) = A(KKQQ)
        131 NEXT KKQQ
        151 FOR IPP = 1 TO FIX(1 + RND * 3)
            153 j = 1 + FIX(RND * 15)
            154 r = (1 - RND * 2) * A(j)
            155 X(j) = A(j) + (RND ^ (RND * 10)) * r


        159 NEXT IPP
        311 FOR J44 = 1 TO 15
            312 X(J44) = INT(X(J44))


            313 IF X(J44) < 1 THEN 1670

            314 IF X(J44) > 10 THEN 1670

        317 NEXT J44


        371 SUMCON = 0
        374 FOR J44 = 1 TO 15
            376 SUMCON = SUMCON + CC(J44) * X(J44)


        377 NEXT J44
        378 X(16) = 400 - SUMCON
        379 IF X(16) < 0 THEN X(16) = X(16) ELSE X(16) = 0
        380 SUMWW = 0
        381 FOR J44 = 1 TO 15
            382 SUMWW = SUMWW + WW(J44) * X(J44)


        383 NEXT J44
        384 X(17) = 414 - SUMWW
        385 IF X(17) < 0 THEN X(17) = X(17) ELSE X(17) = 0




        386 SUMOBJ = 1
        387 FOR J44 = 1 TO 15
            388 SUMOBJ = SUMOBJ * (1 - (1 - RR(J44)) ^ X(J44))



        389 NEXT J44

        438 PDU = SUMOBJ + 1000000 * (X(16) + X(17))


        466 P = PDU
        1111 IF P <= M THEN 1670
        1452 M = P
        1454 FOR KLX = 1 TO 17

            1455 A(KLX) = X(KLX)
        1456 NEXT KLX


        1557 GOTO 128
    1670 NEXT I
    1889 IF M < .94 THEN 1999


    1904 PRINT A(1), A(2), A(3), A(4)
    1905 PRINT A(5), A(6), A(7), A(8)
    1906 PRINT A(9), A(10), A(11), A(12)

    1907 PRINT A(13), A(14), A(15), A(16), A(17)

    1915 PRINT M, JJJJ

1999 NEXT JJJJ


This BASIC computer program was run with QB64v1000-win [33]. The complete output through JJJJ = -31619 is shown below:

3      4      6      4
3      2      4      5
4      2      3      4
5      4      5      0      0
.9456133574581372         -31980

3      4      6      4
3      2      4      5
4      2      3      4
5      4      5      0      0
.9456133574581372         -31619

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 [33], the wall-clock time (not CPU time) for obtaining the output through JJJJ =  -31619 was 100 seconds, not including the time for “Creating .EXE file” (110 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] Andre R. S. Amaral (2006), On the Exact Solution of a Facility Layout Problem.  European Journal of Operational Research 173 (2006), pp. 508-518.

[2] Andre R. S. Amaral (2008), An Exact Approach to the One-Dimensional Facility Layout Problem.  Operations Research, Vol. 56, No. 4 (July-August, 2008), pp. 1026-1033.

[3] Andre R. S. Amaral (2011), Optimal Solutions for the Double Row Layout Problem.  Optimization Letters, DOI 10.1007/s11590-011-0426-8, published on line 30 November 2011, Springer-Verlag 2011.

[4] Andre R. S. Amaral (2012), The Corridor Allocation Problem.  Computers and Operations Research 39 (2012), pp. 3325-3330.

[5] Miguel F. Anjos, Anthony Vannelli, Computing Globally Optimal Solutions for Single-Row Layout Problems Using Semidefinite Programming and Cutting Planes.  INFORMS Journal on Computing, Vol. 20, No. 4, Fall 2008, pp. 611-617.

[6] Miguel F. Anjos (2012), FLPLIB--Facility Layout Database.  Retrieved on September 25 2012 from www.gerad.ca/files/Sites/Anjos/indexFR.html

[7] David L. Applegate, Robert E. Bixby, Vasek Chvatal, William J. Cook, The Traveling Salesman Problem: A Computational Study.  Princeton and Oxford: Princeton University Press, 2006.

[8] Jerome Bracken, Garth P. McCormick, Selected Applications of Nonlinear Programming.  New York: John Wiley and Sons, Inc., 1968.

[9] R. C. Carlson and G. L. Nemhauser, Scheduling To Minimize Interaction Cost.  Operations Research, Vol. 14, No. 1 (Jan. - Feb., 1966), pp. 52-58.

[10] George B. Dantzig, Discrete-Variable Extremum Problems.  Operations Research, Vol. 5, No. 2 (Apr., 1957), pp. 266-277.

[11] C. A. Floudas, A. R. Ciric (1989), Strategies for Overcoming Uncertainties in Heat Exchanger Network Synthesis.  Computers and Chemical Engineering, Vol 13, No. 10, pp. 1133-1152, 1989.

[12] C. A. Floudas, A. Aggarwal, A. R. Ciric (1989), Global Optimum Search for Nonconvex NLP and MINLP Problems.  Computers and Chemical Engineering, Vol 13, No. 10, pp. 1117-1132, 1989.

[13] C. A. Floudas, P. M. Pardalos, A Collection of Test Problems for Constrained Global Optimization Algorithms.  Springer-Verlag, 1990.

[14] G. Dantzig, R. Fulkerson, S. Johnson, Solution of a Large-Scale Traveling-Salesman Problem.
Operations Research, Vol. 2, No. 4 (Nov., 1954), pp. 393-410.

[15] Diptesh Ghosh, Ravi Kothari, Population Heuristics for the Corridor Allocation Problem, W.P. No. 2012-09-02, September 2012.  Retrieved on September 14 2012 from Google search.

[16]  Ignacio E. Grossmann.  Overview of Mixed-integer Nonlinear Programming.  https://egon.cheme.cmu.edu/ewo/docs/EWOMINLPGrossmann.pdf

[17] David M. Himmelblau, Applied Nonlinear Programming.  New York: McGraw-Hill Book Company, 1972.

[18] Willi Hock, Klaus Schittkowski, Test Examples for Nonlinear Programming Codes.  Berlin: Springer-Verlag, 1981.

[19] Philipp Hungerlaender, Miguel F. Anjos (January 2012), A Semidefinite Optimization Approach to Free-Space Multi-Row Facility Layout.  Les Cahiers du GERAD.  Retrieved from www.gerad.ca/fichiers/cahiers/G-2012-03.pdf

[20] Philipp Hungerlaender (April 2012), Single-Row Equidistant Facility Layout as a Special Case of Single-Row Facility Layout.  Retrieved from www.optimization-online.org./DB_HTML/2012/04/3432.html

[21] Michael Junger, Thomas M. Liebling, Dennis Naddef, George L. Nemhauser, William R. Pulleybank, Gerhart Reinelt, Giovanni Rinaldi, Lawrence A. Wolsey--Editors, 50 Years of Integer Programming 1958-2008.  Berlin: Springer, 2010.

[22]  Adhe Kania, Kuntjoro Adji Sidarto (2016).  Solving mixed integer  nonlinear programming problems using spiral dynamics optimization algorithm.  AIP Conference Proceedings 1716, 020004 (2016).
https://doi.org/10.1063/1.4942987.  Published by the American Institute of Physics.

[23]  A. H. Land, A. G. Doig, An Automatic Method of Solving Discrete Programming Problems.  Econometrica, Vol. 28, No. 3 (Jul., 1960), pp. 497-520.

[24] E. L. Lawler, M. D. Bell, A Method for Solving Discrete Optimization Problems.  Operations Research, Vol. 14, No. 6 (Nov.-Dec., 1966), pp. 1098-1112.


[25]  Rein Luus (1975).  Optimization of System Reliability by a New Nonlinear Integer Programming Procedure. IEEE Transactions on Reliability, Vol. R-24, No. 1, April 1975, pp. 14-16.

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

[27] C. E. Nugent, T. E. Vollmann, J. Ruml (1968), An Experimental Comparison of Techniques for the Assignment of Facilities to Locations, Operations Research 16 (1968), pp. 150-173.

[28] Panos Y. Papalambros,  Douglass J. Wilde, Principles of Optimal Design, Second Edition.  Cambridge University Press, 2000.

[29] H. S. Ryoo, N. V. Sahinidis (1995), Global Optimization of Nonconvex NLPs and MINLPs with Applications in Process Design.  Computers and Chemical Engineering, Vol. 19, No. 5, pp. 551-566, 1995.

[30] Donald M. Simmons (1969), One-Dimensional Space Allocation: An Ordering Algorithm.     Operations Research, Vol. 17, No. 5 (Sep. - Oct., 1969), pp. 812-826.

[31] G. Stephanopoulos, A. W. Westerberg, The Use of Hestenes' Method of Multipliers to Resolve
Dual Gaps in Engineering System Optimization.  Journal of Optimization Theory and Applications,  Vol.15, No. 3, pp. 285-309, 1975.


[32]  Hardi Tambunen, Herman Mawengkang (2016).  Solving Mixed Integer Non-Linear Programming Using Active Constraint.  Global Journal of Pure and Applied Mathematics, Volume 12, Number 6 (2016), pp. 5267-5281.  http://www.ripublication.com/gjpam.htm

[33]  Wikipedia, QB64, https://en.wikipedia.org/wiki/QB64.

[34] Jsun Yui Wong (2009, July 18).  An Integer Programming Computer Program Applied to One-Dimensional Space Allocation.  Retrieved from http://wongsllllblog.blogspot.com/2009/07/

[35] Jsun Yui Wong (2009, December 18).  A Heuristic Nonlinear Integer Solver Applied to a Problem of Assignment of Facilities to Locations.  Retrieved from http://wongsnewnewblog.blogspot.ca/2009/12/

[36] Jsun Yui Wong (2011, July 23).  A General Nonlinear Integer/Discrete/Continuous Programming Solver Applied to Three Instances of the Haverly Pooling Problem.  Retrieved from http://myblogsubstance.typepad.com/substance/2011/07/

[37] Jsun Yui Wong (2011 July 27).   A General Nonlinear Integer/Discrete/Continuous Programming Solver Applied to an Alkylation-Process Model, Sixth Edition.  Retrieved from http://computationalresultsfromcomputerprograms.wordpress.com/2011/07/27/

[38] Jsun Yui Wong (2012, April 24).  The Domino Method of General Integer Nonlinear Programming  Applied to Problem 10 of Lawler and Bell.  Retrieved from http://computationalresultsfromcomputerprograms.wordpress.com/2012/4/24/

[39] Jsun Yui Wong (2012, September 27).  A Nonlinear Integer/Discrete/Continuous Programming Solver Applied to a Linear Ordering Problem with 22 Facilities.  Retrieved from http://computationalresultsfromcomputerprograms.wordpress.com/2012/9/27/

[40]  Jsun Yui Wong (2013 January 10).  The Domino Method of General Integer Nonlinear Programming Applied to Alkylation Process Optimization.  http://myblogsubstance.typepad.com/substance/2013/01/

No comments:

Post a Comment