맨위로가기

양자 회로

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

양자 회로는 큐비트의 상태를 조작하는 가역적인 연산인 양자 논리 게이트들을 연결하여 구성된다. 양자 회로는 고전적인 가역 논리 회로와 유사하게 구성되지만, 큐비트의 힐베르트 공간 구조로 인해 고전 게이트로는 표현할 수 없는 다양한 연산을 수행할 수 있다. 양자 회로는 양자 중첩과 얽힘과 같은 양자역학적 현상을 활용하여 고전 컴퓨터로 해결하기 어려운 문제를 효율적으로 해결하는 양자 계산에 사용된다. 양자 컴퓨터 개발의 어려움으로 인해, FPGA를 이용한 양자 컴퓨팅 시뮬레이션 가속화 연구가 진행되고 있다.

2. 가역 논리 게이트

고전 컴퓨터의 논리 게이트는 대부분 비가역적이어서 정보 손실과 에너지 소비를 유발한다. 예를 들어 AND 게이트는 출력 비트만으로 두 입력 비트를 복구할 수 없다. 출력 비트가 0일 때 입력 비트가 01, 10, 00 중 무엇인지 알 수 없기 때문이다. 그러나 NOT 게이트처럼 고전 컴퓨터에서도 가역 게이트를 구성할 수 있다. 가역 게이트는 정보 손실 없이 연산을 수행할 수 있어, 이상적인 경우 전력 소비 및 열 손실 문제를 일으키지 않아 응용 분야에서 관심이 높다. 가역 게이트는 보통 비트열을 입력받아 같은 길이의 비트열을 출력하는 가역 함수로 표현된다.

좀 더 정확히 말하면, ''n'' 비트 가역 게이트는 ''n'' 비트 데이터 집합 {0,1}''n''에서 자체로의 전단사 매핑 ''f''이다. 입력에 고정된 순열을 적용하는 매핑이 그 예이다.

개념적으로 가역적인 ''n'' 비트 회로와 ''n'' 비트 논리 게이트는 차이가 없다. 둘 다 ''n'' 비트 열 공간상의 단순한 가역 함수이기 때문이다. 다만, 공학적인 이유로 가역 회로를 구성하려면 조합 가능한 소수의 단순한 가역 게이트가 필요하다.

토폴리 게이트는 범용 게이트로 증명되었다. 즉, 임의의 가역적인 고전 ''n'' 비트 회로 ''h''가 주어지면, 토폴리 게이트 조합으로 특정 조건을 만족하는 (''n'' + ''m'') 비트 회로 ''f''를 만들 수 있다.

양자 회로에서는 양자 비트 게이트의 유사한 구성을 정의할 수 있다. 즉, 고전적 결합과 비슷하게 가역적인 양자 회로를 만들 수 있다.

고전적 결합과 유사한 양자 회로 구성


이 방식으로 게이트를 연결하면 (''n''+''m''-''k'')-양자 비트 공간에서 유니타리 연산자가 생성된다. 실제 양자 컴퓨터에서 게이트 간 물리적 연결은 디코히어런스 발생 장소 중 하나이므로, 이는 공학적 과제이다.

2. 1. 고전적 가역 논리 게이트

고전 컴퓨터의 논리 게이트는 대부분 가역 계산이 불가능하다. 예를 들어 AND 게이트는 출력 비트만으로는 입력 비트가 01, 10, 00 중 무엇이었는지 알 수 없어 정보가 손실된다.

하지만 고전 컴퓨터에서도 NOT 게이트처럼 가역 게이트를 만들 수 있다. 가역 게이트는 *n* 비트 데이터를 입력받아 *n* 비트 데이터를 출력하는 가역 함수로 표현된다. 여기서 *n* 비트 데이터는 0과 1로 구성된 길이 *n*의 문자열이다. *n* 비트 데이터의 집합은 {0,1}*n*으로, 2*n*개의 문자열로 구성된다.

좀 더 정확히는, *n* 비트 가역 게이트는 {0,1}*n*에서 자기 자신으로의 전단사 매핑 *f*이다. 예를 들어 입력에 정해진 치환을 적용하는 매핑이 있다. 이러한 게이트는 *n*이 작을 때 (n=1, 2, 3 등) 진리표 등으로 쉽게 표현할 수 있다.

가역 게이트는 정보 손실과 엔트로피 증가로 인한 전력 소비 및 열 손실 문제를 일으키지 않아 응용 분야에서 주목받고 있다.

토폴리 게이트는 범용 가역 게이트로, 이를 이용하여 임의의 가역 회로를 구성할 수 있다. 즉, 임의의 가역적인 *n* 비트 회로 *h*가 주어지면, 토폴리 게이트를 조합하여 (*n* + *m*) 비트 회로 *f*를 만들 수 있다. 이때, *f*는 *m*개의 보조 비트(0으로 채워진)를 추가하여 f(x_1, \ldots, x_n, \underbrace{0, \dots, 0}_m) = (y_1, \ldots, y_n, \underbrace{0, \ldots, 0}_m) 형태로 표현되며, (y_1, \ldots, y_n) = h(x_1, \ldots, x_n)를 만족한다. 이렇게 하면 "쓰레기" 비트 없이 계산이 가능하여 물리적 엔트로피를 증가시키지 않는다.

가역적인 *n*-비트 게이트 *f*와 가역적인 *m*-비트 게이트 *g*를 합성하여 새로운 회로를 만드는 과정(고전적 결합)

2. 2. 양자 논리 게이트

양자 논리 게이트는 하나 이상의 큐비트에 대해 유니타리 변환을 수행하는 연산이다. 이는 중첩 상태에 있는 큐비트의 상태를 변화시키는 방식으로 작동하며, 항상 가역 계산이 가능하다. 즉, 연산의 결과를 되돌릴 수 있다.

여러 큐비트를 묶어 양자 레지스터라고 부르며, 양자 게이트는 이 레지스터의 상태를 변화시킨다. 고전적인 ''n''-비트 공간 {0,1}''n''의 양자화된 버전은 힐베르트 공간 H_{\operatorname{QB}(n)}= \ell^2(\{0,1\}^n)으로 표현된다. 이 공간은 {0,1}''n''에 대한 복소수 값을 갖는 함수 공간이며, 내적 공간의 성질을 갖는다.

디랙 켓 표기법을 사용하면, 고전적인 비트 문자열 ''x''1, ''x''2, ...,''x''''n''에 대해 특수한 ''n''-큐비트 레지스터를 | x_1, x_2, \cdots,x_n \rangle 와 같이 나타낼 수 있다. 이들은 ''계산 기저 상태''라고 불리며, 모든 ''n''-큐비트 레지스터는 이러한 계산 기저 상태의 복소 선형 조합으로 표현된다.

양자 논리 게이트는 고전 논리 게이트와 달리 항상 가역적이다. 이는 에르미트 내적을 보존하는 유니타리 매핑 ''U''를 통해 구현된다.

가역적인 ''n''-비트 고전 논리 게이트 ''f''는 양자 게이트 ''W''''f''를 생성하며, 이는 다음과 같이 정의된다.

: W_f( | x_1, x_2, \cdots,x_n \rangle) = |f(x_1, x_2, \cdots, x_n) \rangle.

''W''''f''는 계산 기저 상태를 순열하는 방식으로 작동한다.

대표적인 양자 게이트로는 2개의 큐비트에 대해 정의된 CNOT 게이트 ''W''CNOT가 있으며, 토폴리 게이트와 프레드킨 게이트 또한 고전적인 가역 게이트에서 파생된 양자 게이트이다.

하지만 큐비트의 힐베르트 공간 구조는 고전적인 게이트로는 표현할 수 없는 다양한 양자 게이트를 허용한다. 예를 들어, 상대 위상 이동은 1 큐비트 게이트의 일종으로, 다음과 같은 유니타리 행렬로 표현된다.

: P(\varphi) =\begin{bmatrix} 1 & 0 \\ 0 & e^{i\varphi} \end{bmatrix},

이 게이트는 큐비트의 상대 위상을 변화시키는 역할을 한다.

: P(\varphi)| 0 \rangle = | 0 \rangle \quad P(\varphi)| 1 \rangle = e^{i\varphi}| 1 \rangle.

3. 가역 논리 회로

가역 논리 회로는 가역 컴퓨팅에서 중요한 개념이다. 고전적인 가역 회로는 가역 논리 게이트들을 연결하여 구성되며, 정보 손실 없이 연산을 수행한다. 예를 들어, 가역 ''n''-비트 게이트 ''f''와 가역 ''m''-비트 게이트 ''g''가 있을 때, ''f''의 일부 출력을 ''g''의 입력에 연결하여 새로운 회로를 만들 수 있다. 이러한 방식을 ''고전적 조립''이라고 한다.[6]

이 과정에서 중간 단계의 회로도 가역적이어야 "쓰레기" 비트가 생성되지 않아 엔트로피 증가를 막을 수 있다. 토폴리 게이트는 보편적인 고전적 가역 게이트로, 이를 이용하여 임의의 가역 회로를 구성할 수 있다.[6]

양자 회로 또한 양자 게이트들을 연결하여 구성한다. 고전적 조립과 유사하게, ''n''-큐비트 게이트 ''U''와 ''m''-큐비트 게이트 ''W''를 연결하여 더 큰 유니타리 연산을 수행하는 회로를 만들 수 있다.

양자 회로의 보편성 정리에 따르면, 특정 종류의 게이트 조합(예: 단일 큐비트 위상 게이트 ''U''θ와 2-큐비트 CNOT 게이트 ''W''CNOT)만으로 임의의 양자 회로를 근사적으로 구성할 수 있다. 하지만, 가능한 단일 큐비트 위상 게이트는 무한히 많기 때문에, 유한한 게이트 조합으로는 모든 양자 회로를 정확하게 나타낼 수 없다.[6]

4. 양자 계산

양자 계산은 양자 중첩양자 얽힘 같은 양자역학적 현상을 이용하여, 기존 컴퓨터로는 해결하기 어려운 문제를 효율적으로 해결할 수 있다. 양자 회로는 유니타리 변환을 계산하는 데 사용될 수 있으며, 이산 푸리에 변환과 같은 문제에 응용될 수 있다. 양자 계산은 확률적이며, 측정 과정에서 결과의 불확실성이 발생한다.[1] 양자 회로는 확률적인 고전적 컴퓨터를 모방하는 수리 모델로 표현될 수 있다.[2]

많은 중요한 수치 문제들은 유한 차원 공간에서 유니타리 변환 ''U''를 계산하는 것으로 축소될 수 있다. 예를 들어 이산 푸리에 변환이 이에 해당한다. 이러한 변환 ''U''를 수행하기 위해 양자 회로가 설계될 수 있다.[3] 원칙적으로는 입력에 대한 계산 기저 상태의 적절한 중첩으로 ''n'' 큐비트 상태 ψ를 준비하고 출력 ''U''ψ를 측정하면 된다. 그러나 여기에는 두 가지 문제가 있다.[4]


  • 어떤 계산 기저 상태에서도 ψ의 위상을 측정할 수 없어 완전한 답을 읽을 수 없다. 이는 양자역학에서의 측정의 본질이다.[5]
  • 입력 상태 ψ를 효율적으로 준비할 방법이 없다.[6]


이러한 문제점에도 불구하고, 이산 푸리에 변환을 위한 양자 회로는 다른 양자 회로의 중간 단계로 사용될 수 있다. 실제로 양자 계산은 확률적이다.[7]

''r''-큐비트 회로 ''U''는 유니타리 맵이다.

:H_{\operatorname{QB}(r)} \rightarrow

H_{\operatorname{QB}(r)}.

이 회로를 비트열에 대한 고전적인 매핑과 연관시키기 위해 다음과 같이 지정한다.[8]

  • 입력 레지스터 ''X'' = {0,1}''m'' (''m''개의 고전적인 비트)
  • 출력 레지스터 ''Y'' = {0,1}''n'' (''n''개의 고전적인 비트)


고전적인 입력 레지스터의 내용 ''x'' = ''x''1, ..., ''x''''m''은 어떤 방식으로든 큐비트 레지스터를 초기화하는 데 사용된다. 이상적으로는 이 작업이 계산 기저 상태로 수행된다.[9]

: |\vec{x},0\rangle= | x_1, x_2, \cdots, x_{m}, \underbrace{0, \dots, 0} \rangle,

여기서 밑줄 친 0은 ''r''-''m''개이다. 하지만 이러한 완벽한 초기화는 비현실적이므로, 초기화가 이상화된 입력에 가까운 밀도 연산자 ''S''에 의해 주어진 혼합 상태라고 가정한다.[10]

: \operatorname{Tr}\left(\big||\vec{x},0\rangle \langle \vec{x},0 | - S\big|\right) \leq \delta.

출력 레지스터 공간은 ''Y'' 값을 갖는 관측값 ''A''에 의해 큐비트 레지스터와 관련된다. 양자 역학에서 관측값은 일반적으로 사영 값 측정으로 정의된다. 변수가 이산적인 경우 사영 값 측정은 가산 집합을 통해 인덱싱된 일련의 {Eλ}로 축소된다. ''Y'' 값을 갖는 관측값은 ''Y''의 원소로 인덱싱된 상호 직교 사영 {E''y''}의 일족과 연관될 수 있다.[11]

: I = \sum_{y \in Y} \operatorname{E}_y.

혼합 상태 ''S''가 주어지면 다음으로 주어지는 ''Y''에 대한 확률 측정이 해당된다.[12]

: \operatorname{Pr}\{y\} = \operatorname{Tr}(S \operatorname{E}_y ).

함수 ''F'':''X'' → ''Y''는 회로 ''U'':''H''QB(''r'') → ''H''QB(''r'')에 의해 ε 내에서 계산된다. 즉, 길이 ''m''인 모든 비트열 ''x''에 대해 다음이 성립한다.[13]

:\left\langle \vec{x},0 \big| U^* \operatorname{E}_{F(x)} U

\big|\vec{x},0 \right\rangle = \left\langle \operatorname{E}_{F(x)} U( |\vec{x},0\rangle) \big| U( |\vec{x},0\rangle) \right\rangle \geq 1 - \epsilon.

여기서

: \left| \operatorname{Tr} (S U^* \operatorname{E}_{F(x)} U) - \left\langle \vec{x},0 \big| U^* \operatorname{E}_{F(x)} U

\big|\vec{x},0 \right\rangle\right|\leq \operatorname{Tr} (\big||\vec{x},0\rangle \langle \vec{x},0 | - S\big|) \| U^* \operatorname{E}_{F(x)} U \| \leq \delta

이므로,

:\operatorname{Tr} (S U^* \operatorname{E}_{F(x)} U) \geq 1 - \epsilon - \delta.

이다.

'''정리'''. ε + δ < 1/2이면, 확률 분포

: \operatorname{Pr}\{y\} = \operatorname{Tr} (S U^* \operatorname{E}_{y} U)

는 ''Y''에 대해 다수 표본 추출을 통해 임의로 작은 오류 확률로 ''F''(''x'')를 결정하는 데 사용할 수 있다. 구체적으로, 확률 분포 Pr에 대해 ''k''개의 독립적인 표본을 추출하고 표본의 절반 이상이 일치하는 값을 선택한다. 값 ''F''(''x'')가 ''k''/2번 이상 샘플링될 확률은 최소

: 1 - e^{- 2 \gamma^2 k},

이다. 여기서 γ = 1/2 - ε - δ.

이것은 체르노프 경계를 적용하여 얻는다.

5. FPGA를 이용한 양자 컴퓨팅 시뮬레이션 가속화

양자 컴퓨터는 개발 속도가 느리고 유지 관리 비용이 높기 때문에, 실제 양자 하드웨어 대신 시뮬레이터를 사용하여 연구하는 경우가 많다.[7] 그러나 일반 컴퓨터에서 시뮬레이터를 실행하면 속도에 제약이 있다. 양자 컴퓨터는 얽힘과 중첩 같은 속성을 이용해 큐비트를 동시에 처리할 수 있지만, 일반 컴퓨터는 이러한 병렬성을 활용할 수 없다.

필드 프로그래머블 게이트 어레이(FPGA)는 양자 컴퓨팅 시뮬레이션을 가속화하는 데 유용한 도구이다. 양자 회로에서 큐비트의 상태는 벡터로, 큐비트에 적용되는 게이트는 행렬로 나타낼 수 있다. FPGA는 다음과 같은 특징을 가지기 때문에 행렬 곱셈에 적합하다.


  • 병렬 처리 능력
  • 파이프라인 지원
  • 짧은 접근 지연 시간을 가진 온칩 메모리
  • 하드웨어 아키텍처 재구성 가능


FPGA를 사용하면 복잡한 계산을 오프로드하여 전체 시뮬레이션 속도를 높일 수 있다. 큐비트와 게이트 수가 많을수록 FPGA를 사용했을 때 속도 향상 효과가 더 크다. 시뮬레이션 데이터 흐름은 다음과 같다.

1. 사용자가 초기 상태와 게이트 등 양자 회로 정보를 입력한다.

2. 정보를 압축하여 FPGA로 전송한다.

3. FPGA 온칩 메모리에 정보를 저장한다.

4. 데이터를 읽어 행렬 곱셈 모듈로 보내 시뮬레이션을 시작한다.

5. 계산 결과를 메모리와 CPU로 다시 전송한다.

5큐비트 회로를 시뮬레이션하는 경우, 32(2⁵)개의 16비트 값을 저장하는 벡터와 32x32 행렬을 저장해야 한다. FPGA를 사용하면 행렬의 32개 행을 별도로 저장하고, 32개의 row\_vec\_mult 하드웨어를 복제하여 각 행의 곱셈을 병렬로 계산할 수 있다. 이를 통해 시뮬레이션 속도를 크게 높일 수 있다.[8]

FPGA를 이용한 하드웨어 아키텍처는 큐비트 수를 'n'이라고 할 때 O(n)의 시간 복잡도를 가질 수 있다. 반면 Numpy의 런타임은 O(2^2^n)에 접근한다. 이는 FPGA를 활용하여 양자 컴퓨팅 시뮬레이션을 가속화할 수 있음을 보여준다.[9]

6. 관련 항목


  • 추상 지표 표기법
  • 각운동량 그림 (양자역학)
  • 행렬 곱 상태 - 펜로즈 그래프 표기법
  • 스핀 네트워크
  • 트레이스 그림

참조

[1] 서적 Quantum Computation and Quantum Information https://www.cambridg[...] Cambridge University Press 2010
[2] 서적 Explorations in Quantum Computing Springer Science+Business Media|Springer
[3] 서적 Quantum Computation and Quantum Information https://www.cambridg[...] Cambridge University Press 2010
[4] 학위논문 Quantum Programming in QCL http://tph.tuwien.ac[...] Institute for Theoretical Physics, Vienna University of Technology 2000-01-20
[5] 저널 Quantum mechanical computers Springer Science and Business Media LLC
[6] 웹사이트 Introduction to the Quantum Circuit Model https://www.cs.cmu.e[...]
[7] 웹사이트 Accelerating Quantum Simulations w/ FPGAs https://medium.com/@[...] 2020-08-19
[8] 웹사이트 Accelerating Quantum Simulations w/ FPGAs https://medium.com/@[...] 2020-08-19
[9] 웹사이트 Accelerating Quantum Simulations w/ FPGAs https://medium.com/@[...] 2020-08-19
[10] 서적 Explorations in Quantum Computing Springer Science+Business Media|Springer
[11] 서적 Quantum Computation and Quantum Information https://www.cambridg[...] Cambridge University Press 2010
[12] 학위논문 Quantum Programming in QCL http://tph.tuwien.ac[...] Institute for Theoretical Physics, Vienna University of Technology 2000-01-20
[13] 저널 Quantum mechanical computers Springer Science and Business Media LLC



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com