Databases are used in various computing systems to store information. The main operations conducted on databases include insert operations, update operations, delete operations, and search operations. Currently, there is no effective systems that can provide such operations for databases associated with quantum computing systems.
The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
Systems, devices, and/or methods described herein may provide for one or more quantum circuit systems that provided for quantum database (QDB) update operations. In embodiments, a particular quantum circuit may be an update circuit which performs update some of the basis state(s)/record(s)/data operations in quantum databases based on input criteria with complexity O(1). In embodiments, the particular quantum circuit may be used to update specific data/basis state(s)/record(s) from a uniform/weighted superposition QDB. In embodiments, the operation speed of the particular circuit is exponentially increased compared to previous systems.
Accordingly, the systems, devices, and/or methods described herein can be used to update a greater amount of data into a quantum database system, which cannot be achieved using non-quantum computers or other systems. In embodiments, the one or more quantum circuits provide for a more efficient update of information from one or more databases and can overcome issues of requiring more time associated with non-quantum systems. In embodiments, the update operation may have a database system that is integrated with Al/quantum-AI and information systems. Grover's algorithm, which is a quantum search algorithm, that reduces the search process within a database system of O(N½) (where N is the number of items in the database), compared with traditional algorithms that need O(N). Thus, quantum computers have a significantly greater speed (such as a quadratic speed) to perform such search operations when compared to a non-quantum computer.
, |qr
, |cb
, and |nr
; the qubit |D
, and the qubit |dq
.
At step 202, quantum circuit 200 initializes the quantum state as |φ0=|QDB,dq,cb,nr,D
. In embodiments, |QDB
is the register of size n qubits which stores a weighted/uniform quantum database data/basis states/records/items. In embodiments, |qr
is a register of size m qubits, where m≤n that is used to define the conditions/criteria which are used to determine the set/subset of data/basis states/records/items must be updated. In embodiments, |cb
is an ancillary register of size j≤n qubits which is initialized in the state |0
⊗j. In embodiments, |nr
is a register of size j qubits, where j≤n that is used to define the new values which are used to over-written into the set/subset of |QDB
must be updated. In embodiments, |dq
is an ancillary qubit which is initialized by the state|0
, the qubit |D
is initialized to state |0
if it is not required to update the qubits of the register |QDB
that define the criteria/conditions that are define the data/basis state(s)/records/items which will be updated with new values. Conversely, the qubit |D
is initialized to state |1
if it is required to update the qubits of the register |QDB
that define the criteria that are define the data/basis states/records/items.
At step 204, quantum circuit 200 searches for the quantum database data/basis state(s)/record(s)/item(s), in the register |QDB, that matches the criteria/conditions specified by the quantum database user/information system application via the register |qr
, where the index of each qubit which its value is defined by the user/information system application is determined in the set M that contain the indices of qubits, that are used as criteria/conditions, in the register |QDB
such that |M|=m. In embodiments, by applying the S operator between the query register |qr
and the |QDB
, register as
In embodiments, the search for the matched data/record(s)/basis state(s)/item(s) is performed by applying the S operator between each qubit |qrg has an index in the set M of the registers |qr
, as a control qubit, and the corresponding qubit |QDBh
as a target qubit.
At step 206, quantum circuit 200 applies a |M|+1-qubit Toffoli gate with |M| control qubits of the register |QDB which have indexes specified by the set M, and the target qubit is |dq
.
In embodiments, the Toffli-gate is applied to mark the data/basis state(s)/record(s)/item(s) which match the criteria/conditions defined by the register |qr to update them in step 6 (step 214).
At step 208, quantum circuit 200, the controlled-S operator is applied to remove the effect of the S operator applied in Step 204 by:
the control qubit of the S operator is |D which activates the S operator when the state of the qubit |D
is |1
. The state of the qubit |D
is initialized to the state |1
when the data/basis state(s)/record(s)/item(s) that are required to be updated, contain the criteria/condition data.
At step 210, quantum circuit 200 applies a number |j| of 3-qubit Toffoli gates as follows:
In embodiments, at step 210, quantum circuit 200 writes the value of each qubit i ϵ j into the corresponding qubit of the ancillary register |cb by applying the number |j| of 3-qubit Toffoli gates, each gate is controlled by the qubit |QDBi
), |dq
, and the target qubit is |cbk
, where i ϵ j, and k=1,2, . . . , |j|. The set j contains the indices of the qubits which are needed to be updated in the register |QDB
.
At step 212, quantum circuit 200 applies a number |j| of 3-qubit Toffoli gates as follows:
In embodiments, quantum circuit 200, at step 212, converts the state of each qubit that has an index defined by the set j, and marked by entanglement via the qubit |dq, to the state |0) by applying a number |j| of 3-qubit Toffoli gates, each gate is controlled by the qubits |cbk
, |dq
, and the target qubit is |QDBi
. In embodiments, at the end, number |j| of qubits which have indices defined by the set j of the register |QDB
are transformed individually into the state |0
; and these states are entangled with the qubit |dq
.
At step 214, quantum circuit 200 applies number |j| of 3-qubit Toffoli gates as follows:
In embodiments, quantum circuit 200, at step 214, is used to update data/basis state(s)/item(s)/records(s) of the QDB with the new values that are marked in the register |QDB.
At step 216, quantum circuit 200 applies |M|+2-qubit Toffoli gate as follows:
In embodiments, quantum circuit 200, at step 216, this gate flips the state of the target qubit |dq when each qubit of the number |M| qubits of the register |QDBi
(which are determined by the indices defined by the set M) are in the state |1
, and the state of the qubit |D
is |0
, and the target qubit is |dq
. This step removes the effect of step 2 (step 206) when it is not required to update the state of the qubits of the register |QDB
that are define the criteria/conditions data for updating the data/basis state(s)/item(s)/record(s). In embodiments, quantum circuit 200, at step 216, is used to remove the entanglement/marking between the register |QDB
, and the qubit |dq
.
At step 218, quantum circuit 200 the controlled-S operator is applied to remove the effect of the S operator applied in Step 204 by:
the control qubit of the S operator is |D which activates the S operator when the state of the qubit |D
is |0
. This step removes the effect of step 1 (step 204) when it is not required to update the state of the qubits of the register |QDB
that are define the criteria/conditions data for updating the data/basis state(s)/records.
Accordingly, performance of quantum circuit 200 is exponentially faster than when compared to traditional algorithms. Also, quantum circuit 200 can be used to update a set of data/basis state(s)/records/item(s) with different values in a uniform/weighted superposition of the QDB at the same time which cannot achieve via traditional computers.
In embodiments, the quantum update circuit (e.g., quantum circuit 200) may occur in two scenarios. In embodiments, in a first scenario, we realize a partial update for a subset of qubits in a set of data, in a given quantum database (e.g., 104 in for the set of data which satisfy the criterion such that the first two qubits are |01
in the database associated with
For =|0101
, and |7
=|0111
are updated to the state |4
=|0100
in the quantum database. After applying the proposed update circuit via a Java simulator, the graphical results are shown in
In embodiments, in the second scenario, to update the all qubits to be in the state |1111 for the set of data which satisfy the criterion such that the first two qubits are |01
in the database shown in
=|0101
, and |7
=|0111
are updated to the state |15
=|1111
in the quantum database. After applying the proposed update circuit via the simulator the results are depicted in
Quantum bus 710 may include a path that permits communications among the components of device 700. Quantum processor 720 may include one or more processors, microprocessors, and/or processing logic (e.g., a field programmable gate array (FPGA), quantum teleportation devices, quantum communication devices, quantum computing circuits, quantum encryption applications and/or an application specific integrated circuit (ASIC)) that interprets and executes instructions. Input component 740 may include a mechanism that permits a user to convert classical information to quantum input information to device 700, such as a quantum circuit, a quantum-based application, a keyboard, a keypad, a button, a switch, voice command, etc. Quantum output component 750 may include a mechanism that outputs information and transforms quantum information to classical information to be provided to the user, such as a display, a speaker, one or more light emitting diodes (LEDs), etc.
Quantum communications interface 760 may include any transceiver-like mechanism that enables device 700 to communicate with other devices and/or systems. For example, communications interface 760 may include an Ethernet interface, an optical interface, a coaxial interface, a wireless interface, or the like and quantum-to-classical and vice versa unit.
In another implementation, quantum communications interface 760 may include, for example, a transmitter that may convert baseband signals from quantum processor 720 to radio frequency (RF) signals and/or a receiver that may convert RF signals to baseband signals. Alternatively, communications interface 760 may include a transceiver to perform functions of both a transmitter and a receiver of wireless communications (e.g., radio frequency, infrared, visual optics, quantum wireless, quantum channels, quantum fiber optics, quantum teleportation, quantum communication devices/networks, quantum encryption devices, etc.), wired communications (e.g., conductive wire, twisted pair cable, coaxial cable, transmission line, fiber optic cable, waveguide, single-photon channels, multi-photon channels, etc.), or a combination of wireless and wired communications.
Communications interface 760 may connect to an antenna assembly (not shown in
As will be described in detail below, device 700 may perform certain operations. Device 600 may perform these operations in response to processor 720 executing software instructions (e.g., computer program(s), quantum computing circuit, quantum teleportation, etc.) contained in a computer-readable medium/quantum-based computing, such as quantum memory 730, a secondary storage device (e.g., hard disk, CD-ROM, etc.), or other forms of RAM or ROM. A computer-readable medium may be defined as a non-transitory memory device. A memory device may include space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into quantum memory 730 from another computer-readable medium or from another device. The software instructions contained in quantum memory 730 may cause quantum processor 720 to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the possible implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the possible implementations includes each dependent claim in combination with every other claim in the claim set.
While various actions are described as selecting, displaying, transferring, sending, receiving, generating, notifying, and storing, it will be understood that these example actions are occurring within an electronic computing, electronic networking, quantum database, quantum computing and/or quantum networking environment and may require one or more computing devices, as described in
No element, act, or instruction used in the present application should be construed as critical or essential unless explicitly described as such. Also, as used herein, the article “a” is intended to include one or more items and may be used interchangeably with “one or more.” Where only one item is intended, the term “one” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
In the preceding specification, various preferred embodiments have been described with reference to the accompanying drawings. It will, however, be evident that various modifications and changes may be made thereto, and additional embodiments may be implemented, without departing from the broader scope of the invention as set forth in the claims that follow. The specification and drawings are accordingly to be regarded in an illustrative rather than restrictive sense.