Kruskal과 Prim은 모든 MST 최소 스패닝 트리에 도달 할 수 있습니까?


13

나는 이것이 사실이라고 생각하지만 공식적인 증거를 얻을 수 없었습니다. 그러나 Kruskal의 알고리즘을 적용하여 최소 스패닝 트리에 도달 할 수 있습니까? 마찬가지로 Prim의 알고리즘에도 해당됩니까?

편집 : 더 정확하게 말하면 연결된 무 방향 가중 그래프에 대해 MST가 주어 졌는지 알고 싶습니다.이 MST를 생성하는 Kruskal 또는 Prim을 사용하는 일련의 단계가 보장됩니다. 예 : 무게가 같은 모서리가 여러 개인 경우 Kruskal에 대해 다른 선택이 있습니다. Prim도 비슷합니다.


2
절름발이 로 사용할 다른 결과에 대한 관련 답변 과 토론.
Raphael

3
내 대답의 첫 번째 섹션은 크루스 칼의 알고리즘이 증명, 나는 비슷한 인수가 프림의 작동 것이라고 생각 : stackoverflow.com/a/13779113/47984
j_random_hacker

답변:


9

Raphael의 의견j_random_hacker의 의견 에서 알 수 있듯이 대답은 긍정적입니다. 실제로, 모든 MST는 약간의 예외를 제외 하고 모든 MST 알고리즘 으로 도달 할 수 있습니다.

그래프 , 가중치 함수에 의해 유도 된 모서리의 엄격한 약한 순서를 동일한 엄격으로 확장 할 수있는 경우 모든 모서리 (실수)의 두 가중치 함수는 (약하게) 비교 호환 가능 (서로 )으로 정의됩니다. 총 주문. 즉, 우리는 각 가중치 함수마다 일관된 타이 브레이킹 규칙을 고안하여 하나의 웨이트 함수와 그 웨이크 브레이킹 규칙에 의한 두 모서리의 비교 결과가 다른 가중치 함수 및 타이- 위반 규칙.G

렘마 1 : w 2 가 두 가지 가중치 함수가되도록합니다. 다음 5 가지 내용은 서로 동일합니다.w1w2

  1. w 2 는 비교 호환 가능합니다.w1w2
  2. 임의의 에지 세트에서, w 2 만큼 공통의 가장 밝은 에지가 존재한다 .w1w2
  3. 모든 모서리 세트에서 w 2 만큼 공통 가장 무거운 모서리가 있습니다.w1w2
  4. w 3w 1w 2 와 비교 호환되도록 서로 다른 에지에 서로 다른 가중치를 할당 하는 가중치 함수 이 있습니다.w3w3w1w2
  5. 모든 에지에 대해 2 되도록 전자 (1)가 보다 가벼운 2 하나의 가중 함수에 의해, (1) 와 같은 광 또는보다 가벼운 같다 2 다른 가중 함수에 의해.e1e2e1e2e1e2

정리 1 증명은 쉬운 운동으로 남아 있습니다.

렘마 2 : 두 가중치 함수 w 2e 1 < w 1 e 2 이면 e 1 < w 2 e 2가되도록하십시오 . 그런 다음 비교가 가능합니다.w1w2e1<w1e2e1<w2e2

(행 힌트) 증명 : 하나 개의 방식은 다른 접근 방식은 에지 중 어느 세트에 의해 밝은 에지 것을 보여 조건을 보조 정리 1의 (2)를 검증하는 표제어 (1)의 상태 5를 검증하는 것이다 도에 의해 밝은 에지이고 1 ,w2w1

그래프 의 비교 기반 알고리즘 은 모든 모서리에서 두 가지 (약한) 비교 호환 가중치 함수에 대해 변경없이 반복 할 수있는 방식으로 하나의 가중치 함수로 알고리즘을 실행할 수있는 경우 비교 호환 으로 정의됩니다. 다른 무게 기능으로. 특히,이 두 가지 알고리즘 실행은 동일한 출력을 갖습니다.G

모든 MST 알고리즘이 아니라면 대부분 두 가지 맛으로 표현 될 수 있습니다. 첫 번째 맛은 뚜렷한 모서리 가 서로 다른 가중치를 가지고 있다고 가정 하는데, 이는 주요 관심사가 하나의 MST (실제로 고유 한 MST이기도 함)를 찾는 경우에 사용됩니다. 두 번째 맛은 G의 다른 모서리 가 같은 무게를 갖도록합니다. 물론 모든 MST를 찾는 것이 주요 관심사 인이 답변에서는 두 번째 맛에서만 MST 알고리즘 만 관리합니다.GG

비교 호환 MST 알고리즘은 모든 MST를 찾을 수 있습니다.

위의 제안을 증명하기 위해 MST 수 계산 에서 "Kruskal이 모든 MST를 찾을 수 있음"섹션을 약간만 조정 하면 됩니다. 가중치 함수 w 1을 갖는 G의 MST 에 대해, 한 쌍의 불균일 한 에지 가중치 간의 절대 차이보다 가벼운 양의 가중치를 선택하십시오. 다른 모서리의 가중치를 변경하지 않고 m 단위의 각 모서리의 가중치에서 해당 가중치를 빼면 w 2 와 같은 새로운 가중치 함수를 얻습니다 . 에지 경우 1 보다 가벼운 2 에 의해 w (1) , 1 보다 가벼운 있어야mGw1mw2e1e2w1e1 by w 2 도 마찬가지입니다. 정리 2에 의해, w 1 w 2 는 비교 호환 가능하다. 참고 m가 가진 고유의 MST이다 w 2 . (이 고유성을 나타내는 한 가지 방법은 하나의 MST 모서리의 무게가 줄어들 때마다 새로운 가중치 기능이있는 모든 MST에 해당 모서리가 포함되어야 함을 증명하는 것입니다. 따라서 w 2 에서 알고리즘을 실행하면 m이 됩니다. 알고리즘은 비교 호환 가능하므로 w 1 또는 w 2 와같은 방식으로 알고리즘을 실행할 수 있습니다. 그 실행이 독특한 MST를 찾을 수 있기 때문에, 해요e2w2w1w2mw2w2mw1w2m , w 1 과 함께 m 을찾습니다.w2mw1

모든 MST 알고리즘은 비교 호환 가능

위의 제안은 과장된 것 같습니다. 글쎄, 모든 MST 알고리즘에 따르면, 내가 잘못 보았거나 불필요한 단계가있는 것처럼 보이는 병리학 적 알고리즘을 제외하고 내가 본 일반적인 비교 기반 MST 알고리즘을 의미합니다. 비교 호환 MST 알고리즘은 모든 MST를 찾을 수 있으므로 모든 MST 알고리즘은 모든 MST를 찾을 수 있습니다. 특히, 각각의 네 개의 고전 MST 알고리즘 즉, Borůvka의, 프림의, 크루스 칼의 및 역 삭제 알고리즘은 모든 MSTS를 찾을 수 있습니다.

비교 호환 MST 알고리즘이 세 가지 더 있습니다.

  • 최첨단 알고리즘. 모든 가장자리부터 시작하십시오. 사이클을 반복해서 찾아서 사이클이 남아 있지 않을 때까지 가장 큰 가장자리 중 하나를 제거합니다.
  • 헤비 에지가 아닌 알고리즘 빈 세트로 시작하십시오. 모든 가장자리를 반복합니다. 각 모서리가 추가되고 사이클이 형성되면 가장 두꺼운 모서리 중 하나를 제거하십시오.
  • 가장 가벼운 대체 알고리즘 스패닝 트리 시작하십시오 . T 에서 T가 아닌 모서리 e에 사이클을 찾습니다 . 에지 경우 t 그주기가보다 무거운 전자 , 제거 t을 에서 T 및 추가 전자T . 더 이상 T 의 무게를 줄일 수 없을 때까지 반복 하십시오.TTeTtetTeTT

다음 MST 알고리즘은 비교 호환되지 않습니다.

  • 차분 바이어스 Kruskal 알고리즘은 다음과 같이 수정 된 Kruskal 알고리즘입니다. Kruskal의 알고리즘 에 대한 Wikipedia의 설명 에서와 같이 에서 최소 가중치를 갖는 모서리를 제거 할 때 선택할 최소 가중치를 갖는 다중 모서리가 있다고 가정하십시오. 우리가 제거하기로 선택한 모서리는 두 정점의 각도 합계가 모든 선택 중에서 가장 큰 모서리입니다. 이 알고리즘은 꼭짓점이 a , b , c 및 edge a b 인 그래프 의 MST { a b , b c , c d } 를 찾지 못하므로 비교 호환 될 수 없습니다.S{ab,bc,cd}a,b,cab체중 가장자리 (B) (C) , (C)의 D , D , B 중량의 2 . 이 알고리즘은 불필요한 수정으로 인해 병리학으로 간주됩니다.1bc,cd,db2

위에서 언급 한 8 가지 MST 알고리즘은 모두 비교 기반입니다.

알고리즘이 비교 호환되는지 표시하는 방법은 무엇입니까?

Kruskal의 알고리즘을 예로 사용하겠습니다. 다음은 가중 비 방향 연결 그래프 에 대한 Kruskal 알고리즘 (두 번째 맛)에 대한 설명입니다 .G

  • G 와 동일한 꼭지점이 있지만 모서리가없는 그래프 를 만듭니다. 그래서 F는 하나의 정점의 분리 나무의 숲입니다.FGF
  • 그래프의 모든 모서리를 포함 하는 세트 를 만듭니다 .S
  • 반면 하늘이 아닌 및 F는 아직 걸친되지 않는다 SF
    • 에서 최소 무게의 모서리를 선택하십시오 .S
    • 에서 해당 모서리를 제거합니다 .S
    • 그 가장자리가 두 개의 다른 나무를 연결하면 두 개의 나무를 하나의 나무로 결합 하여 포리스트 추가하십시오.F
  • 출력 .F

w 2G의 두 가지 비교 호환 가중치 함수라고 하자 . Kruskal의 알고리즘은 " S 에서 최소 무게를 가진 모서리를 선택하는"단계에서만 무게 함수를 포함합니다 . lemma 1의 조건 2는이 단계에서 가장 밝은 가장자리를 선택할 수 있음을 나타냅니다. 그런 다음 w 1w 2 와 동일한 방식으로 모든 단계를 실행할 수 있음을 유도하여 쉽게 확인할 수 있습니다 . 따라서 Kruskal의 알고리즘은 비교 호환됩니다.w1w2GSw1w2

알고리즘은 느슨한 용어로 세 가지 단계로 설명 할 수있는 경우 비교 호환됩니다.

  1. 체중이없는 것을하십시오.
  2. 주어진 모서리 세트에서 최소 무게를 가진 모서리를 선택
  3. 주어진 모서리 세트에서 최대 무게의 모서리를 선택하십시오.

이 충분한 조건은 Borůvka 's, Prim 's, Kruskal 's, reverse-delete, delete-heavy-edge 및 add-non-heavy-edge 알고리즘을 포함합니다. 이 충분한 조건에 맞추기 위해 도달 가능한 MST 세트에 영향을주지 않고 알고리즘에 대한 특정 설명을 변경해야 할 수도 있습니다. 정도 바이어스 Kruskal의 알고리즘이 비교 호환되는 것을 제외하고,이 충분한 조건이 느슨한 용어로 설명되어 있음을 강조하겠습니다

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