셋째, 이므로 모든 로그 스페이스 알고리즘을 병렬 버전으로 변환하는 알고리즘이 있습니까?L⊆NC2
이는 표시 할 수있는 소정 (로라 바락 교과서) - 시간 TM M , 망각 TM 것을 M ' (그의 머리 움직임의 입력과 무관 즉 TM X는 ) 회로 구성 할 수 C를 N 계산하기 위해 M을 ( x ) 여기서 | x | = n 입니다.t(n)MM′xCnM(x)|x|=n
증명 스케치 갖는 라인을 따라 인 시뮬레이션 M을 그 상태의 "스냅 샷"을 정의 (즉 헤드 위치가 헤드에서 심볼) 각 시간 단계에서 t는 난 (연산 로그 생각할). 각 단계 t 난 으로부터 계산 될 수있다 (X) 과 주 t를 I - 1 . 각 스냅 샷은 일정한 크기의 문자열 만 포함하고 해당 크기의 일정한 양의 문자열 만 존재하므로 t i 의 스냅 샷 은 일정한 크기의 회로로 계산할 수 있습니다.M′Mtitixti−1ti
각 에 대해 일정한 크기의 회로를 구성하면 M ( x ) 를 계산하는 회로가 있습니다 . 이 사실을 사용하여 M 의 언어 가 L에 있다는 제한과 함께 회로 C n 은 logspace-uniform 정의에 따른다 는 것을 알 수 있습니다. 여기서 균일 성은 회로 제품군의 회로가 { C n } 컴퓨팅 M ( x ) 모두 같은 알고리즘을 가지고 있습니다. 입력 크기 n 에서 작동하는 각 회로에 대한 맞춤형 알고리즘이 아닙니다 .tiM(x)MLCn{Cn}M(x)n
다시 한 번, 균일 성의 정의에서 언어를 결정하는 회로 는 O ( log n )로 계산할 수있는 함수 크기 ( n )를 가져야 한다는 것을 알 수 있습니다 . 회로 패밀리 A C 1 은 최대 O ( log n ) 깊이를 갖습니다 .Lsize(n)O(logn).AC1O(logn)
마지막으로 문제의 관계를 나타내는 가 보여 질 수 있습니다 .AC1⊆NC2
넷째, 대부분의 사람들 이 P ≠ N P 와 동일한 방식으로 을 가정하는 것처럼 들립니다 . 이것의 직관은 무엇입니까?NC≠PP≠NP
더 나아 가기 전에 완전성이 무엇을 의미 하는지 정의 해 봅시다 .P
언어 인 (P)의 경우, - 완전한 L ∈ P 및 모든 언어 P가 LOGSPACE의 환원성이이다. 또한, L 이 P- 완료 이면 다음이 참입니다.LPL∈PPLP
L∈NC⟺P=NC
L∈L⟺P=L
이제 우리 는 병렬 컴퓨터 (우리의 회로)에 의해 효율적으로 결정된 언어 클래스 인 를 고려 합니다. P 에는 병렬화 시도에 저항하는 것처럼 보이는 몇 가지 문제가 있습니다 (예 : 선형 프로그래밍 및 회로 값 문제). 즉, 특정 문제는 계산을 단계적으로 수행해야합니다.NCP
예를 들어 회로 값 문제는 다음과 같이 정의됩니다.
회로 주어 , 입력 X 및 게이트 g ∈ C 의 출력 무엇 g 에 C ( X는 ) ?Cxg∈CgC(x)
우리는 더 나은 모든 게이트 계산보다는이를 계산하는 방법을 모르는 앞에 오는 g을 . 을 감안할 때 일부 그들은 모두 약간의 시간 단계에서 발생하는 경우 그 중 예를 들어, 병렬로 계산 될 수있다 t에 난 ,하지만 우리는 시간 단계에서 게이트의 출력을 계산하는 방법을 잘 모릅니다 t에 내가 와 타임 스텝의 t I + 1 명백한 어려움에 대한 게이트에 있는지 t에서 I + 1 에서 게이트의 출력을 필요 t I !g′gtititi+1ti+1ti
이것이 의 직관 입니다.NC≠P
병렬 계산에 한계 에 관한 책이다 Garey & 존슨의 비슷한 맥락에서 -Completeness N P -Completeness 책.PNP