En este artículo, vamos a ver cómo aplicar la puerta NOT en una entrada dada (0 o 1) usando puertas cuánticas, tenemos que convertir 0 a 1 y 1 a 0. Esto se puede hacer fácilmente en las computadoras clásicas, pero ¿cómo? ¿Podemos hacer esto en computadoras cuánticas? Tenemos que representar la entrada en qubits y luego aplicamos la operación X (representación de la puerta NOT en la computadora cuántica) en ese qubit y luego devolvemos el qubit resultante
QISKIT es el paquete que se encuentra entre los algoritmos cuánticos de un lado y el dispositivo cuántico físico del otro lado. Traduce los lenguajes de programación comunes como Python al lenguaje de máquina cuántica. Esto significa que cualquier persona fuera del laboratorio de IBM Q puede programar una computadora cuántica.
Para instalar este módulo, ejecute estos comandos en la terminal:
pip3 install qiskit
Acercarse:
- Cree un circuito cuántico qc con un solo qubit clásico y bit usando la función incorporada QuantumCircuit que toma el primer parámetro «no. de qubits en entero” y segundo parámetro “no. de bits en entero” y devolver el circuito cuántico. (QuantumCircuit(1, 1) devuelve un circuito cuántico con un qubit q[0] y un bit c[0])
- Representar la entrada en qubits (‘0’ como estado de qubit |0> y para ‘1’ como |1> ):
- Restablezca qc qubit usando qiskit functionreset().
- Dado que el qubit es inicialmente |0⟩, entonces para la entrada de ‘0’, no necesitamos hacer nada.
- Para una entrada de ‘1’, hacemos una X para rotar |0⟩ a |1⟩. La función x() es aplicar la puerta NOT en un parámetro dado.
- Coloque una barrera entre el estado de entrada y la operación de la puerta usando barrier().
- Aplicar NOT en qubit 0, podemos hacer NOT en él usando x
- poner una barrera entre el funcionamiento de la puerta y la medición
- Finalmente, extraemos la salida |0⟩/|1⟩ del qubit q[0] y la codificamos en el bit c[0] usando la función qiskit measure().
- Para visualizar y ver el diagrama del circuito, use la función qiskit draw().
A continuación se muestra la implementación:
Python3
# importing qiskit from qiskit import * # importing plot_histogram to visualize Output from qiskit.visualization import plot_histogram import numpy as np def NOT(inp): # Creating a quantum circuit with a # single qubit and a single classical bit using qc = QuantumCircuit(1, 1) qc.reset(0) # We encode '0' as the qubit state |0⟩, and '1' as |1⟩ # Since the qubit is initially |0⟩, so for # an input of 0, we don't need to do anything. # For an input of '1', we do an x to rotate the |0⟩ to |1⟩ # The x() function is to apply NOT gate on given parameter. if inp == '1': # applying NOT on qubit 0. qc.x(0) # barrier between input state and gate operation qc.barrier() # Now we've encoded the input, # we can do a NOT on it using x # NOT on |0> converted to |1> and wise verse. qc.x(0) # barrier between gate operation and measurement qc.barrier() # Finally, we extract the |0⟩/|1⟩ output of # the qubit q[0] and encode it in the bit c[0] qc.measure(0, 0) # to visualize qc.draw('mpl') # To run the program on a simulator backend = Aer.get_backend('qasm_simulator') # Since the output will be deterministic, # so we can use just a single shot to get it job = execute(qc, backend, shots=1, memory=True) output = job.result().get_memory()[0] return qc, output # Sending input to NOT function for inp in ['0', '1']: qc, out = NOT(inp) print('NOT with input', inp, 'gives output', out) display(qc.draw()) print('\n')
Producción:
Publicación traducida automáticamente
Artículo escrito por ganeshanvishnu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA