Ancilla bit


Ancilla bit è un bit il cui valore è conosciuto a priori e viene utilizzato per rendere più semplici i quantum gate.
Ad esempio viene usato come nell'esempio sottostante con dei gate Controlled-Not per modificare il valore del target qubit.
Qui dopo aver inserito il gate x per dare il valore 1 all'ancilla bit associamo poi ad esso un gate cx con i 3 qubit in modo da avere come output il risultato 111.
L'Ancilla bit è usato anche nella Quantum Error Correction(QEC)

from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit import Aer, execute
from qiskit.tools.visualization import plot_histogram

qr = QuantumRegister(3, 'q')
anc = QuantumRegister(1, 'ancilla')
cr = ClassicalRegister(3, 'c')
qc = QuantumCircuit( anc,qr, cr)
qc.x(anc[0])
qc.cx( anc[0],qr[0:3])

qc.barrier(qr)
qc.measure(qr, cr)

qc.draw(output='mpl')




simulator = Aer.get_backend('qasm_simulator')

result = execute(qc, simulator, shots=1024).result()

counts = result.get_counts()

plot_histogram(counts)