На евклидовой плоскости заданы 

 точек. Как разделить их на 

 групп таким образом, чтобы расстояния между точками в группе было наименьшим?

Интересуют алгоритмы подобных разбиений множества точек на подмножества. Хорошо бы ещё, чтобы можно было задавать размеры искомых групп, скажем, чтобы в каждой из 

 групп было не менее 

 точек.