유 방향 그래프에서 두 노드 사이의 간단한 경로 수를 계산하는 것이 얼마나 어려운가요?


29

유 방향 그래프에서 두 노드 사이에 경로가 있는지 여부를 결정하는 쉬운 다항식 알고리즘이 있습니다 (심도 우선 검색으로 일상적인 그래프 탐색 만 수행).

그러나 놀랍게도 존재 여부를 테스트하는 대신 경로 수 를 계산 하려는 경우 문제가 훨씬 어려워집니다 .

우리는 재사용 정점에 경로를 허용하는 경우 다음에서 경로의 수를 찾을 수있는 동적 프로그래밍 솔루션이 tn 개의 가장자리가. 그러나 정점을 재사용하지 않는 간단한 경로 만 허용하는 경우, 내가 생각할 수있는 유일한 해결책은 경로의 무차별 대입 열거입니다 .

그래서 묻습니다.

  • 두 정점 사이의 간단한 경로 수를 계산하는 것이 어렵습니까?
  • 그렇다면 NP- 완전한 것입니까? (기술적으로 의사 결정 문제가 아니기 때문에 일종의 말을합니다 ...)
  • P에도 하드 카운팅 버전이있는 다른 문제가 있습니까? **

BTW, 나는 실제로이 질문에 대한 답을 알고 있지만 처음 질문했을 때 다시 질문하면 어떤 대답을 얻을지 궁금합니다.
hugomg


@Suresh : 무차별 대입 검색을 코딩하는 방법을 알고 있습니다. 더 효율적인 알고리즘이 있는지 여부에 대한 질문입니다. 어쨌든 SO 질문은 더 유사하며 스포일러에 관심이 있다면 내 대답도 포함합니다.
hugomg

답변:


18

계산 문제와 관련된 가장 일반적인 복잡성 클래스는 #P 입니다. 주어진 노드에서 다른 노드로의 간단한 경로가 있는지 결정하는 것은 분명히 NP에 있습니다. 그것들을 세는 것은 #P입니다.

!

첫 두 질문에 대한 대답은 다음과 같습니다. 예, 어렵 습니다. # P- 완료 (ref) 입니다.

Wikipedia 기사 는 다음과 같은 사실을 제공합니다. 1) 확률 알고리즘은 # P- 완전 함수를 근사화하는 데 유용하며 이전 기사의 근사화에 사용되는 알고리즘입니다. 2) 하드 (# P- 완전) 카운팅 버전에는 다른 쉬운 문제가 있습니다.

  • DNF 공식 또는 2-SAT 의 인스턴스를 만족시키는 모든 과제의 발견 (선형) 대 계산
  • 발견 (선형) 대 토폴로지 정렬 계산
  • 이분 그래프에서 (O (VE)) 대 완벽 매칭 계산

제약 조건 "간단한 경로"를 제거하면 문제가 P로 떨어집니다 (그래프 크기의 다항식으로 경로의 길이를 묶거나 단항으로 묶어야 함).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.