Conheça a programação Quântica
Tags: quantum, development, programming
Published: 2020-06-18 19:32:00

Voltamos para a era do computador ser tão grande quanto o tamanho de uma sala. Mas essa era é a era dos computadores Quânticos onde a velocidade do processamento é muito mais alta que os computadores atuais.

Hoje computadores Quânticos precisam de cuidados especiais por exemplo exemplo resfriamento abaixo de 0oC pois eles utilizam moléculas quânticas em seu núcleo e isso faz com que ele esquente muito e também um ambiente que não aja ruídos que possam gerar uma Interferência no resultado das execuções, entre outros cuidados.

Atualmente as grandes empresas como Microsoft, IBM e Google já estão trabalhando no desenvolvimento desses computadores e de "emuladores" para os computadores convencionais.
Ambientes para programação quântica:

- [Microsoft QDK](https://www.microsoft.com/en-us/quantum/development-kit)
- [IBM Q](https://www.ibm.com/quantum-computing/)
- [Google Quantum](https://research.google/teams/applied-science/quantum/)

Temos um grande beneficio em usar programação quântica apesar de os computadores serem dispositivos grandes, complexos e caros. Eles utilizam as propriedades de partículas Subatômicas, átomos artificiais ou propriedades coletivas de partículas quânticas em seus sistemas de processamento e com isso temos a alta velocidade de processamento das informações e ela pode ser usada principalmente em:

-Criptografia
-Pesquisar
-Simulação quântica
-Otimização
-Aprendizado de máquina

Na programação Quântica nós temos o Qubit, que é a unidade básica de informações na computação quântica. Um Qubit representa uma partícula quântica na _Superposição_* de todos os estados possíveis Superposição é a capacidade das partículas Quânticas serem uma combinação de todos os estados possíveis, porque além dos estados 0 e 1 que temos presente nos binários podemos ter os dois valores ao mesmo tempo.

No mundo Quântico as partículas podem assumir os dois estados ao mesmo tempo, sendo chamado de Sobreposição.

Isso significa que a partícula fica no estado de vai ter um resultado ou não ao e fica num estado de observação que só vai se resolver quando tiver uma data marcada.

Orientação de um elétron ou a polarização de um fóton de luz representando `0 e 1` ao invés do valor true ou false em bit, o Qubit tem probabilidade de estar em `0 e 1` e nos dois estados ao mesmo tempo.

Isso significa que podemos explorar ao mesmo tempo os dois estados de cada qubit.

Por exemplo:

Dois Qubits podem existir ao mesmo tempo em 2 estados para cada Qubit, assim teremos 4 estados `00, 01, 10 e 11` e três Qubits podem ter 8 estados existindo ao mesmo tempo e assim por diante, se precisarmos achar uma resposta nesses estados de cada Qubits conseguimos executando somente uma vez sem testar as outras possibilidades.

A cada novo Qubit dobramos a possibilidade de combinações que podem ser testadas ao mesmo tempo.
Se usarmos isso para testar padrões conseguiremos o resultado correto em uma só execução.

**Criptografia**
Um cenário legal para testarmos é o de decifrar senha, onde temos uma lista com 100 possibilidades e que normalmente demoraria muito tempo para descobrir a senha ou o padrão , mas com um computador quântico isso seria fácil ao ponto de ser executado uma vez só e ele trazer pra você qual a senha correta sem passar por todas as tentativas pois ele executa todas elas ao mesmo tempo.

**Aprendizado de máquina**
O mesmo seria para trazer um score para classificação de dados com Machine Learning, onde o super processamento pouparia muito tempo e custos no uso de maquinas virtuais para esse processamento.

Além dessas possibilidades podemos ter simulações de átomos para testes de medicamentos que fará com que a medicina evolua muito mais rapidamente.

## Resumo
A computação quântica compartilha alguns dos mesmos conceitos da computação clássica, mas adiciona alguns novos ajustes.
Esses conceitos simplesmente são a superfície da mecânica quântica, mas são conceitos fundamentalmente importantes a saber para a computação quântica.

**Qubit**: é a unidade básica de informações na computação quântica. Um qubit representa uma partícula quântica na superposição de todos os estados possíveis.

**Superposição**: é a capacidade de as partículas quânticas serem uma combinação de todos os estados possíveis.

**Medida quântica**: é o ato de observar uma partícula quântica em superposição e resultar em um dos estados possíveis.

**Emaranhamento**: é a capacidade de as partículas quânticas correlacionarem os respectivos resultados de medição entre si.

**Interferência**: é o comportamento intrínseco de um qubit devido à superposição para influenciar a probabilidade de que ele entre em colapso para uma forma ou outra.

O hardware quântico é caro e frágil para o trabalho e, por conta disso temos os simuladores quânticos que são usados para escrever e testar programas.

Os computadores clássicos e quânticos usam operações lógicas (ou portas) para preparar cálculos.
Os cálculos quânticos retornam probabilidades.

Os avanços em técnicas e hardware quânticos estão mudando rapidamente o campo. Estes são apenas alguns dos [desenvolvimento atuais](https://phys.org/search/?search=quantum+computer&s=0).

Referências:

https://www.microsoft.com/en-us/quantum/development-kit
http://www.each.usp.br/petsi/jornal/?p=2641
https://www.ibm.com/quantum-computing/
https://research.google/teams/applied-science/quantum/
https://www.tecmundo.com.br/computacao-quantica/2627-o-que-e-qubit-o-bit-quantico-.htm
https://revistapesquisa.fapesp.br/a-era-dos-qubits/