U.S. patent application number 17/313671 was filed with the patent office on 2021-12-02 for accelerated pattern matching method on a quantum computing system.
The applicant listed for this patent is IONQ, INC., University of Maryland. Invention is credited to Yunseong Nam, Pradeep Niroula.
Application Number | 20210374593 17/313671 |
Document ID | / |
Family ID | 1000005768530 |
Filed Date | 2021-12-02 |
United States Patent
Application |
20210374593 |
Kind Code |
A1 |
Niroula; Pradeep ; et
al. |
December 2, 2021 |
ACCELERATED PATTERN MATCHING METHOD ON A QUANTUM COMPUTING
SYSTEM
Abstract
A method of determining a pattern in a sequence of bits using a
quantum computing system includes setting a first register of a
quantum processor in a superposition of a plurality of string index
states, encoding a bit string in a second register of the quantum
processor, encoding a bit pattern in a third register of the
quantum processor, circularly shifting qubits of the second
register conditioned on the first register, amplifying an amplitude
of a state combined with the first register in which the circularly
shifted qubits of the second register matches qubits of the third
register, measuring an amplitude of the first register and
determining a string index state of the plurality of string index
states associated with the amplified state, and outputting, by use
of a classical computer, a string index associated with the first
register in the measured state.
Inventors: |
Niroula; Pradeep; (College
Park, MD) ; Nam; Yunseong; (North Bethesda,
MD) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
IONQ, INC.
University of Maryland |
College Park
College Park |
MD
MD |
US
US |
|
|
Family ID: |
1000005768530 |
Appl. No.: |
17/313671 |
Filed: |
May 6, 2021 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
63031385 |
May 28, 2020 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06F 9/30101 20130101;
G06N 10/00 20190101; G06F 9/30032 20130101 |
International
Class: |
G06N 10/00 20060101
G06N010/00; G06F 9/30 20060101 G06F009/30 |
Goverment Interests
GOVERNMENT LICENSE RIGHTS
[0002] This invention was made with Government support under
DESC0019040 and DE-SC0020312 awarded by the Department of Energy.
The Government has certain rights in the invention.
Claims
1. A method of determining a pattern in a sequence of bits using a
quantum computing system comprising a classical computer and a
quantum processor, the method comprising: setting a first register
of the quantum processor in a superposition of a plurality of
string index states, each of which is associated with a string
index, wherein the quantum processor comprises a plurality of
qubits; encoding a bit string in a second register of the quantum
processor; encoding a bit pattern in a third register of the
quantum processor; circularly shifting qubits of the second
register conditioned on the first register in each string index
state in the superposition of the plurality of string index states;
amplifying an amplitude of a state combined with the first register
in a string index state of the plurality of string index states in
which the circularly shifted qubits of the second register matches
qubits of the third register; measuring an amplitude of the first
register and determining the string index state of the plurality of
string index states associated with the amplified state; and
outputting, by use of the classical computer, the string index
associated with the first register in the measured state.
2. The method according to claim 1, further comprising: selecting,
by use of the classical computer, the bit string and the bit
pattern to be searched within the bit string, each bit of the bit
string having a string index.
3. The method according to claim 1, wherein each qubit of the
plurality of qubits comprises a trapped ion having two
frequency-separated states.
4. The method according to claim 3, further comprising: preparing
the quantum processor in an initial state by setting, by a system
controller, each trapped ion in the quantum processor in the lower
energy state of the two frequency-separated states.
5. The method according to claim 4, wherein setting the first
register of the quantum processor in the superposition of the
plurality of string index states comprises transferring, by the
system controller, each trapped ion in the first register in a
superposition of the two frequency-separated states.
6. The method according to claim 4, wherein encoding the bit string
in the second register of the quantum processor comprises applying,
by the system controller, a combination of single-qubit gate
operations to the second register of the quantum processor.
7. The method according to claim 4, wherein encoding the bit
pattern in the third register of the quantum processor comprises
applying, by the system controller, a combination of single-qubit
gate operations to the third register of the quantum processor.
8. The method according to claim 4, wherein circularly shifting
qubits of the second register conditioned on the first register
comprises applying, by the system controller, a combination of
single-qubit gate operations and two-qubit gate operations to the
first and second registers of the quantum processor.
9. The method according to claim 8, wherein the two-qubit gate
operations comprise controlled-SWAP operations applied to the
second register conditioned on the first register.
10. The method according to claim 8, wherein the two-qubit gate
operations comprise controlled-SWAP operations applied to the
second register conditioned on a plurality of ancillary qubits in
which the first register is copied by fan-out CNOT operations
applied on the plurality of ancillary qubits conditioned on the
first register.
11. The method according to claim 4, wherein amplifying the state
combined with the first register in the string index state of the
plurality of string index states in which the circularly shifted
qubits of the second register matches qubits of the third register
comprises applying, by the system controller, a combination of
single-qubit gate operations and two-qubit gate operations to the
second and third registers of the quantum processor.
12. A quantum computing system, comprising: a quantum processor
comprising a group of trapped ions, each of the trapped ions having
two frequency-separated states; one or more lasers configured to
emit a laser beam, which is provided to trapped ions in the quantum
processor; a classical computer configured to: select a bit string
and a bit pattern to be searched within the bit string, each bit of
the bit string having a string index; and a system controller
configured to: set a first register of the quantum processor in a
superposition of a plurality of string index states, each of which
is associated with a string index, wherein the quantum processor
comprises a plurality of qubits; encode the bit string in a second
register of the quantum processor; encode the bit pattern in a
third register of the quantum processor; circularly shift qubits of
the second register conditioned on the first register in each
string index state in the superposition of the plurality of string
index states; amplify an amplitude of a state combined with the
first register in a string index state of the plurality of string
index states in which the circularly shifted qubits of the second
register matches qubits of the third register; and measure an
amplitude of the first register and determining the string index
state of the plurality of string index states associated with the
amplified state, wherein the classical computer is further
configured to: output the string index associated with the first
register in the measured state.
13. The quantum computing system according to claim 12, wherein the
system controller is further configured to: prepare the quantum
processor in an initial state by setting each trapped ion in the
quantum processor in the lower energy state of the two
frequency-separated states.
14. The quantum computing system according to claim 12, wherein
setting the first register of the quantum processor in the
superposition of the plurality of string index states comprises
transferring each trapped ion in the first register in a
superposition of the two frequency-separated states.
15. The quantum computing system according to claim 12, wherein
encoding the bit string in the second register of the quantum
processor comprises applying a combination of single-qubit gate
operations to the second register of the quantum processor.
16. The quantum computing system according to claim 12, wherein
encoding the bit pattern in the third register of the quantum
processor comprises applying a combination of single-qubit gate
operations to the third register of the quantum processor.
17. The quantum computing system according to claim 12, wherein
circularly shifting qubits of the second register conditioned on
the first register comprises applying, by the system controller, a
combination of single-qubit gate operations and two-qubit gate
operations to the first and second registers of the quantum
processor.
18. The quantum computing system according to claim 17, wherein the
two-qubit gate operations comprise controlled-SWAP operations
applied to the second register conditioned on the first
register.
19. The quantum computing system according to claim 17, wherein the
two-qubit gate operations comprise controlled-SWAP operations
applied to the second register conditioned on a plurality of
ancillary qubits in which the first register is copied by fan-out
CNOT operations applied on the plurality of ancillary qubits
conditioned on the first register.
20. The quantum computing system according to claim 12, wherein
amplifying the state combined with the first register in the string
index state of the plurality of string index states in which the
circularly shifted qubits of the second register matches qubits of
the third register comprises applying, by the system controller, a
combination of single-qubit gate operations and two-qubit gate
operations to the second and third registers of the quantum
processor.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit to U.S. Provisional
Application No. 63/031,385, filed May 28, 2020, which is
incorporated by reference herein.
BACKGROUND
Field
[0003] The present disclosure generally relates to a method of
performing computation in a quantum computing system, and more
specifically, to a method of searching for a bit pattern in a bit
string using a computing system that are a group of trapped
ions.
Description of the Related Art
[0004] In quantum computing, quantum bits or qubits, which are
analogous to bits representing a "0" and a "1" in a classical
(digital) computer, are required to be prepared, manipulated, and
measured (read-out) with near perfect control during a computation
process.
[0005] Among physical systems upon which it is proposed to build
large-scale quantum computers, is a group of ions (e.g., charged
atoms), which are trapped and suspended in vacuum by
electromagnetic fields. The ions have internal hyperfine states
which are separated by frequencies in the several GHz range and can
be used as the computational states of a qubit (referred to as
"qubit states"). These hyperfine states can be controlled using
radiation provided from a laser, or sometimes referred to herein as
the interaction with laser beams. The ions can be cooled to near
their motional ground states using such laser interactions. The
ions can also be optically pumped to one of the two hyperfine
states with high accuracy (preparation of qubits), manipulated
between the two hyperfine states (single-qubit gate operations) by
laser beams, and their internal hyperfine states detected by
fluorescence upon application of a resonant laser beam (read-out of
qubits). A pair of ions can be controllably entangled (two-qubit
gate operations) by qubit-state dependent force using laser pulses
that couple the ions to the collective motional modes of a group of
trapped ions, which arise from their Coulombic interaction between
the ions. In general, entanglement occurs when pairs or groups of
ions (or particles) are generated, interact, or share spatial
proximity in ways such that the quantum state of each ion cannot be
described independently of the quantum state of the others, even
when the ions are separated by a large distance.
[0006] Pattern matching is ubiquitously used in various areas, such
as image processing, study of DNA sequences, and data compression
and statistics. Computational complexity of a pattern matching
process (i.e., the amount of resources required to run the pattern
matching process, in particular, time and memory requirements)
varies as the size of input varies. For example, in a string
matching process that is the simplest pattern matching process, in
which a bit pattern of length M is searched within a bit string of
length N (M.ltoreq.N), the amount of time resources scales as
.THETA.(N+M) in units of elementary logic operations (which takes a
constant amount of time on a given computer) and the amount of
memory resources scales as (N+M) in units of bits, by the best
known classical methods.
[0007] Therefore, there is a need for method for using a quantum
processor to speed up pattern matching in a quantum computing
system.
SUMMARY
[0008] Embodiments described herein provide a method of determining
a pattern in a sequence of bits using a quantum computing system.
The method includes setting a first register of a quantum processor
in a superposition of a plurality of string index states, encoding
a bit string in a second register of the quantum processor,
encoding a bit pattern in a third register of the quantum
processor, circularly shifting qubits of the second register
conditioned on the first register, amplifying an amplitude of a
state combined with the first register in which the circularly
shifted qubits of the second register matches qubits of the third
register, measuring an amplitude of the first register and
determining a string index state of the plurality of string index
states associated with the amplified state, and outputting, by use
of a classical computer, a string index associated with the first
register in the measured state.
[0009] Embodiments described herein also provides a quantum
computing system for determining a pattern in a sequence of bits.
The quantum computing system includes a quantum processor including
a group of trapped ions, each of the trapped ions having two
frequency-separated states, one or more lasers configured to emit a
laser beam, which is provided to trapped ions in the quantum
processor, a classical computer, and a system controller. The
classical computer is configured to select a bit string and a bit
pattern to be searched within the bit string, each bit of the bit
string having a string index. The system controller is configured
to set a first register of the quantum processor in a superposition
of a plurality of string index states, each of which is associated
with a string index, encode the bit string in a second register of
the quantum processor, encode the bit pattern in a third register
of the quantum processor, circularly shift qubits of the second
register conditioned on the first register in each string index
state in the superposition of the plurality of string index states,
amplify an amplitude of a state combined with the first register in
a string index state of the plurality of string index states in
which the circularly shifted qubits of the second register matches
qubits of the third register, and measure an amplitude of the first
register and determining the string index state of the plurality of
string index states associated with the amplified state. The
classical computer is further configured to output the string index
associated with the first register in the measured state.
[0010] Embodiments described herein further provide a quantum
computing system including non-volatile memory having a number of
instructions stored therein. The instruction, when executed by one
or more processors, cause the quantum computing system to perform
operations including setting a first register of the quantum
processor in a superposition of a plurality of string index states,
each of which is associated with a string index, where the quantum
processor includes a plurality of qubits, encoding a bit string in
a second register of the quantum processor, encoding a bit pattern
in a third register of the quantum processor, circularly shifting
qubits of the second register conditioned on the first register in
each string index state in the superposition of the plurality of
string index states, amplifying an amplitude of a state combined
with the first register in a string index state of the plurality of
string index states in which the circularly shifted qubits of the
second register matches qubits of the third register, measuring an
amplitude of the first register and determining the string index
state of the plurality of string index states associated with the
amplified state, and outputting, by use of a classical computer,
the string index associated with the first register in the measured
state. The quantum computing system further includes selecting, by
use of the classical computer, the bit string and the bit pattern
to be searched within the bit string, each bit of the bit string
having a string index, where each qubit of the plurality of qubits
includes a trapped ion having two frequency-separated states. The
quantum computing system further includes preparing the quantum
processor in an initial state by setting, by a system controller,
each trapped ion in the quantum processor in the lower energy state
of the two frequency-separated states. Setting the first register
of the quantum processor in the superposition of the plurality of
string index states includes transferring, by the system
controller, each trapped ion in the first register in a
superposition of the two frequency-separated states. Encoding the
bit string in the second register of the quantum processor includes
applying, by the system controller, a combination of single-qubit
gate operations to the second register of the quantum processor.
Encoding the bit pattern in the third register of the quantum
processor includes applying, by the system controller, a
combination of single-qubit gate operations to the third register
of the quantum processor. Circularly shifting qubits of the second
register conditioned on the first register includes applying, by
the system controller, a combination of single-qubit gate
operations and two-qubit gate operations to the first and second
registers of the quantum processor. The two-qubit gate operations
includes controlled-SWAP operations applied to the second register
conditioned on the first register. The two-qubit gate operations
includes controlled-SWAP operations applied to the second register
conditioned on a plurality of ancillary qubits in which the first
register is copied by fan-out CNOT operations applied on the
plurality of ancillary qubits conditioned on the first register.
Amplifying the state combined with the first register in the string
index state of the plurality of string index states in which the
circularly shifted qubits of the second register matches qubits of
the third register includes applying, by the system controller, a
combination of single-qubit gate operations and two-qubit gate
operations to the second and third registers of the quantum
processor.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] So that the manner in which the above-recited features of
the present disclosure can be understood in detail, a more
particular description of the disclosure, briefly summarized above,
may be had by reference to embodiments, some of which are
illustrated in the appended drawings. It is to be noted, however,
that the appended drawings illustrate only typical embodiments of
this disclosure and are therefore not to be considered limiting of
its scope, for the disclosure may admit to other equally effective
embodiments.
[0012] FIG. 1 is a schematic partial view of an ion trap quantum
computing system according to one embodiment.
[0013] FIG. 2 depicts a schematic view of an ion trap for confining
ions in a group according to one embodiment.
[0014] FIG. 3 depicts a schematic energy diagram of each ion in a
group of trapped ions according to one embodiment.
[0015] FIG. 4 depicts a qubit state of an ion represented as a
point on a surface of the Bloch sphere.
[0016] FIGS. 5A, 5B, and 5C depict a few schematic collective
transverse motional mode structures of a group of five trapped
ions.
[0017] FIGS. 6A and 6B depict schematic views of motional sideband
spectrum of each ion and a motional mode according to one
embodiment.
[0018] FIG. 7 depicts a flowchart illustrating a method of
searching for a bit pattern within a bit string according to one
embodiment.
[0019] To facilitate understanding, identical reference numerals
have been used, where possible, to designate identical elements
that are common to the figures. In the figures and the following
description, an orthogonal coordinate system including an X-axis, a
Y-axis, and a Z-axis is used. The directions represented by the
arrows in the drawing are assumed to be positive directions for
convenience. It is contemplated that elements disclosed in some
embodiments may be beneficially utilized on other implementations
without specific recitation.
DETAILED DESCRIPTION
[0020] Embodiments described herein are generally related to a
method of performing computation in a quantum computing system, and
more specifically, to a method of searching for a bit pattern in a
bit string using a computing system that are a group of trapped
ions.
[0021] A quantum computing system that is able to solve a pattern
matching problem may include a classical computer, a system
controller, and a quantum processor. The classical computer
performs supporting and system control tasks including selecting a
bit string and a bit pattern to be searched within the bit string
by use of a user interface. The classical computer further converts
a series of logic gates into laser pulses to be applied on the
quantum processor by the system processor. A software program for
performing the tasks is stored in a non-volatile memory within the
classical computer. The quantum processor includes trapped ions
that are coupled by use of various hardware, including lasers to
manipulate internal hyperfine states (qubit states) of the trapped
ions and photomultiplier tubes (PMTs) to read-out the internal
hyperfine states (qubit states) of the trapped ions. The system
controller receives from the classical computer instructions for
controlling the quantum processor, and controls various hardware
associated with controlling any and all aspects of the process of
controlling the quantum processor, and returns a read-out of the
quantum processor and thus output of results of the computation(s)
to the classical computer.
[0022] The methods and systems described herein include an
efficient pattern matching routine that provides improvements over
conventional pattern matching routines.
General Hardware Configurations
[0023] FIG. 1 is a schematic partial view of an ion trap quantum
computing system, or system 100, according to one embodiment. The
system 100 includes a classical (digital) computer 102, a system
controller 104 and a quantum processor that is a group 106 of
trapped ions (i.e., five shown) that extend along the Z-axis. Each
ion in the group 106 of trapped ions is an ion having a nuclear
spin I and an electron spin S such that a difference between the
nuclear spin I and the electron spin S is zero, such as a positive
ytterbium ion, .sup.171Yb.sup.+, a positive barium ion
.sup.133Ba.sup.+, a positive cadmium ion .sup.111Cd.sup.+ or
.sup.113Cd.sup.+, which all have a nuclear spin I=1/2 and the
.sup.2S.sub.1/2 hyperfine states. In some embodiments, all ions in
the group 106 of trapped ions are the same species and isotope
(e.g., .sup.171Yb.sup.+). In some other embodiments, the group 106
of trapped ions includes one or more species or isotopes (e.g.,
some ions are .sup.171Yb.sup.+ and some other ions are
.sup.133Ba.sup.+). In yet additional embodiments, the group 106 of
trapped ions may include various isotopes of the same species
(e.g., different isotopes of Yb, different isotopes of Ba). The
ions in the group 106 of trapped ions are individually addressed
with separate laser beams. The classical computer 102 includes a
central processing unit (CPU), memory, and support circuits (or
I/O). The memory is connected to the CPU, and may be one or more of
a readily available memory, such as a read-only memory (ROM), a
random access memory (RAM), floppy disk, hard disk, or any other
form of digital storage, local or remote. Software instructions,
algorithms and data can be coded and stored within the memory for
instructing the CPU. The support circuits (not shown) are also
connected to the CPU for supporting the processor in a conventional
manner. The support circuits may include conventional cache, power
supplies, clock circuits, input/output circuitry, subsystems, and
the like.
[0024] An imaging objective 108, such as an objective lens with a
numerical aperture (NA), for example, of 0.37, collects
fluorescence along the Y-axis from the ions and maps each ion onto
a multi-channel photo-multiplier tube (PMT) 110 for measurement of
individual ions. Non-copropagating Raman laser beams from a laser
112, which are provided along the X-axis, perform operations on the
ions. A diffractive beam splitter 114 creates an array of static
Raman beams 116 that are individually switched using a
multi-channel acousto-optic modulator (AOM) 118 and is configured
to selectively act on individual ions. A global Raman laser beam
120 illuminates all ions at once. In some embodiments, individual
Raman laser beams (not shown) each illuminate individual ions. The
system controller (also referred to as a "RF controller") 104
controls the AOM 118 and thus controls laser pulses to be applied
to trapped ions in the group 106 of trapped ions. The system
controller 104 includes a central processing unit (CPU) 122, a
read-only memory (ROM) 124, a random access memory (RAM) 126, a
storage unit 128, and the like. The CPU 122 is a processor of the
system controller 104. The ROM 124 stores various programs and the
RAM 126 is the working memory for various programs and data. The
storage unit 128 includes a nonvolatile memory, such as a hard disk
drive (HDD) or a flash memory, and stores various programs even if
power is turned off. The CPU 122, the ROM 124, the RAM 126, and the
storage unit 128 are interconnected via a bus 130. The system
controller 104 executes a control program which is stored in the
ROM 124 or the storage unit 128 and uses the RAM 126 as a working
area. The control program will include software applications that
include program code that may be executed by processor in order to
perform various functionalities associated with receiving and
analyzing data and controlling any and all aspects of the methods
and hardware used to create the ion trap quantum computer system
100 discussed herein.
[0025] FIG. 2 depicts a schematic view of an ion trap 200 (also
referred to as a Paul trap) for confining ions in the group 106
according to one embodiment. The confining potential is exerted by
both static (DC) voltage and radio frequency (RF) voltages. A
static (DC) voltage V.sub.S is applied to end-cap electrodes 210
and 212 to confine the ions along the Z-axis (also referred to as
an "axial direction" or a "longitudinal direction"). The ions in
the group 106 are nearly evenly distributed in the axial direction
due to the Coulomb interaction between the ions. In some
embodiments, the ion trap 200 includes four hyperbolically-shaped
electrodes 202, 204, 206, and 208 extending along the Z-axis.
[0026] During operation, a sinusoidal voltage V.sub.1 (with an
amplitude V.sub.RF/2) is applied to an opposing pair of the
electrodes 202, 204 and a sinusoidal voltage V.sub.2 with a phase
shift of 180.degree. from the sinusoidal voltage V.sub.1 (and the
amplitude V.sub.RF/2) is applied to the other opposing pair of the
electrodes 206, 208 at a driving frequency .omega..sub.RF,
generating a quadrupole potential. In some embodiments, a
sinusoidal voltage is only applied to one opposing pair of the
electrodes 202, 204, and the other opposing pair 206, 208 is
grounded. The quadrupole potential creates an effective confining
force in the X-Y plane perpendicular to the Z-axis (also referred
to as a "radial direction" or "transverse direction") for each of
the trapped ions, which is proportional to a distance from a saddle
point (i.e., a position in the axial direction (Z-direction)) at
which the RF electric field vanishes. The motion in the radial
direction (i.e., direction in the X-Y plane) of each ion is
approximated as a harmonic oscillation (referred to as secular
motion) with a restoring force towards the saddle point in the
radial direction and can be modeled by spring constants k.sub.x and
k.sub.y, respectively, as is discussed in greater detail below. In
some embodiments, the spring constants in the radial direction are
modeled as equal when the quadrupole potential is symmetric in the
radial direction. However, undesirably in some cases, the motion of
the ions in the radial direction may be distorted due to some
asymmetry in the physical trap configuration, a small DC patch
potential due to inhomogeneity of a surface of the electrodes, or
the like and due to these and other external sources of distortion
the ions may lie off-center from the saddle points.
[0027] FIG. 3 depicts a schematic energy diagram 300 of each ion in
the group 106 of trapped ions according to one embodiment. Each ion
in the group 106 of trapped ions is an ion having a nuclear spin I
and an electron spin S such that a difference between the nuclear
spin I and the electron spin S is zero. In one example, each ion
may be a positive Ytterbium ion, .sup.171Yb.sup.+, which has a
nuclear spin I=1/2 and the .sup.2S.sub.1/2 hyperfine states (i.e.,
two electronic states) with an energy split corresponding to a
frequency difference (referred to as a "carrier frequency") of
.omega..sub.01/2.pi.=12.642821 GHz. In other examples, each ion may
be a positive barium ion .sup.133Ba.sup.+, a positive cadmium ion
.sup.111Cd.sup.+ or .sup.113Cd.sup.+, which all have a nuclear spin
I=1/2 and the .sup.2S.sub.1/2 hyperfine states. A qubit is formed
with the two hyperfine states, denoted as |0 and |1, where the
hyperfine ground state (i.e., the lower energy state of the
.sup.2S.sub.1/2 hyperfine states) is chosen to represent |0.
Hereinafter, the terms "hyperfine states," "internal hyperfine
states," and "qubits" may be interchangeably used to represent |0
and |1. Each ion may be cooled (i.e., kinetic energy of the ion may
be reduced) to near the motional ground state |0.sub.m for any
motional mode m with no phonon excitation (i.e., n.sub.ph=0) by
known laser cooling methods, such as Doppler cooling or resolved
sideband cooling, and then the qubit state prepared in the
hyperfine ground state |0 by optical pumping. Here, |0 represents
the individual qubit state of a trapped ion whereas |0.sub.m with
the subscript m denotes the motional ground state for a motional
mode m of a group 106 of trapped ions.
[0028] An individual qubit state of each trapped ion may be
manipulated by, for example, a mode-locked laser at 355 nanometers
(nm) via the excited .sup.2P.sub.1/2 level (denoted as |e). As
shown in FIG. 3, a laser beam from the laser may be split into a
pair of non-copropagating laser beams (a first laser beam with
frequency .omega..sub.1 and a second laser beam with frequency
.omega..sub.2) in the Raman configuration, and detuned by a
one-photon transition detuning frequency
.DELTA.=.omega..sub.1-.omega..sub.0e with respect to the transition
frequency .omega..sub.0e between |0 and |e, as illustrated in FIG.
3. A two-photon transition detuning frequency .delta. includes
adjusting the amount of energy that is provided to the trapped ion
by the first and second laser beams, which when combined is used to
cause the trapped ion to transfer between the hyperfine states |0
and |1. When the one-photon transition detuning frequency .DELTA.
is much larger than a two-photon transition detuning frequency
(also referred to simply as "detuning frequency")
.delta.=.omega..sub.1-.omega..sub.2-.omega..sub.01 (hereinafter
denoted as .+-..mu., .mu. being a positive value), single-photon
Rabi frequencies .OMEGA.=.sub.0e(t) and .OMEGA..sub.1e(t) (which
are time-dependent, and are determined by amplitudes and phases of
the first and second laser beams), at which Rabi flopping between
states |0 and |e and between states |1 and |e respectively occur,
and a spontaneous emission rate from the excited state |e, Rabi
flopping between the two hyperfine states |0 and |1 (referred to as
a "carrier transition") is induced at the two-photon Rabi frequency
.OMEGA.(t). The two-photon Rabi frequency .OMEGA.(t) has an
intensity (i.e., absolute value of amplitude) that is proportional
to .OMEGA..sub.0e.OMEGA..sub.1e/2.DELTA., where .OMEGA..sub.0e and
.OMEGA..sub.1e are the single-photon Rabi frequencies due to the
first and second laser beams, respectively. Hereinafter, this set
of non-propagating laser beams in the Raman configuration to
manipulate internal hyperfine states of qubits (qubit states) may
be referred to as a "composite pulse" or simply as a "pulse," and
the resulting time-dependent pattern of the two-photon Rabi
frequency .OMEGA.(t) may be referred to as an "amplitude" of a
pulse or simply as a "pulse," which are illustrated and further
described below. The detuning frequency
.delta.=.omega..sub.1-.omega..sub.2-.omega..sub.01 may be referred
to as detuning frequency of the composite pulse or detuning
frequency of the pulse. The amplitude of the two-photon Rabi
frequency .OMEGA.(t), which is determined by amplitudes of the
first and second laser beams, may be referred to as an "amplitude"
of the composite pulse.
[0029] It should be noted that the particular atomic species used
in the discussion provided herein is just one example of atomic
species which have stable and well-defined two-level energy
structures when ionized and an excited state that is optically
accessible, and thus is not intended to limit the possible
configurations, specifications, or the like of an ion trap quantum
computer according to the present disclosure. For example, other
ion species include alkaline earth metal ions (Be.sup.+, Ca.sup.+,
Sr.sup.+, Mg+, and Ba.sup.+) or transition metal ions (Zn.sup.+,
Hg.sup.+, Cd.sup.+).
[0030] FIG. 4 is provided to help visualize a qubit state of an ion
is represented as a point on a surface of the Bloch sphere 400 with
an azimuthal angle .PHI. and a polar angle .theta.. Application of
the composite pulse as described above, causes Rabi flopping
between the qubit state |0 (represented as the north pole of the
Bloch sphere) and |1 (the south pole of the Bloch sphere) to occur.
Adjusting time duration and amplitudes of the composite pulse flips
the qubit state from |0 to |1 (i.e., from the north pole to the
south pole of the Bloch sphere), or the qubit state from |1 to |0
(i.e., from the south pole to the north pole of the Bloch sphere).
This application of the composite pulse is referred to as a
".pi.-pulse". Further, by adjusting time duration and amplitudes of
the composite pulse, the qubit state |0 may be transformed to a
superposition state |0+|1, where the two qubit states |0 and |1 are
added and equally-weighted in-phase (a normalization factor of the
superposition state is omitted hereinafter for convenience) and the
qubit state |1 to a superposition state |0-|1, where the two qubit
states |0 and |1 are added equally-weighted but out of phase. This
application of the composite pulse is referred to as a
".pi./2-pulse". More generally, a superposition of the two qubits
states |0 and |1 that are added and equally-weighted is represented
by a point that lies on the equator of the Bloch sphere. For
example, the superposition states |0.+-.|1 correspond to points on
the equator with the azimuthal angle .PHI. being zero and .pi.,
respectively. The superposition states that correspond to points on
the equator with the azimuthal angle .PHI. are denoted as
|0+e.sup.i.PHI.|1 (e.g., |0.+-.i|1 for .PHI.=.+-..pi./2).
Transformation between two points on the equator (i.e., a rotation
about the Z-axis on the Bloch sphere) can be implemented by
shifting phases of the composite pulse.
Entanglement Formation
[0031] FIGS. 5A, 5B, and 5C depict a few schematic structures of
collective transverse motional modes (also referred to simply as
"motional mode structures") of a group 106 of five trapped ions,
for example. Here, the confining potential due to a static voltage
V.sub.S applied to the end-cap electrodes 210 and 212 is weaker
compared to the confining potential in the radial direction. The
collective motional modes of the group 106 of trapped ions in the
transverse direction are determined by the Coulomb interaction
between the trapped ions combined with the confining potentials
generated by the ion trap 200. The trapped ions undergo collective
transversal motions (referred to as "collective transverse motional
modes," "collective motional modes," or simply "motional modes"),
where each mode has a distinct energy (or equivalently, a
frequency) associated with it. A motional mode having the m-th
lowest energy is hereinafter referred to as |n.sub.ph.sub.m, where
n.sub.ph denotes the number of motional quanta (in units of energy
excitation, referred to as phonons) in the motional mode, and the
number of motional modes M in a given transverse direction is equal
to the number of trapped ions in the group 106. FIGS. 5A-5C
schematically illustrates examples of different types of collective
transverse motional modes that may be experienced by five trapped
ions that are positioned in a group 106. FIG. 5A is a schematic
view of a common motional mode |n.sub.ph.sub.M having the highest
energy, where M is the number of motional modes. In the common
motional mode |n.sub.M, all ions oscillate in phase in the
transverse direction. FIG. 5B is a schematic view of a tilt
motional mode |n.sub.ph.sub.M-1 which has the second highest
energy. In the tilt motional mode, ions on opposite ends move out
of phase in the transverse direction (i.e., in opposite
directions). FIG. 5C is a schematic view of a higher-order motional
mode |n.sub.ph.sub.M-3 which has a lower energy than that of the
tilt motional mode |n.sub.ph.sub.M-1, and in which the ions move in
a more complicated mode pattern.
[0032] It should be noted that the particular configuration
described above is just one among several possible examples of a
trap for confining ions according to the present disclosure and
does not limit the possible configurations, specifications, or the
like of traps according to the present disclosure. For example, the
geometry of the electrodes is not limited to the hyperbolic
electrodes described above. In other examples, a trap that
generates an effective electric field causing the motion of the
ions in the radial direction as harmonic oscillations may be a
multi-layer trap in which several electrode layers are stacked and
an RF voltage is applied to two diagonally opposite electrodes, or
a surface trap in which all electrodes are located in a single
plane on a chip. Furthermore, a trap may be divided into multiple
segments, adjacent pairs of which may be linked by shuttling one or
more ions, or coupled by photon interconnects. A trap may also be
an array of individual trapping regions arranged closely to each
other on a micro-fabricated ion trap chip. In some embodiments, the
quadrupole potential has a spatially varying DC component in
addition to the RF component described above.
[0033] In an ion trap quantum computer, the motional modes may act
as a data bus to mediate entanglement between two qubits and this
entanglement is used to perform an XX gate operation. That is, each
of the two qubits is entangled with the motional modes, and then
the entanglement is transferred to an entanglement between the two
qubits by using motional sideband excitations, as described below.
FIGS. 6A and 6B schematically depict views of a motional sideband
spectrum for an ion in the group 106 in a motional mode
|n.sub.ph.sub.M having frequency .omega..sub.m according to one
embodiment. As illustrated in FIG. 6B, when the detuning frequency
of the composite pulse is zero (i.e., a frequency difference
between the first and second laser beams is tuned to the carrier
frequency, .delta.=.omega..sub.1-.omega..sub.2-.omega..sub.01=0),
simple Rabi flopping between the qubit states |0 and |1 (carrier
transition) occurs. When the detuning frequency of the composite
pulse is positive (i.e., the frequency difference between the first
and second laser beams is tuned higher than the carrier frequency,
.delta.=.omega..sub.1-.omega..sub.2-.omega..sub.01=.mu.>0,
referred to as a blue sideband), Rabi flopping between combined
qubit-motional states |0|n.sub.ph.sub.m and |1n.sub.ph+1.sub.m
occurs (i.e., a transition from the m-th motional mode with
n-phonon excitations denoted by |n.sub.ph.sub.m to the m-th
motional mode with (n.sub.ph+1)-phonon excitations denoted by
|n.sub.ph+1.sub.m occurs when the qubit state |0 flips to |1). When
the detuning frequency of the composite pulse is negative (i.e.,
the frequency difference between the first and second laser beams
is tuned lower than the carrier frequency by the frequency
.omega..sub.m of the motional mode |n.sub.ph.sub.m,
.delta.=.omega..sub.1-.omega..sub.2-.omega..sub.01=-.mu.<0,
referred to as a red sideband), Rabi flopping between combined
qubit-motional states |0|n.sub.ph.sub.m and |1|n.sub.ph-1.sub.m
occurs (i.e., a transition from the motional mode |n.sub.ph.sub.m
to the motional mode |n.sub.ph-1.sub.m with one less phonon
excitations occurs when the qubit state |0 flips to |1). A
.pi./2-pulse on the blue sideband applied to a qubit transforms the
combined qubit-motional state |0|n.sub.ph.sub.m into a
superposition of |0|n.sub.ph.sub.m and |1|n.sub.ph+1.sub.m. A
.pi./2-pulse on the red sideband applied to a qubit transforms the
combined qubit-motional |0|n.sub.ph.sub.m into a superposition of
|0|n.sub.ph.sub.m and |1|n.sub.ph-1.sub.m. When the two-photon Rabi
frequency .OMEGA.(t) is smaller as compared to the detuning
frequency
.delta.=.omega..sub.1-.omega..sub.2-.omega..sub.01=.+-..mu., the
blue sideband transition or the red sideband transition may be
selectively driven. Thus, a qubit can be entangled with a desired
motional mode by applying the right type of pulse, such as a
.pi./2-pulse, which can be subsequently entangled with another
qubit, leading to an entanglement between the two qubits that is
needed to perform an XX-gate operation in an ion trap quantum
computer.
[0034] By controlling and/or directing transformations of the
combined qubit-motional states as described above, an XX-gate
operation may be performed on two qubits (i-th and j-th qubits). In
general, the XX-gate operation (with maximal entanglement)
respectively transforms two-qubit states |0.sub.i|0.sub.j,
|0.sub.i.sub.j, |1.sub.i|0.sub.j, and |1.sub.i|1.sub.j as
follows:
|0.sub.i|0.sub.j.fwdarw.|0.sub.i|0.sub.j-i|1.sub.i|1.sub.j
|0.sub.i|1.sub.j.fwdarw.|0.sub.i|1.sub.j-i|1.sub.i|0.sub.j
|1.sub.i|0.sub.j.fwdarw.-i|0.sub.i|1.sub.j+|1.sub.i|0.sub.j
|1.sub.i|1.sub.j.fwdarw.|i|0.sub.i|0.sub.j+|1.sub.i|1.sub.j.
For example, when the two qubits (i-th and j-th qubits) are both
initially in the hyperfine ground state |0 (denoted as
|0.sub.i|0.sub.i) and subsequently a .pi./2-pulse on the blue
sideband is applied to the i-th qubit, the combined state of the
i-th qubit and the motional mode |0.sub.i|n.sub.ph.sub.m is
transformed into a superposition of |0.sub.i|n.sub.ph.sub.m and
|1.sub.i|n.sub.ph+1.sub.m, and thus the combined state of the two
qubits and the motional mode is transformed into a superposition of
|0.sub.i|0.sub.j|n.sub.ph.sub.m and
|1.sub.i|0.sub.j|n.sub.ph+1.sub.m. When a .pi./2-pulse on the red
sideband is applied to the j-th qubit, the combined state of the
j-th qubit and the motional mode |0.sub.j|n.sub.ph.sub.m is
transformed to a superposition of |0.sub.j|n.sub.ph.sub.m and
|1.sub.j|n.sub.ph-1.sub.m and the combined state
|0.sub.j|n.sub.ph+1.sub.m is transformed into a superposition of
|0.sub.j|n.sub.ph+1.sub.m and |1.sub.j|n.sub.ph.sub.m.
[0035] Thus, applications of a .pi./2-pulse on the blue sideband on
the i-th qubit and a .pi./2-pulse on the red sideband on the j-th
qubit may transform the combined state of the two qubits and the
motional mode |0.sub.i|0.sub.j|n.sub.ph.sub.m into a superposition
of |0.sub.i|0.sub.j|n.sub.ph.sub.m and
|1.sub.i|1.sub.i|n.sub.ph.sub.m, the two qubits now being in an
entangled state. For those of ordinary skill in the art, it should
be clear that two-qubit states that are entangled with motional
mode having a different number of phonon excitations from the
initial number of phonon excitations n.sub.ph (i.e.,
|1.sub.i|0.sub.j|n.sub.ph+1.sub.m and
|0.sub.i|1.sub.j|n.sub.ph-1.sub.m can be removed by a sufficiently
complex pulse sequence, and thus the combined state of the two
qubits and the motional mode after the XX-gate operation may be
considered disentangled as the initial number of phonon excitations
n.sub.ph in the m-th motional mode stays unchanged at the end of
the XX-gate operation. Thus, qubit states before and after the
XX-gate operation will be described below generally without
including the motional modes.
[0036] More generally, the combined state of i-th and j-th qubits
transformed by the application of pulses on the sidebands for
duration .tau. (referred to as a "gate duration"), having
amplitudes .OMEGA..sup.(i) and .OMEGA..sup.(i) and detuning
frequency .mu., can be described in terms of an entangling
interaction .chi..sup.(i,j)(.tau.) as follows:
|0.sub.i|0.sub.j.fwdarw.cos(2.chi..sup.(i,j)(.tau.))|0.sub.i|0.sub.j-i
sin(2.chi..sup.(i,j)(.tau.))|1.sub.i|1.sub.j
|0.sub.i|1.sub.j.fwdarw.cos(2.chi..sup.(i,j)(.tau.))|0.sub.i|1.sub.j-i
sin(2.chi..sup.(i,j)(.tau.))|1.sub.i|0.sub.j
|1.sub.i|0.sub.j.fwdarw.-i
sin(2.chi..sup.(i,j)(.tau.))|0.sub.i|0.sub.nj+cos(2.chi..sup.(i,j)(.tau.)-
)|1.sub.i|1.sub.j
|1.sub.i|1.sub.j.fwdarw.-i
sin(2.chi..sup.(i,j)(.tau.))|0.sub.i|0.sub.j-cos(2.chi..sup.(i,j)(.tau.))-
|1.sub.i|1.sub.j
where,
.chi. ( i , j ) .function. ( .tau. ) = - 4 .times. m = 1 M .times.
.eta. m ( i ) .times. .eta. m ( j ) .times. .intg. 0 .tau. .times.
d .times. t 2 .times. .intg. 0 t 2 .times. dt 1 .times. .OMEGA. ( i
) .function. ( t 2 ) .times. .OMEGA. ( j ) .function. ( t 1 )
.times. cos .function. ( .mu. .times. .times. t 2 ) .times. cos
.function. ( .mu. .times. .times. t 1 ) .times. sin .function. [
.omega. m .function. ( t 2 - t 1 ) ] ##EQU00001##
and .eta..sub.m.sup.(i) is the Lamb-Dicke parameter that quantifies
the coupling strength between the i-th ion and the m-th motional
mode having the frequency .omega..sub.m, and M is the number of the
motional modes (equal to the number N of ions in the group
106).
[0037] The entanglement interaction between two qubits described
above can be used to perform an XX-gate operation. The XX-gate
operation (XX gate) along with single-qubit operations (R gates)
forms a set of elementary logic operations {R, XX} that can be used
to build a quantum computer that is configured to perform desired
computational processes. Among several known sets of elementary
logic operations by which any quantum algorithm can be decomposed,
a set of elementary logic operations, commonly denoted as {R, XX},
is native to a quantum computing system of trapped ions described
herein. Here, the R gate corresponds to manipulation of individual
qubit states of trapped ions, and the XX gate (also referred to as
an "entangling gate") corresponds to manipulation of the
entanglement of two trapped ions.
[0038] To perform an XX-gate operation between i-th and j-th
qubits, pulses that satisfy the condition
.chi..sup.(i,j)(.tau.)=.theta..sup.(i,j)
(0<.theta..sup.(i,j).ltoreq..pi./8) (i.e., the entangling
interaction .chi..sup.(i,j)(.tau.) has a desired value
.theta..sup.(i,j), referred to as condition for a non-zero
entanglement interaction) are constructed and applied to the i-th
and the j-th qubits. The transformations of the combined state of
the i-th and the j-th qubits described above corresponds to the
XX-gate operation with maximal entanglement when
.theta..sup.(i,j)=.pi./8. Amplitudes .OMEGA..sup.(i)(t) and
.OMEGA..sup.(j)(t) of the pulses to be applied to the i-th and the
j-th qubits are control parameters that can be adjusted to ensure a
non-zero tunable entanglement of the i-th and the j-th qubits to
perform a desired XX gate operation on i-th and j-th qubits.
[0039] Other two-qubit gate operations, such as a controlled-NOT
(referred to as "CNOT") gate and a SWAP gate, may be used in the
method of pattern matching described below and implemented by use
of a combination of the XX gate operations and single-qubit gate
operations.
[0040] In general, a CNOT gate operation conditioned on i-th qubit
(control bit) and targeted on j-th qubit (target bit) inverts the
j-th qubit (target bit) if the i-th qubit (control bit) in state
|1, and leaves both the i-th and j-th qubits unchanged otherwise,
thus transforming a two-qubit state |x.sub.i|y.sub.j(x,y={0,1}) to
a two-qubit state |x.sub.i|x.sym.y.sub.j:
##STR00001##
The output of the j-th qubit (target bit) is the exclusive OR (XOR,
denoted by ".sym.") of the i-th and j-th qubits. A SWAP gate
operation between i-th and j-th qubits swaps the i-th and j-th
qubits, thus transforming a two-qubit state
|x.sub.i|y.sub.j(x,y={0,1}) to a two-qubit state
|y.sub.i|x.sub.j:
##STR00002##
[0041] Three-qubit gate operations, such as a
controlled-controlled-NOT gate (also referred to as "Toffoli gate")
and a controlled-SWAP gate (also referred to as "Fredkin gate"),
may also be used in the method of pattern matching described below
and implemented by use of a combination of the XX gate operations
and single-qubit gate operations. A Toffoli gate operation applied
to two control bits and one target bit inverts the target bit only
if both of the control bits are in state |1, and leaves all three
qubits unchanged otherwise, thus transforming a three-qubit state
|x|y|z (x, y, z={0,1}) to a three-qubit state |x|y|(xy).sym.z:
##STR00003##
The output of the target bit includes XOR(.sym.) of the target bit
and AND (denoted by "") of the control qubits. A Fredkin gate
operation applied to one control bit and two target bits swaps the
target bits if the control bit is state |1, and laves all three
qubits unchanged otherwise, thus transforming a three-qubit state
|x|y|z (x,y,z={0,1}) to a three-qubit state
|x|(xz).sym.(xy)|(xy).sym.(xz):
##STR00004##
where the output of the target bits include NOT of the target bit
(denoted by " ").
Accelerated Pattern Matching Method on a Quantum Computing
System
[0042] In a quantum computing system, a quantum computer is a
domain-specific accelerator (also referred to as a "quantum
processor" hereinafter) that is able to accelerate certain
computational tasks beyond the reach of classical computers.
Examples of such computational tasks include searching a given set
of data that can be used for pattern matching. Pattern matching is
used in a wide range of applications, such image processing, study
of DNA sequences, and data compression and statistics. However,
complexity of pattern matching increases drastically as a problem
size (e.g., the lengths of a string and a pattern to be searched
within the string) increases and may be unsolvable or be too
complex to complete in a reasonable amount of time by a classical
computer alone. Thus, methods for accelerated pattern matching on a
quantum computing system are described herein.
[0043] It should be noted that the particular example embodiments
described herein are just some possible examples of a quantum
computing system according to the present disclosure and do not
limit the possible configurations, specifications, or the like of
quantum computer systems according to the present disclosure. For
example, a quantum computing system according to the present
disclosure can be applied to other types of computational task in
which searching of data contributes to the computational complexity
and can be accelerated by use of a quantum processor.
[0044] FIG. 7 depicts a flowchart illustrating a method 700 of
searching for a bit pattern within a bit string. A bit string and a
bit pattern are sequences of bits, each of which has single binary
value, either 0 or 1. In the example described herein, the quantum
processor is the group 106 of trapped ions, in which the two
hyperfine states of each of the trapped ions form a qubit that has
binary qubit states |0 and |1.
[0045] In block 702, by the classical computer 102, a pattern
matching problem is selected, for example, by use of a user
interface of the classical computer 102, or retrieved from the
memory of the classical computer 102. Specifically, a bit string
(t.sub.0t.sub.1 . . . t.sub.N-1) of length N and a bit pattern
(p.sub.0p.sub.1 . . . p.sub.M-1) of length M with M.ltoreq.N are
selected. The pattern matching problem is to search and locate the
bit pattern within the bit string . Pattern matching may be exact
match (i.e., a M-bit long sequence contained in the bit string
exactly matches the bit pattern ) or fuzzy match (i.e., (M-d) bits
of a M-bit long sequence contained in the bit string matches the
bit pattern , where d is a predetermined number indicating
fuzziness in the matching).
[0046] In block 704, by the system controller 104, the quantum
processor 106 is set in an initial state
|.psi..sub.0=|0.sub.I|0.sub.T|0.sub.P. The first register (denoted
by the subscript "I" and referred to also as an "index register"
hereinafter) is formed of n=log.sub.2 N qubits |k.sub.0 . . .
|k.sub.n-1=.sub.i=0.sup.n-1|k.sub.i to be used to encode a string
index k(=2.sup.0k.sub.0+2.sup.1k.sub.1+ . . .
+2.sup.n-1k.sub.n-1=.SIGMA..sub.j=0.sup.n-12.sup.jk.sub.j=0, 1, . .
. , N-1). In the initial state
|.psi..sub.0=|0.sub.I|0.sub.T|0.sub.P, all qubits of the index
register are prepared in state |0 (i.e., |0.sub.I=|0.sup.n), for
example, the hyperfine ground state |0, by optical pumping in an
exemplary quantum computer with trapped ions. The second register
(denoted by the subscript "T" and referred to also as a "string
register" hereinafter) is formed of N qubits to be used to encode
the bit string (t.sub.0t.sub.1 . . . t.sub.N-1). In the initial
state |.psi..sub.0=|0.sub.I|0.sub.T|0.sub.P, all qubits of the
string register are prepared in state |0 (i.e., |0.sub.T=|0.sup.N).
The third register (denoted by the subscript "P" and referred to as
a "pattern register" hereinafter) is formed of M qubits to be used
to encode the bit pattern . In the initial state
|.psi..sub.0=|0.sub.I|0.sub.T|0.sub.P, all qubits of the pattern
register are prepared in state |0 (i.e., |0.sub.P=|0.sup.M).
[0047] In block 706, by the system controller 104, each qubit of
the index register is transformed from state |0 to a linear
superposition state of |0 and |1, (|0+|1)/ {square root over (2)},
thus transforming the index register from the initial state
|0.sub.1=|0.sup.n to a superposition state
( | 0 + | 1 2 ) n = j = 0 n - 1 .times. ( k j = { 0 , 1 } .times. |
k j 2 ) ##EQU00002##
in the quantum processor 106. The index register is now in a
superposition of 2.sup.n(=N) states (|0|0 . . . |0, |0|0 . . . |1,
. . . , |1|1 . . . |1) each associated with a string index k(=0, 1,
. . . N-1) (thus, referred to as string index states), and may be
denoted as
1 N .times. k = 0 N - 1 | k I , ##EQU00003##
where |k.sub.I is a state formed of n (=log.sub.2 N) qubits defined
as |k.sub.I=|k.sub.0|k.sub.1 . . . |k.sub.n-1
(k=.SIGMA..sub.j=0.sup.n-12.sup.jk.sub.j=0, 1, . . . , N-1). By
this transformation, the quantum processor 106 is transformed from
the initial state |.psi..sub.0=|0.sub.1|0.sub.T|0.sub.P to an
initial superposition state
| .psi. S = 1 N .times. k = 0 N - 1 | k I | 0 T | 0 P
##EQU00004##
(i.e., a superposition of combined states of the index register,
the string register, and the pattern register). This transformation
may be implemented by application of a proper combination of
single-qubit operations to the n=(log.sub.2 N) qubits of the index
register in the initial state |.psi..sub.0=|0.sub.1|0.sub.T|0.sub.P
in a single time step in units of elementary logic operations.
[0048] In block 708, by the system controller 104, the bit string
(t.sub.0t.sub.1 . . . t.sub.N-1) is encoded in the string register,
and the bit pattern (p.sub.0p.sub.1 . . . p.sub.M-1) is encoded in
the pattern register in the quantum processor 106. Specifically,
the i-th bit information t.sub.i(i=0, 1, . . . N-1) of the bit
string (t.sub.0t.sub.1 . . . t.sub.N-1) is encoded in the i-th
qubit of the string register as |.sub.T=|t.sub.0t.sub.1 . . .
|t.sub.N-1=.sub.i=0.sup.N-1|t.sub.i(i=0, 1, . . . N-1) (referred to
as a string encoded state). That is, the string register is
transformed form the initial state of the string register |0.sub.T
to the string encoded state |.sub.T. Similarly, the i-th bit
information p.sub.i(i=0, 1, . . . M-1) of the bit pattern
(p.sub.0p.sub.1 . . . p.sub.M) is encoded in the i-th qubit of the
pattern register as |.sub.P=|p.sub.0|p.sub.1 . . .
|p.sub.M-1=.sub.i=0.sup.M-1|p.sub.i(0, 1, . . . M-1) (referred to
as a pattern encoded state). That is, the pattern register is
transformed from the initial state of the pattern register |0.sub.P
to the pattern encoded state |.sub.P. These operations may be
implemented by application of a proper combination of single-qubit
operations to the N qubits of the string register in the initial
state |0.sub.T and to the M qubits of the pattern register in the
initial state |0.sub.P in a single time step in units of elementary
logic operations.
[0049] In block 710, by the system controller 104, a
controlled-circular-shift operation S is applied on the string
register in the string encoded state
|.sub.T=.sub.i=0.sup.N-1|t.sub.i conditioned on the index register
in the initial superposition state
1 N .times. k = 0 N - 1 | k I ##EQU00005##
in the quantum processor 106. That is, all qubits of the string
register are circularly shifted (e.g., left-circularly shifted) by
k bit positions in a combined state having the index register in
state |k.sub.I (referred to as an operation .sub.k:
[|k.sub.I.sub.i=0.sup.N-1|t.sub.i]=|k.sub.I.sub.i=0.sup.N-1.sub.k|t.sub.-
i=|k.sub.I.sub.i=0.sup.N-1|t.sub.i+k mod N.
Thus, the operation .sub.k transforms the string register in the
state having the index register in |k.sub.I from the string encoded
state |.sub.T=.sub.i=0.sup.N-1|t.sub.i to a circularly shifted
state |.sub.T.sup.(k)=.sub.i=0.sup.N-1|t.sub.i+k mod N .
[0050] The controlled-circular-shift operation .sub.k conditioned
on the n-qubit long index register |k.sub.I may be implemented as a
series of bit-wise circular shift operation
.sub.2.sub.j.sup.(k.sup.j.sup.) conditioned on the j-th qubit
|k.sub.i of the index register that left-circularly shifts all
qubits of the string register by 2.sup.j bit positions:
|k.sub.I.sub.i=0.sup.N-1.sub.k|t.sub.i=(.sub.i=0.sup.N-1|k.sub.j).sub.i=0-
.sup.N-1(.PI..sub.j=0.sup.n-1.sub.2.sub.j.sup.(k.sup.j.sup.))|t.sub.i).
[0051] The bit-wise controlled-circular-shift operator
.sub.2.sub.j.sup.(k.sup.j.sup.) may be implemented as a combination
of controlled-SWAP operations targeted on the string register (each
of which interchanges a pair among the N qubits of the string
register) conditioned on the j-th qubit |k.sub.j of the index
register. Among the required controlled-SWAP operations, N/2
controlled-SWAP operations to circularly shift N/2 qubits among the
total N qubits by 2.sup.j bit positions may be applied in a single
time step in units of elementary logic operations as described in
detail below. In a subsequent time step, N/4 controlled-SWAP
operations are applied to circularly shift a half of the N/2
remaining qubits by 2.sup.j bit positions. At each subsequent time
step, the number of qubits that need to be swapped decreased by
half. Therefore, the bit-wise controlled-circular-shift operator
.sub.2.sub.j.sup.(k.sup.j.sup.) targeted on N qubits may be
implemented in (log(N)) time steps in units of elementary logic
operations using parallel controlled-SWAP operations.
[0052] To implement, in one time step in units of elementary logic
operations, at most N/2 controlled-SWAP operations controlled by
the same control qubit, N/2 ancillary qubits, each initialized to
state |0, may be used. Using a fan-out CNOT operation on the
ancillary qubits with the control qubit, the control qubit state
may be copied into the ancillary qubits. With the N/2 available
copies of the control qubit state, each controlled-SWAP operations
may then be implemented in parallel since each one of at most N/2
controlled-SWAP operations may use each one of the available
control state copies encoded in the ancillary qubits. Once all of
controlled-SWAP operations in a given bit-wise
controlled-circular-shift operator .sub.2.sub.j.sup.(k.sup.j.sup.)
are implemented, the ancillary qubits may be restored to state |0
by subsequently applying another fan-out CNOT operation as
described above. The fan-out operation may be implemented in
(log(N)) time steps in units of elementary logic operations.
[0053] The CNOT gate operations and the controlled-SWAP operations
used to perform the controlled-circular-shift operation S may be
each implemented by application of a proper combination of
single-qubit operations and two-qubit gate operations to the
n=(log.sub.2 N) qubits of the index register in the initial
superposition state
1 N .times. k = 0 N - 1 | k I , ##EQU00006##
the N qubits of the string register in the string encoded state
|.sub.T=.sub.i=0.sup.N-1|t.sub.i, and N/2 ancillary qubits, each
initialized to state |0.
[0054] In block 712, by the system controller 104, a bit-wise CNOT
gate operation is applied on the pattern register in the pattern
encoded state |.sub.P=.sub.i=0.sup.M-1|p.sub.i conditioned on the
first M bits of the string register in the string encoded state
|.sub.T.sup.(k)=.sub.i+k.sup.N-1|t.sub.i+k mod N. That is, the
bit-wise CNOT gate operation brings the pattern register from the
pattern encoded state |.sub.P=.sub.i+0.sup.N-1|p.sub.i to a
string-pattern matching evaluation state
(.sub.i=0.sup.M-1|p.sub.i.sym.t.sub.i+k mod N). After this
transformation, if the first M bits of the string register in the
circularly shifted state |.sub.T.sup.(k)=.sub.i=0.sup.M-1|t.sub.i+k
mod N exactly match all qubits of the pattern register in the
pattern encoded state |.sub.p=.sub.i=0.sup.M-1|p.sub.i (i.e., exact
matching), all qubits |p.sub.i.sym.t.sub.i+k mod N of the pattern
register in the string-pattern matching evaluation state
(.sub.i=0.sup.M-1|p.sub.i.sym.t.sub.i+k mod N)) are in state |0. If
the first M qubits except ford qubits of the string register in the
circularly shifted state |.sub.T.sup.(k)=.sub.i=0.sup.N-1|t.sub.i+k
mod N) match the qubits of the pattern register in the pattern
encoded state |.sub.P=.sub.i=0.sup.M-1|p.sub.i (i.e., fuzzy
matching), (M-d) qubits |p.sub.i.sym.t.sub.i+k mod N) of the
pattern register in the string-pattern matching evaluation state
(.sub.i=0.sup.M-1|p.sub.i.sym.t.sub.i+k mod N) are in state |0 and
d bits are in state |1.
[0055] The bit-wise CNOT gate operations can be implemented by the
application of a combination of single-qubit gate operations and
two-qubit gate operations by the system controller 104 in a single
time step in units of elementary logic operations.
[0056] In block 714, by the system controller 104, the
string-pattern matching evaluation state
(.sub.i=0.sup.M-1|p.sub.i.sym.t.sub.i+k mod N) having (M-d) or more
qubits in state |0 (referred to as a matched state) is amplified
and measured. The exact matching corresponds to d=0. The fuzzy
matching corresponds to d.gtoreq.0. The string index k specifies
the location of the matched string. The amplification of the
matched state may be performed by applying an oracle operation
U.sub.w on the pattern register, which reverses a phase of the
matched state:
i = 0 M - 1 .times. | x i .times. .fwdarw. U w .times. { ( - 1 )
.times. i = 0 M - 1 | x i .times. .times. if .times. .times. i = 0
M - 1 .times. x i .ltoreq. d ( + 1 ) .times. i = 0 M - 1 | x i
.times. .times. if .times. .times. i = 0 M - 1 .times. x i .gtoreq.
d . ##EQU00007##
[0057] Oracle operations, such as the oracle operation U.sub.w
described herein, may be implemented in (log(M)) time steps in
units of elementary logic operations using (M) ancillary qubits in
a quantum processor that has a long-range interactions, such as the
exemplary quantum computer with trapped ions and needs to be
repeated ( {square root over (N)}) times for successful
amplification. Once an amplitude of the index register (in the
superposition of string index states) is measured, the matched
state in which the string-pattern matching evaluation state
(.sub.i=0.sup.M-1|p.sub.i.sym.t.sub.i+k mod N) having (M-d) or more
qubits in state |0 has the largest amplitude. The string index k
associated with the measured matched state corresponds to the
location of the pattern within the bit string . Subsequently, the
classical computer 102 generally outputs the measured result
including whether or not the bit string contains the bit pattern
and if it does, the location of the pattern within the bit string
.
[0058] In the embodiments described herein, the methods for a more
efficient and accelerated pattern matching process is provided. The
amount of time resources required to run a matching process for
searching a bit pattern of length M within a bit string of length N
by the method described herein scales as ( {square root over
(N)}(log(N).sup.2+log(M))) time steps in units of elementary logic
operations. As described above, transformation of the index
register to the superposition state in block 706 and encoding of
the bit string and the pattern in block 708 may be each implemented
in a single time step in units of elementary logic operations. In
block 710, each bit-wise controlled-circular-shift operator
.sub.2.sub.j.sup.(k.sup.j.sup.) may be implemented in (log(N)) time
steps in units of elementary logic operations, and thus the total
controlled-circular-shift operation (that is n=(log.sub.2 N) of the
bit-wise controlled-circular shift operations) may be implemented
in (log(N).sup.2) time steps in units of elementary logic
operations. The application of bit-wise CNOT gate operation in
block 712 may be implemented in a single time step in units of
elementary logic operations. The evaluation of matching of the bit
string and the pattern using the oracle operation U.sub.w in block
708 may be implemented in (log(M)) time steps in units of
elementary logic operations. For amplitude amplification, this
process is effectively repeated ( {square root over (N)}) times.
Thus, in total, the pattern matching by the method described herein
may be performed in ( {square root over (N)}(log(N).sup.2+log(M)))
time steps in units of elementary logic operations.
[0059] The amount of memory resources required to run a matching
process for searching a bit pattern of length M within a bit string
of length N by the method described herein scales as (N+M) qubits.
As described above, the amount of memory resources includes N to
encode the bit string (t.sub.0t.sub.1 . . . t.sub.N-1) of length N,
M to encode the bit pattern (p.sub.0p.sub.1 . . . p.sub.M-1) of
length M, n=log.sub.2 N to encode the string index, N/2 of
ancillary qubits to implement parallel controlled-SWAP operations,
and (M) of ancillary qubits to implement the oracle operation
U.sub.w. Thus, the method requires (N+M) qubits in total.
Therefore, the method described herein provides improvement in the
amount of time required to run a matching process by use of a
quantum processor over a purely classical computational method, by
allowing simultaneous search of a bit pattern in multiple locations
in a bit string due to the use of the multiple states created by a
quantum superposition.
[0060] While the foregoing is directed to specific embodiments,
other and further embodiments may be devised without departing from
the basic scope thereof, and the scope thereof is determined by the
claims that follow.
* * * * *