如何在Braket TN1中精确计算一个量子位的观测值,并避免测量其余部分?

0

【以下的问题经过翻译处理】 我知道可以通过设置 shots=0 在本地模拟器上进行精确模拟以得到状态向量。但是,TN1 只允许 [1, 1000] 的 shots 范围。我尝试通过执行以下代码来减少 QFT 电路的计算成本:


qft = make_qft_circuit(10)
qft.expectation(observable=Observable.Z(), target=0)
result = device.run(qc, shots=100).result()

但是在检查结果时,我发现所有的 10 个量子比特都被测量了,并且具有计数统计信息,但我只需要第 0 个量子比特的 Pauli Z 的期望值。是否有一种方法可以防止浪费其余 9 个量子比特的计算(毕竟这是张量网络模拟)?如果可能的话,进行类似 shots=0 的状态向量的精确模拟会更好。

profile picture
专家
已提问 1 年前6 查看次数
1 回答
0

【以下的回答经过翻译处理】 对于第一个问题,尽管所有量子位已被测量,我们依然可以通过“result.values”从量子位的子集中提取期望值。假设我们想要测量第0个量子位上 Pauli Z 的期望值,则可以进行以下操作[在给定的示例中,“qc”未定义,我进行了更改]

qc = make_qft_circuit(10)
qc.expectation(observable=Observable.Z(), target=0)
result = device.run(qc, shots=100).result()
Z_0 = result.values[0] # 这是所需的期望值。

对于第二个问题,TN1不支持“shots = 0”结果类型。

profile picture
专家
已回答 1 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则