Coder Social home page Coder Social logo

iitis / quantumwalk.jl Goto Github PK

View Code? Open in Web Editor NEW
21.0 4.0 3.0 570 KB

QuantumWalk.jl: Package for building algorithms based on quantum walks

License: MIT License

Julia 75.23% Jupyter Notebook 24.77%
quantum-walks quantum-computing julia spatial-search

quantumwalk.jl's Introduction

Build Status Coverage Status

QuantumWalk

Description

QuantumWalk.jl is a package for Julia programming language implementing models of quantum continuous and discrete walks used for performing quantum spatial search. It's main purpose is to provide general functionalities by crossing usage of quantum models and applications implementations.

Currently the package provides implementation of

  • Szegedy quantum walks Szegedy with abstract supertype AbstractSzegedy,
  • continuous-time quantum walks CTQW and CTQWDense with abstract supertype AbstractCTQW,

and dynamics

  • simple quantum walk QWEvolution,
  • quantum spatial search QWSearch.

In particular for the last dynamic algorithm maximize_quantum_search finding optimal measure time are implemeneted. Note the function works in general for arbitrary discrete-time quantum walk. The results are not guaranteed for continuous-time quantum walk, as times is not discretized.

Installation

The package can be installed using Pkg.clone command as

(v1.0) pkg> add QuantumWalk

All of the required modules will be installed automatically.

Exemplary usage and citing

Our package was already used in papers concerning quantum attacks

  • Adam Glos, Jarosław Adam Miszczak. Impact of the malicious input data modification on the efficiency of quantum algorithms, DOI:10.1007/s11128-019-2459-3, arXiv:1802.10041 (2018).

In case of citing, please use the following BibTeX form:

@misc{glos2018quantumwalkjl,
  author       = {Adam Glos and Jaros{\l}aw Adam Miszczak},
  title        = {{iitis/QuantumWalk.jl}},
  year         = {2018},
  url          = {https://github.com/iitis/QuantumWalk.jl}
}

quantumwalk.jl's People

Contributors

adamglos92 avatar jmiszczak avatar juliatagbot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

quantumwalk.jl's Issues

doctest not working

Currently julia docs does not work (code based on Documenter module). Whent doctest is turned on julia do test does not pass.

Max probability function for Szegedy Walk

Determine function determining max probability function for Coined evolution. First option: Make evolution as long as the probability increases. Second option: need to determine interval in which the maximum exists, then make bisection.

Performance of Coined walk

Check performance for Coined walk. 5000 vertices should not be a big problem for sparse graphs
Possibilities

  • perform multiplication by coined walk separately or joined
  • generating coin operators issue

Improve test for maximizing_function

Currently test checks whether there is no error compilation. It would be good to check whether the result is correct for various quantum walk search problem

New interface

Define two Abstract types: Problem and Solver. Both should be supertype of various type of problems. For example

  • Walk <: Problem
  • Search <: Problem
    and
  • CTQW <: Solver
  • Szegedy <: Solver
  • Coined <: Solver

Determine good names for abstract types. QuantumModel, and SearchProblem may be good. May be an occasion to implemented pure walk functions.

[Question] Implementing the 1D walk using the Szegedy Model

Hi, as a test, I wanted to implement the 1D Quantum walk using the Szegedy model with periodic boundary conditions.

This is my code -

using QuantumWalk
using Plots
using LinearAlgebra
using QuantumInformation
using LightGraphs

init = 1/√2 * real(
	(ket(32, 64)  ket(33, 64))
	+
	(ket(32, 64)  ket(33, 64))
)
qwe = QWEvolution(Szegedy(cycle_graph(64)));
j = execute_all_measured(qwe, init, 100)
i = 10 # change this
plot(j[i])

This however does not give the correct graphs.

image
image

Could you please check where I have made a mistake? It seems as if I have misunderstood the way the initial state is meant to be provided, but I couldn't figure out how to fix it.

Max probability function for CTQW

Determine function determining max probability function for CTQW. Probably needs to determine interval in which the maximum exists, then make bisection.

Max probability function for coined

Determine function determining max probability function for Coined evolution. First option: Make evolution as long as the probability increases. Second option: need to determine interval in which the maximum exists, then make bisection.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.