양자 알고리즘 프로그래밍은 어떻게 다릅니 까? C와 같은 언어가 큐 비트 용으로 설계된 경우 어떤 모양입니까? 유형이 변경됩니까?
양자 알고리즘 프로그래밍은 어떻게 다릅니 까? C와 같은 언어가 큐 비트 용으로 설계된 경우 어떤 모양입니까? 유형이 변경됩니까?
답변:
얼마 전에 이것을 살펴 보았을 때, 양자 알고리즘은 특별히 빠르지는 않지만 기하 급수적으로 많은 병렬 처리를 허용한다는 것이 분명했습니다. 따라서 순차 하드웨어, 심지어 대규모 병렬 순차 하드웨어로는 실용적이지 않은 공간에서의 검색과 관련된 경우에 빛을 발할 것입니다.
양자 알고리즘의 특성 중 하나는 가역적 이어야한다는 것 입니다. 주어진 알고리즘은 되돌릴 수 있도록 충분한 레코드 유지 기능을 추가하여 가역적 인 알고리즘으로 변환 할 수 있습니다.
또 다른 특성은 양자 알고리즘에서 답을 얻는 것이 히트 앤 미스 사건이라는 것입니다. 계산이 끝날 때 얻는 결과는 각각 고유 한 확률을 가진 여러 답이기 때문입니다. 원하는 답이 높은 확률로 실행되도록해야합니다. 여기에는 알고리즘을 앞뒤로 여러 번 실행하는 것이 포함될 수 있습니다.
Grover의 검색 알고리즘을 확인하십시오 .
Grover 알고리즘의 기본 동작을 보여주기 위해 삽입되었습니다. 검색 문제가 있다고 가정하십시오. 가능한 응답은 0, 1, 2, 3,되지만 오른쪽 양자 컴퓨터가 네 개의 상태의 중첩에 배치되어, 응답은 2이며, 하나가 정확한지 표시하는 일련의 단계를 통해 진행하고, 아래의 검은 점과 화살표와 같이 진폭을 반전시킵니다.
화살표 2가 기계 내부에서 뒤집힌 것을 볼 수 있지만 외부에서만 확률을 알 수 없으므로 진폭을 제곱 하고 제곱하면 모두 같습니다.
그러나 진폭에는 빨간색 선으로 표시된 평균이 있으며 컴퓨터는 평균에 대한 각 진폭 을 반전 시키는 일련의 단계를 거치도록 만들 수 있습니다 . 이것이 완료되면, 진폭과 확률은 정답 2 상태로 넘어갑니다 ! 따라서 기계가 관찰되면 상태 2가 나타납니다.
그렇게 간단하지 않습니다. 일반적으로 정답의 확률을 최대화하기 위해 각 사이클의 끝에서 반전하여 기계의 여러 사이클을 앞뒤로 수행합니다. 또한, 자신을 쉽게 되돌릴 수 있기 때문에 그 횟수 이상으로하지 않도록주의해야합니다.
왜 양자 컴퓨터가 그렇게 빠르다고 말 합니까? 큐 비트 수를 두 배로 늘릴 때마다 병렬 처리를 제곱하지만 시간 길이를 제곱하지 않으므로 결국 승리합니다.
재미 있지 않습니까?
저는 이것이 소프트웨어 정확성 검증에 어떻게 적용될 수 있는지에 개인적으로 관심이있었습니다. 이제 우리는 소프트웨어에 많은 테스트 입력을 던져서 (아주 간단하게) Assert에 도달했는지 확인하여 소프트웨어를 테스트합니다. 양자 컴퓨터에서는 훨씬 더 조밀 한 입력 세트에 대해 병렬로 실행하여 해당 사례가 Assert에 해당하는지 확인할 수 있습니다.
알고리즘에 대한 입력이 128 바이트 또는 1024 비트 인 경우와 같이 2 ^ 1024 또는 10 ^ 308 가능한 다른 입력이 있습니다. 기존의 컴퓨터에서 많은 입력을 테스트 할 수있는 방법은 없지만, 양자 컴퓨터는 모든 입력을 동시에 시도 할 수 있습니다.
C와 같은 언어가 큐 비트 용으로 설계된 경우 어떤 모양입니까? 유형이 변경됩니까?
C로 이해할 수 없을 정도로 크게 달라질 것입니다.
가장 중요한 문제는 (내가 이해하는 바와 같이) 양자 컴퓨팅이 훌륭한 명령 방식으로 작동하지 않는다는 것입니다. C가 양자 컴퓨터의 '프로세서'에이를 수행하도록하는 것은 불가능하지는 않지만 매우 비효율적입니다.
양자 컴퓨터를위한 프로그래밍 알고리즘은 (내가 이해하는 것처럼) 기능적 프로그래밍 스타일 맵 / 감소에 더 가까운 경향이있다. 양자 컴퓨팅은 '축소'부분의 모든 후보들이 동시에 존재할 수 있고 컴퓨터에서 "떨어져"나올 수 있기 때문이다. 관찰 될 때.
퀀텀 컴퓨터에는 장치가 존재하지 않지만이를 실행하는 기존 알고리즘이 있습니다. 예를 들어 시몬의 알고리즘 .
양자 컴퓨터를 최대한 효과적으로 사용하기 위해서는 고전적인 아날로그가없는 양자 레지스터의 상태 인 입력 및 출력을 처리 할 수 있어야합니다. 양자 정보 분야에서의 수년간의 경험에서 말하면, 나는 C * 대수학의 추상 수학 외에는 아무도 이것에 대한 좋은 직감을 가지고 있지 않다는 것을 경고해야하며,이 직관조차도 부적절한 것으로 판명되었습니다. 상대성 이론에 대해 궁금해하기 시작하면
양자 컴퓨터에서 효율적으로 해결할 수있는 문제의 종류를 BQP (Bounded Quantum Polynomial)라고합니다. 이것은 BPP의 양자 버전이며이 백서에서 자세한 정보를 찾을 수 있습니다. http://www.scottaaronson.com/papers/bqpph.pdf
나는 양자 알고리즘 연구원들에 의해 어제 밤 BQP- 완료라는 매우 중요한 문제가 있다는 것을 들었다 : N 방정식의 선형 시스템을 푸는 것. 고전적으로, 이것은 가우시안 제거로 O (N) 단계로 해결할 수 있습니다. Harrow-Hassidim-Lloyd 알고리즘 ( http://arxiv.org/abs/0811.3171 )은 솔루션을 양자 상태로 인코딩 한 답을 기꺼이 받아들이면 polylog (N)에서 알고리즘을 해결합니다. 따라서 양자 컴퓨터를 최대한 활용하려면 양자 레지스터의 상태에 해당하는 유형이 필요합니다.
지금은 특정 전문 지식을 약간 벗어 났지만 마법 상태에 해당하는 유형에 액세스 할 수있는 한 양자 컴퓨터를 프로그래밍 할 수있을 것입니다. 그러나 그것은 어려운 개념이므로 주제에 대한 연구가 필요합니다.
우리는 양자 컴퓨팅 연구의 매우 원시적 인 단계에 있기 때문에 양자 프로그래밍 언어를 가진 데 오랜 시간이 걸렸다는 경고를받습니다. 지금 양자 C를 요청하는 것은 Alan Turing으로 가서 파이썬을 설계하도록 요청하는 것과 같습니다. 우리는 진공관의 양자 버전을 아직 얻지 못했습니다!