알고리즘 설계 및 분석 과정을 검토 노트 10-- 최소 스패닝 트리

알고리즘 설계 및 분석 과정을 검토 노트 10-- 최소 스패닝 트리

최소 스패닝 트리 MST

도로 문제
, 작은 마을 일부 주택과 도로의 일부, 모든 도로 연결 및 연결 두 주택, 연결 유지 보수 비용 U와 V로드 하우스 (유, v)를, 승입니다
그리고 이제 충분히 길을 복구 할 필요가 같은 것을 : 두 개의 주택 각, 최소 유지 보수 비용 사이의 통신을 유지합니다.

사진은 오른쪽의 도로 유지 보수 비용에 대한 도면, 정점의 집 가장자리에는 연결되지 않습니다.
은 T, T 집합 E, 및 W (T) = 찾기 Σ ( , V ) w ( u , v ) \ displaystyle \ 합 _ {(U, V) ∈T} w (U, V)

최소 스패닝 트리 특성

  • 비 고유
  • 어떤 루프 없다
  • MST 측의 수는 정점을 뺀 수입니다

MST는 생성
일반적인 절차 :
에지 (A)의 세트를 만들고, 빈이 때부터
서서히는 A 측에 첨가하고이 유지 MST의 일부이다
IFF ∪ {(U는 V) } MST의 서브 세트는, 우리 에지 (u, v)는 상기 안전

MST 일반적인 알고리즘
← 빈 세트
얼마가 스패닝 트리 아니다 (MST이 형성되지 않은)
 인 안전을 위해 에지 (U, V)를 찾을 수 있습니까 (A면 안전 (U, V) 찾을 수)
  ←을 {∪ (U, V)}
를 반환

어떻게 안전의 측면을 찾으려면?
일부 정의 :

  • 절단 : 그래프의 정점을 연결 해제 두 개의 집합으로 S 및 V - S를
  • 커팅 에지의 두 끝점하면, 각각 두 세트와 S V - 다른 S, 우리는 그 가장자리에 걸쳐 절단 대답
  • 비 간섭 절단 컬렉션 \ leftrightarrow 설정된 상기 절삭 날은 교차하지
  • 가장자리에서 빛 컷 \ leftrightarrow 최소 가중치 에지에 절삭 날에 걸쳐 모든

정리 :
A는 서브셋 MST이고, (S가 V - S)가 절단되지 않은 개입은, (u, v)가 빛의 가장자리에 걸쳐 절단 된 다음, (u, v)는 A에 대한 안전 .

크루스 칼의 알고리즘

  1. 이다 처음부터 각각의 정점, 각 정점의 구성 요소
  2. 측면 광 LE를 선택하면, 두 요소가 서로 연결되어 유지할
  3. 에지 부 검사의 순서로 우선 순위 값 세트를 증분
  4. 여부는 다른 성분의 데이터 구조를 에지 판정 무관 세트를 사용하여 연결

관련 작업하지 모음

  1. MAKE-SET (U) 요소만을 포함하는 컬렉션을 만들 수있는 유
  2. FIND-SET (U)는 U를 포함하는 대표적인 소자를 반환
  • 세트의 모든 요소는 특정 속성을 가지고
  • 세트 S u S_u 특성은 알파벳 순서 첫 번째 문자에
    예 : S u S_u = {R, S, T, U} FIND-SET (U) = R, FIND-SET (S) = R
  • 주어진를 들어, 같은 값을 반환
  1. UNION (U, V) 병합 동작
    예 : S u S_u = {R, S, T, U} S v S_V = {V, X, Y}
    UNION (U, V) = {R, S, T, U, V, X, Y}

크루스 칼 (V, E, w)
 ←空集
 각 정점 v 및 ∈ V는
  MAKE-SET (V)을 수행
 (权值递增排序) w는 중량 비 내림차순으로 정렬 E를
 각각 (U는 V)에서 촬영 정렬 된 목록을
  할 경우 FIND-SET (U) ≠ FIND-SET (V) (属于不同的组件)
   다음 ← ∪ {(u는, V)}
    UNION (유, v)를
 반환 A를

비용을 실행 : O ( E l g V ) O (ELGV)
최소 스패닝 트리
프림 알고리즘

  1. 가장자리의 집합의 트리를 형성
  2. 선택한 루트의 처음부터
  3. 때마다
  • (절단을 확인 V A V_A , V - V A V_A ) LE의
  • 르의 추가
  • 트리에있는 모든 정점에있어서 때까지 반복
  1. 욕심 전략 : 나무와 무게의 증가 최소한의 측면 모서리의 각 추가

얼마나 빨리 LE을 결정?
우선 순위 큐를 사용하여

  • 그것은 모든 정점 (V 트리를 포함 - V A V_A )
  • 각 정점이 키 값이 어느 측에 접속, 즉 트리 할당 (U를, V) (V)를 최소 중량
    경우 V 및 V A V_A 모든 정점은, 다음 키 값을 연결되어 있지 않습니다 \ infty
    노드 증가, 모든 노드의 키 값 조정을 이에 접속

프림 (V, E, R, w)
 Q ←空集
 각 U ∈ V 대해
  수행 키 [U] ← \ infty
    π [U] ← NIL의
 키 [R] ← 0
 Q ← V
 동안 Q ≠空集
   수행 U ← EXTRACT-MIN (Q)
   각 V 용 ∈ 치 [U]
    않으면 V ∈ Q 및 w (U, V) <키 [V]
      다음 π [V] ← U
        키 [V] ← w (U, V)

PRIM1
PRIM2
PRIM3
PRIM4
알고리즘 분석
프림 분석

참조 : 학급 교사 교수 쿠 테크 붉은 코스

게시 25 개 원래 기사 · 원 찬양 19 ·은 10000 +를 볼

추천

출처blog.csdn.net/weixin_42605042/article/details/89811107