因此,人們會期望兩個幾乎完全相同的初始結構將達到相同的局部最小值,即使它不是全局的。 當前算法在此優(yōu)化上的表現(xiàn)如何? TU Delft的Florian Bociort博士發(fā)現(xiàn)了一些非常有趣的結果。 他做了一個很簡單的例子,如下圖所示。
Starting doublet:
RLE
ID FLORIAN STARTING DOUBLET
WA1 .5876000
WT1 1.00000
APS 1
UNITS MM
OBB 0.000000 3.00000 16.66670 0.00000 0.00000 0.00000 16.66670 0 AIR
1 CV 0.0146498673770 TH 10.34600000
1 N1 1.61800000
1 GID 'GLASS '
2 RAD -174.6512432672814 TH 1.00000000 AIR
2 AIR
3 RAD -80.2251653581521 TH 2.35100000
3 N1 1.71700000
3 GID 'GLASS '
4 RAD -111.8857786363961 TH 92.41206276 AIR
4 AIR
4 CV -0.00893769
4 UMC -0.16667000
4 TH 92.41206276
4 YMT 0.00000000
5 CV 0.0000000000000 TH 0.00000000 AIR
5 AIR
END
STORE 5
And this is the input for the PA3 program):
ON 78 ! use finer grid (118x118 points) 使用更精細的網(wǎng)格(118x118點)
PA3 LOOP COLOR ! initialize PA3, request color boxes for output初始化PA3,設置輸出顏色框
RZ1 -.025 .04 ! set the range of variable Z1設置變量Z1的范圍
RZ2 -.045 .075 ! set the range of Z2設置Z2的范圍
RZ3 0 5.5 ! display results over this range of merit function values
在此評價函數(shù)值范圍內顯示結果
NOSMOOTH ! there will be steps in the output; do not smooth
按步輸出; 結果不會很平滑
XLAB "2 CV -.025 .04" ! define the label for the X-axis, which is variable Z1
定義X軸的標簽,即變量Z1
YLAB "3 CV -.045 .075" ! label for Y-axis, Z2 Y軸,Z2的標簽
ZLAB "MERIT" ! label for Z-axis, the final merit function Z軸的標簽,最終的評價函數(shù)
LOOP
! tell PA3 to loop over the above raster of data告訴PA3循環(huán)上面的數(shù)據(jù)柵格
GET 5 ! get the starting lens each time每次都得到初始結構的始鏡頭
2 CV = Z1 ! set curvature 2 to the value of variable Z1將曲率2設置為變量Z1的值
3 CV = Z2 ! and CV 3 to Z2, using the artificial-intelligence parser
CV 3到Z2,使用人工智能解析器
PANT ! initialize the variable list初始化變量列表
VLIST RAD 2 3 ! and vary two radii 兩個不同的半徑
END
! end of the variable list 變量列表的結尾
AANT ! initialize the merit function definition初始化評價函數(shù)定義
GSR .5 10 3 P 0 ! correct a sagittal fan, three rays, on axis 在軸上修正一個光扇圖,三條光光線
GNR .5 1 3 P .75 ! correct a full grid of rays, primary color, 0.75 field point
校正完整的光線網(wǎng)格,原色,0.75視場點
GNR .5 1 3 P 1 ! same, at full field. 全區(qū)域相同
END ! end of merit function definition 評價函數(shù)定義結束
DAMP 10000 ! initial damping (see below) 初始阻尼(見下文)
SNAP 50 ! watch what happens, but not too often, in order to keep it fast
觀察發(fā)生狀況,但不要太頻繁,以保持高效
SYNOPSYS 100 ! optimize until it converges 優(yōu)化到收斂
Z3 = MERIT ! assign the current merit function value to variable Z3 PA3 告訴PA3循環(huán)到下一個案例。
! tell PA3 to cycle to the next case. 告訴PA3循環(huán)到下一個案例。
為什么高阻尼? (默認值為1.0或0.01,具體取決于模式切換。)SYNOPSYS中的第一次迭代是用DLS(阻尼 - 最小二乘法)循環(huán)法,我們希望避免在該算法的第一次傳遞時產生的任何混亂; 高阻尼將確保鏡頭在該過程中變化很小。 更強大的PSD算法追跡從傳遞到傳遞的一階導數(shù)的變化,并推導出關于高階導數(shù)的信息。 這是PSD方法背后的技巧,但它只能在第二遍開始。
該研究的結果如下所示。 左側和底部附近的紫色區(qū)域顯示該程序在不同的初始點上達到相同的最小值 - 而在Florian的研究中,這些區(qū)域達到了不同的最小值。 在相交的邊界沒有明顯的混亂,正如我們所期望的那樣,PSD方法就是這種情況,盡管在中央綠色區(qū)域出現(xiàn)了散亂的極點。 我們將后者歸因于第一遍中DLS方法所做的非零更改。 實際上,如果我們用不同的初始阻尼再次運行,那些隨機點出現(xiàn)在不同的地方。
頂部和底部的黑色區(qū)域顯示了起點產生光線失效的位置,與他們在Florian研究中所做的相同。 我們很好奇如果我們激活僅在SYNOPSYS™中發(fā)現(xiàn)的自動光線故障校正功能會發(fā)生什么。 我們將SYNOPSYS命令更改為
現(xiàn)在我們看到該程序已經糾正了之前發(fā)生過的每一個故障。Florian無法優(yōu)化的初始鏡頭現(xiàn)在都能產生可觀的解決方案。 現(xiàn)在,在以前全黑的區(qū)域的邊界處有一些非常輕微的混亂,我們將其歸因于更改了光線失效校正程序對該起點的影響。 這些變化有時會使鏡頭更接近另一個相交的區(qū)域。