펭찐이의 블로그

안녕하세요오오...

펭찐이의 블로그 자세히보기

찐따의 기록 보관소/찐따 에세이

[찐따 에세이] 큐비트(Qubit) 수준 파이썬 양자역학 라이브러리 구현을 위한 양자역학의 가설

펭찐 2022. 7. 6. 18:31
반응형

 

큐비트(Qubit) 수준 파이썬 양자역학 라이브러리 구현을 위한 양자역학의 가설

 

개요

<<본 문서는 고졸 찐따가 작성하였습니다.>>

 

해당 에세이는 파이썬을 활용하여 큐비트 수준의 양자역학 라이브러리 구현을 위한 에세이입니다.

해당 에세이를 기반으로 구현한 파이썬 라이브러리 예시를 참조하고자 한다면 이 글을 통해 참조하시면 됩니다.

 

 

찐따의 파이썬 독학 - 양자역학의 가설을 기반으로 구현한 흔한 찐따의 큐비트(Qubit) 수준 파이썬

양자역학의 가설을 기반으로 구현한 흔한 찐따의 큐비트(Qubit) 수준 파이썬 양자역학 라이브러리 안녕하세요, 고졸 찐따인 흔한 찐따입니다. 제가 작성한 에세이를 기반으로 구현한 큐비트 수준

iamjjintta.tistory.com

 

양자역학의 가설

양자역학은 모든 물리적 현상이 일어나는 기본 바탕이 된다.
물리식은 복잡해 보일 수 있겠지만, 미시적으로 일어나는 이 현상을 잘 살펴본다면 이해할 수 있을 것이다.

양자역학에는 다음과 같이 4가지 기본 법칙이 존재한다.

  1. 양자 상태 (Quantum States)
  2. 양자 연산 (Quantum Operation)
  3. 양자 구성 (Quantum Composition)
  4. 양자역학의 측정 (Measurement in Quantum Mechanics)

양자 상태 및 연산, 변수와 함수, 시스템과 변환, 피연산자와 연산자, 사물의 존재 방식과 변화 방식 모두 양자역학에서 자주 사용되는 용어이다.

먼저, 몇 가지 용어에 대해 살펴보고자 한다.

 

물리학자들이 "시스템(계)"이라고 말할 때, 이는 무엇이든 의미할 수 있다.
이를테면 전자, 주사위 한 쌍, 컴퓨터의 단일 비트, 양자 컴퓨터의 단일 큐비트, 상자 안의 고양이, 또는 전체 우주 모두 물리적 시스템의 예이다.
시스템은 외부 세계와 상호 작용하지 않으면 "닫힘(close)"이라고 불린다.

외부 간섭이 없다면 규칙은 항상 더 간단하다.
그래서 여기서는 닫힌 시스템에 대해서만 이야기할 것이다.
시스템이 닫히지 않은 경우 항상 닫히지 않은 시스템 + 외부 간섭으로 구성된 더 큰 시스템을 고려할 수 있다.

 

양자 상태 (Quantum States)

첫번째 법칙: 특정 상태에 있을 수 있는 모든 시스템은 이러한 양자 상태의 단위의 길이가 복잡한 조합일 수 있다.

 

가장 간단한 시스템은 두 가지 값만 취할 수 있는 시스템이다.
그리고 이 두 가지 값을 각각 "위(Up)"와 "아래(Down)"라고 부르자.

 

큐비트(QuBit) 수준

 

[Fig 1. 큐비트(Qubit)를 표현한 블로흐 구면]

 

큐비트를 표현할 때에는 $|\psi\rangle$ 와 같이 표현하며, $|\psi\rangle = \alpha|0\rangle + \beta|1\rangle$와 같다.

이는 $\left(\frac{1}{\sqrt{2}}\right) Up + \left(\frac{1}{\sqrt{2}}\right) Down$ 와 같이 나타낼 수 있으며, 첫번째 법칙에 의하면 실제로 이 시스템의 유효한 상태라고 말한다.
어떤 상태가 위 또는 아래인 양은 음수이거나 심지어 가상의 것일 수 있으며, 또 다른 유효한 상태는 $i \left(\frac{1}{\sqrt{2}}\right) Up - \left(\frac{1}{\sqrt{2}}\right) Down$ 이다.

이를 벡터로 상태를 표현해 보면 다음과 같다.

 

 

또한, 다음과 같다.

 

 

이를 파이썬 코드로 구현 시 복소수 벡터의 길이를 구하고 1인지 확인할 수 있어야 하며, 제곱근과 같은 작업을 수행하는 경우 정확도가 약간 떨어지므로 허용오차를 사용한다.

 

양자 연산 (Quantum Operation)

두번째 법칙: 물리적으로 가능한 모든 상태 변환은 상태 공간에서 단일하다.

 

양자역학에서의 단일변환은 벡터의 길이 또는 벡터 간의 상대적인 거리를 변경하지 않는 변환이다. 즉, 일반적인 회전변환벡터와 같다.

이것이 이 우주에서 닫힌 시스템에서 사물의 상태를 바꿀 수 있는 유일한 방법이다. 모든 물리적인 힘, 모든 계산, 사람이 취할 수 있는 모든 행동은 단일적이다.

벡터의 단일 변환은 단일 행렬로 나타낼 수 있으며, 연산의 출력은 연산 행렬과 상태 벡터 사이의 행렬 곱셈으로 주어진다.

 

 

이 정도면 연산 초기화 및 적용을 구현하기에 충분하다.

파이썬 코드로 구현 시 $M*M = I$ 일 경우에만 행렬 $M*$ 이 유일하다는 사실을 이용하여 단일 행렬인지 구분해주는 함수를 구현하면 된다.
여기서 $M*$ 은 $M$ 의 켤레 전치이고, $I$ 는 항등 행렬이다.

그리고 마찬가지로 제곱근을 사용하고 있으므로 허용오차를 사용한다.

 

양자 구성 (Quantum Composition)

세번째 법칙: 두 시스템 또는 변환의 결합된 상태는 크로네커 곱이다.

 

만약 두 개의 독립된 시스템을 가지고 있고, 두 시스템의 결합인 시스템에 대해 논하고자 한다면, 크로네커 곱을 사용하여 두 시스템들을 결합함으로써 가능해진다.

이는 상태 벡터와 행렬 연산자 모두에 적용된다.

 

얽힘 (Entanglement)

위 식에서 오른쪽은 왼쪽으로 분해될 수 있다. 그러나 모든 결합된 상태가 이 속성을 가지고 있는 것은 아니다.

얽힘이라는 현상은 2개의 시스템의 구성을 취했을 때 발생하는데, 그다음 결합 시스템에 단일 연산자를 적용하면 다시 2개의 독립된 시스템으로 깔끔하게 분해되는 것이 불가능하다.

양자역학에서 전체는 부분의 합보다 클 수 있다.

 

 

위는 큐비트 쌍이 얽힌 예시이다.

이 2큐비트 시스템은 2개의 독립된 1큐비트 상태로 분해될 수 없다. 두 큐비트 모두 부분적으로 위쪽과 아래쪽이긴 하지만 독립적이지 않다. 한쪽이 작동하면 다른 쪽도 작동한다는 것을 알 수 있다. 왜냐하면 결합된 시스템은 0이 작동하기 때문이다.

 

측정 (Measurement)

네번째 법칙: 어떤 상태가 측정될 때, 그 상태에 해당하는 복소수의 절댓값의 제곱에 의해 가중되는 임의의 고전적 상태 중 하나를 취한다.

 

1큐비트 시스템에 대한 측정 결과는 다음과 같다.

 

 

위 식을 통하여 왜 첫번째 법칙이 상태 길이를 1로 하도록 요구하는지 알 수 있을 것이다.

즉, 코펜하겐 해석에 의하면 측정 결과에 대한 확률 분포로 작용하기 때문이다.

 

다세계(Many-World) 해석

측정값은 단일하지 않다. 양자 상태는 측정 시 측정된 결과로 즉시 및 불연속적으로 분기된다.

그럼에도 측정으로 간주되는 것은 무엇일까?

실험자가 결과를 인지할 때인가?

인간은 다른 모든 것과 동일한 물리 법칙에 따라 단일하게 진화해야 하는 거대한 양자 시스템이 아닌가?

많은 물리학자들이 받아들인 해결책은 다음과 같다.

측정은 실제로 일반적인 단일 진화와 다른 네번째 법칙이 아니며, 관측자가 시스템에 얽히게 되는 것뿐이다.

 

관측 (Observation)

이를 이해하기 쉽게 식으로 표현한다면 아래와 같다.

 

 

위의 수식은 $\text{Qubit} \bigotimes \text{Observer} = \text{Combined Qubit + Observer System}$을 의미한다.

당신(you)은 단지 $|\alpha|^2$ 확률로 "위쪽(Up)"을 관측하고 $|\beta|^2$ 확률로 "아래쪽(Down)"을 관측하고 있다고 생각한다. 그러나 실제로 일어나고 있는 일은 사실 당신의 $\alpha$는 큐빗이 위쪽에 있는 우주의 분기에 있고 당신의 $\beta$는 다른 분기에 있는 것이다. 즉, 실제로는 얽힘 상태에 있는 것이다.

분명히 두 가지가 모두 존재하지만, 의식이 분열되기 때문에 하나만 인지하게 되는 것이다.

 

더 많은 모델

이 글을 통해 몇 가지 법칙들을 가장 간단한 형태로 제시하였다. 다른 자료들은 보통 이를 좀 더 포괄적이고 전문적인 방식으로 제시할 것이다.

얽힌 시스템의 부분 집합(첫번째 법칙과 세번째 법칙을 결합)의 상태에 대해 이야기하려면 단위 길이 복합 벡터 대신 밀도 행렬을 사용하여 상태를 나타내야 한다.

양자 연산과 측정이 부분적이며, 얽힌 시스템의 하위 집합(두번째, 세번째 및 네번째 법칙 결합)에 적용하려는 경우, 단일 행렬 대신 완전 양의 추적 보존 맵(Completely-Positive Trace-Preserving Maps)을 사용해야 한다.

 

참고

  • Ruskai, Mary Beth, Stanislaw Szarek, and Elisabeth Werner. "An analysis of completely-positive trace-preserving maps on M2." Linear algebra and its applications 347.1-3 (2002): 159-187.
  • Haselgrove, Henry L.. “Optimal state encoding for quantum walks and quantum communication over spin systems.” Physical Review A 72 (2005).
  • Barnes, George et al. “Permutation symmetry in large N Matrix Quantum Mechanics and Partition Algebras.” (2022).
  • Kay, Alastair. “Incorporating Encoding into Quantum System Design.” (2022).
  • Sauer, Alexander and J'ozsef Zsolt Bern'ad. “Quantitative characterization of several entanglement detection criteria.” (2022).
  • Garc'ia-P'erez, Guillermo et al. “Virtual linear map algorithm for classical boost in near-term quantum computing.” (Jul 4, 2022).
  • Farrell, Roland C. et al. “Preparations for Quantum Simulations of Quantum Chromodynamics in 1+1 Dimensions: (I) Axial Gauge.” (Jul 4, 2022).
  • Stenger, John et al. “Simulating spectroscopic detection of Majorana zero modes with a superconducting quantum computer.” (2022).

 

반응형