IBM Compositor Quântico
O que é isso?
IBM O Quantum® Composer é uma ferramenta gráfica de programação quântica que permite arrastar e soltar operações para criar circuitos quânticos e executá-los em hardware quântico.
O que ele pode fazer?
Visualizar estados de qubit
Veja como as alterações em seu circuito afetam o estado dos qubits, mostrado como uma esfera q interativa, ou histogramas que mostram as probabilidades de medição ou simulações de vetores de estado.
Executar em hardware quântico
Execute seus circuitos em hardware quântico real para entender os efeitos do ruído do dispositivo.
Gerar código automaticamente
Em vez de escrever o código manualmente, gere automaticamente o código OpenQASM ou Python que se comporta da mesma forma que o circuito que você criou com o Composer.
Visita guiada pela interface
IBM O Quantum Composer tem um conjunto personalizável de ferramentas que permite criar, visualizar e executar circuitos quânticos em unidades de processamento quântico (QPUs). Use o menu "More options" (Mais opções) em cada janela para acessar ferramentas e ações adicionais.
-
Catálogo de operações - Esses são os blocos de construção dos circuitos quânticos. Arraste e solte essas portas e outras operações no editor de circuitos gráficos. Os diferentes tipos de portões são agrupados por cor. Por exemplo, as portas clássicas são azuis escuras, as portas de fase são azuis claras e as operações não unitárias são cinzas.
Para saber mais sobre as portas e operações disponíveis, clique com o botão direito do mouse em uma operação e selecione Info para ler sua definição.
-
Editor de código - Use o menu View (Exibir) para abrir ou fechar o editor de código, que permite visualizar o código do circuito no site OpenQASM ou no Qiskit. Você pode editar o código OpenQASM; o código Qiskit é somente leitura.
-
Editor de circuito gráfico - É aqui que você constrói um circuito. Arraste as portas e outras operações para os "fios" horizontais do qubit que formam o seu registro quântico.
Para remover uma porta de um cabo, selecione a porta e clique no ícone da lixeira.
Para editar os parâmetros e as configurações em portas que suportam edição, selecione a porta no editor gráfico e clique em Edit (Editar).
-
Barra de ferramentas - Acesse as ferramentas usadas com frequência para desfazer e refazer ações, alterar o alinhamento da porta e alternar para o modo de inspeção. Com o modo de inspeção, você tem uma visão passo a passo dos estados do qubit à medida que a computação do circuito evolui. Para saber mais, consulte Inspecionar seu circuito, passo a passo.
-
Discos de fase - A fase do vetor de estado do qubit no plano complexo é dada pela linha que se estende do centro do diagrama até a borda do disco cinza (que gira no sentido anti-horário em torno do ponto central).
Use o menu View (Exibir) para mostrar ou ocultar os discos de fase.
-
Visualizações - As visualizações caracterizam seu circuito à medida que você o constrói. Eles usam um simulador de vetor de estado de disparo único, que é diferente do QPU especificado nas configurações de "Executar circuito". Observe que as visualizações ignoram todas as operações de medição que você adicionar. Faça login e clique em Run circuit para obter resultados do backend especificado.
Saiba mais na seção Visualizações.
Crie, edite e inspecione circuitos quânticos
Se quiser continuar a trabalhar com um circuito posteriormente, certifique-se de fazer o download do arquivo do circuito e armazená-lo localmente antes de sair da sessão atual do Composer. Use o link "Save file" (Salvar arquivo) no canto superior direito ou acesse o menu File (Arquivo) e escolha "Save file" (Salvar arquivo). Quando estiver pronto para trabalhar com o circuito novamente, vá ao menu File (Arquivo) e escolha "Upload.qasm file" (Carregar arquivo.qasm), navegue até o arquivo do circuito na unidade local e clique em Open (Abrir).
1. Abra IBM Quantum Composer
- (Opcional) Se você não estiver conectado no momento ao IBM Quantum, selecione Sign in (Entrar) no canto superior direito. Em seguida, você pode fazer login ou criar uma conta no site IBM Cloud.
Se você não fizer login, as visualizações mostrarão automaticamente os resultados simulados para até quatro qubits. Se quiser executar seu circuito em um computador quântico ou se quiser visualizar um circuito que tenha mais de quatro qubits, você deverá fazer login.
-
Abra o IBM Quantum Composer clicando no link na navegação da página de aprendizado. O espaço de trabalho exibe um circuito vazio sem título. Você pode criar um novo circuito ou carregar um arquivo.qasm para continuar trabalhando com um circuito que já tenha criado.
-
Dê um nome ao seu circuito clicando nas palavras Untitled circuit (Circuito sem título ) e digitando um nome para o circuito. Clique na marca de seleção para salvar o nome.
-
(Opcional) Personalize seu espaço de trabalho:
- Use o menu Exibir para mudar do tema padrão para um tema monocromático. Você também pode selecionar os painéis a serem incluídos no seu espaço de trabalho e, em seguida, usar o menu no canto direito de qualquer painel para acessar as opções para personalização adicional. As opções para mostrar ou ocultar os discos de fase, escolher o alinhamento dos qubits em seu circuito e redefinir o espaço de trabalho para o padrão também estão no menu View.
- Alterne entre os temas escuro e claro do espaço de trabalho no canto inferior direito do rodapé.
Para construir um circuito, você pode arrastar e soltar operações ou inserir o código OpenQASM no editor de código.
2. Construa seu circuito com o recurso arrastar e soltar
Catálogo de operações
Arraste e solte operações do catálogo de operações para os registros quântico e clássico. Clique no ícone de pesquisa e digite um termo na barra de pesquisa para encontrar rapidamente uma operação.
Recolha e expanda o catálogo de operações clicando no ícone no canto superior direito do painel de operações. Clique no ícone ao lado dele para alternar entre a exibição em grade e em lista do catálogo.
Clique com o botão direito do mouse em um ícone de operação e selecione Info para visualizar a definição de uma operação, juntamente com sua referência QASM.
Para desfazer ou refazer, use as setas curvas na barra de ferramentas.
Alinhamento
Escolha o alinhamento de forma livre para colocar as operações em qualquer lugar do circuito. Para obter uma visualização mais compacta de seu circuito, escolha o alinhamento à esquerda. Para ver a ordem em que as operações serão executadas, selecione Alinhamento de camadas, que aplicará o alinhamento à esquerda e adicionará delineadores de coluna que indicam a ordem de execução, da esquerda para a direita e de cima para baixo.
Depois que as operações forem colocadas em seu circuito, você poderá continuar a arrastá-las e soltá-las em novas posições.
Copiar
e colar
Clique em uma operação e use os ícones no menu contextual para copiá-la e colá-la.
Selecione várias operações
É possível selecionar várias operações para copiá-las e colá-las, arrastá-las para um novo local ou agrupá-las em uma operação unitária personalizada que é exibida no catálogo de operações e funciona como uma única porta.
Para selecionar mais de uma operação, posicione o cursor fora de uma das operações e, em seguida, clique e arraste pela área a ser selecionada. Clique com a tecla Shift pressionada em operações individuais para selecioná-las ou desmarcá-las. Uma linha tracejada delineia o conjunto de operações que você está selecionando, e cada operação que faz parte da seleção é delineada em azul.
Por exemplo, na imagem a seguir, a porta Hadamard em q1 e a porta CX estão selecionadas. A porta Hadamard em q0 não está selecionada.
Selecione Copiar no menu contextual para copiar o grupo.
Para colar o grupo de operações, clique com o botão direito do mouse no circuito e selecione Colar.
Crie uma operação personalizada usando o recurso de grupo
Para agrupar várias operações e salvá-las como uma operação personalizada, primeiro selecione as operações conforme descrito acima e, em seguida, selecione Group (Agrupar) no menu contextual. Você é solicitado a nomear a operação personalizada ou pode aceitar o nome padrão. Clique em OK, e a operação personalizada será representada por uma única caixa, tanto em seu circuito quanto no catálogo de operações.
Agora você pode arrastar e soltar a nova operação em seu circuito. Observe que a operação é salva nesse circuito, mas não aparece no catálogo de operações de outros circuitos.
Você também pode criar uma operação personalizada diretamente no editor de código OpenQASM; consulte Criar uma operação personalizada em OpenQASM para obter mais informações.
Desagrupar uma operação personalizada ou predefinida
Para desagrupar as portas em uma operação personalizada ou predefinida, clique na operação no Composer e selecione Ungroup (Desagrupar) no menu contextual. Agora você pode mover as operações separadas individualmente. Quando você desagrupa uma operação, cada elemento do antigo grupo é executado de forma independente, o que pode significar que eles são executados em uma ordem diferente daquela em que estavam agrupados.
Expandir a definição de uma operação
Para visualizar as operações que constituem uma operação personalizada ou predefinida sem desagrupá-las, clique em Expandir definição no menu contextual para ver as portas de definição. Clique no ícone novamente para recolher a definição.
Renomear ou excluir uma operação personalizada
Para renomear ou excluir uma operação personalizada, clique com o botão direito do mouse na operação no catálogo de operações e selecione Renomear ou Excluir. A exclusão de uma operação personalizada do catálogo de operações também exclui todas as instâncias dela em seu circuito.
A exclusão de uma operação personalizada do próprio circuito não a exclui do catálogo de operações; você só pode excluir uma operação personalizada do catálogo clicando com o botão direito do mouse e selecionando Excluir.
Adicionar ou remover registros
Para adicionar ou remover registros quânticos ou clássicos, clique em Edit → Manage registers (Editar → Gerenciar registros). Você pode aumentar ou diminuir o número de qubits ou bits no seu circuito e renomear os registros. Clique em Ok para aplicar as alterações. Também é possível simplesmente clicar no nome do registro (por exemplo, q[0]) e usar as opções do menu contextual para adicionar ou excluir rapidamente registros ou qubits.
Adicionar uma condição
Para adicionar uma condicional a um portão, arraste a operação if para o portão e defina os parâmetros no painel Editar operação que é aberto automaticamente. Também é possível clicar duas vezes em uma porta para acessar o painel Editar operação e definir os parâmetros condicionais dessa forma.
Adicione um modificador de controle
Um modificador de controle produz uma porta cuja operação original agora depende do estado do qubit de controle. Para obter mais detalhes, clique com o botão direito do mouse no símbolo do modificador de controle no catálogo de operações e clique em Info.
Arraste o modificador de controle para uma porta a fim de adicionar um controle a ela. Um ponto aparece no qubit de controle e uma linha o conecta ao qubit de destino. Para editar qual qubit é o controle ou o alvo, clique na porta e selecione o ícone Editar operação (ou clique duas vezes na porta) para abrir o painel Editar operação e, em seguida, especifique seus parâmetros. No painel Editar operação, você também pode remover um controle de um qubit clicando no x ao lado do nome do qubit.
Visualize com discos de fase em todo o seu circuito
Para visualizar o estado de todos os qubits em qualquer ponto do circuito, arraste o ícone do disco de fase do catálogo de operações e coloque-o em qualquer lugar do circuito. Uma coluna de operações de barreira e uma coluna de discos de fase são adicionadas (uma operação de barreira e um disco de fase por qubit). Passe o mouse sobre cada disco de fase para ler o estado do qubit naquele ponto do circuito. Observe que adicionar os discos de fase não altera seu circuito; eles são apenas uma ferramenta de visualização.
Leia mais sobre a visualização do disco de fase.
Exportar uma imagem do circuito
Para exportar uma imagem de seu circuito, selecione File → Export circuit image. A janela Opções de exportação é aberta, onde você pode escolher um tema (claro, escuro, branco sobre preto ou preto sobre branco), um formato (.svg ou.png) e se deseja aplicar uma quebra de linha. Depois de escolher suas opções, clique em Exportar.
3. Construa seu circuito com um código d OpenQASM
IBM Atualmente, o Quantum Composer é compatível com o site OpenQASM 2.0.
- Para abrir o editor de código, clique em View → Panels → Code Editor.
- Consulte o glossário de operações do Composer para ver OpenQASM referências a gates e outras operações.
- Você pode definir suas próprias operações personalizadas; consulte Criar uma operação personalizada em OpenQASM.
- Para obter mais informações sobre o uso da linguagem OpenQASM, incluindo exemplos de linhas de código, consulte o guia Introduction to OpenQASM ou leia o artigo de pesquisa original, Open Quantum Assembly Language. A tabela de declarações no idioma OpenQASM do documento é reproduzida abaixo. A gramática do site OpenQASM pode ser encontrada no Apêndice A do documento.
| Declaração | Descrição | Exemplo |
|---|---|---|
OPENQASM 2.0; | Indica um arquivo no formato OpenQASM (consulte [a] ) | OPENQASM 2.0; |
qreg [namesize]; | Declare um registro nomeado de qubits | qreg [q5]; |
creg [namesize]; | Declare um registro nomeado de bits | creg [c5]; |
incluir "nome de arquivo"; | Abrir e analisar outro arquivo de origem | incluir “qelib1.inc”; |
gate name(params) qargs | Declarar uma porta unitária | (veja o texto do artigo) |
opaque name(params) qargs; | Declarar uma porta opaca | (veja o texto do artigo) |
// texto do comentário | Comentar uma linha de texto | // oops! |
U(theta,phi,lambda) qubit|qreg; | Aplicar porta(s) de um único qubit incorporada(s) (veja [b] ) | U( pi/2,2*pi/3,0) [q0]; |
CX qubit|qreg,qubit|qreg; | Aplicar porta(s) CNOT integrada(s) | CX [q0], [q1]; |
medir qubit|qreg -> bit|creg; | Faça medições em basis | medida q -> c; |
reset qubit|qreg; | Preparar qubit(s) em | reiniciar [q0]; |
gatename(params) qargs; | Aplicar uma porta unitária definida pelo usuário | crz( pi/2 ) [q1], [q0]; |
if(creg==int) qop; | Aplicar condicionalmente a operação quântica | if( c==5 ) CX [q0], [q1]; |
barreira qargs; | Impedir transformações nessa linha de origem | barreira [q0], [q1]; |
[a] Isso deve aparecer como a primeira linha sem comentários do arquivo.
[b] Os parâmetros theta, phi e lambda são dados por expressões de parâmetros; para obter mais informações, consulte a página 5 do documento e o Apêndice A.
Crie uma operação personalizada em OpenQASM
Você pode definir novas operações unitárias no editor de código (veja um exemplo na figura abaixo). As operações são aplicadas usando a instrução name(params) qargs; , assim como as operações incorporadas. Os parênteses são opcionais se não houver parâmetros.
Para definir uma operação personalizada, insira-a no editor de código OpenQASM usando este formato: gatename(params) qargs;. Se você clicar em +Add na lista de operações, será solicitado a digitar um nome para a operação personalizada, que poderá ser criada no editor de código.
Depois de definir sua operação personalizada, arraste-a para o editor gráfico e use o ícone de edição para ajustar os parâmetros.
Exemplo de uma operação personalizada | |
|---|---|
| As portas a serem incluídas na operação personalizada: | ![]() |
| O código da nova operação: | ![]() |
| A nova operação no editor gráfico: | ![]() |
4. Inspecione seu circuito, passo a passo
O modo Inspecionar desmistifica o funcionamento interno dos circuitos que você cria. Ele percorre uma simulação do seu circuito, uma camada de cada vez, para que você possa ver o estado dos qubits à medida que a computação evolui.
-
No menu View, selecione os painéis para as visualizações que você deseja usar.
-
Clique no botão de alternância Inspecionar na barra de ferramentas. Observe que, quando o modo Inspect é ativado, não é possível adicionar mais operações até que ele seja desativado novamente.
-
Se você construiu seu circuito com o alinhamento Freeform ativado, observe que o modo Inspecionar ativa automaticamente o alinhamento Left.
-
Para percorrer passo a passo as visualizações dos componentes de seu circuito, use os botões de avançar e retroceder.

-
Para inspecionar apenas algumas operações, clique nas operações que deseja inspecionar, e uma sobreposição colorida aparecerá sobre cada uma delas, indicando que serão incluídas quando você executar no modo Inspecionar. Para cancelar a seleção de uma operação, clique nela novamente e a sobreposição desaparecerá.
-
Para saber mais sobre como interpretar visualizações, consulte o tópico Visualizações.
-
Para sair do modo Inspecionar e voltar a editar o circuito, clique no botão de alternância Inspecionar na barra de ferramentas.
O simulador cria aleatoriedade ao gerar resultados com base em uma semente. A semente é o valor inicial introduzido no algoritmo que gera números pseudo-aleatórios. Você pode ver o número da semente selecionando "Visualizations seed" (Visualizações de semente) no menu Edit (Editar). Você também pode definir a semente por conta própria, alterando o valor na caixa.
Execute circuitos e visualize os resultados
Siga as etapas abaixo para executar circuitos quânticos em QPUs e visualizar os resultados.
Escolha suas configurações de trabalho
Clique em Run circuit (Executar circuito ) no canto superior direito. Na janela que se abre, selecione uma QPU disponível. Você também pode escolher uma instância associada a um plano (como os planos Open, Flex ou Premium). A instância escolhida afeta quais QPUs estão disponíveis para você. Clique no link "Exibir detalhes" na tabela de QPUs para ver mais informações sobre cada QPU.
Em seguida, você pode definir o número de disparos (execuções) do seu circuito que o backend realizará.
Opcionalmente, você também pode nomear o trabalho e adicionar tags nesse painel. Isso não alterará o nome do circuito. Uma tag "Composer" pré-preenchida facilita a filtragem da tabela de cargas de trabalho por trabalhos do Composer. Você pode remover essa tag.
Quando você executa um circuito, ele é enviado automaticamente para a QPU menos ocupada, a menos que você especifique uma QPU nas configurações de Execução. Se você executar o mesmo circuito novamente, a janela de seleção da QPU terá como padrão a escolha anterior.
Clique em “Executar em (nome da QPU)”
Você pode visualizar o progresso do trabalho clicando no botão "View jobs" (Exibir trabalhos) no canto superior direito, o que abrirá a página Workloads (Cargas de trabalho) no IBM Quantum Platform.
Visualizar resultados
Quando o trabalho for concluído, os detalhes serão atualizados na tabela Workloads (Cargas de trabalho) em IBM Quantum Platform.
A página de resultados dos trabalhos exibe detalhes da execução, diagramas do circuito original e do circuito transpilado, um histograma dos resultados e as guias OpenQASM e Qiskit para visualizar os circuitos originais e transpilados em OpenQASM ou Qiskit.
Você pode fazer o download dos circuitos e do histograma clicando no menu no canto superior direito de cada diagrama e, em seguida, selecionando um formato para o download (PNG, PDF ou SVG; além disso, você pode exportar o histograma como um arquivo CSV). Você pode abrir os circuitos do OpenQASM diretamente no Composer.
Visualizações
As visualizações ao vivo no IBM Quantum Composer mostram diferentes visões de como os circuitos quânticos afetam o estado de uma coleção de qubits. Cada tipo de visualização ao vivo é explicado em detalhes a seguir.
As visualizações ao vivo vêm de um simulador de vetor de estado de disparo único, que é diferente do QPU especificado nas configurações de execução, que pode ter vários disparos. O simulador cria aleatoriedade ao gerar resultados com base em uma semente. A semente é o valor inicial introduzido no algoritmo que gera números pseudo-aleatórios. Você pode ver o número da semente selecionando "Visualizations seed" (Visualizações de semente) no menu Edit (Editar). Você também pode definir a semente por conta própria, alterando o valor na caixa.
Ver visualizações
As visualizações ao vivo são mostradas em janelas na parte inferior do espaço de trabalho do Composer (exceto o disco de fase, que aparece no final de cada fio de qubit). Você pode escolher qualquer combinação de visualizações de vetor de estado, probabilidades e q-sphere para aparecer na parte inferior do espaço de trabalho. Selecione ou desmarque visualizações no menu Exibir.
Baixar visualizações
Faça o download de uma das visualizações na parte inferior do espaço de trabalho do Composer clicando no menu "More options" (Mais opções) na janela de visualização. Você pode fazer o download de visualizações como SVG, PNG ou CSV dos dados subjacentes. Você também pode fazer o download das imagens de visualização das probabilidades de medição e dos histogramas de vetores de estado como um PDF.
Disco de fase
Um estado de um único qubit pode ser representado como
em que é a probabilidade de que o qubit esteja no estado e é a fase quântica. é fortemente análogo a um bit probabilístico clássico. Para , o qubit está no estado , para o qubit está no estado e para o qubit é uma mistura 50/50. Chamamos isso de superposição, pois, diferentemente dos bits clássicos, essa mistura pode ter uma fase quântica. O disco de fase visualiza esse estado.
O disco de fase na extremidade de cada qubit no IBM Quantum Composer fornece o estado local de cada qubit no final do cálculo. Os componentes do disco de fase são descritos abaixo.
Probabilidade de o qubit estar no estado
A probabilidade de o qubit estar no estado é representada pelo preenchimento do disco azul.
Fase quântica
A fase quântica do estado do qubit é dada pela linha que se estende do centro do diagrama até a borda do disco cinza (que gira no sentido anti-horário em torno do ponto central).
Exemplo: discos de fase para dois qubits diferentes
Dois exemplos de visualização do disco de fase. O primeiro exemplo é um estado e o segundo mostra o estado com uma fase relativa diferente de zero.
Conexão com a esfera de Bloch
O disco de fase, que contém todas as informações na esfera de Bloch, é uma representação bidimensional de um qubit. Para converter para a representação da esfera de Bloch: , , e .
Estados de N qubit: máximo de 15 qubits
Um estado quântico N-qubit tem a forma
em que é a probabilidade de que os qubits estejam no estado com fase quântica em relação ao estado . é a probabilidade de que os qubits não estejam no estado fundamental . Aqui é simples ver que, para um estado quântico N-qubit, há probabilidades e fases. O disco de fase não consegue representar esse estado, pois os discos de fase de N qubit conteriam apenas probabilidades e fases; isso ocorre porque a maioria dos estados está emaranhada e não é separável em estados quânticos independentes de um único qubit. Para representar que as informações completas não estão contidas nessa visualização, introduzimos a pureza reduzida como um componente no disco de fase.
Redução da pureza do estado do qubit
O raio do anel preto no disco de fase representa a pureza reduzida do estado do qubit, que, para o qubit em um estado de -qubit , é dada por . A pureza reduzida para um único qubit está na faixa de ; um valor igual a um indica que o qubit não está entrelaçado com nenhum outro. Em contrapartida, uma pureza reduzida de indica que o qubit permanece no estado completamente misturado e apresenta algum grau de entrelaçamento com os qubits restantes , e possivelmente até mesmo com o ambiente.
Visão das probabilidades
limite de 8 qubits
Essa exibição visualiza as probabilidades do estado quântico como um gráfico de barras. O eixo horizontal rotula os estados da base computacional. O eixo vertical mede as probabilidades em termos de porcentagens. Nessa visão, as fases quânticas não são representadas e, portanto, é uma representação incompleta. No entanto, é útil para prever os resultados se cada qubit for medido e o valor armazenado em seu próprio bit clássico.
Considere o seguinte circuito quântico e sua visualização de probabilidades:
O circuito coloca os dois qubits no estado . Os estados da base computacional são e . As probabilidades para cada um dos estados computacionais são de 1/4.
Visão da esfera Q
limite de 5 qubits
A q-esfera representa o estado de um sistema de um ou mais qubits associando cada estado da base computacional a um ponto na superfície de uma esfera. Um nó é visível em cada ponto. O raio de cada nó é proporcional à probabilidade ( ) de seu estado básico, enquanto a cor do nó indica a fase quântica ( ).
Os nós são dispostos na esfera q de modo que o estado da base com todos os zeros (por exemplo, ) esteja em seu polo norte, e o estado da base com todos os uns (por exemplo, ) esteja em seu polo sul. Os estados da base com o mesmo número de zeros (ou uns) estão em uma latitude compartilhada da esfera q (por exemplo, ). Começando no polo norte da q-esfera e progredindo para o sul, cada latitude sucessiva tem estados de base com um número maior de uns; a latitude de um estado de base é determinada por sua distância de Hamming do estado zero. A q-esfera contém informações completas sobre o estado quântico em uma representação compacta.
Considere o seguinte circuito quântico e sua esfera q, que representa o estado que o circuito cria:

Você pode selecionar, manter pressionado e arrastar para girar a q-esfera. Para retornar a q-sphere à sua orientação padrão, selecione o botão de seta de retrocesso no canto superior direito da q-sphere.
É importante destacar que a q-esfera não é igual à esfera de Bloch, mesmo para um único qubit. De fato, assim como o disco de fase, a esfera de Bloch oferece uma visão local do estado quântico, em que cada qubit é visto isoladamente. Ao tentar entender como os registros de qubits (estados de vários qubits) se comportam com a aplicação de circuitos quânticos, é mais perspicaz ter uma visão global e analisar o estado quântico em sua totalidade. A q-esfera fornece uma representação visual do estado quântico e, portanto, esse ponto de vista global. Portanto, ao explorar aplicativos e algoritmos quânticos em pequenos números de qubits, a q-sphere deve ser o principal método de visualização.
Visão do vetor de estado
limite de 6 qubits
É comum chamar de amplitude quântica. Essa exibição visualiza as amplitudes quânticas como um gráfico de barras. O eixo horizontal rotula os estados da base computacional. O eixo vertical mede a magnitude das amplitudes ( ) associadas a cada estado da base computacional. A cor de cada barra representa a fase quântica ( ).
Considere o seguinte circuito quântico e sua visualização de vetor de estado:
O circuito coloca os dois qubits no estado . Os estados da base computacional são , , e . As magnitudes das amplitudes são , e as fases quânticas com relação ao estado fundamental são para e , e para .
Glossário de operações do Composer
Esta página é uma referência que define as várias operações clássicas e quânticas que você pode usar para manipular qubits em um circuito quântico. As operações quânticas incluem portas quânticas, como a porta Hadamard, bem como operações que não são portas quânticas, como a operação de medição.
Cada entrada abaixo fornece detalhes e a referência OpenQASM para cada operação. Consulte o tópico Construa seu circuito com o código OpenQASM para obter mais informações.
A imagem da esfera q em cada entrada de porta abaixo mostra o estado depois que a porta opera no estado de superposição igual inicial , em que é o número de qubits necessários para suportar a porta. Consulte o tópico q-sphere para obter mais informações sobre essa visualização.
Você pode definir uma operação personalizada para usar no IBM Quantum Composer. Para obter instruções, consulte o tópico Criar uma operação personalizada em OpenQASM.
As cores dos portões são ligeiramente diferentes nos temas claros e escuros. As cores do tema de luz são mostradas aqui.
Clique em uma operação quântica abaixo para ver sua definição.
Portões clássicos
Porta NOT
A porta NOT, também conhecida como porta Pauli X, inverte o estado para e vice-versa. A porta NOT é equivalente a RX para o ângulo ou para 'HZH'.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
![]() | x q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Portão CNOT
A porta controlled-NOT, também conhecida como porta controlled-x (CX), atua em um par de qubits, com um atuando como "controle" e o outro como "alvo". Ele executa um NOT no alvo sempre que o controle está no estado . Se o qubit de controle estiver em uma superposição, essa porta criará emaranhamento.
Todos os circuitos unitários podem ser decompostos em portas de qubit único e portas CNOT. Como a porta CNOT de dois qubits custa muito mais tempo para ser executada no hardware real do que as portas de um único qubit, o custo do circuito às vezes é medido pelo número de portas CNOT.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
cx q[0], q[1]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Portão Toffoli
A porta Toffoli, também conhecida como porta dupla controlada-NOT (CCX), tem dois qubits de controle e um alvo. Aplica um NOT ao alvo somente quando ambos os controles estão no estado .
A porta Toffoli com a porta Hadamard é um conjunto de portas universal para a computação quântica.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
![]() | ccx q[0], q[1], q[2]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Porta SWAP
A porta SWAP troca os estados de dois qubits.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
![]() | swap q[0], q[1]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Portão de identidade
O portão de identidade (às vezes chamado de Id ou I gate) é, na verdade, a ausência de um portão. Ele garante que nada seja aplicado a um qubit por uma unidade de tempo de porta.
Referência do compositor | Referência QASM |
|---|---|
![]() | id q[0]; |
Portas de fase
Portão T
A porta T é equivalente a RZ para o ângulo . Os computadores quânticos tolerantes a falhas compilarão todos os programas quânticos apenas com a porta T e seu inverso, bem como com as portas Clifford.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
t q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Portão S
A porta S aplica uma fase de ao estado . É equivalente a RZ para o ângulo . Observe que S=P( ).
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
s q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Portão Z
A porta Pauli Z atua como identidade no estado e multiplica o sinal do estado por -1. Portanto, ele inverte os estados e . Na base +/-, ele desempenha a mesma função que a porta NOT na base / .
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
z q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
portão
Também conhecido como Tdg ou T-dagger gate.
O inverso da porta T.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
tdg q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
portão
Também conhecido como Sdg ou S-dagger gate.
O inverso da porta S.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
sdg q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Porta de fase
A porta Phase (anteriormente chamada de porta U1 ) aplica uma fase de ao estado . Para determinados valores de , ele é equivalente a outros portões. Por exemplo, P( )=Z, P( / )=S e P( )=T. Até uma fase global de , é equivalente a RZ( ).
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
p(theta) q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
No IBM Quantum Composer, o valor padrão para theta é .
Porta RZ
A porta RZ implementa . Na esfera de Bloch, essa porta corresponde à rotação do estado do qubit em torno do eixo z em um determinado ângulo.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
![]() | rz(angle) q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
No IBM Quantum Composer, o valor padrão para angle é . Portanto, esse é o ângulo usado na visualização da q-sphere.
Operadores e modificadores não unitários
Redefinir operação
A operação de redefinição retorna um qubit ao estado , independentemente de seu estado antes de a operação ser aplicada. Não se trata de uma operação reversível.
Referência do compositor | OpenQASM referência |
|---|---|
reset q[0]; |
Medição
Medição na base padrão, também conhecida como base z ou base computacional. Pode ser usado para implementar qualquer tipo de medição quando combinado com portas. Não se trata de uma operação reversível.
Referência do compositor | OpenQASM referência |
|---|---|
measure q[0]; |
Modificador de controle
Um modificador de controle produz uma porta cuja operação original agora depende do estado do qubit de controle. Quando o controle está no estado , o(s) qubit(s) de destino passa(m) pela evolução unitária especificada. Por outro lado, nenhuma operação é executada se o controle estiver no estado . Se o controle estiver em um estado de superposição, a operação resultante decorre da linearidade.
Arraste o modificador de controle para uma porta a fim de adicionar um controle a ela. Aparecerão pontos acima e abaixo do portão, nos fios do qubit que podem ser alvos de controle; clique em um ou mais pontos para atribuir o alvo a um ou mais qubits. Também é possível atribuir um controle clicando com o botão direito do mouse em uma porta.
Para remover um controle, clique com o botão direito do mouse no portão e selecione a opção para remover o controle.
Referência do compositor | OpenQASM referência |
|---|---|
c |
Operação da barreira
Para tornar seu programa quântico mais eficiente, o compilador tentará combinar portas. A barreira é uma instrução ao compilador para impedir que essas combinações sejam feitas. Além disso, ele é útil para visualizações.
Referência do compositor | OpenQASM referência |
|---|---|
![]() | barrier q; |
Porta Hadamard
Portão H
A porta H, ou Hadamard, gira os estados e para e , respectivamente. É útil para fazer superposições. Se você tiver um conjunto de portas universal em um computador clássico e adicionar a porta Hadamard, ele se tornará um conjunto de portas universal em um computador quântico.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
h q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Portas quânticas
portão
Também conhecido como porta NOT de raiz quadrada.
Essa porta implementa a raiz quadrada de X, . A aplicação dessa porta duas vezes seguidas produz a porta Pauli-X padrão (porta NOT). Assim como a porta Hadamard, o cria um estado de superposição igual se o qubit estiver no estado , mas com uma fase relativa diferente. Em alguns hardwares, é uma porta nativa que pode ser implementada com um pulso ou X90.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
![]() | sx q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
portão
Também conhecido como SXdg ou porta NOT-dagger de raiz quadrada.
Esse é o inverso da porta . Aplicá-lo duas vezes seguidas produz a porta Pauli-X (porta NOT), já que a porta NOT é seu próprio inverso. Assim como a porta , essa porta pode ser usada para criar um estado de superposição igual e também é implementada nativamente em alguns hardwares usando um pulso X90.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
![]() | sxdg q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Portão Y
A porta Y de Pauli é equivalente a Ry para o ângulo . É equivalente a aplicar X e Z, até um fator de fase global.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
y q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
Porta RX
A porta RX implementa . Na esfera de Bloch, essa porta corresponde à rotação do estado do qubit em torno do eixo x pelo ângulo determinado.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
rx(angle) q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
No IBM Quantum Composer, o valor padrão para angle é . Portanto, esse é o ângulo usado na visualização da q-sphere.
Portão RY
A porta RY implementa . Na esfera de Bloch, essa porta corresponde à rotação do estado do qubit em torno do eixo y pelo ângulo determinado e não introduz amplitudes complexas.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
ry(angle) q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
No IBM Quantum Composer, o valor padrão para angle é . Portanto, esse é o ângulo usado na visualização da q-esfera abaixo.
Portão RXX
A porta RXX implementa . A porta Mølmer-Sørensen, a porta nativa em sistemas de armadilha de íons, pode ser expressa como uma soma de portas RXX.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
rxx(angle) q[0], q[1]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
No IBM Quantum Composer, o valor padrão para angle é .
Portão RZZ
A porta RZZ requer um único parâmetro: um ângulo expresso em radianos. Essa porta é simétrica; trocar os dois qubits em que ela atua não muda nada.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
rzz(angle) q[0], q[1]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
No IBM Quantum Composer, o valor padrão para angle é .
Portão em U
(Anteriormente chamado de U3 gate) Os três parâmetros permitem a construção de qualquer porta de um único qubit. Tem a duração de uma unidade de tempo do portão.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
u(theta, phi, lam) q[0]; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
No IBM Quantum Composer, o valor padrão para angle é .
Portão RCCX
O portão Toffoli simplificado, também conhecido como portão Margolus.
A porta de Toffoli simplificada implementa a porta de Toffoli até as fases relativas. Essa implementação requer três portas CX, que é a quantidade mínima possível, conforme mostrado em https://arxiv.org/abs/quant-ph/0312225. Observe que o Toffoli simplificado não é equivalente ao Toffoli, mas pode ser usado em locais onde a porta Toffoli não é computada novamente.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
![]() | rccx a, b, c; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |
RC3X portão
A porta Toffoli simplificada com 3 controles.
A porta de Toffoli simplificada implementa a porta de Toffoli até as fases relativas. Observe que o Toffoli simplificado não é equivalente ao Toffoli, mas pode ser usado em locais onde a porta Toffoli não é computada novamente.
Referência do compositor | OpenQASM referência | Q-sphere | Observação sobre representações de q-esferas |
|---|---|---|---|
![]() | rc3x a, b, c, d; | ![]() | A representação da esfera q mostra o estado depois que a porta opera no estado de superposição igual inicial onde é o número de qubits necessários para suportar a porta. |


































