"특정 이웃을 찾아서" 알고리즘을 사용합니다. 특정 조건을 만족하지 않는 노드를 거부하고 어떻게해야 할 지 생각할 수 없습니다 효율적으로.조건을 만족하는 가장 가까운 k 이웃 노드 (파이썬)
내가 밟은 것은 현재 시야에있는 k 개의 가장 가까운 이웃을 찾는 것입니다. 불행하게도 scipy.spatial.cKDTree
은 조건부로 포인트를 거부하기 위해 필터로 검색하는 옵션을 제공하지 않습니다.
가장 좋은 알고리즘은 n 개의 가장 가까운 이웃을 쿼리하고 시야가 보이는 k가없는 경우 2n 개의 가장 가까운 이웃을 다시 쿼리하여 반복하는 것입니다. 불행히도 이것은 최악의 경우 반복적으로 n 개의 가장 가까운 이웃을 반복해서 다시 계산하는 것을 의미합니다. 이 쿼리를 반복해야 할 때마다 성능이 저하됩니다. 반면에 n을 너무 높게 설정하면 반환되는 점의 대부분이 필요하지 않으면 잠재적으로 낭비입니다.
시야가 자주 바뀌므로 매번 cKDTree
을 다시 계산할 수 없습니다. 어떤 제안?
이 문제의 시선은 다음 조건을 만족하는 다각형으로 설명됩니다. 임의의 임의 점에서 쿼리 된 점까지의 선은 미리 정의 된 모서리 집합과 교차하지 않습니다. [예] (http://www.blog.samclifton.com/?p=31) 너무나 반경이 고정되어 있지 않습니다. – user2667523