优化报告
Optimization Report 用于判断本次优化是否真正完成、报告中的最优解是否可信,以及该最优解是否适合回写到当前结构。
本章重点
本章覆盖三项内容:
Overview / Best Solution / Search History / Optimization Configuration四个模块的读取重点。- 最优值、搜索证据与实际搜索规模的对应关系。
Apply to Structure之前的复核要点。
示例配置:默认单变量厚度优化
本章采用软件当前的默认优化器配置,不额外添加目标,也不额外增加变量。这样用户第一次打开 Optimizer 页面即可直接复现同类结果。
这组基线案例的设置是:
Structure保持默认结构:Air-in -> ITO (40 nm) -> Substrate (1 um, Incoherent) -> Air-out。Optimizer保持默认目标:Target = Reflection (R),Direction = Maximize,单波长550 nm,Angle = 0°,Aggregation = Average,pRatio = 0.5。- 保持默认变量:
structure/ITO/thickness,搜索区间10 -> 200 nm。 - 保持默认算法参数:
Max Evaluations = 50,Optimization Precision = 1,Candidate Count = 3。 - 点击顶部
Run Optimizer。
优化器采用固定三阶段网格搜索(coarse -> local -> fine)。对这组单变量默认配置,结果稳定,适合作为第一组优化器基线案例。


结果结构
Optimization Report 页面包含以下四个模块:
| 模块 | 是否显示 | 用途 |
|---|---|---|
Overview | 是 | 快速汇总最佳适应度、耗时、代数和完成时间 |
Best Solution | 是 | 列出最优变量及其数值,并支持回写结构 |
Search History | 是 | 显示每次评估的阶段、适应度和参数组合 |
Optimization Configuration | 是 | 显示本次求解实际采用的粗扫/局部/精扫配置 |
后端结果结构包含 convergenceHistory,但本页不提供独立的“收敛曲线”图;当前界面是“卡片 + 表格”结构。
Overview
Overview 是第一层筛选区。它不负责给出最优解细节,而负责判断这次运行是否值得继续分析。
当前概览卡片包括:
| 指标 | 含义 | 典型用途 |
|---|---|---|
Best Fitness | 当前找到的最优适应度 | 判断目标达成程度 |
Execution Time | 优化总耗时 | 估算计算成本 |
Generations | 报告中的评估轮次/代数计数 | 判断搜索规模是否符合预期 |
Completed At | 优化完成时间戳 | 做批次对照与记录 |

优先检查项
优先检查:
Best Fitness是否已经明显优于初始设计。Execution Time是否在你可接受的计算成本内。Generations是否和你预期的算法预算量级相符。
只有这三项都合理,才有必要继续阅读后续模块。
Best Solution
Best Solution 是最直接的工程输出。它列出当前最优变量路径及其对应数值。
对本章示例,页面只显示一个变量:
structure.ITO.thickness
这条记录表示本次优化只改动 ITO 层厚度,其余参数保持不变。

参数路径解释
当前页面中的参数名使用的是“完整参数路径”展开后的显示形式:
| 路径示例 | 含义 |
|---|---|
structure.ITO.thickness | 顶层结构中 ITO 层的厚度 |
structure.<LayerName>.n | 某层的折射率实部 |
surroundings.transmission.n | 透射侧环境介质折射率 |
这里显示的参数名应当能直接映射回 Optimizer 页中设置的变量路径。
何时使用 Apply to Structure
Apply to Structure 的用途是:把当前最优变量值直接写回模型。
建议在点击前做两步确认:
- 先确认该值在工艺上可制造。
- 回写后再执行一次普通
Run,确认目标改善不是偶然读数或界面残留状态。
不要把“报告中最优”直接等同于“最终设计可用”。标准流程是:回写、复算、再做物理结果复核。
Search History
Search History 记录每次被评估的候选点,而不是单独的“收敛曲线”。
表格中最关键的三列是:
| 列 | 含义 | 使用重点 |
|---|---|---|
Stage | 当前候选点属于 coarse / local / fine 哪个阶段 | 判断算法进行到哪一步 |
Fitness | 该候选点的适应度 | 比较不同候选点优劣 |
Parameters | 该候选点对应的参数组合 | 观察搜索是否集中到某一局部区间 |

三阶段解释
当前实现的三阶段搜索逻辑可以这样理解:
Coarse:大范围粗扫,先找到大致可行区间。Local:围绕粗扫得到的候选中心做局部细化。Fine:在更小范围内进一步精修。
因此:
- 如果你只看到大量
Coarse记录,而几乎没有后两阶段,通常说明预算太小或搜索提前结束。 - 如果
Local / Fine阶段已经出现,说明算法已经开始在较小范围内细化。
关键工程检查
对工程设计而言,这张表的核心作用是判断搜索是否逐步收缩到合理区间:
Coarse阶段是否覆盖了整个变量边界。- 后续阶段是否围绕更窄的区间继续搜索。
- 最优值是否落在这些后期集中区域内。
如果搜索历史在整个区间内始终很分散,通常说明目标面较平、预算不足,或变量本身对目标不敏感。
Optimization Configuration
Optimization Configuration 记录本次运行实际采用的搜索配置。
它当前会列出:
Coarse Sample PointsCoarse Candidate CountLocal Grid PointsLocal Search RadiusFine Grid PointsFine Search RadiusTotal Evaluation CountMax Evaluations

Total Evaluation Count 与 Max Evaluations
这两个字段不要混为一谈:
Max Evaluations是你在Optimizer页中设置的用户预算。Total Evaluation Count是报告中记录的实际执行评估次数。
这两个数字可能不完全一致。若出现差异:
- 把
Total Evaluation Count视为本次运行真实消耗的评估量; - 把
Max Evaluations视为用户输入的预算目标; - 以报告中的实际执行量为准,评估性能成本和可重复性。
因此,仅查看输入框不足以判断优化成本,必须结合报告页复核。
阅读顺序
要快速判断一轮优化是否值得保留,建议固定按下面顺序读:
Overview:先判断是否有继续分析的必要。Best Solution:确认最优变量和值。Search History:确认搜索确实经历了由粗到细的收缩。Optimization Configuration:确认真实搜索规模和预算是否合理。- 必要时点击
Apply to Structure,然后回到物理结果页重新验证。
该顺序对应三项检查:结论是否成立、搜索证据是否充分、是否适合落地。
常见错误与检查
页面显示 No data
优先检查:
- 是否真的执行了
Run Optimizer。 - 当前
Optimizer配置是否通过了顶部工具栏的校验。 - 是否至少保留了 1 个目标和 1 个变量。
页面显示优化失败
当前页会优先显示错误状态,而不是空白页面。此时应回查:
- 变量边界是否有效(
min < max)。 - 变量路径是否仍然指向现有结构项。
- 目标设置是否与结构/波长模式冲突。
没有独立收敛曲线
本页没有单独绘制 convergenceHistory 曲线。过程信息以 Search History 和概览卡片为准;后续若新增该图,文档再同步更新。
最优解不稳定
处理顺序:
- 点击
Apply to Structure。 - 回到
Reflectance / Transmittance / Absorptance等物理结果页重新运行。 - 检查改写后的实际物理响应是否与优化目标一致。
只有“回写后复算仍成立”的解,才是可继续推进的候选设计。
下一步
到这里,Phase 4 的结果章节已经覆盖系统级结果、颜色结果、椭偏结果、深度分布和优化结果。下一步进入理论章节,用更明确的物理模型解释这些结果的成因。