최대 흐름 계산 또는 기타 응용 프로그램을 위해 링크 컷 트리가 실제로 사용되고 있습니까?


20

내가 일반적으로 구현하는 많은 최대 흐름 알고리즘, Dinic의 알고리즘, 푸시 레이블 등은 동적 트리 (링크 컷 트리라고도 함)를 사용하여 점근 적 시간 비용을 개선 할 수 있습니다 .

  • 푸시 레이블 재 지정은 또는 또는 정상적으로 실행되지만 동적 트리O(V2E)O(V3)O(V2E)O(VElog(V2/E))
  • Dinic의 알고리즘은 에서 실행되지만 동적 트리O(V2E)O(VElog(V))

그러나 대부분의 라이브러리에서 max-flow 알고리즘의 실제 구현은이 데이터 구조를 사용하지 않는 것 같습니다. 최대 유량 계산에 실제로 동적 트리가 사용 되었습니까? 아니면 실제 문제 크기에 유용하기에는 너무 많은 오버 헤드가 있습니까?

링크 컷 트리가 사용되는 다른 문제 도메인이 있습니까?

이 질문은 내가 cstheory에서 질문 한 질문과 관련이 있습니다 . 최첨단 최대 흐름 알고리즘은 실용적입니까?


개요 /의 내림차순 링크 컷 나무 만 상태는 "같은 네트워크 흐름과 같은 애플리케이션에 유용하다"
vzn

reza가 인용 한 tarjan 조사에서 기본적으로 선형 시간 알고리즘은 적당한 수의 정점 / 가장자리에 대해 매우 잘 / 최고의 성능을 발휘하며, 로그 알고리즘이 선형 알고리즘보다 성능이 뛰어난 큰 정점 / 가장자리의 임계 ​​값이 있습니다. 따라서 대수 액세스 fns는 유용하며 매우 큰 그래프에 훨씬 더 좋습니다.
vzn

답변:


7

실제 구현을 검토하는 " 실제 동적 트리 "라는 제목의 논문이 있습니다 .

Link-Cut 트리를 효율적으로 사용할 수있는 다른 범주는 Database Indexing 입니다. 책 " Database Index Techniques " 에서 찾을 수 있습니다 .


이것은 약간의 정교함이 필요하다고 생각합니다. 트리는 일반적으로 인덱스에 유용하지만 어떤 조건에서 트리가 수정됩니까?
vzn

@vzn : B +-트리, R- 트리, H- 트리 및 X- 트리가 그 예입니다.
Reza

물론, 아마도 아무도 DB 인덱스에서 링크 컷 트리를 사용해 본 적이 없을 것입니다. 자사의 그럴듯한 응용 프로그램하지만 그것은 그들이 DB 인덱스에서 발생하는 동일한 작업을 위해 최적화하고 분명 같지 않습니다.
vzn

5

이 백서의 마지막에는 링크 컷 (LC) 트리가 표준 Dimacs 랜덤 그래프 생성기를 사용하여 Sleator / Tarjan 최대 흐름 알고리즘에 대해 레이크 (Rake) 압축 (RC) 트리보다 성능이 우수하다는 사실을 발견했습니다.

이 백서는 동적 트리의 한 응용 프로그램으로서 변경 전파에 중점을 둡니다. 예를 들어, 변경 전파는 Excel 스프레드 시트 셀이 셀 / 수식 의존성에 따라 일부 셀의 변경에 대해 다시 계산되어야하는 방식과 유사합니다. 저자는 공개 라이브러리로 코드를 공개했습니다.

역동적 인 나무 Acar, Blelloch, Vittes 의 변화 전파 실험 실험

변경 전파는 입력의 변경에 맞게 알고리즘의 출력을 자동으로 조정하는 기술입니다. 변경 전파의 기본 개념은 데이터와 함수 호출 간의 종속성을 추적하여 입력이 변경 될 때 해당 변경의 영향을받는 함수를 다시 실행하여 계산 및 출력을 업데이트 할 수 있도록하는 것입니다. 변경 전파를 통해 컴파일러는 정적 알고리즘을 동적화할 수 있습니다.


감사합니다. 동적 트리를 포함하는 알고리즘의 벤치 마크를 보는 것이 좋습니다.
Rob Lachlan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.