Decomposição Quase-Probabilística (QPD)
qiskit_addon_cutting.qpd
Funcionalidade principal de decomposição de quasiprobabilidade.
QPDBasis | Base na qual se decompõe uma operação. |
BaseQPDGate | Classe base para uma porta a ser decomposta usando a decomposição de quasiprobabilidade. |
SingleQubitQPDGate | Porta de qubit único a ser decomposta usando a decomposição de quasiprobabilidade. |
TwoQubitQPDGate | Porta de dois qubits a ser decomposta usando a decomposição de quasiprobabilidade. |
WeightType
class WeightType(value)
Bases: Enum
Tipo de peso associado a uma amostra QPD.
EXATA
Valor Padrão: 1
Um peso dado em proporção ao seu peso exato
amostragem
Valor Padrão: 2
Um peso que foi determinado por meio de algum procedimento de amostragem
generate_qpd_weights
generate_qpd_weights(qpd_bases, num_samples=1000)
Gerar pesos a partir da distribuição de quase-robabilidade conjunta.
Cada peso cujo valor absoluto estiver acima de um limite de 1 / num_samples será avaliado exatamente. Os pesos restantes - aqueles na cauda da distribuição - serão então amostrados, resultando em no máximo num_samples pesos exclusivos.
Parâmetros
- qpd_bases (
Sequence[QPDBasis]) – OsQPDBasisobjetos a partir dos quais serão gerados os pesos - num_samples (
float) – Controla o número de pesos a serem gerados
Tipo de retorno
dict[tuple[int, ...], tuple[float, WeightType]]
Retorna
Um mapeamento de uma determinada decomposição para seu peso. As chaves são tuplas de índices - um índice por entrada QPDBasis. Os índices correspondem a um mapeamento de decomposição específico na base.
Os valores são tuplas. O primeiro elemento é um número que corresponde ao peso da contribuição. O segundo elemento é o WeightTypeEXACT ou SAMPLED.
decompose_qpd_instructions
decompose_qpd_instructions(circuit, instruction_ids, map_ids=None, *, inplace=False)
Substitua todas as instruções QPD no circuito por operações e medições locais do Qiskit.
Parâmetros
- circuit (QuantumCircuit) – O circuito que contém instruções QPD
- instruction_ids (Sequence[Sequence[int]]) – Uma sequência 2D, de modo que cada sequência interna corresponda a índices de instruções que compreendam uma decomposição no circuito. Os elementos em uma sequência comum pertencem a uma decomposição comum e devem ser amostrados juntos.
- map_ids (Sequence[int] | None) – Índices para um mapeamento linear específico a ser aplicado às decomposições no circuito. Se nenhuma ID de mapa for fornecida, o circuito será decomposto aleatoriamente de acordo com a distribuição de probabilidade conjunta das decomposições.
- inplace (bool) – Se for
True, ocircuitserá modificado no lugar.
Tipo de retorno
QuantumCircuit
Retorna
Circuito que teve todas as suas BaseQPDGate instâncias decompostas em operações locais.
O circuito conterá um novo registro clássico final para conter os resultados da medição do QPD (acessível em retval.cregs[-1]).
Aumentos
- ValueError - Um índice em
instruction_idscorresponde a uma porta que não é umaBaseQPDGateinstância. - ValueError - Uma lista dentro de instruction_ids não tem comprimento 1 ou 2.
- ValueError - O número total de índices em
instruction_idsnão é igual ao número de instâncias no circuitoBaseQPDGateinstâncias no circuito. - ValueError - As portas dentro da mesma decomposição têm bases QPD diferentes.
- ValueError - O comprimento do site
map_idsnão é igual ao número de decomposições no circuito.
qpdbasis_from_instruction
qpdbasis_from_instruction(gate, /)
Gera um objeto QPDBasis objeto, dada uma operação compatível.
Todas as portas de dois qubits que implementam o método to_matrix() são compatíveis. Isso deve incluir a grande maioria dos portões sem parâmetros não vinculados, mas há alguns casos especiais (consulte, por exemplo, o problema nº 10396 do qiskit ).
A operação Move que pode ser usada para especificar um corte de fio, também é suportada.
Tipo de retorno
Retorna
O objeto recém-instanciado QPDBasis objeto
Aumentos
- ValueError - Instrução não suportada.
- ValueError - Não é possível decompor a instrução com parâmetros não vinculados.
- ValueError -
to_matrixconversão da porta de dois qubits falhou.
Parâmetros
gate (Instruction)