SIAM 2002 challenge #4

4. What is the global minimum of the function

      exp(sin(50x)) + sin(60ey) + sin(70 sin(x)) +
      + sin(sin(80y)) - sin(10(x + y)) + ¼ (x² + y²) ?

The following solution was supplied by Brian Medley, who remarks:

The program below is unpolished and adds little to Marijke's solution, but it did provide a cross-check to her answer just before the competition deadline.


   10   screen 823
   20   read Xmin,Xmax,Ymin,Ymax
   30   read B1,B2,B3,B4,B5,B6,B7
   40   Minimum=0
   50   screen 823
   60   for I=1 to 800
   61   X=(I-1)*(Xmax-Xmin)/799+Xmin
   65   Fx=exp(sin(50*X))+sin(70*sin(X))
   70   for J=1 to 600
   71   Y=(J-1)*(Ymax-Ymin)/599+Ymin
   75   Fy=sin(60*exp(Y))+sin(sin(80*Y))
  100   F=Fx+Fy-sin(10*(X+Y))+0.25*(X*X+Y*Y)
  110   if FB1 then C=0:goto 200
  130   if F>B2 then C=6:goto 200
  140   if F>B3 then C=7:goto 200
  150   if F>B4 then C=5:goto 200
  160   if F>B5 then C=1:goto 200
  170   if F>B6 then C=2:goto 200
  180   if F>B7 then C=3:goto 200
  190   C=4:goto 200
  200   pset (I,J),C
  210   next J
  220   next I
  230   locate 65,0:print Minimum
  240   Dx=Xmax-Xmin:Dy=Ymax-Ymin
  250   Xmin=Xm-0.25*Dx
  260   Xmax=Xm+0.25*Dx
  270   Ymin=Ym-0.25*Dy
  280   Ymax=Ym+0.25*Dy
  290   X=Xmax:Y=Ymax
  300   Max=exp(sin(50*X))+sin(60*exp(Y))+sin(70*sin(X))+sin(sin(80*Y))-sin(10*(X+Y))+0.25*(X*X+Y*Y)
  310   Ste=(Max-Minimum)/6
  320   B1=Max:B2=B1-Ste:B3=B2-Ste:B4=B3-Ste:B5=B4-Ste:B6=B5-Ste:B7=B6-Ste:goto 40
  330   input Z
  340   if Z=-1 then Ymax=Ymaxo:Ymin=Ymino:Xmax=Xmaxo:Xmin=Xmino:goto 40
  350   Ymaxo=Ymax:Ymino=Ymin:Xmaxo=Xmax:Xmino=Xmin
  360   if Z=1 then Ymin=(Ymin+Ymax)/2:Xmax=(Xmin+Xmax)/2:goto 40
  365   if Z=2 then Ymin=(Ymin+Ymax)/2:Xmin=(3*Xmin+Xmax)/4:Xmax=(Xmin+3*Xmax)/4:goto 40
  370   if Z=3 then Ymin=(Ymin+Ymax)/2:Xmin=(Xmin+Xmax)/2:goto 40
  375   if Z=4 then Xmax=(Xmin+Xmax)/2:Ymin=(3*Ymin+Ymax)/4:Ymax=(Ymin+3*Ymax)/4:goto 40
  377   if Z=5 then Xmin=(3*Xmin+Xmax)/4:Xmax=(Xmin+3*Xmax)/4:Ymin=(3*Ymin+Ymax)/4:Ymax=(Ymin+3*Ymax)/4:goto 40
  379   if Z=6 then Xmin=(Xmin+Xmax)/2:Ymin=(3*Ymin+Ymax)/4:Ymax=(Ymin+3*Ymax)/4:goto 40
  380   if Z=7 then Ymax=(Ymin+Ymax)/2:Xmax=(Xmin+Xmax)/2:goto 40
  385   if Z=8 then Ymax=(Ymin+Ymax)/2:Xmin=(3*Xmin+Xmax)/4:Xmax=(Xmin+3*Xmax)/4:goto 40
  390   if Z=9 then Ymax=(Ymin+Ymax)/2:Xmin=(Xmin+Xmax)/2:goto 40
  400   data -4,4,-3,3
  410   data 1,0,-1,-1.5,-2,-2.5,-3
  420   data -0.0245061328125,-0.02438406250,0.21004980468750,0.210957453125

See also Marijke's solution

<back