Skip to content

Latest commit

 

History

History
79 lines (48 loc) · 6.7 KB

README.md

File metadata and controls

79 lines (48 loc) · 6.7 KB

QPowerAlgo

Algorithms with the qiskit framework

Bell States(Quantum Entanglement)

add list here

Grover's Search

add list here

Shor's Factorization

Shor’s algorithm is famous for factoring integers in polynomial time. Since the best-known classical algorithm requires superpolynomial time to factor the product of two primes, the widely used cryptosystem, RSA, relies on factoring being impossible for large enough integers.

The textbook link below contains more information about the algorithm, along with its implementation with Qiskit.

Quantum Key Distribution

Quantum key distribution (QKD) is a secure communication method which implements a cryptographic protocol involving components of quantum mechanics. It enables two parties to produce a shared random secret key known only to them, which can then be used to encrypt and decrypt messages. It is often incorrectly called quantum cryptography, as it is the best-known example of a quantum cryptographic task. By using quantum superpositions or quantum entanglement and transmitting information in quantum states, a communication system can be implemented that detects eavesdropping. If the level of eavesdropping is below a certain threshold, a key can be produced that is guaranteed to be secure (i.e., the eavesdropper has no information about it), otherwise no secure key is possible and communication is aborted.

Some great resources to understand the algorithm and implement with qiskit:

Bernstein Vazirani Algorithm

The Bernstein–Vazirani algorithm, which solves the Bernstein–Vazirani problem is a quantum algorithm invented by Ethan Bernstein and Umesh Vazirani in 1992. It's a restricted version of the Deutsch–Jozsa algorithm where instead of distinguishing between two different classes of functions, it tries to learn a string encoded in a function. The Bernstein–Vazirani algorithm was designed to prove an oracle separation between complexity classes BQP and BPP.

Some great resources to understand the algorithm and implement with qiskit:

Deutsch-Jozsa Algorithm

The Deutsch-Jozsa algorithm was the first example of a quantum algorithm that performs better than the best classical algorithm. It showed that there can be advantages to using a quantum computer as a computational tool for a specific problem.

The Deutsch-Josza algorithm is a simple example of a quantum algorithm that can be used to speed up a search. It determines whether or not a function has a certain property (balanced). The algorithm achieves this by requiring that the function need only be called once with a quantum algorithm instead of twice with a classical algorithm. When the function is very 'expensive', e.g., in terms of computational resources, it can be very beneficial if you have to compute this function only once instead of twice.

Although the speed-up of this specific algorithm is only a factor of 2, other quantum algorithms, using the same quantum mechanical effects, can achieve a polynomial or even an exponential speed-up compared to classical algorithms.

Some great resources to understand the algorithm and implement with qiskit:

Quantum Teleportation

Quantum teleportation is a demonstration of what Albert Einstein famously called "spooky action at a distance"—also known as quantum entanglement. In entanglement—one of the basic of concepts of quantum physics—the properties of one particle affect the properties of another, even when the particles are separated by a large distance. Quantum teleportation involves two distant, entangled particles in which the state of a third particle instantly "teleports" its state to the two entangled particles.

Quantum teleportation is an important means for transmitting information in quantum computing. While a typical computer consists of billions of transistors, called bits, quantum computers encode information in quantum bits, or qubits. A bit has a single binary value, which can be either "0" or "1," but qubits can be both "0" and "1" at the same time. The ability for individual qubits to simultaneously occupy multiple states underlies the great potential power of quantum computers.

Some great resources to understand and implement with qiskit:

VQC(Variational Quantum Classifier)

add list here

Quantum Random Walk

Quantum walks are considered the quantum analogue of classical walks, which are useful for developing classical randomized algorithms. Quantum walks have already proved useful for designing quantum algorithms. The most general definition of a quantum walk on a graph demands that its time evolution obey the laws of quantum mechanics and is constrained by graph locality.

Suppose we have n qubit quatum state where the first qubit act as a coin with two equal probabality possibilities of spin up or spin down. depending on the spin of the coin qubit, rest of the system either take a step forward or backward. If we measure our resultant state after every step, we will have usual classical random walk. But, the key idea behind quantum random walks is to iterate the step we have introduced without resorting to intermediate measurements.

For further details look into the following great works: