더 어려운 점 : 정렬 된 덱 섞기 또는 셔플 된 줄 정렬하기?


18

고유 한 요소로 구성된 배열이 있습니다. 당신은 비교기 (두 요소 와 취하고 true iff 반환 하는 블랙 박스 함수 )와 진정한 임의의 비트 소스 (인수를 취하지 않고 독립적으로 균일하게 임의의 비트를 반환하는 블랙 박스 함수)에 액세스 할 수 있습니다. 다음 두 가지 작업을 고려하십시오.<

  1. 배열이 현재 정렬되어 있습니다. 균일하게 (또는 대략 균일하게) 무작위로 선택된 순열을 생성합니다.
  2. 배열은 본질적으로 무작위로 균일하게 선택된 일부 순열로 구성됩니다. 정렬 된 배열을 생성합니다.

내 질문은

어떤 작업이 더 많은 에너지를 필요로하지 않습니까?

정보 이론, 열역학 또는이 질문에 대답하는 데 필요한 다른 것들 사이의 연결에 대해 충분히 알지 못하기 때문에 질문을 더 정확하게 정의 할 수 없습니다. 그러나 나는 질문을 명확하게 정의 할 수 있다고 생각합니다 (그리고 누군가가 대답으로 나를 도울 수 있기를 바랍니다!).

알고리즘 적으로 제 직감은 그것들이 같다는 것입니다. 모든 종류의 순서는 뒤섞이고 그 반대도 마찬가지입니다. 정렬에는 필요합니다 에서 임의의 순열을 선택하기 때문에 섞는 동안 비교선택, 필요합니다 난수 비트. 셔플 링과 정렬 모두 약 스왑이 필요합니다 .로그!로그!로그!로그

그러나 Landauer의 원칙을 적용하는 답이 있어야 한다고 생각합니다. 이는 약간의“소거”에 에너지가 필요하다고 말합니다. 직관적으로, 이것은 저에너지, 높은 엔트로피 지상 장애 상태에서 고 차질 의 상태로 진행하는 정보를 "지우는" 비트의 정보를 필요로하기 때문에 어레이 정렬이 더 어렵다는 것을 의미한다고 생각합니다 . 그러나 반면에, 주어진 계산에서 정렬은 하나의 순열을 다른 순열로 변환합니다. 나는 여기에 완전한 비전문가이기 때문에 물리학에 대한 지식을 가진 사람이 이것을 "정렬"하는 데 도움이되기를 바랐습니다!로그

(질문은 math.se에 대한 답변을 얻지 못했기 때문에 여기에 다시 게시하고 있습니다. 괜찮습니다.)


나는 이것을 전혀 생각하지 않았으므로주의를 기울이는 강사. 정렬 된 배열로 시작하면 병합 정렬을 사용하지만 비교하는 대신 임의의 비트를 사용하여 병합을 수행합니다 (따라서 iff 를 반환 대신 임의의 비트가 인 경우 true를 반환합니다 ). 크기가 1 인 배열이 2 개인 기본 사례는 동일한 확률로 크기가 2 인 배열을 생성합니다. 나는 그 이상을 얻지 못했습니다. 1<1
Luke Mathieson

2
이 질문에 답하기 위해서는 먼저 상대적인 운영 비용을 정의해야한다고 생각합니다. 데이터를 읽고, 쓰고, 난수를 생성 / 취득하는 데 비용이 얼마나 듭니까?
mitchus

@mitchus : "최적의 효율적인"컴퓨터를 가정한다면 물리적 한계에 대해 주로 궁금합니다. 저의 대략적인 이해는 약간의 정보를 "소거"하는 데 필요한 에너지의 양에 대한 물리적 하한이 있고 다른 작업에는 훨씬 적은 에너지가 필요하다는 것입니다. 따라서 나는이 직관이 정확하고 정식화되어 답을 얻을 수 있을지 궁금합니다.
usul

조금 지운다는 것은 무슨 뜻입니까? 덮어 쓰시겠습니까? 내가 아는 한 컴퓨터는 일반적으로 개인 정보 보호를 제외하고는 아무것도 지우지 않고 관련 메모리 영역을 할당 해제하여 단순히 "잊어 버립니다". 하지만 어쩌면 나는 추상화 제대로 여기 레벨 : 파악하고 있지 않다
mitchus

2
@ Patrick87 불행하게도, 균일 한 에너지 모델은 그것을 사용하기에는 너무 멀다. 참조 자신의 에너지 소비에 따라 알고리즘을 평가 Fudeus 노나 바이엘과 Nebel (2009)에 의해.
Raphael

답변:


6

Landauer의 원칙에 따라 정렬 된 키 에 키 의 균일 한 무작위 순열을 취하고 컴퓨터에서 균일 한 임의 순열이 무엇인지 나타내는 비트를 유지하지 않으려면 l o g n ! N 로그 2 N 비트. 이것은 걸릴 것이다 ( n ln n영형!로그2 에너지. 한편, 소트 어레이 및 n log 2 n 개의 랜덤 비트를 랜덤 어레이로취한 계산은 가역적이므로, 소비되는 에너지를 임의로 작게 할 수있다.(ln)케이로그2

이것들은 단지 이론적 인 하한입니다. 실제 디지털 컴퓨터에서 이러한 프로세스가 현재 소비하는 에너지는 위의 분석과 관련이 없습니다.


매우 감사합니다! 순진한 후속 조치를 요청할 수 있습니까? 정렬 알고리즘에 항목의 고정 순열이 주어지고 정렬해야하도록 질문의 문구를 변경한다고 가정하십시오. 이제 베이지안 철학에 가입하고이 의견에 대해 통일 된 믿음을 가지고 있다면 그 대답은 같아야합니다. 그러나 입력에 무작위성이 없다는 철학하에 (내가 무엇인지 모릅니다) 논쟁은 실패한 것 같습니다. 역설을 어떻게 해결합니까? 다시 감사합니다 !!
usul

(ln)케이
Peter Shor

3

둘 다. 상관 회로 수 가역적 이루어지는 입력 추적함으로써, 가역적 인 연산의 에너지 소산이 가능하다 임의로 작게 .


그러나 가역적으로 만들면 비효율적 일 수 있습니다. 최적 알고리즘 사이의 관계는 무엇입니까? BTW, 나는 그들이 비교 생각하지 않습니다. 셔플에는 본질적으로 임의성이 필요합니다 (다른 임의의 임의성은 다른 출력을 생성 함). 정렬은 결정적 일 수 있습니다. "반전"정렬은 결정적인 방식으로 섞입니다.
Ran G.

1
"효율적"이란 시간, 공간 또는이 둘의 조합을 의미합니까? 계산을 뒤집을 수 있다고해서 반드시 점근 적 시간 복잡성이 추가되는 것은 아니며, 원래의 [Vitányi05] 보다 더 이상 공간을 사용하지 않는 모든 계산에는 뒤집을 수있는 버전이 있습니다 .
rphv

1
입력을 유지하는 한 모든 회로를 가역적으로 만들 수 있습니다. 원래 순열을 재구성 할 수있는 정보를 유지하지 않으려면 정렬 회로를 되돌릴 수 없습니다.
피터 쇼어
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.