philophysics / Quantum-Walks-On-NxN-Grids

Code used for "Scattering Quantum Random Walks on Square Grids and Randomly Generated Mazes" paper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Quantum-Walks-On-NxN-Grids

Code used for the publication: "Scattering Quantum Random Walks on Square Grids and Randomly Generated Mazes"

arXiv pre-print version: ~ coming soon ~

The code assmebled in this project was used to generate all of the results presented in the paper mentioned above. They are a collection python codes that simulate quantum systems, which in principle can be used as algorithms on a quantum computer.

Getting Started

All of the code is written for Python. For an IDE to run the codes, I reccomend using Spyder through the Anaconda Distribution.

link: https://www.anaconda.com/download

The code requires Python 3.5 or higher

Once you have Spyder, or another Python IDE up and running, download all of the python files and put them together in a location somwhere on your computer. For example, store them in a folder on your desktop labeled "Quantum Walks." It is important that all of the python files be stored in the same location, as they call upon each other frequently to import functions:

import NxN_functions as nn
import Maze_Generator as mg

As a good first test to make sure everything runs properly: open the python file named "First_Run.py". If the file runs properly, a messege should print saying that all of the functions imported correctly.

Classical Simulation of Quantum Systems

When designing new quantum algorithms, often times it is useful to run simulations of the behavior of quantum systems on a clssical computer. This is precisely what all of these codes do: simulate the results one could expect from running a Quantum Random Walk on NxN Grid graphs. The advantage of simulating these walks classically is the ability to store information about the state of the system at any given moment. This allows us to highlight the unique features of these quantum systems, with exact values for state amplitudes, probabilities, etc. Such a task is in principle impossible with real quantum systems, which is why studying them through classical codes is so insightful. By studying the "under the hood" properties of these quantum systems, we can better determine whether they have the potential for speedups over classical algorithms.

Running The Codes

All of the codes provided in this project run "out of the box" and showcase certain properties of these NxN quantum systems. Most of the codes produce a plot or print results to the terminal (or both). For further explination on the results produced by individual codes, a short paragraph is provided at the beginning of each code as well as documentation on each module. For more information about the overall goal of these codes, I reccomended reading the arXiv paper listed above.

Coding Style Disclaimer

I am a physicist (quantum computer scientist?), not a professional software engineer. If my codes fail to meet some coding etiquettes, I apologize! I've spent quite a good deal of time making the codes as presentable and user-friendly as they are now, but I know they are still a little rough around the edges.

Contact Me

Daniel Koch - dkochsjsu@gmail.com

If you have any questions / interests in the code, or quantum walks in general, feel free to reach out to me.

About

Code used for "Scattering Quantum Random Walks on Square Grids and Randomly Generated Mazes" paper


Languages

Language:Python 100.0%