Skip to main content
IBM Quantum Platform

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)

GitHub

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 de basis_gates.

  • coupling_map (list[list[int]] | CouplingMap | None) –

    Mapa de acoplamento opcional para o backend. Vários formatos são suportados:

    1. CouplingMap instância
    2. 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_map for especificado, ele deverá corresponder ao número de qubits especificado em num_qubits. Se coupling_map não for especificado, um mapa de acoplamento totalmente conectado será gerado com num_qubits qubits.

  • 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

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, **options)

GitHub

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 QuantumCircuit objetos 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

job

Aumentos

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.