Lecture 2 - Starting Quantum Computing
We have the following assignment to do before next week. I won't list it here (in case it gets updated) but you can check things out here.
Overview of Quantum...
The base thing we'll talk about is quantum mechanics. Without this, there's no qbits, no nothing. Some related terms in here are:
- Schrodinger's Cat
- Hilber Spaces
- Measurement
- Entanglement
- Wave Function
- 2nd Quantization (we think of light as a field, but now the 2nd quantization says that the atom is a field now. Quantum Field theory is related, and is a higher/more advanced version of QM)
- Quantum information science (how to use quantum processes to encode information)
- Quantum technology (knowing how to represent information in QM ways, how can we operate on it)
- ...
We bunch these together as quantum information science and technology (QIST). Some people include or exclude quantum simulation, where the idea is that classical computers can only simulate so much, up to a point (by being discretized). Instead, you can use quantum systems to setup and represent a system that you want simulated. The main difference here is that classical computers are
There's also quantum teleportation, where information is being transferred via QM ways. This helps with quantum communication and quantum cryptography.
Specifically into Quantum Computing (this class)
We'll specifically talk about:
- Theory
- Implementation
- Benchmarking and Optimization
- Quantum Supercomputer
- Quantum Algorithms
- Quantum software (ex:
qiskit
)
The interesting thing here is that the general consensus is that quantum computing won't really replace classical computers; however, they work really well hand in hand with classical computers. A classical computer may be really good at adding two integers, but a quantum computer isn't.
Another thing is that we can run everything at once, but when we measure the qbit (a linear combination of a 0 or 1 logical) it collapses into one or the other.
Quantum Computing Theory
We have the quantum bit (a qubit/qbit) that represents our single unit of data. We use the bloch sphere represents the state of our qbit, in order to read it. Then there's quantum gates
that take combinations of our qubits and do operations on them.
An issue in these is that there's limits on Quantum Computing. Mainly, similar to how transistors can change state theoretically, it's pretty hard to do so in most environments. But qubits are fragile and experiences decoherence, where the state can possibly change after waiting long enough. Decoherence occurs when entanglement occurs with the environment, which introduces noise.
Furthermore, energetic noise occurs if enough energy from the environment changes the state of the qubit.
Quantum Computing Implementation
We have quantum computer architecture. Namely, we have the following ways to implement it:
- trapped ion
- quantum dots
- neutral atom quantum computing
- ... (there's a LOT more)
Quantum Algorithms
There's a lot of quantum algorithms:
- Deutsch-Josza
- Grover
- Quantum phase estimation
- Quantum Fourier transform
- Shor
- Variational quantum eigensolver
In fact, if you look up NISQ. We're in the era where, while people increase the number of qubits and reduce their decoherence, we need to find good ways to utilize algorithms for these quantum technologies.