La programació quàntica és el procés de disseny o assemblatge de seqüències d'instruccions, anomenades circuits quàntics, utilitzant portes, interruptors i operadors per manipular un sistema quàntic per obtenir un resultat o resultats desitjats d'un experiment determinat. Els algorismes de circuit quàntic es poden implementar en circuits integrats, realitzar-se amb instrumentació o escriure en un llenguatge de programació per utilitzar-lo amb un ordinador quàntic o un processador quàntic.[1]
Amb els sistemes basats en processadors quàntics, els llenguatges de programació quàntics ajuden a expressar algorismes quàntics mitjançant construccions d'alt nivell.[2] El camp està profundament arrelat en la filosofia de codi obert i, com a resultat, la majoria del programari quàntic que es parla en aquest article està disponible gratuïtament com a programari de codi obert.[3]
Els ordinadors quàntics, com els basats en el protocol KLM, un model de computació quàntica òptica lineal (LOQC), utilitzen algorismes quàntics (circuits) implementats amb electrònica, circuits integrats, instrumentació, sensors i/o per altres mitjans físics.
Altres circuits dissenyats per a l'experimentació relacionats amb sistemes quàntics poden estar basats en instrumentació i sensors.
Conjunts d'instruccions quàntiques
Els conjunts d'instruccions quàntiques s'utilitzen per convertir algorismes de nivell superior en instruccions físiques que es poden executar en processadors quàntics. De vegades, aquestes instruccions són específiques d'una plataforma de maquinari determinada, per exemple, trampes d'ions o qubits superconductors.
Blackbird
Blackbird [4][5] és un conjunt d'instruccions quàntiques i una representació intermèdia utilitzada per Xanadu Quantum Technologies i Strawberry Fields. Està dissenyat per representar programes quàntics de variable contínua que es poden executar amb maquinari quàntic fotònic
cQASM
cQASM, també conegut com a QASM comú, és un llenguatge d'assemblatge quàntic independent del maquinari que garanteix la interoperabilitat entre totes les eines de compilació i simulació quàntica. Va ser presentat pel QCA Lab de TUDelft.
Quil és una arquitectura de conjunt d'instruccions per a la informàtica quàntica que va introduir per primera vegada un model de memòria quàntica/clàssica compartida. Va ser presentat per Robert Smith, Michael Curtis i William Zeng a A Practical Quantum Instruction Set Architecture. Molts algorismes quàntics (incloent la teletransportació quàntica, la correcció d'errors quàntics, la simulació, [6] i els algorismes d'optimització) requereixen una arquitectura de memòria compartida.
Els kits de desenvolupament de programari següents es poden utilitzar per executar circuits quàntics en dispositius quàntics prototips, així com en simuladors.
Un IDE quàntic basat en núvol desenvolupat per Classiq, utilitza un llenguatge quàntic d'alt nivell, Qmod, per generar circuits quàntics escalables i eficients amb un motor de síntesi conscient del maquinari, que es pot desplegar en una àmplia gamma de QPU. La plataforma inclou una gran biblioteca d'algorismes quàntics.
Forest
Un projecte de codi obert desenvolupat per Rigetti, que utilitza el llenguatge de programació Python per crear i manipular circuits quàntics. Els resultats s'obtenen mitjançant simuladors o prototips de dispositius quàntics proporcionats per Rigetti. A més de la possibilitat de crear programes mitjançant operacions quàntiques bàsiques, hi ha algorismes de nivell superior disponibles dins del paquet Grove.[10] Forest es basa en el conjunt d'instruccions Quil.
MindQuantum
MindQuantum és un marc de computació quàntica basat en MindSpore, centrat en la implementació d'algorismes NISQ.[11][12]
Ocean
Un conjunt d'eines de codi obert desenvolupat per D-Wave. Escrit principalment en el llenguatge de programació Python, permet als usuaris formular problemes en els formats Ising Model i Quadratic Unconstrained Binary Optimization (QUBO). Els resultats es poden obtenir enviant-los a un ordinador quàntic en línia a Leap, l'entorn d'aplicacions quàntiques en temps real de D-Wave, màquines propietat del client o mostrejos clàssics
Un projecte de codi obert creat per fr per dissenyar circuits quàntics fotònics i desenvolupar algorismes quàntics, basats en Python. Les simulacions s'executen a l'ordinador de l'usuari o al núvol. Perceval també s'utilitza per connectar-se al processador quàntic fotònic basat en núvol de Quandela.[20]
Projecte Q
Un projecte de codi obert desenvolupat a l'Institut de Física Teòrica de l'ETH, que utilitza el llenguatge de programació Python per crear i manipular circuits quàntics.[21] Els resultats s'obtenen mitjançant un simulador o enviant treballs a dispositius quàntics d'IBM.
Qibo
Una API full-stack de codi obert per a la simulació quàntica, el control de maquinari quàntic i el calibratge desenvolupat per diversos laboratoris de recerca, inclosos QRC, CQT i INFN. Qibo és un marc modular que inclou múltiples backends per a la simulació quàntica i el control de maquinari.[22][23] Aquest projecte té com a objectiu proporcionar un marc de control de maquinari quàntic agnòstic de la plataforma amb controladors per a diversos instruments [24] i eines per a la calibració quàntica, la caracterització i la validació.[25] Aquest marc se centra en dispositius quàntics autoallotjats simplificant el desenvolupament de programari necessari als laboratoris.
Qiskit
Un projecte de codi obert desenvolupat per IBM.[26] Els circuits quàntics es creen i manipulen amb Python. Els resultats s'obtenen mitjançant simuladors que s'executen al dispositiu propi de l'usuari, simuladors proporcionats per IBM o prototips de dispositius quàntics proporcionats per IBM. A més de la capacitat de crear programes mitjançant operacions quàntiques bàsiques, hi ha disponibles eines de nivell superior per a algorismes i benchmarking dins de paquets especialitzats.[27] Qiskit es basa en l'estàndard OpenQASM per representar circuits quàntics. També admet el control del nivell de pols dels sistemes quàntics mitjançant l'estàndard QiskitPulse.
Qrisp
Qrisp[28] és un projecte de codi obert coordinat per la Fundació Eclipse[29] i desenvolupat en programació Python per Fraunhofer FOKUS[30] Qrisp és un llenguatge de programació d'alt nivell per crear i compilar algorismes quàntics. El seu model de programació estructurada permet un desenvolupament i manteniment escalables. La sintaxi expressiva es basa en variables en lloc de qubits, amb la QuantumVariable com a classe bàsica, i funcions en lloc de portes. Eines addicionals, com ara un simulador de rendiment i la descomputació automàtica, complementen l'ampli marc. A més, és independent de la plataforma, ja que ofereix una compilació alternativa de funcions elementals fins al nivell de circuit, basada en conjunts de portes específics del dispositiu.
Kit de desenvolupament quàntic
Un projecte desenvolupat per Microsoft[1] com a part del Framework .NET. Els programes quàntics es poden escriure i executar a Visual Studio i VSCode mitjançant el llenguatge de programació quàntica Q#. Els programes desenvolupats al QDK es poden executar a l'Azure Quantum de Microsoft, i en ordinadors quàntics de Quantinuum, IonQ i Pasqual.
Un entorn de programació quàntica i un compilador d'optimització desenvolupat per Cambridge Quantum Computing que s'orienta a simuladors i diversos back-ends de maquinari quàntic, llançat el desembre de 2018.[36]
Llenguatges de programació quàntics
Hi ha dos grups principals de llenguatges de programació quàntica: llenguatges de programació quàntic imperatiu i llenguatges de programació quàntica funcional.
Llengües imperatius
Els representants més destacats dels llenguatges imperatius són QCL, [37] LanQ [38] i Q|SI>.[39]
Llenguatges funcionals
S'estan realitzant esforços per desenvolupar llenguatges de programació funcionals per a la computació quàntica. Els llenguatges de programació funcionals són molt adequats per raonar sobre programes. Alguns exemples inclouen el QPL de Selinger, i el llenguatge semblant a Haskell QML d'Altenkirch i Grattage. Els llenguatges de programació quàntica d'ordre superior, basats en el càlcul lambda, han estat proposats per van Tonder, Selinger i Valiron i per Arrighi i Dowek.