클러스터링 문제에 대한 최적의 욕심


16

|P|=nkknC={c1,c2,,ck}kD P I C J (k)를cost(C)=maximinjD(pi,cj)D입력 점 와 중심점 사이의 유클리드 거리를 나타냅니다 . 각 점은 정점을 다른 군집 으로 그룹화하는 가장 가까운 군집 중심에 자신을 할당 합니다.picjk

이 문제는 (이산 된) 클러스터링 문제 로 알려져 있으며 -hard입니다. 그것이에서 감소로 나타낼 수있다 - 완전한 지배 세트 문제점이 존재하는 경우 -approximation 알고리즘의 문제점에 대한 다음 .NP NP ρ ρ < 2 P = NPkNPNPρρ<2P=NP

최적의 근사 알고리즘은 매우 간단하고 직관적입니다. 먼저 점 선택합니다p P2pP 임의로 클러스터 중심 의 설정된 에 넣습니다 . 그런 다음 다른 모든 클러스터 센터에서 가능한 한 멀리 떨어진 다음 클러스터 센터를 선택합니다. 따라서 , 우리는 반복 점 발견 거리하는 최대화하고 추가로 . 한 번 우리는 끝났습니다.| C | < k j P D ( j , C ) C | C | = kC|C|<kjPD(j,C)C|C|=k

최적의 욕심 많은 알고리즘이 시간에 실행되는 것을 보는 것은 어렵지 않습니다 . 이것은 의문을 제기한다 : 우리는 시간을 달성 할 수 있는가? 우리는 얼마나 더 잘할 수 있습니까?O ( N K )O(nk)o(nk)

답변:


7

가장 큰 공의 반지름이 최소화 되는 k 개의 볼로 포인트 를 덮고 자하는 방식으로 문제를 기하학적으로 볼 수 있습니다 .Vk

는 실제로 달성하기가 매우 간단하지만 더 잘할 수 있습니다. 근사 클러스터링을위한 최적 알고리즘 인 Feder and Greene (1988 ) 은보다 영리한 데이터 구조를 사용하여 Θ ( n log k ) 의 실행 시간을 달성하고 대수 의사 결정 트리 모델에서 이것이 최적임을 보여줍니다.O(nk)Θ(nlogk)


1

내 질문 : 탐욕스러운 따기 전략을 시간 내에 실행할 수있는 방법이 있습니까?o(|V|2)

당신이 설명 한 것 같습니다. 내가 당신의 설명을 너무 많이 읽었을 때, 여기 내가 이해 한 것이 있습니다. 각 요소를 S의 요소까지의 거리의 합과 연관시키는 연관 데이터 구조를 갖습니다 . 이 데이터 구조는 p 까지의 거리로 비용 O ( | V | ) 로 초기화 될 수 있으며이 초기화는 복잡성을 증가시키지 않으면 서 부작용으로 다음 요소를 생성 할 수 있습니다. O ( | V | ) 의 비용으로 새로운 요소를 선택한 후에 업데이트 하여 다음 요소를 부작용으로 다시 생성 할 수 있습니다. S 를 얻기 위해 반복VSO(|V|)pO(|V|)S. 결과 복잡도는 입니다.O(k|V|)


1
그러나 의 한계에주의하십시오 . 최악의 경우에는 최대 | V | . 더 나은 범위를 달성하는 데이터 구조가 있다고 생각하지만 실제로는 알지 못합니다. k|V|
Juho

아차, 하지 O 질문한다. (질문에서 당신은 k 3 으로 돌아 왔 으므로 이것은 개선되어야합니다). 내가 제안하는 것은 유클리드 공간에서 일하고 있다는 사실을 사용하지 않으며, 더 잘하기 위해 사용해야한다고 생각하지만 현재는 방법을 알지 못합니다. oOk3
AProgrammer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.