Crie e visualize circuitos com o circuit editor

O circuit editor é um recurso no Quantum Development Kit (QDK) que fornece uma interface gráfica onde você pode criar, editar e visualizar diagramas de circuitos quânticos dentro de seus Q# projetos. Você pode usar diretamente nos seus programas os circuitos que constrói como operações invocáveis.

Como aceder ao circuit editor

Para começar a usar o circuit editor, siga estas etapas:

  1. Crie um novo Q# projeto no VS Code ou abra um projeto existente.
  2. Crie um novo arquivo de circuito com a extensão .qsc.
  3. Abra o arquivo de circuito no VS Code.

O circuit editor é o modo de exibição padrão para .qsc arquivos.

circuit editor caraterísticas

Aqui está o que você pode fazer com o circuit editor:

Característica Modo de Utilização
Expandir o painel do visualizador de estado Clique em Visualização de Estado para expandir o painel do Visualizador de Estado e visualizar o estado quântico resultante da execução do circuito. O painel mostra a densidade de probabilidade e a fase para cada estado base. Pode usar o Toolbox para editar o circuito e visualizar as atualizações do quadro em direto.
Inserir um elemento de circuito Clique e arraste o elemento da caixa de ferramentas para o diagrama de circuito.
Remover um elemento de circuito Clique e arraste o elemento para fora do diagrama de circuito. Ou, clique com o botão direito do mouse no elemento e escolha Excluir no menu de contexto.
Mover um elemento de circuito Clique e arraste o elemento para um novo local no diagrama de circuito.
Copiar um elemento de circuito Mantenha pressionada a tecla Ctrl enquanto clica e arrasta o elemento para um novo local no diagrama de circuito.
Adicionar um qubit Coloque um elemento da caixa de ferramentas em um novo fio no diagrama do circuito. Ou mova um elemento existente para um novo fio no diagrama.
Remover um qubit Clique e arraste o ícone de qubit para fora do diagrama de circuito. O qubit mais baixo é automaticamente excluído quando você remove todos os elementos do circuito desse qubit.
Reorganizar a ordem do qubit Clique e arraste os ícones de qubit no diagrama de circuito.
Adicionar um controle a um portão Clique com o botão direito do mouse no ícone de porta, escolha Adicionar controle no menu de contexto e, em seguida, escolha o fio de qubit de controle.
Remover um controle de um portão Clique com o botão direito do rato no ícone da porta, escolha Remover Controlo no menu de contexto e, em seguida, selecione o ícone do controlo que pretende remover. Você também pode clicar com o botão direito do mouse no ícone de controle diretamente e escolher Remover controle ou arrastar o ícone de controle para fora do diagrama.
Converter um portão em seu adjunto Clique com o botão direito do mouse no ícone do portão e escolha Alternar Adjunto no menu de contexto.
Definir um argumento para um portão Quando você coloca um portão que requer um argumento, uma caixa de prompt aparece. Insira um número ou expressão na caixa de prompt. Para atualizar o argumento, clique com o botão direito do mouse no portão e escolha Editar argumento. Ou clique com o botão esquerdo do mouse no texto do argumento no ícone do portão.

Como usar circuit editor circuitos nos seus Q# projetos

Arquivos de circuito com a .qsc extensão definem operações que você pode referenciar a partir do Q# código dentro do mesmo Q# projeto. Os circuitos dos .qsc arquivos aparecem como qualquer outra Q# operação e são suportados pelo serviço de idioma Q# com recursos como conclusão, ajuda com assinaturas e definição de go-to.

O arquivo de circuito define um namespace que vem do nome do arquivo, semelhante a como Q# os arquivos funcionam. O circuito no seu arquivo .qsc define uma operação Q# que tem o mesmo nome que o seu arquivo nesse mesmo namespace. Por exemplo, para fazer referência a um circuito do arquivo Foo.qsc em seu Q# código, use a seguinte instrução import: import Foo.Foo;.

O programa a seguir Q# importa um circuito do arquivo JointMeasurement.qsce, em seguida, chama a JointMeasurement() operação para aplicar o circuito a um sistema de qubits.

    import JointMeasurement.JointMeasurement;

    operation Main() : Result[] {
        use qs = Qubit[4];
        ApplyToEach(H, qs[0..2]);
        let results = JointMeasurement(qs);
        ResetAll(qs);
        results
}