Jsun Yui Wong
The computer program listed below seeks to solve the following problem, which is Problem 346 on page 167 of Schittkowski (1987) plus the additional restriction that X(3)= 0, 1, 2, 3,..., or 125.
Objective function:
Maximize:
(.0201/10000000#)*X(1)^4*X(2)*X(3)^2
Constraints:
675-X(1)^2*X(2)>=0
.419-(X(1)^2*X(3)^2)/10000000#>=0
0<=X(1)<=36
0<=X(2)<=5
X(3)= 0, 1, 2, 3,..., 125.
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
93 A(1)=RND*36
94 A(2)=RND*5
95 A(3)=FIX(RND*126)
103 REM
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
811 IF RND<.99 THEN 903 ELSE 961
903 IF RND<1/2 THEN 911 ELSE 921
911 IF RND<.5 THEN X(1)=RND*36 ELSE X(1)=A(1)+(1-2*RND)*.00001*A(1)
915 GOTO 1151
921 IF RND>.5 THEN X(2)=RND*5 ELSE X(2)=A(2)+(1-2*RND)*.00001*A(2)
925 GOTO 1151
961 X(3)=FIX(RND*126)
1151 P1=675-X(1)^2*X(2)
1159 IF P1<0 THEN P1=P1 ELSE P1=0
1255 P2=.419-(X(1)^2*X(3)^2)/10000000#
1259 IF P2<0 THEN P2=P2 ELSE P2=0
1355 REM
1359 REM
1488 P=(.0201/10000000#)*X(1)^4*X(2)*X(3)^2-333333!*(ABS(P1)+ABS(P2))
1499 PR=(.0201/10000000#)*X(1)^4*X(2)*X(3)^2
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>5.684 THEN 1912 ELSE 1999
1912 PRINT A(1),A(2),A(3)
1915 PRINT M,MM,JJJJ
1999 NEXT JJJJ
This BASIC computer program was run with the IBM basica/D interpreter, and the output produced in the first 25 seconds of running is presented below. (What immediately follows is a manual copy from the computer screen.)
17.34702385316216 2.24312654607115 118
5.684780970732687 5.684780970732687 -31938
28.8302667451177 .812093927315822 71
5.68477979947611 5.68477979947611 -31918
24.96279110460882 1.083221828698728 82
5.684780780297064 5.684780780297064 -31909
Interpreted in accordance with line 1912 and line 1915, the output through JJJJ=-31909 was produced in the first 25 seconds of running on a personal computer with an Intel 2.66 GHz. chip and the IBM basica/D interpreter.
Reference
K. Schittkowski (1987): "More Test Problems for Nonlinear Programming Codes," Springer-Verlag, Berlin Heidelberg New York.