**10. What is quantum algorithm?**

An algorithm is a sequence of instructions or a set of rules to be followed to perform any task or calculation. It is a step-by-step process for solving a problem, especially by a computer. Any algorithm that can be executed on a quantum computer is called the **Quantum algorithm.** Generally, it is possible to execute all classical algorithms on quantum computers. However, the algorithms should contain at least one unique quantum step due to the property of either superposition or entanglement to be called a Quantum algorithm.

Quantum algorithms are characterized by a quantum circuit. A quantum circuit is a prototype for quantum computation that includes each step of the quantum algorithm as a quantum gate. A quantum gate is an operation that can be performed on any number of qubits. It changes the quantum state of the qubit. It can be divided into a single-qubit or multi-qubit gate, depending on the number of qubits on which it is applied at the same time. A quantum circuit is determined with qubit measurement [16].

An algorithm executing on a simulator rather than hardware is very profitable in terms of execution time by replacing the measurement overhead at the end of the algorithm. It is also known as simulation optimization. A quantum algorithm is always reversible when compared to the classical algorithm. It implies that if the measurement is not considered, a quantum circuit can be traversed back which can undo all the operations done by a forward traversing of the circuit. According to the undecidability problem, all problems that are unsolvable by a classical algorithm cannot be solved by quantum algorithms too. But these algorithms can solve problems significantly faster than classical algorithms. Some examples of the quantum algorithm are Shor's algorithm and Grover's algorithm. The Shor's algorithm can do factorization of very large numbers in exponentially faster than best-known classical algorithms [17], whereas, Grover's algorithm is used for searching large unordered list or unstructured databases that is four times faster than the classic algorithm [18].

There are various quantum algorithms available so far are as follows [19]:


#### **11. Design limitations of quantum computer**

The exponential computing power of quantum computers can be accomplished by assessing and rectifying any kind of design limitation which helps to avoid their quality degradation. There are four major design limitations. The first limitation is that the number of coefficients in Dirac notation that defines the state of a quantum computer rise exponentially with the rise in the number of qubits, only when all the qubits get entangled with each other. To obtain the full potential of quantum computing, qubits must follow the property of entanglement where the state of any qubit must be linked with states of other qubits. It cannot be achieved directly since

#### *Introduction to Quantum Computing DOI: http://dx.doi.org/10.5772/intechopen.94103*

it is hard to generate a direct relation between qubits. But it can be decomposed into a number of simple fundamental operations directly aided by the hardware. One can also perform indirect coupling which is known to be an overhead in machines in classical computing and is crucial at the early stages of development especially when qubits and gate operations are confined.

The second limitation is that it is impossible to copy an entire quantum system because of a principle called a no-cloning principle [20]. There is a risk of deletion of arbitrary information from the original qubits since the state of qubits or set of qubits are moved to another set of qubits rather than being copied. The generation and storage of copies of intermediate states or partial outcomes in memory is a necessary aspect of classical computing. But quantum computers need a different strategy. There are quantum algorithms that help to access classical bits from the storage so that it can be known which bits are loaded and being queried into the memory of the quantum system to perform its task successfully.

The third limitation is due to the absence of noise protection of qubit operations. The small deformities in gate operations or input signals are collected over time disturbing the state of the system because they are not discarded by the fundamental gate operations. This can highly affect the calculation preciseness, measurements and coherence of the quantum systems and lessen the qubit operations integrity [21].

The final limitation is the incapability of the quantum machine to identify its full state even after it has finished its operation. Assume quantum computer has introduced an initial set of qubits with the superposition of all states combination. After applying a function to this state, the new quantum state will have information about the function value for each possible input and measuring this quantum system will not give this information. Therefore, a successful quantum algorithm can be achieved by manipulating the system in such a way so that states after finishing the operations have a higher probability of getting measured than any other probable result.

### **12. Approaches to quantum computing**

If we can design each gate slightly different from others, then the generated electric signals on communicating with each other produce periodic noise in each other. Thus, the noise immunity of gates used will be adequate to cancel the impact of various noise origins. Therefore, the concluding system will produce the same outcome as the logical gate model, even with millions of gates operating in parallel. The goal of the design is to minimize the noise in qubit that can prevent the qubit state to pass through noisy channels. The qubit state can be changed by changing its physical energy environment.

Thus, it leads to 2 approaches to quantum computing. In the first approach, the energy environment representing Hamiltonian is frequently changed smoothly as qubits operations are analog in nature and smoothly changes from 0 to 1 which cannot be completely corrected. It initializes the quantum state and then uses Hamiltonian directly to develop the quantum state. This is known as **'Analog Quantum Computing'.** It includes quantum annealing, quantum simulation and adiabatic quantum computers.

The second approach is similar to the classical computer approach where the problem is decomposed into a sequence of fundamental operations or gates. These gates have adequately defined digital outcomes for some input states. The set of fundamental operations of quantum computing is different from that of classical computing. This approach is referred to as **'Gate-based quantum computing'.**
