양자 특정 데이터 형식

이 항목에서는 양자 도메인과 약간 관련된 두 가지 형식인 PauliResult와 함께 Qubit 형식에 대해 설명합니다.

큐비트

Q#은 큐비트를 함수와 연산 모두에 전달할 수 있는 불투명 항목으로 처리하지만, 대상 양자 프로세서에 고유한 명령에 전달해야만 상호 작용할 수 있습니다. 이러한 명령은 실제로 양자 상태를 수정하기 위한 것이므로 항상 연산 형식으로 정의됩니다. 큐비트를 입력 인수로 전달할 수 있음에도 불구하고 함수에서 다른 함수만 호출할 수 있고 연산을 호출할 수 없다는 요구 사항에 따라 함수에서 양자 상태를 수정할 수 없다는 제한 사항이 적용됩니다.

Q# 라이브러리는 내장 연산의 표준 집합에 대해 컴파일됩니다. 즉, 언어 내에서 구현에 대한 정의가 없는 작업을 의미합니다. 대상을 지정할 때 실행 대상에 고유한 명령의 관점에서 이를 표현하는 구현은 컴파일러를 통해 연결됩니다. 그러면 Q# 프로그램이 대상 머신에서 정의한 대로 해당 연산을 결합하여 양자 계산을 표현하는 높은 수준의 새 연산을 만듭니다. 이러한 방식으로 Q#을 사용하면 양자와 하이브리드 양자-클래식 알고리즘의 기반이 되는 논리를 쉽게 표현할 수 있을 뿐만 아니라, 대상 머신의 구조와 양자 상태의 구현 측면에서 매우 일반적이 될 수 있습니다.

Q# 내부에는 양자 상태를 나타내는 Q#의 형식이나 구문이 없습니다. 대신 큐비트는 양자 컴퓨터에서 주소 지정이 가능한 가장 작은 물리적 단위를 나타냅니다. 따라서 큐비트는 수명이 긴 항목이므로 Q#에서 선형 형식이 필요하지 않습니다. 따라서 Q# 내의 상태를 명시적으로 참조하지 않고, 오히려 프로그램에서 상태를 변환하는 방법(예: XH와 같은 연산의 적용을 통해)을 설명합니다. 그래픽 셰이더 프로그램에서 각 꼭짓점의 변환에 대한 설명을 누적하는 방법과 마찬가지로 Q#의 양자 프로그램에서 대상 컴퓨터의 내부 구조에 대한 완전히 불투명한 참조로 표현되는 양자 상태의 변환을 누적합니다.

Q# 프로그램은 큐비트의 상태를 내성할 수 없으므로 양자 상태가 무엇인지 또는 어떻게 실현되는지에 대해 완전히 독립적입니다. 대신 프로그램은 계산의 양자 상태에 대한 정보를 학습하는 Measure 등의 연산을 호출할 수 있습니다.

Pauli

Pauli 형식의 값은 단일 큐비트 파울리 연산자를 지정하며 확률은 PauliI, PauliX, PauliYPauliZ입니다. Pauli 값은 주로 측정의 기준을 지정하는 데 사용됩니다.

결과

Result 형식은 양자 측정 결과를 지정합니다. Q#은 단일 큐비트 파울리 연산자의 제품에 측정값을 제공하여 대부분의 양자 하드웨어를 미러링합니다. ZeroResult는 +1 고윳값이 측정되었음을 나타내고, OneResult는 -1 고윳값이 측정되었음을 나타냅니다. 즉, Q#은 -1이 발생하는 거듭제곱으로 고윳값을 나타냅니다. 이 규칙은 클래식 비트에 더 밀접하게 매핑되므로 양자 알고리즘 커뮤니티에서 더 일반적입니다.