I think this should be possible with the expectation that it's okay to only explore nearby integers. For example, the step sizes along an integer dimensions as the algorithm proceeds may be [-4, 0, 4], [-2, 0, 2], and [-1, 0, 1]. We can do this by rounding the step sizes given by the stencil to the nearest integer away from zero.
I think we may want to tighten the contraction conditions. Currently, we halve the step size and advance the algorithm from the current best point with the reduced step size when the neighboring points in the cardinal directions have been calculated and rejected. For example, in two dimensions and step size s, we halve the step size once (-s, 0), (s, 0), (0, -s), and (0, s) have been calculated and rejected. If these two dimensions are integer dimensions, we may want to require that these additional points have been calculated: (-s, -s), (-s, s), (s, -s), and (s, s). This obviously scales worse than the original contraction conditions--it requires 2**d points instead of 2*d points--but it may be desirable for robustness. Perhaps there is a better way to do this.
From a convergence perspective, perhaps it would be sufficient(-ish) to randomly choose a subset of the 2**d corners (in addition to the 2*d cardinal directions) to include in the contraction conditions.
I think this should be possible with the expectation that it's okay to only explore nearby integers. For example, the step sizes along an integer dimensions as the algorithm proceeds may be
[-4, 0, 4]
,[-2, 0, 2]
, and[-1, 0, 1]
. We can do this by rounding the step sizes given by the stencil to the nearest integer away from zero.I think we may want to tighten the contraction conditions. Currently, we halve the step size and advance the algorithm from the current best point with the reduced step size when the neighboring points in the cardinal directions have been calculated and rejected. For example, in two dimensions and step size
s
, we halve the step size once(-s, 0)
,(s, 0)
,(0, -s)
, and(0, s)
have been calculated and rejected. If these two dimensions are integer dimensions, we may want to require that these additional points have been calculated:(-s, -s)
,(-s, s)
,(s, -s)
, and(s, s)
. This obviously scales worse than the original contraction conditions--it requires2**d
points instead of2*d
points--but it may be desirable for robustness. Perhaps there is a better way to do this.