BasicSimulator
class qiskit.providers.basic_provider.BasicSimulator(provider=None, target=None, **fields)
Bases: BackendV2
Python implementação de um simulador quântico básico (não eficiente).
O simulador suporta até 24 qubits para simulação de vetores de estado e até 2.048 qubits para simulação de operadores de Clifford/estabilizadores.
Parâmetros
- provedor - Uma referência reversa opcional ao objeto do provedor do qual o backend é proveniente.
- target (Target | None) – Um alvo opcional para configurar o simulador.
- fields - kwargs para os valores a serem usados para substituir as opções padrão.
Aumentos
AttributeError - Se for especificado um campo que esteja fora das opções do backend.
Atributos
MAX_QUBITS_CLIFFORD
Valor Padrão: 2048
MAX_QUBITS_STATEVECTOR
Valor Padrão: 24
coupling_map
Retorna o CouplingMap objeto
dt
Retorna a resolução de tempo do sistema dos sinais de entrada
Isso deverá ser implementado se o backend for compatível com o agendamento de pulso.
Retorna
O intervalo de tempo do sinal de entrada em segundos. Se o backend não definir dt, None será retornado.
dtm
Retorna a resolução de tempo do sistema dos sinais de saída
Retorna
O intervalo de tempo do sinal de saída em segundos.
Aumentos
NotImplementedError - se o backend não for compatível com a consulta do intervalo de tempo do sinal de saída
instruction_durations
Retorna o InstructionDurations objeto.
instructions
Uma lista de tuplas de instruções no backend do formulário (instruction, (qubits))
max_circuits
meas_map
Retorna o agrupamento de medições que são multiplexadas
Isso deverá ser implementado se o backend for compatível com o agendamento de pulso.
Retorna
O agrupamento de medições que são multiplexadas
Aumentos
NotImplementedError - se o backend não suportar a consulta do mapeamento de medição
num_qubits
Retorna o número de qubits que o backend possui.
operation_names
Uma lista de nomes de instruções que o backend suporta.
operations
Uma lista de Instruction instâncias que o backend suporta.
options
Retorna as opções para o backend
As opções de um backend são os parâmetros dinâmicos que definem como o backend é usado. Elas são usadas para controlar o run() método.
provider
target
version
Valor Padrão: 2
name
Nome do backend.
description
Descrição opcional legível por humanos.
online_date
Data em que o back-end ficou on-line.
backend_version
Versão do backend que está sendo fornecida. Isso não é o mesmo que BackendV2.versionque é a versão da interface Backend interface abstrata.
Métodos
qubit_properties
qubit_properties(qubit)
Retorna QubitProperties para um determinado qubit.
Se não houver nenhuma definição ou se o backend não suportar a consulta desses detalhes, esse método não precisará ser implementado.
Parâmetros
qubit (int |list[int]) – O qubit para o qual se deseja obter o QubitProperties objeto. Isso pode ser um único número inteiro para 1 qubit ou uma lista de qubits, e uma lista de QubitProperties objetos será retornada na mesma ordem
Retorna
O objeto QubitProperties objeto para o qubit especificado. Se uma lista de qubits for fornecida, uma lista será retornada. Se estiverem faltando propriedades em um qubit, isso pode ser feito em None.
Aumentos
NotImplementedError - se o backend não for compatível com a consulta das propriedades do qubit
Tipo de retorno
run
run(run_input, **run_options)
Executar no back-end.
Parâmetros
- run_input (QuantumCircuit orlist) – o QuantumCircuit (ou lista de objetos QuantumCircuit ) a ser executado
- run_options (kwargs) – opções adicionais de back-end de tempo de execução
Retorna
derivado de BaseJob
Tipo de retorno
Informações adicionais:
-
as opções de kwarg especificadas em
run_optionssubstituirão temporariamente quaisquer opções definidas com o mesmo nome para a execução atual. Isso pode incluir:- "initial_statevector": semelhante a um vetor. A opção "initial_statevector" especifica um vetor de estado inicial personalizado a ser usado em vez do estado totalmente zero. O tamanho desse vetor deve corresponder ao número de qubits no argumento
run_input. - "seed_simulator": int. Essa é a semente interna para a geração de amostras.
- "tiros": int. Número de disparos usados na simulação.
- "memory": bool. Se for True, o resultado conterá os resultados de cada simulação de disparo individual.
- “use_clifford_optimization”: bool. Se for True, habilita a otimização do circuito de Clifford utilizando o formalismo do estabilizador. Padrão: Falso.
- "initial_statevector": semelhante a um vetor. A opção "initial_statevector" especifica um vetor de estado inicial personalizado a ser usado em vez do estado totalmente zero. O tamanho desse vetor deve corresponder ao número de qubits no argumento
Exemplo:
backend.run(
circuit_2q,
initial_statevector = np.array([1, 0, 0, 1j]) / math.sqrt(2)
)set_options
set_options(**fields)
Definir os campos de opções para o backend
Esse método é usado para atualizar as opções de um backend. Se você precisar alterar alguma das opções antes da execução, basta passar o kwarg com o novo valor para as opções.
Parâmetros
fields - Os campos para atualizar as opções
Aumentos
AttributeError - Se o campo passado não fizer parte das opções