Jsun Yui Wong
The computer program listed below seeks to solve the following problem.
Objective function:
Maximize:
-(1-EXP(-10*X(1)*EXP(-X(3))))-(1-EXP(-10*X(2)*EXP(-X(4))))
Constraints:
X(1)+X(2)-1=0
X(3)+X(4)-1=0
X(1)=0, 1, 2, 3, 4, 5, 6,..., 998, 999, 1000
X(2)=0, 1, 2, 3, 4, 5, 6,..., 998, 999, 1000
X(3)=0, 1, 2, 3, 4, 5, 6,..., 998, 999, 1000
X(4)=0, 1, 2, 3, 4, 5, 6,..., 998, 999, 1000
This problem is an adaptation of Problem 265 on page 89 of Schittkowski [1].
0 DEFDBL A-Z
3 DEFINT I,J,K
4 DIM X(42),A(42),L(33),K(33)
5 FOR JJJJ=-32000 TO 32000
14 RANDOMIZE JJJJ
16 M=-1D+17
91 FOR K=1 TO 4
93 A(K)=FIX(RND*1001)
99 NEXT K
126 IMAR=10+FIX(RND*1000)
128 FOR I=1 TO IMAR
129 FOR K=1 TO 4
131 X(K)=A(K)
132 NEXT K
1110 IJU=1+FIX(RND*4)
1111 X(IJU)=FIX(RND*1001)
1151 PEN1=X(1)+X(2)-1
1159 IF PEN1=0 THEN PEN1=0 ELSE PEN1=PEN1
1161 PEN2=X(3)+X(4)-1
1163 IF PEN2=0 THEN PEN2=0 ELSE PEN2=PEN2
1486 P=-(1-EXP(-10*X(1)*EXP(-X(3))))-(1-EXP(-10*X(2)*EXP(-X(4))))-333333!*ABS(PEN1)-33333!*ABS(PEN2)
1499 PR=-(1-EXP(-10*X(1)*EXP(-X(3))))-(1-EXP(-10*X(2)*EXP(-X(4))))
1551 IF P<=M THEN 1670
1657 FOR KEW=1 TO 4
1658 A(KEW)=X(KEW)
1659 NEXT KEW
1661 M=P
1663 MM=PR
1666 GOTO 128
1670 NEXT I
1890 IF M>-10 THEN 1912 ELSE 1999
1912 PRINT A(1),A(2),A(3),A(4),M,MM,JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with the IBM basica/D interpreter, and the output produced during the first 20 seconds of running is presented below. (What immediately follows is a manual copy from the computer screen.)
1 0 0 1 -.9999546000702375
-.9999546000702375 -31988
1 0 1 0 -.9747465983043361
-.9747465983043361 -31986
0 1 0 1 -.9747465983043361
-.9747465983043361 -31979
0 1 1 0 -.9999546000702375
-.9999546000702375 -31939
0 1 1 0 -.9999546000702375
-.9999546000702375 -31931
0 1 1 0 -.9999546000702375
-.9999546000702375 -31901
0 1 1 0 -.9999546000702375
-.9999546000702375 -31893
0 1 1 0 -.9999546000702375
-.9999546000702375 -31892
1 0 0 1 -.9999546000702375
-.9999546000702375 -31890
0 1 0 1 -.9747465983043361
-.9747465983043361 -31880
Interpreted in accordance with line 1912, the output above shows two alternative best solutions--at JJJJ=-31986, JJJJ=-31979, and JJJJ=-31880--produced during the first 20 seconds of running on a personal computer with an Intel 2.66 GHz. chip and the IBM basica/D interpreter.
Reference
[1] K. Schittkowski, "More Test Examples for Nonlinear Programming Codes," Springer-Verlag, Berlin Heidelberg New York, 1987.