삽입 / 삭제가있는 경우 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+nlognnn1.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.