양자 회로의 자동 컴파일


12

최근의 질문은 4-qubit 게이트 CCCZ (controlled-controlled-controlled-controlled-Z)를 간단한 1-qubit 및 2-qubit 게이트로 컴파일하는 방법을 물었고 지금까지 주어진 대답 은 63 게이트가 필요합니다 !

첫 번째 단계는 Nielsen & Chuang이 제공 한 C U 구성 을 사용하는 것입니다 .n

와 이 4 개 수단 CCNOT 게이트 및 간단한 3 게이트 (1 CNOT 2 Hadamards 대상 큐빗 마지막 워크 큐 비트에 대한 최종 CZ을 충분하다).n=3

이 논문의 정리 1에 따르면 일반적으로 CCNOT는 9 개의 1 큐빗과 6 개의 2 큐빗 게이트 (총 15 개)가 필요하다고한다.

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


이것은 다음을 의미합니다.

(4 CCNOT) x (CCNOT 당 15 게이트) + (1 CNOT) + (2하다 마드) = 총 게이트 63 개 .

의견에서 , 63 개의 게이트가 "자동 절차"를 사용하여, 예를 들어 자동 그룹 이론으로부터 추가로 컴파일 될 수 있다고 제안되었다 .

이 "자동 컴파일"을 어떻게 수행 할 수 있습니까?이 경우 1 큐 비트 및 2 큐 비트 게이트의 수를 얼마나 줄일 수 있습니까?


1
몇 가지 중간에 있지만 귀하의 질문을 발견했습니다. 글로벌 Mølmer–Sørensen 게이트 는 2 qubit 게이트이며, 효율적인 양자 회로 구조에서 글로벌 상호 작용 사용은 다음과 같이 설명합니다. "3 개의 GMS 게이트를 사용한 CCCZ 게이트의 최적화 된 구현", 그림 9 참조 도움이되었습니다.
Rob

이미지의 표현은 단지 4 CCNOTs, 따라서 게이트 (63) (93) 대신에 필요
Dyon J 돈 키위 반 Vreumingen

@ 돈 키위, 지적했다! 6 대신 CCNOT 4 개. 지금 업데이트 중입니다.
user1271772

1
@Rob : 두 개의 Hadamards를 사용하여 CCCX에서 X를 결합시키는 것이 좋습니다. 그런 다음 위의 Nielsen & Chaung 회로 에서처럼 CCCX를 분해 할 수 있습니다. 그 맞습니까? DonKiwi의 질문에 대한 두 번째 대답에서 나는 이와 같이했습니다. 5 분 간격으로 답변을 입력하는 것처럼 귀하의 의견이 온 것 같습니다 (그리고 입력하는 데 5 분 이상이 걸렸습니다). "자동 컴파일"에 대한이 질문은 여전히 ​​"명확한 방법"으로 회로를 구성하고보다 효율적인 것으로 자동 컴파일 할 수 있기 때문에 여전히 유효합니다.
user1271772

1
@ user1271772-모든 (qu) 비트가 도움이됩니다.
Rob

답변:


6

하자 당신이 사용할 수 있다는 기본 게이트를합니다. 이 및 등 의 목적 상 별도의 것으로 취급됩니다. 따라서 은 퀴 비트 수인 에 대해 다항식으로 의존합니다 . 정확한 의존도는 사용 게이트의 종류와 방법에 대한 자세한 포함 - 현지 그들이합니다. 예를 들어,이 경우 단일 큐 비트 게이트 및 와 같은 순서에 의존하지 않는 2 큐 비트 게이트 다음 .g1gMCNOT12CNOT13MnkxyCZM=xn+(n2)y

그러면 회로는 어떤 순서로 이러한 발전기의 곱입니다. 그러나 아무것도하지 않는 여러 회로가 있습니다. 마찬가지로 . 그래서 그들은 그룹과 관계를 맺습니다. 그것은 우리가 모르는 많은 관계 가있는 그룹 프레젠테이션 입니다.CNOT12CNOT12=Id g1gMR1

우리가 풀고 자하는 문제는이 그룹에서 같은 요소를 나타내는 가장 짧은 단어 인 단어입니다. 일반적인 그룹 프레젠테이션의 경우 이것은 희망이 없습니다. 이 문제에 접근 할 수있는 일종의 그룹 프리젠 테이션을 자동이라고합니다.

그러나 우리는 더 간단한 문제를 고려할 수 있습니다. 일부를 이전의 단어는 여기서 각 는 나머지 문자의 단어 일뿐입니다. 포함하지 않는 관계를 사용하여 더 짧게 전체 회로를 더 짧게 만들 것입니다. 이것은 다른 답변에서 만든 자체 CNOT 최적화와 유사합니다.giw1gi1w2gi2wkwigi

예를 들어,이 세 개의 발전기가 단어 인 경우 ,하지만 우리는 처리하지 않으려는 , 우리 것 대신에 Lite 버전 및 에 과 . 그런 다음 다시 로 정리 하면 원래 단어가 짧아집니다.aababbacbbabacw1=aababbaw2=bbabaw^1w^2w^1cw^2

따라서 WLOG (일반성을 잃지 않고), 우리가 이미 지정된 모든 게이트를 사용하는 이라는 문제가 있다고 가정 해 봅시다 . 다시 이것은 아마도 자동 그룹이 아닐 것입니다. 그러나 우리가 어떤 관계를 버린다면 어떨까요? 그런 다음 우리가 원하는 그룹에 대한 몫지도가있는 다른 그룹이 생깁니다.g1gMR1

그룹 아무 관계되는 무료 그룹 이 세우면,하지만 관계로서, 당신이 얻을 무료 제품 및 각 세그먼트 modulo 의 줄이는 전자에서 후자로의 몫 맵이 있습니다 .g1g2g12=id Z2Zg12

우리가 버린 관계는 위층의 것 (quotate map의 원천)이 의도적으로 자동적으로되는 것입니다. 우리가 단어를 유지하고 짧게하는 관계 만 사용한다면, 그것은 여전히 ​​몫 그룹에 대해 더 짧은 단어가 될 것입니다. 몫 그룹 (몫지도의 대상)에 최적은 아니지만 시작하는 길이 의 길이 를 갖습니다 .

이것이 일반적인 아이디어였습니다. 어떻게 이것을 특정 알고리즘으로 바꿀 수 있습니까?

자동 그룹을 만들기 위해 와 관계를 어떻게 선택 합니까? 여기에서 우리가 일반적으로 사용하는 기본 게이트 종류에 대한 지식이 들어옵니다. 많은 진화가 있기 때문에 그만 유지하십시오. 이것이 근본적인 진화에 불과하다는 사실에주의를 기울이십시오. 하드웨어가 칩에서 크게 분리 된 큐 비트를 교체하는 데 어려움을 겪는 경우, 쉽게 할 수있는 단어로만 쓰면됩니다. 가능한 한 짧아야합니다.gi

예를 들어, IBM 구성 이 있다고 가정하십시오 . 그런 다음 가 허용되는 게이트입니다. 일반적인 순열을 수행하려면 요소 로 분해하십시오 . 즉, 그룹의 단어 우리가 원하는 것을 단축 .s01,s02,s12,s23,s24,s34si,i+1s01,s02,s12,s23,s24,s34R1

이것들이 표준 혁신 일 필요는 없습니다. 예를 들어 외에 을 넣을 수 있습니다 . Gottesman-Knill 정리를 생각해보십시오 . 그러나 추상적 인 방식으로 일반화하기가 더 쉬울 것입니다. 짧은 정확한 시퀀스에서 속성을 사용하는 것과 같이 양측에 대해 유한 한 완전한 재 작성 시스템을 가지고 있다면 중간 그룹에 대해 하나를 얻습니다. 이 의견은 나머지 답변에는 불필요하지만이 답변의 사례에서 더 일반적인 예제를 작성하는 방법을 보여줍니다.R(θ)XR(θ)1X

유지되는 관계는 형식의 관계입니다 . 이것은 Coxeter 그룹을 제공하며 자동입니다. 실제로이 자동 구조에 대한 알고리즘을 코딩하기 위해 처음부터 시작할 필요조차 없습니다. 그것은 일반적으로 Sage (Python 기반)로 이미 구현되어 있습니다. 지정하기 나머지 구현이 이미 완료되었습니다. 당신은 그것의 일부 속도 향상을 할 수 있습니다.(gigj)mij=1mij

mij 는 게이트의 위치 특성 때문에 계산하기가 정말 쉽습니다. 게이트가 최대 로컬이면 차원 힐버트 공간 에서 의 계산을 수행 할 수 있습니다 . 인덱스가 겹치지 않으면 라는 것을 알기 때문 입니다. 는 및 출퇴근 할 때 사용됩니다 . 또한 항목의 절반 미만 만 계산하면됩니다. 이것은 행렬 이 대칭이고 대각선에 이 있기 때문입니다 ( ). 또한 대부분의 항목은 관련 큐 비트의 이름을 바꾸므로 순서를 알고 있다면kmij22k1mij=2mij=2gigjmij1(gigi)1=1(CNOT12H1) , 다시 계산하지 않고 의 순서를 알고 있습니다.CNOT37H3

그것은 최대 2 개의 별개의 문 (증거 : 운동)에만 관련된 모든 관계를 처리했습니다. 명 이상이 관련된 관계 는 모두 폐기되었습니다. 우리는 이제 그것들을 다시 넣었습니다. 우리가 가지고 있다고 가정하면, 새로운 관계를 사용하여 Dehn의 탐욕스러운 알고리즘 을 수행 할 수 있습니다 . 변경 사항이 있으면 Coxeter 그룹을 다시 실행하기 위해 변경했습니다. 변경 사항이 없을 때까지 반복됩니다.3

단어가 짧아 지거나 같은 길이를 유지할 때마다 선형 또는 2 차 행동을하는 알고리즘 만 사용합니다. 이것은 다소 저렴한 절차이므로 그렇게 할 수도 있고 어리석은 짓을하지 않았는지 확인하십시오.

직접 테스트하려면 생성기 수를 , 시도하는 임의 단어 의 길이 및 Coxeter 행렬을 .NKm

edge_list=[]
for i1 in range(N):
    for j1 in range(i):
        edge_list.append((j1+1,i1+1,m[i1,j1]))
G3 = Graph(edge_list)
W3 = CoxeterGroup(G3)
s3 = W3.simple_reflections()
word=[choice(list([1,..,N])) for k in range(K)]
print(word)
wTesting=s3[word[0]]
for o in word[1:]:
    wTesting=wTesting*s3[o]
word=wTesting.coset_representative([]).reduced_word()
print(word)

N=28및 의 예 K=20에서 처음 두 줄은 줄이지 않은 입력 단어이고 다음 두 줄은 줄어든 단어입니다. 행렬에 들어갈 때 오타가 발생하지 않기를 바랍니다 .m

[26, 10, 13, 16, 15, 16, 20, 22, 21, 25, 11, 22, 25, 13, 8, 20, 19, 19, 14, 28]

['CNOT_23', 'Y_1', 'Y_4', 'Z_2', 'Z_1', 'Z_2', 'H_1', 'H_3', 'H_2', 'CNOT_12', 'Y_2', 'H_3', 'CNOT_12', 'Y_4', 'X_4', 'H_1', 'Z_5', 'Z_5', 'Y_5', 'CNOT_45']

[14, 8, 28, 26, 21, 10, 15, 20, 25, 11, 25, 20]

['Y_5', 'X_4', 'CNOT_45', 'CNOT_23', 'H_2', 'Y_1', 'Z_1', 'H_1', 'CNOT_12', 'Y_2', 'CNOT_12', 'H_1']

와 같은 생성기를 다시 배치하면 과 같은 관계 만 다시 설정하고 는 qubit 포함되지 않은 게이트로 합니다. 이를 통해 분해 를 가 가능한 한 길게 만들 수 있습니다. 과 같은 상황을 피하고 싶습니다 . (Cliff + T에서는 종종 T 카운트를 최소화하려고합니다.) 이 부분의 경우 의존성을 보여주는 유향 비순환 그래프가 중요합니다. 이것은 우수한 토폴로지 종류의 DAG를 찾는 문제입니다. 다음에 사용할 정점을 선택할 때 우선 순위를 변경하면됩니다. (나는이 부분을 너무 열심히 최적화하는 데 시간을 낭비하지 않을 것입니다.)TiTin=1Tiiw1gi1w2gi2wkwiX1T2X1T2X1T2X1

단어가 이미 최적의 길이에 가깝다면 할 일이 많지 않으며이 절차는 도움이되지 않습니다. 그러나 발견 된 가장 기본적인 예는 여러 단위가 있고 하나의 끝에 가 있고 다음에 시작할 때 가 있다는 것을 잊어 버린 경우 해당 쌍을 제거합니다. 즉, 공통 루틴을 블랙 박스에 넣을 수 있으므로 이러한 루틴을 정리할 때 이러한 취소가 모두 처리 될 것이라는 확신을 가질 수 있습니다. 그것은 분명하지 않은 다른 것들을합니다. 때 사용됩니다 .HiHimij1,2


+1 !!! 많은 세부 사항! 나는 그것을 읽고 :)
user1271772

1
@AHussain, 이것이 내 질문에 "순진한"CCCZ 구조에 적용되고 더 적은 수의 게이트로 끝나는 예를 통해 작업 할 수 있습니까? CCCZ에 대한 원래 질문에는 이제 6 개의 답변이 있으며 그 중 많은 수의 게이트 수가 훨씬 적습니다. 당신의 접근 방식이 게이트 수에 어떤 영향을 줄지 궁금합니다.
user1271772

4

에서 기재된 절차 사용 https://arxiv.org/abs/quant-ph/0303063 1 , 모든 대각선 게이트 - 모든 따라서 특히 CCCZ 게이트는 - 예 CNOTs 환산 한 큐 비트 게이트 대각선으로 분해 될 수있다 여기서 CNOT는 고전적인 최적화 절차에 따라 자체적으로 최적화 될 수 있습니다.

이 레퍼런스는 임의의 대각선 4 큐 비트 게이트에 16 개의 CNOT를 사용하는 회로를 제공합니다 (그림 4).


비고 : 원칙적으로 더 간단한 회로가있을 수 있지만 (이 회로는보다 제한적인 회로 구조를 염두에두고 최적화 된 것임) 최적에 가까워 야합니다. 회로는 형식의 모든 상태를 만들어야합니다. 사소하지 않은 부분 집합 대해 이고 4 qubits 중 15 개가 있습니다.iIxiI{1,2,3,4}

또한이 구성이 반드시 최적 일 필요는 없다는 점에 유의하십시오.


1 참고 : 저는 저자입니다


흥미 롭군 아직도 절차를 확인하려면 논문을 읽어야합니다. 또한 @AHussain이 자동 그룹 이론을 사용하여 수행하는 방법을 알려주기를 기다리고 있습니다.
user1271772
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.