계급이없는 경로 압축을 통한 조합 찾기의 복잡성


10

Wikipedia에 따르면 경로 압축을 사용하지 않는 순위 별 합집합은 의 상각 된 시간 복잡성을 제공하고 순위와 경로 압축을 기준으로 한 합집합은O(logn)O(α(n)) (어디 αAckerman 함수의 역함수입니다). 그러나 유니온 랭크가없는 경로 압축의 실행 시간은 언급하지 않았으며, 이것이 내가 일반적으로 구현하는 것입니다.

경로 압축 최적화를 사용하지만 순위 최적화를 사용하지 않는 조합 찾기의 상각 시간 복잡성은 무엇입니까?


5
참고 α(n) Ackerman 함수의 역수입니다. 1/A(n,n)). 여기서 "역"은 역수가 아닌 함수로서의 역을 의미합니다. 즉,f(n)=A(n,n), α(n)=f1(n)아니 1/f(n).
DW

나는 이것이 비교적 오래된 질문이라는 것을 이해하지만 내 대답과 관련 논문을 참조하십시오 : epubs.siam.org/doi/abs/10.1137/S0097539703439088 . 경계를 복사 할 때 세부 사항이 두 개 누락되었을 수 있습니다. 이 경우 편집을 제안하십시오 :-)
BearAqua

답변:


4

Seidel과 Sharir는 2005 년에 [1] 거의 임의의 링크로 경로 압축을 사용하는 것으로 입증되었습니다. m 작업은 대략적으로 복잡합니다 O((m+n)log(n)).

[1], 섹션 3 (임의 연결) : 보자 f(m,n) 다음과 같이 union-find의 런타임을 나타냅니다. m 운영 및 n집단. 그들은 다음을 증명했습니다.

주장 3.1. 모든 정수k>1 우리는 f(m,n)(m+(k1)n)logk(n).

[1]에 따라 설정 k=m/n+1 준다

f(m,n)(2m+n)logm/n+1n
.

Tarjan과 van Leeuwen의 [2], 섹션 3에서보다 복잡한 방법을 사용하여 유사한 경계를 설정했습니다.

[2]의 정리 7. 가정mn. 압축 및 순진 링크를 사용하여 구현 된 일련의 일련의 작업에서 찾기 경로의 총 노드 수는 최대(4m+n)log1+m/nn 절반과 순진한 연결로 찾기 경로의 총 노드 수는 최대 (8m+2n)log1+m/n(n).

[2]의 렘마 9. 가정m<n. 압축 및 순진 링크를 사용하여 구현 된 일련의 세트 작업에서 찾기 경로의 총 노드 수는 최대n+2mlogn+m.

[1] : R. Seidel과 M. Sharir. 경로 압축의 하향식 분석. 시암 제이 컴퓨팅, 2005, Vol. 34, No. 3, 515-525 쪽.

[2] : R. Tarjan 및 J. van Leeuwen. 집합 조합 알고리즘의 최악의 분석. J. ACM, Vol. 1984 년 4 월 31 일 No. 2, 245-281 쪽.


2

할부 상환 실행 시간이 무엇인지 모르지만 일부 상황에서 경로 압축 대신 두 가지를 모두 사용하려는 이유를 언급 할 수 있습니다. Θ(n) 경로 압축 만 사용하는 경우 순위와 경로 압축에 의한 통합을 모두 사용하는 것보다 훨씬 큽니다.

일련의 고려 n 깊이있는 나무를 만들기 위해 악의적으로 선택된 노조 작전 n1(이는 노드의 순차 경로이며 각 노드는 이전 노드의 하위입니다). 그런 다음 가장 깊은 노드에서 단일 찾기 작업을 수행하면Θ(n)시각. 따라서 작업 당 최악의 실행 시간은Θ(n).

대조적으로, 랭킹 별 최적화에서 작업 당 최악의 실행 시간은 O(logn): 단일 작업보다 시간이 오래 걸리지 않습니다 O(logn). 많은 응용 프로그램의 경우 이것은 중요하지 않습니다. 단일 작업의 최악의 시간이 아니라 모든 작업의 ​​총 실행 시간 (예 : 상각 된 실행 시간) 만 중요합니다. 그러나 경우에 따라 작업 당 최악의 시간이 중요 할 수 있습니다. 예를 들어 작업 당 최악의 시간을O(logn) 단일 작업으로 인해 지연이 발생하지 않도록하는 대화 형 응용 프로그램 (예 : 단일 작업으로 인해 응용 프로그램이 장시간 정지되지 않도록 보장하려는 경우) 또는 실시간으로 유용 할 수 있습니다. 당신은 항상 실시간 보증을 충족시킬 수 있도록 응용 프로그램입니다.

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