수정 된 Borůvka 알고리즘에 대한보다 엄격한 분석


11

Borůvka 알고리즘은 그래프 위해 스패닝 트리 최소 계산을위한 표준 알고리즘 중 하나 인 와 .=(V,이자형)|V|=,|이자형|=미디엄

의사 코드는 다음과 같습니다.

MST T = empty tree
Begin with each vertex as a component
While number of components > 1
    For each component c
       let e = minimum edge out of component c
       if e is not in T
           add e to T  //merging the two components connected by e

우리는 외부 루프의 각 반복을 라운드라고 부릅니다. 각 라운드에서 내부 루프는 구성 요소 수를 최소한 절반으로 줄입니다. 따라서 최대 라운드가 있습니다. 각 라운드에서 내부 루프는 각 모서리를 최대 두 번 (각 구성 요소에서 한 번) 본다. 따라서 실행 시간은 최대 입니다.영형(로그)영형(미디엄로그)

이제 각 라운드 후에 동일한 구성 요소 내에서 꼭짓점 만 연결하는 모든 가장자리를 제거하고 구성 요소 사이의 중복 가장자리를 제거하여 내부 루프가 최소 무게 가장자리 인 가장자리 수 'm'<m 만보 고 이전에 연결 해제 된 두 구성 요소를 연결하십시오.

이 최적화는 실행 시간에 어떤 영향을 줍니까?

우리가 어떻게 든 각 라운드에서 에지 수를 반으로 줄이면 실행 시간이 크게 향상됩니다 : .(미디엄)=(미디엄/2)+영형(미디엄)=영형(미디엄)

그러나 최적화를 통해 검사되는 모서리의 수를 크게 줄일 수 있지만 (최종 라운드에서 1 개의 모서리 만 사용하고 최대 개수의 구성 요소는 일반적으로 2를 선택합니다),이 사실을 사용하여 분석을 강화할 수있는 방법 / 사용 방법이 확실하지 않습니다 런타임의.


최악의 경우 (체인) 라운드 당 정확히 하나의 모서리를 제거하므로 일반 그래프의 경계를 개선하기 위해 해당 사실을 사용할 수 없습니다. 예를 들어 완전한 그래프 만 고려할 수 있습니다.
Xodarap

@Xodarap 가 단순한 경로 라면 (체인의 의미입니까?) 첫 번째 라운드에서 가장자리의 절반 이상을 선택합니다. 이 모서리는 후속 라운드에서 제거됩니다.
Joe

이 알고리즘을 개선하기 위해 고도로 최적화 된 공용체 찾기 구조 중 하나를 사용할 수 있습니다 .
라파엘

답변:


5

Borůvka의 단계가 정점의 수를 반으로해도 각 단계의 모서리 수를 절반으로 줄이지 않는 일반 그래프에 대한 테스트 사례를 만들 수 있습니다. 흥미로운 점은 제안한 최적화가 평면 그래프에서 작동한다는 것입니다. 평면 그래프의 경우 i, e 입니다. 그리고 일반적으로 사소한 폐쇄 형 그래프 제품군의 속도를 높입니다.|이자형||V|6|이자형|=영형(|V|)

참고:

  • 석사 논문, Claude Anderson (100 페이지의 Borůvka 알고리즘에 대한 최악의 경우 입력이 설명되어 있음). [링크]

  • "사소한 폐쇄 그래프 클래스에서 MST에 대한 두 개의 선형 시간 알고리즘" Archivum mathematicum 40 (3) : 315–320, 2004. [링크]

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