5 Local and Global Optimization

Index - - Contents - - Previous chapter - Next chapter - - Previous page - Next page

Unirandi

Unirandi is a uniform-random-direction-linear-search local minimization algorithm proposed by Timo Järvi in his Ph.D. Thesis (1973). A simplified version of the algorithm can be described as follows:
            Unirandi(x0, h0, hm, x, fx)                        
                   x := x0; starting point (x1,x2,...,xn)
                   h := h0; initial steplength
                   hm minimum steplength
                   fx:= f(x)

    find_better:  for k:=1,2 do (2 + 2 failures means: halve steplength)
                        new_direction d
                        new_trial t, ft := f(t)
                        if better then go to linear
                        opposite_direction d := -d
                        new_trial t, ft := f(t)
                        if better then go to linear

                  halve_steplength h:= h/2
                  if h < hm then return else go to find_better

         linear:   while better do
                        record_point x:= t, fx := ft
                        double_steplength h:= 2h
                        new_trial t, ft := f(t)

                    halve_steplength h:=h/2
                    go to find_better
If we assume that the minimum of f(x) is sought in the box [a1,b1] x [a2,b2] x ... x [an,bn] starting from the point x0 with the initial steplength h0, that the dimension of the x-space is n, rni is a normally distributed random number (0,1), then the ith coordinate di of new_direction (giving unit length of d) is
               di := rni/sqrt(rn12+ ... + rnn2)
opposite_direction is obtained by changing the signs of the dis and new-trial is obtained by
                    ti := xi + h*di
                    ft := f(t)  
better could be the boolean
                ti in [ai,bi] and ft < fx