gpt4 book ai didi

python - 编码德语算法

转载 作者:太空狗 更新时间:2023-10-30 02:38:41 25 4
gpt4 key购买 nike

我目前正在尝试编写 Deutsch 算法的代码,并努力解决如何测量 |x> 量子位的问题。阅读example here帮助但没有解决我的根本问题。

使用下图作为展示我遇到的问题的基础,在他们提出第二个 Hadamard 变换时,我仍然将我的信息编码为对应于 |00>、|01 的概率向量>、|10> 和 |11>。

Deutsch Algorithm Diagram

我读过的所有内容都表明我所做的只是取前 2 个值(因为它们对应于第一个量子位)并应用 Hadamard 变换,然后查看它是零还是一,但这似乎不是上类。有没有人实现过这个并且对如何实际实现这个有任何建议?我目前正在使用 Numpy 在 Python 中编码,以下是我所拥有的:

x = np.array([[1], [0]])
y = np.array([[0], [1]])
h = calc_hadamard(1)

phi2 = np.kron(h.dot(x), h.dot(y))

constantF = np.array([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]])

balancedF = np.array([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 0, 1],
[0, 0, 1, 0]])

print(constantF.dot(phi2))
print(balancedF.dot(phi2))

那些打印函数输出的内容在哪里

  • (0.5、-0.5、0.5、-0.5)和
  • (0.5, -0.5, -0.5, 0.5)

希望显而易见的是,这是预期的结果,但对前两个值执行后续的 Hadamard 变换会给出相同的答案。我在这里缺少什么?

最佳答案

Everything I've read suggests that all I do is take the top 2 values (as they correspond to the first qubit) and apply the Hadamard transform,

不,那不是你要做的。您必须对顶对和底对应用 Hadamard 操作。等效地,您必须扩展 1 量子位 Hadamard 矩阵以将其张量与其他量子位的恒等运算一起应用于 2 量子位系统:

phi3 = constantF.dot(phi2)  # or balancedF
h_on_1_for_2 = np.kron(np.eye(2), h)
phi4 = np.dot(h_on_1_for_2, phi3)

关于python - 编码德语算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46311341/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com