В этом, наверное, и трудность. Понять, что и как делать в данных условиях.
Попробую объяснить на примере. Есть 1000 точек с координатами (x,y). Надо их разбить на 5 кластеров по 200 шт.
Естественно, можно произвольно разбить точки на 5 множеств, но в условиях задачи нужно ориентироваться на расстояния между точками. И итоговый результат должен быть оптимальным в данных условиях.
В примере с 2-мя кластерами всё достаточно просто. К примеру, алгоритм разбил множество на 600 и 400 точек. Теперь мне нужно перераспределить 100 точек, которые являются ближайшими к кластеру с 400 точками (к центру кластера, например).
А когда таких центров уже 5, задача не выглядит тривиальной.
Когда противоречие - главное первое условие, т.е. задача распределить точки в равных количествах или же (что лучше) с возможность регулировки диапазона этого количества (не 200, а 180-220).