카르거 알고리즘

Karger's algorithm
그래프와 두 개의 그래프.빨간색으로 표시된 점선은 교차 모서리가 세 개 있는 절단선이다.녹색으로 표시된 점선은 이 그래프를 최소로 잘라 두 개의 가장자리만 교차한다.

컴퓨터 과학그래프 이론에서, 카거의 알고리즘은 연결된 그래프의 최소 컷을 계산하기 위한 무작위화된 알고리즘이다.데이비드 카거에 의해 발명되어 1993년에 처음 출판되었다.[1]

알고리즘의 개념은 엣지, v) 수축 개념을 비방향 G= , ) 기초하고 있다 비공식적으로 edge의 수축은 노드 displaysty u}과 v v 하나로 병합하여 총수를 줄인다.그래프의 1개 노드. v 을(를) 연결하는 다른 모든 가장자리는 병합된 노드에 "재연결"되어 사실상 다중 그래프를 생성한다.Karger의 기본 알고리즘은 무작위로 선택한 가장자리를 두 개의 노드만 남을 때까지 반복적으로 수축한다. 이 노드는 원래 그래프의 을 나타낸다.이 기본 알고리즘을 충분한 횟수로 반복함으로써 높은 확률로 최소 절단을 찾을 수 있다.

글로벌 최소 삭감 문제

A cut in an undirected graph is a partition of the vertices into two non-empty, disjoint sets . The cutset of a cut consists of the edges uv S, 두 부분 사이에 있는 \in u.가중치가 없는 그래프에서 절단된 부분의 크기(또는 무게)는 절단 세트의 카디널리티, 즉 두 부분 사이의 가장자리 수입니다.

{\ 속하든 T 에 속하든 각 꼭지점에 대해 2 2V 선택 방법이 있지만 중 두 가지 선택은 S S 또는 비어 있으며 컷을 발생시키지 않는다.나머지 선택 사항 중 T 의 역할을 스와핑해도 컷이 변경되지 않으므로 각 컷은 두 계수되므로V- - 1 {\^{ V 구별되는 컷이 .최소 절단 문제는 이 절단 중에서 가장 작은 크기의 절단면을 찾는 것이다.

의 에지 가중치가 w: E+ 인 가중 그래프의 경우 절단 가중치는 각 파트의 꼭지점 사이의 에지 가중치 합이다.

= 에 대한 가중치가 없는 정의에 동의함

컷은 특정 꼭지점 쌍에 "s s- t 컷과 하기 위해 "global cut"이라고 부르기도 하는데, 이 컷은 }에 대한 추가 요건이 있다 모든 컷은 cut for some . Thus, the minimum cut problem can be solved in polynomial time by iterating over all choices of and solving the resulting minimum - cut problem using the max-flow min-cut theorem and a po푸시-릴라벨 알고리즘과 같은 최대 흐름을 위한 리노멀 시간 알고리즘은 이 접근방식이 최적이지는 않지만.글로벌 최소 절단 문제에 대한 더 나은 결정론적 알고리즘에는 + n )의 실행 시간이 있는 Stoer-Wagner 알고리즘이 포함된다. n[2].

수축 알고리즘

카거 알고리즘의 근본적인 작동은 가장자리 수축의 한 형태다.The result of contracting the edge is new node . Every edge or for to the endpoints of the contracted edge is replaced by an edge 노드에{ , v} {\uv\}}.마지막으로 모든 인시던트 가장자리가 있는 계약 노드 u 이(가) 제거된다.특히 결과 그래프에는 자체 루프가 포함되지 않는다.가장자리 의 수축 는 G / 로 표시된다

The marked edge is contracted into a single node.

수축 알고리즘은 그래프에서 무작위 가장자리를 반복적으로 수축하는데, 이때 단 하나의 절단이 있을 뿐이다.

알고리즘의 핵심 아이디어는 최소 절삭 에지가 보통 최소 절삭되지 않은 에지에 의해 훨씬 수적으로 우세하기 때문에 최소 절삭 에지가 무작위로 선택되어 수축으로 손실될 가능성이 훨씬 더 높다는 것이다.이후, 최소 절삭 에지는 모든 가장자리 수축에서 살아남을 수 있으며, 알고리즘은 최소 절삭 에지를 정확하게 식별할 수 있다.

10-Vertex 그래프에서 Karger 알고리즘의 성공적인 실행.최소 컷은 3 사이즈 입니다.
절차 계약(=( , E)  G > 2  이(가 임의 G  / e 에서 균일하게  을()로 반환함

그래프를 인접 리스트인접 매트릭스를 사용하여 표시할 때, 구조에 대한 선형적인 수의 업데이트로 단일 에지 수축 연산을 실행할 수 있으며, 총 실행 시간은 O(V ) 또는 이 절차는 Kruskal의 알고리의 실행으로 볼 수 있다thm 순열 에 따라 가장자리가 ( )= ( ) 을(를 갖는 그래프에서 최소 스패닝 트리를 구성하는 경우 이 트리의 가장 무거운 가장자리를 제거하면 절단을 설명하는 두 구성 요소가 된다.이런 식으로 수축 절차는 O( O EE에 있는 크러스칼의 알고리즘처럼 구현될 수 있다

카거 알고리즘의 무작위 에지 선택은 오직 두 성분만이 남을 때까지 무작위 에지 순위가 있는 그래프에 크러스칼의 알고리즘을 실행하는 것과 일치한다.

가장 잘 알려진 구현에서는 O( ) 시간 및 공간 또는 ( E ) E 시간 및 O 공간을 사용한다[1]

수축 알고리즘의 성공 확률

그래프에서 G=n과(V, E){G=(V,E)\displaystyle})V{\displaystylen= V}vertices, 그 수축 알고리즘 polynomially 작은 확률(n2)과 1{\displaystyle{\binom{n}{2}}^{)}−}. 모든 그래프 2n− 1− 1{\displaystyle 2^{n-1}-1}amo cuts,[3]고 있는 최소 상처를 반환합니다.쇼핑최대( ) 최소 절단일 수 있다.따라서 이 알고리즘의 성공 확률은 절단을 무작위로 선택할 확률보다 훨씬 우수하며, 이는 최대( )/(- - )이다

예를 들어, 꼭지점에 대한 사이클 그래프는 정확히(2 ){\{\}}개의 최소 절단을 가지며, 2개의 가장자리를 선택하는 모든 선택에서 주어진다.수축 절차는 이것들 각각을 동일한 확률로 찾는다.

확률에서 하한을 추가로 설정하려면 C C이(가) k 의 특정 최소 절단 가장자리를 나타내도록 하십시오수축 알고리즘은 의 가장자리가 C 의 절단 세트에 속하지 않을 C을(를) 반환한다 특히 첫 번째 가장자리 수축은 1 - /{\E를)에서 한다 )의 최소도이(가) k {\이므로(그렇지 않으면 두 파티션 중 하나가 최소도 정점만을 포함하는 경우 더 작은 절단을 유도할 수 있음) / 2 E 따라서 수축 알고리즘이 에서 에지를 선택할 확률은 c}이다.

The probability that the contraction algorithm on an -vertex graph avoids satisfies the recurrence , with 가능

수축 알고리즘 반복

수축 절차를 10회 반복한다.다섯 번째 반복은 사이즈 3의 최소 컷을 찾는다.

수축 알고리즘 =( ) n (를) 독립 랜덤 선택으로 반복하고 가장 작은 컷을 반환하면 최소 컷을 찾지 못할 확률은 다음과 같다.

가장자리가 개이고 m {\ m개인 그래프에 대한 반복의 총 실행 시간은 )= ) n이다

카거-슈타인 알고리즘

데이비드 카거클리포드 스타인에 의한 카거 알고리즘의 연장은 규모 개선의 순서를 달성한다.[4]

그래프가 정점에 도달할 때까지 수축 절차를 수행하는 것이 기본 생각이다.

procedure contract(, ):    while         choose  uniformly at random         return 

수축 절차가 그래프에서 특정 절단 을(를) 피할 확률은 다음과 같다

이 식은 대략 t / n t}}이며 = / 2 주위에 1 }2 특히, 의 에지가 수축될 확률은 끝을 향해 증가한다.이것은 일정한 수의 수축 단계를 거쳐 느린 알고리즘으로 전환하려는 생각을 자극한다.

procedure fastmincut():    if :        return mincut()    else:          contract(, )         contract(, )        return min {fastmincut(), fastmincut()}

분석

알고리즘이 특정 컷셋 을(를) 찾은 확률 은(는) 반복 관계에 의해 주어진다.

P( )= ) n를) 사용하여 .fastmincut의 실행 시간이 충족됨

with solution . To achieve error probability , the algorithm can be repeated times, for an overall running time of ) .이것은 카거의 원래 알고리즘보다 크기가 더 나아진 순서다.

개선 바운드

최소 절단을 결정하려면 그래프의 모든 에지를 한 번 이상 터치해야 하는데, 이는 밀도 그래프에서 2) 시간이다.Karger-Stein의 min-cut 알고리즘은 ( (1 ) O(1의 실행 시간을 사용하는데, 이 시간은 그에 매우 가깝다.

참조

  1. ^ a b Karger, David (1993). "Global Min-cuts in RNC and Other Ramifications of a Simple Mincut Algorithm". Proc. 4th Annual ACM-SIAM Symposium on Discrete Algorithms.
  2. ^ Stoer, M.; Wagner, F. (1997). "A simple min-cut algorithm". Journal of the ACM. 44 (4): 585. doi:10.1145/263867.263872. S2CID 15220291.
  3. ^ Patrignani, 마우리치오;Pizzonia, 마우리치오(2001년),"그matching-cut 문제의 복잡성", Brandstädt, 안드레아스, 르, 반 빅뱅(eds.), Graph-Theoretic 개념 컴퓨터 과학으로:27일 국제 워크숍 WG 2001년, Boltenhagen, 독일, 6월 14일부터 16일까지의, 2001년, 회보, 강의 노트 컴퓨터 과학으로, 2204 vol., 베를린:스프링거,를 대신하여 서명함. 284–.295, doi:10.1007/3-540-45477-2_26, MR1905640.
  4. ^ Karger, David R.; Stein, Clifford (1996). "A new approach to the minimum cut problem" (PDF). Journal of the ACM. 43 (4): 601. doi:10.1145/234533.234534. S2CID 5385337.