hiperwalk.QuantumWalk.simulate#
- QuantumWalk.simulate(range=None, state=None)[source]#
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 bystepapplications. 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]wherekis 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 Noneorstate is None.
See also
evolution_operatorstate
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).