고유 한 st-Connectivity의 복잡성


11

N L 에서 다음 문제를 결정할 수 있는지 알고 싶습니다.NL (비 결정적 로그 공간) .

두 개의 구별되는 꼭짓점 st 가 있는 유향 그래프 가 주어지면 G 에서 s 에서 t 까지 고유 한 경로 가 있습니까?GststG ?

s - t 경로가 있는지 여부와 그러한 경로가 없는지 여부를 모두 결정할 수 있기 때문에 에있을 가능성이 있다고 생각합니다 . 그러나 그러한 경로의 수를 세는 것은 P입니다.NLstP -hard (Valiant, 1979)입니다.

그래서 내 질문 : 당신은 이것에 대한 언급이 있습니까? 그것이 에 있다는 것이 명백 합니까? 아니면 N L이 아닙니까?NLNL


5
간단한 길을 의미합니까? 이 맥락에서 동일하다는 것은 분명하지 않습니다.
랜스 포트 노우

1
좋은 지적은, 나는 단순한 길을 의미한다.
Bruno

답변:


16

문제가 것 같습니다 . 알고리즘은 다음과 같습니다.NL

먼저 에서 t 까지 경로를 결정적으로 추측합니다 . 잘못 추측하면 거부하십시오 . 이 알고리즘 A를 호출하십시오 .stA

다음과 같은 비 결정적 알고리즘 고려하십시오.이 알고리즘 은 둘 이상의 경로가 있는지 판별합니다. 그래프와 s , t 가 서로 다른 모든 가장자리 쌍 e , f 에 대해 s 에서 te 를 포함 하지만 f 는 포함 하지 않는 경로를 추측 한 다음 s 에서 tf 는 포함 하지만 e 는 포함 하지 않는 경로를 추측합니다 . 추측이 정확하면을 수락하십시오 . 더 수용이 모든 선택에 대한 발생하지 않으면 전자F , 거부 . 비고 BBs,te,fstefstfeefB 비 결정적 로그 공간에서 구현할 수 있습니다.

이제 집합 s 에서 t 까지 경로가 두 개 이상인 s - t 그래프 의 집합입니다 . 때문에 N L = C O N L은 , 보체의 B는 도이고 N L , 즉, 우리는를 결정 수 St는이하L(B)ststNL=coNLBNLst 결정적 LOGSPACE에서보다 두 경로.

마지막 알고리즘은 "Run 입니다. A가 수락 하면 B 의 보수를 실행하십시오.AAB 하고 답을 출력하십시오."

나는 참조를 모른다.

업데이트 : 참조를 정말로 원한다면 이 백서 의 섹션 3의 첫 번째 단락을 확인하십시오 . 그러나 이것은 아마도이 결과를 인용하는 많은 참고 문헌 중 하나 일 것입니다. 언급 한 논문을 인용하기보다는 결과를 "민속"이라고 부르는 것이 더 합리적입니다.

업데이트 2 : 고유 한 간단한 경로가 있는지 확인하려고한다고 가정합니다. 이 경우 알고리즘 는 변경할 필요가 없습니다. 경로가 있으면 간단한 경로가 있습니다. 알고리즘 B에 대해 다음 수정이 작동한다고 생각합니다 .AB

최소한 두 개의 간단한 경로가있는 경우 알고리즘 를 다시 작성하도록 알고리즘 B 를 다시 작성하려고 합니다.B

먼저 문제에 대해 다음 다항식 시간 알고리즘을 고려하십시오. s 에서 t 까지 최단 경로 를 찾으십시오 . 모든 가장자리를 들어 전자P 또 다른이있는 경우, 검사 - t의 통과하지 않는 경로 전자 . 그런 경로를 찾으면 수락하십시오 . 다른 경로를 찾지 못하면 거부하십시오 . P 가 가장 짧기 때문에 사이클이 없으며 P의 일부 모서리를 사용하지 않는 다른 경로가 있으면 단순하고 P의 일부 모서리를 사용하지 않는 다른 경로가 있습니다PstePstePPP. 이 알고리즘은 "두 번째 최단 경로"문제에 사용됩니다.

우리는이 알고리즘을 구현할 것이다 . 우리가이 있다면 N L의 가장자리 쿼리에 대한 알고리즘을 전자를 고정 경로에서 P , 우리는 결정적 LOGSPACE에서 위를 구현할 수있는 모든 가장자리를 반복 전자P 것은 , 생각 - t의 경로와 함께 방문한 모든 에지 것을 확인 방법으로, 그들 중 어느 것도 e와 같지 않습니다 .NLNLePePste

그래서 우리가 필요로하는 것은 "path oracle" 이라는 속성을 가진 알고리즘입니다 : 주어진 i = 1 , , n , 모든 계산 경로에서 알고리즘 은 특정 고정 s - t 경로 에서 i 번째 에지를 보고 하거나 거부 합니다. N L = c o N L 을 사용하여 경로 오라클을 얻을 수 있습니다NLi=1,,nistNL=coNL 전적으로 첫 번째 경로를 분리하기 위해 을 .

다음은 경로 오라클의 스케치입니다.

모든 k = 1 , , n 을 시도하고 N L = c o N L을 사용하여 s 에서 t 까지 가장 짧은 경로의 길이 인 찾으십시오.kstk=1,,nNL=coNL .

변수 설정 , x : = 1 , j : = ku:=sx:=1j:=k .

모든 이웃 uvu사전 순으로 에 대해,

길이 j - 1 에서 t 까지의 경로가 있는지 여부를 판별하십시오 (결과 N L = c o N L 사용 ). 보다 정확하게는 s - t 연결 (길이 j - 1 )에 대한 비 결정적 알고리즘 과 그 보완에 대한 알고리즘을 동시에 실행하십시오. 그들 중 하나가 수락하면 답을 따르십시오 (정확해야합니다. 둘 다 받아 들일 수는 없습니다). 둘 다 거부하면 거부vtj1NL=coNLstj1 합니다.

경로가 없으면 다음 이웃으로 진행하십시오. 당신이 모든 이웃을 소진했다면 거부 .

경로가있는 경우 이면 s 에서 t 까지 경로에서 i 번째 모서리 로 ( u , v ) 를 출력 하십시오 . 그렇지 않으면 x를 증가 시키고 j를 감소 시키고 u : = v를 설정 하고 v t 인 경우 for-loop를 다시 시작하십시오.x=i(u,v)istxju:=vvt .

t 출력 불량 i 에 도달 한 후 경우 (주어진 i 가 너무 큼)x<itii

주어지면 ,이 알고리즘 은 사 전적으로 가장 짧은 경로 Pi 번째 에지 를 s 에서 t 로 출력하거나 거부합니다.iiPst


비슷한 것을 생각했지만 선형 공간을 사용합니다. 답변 주셔서 감사합니다!
Bruno

5
나는 그것이 진짜 민속이라는 것에 동의합니다. 이것은 계층 의 붕괴로 인한 즉각적인 결과입니다 . 또한 # P- 완료되지 않은 카운팅 문제. 그것은 # L에 있으며, 차례로 N C 2NLNC2
V Vinay

2
예, 위에서 언급했듯이 알고리즘은 간단한 경로와 사이클이있는 경로를 구분하지 않습니다.
Ryan Williams

1
@V 인 Vinay는 :에서 본 논문 의 저자는 용감한의 논문을 참조 열거 및 신뢰성 문제의 복잡성을 용맹의 시험장으로 문제의 -completeness합니다. 방금 Valiant의 논문을 확인했는데 문제 14입니다 (p414). 내가 뭔가를 오해하고 있습니까? 단순한 경로가 아닌 경로에 대해 말했을 때이 경우 복잡성이 크게 바뀔 수 있습니까? 감사! P
브루노

1
Btw, Allender & Lange의 의견은 직접 결론을 내리기에 충분합니다.
브루노
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.