
能量地形与组合优化实战入门:从 Hopfield 网络到伊辛机
课程简介
很多难题不是"算得不够快",而是找的方向不对。给 30 个城市排个送货顺序,方案数是 30 的阶乘量级;把一条蛋白链折叠成天然构象,构象空间更大。这类问题有个共同点:解空间巨大,但每个解都能打分。一旦能打分,解空间就成了一张地形图,优化就变成了"在这个地形上找最低的谷"。
本课程从这张地形图讲起,一路走到今天跑在 FPGA 上的伊辛机。你会亲手写出梯度下降、模拟退火和 Fowler–Nordheim 隧穿退火三套求解器,用同一批 MAX-CUT 算例比较它们的解质量和时间,并理解为什么"保证收敛"和"快速给出还不错的解"是两件不同的事。
图1:课程三层结构——画地形、选走法、上硬件
学习目标
- 能把一个具体的组合优化问题写成能量函数,并指出它的地形长什么样
- 能手推 Hopfield 网络的 Hebbian 权重,解释"伪模式"从哪来,以及容量上限的物理含义
- 能实现三种退火排程,用同一批评测算例给出可复现的解质量与时间对比
- 能解释为什么高阶相互作用会让资源开销爆炸,以及自编码器分解如何绕开这一点
- 能读一篇伊辛机论文的方法部分,判断它的优势来自退火排程还是来自硬件
章节概览
- 把问题画成地形:目标函数即高度,可行域即地盘;MAX-CUT 与旅行商问题的能量写法
- 局部极小值的来源:为什么高维空间里到处都是坑,以及"漏斗地形"为什么例外
- Hopfield 网络:Hebbian 权重、异步更新、能量函数单调下降的证明,以及 0.14N 容量上限
- 模拟退火:Metropolis 判据、指数降温与 O(1/t) 排程,调参时最容易踩的坑
- 隧穿退火:Fowler–Nordheim 隧穿概率与势垒宽度、高度的关系,为什么它对薄墙特别有效
- 高阶相互作用:三体以上的耦合怎么表达,自编码器分解如何把资源开销与相互作用阶数解耦
- 上硬件:从 CPU 模拟到 FPGA 实现,脉冲神经元编码与时延对收敛的影响
- 评测与结论:解质量、time-to-solution 与渐近收敛保证,怎么读论文里的对比表
动手实验
- 实验一:同一张随机图,比较梯度下降、模拟退火、隧穿退火在 60 秒预算内的最好解
- 实验二:把降温排程从指数改成 O(1/log t),观察解质量与时间的变化
- 实验三:往 Hopfield 网络里塞入超过容量上限的图案,统计伪模式出现的比例
- 实验四:在 4 位、8 位、12 位的小规模 MAX-CUT 上穷举全部解,验证退火结果离最优有多远
图2:同样 60 秒预算,降温排程不同,最终停留的能量差别明显
先修要求
会写 Python,知道矩阵乘法和概率分布的基本概念即可。不需要量子力学背景——课程里用到的隧穿只出现为一个概率公式,它的物理来源会在第一章用一节讲清楚。
---