CTQW and CTQWDense

Continuous-Time Quantum Walk

Implementation of the continuous-time quantum walk. The model is defined for an arbitrary undirected graph. Hamiltonian is chosen to be adjacency, normalized Laplacian or Laplacian matrix. After the evolution, the state is measured in the canonical basis. The evolution is defined on a system of size equal to graph order. The precise definition can be found in Spatial search by quantum walk by Childs and Goldstone, where both pure walk and search dynamics are described.

The abstract supertype is AbstractCTQW with its default realization CTQW, utilizing sparse matrices. Alternative realization is CTQWDense, which works on standard matrices. The model includes the following types and methods:

Documentation

Full docs

AbstractCTQW

Abstract CTQW model. By default evolve according to Schrödinger equation and performs measurmenet by taking square of absolute values of its elements. Default representation of AbstractCTQW is CTQW.

source
CTQW(graph[, matrix])

Default representation of AbstractCTQW. matrix defaults to :adjacency. The Hamiltonian is a sparse matrix.

source
CTQWDense(graph[, matrix])

Alternative representation of AbstractCTQW. matrix defaults to :adjacency. The Hamiltonian is a dense matrix.

source
QWEvolution([type_ctqw, ]ctqw)

Creates QWEvolution according to AbstractCTQW model. By default type equals ComplexF64. The Hamiltonian of the system is either (normalized) Laplacian, or minus adjacency matrix.

source
QWSearch([type, ]ctqw, marked[, penalty, jumpingrate])

Creates QWSearch according to AbstractCTQW model. The evolution is defined by Hamiltonian, is the sum of the quantum walk part and the oracle. By default type equals ComplexF64, jumpingrate equals largest eigenvalue of adjacency matrix of graph if matrix(CTQW) outputs :adjacency and error otherwise, and penalty equals 0. Details can be found in the original paper.

QWSearch(qws_ctqw; marked, penalty)

Updates quantum walk search to new subset of marked elements and new penalty. By default marked and penalty are the same as in qws.

source
check_qwdynamics(QWSearch, ctqw, parameters, marked)

Checks whetver combination of ctqw, marked and parameters produces valid QWSearch object. It checks if parameters consists of key :hamiltonian with real-valued matrix. Furthermore the hamiltonian needs to be square of size equals to graph(ctqw) order. the hermiticity is not checked for efficiency issue.

source
check_qwdynamics(QWEvolution, ctqw, parameters)

Checks if combination of ctqw and parameters produces valid QWSearch object. It checks if parameters consists of key :hamiltonian with real-valued matrix. Furthermore the hamiltonian needs to be square of size equals to graph(ctqw) order. The hermiticity is not checked for efficiency issues.

source
QuantumWalk.matrixMethod.
matrix(ctqw)

Returns the matrix symbol defining matrix graph used.

source