Я тоже когда-то думал сделать вместо обычного поиска ближайших деревьев - прикрутить к ней оптимальный обход графа. Правда так как не силён в графах то не смог этого доделать (да и не надо/лень уже было).
Идея простая:
1) Кешируем деревья в определённом радиусе в массив.
2) Представляем весь массив в виде сильно связного полного графа (правда хз выдержит ли инжа такое издевательство если деревьев будет 1000+) где вес каждого ребра равен расстоянию между вершинами.
3) Ищем оптимальный полный обход полученного графа.
4) Сохраняем обход этого графа в файл (не обязательно, но очень полезно, т.к. пункт 2 и 3 будут долго работать).
5) Идём по графу и рубим деревья.
Если-бы кто сделал - был-бы отменный скрипт на ламбер
