渐进演化(GE)
渐进演化(Gradual Evolution,GE) 是最强大的合成工具。它先运行针式优化达到局部最优,然后刻意强制插入一个针式层,即便这会短暂抬高评价函数,再对新状态进行精炼。强制进行一次“上坡”步骤,正是让设计能够爬出普通针式插入无法逃脱的局部极小值的原因。它会持续记录所见过的最佳设计,因此在结束时,会恢复评价函数最低的结果,并且你可以回顾它经历过的整系列设计。
每个外层循环会先运行一轮内层针式扫描达到针式最优,强制插入当前最佳可用的针式层(无论评价函数是否上升),进行精炼,然后剪除低于阈值的层并合并相邻同材料层。这一过程会按你设定的循环次数重复。波段目标采样所用的波长网格按设计确定大小,并在运行过程中随设计一起增长(见 操作数参考)。
如果强制加入的层与它所落在的外层是同一种材料,它只会使该外层变厚,而随后的精炼可能直接把这部分厚度收回。出现这种情况时,渐进演化不会在同一结构上再走同样的一步:下一次强制步骤会换用另一种材料或堆栈的另一端。
最大膜层数限制设计最多可以包含的层数;达到这一上限并不会结束运行。在上限处,渐进演化只接受放得下的针式层;当这些针式层都不能改进设计时,它会腾出一层:移除代价最小的那一层,进行精炼,再让针式插入把一层放到更合适的位置。每次腾出都显示为一条 清理 行,并且对它留下的每种结构,每次运行只尝试一次。当运行用完 最大渐变演化循环数、达到 目标评价函数,或者再也没有可尝试的强制步骤或腾出操作时,运行结束。停止 可随时结束运行,并保留已找到的最佳设计。
深度搜索 让运行在没有可尝试的步骤时继续进行。渐进演化不会结束运行,而是从最佳设计出发,扰动每个未锁定层的厚度,进行精炼,再从那里继续进行针式插入、强制步骤和腾出操作。新的最佳设计出现后的第一次扰动较小,每个厚度的变化不超过 10%;每次没有找到更好设计的扰动,幅度都加倍,最大到 80%,之后又从小幅度重新开始。每次扰动都显示为一条 扰动 行。开启深度搜索后,最大渐变演化循环数 不再适用:运行只在达到 目标评价函数 或你点击 停止 时结束,并保留已找到的最佳设计。
峰峰误差(PPEF)行以及引用它的数学行,不参与针式扫描,也不参与其间的精炼,因此这里显示的评价函数不计入它:它的梯度只来自误差最大和最小的两个波长,针式搜索会因此停滞。渐进演化改为拟合曲线块,设置下方有一行提示说明这一点,之后运行一次 精炼 即可把峰峰误差降下来。
候选材料:渐进演化可以插入的材料池。材料池一开始只勾选设计中前、后表面膜层所用的材料;基底和介质列在**此设计(This design)下但不勾选,其他目录也都不勾选。全部(All)/ 清空(Clear) 可一键选中或清空该材料池。你一旦改动材料池,窗口就会对所有设计保留你的选择,只是每个设计的基底和介质在你于该设计上勾选之前保持不勾选;用清空(Clear)**清空的材料池,在下次打开窗口时重新从设计自身的材料开始。
最大膜层数:设计最多可以包含的层数(见上文)。
目标评价函数:一旦评价函数达到该值即停止(0 表示跑完所有循环)。
深度搜索:一直搜索,直到点击 停止 或达到 目标评价函数(见上文)。
高级部分暴露了合成调参项:
精炼迭代/代:每次候选插入所做的精炼,分两遍进行,第二遍的步数减半。保留厚种子主体结构时(种子模式),每一遍最多 15 步。
dMin(nm):插入下限与剪除阈值。渐进演化在强制步骤中可以将厚度推到最小厚度限制以下,这正是它逃离紧凑极小值的方式之一。只有在层被拆开后的两部分都不低于该下限的位置,才会提出层内针式层,并且每一层扫描 16 个位置。被精炼压到下限上的层,只要针式插入仍在改进设计,就会保留。当针式插入不再改进设计时,渐进演化会在强制步骤之前,对去掉这些处于下限的层的设计进行精炼,只有当它优于迄今最佳设计时才保留该版本;它在设计序列中显示为 清理 行。
最大渐变演化循环数:运行总共可以进行多少次强制步骤和腾出操作;除非开启深度搜索,长时间运行正是由它结束。通常为 20–60。
内层精炼器:在步骤之间精炼堆栈所用的方法。可选方法见 优化方法。
候选搜索:每一步探索改进候选的彻底程度(快速、均衡或彻底)。
种子模式:在生长之前,是先精炼起始堆栈,还是保留其主体结构,这在你从一个较厚的种子设计开始时很重要。
设计序列是一张可排序的表格,列出运行所记录的设计,每个设计都带有其评价函数和层数。帕累托图(Pareto chart) 将评价函数对层数作图。寻找“拐点(knee)”,即继续增加层数已无法带来明显改善之处,而不是一味追求绝对最低的评价函数。最佳(Best) 会恢复有史以来最好的设计,你也可以从序列中恢复(Restore) 任意更早的状态。
你有时可能只看到序列中的针式行而没有强制步骤行。这是正常的:渐进演化只有在内层针式循环耗尽后才会强制进行一次步骤,因此只要普通的针式插入仍在持续改进设计,它就会停留在该循环内部。
针法 行表示一个作为独立膜层留在堆栈中的针式层。若针式层与相邻层是同一种材料,它会并入该层,这一步只改变已有各层的厚度。如果紧挨在前面的 针法 行或 精炼 行是本次运行自上次开始或继续以来记录的,这样的一步会更新该行;否则,当它给出迄今最佳的设计时,它单独显示为一条 精炼 行,不是最佳时则不留行。渐变演化 行显示的是强制步骤刚完成时的设计。
更大的候选池(三到六种材料)往往比单纯允许更多层数更有效。在 both_independent 表面模式下,它会同时生长两侧。
- Tikhonravov, Trubetskov & DeBell, Appl. Opt. 46, 704 (2007).
- Sullivan & Dobrowolski, Appl. Opt. 35, 5484 (1996).
- Wales & Doye, J. Phys. Chem. A 101, 5111 (1997).