Programação de computadores quânticos para cursos não-físicos

44

Eu venho de uma formação não-física e estou muito interessado em buscar a Computação Quântica - especialmente em como programá-las. Qualquer orientação sobre como começar será muito útil.

Koder101
fonte
Um programador clássico não precisa entender o funcionamento do elétron. Isso se aplica ao QED também.
tgm1024 17/08
A propósito, o mecanismo de formatação aqui parece terrivelmente quebrado em comparação com outros sites de troca de pilhas. Tentei criar uma resposta real e tive que desistir, recorrendo a um comentário muito simples. As listas aqui não se comportam entre aspas. Eu pensei que todos os sites de stackexchange compartilham o mesmo código de interface do usuário.
tgm1024
@ tgm1024 a que você está se referindo exatamente? Que formatação não funciona aqui, mas em outros sites? As listas entre aspas funcionam perfeitamente bem para mim
glS

Respostas:

22

Você pode começar com uma introdução a computadores quânticos como este do Voxxed Days Vienna 2018 - destina-se a pessoas com experiência em programação, mas com pouco ou nenhum conhecimento prévio em mecânica quântica. Depois disso, você pode conferir os guias no IBM Quantum Experience ou no Microsoft Quantum Development Kit .

Além disso, existem muitos vídeos no YouTube, por exemplo, que podem ajudar você a entender o tópico mais profundamente.

blalasaadri
fonte
17

Eu acho que os programadores quânticos não precisam necessariamente saber sobre física quântica e álgebra linear. Essas são certamente coisas que ajudarão a ampliar o conhecimento quântico dos programadores, mas não devem ser consideradas pré-requisitos.

Mesmo assim, a maioria dos recursos para ajudar um programador quântico iniciante começa com uma suposição de álgebra linear. Os que não se concentram principalmente no QISKit, o SDK do dispositivo quântico da IBM (e alguns deles foram escritos por mim).

O programa mais simples que você pode criar é um "Hello World". Como você faz isso em computadores quânticos? Minha proposta é uma superposição de emoticons .

Depois de ir além do “Hello World” na programação quântica, você desejará fazer algo mais complexo. Muitas vezes, as pessoas fazem jogos simples. Então, vamos fazer isso com um computador quântico. Eu fiz navios de guerra .

Você encontrará esses e muitos outros exemplos de programação quântica no tutorial do QISKit . Acho que esse é provavelmente o melhor lugar para novos programadores quânticos verem o que pode ser feito e como fazê-lo.

James Wootton
fonte
5

pyQuil é uma biblioteca de programação quântica de código aberto em Python. A documentação inclui uma introdução prática à computação quântica, onde você aprende por programação. Não assume nenhuma formação em física.

Aqui estão alguns links para os principais tópicos:

Will Zeng
fonte
5

Não é necessário entender completamente a Mecânica Quântica para entender a teoria por trás do CQ. Sou bacharel em matemática / programador e li sobre o tópico e também fiz o antigo curso edX QC (infelizmente não está disponível, mas existem outros). Acho que posso dizer que entendo a essência do CQ, mas não sei quase nada sobre Mecânica Quântica.

A parte principal é que a Computação Quântica usa principalmente álgebra linear, que é baseada em matemática comumente ensinada em estudos de graduação em engenharia / ciência da computação. Compare isso com a Mecânica Quântica real, que usa espaços de dimensão infinita (ou análise funcional, se você quiser).

Se você se sente confortável com esses tópicos de graduação em matemática, pode conferir a Mecânica Quântica de Susskind : Teórico Mínimo - na verdade, não é sobre mecânica quântica 'real', é principalmente algo útil para o CQ. Aliás, toda a série de livros Teórico Mínimo é voltada para pessoas que sabem um pouco de matemática (como cientistas da computação ou cursos de engenharia) e gostariam de saber mais sobre física. Também existem muitos cursos on-line, por exemplo, existem novos cursos no edX, mas eu não os fiz, então não posso recomendar um.

Jakub Bartczuk
fonte
4

Se você quiser ir além de aprender a escrever circuitos quânticos nas várias estruturas de programação quântica, como Q # , pyQuil e QISKit , recomendo este artigo recente com o título Implementações de algoritmos quânticos para iniciantes do Laboratório Nacional de Los Alamos. É um ótimo recurso para entender como compilar e implementar vários algoritmos quânticos, bem como seus oráculos e sub-rotinas específicas como circuitos quânticos com o IBM Q Experience. Eu recomendo que você os implemente em qualquer uma das estruturas de programação mencionadas e aprenda os detalhes detalhados à medida que avança.

Mark Fingerhuth
fonte
4

Computadores quânticos são programados por (linguagens de programação em evolução representando) os chamados circuitos quânticos. Estas são uma sequência de portas quânticas mais as informações sobre quais bits quânticos (qubits) eles agem.

A única coisa que você realmente precisa saber sobre os portões quânticos é que eles representam rotações (em um espaço dimensional mais alto, o chamado espaço de Hilbert). Portanto, eles são reversíveis: os computadores quânticos são programados com lógica reversível.

|00|01|10|11para um sistema de 2 qubit na notação usual de Dirac) obtém um número complexo como coeficiente ou como amplitude de probabilidade. Os vetores de base são ortogonais e abrangem o espaço Hilbert do estado; as amplitudes de probabilidade podem ser vistas como coordenadas nele. Esta é a imagem na qual portões quânticos efetuam rotações. Você verá que os físicos costumam usar uma imagem diferente, a esfera de Bloch, para sistemas de qubit único, nos quais portões quânticos também causam rotações (mas às vezes por um ângulo maior ou por um que é omitido nessa imagem).

Toda lógica convencional pode ser implementada por um computador quântico, expressando-o primeiro em lógica reversível (que pode exigir bits ancilla). O portão NOT clássico corresponde ao portão quântico X, mas, diferentemente do caso clássico em que os únicos portões reversíveis de 1 bit são a identidade e o portão NOT, um computador quântico possui quatro portões correspondentes (X, Y, Z de acordo com as rotações no Esfera de Bloch, mais a identidade). Além disso, você pode ter rotações que giram apenas uma fração da distância em que esses portões giram; alguns particularmente interessantes têm nomes e abreviações especiais, como o portão Hadamard ou o portão H, que cria a superposição igual de todos os estados.

Infelizmente, os primeiros engenheiros de software quântico provavelmente terão que saber um pouco sobre o hardware de computador quântico que estarão usando: Devido ao ângulo arbitrário e continuamente selecionável da rotação efetiva de uma porta quântica, existe um tipo de elemento analógico para computadores quânticos que necessariamente cria erros (e os computadores quânticos físicos têm ainda mais fontes de erro do que apenas isso). Existe uma maneira de lidar com isso: a correção de erros quânticos que discretiza erros e corrige as discretizações mais prováveis ​​delas para obter computações (idealmente) arbitrariamente complexas com erros vinculados. Mas a otimização provavelmente significará que um computador quântico com uma opção de correção de erro quântico estará mais apto a determinados porta quânticos ou mesmo algoritmos do que outros,

pirâmides
fonte
Alguém mais se perguntou se os únicos que entenderão como escrever facilmente algoritmos quânticos serão AI quânticos auto-evoluídos?
tgm1024 16/10