1. 全局优化概述:什么是全局优化?为什么需要全局优化?

各位同学好,欢迎来到《Code V 全局优化与局部优化策略实战》的第一章。

做光学设计这些年,我见过太多新手一上来就点「优化」,然后盯着 MTF 曲线发呆。为什么?因为优化器给出的结果,往往不是最好的那个。今天我们就来聊聊这个核心问题——全局优化到底是什么,以及它和局部优化有什么本质区别。

1.1 从一个简单例子说起

想象你站在一座连绵的山脉中,任务是找到整个山脉的最低点。

  • 局部优化:你只看得见脚下几米的范围,顺着坡度往下走,走到一个谷底就停了。但这个谷底,可能只是群山中的一个小洼地,旁边还有更深的大峡谷。
  • 全局优化:你有一张「直升机视角」的地图,能看到所有山峰和山谷的分布,然后直接锁定那个最深的峡谷。

在光学设计里,这个「最低点」就是我们的评价函数最小值——也就是像质最好的那个解。

核心概念:全局优化 ≠ 局部优化 + 多跑几次。它们是两种完全不同的搜索策略。

1.2 为什么需要全局优化?

我刚开始做设计时,总觉得局部优化就够了。直到有一次,做一个 4 片式的投影镜头,局部优化跑了整整一个晚上,MTF 卡在 0.45 上不去。后来改用全局优化,只用了 20 分钟,就找到了一个结构完全不同的解,MTF 直接干到 0.6。

为什么会这样?因为光学系统的评价函数空间,实在太复杂了。

特性 局部优化 全局优化
搜索范围 当前解附近 整个变量空间
对初始结构依赖 极高 低
跳出局部极值能力 无 有
计算时间 短(分钟级) 长(小时级)
适用场景 微调、公差敏感度低 初始结构搜索、突破性能瓶颈

说白了,局部优化是「爬山」,全局优化是「勘探」。你想想看,如果一开始就选错了山头,再怎么爬也到不了最高峰。

1.3 全局优化与局部优化的核心区别

嗯,这里要注意,很多人把「多跑几次局部优化」当成全局优化,这是不对的。

我给大家画一张图,一看就明白:

全局优化 vs 局部优化:搜索策略对比 局部优化 初始结构 A (起点) 局部极值 B (卡住,无法跳出) 特点: • 只沿梯度下降方向搜索 • 遇到极值就停止 • 结果依赖初始结构 • 速度快,但容易陷入局部最优 全局优化 起点1 起点2 起点3 全局最优解 C (跳出局部陷阱,找到真正最优) 特点: • 同时探索多个区域 • 能跳出局部极值 • 对初始结构不敏感 • 速度慢,但解的质量高 核心区别:局部优化「找得准」,全局优化「找得全」

1.4 Code V 中的全局优化实现

在 Code V 里,全局优化主要通过 Global Synthesis 功能实现。我个人习惯把它叫做「全局合成」,因为它不是简单地在局部优化上加个循环,而是有一套完整的搜索策略。

小提示:Code V 的全局优化引擎,内部使用了多种算法组合——模拟退火、遗传算法、自适应搜索等。你不需要全部搞懂,但要知道它「为什么能跳出局部极值」。

一个典型的全局优化流程是这样的:

  1. 定义变量:曲率半径、厚度、玻璃材料、非球面系数等
  2. 设置约束:焦距、后焦、总长、畸变、相对照度等
  3. 启动 Global Synthesis:Code V 会自动生成多个初始结构
  4. 并行搜索:同时探索评价函数空间的不同区域
  5. 收集候选解:输出多个「好解」供你选择
  6. 局部精修:对选中的候选解做局部优化,达到最终性能

避坑指南:我曾经犯过一个错误——全局优化跑完后,直接拿第一个结果去加工。结果发现公差敏感度极高,稍微有点装配误差,MTF 就掉了一半。后来我才明白,全局优化找到的「最优解」,不一定是最「稳健」的解。一定要结合公差分析来筛选候选解。

1.5 什么时候该用全局优化?

不是所有项目都需要全局优化。我给大家一个判断标准:

场景 推荐策略 原因
已有成熟结构,只需微调 局部优化 速度快,足够满足需求
全新设计,没有参考结构 全局优化 需要探索多种可能性
性能卡在瓶颈,局部优化无效 全局优化 需要跳出当前局部极值
设计自由度极高(如自由曲面) 全局优化 变量空间太大,局部优化容易迷失
时间紧迫,需要快速出方案 先用全局优化找结构,再用局部优化精修 组合策略效率最高

你想想看,如果一个设计只有 3-5 个变量,局部优化完全够用。但如果是 20 个以上的变量,再加上非球面、自由曲面,局部优化基本就是在碰运气。

1.6 本章小结

全局优化不是万能的,但没有全局优化是万万不能的。我个人的经验是:先用全局优化找到「对的区域」,再用局部优化找到「对的点」。两者是互补关系,不是替代关系。