Consider finite piece of lattice i.e. points of the form m*h1 + n*h2, for `0<m,n<N` h1, h2 -some vectors. Consider some point "P" on the plane. How to find (m,n) such that m*h1 + n*h2 is  closest to "P" ?
I mean what is the simplest method ? Of course we can use brute force search since finite set of points, but may be there is elegant solution ?

The problem is that "lattice reduction" may bring us out the finite set of points...
  
The problem may be also reformulated like:
minimize in int "k" f(k)= (x - (k*b mod a))^2 + (y-k*h)^2 , for given a,b,h,x,y (which may be assumed integers)

the first term is jumping in "k" because of mod a 
and this a problem...