Para cada chip quântico da IBM, é possível escrever um dicionário mapeando cada qubit de controle j para uma lista de seus destinos fisicamente permitidos, assumindo que j é o controle de um CNOT. Por exemplo,
ibmqx4_c_to_tars = {
0: [],
1: [0],
2: [0, 1, 4],
3: [2, 4],
4: []} # 6 edges
para o chip ibmqx4.
Qual seria o ditado para o chip Bristlecone de 72 bits do Google. Você pode escrever o ditado como uma compreensão. Mesma pergunta para o chip de 19 qubit de Rigetti.
bristlecone
rigetti
cirq
rrtucci
fonte
fonte
Respostas:
A operação nativa do Bristlecone é a CZ, não os CNOTs. No entanto, você pode se transformar entre os dois com portões Hadamard, então essa é uma diferença trivial.
O Bristlecone pode executar uma CZ entre qualquer par adjacente de qubits em uma grade. Você pode ver a grade instalando cirq e imprimindo o dispositivo Bristlecone:
Aqui está como você pode obter um conjunto contendo as operações CZ permitidas:
O conjunto possui 121 elementos, e é algo aleatório se você obtém CZ (x, y) ou CZ (y, x) no conjunto, então não incluirei uma impressão do conjunto aqui.
Uma restrição adicional a ter em mente é que você não pode executar duas CZs uma ao lado da outra ao mesmo tempo. O Cirq leva isso em consideração ao criar circuitos direcionados ao Bristlecone. Por exemplo:
As duas primeiras operações foram escalonadas porque são CZs adjacentes, mas as duas últimas não foram porque não são.
fonte
No post original do blog que apresenta o chip quântico Bristlecone, eis o mapa de conectividade do chip:
Aviso : a expressão acima não foi verificada completamente. Parece funcionar para os primeiros qubits, me parece lógico, mas cabe a você verificar se o mapa está 100% correto.
Aviso 2 : a postagem do blog do Google não fala sobre a orientação das conexões entre os qubits. O mapa de conectividade fornecido acima assume que as conexões são bilaterais.
fonte
A versão atual do PyQuil fornece um objeto "ISA" que hospeda as informações que você deseja sobre os processadores quânticos de Rigetti, mas não é formatado conforme solicitado. Sou um péssimo programador de Python, então você terá que desculpar minha não-Pythonic-ness - mas aqui está um trecho que fará uma
device_name
reformatação do pyQuil ISA em um de seus dicionários:Como no caso do Google, o gate nativo de dois qubit normalmente disponível em um processador quântico Rigetti é a
CZ
, que (1) é bidirecional (†) no sentidoCZ q0 q1
igual aoCZ q1 q0
e (2) é facilmente convertido em qualquer um dosCNOT
s imprensando o alvo com portões Hadamard.† - A implementação física de um
CZ
portão em uma arquitetura supercondutora é entregue, e é por isso que você frequentemente vê descrições de arquitetura incluídas,CZ q0 q1
mas nãoCZ q1 q0
. É uma abreviação para a qual o qubit está participando da metade da interação física, mesmo que o resultado (ignorando os efeitos do ruído) seja o mesmo em qualquer um dos pedidos.fonte