## Quantum Computers

QUANTUM COMPUTER: ONLY 3% OF PEOPLE UNDERSTAND IT | FORMAT

Today it will be very interesting, but very difficult, because we will talk about quantum computers. Let’s talk about what is a qubit? What is the state of uncertainty and quantum entanglement? We will see and show a real quantum computer in Moscow, and at the same time we will learn how to make it? What is a QUANTUM computer? | DESCRIBE – https://youtu.be/dYSb3mS6kPc 🤟Our videos in Telegram: https://t.me/droidervideo

SPEAKERS: Alexey Fedorov – Head of the scientific group “Quantum Information Technologies” at the Russian Quantum Center Alexander Borisenko – Laboratory “Optics of Complex Quantum Systems” of the Physical Institute. P.N. Lebev RAS

Subscription! ↓ ↓ ↓ https://goo.gl/CbimGk

Today it will be very interesting, but very difficult, because we will talk about quantum computers. Let’s talk about what CONTENT is:

1. 00:00 Intro: Not very clear…
2. 00:58 An important announcement from Boris Vedensky
3. 02:35 Do you understand how a quantum computer works?
4. 08:42 What happens to qubits inside a quantum computer?
5. 11:51 A primitive example of how a quantum computer works
6. 16:50 How do we issue a request to a quantum computer?
7. 21:49 What operators are there for qubits?
8. 27:45 Quantum computer increases power exponentially
9. 30:55 What does quantum supremacy mean?
10. 32:06 How much does a quantum computer from Google cost?
11. 33:03 Will there be quantum computer games and quantum chip smartphones?
12. 35:40 Examples of tasks for qubits
13. 40:35 What does quantum computer programming look like?
14. 43:04 Why does a quantum computer look like a chandelier?
15. 48:10 Security and cryptographic keys
16. 56:54 Quantum computer on ultracold ions
17. 01:01:45 How does the connectivity of qubits at a distance make it possible to create new communication technologies?
18. 01:08:09 What is the state of development of quantum computers?
19. 01:12:05 Thank you for watching the qubit? What is the state of uncertainty and quantum entanglement? We will see and show a real quantum computer in Moscow, and at the same time we will learn how to make it? What is a QUANTUM computer? | DESCRIBE – https://youtu.be/dYSb3mS6kPc 🤟Our videos in Telegram: https://t.me/droidervideo

## Quantum Computers

Quantum computing is a type of  computation  that harnesses the collective properties of  quantum  states, such as  superposition,  interference, and entanglement,  to perform calculations. The devices that perform quantum computations are known as quantum computers.  Though current quantum computers are too small to outperform usual (classical) computers for practical applications, they are believed to be capable of solving certain  computational problems,  such as  integer factorization  (which underlies RSA encryption), substantially faster than classical computers. The study of quantum computing is a subfield of  quantum information science.

There are several types of quantum computers (also known as quantum computing systems), including the quantum circuit modelquantum Turing machineadiabatic quantum computerone-way quantum computer, and various quantum cellular automata. The most widely used model is the  quantum circuit, based on the quantum bit, or “qubit“, which is somewhat analogous to the  bit in classical computation. A qubit can be in a 1 or 0  quantum state, or in a superposition of the 1 and 0 states. When it is measured, however, it is always 0 or 1; the  probability  of either outcome depends on the qubit’s quantum state immediately prior to measurement.

Efforts towards building a physical quantum computer focus on technologies such as  transmonsion traps  and  topological quantum computers, which aim to create high-quality qubits.  These qubits may be designed differently, depending on the full quantum computer’s computing model, as to whether  quantum logic gatesquantum annealing, or  adiabatic quantum computation  are employed. There are currently a number of significant obstacles to constructing useful quantum computers. It is particularly difficult to maintain qubits’ quantum states, as they suffer from  quantum decoherence and  state fidelity. Quantum computers therefore require  error correction.

Any computational problem that can be solved by a classical computer can also be solved by a quantum computer.  Conversely, any problem that can be solved by a quantum computer can also be solved by a classical computer, at least in principle given enough time. In other words, quantum computers obey the  Church–Turing thesis.  This means that while quantum computers provide no additional advantages over classical computers in terms of  computabilityquantum algorithms  for certain problems have significantly lower   time complexities  than corresponding known classical algorithms. Notably, quantum computers are believed to be able to quickly solve certain problems that no classical computer could solve in any feasible amount of time—a feat known as “quantum supremacy.” The study of the  computational complexity of problems with respect to quantum computers is known as  quantum complexity theory.

## History

Quantum computing began in 1980 when physicist Paul Benioff proposed a quantum mechanical model of the  Turing machine.  Richard Feynman and Yuri Manin later suggested that a quantum computer had the potential to simulate things a  classical computer  could not feasibly do.  In 1986 Feynman introduced an early version of the quantum circuit notation. In 1994, Peter Shor developed a quantum algorithm for finding the prime factors of an integer with the potential to decrypt  RSA -encrypted communications.  In 1998  Isaac ChuangNeil Gershenfeld  and Mark Kubinec created the first two- qubit  quantum computer that could perform computations.  Despite ongoing experimental progress since the late 1990s, most researchers believe that  “fault-tolerant  quantum  computing [is] still a rather distant dream.” In recent years, investment in quantum computing research has increased in the public and private sectors.  On 23 October 2019,  Google AI, in partnership with the U.S. National Aeronautics and Space Administration  (NASA), claimed to have performed a quantum computation that was  infeasible on any classical computer, but whether this claim was or is still valid is a topic of active research

A December 2021  McKinsey & Company analysis states that “..investment dollars are pouring in, and quantum-computing start-ups are proliferating”. They go on to note that “While quantum computing promises to help businesses solve problems that are beyond the reach and speed of conventional high-performance computers, use cases are largely experimental and hypothetical at this early stage.”

## Quantum circuit

The Bloch sphere is a representation of a qubit, the fundamental building block of quantum computers.

Definition

The prevailing model of quantum computation describes the computation in terms of a network of  quantum logic gates.  This model is a complex  linear-algebraic  generalization of  boolean circuits.

A memory consisting of {\textstyle n} bits of information has {\textstyle 2^{n}} possible states. A vector representing all memory states thus has {\textstyl e 2^{n}} entries (one for each state). This vector is viewed as a probability vector and represents the fact that the memory is to be found in a particular state.

The bits of classical computers are not capable of being in superposition, so one entry must have a value of 1 (i.e. a 100% probability of being in this state) and all other entries would be zero.

In quantum mechanics, probability vectors can be generalized to  density operators. The  quantum state vector formalism is usually introduced first because it is conceptually simpler, and because it can be used instead of the density matrix formalism for pure states, where the whole quantum system is known.

We begin by considering a simple memory consisting  of only one quantum bit. When  measured, this memory may be found in one of two states: the zero state or the one state. We may represent the state of this memory using  Dirac notation so that

A quantum memory may then be found in any quantum superposition {\textstyle |\psi \rangle } of the two classical states {\textstyle |0\rangle } and {\textstyle |1\rangle }:

{\displaystyle |\psi \rangle :=\alpha \,|0\rangle +\beta \,|1\rangle ={\begin{pmatrix}\alpha \\\beta \end{pmatrix}};\quad |\alpha |^{2}+|\beta |^{2}=1.}

The coefficients {\textstyle \alpha } and {\textstyle \beta } are complex numbers. The state {\textstyle |\psi \rangle } is not itself a probability vector but can be connected with a probability vector via the measurement operation. If the quantum memory is measured to determine whether the state is {\textstyle |0\rangle } or {\textstyle |1\rangle } (this is known as a computational basis measurement), the zero state would be observed with probability {\textstyle |\alpha |^{2}} and the one state with probability {\textstyle |\beta |^{2}}. The numbers {\textstyle \alpha } and {\textstyle \beta } are called probability amplitudes.

The state of this one-qubit quantum memory can be manipulated by applying  quantum logic gates, analogous to how classical memory can be manipulated with  classical logic gates. One important gate for both classical and quantum computation is the NOT gate, which can be represented by a  matrix

{\displaystyle X:={\begin{pmatrix}0&1\\1&0\end{pmatrix}}.}

Mathematically, the application of such a logic gate to a quantum state vector is modelled with  matrix multiplication.  Thus {\textstyle X|0\rangle =|1\rangle } and {\textstyle X|1\rangle =|0\rangle }.

The mathematics of single qubit gates can be extended to operate on multi-qubit quantum memories in two important ways. One way is simply to select a qubit and apply that gate to the target qubit whilst leaving the remainder of the memory unaffected. Another way is to apply the gate to its target only if another part of the memory is in a desired state. These two choices can be illustrated using another example. The possible states of a two-qubit quantum memory are

The CNOT gate can then be represented using the following matrix:

{\displaystyle \operatorname {CNOT} :={\begin{pmatrix}1&0&0&0\\0&1&0&0\\0&0&0&1\\0&0&1&0\end{pmatrix}}.}

As a mathematical consequence of this definition, {\textstyle \operatorname {CNOT} |00\rangle =|00\rangle } {\textstyle \operatorname {CNOT} |01\rangle =|01\rangle } {\textstyle \operatorname {CNOT} |10\rangle =|11\rangle } , and {\textstyle \operatorname {CNOT} |11\rangle =|10\rangle }. In other words, the CNOT applies a NOT gate ({\textstyle X} from before) to the second qubit if and only if the first qubit is in the state {\textstyle |1\rangle }. If the first qubit is {\textstyle |0\rangle }, nothing is done to either qubit.

In summary, a quantum computation can be described as a network of quantum logic gates and measurements. However, any measurement can be deferred to the end of quantum computation, though this deferment may come at a computational cost, so most  quantum circuits  depict a network consisting only of quantum logic gates and no measurements.

Any quantum computation (which is, in the above formalism, any unitary matrix of size {\displaystyle 2^{n}\times 2^{n}} over {\displaystyle n} qubits) can be represented as a network of quantum logic gates from a fairly small family of gates. A choice of gate family that enables this construction is known as a universal gate set, since a computer that can run such circuits is a universal quantum computer. One common such set includes all single-qubit gates as well as the CNOT gate from above. This means any quantum computation can be performed by executing a sequence of single-qubit gates together with CNOT gates. Though this gate set is infinite, it can be replaced with a finite gate set by appealing to the Solovay-Kitaev theorem.

### Quantum algorithms

Progress in finding quantum algorithms typically focuses on this quantum circuit model, though exceptions like the quantum adiabatic algorithm exist. Quantum algorithms can be roughly categorized by the type of speedup achieved over corresponding classical algorithms.

Quantum algorithms that offer more than a polynomial speedup over the best known classical algorithm include  Shor’s algorithm for factoring and the related quantum algorithms for computing  discrete logarithms, solving  Pell’s equation, and more generally solving the  hidden subgroup problem for abelian finite groups.  These algorithms depend on the primitive of the  quantum Fourier transform. No mathematical proof has been found that shows that an equally fast classical algorithm cannot be discovered, although this is considered unlikely.[25][self-published source?] Certain oracle problems like Simon’s problem and the Bernstein–Vazirani problem do give provable speedups, though this is in the quantum query model, which is a restricted model where lower bounds are much easier to prove and doesn’t necessarily translate to speedups for practical problems.

Other problems, including the simulation of quantum physical processes from chemistry and solid-state physics, the approximation of certain  Jones polynomials,  and the  quantum algorithm for linear systems of equations  have quantum algorithms appearing to give super-polynomial speedups and are  BQP-complete.  Because these problems are BQP-complete, an equally fast classical algorithm for them would imply that no quantum algorithm gives a super-polynomial speedup, which is believed to be unlikely.  Some quantum algorithms, like   Grover’s algorithm  and  amplitude  amplification, give polynomial speedups over corresponding classical algorithms. Though these algorithms give comparably modest quadratic speedup, they are widely applicable and thus give speedups for a wide range of problems.

Many examples of provable quantum speedups for query problems are related to Grover’s algorithm, including  Brassard,  Høyer,  and Tapp’s algorithm  for finding collisions in two-to-one functions, which uses Grover’s algorithm, and Farhi, Goldstone, and Gutmann’s algorithm for evaluating NAND trees, which is a variant of the search problem.

## Potential applications

### Cryptography

A notable application of quantum computation is for  attacks on cryptographic systems that are currently in use.  Integer factorization, which underpins the security of  public key cryptographic  systems, is believed to be computationally infeasible with an ordinary computer for large integers if they are the product of few  prime numbers  (e.g., products of two 300-digit primes).  By comparison, a quantum computer could efficiently solve this problem using  Shor’s algorithm  to find its factors. This ability would allow a quantum computer to break many of the cryptographic systems in use today, in the sense that there would be a  polynomial time (in the number of digits of the integer) algorithm for solving the problem. In particular, most of the popular  public key ciphers are based on the difficulty of factoring integers or the  discrete logarithm  problem, both of which can be solved by Shor’s algorithm. In particular, the RSADiffie–Hellman,  and  elliptic curve Diffie–Hellman algorithms could be broken. These are used to protect secure Web pages, encrypte d email, and many other types of data. Breaking these would have significa n t ramifications for electronic privacy and security.

Identifying cryptographic systems that may be secure against quantum algorithms is an actively researched topic under the field of  post-quantum cryptography. Some public-key algorithms are based on problems other than the integer factorization and discrete logarithm problems to which Shor’s algorithm applies, like the  McEliece cryptosystem  based on a problem in  coding theory. Lattice-based cryptosystems are also not known to be broken by quantum computers, and finding a polynomial time algorithm for solving the  dihedral hidden subgroup problem, which would break many lattice based cryptosystems, is a well-studied open problem.  It has been proven that applying Grover’s algorithm to break a  symmetric (secret key) algorithm  by brute force requires time equal to roughly 2n/2 invocations of the underlying cryptographic algorithm, compared with roughly 2n in the classical case,  meaning that symmetric key lengths are effectively halved: AES-256 would have the same security against an attack using Grover’s algorithm that AES-128 has against classical brute-force search (see Key size).

Quantum cryptography could potentially fulfill some of the functions of public key cryptography. Quantum-based cryptographic systems could, therefore, be more secure than traditional systems against quantum hacking.

### Search problems

The most well-known example of a problem admitting a polynomial quantum speedup is unstructured search, finding a marked item out of a list of  {\displaystyle n}  items in a database. This can be solved by  Grover’s algorithm  using {\displaystyle O({\sqrt {n}})}  queries to the database, quadratically fewer than the {\displaystyle \Omega (n)}  queries required for classical algorithms. In this case, the advantage is not only provable but also optimal: it has been shown that Grover’s algorithm gives the maximal possible probability of finding the desired element for any number of oracle lookups.

Problems that can be efficiently addressed with Grover’s algorithm have the following properties:  There is no searchable structure in the collection of possible answers,

1. The number of possible answers to check is the same as the number of inputs to the algorithm, and
2. There exists a boolean function that evaluates each input and determines whether it is the correct answer

For problems with all these properties, the running time of Grover’s algorithm on a quantum computer scales as the square root of the number of inputs (or elements in the database), as opposed to the linear scaling of classical algorithms. A general class of problems to which Grover’s algorithm can be applied is  Boolean satisfiability problem,  where the database through which the algorithm iterates is that of all possible answers. An example and possible application of this is a  password cracker  that attempts to guess a password. Breaking  symmetric ciphers  with this algorithm is of interest of government agencies .

### Simulation of quantum systems

Since chemistry and nanotechnology rely on understanding quantum systems, and such systems are impossible to simulate in an efficient manner classically, many  believe  quantum simulation  will be one of the most important applications of quantum computing.  Quantum simulation could also be used to simulate the behavior of atoms and particles at unusual conditions such as the reactions inside a  collider. Quantum simulations might be used to predict future paths of particles and protons under superposition in the double-slit experiment.[citation needed] About 2% of the annual global energy output is used for  nitrogen fixation  to produce  ammonia  for the  Haber process  in the agricultural fertilizer industry while naturally occurring organisms also produce ammonia. Quantum simulations might be used to understand this process increasing production.

### Quantum annealing and adiabatic optimization

Quantum annealing  or  Adiabatic quantum computation  relies on the adiabatic theorem to undertake calculations. A system is placed in the ground state for a simple Hamiltonian, which is slowly evolved to a more complicated Hamiltonian whose ground state represents the solution to the problem in question. The adiabatic theorem states that if the evolution is slow enough the system will stay in its ground state at all times through the process.

### Machine learning

Since quantum computers can produce outputs that classical computers cannot produce efficiently, and since quantum computation is fundamentally linear algebraic, some express hope in developing quantum algorithms that can speed up machine learning tasks.  For example, the  quantum algorithm for linear systems of equations,  or “HHL Algorithm”, named after its discoverers Harrow, Hassidim, and Lloyd, is believed to provide speedup over classical counterparts.  Some research groups have recently explored the use of quantum annealing hardware for training  Boltzmann machines  and  deep neural networks. Computational biology

In the field of   computational biology,  quantum computing has played a big role in solving many biological problems. One of the well-known examples would be in computational genomics and how computing has drastically reduced the time to sequence a human genome. Given how computational biology is using generic data modeling and storage, its applications to computational biology are expected to arise as well.

### Computer-aided drug design and generative chemistry

Deep generative chemistry models emerge as powerful tools to expedite drug discovery. However, the immense size and complexity of the structural space of all possible drug-like molecules pose significant obstacles, which could be overcome in the future by quantum computers. Quantum computers are naturally good for solving complex quantum many-body problems  and thus may be instrumental in applications involving quantum chemistry. Therefore, one can expect that quantum-enhanced generative models  including quantum GANs  may eventually be developed into ultimate generative chemistry algorithms. Hybrid architectures combining quantum computers with deep classical networks, such as Quantum Variational Autoencoders, can already be trained on commercially available annealers and used to generate novel drug-like molecular structures.

## Developing physical quantum computers

### Challenges

There are a number of technical challenges in building a large-scale quantum computer. Physicist  David DiVincenzo  has listed these requirements for a practical quantum computer:

• Physically scalable to increase the number of qubits
• Qubits that can be initialized to arbitrary values
• Quantum gates that are faster than  decoherence  time.
• Universal gate set
• Qubits that can be read easily

Sourcing parts for quantum computers is also very difficult. Many quantum computers, like those constructed by  Google  and  IBM,  need  helium-3, a  nuclear  research byproduct, and special  superconducting  cables made only by the Japanese company Coax Co.

The control of multi-qubit systems requires the generation and coordination of a large number of electrical signals with tight and deterministic timing resolution. This has led to the development of quantum controllers which enable interfacing with the qubits. Scaling these systems to support a growing number of qubits is an additional challenge.

Quantum decoherence

One of the greatest challenges involved with constructing quantum computers is controlling or removing quantum decoherence. This usually means isolating the system from its environment as interactions with the external world cause the system to decohere. However, other sources of decoherence also exist. Examples include the quantum gates, and the lattice vibrations and background thermonuclear spin of the physical system  used  to implement the qubits. Decoherence is irreversible, as it is effectively non-unitary, and is usually something that should be highly controlled, if not avoided. Decoherence times for candidate systems in particular, the transverse relaxation time T2 (for  NMR  and  MRI  technology, also called the dephasing time), typically range between nanoseconds and seconds at low temperature. Currently, some quantum computers require their qubits to be cooled to 20 millikelvin (usually using a  dilution refrigerator ) in order to prevent significant decoherence.  A 2020 study argues that  ionizing radiation  such as  cosmic rays  can nevertheless cause certain systems to decohere within milliseconds.

As a result, time-consuming tasks may render some quantum algorithms inoperable, as maintaining the state of qubits for a long enough duration will eventually corrupt the superpositions.

These issues are more difficult for optical approaches as the timescales are orders of magnitude shorter and an often-cited approach to overcoming them is optical pulse shaping. Error rates are typically proportional to the ratio of operating time to decoherence time, hence any operation must be completed much more quickly than the decoherence time.

As described in the  Quantum threshold theorem,  if the error rate is small enough, it is thought to be possible to use  quantum error correction  to suppress errors and decoherence. This allows the total calculation time to be longer than the decoherence time if the error correction scheme can correct errors faster than decoherence introduces them. An often cited figure for the required error rate in each gate for fault-tolerant computation is 10−3, assuming the noise is depolarizing.

Meeting this scalability condition is possible for a wide range of systems. However, the use of error correction brings with it the cost of a greatly increased  number of required qubits. The number required to factor integers using Shor’s algorithm is still polynomial, and thought to be between  L  and L2 , where L is the number of digits in the number to be factored; error correction algorithms would inflate this figure by an additional factor of L. For a 1000-bit number, this implies a need for about 104 bits without error correction . With error correction, the figure would rise to about 107 bits. Computation time is about L2 or about 107 steps and at 1 MHz, about 10 seconds.

A very different approach to the stability-decoherence problem is to create a  topological quantum computer  with  anyonsquasi-particles used as threads and relying on  braid theory to form stable logic gates.

### Main article:  Quantum supremacy

Quantum supremacy  is a term coined by  John Preskill  referring to the engineering feat of demonstrating that a programmable quantum device can solve a problem beyond the capabilities of state-of-the-art classical computers. The problem need not be useful, so some view the quantum supremacy test only as a potential future benchmark.

In October 2019, Google AI Quantum, with the help of NASA, became the first to claim to have achieved quantum supremacy by performing calculations on the  Sycamore quantum computer  more than 3,000,000 times faster than they could be done on  Summit,  generally considered the world’s fastest computer.  This claim has been subsequently challenged: IBM has stated that Summit can perform samples much faster than claimed,  and researchers have since developed better algorithms for the sampling problem used to claim quantum supremacy, giving substantial reductions to the gap between Sycamore and classical supercomputers.

In December 2020, a group at  USTC  implemented a type of  Boson sampling  on 76 photons with a  photonic quantum computer  Jiuzhang  to demonstrate quantum supremacy. The authors claim that a classical contemporary supercomputer would require a computational time of 600 million years to generate the number of samples their quantum processor can generate in 20 seconds.  On November 16, 2021 at the quantum computing summit IBM presented a 127-qubit microprocessor named  IBM Eagle.

### Skepticism

Some researchers have expressed skepticism that scalable quantum computers could ever be built, typically because of the issue of maintaining coherence at large scales.

Bill Unruh doubted the practicality of quantum computers in a paper published back in 1994.  Paul Davies  argued that a 400-qubit computer would even come into conflict with the cosmological information bound implied by the  holographic principle.  Skeptics like  Gil Kalai  doubt that quantum supremacy will ever be achieved.  Physicist  Mikhail Dyakonov  has expressed skepticism of quantum computing as follows:

“So the number of continuous parameters describing the state of such a useful quantum computer at any given moment must be… about 10300… Could we ever learn to control the more than 10300 continuously variable parameters defining the quantum state of such a system? My answer is simple. No, never.

### Candidates for physical realizations

For physically implementing a quantum computer, many different candidates are being pursued, among them (distinguished by the physical system used to realize the qubits):

The large number of candidates demonstrates that quantum computing, despite rapid progress, is still in its infancy.

### Models of computation for quantum computing

There are a number of  models of computation  for quantum computing, distinguished by the basic elements in which the computation is decomposed. For practical implementations, the four relevant models of computation are:

The  quantum Turing machine  is theoretically important but the physical implementation of this model is not feasible. All of these models of computation—quantum circuits,  one-way quantum computation,  adiabatic quantum computation, and topological quantum computation —have been shown to be equivalent to the quantum Turing machine; given a perfect implementation of one such quantum computer, it can simulate all the others with no more than polynomial overhead. This equivalence need not hold for practical quantum computers, since the overhead of simulation may be too large to be practical.

## Relation to computability and complexity theory

### Computability theory

Any computational problem solvable by a classical computer is also solvable by a quantum computer.[5] Intuitively, this is because it is believed that all physical phenomena, including the operation of classical computers, can be described using  quantum mechanics,  which underlies the operation of quantum computers.

Conversely, any problem solvable by a quantum computer is also solvable by a classical computer. It is possible to simulate both quantum and classical computers manually with just some paper and a pen, if given enough time. More formally, any quantum computer can be simulated by a  Turing machine. In other words, quantum computers provide no additional power over classical computers in terms of  computability. This means that quantum computers cannot solve  undecidable problems  like the  halting problem  and the existence of quantum computers does not disprove the  Church–Turing thesis. Quantum complexity theory

While quantum computers cannot solve any problems that classical computers cannot already solve, it is suspected that they can solve certain problems faster than classical computers. For instance, it is known that quantum computers can efficiently  factor integers,  while this is not believed to be the case for classical computers.

The class of  problems  that can be efficiently solved by a quantum computer with bounded error is called  BQP,  for “bounded error, quantum, polynomial time”. More formally, BQP is the class of problems that can be solved by a polynomial-time  quantum Turing machine  with an error probability of at most 1/3. As a class of probabilistic problems, BQP is the quantum counterpart to  BPP (“bounded error, probabilistic, polynomial time”), the class of problems that can be solved by polynomial-time  probabilistic Turing machines  with bounded error.  It is known that {\displaystyle {\mathsf {BPP\subseteq BQP}}}  and is widely suspected that {\displaystyle {\mathsf {BQP\subsetneq BPP}}} , which intuitively would mean that quantum computers are more powerful than classical computers in terms of  time complexity.

The suspected relationship of BQP to several classical complexity classes.

The exact relationship of BQP to  PNP,  and  PSPACE  is not known. However, it is known that {\displaystyle {\mathsf {P\subseteq BQP\subseteq PSPACE}}}; that is, all problems that can be efficiently solved by a deterministic classical computer can also be efficiently solved by a quantum computer, and all problems that can be efficiently solved by a quantum computer can also be solved by a deterministic classical computer with polynomial space resources. It is further suspected that BQP is a strict superset of P, meaning there are problems that are efficiently solvable by quantum computers that are not efficiently solvable by deterministic classical computers. For instance,  integer factorization  and the  discrete logarithm problem  are known to be in BQP and are suspected to be outside of P. On the relationship of BQP to NP, little is known beyond the fact that some NP problems that are believed not to be in P are also in BQP (integer factorization and the discrete logarithm problem are both in NP, for example). It is suspected that {\displaystyle {\mathsf {NP\nsubseteq BQP}}} ; that is, it is believed that there are efficiently checkable problems that are not efficiently solvable by a quantum computer. As a direct consequence of this belief, it is also suspected that BQP is disjoint from the class of  NP-complete  problems (if an NP-complete problem were in BQP, then it would follow from  NP-hardness  that all problems in NP are in BQP).

The relationship of BQP to the basic classical complexity classes can be summarized as follows:

{\displaystyle {\mathsf {P\subseteq BPP\subseteq BQP\subseteq PP\subseteq PSPACE}}}

It is also known that BQP is contained in the complexity class  {\displaystyle \color {Blue}{\mathsf {\#P}}}  (or more precisely in the associated class of decision problems {\displaystyle {\mathsf {P^{\#P}}}} ),  which is a subclass of  PSPACE.

It has been speculated that further advances in physics could lead to even faster computers. For instance, it has been shown that a non-local hidden variable quantum computer based on  Bohmian Mechanics  could implement a search of an N-item database in at most {\displaystyle O({\sqrt[{3}]{N}})}  steps, a slight speedup over  Grover’s algorithm,  which runs in {\displaystyle O({\sqrt {N}})} steps. Note, however, that neither search method would allow quantum computers to solve  NP-complete  problems in polynomial time.Theories of quantum gravity, such as  M-theory  and  loop quantum gravity, may allow even faster computers to be built. However, defining computation in these theories is an open problem due to the problem of time; that is, within these physical theories there is currently no obvious way to describe what it means for an observer to submit input to a computer at one point in time and then receive output at a later point in time.

Qiskit is an open-source software development kit (SDK) for working with quantum computers at the level of circuits, pulses, and algorithms. It provides tools for creating and manipulating quantum programs and running them on prototype quantum devices on  IBM Quantum Experience  or on simulators on a local computer.  It follows the circuit model  for universal quantum computation,  and can be used for any  quantum hardware (currently supports  superconducting qubits  and  trapped ions) that follows this model.

Qiskit was founded by  IBM Research  to allow software development for their  cloud quantum computing  service,  IBM Quantum Experience.  Contributions are also made by external supporters, typically from academic institutions.

The primary version of Qiskit uses the Python programming language. Versions for Swift  and JavaScript  were initially explored, though the development for these versions have halted. Instead, a minimal re-implementation of basic features is available as MicroQiskit, which is made to be easy to port to alternative platforms.

A range of Jupyter notebooks are provided with examples of quantum computing being used. Examples include the source code behind scientific studies that use Qiskit,  as well as a set of exercises to help people to learn the basics of quantum programming. An open source textbook based on Qiskit is available as a university-level quantum algorithms or quantum computation course supplement.

## Components

Qiskit is made up of elements that work together to enable quantum computing. The central goal of Qiskit is to build a software stack that makes it easy for anyone to use quantum computers, regardless of their skill level or area of interest; Qiskit allows users to easily design experiments and applications and run them on real quantum computers and/or classical simulators. Qiskit provides the ability to develop quantum software both at the  machine code level of  OpenQASM, and at abstract levels suitable for end-users without quantum computing expertise. This functionality is provided by the following distinct components.

### Qiskit Terra

The element Terra is the foundation on which the rest of Qiskit is built. Qiskit Terra provides tools to create  quantum circuits  at or close to the level of quantum  machine code.  It allows the processes that run on quantum hardware to be explicitly constructed in terms of  quantum gates. It also provides tools to allow quantum circuits to be optimized for a particular device, as well as managing batches of jobs and running them on remote-access quantum devices and simulators.

The following shows a simple example of Qiskit Terra. In this, a quantum circuit is created for two  qubits, which consists of the  quantum gates required to create a  Bell state. The quantum circuit then ends with  quantum measurements,  which extract a  bit  from each qubit.

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2)

qc.h(0)
qc.cx(0, 1)
qc.measure([0,1], [0,1])


### Qiskit Aer

The element Aer provides high-performance quantum computing simulators with realistic noise models. In the near-term, development of quantum software will depend largely on simulation of small quantum devices. For Qiskit, this is provided by the Aer component. This provides simulators hosted locally on the user’s device, as well as HPC resources available through the cloud. The simulators can also simulate the effects of noise for simple and sophisticated noise models.

Continuing with the previous example: Once the quantum circuit has been created, it can be run on a backend (either quantum hardware or a simulator). In the following example, a local simulator is used.

from qiskit import Aer, execute

backend = Aer.get_backend("qasm_simulator")
job = execute(qc, backend)
result = job.result()
print(result.get_counts(qc))


The final print statement here will show the results returned by the backend. This is a Python dictionary that describes the bit strings obtained from multiple runs of the quantum circuit. In the quantum circuit used in this example, the bit strings '00' and '11' should be the only possible results, and should occur with equal probability. The full results will therefore typically have the samples split approximately equally between the two, such as {'00':519, '11':505} .

Experiments done on quantum hardware using Qiskit have been used in many research papers,such as in tests of quantum error correction  generation of entanglement  and simulation of far-from-equilibrium dynamics.

Qiskit Ignis

As of version 0.7.0, released on 6th December 2021, Qiskit Ignis has been deprecated and superseded by the Qiskit Experiments project.

The element Ignis provides tools for quantum hardware verification, noise characterization, and error correction. Ignis is a component that contains tools for characterizing noise in near-term devices, as well as allowing computations to be performed in the presence of noise. This includes tools for benchmarking near-term devices, error mitigation and error correction.

Ignis is meant for those who want to design quantum error correction codes, or who wish to study ways to characterize errors through methods such as tomography, or even to find a better way for using gates by exploring dynamical decoupling and optimal control.

### Qiskit Aqua

As of version 0.9.0, released on 2nd April 2021, Qiskit Aqua has been deprecated with its support ending and eventual archival being no sooner than 3 months from that date.

The element Aqua provided a library of cross-domain algorithms upon which domain-specific applications can be built. However, the Qiskit 0.25.0 release included a restructuring of the applications and algorithms. What previously has been referred to as Qiskit Aqua, the single applications and algorithms module of Qiskit, is now split into dedicated application modules for Optimization, Finance  Machine Learning  and Nature (including Physics & Chemistry). The core algorithms and opflow operator functionality were moved to Qiskit Terra.

Additionally, to the restructuring, all algorithms follow a new unified paradigm: algorithms are classified according to the problems they solve, and within one application class algorithms can be used interchangeably to solve the same problem. This means that, unlike before, algorithm instances are decoupled from the problem they solve.

### Qiskit Optimization

Qiskit Optimization is an open-source framework that covers the whole range from high-level modeling of  optimization problems,  with automatic conversion of problems to different required representations, to a suite of easy-to-use quantum optimization algorithms that are ready to run on classical simulators, as well as on real quantum devices via Qiskit. The Optimization module enables easy, efficient modeling of optimization problems using  docplex.

### Qiskit Finance

Qiskit Finance is an open-source framework that contains uncertainty components for stock/securities problems, Ising translators for portfolio optimizations and data providers to source real or random data to finance experiments.

### Qiskit Machine Learning

The Machine Learning package simply contains sample datasets at present. It has some  classification algorithms  such as QSVM and VQC (Variational Quantum Classifier), where this data can be used for experiments, and there is also QGAN (Quantum  Generative Adversarial Network)  algorithm.[29]

### Qiskit Nature

Qiskit Nature is an open-source framework that supports problems including ground state energy computations, excited states and dipole moments of molecule, both open and closed-shell. The code comprises chemistry drivers, which when provided with a molecular configuration will return one and two-body integrals as well as other data that is efficiently computed classically. This output data from a driver can then be used as input in Qiskit Nature that contains logic which is able to translate this into a form that is suitable for quantum algorithms.