포인트 세트를 두 개의 최적 서브 세트로 나누기


9

클러스터 내 제곱합을 최소화하기 위해 점 집합을 동일한 크기의 두 하위 집합으로 나누고 싶습니다. 점들이 2 차원 유클리드 공간에 있다고 가정 할 수 있습니다. k = d = 2가 주어지면 일반적인 k- 평균 군집 알고리즘보다 빠른 것을 원합니다. 누구나 좋은 알고리즘의 방향으로 나를 가리킬 수 있습니까?

근사치가 좋은 경우 정확한 솔루션이 필요하지 않습니다.

감사!

답변:


10

정확한 파티션을 고집하는 경우 평면에서 점 세트의 균형 잡힌 파티션을 모두 선으로 계산해야합니다 (최적의 파티션은 Voronoi 파티션이므로 두 점 세트는 선으로 구분됩니다). 이러한 파티션을 라고 합니다. 이 파티션을 듀얼로 계산하기 위해 에서 현재이 작업에 알려진 가장 빠른 알고리즘 즉, 의 경우 라인 집합의 수준 ) . 가능한 모든 파티션을 확보 한 후에는 각 파티션을 확인하면됩니다. 표준 트릭을 사용하면 각 파티션에 대해 일정한 시간에이를 수행 할 수 있습니다.kO(n4/3logn)knk=n/2

(업데이트 : 대해 최적의 파티션이 set에 의해 실현된다는 것을 증명하는 것은 완전히 사소한 것이 아닙니다. 관심있는 독자에게는 귀여운 운동으로 남겨 두겠습니다. 힌트 : 두 라인을 통과하는 라인을 고려하십시오 최적의 중심 및 수직 방향)kk=n/2

정확한 솔루션에 신경 쓰지 않는다면 평균 군집화에 코어 세트를 사용하는 것이 더 쉬운 방법입니다 . 이 경우 총 가중치 과 함께이 경우 가중치 포인트가됩니다 . 그런 다음 가중치 포인트 세트에서 문제를 해결하기 만하면됩니다. 가장 쉬운 해결책은 센터에 대한 후보 위치 세트를 생성하고 가중치 포인트에서 모든 쌍을 시도하는 것입니다. 코어 세트 구성 및 후보 센터 생성은이 백서에 설명되어 있습니다.kO(ϵ2logn)n

http://sarielhp.org/p/03/kcoreset/

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.