Zemax中的優化算法

今天看到的解釋Zemax中兩種優化算法的總結,個人覺得不錯。


優化使通過改變系統參數值,使評價函數減小,提高系統性能的過程。 

在zemax中目前有兩種優化算法:Damped Least Square(DLS)和Orthogonal Descent(OD)。 

DLS使用數值微商計算來確定更小的評價函數的方向,這種漸變的連續改變評價函數的方式被廣泛應用於所有的成像系統的優化當中。 

然而在純非序列優化中,DLS很少起作用,這是因爲非序列中的評價數據都是用Detector測試的,detector是由一系列pixel組成的,每個pixel上的值是不連續的,此時DLS的連續漸變評價方法就失效了。OD優化使用變量正交化與pixel離散採樣來降低評價函數值。 

對於OD算法,zemax給定了幾個功能提高對NS(non-sequential) 系統的優化。NS解空間由於detector的pixel量子化而趨於非連續,如果給定光能量分配到僅僅一個pixel內,那麼當系統改變引起光線在該pixel內漂移時不會引起量的改變。而一旦此光線穿越pixel邊界進入下一個pixel時,便會導致評價函數突然變動成爲不連續微商,使得優化變得異常困難。 

解決這一問題的方法是pixel插值,它不使光線能量的100%指派給單一pixel,而是根據光線的位置插入pixel把部分能量分配到臨近pixel內。這時系統發生改變時,評價函數由於光線穿越pixel移動而發生明顯改變。通過 Use Pixel Interpolation來實現插值後,發現這時候使用DLS就方便多了。優化過程中可以使用NSDD和NSDC操作數來計算非相干和相干數據。 

問題來了,對於NS系統通過pixel interpolation可以使用DLS優化,那麼對於成像系統能不能用OD算法優化呢?答案是肯定的。但一把對於成像系統,OD算法還是有限制的。比如我們拿到一個初始結構,發現像差較大,這個時候就可以用OD。用OD優化到一定程度之後,發現評價函數下降非常慢了,這個時候就有必要改用DLS算法優化了。

DLS算法優化是很難掌握的技巧。DLS優化的實質,就是求解多元方程組,由於方程的數量和變量的數量並不是一致的。一般情況下方程數量比變量多,因此優化就是求解不定方程,使解的均方根最小最穩定。要求最合理的解,就需要對光學系統有很深入的瞭解,建立的方程(評價函數)之間最好沒有衝突,也就是說各個方程約束之間存在線性關係。很多時候不收斂,優化速度慢,就是因爲建立的方程之間存在衝突。對於光學系統來說,到底建立怎樣的方程組纔算是最速下降的最優方案,這個很難,但是我們可以用以下經驗來尋求優化:

1、拿到一個初始結構之後,首先用一階光學和結構要求作爲評價函數,進行優化

2、優化進行到一定程度之後,基本光學性能和結構要求都滿足了,也就意味着方程組的解已經被限定在一定範圍內了。這時候可以降低某些方程的權重,甚至去掉它們,以像質優化和主要矛盾做考慮。

也就是說,光學系統的優化並不是說優化操作數擺越多越好。深入瞭解系統特性,在優化過程中隨時調整評價函數(調整方程之間的線性關係),以加快收斂速度,提高工作效率。 

不過據說新版zemax加入了Genetic Algorithm(GA)算法,使得其全局優化的性能更加強悍,期待有人分享。

原文鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章