* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download GATE
Algorithmic cooling wikipedia , lookup
Path integral formulation wikipedia , lookup
Measurement in quantum mechanics wikipedia , lookup
Quantum fiction wikipedia , lookup
Many-worlds interpretation wikipedia , lookup
Quantum decoherence wikipedia , lookup
Quantum dot cellular automaton wikipedia , lookup
Quantum entanglement wikipedia , lookup
Orchestrated objective reduction wikipedia , lookup
History of quantum field theory wikipedia , lookup
EPR paradox wikipedia , lookup
Interpretations of quantum mechanics wikipedia , lookup
Density matrix wikipedia , lookup
Canonical quantization wikipedia , lookup
Quantum key distribution wikipedia , lookup
Hidden variable theory wikipedia , lookup
Quantum machine learning wikipedia , lookup
Quantum computing wikipedia , lookup
Quantum state wikipedia , lookup
Symmetry in quantum mechanics wikipedia , lookup
Quantum Computer Simulation
Alex Bush
Matt Cole
James Hancox
Richard Inskip
Jan Zaucha
Aims
Develop an understanding of quantum computing
Implement a simulation of a quantum computer
Simulate Grover’s algorithm using our implementation
of a quantum computer
Learn group work skills and techniques
Background
Feynman – 1982
Deutsch – 1994
Shor – 1994
Grover – 1996
Qubits
Classically 0 or 1
Quantum bits: qubits
Information obtained by measurement
Register: System of Qubits
For n qubits 2n states
Basis vectors by convention in binary notation
Example : basis states for a 3 qubit register
Gates
Unitary linear operators which act on the register to
alter its state
Universal set of gates:
Single qubit
Hadamard
Phase
Two qubit
CNOT
Quantum Algorithms
Ingredients: registers, universal set of gates
Advantage over classical computations: quantum
interference
Grover’s Algorithm
1996, Lov Grover
Search problem: find particular element in an
unordered list of N entries
Need to be able to assess if search found correct
element, all elements in list have to be known
beforehand
Implementation of the
Quantum Computer
Register – the register is implemented as a matrix
of complex numbers
Gate – gates are implemented in both matrix and
functional form
Basic Structure
GroverCircuit
prepareRegister()
nextIteration()
measureRegister()
Matrix
UserInterface
Register
GateFactory
Gates
{interface} Gate
apply()
Matrix
{abstract}
MatrixGate
HadamardMatrix
{abstract}
FunctionGate
HadamardFunction
CompositeGate
GroverComposite
UML Diagram
Grover Iteration
The GroverComposite gate is a special gate that
when applied to the register performs a Grover
iteration.
groverIteration[0] = oracle;
groverIteration[1] =
hadamardTransform;
groverIteration[2] = nand;
groverIteration[3] =
hadamardTransform;
Implementation:
The Quantum Register,
Quantum Gates;
- Matrix,
- Function,
- Composite,
Factory Method for creating Gates,
Quantum Algorithm and the GUI.
Implementation: Register
The Quantum Register:
An extension of the Matrix class,
2N entries,
A storage medium for the Probability Amplitudes of each state.
An example of a 2-qubit register:
a |0> + b|1>
c |0> + d|1>
ac|00> + ad|01> + bc|10> + bd|11>
|ac|
|ad|
|bc|
|bd|
Implementation: Gates
A Quantum Gate:
Gates were implemented in a variety of ways:
Matrix
Functional
Composite
Gates were packaged with a private constructor to make use of
a factory method for creating the gates.
Implementation: Gates
1-qubit Matrix Gate;
A specific 2x2 matrix was constructed to perform a single bit
operation depending on the role of the gate.
This could then be extended by applying(tensor product)
Identity matrices to the 2x2 gate.
An example of such would be to apply a “GATE” to a 4-
qubit register, with the qubit to be operated on being the
second:
Implementation: Gates
Higher order Matrix Gates and Functional Gates:
Both for higher order matrix gates and functional gates a
defined method was not so obvious for the operation of the
gates.
The use of patterns were used to analysis the expected change
on the register and a matrix or function created from this.
Functional gates using Java operations such as bitwise shift
operators.
Implementation: Factory
Factory method is an abstract class which can be used to
create gates – matrix or functional – all from one
location.
All Gate constructors are private, therefore can only be
created from inside the Factory.
The factory allows control over all gates being matrix or
functional or overloading certain gates to a different
representation if desired..
Implementation:
Quantum Algorithm and the GUI;
The algorithm and GUI sections of the code are unique to
Grover’s algorithm.
When the GUI is run it prompts the user for specific values
such as register size and the element to search for in the
register.
The register is then prepared by applying a Hadamart gate to
every qubit.
Iterations of Grover’s are then applied to the register.
A measurement can then be taken.
Demonstration
Need for managment tools
Share code between members
Ensure members have up-to-date copies of files
Backups of previous versions
Version control systems
Subversion (SVN)
Widely used – high compatability
Free and open-source
Integrates well with Eclipse
Central repository for files
Full version history of files
SVN (cont.)
Check out
Me
Edit files
Repository
Check in
Me
Check out
Check out
Jan
Me
Edit files
Edit files
Check in
Repository
Update
Me
Jan
Merge Changes
Check in
Me
Google Code
Provide SVN service
View file diffs online (changes in files between versions)
Mailing list
Issues/bug tracker
File hosting
Eclipse
GUI to develop under
Code completion
Speed up routine operations
Automatically compiles code
Graphical interface for SVN (Subclipse)
Conclusion
All of our aims achieved
Scope for further work using existing code
Improved team work skills
Improved programming skills