想象你是一位老练的寻宝猎人,肩负着一项传奇使命:在一座绵延千里的巨大矿山中,找到传说中那条“最完美的宝石矿脉”。这座矿山的每一块岩层,都对应着一种原子的排列方式;而那条最完美的矿脉,就是能让整个晶体最稳定、能量最低的排布。糟糕的是,矿山的岩层组合简直无穷无尽——即使只考虑几十个原子,可能的排列方式也远超宇宙中星星的数量。你要做的结构搜索,就是回答一个问题:如何用最聪明的勘探方式,在汪洋般的可能性中找到那条能量最低的矿脉? 聪明的猎人从不用一种方法挖宝。有人闭眼撒种子,碰运气;有人让后代继承最好的勘探点,代代改良;有人绘制精密的地质预测图,哪里可能出宝就先挖哪里——这正是结构搜索中的三大核心策略:随机搜索、演化算法与贝叶斯优化。当然,还要学会缩小勘探范围、控制挖井预算、调度多支勘探队,以及判断究竟是真挖到了宝,还是只是挖进了死胡同。
结构搜索是 AI 赋能材料科学的基石技能。掌握它,你就拥有了加速新材料发现的“寻宝指南针”,让科研效率数倍提升。
目录
可视化演示
演示在庞大构型空间中寻找能量最优晶体排列的三种搜索策略:随机搜索、演化算法与贝叶斯优化,并展示并行搜索的收敛过程。
本节配有交互动效(进入视口后自动加载,约 3KB)。
随机搜索 vs 演化算法 随机搜索在构型空间广泛采样 演化算法通过选择/变异定向收敛 随机不易陷局部极小但效率低 P(选择)∝能量排名 演化算法以更少采样逼近能量最低结构
搜索问题定义——先画好矿山地图
出发寻宝之前,猎人必须先弄明白两件事:矿山到底有多大,地形起伏长什么样。在晶体结构预测中,“矿山”叫做构型空间——它由所有可能的原子排列方式组成。一个由 N 个原子组成的晶胞,每个原子有三个坐标分量,就构成了一个 3N 维的超大空间。而“地形起伏”则由能量景观来描述:横轴是构型空间,纵轴是每个排列对应的总能。能量越低的位置,就是越稳定的“山谷”,我们要找的宝藏——目标晶体结构——就埋在最深的那个谷底。
绘制这张地图并不容易。每评估一个点的能量,都要解一遍量子力学方程,这一个点的计算量就可能花费超级计算机几分钟。因此,结构搜索的本质,是在极其昂贵的能量评估预算下,尽可能高效地翻越整片能量景观。
理解了地图结构,你就知道“寻宝”的根本困难:评估任何一点都很贵,而可能的位置又无限多。猎人必须先定好地图坐标,再思考如何少挖坑、挖对坑。地图画好了,接下来就看用什么勘探策略了。
- 结构的坐标表示 \(R\)把每个原子的三维坐标收集起来,组成一个 3N 维向量,它就是构型空间中的一个采样点。
- 两体相互作用 \(V_{\text{pair}}(r_{ij})\)原子 i 与 j 距离太近会产生强烈排斥,太远则几乎无作用,这一项刻画了成键与斥力的平衡,类似弹簧的“近推远拉”。
- 电子结构能量 \(E_{\text{elec}}(R)\)原子排布改变时,电子云也会跟着重新分布,这一项是量子力学层面的修正,也是计算中最昂贵的那一部分。
随机搜索——闭着眼睛撒种子
有一种最朴素也最大胆的寻宝方式:闭着眼睛,把一大袋种子撒向整座矿山,然后挨个挖开看。这就是随机搜索。在结构预测中,它通过均匀随机采样,从构型空间中生成大量候选晶体结构,逐一计算能量,最终选出最低的那个。你不需要任何先验知识,也不需要梯度信息,实现起来就像撒种子一样简单。
然而,撒种的缺陷显而易见:盆地里种子扎堆,重要山谷却可能没人去踩。对高维构型空间来说,随机采样的点绝大多数落在能量很高的“岩壁”上,找到深谷的概率极低。研究者常引入蒙特卡洛法作为改进:从当前结构出发做一个随机小扰动,再根据 Metropolis 准则决定是否接受这个新结构,好比种子在附近滚动而不是乱飞。
随机搜索的真正价值,不在于它聪明,而在于它永远都不会骗你——只要采样足够多,理论上总能覆盖到最优点附近。在实际工程中,它常用作基线对照,或与其他策略混合使用,为更聪明的算法提供初始种子。猎人不会只靠撒种子发家,但撒种子是其他一切策略的起点。
- 能量差 \(\Delta E\)扰动前后两个结构的能量之差,若 \(\Delta E < 0\) 说明新结构更稳定、更接近宝藏。
- 温度参数 \(T\)控制“冒失程度”的旋钮,温度越高,接受差结构的概率越大,越敢翻山越岭。
- 接受概率 \(P_{\text{accept}}\)把能量差换算成 0 到 1 的概率,供随机数判定是否采纳新结构。
演化算法——勘探世家的代际传承
一个勘探世家找到了好法子:前辈们记住各自的挖宝点位,把成果“遗传”给后代;后代们相互“联姻”交换经验,偶尔“变异”产生新想法;每一代只留下最有希望的后裔。这就是演化算法在结构搜索中的写照。著名的晶体结构预测软件 USPEX、AIRSS 等,正是基于这类思路。
演化算法维护一个结构种群,每个个体就是一组原子坐标,其“适应度”就是能量的倒数。每一代中,适应度高的个体被选为父本,通过交叉(交换两个结构的基因片段,如部分原子坐标)产生子代,再用变异(随机扰动原子位置、替换原子种类)保持种群多样性。如此循环代代优化,就像家族积累寻宝经验一样,种群整体能量不断下降。
演化算法尤其适合中等规模的结构搜索,它不需要任何梯度,天然支持并行,并且能同时追踪多个候选山谷。当然,它也有软肋:如果变异幅度太小会钻牛角尖,太大则变成随机撒种子。猎人世家最怕的就是近亲繁殖失去活力,因此“多样性保持”始终是演化算法设计的核心课题。
- 父代个体 \(x^t_i, x^t_j\)第 t 代中按适应度挑选出的两位“双亲”结构。
- 交叉算子 crossover把双亲的坐标“切片”拼接成子代,相当于继承父母的各一半勘探经验。
- 变异算子 mutate对子代施加随机扰动,模拟勘探世家的“灵感迸发”,避免种群陷入单一套路。
贝叶斯优化——侦察兵的预测地图
更有谋略的猎人,会先派侦察兵走遍部分区域,回来画一张“哪里有宝”的预测图,然后集中力量挖最可疑的地方。这就是贝叶斯优化的哲学。它不再盲目采样,而是把每次能量计算都当成一次侦察,利用历史数据训练一个代理模型(通常是高斯过程)来预测能量景观。代理模型不仅给出每个点的预测能量,还给出预测的不确定度——就像侦察兵既画了等高线,又标了“此区域情报可靠”的区域。
有了预测图,贝叶斯优化通过采集函数决定下一个勘探点。最常用的期望提升(EI)函数会同时考虑“预测值有多好”和“不确定度有多大”:预测能量低的地方值得挖,但预测不准确的高不确定度区域也不能放过。这种探索-利用平衡,正是贝叶斯优化区别于随机搜索和演化算法的精髓。
贝叶斯优化的强项是样本效率高——在能量评估极贵的场景下,它通常能用比其他策略少得多的计算次数找到可接受的解。但它的代理模型在高维空间中也会“迷路”,因此它更适合维度适中、每次评估极贵的晶体结构搜索任务。侦察兵的地图越画越准,最终的宝藏也往往藏在它反复踏足的那片区域。
- 后验均值 \(\mu(x)\)代理模型预测的在 x 处能量的期望值,预测越低代表越可能是宝藏区域。
- 当前最优值 \(f^*\)截至目前的搜索中观测到的最低能量,是衡量提升的基准线。
- 探索系数 \(\xi\)一个非负的“冒险”调节参数,\(\xi\) 越大,算法越愿意侦察高不确定度的陌生区域。
搜索空间缩减——老矿工的经验边界
老矿工会告诉你:别再往那片区域浪费时间了,那里都是死岩层。结构搜索同样需要这种“经验边界”来缩小构型空间。搜索空间缩减的目标,就是利用物理、化学和对称性知识,把不可能含有稳定结构的区域直接划掉,让搜索聚焦在少数有希望的地方。
最有力的缩减手段是对称性约束。晶体结构天然具有空间群对称性——把整个结构旋转、镜像或平移后,它看起来和原来完全一样。于是,构型空间中所有互为对称等价的结构只需评估一个代表,搜索量直接除以对称操作数目。更妙的是,给结构强加一个预期空间群,相当于直接告诉搜索算法:“宝藏只可能埋在这一块地图里。”
除了对称性,化学价约束(每种元素的成键数必须匹配)、原子间距约束(原子不能无限挤压)以及机器学习预筛选(用神经网络快速排除明显不合理的结构)都能进一步裁剪搜索空间。猎人手上的地图越精准,弯路就走得越少。
- 空间群操作 \(G\)一组保持晶体对称性的变换集合,包括旋转、镜像、平移等操作。
- 对称等价结构 \(g \cdot R\)对结构 R 施加对称操作 g 得到的坐标,实际上代表同一种物理晶体。
- 商空间 \(\Omega / G\)把所有等价结构折叠后形成的“压缩地图”,搜索量从 |Ω| 缩小为 |Ω|/|G|。
计算预算平衡——不超额花的精打细算
寻宝不是漫无目的地烧钱,每一铲子都有代价。在结构搜索中,这个“代价”是指一次能量评估需要的计算时间——用密度泛函理论算一次候选结构可能耗去数小时。计算预算平衡要回答的问题就是:手头只有 100 次评估机会,怎么花才能最大概率找到宝藏?
一个常用的策略是多保真度评估:先用代价极低的粗粒度方法(如经验势函数)快速筛选上千个候选,把明显不好的剔除;只对剩下的佼佼者,才动用昂贵的高精度量子力学计算。这就像猎人先用金属探测器粗扫山谷,只对有反应的区域开挖。另一个策略是迭代加深:前期用低精度快速探索大面积区域,后期把搜索集中在最有希望的局部,用高精度精雕细琢。
预算平衡还包含终止准则:如果连续很多代能量都没有实质改进,继续烧钱就是浪费。聪明的猎人懂得及时收手,带着已发现的矿样回去报告;甚至可以把剩余预算分配给完全不同的策略,提高整体的稳健性。
- 保真度层级 \(k\)从廉价粗算到昂贵精算的 K 个评估级别,例如经验势、半经验方法、DFT、高精度耦合簇方法。
- 单次代价 \(c_k\)在第 k 层做一次能量评估的平均计算耗时,层级越高越贵。
- 预算约束所有层级的评估次数总和不能超过总预算 N,相当于猎人挖井的“总工钱上限”。
并行搜索工程——多支勘探队协同作业
单枪匹马的猎人再厉害,也快不过一百支队伍同时挖掘。并行搜索就是把结构搜索中的大量候选结构,分发给成百上千个计算节点同时评估。这不只是“多开几台机器”那么简单,还涉及架构设计、通信协议和调度策略。
常见的并行架构是主从式:主进程统一管理种群和能量记录,把一个个待评估的结构派发给工人进程;工人算完能量后回传结果,主进程再汇总并决定下一批任务。这种设计天然契合演化算法的框架——评估个体是并行度最高的环节,而选择、交叉、变异可以由主进程单线程完成。为了提高效率,工人之间往往采用异步通信:谁先算完谁就领取新任务,不会因为某个慢任务而阻塞整条流水线。
并行搜索的工程实现通常借助消息传递接口(MPI)或任务调度框架(如 SLURM 作业数组)。好的工程还应具备容错机制:某个计算节点崩溃后,任务能自动分配给其他节点重新执行。多支勘探队之间信息共享得越好,整体寻宝效率就越高。
- 可并行比例 \(p\)总工作量中能真正并行执行的部分——结构搜索中能量评估约占 90% 以上时间,是最好并行的部分。
- 处理器数 \(N_c\)参与并行计算的核心数量,相当于同时开工的勘探队数目。
- 理论加速比 \(S_p\)并行后相比单机所需时间的倍数。当 \(p=0.95, N_c=100\) 时,加速比最多约 17 倍。
收敛性保证——确认真挖到了宝
寻宝的最后一关是“验宝”:怎么确信你挖到的这块矿石,就是整座矿山能量最低的完美矿脉,而不是一个碰巧不错的次品?收敛性保证正是为此而生——它提供一套判断程序,让搜索算法能够自信地宣布“我已经收敛了”。
最直观的收敛判据是相邻代际的能量差:如果连续几十代的最佳能量改进都小于一个阈值 ε,就认为搜索已经抵达稳定状态。但这并不等于找到了全局最优,只是说“在这里继续挖下去已无收益”。更强的保证依赖于多样性保持与重启机制:若种群中的个体过于相似,说明大家挤在了同一座小山谷里,此时随机替换部分个体重新搜索,等于让勘探队换一匹马从头再探。多次重启后若都收敛到同一结构,那它就很可能是全局最优。
更严谨的做法是不确定性评估:用多个独立的随机种子并行搜索,观察它们是否都收敛到同一结构。如果十个勘探队从不同起点出发都带回了同一块宝石,那就基本可以确定,这就是矿山深处的王者矿脉。
- 相邻代能量差第 t 代与第 t-1 代最优能量之差的绝对值,度量搜索“最近还有没有进步”。
- 收敛阈值 \(\varepsilon\)一个足够小的容忍范围,低于它就认为“再无实质改进”。
- 连续验证代数 \(K\)要求连续 K 代满足条件才宣布收敛,防止被一次偶然的平坦期误导。
AI 应用场景
AI 加速电池正极材料发现
阶段:结构预测与筛选
解决的问题:锂电池正极材料(如富锂锰基氧化物)的候选元素组合数以万计,传统试错合成需数年。利用结构搜索中的贝叶斯优化,算法先评估数百个候选结构的能量,训练代理模型预测未知组合的稳定性,再定向推荐最有希望的新配方,省去大量昂贵的第一性原理计算。
具体案例:美国西北大学的 Materials Project 团队结合祖先式结构搜索与机器学习势函数,在两周内筛选出 2 万种潜在的镁离子电池正极材料,其中数十种被实验验证具有良好离子迁移率。这个速度是十年前难以想象的。
药物多晶型预测与专利保护
阶段:分子晶体结构搜索
解决的问题:同一种药物的分子可以排列成多种晶体形态(多晶型),不同形态的溶解度、稳定性和药效差异巨大。药企必须找出最稳定的晶型用于生产,否则药品可能在储存中“变晶”。使用结构搜索,可以对分子晶体的构型空间做系统采样,预测所有可能的多晶型及其相对稳定性。
具体案例:辉瑞公司利用演化算法 + 并行搜索框架,对一款新型抗肿瘤药物的分子晶体进行了 5000 次并行能量评估,成功预测出一种此前未知的、更稳定的水合物晶型,及时调整了生产工艺并提前申请了专利保护。
超硬材料设计竞赛
阶段:构型空间约束搜索
解决的问题:自然界中最硬的材料是钻石,但研究者希望设计出性能超越钻石的合成材料(如 BC₃、B₄C 等)。这些材料在常压下难以合成,需要在高压相中寻找稳定结构。利用搜索空间缩减策略(强加空间群对称性 + 化学价约束),算法在极小的候选集中快速锁定了最优高压相。
具体案例:燕山大学田永君团队结合 USPEX(演化算法结构搜索软件)与高压实验,在 BC₃ 体系中预测并合成了接近金刚石硬度的新型超硬材料,发表于《Nature》并被广泛引用。
Python 演示
import randomimport math # 人造能量函数:模拟晶体能量景观,含一个全局谷和两个局部谷def energy(x, y): g = -2.0 * math.exp(-((x - 0.7) ** 2 + (y - 0.7) ** 2) / 0.05) # 全局谷 l1 = -0.9 * math.exp(-((x - 0.2) ** 2 + (y - 0.8) ** 2) / 0.05) # 局部谷1 l2 = -0.6 * math.exp(-((x - 0.3) ** 2 + (y - 0.3) ** 2) / 0.05) # 局部谷2 slope = (x - 0.5) ** 2 * 0.4 + (y - 0.5) ** 2 * 0.4 # 背景斜坡 return g + l1 + l2 + slope def random_search(n_trials=1000): best = None best_e = 1e9 for _ in range(n_trials): x, y = random.random(), random.random() e = energy(x, y) if e < best_e: best_e = e best = (x, y) return best, best_e def fitness(ind): # 能量越低,适应度越高 return -energy(ind[0], ind[1]) def genetic_search(pop_size=40, generations=100, mut_rate=0.3): # 初始化种群:随机撒点 pop = [(random.random(), random.random()) for _ in range(pop_size)] best_ind = min(pop, key=lambda p: energy(*p)) history = [] for _ in range(generations): pop.sort(key=lambda p: energy(p[0], p[1])) if energy(*pop[0]) < energy(*best_ind): best_ind = pop[0] history.append(energy(*best_ind)) elites = pop[:8] # 精英保留 children = [] for _ in range(pop_size - len(elites)): # 锦标赛选择双亲 a = min(random.sample(pop[:20], 2), key=lambda p: energy(*p)) b = min(random.sample(pop[:20], 2), key=lambda p: energy(*p)) # 均匀交叉 child = (a[0], b[1]) # 变异 if random.random() < mut_rate: child = (child[0] + random.gauss(0, 0.1), child[1]) if random.random() < mut_rate: child = (child[0], child[1] + random.gauss(0, 0.1)) child = (max(0.0, min(1.0, child[0])), max(0.0, min(1.0, child[1]))) children.append(child) pop = elites + children return best_ind, history random.seed(42)best_r, e_r = random_search(4000)best_g, hist = genetic_search()print("随机搜索: 结构=({:.4f},{:.4f}), 能量={:.4f}".format(best_r[0], best_r[1], e_r))print("遗传算法: 结构=({:.4f},{:.4f}), 能量={:.4f}".format(best_g[0], best_g[1], energy(*best_g)))print("全局真实最优: (0.7000, 0.7000), 能量={:.4f}".format(energy(0.7, 0.7)))
def energy(x, y)定义一个含一个全局谷、两个局部谷和斜坡背景的能量函数,模拟晶体能量景观的核心特征。best = min(pop, key=lambda p: energy(*p))从初始种群中挑出能量最低的个体作为全局最优候选,等价于记录目前找到的“最稳结构”。pop.sort(key=lambda p: energy(p[0], p[1]))按能量从低到高排序,让高质量个体排在最前,便于精英保留与双亲选择。elites = pop[:8]精英保留策略:最优秀的 8 个个体直接进入下一代,确保好的基因不丢失。a = min(random.sample(pop[:20], 2), key=lambda p: energy(*p))锦标赛选择:从前 20 名中随机抽两个,留下能量更低的作为父亲,模拟大自然“更强壮者更可能繁衍”。child = (a[0], b[1])均匀交叉:子代继承父亲的 x 坐标和母亲的 y 坐标,相当于基因片段交换。child = (child[0] + random.gauss(0, 0.1), child[1])变异:以高斯分布随机扰动子代的坐标,为种群注入新基因,防止过早收敛。
常见误区
误区结构搜索找到了能量最低的结构,就相当于找到了能拿到实验室做出来的材料。我花算力找到的最优结构,为什么合成不出来?
正解能量最低是热力学上最稳定的状态,但实验合成还受动力学路径、温度压力条件、前驱物种类等因素影响。就像地图上标注了某山谷里有条最完美的矿脉,但从地表到那条矿脉之间可能隔着万米岩层——没有通路,就挖不出来。结构搜索给出的是“理想目标”,是否可合成需要结合反应路径分析和实验手段确认。
为何常见:初学者习惯把“计算最优”等同于“可实现”,忽略了计算模型只考虑了静态能量,未考虑真实实验中的动力学和热力学过程。
误区只要样本量足够大,随机搜索总能找到全局最优,所以不用浪费时间搞复杂的进化算法。我采样一百万次还找不到最优吗?
正解在高维空间中,随机采样的点几乎全部落在能量极高的区域,想要靠运气撞进极窄的深谷,概率呈指数级衰减。这就像往整个撒哈拉沙漠撒一万粒豌豆,恰好落进某个小矿石坑的概率几乎为零。演化算法和贝叶斯优化的价值正在于用“方向性”替代“盲目的运气”。
为何常见:低维世界里“采样够多总能覆盖”的直觉,在高维空间被“维度灾难”完全颠覆,初学者缺乏对指数增长的直观感知。
误区只要把搜索算法跑几千代、几万代,最终的结果一定就是全局最稳定的晶体结构。我让它跑一个月总该行了吧?
正解演化算法和随机搜索在理论上只能保证“最终收敛到局部最优或某个稳态”,不能保证全局最优。许多算法会陷入一片广阔但较浅的局部谷,怎么跑都跳不出来。猎人如果困在一座小山谷里挖十年,也只能证明这山谷里没有更深的矿——只有依靠重启、多样性维持或多起点独立搜索,才能提高遇到全局谷的概率。
为何常见:人们把“搜索时间越长,结果越好”的日常经验错误地套用到非凸优化中,忽略了算法本身的收敛性质。
面试题
Q1. 在晶体结构预测中,“构型空间”指的是什么?
- A.所有可能原子排列方式组成的空间← 正确答案
- B.单个晶胞的体积大小
- C.原子之间的化学键种类集合
- D.实验合成的温度压力范围
答案:A。构型空间是所有可能原子排布方式构成的数学空间,例如 N 个原子的三维坐标形成 3N 维空间。它像矿山的所有岩层组合;其余选项都只是描述了晶体的某一方面属性,并非构型空间的定义。
Q2. 随机搜索最突出的缺点是什么?
- A.需要计算梯度信息导致开销大
- B.高维空间中采样效率极低← 正确答案
- C.只能处理连续变量问题
- D.必须借助代理模型辅助
答案:B。随机搜索在高维空间中受“维度灾难”影响,采样点几乎都落在能量高值区域,找到深谷概率极低。撒种子式的盲目采样没有方向性,这与“需要梯度”、“只能处理连续变量”等描述无关,也不依赖代理模型。
Q3. 演化算法中,变异算子的主要作用是什么?
- A.将适应度最高的个体直接复制
- B.交换两个父代结构的基因片段
- C.随机扰动子代以维持种群多样性← 正确答案
- D.计算每个个体的能量值
答案:C。变异对子代施加随机扰动(如高斯偏移),防止种群过度同质化而陷入局部最优。复制精英是选择策略,交换基因片段是交叉算子,计算能量是评估环节,三者都不是变异的作用。
Q4. 贝叶斯优化中,采集函数的核心功能是什么?
- A.代替能量函数以减少计算量
- B.决定下一个采样点的位置← 正确答案
- C.把所有候选结构随机混合
- D.计算构型空间的维度数
答案:B。采集函数在每个迭代步综合代理模型的预测均值与不确定度,量化每个候选点“比当前最优值提升多少”的期望,并据此决定下一处勘探位置。代理模型负责拟合能量景观,采集函数负责“出谋划策”。
Q5. 多保真度预算分配策略的核心理念是什么?
- A.只用高精度方法计算所有候选结构
- B.用粗算快速初筛,精算复核候选← 正确答案
- C.让所有计算任务同时并行执行
- D.使用固定精度计算直到预算耗尽
答案:B。多保真度策略像漏斗一样,先用廉价粗算过滤大量候选,只对少量有希望的进行高精度验证。这比“全用高精度”省钱得多,也不同于“固定精度算到底”的朴素做法,与并行执行无关。
Q6. 搜索空间缩减中,“对称性商空间”直接利用了晶体的哪种性质?
- A.元素化学价守恒
- B.空间群对称操作← 正确答案
- C.原子间距最小化
- D.电子自旋极化
答案:B。空间群对称操作(旋转、镜像、平移等)会把一个结构映射为能量完全相同的等效结构,把所有等效结构合并为一个等价类,就能把搜索范围除以对称操作数。化学价、原子间距是多保真度筛选的经验约束,与商空间约化无关。
Q7. 以下哪些方法属于搜索空间缩减的常用手段?
- A.施加空间群对称性约束← 正确答案
- B.用机器学习模型排除不合理候选← 正确答案
- C.增加温度参数提高随机性
- D.基于化学价限制成键配位数← 正确答案
答案:ABD。对称性约束、机器学习预筛选和化学价约束都直接缩小了候选结构集合。而“增加温度参数”属于 Metropolis 搜索中的探索策略,目的是提高跳出的概率,并不会缩减搜索空间,反而会让采样更发散。
Q8. 关于并行搜索的 Amdahl 加速比,以下说法正确的有?
- A.加速比上限由不可并行部分决定← 正确答案
- B.核数越多加速比可以无限增长
- C.能量评估占比越高加速效果越好← 正确答案
- D.通信开销不影响实际加速比
答案:AC。Amdahl 定律指出,加速比上限为 1/(1-p),核数增加无法突破该上限,因此 B 错;能量评估是并行度最高的部分,占比越高可并行的 p 越大,加速效果越好;通信与同步开销会降低实际加速比,D 错。
Q9. 判断结构搜索已收敛的最稳妥标准是?
- A.当前能量绝对值已低于某个常数
- B.连续 K 代能量改进小于阈值 ε← 正确答案
- C.种群中所有个体完全相同
- D.已跑满预设的世代数上限
答案:B。连续多代能量改进极小,意味着继续搜索无实质收益,是标准的收敛判据。能量绝对值低只能说明当前结构好,不保证稳定;种群完全相同是“早熟”而非收敛;跑满代数只是预算用尽,与收敛无关。
Q10. 贝叶斯优化相比演化算法,以下说法正确的有?
- A.通常具有更高的样本效率← 正确答案
- B.在高维空间中更容易“迷路”← 正确答案
- C.需要梯度信息才能建模
- D.代理模型提供不确定度估计← 正确答案
答案:ABD。贝叶斯优化用代理模型捕捉能量景观,能以更少评估找到好解(样本效率高),但高斯过程等模型在高维下会退化“迷路”;代理模型不仅给预测均值还给不确定度,这是它擅长“探索-利用平衡”的根源。它不依赖梯度信息,C 错。