양자 회로를 행렬로 해석하는 방법?


15

회로가 하나 이상의 큐 비트를 입력으로 사용하고 다른 수의 큐 비트를 입력으로 사용하는 양자 게이트가있는 경우이 회로를 매트릭스로 어떻게 해석합니까?

다음은 장난감 예입니다.

여기에 이미지 설명을 입력하십시오

답변:


17

특정 회로

첫 번째 게이트는 일반적으로 1로 표시되는하다 마드 게이트입니다

12[1111]

이제 첫 번째 큐빗에만 적용하기 때문에 크로네 커 제품을 사용합니다. (처음 시작할 때 너무 혼란 스러웠습니다. ), 우리는 . 여기서 I 는 2x2 항등 행렬입니다. 이것은 생산H나는나는

12[1010010110100101]

다음으로 CNOT 게이트가 있습니다. 이것은 일반적으로

[1000010000010010]

이것은 2 큐 비트에 적합한 크기이므로 크로네 커 제품을 사용하여 확장 할 필요가 없습니다. 그리고 또 다른 하사 드 게이트가 있는데, 첫 번째 게이트와 동일하게 확장됩니다. 회로의 전체 행렬을 찾으려면 모두 함께 곱합니다.

12[1010010110100101][1000010000010010]12[1010010110100101]

그리고 얻다

12[1111111111111111]

(파이썬이 올바르게 곱하면 =) 우리는 이것을 원래 큐 비트 상태에 곱하고 결과를 얻습니다.

일반화

따라서 기본적으로 각 게이트를 하나씩 통과하고 기본 표현을 취한 다음 항등 행렬이있는 크로네 커 제품을 사용하여 적절하게 크기를 조정합니다. 그런 다음 모든 행렬을 적용되는 순서대로 곱합니다. 곱셈을 적었을 때 첫 번째 문이 맨 오른쪽에 오도록이 작업을 수행하십시오. arriopolis가 지적했듯이 이것은 일반적인 실수입니다. 행렬은 교환이 아닙니다! 행렬의 기본 표현을 모르는 경우 먼저 양자 게이트에 관한 위키 백과의 기사를 확인하십시오 .


3
어쩌면 항상 행렬 곱셈의 순서를 바꿔야한다고 덧붙이는 것이 좋습니다. 이 특정 장난감 예제에서는 회로가 대칭이므로 필요하지 않지만 일반적으로 가장 왼쪽 게이트의 행렬을 행렬 곱셈의 가장 오른쪽 위치에 배치해야합니다.
arriopolis

@arriopolis, 좋은 지적; 추가하겠습니다!
헤더

1
내가 이해 한 바에 따르면 게이트를 '스케일링'하는 것에 대해 생각하기보다는, 아이덴티티 매트릭스에 의한 크로네 커 곱은 두 번째 큐빗에는 아무것도 적용되지 않는다는 사실에 기인한다. 첫 번째 큐 비트에서 H 변환을 수행하고 두 번째 큐에서 "I"변환을 수행합니다. 이는 H⊗I로 한 번에 표시됩니다.
FSic

@ F.Siciliano는 그것에 대해 생각하는 좋은 방법입니다. 나를 위해 내가 하고 있는지 나 자신을 생각 나게하는 좋은 방법 입니다.
헤더
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.