Jsun Yui Wong
Each of the two computer programs below tries to solve the transformer design problem on pages 258-272 of Papalambros and Wilde [1]. The computer programs below do not use the bounds on page 258 of Papalambros and Wilde [1]. Lines 126 below are different from each other. These programs are similar to the July 25 posts of wongsblog-wong.blogspot.com and to the July 25 post of wongsnewnewblog.blogspot.com.
Computer Program 1:
0 DEFINT A-Z
1 DEFSNG L,S,P,M,R,Q
2 REM DEFSNG A-Z
3 REM DEFINT I,J,K,X
4 DIM X(42),A(42),L(33),K(33)
75 FOR JJJJ=-32000 TO 32000
84 RANDOMIZE JJJJ
87 M=-1.7E+38
91 FOR KK=1 TO 6
94 A(KK)=RND*400
95 NEXT KK
126 IMAR=10+FIX(RND*3000)
128 FOR I=1 TO IMAR
129 FOR K=1 TO 6
131 X(K)=A(K)
132 NEXT K
181 J=1+FIX(RND*6)
182 JJ=1+FIX(RND*6)
183 R=(1-RND*2)*A(J)
185 IF RND<.5 THEN 188 ELSE 201
188 IF RND<.14 THEN 191 ELSE IF RND<.17 THEN 293 ELSE IF RND<.2 THEN 294 ELSE IF RND<.25 THEN 295 ELSE IF RND<.33 THEN 296 ELSE IF RND<.5 THEN 297 ELSE 298
191 IF RND<.14 THEN X(J)=RND*500 ELSE IF RND<.17 THEN X(J)=A(J)+R ELSE IF RND<.2 THEN X(J)=A(J)+RND*R ELSE IF RND<.25 THEN X(J)=A(J)+RND^2*R ELSE IF RND<.33 THEN X(J)=A(J)+RND^3*R ELSE IF RND<.5 THEN X(J)=A(J)+RND^4*R ELSE X(J)=INT(A(J))
192 GOTO 351
201 X(J)=A(JJ)
202 X(JJ)=A(J)
211 GOTO 351
293 X(1)=RND*500:GOTO 351
294 X(2)=RND*500:GOTO 351
295 X(3)=RND*500:GOTO 351
296 X(4)=RND*500:GOTO 351
297 X(5)=RND*500:GOTO 351
298 X(6)=RND*500:GOTO 351
351 L1=-.001*X(1)*X(2)*X(3)*X(4)*X(5)*X(6)+2.07
352 L2=.00062*X(1)*X(4)*X(5)^2*(X(1)+X(2)+X(3))+.00058*X(2)*X(3)*X(6)^2*(X(1)+1.57*X(2)+X(4))-1.2
511 IF L1>0 THEN L1=-1000000! ELSE L1=0
512 IF L2>0 THEN L2=-1000000! ELSE L2=0
1311 SS=L1+L2
1333 P1NEWMAY=-.0204*X(1)*X(4)*(X(1)+X(2)+X(3))-.0187*X(2)*X(3)*(X(1)+1.57*X(2)+X(4))-.0607*X(1)*X(4)*X(5)^2*(X(1)+X(2)+X(3))-.0437*X(2)*X(3)*X(6)^2*(X(1)+1.57*X(2)+X(4))+SS
1448 P=P1NEWMAY
1451 IF P<=M THEN 1670
1657 FOR KEW=1 TO 6
1658 A(KEW)=X(KEW)
1659 NEXT KEW
1661 M=P
1666 GOTO 128
1670 NEXT I
1890 IF M>-135 THEN 1912 ELSE 1999
1912 PRINT A(1),A(2),A(3),A(4),A(5),A(6),M,JJJJ
1917 REM PRINT M,JJJJ
1999 NEXT JJJJ
The BASIC computer program above was run with Microsoft's GW BASIC 3.11 interpreter, which is not a compiler. The complete output through JJJJ=-28005 is shown below. What immediately follows is a manual copy from the computer screen.
4 4 13 10 1
1 -133.9285 -31735
4 5 8 13 1
1 -133.718 -31369
4 5 8 13 1
1 -133.718 -31089
5 4 13 8 1
1 -133.9278 -30233
5 4 13 8 1
1 -133.9278 -28005
Interpreted in accordance with line 1912, the output above was obtained in eleven minutes on a personal computer with an Intel 2.66 GHz. chip and the IBM basica/D interpreter.
Computer Program 2:
0 DEFINT A-Z
1 DEFSNG L,S,P,M,R,Q
2 REM DEFSNG A-Z
3 REM DEFINT I,J,K,X
4 DIM X(42),A(42),L(33),K(33)
75 FOR JJJJ=-32000 TO 32000
84 RANDOMIZE JJJJ
87 M=-1.7E+38
91 FOR KK=1 TO 6
94 A(KK)=RND*400
95 NEXT KK
126 IMAR=10+FIX(RND*4000)
128 FOR I=1 TO IMAR
129 FOR K=1 TO 6
131 X(K)=A(K)
132 NEXT K
181 J=1+FIX(RND*6)
182 JJ=1+FIX(RND*6)
183 R=(1-RND*2)*A(J)
185 IF RND<.5 THEN 188 ELSE 201
188 IF RND<.14 THEN 191 ELSE IF RND<.17 THEN 293 ELSE IF RND<.2 THEN 294 ELSE IF RND<.25 THEN 295 ELSE IF RND<.33 THEN 296 ELSE IF RND<.5 THEN 297 ELSE 298
191 IF RND<.14 THEN X(J)=RND*500 ELSE IF RND<.17 THEN X(J)=A(J)+R ELSE IF RND<.2 THEN X(J)=A(J)+RND*R ELSE IF RND<.25 THEN X(J)=A(J)+RND^2*R ELSE IF RND<.33 THEN X(J)=A(J)+RND^3*R ELSE IF RND<.5 THEN X(J)=A(J)+RND^4*R ELSE X(J)=INT(A(J))
192 GOTO 351
201 X(J)=A(JJ)
202 X(JJ)=A(J)
211 GOTO 351
293 X(1)=RND*500:GOTO 351
294 X(2)=RND*500:GOTO 351
295 X(3)=RND*500:GOTO 351
296 X(4)=RND*500:GOTO 351
297 X(5)=RND*500:GOTO 351
298 X(6)=RND*500:GOTO 351
351 L1=-.001*X(1)*X(2)*X(3)*X(4)*X(5)*X(6)+2.07
352 L2=.00062*X(1)*X(4)*X(5)^2*(X(1)+X(2)+X(3))+.00058*X(2)*X(3)*X(6)^2*(X(1)+1.57*X(2)+X(4))-1.2
511 IF L1>0 THEN L1=-1000000! ELSE L1=0
512 IF L2>0 THEN L2=-1000000! ELSE L2=0
1311 SS=L1+L2
1333 P1NEWMAY=-.0204*X(1)*X(4)*(X(1)+X(2)+X(3))-.0187*X(2)*X(3)*(X(1)+1.57*X(2)+X(4))-.0607*X(1)*X(4)*X(5)^2*(X(1)+X(2)+X(3))-.0437*X(2)*X(3)*X(6)^2*(X(1)+1.57*X(2)+X(4))+SS
1448 P=P1NEWMAY
1451 IF P<=M THEN 1670
1657 FOR KEW=1 TO 6
1658 A(KEW)=X(KEW)
1659 NEXT KEW
1661 M=P
1666 GOTO 128
1670 NEXT I
1890 IF M>-135 THEN 1912 ELSE 1999
1912 PRINT A(1),A(2),A(3),A(4),A(5),A(6),M,JJJJ
1917 REM PRINT M,JJJJ
1999 NEXT JJJJ
The BASIC computer program above was run with Microsoft's GW BASIC 3.11 interpreter, which is not a compiler. The complete output through JJJJ=-29826 is shown below. What immediately follows is a manual copy from the computer screen.
4 4 13 10 1
1 -133.9285 -31916
4 5 8 13 1
1 -133.718 -31607
4 5 8 13 1
1 -133.718 -30681
4 5 8 13 1
1 -133.718 -30669
4 4 13 10 1
1 -133.9285 -29826
Interpreted in accordance with line 1912, the output above was obtained in seven minutes on a personal computer with an Intel 2.66 GHz. chip and the IBM basica/D interpreter.
Reference
[1] Panos Y. Papalambros, Douglas J. Wilde. Principles of Optimal Design, Second Edition. Cambridge University Press, 2000.