Одна из простых, Для каждой точки из множества, подсчитать кол-во столкновений друг с другом, вращающихся вокруг центра окружности с рандомным отдалением этой точки, от центра окружности. У каждой точки, свой центр окружности.
Я реализовал алгоритм на очень примитивной логике, что даже самому неприятно смотреть на этот код. В принципе все работает, он очень не эффективный. Мне стыдно признать, но я даже не могу разобрать формулу вращения. Все сделал на ужасной логике.