Circuit Synthesis of Maximum Clique Problem using Combinatorial Approach of Classical-Quantum Hybrid Model

03/10/2020 ∙ by Arpita Sanyal, et al. ∙ 0

In the Maximum Clique Problem, the objective is to find a clique whose size is maximum among all the cliques of an arbitrary undirected and unweighted graph. Maximum Clique Problem resembles with minimum vertex cover problem, independent set problem. As it is an NP-hard problem, no polynomial time algorithms can be found. As these problems have several important practical applications such as information retrieval, community detection in network, spatial data mining etc, it is of great interest to try to synthesis the circuit of Maximum Clique Problem. In classical computing any brute-force solution to the Maximum Clique Problem requires an exponential increase of time with the size of the problem (i.e., with time complexity of O(2^n)). In this paper, Maximum Clique Problem has been solved using combinatorial approach of Grover's search algorithm. An algorithm has been proposed that auto-generates the circuit for any given undirected and unweighted graph which makes the approach generalized in nature for Maximum Clique Problem. Computational speed up is achieved by using our approach with the help of quantum mechanical effect that is quantum superposition. We have simulated the proposed circuit using IBM's QISkit platform and verified its correctness.

READ FULL TEXT VIEW PDF
POST COMMENT

Comments

There are no comments yet.

Authors

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1 Introduction

Maximum Clique Problem aims at finding a subgraph of graph in which all the vertices are connected by an edge. Maximum Clique finding problem has applications in many areas like information retrieval[1], community detection in networks [2],[3],[4], spatial data mining [5], data mining in bio informatics[6], disease classification based on symptom correlation [7]

, pattern recognition

[8], analysis of financial networks [9]

, computer vision

[8]. Clique-finding algorithms are used in chemistry, to find chemicals that match a target structure and to model molecular docking and the binding sites of chemical reactions. They can also be used to find similar structures within different molecules. In these applications, a graph vertex represents a matched pair of atoms, one from each of two molecules. Graph vertices also represent individual genes or another type of molecule, such as proteins. Edges between vertices indicate molecules that are highly correlated. Solution of Maximum Clique Problem using quantum computing makes it faster in terms of computation compared to its classical counterpart as superposition of all vertices can provide functional parallelism in executing the quantum search process. Research in quantum circuit synthesis is motivated by the growing interest in quantum computation [10] and advances in experimental implementations [11],[12],[13]

. Quantum circuit design for the Maximum Clique Problem can be formulated in a generic way instead of a specific case, so that different circuit instances of the same can be used for applications in the quantum domain. Though different algorithms of Maximum Clique Problem have been elaborately discussed by various researcher in classical and quantum domain as shown in Table 1, no circuit synthesis approach can be found in any of these works. In 2015, Pronaya Prosun Das et al. used the concept of quantum inspired evolutionary algorithm proposed by Kuk-Hyun Han et al

[14] for solving the Maximum Clique Problem. Quantum inspired evaluation algorithm is a combination of quantum computing and evolutionary algorithm which uses Q-bit representation of individual information and Q-gate as variation operator to drive the individuals toward better solution. [16]. Elijah Pelofske et al. proposed quantum annealer for solving Maximum Clique Problem in may 2019[16]. The objective of this work is to synthesize the circuit of Maximum Clique Problem in binary quantum system for the first time using Quantum Classical Hybrid approach[17] by using the decision oracle and the Grover’s diffusion operator. The proposed hybrid algorithm generates the QASM(Quantum Assembly Language) file for any given unweighted and undirected graph. The oracle block marks the searched state by inverting its amplitude, diffusion operator amplifies the amplitude of the searched state and after number of iterations the amplitude of the searched state will be maximum, while the amplitude of the other states will be reduced to almost zero. The approach being generalized in nature can be used for any kind of graph or graph based practical applications of Maximum Clique Problem.

The following are the different algorithms[18] used for Maximum Clique Problem .

Year Complexity Inventor
1973 O Kerbosch et al[19]
1977 O Tarjan and Trojanowski[20]
1990 Not mentioned Randy CARRAGHAN[21]
2002 Not mentioned Patric R.J. Ostergard[22]
2003 O Tomita et al[23]
2011 O Alan Bojic [24]
2011 Not mentioned W. Pullan, F.Mascia, M.Brunato[25]
2013 Not mentioned S.Balaji[26]
2015 Not mentioned Pronaya Prosun Das et al.[14]
2019 Not mentioned Elijah Pelofske et al. [15]
Table 1: Complexity of Various Algorithm for Maximum Clique Problem

Our key contributions in this paper can be summarized as:

  • Generalized algorithm and auto generated oracle for Maximum Clique Problem using Grovers’ algorithm. The auto generated oracle can be used for any practical implementation of Maximum Clique Problem.

  • Further the proposed quantum circuit has been simulated in [27],[28] through a python based programming interface called QISKit[29].

  • Finally, the proposed circuit has been mapped to different PMD(Physical Machine Description) specific quantum technologies using FTQLS(Fault Tolerant Quantum Logic Simulator)[30]

    to estimate its performance for the physical implementation.

The paper has been organized as follows. Section II explains about related work in classical and quantum domain. Generalized algorithm for synthesis of Maximum Clique Problem has been discussed in Section III. Section IV deals with performance analysis of the circuit. Experimental result has been shown in Section V. In Section VI the implementation result of the circuit in six PMDs using FTQLS has been shown in tabular form. The paper conclude with a summary and future scope in Section VIII.

2 Background

Quantum mechanical computers were proposed in the early 1980s and the description of quantum mechanical computers was formalized in the late 1980s. Many efforts on quantum computers have progressed actively since the early 1990s because these computers were shown to be more powerful than classical computers on various specialized problems. Several quantum algorithms for example Shor’s Algorithm[31] for factoring integers, Grover’s Algorithm[32] for searching an unstructured database Triangle finding by Magniez et al. [33],Matrix Product Verification[34],Group Commutavity Testing have already been proposed. Solution of Maximum Clique Problem in classical domain using brute force technique may be expensive as complexity of the algorithm increases exponentially with the increasing number of vertices. In this paper generalized algorithm for synthesis of Maximum Clique Problem has been proposed in quantum domain where a combinatorial approach has been used with the help of Grover’s Algorithm.

Grover’s Algorithm:

Grover’s algorithm[32] is a way of finding an element in an unsorted list with N elements using quantum computer. Grover’s algorithm is based on amplitude amplification of the base state which specifies a position of a searched element in the list. It runs in time O where N is the number of elements in the list.

Diffusion operator This diffusion operator of Grover’s algorithm [32] inverts the amplitude of the input states about their mean value of amplitude. The matrix representation of the diffusion operator is given below.

Figure 1: Generalized Diffusion Operator

The functional view of Grover’s Search Algorithm is presented here. function Oracle(o) such that

In the next subsection, definitions related to the graphs and cliques have been defined.

2.1 Definitions

This section deals with the definition of clique and maximum clique of a graph graph which have been used in the rest of the paper.

Figure 2: An arbitrary graph

Let be a graph and be the set of vertices and be the set of edges. If then u and v are said to be adjacent. The set of vertices adjacent to a vertex is called neighborhood of v and is denoted by . A clique of a graph G is a set of vertices in which . A maximum clique is a complete sub graph of a graph G whose size is largest among all other complete sub graph in G. A maximal clique C of a graph G is a clique for which it is not possible to add an additional vertex to C and C remain a clique. In the above graph of figure 2 there are six vertices, but available cliques are and maximum clique is .

Quantum Oracle and query:-

Virtually quantum algorithms work with queries. In an N-bit input where , the address bit (i=1,2…N) can be accessed using an n-bit index i. As a quantum operation, this would be the following unitary mapping on qubits.

The first n qubits of the state are called the address bits, the st qubit is called the target bit. This is an unitary operation as shown below.

here , and denotes exclusive-or (addition modulo 2). is a permutation matrix and hence unitary. This is called an oracle which is a black box. A quantum computer can apply on a superposition of various i. One application of this black-box is called a query.

2.2 Working Principle of a quantum circuit

In a quantum circuit there are two kinds of inputs, data input qubits and ancilla qubits; data input qubits are initialized with . Hadamard gates are used on the input qubits that creates superposition of all states. Ancilla qubits are initialized to or . One ancilla qubit is designated for final output.

Let us consider the following circuit.

Figure 3: A small quantum circuit
  • Level 1: The quantum register of 3 input qubits can be prepared in a superposition of all eight numbers. So each qubit is put into the superposition

    using HADAMARD gate . After the operation of three HADAMARD gates on the three input qubits (which are initialized to ) the result is


    which can also be written in binary as (ignoring the normalisation constants),

  • Level 2: In the next level two NOT gates are applied to only first two qubits, which only activates state . All other states remains same. After application of NOT gates the states will be like

  • Level 3: TOFFOLI gate is applied in the third level of the circuit where first two qubits are control qubits. For only state, the output ancilla qubit is high.

  • Level 4: Reverse circuit has been applied for reverting the circuit back to the initial state. So in the next level again two NOT gate are applied which yields

  • Level 5: At the last level three HADAMARD gate has been applied on the three qubits. After the application of Hadamard gates the result yields

    If the constant factors are ignored then this operation returns the circuit back to state.

2.3 General hybrid architecture for quantum algorithms

In this paper the concept of Hybrid quantum and classical computing is used[17]. In a Hybrid quantum classical computing, quantum programming uses classical algorithms to define certain elementary operations for a quantum computer. The classical machine of this hybrid system model prepares the input does some elementary operations and feed the output to the quantum machine. Quantum subsystem of this architecture initializes the quantum registers/nodes, prepare the inputs by applying quantum gates, execute the quantum oracle by applying quantum gates and unitary transformations, evaluate the result of the quantum registers. General architecture of the hybrid quantum and classical computer is shown below in fig 3.

Figure 4: The relationship between classical part and quantum part of the hybrid algorithm

[17]

3 Synthesis Of Maximum Clique Problem

3.1 Quantum Logic Gates Used for the Oracle for Maximum Clique Problem

Quantum Circuit is a model for quantum computation where reversible quantum gates like HADAMARD, CNOT, TOFFOLI are used. The Matrix representation of the quantum gates is shown in the following table

Quantum Gates Matrix Representation
Hadamard Gate
NOT GATE
TOFFFOLI Gate
Table 2: Matrix Representation of Quantum Gates

3.2 Generalized Circuit For Maximum Clique Problem

The Fig 5 shows the generalized view of the oracular circuit. In this generalized circuit there are four blocks; Qubit activation block, Edge detection block, Clique detection block and Phase flip block. The functionality of the blocks has been described below.

  • Superposition of states: There are n number of inputs. HADAMARD gate is applied to the inputs for getting superposed input states.

  • Qubit activation block: The qubit activation block activates a qubit by applying NOT gate if it is 0, such that the desired inputs are string of 1’s.

  • Edge detection block: Function of the edge detection block is to detect edges between pair of vertices. A TOFFOLI gate is applied for checking the connectivity between a pair of vertices. One TOFFOLI gate indicates presence of edge between a pair of vertices. So for detecting multiple edges multiple TOFFOLI gates are needed.

  • Clique detection block: Clique detection block detects a clique by applying TOFFOLI gate between the output of edge detection blocks.

  • Phase flip block: Finally in the phase flip block a CNOT gate is applied between clique detection blocks for the final output.

Figure 5: Generalized circuit for maximum clique of a graph

3.3 Implemented hybrid architecture in Maximum Clique Problem

The algorithm for the synthesis of Maximum Clique Problem is a hybrid algorithm that consist of classical and quantum components. The quantum portion of the algorithm is probabilistic; often need multiple runs to get the desired result.

  • Classical input:

    • Adj[][]:Adjacency matrix of the input graph G(V,E).

    • arr[]: Array that holds the vertices of the graph.

    • newarr[]: Array that holds all combinations of the vertices for a clique size.

    • binnum[]: Array that holds the binary equivalent of a combination of vertices.

  • Classical functions:

    • CombinationUtil This is a classical function which prepares all possible input combination of the vertices for a clique size. It creates combination of vertices if n is the total number of vertices and m is clique size.

  • Quantum input:

    • ctrl[]: This is a quantum register that holds the input qubits.

    • anc[]: This is a quantum register that holds the ancilla qubits.

    • output[]: This is a quantum register that holds the output qubits.

    • target[]: This is a quantum register that holds the target qubit.

  • Hybrid functions: There are two hybrid functions that are used depending on the combination of vertices. If there is only one combination of vertices checkedge2 function is called, if there are more than one combination of vertices then checkedge1 function is called.

  • Checkedge1: This is a hybrid function with both quantum and classical parts . The classical portion is conversion of the combination array(prepared by CombinationUTIL) newarr[](taking each combination at a time) into its binary equivalent array and make it ready for the quantum operations. Quantum portion of the function are where quantum gates(hadamard,toffoli,not,cnot) and unitary transformations are applied on the input qubits.

  • Checkedge2: This is also a hybrid function with both classical and quantum part. In this function the vertex combination is converted into binary equivalent array using a classical algorithm. Quantum gates (hadamard,toffoli,not,cnot) and unitary transformations are applied on the input qubits for finding the marked states.

The complete cycle of the hybrid architecture for the synthesis of Maximum Clique Problem has been pictorially described below:

Figure 6: The flow of the algorithm with classical and quantum parts

[17]

The execution of the algorithm in a hybrid architecture is as follows:

  • Step 1: Initialize Adjacency Matrix for the input graph. Calculate the total number of combinations of vertices using a classical algorithm combinationUTIL.

  • Step 2: Initialize quantum register ctrl[] that holds the input qubits.

  • Step 3: Apply hadamard Transformations on the input qubits that represent vertices of the graph.

  • Step 4: Prepare inputs state by making it a string of ’1’s by applyng quantum not gate.

  • Step 5: Execute the quantum oracle for finding the marked states. The oracle checks full connectivity in a set of vertices by applying quantum gates and unitary transformations.

  • Step 6: Apply Grover’s operator for maximizing the amplitude of the marked states.

  • Step 7: Measure the output of Machine State (Measure the output registers of the quantum circuit) using classical register.

  • Step 8: Exit if desired result (If solution found then exit from quantum circuit), else repeat step 2.

3.4 Automated and Generalized Algorithm of quantum circuit synthesis for Maximum Clique Problem

The automated and generalized algorithm of quantum circuit synthesis for Maximum Clique Problem is discussed in this section. The input of the algorithm is the Adjacency Matrix of the graph and the output is the QASM file of Maximum Clique Problem.The data structure and methods used in the algorithm is mentioned below.

  • : Total number of vertices of the graph.

  • m: Clique size.

  • : Total number of input bits

  • r: Size of the clique.

  • arr[] :Hold the vertices of the array.

  • data[r]: A temporary array to store all combination one by one

  • newarr[tot]: All combination array

  • tot: Total number of combination

  • r: Size of the clique is assigned to r

  • n : Size of the array

  • Function combinationUtil : The function is used to find all combination of vertices of a given clique size. The combinations are kept in the array

  • combi : Holds total number of combination of vertices.

  • edge[] : Edge array holds one combination at a time.

  • binnum[] : binnum array holds binary equivalent of the edge array. Width of each binary number is .

  • Function Checkedge1/Checkedge2 : Checks presence of edge between two vertices using Adjacency Matrix.

The flow of the algorithm is shown in the following diagram

Figure 7: Flow of the algorithm

Steps of synthesis of the Maximum Clique Problem

  • Step 1: The algorithm starts from the nth vertex where (n=total number of vertex). At first presence of a clique of size is checked.

  • Step 2: Ctrl[] is a quantum register that holds the input qubits.

  • Step 3: HADAMARD gate is applied parallely to all the input qubits to get a superposition of the input states

  • Step 4: After hadamard operation ctrl[] register contains the superposed states.

  • Step 5: FunctionCombinationutil finds the total possible combinations of vertices for a clique size and put it in the newarr[].

  • Step 6: Each combination is kept in the edge[] array at a time and function checkedge1 or checkedge2 is called. The function checkedge1 is called if the total combination of vertices is more than 1 and the function checkedge2 is called if the total number of combinations of vertices is 1

  • Step 7: Each number of the edge array is converted into binary number of width and is kept in the binnum[] array.

  • Step 8: If there is any 0 in the binnum[] array corresponding bit of the control register ctrl[] is made 1 by putting NOT gate.

  • Step 9: Adjacency matrix of the input graph Adj[][] is used to check the interconnection between the vertices of the array edge[].

  • Step 10: If a path is found a TOFFOLI gate is inserted between the ctrl[] inputs. One TOFFOLI gate denotes the presence of one path between the vertices of the edge[] array. So for the presence of multiple paths multiple TOFFOLI gates are inserted.

  • Step 11: Another TOFFOLI gate is inserted to find the full connectivity of a set of vertices.

  • Step 12: For each combination of the vertices step 6 to 11 is repeated.

  • Step 13: When all combinations of a clique size are checked, a CNOT gate is inserted for the final output of the circuit.

  • Step 14: Grovers diffusion operator is applied on the input qubits for the amplification of the marked states

  • Step 15: If a clique is found then the output of the CNOT gate is 1 and exit from the process.

  • Step 16: If output is 0 then clique size n is reduced to n-1. If n is less than 2 then exit else go to step 2 and repeat the whole process from step 3.

In the above process of finding clique There can be the two kind of scenario.

  • First case is when there can be only one combination . Maximum number of ancilla qubits are +1. For this case the algorithm MaximumClique1 is executed. As there is only one combination so combinationUTIL function is not required. Only checkedge1 function is called for testing the connectivity between the vertices.

  • Second case is when combination is greater than one. Maximum number of ancilla qubits are . MaximumClique2 algorithm is executed in this case. CombinationUTIL function calculates the total number of combinations and checkedge2 function is called for checking the connectivity between the vertices.

Input : Adjacency Matrix Adj[][]
Output : A file ”OutputMaximumClique.QASM”
keep all vertices of the input graph() in an array
for  downto  do Start from the nth vertex and move to 2
     
     if   then
         found=MaxClique1()
         if  then
              
         else
              Continue
         end if
     end if
     if  then
         found=MaxClique2()
         if  then
              break
         else
              Continue
         end if
     end if
end for
if  then
     Maximum clique is found of size
     break
end if
End
Algorithm 1 AutoGenerateOracleMaximumClique
function MaxClique1()
     Initialize quantum register with
     Size of the register is
     Initialize register with
     initialize output[] quantum register with
      size of the clique
     
     Apply Hadamard gates on
     for  do
         
     end for
      return
end function
function checkedge1()
     
     
     
     for  do
         
         
         while  do
              binaryNum[cont] = num mod 2
              =
              
         end while
         
         while  do
              
              
         end while
         for  do
              
         end for
     end for
     for  do
         if  then
              Apply NOT gate on
         end if
     end for
     for  do
         
         
         for  do
              
              
              
              
              if  then
                  Use a Toffoli gate with input lines and as control and ancilla as target
                  
                  found=1
              else
                  
              end if
         end for
     end for
     Use a Toffoli gate with control ,.. as control and as target
     if  then return r
     elsereturn 0
     end if
     for  do
         
         
         for  do
              
              
              
              
              if  then
                  Use a Toffoli gate with input lines and as control ancilla as target
                  
                  
              else
                  
              end if
         end for
     end for
     for  do
         if  then
              Apply not gate on
         end if
     end for
end function
function MaxClique2()
     Temporary array data[r]
     tot= Total number of combination is assigned to tot
     All combination array newarr[tot]
     ;
      Size of the clique is assigned to r
     function combinationUtil(arr, n, r, 0, data, 0, newarr)
     Initialize quantum register with
     Initialize quantum register with
     initialize output[] register with
     target[] register holds the target bit
      size of the clique
     
     
     Apply Hadamard gates on
     for  do
         for  do
              
         end for
         
     end for
     Apply CNOT gate with control as and target as
     
     for  do
         for  do
              
         end for
         
         
     end for
     Apply Grover’s diffusion operator on the input bits.
     if  then return
     elsereturn
     end if
end function
function checkedge2()
     
     
     
     for  do
         
         
         while  do
              
              =
              
         end while
         
         while  do
              
              
         end while
         for  do
              
         end for
     end for
     for  do
         if  then
              Apply Not gate on
         end if
     end for
     for  do
         
         
         for  do
              
              
              
              
              if  then
                  Use a Toffoli gate with input lines and as control and ancilla as target
                  
                  
              else
                  
              end if
         end for
     end for
     Use a toffoli with control to as control and as target
     if  then return r
     elsereturn 0
     end if
     
     for  do
         
         
         for  do
              
              
              
              
              if  then
                  Use a Toffoli gate with input lines and as control and ancilla as target
                  
                  
              else
                  
              end if
         end for
     end for
     for  do
         if  then
              Apply not gate on
         end if
     end for
end function
function combinationUtil()
     if  then
         for  do
              
              
         end forreturn
     end if
     if  then return
     end if
     
     combinationUtil(arr, n, r, index+1, data, i+1,newarr)
     combinationUtil(arr, n, r, index, data, i+1,newarr)
end functionreturn

The Oracle circuit generated by Algorithm AUTOGENORACLEMAXIMUMCLIQUE is reversible. Different unique combinations of NOT gates corresponding to the input values are used on the input qubits to make them . Then TOFFOLI gates are used where input qubits act as control qubits and one of the ancillary qubit acts as the target qubit. The algorithm then uses the combination of NOT gates used at input qubits again to get the input vertex back. Hence, the generated circuit is reversible.

3.4.1 Circuit for arbitrary graphs taken as an example:-

Quantum Circuit for finding maximum clique of two arbitrary graph has been designed following the above method. For circuit synthesis two arbitrary graph has been taken as an example. Each graph has four vertices, so two qubits are needed to represent each vertex state.

The existence of clique is checked for four, three and two vertices. Whenever a clique is found the process is stopped. Each circuit goes through the following number of stages:

  • At first HADAMARD gate is applied on the input qubits for getting the superposition of the states.

  • NOT gate is applied on the selected input qubits for making all input states a string of 1s.

  • Multi controlled TOFFOLI gates are applied between the input vertices if there are edges between the input vertices.

  • Another multi controlled TOFFOLI gate is used for checking the existance of a clique in the graph.

  • Above process is repeated for every combination of vertices.

  • A CNOT gate is applied for the final output of the circuit.

  • Reverse latch is applied to take the circuit back to the initial stage

  • Grover’s difussion operator is applied for the amplification of marked states.

3.4.2 Graph with clique size three:

The following graph of Fig 8 has four vertices and five edges. According to the algorithm the process starts with searching for clique size 4.

Figure 8: Graph with clique size 3

3.4.3 Circuit of clique size 4

The total number of combination is that is one. There are only five edges. There is no interconnection between and vertex. Circuit for checking the presence of clique size 4 is shown below in fig 9. As there is no clique of size 4, output is 0.

Figure 9: circuit for checking the presence of clique size 4

3.4.4 Circuit of clique size 3

The total number of combination of vertices for finding clique of size 3 is that is 4. Circuit for checking the presence of clique of size 3 is shown below in fig 10. The input graph has two cliques of size 3, so the output is 1.

Figure 10: circuit for checking the presence clique of size 3

3.4.5 Graph with clique size four

The following graph in the fig 11 has four vertices. This is a complete graph and maximum clique size is 4.

Figure 11: Graph with clique size 4

Circuit for checking clique of size four is shown in the figure below. The output of the circuit is 1 as there is one clique of size 4.

Figure 12: circuit for checking the presence of clique size 4

4 Quantum Cost of the Circuit

Cost of the circuit depends on the number of the Input Lines, ancilla Lines and the number of gates used. Let there are n number of inputs . If the circuit is designed for sized clique, then total combination is . The following table shows the maximum number of gates and ancilla qubits for finding maximum clique. Circuit complexity with only one combination of vertices is and circuit complexity with more than one combination of vertices is .

No of combination No of vertices No of ancilla qubits Toffoli Gate Count
n +1
n
Table 3: Quantum Cost Analysis

Total gate cost of toffoli gates[35] of the circuit for clique size 3(fig 9) and 4(fig 11)is given in the table below:

Clique Size No of control lines No of toffoli gates Quantum Cost
total toffoli=23 total cost=575
Table 4: Cost Analysis

4.1 Growth rate of toffoli gates

Number of toffoli gates required for finding a clique depends on the number of vertices(n) and the size of the clique(m) of the graph. A scatter graph has been plotted on an input graph of 10 vertices. Clique size has been taken along the X axis. Toffoli gates has been taken along Y axis. Only maximum number of required toffoli gates has been taken into consideration for plotting the graph.

Figure 13: Growth rate of toffoli gates

5 Simulation Results using QISKit

The quantum circuit of figure 9 and 11 is simulated in IBMQ Qasm Simulator for verification. The input to the circuit is , , and as four initial inputs.

5.0.1 Simulation of clique size 4 in IBMQ

The circuit for clique size four has been simulated in IBMQ Qasm Simulator. The marked state is high as shown in the output plot below.

Figure 14: Marked States After Applying Diffusion Operator

5.0.2 Simulation of clique size 3 in IBMQ

The circuit for clique size three has been simulated in IBMQ Qasm Simulator. The marked state and is high as shown in the output plot below.

Figure 15: Marked States After Applying Diffusion Operator

6 Physical Machine Descriptions

The physical realization of quantum circuits is possible using primitive quantum operations that are supported by the quantum physical machine description (PMD). Different quantum system has different hamiltonian. So a Fault tolerant quantum logic synthesis(FTQLS) tool is used to map the unoptimized quantum circuit to an optimized fault tolerant quantum circuit. In this paper designed quantum circuit is implemented in six PMDs namely Quantum Dots (QD), Superconducting Qubits (SC), Ion Traps (IT), Neutral Atoms (NA),Linear Photonics (LP), and Non-linear Photonics (NP) using an FT quantum logic synthesis (FTQLS) methodology. Following table 5 shows FTQLS output for various PMDs for Clique size 4.

PMD Op Cycle
QD 19282 101515
SC 17204 44378
IT 12154 8950
NA 12930 9030
LP 11702 16263
NP 16604 18075
Table 5: FTQLS output for six PMDs for clique size 4

Following table 6 shows FTQLS output for different PMDs for clique size 3.

PMD Op Cycle
QD 39410 222816
SC 35209 99991
IT 24175 19151
NA 27756 54071
LP 23726 34052
NP 33801 37911
Table 6: FTQLS output in six PMDs for clique size 3

6.1 Complexity Analysis

A quantum algorithm always gives quadratic speed up over its classical counterpart. Proposed quantum algorithm for the synthesis of Maximum Clique Problem in this paper is based on Grover’s algorithm. So quadratic speed up is achieved using this combinatorial approach of solving Maximum Clique Problem. If the total number of vertices in n of the input graph the complexity will be over the classical method of complexity .

7 Conclusion

The automated and generalized algorithm of quantum circuit synthesis for Maximum Clique Problem for any given undirected and unweighted graph has been proposed with query complexity of . It uses Grover’s algorithm for finding an element in an unsorted number list where the exact number of solutions is unknown. As this is an NP hard problem, no algorithm can be found with the polynomial complexity. Proposed generalized algorithm in this paper generates maximum clique for any kind of graph and synthesizes its quantum circuit in the form of QASM. Two arbitrary graphs have been taken for verifying the circuit. FTQLS has been used for mapping the circuit to six PMDs. IBMQ Qasm Simulator has been used to verify the circuit. In future we plan to adopt, some technology specific error control schemes which can be applied to satisfy the physical implementation requirements of these circuits.

References