1. 全局优化概述:什么是全局优化?为什么需要全局优化?
各位同学好,欢迎来到《Code V 全局优化与局部优化策略实战》的第一章。
做光学设计这些年,我见过太多新手一上来就点「优化」,然后盯着 MTF 曲线发呆。为什么?因为优化器给出的结果,往往不是最好的那个。今天我们就来聊聊这个核心问题——全局优化到底是什么,以及它和局部优化有什么本质区别。
1.1 从一个简单例子说起
想象你站在一座连绵的山脉中,任务是找到整个山脉的最低点。
- 局部优化:你只看得见脚下几米的范围,顺着坡度往下走,走到一个谷底就停了。但这个谷底,可能只是群山中的一个小洼地,旁边还有更深的大峡谷。
- 全局优化:你有一张「直升机视角」的地图,能看到所有山峰和山谷的分布,然后直接锁定那个最深的峡谷。
在光学设计里,这个「最低点」就是我们的评价函数最小值——也就是像质最好的那个解。
核心概念:全局优化 ≠ 局部优化 + 多跑几次。它们是两种完全不同的搜索策略。
1.2 为什么需要全局优化?
我刚开始做设计时,总觉得局部优化就够了。直到有一次,做一个 4 片式的投影镜头,局部优化跑了整整一个晚上,MTF 卡在 0.45 上不去。后来改用全局优化,只用了 20 分钟,就找到了一个结构完全不同的解,MTF 直接干到 0.6。
为什么会这样?因为光学系统的评价函数空间,实在太复杂了。
| 特性 | 局部优化 | 全局优化 |
|---|---|---|
| 搜索范围 | 当前解附近 | 整个变量空间 |
| 对初始结构依赖 | 极高 | 低 |
| 跳出局部极值能力 | 无 | 有 |
| 计算时间 | 短(分钟级) | 长(小时级) |
| 适用场景 | 微调、公差敏感度低 | 初始结构搜索、突破性能瓶颈 |
说白了,局部优化是「爬山」,全局优化是「勘探」。你想想看,如果一开始就选错了山头,再怎么爬也到不了最高峰。
1.3 全局优化与局部优化的核心区别
嗯,这里要注意,很多人把「多跑几次局部优化」当成全局优化,这是不对的。
我给大家画一张图,一看就明白:
1.4 Code V 中的全局优化实现
在 Code V 里,全局优化主要通过 Global Synthesis 功能实现。我个人习惯把它叫做「全局合成」,因为它不是简单地在局部优化上加个循环,而是有一套完整的搜索策略。
小提示:Code V 的全局优化引擎,内部使用了多种算法组合——模拟退火、遗传算法、自适应搜索等。你不需要全部搞懂,但要知道它「为什么能跳出局部极值」。
一个典型的全局优化流程是这样的:
- 定义变量:曲率半径、厚度、玻璃材料、非球面系数等
- 设置约束:焦距、后焦、总长、畸变、相对照度等
- 启动 Global Synthesis:Code V 会自动生成多个初始结构
- 并行搜索:同时探索评价函数空间的不同区域
- 收集候选解:输出多个「好解」供你选择
- 局部精修:对选中的候选解做局部优化,达到最终性能
避坑指南:我曾经犯过一个错误——全局优化跑完后,直接拿第一个结果去加工。结果发现公差敏感度极高,稍微有点装配误差,MTF 就掉了一半。后来我才明白,全局优化找到的「最优解」,不一定是最「稳健」的解。一定要结合公差分析来筛选候选解。
1.5 什么时候该用全局优化?
不是所有项目都需要全局优化。我给大家一个判断标准:
| 场景 | 推荐策略 | 原因 |
|---|---|---|
| 已有成熟结构,只需微调 | 局部优化 | 速度快,足够满足需求 |
| 全新设计,没有参考结构 | 全局优化 | 需要探索多种可能性 |
| 性能卡在瓶颈,局部优化无效 | 全局优化 | 需要跳出当前局部极值 |
| 设计自由度极高(如自由曲面) | 全局优化 | 变量空间太大,局部优化容易迷失 |
| 时间紧迫,需要快速出方案 | 先用全局优化找结构,再用局部优化精修 | 组合策略效率最高 |
你想想看,如果一个设计只有 3-5 个变量,局部优化完全够用。但如果是 20 个以上的变量,再加上非球面、自由曲面,局部优化基本就是在碰运气。
1.6 本章小结
全局优化不是万能的,但没有全局优化是万万不能的。我个人的经验是:先用全局优化找到「对的区域」,再用局部优化找到「对的点」。两者是互补关系,不是替代关系。