"Crec que puc dir amb seguretat que ningú entén la mecànica quàntica." - Richard Feynman
El tema de la computació quàntica sempre ha fascinat els escriptors i periodistes tecnològics. El seu potencial computacional i la seva complexitat li van donar una certa aura mística. Massa sovint, articles de fons i infografies descriuen amb detall les diverses perspectives d'aquesta indústria, tot i que amb prou feines toquen la seva aplicació pràctica: això pot enganyar el lector menys atent.
Els articles de ciència popular ometen descripcions dels sistemes quàntics i fan afirmacions com:
Un bit normal pot ser un 1 o un 0, però un qubit pot ser un 1 i un 0 alhora.
Si tens molta sort (cosa que no estic segur), se't dirà que:
El qubit es troba en una superposició entre "1" i "0".
Cap d'aquestes explicacions sembla plausible, ja que estem intentant formular un fenomen de mecànica quàntica utilitzant un llenguatge desenvolupat en un món molt tradicional. Per explicar clarament els principis de la computació quàntica, cal utilitzar un altre llenguatge: el matemàtic.
En aquest tutorial, tractaré les eines matemàtiques necessàries per modelar i entendre sistemes de computació quàntica, així com com il·lustrar i aplicar la lògica de la computació quàntica. A més, donaré un exemple d'algorisme quàntic i us explicaré quin és el seu avantatge respecte a un ordinador tradicional.
Faré tot el possible per explicar tot això amb un llenguatge clar, però encara espero que els lectors d'aquest article tinguin una comprensió bàsica de l'àlgebra lineal i la lògica digital (es tracta de l'àlgebra lineal).
Primer, repassem els principis de la lògica digital. Es basa en l'ús de circuits elèctrics per fer càlculs. Per fer la nostra descripció més abstracta, simplifiquem l'estat del cable elèctric a "1" o "0", que correspondrà als estats "on" o "off". En disposar els transistors en una seqüència determinada, crearem els anomenats elements lògics que prenen un o més valors de senyal d'entrada i els convertirem en un senyal de sortida basat en determinades regles de la lògica booleana.
Portes lògiques comunes i les seves taules d'estats
A partir de les cadenes d'elements tan bàsics, es poden crear elements més complexos, i a partir de les cadenes d'elements més complexos, en última instància, amb un gran grau d'abstracció, podem esperar obtenir un anàleg del processador central.
Com he esmentat anteriorment, necessitem una manera de representar matemàticament la lògica digital. Primer, introduïm la lògica tradicional matemàtica. Utilitzant àlgebra lineal, els bits clàssics amb els valors "1" i "0" es poden representar com a vectors de dues columnes:
on hi ha els números de l'esquerra
Identitat | Transformació de la identitat |
Negació | Negació |
constant-0 | Càlcul de la constant "0" |
constant-1 | Càlcul de la constant "1" |
A partir de la nostra nova representació d'un bit que proposem, és bastant fàcil realitzar operacions sobre el bit corresponent mitjançant una transformació vectorial:
Abans d'avançar, mirem el concepte
Amb
Ara que tenim gairebé tots els conceptes matemàtics necessaris, passem a la nostra primera porta de lògica quàntica. Aquest és l'operador
Aquest operador es pot representar com el següent vector de transformació:
Per demostrar tot el que hem tractat fins ara, us mostraré com utilitzar l'element CNOT en diversos bits:
Per resumir el que ja s'ha dit: en el primer exemple descomposem |10⟩ en parts del seu producte tensor i utilitzem la matriu CNOT per obtenir un nou estat corresponent del producte; aleshores el factorem a |11⟩ segons la taula de valors CNOT donada anteriorment.
Per tant, hem recordat totes les regles matemàtiques que ens ajudaran a entendre la informàtica tradicional i els bits ordinaris, i finalment podem passar a la informàtica quàntica moderna i als qubits.
Si heu llegit fins aquí, tinc bones notícies per a vosaltres: els qubits es poden expressar fàcilment matemàticament. En general, si un bit clàssic (cbit) es pot establir a |1⟩ o |0⟩, el qubit està simplement en superposició i pot ser tant |0⟩ com |1⟩ abans de la mesura. Després de la mesura, es col·lapsa en |0⟩ o |1⟩. En altres paraules, un qubit es pot representar com una combinació lineal de |0⟩ i |1⟩ segons la fórmula següent:
on a₀ и a₁ representen, respectivament, les amplituds |0⟩ i |1⟩. Aquestes es poden considerar "probabilitats quàntiques", que representen la probabilitat que un qubit s'enfonsi en un dels estats després de ser mesurat, ja que en mecànica quàntica un objecte en superposició s'enfonsa en un dels estats després de ser fixat. Ampliem aquesta expressió i obtenim el següent:
Per simplificar la meva explicació, aquesta és la representació que utilitzaré en aquest article.
Per a aquest qubit, la possibilitat de col·lapsar-se al valor a₀ després que la mesura sigui igual a |a₀|², i la possibilitat de col·lapse al valor a₁ és igual a |a₁|². Per exemple, per al qubit següent:
la probabilitat de col·lapsar-se en “1” és igual a |1/ √2|², o ½, és a dir, 50/50.
Com que en el sistema clàssic totes les probabilitats han de sumar un (per a una distribució de probabilitat completa), podem concloure que els quadrats dels valors absoluts de les amplituds |0⟩ i |1⟩ han de sumar un. A partir d'aquesta informació podem formular la següent equació:
Si esteu familiaritzat amb la trigonometria, notareu que aquesta equació correspon al teorema de Pitàgores (a²+b²=c²), és a dir, podem representar gràficament els possibles estats del qubit com a punts del cercle unitari, és a dir:
Els operadors i elements lògics s'apliquen als qubits de la mateixa manera que en la situació amb els bits clàssics, basats en una transformació matricial. Tots els operadors de matriu invertible que hem recordat fins ara, en particular CNOT, es poden utilitzar per treballar amb qubits. Aquests operadors de matriu us permeten utilitzar cadascuna de les amplituds del qubit sense mesurar-lo i col·lapsar-lo. Permeteu-me donar-vos un exemple d'ús de l'operador de negació en un qubit:
Abans de continuar, permeteu-me recordar-vos que els valors d'amplitud a₀ i a₁ són en realitat
Tanmateix, per simplificar l'explicació, aquí ens limitarem als nombres reals.
Sembla que és hora de discutir alguns elements lògics que tenen sentit únicament en el context de la computació quàntica.
Un dels operadors més importants és l'"element Hadamard": pren una mica en un estat "0" o "1" i el posa a la superposició adequada amb un 50% de possibilitats de col·lapsar-se en un "1" o "0". després de la mesura.
Observeu que hi ha un nombre negatiu a la part inferior dreta de l'operador Hadamard. Això es deu al fet que el resultat d'aplicar l'operador depèn del valor del senyal d'entrada: - |1⟩ o |0⟩, i per tant el càlcul és reversible.
Un altre punt important sobre l'element Hadamard és la seva invertibilitat, és a dir, pot prendre un qubit en la superposició adequada i transformar-lo en |0⟩ o |1⟩.
Això és molt important perquè ens dóna la capacitat de transformar-nos a partir d'un estat quàntic sense determinar l'estat del qubit i, en conseqüència, sense col·lapsar-lo. Així, podem estructurar la computació quàntica basant-nos en un principi determinista en lloc d'un principi probabilístic.
Els operadors quàntics que només contenen nombres reals són els seus oposats, de manera que podem representar el resultat d'aplicar l'operador a un qubit com una transformació dins del cercle unitari en forma d'una màquina d'estats:
Així, el qubit, l'estat del qual es presenta al diagrama anterior, després d'aplicar l'operació Hadamard, es transforma en l'estat indicat per la fletxa corresponent. De la mateixa manera, podem construir una altra màquina d'estats que il·lustrarà la transformació d'un qubit utilitzant l'operador de negació tal com es mostra més amunt (també conegut com a operador de negació de Pauli o inversió de bits), tal com es mostra a continuació:
Per realitzar operacions més complexes al nostre qubit, podem encadenar diversos operadors o aplicar elements diverses vegades. Exemple de transformació en sèrie basada en
És a dir, si comencem amb el bit |0⟩, apliquem una inversió de bits, i després una operació de Hadamard, després una altra inversió de bits i de nou una operació de Hadamard, seguida d'una inversió de bits final, acabem amb el vector donat per on el costat dret de la cadena. Si posem diferents màquines d'estats una sobre l'altra, podem començar a |0⟩ i traçar les fletxes de colors corresponents a cadascuna de les transformacions per entendre com funciona tot.
Com que hem arribat fins aquí, és hora de considerar un dels tipus d'algorismes quàntics, és a dir:
Imaginem que teniu una caixa negra que conté una funció/operador en un bit (recordeu que amb un bit només es poden fer quatre operacions: conversió d'identitat, negació, avaluació de la constant "0" i avaluació de la constant "1". "). Quina és exactament la funció que realitza a la caixa? No saps quin, però pots passar per tantes variants de valors d'entrada com vulguis i avaluar els resultats de sortida.
Quantes entrades i sortides hauríeu de passar per la caixa negra per esbrinar quina funció s'està utilitzant? Penseu en això un segon.
En el cas d'un ordinador clàssic, caldrà fer 2 consultes per determinar la funció a utilitzar. Per exemple, si l'entrada "1" produeix una sortida "0", queda clar que s'utilitza la funció de càlcul de la constant "0" o la funció de negació, després de la qual haureu de canviar el valor del senyal d'entrada. a "0" i veure què passa a la sortida.
En el cas d'un ordinador quàntic, també seran necessàries dues consultes, ja que encara necessiteu dos valors de sortida diferents per definir amb precisió la funció que cal aplicar al valor d'entrada. Tanmateix, si reformules una mica la pregunta, resulta que els ordinadors quàntics encara tenen un avantatge seriós: si volguessis saber si la funció que s'utilitza és constant o variable, els ordinadors quàntics tindrien l'avantatge.
La funció utilitzada al quadre és variable si els diferents valors del senyal d'entrada produeixen resultats diferents a la sortida (per exemple, la conversió d'identitat i la inversió de bits), i si el valor de sortida no canvia independentment del valor d'entrada, La funció és constant (per exemple, calculant una constant "1" o calculant la constant "0").
Mitjançant un algorisme quàntic, podeu determinar si una funció d'una caixa negra és constant o variable en funció d'una sola consulta. Però abans de veure com fer-ho en detall, hem de trobar una manera d'estructurar cadascuna d'aquestes funcions en un ordinador quàntic. Com que qualsevol operador quàntic ha de ser inversible, immediatament ens enfrontem a un problema: les funcions per calcular les constants "1" i "0" no ho són.
Una solució comuna utilitzada en la informàtica quàntica és afegir un qubit de sortida addicional que retorni qualsevol valor d'entrada que rep la funció.
Abans: | Després: |
D'aquesta manera, podem determinar els valors d'entrada únicament en funció del valor de sortida, i la funció esdevé invertible. L'estructura dels circuits quàntics crea la necessitat d'un bit d'entrada addicional. Per tal de desenvolupar els operadors corresponents, assumirem que el qubit d'entrada addicional s'estableix en |0⟩.
Utilitzant la mateixa representació de circuit quàntic que hem utilitzat anteriorment, vegem com es pot implementar cadascun dels quatre elements (transformació d'identitat, negació, avaluació de la constant "0" i avaluació de la constant "1") mitjançant operadors quàntics.
Per exemple, així és com podeu implementar la funció per calcular la constant "0":
Càlcul de la constant "0":
Aquí no necessitem operadors en absolut. El primer qubit d'entrada (que vam suposar que era |0⟩) torna amb el mateix valor, i el segon valor d'entrada torna ell mateix, com és habitual.
Amb la funció per calcular la constant "1" la situació és una mica diferent:
Càlcul de la constant "1":
Com que hem assumit que el primer qubit d'entrada sempre s'estableix en |0⟩, el resultat d'aplicar l'operador d'inversió de bits és que sempre produeix un a la sortida. I com és habitual, el segon qubit dóna el seu propi valor a la sortida.
Quan es mapeja l'operador de transformació d'identitat, la tasca comença a ser més complicada. A continuació s'explica com fer-ho:
Transformació idèntica:
El símbol utilitzat aquí denota l'element CNOT: la línia superior indica el bit de control i la línia inferior indica el bit de control. Permeteu-me que us recordi que quan utilitzeu l'operador CNOT, el valor del bit de control canvia si el bit de control és igual a |1⟩, però es manté sense canvis si el bit de control és igual a |0⟩. Com que vam suposar que el valor de la línia superior sempre és igual a |0⟩, el seu valor sempre s'assigna a la línia inferior.
Procedim de la mateixa manera amb l'operador de negació:
Negació:
Simplement invertim el bit al final de la línia de sortida.
Ara que tenim aquesta comprensió preliminar fora del camí, mirem els avantatges específics d'un ordinador quàntic sobre un ordinador tradicional a l'hora de determinar la constància o la variabilitat d'una funció amagada en una caixa negra utilitzant només una consulta.
Per resoldre aquest problema utilitzant la computació quàntica en una sola sol·licitud, cal posar els qubits d'entrada en una superposició abans de passar-los a la funció, tal com es mostra a continuació:
L'element Hadamard es torna a aplicar al resultat de la funció per trencar els qubits de la superposició i fer que l'algorisme sigui determinista. Iniciem el sistema a l'estat |00⟩ i, per motius que explicaré en breu, obtenim el resultat |11⟩ si la funció aplicada és constant. Si la funció dins de la caixa negra és variable, després de la mesura el sistema retorna el resultat |01⟩.
Per entendre la resta de l'article, mirem la il·lustració que vaig mostrar anteriorment:
Utilitzant l'operador d'inversió de bits i després aplicant l'element Hadamard als dos valors d'entrada iguals a |0⟩, ens assegurem que es tradueixen a la mateixa superposició de |0⟩ i |1⟩, de la següent manera:
Utilitzant l'exemple de passar aquest valor a una funció de caixa negra, és fàcil demostrar que ambdues funcions de valor constant generen |11⟩.
Càlcul de la constant "0":
De la mateixa manera, veiem que la funció per calcular la constant “1” també produeix |11⟩ com a sortida, és a dir:
Càlcul de la constant "1":
Tingueu en compte que la sortida serà |1⟩, ja que -1² = 1.
Pel mateix principi, podem demostrar que quan utilitzem les dues funcions variables, sempre obtindrem |01⟩ a la sortida (sempre que utilitzem el mateix mètode), encara que tot és una mica més complicat.
Transformació idèntica:
Com que CNOT és un operador de dos qubits, no es pot representar com una màquina d'estats simple i, per tant, cal definir dos senyals de sortida basats en el producte tensor dels dos qubits d'entrada i la multiplicació per la matriu CNOT tal com s'ha descrit anteriorment:
Amb aquest mètode també podem confirmar que es rep el valor de sortida |01⟩ si la funció de negació està oculta a la caixa negra:
Negació:
Així, acabem de demostrar una situació en què un ordinador quàntic és clarament més eficient que un ordinador convencional.
Que segueix?
Suggereixo que acabem aquí. Ja hem fet una gran feina. Si heu entès tot el que he tractat, crec que ara teniu una bona comprensió dels conceptes bàsics de la computació quàntica i la lògica quàntica, i per què els algorismes quàntics poden ser més eficients que la informàtica tradicional en determinades situacions.
La meva descripció difícilment es pot anomenar una guia completa per a la computació quàntica i els algorismes; més aviat, és una breu introducció a les matemàtiques i la notació, dissenyada per dissipar les idees dels lectors sobre el tema imposades per fonts de ciència popular (de debò, molts realment no entenen la situació!). No vaig tenir temps per tocar molts temes importants, com ara
Si voleu sistematitzar i estructurar els vostres coneixements sobre ordinadors quàntics, urgentment Us recomano llegir
Font: www.habr.com