最佳化函數

最佳化演算法是 NAG 程式庫中最為知名的數值計算函數之一,這不難理解,因為所有的研究機構與組織中都持續需要獲得最佳化的結果!

可信賴的計算結果

NAG 開發的最佳化函數,具有完整的說明文件、精確度與計算效能;能夠讓使用者放心於函數計算的結果。如同 NAG 其他的產品,最佳化函數也具有高度的彈性 - 能夠支援各種不同套裝軟體使用,例如:MATLAB® 、Maple 與其他許多的程式語言。

許多世界上著名與受尊敬的公司和金融機構,都採用 NAG 的數值程式庫,最主要的原因就是 NAG 函數的品質與計算的精確度能夠提升他們應用系統的功能。

在金融產業中採用 NAG 的函數,能夠在現今不斷變化與波動的市場中快速開發出關鍵的商業系統。將 NAG 程式庫嵌入在金融應用系統中,分析人員與軟體工程師便能夠更專注於專業領域中,最終能夠提高工作效率與做好時間管理。

進一步了解最佳化功能

數學上的說法,所謂最佳化指的就是找到一個函數的最小或最大值。

這個函數稱之為目標函數 (objective function)。我們會用 F(x) 表示此目標函數,其中 x 一般說來是我們要求解的 n 個向量的變數。

指定為 x 的變數通常不會對其數值有限制條件,我們稱之為無限制式。

簡單的限制式問題,通常會限定其數值的範圍。例如:變數數值可能落在 [-1,1] 區間中,或者指定所有的數值為正數。

通常變數 x 的數值會由其他方式所限制,典型的限制式例子如:function G(x):A<= G(x)<=B,如果 G(x) 是線性的則此問題具有線性限制式;否則的話此問題則為非線性限制式。

也有可能符合限制式的要求是答案必須為整數,也就是說只有整數的答案才能被接受。這樣的問題稱之為整數規劃問題。NAG 主要的最佳化函數都在 E04 章節中,整數規劃函數是在 H 章節中。

滿足限制式的值稱之為合適解。

目標函數與限制式的不同型態,我們都有對應的 NAG 最佳化函數。

局部與全域最佳化

實務上,大部分的數值方法僅僅能毫無問題的計算出局部的最小或最大值。

除非目標函數具有特別的型式,否則所求取到的解只是局部的最佳解,而非所有可能解中的全域最佳解。例如:F(x) = x sin(x),求解區間為 [0,4pi]。 1.5pi 是局部的最小值最佳解,F(x) 為 -1.5pi;但是最小值最佳解是 x=3.5*pi,F(x) 為 -3.5pi。

若使用者無法滿足局部最小或最大值解,那麼勢必要轉為使用全域最佳化函數。通常,這樣的計算問題將更為困難。

如果可以找到最佳解,則可以減少很多的成本與提高企業的利潤,所以往往企業界願意投入更多的計算時間來求出更好的最佳化解。 通常,他們會在求解局部解中,透過亂數再次進行搜尋。然而,我們避免了這樣的方法,而是導入了一個更有系統的搜尋演算法 - 基於局部最佳化求解方法,但是敏捷的搜尋與探索其他的可能區域。