Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O avaliador de recursos do Microsoft Quantum faz parte do QDK (Microsoft Quantum Development Kit). Neste artigo, você aprenderá a instalar o avaliador de recursos quânticos e executar uma estimativa para um programa de Q# simples com um modelo de arquitetura padrão.
Aviso
O avaliador de recursos na extensão QDK para VS Code será preterido em breve. Use o qdk.qrePython módulo para executar a estimativa de recursos.
Pré-requisitos
Para seguir as etapas deste artigo, você precisa ter o seguinte instalado:
- A versão mais recente do Visual Studio Code (VS Code)
- A versão mais recente da extensão do QDK instalada no VS Code
- As versões mais recentes da extensão do Python e da extensão do Jupyter no VS Code
Instalar o avaliador de recursos quânticos
O avaliador de recursos está disponível por meio do qdk.qrePython módulo. Para usar o avaliador de recursos, instale a versão mais recente do qdkPython pacote com o qre extra:
pip install --upgrade "qdk[qre]"
Dica
Você não precisa ter uma conta Azure para usar o avaliador de recursos.
Executar uma estimativa de recurso simples com configurações padrão
Para executar uma estimativa básica de recursos, passe um modelo de aplicativo, um modelo de arquitetura de hardware e um modelo de correção de erro para o avaliador de recursos. Em seguida, execute o avaliador de recursos para obter os resultados. O exemplo a seguir executa o avaliador de recursos de Jupyter Notebook no VS Code.
Criar um modelo de aplicativo
Para este exemplo, use o algoritmo de modelo 1D Ising dos exemplos de Q# na extensão QDK VS Code. Ou use um dos programas Q# existentes.
Escrever um programa Q#
- No VS Code, crie um novo arquivo de texto e salve o arquivo como
ising-1d-sample.qs. - Na primeira linha do arquivo, insira o exemplo para abrir a lista de programas de exemplo de Q#.
- Escolha o exemplo de Modelo Ising (Simple 1D) e salve o arquivo.
Criar um aplicativo
Use o programa Q# para criar um modelo de aplicativo para o avaliador de recursos.
Para criar um novo arquivo Jupyter Notebook no VS Code, abra a Paleta de Comandos e insira Criar: Novo Jupyter Notebook.
Na primeira célula do notebook, avalie o programa Q#.
from pathlib import Path from qdk import qsharp qsharp.eval(Path("ising-1d-sample.qs").read_text(encoding="utf-8"))Esse código cria um
Mainobjeto noqdk.codenamespace que contém o programa Q#.Em uma nova célula, crie um aplicativo avaliador de recursos do programa Q#.
import qdk from qdk.qre.application import QSharpApplication app = QSharpApplication(qdk.code.Main)
Criar um modelo de arquitetura
Para a arquitetura de hardware, use o modelo padrão GateBased com o qual o avaliador de recursos vem. O GateBased modelo requer entradas para taxa de erro, hora do portão e tempo de medição.
Em uma nova célula, crie uma arquitetura baseada em portas lógicas com uma taxa de erro de $10^{-4}$, um tempo de porta de 100 ns e um tempo de medição de 500 ns.
from qdk.qre.models import GateBased
# Times are in units of nanoseconds
arch = GateBased(error_rate=1e-4, gate_time=100, measurement_time=500)
Executar uma estimativa
Para executar uma estimativa, use a estimate função e passe as seguintes entradas:
- Application
- Architecture
- Consulta do conjunto físico de instruções (ISA)
- Taxa máxima de erros
A consulta ISA informa ao avaliador de recursos quais combinações de código de correção de erro e protocolos de destilação de fábrica T serão avaliadas. O estimador de recursos encontra o conjunto de resultados otimizado na fronteira de Pareto dessas combinações. Para este exemplo, use o SurfaceCode QEC padrão e o RoundBasedFactory protocolo de destilação padrão fornecidos pelo estimador de recursos.
from qdk.qre import estimate
from qdk.qre.models import SurfaceCode, RoundBasedFactory
results = estimate(app, arch, isa_query=SurfaceCode.q() * RoundBasedFactory.q(), max_error=0.01)```
Exiba os resultados
Para exibir as combinações ideais de número de qubits físicos e tempo de execução do programa, use o método as_frame para exibir os resultados da estimativa em um DataFrame do pandas.
results.as_frame()
Para plotar os resultados, use o plot_estimates método e passe uma unidade para o tempo de execução.
from qdk.qre import plot_estimates
plot_estimates(results, figsize=(6, 4), runtime_unit="ms")