Saltar al contenido

# introduccion-a-la-computacion-cuantica-con-qiskit

Introducción a la computación cuántica con Qiskit

Volver a la portada del curso
Video IA

Ejemplo de Algoritmo Cuántico

Sección 4 · Algoritmos Cuánticos Sencillos

En este video

  • Conoces el patrón de cuatro pasos: superposición, oráculo, interferencia y medición
  • Construyes el circuito de Bernstein-Vazirani para el secreto uno cero uno
  • Ejecutas cien disparos y los cien devuelven uno cero uno, con una sola consulta al oráculo
  • Aplicas Grover con dos qubits: una cz marca el uno uno y con una iteración su probabilidad es uno
  • Concluyes que la ventaja viene de la interferencia y no de probar todo en paralelo
bv.py
from qiskit import QuantumCircuit

qc = QuantumCircuit(4, 3)
qc.x(3)
qc.h(range(4))
qc.cx(0, 3)
qc.cx(2, 3)
qc.barrier()
qc.h(range(3))
qc.measure(range(3), range(3))
qc.draw("mpl")
bv_run.py
from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler
qc = QuantumCircuit(4, 3)
qc.x(3)
qc.h(range(4))
qc.cx(0, 3)
qc.cx(2, 3)
qc.h(range(3))
qc.measure(range(3), range(3))
sampler = StatevectorSampler(seed=3)
res = sampler.run([qc], shots=100).result()
print(res[0].data.c.get_counts())
grover.py
from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector
qc = QuantumCircuit(2)
qc.h([0, 1])
qc.cz(0, 1)
qc.h([0, 1])
qc.x([0, 1])
qc.cz(0, 1)
qc.x([0, 1])
qc.h([0, 1])
probs = Statevector(qc).probabilities()
print("P(11) =", round(probs[3], 3))