Jsun Yui Wong
Similar to the computer programs of the preceding papers, the computer program below seeks to solve Li and Sun's Problem 14.5, [10, p. 416], but with 10000 unknowns instead of 100 unknowns and two added constraints. Specifically the computer program below tries to minimize the following:
10000 10000
SIGMA X(i)^4 + [ SIGMA X(i) ]^2
i=1 i=1
subject to
X(1)^3+X(2)^3+X(3)^3+...+X(10000)^3 = 0
X(1)+X(2)+X(3)+...+X(10000) <= 0
-5<=X(i)<=5, X(i) integer, i=1, 2, 3,..., 10000.
One notes line 85, line 114, and line 175, which are 85 LB=-FIX(RND*6),
114 A(J44)=FIX(RND*(3)), and 175 IF X(J44)<LB THEN X(J44 )=A(J44 ), respectively.
0 REM DEFDBL J-Z
1 DEFINT J,K,B,X
2 DIM A(10001),X(10001)
81 FOR JJJJ=-32000 TO 32000
85 LB=-FIX(RND*6)
89 RANDOMIZE JJJJ
90 M=-1.5D+38
111 FOR J44=1 TO 10000
114 A(J44)=FIX(RND*(3))
117 NEXT J44
128 FOR I=1 TO 32000 STEP .5
129 FOR KKQQ=1 TO 10000
130 X(KKQQ)=A(KKQQ)
131 NEXT KKQQ
139 FOR IPP=1 TO FIX(1+RND*3)
140 B=1+FIX(RND*10000)
143 REM
167 IF RND<.5 THEN X(B)=CINT(A(B)-1) ELSE X(B)=CINT(A(B) +1 )
168 REM GOTO 170
169 REM IF A(B)=0 THEN X(B)=1 ELSE X(B)=0
170 NEXT IPP
171 FOR J44=1 TO 10000
174 IF X(J44)>5 THEN X(J44 )=A(J44 )
175 IF X(J44)<LB THEN X(J44 )=A(J44 )
177 NEXT J44
178 SUMY=0
179 FOR J44=1 TO 10000
180 SUMY=SUMY+X(J44)^3
181 NEXT J44
182 REM
183 U=0-SUMY
194 SUMNEW=0
195 FOR J44=1 TO 10000
196 SUMNEW=SUMNEW+X(J44)
197 NEXT J44
198 X(10001)=0- SUMNEW
199 IF X(10001)<0 THEN X(10001)=X(10001) ELSE X(10001)=0
396 SUMYONE=0
397 FOR J44=1 TO 10000
398 SUMYONE=SUMYONE+X(J44)^4
399 NEXT J44
400 SUMNEWTWO=0
403 FOR J44=1 TO 10000
405 SUMNEWTWO=SUMNEWTWO+ X(J44)
407 NEXT J44
411 SONETOTAL= -SUMYONE - ( SUMNEWTWO)^2 +5000000!*X(10001)-5000000!*ABS(U)
689 PD1=SONETOTAL
1111 IF PD1<=M THEN 1670
1452 M=PD1
1454 FOR KLX=1 TO 10001
1455 A(KLX)=X(KLX)
1456 NEXT KLX
1555 UU=U
1556 LLB=LB
1557 GOTO 128
1670 NEXT I
1889 REM IF M<-37000! THEN 1999
1931 PRINT A(1),A(2),A(3),A(4),A(5)
1938 PRINT A(4996),A(4997),A(4998),A(4999),A(10000)
1939 PRINT M,JJJJ,A(10001),UU,LLB
1999 NEXT JJJJ
This BASIC computer program was run via basica/D of Microsoft's GW-BASIC 3.11 interpreter for DOS. See the BASIC manual [11]. Copied by hand from the screen, the computer program's complete output through JJJJ=-32000 is shown below:
0 0 0 0 0
0 0 0 0 0
0 -32000 0 0 0
Above there is no rounding by hand.
M=0 is optimal; see Li and Sun [10, p. 416].
Of the 10000 A's, only the 10 A's of line 1931 and line 1938 are shown above.
On a personal computer with a Pentium Dual-Core CPU E5200 @2.50GHz, 2.50 GHz, 960 MB of RAM, and the IBM basica/D interpreter, version GW BASIC 3.11, the wall-clock time for obtaining the output through JJJJ=-32000 was 6 hours.
Acknowledgment
I would like to acknowledge the encouragement of Roberta Clark and Tom Clark.
References
[1] E. Balas, An Additive Algorithm for Solving Linear Programs with Zero-One Variables. Operations Research, Vol. 13, No. 4 (1965), pp. 517-548.
[2] E. Balas, Discrete Programming by the Filter Method. Operations Research, Vol. 15, No. 5 (Sep. - Oct., 1967), pp. 915-957.
[3] F. Cajori (1911) Historical Note on the Newton-Raphson Method of Approximation. The American Mathematical Monthly, Volume 18 #2, pp. 29-32.
[4] M. A. Duran, I. E. Grossmann, An Outer-Approximation Algorithm for a Class of Mixed-Integer Nonlinear Programs. Mathematical Programming, 36:307-339, 1986.
[5] D. M. Himmelblau, Applied Nonlinear Programming. New York: McGraw-Hill Book Company, 1972.
[6] W. Hock, K. Schittkowski, Test Examples for Nonlinear Programming Codes. Springer-Verlag, 1981.
[7] Jack Lashover (November 12, 2012). Monte Carlo Marching. www.academia.edu/5481312/MONTE_ CARLO_MARCHING
[8] 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.
[9] E. L. Lawler, M. D. Bell, Errata: A Method for Solving Discrete Optimization Problems. Operations Research, Vol. 15, No. 3 (May - June, 1967), p. 578.
[10] Duan Li, Xiaoling Sun, Nonlinear Integer Programming. Publisher: Springer Science+Business Media,LLC (2006). http://www.books.google.ca/books?isbn=0387329951
[11] Microsoft Corp., BASIC, Second Edition (May 1982), Version 1.10. Boca Raton, Florida: IBM Corp., Personal Computer, P. O. Box 1328-C,Boca Raton, Floridda 33432, 1981.
[12] Harvey M. Salkin, Integer Programming. Menlo Park, California: Addison-Wesley Publishing Company (1975).
[13] Harvey M. Salkin, Kamlesh Mathur, Foundations of Integer Programming. Publisher: Elsevier Science Ltd (1989).
[14] K. Schittkowski, More Test Examples for Nonlinear Programming Codes. Springer-Verlag, 1987.
[15] S. Surjanovic, Zakharov Function. www.sfu.ca/~ssurjano/zakharov.html
[16] Jsun Yui Wong (2012, April 23). The Domino Method of General Integer Nonlinear Programming Applied to Problem 2 of Lawler and Bell. http://computationalresultsfromcomputerprograms.wordpress.com/2012/04/23/
[17] Jsun Yui Wong (2013, September 4). A Nonlinear Integer/Discrete/Continuous Programming Solver Applied to a Literature Problem with Twenty Binary Variables and Three Constraints, Third Edition. http://myblogsubstance.typepad.com/substance/2013/09/
[18] Jsun Yui Wong (2014, June 27). A Unified Computer Program for Schittkowski's Test Problem 377, Second Edition. http://nonlinearintegerprogrammingsolver.blogspot.ca/2014_06_01_archive.html