삽입 / 삭제가있는 경우 DAG에 대한 연결 정보를 효율적으로 유지 관리하는 알고리즘이 있습니까?


17

방향성 비순환 그래프 가 주어지면 다음 작업을 효율적으로 지원할 수 있습니까?G(V,E)

  • :를 결정은의 경로가있는 경우 G 노드로부터노드isConnected(G,a,b)Gab
  • : 선택된 행 에지에 B 그래프 Glink(G,a,b)abG
  • : 에지로부터 제거 을 에 B 의 Gunlink(G,a,b)abG
  • : G에 꼭짓점을 추가합니다add(G,a)
  • : G에서 꼭짓점을 제거합니다remove(G,a)

몇 가지 참고 사항 :

  • 만약 우리가 허용하지 않는다면 , 분리 세트 타입의 데이터 구조를 사용하여 연결 정보를 유지하는 것이 쉬운 것처럼 보일 것입니다.unlink
  • 물론, 그래프의 순 포인터 기반의 표현을 사용하여, 깊이 또는 너비 우선 탐색을 사용하여 구현 될 수있다. 그러나 이것은 비효율적입니다.isConnected

세 작업 모두에 대해 상각 된 상수 또는 로그 시간을 원합니다. 이게 가능해?



1
분리 세트 유형 데이터 구조를 사용하여 링크를 해제하지 않고 간단한 경우를 해결하는 방법을 설명해 주시겠습니까?
— jbapple

@Tsuyoshi-그 질문에 대한 링크가 흥미로워 보입니다. 이제 그들을 살펴보고 있습니다.
— 저스틴 킬 패트릭

(1) 그래프가 DAG라는 제한이있는 지시 된 도달 가능성에 대한 동적 그래프 알고리즘을 찾고 있습니다. 내가 실수하지 않으면 동적 지향 도달 가능성은 지시되지 않은 상대방보다 훨씬 어렵지만 여기서 DAG 속성이 도움이 될 수 있습니다. (2) remove입사 가장자리도 제거 합니까 ? 그렇다면 O (log n) 시간이되도록 작업을 요구하는 것은 너무 희망적 일 수 있습니다….
— Ito Tsuyoshi

답변:


19

설명한 문제는 완전 동적 DAG 도달 가능성 (DAG에서 완전 동적 전이 폐쇄라고도 함)입니다. 사람들은 삭제 만 가능한 버전 (감소 적 도달 가능성이라고 함)과 삽입 만 가능한 버전 (증분 적 도달 가능성이라고 함)을 연구하기 때문에 완전 동적이라고합니다.

업데이트 시간과 쿼리 시간 사이에는 몇 가지 장단점이 있습니다. 하자 모서리의 수와 수 n은 정점의 수. DAG의 경우 Demetrescu 및 Italiano (FOCS'00)는 O ( n 1.58 ) 시간의 업데이트 (가장자리 삽입 또는 삭제) 및 O ( n 0.58 ) 시간의 도달 가능성 쿼리 (노드 삽입 / 삭제도 지원 )를 지원하는 무작위 데이터 구조를 제공했습니다. O (1) 시간); 이 결과는 Sankowski (FOCS'04)에 의해 일반 방향 그래프로 확장되었습니다. 또한 DAG의 경우 Roditty (SODA'03)는 전이 폐쇄 매트릭스를 총 시간 O ( m n + I · n 2 + D )로 유지할 수 있음을 보여주었습니다 .mnn1.58n0.58mn+I·n2+D 삽입 횟수, D 는 삭제 횟수이며 물론 쿼리 시간은 O ( 1 )입니다.ID1

일반 유향 그래프를 들어, 다음의 (갱신 쿼리) 시간이 공지되어있다 (O ( ), O (1)) (Demetrescu 및 한국어 FOCS'00은 (상각) Sankowski FOCS'04 (최악의 경우)) ( O ( m √n2 ),O( √mn )) (Roditty, Zwick FOCS'02), (O (m+nlogn), O (n)) (Roditty, Zwick STOC'04), (O (n 1.58 ), O (n 0.58 )) 및Sankoowski (FOCS'04)에 의해(O (n 1.495 ), O (n 1.495 )).O(nm+nlog⁡nnn1.58n0.58n1.495n1.495

업데이트 시간을 너무 많이 늘리지 않고 다항식 쿼리 시간을 얻는 것은 DAG의 경우에도 주요 문제입니다.


1
답변 주셔서 감사합니다. 나는 그 경계가 얼마나 가난한 지에 실망한다고 말해야하지만. :(
— Justin Kilpatrick 5

1
관련 질문 : 간단한 문제, 점진적인 도달 가능성 및 DAG의 감소 가능한 도달 가능성에 대한 참조를 알려 주시겠습니까?
— 저스틴 킬 패트릭

이것은 순진한 dfs 접근 방식 (O(1),O(n^2))이나 보다 낫지 않습니다 (O(m),O(n+m)).
— 토마스 Ahle

4

지금까지 최고의 결과는 "완전 동적 전이 폐쇄를위한 동적 매트릭스 관리" 에서 논의되고 있다고 생각합니다 . 이 백서에서는 쿼리 시간과 O ( n 1.58 ) 업데이트 시간이 있는 무작위 알고리즘에 대해 설명합니다 .O(n0.58)O(n1.58)

(이것은 단지와 함께, 귀하의 질문의 첫 번째 버전을 포함 link하고 unlink있지만없이 add하고 remove.)


범위는 Strassen의 알고리즘을 기반으로하므로 상수가 큽니다.
— Thomas Ahle
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.