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.
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. 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.
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 é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.
OpenQASM OpenQASM és la representació intermèdia introduïda per IBM per utilitzar-la amb Qiskit i IBM Q Experience.
Quil 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 teleportació quàntica, la correcció d'errors quàntics, la simulació, i els algorismes d'optimització) requereixen una arquitectura de memòria compartida.
Kits de desenvolupament de programari quàntic Els kits de desenvolupament de programari quàntic ofereixen col·leccions d'eines per crear i manipular programes quàntics. També proporcionen els mitjans per simular els programes quàntics o preparar-los per executar-los mitjançant dispositius quàntics basats en núvol i dispositius quàntics autoallotjats.
SDK amb accés a processadors quàntics 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.
Cirq Un projecte de codi obert desenvolupat per Google, que utilitza el llenguatge de programació Python per crear i manipular circuits quàntics. Els programes escrits en Cirq es poden executar a IonQ, Pasqual, Rigetti i Alpine Quantum Technologies.
Classiq 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. 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.
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 miniatura|350x350px|Una mostra de codi que utilitza projectq amb Python
PennyLane Una biblioteca Python de codi obert desenvolupada per Xanadu Quantum Technologies per a la programació diferenciable d'ordinadors quàntics. PennyLane ofereix als usuaris la possibilitat de crear models amb TensorFlow, NumPy o PyTorch, i connectar-los amb backends d'ordinadors quàntics disponibles a IBMQ, Google Quantum, Rigetti, Quantinuum i Alpine Quantum Technologies.
Perceval Un projecte de codi obert creat per 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.
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. 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. 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 i eines per a la calibració quàntica, la caracterització i la validació. 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. 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. 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 és un projecte de codi obert coordinat per la Fundació Eclipse i desenvolupat en programació Python per Fraunhofer FOKUS 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 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.
Strawberry Fields Una biblioteca Python de codi obert desenvolupada per Xanadu Quantum Technologies per dissenyar, simular i optimitzar circuits òptics quàntics de variable contínua (CV). Es proporcionen tres simuladors: un a la base Fock, un que utilitza la formulació gaussiana d'òptica quàntica, i un altre que utilitza la biblioteca d'aprenentatge automàtic TensorFlow. Strawberry Fields també és la biblioteca per executar programes al maquinari fotònic quàntic de Xanadu.
t|ket> 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.
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, LanQ i Q|SI>.
Llenguatges funcionals S'estan fent 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.
Referències
Categoria:Mecànica quàntica Categoria:Programació