因此,人們會(huì)期望兩個(gè)幾乎完全相同的初始結(jié)構(gòu)將達(dá)到相同的局部最小值,即使它不是全局的。 當(dāng)前算法在此優(yōu)化上的表現(xiàn)如何? TU Delft的Florian Bociort博士發(fā)現(xiàn)了一些非常有趣的結(jié)果。 他做了一個(gè)很簡(jiǎn)單的例子,如下圖所示。
我們認(rèn)為SYNOPSYS中的PSD算法比上面的方法更可靠和穩(wěn)定,因此我們?cè)?參數(shù)評(píng)估功能PA3上設(shè)置了運(yùn)行。 這是輸入:
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) 使用更精細(xì)的網(wǎng)格(118x118點(diǎn))
PA3 LOOP COLOR ! initialize PA3, request color boxes for output初始化PA3,設(shè)置輸出顏色框
RZ1 -.025 .04 ! set the range of variable Z1設(shè)置變量Z1的范圍
RZ2 -.045 .075 ! set the range of Z2設(shè)置Z2的范圍
RZ3 0 5.5 ! display results over this range of merit function values
在此評(píng)價(jià)函數(shù)值范圍內(nèi)顯示結(jié)果
NOSMOOTH ! there will be steps in the output; do not smooth
按步輸出; 結(jié)果不會(huì)很平滑
XLAB "2 CV -.025 .04" ! define the label for the X-axis, which is variable Z1
定義X軸的標(biāo)簽,即變量Z1
YLAB "3 CV -.045 .075" ! label for Y-axis, Z2 Y軸,Z2的標(biāo)簽
ZLAB "MERIT" ! label for Z-axis, the final merit function Z軸的標(biāo)簽,最終的評(píng)價(jià)函數(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每次都得到初始結(jié)構(gòu)的始鏡頭
2 CV = Z1 ! set curvature 2 to the value of variable Z1將曲率2設(shè)置為變量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 兩個(gè)不同的半徑
END
! end of the variable list 變量列表的結(jié)尾
AANT ! initialize the merit function definition初始化評(píng)價(jià)函數(shù)定義
GSR .5 10 3 P 0 ! correct a sagittal fan, three rays, on axis 在軸上修正一個(gè)光扇圖,三條光光線
GNR .5 1 3 P .75 ! correct a full grid of rays, primary color, 0.75 field point
校正完整的光線網(wǎng)格,原色,0.75視場(chǎng)點(diǎn)
GNR .5 1 3 P 1 ! same, at full field. 全區(qū)域相同
END ! end of merit function definition 評(píng)價(jià)函數(shù)定義結(jié)束
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)到下一個(gè)案例。
! tell PA3 to cycle to the next case. 告訴PA3循環(huán)到下一個(gè)案例。
為什么需要高阻尼? (默認(rèn)值為1.0或0.01,具體取決于模式切換。)SYNOPSYS中的第一次迭代是用DLS(阻尼 - 最小二乘法)循環(huán)法,我們希望避免在該算法的第一次傳遞時(shí)產(chǎn)生的任何混亂; 高阻尼將確保鏡頭在該過程中變化很小。 更強(qiáng)大的PSD算法追跡從傳遞到傳遞的一階導(dǎo)數(shù)的變化,并推導(dǎo)出關(guān)于高階導(dǎo)數(shù)的信息。 這是PSD方法背后的技巧,但它只能在第二遍開始。
該研究的結(jié)果如下所示。 左側(cè)和底部附近的紫色區(qū)域顯示該程序在不同的初始點(diǎn)上達(dá)到相同的最小值 - 而在Florian的研究中,這些區(qū)域達(dá)到了不同的最小值。 在相交的邊界沒有明顯的混亂,正如我們所期望的那樣,PSD方法就是這種情況,盡管在中央綠色區(qū)域出現(xiàn)了散亂的極點(diǎn)。 我們將后者歸因于第一遍中DLS方法所做的非零更改。 實(shí)際上,如果我們用不同的初始阻尼再次運(yùn)行,那些隨機(jī)點(diǎn)出現(xiàn)在不同的地方。
頂部和底部的黑色區(qū)域顯示了起點(diǎn)產(chǎn)生光線失效的位置,與他們?cè)贔lorian研究中所做的相同。 我們很好奇如果我們激活僅在SYNOPSYS™中發(fā)現(xiàn)的自動(dòng)光線故障校正功能會(huì)發(fā)生什么。 我們將SYNOPSYS命令更改為
現(xiàn)在我們看到該程序已經(jīng)糾正了之前發(fā)生過的每一個(gè)故障。Florian無法優(yōu)化的初始鏡頭現(xiàn)在都能產(chǎn)生可觀的解決方案。 現(xiàn)在,在以前全黑的區(qū)域的邊界處有一些非常輕微的混亂,我們將其歸因于更改了光線失效校正程序?qū)υ撈瘘c(diǎn)的影響。 這些變化有時(shí)會(huì)使鏡頭更接近另一個(gè)相交的區(qū)域。