A delivery services wishes to partition its customers' locations in a city so that (a) each set contains geographically close points, and (b) the number of clusters can change from day to day to match the number of available trucks on that day. Suggest an algorithm that could be used.