Jsun Yui Wong
The computer program listed below seeks to solve the following problem.
Objective function:
Maximize:
X(1)*X(2)*X(3)
Constraints:
48-X(1)^2-2*X(2)^2-4*X(3)^2>=0
X(1)=0, 1, 2, 3,..., 999, 1000
X(2)>=0
X(3)=0, 1, 2, 3,..., 999, 1000
This problem is an adaptation of Problem 342 on page 163 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 3
93 A(K)=FIX(RND*1000)
99 NEXT K
126 IMAR=10+FIX(RND*1000)
128 FOR I=1 TO IMAR
129 FOR K=1 TO 3
131 X(K)=A(K)
132 NEXT K
1100 IF RND<.6666 THEN GOTO 1103 ELSE GOTO 1114
1103 IF RND<.5 THEN GOTO 1105 ELSE GOTO 1109
1105 X(1)=FIX(RND*1001)
1107 GOTO 1151
1109 X(3)=FIX(RND*1001)
1112 GOTO 1151
1114 X(2)=A(2)+(-1+FIX(RND*3))*(.05*A(2))
1151 PEN1=48-X(1)^2-2*X(2)^2-4*X(3)^2
1159 IF PEN1<0 THEN PEN1=PEN1 ELSE PEN1=0
1488 P=X(1)*X(2)*X(3)-333333!*ABS(PEN1)
1499 PR=X(1)*X(2)*X(3)
1551 IF P<=M THEN 1670
1657 FOR KEW=1 TO 3
1658 A(KEW)=X(KEW)
1659 NEXT KEW
1661 M=P
1663 MM=PR
1666 GOTO 128
1670 NEXT I
1890 IF M>22.61 THEN 1912 ELSE 1999
1912 PRINT A(1),A(2),A(3),M,MM,JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with the IBM basica/D interpreter, and its best candidate solutions produced in the first 3 minutes of running are presented below. (What immediately follows is a manual copy from the computer screen.)
4 2.828408573362359 2 22.62726858689887
22.62726858689887 -30068
4 2.828068220564003 2 22.62454576451202
22.62454576451202 -29711
Interpreted in accordance with line 1912, the output above shows the best candidate solutions obtained in the first 3 minutes 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.