입력 크기와 관련하여 여러 프로세서가 필요하지 않은 병렬 알고리즘을 사용하여 문제의 계산 복잡성을 줄일 수 있습니까 (예 : 슬래시 제공)?
입력 크기와 관련하여 여러 프로세서가 필요하지 않은 병렬 알고리즘을 사용하여 문제의 계산 복잡성을 줄일 수 있습니까 (예 : 슬래시 제공)?
답변:
O (1) 프로세서를 의미하는 경우 아니요, 계산 복잡성을 줄일 수 없습니다.
각 프로세서에서 수행 한 작업을 간단히 정렬하여 단일 프로세서에서 수행하십시오. 동기화가 걱정된다면 한 프로세서가이를 쉽게 에뮬레이트 할 수 있습니다.
이 백서에 관심이있을 수 있습니다.
Selim Akl의 실시간 병렬 계산에서의 초 선형 성능 .
그는 "순차 솔루션이 n 프로세서 병렬 솔루션 보다 배 이상 느리다 "는 계산 문제의 예를 제공합니다 . 이것은 "계산 문제"의 개념을 창의적으로 해석함으로써 이루어진다.
태스크를 (여기서 p 는 상수) 프로세서에 분배하는 경우
이어서 복잡 할 수있다 C = 1 / P .
그러나 복잡한 변화는 없습니다.
"1 개의 프로세서로 계산할 수 없지만 2로 계산할 수 있습니다."
두 프로세서가 모두 TM이거나 덜 강력한 모델이라고 가정하면 불가능합니다. 다중 테이프 기계의 경우 wikipedia에서 :
이 모델은 직관적으로 단일 테이프 모델보다 훨씬 강력 해 보이지만 k의 크기에 관계없이 모든 다중 테이프 시스템은 2 배 더 많은 계산 시간을 사용하여 단일 테이프 시스템으로 시뮬레이션 할 수 있습니다 (Papadimitriou 1994, Thrm 2.1)
Walter J. Savitch와 Paul MB Vitányi의 "헤드가있는 멀티 헤드 튜링 머신의 선형 시간 시뮬레이션"에서 멀티 헤드 머신의 경우 :
이 백서의 주요 결과는 테이프 당 여러 개의 읽기 / 쓰기 헤드가 있고 추가로 한 번의 이동 이동 조작이있는 튜링 머신에서 "주어진 헤드를 다른 특정 헤드의 위치로 이동"하면 효과적으로 구성 할 수 있음을 보여줍니다. 테이프 당 단일 읽기 / 쓰기 헤드가있는 멀티 테이프 튜링 머신으로 선형 시간으로 시뮬레이션합니다. 즉, 원래 기계가 시간 T (n)에서 작동하면, 시뮬레이션 기계는 일정한 c 동안 시간 cT (n)에서 작동 할 것이다.
아마도 "병렬 또는"(부울을 반환하는 두 함수가 주어졌지만 둘 중 하나가 종료되지 않을 수 있으므로 둘 중 하나가 true를 반환하는지 여부를 알려줍니다)는 당신이 말하고있는 것일 수 있습니다. 1 개의 프로세서로 2 개로 계산할 수 있습니다.
그러나 이것은 프로세스에 블랙 박스가 제공되는지 또는 자신을 해석 할 수있는 설명 등이 있는지 여부에 따라 사용할 계산 모델에 따라 다릅니다.