The Quantum Era & IBM Q


https://bit.ly/2Ub87Kj
## Index 1. IBM-Q 2. Quantum Computing 3. Qiskit & Quantum Experience
## IBM-Q
![Juan Gómez, Diego Moreda and Salvador de la Puente](./imgs/qiskit-eng.jpeg) The engineering team: Juan, Diego and Salva.
### The quantum computer
![Quantum processor temperatures](./imgs/procesador-cuantico.png) The quantum computer is mostly a big refrigerator and isolator.
7 qubit chip 7 qubit chip with elements highlighted

We use superconductor qubits based on capacitors combined with a Josephson junction that behaves like a 2-energy-levels atom.

This is a **general-purpose** quantum computer.
Quantum volume is a measurement of the power of a quantum computer. It requires **error correction to improve** before increasing the power of a computer.
![Quantum volume requires improving error correction for improving power](./imgs/quantum-volume.png)
Dissapointing facts of quantum processors right now: * 100 micro-secongs until [decoherence](https://en.wikipedia.org/wiki/Quantum_decoherence) (execution time). * Re-calibration in the order of miliseconds; 10% of productivity. * Operation temperature of [20 mK](https://en.wikipedia.org/wiki/Absolute_zero). * Error mitigation requires **thousands** of physical qubits to ensure a logical one.
References * [Quantum Ready now, Quantum Advantage tomorrow](https://medium.com/@rssutor/quantum-ready-now-quantum-advantage-tomorrow-14739a28c6f5) * [Quantum Error Correction for Beginners](https://arxiv.org/pdf/0905.2794.pdf)
## Quantum Computing
![Dropbox 68 million hacked accounts](./imgs/dropbox-password-hack.png) > [...] over 68 million accounts, which contains email addresses and **hashed passwords** for Dropbox users.
### Big numbers
```python def grover(input_width, hash, reference): for input in binary_combinations(input_width): spawn(i => { if hash(i) == reference: print('The answer is ' + i) }, input) ``` This program solves hash inversion in one step.
The `binary_combinations` function returns a list of `2^80` 10-byte items. ![Cray Titan](imgs/titan.jpg) x 10.000 M ([yobibyte](https://en.wikipedia.org/wiki/Yobibyte))
``` 1 000 000 000 000 000 000 000 000 | | | | | | MIPS for an i7 | | | | A continued year of processing | | A million years of continued processing ``` For a 10 `latin-1` characters, you will loop over `2^80` items. One `1` leading `24` zeroes.
A hardware solution, supposing an integration technology of 1M complete circuits in 1 mm2 would require...
![Península Ibérica x 2](imgs/iberian-peninsula.jpg)
x 2
### Quantum algorithms
![Nine dots puzzle solved with 1 line](imgs/nine-dots-1.gif) Quantum computing requires a different approach of addressing problems...
![Nine dots puzzle solved with 1 line](imgs/nine-dots-2.gif) ...to take advantage of **quantum mechanics**.
### Quantum systems
**Certainty is in the probability**, not in the value.
![2-only states of a bit](imgs/bit-alternate.gif) A classical bit can hold `0` or `1` and can be read with **absolute certainty**.
![50% chance of reading a value or another](imgs/qubit-alternate.gif) A quantum bit can hold a combination of `0` and `1` and can be read one of the values with a **controlled probability**.
![66% chance of reading 0](imgs/qubit-alternate-2-1.gif) For instance: we can prepare the qubit to get **double chance of reading `0` than `1`**.
spinning coin value is unknown distribution is 50%/50%

The value of the spinning coin is unknown but the histogram is well known.

This is **superposition**.
![100%-chance of getting 00 histogram](imgs/histogram-00.png) With 2 qubits set to `0` and `0`, all the probability is concentrated in the `00` state.
But if we set the second qubit for being in a 50%-chance superposition...
![50%-change of getting 00 and 01 histogram](imgs/histogram-50.gif) ...there is a **division of probability**.
Making the first qubit to be in superposition too...
![25% change for every result histogram](imgs/histogram-25.gif) ...will cause another division of probability.
There are other means of controlling the histogram...
Each modification is a set of pulses... ...to the chip

(each alteration being a set of pulses on the quantum chip)

![Interchange of 01 and 11 states](imgs/histogram-swap.gif) ...such as **interchanging probability**...
![Changing the sign of probability](imgs/histogram-phase.gif) ...or "**inverting probability**".
The key for understanding quantum computing is to start accepting that the **"probability can be negative"**.
Such "probability" is actually called **amplitude**.
![Mutating histogram](imgs/interference.gif) Quantum algorithms use the signed nature of amplitudes to make **incorrect solutions to cancel each other**, causing the probability to **concentrate in the correct solution**.
This effect is called **interference**.
![Pascal law in two syringes](./imgs/syringe_hydraulics.gif) As in hydraulics systems where the liquid volume is preserved, the total probability is always 100%, so reducing probability of bad answers will **naturally increase** the correct answer chance.
### The Grover algorithm
![Dropbox 68 million hacked accounts](./imgs/dropbox-password-hack.png) Friendly reminder: we do have the **hash of the password**.
![Identify the element to search](imgs/tagging.png) First **identify the element** we want to search.
![Change the sign and reduce the average](imgs/tagging-2.png) **Invert the sign** of that element.*
![Inversion over the average](imgs/inversion-over-average.png) Perform an **inversion over the average**.
After some iterations, the probability is maximum. Perform the algorithm several times to reduce the error and **increase certainty**.
![The elephant in the room](./imgs/elephant-in-the-room.jpg)
### Entanglement
![Histogram of the adder with carrier](./imgs/adder.gif) We can prepare a 4-qubit histogram that implements an adder: `qubit1 + qubit2 = qubit3 (qubit4 is carry)`
![The adder histogram, split](./imgs/adder-split.gif) Measuring the input, **immediately conditions the output.**
![The adder histogram, split](./imgs/adder-split.gif) But it also works the opposite way. Measuring the output **immediately determines the input**.
Thanks to entanglement, all the **classical circuits fit inside a quantum computer**.
![A hash-focused hardware](./imgs/antminer.jpg) Classical algorithms can be translated to classical circuits.
### Cracking the password
![Dropbox 68 million hacked accounts](./imgs/dropbox-password-hack.png) Now yessssss!
![Password and hash entangled](./imgs/password-hash.gif) Implement the hash function in the quantum system: **passwords and hashes are now entangled**.
![Superposition of all passwords](./imgs/all-passwords.gif) Put the input in a superposition of equal chance: **all possible passwords with equal probability**.
![Grover on the hash part](./imgs/grover-on-hashes.gif) Use **Grover on the hash part** to increase the chance of getting the target hash.
![Measure the password](./imgs/measure-password.gif) **Measure the password part**. Voilà!
References: * [Quantum Computing Expert Explains One Concept in 5 Levels of Difficulty | WIRED](https://www.youtube.com/watch?v=OWJCfOvochA) * [Quantum Computing for Computer Scientist](https://www.youtube.com/watch?v=F_Riqjdh2oM) * [A Short Guide to Hard Problems](https://www.quantamagazine.org/a-short-guide-to-hard-problems-20180716/) * [Finally, a Problem That Only Quantum Computers Will Ever Be Able to Solve](https://www.quantamagazine.org/finally-a-problem-that-only-quantum-computers-will-ever-be-able-to-solve-20180621/) * [Grover and its Cryptographic Applications](https://www.henrycg.com/files/academic/pres/quals17-slides.pdf)
## Qiskit & Quantum Experience
![IBM Quantum Experience Frontend](imgs/IBM-QE-Frontend.png) https://www.ibm.com/ibmq
![IBM Quantum Experience Technologies used](imgs/IBM-QE-Techs.png)
* Users: **125.896** * Executions: **12.107.160**
![Qiskit](imgs/qiskit.png)
![Qiskit Ecosystem](imgs/qiskit_elements_black.png) Qiskit Ecosystem
![Qiskit Terra High level overview](imgs/qiskit_terra_overview.png) * Takes a **quantum circuit** as an input * Returns the **result** of the experiment
![Qiskit Loves Open Source](imgs/opensource.png)
### Community
Reach out! * [Join us in Slack](https://qiskit.slack.com/join/shared_invite/enQtNDc2NjUzMjE4Mzc0LTMwZmE0YTM4ZThiNGJmODkzN2Y2NTNlMDIwYWNjYzA2ZmM1YTRlZGQ3OGM0NjcwMjZkZGE0MTA4MGQ1ZTVmYzk) * [Follow us on Twitter](https://twitter.com/qiskit) * [Contribute to Open Source](https://github.com/qiskit/qiskit-terra) * [Read more on Medium](https://medium.com/@qiskit)
### Qiskit Camps

NY Qiskit Camp: 3-day learning and hacking experience.

[Madrid Qiskit Training Camp](https://madrid.qiskit.camp/)
References: * [Qiskit](https://qiskit.org/) * [Qiskit Organization on GitHub](https://github.com/qiskit) * [Qiskit and its Fundamental Elements](https://medium.com/qiskit/qiskit-and-its-fundamental-elements-bcd7ead80492)