Почему в документации Qiskit такие разные реализации UGate и U3Gate?

Aug 20 2020

В документации к новой версии Qiskit 0.20.0 указано, что:

  • UGate реализован с использованием двух импульсов X90 в системах IBM Quantum:

$U(θ,ϕ,λ)=RZ(ϕ−π/2)RX(π/2)RZ(π−θ)RX(π/2)RZ(λ−π/2)$"

  • U3Gate реализован с использованием двух импульсов X90 в системах IBM Quantum:

$U3(θ,ϕ,λ)=RZ(ϕ)RX(−π/2)RZ(θ)RX(π/2)RZ(λ)$"

Похоже, только последний соответствует известной последовательности вращения для U3:$z$-вращение ($\lambda$), $y$-вращение ($\theta$), $z$-вращение ($\varphi$)

Хотя их матрицы представления полностью совпадают: $$ \mathrm{U3}= \mathrm{U}= \begin{pmatrix} \cos(\theta/2) & -\mathrm{e}^{i\lambda}\sin(\theta/2) \\ \mathrm{e}^{i\phi}\sin(\theta/2) & \mathrm{e}^{i(\phi+\lambda)}\cos(\theta/2) \end{pmatrix}. $$

Это неточность в документации или мне что-то не хватает, а эти ворота на самом деле разные?

На всякий случай вышеупомянутая разница, указанная в документации, относится к аппаратной (а не программной) реализации этих шлюзов в системах IBM Q.

Ответы

3 e-eight Aug 20 2020 at 20:48

Если вы посмотрите на исходный код, вы увидите, что UGateэто определено как псевдоним для U3Gate. А зачем им этот псевдоним, я точно не знаю. Но если бы я рискнул сделать предположение, то это было бы потому, что в большей части литературы по квантовым вычислениям$U$используется для ссылки на произвольный унитарный вентиль / оператор. Поскольку в qiskit U3Gateэто наиболее общий унитарный вентиль с одним кубитом , имеет смысл отождествить его с$U$ из литературы по квантовым вычислениям.