WO2022110705A1 - Qram架构的量子线路的构建方法和装置、以及量子地址数据的解析方法和装置 - Google Patents

Qram架构的量子线路的构建方法和装置、以及量子地址数据的解析方法和装置 Download PDF

Info

Publication number
WO2022110705A1
WO2022110705A1 PCT/CN2021/096102 CN2021096102W WO2022110705A1 WO 2022110705 A1 WO2022110705 A1 WO 2022110705A1 CN 2021096102 W CN2021096102 W CN 2021096102W WO 2022110705 A1 WO2022110705 A1 WO 2022110705A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
quantum
data
bits
node
Prior art date
Application number
PCT/CN2021/096102
Other languages
English (en)
French (fr)
Inventor
李叶
安宁波
窦猛汉
Original Assignee
合肥本源量子计算科技有限责任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN202011376073.2A external-priority patent/CN114638366B/zh
Priority claimed from CN202011376086.XA external-priority patent/CN114638368B/zh
Application filed by 合肥本源量子计算科技有限责任公司 filed Critical 合肥本源量子计算科技有限责任公司
Priority to EP21896215.7A priority Critical patent/EP4250186A4/en
Priority to US18/039,453 priority patent/US11983606B2/en
Publication of WO2022110705A1 publication Critical patent/WO2022110705A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/20Models of quantum computing, e.g. quantum circuits or universal quantum computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/40Physical realisations or architectures of quantum processors or components for manipulating qubits, e.g. qubit coupling or qubit control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store

Definitions

  • the present application belongs to the technical field of quantum computing, in particular to a method and device for constructing a quantum circuit in a QRAM architecture, a method and device for analyzing quantum address data, a storage medium and an electronic device.
  • a quantum computer is a kind of physical device that follows the laws of quantum mechanics to perform high-speed mathematical and logical operations, store and process quantum information.
  • quantum computers When a device processes and computes quantum information and runs quantum algorithms, it is a quantum computer.
  • Quantum computers have become a key technology under research because of their ability to handle mathematical problems more efficiently than ordinary computers. For example, it can speed up the time to crack an RSA key from hundreds of years to hours.
  • Quantum Random Access Memory which stores information and allows querying of superposition states, could play a key role in dramatically accelerating quantum algorithms for data analysis, including big data machine learning applications.
  • QRAM is a storage system for quantum computers, and it is the quantum version of RAM in classical computers. It is used to create quantum superposition states containing information through QRAM. Compared with RAM, which needs to be read one by one, QRAM can be used in the form of superimposed addresses. Read overlaid data.
  • the effective physical structure of QRAM is still lacking, and it is not easy to realize and expand, which brings a certain degree of difficulty to the analysis and research of complex quantum algorithms.
  • the purpose of this application is to provide a method for constructing a quantum circuit for a QRAM architecture and a method for analyzing quantum address data, so as to solve the deficiencies in the prior art, and to propose an effective quantum circuit for realizing the QRAM architecture.
  • the analysis of line and quantum address data is applied to the QRAM architecture to realize the function of writing addresses and reading data in the form of quantum states of the QRAM architecture, thereby accelerating the analysis and verification of complex quantum algorithms.
  • An embodiment of the present application provides a method for constructing a quantum circuit for a QRAM architecture.
  • the QRAM architecture is used to access data and has a binary tree structure.
  • the QRAM architecture includes the following nodes: an N-layer subtree node and a 1 Layer leaf node, the subtree node includes: address bits and first data bits, the leaf node includes: second data bits for storing data, and N is the address length for writing to the QRAM architecture ; the method includes:
  • each line basic structure in the binary tree structure wherein the line basic structure includes: address bits, data bits of a sub-tree node and data bits in two sub-nodes in the next layer;
  • quantum bits included in the basic structure of the circuit determine the quantum bits required for the basic quantum circuit to be constructed
  • a basic quantum circuit corresponding to the basic structure of the circuit is constructed by using the required quantum bits and quantum logic gates.
  • determining the qubits required to construct the basic quantum circuit according to the qubits included in the basic structure of the circuit includes:
  • the qubits included in the basic structure of the circuit are determined one by one as the qubits required for the basic quantum circuit to be constructed.
  • determining the input and output of the basic quantum circuit to be constructed according to the interaction relationship between qubits required for the basic quantum circuit to be constructed includes:
  • the input and output of the basic quantum circuit to be constructed are determined according to the interaction relationship between the qubits required for the basic quantum circuit to be constructed.
  • determining the input and output of the basic quantum circuit to be constructed according to the interaction relationship between qubits required by the basic quantum circuit to be constructed includes:
  • the interaction relationship between the quantum bits included in the basic circuit structure is the first interaction relationship
  • the input and output of the first basic quantum circuit to be constructed are the output and input of the address bits of the sub-tree nodes remain unchanged
  • the The input of the data bit of the subtree node is an address bit, and the output is
  • the input of the data bits of the next two sub-nodes is
  • the output is the address bit
  • the input and output of the second basic quantum circuit to be constructed are the address bits of a subtree node.
  • the input is an address bit
  • the output is an address bit.
  • the input of the data bits of the next two sub-nodes is the first data and the second data, and the output is unchanged.
  • the input of the data bits of the sub-tree node is
  • the basic quantum circuit corresponding to the basic circuit structure is constructed by using the required quantum bits and quantum logic gates according to the input and output, including:
  • a CNOT gate acting on the qubits included in the basic circuit structure is constructed to obtain the first basic quantum circuit corresponding to the basic circuit structure ;
  • it also includes:
  • Parse the address and transfer each bit of the address to the address bit of the corresponding layer subtree node; wherein, each bit of the address corresponds to each layer of the N layer subtree node;
  • the data stored in the leaf node is transferred to the data bits of the sub-tree node of the previous layer, until the binary tree
  • the data corresponding to the address is output on the subtree node at the root of the tree in the structure.
  • the step of transferring each bit of the address to the address bits of the sub-tree node of the corresponding layer includes:
  • the k-th bit address is transferred to the first-level subtree node of the tree root in the binary tree structure;
  • the step of transferring the k-th address in the current-level sub-tree node to the next-level sub-tree node is repeatedly performed until it is transferred to the address bit of the k-th level sub-tree node,
  • the k is a positive integer and takes values from N to 1 in sequence.
  • An embodiment of the present application provides an apparatus for constructing a quantum circuit for a QRAM architecture.
  • the QRAM architecture is used to access data and has a binary tree structure.
  • the QRAM architecture includes the following nodes: an N-layer subtree node and a 1 Layer leaf node, the subtree node includes: address bits and first data bits, the leaf node includes: second data bits for storing data, and N is the address length for writing to the QRAM architecture ; the device includes:
  • a line structure dividing module configured to divide each line basic structure in the binary tree structure, wherein the line basic structure includes: address bits, data bits of a sub-tree node and data bits in two sub-nodes in the next layer ;
  • a quantum bit determination module used for determining the quantum bits required to construct the basic quantum circuit according to the quantum bits included in the basic structure of the circuit;
  • a bit relationship determination module configured to determine the input and output of the basic quantum circuit to be constructed according to the interaction relationship between the qubits required by the basic quantum circuit to be constructed
  • a quantum circuit determination module configured to construct a basic quantum circuit corresponding to the basic structure of the circuit by using the required quantum bits and quantum logic gates according to the input and output.
  • An embodiment of the present application provides a method for parsing quantum address data, which is applied to a pre-built quantum random memory accessor QRAM architecture for accessing data, where the QRAM architecture includes at least one layer of sub-tree nodes, each The layer subtree node includes corresponding address bits, and the analysis method of the quantum address data includes:
  • each quantum address data is sequentially transferred to the address bits of the corresponding layer subtree nodes in the QRAM architecture, so as to complete the analysis of the target quantum address.
  • the method before the step of sequentially transferring each quantum address data to the address bits of the corresponding layer subtree nodes in the QRAM architecture through a preset quantum circuit, the method further includes:
  • the total number of bits of the target quantum address is the same as the total number of layers of subtree nodes in the QRAM architecture, the total number of bits and the total number of layers are both N, and N is a positive integer , the step of sequentially transferring each quantum address data to the address bits of the corresponding layer subtree nodes in the QRAM architecture specifically includes:
  • the step of transferring the 0th bit address data to the address bits of the N-1th layer subtree node through the preset quantum circuit includes:
  • the 0th address data in the data bits of the 0th layer subtree node is transferred to the data bits of the next layer subtree node, until the 0th address data is transferred to the data bits of the N-1th layer subtree node;
  • the 0th bit address data stored in the data bits of the N-1th layer subtree node is exchanged to the address bits of the N-1th layer subtree node.
  • the step of acquiring the next bit of address data in the target quantum address, and determining the next-level subtree node in the QRAM architecture, to transfer the next bit of address data is specifically include:
  • the first-bit address data in the data bits of the sub-tree node of the 0th layer is transferred to the data bits of the sub-tree node of the next layer, until the first-bit address data is transferred to The data bits of the N-2 layer subtree node.
  • the QRAM architecture further includes a leaf node connected to the N-1th layer subtree node, the leaf node further includes data bits of the leaf node for storing data, the predetermined quantum circuit, and sequentially transfer each quantum address data to the address bits of the corresponding layer subtree nodes in the QRAM architecture to complete the step of parsing the target quantum address, further comprising:
  • the method further includes:
  • An inverse computation process is performed on the QRAM architecture to restore the QRAM architecture to an initial state.
  • Yet another embodiment of the present application provides an apparatus for parsing quantum address data, which is applied to a pre-built quantum random memory accessor QRAM architecture for accessing data, where the QRAM architecture includes at least one layer of subtree nodes, Each layer of subtree nodes includes corresponding address bits, and the apparatus includes:
  • the address acquisition module is used to sequentially acquire each quantum address data in the target quantum address according to the preset data bit acquisition rule when receiving the target quantum address;
  • the address parsing module is used to sequentially transfer each quantum address data to the address bits of the corresponding layer subtree nodes in the QRAM architecture through a preset quantum circuit, so as to complete the parsing of the target quantum address.
  • Yet another embodiment of the present application provides a storage medium in which a computer program is stored, wherein the computer program is configured to execute the method described in any one of the above when running.
  • Yet another embodiment of the present application provides an electronic device comprising a memory and a processor, the memory having a computer program stored therein, the processor being configured to run the computer program to execute any of the above Methods.
  • FIG. 1 is a hardware structure block of a computer terminal for a method for constructing a quantum circuit of a QRAM architecture and a method for analyzing quantum address data according to an embodiment of the present application.
  • FIG. 2 is a schematic flowchart of a method for constructing a quantum circuit of a QRAM architecture according to an embodiment of the present application.
  • FIG. 3 is a schematic structural diagram of a QRAM according to an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a basic quantum circuit for a QRAM architecture provided by an embodiment of the present application.
  • FIG. 5 is a schematic structural diagram of a QRAM with three subtree layers according to an embodiment of the present application.
  • FIG. 6 is a schematic structural diagram of another QRAM with three sub-tree layers provided by an embodiment of the present application.
  • FIG. 7 is a schematic structural diagram of still another QRAM with three sub-tree layers according to an embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of an apparatus for constructing a quantum circuit of a QRAM architecture according to an embodiment of the present application.
  • FIG. 9 is a schematic flowchart of a method for parsing quantum address data provided by an embodiment of the present application.
  • FIG. 10 is a schematic structural diagram of an apparatus for analyzing quantum address data.
  • the embodiments of the present application first provide a method for constructing a quantum circuit for a QRAM architecture, and the method can be applied to electronic devices, such as computer terminals, specifically, ordinary computers, quantum computers, and the like.
  • FIG. 1 is a hardware structural block diagram of a computer terminal of a method for constructing a quantum circuit of a QRAM architecture provided by an embodiment of the present application.
  • the computer terminal may include one or more (only one is shown in FIG. 1 ) processor 102 (the processor 102 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a parser 104 for storing quantum address data, in one embodiment, the above-mentioned computer terminal may further include a transmission device 106 for a communication function and an input and output device 108 .
  • FIG. 1 is only a schematic diagram, which does not limit the structure of the above-mentioned computer terminal.
  • the computer terminal may also include more or fewer components than shown in FIG. 1 , or have a different configuration than that shown in FIG. 1 .
  • the memory 104 can be used to store software programs and modules of application software, such as program instructions/modules corresponding to the method for constructing a quantum circuit of the QRAM architecture in the embodiments of the present application.
  • the processor 102 runs the software programs stored in the memory 104 and modules to perform various functional applications and data processing, that is, to implement the above-mentioned methods.
  • Memory 104 may include high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, memory 104 may further include memory located remotely from processor 102, which may be connected to a computer terminal through a network. Examples of such networks include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
  • Transmission means 106 are used to receive or transmit data via a network.
  • the specific example of the above-mentioned network may include a wireless network provided by the communication provider of the computer terminal.
  • the transmission device 106 includes a network adapter (Network Interface Controller, NIC), which can be connected to other network devices through a base station so as to communicate with the Internet.
  • the transmission device 106 may be a radio frequency (Radio Frequency, RF) module, which is used for wirelessly communicating with the Internet.
  • RF Radio Frequency
  • a real quantum computer is a hybrid structure, which consists of two parts: one part is a classical computer, which is responsible for performing classical calculations and control; the other part is a quantum device, which is responsible for running quantum programs to realize quantum computing.
  • a quantum program is a sequence of instructions written in a quantum language such as QRunes that can run on a quantum computer, which supports the operation of quantum logic gates, and finally realizes quantum computing.
  • a quantum program is a series of instruction sequences that operate quantum logic gates in a certain sequence.
  • Quantum computing simulation is a process in which a virtual architecture (ie, a quantum virtual machine) built with the resources of an ordinary computer realizes the simulation operation of a quantum program corresponding to a specific problem. Often, it is necessary to construct a quantum program corresponding to a particular problem.
  • the quantum program referred to in the embodiments of the present application refers to a program written in a classical language to characterize qubits and their evolution, wherein qubits, quantum logic gates, etc. related to quantum computing are represented by corresponding classical codes.
  • quantum circuits also known as quantum logic circuits
  • quantum logic circuits are the most commonly used general-purpose quantum computing models, representing circuits that operate on qubits under abstract concepts, including qubits, circuits (timelines) , and various quantum logic gates, the results are often read out through quantum measurement operations.
  • the wires can be regarded as connected by time, that is, the state of qubits evolves naturally with time.
  • the instruction of the Hamiltonian operator which is operated until it encounters a logic gate.
  • a quantum program as a whole corresponds to a total quantum circuit
  • the quantum program in this application refers to the total quantum circuit, wherein the total number of qubits in the total quantum circuit is the same as the total number of qubits in the quantum program.
  • a quantum program can be composed of quantum circuits, measurement operations for qubits in the quantum circuits, registers to save the measurement results, and control flow nodes (jump instructions).
  • a quantum circuit can contain dozens, hundreds or even thousands of them. Tens of thousands of quantum logic gate operations.
  • the execution process of a quantum program is the process of executing all quantum logic gates in a certain sequence. It should be noted that timing is the time sequence in which a single quantum logic gate is executed.
  • Quantum logic gates are the basis of quantum circuits. Quantum logic gates include single-bit quantum logic gates, such as Hadamard gates (H gates, Hadamard gates), Pauli-X gates ( X gate), Pauli-Y gate (Y gate), Pauli-Z gate (Z gate), RX gate, RY gate, RZ gate, etc.; multi-bit quantum logic gates, such as CNOT gate, CR gate, iSWAP gate , Toffoli doors and more.
  • Quantum logic gates are generally represented by a unitary matrix, and a unitary matrix is not only a matrix form, but also an operation and transformation.
  • the function of the general quantum logic gate in the quantum state is to calculate by multiplying the unitary matrix left by the matrix corresponding to the right vector of the quantum state.
  • QRAM plays a role in the conversion of classical data to quantum data in many quantum algorithms (as an intermediate memory for converting classical data into quantum data), and an important condition for quantum acceleration of these algorithms is that the time for QRAM to execute query (query) cannot be too long long. Specifically, if the problem size is N, the generally acceptable query time should be O(1) or O(polylog N), not O(N).
  • This QRAM architecture does not specify what kind of physical system it needs to be implemented on. For example, it can be implemented in optical systems, semiconductor quantum dots, superconducting circuits, ion traps, etc., which have been proven to be possible to achieve quantum computing.
  • FIG. 2 is a schematic flowchart of a method for constructing a quantum circuit for a QRAM architecture provided by an embodiment of the application.
  • the QRAM architecture is used for accessing data and is a binary tree structure, and the QRAM architecture includes the following nodes : N-layer subtree nodes and 1-layer leaf nodes, the subtree nodes include: address bits and first data bits, the leaf nodes include: second data bits for storing data, and N is used for writing Enter the address length of the QRAM architecture;
  • the entire QRAM may present a binary tree structure.
  • each small box in the figure represents a Qubit (quantum bit).
  • Qubit Quantum bit
  • A the address bit
  • D the data bit
  • a bit and one D bit in a continuous longitudinal direction form a group, which is called a node (node), that is, a basic unit in a binary tree. All nodes form a binary tree, the root of the binary tree is the output part of the QRAM, and each leaf node (the last layer, not shown in the figure) records a binary data bit.
  • the maximum addressing space of QRAM is from 0 to 2 N -1.
  • Such a QRAM has a total of N layers of subtree nodes plus the last layer of leaf nodes, and the leaf nodes can store a maximum of 2 N binary bits.
  • the number of node levels) is a binary tree with 3+N.
  • the method specifically includes:
  • Step S201 dividing each line basic structure in the binary tree structure, wherein the line basic structure includes: address bits, data bits of a sub-tree node and data bits in two sub-nodes in the next layer;
  • a Basic Block is a basic circuit structure spanning two layers, which consists of a node and D bits in its two sub-nodes (referred to as m 0 , m respectively). 1 ) Composition, a total of 4 bits. There may be intersections between different basic blocks, sharing individual bits. According to the design requirements of this basic line structure, the binary tree structure of the QRAM can be divided, and all the basic line structures existing in it can be found.
  • Step S202 according to the quantum bits included in the basic structure of the circuit, determine the quantum bits required for the basic quantum circuit to be constructed
  • the qubits included in the basic structure of the circuit can be determined one by one as the qubits required for constructing the basic quantum circuit.
  • the basic block of the circuit shown in Figure 3 includes 4 bits, which corresponds to 4 qubits required by the basic quantum circuit.
  • Step S203 determining the input and output of the basic quantum circuit to be constructed according to the interaction relationship between the qubits required for the basic quantum circuit to be constructed;
  • the interaction relationship between qubits required for the basic quantum circuit to be constructed can be obtained; according to the interaction relationship between the qubits required for the basic quantum circuit to be constructed, Determine the inputs and outputs of the basic quantum circuit to be constructed.
  • the interaction relationship between qubits included in the basic circuit structure is the first interaction relationship
  • the input and output of the first basic quantum circuit to be constructed are the output of the address bits of a subtree node and the The input remains unchanged, the input of the data bit of the subtree node is an address bit, and the output is 0, the input of the data bit of the next two sub-nodes is 0, and the output is the address bit;
  • the input and output of the second basic quantum circuit to be constructed are the address bits of a subtree node.
  • the input is an address bit
  • the output is an address bit.
  • the input of the data bits of the two sub-nodes in the next layer is the first data and the second data, and the output is unchanged.
  • the input of the data bits of the sub-tree node is 0, and the output is determined by the address bit and is the first data. or second data.
  • Step S204 according to the input and output, using the required quantum bits and quantum logic gates to construct a basic quantum circuit corresponding to the basic circuit structure.
  • a CNOT gate acting on the qubits included in the basic circuit structure is constructed to obtain the first basic quantum circuit corresponding to the basic circuit structure.
  • the present application provides a method for constructing a quantum circuit for a QRAM architecture
  • the QRAM architecture is used for accessing data and is a binary tree structure
  • the QRAM architecture includes the following nodes: an N-layer subtree node and 1-layer leaf node
  • the subtree node includes: address bits and first data bits
  • the leaf node includes: a second data bit for storing data
  • N is a value used for writing to the QRAM architecture Address length
  • the method includes: dividing each line basic structure in the binary tree structure, wherein the line basic structure includes: address bits, data bits of a sub-tree node and data in two sub-nodes in the next layer bits
  • the quantum bits included in the basic structure of the circuit determine the quantum bits required for the basic quantum circuit to be constructed
  • the Input and output according to the input and output, use the required quantum bits and quantum logic gates to construct a basic quantum circuit corresponding to the
  • a basic circuit structure can be preset to realize two realization functions, corresponding to the need for two basic quantum circuits, which are called the first basic quantum circuit (sub-circuit a), the second basic quantum circuit Quantum circuit (subcircuit b).
  • the sub-circuit (a) is shown in Figure 4(a), its function does not involve the A bit, and the realization function is: move the data addr in the D bit to m 0 and m 1 , so the A bit has no interaction with the other bits. role, the D bit has a first role relationship with the m 0 and m 1 bits.
  • the quantum state input in both m 0 and m 1 is guaranteed to be 0 state.
  • the A-bit output and input remain unchanged, the output in D is guaranteed to be in 0 state, and the m 0 and m 1 -bit outputs are both address bit data addr.
  • 4 CNOT gates are used in this circuit, and the one used on one bit in Figure 4(a) The icon is represented by a line connected to another bit.
  • the sub-circuit (b) is shown in Figure 4(b), and the realization function is to selectively transfer the data of m 0 or m 1 to the D of the upper layer according to the data addr of A, so the A bit, D bit and m 0 , The m 1 bit has a second effect relationship.
  • the data of m 0 (corresponding to subscript 0) can be moved into D through the Toffoli gate, the output of the A bit is unchanged from the input, the input of the D bit is 0, and the output is the first data d 0 of m 0 , m 0 , m 1 bit output and input remain unchanged; if A is 1, the data of m 1 (corresponding to subscript 1) can be moved to D through the Toffoli gate, the A bit output and input remain unchanged, and the D bit input is 0 and the output is the first data d 1 of m 1 , and the bit output of m 0 and m 1 is unchanged from the input.
  • sub-circuit (c) and sub-circuit (b) implement the same function, as shown in Figure 4(c), in contrast, only one Toffoli gate, three CNOT gates and two NOT gates are used, Relatively optimized (the Toffoli gate is very complex to implement), it can be used instead. Among them, on a bit Icons indicate NOT gates. It should be noted that this is not a specific limitation on the construction of the basic quantum circuit required by the Basic Block, and other quantum circuits that can realize the functions of the sub-circuit a and the sub-circuit b also fall within the protection scope of this application.
  • the method may also include:
  • quantum superposition states containing information can be fabricated through QRAM.
  • RAM which needs to be read one by one, superimposed data can be read at superimposed addresses.
  • store e 0 ,e 1 ,...,e (n-1) in address [0,N) use classical RAM, input address i, and output data e i ; for the quantum version of QRAM, you can input the following quantum state as address:
  • This process of inputting addresses and outputting data can be called query or access.
  • the initialization is actually the writing process of the QRAM, and the data is imported one by one.
  • the QRAM When the quantum address is sent to the QRAM, the QRAM receives and parses the address, and writes the address information in the A bits in the entire architecture.
  • S206 Parse the address, and transfer each bit of the address to the address bit of the subtree node of the corresponding layer respectively; wherein, each bit of the address corresponds to each layer of the subtree node of the N layers ;
  • the k-th address can be transferred to the first-level subtree node at the root of the tree in the binary tree structure; wherein, the k-th bit can be The address is transferred to the data bits of the first-level subtree node;
  • the k is a positive integer and the value is sequentially taken from N to 1, so as to realize the propagation of addresses.
  • the next-bit address of the k-th address is immediately transferred from the sub-tree of the previous layer of the current layer.
  • the tree node is transferred to the subtree node of the current layer.
  • each line basic structure in the binary tree structure may be determined, wherein the line basic structure includes: address bits, data bits of a sub-tree node and the two sub-nodes in the next layer. data bits;
  • the first basic quantum circuit corresponding to the basic circuit structure is repeatedly executed, so as to transfer the k-th address stored in the data bits of the subtree node in the basic circuit structure to the next layer two subtrees. On the data bits in the node, until the k-th address is transferred to the data bits of the k-th layer subtree node;
  • the data bits of the subtree node of the kth level are exchanged with the quantum states of the address bits of the subtree node, so as to move the kth address to the address bits of the subtree node of the kth level.
  • the process can be performed in staggered steps.
  • the process of moving the next address bit to layer 1 can be started immediately, so that the entire movement The time required for the step will not exceed the time for the Nth bit address to be moved all the way to the Nth layer.
  • FIG. 5 shows a topological structure of a QRAM architecture, including three layers of subtree nodes and one layer of leaf nodes, and the qubits in each initial subtree node can be set to 0 state, m 000 , m 001 ...m 111 are data stored by the leaf node, the leaf node may include a data bit (second data bit), and the type may be a quantum bit or a classical bit.
  • Address Register means address register, representing address bits;
  • Data Register means data register, representing data bits.
  • a quantum state is a superposition state of a group of eigenstates, for example: 3-bit quantum state
  • f> b 0
  • 111> where
  • 2 1, and
  • the probability amplitude of other states is 0, it is in a certain state.
  • the amplitude is 1, and the third to the first bits are from right to left.
  • transfer the 3rd bit address 1 to the D bit of the subtree node of the first layer execute the first basic quantum circuit (sub-circuit a) corresponding to the basic block of the first layer and the second layer, and transfer the address 1 To the two D bits of the second layer, continue to execute the first basic quantum circuit a corresponding to the 2 basic blocks of the second layer and the third layer, and then transfer the address 1 to the 4 D bits of the third layer.
  • SWAP gate or the equivalent quantum logic gate can be used to exchange the quantum states of the A and D bits located in the same subtree node, and move the address 1 to the 4 A bits of the third layer.
  • the third layer The quantum state of 4 A bits is 1 state.
  • S207 starting from the leaf node, according to the address stored in the address bits of the sub-tree nodes of each layer, transfer the data stored in the leaf node to the data bits of the sub-tree node of the previous layer, until the data bits of the sub-tree node of each layer are stored.
  • the data corresponding to the address is output on the subtree node at the root of the tree in the binary tree structure.
  • the second basic quantum circuit corresponding to the basic structure of the circuit can be repeatedly executed to transfer the data stored in the leaf node to the data bits of the sub-tree node in the upper layer, until Obtain and output the data corresponding to the address on the data bits of the sub-tree node at the root of the tree in the binary tree structure; wherein, the data transferred to the data bits of the sub-tree node of the upper layer is composed of the corresponding line basic structure.
  • the address bits are determined by the address stored.
  • This process can be called data copy, that is, data copy.
  • the second basic quantum circuit (sub-circuit b) corresponding to the basic structure of each basic block circuit, after each layer is executed, the next layer is directly executed.
  • the function of the sub-circuit b is to convert Data is transferred from child nodes to parent nodes. Since the address is stored in the A bits, the data transfer process at each layer must retain the correct required data. Therefore, the D bits of the root subtree node must be the data bits indicated by the address, so that the data is successfully extracted.
  • FIG. 6 Exemplarily, continue to take FIG. 6 as an example, where the address 101 is stored in FIG. 6 .
  • the two leaf nodes and the sub-tree nodes of the previous layer form a basic line structure.
  • the second basic quantum circuit c corresponding to the four Basic Blocks spanning the third layer and the leaf layer is simultaneously executed.
  • the data m 001 whose subscript 3rd bit is 1 in the 2 child nodes is moved to the D of the parent node; similarly , in the 2nd, 3rd, and 4th Basic Block, the data to be moved are m 011 , m 101 , m 111 , and finally, the D bit of the third-level subtree node reads the 3rd bit of 4 subscripts
  • the data m 001 , m 011 , m 101 , and m 111 are 1 (corresponding to the 3rd bit address 1 in the written address 101).
  • the second basic quantum circuit c corresponding to one Basic Block spanning the first layer and the second layer is executed.
  • the A of the parent node is the first address 1
  • the data m 101 whose subscript the first bit is 1 in the two child nodes is moved to the D of the parent node;
  • the sub-tree node at the root of the first layer of the tree is The D bit of 2 reads the data m 101 whose subscript the second bit is 1 (corresponding to the first address 1 in the written address 101), so as to realize the reading of the quantum state address
  • the time required to execute one propagation is 4Nt, where t is the time required to execute a CNOT gate.
  • the QRAM architecture can also be inversely calculated to restore the QRAM architecture to initial state.
  • the data stored in the leaf node includes a multi-digit number, wherein the parent nodes of a leaf node corresponding to each digit of the multi-digit number are different;
  • the data stored in the leaf node includes multiple multi-digit numbers, wherein the same bits of the multiple multi-digit numbers are stored continuously, and the parent nodes of a leaf node corresponding to each bit of each multi-digit number are different.
  • the same architecture as the original can be used, as well as a new memory storage method. That is: when a multi-digit number needs to be stored, each digit of the number can be stored in different places, so that the parent nodes of a leaf node corresponding to each digit of the multi-digit number are different; 1024 64-bit floating-point numbers, only need to centrally store all the 0th bits of these 1024 numbers, and then centrally store all the 1st bits... so that each bit of each multi-digit corresponds to a leaf node.
  • the parent nodes are not the same.
  • the continuous storage refers to the continuous storage of the 0th digit to the last digit of one number, and the continuous storage of the 0th digit to the last digit of another number, and so on.
  • the QRAM architecture can be implemented in an ideal noise-free physical system, and only requires planar and nearest-neighbor interactions for the arrangement of qubits.
  • the running time of this QRAM will not exceed O(log(N)) level, so it can fully meet the needs of quantum algorithms.
  • QRAM-based quantum circuits only use the most basic quantum logic gates that can be reasonably realized, so as to realize the functions of writing addresses and reading data in the form of quantum states, and speeding up the analysis and verification of complex quantum algorithms.
  • FIG. 8 is an apparatus for constructing a quantum circuit for a QRAM architecture provided by an embodiment of the application.
  • the QRAM architecture is used for accessing data and is a binary tree structure.
  • the QRAM architecture includes the following nodes: N layers A sub-tree node and a layer-1 leaf node, the sub-tree node includes: address bits and first data bits, the leaf node includes: a second data bit for storing data, and N is for writing the The address length of the QRAM architecture; the apparatus includes:
  • the line structure dividing module 801 is configured to divide each line basic structure in the binary tree structure, wherein the line basic structure includes: address bits, data bits of a sub-tree node and data in two sub-nodes in the next layer bit;
  • a qubit determination module 802 configured to determine the qubits required by the basic quantum circuit to be constructed according to the qubits included in the basic structure of the circuit;
  • a bit relationship determination module 803, configured to determine the input and output of the basic quantum circuit to be constructed according to the interaction relationship between the qubits required by the basic quantum circuit to be constructed;
  • the quantum circuit determination module 804 is configured to construct a basic quantum circuit corresponding to the basic circuit structure by using the required quantum bits and quantum logic gates according to the input and output.
  • quantum bit determination module is also used for:
  • the qubits included in the basic structure of the circuit are determined one by one as the qubits required for the basic quantum circuit to be constructed.
  • bit relationship determination module specifically includes:
  • a bit relationship obtaining unit configured to obtain the interaction relationship between qubits required by the basic quantum circuit to be constructed according to the realization function of the basic structure of the circuit;
  • the bit relationship determining unit is configured to determine the input and output of the basic quantum circuit to be constructed according to the interaction relationship between the qubits required for the basic quantum circuit to be constructed.
  • bit relationship determination module also includes:
  • a first relationship determination unit configured to determine that the input and output of the first basic quantum circuit to be constructed are the address bits of a subtree node when the interaction relationship between the quantum bits included in the basic circuit structure is the first interaction relationship
  • the output and input remain unchanged, the input of the data bit of the subtree node is an address bit, and the output is 0, the input of the data bit of the next two sub-nodes is 0, and the output is the address bit;
  • the second relationship determining unit is configured to determine that the input and output of the second basic quantum circuit to be constructed are the address bits of a subtree node when the interaction relationship between the quantum bits included in the basic circuit structure is the second interaction relationship
  • the input is an address bit, and the output is unchanged.
  • the input of the data bits of the next two sub-nodes is the first data and the second data, and the output is unchanged.
  • the input of the data bit of the sub-tree node is 0, and the output is determined by the The address bits determine and are either the first data or the second data.
  • the quantum circuit determination module specifically includes:
  • the first circuit construction unit is configured to construct a CNOT gate acting on the qubits included in the basic structure of the circuit when the input and output are determined as the input and output of the first basic quantum circuit to be constructed, and obtain the basic quantum circuit of the circuit.
  • the first fundamental quantum circuit corresponding to the structure
  • the second circuit construction unit is configured to, when the input and output are determined to be the input and output of the second basic quantum circuit to be constructed, construct a Toffoli gate that acts on the qubits included in the basic structure of the circuit, or constructs a Toffoli gate that acts on all the quantum circuits.
  • the basic structure of the circuit includes the NOT gate, the CNOT gate and the Toffoli gate of the qubit to obtain a second basic quantum circuit corresponding to the basic structure of the circuit.
  • the device also includes:
  • the address receiving module receives the address represented by the quantum state
  • the address parsing module is configured to parse the address, and transfer each bit of the address to the address bits of the corresponding layer subtree node; wherein, each bit of the address corresponds to the N layer subtree node each layer;
  • the data output module is used to start from the leaf node and transfer the data stored in the leaf node to the data bits of the sub-tree node of the previous layer according to the address stored in the address bits of the sub-tree nodes of each layer. , until the data corresponding to the address is output on the subtree node at the root of the tree in the binary tree structure.
  • address resolution module is specifically used for:
  • the k-th bit address is transferred to the first-level subtree node of the tree root in the binary tree structure;
  • the step of transferring the k-th address in the current-level sub-tree node to the next-level sub-tree node is repeatedly performed until it is transferred to the address bit of the k-th level sub-tree node,
  • the k is a positive integer and takes values from N to 1 in sequence.
  • An embodiment of the present application further provides a storage medium, where a computer program is stored in the storage medium, wherein the computer program is configured to execute the steps in any of the above method embodiments when running.
  • the above-mentioned storage medium may be configured to store a computer program for executing the following steps:
  • each line basic structure in the binary tree structure includes: address bits, data bits of a subtree node and data bits in two subnodes of the next layer;
  • S4 according to the input and output, use the required quantum bits and quantum logic gates to construct a basic quantum circuit corresponding to the basic structure of the circuit.
  • An embodiment of the present application further provides an electronic device, including a memory and a processor, where a computer program is stored in the memory, and the processor is configured to run the computer program to execute any one of the above method embodiments. A step of.
  • the above-mentioned electronic device may further include a transmission device and an input-output device, wherein the transmission device is connected to the above-mentioned processor, and the input-output device is connected to the above-mentioned processor.
  • the above-mentioned processor may be configured to execute the following steps through a computer program:
  • each line basic structure in the binary tree structure includes: address bits, data bits of a subtree node and data bits in two subnodes of the next layer;
  • S4 according to the input and output, use the required quantum bits and quantum logic gates to construct a basic quantum circuit corresponding to the basic structure of the circuit.
  • FIG. 9 is a schematic flowchart of a method for parsing quantum address data provided by an embodiment of the present application. Based on the above schematic diagram, this embodiment provides a method for analyzing quantum address data, which is applied to a pre-built quantum random memory accessor QRAM architecture for accessing data.
  • the QRAM architecture includes at least one layer of sub-tree nodes, and each Layer subtree nodes include corresponding address bits.
  • QRAM is a storage system for quantum computers, which is the quantum version of RAM in classical computers.
  • quantum superposition states containing information can be fabricated through QRAM.
  • superimposed data can be read at superimposed addresses. For example, store e 0 ,e 1 ,...,e (n-1) in address [0,N), use classical RAM, input address i, and output data e i ; for the quantum version of QRAM, you can input the following quantum state as address:
  • the method for analyzing quantum address data may include the following steps:
  • each small box in the figure represents a Qubit (quantum bit).
  • Qubit includes: address bit A (Address Qubit) and data bit D (Data Qubit).
  • address bit A is used to store the quantum address bit data
  • data bit D is used for exchange. All nodes form a QRAM architecture with a binary tree structure.
  • a bit and one D bit in a continuous longitudinal direction form a group, which is called a node (node), that is, a basic unit in a binary tree.
  • the D bits in a node and its two child nodes (referred to as m 0 and m 1 respectively) constitute a basic block (Basic Block).
  • the root of the binary tree is the output part of the QRAM; the leaf node is located in the last layer of the binary tree, and the leaf node is used to store data, that is, a binary data bit is recorded.
  • N such as 32-bit, 64-bit, etc.
  • the maximum addressing space is from 0 to 2 N -1, with a total of N levels of subtree nodes plus the last 1
  • the leaf node of the layer the leaf node can store a maximum of 2 N binary bits.
  • 23+N binary bits need to be stored, corresponding to a height (subtree)
  • the number of node levels) is a binary tree with 3+N.
  • the preset rule may be from low to high, or from low to high.
  • the user can preset the corresponding relationship between the address data bits and the layer sub-nodes of the QRAM architecture according to actual needs.
  • the target quantum address corresponding to the target data to be read is received, since the current customary sequence is to write the address bits from the low order to the high order, each quantum address in the target quantum address is sequentially obtained from the low order to the high order. address data.
  • a method for analyzing quantum address data is applied to a pre-built quantum random memory accessor QRAM architecture for accessing data
  • the QRAM architecture includes at least one layer of subtree nodes.
  • each layer of subtree nodes includes corresponding address bits
  • the method for analyzing the quantum address data includes: when the target quantum address is received, sequentially acquiring each quantum address data in the target quantum address from low bits to high bits; A quantum circuit is set up, and each quantum address data is transferred to the address bits of the corresponding layer subtree nodes in the QRAM architecture in turn, so as to complete the analysis of the target quantum address.
  • each quantum address data corresponding to the target quantum address can be sequentially transferred to the address bits of the corresponding layer in the QRAM architecture from the low order to the high order through the quantum circuit set in advance according to the function. Therefore, after each quantum address data corresponding to the target quantum address is sequentially transferred to the QRAM architecture from low bits to high bits, the parsing of the target quantum address is completed, and the target quantum address can be determined in the QRAM architecture.
  • the quantum circuit used in this application includes a first fundamental quantum circuit, namely subcircuit (a), a second fundamental quantum circuit, namely subcircuit (b), and a third fundamental quantum circuit, namely subcircuit (c) three a basic line. details as follows:
  • sub-circuit ( a ) is used to move data in D bits into m0 and m1. It is worth noting that before running subcircuit (a), the quantum states in m 0 and m 1 are 0 states. After running subcircuit (a), the state in D is the 0 state.
  • sub-circuit (a) includes 4 CNOT gates, and the The icon is represented by a line connected to another bit.
  • the sub-circuit (b) is used to selectively transfer the data of m 0 and m 1 to the D bit according to the state of the A bit. If the A bit is 0, move the data of m 0 into D through the Toffoli gate; if A is 1, move the data of m 1 into D through the Toffoli gate.
  • the sub-circuit (b) includes two Toffoli gates, the one used on one bit in FIG. 4(b) The icon plus the line connecting the other two bits represents the Toffoli gate, the solid represents the real control, that is, the quantum logic gate is executed when the quantum state of the bit is 1; the hollow represents the virtual control, that is, the quantum state of the bit is 0. Quantum logic gates.
  • the sub-circuit (c) and the sub-circuit (b) implement the same function, that is, they both selectively transfer the data of m 0 and m 1 to the D bit according to the state of the A bit. .
  • the Toffoli gate is more difficult to control than the CNOT gate
  • an optimized version of the subcircuit (c) of (b) is further provided.
  • the sub-circuit (c) includes one Toffoli gate, three CNOT gates and two NOT gates.
  • only 1 Toffoli gate, 3 CNOT gates and 2 NOT gates are used, which are relatively optimized (the implementation of Toffoli gates is very complicated), and can be equivalently replaced.
  • on a bit Icons indicate NOT gates. It should be noted that this is not a specific limitation on the construction of the basic quantum circuit required by the Basic Block, and other quantum circuits that can realize the functions of the sub-circuit a and the sub-circuit b also fall within the protection scope of this application.
  • a method for parsing quantum address data provided in this embodiment is applied to a pre-built quantum random memory accessor QRAM architecture for accessing data.
  • the QRAM architecture includes at least one layer of sub-tree nodes, each layer of sub-tree nodes.
  • the tree nodes include corresponding address bits, and the method for analyzing the quantum address data includes: when the target quantum address is received, sequentially acquiring each quantum address data in the target quantum address from the low order to the high order; Each quantum address data is sequentially transferred to the address bits of the corresponding layer subtree nodes in the QRAM architecture, so as to complete the analysis of the target quantum address. It can be seen that by proposing a method for analyzing quantum address data, it can be applied to the QRAM architecture, and the functions of writing addresses and reading data in the form of quantum states can be realized, thereby speeding up the analysis and verification of complex quantum algorithms.
  • step S202 it also includes:
  • the total number of bits of the target quantum address is the same as the total number of layers of subtree nodes in the QRAM architecture, the total number of bits and the total number of layers are both N, and N is a positive integer, the step S202 Specifically include:
  • the number of layers of the sub-tree nodes (excluding the leaf nodes of the last layer) of the QRAM architecture is equal to the address length.
  • the address bits of one quantum address data in all quantum address data are constant at N-1 after the corresponding subtree node of the corresponding layer.
  • the 0th quantum address data corresponds to the N-1th layer subtree node of the QRAM architecture, and the N-1th bit address data is transferred to the address bits of the 0th layer subtree node.
  • each quantum address data is sequentially transferred to the address bits of the corresponding sub-tree node from low order to high order through the preset quantum circuit of the corresponding function.
  • the step of transferring the 0th address data to the address bits of the N-1th layer subtree node through the preset quantum circuit includes:
  • the 0th address data in the data bits of the 0th layer subtree node is transferred to the data bits of the next layer subtree node, until the 0th address data is transferred to the data bits of the N-1th layer subtree node;
  • the 0th bit address data stored in the data bits of the N-1th layer subtree node is exchanged to the address bits of the N-1th layer subtree node.
  • each quantum address data cannot be directly transferred to the address bits. It needs to be transferred to the data bits of each subtree node first, and then exchanged layer by layer to the transfer bits of the corresponding subtree node.
  • N the number of subtree node levels
  • the N-1th bit in the N-bit address is transferred to the D bit of the 0th level subtree node, and then , execute subcircuit (a) to transfer the value in D of the subtree node at level 0 into m 0 and m 1 of the subtree node at level 1.
  • sub-circuit (a) on the basic block containing m 0 and m 1 , respectively, to transfer the value in D to m 0 and m 1 of the next level, thus cyclic transfer until the transfer to the last One layer, that is, the N-1th layer, and finally by exchanging the values of the N-1th layer A and D to move the data from D to the A bit, thus completing the transfer of the N-1th bit address data Address bits to the N-1th level subtree node.
  • the next step is to move the N-2th bit to the N-2 layer... until the 1st bit is transferred to the 1st layer.
  • the step of obtaining the next bit address data in the target quantum address, and determining the next layer of subtree nodes in the QRAM architecture, to transfer the next bit address data specifically includes:
  • the first-bit address data in the data bits of the sub-tree node of the 0th layer is transferred to the data bits of the sub-tree node of the next layer, until the first-bit address data is transferred to The data bits of the N-2 layer subtree node.
  • the above data transfer process may be performed in a staggered manner.
  • the process of moving the next address bit to layer 1 can be started immediately, so that the time required for the entire moving step will not exceed the Nth bit address has been moved Time to the Nth floor.
  • the process of moving the next address bit from the 0th layer to the 1st layer can be started, so that the time required for the whole moving step will not exceed the Nth- The time that the 1-bit address has been moved to the last layer.
  • the 1st address data is obtained in the target quantum address
  • the first address data is obtained in the target quantum address.
  • the QRAM architecture also includes a leaf node connected to the N-1th layer subtree node, the leaf node further includes data bits of the leaf node for storing data, and the preset quantum circuit is used to sequentially After each quantum address data is transferred to the address bits of the corresponding layer subtree nodes in the QRAM architecture, after completing the step of parsing the target quantum address, the method further includes:
  • the leaf node corresponding to the target data in the specific subtree node of the QRAM architecture can be determined. Then the leaf node starts, and executes sub-circuit (c) for each basic block, so as to transfer the data stored in the leaf node to the data bits of the sub-tree node in the upper layer, until the tree in the binary tree structure Obtain and output the target data corresponding to the target quantum address from the data bits of the subtree node at the root; wherein, the data transferred to the data bits of the subtree node of the upper layer is composed of the address bits included in the corresponding line basic structure.
  • the stored address is determined.
  • the address data can be stored in the A bit in advance, which can ensure that the data transfer process of each layer can retain the correct required data.
  • the D bits in the root are transferred to the data bits indicated by the target quantum address, and the extraction of the target data is completed.
  • the data stored by the leaf node is a multi-digit number, and the parent node of a leaf node corresponding to each bit of the multi-digit number is different; or the data stored by the leaf node is a plurality of multi-digit numbers.
  • the number of digits, wherein the same digits of the multiple digits are stored continuously, and the parent nodes of a leaf node corresponding to each digit of each multiple digits are different.
  • the above data extraction process needs to execute the sub-circuit (c) N times, and the required time is 3Nt+Nt', where t' is the time required for one Toffoli gate.
  • FIG. 5 shows a topology of a QRAM architecture, including three layers of sub-tree nodes and one layer of leaf nodes, and the qubits in the initial sub-tree nodes can be set to 0 state, m 000 , m 001 ...m 111 are the data stored by the leaf node, the leaf node may include a data bit, and the type may be a quantum bit or a classical bit.
  • Address Register means address register, representing address bits;
  • Data Register means data register, representing data bits.
  • a quantum state is a superposition state of a group of eigenstates, for example: 3-bit quantum state
  • f> b 0
  • 111> where
  • 2 1, and
  • the probability amplitude of other states is 0, it is in a certain state.
  • the amplitude is 1, and the third to the first bits are from right to left.
  • transfer the 3rd bit address 1 to the D bit of the subtree node of the first layer execute the first basic quantum circuit (sub-circuit a) corresponding to the basic block of the first layer and the second layer, and transfer the address 1 To the two D bits of the second layer, continue to execute the first basic quantum circuit a corresponding to the 2 basic blocks of the second layer and the third layer, and then transfer the address 1 to the 4 D bits of the third layer.
  • SWAP gate or the equivalent quantum logic gate can be used to exchange the quantum states of the A and D bits located in the same subtree node, and move the address 1 to the 4 A bits of the third layer.
  • the third layer The quantum state of 4 A bits is 1 state.
  • the method further includes:
  • the data stored in the leaf node is transferred to the data bits of the sub-tree node of the previous layer, until the binary tree
  • the data corresponding to the address is output on the subtree node at the root of the tree in the structure.
  • the second basic quantum circuit corresponding to the basic structure of the circuit can be repeatedly executed to transfer the data stored in the leaf node to the data bits of the sub-tree node in the upper layer, until Obtain and output the data corresponding to the address on the data bits of the sub-tree node at the root of the tree in the binary tree structure; wherein, the data transferred to the data bits of the sub-tree node of the upper layer is composed of the corresponding line basic structure.
  • the address bits are determined by the address stored.
  • This process can be called data copy, that is, data copy.
  • the second basic quantum circuit (sub-circuit b) corresponding to the basic structure of each basic block circuit, after each layer is executed, the next layer is directly executed.
  • the function of the sub-circuit b is to Data is transferred from child nodes to parent nodes. Since the address is stored in the A bits, the data transfer process at each layer must retain the correct required data. Therefore, the D bits of the root subtree node must be the data bits indicated by the address, so that the data is successfully extracted.
  • the address 101 is stored in FIG. 5 .
  • the two leaf nodes and the sub-tree nodes of the previous layer form a basic line structure.
  • the second basic quantum circuit c corresponding to the four Basic Blocks spanning the third layer and the leaf layer is simultaneously executed.
  • the data m 001 whose subscript 3rd bit is 1 in the 2 child nodes is moved to the D of the parent node; similarly , in the 2nd, 3rd, and 4th Basic Block, the data to be moved are m 011 , m 101 , m 111 , and finally, the D bit of the third-level subtree node reads the 3rd bit of 4 subscripts
  • the data m 001 , m 011 , m 101 , and m 111 are 1 (corresponding to the 3rd bit address 1 in the written address 101).
  • the second basic quantum circuit c corresponding to one Basic Block spanning the first layer and the second layer is executed.
  • the A of the parent node is the first address 1
  • the data m 101 whose subscript the first bit is 1 in the two child nodes is moved to the D of the parent node;
  • the sub-tree node at the root of the first layer of the tree is The D bit of 2 reads the data m 101 whose subscript the second bit is 1 (corresponding to the first address 1 in the written address 101), so as to realize the reading of the quantum state address
  • the time required to execute one propagation is 4Nt, where t is the time required to execute a CNOT gate.
  • the method further includes:
  • An inverse computation process is performed on the QRAM architecture to restore the QRAM architecture to an initial state.
  • the QRAM architecture is not restored to the original state, and the correct extraction of the next data cannot be guaranteed.
  • the data copy data copy and data analysis that is, data propagation
  • the entire QRAM architecture can be restored to the initial state, and the inverse calculation processing of the QRAM architecture is completed.
  • the QRAM architecture can also be inversely calculated to restore the QRAM architecture to initial state.
  • the data stored in the leaf node includes a multi-digit number, wherein the parent nodes of a leaf node corresponding to each digit of the multi-digit number are different;
  • the data stored in the leaf node includes multiple multi-digit numbers, wherein the same bits of the multiple multi-digit numbers are stored continuously, and the parent nodes of a leaf node corresponding to each bit of each multi-digit number are different.
  • the same architecture as the original can be used, as well as a new memory storage method. That is: when a multi-digit number needs to be stored, each digit of the number can be stored in different places, so that the parent nodes of a leaf node corresponding to each digit of the multi-digit number are different; 1024 64-bit floating-point numbers, only need to centrally store all the 0th bits of these 1024 numbers, and then centrally store all the 1st bits... so that each bit of each multi-digit corresponds to a leaf node.
  • the parent nodes are not the same.
  • the continuous storage refers to the continuous storage of the 0th digit to the last digit of one number, and the continuous storage of the 0th digit to the last digit of another number, and so on.
  • the QRAM architecture can be implemented in an ideal noise-free physical system, and only requires planar and nearest-neighbor interactions for the arrangement of qubits.
  • the running time of this QRAM will not exceed O(log(N)) level, so it can fully meet the needs of quantum algorithms.
  • QRAM-based quantum circuits only use the most basic quantum logic gates that can be reasonably realized, so as to realize the functions of writing addresses and reading data in the form of quantum states, and speeding up the analysis and verification of complex quantum algorithms.
  • FIG. 10 is a schematic structural diagram of a quantum address data parsing device provided by an embodiment of the application, which is applied to a pre-built quantum random memory accessor QRAM architecture for accessing data, and the QRAM architecture includes At least one layer of sub-tree nodes, each layer of sub-tree nodes includes corresponding address bits, and the device includes:
  • the address acquisition module 1001 is configured to, when receiving the target quantum address, sequentially acquire the data of each quantum address in the target quantum address according to a preset data bit acquisition rule;
  • the address parsing module 1002 is configured to sequentially transfer each quantum address data to the address bits of the corresponding layer subtree nodes in the QRAM architecture through a preset quantum circuit, so as to complete the parsing of the target quantum address.
  • the device also includes:
  • the data determination module is used to obtain the address bits of each quantum address data in the target quantum address, and according to preset corresponding rules and the address bits, determine the corresponding layer of each quantum address data in the QRAM architecture tree node.
  • the total number of bits of the target quantum address is the same as the total number of layers of subtree nodes in the QRAM architecture, the total number of bits and the total number of layers are both N, N is a positive integer, and the address
  • the parsing module 802 specifically includes:
  • the first transfer unit is used to obtain the 0th bit address data in the target quantum address, determine the N-1th layer subtree node in the QRAM architecture, and transfer the 0-bit address data is transferred to the address bits of the N-1th layer subtree node;
  • the second transfer unit is configured to obtain the next bit of address data in the target quantum address, and determine the next-level sub-tree node in the QRAM architecture to transfer the next bit of address data until the The N address data in the target quantum address are respectively transferred to the address bits of the corresponding N-level subtree nodes in the QRAM architecture.
  • the first transfer unit specifically includes:
  • a first transfer subunit used for transferring the 0th address data to the data bits of the 0th layer subtree node in the QRAM architecture
  • the second transfer subunit is configured to transfer the 0th address data in the data bits of the subtree node of the 0th layer to the data bits of the subtree node of the next layer through the preset quantum circuit, until all the The 0th address data is transferred to the data bits of the N-1th layer subtree node;
  • the third transfer subunit is configured to exchange the 0th bit address data stored in the data bits of the N-1th layer subtree node to the address bits of the N-1th layer subtree node.
  • the second transfer unit specifically includes:
  • the fourth transfer subunit is used to transfer the 0th address data in the data bits of the subtree nodes of the 0th layer to the data bits of the subtree nodes of the next layer, through the preset quantum circuit.
  • the 1st bit address data is transferred to the data bits of the 0th layer subtree node in the QRAM architecture, and the transfer of the address data in the target quantum address is performed in a wrong step;
  • the fifth transfer subunit is used to transfer the first address data in the data bits of the subtree nodes of the 0th layer to the data bits of the subtree nodes of the next layer through the preset quantum circuit, until all the data bits are transferred.
  • the first-bit address data is transferred to the data bits of the N-2-th layer subtree node.
  • the QRAM architecture further includes a leaf node connected to the N-1th layer subtree node, the leaf node further includes data bits of the leaf node for storing data, and the device further includes:
  • the output module is used to start from the leaf node, according to the respective quantum address data stored in the address bits of each layer of subtree nodes, transfer the target data stored in the data bits of the leaf node to the previous on the data bits of the sub-tree node of the layer, until the target data corresponding to the target quantum address is output on the sub-tree node at the root of the tree in the binary tree structure.
  • the device also includes:
  • An inverse calculation module configured to perform inverse calculation processing on the QRAM architecture, so as to restore the QRAM architecture to an initial state.
  • An embodiment of the present application further provides a storage medium, where a computer program is stored in the storage medium, wherein the computer program is configured to execute the steps in any of the above method embodiments when running.
  • the above-mentioned storage medium may be configured to store a computer program for executing the following steps:
  • the above-mentioned storage medium may include, but is not limited to: a USB flash drive, a read-only memory (Read-Only Memory, referred to as ROM), a random access memory (Random Access Memory, referred to as RAM), mobile Various media that can store computer programs, such as hard disks, magnetic disks, or optical disks.
  • ROM Read-Only Memory
  • RAM Random Access Memory
  • An embodiment of the present application further provides an electronic device, including a memory and a processor, where a computer program is stored in the memory, and the processor is configured to run the computer program to execute any one of the above method embodiments. A step of.
  • the above-mentioned electronic device may further include a transmission device and an input-output device, wherein the transmission device is connected to the above-mentioned processor, and the input-output device is connected to the above-mentioned processor.
  • the above-mentioned processor may be configured to execute the following steps through a computer program:

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)
  • Dram (AREA)

Abstract

本申请公开了一种用于QRAM架构的量子线路的构建方法及装置,QRAM架构用于存取数据且为二叉树结构,方法包括:划分所述二叉树结构中的各个线路基本结构;根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。本申请还公开了一种量子地址数据的解析方法,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特,所述量子地址数据的解析方法包括:在接收到目标量子地址时,由低位至高位依次获取所述目标量子地址中的各个量子地址数据;通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。

Description

QRAM架构的量子线路的构建方法和装置、以及量子地址数据的解析方法和装置
相关申请
本申请要求2020年11月30日申请的,申请号为202011376086.X,名称为“一种用于QRAM架构的量子线路的构建方法及装置”,以及2020年11月30日申请的,申请号为202011376073.2,名称为“量子地址数据的解析方法、装置、存储介质及电子装置”的中国专利申请的优先权,在此将其全文引入作为参考。
技术领域
本申请属于量子计算技术领域,特别是一种用于QRAM架构的量子线路的构建方法及装置、以及一种量子地址数据的解析方法及装置、存储介质及电子装置。
背景技术
量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。当某个装置处理和计算的是量子信息,运行的是量子算法时,它就是量子计算机。量子计算机因其具有相对普通计算机更高效的处理数学问题的能力,例如,能将破解RSA密钥的时间从数百年加速到数小时,故成为一种正在研究中的关键技术。
对于从数据库中检索经典/量子数据并将其转换为量子叠加态的有效过程的开发是量子信息处理的实际实现中最基本的问题之一。存储信息并允许叠加态查询的量子随机存取存储器(Quantum Random Access Memory,简记为QRAM)可能在大幅加速用于数据分析的量子算法中起关键作用,包括大数据机器学习的应用。QRAM是一种用于量子计算机的存储系统,是经典计算机中RAM的量子版本,以通过QRAM来制造包含信息的量子叠加态,相比于RAM需要逐个读取,QRAM可以以叠加的地址的方式读取叠加的数据。但是,目前QRAM的有效物理结构还缺乏,不易于实现和扩展,进而对复杂量子算法的分析及研究带来一定程度上的困难。
发明内容
本申请的目的是提供一种用于QRAM架构的量子线路的构建方法以及一种量子地址数据的解析方法,以解决现有技术中的不足,能够提出一种有效的用于实现QRAM架构的量 子线路和量子地址数据的解析,应用于QRAM架构、实现QRAM架构的以量子态形式写入地址并读取数据的功能,从而加快复杂量子算法的分析验证。
本申请的一个实施例提供了一种用于QRAM架构的量子线路的构建方法,所述QRAM架构用于存取数据且为二叉树结构,所述QRAM架构包括以下节点:N层子树节点和1层树叶节点,所述子树节点包括:地址比特和第一数据比特,所述树叶节点包括:用于存储数据的第二数据比特,所述N为用于写入所述QRAM架构的地址长度;所述方法包括:
划分所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;
根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;
根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;
根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。
在其中一个实施例中,所述根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特,包括:
将所述线路基本结构包括的量子比特,一一确定为待构建基本量子线路所需的量子比特。
在其中一个实施例中,所述根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出,包括:
根据所述线路基本结构的实现功能,获得所述待构建基本量子线路所需的量子比特间的作用关系;
根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出。
在其中一个实施例中,所述根据所述待构建基本量子线路所需的量子比特间的作用关系,并确定待构建基本量子线路的输入和输出,包括:
在所述线路基本结构包括的量子比特间的作用关系为第一作用关系时,确定为待构建第一基本量子线路的输入和输出为个子树节点的地址比特的输出与输入保持不变,该子树节点的数据比特的输入为一地址位、输出为|0>,下一层两个子节点的数据比特的输入均为|0>、输出均为该地址位;
在所述线路基本结构包括的量子比特间的作用关系为第二作用关系时,确定为待构建 第二基本量子线路的输入和输出为一个子树节点的地址比特的输入为一地址位、输出不变,下一层两个子节点的数据比特的输入为第一数据和第二数据、输出不变,该子树节点的数据比特的输入为|0>、输出由该地址位决定且为第一数据或第二数据。
在其中一个实施例中,所述根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路,包括:
当所述输入和输出确定为待构建第一基本量子线路的输入和输出时,构建作用于所述线路基本结构包括的量子比特的CNOT门,得到所述线路基本结构对应的第一基本量子线路;
当所述输入和输出确定为待构建第二基本量子线路的输入和输出时,构建作用于所述线路基本结构包括的量子比特的Toffoli门,或构建作用于所述线路基本结构包括的量子比特的NOT门、CNOT门和Toffoli门,得到所述线路基本结构对应的第二基本量子线路。
在其中一个实施例中,还包括:
接收量子态表示的地址;
解析所述地址,将所述地址的每一位地址分别转移到对应层子树节点的地址比特上;其中,所述地址的每一位对应所述N层子树节点的每一层;
从所述树叶节点开始,根据每一层子树节点的地址比特位存储的地址,将所述树叶节点存储的数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点上输出所述地址对应的数据。
在其中一个实施例中,所述将所述地址的每一位地址分别转移到对应层子树节点的地址比特上,包括:
针对所述地址的每一位地址,从k=N开始,将第k位地址转移到所述二叉树结构中树根部的第一层子树节点中;
从第一层子树节点开始,反复执行将当前层子树节点中的第k位地址转移到下一层子树节点中的步骤,直至转移到第k层子树节点的地址比特上为止,其中,所述k为正整数且取值为从N依次取到1。
本申请的一个实施例提供了一种用于QRAM架构的量子线路的构建装置,所述QRAM架构用于存取数据且为二叉树结构,所述QRAM架构包括以下节点:N层子树节点和1层树叶节点,所述子树节点包括:地址比特和第一数据比特,所述树叶节点包括:用于存储数据的第二数据比特,所述N为用于写入所述QRAM架构的地址长度;所述装置包括:
线路结构划分模块,用于划分所述二叉树结构中的各个线路基本结构,其中,所述线 路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;
量子比特确定模块,用于根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;
比特关系确定模块,用于根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;
量子线路确定模块,用于根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。
本申请的一个实施例提供了一种量子地址数据的解析方法,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特,所述量子地址数据的解析方法包括:
在接收到目标量子地址时,根据预设数据位获取规则依次获取所述目标量子地址中的各个量子地址数据;
通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。
在其中一个实施例中,所述通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特的步骤之前,还包括:
获取各个量子地址数据在所述目标量子地址中的地址位数,根据预设对应规则以及所述地址位数,在所述QRAM架构中确定各个量子地址数据的对应层子树节点。
在其中一个实施例中,所述目标量子地址的总位数与所述QRAM架构中的子树节点总层数相同,所述总位数以及所述总层数均为N,N为正整数,所述通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特的步骤具体包括:
在所述目标量子地址中获取第0位地址数据,在所述QRAM架构中确定第N-1层子树节点,并通过所述预设量子线路,将所述第0位地址数据转移至所述第N-1层子树节点的地址比特;
在所述目标量子地址中获取下一位地址数据,并在所述QRAM架构中确定下一层子树节点,以进行下一位地址数据的转移,直至将所述目标量子地址中的N个地址数据分别转移至所述QRAM架构中对应的N层子树节点的地址比特。
在其中一个实施例中,所述通过所述预设量子线路,将所述第0位地址数据转移至所 述第N-1层子树节点的地址比特的步骤包括:
将所述第0位地址数据转移至所述QRAM架构中的第0层子树节点的数据比特;
通过所述预设量子线路,将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特,直至将所述第0位地址数据转移至所述第N-1层子树节点的数据比特;
将所述第N-1层子树节点的数据比特中存储的所述第0位地址数据交换至所述第N-1层子树节点的地址比特。
在其中一个实施例中,所述在所述目标量子地址中获取下一位地址数据,并在所述QRAM架构中确定下一层子树节点,以进行下一位地址数据的转移的步骤具体包括:
在将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特后,通过所述预设量子线路,将所述第1位地址数据转移至所述QRAM架构中的第0层子树节点的数据比特,以错步执行所述目标量子地址中地址数据的转移;
通过所述预设量子线路,将所述第0层子树节点的数据比特中的第1位地址数据转移至下一层子树节点的数据比特,直至将所述第1位地址数据转移至所述第N-2层子树节点的数据比特。
在其中一个实施例中,所述QRAM架构还包括连接于第N-1层子树节点的树叶节点,所述树叶节点还包括用于存储数据的树叶节点的数据比特,所述通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析的步骤之后,还包括:
从所述树叶节点开始,根据每一层子树节点的地址比特位存储的所述各个量子地址数据,将所述树叶节点的数据比特中存储的目标数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点上输出所述目标量子地址对应的目标数据。
在其中一个实施例中,所述在所述二叉树结构中树根部的子树节点上输出所述目标量子地址对应的目标数据的步骤之后,还包括:
对所述QRAM架构进行反计算处理,以将所述QRAM架构恢复到初始状态。
本申请的又一实施例提供了一种量子地址数据的解析装置,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特,所述装置包括:
地址获取模块,用于在接收到目标量子地址时,根据预设数据位获取规则依次获取所 述目标量子地址中的各个量子地址数据;
地址解析模块,用于通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。
本申请的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中所述的方法。
本申请的又一实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中所述的方法。
附图说明
图1为本申请实施例提供的一种用于QRAM架构的量子线路的构建方法和量子地址数据的解析方法的计算机终端的硬件结构框。
图2为本申请实施例提供的一种用于QRAM架构的量子线路的构建方法的流程示意图。
图3为本申请实施例提供的一种QRAM的架构示意图。
图4为本申请实施例提供的一种用于QRAM架构的基本量子线路示意图。
图5为本申请实施例提供的一种3子树层的QRAM的架构示意图。
图6为本申请实施例提供的另一种3子树层的QRAM的架构示意图。
图7为本申请实施例提供的再一种3子树层的QRAM的架构示意图。
图8为本申请实施例提供的一种用于QRAM架构的量子线路的构建装置的结构示意图。
图9本申请实施例提供的一种量子地址数据的解析方法的流程示意图。
图10一种量子地址数据的解析装置的结构示意图。
以下结合附图及实施例对本申请作进一步说明。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本申请实施例首先提供了一种用于QRAM架构的量子线路的构建方法,该方法可以应用于电子设备,如计算机终端,具体如普通电脑、量子计算机等。
下面以运行在计算机终端上为例对其进行详细说明。图1为本申请实施例提供的一种用于QRAM架构的量子线路的构建方法,的计算机终端的硬件结构框图。如图1所示, 计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储量子地址数据的解析器104,在其中一个实施例中,上述计算机终端还可以包括用于通信功能的传输装置106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的用于QRAM架构的量子线路的构建方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
需要说明的是,真正的量子计算机是混合结构的,它包含两大部分:一部分是经典计算机,负责执行经典计算与控制;另一部分是量子设备,负责运行量子程序进而实现量子计算。而量子程序是由量子语言如QRunes语言编写的一串能够在量子计算机上运行的指令序列,实现了对量子逻辑门操作的支持,并最终实现量子计算。具体的说,量子程序就是一系列按照一定时序操作量子逻辑门的指令序列。
在实际应用中,因受限于量子设备硬件的发展,通常需要进行量子计算模拟以验证量子算法、量子应用等等。量子计算模拟即借助普通计算机的资源搭建的虚拟架构(即量子虚拟机)实现特定问题对应的量子程序的模拟运行的过程。通常,需要构建特定问题对应的量子程序。本申请实施例所指量子程序,即是经典语言编写的表征量子比特及其演化的程序,其中与量子计算相关的量子比特、量子逻辑门等等均有相应的经典代码表示。
量子线路作为量子程序的一种体现方式,也称量子逻辑电路,是最常用的通用量子计算模型,表示在抽象概念下对于量子比特进行操作的线路,其组成包括量子比特、线路(时 间线),以及各种量子逻辑门,最后常需要通过量子测量操作将结果读取出来。
不同于传统电路是用金属线所连接以传递电压信号或电流信号,在量子线路中,线路可看成是由时间所连接,亦即量子比特的状态随着时间自然演化,在这过程中按照哈密顿运算符的指示,一直到遇上逻辑门而被操作。
一个量子程序整体上对应有一条总的量子线路,本申请所述量子程序即指该条总的量子线路,其中,该总的量子线路中的量子比特总数与量子程序的量子比特总数相同。可以理解为:一个量子程序可以由量子线路、针对量子线路中量子比特的测量操作、保存测量结果的寄存器及控制流节点(跳转指令)组成,一条量子线路可以包含几十上百个甚至千上万个量子逻辑门操作。量子程序的执行过程,就是对所有的量子逻辑门按照一定时序执行的过程。需要说明的是,时序即单个量子逻辑门被执行的时间顺序。
需要说明的是,经典计算中,最基本的单元是比特,而最基本的控制模式是逻辑门,可以通过逻辑门的组合来达到控制电路的目的。类似地,处理量子比特的方式就是量子逻辑门。使用量子逻辑门,能够使量子态发生演化,量子逻辑门是构成量子线路的基础,量子逻辑门包括单比特量子逻辑门,如Hadamard门(H门,阿达马门)、泡利-X门(X门)、泡利-Y门(Y门)、泡利-Z门(Z门)、RX门、RY门、RZ门等等;多比特量子逻辑门,如CNOT门、CR门、iSWAP门、Toffoli门等等。量子逻辑门一般使用酉矩阵表示,而酉矩阵不仅是矩阵形式,也是一种操作和变换。一般量子逻辑门在量子态上的作用是通过酉矩阵左乘以量子态右矢对应的矩阵进行计算。
QRAM在很多量子算法中扮演了经典数据到量子数据转化的角色(作为将经典数据转化为量子数据的中间存储器),并且这些算法存在量子加速的重要条件就是QRAM执行query(查询)的时间不能太长。具体来说,若问题规模为N,通常可以接受的query时间应该是O(1)或者O(polylog N)的,而不能是O(N)。
QRAM存在多种可能的物理实现,例如最早提出的光学体系,以及后来的声学体系。这些体系都有可能实现O(polylog N)访问时间的QRAM,可以认为是有效的方案。本申请关于QRAM提出基于Nearest-neighbor前提所设计的QRAM物理架构。
这种QRAM架构不指定需要在何种物理体系上实现,例如可以在光学、半导体量子点、超导线路、离子阱等等已经被证明可能实现量子计算的物理体系中实现。
参见图2,图2为本申请实施例提供的一种用于QRAM架构的量子线路的构建方法的流程示意图,所述QRAM架构用于存取数据且为二叉树结构,所述QRAM架构包括以下节点:N层子树节点和1层树叶节点,所述子树节点包括:地址比特和第一数据比特,所 述树叶节点包括:用于存储数据的第二数据比特,所述N为用于写入所述QRAM架构的地址长度;
具体的,整个QRAM可以呈现二叉树状结构。如图3所示,图中每个小方框都代表一个Qubit(量子比特),Qubit有两种:A,即地址比特(Address Qubit);D,即数据比特(Data Qubit)。连续纵向的一个A比特和一个D比特构成一组,称作一个节点(node),即二叉树中的一个基本单位。所有节点构成二叉树,二叉树的根部为QRAM的输出部分,每个树叶节点(最后一层,图中未示出)记录了一个二进制数据位。
对于一个地址长度为N的QRAM(比如32位、64位等典型数据字长……),QRAM的最大寻址空间是从0一直到2 N-1的。这样的QRAM一共有N层子树节点外加最后1层的树叶节点,树叶节点最大可以储存2 N个二进制位。当然,可以按照传统的经典计算机的“字节”(1字节=8bit)方式来扩增定义,这样对于N位QRAM,需要储存2 (3+N)个二进制位,对应一个高度(子树节点层数)为3+N的二叉树。
所述方法具体包括:
步骤S201,划分所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;
示例性的,如图3所示,Basic Block(基本块)是一个横跨两层的线路基本结构,它由一个节点和它的两个子节点中的D比特(分别称之为m 0、m 1)构成,一共4个比特。不同的basic block之间可能有交集,共用个别比特。按照该种线路基本结构的设计需求,可以对QRAM的二叉树结构进行划分,找到其中存在的所有线路基本结构。
步骤S202,根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;
具体地,可以将所述线路基本结构包括的量子比特,一一确定为待构建基本量子线路所需的量子比特。例如,图3所示的线路基本结构basic block包括4个比特,则对应基本量子线路所需4个量子比特。
步骤S203,根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;
具体的,可以根据所述线路基本结构的实现功能,获得所述待构建基本量子线路所需的量子比特间的作用关系;根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出。
根据线路基本结构所设计的想要实现的子功能,从而决定了所需的量子比特间需要存 在作用关系,该种作用关系对应确定了基本量子线路的输出,在具体实现上可通过施加在量子比特上的各种量子逻辑门实现对应作用。
在实际应用中,在所述线路基本结构包括的量子比特间的作用关系为第一作用关系时,确定为待构建第一基本量子线路的输入和输出为一个子树节点的地址比特的输出与输入保持不变,该子树节点的数据比特的输入为一地址位、输出为0,下一层两个子节点的数据比特的输入均为0、输出均为该地址位;
在所述线路基本结构包括的量子比特间的作用关系为第二作用关系时,确定为待构建第二基本量子线路的输入和输出为一个子树节点的地址比特的输入为一地址位、输出不变,下一层两个子节点的数据比特的输入为第一数据和第二数据、输出不变,该子树节点的数据比特的输入为0、输出由该地址位决定且为第一数据或第二数据。
步骤S204,根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。
具体的,当所述输入和输出确定为待构建第一基本量子线路的输入和输出时,构建作用于所述线路基本结构包括的量子比特的CNOT门,得到所述线路基本结构对应的第一基本量子线路;
当所述输入和输出确定为待构建第二基本量子线路的输入和输出时,构建作用于所述线路基本结构包括的量子比特的Toffoli门,或构建作用于所述线路基本结构包括的量子比特的NOT门、CNOT门和Toffoli门,得到所述线路基本结构对应的第二基本量子线路。
与现有技术相比,本申请提供一种用于QRAM架构的量子线路的构建方法,所述QRAM架构用于存取数据且为二叉树结构,所述QRAM架构包括以下节点:N层子树节点和1层树叶节点,所述子树节点包括:地址比特和第一数据比特,所述树叶节点包括:用于存储数据的第二数据比特,所述N为用于写入所述QRAM架构的地址长度;所述方法包括:划分所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。可见,通过提出一种有效的用于QRAM架构的量子线路,实现QRAM架构的以量子态形式写入地址并读取数据的功能,从而加快复杂量子算法的分析验证。
在一种具体实现中,一个线路基本结构(Basic Block)中可以预设实现两种实现功能, 对应需要2种基本量子线路,称之为第一基本量子线路(子线路a)、第二基本量子线路(子线路b)。
子线路(a)如图4(a)所示,其功能不涉及到A比特,实现功能为:把D比特中的数据addr移动到m 0和m 1中,故而A比特与其余比特无相互作用,D比特和m 0、m 1比特存在第一作用关系。在运行这个线路之前,m 0和m 1中的量子态输入都会保证是0态。运行完该线路之后,A比特输出与输入不变,D中输出保证为0态,m 0、m 1比特输出均为地址位数据addr。其中,该线路中使用了4个CNOT门,图4(a)中用在一个比特上的
Figure PCTCN2021096102-appb-000001
图标外加连接另一个比特的连线表示。
子线路(b)如图4(b)所示,实现功能为根据A的数据addr选择性转移m 0或m 1的数据到上一层的D中,故而A比特、D比特和m 0、m 1比特存在第二作用关系。若A为0,则可以通过Toffoli门将m 0(对应下标为0)的数据移动到D中,A比特输出与输入不变,D比特输入为0、输出为m 0的第一数据d 0,m 0、m 1比特输出与输入不变;若A为1,则可以通过Toffoli门将m 1(对应下标为1)的数据移动到D中,A比特输出与输入不变,D比特输入为0、输出为m 1的第一数据d 1,m 0、m 1比特输出与输入不变。如果m 0、m 1的位置互换,功能不变,即:A为0,移动m 0的数据到D中;A为1,移动m 1的数据到D中。图4(b)中用在一个比特上的
Figure PCTCN2021096102-appb-000002
图标外加连接另两个比特的连线表示Toffoli门,实心表示实控,即该比特的量子态为1时执行该量子逻辑门;空心表示虚控,即该比特的量子态为0时执行该量子逻辑门。
另外,子线路(c)和子线路(b)实现的是相同的功能,如图4(c)所示,相比之下只使用了1个Toffoli门、3个CNOT门及2个NOT门,相对优化(Toffoli门实现非常复杂),可等价替换使用。其中,在一个比特上的
Figure PCTCN2021096102-appb-000003
图标表示NOT门。需要说明的是,此处并不是对Basic Block需要的基本量子线路构建的具体限定,其他能够实现子线路a、子线路b功能的量子线路也落在本申请的保护范围。
进一步的,在实际应用中,所述方法还可以包括:
S205,接收量子态表示的地址;
在量子领域应用中,可以通过QRAM来制造包含信息的量子叠加态,相比于RAM需要逐个读取,可以以叠加的地址读取叠加的数据。例如在地址[0,N)中储存e 0,e 1,…,e (n-1),利用经典的RAM,输入地址i,输出数据e i;对于量子版本的QRAM,可以输入下面的量子态作为地址:
Σ|i>
通过QRAM来得到下面的输出:
Σ|i>|e i>
可以把这种输入地址、输出数据的过程称作query或者访问。
在读取数据之前,需要进行初始化,初始化其实就是QRAM的写入过程,将数据一个一个的导入。
当量子地址被下发到QRAM中,QRAM接收然后解析地址,在整个架构中的A比特中写入地址信息。
S206,解析所述地址,将所述地址的每一位地址分别转移到对应层子树节点的地址比特上;其中,所述地址的每一位对应所述N层子树节点的每一层;
具体的,可以针对所述地址的每一位地址,从k=N开始,将第k位地址转移到所述二叉树结构中树根部的第一层子树节点中;其中,可以将第k位地址转移到第一层子树节点的数据比特位上;
从第一层子树节点开始,重复执行将当前层子树节点中的第k位地址转移到下一层子树节点中的步骤,直至转移到第k层子树节点的地址比特上为止,其中,所述k为正整数且取值为从N依次取到1,实现地址的propagation传播。
或者,从k=1开始,将第k位地址转移到二叉树结构中树根部的第一层子树节点中;从第一层子树节点开始,重复执行将当前层子树节点中的第k位地址转移到下一层子树节点中,直至转移到第(N-k+1)层子树节点的地址比特上,其中,k为正整数且取值为从1依次取到N。
在其中一个实施例中,在将当前层子树节点中的第k位地址转移到下一层子树节点中后,立即将第k位地址的下一位地址从当前层的上一层子树节点转移到当前层子树节点中。
在一种实现方式中,首先,可以确定所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;
从第一层子树节点开始,重复执行所述线路基本结构对应的第一基本量子线路,以将该线路基本结构中子树节点的数据比特存储的第k位地址转移到下一层两个子节点中的数据比特位上,直至将所述第k位地址转移到第k层子树节点的数据比特位上;
将第k层的子树节点的数据比特位与该子树节点的地址比特位的量子态进行交换,以将所述第k位地址移动到第k层的子树节点的地址比特位上。
在实际应用中,对于高度为N(子树节点层数)的二叉树,首先从树根开始,将N位 地址中的第N位转移到D qubit中,将D中的值转移到m0和m1中。之后,分别对包含m0或m1的basic block,将D中的值转移到更下一层的m0和m1中,一直转移到最后一层子树节点的D比特中,也就是第N层,最后通过交换A、D的值,将数据从D移动到A比特中。下一步,则是将第N-1位转移到N-1层……一直执行到第1位转移到第1层。
在一个实施例中,该过程是可以错步执行的,当已经把地址位从第1层移动到第2层时,就可以随即开始下一个地址位移动到第1层的过程,使得整个移动步骤所需要的时间不会超过第N位地址一直被移动到第N层的时间。
示例性的,如图5所示,图5表示一种QRAM架构的拓扑结构,包括3层子树节点和1层树叶节点,初始的各子树节点中的量子比特可设为0态,m 000、m 001……m 111为树叶节点存储的数据,树叶节点可以包括一数据比特(第二数据比特),种类可为量子比特或经典比特。Address Register意为地址寄存器,表示地址比特;Data Register意为数据寄存器,表示数据比特。
由于量子的叠加特性,量子态是一组本征态的叠加态,例如:3位量子态|f>=b 0|000>+b 1|001>+b 2|010>+b 3|011>+b 4|100>+b 5|101>+b 6|110>+b 7|111>,其中,|000>、|001>、……、|111>为本征态,数量为2的3次方,b 0…b 7表示振幅(概率幅),满足|b 0| 2+|b 1| 2+|b 2| 2+|b 3| 2+|b 4| 2+|b 5| 2+|b 6| 2+|b 7| 2=1,|>为狄拉克符号。当其他态的概率幅为0时,即处于确定的一个状态。
假设接收到的量子态地址|f>=|101>,振幅为1,从右至左为第3位到第1位。首先,将第3位地址1转移到第一层子树节点的D比特,执行横跨第一层与第二层的basic block对应的第一基本量子线路(子线路a),将地址1转移到第二层的两个D比特中,继续执行横跨第二层与第三层的2个basic block对应的第一基本量子线路a,再将地址1转移到第三层的4个D比特中,最后可以利用SWAP门或等价的量子逻辑门,交换位于同一子树节点的A、D比特的量子态,将地址1移动到第三层的4个A比特中,此时第三层4个A比特的量子态为1态。
同理将第2位地址0最后移动到第2层的2个A比特中,将第1位地址1最后移动到第2层的1个A比特中,最终得到图6所示的结果,地址|101>被传播到第1层至第3层的A比特上。在一个实施例中,该传播过程可以错步执行,例如将第3位地址1从第2层移动到第3层时,同时将下一个地址位0从第1层移动到第2层。
S207,从所述树叶节点开始,根据每一层子树节点的地址比特位存储的地址,将所述树叶节点存储的数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中 树根部的子树节点上输出所述地址对应的数据。
具体的,可以从所述树叶节点开始,重复执行所述线路基本结构对应的第二基本量子线路,以将所述树叶节点存储的数据转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点的数据比特位上获得并输出所述地址对应的数据;其中,转移到上一层子树节点的数据比特位上的数据由对应线路基本结构包括的地址比特位存储的地址所确定。
该过程可以称为data copy,即数据拷贝。此时从树叶部的树叶节点开始,每一个basic block线路基本结构对应的第二基本量子线路(子线路b),每一层执行完后,直接执行下一层,子线路b的功能是将数据从子节点转移到父节点。由于在A比特中存储了地址,每一层的数据转移过程都一定会保留正确需要的数据。因此,到根部子树节点的D比特中,一定是地址所指示的数据位,从而成功地把数据提取出来。
示例性的,继续以图6为例,图6中存储有地址101。此时,两个树叶节点和上一层的子树节点组成一线路基本结构。同时执行横跨第三层和树叶层的4个Basic Block对应的第二基本量子线路c。其中,上方起第1个Basic Block中,由于父节点的A为第3位地址1,将2个子节点中、下标第3位为1的数据m 001移动到父节点的D中;同理,第2个、第3个、第4个Basic Block中,移动的数据为m 011、m 101、m 111,最后,第3层子树节点的D比特读取出4个下标第3位为1(对应写入的地址101中第3位地址1)的数据m 001、m 011、m 101、m 111
继续执行横跨第二层和第三层的2个Basic Block对应的第二基本量子线路c。其中,上方第1个Basic Block中,由于父节点的A为第2位地址0,将2个子节点中、下标第2位为0的数据m 001移动到父节点的D中;同理,第2个Basic Block中,移动的数据为m 101,最后,第2层子树节点的D比特读取出2个下标第2位为0(对应写入的地址101中的第2位地址0)的数据m 001、m 101
最后执行横跨第一层和第二层的1个Basic Block对应的第二基本量子线路c。其中,由于父节点的A为第1位地址1,将2个子节点中、下标第1位为1的数据m 101移动到父节点的D中;最终,在第1层树根部子树节点的D比特读取出2个下标第2位为1(对应写入的地址101中的第1位地址1)的数据m 101,从而实现量子态地址|101>对应数据m 101的读取与输出,如图7所示。
这个过程需要将子线路c执行N次,需要的时间=3Nt+Nt′,其中t′为一个Toffoli门需要的时间。前述执行一次propagation,需要的时间为4Nt,其中t为一个CNOT门执行需 要的时间。
具体的,在实际应用中,在所述二叉树结构中树根部的子树节点上输出所述地址对应的数据后,还可以对所述QRAM架构进行反计算处理,以将所述QRAM架构恢复到初始状态。
整个系统架构虽然取出了数据,但是还没有恢复原有状态,恢复原有状态是非常重要的,因为一个量子算法中的query往往需要执行很多次。所以我们的uncomputing反计算过程就是反过来执行data copy和propagation过程,将整个系统恢复到初始状态。总共计算需要的时间是N(14t+2t′)。
具体的,树叶节点存储的数据包括一个多位数,其中,多位数的每一位对应的一树叶节点的父节点均不相同;
或者,树叶节点存储的数据包括多个多位数,其中,多个多位数的相同位进行连续存储,且每一多位数的每一位对应的一树叶节点的父节点均不相同。
对于多位数据的储存和读取,可以采用和原来相同的architecture架构,以及一种新的内存存储方式。即:当需要存储一个多位数时,可以把这个数的每一位分到不同地方进行储存,以使多位数的每一位对应的一树叶节点的父节点均不相同;若需要储存1024个64位浮点数,只需要把这1024个数所有的第0位集中存储,再把所有的第1位集中存储……以使每一多位数的每一位对应的一树叶节点的父节点均不相同。
在进行读取时,由于量子的并行特性,从最后一层节点上开始,在前log(1024)=10步中,由于多位数的每一位不在同一个basic block中,可以并行取出,从而在第log(64)=6层的所有数据比特上得到想要的所有数,之后再依次把这些数据取出,最后完成uncomputing反计算过程即可。因此,这样存储数据,可以实现对所有数的所有位的同时并行处理,相对于连续储存有一定的加速效果。其中,该连续存储是指将一个数的第0位到最后一位连续存储,再将另一个数的第0位到最后一位连续存储,以此类推。
可见,通过提出一种有效的QRAM物理架构设计,该QRAM架构可以在理想的无噪声物理体系中实现,并且只对量子比特的排布具有平面、最近邻相互作用的要求。这种QRAM的运行时间不会超过O(log(N))级别,因此完全可以满足量子算法的需求。并且,基于QRAM的量子线路只使用了最基本的能合理实现的量子逻辑门,从而实现以量子态形式写入地址并读取数据的功能,加快复杂量子算法的分析验证。
参见图8,图8为本申请实施例提供的一种用于QRAM架构的量子线路的构建装置,所述QRAM架构用于存取数据且为二叉树结构,所述QRAM架构包括以下节点:N层子 树节点和1层树叶节点,所述子树节点包括:地址比特和第一数据比特,所述树叶节点包括:用于存储数据的第二数据比特,所述N为用于写入所述QRAM架构的地址长度;所述装置包括:
线路结构划分模块801,用于划分所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;
量子比特确定模块802,用于根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;
比特关系确定模块803,用于根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;
量子线路确定模块804,用于根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。
进一步地,所述量子比特确定模块还用于:
将所述线路基本结构包括的量子比特,一一确定为待构建基本量子线路所需的量子比特。
进一步地,所述比特关系确定模块具体包括:
比特关系获取单元,用于根据所述线路基本结构的实现功能,获得所述待构建基本量子线路所需的量子比特间的作用关系;
比特关系确定单元,用于根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出。
进一步地,所述比特关系确定模块还包括:
第一关系确定单元,用于在所述线路基本结构包括的量子比特间的作用关系为第一作用关系时,确定为待构建第一基本量子线路的输入和输出为一个子树节点的地址比特的输出与输入保持不变,该子树节点的数据比特的输入为一地址位、输出为0,下一层两个子节点的数据比特的输入均为0、输出均为该地址位;
第二关系确定单元,用于在所述线路基本结构包括的量子比特间的作用关系为第二作用关系时,确定为待构建第二基本量子线路的输入和输出为一个子树节点的地址比特的输入为一地址位、输出不变,下一层两个子节点的数据比特的输入为第一数据和第二数据、输出不变,该子树节点的数据比特的输入为0、输出由该地址位决定且为第一数据或第二数据。
进一步地,所述量子线路确定模块具体包括:
第一线路构建单元,用于当所述输入和输出确定为待构建第一基本量子线路的输入和输出时,构建作用于所述线路基本结构包括的量子比特的CNOT门,得到所述线路基本结构对应的第一基本量子线路;
第二线路构建单元,用于当所述输入和输出确定为待构建第二基本量子线路的输入和输出时,构建作用于所述线路基本结构包括的量子比特的Toffoli门,或构建作用于所述线路基本结构包括的量子比特的NOT门、CNOT门和Toffoli门,得到所述线路基本结构对应的第二基本量子线路。
进一步的,所述装置还包括:
地址接收模块,接收量子态表示的地址;
地址解析模块,用于解析所述地址,将所述地址的每一位地址分别转移到对应层子树节点的地址比特上;其中,所述地址的每一位对应所述N层子树节点的每一层;
数据输出模块,用于从所述树叶节点开始,根据每一层子树节点的地址比特位存储的地址,将所述树叶节点存储的数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点上输出所述地址对应的数据。
进一步地,所述地址解析模块具体用于:
针对所述地址的每一位地址,从k=N开始,将第k位地址转移到所述二叉树结构中树根部的第一层子树节点中;
从第一层子树节点开始,反复执行将当前层子树节点中的第k位地址转移到下一层子树节点中的步骤,直至转移到第k层子树节点的地址比特上为止,其中,所述k为正整数且取值为从N依次取到1。
可见,通过提出一种有效的用于QRAM架构的量子线路,实现QRAM架构的以量子态形式写入地址并读取数据的功能,从而加快复杂量子算法的分析验证。
本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,划分所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;
S2,根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比 特;
S3,根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;
S4,根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。
本申请实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,划分所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;
S2,根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;
S3,根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;
S4,根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。
参见图9,图9为本申请实施例提供的一种量子地址数据的解析方法的流程示意图。基于上述示意图,本实施例提供一种量子地址数据的解析方法,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特。
具体的,QRAM是一种用于量子计算机的存储系统,是经典计算机中RAM的量子版本。在量子领域应用中,可以通过QRAM来制造包含信息的量子叠加态,相比于RAM需要逐个读取,可以以叠加的地址读取叠加的数据。例如在地址[0,N)中储存e 0,e 1,…,e (n-1),利用经典的RAM,输入地址i,输出数据e i;对于量子版本的QRAM,可以输入下面的量子态作为地址:
Σ|i>
通过QRAM来得到下面的输出:
Σ|i>|e i>
上述输入地址、输出数据的过程称作query或者访问。
具体地,该量子地址数据的解析方法可以包括如下步骤:
S901,在接收到目标量子地址时,根据预设数据位获取规则依次获取所述目标量子地址中的各个量子地址数据;
本实施例中,在读取QRAM中存储的数据之前,需要进行数据初始化,初始化其实就是QRAM的写入过程,将数据一个一个的导入。然后将量子地址下发到QRAM中,QRAM对接收到的量子地址进行解析。其中,整个QRAM为二叉树状结构。结合图3所示,图中每个小方框都代表一个Qubit(量子比特)。Qubit包括:地址比特A(Address Qubit)和数据比特D(Data Qubit)。其中,地址比特A用于存储量子地址比特数据,数据比特D起交换作用。所有节点构成二叉树结构的QRAM架构。连续纵向的一个A比特和一个D比特构成一组,称作一个节点(node),即二叉树中的一个基本单位。一个节点和它的两个子节点中的D比特(分别称之为m 0、m 1)构成一个基本块(Basic Block),一个基本块包括4个比特,是一个横跨两层的线路基本结构。二叉树的根部为QRAM的输出部分;树叶节点位于二叉树的最后一层,树叶节点用于存储数据,即记录了一个二进制数据位。例如,对于一个地址长度为N的QRAM(如32位、64位等典型数据字长……),最大寻址空间是从0一直到2 N-1,一共有N层子树节点外加最后1层的树叶节点,树叶节点最大可以储存2 N个二进制位。具体实施例中,可按照传统的经典计算机的“字节”(1字节=8bit)方式来扩增定义,对于N位QRAM,需要储存2 3+N个二进制位,对应一个高度(子树节点层数)为3+N的二叉树。具体地,所述预设规则可以是由低位至高位,也可以是由低位至高位。具体实施例中,用户可根据实际需要预设设置所述地址数据位与所述QRAM架构的层子节点之间的对应关系。在接收到待读取的目标数据对应的目标量子地址时,由于目前的习惯顺序为需要由低位至高位进行地址位写入,因此,由低位至高位依次获取所述目标量子地址中的各个量子地址数据。
S902,通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析:其中,所述预设量子线路通过上述的用于QRAM架构的量子线路的构建方法构建。
现有技术相比,本申请提供的一种量子地址数据的解析方法,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特,所述量子地址数据的解析方法包括:在接收到目标量 子地址时,由低位至高位依次获取所述目标量子地址中的各个量子地址数据;通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。可见,通过提出一种量子地址数据的解析方法,能够应用于QRAM架构,能够实现以量子态形式写入地址并读取数据的功能,从而加快复杂量子算法的分析验证。
本实施例中,可通过预先根据功能设置的量子线路,将目标量子地址对应的各个量子地址数据,由低位至高位,依次转移至所述QRAM架构中的对应层的地址比特中。由此,在将所述目标量子地址对应的各个量子地址数据由低位至高位依次转移至所述QRAM架构之后,即完成了所述目标量子地址的解析,即可在所述QRAM架构中确定所述目标量子地址对应的树叶节点中存储的目标数据。具体地,本申请中使用的量子线路包括第一基本量子线路,即子线路(a)、第二基本量子线路,即子线路(b)和第三基本量子线路,即子线路(c)三种基本线路。具体如下:
如图4(a)所示,子线路(a)用于将D比特中的数据移动到m 0和m 1中。值得说明的是,在运行子线路(a)之前,m 0和m 1中的量子态为0态。运行子线路(a)之后,D中的态为0态。具体实施例中,子线路(a)包括4个CNOT门,图4(a)中用在一个比特上的
Figure PCTCN2021096102-appb-000004
图标外加连接另一个比特的连线表示。
如图4(b)所示,子线路(b)用于根据A比特中态的情况选择性转移m 0和m 1的数据到D比特中。若A比特中为0态,则通过Toffoli门将m 0的数据移动到D中;若A为1,则通过Toffoli门将m 1的数据移动到D中。具体实施例中,子线路(b)包括2个Toffoli门,图4(b)中用在一个比特上的
Figure PCTCN2021096102-appb-000005
图标外加连接另两个比特的连线表示Toffoli门,实心表示实控,即该比特的量子态为1时执行该量子逻辑门;空心表示虚控,即该比特的量子态为0时执行该量子逻辑门。
如图4(c)所示,子线路(c)和子线路(b)实现的是相同的功能,即均为根据A比特中态的情况选择性转移m 0和m 1的数据到D比特中。由于Toffoli门比CNOT门难以控制,因此,进一步提供(b)的优化版子线路(c)。具体实施例中,子线路(c)包括1个Toffoli门、3个CNOT门及2个NOT门。相比之下只使用了1个Toffoli门、3个CNOT门及2个NOT门,相对优化(Toffoli门实现非常复杂),可等价替换使用。其中,在一个比特上的
Figure PCTCN2021096102-appb-000006
图标表示NOT门。需要说明的是,此处并不是对Basic Block需要的基本量子线路构建的具体限定,其他能够实现子线路a、子线路b功能的量子线路也落在本申请的保护范围。
通过上述基本量子线路,即可完成所述目标量子地址的解析。
本实施例中提供的一种量子地址数据的解析方法,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特,所述量子地址数据的解析方法包括:在接收到目标量子地址时,由低位至高位依次获取所述目标量子地址中的各个量子地址数据;通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。可见,通过提出一种量子地址数据的解析方法,能够应用于QRAM架构,能够实现以量子态形式写入地址并读取数据的功能,从而加快复杂量子算法的分析验证。
进一步地,所述步骤S202之前,还包括:
获取各个量子地址数据在所述目标量子地址中的地址位数,根据预设对应规则以及所述地址位数,在所述QRAM架构中确定各个量子地址数据的对应层子树节点。
其中,所述目标量子地址的总位数与所述QRAM架构中的子树节点总层数相同,所述总位数以及所述总层数均为N,N为正整数,所述步骤S202具体包括:
在所述目标量子地址中获取第0位地址数据,在所述QRAM架构中确定第N-1层子树节点,并通过所述预设量子线路,将所述第0位地址数据转移至所述第N-1层子树节点的地址比特;
在所述目标量子地址中获取下一位地址数据,并在所述QRAM架构中确定下一层子树节点,以进行下一位地址数据的转移,直至将所述目标量子地址中的N个地址数据分别转移至所述QRAM架构中对应的N层子树节点的地址比特。
本实施例中,所述QRAM架构的子树节点(不包括最后一层的树叶节点)的层数与地址长度相等。作为一种实施方式,一个量子地址数据在全部量子地址数据中的地址位数,与其对应的对应层子树节点之后,恒定为N-1。例如,第0位量子地址数据对应所述QRAM架构的第N-1层子树节点,将所述第N-1位地址数据转移至所述第0层子树节点的地址比特。具体地,在确定各个量子地址数据之后,通过预先设置的对应功能的量子线路,将各个量子地址数据,由低位至高位,依次转移至对应层子树节点的地址比特中。
进一步地,所述通过所述预设量子线路,将所述第0位地址数据转移至所述第N-1层子树节点的地址比特的步骤包括:
将所述第0位地址数据转移至所述QRAM架构中的第0层子树节点的数据比特;
通过所述预设量子线路,将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特,直至将所述第0位地址数据转移至所述第N-1层子树节点 的数据比特;
将所述第N-1层子树节点的数据比特中存储的所述第0位地址数据交换至所述第N-1层子树节点的地址比特。
本实施例中,由于QRAM架构的特性,各个量子地址数据无法直接转移到地址比特中,需要首先转移到各层子树节点的数据比特,然后层层交换至对应层子树节点的转移比特。在实际应用中,对于高度为N(子树节点层数)的二叉树,首先从树根开始,将N位地址中的第N-1位转移到第0层子树节点的D比特中,然后,执行子线路(a),以将第0层子树节点的D中的值转移到第1层子树节点的m 0和m 1中。然后,分别对包含m 0和m 1的basic block执行子线路(a),以将D中的值转移到更下一级的m 0和m 1中,由此循环转移,直至将转移至最后一层,即第N-1层,最后通过交换第N-1层A、D的值,以将数据从D移动到A比特中,由此完成了将所述第N-1位地址数据转移至所述第N-1层子树节点的地址比特。下一步则是将第N-2位转移到N-2层……一直执行到第1位转移到第1层。
进一步地,所述在所述目标量子地址中获取下一位地址数据,并在所述QRAM架构中确定下一层子树节点,以进行下一位地址数据的转移的步骤具体包括:
在将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特后,通过所述预设量子线路,将所述第1位地址数据转移至所述QRAM架构中的第0层子树节点的数据比特,以错步执行所述目标量子地址中地址数据的转移;
通过所述预设量子线路,将所述第0层子树节点的数据比特中的第1位地址数据转移至下一层子树节点的数据比特,直至将所述第1位地址数据转移至所述第N-2层子树节点的数据比特。
本实施例中,为了提高数据解析效率,可错步执行的上述数据转移过程。当已经把地址位从第0层移动到第1层时,就可以随即开始下一个地址位移动到第1层的过程,使得整个移动步骤所需要的时间不会超过第N位地址一直被移动到第N层的时间。具体地,将地址位从第0层移动到第1层时,即可开始下一个地址位从第0层移动到第1层的过程,使得整个移动步骤所需要的时间不会超过第N-1位地址一直被移动到最后一层的时间。即在将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特时,在所述目标量子地址中获取第1位地址数据,在所述QRAM架构中确定第N-2层子树节点,并通过所述预设量子线路,将所述第1位地址数据转移至所述QRAM架构中的第N-2层子树节点的数据比特,以错步执行所述目标量子地址中地址数据的转移。由此,可保证执行一次propagation,需要的时间为4Nt,其中t为一个CNOT门执行需要的时间。
进一步地,所述QRAM架构还包括连接于第N-1层子树节点的树叶节点,所述树叶节点还包括用于存储数据的树叶节点的数据比特,所述通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析的步骤之后,还包括:
从所述树叶节点开始,根据每一层子树节点的地址比特位存储的所述各个量子地址数据,将所述树叶节点的数据比特中存储的目标数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点上输出所述目标量子地址对应的目标数据。
本实施例中,在解析出所述目标量子地址后,可确定目标数据在所述QRAM架构的具体子树节点对应的树叶节点。然后所述树叶节点开始,对每一个basic block执行子线路(c),以将所述树叶节点存储的数据转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点的数据比特位上获得并输出所述目标量子地址对应的目标数据;其中,转移到上一层子树节点的数据比特位上的数据由对应线路基本结构包括的地址比特位存储的地址所确定。可预先在A比特中存储了地址数据,即可保证每一层的数据转移过程都能保留正确需要的数据。由此,转移至根部的D比特中,即为所述目标量子地址所指示的数据位,完成了目标数据的提取。其中,所述树叶节点存储的数据为一个多位数,其中,所述多位数的每一位对应的一树叶节点的父节点均不相同;或所述树叶节点存储的数据为多个多位数,其中,所述多个多位数的相同位进行连续存储,且每一多位数的每一位对应的一树叶节点的父节点均不相同。具体实施例中,上述数据提取过程需要将子线路(c)执行N次,需要的时间为3Nt+Nt’,其中t’为一个Toffoli门所需的时间。
示例性的,结合图5所示,图5表示一种QRAM架构的拓扑结构,包括3层子树节点和1层树叶节点,初始的各子树节点中的量子比特可设为0态,m 000、m 001……m 111为树叶节点存储的数据,树叶节点可以包括一数据比特,种类可为量子比特或经典比特。Address Register意为地址寄存器,表示地址比特;Data Register意为数据寄存器,表示数据比特。
由于量子的叠加特性,量子态是一组本征态的叠加态,例如:3位量子态|f>=b 0|000>+b 1|001>+b 2|010>+b 3|011>+b 4|100>+b 5|101>+b 6|110>+b 7|111>,其中,|000>、|001>、……、|111>为本征态,数量为2的3次方,b 0…b 7表示振幅(概率幅),满足|b 0| 2+|b 1| 2+|b 2| 2+|b 3| 2+|b 4| 2+|b 5| 2+|b 6| 2+|b 7| 2=1,|>为狄拉克符号。当其他态的概率幅为0时,即处于确定的一个状态。
假设接收到的量子态地址|f>=|101>,振幅为1,从右至左为第3位到第1位。首先, 将第3位地址1转移到第一层子树节点的D比特,执行横跨第一层与第二层的basic block对应的第一基本量子线路(子线路a),将地址1转移到第二层的两个D比特中,继续执行横跨第二层与第三层的2个basic block对应的第一基本量子线路a,再将地址1转移到第三层的4个D比特中,最后可以利用SWAP门或等价的量子逻辑门,交换位于同一子树节点的A、D比特的量子态,将地址1移动到第三层的4个A比特中,此时第三层4个A比特的量子态为1态。
同理将第2位地址0最后移动到第2层的2个A比特中,将第1位地址1最后移动到第2层的1个A比特中,最终得到图6所示的结果,地址|101>被传播到第1层至第3层的A比特上。在一个实施例中,该传播过程可以错步执行,例如将第3位地址1从第2层移动到第3层时,同时将下一个地址位0从第1层移动到第2层。
进一步地,在解析出所述量子地址数据后,还包括:
从所述树叶节点开始,根据每一层子树节点的地址比特位存储的地址,将所述树叶节点存储的数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点上输出所述地址对应的数据。
具体的,可以从所述树叶节点开始,重复执行所述线路基本结构对应的第二基本量子线路,以将所述树叶节点存储的数据转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点的数据比特位上获得并输出所述地址对应的数据;其中,转移到上一层子树节点的数据比特位上的数据由对应线路基本结构包括的地址比特位存储的地址所确定。
该过程可以称为data copy,即数据拷贝。此时从树叶部的树叶节点开始,每一个basic block线路基本结构对应的第二基本量子线路(子线路b),每一层执行完后,直接执行下一层,子线路b的功能是将数据从子节点转移到父节点。由于在A比特中存储了地址,每一层的数据转移过程都一定会保留正确需要的数据。因此,到根部子树节点的D比特中,一定是地址所指示的数据位,从而成功地把数据提取出来。
示例性的,继续以图5为例,图5中存储有地址101。此时,两个树叶节点和上一层的子树节点组成一线路基本结构。同时执行横跨第三层和树叶层的4个Basic Block对应的第二基本量子线路c。其中,上方起第1个Basic Block中,由于父节点的A为第3位地址1,将2个子节点中、下标第3位为1的数据m 001移动到父节点的D中;同理,第2个、第3个、第4个Basic Block中,移动的数据为m 011、m 101、m 111,最后,第3层子树节点的D比特读取出4个下标第3位为1(对应写入的地址101中第3位地址1)的数据m 001、 m 011、m 101、m 111
继续执行横跨第二层和第三层的2个Basic Block对应的第二基本量子线路c。其中,上方第1个Basic Block中,由于父节点的A为第2位地址0,将2个子节点中、下标第2位为0的数据m 001移动到父节点的D中;同理,第2个Basic Block中,移动的数据为m 101,最后,第2层子树节点的D比特读取出2个下标第2位为0(对应写入的地址101中的第2位地址0)的数据m 001、m 101
最后执行横跨第一层和第二层的1个Basic Block对应的第二基本量子线路c。其中,由于父节点的A为第1位地址1,将2个子节点中、下标第1位为1的数据m 101移动到父节点的D中;最终,在第1层树根部子树节点的D比特读取出2个下标第2位为1(对应写入的地址101中的第1位地址1)的数据m 101,从而实现量子态地址|101>对应数据m 101的读取与输出,如图7所示。
这个过程需要将子线路c执行N次,需要的时间=3Nt+Nt′,其中t′为一个Toffoli门需要的时间。前述执行一次propagation,需要的时间为4Nt,其中t为一个CNOT门执行需要的时间。
进一步地,所述在所述二叉树结构中树根部的子树节点上输出所述目标量子地址对应的目标数据的步骤之后,还包括:
对所述QRAM架构进行反计算处理,以将所述QRAM架构恢复到初始状态。
本实施例中,在执行了数据解析以及数据提取操作后,所述QRAM架构未恢复为原有状态,无法保证下一次数据的正确提取。由此,反过来执行数据拷贝data copy和数据解析(即数据传播)propagation过程,即可将整个QRAM架构恢复到初始状态,完成了对所述QRAM架构的反计算处理。
具体的,在实际应用中,在所述二叉树结构中树根部的子树节点上输出所述地址对应的数据后,还可以对所述QRAM架构进行反计算处理,以将所述QRAM架构恢复到初始状态。
整个系统架构虽然取出了数据,但是还没有恢复原有状态,恢复原有状态是非常重要的,因为一个量子算法中的query往往需要执行很多次。所以我们的uncomputing反计算过程就是反过来执行data copy和propagation过程,将整个系统恢复到初始状态。总共计算需要的时间是N(14t+2t′)。
具体的,树叶节点存储的数据包括一个多位数,其中,多位数的每一位对应的一树叶节点的父节点均不相同;
或者,树叶节点存储的数据包括多个多位数,其中,多个多位数的相同位进行连续存储,且每一多位数的每一位对应的一树叶节点的父节点均不相同。
对于多位数据的储存和读取,可以采用和原来相同的architecture架构,以及一种新的内存存储方式。即:当需要存储一个多位数时,可以把这个数的每一位分到不同地方进行储存,以使多位数的每一位对应的一树叶节点的父节点均不相同;若需要储存1024个64位浮点数,只需要把这1024个数所有的第0位集中存储,再把所有的第1位集中存储……以使每一多位数的每一位对应的一树叶节点的父节点均不相同。
在进行读取时,由于量子的并行特性,从最后一层节点上开始,在前log(1024)=10步中,由于多位数的每一位不在同一个basic block中,可以并行取出,从而在第log(64)=6层的所有数据比特上得到想要的所有数,之后再依次把这些数据取出,最后完成uncomputing反计算过程即可。因此,这样存储数据,可以实现对所有数的所有位的同时并行处理,相对于连续储存有一定的加速效果。其中,该连续存储是指将一个数的第0位到最后一位连续存储,再将另一个数的第0位到最后一位连续存储,以此类推。
可见,通过提出一种有效的QRAM物理架构设计,该QRAM架构可以在理想的无噪声物理体系中实现,并且只对量子比特的排布具有平面、最近邻相互作用的要求。这种QRAM的运行时间不会超过O(log(N))级别,因此完全可以满足量子算法的需求。并且,基于QRAM的量子线路只使用了最基本的能合理实现的量子逻辑门,从而实现以量子态形式写入地址并读取数据的功能,加快复杂量子算法的分析验证。
参见图10,图10为本申请实施例提供的一种量子地址数据的解析装置的结构示意图,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特,所述装置包括:
地址获取模块1001,用于在接收到目标量子地址时,根据预设数据位获取规则依次获取所述目标量子地址中的各个量子地址数据;
地址解析模块1002,用于通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。
进一步地,所述装置还包括:
数据确定模块,用于获取各个量子地址数据在所述目标量子地址中的地址位数,根据预设对应规则以及所述地址位数,在所述QRAM架构中确定各个量子地址数据的对应层子树节点。
进一步地,所述目标量子地址的总位数与所述QRAM架构中的子树节点总层数相同, 所述总位数以及所述总层数均为N,N为正整数,所述地址解析模块802具体包括:
第一转移单元,用于在所述目标量子地址中获取第0位地址数据,在所述QRAM架构中确定第N-1层子树节点,并通过所述预设量子线路,将所述第0位地址数据转移至所述第N-1层子树节点的地址比特;
第二转移单元,用于在所述目标量子地址中获取下一位地址数据,并在所述QRAM架构中确定下一层子树节点,以进行下一位地址数据的转移,直至将所述目标量子地址中的N个地址数据分别转移至所述QRAM架构中对应的N层子树节点的地址比特。
进一步地,所述第一转移单元具体包括:
第一转移子单元,用于将所述第0位地址数据转移至所述QRAM架构中的第0层子树节点的数据比特;
第二转移子单元,用于通过所述预设量子线路,将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特,直至将所述第0位地址数据转移至所述第N-1层子树节点的数据比特;
第三转移子单元,用于将所述第N-1层子树节点的数据比特中存储的所述第0位地址数据交换至所述第N-1层子树节点的地址比特。
进一步地,所述第二转移单元具体包括:
第四转移子单元,用于在将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特后,通过所述预设量子线路,将所述第1位地址数据转移至所述QRAM架构中的第0层子树节点的数据比特,以错步执行所述目标量子地址中地址数据的转移;
第五转移子单元,用于通过所述预设量子线路,将所述第0层子树节点的数据比特中的第1位地址数据转移至下一层子树节点的数据比特,直至将所述第1位地址数据转移至所述第N-2层子树节点的数据比特。
进一步地,所述QRAM架构还包括连接于第N-1层子树节点的树叶节点,所述树叶节点还包括用于存储数据的树叶节点的数据比特,所述装置还包括:
输出模块,用于从所述树叶节点开始,根据每一层子树节点的地址比特位存储的所述各个量子地址数据,将所述树叶节点的数据比特中存储的目标数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点上输出所述目标量子地址对应的目标数据。
进一步地,所述装置还包括:
反计算模块,用于对所述QRAM架构进行反计算处理,以将所述QRAM架构恢复到初始状态。
可见,通过提出一种有效的QRAM架构,能够实现以量子态形式写入地址并读取数据的功能,从而加快复杂量子算法的分析验证。
本申请实施例还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项中方法实施例中的步骤。
具体的,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在接收到目标量子地址时,根据预设数据位获取规则依次获取所述目标量子地址中的各个量子地址数据;
S2,通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。
具体的,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请实施例还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项中方法实施例中的步骤。
具体的,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
具体的,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在接收到目标量子地址时,根据预设数据位获取规则依次获取所述目标量子地址中的各个量子地址数据;
S2,通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。
以上依据图式所示的实施例详细说明了本申请的构造、特征及作用效果,以上所述仅为本申请的较佳实施例,但本申请不以图面所示限定实施范围,凡是依照本申请的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本申请的保护范围内。

Claims (18)

  1. 一种用于QRAM架构的量子线路的构建方法,所述QRAM架构用于存取数据且为二叉树结构,所述QRAM架构包括以下节点:N层子树节点和1层树叶节点,所述子树节点包括:地址比特和第一数据比特,所述树叶节点包括:用于存储数据的第二数据比特,所述N为用于写入所述QRAM架构的地址长度;所述方法包括:
    划分所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比特;
    根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;
    根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;
    根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。
  2. 根据权利要求1所述的方法,其中,所述根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特,包括:
    将所述线路基本结构包括的量子比特,一一确定为待构建基本量子线路所需的量子比特。
  3. 根据权利要求1所述的方法,其中,所述根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出,包括:
    根据所述线路基本结构的实现功能,获得所述待构建基本量子线路所需的量子比特间的作用关系;
    根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出。
  4. 根据权利要求1或3所述的方法,其中,所述根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出,包括:
    在所述线路基本结构包括的量子比特间的作用关系为第一作用关系时,确定为待构建第一基本量子线路的输入和输出为一个子树节点的地址比特的输出与输入保持不变,该子树节点的数据比特的输入为一地址位、输出为|0>,下一层两个子节点的数据比特的输入均为|0>、输出均为该地址位;
    在所述线路基本结构包括的量子比特间的作用关系为第二作用关系时,确定为待构建 第二基本量子线路的输入和输出为一个子树节点的地址比特的输入为一地址位、输出不变,下一层两个子节点的数据比特的输入为第一数据和第二数据、输出不变,该子树节点的数据比特的输入为|0>、输出由该地址位决定且为第一数据或第二数据。
  5. 根据权利要求4所述的方法,其中,所述根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路,包括:
    当所述输入和输出确定为待构建第一基本量子线路的输入和输出时,构建作用于所述线路基本结构包括的量子比特的CNOT门,得到所述线路基本结构对应的第一基本量子线路;
    当所述输入和输出确定为待构建第二基本量子线路的输入和输出时,构建作用于所述线路基本结构包括的量子比特的Toffoli门,或构建作用于所述线路基本结构包括的量子比特的NOT门、CNOT门和Toffoli门,得到所述线路基本结构对应的第二基本量子线路。
  6. 根据权利要求1-3中任意一项所述的方法,其中,还包括:
    接收量子态表示的地址;
    解析所述地址,将所述地址的每一位地址分别转移到对应层子树节点的地址比特上;其中,所述地址的每一位对应所述N层子树节点的每一层;
    从所述树叶节点开始,根据每一层子树节点的地址比特位存储的地址,将所述树叶节点存储的数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点上输出所述地址对应的数据。
  7. 根据权利要求6所述的方法,其中,所述将所述地址的每一位地址分别转移到对应层子树节点的地址比特上,包括:
    针对所述地址的每一位地址,从k=N开始,将第k位地址转移到所述二叉树结构中树根部的第一层子树节点中;
    从第一层子树节点开始,反复执行将当前层子树节点中的第k位地址转移到下一层子树节点中的步骤,直至转移到第k层子树节点的地址比特上为止,其中,所述k为正整数且取值为从N依次取到1。
  8. 一种用于QRAM架构的量子线路的构建装置,所述QRAM架构用于存取数据且为二叉树结构,所述QRAM架构包括以下节点:N层子树节点和1层树叶节点,所述子树节点包括:地址比特和第一数据比特,所述树叶节点包括:用于存储数据的第二数据比特,所述N为用于写入所述QRAM架构的地址长度;所述装置包括:
    线路结构划分模块,用于划分所述二叉树结构中的各个线路基本结构,其中,所述线路基本结构包括:一个子树节点的地址比特、数据比特及其下一层两个子节点中的数据比 特;
    量子比特确定模块,用于根据所述线路基本结构包括的量子比特,确定待构建基本量子线路所需的量子比特;
    比特关系确定模块,用于根据所述待构建基本量子线路所需的量子比特间的作用关系,确定待构建基本量子线路的输入和输出;
    量子线路确定模块,用于根据所述输入和输出,利用所述所需的量子比特和量子逻辑门,构建所述线路基本结构对应的基本量子线路。
  9. 一种量子地址数据的解析方法,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特,所述量子地址数据的解析方法包括:
    在接收到目标量子地址时,根据预设数据位获取规则依次获取所述目标量子地址中的各个量子地址数据;
    通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析:其中,所述预设量子线路通过权力要求1-7任一项所述的用于QRAM架构的量子线路的构建方法构建。
  10. 根据权利要求9所述的方法,其中,所述通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特的步骤之前,还包括:
    获取各个量子地址数据在所述目标量子地址中的地址位数,根据预设对应规则以及所述地址位数,在所述QRAM架构中确定各个量子地址数据的对应层子树节点。
  11. 根据权利要求10所述的方法,其中,所述目标量子地址的总位数与所述QRAM架构中的子树节点总层数相同,所述总位数以及所述总层数均为N,N为正整数,所述通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特的步骤具体包括:
    在所述目标量子地址中获取第0位地址数据,在所述QRAM架构中确定第N-1层子树节点,并通过所述预设量子线路,将所述第0位地址数据转移至所述第N-1层子树节点的地址比特;
    在所述目标量子地址中获取下一位地址数据,并在所述QRAM架构中确定下一层子树节点,以进行下一位地址数据的转移,直至将所述目标量子地址中的N个地址数据分别转移至所述QRAM架构中对应的N层子树节点的地址比特。
  12. 根据权利要求11所述的方法,其中,所述通过所述预设量子线路,将所述第0位地址数据转移至所述第N-1层子树节点的地址比特的步骤包括:
    将所述第0位地址数据转移至所述QRAM架构中的第0层子树节点的数据比特;
    通过所述预设量子线路,将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特,直至将所述第0位地址数据转移至所述第N-1层子树节点的数据比特;
    将所述第N-1层子树节点的数据比特中存储的所述第0位地址数据交换至所述第N-1层子树节点的地址比特。
  13. 根据权利要求12所述的方法,其中,所述在所述目标量子地址中获取下一位地址数据,并在所述QRAM架构中确定下一层子树节点,以进行下一位地址数据的转移的步骤具体包括:
    在将所述第0层子树节点的数据比特中的第0位地址数据转移至下一层子树节点的数据比特后,通过所述预设量子线路,将所述第1位地址数据转移至所述QRAM架构中的第0层子树节点的数据比特,以错步执行所述目标量子地址中地址数据的转移;
    通过所述预设量子线路,将所述第0层子树节点的数据比特中的第1位地址数据转移至下一层子树节点的数据比特,直至将所述第1位地址数据转移至所述第N-2层子树节点的数据比特。
  14. 根据权利要求11-13中任一项所述的方法,其中,所述QRAM架构还包括连接于第N-1层子树节点的树叶节点,所述树叶节点还包括用于存储数据的树叶节点的数据比特,所述通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析的步骤之后,还包括:
    从所述树叶节点开始,根据每一层子树节点的地址比特位存储的所述各个量子地址数据,将所述树叶节点的数据比特中存储的目标数据,转移到上一层子树节点的数据比特位上,直至在所述二叉树结构中树根部的子树节点上输出所述目标量子地址对应的目标数据。
  15. 根据权利要求14所述的方法,其中,所述在所述二叉树结构中树根部的子树节点上输出所述目标量子地址对应的目标数据的步骤之后,还包括:
    对所述QRAM架构进行反计算处理,以将所述QRAM架构恢复到初始状态。
  16. 一种量子地址数据的解析装置,应用于预先构建的用于存取数据的量子随机存储存取器QRAM架构,所述QRAM架构包括至少一层子树节点,每层子树节点包括对应的地址比特,所述装置包括:
    地址获取模块,用于在接收到目标量子地址时,根据预设数据位获取规则依次获取所述目标量子地址中的各个量子地址数据;
    地址解析模块,用于通过预设量子线路,依次将各个量子地址数据分别转移至所述QRAM架构中对应层子树节点的地址比特,以完成所述目标量子地址的解析。
  17. 一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7和9至15中任一项中所述的方法。
  18. 一种电子装置,包括存储器和处理器,其中,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至7和9至15中任一项中所述的方法。
PCT/CN2021/096102 2020-11-30 2021-05-26 Qram架构的量子线路的构建方法和装置、以及量子地址数据的解析方法和装置 WO2022110705A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21896215.7A EP4250186A4 (en) 2020-11-30 2021-05-26 METHOD AND DEVICE FOR PRODUCING A QRAM ARCHITECTURE QUANTUM CIRCUIT AND METHOD AND DEVICE FOR ANALYZING QUANTUM ADDRESS DATA
US18/039,453 US11983606B2 (en) 2020-11-30 2021-05-26 Method and device for constructing quantum circuit of QRAM architecture, and method and device for parsing quantum address data

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202011376073.2A CN114638366B (zh) 2020-11-30 2020-11-30 量子地址数据的解析方法、装置、存储介质及电子装置
CN202011376086.X 2020-11-30
CN202011376073.2 2020-11-30
CN202011376086.XA CN114638368B (zh) 2020-11-30 2020-11-30 一种用于qram架构的量子线路的构建方法及装置

Publications (1)

Publication Number Publication Date
WO2022110705A1 true WO2022110705A1 (zh) 2022-06-02

Family

ID=81753930

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/096102 WO2022110705A1 (zh) 2020-11-30 2021-05-26 Qram架构的量子线路的构建方法和装置、以及量子地址数据的解析方法和装置

Country Status (3)

Country Link
US (1) US11983606B2 (zh)
EP (1) EP4250186A4 (zh)
WO (1) WO2022110705A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090010090A1 (en) * 2007-07-03 2009-01-08 Seth Lloyd Bucket brigade address decoding architecture for classical and quantum random access memories
US20180246848A1 (en) * 2015-02-10 2018-08-30 D-Wave Systems Inc. Systems, devices, articles, and methods for quantum processor architecture
CN109886412A (zh) * 2019-01-11 2019-06-14 合肥本源量子计算科技有限责任公司 一种量子程序的持久化存储方法、装置及存储介质
CN110569978A (zh) * 2019-08-22 2019-12-13 上海交通大学 量子滑梯及与非逻辑算法器件及其实现方法
CN110741391A (zh) * 2016-11-10 2020-01-31 耶鲁大学 广义量子通道

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924115A (en) * 1996-03-29 1999-07-13 Interval Research Corporation Hierarchical memory architecture for a programmable integrated circuit having an interconnect structure connected in a tree configuration
SG11202109186VA (en) * 2019-03-01 2021-09-29 Univ Yale Techniques for quantum memory addressing and related systems and methods
US11093850B1 (en) * 2020-08-26 2021-08-17 Abu Dhabi University Quantum random access memory

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090010090A1 (en) * 2007-07-03 2009-01-08 Seth Lloyd Bucket brigade address decoding architecture for classical and quantum random access memories
US20180246848A1 (en) * 2015-02-10 2018-08-30 D-Wave Systems Inc. Systems, devices, articles, and methods for quantum processor architecture
CN110741391A (zh) * 2016-11-10 2020-01-31 耶鲁大学 广义量子通道
CN109886412A (zh) * 2019-01-11 2019-06-14 合肥本源量子计算科技有限责任公司 一种量子程序的持久化存储方法、装置及存储介质
CN110569978A (zh) * 2019-08-22 2019-12-13 上海交通大学 量子滑梯及与非逻辑算法器件及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4250186A4 *

Also Published As

Publication number Publication date
EP4250186A4 (en) 2024-07-31
US20240037433A1 (en) 2024-02-01
EP4250186A1 (en) 2023-09-27
US11983606B2 (en) 2024-05-14

Similar Documents

Publication Publication Date Title
CN109886412B (zh) 一种量子程序的持久化存储方法、装置及存储介质
CN110826719A (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN110516810B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN111582491A (zh) 一种量子线路的构建方法及装置
Liang et al. Can noise on qubits be learned in quantum neural network? a case study on quantumflow
CN111461335A (zh) 基于mpi多进程的含噪声单量子逻辑门实现方法及装置
CN113222150A (zh) 一种量子态的变换方法及装置
CN114358319A (zh) 基于机器学习框架的分类方法及相关装置
CN113222159B (zh) 一种量子态的确定方法及装置
CN114511094B (zh) 一种量子算法的优化方法、装置、存储介质与电子装置
CN113222153A (zh) 一种量子态的模拟方法、装置、存储介质和电子装置
CN114638368B (zh) 一种用于qram架构的量子线路的构建方法及装置
WO2022110705A1 (zh) Qram架构的量子线路的构建方法和装置、以及量子地址数据的解析方法和装置
CN116090568B (zh) 量子数据与经典浮点型数据的大小关系确定方法及装置
CN113222160A (zh) 一种量子态的转换方法及装置
CN113222151A (zh) 一种量子态的变换方法及装置
WO2022110704A1 (zh) 数据读取方法、装置、存储介质及电子装置
WO2022143789A1 (zh) 量子预处理方法、装置、存储介质及电子装置
CN115879562B (zh) 一种量子程序初始映射的确定方法、装置及量子计算机
CN114638367B (zh) 一种数据的读取方法、装置、存储介质及电子装置
CN114626532B (zh) 基于地址读取数据的方法、装置、存储介质及电子装置
CN114638366B (zh) 量子地址数据的解析方法、装置、存储介质及电子装置
CN114881239A (zh) 量子生成器的构造方法、装置、介质及电子装置
CN114881238A (zh) 量子鉴别器的构造方法、装置、介质及电子装置
CN115983392A (zh) 量子程序映射关系的确定方法、装置、介质及电子装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21896215

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2021896215

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2021896215

Country of ref document: EP

Effective date: 20230622

NENP Non-entry into the national phase

Ref country code: DE