클러스터링 알고리즘을 구현 중입니다. 원본 복사본을 보관할 객체는 vector of Node
이고 다른 객체는 vector of Cluster
입니다. 각 Cluster object
에는 포함 된 모든 노드에 vector of pointers
이 있습니다.클러스터링 구현을위한 아이디어
매 반복마다 두 개의 클러스터가 결합 비용에 따라 결합되어야합니다.
지금은 priority queue
을 사용하여 두 비용 집계 비용과 두 클러스터에 대한 포인터를 포함하는 구조체를 보유하고 있습니다. 모든 반복에서 최소 비용으로 항목을 팝하고 참조 된 클러스터에 참여합니다. 큐를 사용하고 싶습니다. 왜냐하면 최소한의 비용을 찾기 위해 모든 오브젝트에 반복적 인 데이터가 많이 발생하기 때문에 실용적이지 않습니다.
한 클러스터에서 다른 클러스터로 데이터를 복사 한 다음 클러스터 중 하나를 제거하여 병합을 구현했습니다. 문제는 내 대기열에 이제 제거 된 클러스터를 참조하는 항목이 많이 포함되어 있다는 것입니다.
어떻게 구현하겠습니까? 어쩌면 클러스터에 가입하는 좀 더 영리한 방법이 있을까요? 구현을위한 제네럴 아이디어를 찾고 있습니다.