GenericBackendV2
class qiskit.providers.fake_provider.GenericBackendV2(num_qubits, basis_gates=None, *, coupling_map=None, control_flow=False, dtm=None, dt=None, seed=None, noise_info=True)
Bases: BackendV2
Genérica BackendV2 com um construtor configurável. Essa classe retornará uma instância BackendV2 que é executada em um simulador local (no espírito de backends falsos) e contém todas as informações necessárias para testar os componentes de interface com o backend, como o transpilador. A GenericBackendV2 pode ser construída a partir de um endereço especificado num_qubits, mas os usuários podem configurar adicionalmente as portas de base, o mapa de acoplamento, a capacidade de executar circuitos dinâmicos (instruções de fluxo de controle) e o dtm. O restante das propriedades de backend é gerado por amostragem aleatória de intervalos padrão extraídos de dados históricos de backend do site IBM. A semente para essa geração aleatória pode ser fixada para garantir a reprodutibilidade da saída do backend. Esse backend só oferece suporte a gates na biblioteca padrão. Se você precisar de um backend mais flexível, sempre haverá a opção de instanciar diretamente um objeto Target para usar na transpilação.
Parâmetros
-
num_qubits (int) – Número de qubits que serão usados para construir o alvo do backend. Observe que, embora não haja limite para o tamanho do alvo que pode ser construído, esse backend é executado em simuladores locais com ruído, e eles podem apresentar limitações no número de qubits que podem ser simulados.
-
basis_gates (list[str] | None) – Lista de nomes de portas de base a serem suportados pelo destino. Eles devem fazer parte da biblioteca de circuitos padrão do qiskit. O conjunto padrão de portas de base é
["id", "rz", "sx", "x", "cx"]. As instruções"reset","delay"e"measure"são sempre compatíveis por padrão, mesmo que não sejam especificadas por meio debasis_gates. -
coupling_map (list[list[int]] | CouplingMap | None) –
Mapa de acoplamento opcional para o backend. Vários formatos são suportados:
CouplingMapinstância- List, deve ser fornecida como uma lista de bordas que representa as duas interações de qubit suportadas pelo backend, por exemplo:
[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]
Se
coupling_mapfor especificado, ele deverá corresponder ao número de qubits especificado emnum_qubits. Secoupling_mapnão for especificado, um mapa de acoplamento totalmente conectado será gerado comnum_qubitsqubits. -
control_flow (bool) – Sinalizador para ativar as diretivas de fluxo de controle no destino (o padrão é False).
-
dtm (float | None) – Resolução de tempo do sistema dos sinais de saída em nanossegundos. Nenhum por padrão.
-
dt (float | None) – Resolução de tempo do sistema dos sinais de entrada em nanossegundos. Nenhum por padrão.
-
seed (int | None) – Semente opcional para geração de valores padrão.
-
noise_info (bool) – Se verdadeiro, associa portas e qubits com informações de ruído padrão.
Atributos
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
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
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, **options)
Execute no back-end usando um simulador.
Esse método executa trabalhos de circuito (um indivíduo ou uma lista de QuantumCircuit ) usando o BasicSimulator ou o simulador Aer e retorna um objeto Job objeto.
Se o qiskit-aer estiver instalado, os trabalhos serão executados usando o modelo AerSimulator with noise do backend. Caso contrário, os trabalhos serão executados usando o simulador BasicSimulator sem ruído.
Parâmetros
- run_input (QuantumCircuit orlist) – Um indivíduo ou uma lista de
QuantumCircuitobjetos a serem executados no back-end. - options - Qualquer opção kwarg a ser passada para o backend para executar a configuração. Se uma chave também estiver presente no atributo/objeto de opções, a expectativa é que o valor especificado seja usado em vez do valor definido no objeto de opções.
Retorna
O objeto de trabalho para a execução
Tipo de retorno
Aumentos
- QiskitError - Se a entrada não for
QuantumCircuitou uma lista de - QuantumCircuit –
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