hiperwalk.ContinuousTime.simulate#
- ContinuousTime.simulate(range=None, state=None)#
Simulates the quantum walk.
The simulation propagates the quantum walk state by iteratively applying the evolution operator to the result of its previous application, starting from the specified initial state.
- Parameters:
- rangeint, tuple of int, default=None
Specifies the number of applitcations of the evolution operator, and the corresponding states to be saved. It can be defined in three distinct ways:
- end
Saves the states from the
0
-th to the(end - 1)
-th application of the evolution operator. The corresponding exponents of the evolution operator are all integers in the open interval[0, end)
, i.e.[0, 1, ..., end - 1]
.
- (start, end)
Saves the states from the
start
-th to the(end - 1)
-th application of the evolution operator. The corresponding exponents of the evolution operator are all integers in the open interval[start, end)
, i.e.[start, start + 1, ..., end - 1]
.
- (start, end, step)
Saves the states from the
start
-th to the(end - 1)
-th application of the evolution operator separated bystep
applications. The corresponding exponents of the evolution operator are all integers in the open interval[start, end)
such that the difference between two integers is at leaststep
, i.e.[start, start + step, ..., start + k*step]
wherek
is the smallest integer that satisfiesstart + (k + 1)*step >= end
.
- state
numpy.array
, default=None The starting state onto which the evolution operator will be applied.
- Returns:
- states
numpy.ndarray
. States retained during the simulation where
states[i]
is thei
-th saved state.
- states
- Raises:
- ValueError
Triggered if
range is None
orstate is None
.
See also
evolution_operator
state
Notes
The states computed and saved during the simulation are determined by the parameter
range=(start,end,step)
.The simulation of the walk is based on the expression \(|\psi(t)\rangle=U^t|\psi(0)\rangle\), where \(|\psi(0)\rangle\) denotes the initial state. The values for \(t\) progress as \(t=\text{start}\), \(\text{start} + \text{step}\), \(\text{start} + 2\cdot\text{step}, \ldots\), until reaching the highest value of \(k\) that satisfy \(\text{start} + k\cdot \text{step} < \text{end}\).
Specifically, the simulation begins from the state \(|\psi(\text{start})\rangle\) and sequentially calculates and saves states in the form of \(|\psi(\text{start}+j\cdot\text{step})\rangle\), where \(j=0,1,...\) and the maximum value of \(j\) ensures that \(\text{start}+j\cdot\text{step} < \text{end}\).
Examples
Given
range=(0, 13, 3)
, the saved states would include: the initial state (t=0), intermediate states (t=3, 6, and 9), and the concluding state (t=12).