Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O estimador de recursos quântico Microsoft faz parte do Microsoft Quantum Development Kit (QDK). Neste artigo, aprende como instalar o estimador quântico de recursos e executar uma estimativa para um programa simples Q# com um modelo de arquitetura padrão.
Warning
O estimador de recursos na extensão QDK para o VS Code será descontinuado em breve. Use o qdk.qrePython módulo para realizar a estimativa de recursos.
Pré-requisitos
Para seguir os passos deste artigo, precisa de instalar o seguinte:
- A versão mais recente do Visual Studio Code (VS Code)
- A versão mais recente da extensão QDK instalada no VS Code
- As versões mais recentes da Python extensão e da extensão Jupyter no VS Code
Instalar o estimador quântico de recursos
O estimador de recursos está disponível através do qdk.qrePython módulo. Para usar o estimador de recursos, instale a versão mais recente do qdkPython pacote com o qre extra:
pip install --upgrade "qdk[qre]"
Tip
Não precisas de ter uma conta no Azure para usar o estimador de recursos.
Execute uma estimativa simples de recursos com definições padrão
Para realizar uma estimativa básica de recursos, passe um modelo de aplicação, um modelo de arquitetura de hardware e um modelo de correção de erros ao estimador de recursos. Depois, execute o estimador de recursos para obter os resultados. O exemplo seguinte executa o estimador de recursos do Jupyter Notebook em VS Code.
Criar um modelo de aplicação
Para este exemplo, use o algoritmo do modelo de Ising 1D a partir das amostras Q# na extensão QDK VS Code. Ou então usa um dos teus programas de Q# existentes.
Escreva um programa Q#
- No VS Code, cria um novo ficheiro de texto e guarda o ficheiro como
ising-1d-sample.qs. - Na primeira linha do ficheiro, introduza sample para abrir a lista de programas de exemplo do Q#.
- Escolha o exemplo Modelo de Ising (1D simples) e, em seguida, guarde o ficheiro.
Criar uma aplicação
Use o programa Q# para criar um modelo de aplicação para o estimador de recursos.
Para criar um novo ficheiro Jupyter Notebook no VS Code, abra a Paleta de Comandos e entre em Create: New Jupyter Notebook.
Na primeira célula do caderno, avalie o programa Q#.
from pathlib import Path from qdk import qsharp qsharp.eval(Path("ising-1d-sample.qs").read_text(encoding="utf-8"))Este código cria um
Mainobjeto noqdk.codenamespace que contém o programa Q#.Numa célula nova, crie uma aplicação estimativa de recursos a partir 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 que o estimador de recursos traz. O modelo GateBased requer os valores da taxa de erro, do tempo de porta e do tempo de medição.
Numa nova célula, crie-se uma arquitetura baseada em portas 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)
Faça uma estimativa
Para fazer uma estimativa, use a estimate função e passe as seguintes entradas:
- Application
- Architecture
- Consulta ao conjunto físico de instruções (ISA)
- Taxa máxima de erro
A consulta ISA indica ao estimador de recursos que combinações de código de correção de erros e protocolos de destilação da fábrica T deve avaliar. O estimador de recursos encontra o conjunto de resultados otimizados pela fronteira de Pareto a partir dessas combinações. Para este exemplo, use o SurfaceCode QEC e o protocolo de destilação RoundBasedFactory por defeito que o estimador de recursos inclui.
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)```
Ver os resultados
Para visualizar as combinações ótimas do número de qubits físicos e do tempo de execução do programa, utilize o as_frame método para mostrar os resultados da estimativa num DataFrame pandas.
results.as_frame()
Para representar 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")