무작위 (다항식 시간, 부울 결과) 알고리즘은 RP 계산 복잡도 클래스에 있으며, 이는 비 결정적 (다항식 시간, 부울 결과) 알고리즘이있는 NP의 서브 세트이며 결정적 (다항식 시간, 부울 결과) 인 P의 상위 세트입니다. 알고리즘이 상주합니다.
하위 설정 복잡도 는 한 세트의 문제 를 다른 세트로 줄이는 것 입니다. 따라서 RP ⊆ NP는 정의 적으로 수퍼 세트에 서브 세트가 포함되어 있기 때문에 결정적이지 않은 무작위 알고리즘의 가능성을 배제합니다. 부분 집합은 모든 RP 알고리즘 (또는 모든 RP- 완료 알고리즘)을 일부 NP 알고리즘 (또는 모든 NP- 완료 알고리즘)으로 줄일 수 있음을 의미합니다. P의 모든 문제는 제어되지 않은 엔트로피의 양이 0 인 RP의 문제로 감소 될 수 있기 때문에 P는 RP의 부분 집합입니다.
접선으로, 이것은 P 의 직렬 문제에 대한 감소에서 병렬 계산을 시뮬레이션하여 NC의 모든 문제 (병렬 계산) 가 P의 문제로 감소 될 수있는 방법과 유사 하지만 그 반대가 참이라는 것이 아직 입증되지 않았습니다. P의 모든 문제는 NC의 문제로 환원 될 수없고, 사실이 아닌 것으로 입증된다. 즉 P- 완전한 문제가 NC의 문제로 환원 될 수 없다는 믿어지지 않는 증거. 본질적으로 직렬이고 병렬로 계산할 수없는 문제가있을 수 있지만, P ≠ NC가 불가능하다는 것임을 증명하기 위해 (이 답변에서 논의하기에 너무 접할 수없는 이유로).
보다 일반적으로 (즉, 부울 결과 유형으로 제한되지 않음), 무작위 화 된 알고리즘은 일부 엔트로피가 외부에서 공급 된다는 점에서 결정 론적 알고리즘과 구별됩니다 . 임의의 알고리즘은 엔트로피가 제한되어 있기 때문에 비 결정적 알고리즘과 구별 되므로 임의적 (비 결정적이 아닌) 알고리즘은 항상 종료되는 것으로 입증 될 수 있습니다.
비 결정적 알고리즘의 예측 불가능 성은 입력 엔트로피의 모든 가능한 순열 을 열거 할 수 없기 때문에 발생합니다 (종료 예측 불가능). 무작위 알고리즘의 예측 불가능은 제어 할 수 없기 때문입니다모든 입력 엔트로피 (예측할 수없는 비율을 예측할 수는 있지만 불확실한 결과를 예측할 수 없음) 이 중 어느 것도 문제에 대한 정답의 예측 불가능성에 대한 진술은 아니지만, 예측 불가능 성은 각각 종료 및 불확실한 결과의 측면 채널에 나타납니다. 많은 독자들이 한 영역에서 예측할 수없는 예측 결과를 예측할 수없는 것으로 보이며, 이는 결코 기록하지 않은 혼란입니다 (편집 기록 검토).
비결정론은 항상 (모든 과학이나 용어의 사용에서) 보편적 (즉, 무한한) 엔트로피를 열거 할 수 없다는 것을 이해하는 것이 중요합니다. 반면, 무작위 화는 제한되지 않거나 제한되지 않을 수있는 다른 엔트로피 소스 (프로그램에서 입력 변수를 제어하지 않는 엔트로피)에 액세스하는 것을 말합니다.
비슷한 질문을하는 다른 스레드에 대해 현재 가장 인기있는 답변 아래에 다음 주석을 추가했습니다 .
모든 과학은 무한 엔트로피의 개념에 통일 된 비결정론의 동일한 정의를 사용합니다. 모든 과학에서 예측할 수없는 결과는 알고리즘 (또는 시스템)의 가능한 모든 출력을 우선적으로 열거 할 수 없기 때문에 제한되지 않은 상태, 즉 NP 복잡성 클래스를 받아들이 기 때문입니다. 다른 과학에서는 동일한 상태 변화를 반복하면서 우주의 나머지 엔트로피를 일정하게 유지하는 것과 다른 과학에서는 정지 여부를 관찰하기 위해 특정 입력을 지정하는 것이 동일합니다. 컴퓨팅은 이러한 엔트로피 격리를 허용하지만 자연 과학은 그렇지 않습니다.
무작위와 비결정론의 유일한 두드러진 구별에 대한 나의 요점을 명확히하기 위해 가장 좋은 의견을 추가합니다.
당신이 두드러진 엔트로피 관점이 아닌 작동 관점에서 설명하려고 시도하여 혼동을 멈 추면 구별이 정말 우아하고 쉽습니다.
@reinierpost 모든 사람들이 무작위와 비결정론의 차이점을 혼란스럽게 만들고 있습니다. 이로 인해 댓글이 흐려집니다. 이 알고리즘은 입력 (가변) 엔트로피와 소스 코드 (불변) 내부 엔트로피의 상호 작용에 응답합니다. 비결정론은 무한한 엔트로피입니다. 불변의 엔트로피는 π의 자릿수 확장 과 같이 내부적으로 제한되지 않을 수 있습니다 . 랜덤 화는 엔트로피의 일부가 정의 된 바와 같이 입력에 연결되지 않는다 (즉, 시스템 호출로부터 /dev/random
또는 시뮬레이션 된 랜덤 성 (예 : NFA 또는 PRNG) 으로부터 오는 것일 수 있음 ).
.
비 결정적 유한 오토 마 (NFA)의 @Raphael 공식적인 정의는 유한 입력 엔트로피 (데이터 : 5 튜플)입니다. 따라서 모든 NFA는 결정 론적 Turing 머신에서 실행될 수 있습니다. 즉 비결정론 적 Turing-complete 머신이 필요하지 않습니다. 따라서 NFA는 비 결정적 문제에 속하지 않습니다. NFA에서 "비결정론"의 개념은 결정론 (모든 NFA가 DFA로 변환 될 수 있기 때문에 명확하게 존재하지만)이 명확하게 확장되지 않는다는 것입니다-계산의 비결정론과 동일하지 않음
.
@Raphael 은 NFA에서 주장 된 " 비결정론 "은 실제로 무작위성은 무작위성과 비결정론 사이의 구별에 대한 나의 정의의 의미이다. 나의 정의는 무작위성이 프로그램이나 기능에 대한 입력의 통제, 지식 (또는 NFA의 경우 원하는 비명 시적 확장)에 있지 않은 엔트로피의 일부입니다. 반면, 진정한 비결정론은 엔트로피가 무한하기 때문에 어떤 경우에도 엔트로피를 알 수 없다는 것입니다. 이것이 바로 비결정론과 무작위로 구별되는 것입니다. 따라서 NFA는 귀하가 주장한 후자가 아니라 전자의 예입니다.
.
@Raphael내가 이미 설명했듯이 은 NFA에서 의 개념은 과 유한 엔트로피를 결합시킨다. 따라서 비결정론은 압축 또는 편의의 형태로 결정론을 확장하지 않는다는 로컬 개념이므로 NFA가 결정적이지 않다고 말하는 것은 아니며 결정 론적 확장을 계산하지 않으려는 오라클에 대한 임의의 모양을 가지고 있습니다. 그러나 그것은 엔트로피가 무한한, 즉 유한 한 것이 아니라 결정 론적으로 확장되어야하기 때문에 모든 신기루입니다.
사전은 도구입니다. 그것들을 사용하는 법을 배우십시오.
임의 형용사
통계. 세트의 각 아이템이 선택 될 확률이 동일한 선택 프로세스를 특징 짓거나 특징 짓는 단계.
각각의 요소가 동일한 발생 확률을 갖는 세트 또는 세트의 요소와 관련되는 것
따라서 무작위 화는 입력 엔트로피의 일부가 동등 할 것을 요구하기 때문에, 입력 엔트로피의 일부가 함수의 호출자에 의해 제어되지 않는다는 나의 정의와 일치한다. 무작위 화는 입력 엔트로피가 종료 될 수없는 결정적인 것을 요구하지 않는다는 것을 주목하라.
컴퓨터 과학에서 결정 론적 알고리즘은 특정 입력이 주어지면 항상 동일한 출력을 생성하고 기본 시스템이 항상 동일한 상태 시퀀스를 통과하는 알고리즘입니다.
공식적으로 결정 론적 알고리즘은 수학 함수를 계산합니다. 함수는 도메인의 모든 입력에 대해 고유 한 값을 가지며 알고리즘은이 특정 값을 출력으로 생성하는 프로세스입니다.
결정 론적 알고리즘은 상태 머신의 관점에서 정의 될 수 있습니다. 상태는 머신이 특정 순간에 무엇을하고 있는지를 나타냅니다. 상태 머신은 한 상태에서 다른 상태로 개별적으로 전달됩니다. 입력에 들어간 직후 기계는 초기 상태 또는 시작 상태입니다. 기계가 결정 론적이라면,이 시점부터 현재 상태가 다음 상태를 결정합니다. 일련의 상태를 통한 과정은 미리 결정됩니다. 기계는 결정론적일 수 있으며 여전히 멈추거나 끝나지 않으므로 결과를 얻지 못합니다.
따라서 결정 론적 알고리즘은 함수의 입력 상태에 의해 완전히 결정되어야 함을 의미합니다. 즉, 함수가 종료 (또는 종료되지 않음)하고 결정할 수 없음을 증명할 수 있어야합니다. Wikipedia의 비결정론 적 기술에 대한 혼란스러운 시도에도 불구하고, Wikipedia에 의해 위에서 정의 된 결정 론적 유일의 유일한 이론은 입력 상태 (엔트로피)가 잘못 정의 된 알고리즘입니다. 그리고 입력 상태를 잘못 정의 할 수있는 유일한 방법은 바인딩되지 않은 경우입니다 (따라서 결정적으로 사전 분석 할 수 없음). 이것은 비결정론 적 Turing 머신 (및 C, Java, Javascript, ML 등의 공통 Turing 완전한 언어로 작성된 많은 실제 프로그램)과 결정 론적 TM 및 HTML, 스프레드 시트 공식과 같은 프로그래밍 언어를 구별하는 것입니다. 코크,
계산 복잡도 이론에서 비 결정적 알고리즘은 가능한 모든 단계에서 여러 연속을 허용 할 수있는 알고리즘입니다 (숲에서 길을 걷는 사람을 상상하고 그가 더 나아갈 때마다 원하는 도로에서 원하는 포크를 선택해야 함) 가지다). 이러한 알고리즘은 가능한 모든 계산 경로에 대한 솔루션에 도달하지 않습니다. 그러나, 그들은 어떤 길에 대한 올바른 해결책에 도달 할 것이 보장된다. 선택은 검색 과정에서 추측으로 해석 될 수 있습니다.
Wikipedia와 다른 사람들은 무작위 배정을 비결정론과 혼동하려고 시도하지만, 두 개념을 웅변 적으로 구별하지 않으려는 경우의 요점은 무엇입니까?
분명히 결정론은 결정하는 능력에 관한 것입니다. 분명히 무작위 화는 엔트로피의 일부를 평등하게 만드는 것입니다.
알고리즘 상태에 임의의 엔트로피를 포함한다고해서이를 결정할 수있는 것은 아닙니다. 예를 들어 PRNG는 필요한 등가 통계 분포를 가질 수 있지만 완전히 결정적입니다.
직교 개념을 엇갈리게하는 것은 IQ가 낮은 사람들입니다. 나는이 공동체보다 나아질 것으로 기대합니다!