Все это очень сильно похоже на обычный метод ближайших соседей (nearest neighbors, https://en.m.wikipedia.org/wiki/Nearest_neighbor_search). Есть алгоритмы, которые обеспечивают точный поиск ближайших соседей, но это очень ресурсоемко. А есть алгоритмы приближенного поиска, время работы которых как раз логарифмически зависит от количества входных данных. Но и результат получается не точный, а приближенный. Есть куча фреймворков, которые давно уже умеют это делать.
Удивительно, что в статье не упомянули numba. На мой взгляд, это самый простой, но при этом очень мощный способ увеличения производительности при минимальных изменениях в исходном коде.
Дело не в умении, не в желании... и вообще ни в чём! Дело в самом подшивании подворотничка :)
Николай Николаевич, большущее вам спасибо за "Астровитянку"! От идей, описанных вами в этой трилогии, я получил в своё время огромное удовольствие!
Все это очень сильно похоже на обычный метод ближайших соседей (nearest neighbors, https://en.m.wikipedia.org/wiki/Nearest_neighbor_search). Есть алгоритмы, которые обеспечивают точный поиск ближайших соседей, но это очень ресурсоемко. А есть алгоритмы приближенного поиска, время работы которых как раз логарифмически зависит от количества входных данных. Но и результат получается не точный, а приближенный. Есть куча фреймворков, которые давно уже умеют это делать.
Удивительно, что в статье не упомянули numba. На мой взгляд, это самый простой, но при этом очень мощный способ увеличения производительности при минимальных изменениях в исходном коде.