양자붐이 오기를 기원하며 논문을 읽었습니다. 게시판에 양자컴퓨팅 공부하시는 분들 있는거 같아서 간단하게 정리해 봅니다. 항상 그렇듯 오개념이나 실수가 있을 수 있으니 주의하시고요.
https://arxiv.org/abs/1307.0401
이런 논문을 읽어 봤습니다. qPCA라는 것인데요.
아직 PCA에 대해 자세히는 모르지만, matrix eigenvalue 찾는게 매우 중요한 문제라고 해요. intel cpu에 이것만을 위해 만들어진 루틴이 있을 정도로요. 근데 matrix 크기가 3000x3000 정도 되면 eigenvalue 찾는게 많이 느려지기 시작합니다. 그래서 이걸 양자회로로 할 수 있는 방법에 대한 논문인거 같습니다.
식은 이래요.
![]()
qubit 1 에대가 알고 싶은 matrix rho 를 넣어주고 qubit 2에는 아무거나 넣어준 후에, Infinitesimal SWAP을 하고나서 qubit 1은 버리고 qubit 1에다가 rho를 새로 넣어주고... 이걸 반복하면 generator e^-i rho 를 얻는다. 이것을 이용해 quantum phase estimation을 하면 eigenvalue를 얻는다.
정확히는 모르겠고 대충 제가 이해한 바로는 그렇습니다.
Density matrix 는요
전자가 N개 있으면 그게 어떤 상태인지 나타내기 위해서 복소수가 2^N개 필요할 것입니다. 1000 0.1개, 0100 0.2개, 1100 0.7개 이런식으로 써야 되니까 2*N개로는 부족하니까요.
rho는 qubit 한개니까 state 0 0.2개, state 0.8개 이런식으로 해서 2x1 행렬일거고요
sigma도 qubit 한개니까 마찬가지로 2x1 행렬일거고요
합쳐서 qubit이 두개 쓰이니까 숫자 2^2개로 된 4x1 행렬일겁니다.
rho를 1번 qubit으로, sigma를 2번 qubit으로 넣었으니까 rho⊗sigma 이렇게도 씁니다.
SWAP은요
qubit 1이랑 qubit 2를 바꿔주는겁니다
|00><00| + |01><10| + |10><01| + |11><11| = [[1,0,0,0],[0,0,1,0],[0,1,0,0],[0,0,0,1]] 이 되겠죠
근데 exp^-it SWAP 은 다음과 같이 됩니다.

(wolfram alpha에 입력하실때 그냥 입력하시지 마시고, matrix exponential 들어가서 입력하세요.)
tr_p는 그냥 첫번째 qubit 버리는겁니다.
tr_p ( a X b) = (tr_p a) X b = I x b
그러니까 식을 전개해보는건 어렵지 않아요.

(논문 식에 두번째 rho는 아마 오타인거 같아요. 제가 뭔가 잘못한걸수도 있고요.)
이거를 sigma에 반복적으로 적용시겨주면요
[rho, sigma]를 빼주는거잖아요. [rho, rho] = 0 이니까 아마 sigma 는 rho 비슷한 무언가로 수렴해갈겁니다.
( 딴 얘기지만 Grover lookup도 비슷한 방식으로 돌아가요. )
자세히는 잘 모르겠고, 아무튼 이렇게 하면 e^-i rho를 얻는다고 하네요. (궁금하네요...)
quantum phase estimation 관련해서는 qiskit 매뉴얼이 잘 되어 있습니다.
https://qiskit.org/textbook/ch-algorithms/quantum-phase-estimation.html
자세한 것은 이쪽에서 보는게 편할 것 같아요.
아무튼 unitary matrix e^-i rho 가 있으면 quantum phase estimation을 통해서 eigenvalue를 구할 수 있다고 합니다.
유명한 논문인 것 같고 아마 백그라운드가 많이 있겠지만, 그건 앞으로 공부해나가려고 합니다...
아무튼 재미가 있네요.
양자붐아 와라~