单个 h门作用在某个 qubit 的计算优化原理

也就是 h 门作用在其中一个 qubit 上,对应 state vector 的计算方式。

我们来详细推导H 门作用在其中一个 qubit 上时,对应的 state vector 计算方式。这里会用一个通用的方法,然后举例说明。

1. 通用规则

对于一个 n-qubit 系统,qubit 顺序假设为:

即最高位在左,最低位在右。

Hadamard 门

作用在第 k 个 qubit上(k=0 是最低位,k=n-1 是最高位)时,对应的矩阵是:

但更简单的优化做法是直接在状态向量系数上操作

2. 基态编号与系数

设总态为:

这里​ 是 n 位二进制基态,​,其中

若 H 作用在第 k 位(最低位​ 对应 k=0,高位对应更大的 k),那么运算只和该位有关。

3. 按固定其他位来配对

对于每个固定的其他位(即除了第 k 位外的所有 n-1 个位):

  • 有两个基态:一个是该 k 位为 0,一个是该 k 位为 1。

  • H 门将这两个基态线性组合。

步骤:

  1. 固定除了第 kk 位之外的所有位的二进制值。设这个 n-1 位的二进制数为t,它的取值范围是

  2. 原来的两个基态是:

    这里表示将 t 的二进制位插入到第 k 位之外的位,而第 k 位是​。

  3. 设这两个基态的原系数分别是:

  4. H 门的作用是:

  5. 因此新系数:

    对所有 t 做这个变换。

注意:所有其他位保持不变,只是该位的 0 和 1 状态被 H 混合。

4. 如何快速找到 \alphaα 和 \betaβ 对应的索引

设总的态向量长度,基态编号 x=0 到 N-1。

第 k 位的二进制权重

  • 若 x 的第 k 位为 0,则 x 与是同一个 t 对应的两个基态()。

  • 若 x 的第 k 位为 1,则 x 与配对。

更简单的做法:
取 x,计算(即
那么配对的两个 x 是 t 和
我们只需对 t 中第 k 位为 0 的那些 t 进行操作避免重复计算)。

算法步骤(用于人工计算):

  1. 对于每个 t 从 0 到,但第 k 位为 0。

  2. ​​,​​。

  3. 计算:

  4. 对其他所有 t 重复。

5. 举例:3-qubit,H 在中间位 (k=1)

原态:

这里,中间位是​,对应,权重

配对的 t:固定,变

列出配对:

t 的二进制:设第 1 位为 0,其他位任意。

  • t=0b000 (0) → x₀=0b000 (0), x₁=0b010 (2)
    对应基:|000⟩ 与 |010⟩

  • t=0b001 (1) → x₀=0b001 (1), x₁=0b011 (3)
    |001⟩ 与 |011⟩

  • t=0b100 (4) → x₀=0b100 (4), x₁=0b110 (6)
    |100⟩ 与 |110⟩

  • t=0b101 (5) → x₀=0b101 (5), x₁=0b111 (7)
    |101⟩ 与 |111⟩

变换:
对每个配对:

​​​

这样得到全部 8 个新系数。

6. 举例:具体数值例子

原态,则,其余 0。

配对 1: t=0 → α=0, β=1 → c'₀=(0+1)/√2 = 1/√2, c'₂=(0-1)/√2 = -1/√2
配对 2: t=1 → α=0, β=0 → c'₁=0, c'₃=0
配对 3: t=4 → α=0, β=0 → c'₄=0, c'₆=0
配对 4: t=5 → α=0, β=0 → c'₅=0, c'₇=0

新态:

7. H 在不同位置的区别

  • 如果 H 在最低位 (k=0),配对是 x 与 x+1(奇偶相邻)。

  • 如果 H 在最高位 (k=n-1),配对是 x 与(前半与后半对应位置)。

例如 3-qubit,H 在(k=2):
配对:
t 的第 2 位为 0:t=0,1,2,3

即 (0,4), (1,5), (2,6), (3,7) 配对。

总结公式
设 H 在第 k 位,对每个 t 满足 t 的第 k 位为 0,

则:

其他系数由这些覆盖全部。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1099119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML格式输出实验报告:整合PyTorch训练结果与Miniconda环境信息

HTML格式输出实验报告:整合PyTorch训练结果与Miniconda环境信息 在深度学习项目中,最令人头疼的往往不是模型调参本身,而是“在我机器上明明能跑”的尴尬局面。这种不可复现性问题不仅浪费团队时间,更可能动摇研究成果的可信度。一…

时序逻辑电路设计实验项目应用:简单计数器实现

从零构建一个计数器:深入理解时序逻辑的底层脉搏你有没有想过,计算机是怎么“数数”的?不是用手指,也不是靠软件循环——在硬件最深处,是触发器与时钟信号协同跳动,像心跳一样驱动着每一次状态更新。而这一…

大厂数据结构与算法面试题合集

一、数组与矩阵 1、数组中重复的数字 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 Input: {2, 3, 1, 0, 2, 5}Output: 2 解题思路 要求…

第十三章 数量性状遗传

第十四章群体遗传与进化

前后端分离校园竞赛管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

摘要 随着信息技术的快速发展,校园竞赛活动的规模与复杂度逐年提升,传统的手工管理模式已无法满足高效、精准的管理需求。校园竞赛管理系统通过信息化手段实现竞赛报名、评审、结果公示等全流程管理,能够显著提升组织效率,减少人为…

Markdown mermaid流程图:在Miniconda-Python3.11中绘制AI架构

在 Miniconda-Python3.11 中绘制 AI 架构:从环境搭建到可视化表达 想象一下这样的场景:你刚刚复现了一篇顶会论文的模型,训练效果不错,满心欢喜地把代码推到团队仓库。可同事拉下代码后却跑不起来——“torchvision 版本不兼容”、…

大厂数据结构面试题合集

一、数组与矩阵 1、把数组中的 0 移到末尾 283. Move Zeroes (Easy) Leetcode / 力扣 For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].public void moveZeroes(int[] nums) {int idx = 0;for (int num : nums…

CANoe环境下UDS诊断会话控制:完整示例

在CANoe中玩转UDS会话控制:从协议解析到CAPL实战 你有没有遇到过这样的场景? 刚接上诊断仪,准备读取ECU故障码,结果命令发出去没反应——查了半天才发现,根本还没进入正确的 诊断会话模式 。 这背后,正…

超详细版Proteus元器件库大全查找与加载方法

如何在Proteus中高效查找与加载元器件?一文彻底搞懂元件库的底层逻辑 你有没有遇到过这种情况: 打开Proteus准备画个电路,想找个STM32或者ESP8266,结果搜了半天“ 找不到任何匹配项 ”? 又或者,元件倒…

第十四章 群体遗传与进化

第十四章群体遗传与进化

最新大厂算法面试题合集(一)

一、双指针 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。 1、有序数组的 Two Sum 167. Two Sum II - Input array is sorted (Easy) Leetcode / 力扣 Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2 题目描述:在有序数组…

PyTorch GPU显存不足?分析Miniconda-Python3.11中的内存占用

PyTorch GPU显存不足?分析Miniconda-Python3.11中的内存占用 在深度学习项目中,你是否也遇到过这样的尴尬:明明模型不大,GPU 显存却频频告急?一台 16GB VRAM 的显卡,跑 ResNet-50 都报 CUDA out of memory&…

Python安装第三方库:在Miniconda-Python3.11中使用pip与conda混合管理

Python第三方库管理:Miniconda中pip与conda的协同之道 在现代数据科学和AI开发中,一个看似简单的问题常常让新手甚至资深开发者头疼:为什么昨天还能跑通的代码,今天却报出一连串“ImportError”或“DLL load failed”?…

12.30 - 合并区间 C++中class和C语言中struct的区别

目录 1.合并区间 a.核心思想 b.思路 c.步骤 2.C中class和C语言中struct的区别 1.合并区间 56. 合并区间 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/merge-intervals/ class Solution { public:vector<vector<int>> merge(vector…

一键删除顽固文件(强制删除)

视频演示使用批处理脚本实现文件/文件夹拖放删除与权限管理 核心功能概述 批处理脚本&#xff08;echo off&#xff09;的作用与适用场景拖放文件/文件夹到脚本自动触发删除操作的设计原理权限提升&#xff08;takeown和icacls&#xff09;的必要性与安全考量 代码鉴赏&…

Conda install常见错误:解决Miniconda-Python3.11中的Solving Environment问题

Conda install常见错误&#xff1a;解决Miniconda-Python3.11中的Solving Environment问题 在数据科学和AI开发的日常中&#xff0c;你是否曾经历过这样的场景&#xff1a;敲下一行 conda install pytorch 后&#xff0c;终端卡在“Solving environment: /”长达数分钟&#xf…

Pyenv与Miniconda对比:哪个更适合管理Python3.11用于大模型训练

Pyenv与Miniconda对比&#xff1a;哪个更适合管理Python3.11用于大模型训练 在AI工程实践中&#xff0c;一个看似不起眼却影响深远的问题浮出水面&#xff1a;如何高效、可靠地管理Python环境&#xff1f; 尤其是当项目涉及大模型训练时&#xff0c;动辄数十GB的依赖库、复杂的…

使用SMBus进行动态电压调节的技术路径:从零实现

从零构建基于SMBus的动态电压调节系统&#xff1a;实战全解析你有没有遇到过这样的场景&#xff1f;FPGA在高负载下突然复位&#xff0c;排查良久才发现是供电电压跳变太猛&#xff1b;或者服务器待机功耗居高不下&#xff0c;只因电源模块还在输出满额电压——明明负载已经休眠…

清华源同步延迟?手动刷新Miniconda-Python3.11的索引缓存

清华源同步延迟&#xff1f;手动刷新Miniconda-Python3.11的索引缓存 在人工智能实验室的一次常规部署中&#xff0c;团队急着测试 PyTorch 2.3.0 的新特性&#xff0c;却发现 conda install pytorch 始终报错“Package not found”。奇怪的是&#xff0c;官方文档明明写着已发…