Skip to main content
IBM Quantum Platform

BasicSimulator

class qiskit.providers.basic_provider.BasicSimulator(provider=None, target=None, **fields)

GitHub

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

Retorna o provedor de back-end.

Retorna

o provedor responsável pelo back-end.

Tipo de retorno

provedor

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)

GitHub

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

QubitProperties | lista [ QubitProperties ]

run

run(run_input, **run_options)

GitHub

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

BasicProviderJob

Informações adicionais:

  • as opções de kwarg especificadas em run_options substituirã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.

Exemplo:

backend.run(
    circuit_2q,
    initial_statevector = np.array([1, 0, 0, 1j]) / math.sqrt(2)
)

set_options

set_options(**fields)

GitHub

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

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.