Как подразделить пространство, используя случайные точки ближайшего соседа? - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь создать эффективный метод кроссовера для генетического алгоритма, который я строю. У меня есть только 2 или 3 переменные для оптимизации, поэтому я могу рассматривать каждое поколение как точки на плоскости или сфере.

Чтобы родить детей, я хотел бы разделить пространство на треугольники или четырехугольники, а затем взять центр тяжести каждого из них как ребенка. Моя проблема в разделении пространства. Как можно сгруппировать баллы, а также обеспечить, чтобы каждый родитель вносил вклад в одинаковое количество детей?

Одним из решений может быть формирование кластеров из N (3 или 4) ближайших соседних точек, а затем взять центр тяжести этих точек как ребенка. Тогда можно было бы создать больше детей, сгруппировав N кластеров и снова взяв центроид. Я не очень хорошо знаком с кластеризацией ближайших соседей, и, хотя я изучал ее, мне еще предстоит найти что-то, что кажется особенно эффективным решением.

...