문제

$ \ mathcal {v} $ 및 모서리 집합 $ \ Mathcal {e} $ . 그래프의 모든 2 개의 정점 사이에는 경로가 있습니다. 각 가장자리에는 연관된 가중치 $ W (e), e \ in \ Mathcal {e} $ . (전역) 임계 값 $ T $ 을 정의합니다. $ W ((u, v)) $ u, v \ in \ mathcal {v} $ \ span>은 동일한 그룹에 있습니다 : $ g \ \ mathcal {v} \ Nightarrow \ MathBB {z}, g (v_1)= g (v_2) $ . 이 동작은 전이입니다. 목표는 0에서 시작하는 별개의 그룹을 레이블하는 것입니다 (그룹의 순서는 무의미하지 않습니다). 나는 이것이 BFS 또는 DFS와 함께 사소히 달성 될 수 있음을 알고 있지만, 나는 그 사용을 피하고 싶다.

내가 생각해 낸 아이디어는 정점을 반복하고, 1 벨소리 인근을 위로 가고, $ w ((u, v))를 매번 만들 때마다 새로운 그룹을 만드는 것입니다. ) $ U $ 또는 $ V $ 에 대한 그룹 (예 : $ g (u)= g (v)= -1 $ ) 할당 된 그룹이 지정되었습니다. 또한 각 그룹에는 $ h : \ mathbb {n} \ \ mathbb {n}, h (g ( u))= g (u) $ . 일부 지점 $ w ((x, y)) $ w ((y, z)) ,하지만 $ g (x) \ng (z) $ 다음 $ h ( g (x) \ \ \ min (h (g (g (x)), h (g (g (g (z)) $ $ h (g (z)) \ 왼쪽 arrowh (g (x)) $ 이후, $ h (g (u))= h (g (v)), u, $ u $ 에서 $ V $ : $ \ pi= e_1, ..., e_n $ $ w (e_i) . 내가 올바른 알고리즘인가 아니면 내가 뭔가를 그리워했던 알고리즘인가? 현재 $ | \ mathcal {v} | $ 메모리가 필요합니다. 각 배열 $ G, H $ .이 더 이상 최적화 방법이 있습니까?

다른 팁

나는 알고리즘이 정확하다고 믿습니다. 증거의 스케치가 아래에 제시됩니다 :

2 예가 있습니다 : $ u \nv \ in \ mathcal {v} $ 은 같은 그룹에서 가져올 필요가 있습니다. 다른 그룹 ( $ w (e) 과 같은 경로가 있는지 여부에 따라 다름. 알고리즘이 결과 그룹을 생성하는 것으로 표시되어야합니다 (각 경우에 대한 증거는 모순으로 수행됩니다).

  1. 케이스 1 : $ U, v \ MATHCAL {v} $ $ u $ $ v $ : $ \ pi= e_1, ..., e_n $ $ W (E_I) 과 같은 . 그런 다음 $ h (g (u)) $ $ h (g (v)) $ 알고리즘이 올바르지 않습니다.

  2. 알고리즘의 가정 잘못된 것 :이 사실이 아니라 $ u $ , $ v $ 알고리즘의 결과를 기반으로 다른 그룹에 속합니다. 단순성을 위해 $ \ pi=pi_1, x, y, z, \ pi_2; \, x, y, z \ \ mathcal {v} $ $ \ pi_1, x $ 의 모든 정점은 $ h (g (u)) $ $ y, z, \ pi_2 $ $ h (g (v)) $ 에 속합니다. 알고리즘을 기반으로합니다. 위의 가정에 이어지는 경우는 입증되지만 $ \ pi $ 이 더 많은 그룹으로 분할 되어도 유도에 의해 동일하게 유지되는 것이 명확해야합니다. 알고리즘.

  3. 모순에 의한 증명 : (1)에서 $ w (x, y) 에서 (2) $ h (g (x)) \nh (g (z)) $ . 알고리즘의 정의에서 $ w (x, y) 그러나 $ h (g (x)) \nh (g (z)) $ . 알고리즘은 모든 가장자리를 지나가기 때문에 $ h (g (x)) $ $ h (g ( z)) $

    1. 케이스 2 : $ u, v \ mathcal {v v \ in \ mathcal> 경로 $ \ pi $ $ u $ $ v $ $ w (e) , $ h (g (u))= h (g (v)) $

    2. 알고리즘의 가정 잘못됨 : $ h (g (u))= h (g (g (v)) $

      를 가정합니다.

    3. 모순에 의한 증명 : 그룹 창조 및 그룹 병합에서 (동일한 그룹에서 정점을 완화 할 수있는 단 두 가지 방법) 모두 $ u $ 사이의 경로가 존재해야합니다. $ v $ $ w (e) . (3) 그러한 경로가 존재하지 않는다고 주장하고 $ h (g (u)) \ nh (g (v)) $

      .

      분명히 증거가 상당히 비공식적이므로 나는 뭔가를 놓쳤을지도 모른다. 1) 누군가가 더 나은 & 더 최적화 된 알고리트를 만들 수 있고 2) 내 증거에 실수가있을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top