El punto falso de la premisa es que una composición de puertas de un solo qubit y de dos qubits estará representada por algún tipo de composición de matrices de 2×2 y 4×4. De hecho, si una puerta de un solo qubit (para dos qubits es similar) actúa sobre el $i$ -ésimo qubit de $n$ la matriz debe ser convertida en $$(Id_2)^{\otimes (i-1)} \otimes A \otimes (Id_2)^{\otimes (n-i)},$$ donde $A$ es el original $2×2$ matriz, para describir su acción sobre la $n$ -Estado de los qubits. Se trata de una matriz de dimensiones $2^n × 2^n$ independientemente del tipo de puerta.
Aunque el producto tensorial con las identidades parece trivial, recordemos lo que significa para una aplicación sobre un vector de estado utilizando el algoritmo más sencillo:
for each index u, 0 u < 2^n:
define u_i = bit value of i-th bit of u
define v = u XOR 2^i
if u_i = 0:
new (psi[u], psi[v]) = a*psi[u] + b*psi[v]
else:
new (psi[u], psi[v]) = d*psi[u] + c*psi[v]
Sí, en el núcleo de este pseudo-algoritmo sólo hay una multiplicación bidimensional. Pero se hace $2^n$ tiempos.
Incluso antes de llegar a realizar la simulación clásica real, uno puede quedarse sin memoria disponible incluso en almacenar el estado en un instante determinado. Consulte $n = 100$ qubits, es decir $2^{100}$ amplitudes complejas de doble precisión (128 bits cada una). Se calcula que supera la capacidad de almacenamiento de datos de todos los ordenadores de la Tierra en unos 14 órdenes de magnitud, así que no lo veremos pronto. Mientras tanto, un ordenador cuántico de 100 bits empezaría a ser interesante para las aplicaciones, En teoría, no es raro que haya muchos más de los previstos.
11 votos
Probablemente una mejor pregunta para el Informática SE
11 votos
Existe un paquete Perl para ello. Pruébelo y vea cuál es el inconveniente.
6 votos
Supongamos que tienes 200 codos. N
1 votos
@BlueRaja-DannyPflughoeft Sí que es una especie de límite, pero me inclino por que sea el tema aquí.
9 votos
Tanto los ordenadores cuánticos como los clásicos son Turing completos, no hay nada que uno pueda computar que el otro no pueda. Es sólo una cuestión de cuánto tiempo se tarda.
0 votos
@Peter, eso sería computabilidad, no complejidad. No se trata de qué tipo de problemas se pueden resolver, sino precisamente de las diferencias en el (escalado del) tiempo que se tarda en hacerlo.
0 votos
Es relevante: smbc-comics.com/comic/the-talk-4
0 votos
Esto no es una respuesta a tu pregunta, pero si te interesa, cuando estaba en una clase de computación cuántica escribí un programa para ejecutar todos los circuitos cuánticos que dibujábamos en la pizarra: github.com/Erhannis/QCircuit