Skip to main content
IBM Quantum Platform

Transformações

qiskit_addon_cutting.utils.transforms

Funções para manipulação de circuitos quânticos.

separate_circuit

separate_circuit(circuit, partition_labels=None)

GitHub

Separe o circuito em seus componentes desconectados.

Se o site partition_labels for fornecido, o circuito será separado de acordo com esses rótulos. Um rótulo de partição de None é tratado de forma especial: ele deve ser aplicado a um qubit não utilizado (ocioso), e esse qubit será removido ao separar o circuito.

Se partition_labels for None, o circuito será totalmente separado em seus componentes desconectados, cada um dos quais será rotulado com números inteiros consecutivos começando com 0. Cada fio ocioso será eliminado nos circuitos resultantes.

>>> qc = QuantumCircuit(4)
>>> _ = qc.x(0)
>>> _ = qc.cx(1, 2)
>>> separate_circuit(qc, "ABBA").subcircuits.keys()
dict_keys(['A', 'B'])
>>> separate_circuit(qc, "ABBA").qubit_map
[('A', 0), ('B', 0), ('B', 1), ('A', 1)]
>>> separate_circuit(qc, ["A", "B", "B", None]).qubit_map
[('A', 0), ('B', 0), ('B', 1), (None, None)]
>>> separate_circuit(qc).subcircuits.keys()
dict_keys([0, 1])
>>> separate_circuit(qc).qubit_map
[(0, 0), (1, 0), (1, 1), (None, None)]
>>> separate_circuit(qc, "BAAC").subcircuits.keys()
dict_keys(['B', 'A', 'C'])
>>> separate_circuit(qc, "BAAC").qubit_map
[('B', 0), ('A', 0), ('A', 1), ('C', 0)]

Parâmetros

  • circuit (QuantumCircuit) – O circuito a ser separado em subcircuitos desconectados
  • partition_labels (Sequence[Hashable] | None) – Uma sequência de comprimento num_qubits. Os Qubits com o mesmo rótulo acabarão no mesmo subcircuito.

Tipo de retorno

SeparatedCircuits

Retorna

A SeparatedCircuits uma tupla nomeada contendo subcircuits e qubit_map.

Aumentos

  • ValueError - O número de rótulos de partição não é igual ao número de qubits no circuito de entrada.
  • ValueError - A operação abrange mais de uma partição.

SeparatedCircuits

class SeparatedCircuits(subcircuits, qubit_map)

GitHub

Bases: NamedTuple

Tupla nomeada para o resultado de separate_circuit().

subcircuits é um ditado de circuitos, codificado por cada rótulo de partição. qubit_map é uma lista com comprimento igual ao número de qubits no circuito original. Cada elemento dessa lista é um conjunto de dois elementos que inclui o rótulo da partição desse qubit, juntamente com o índice desse qubit no subcircuito correspondente. Se o qubit original não for usado e tiver sido removido dos circuitos separados, essa tupla será igual a (None, None).

Criar nova instância de SeparatedCircuits(subcircuits, qubit_map)

Parâmetros

  • subcircuits (dict[Hashable, QuantumCircuit])
  • qubit_map (list[tuple[Hashable, int] | tuple[None, None]])

count

count(value, /)

Retorna o número de ocorrências do valor.

index

index(value, start=0, stop=9223372036854775807, /)

Retorna o primeiro índice do valor.

Aumenta o endereço ValueError se o valor não estiver presente.

qubit_map

Tipo: list[tuple[Hashable, int] | tuple[None, None]]

Alias para o campo número 1

subcircuits

Tipo: dict[Hashable, QuantumCircuit]

Alias para o número de campo 0

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