The algorithm proceeds in two basic steps. The first is a controlled search for the best fit of a parametric velocity function to the semblance scan. The second part is the Monte Carlo random walk maximization of semblance based on the initial parametric fit and interval velocity model constraints.