Encoding package

qiskit_quantum_knn.encoding.analog module

encode(classical_data)[source]

Encodes the given classical state to a quantum state.

The encoding of a state makes sure that the following rule within quantum mechanics is met:

\[\langle \psi | \psi \rangle = 1,\]

for a quantum state \(\psi\). To put it in other words, suppose that \(\psi = \sum_i c_i x_i\) with \(c_i \in \mathbb{C}\), the encoding will normalise the values \(c_i\) such that \(\sum_i |c_i|^2 = 1\).

Example

Simple encoding using real values.

from qiskit_quantum_knn.encoding.analog import encode

classical_state = [
    [1, 1, 1, 1]
]
normalised_state = encode(classical_state)

print(normalised_state)
print((normalised_state ** 2).sum())
[[0.5 0.5 0.5 0.5]]
1.0

Using complex values.

classical_state = [
    [1+2j, 1-3j, 1+2j, 1+3j]
]
normalised_state = encode(classical_state)

print(normalised_state)
print((normalised_state ** 2).sum())
[[ 0.44295684-0.1318281j  -0.57478495-0.31112874j  0.44295684-0.1318281j
   0.6465052 -0.09596798j]]
(1-2.7755575615628914e-17j)
Parameters

classical_data (vector_like) – state(s) to encode.

Returns

the encoded quantum state.

Return type

np.ndarray

Module contents