Transformações
qiskit_addon_cutting.utils.transforms
Funções para manipulação de circuitos quânticos.
separate_circuit
separate_circuit(circuit, partition_labels=None)
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)
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