測試函式: Ackely,Rastrigin,Griewangk,SumSquartes,Sphere,Quartic,Schwefel' Problem 12等
參考:《基於群智慧優化理論的聚類改進方法及應用研究》
1.Ackely函式
(1)函式的圖形
(2)測試函式的意義: 一個多維度的點在使用梯度方法尋優的時候,往往是有多個方向的。
該函式:檢測一個演算法的全域性收斂速度。 維度增加的時候,它的方向梯度,前進的方向是各種各樣的
(3)全域性最小值f(x) =0
2.Rastrigin 函式
(1)影象
(2)此函式是基於De Jong函式,增加了一個餘弦調製傳遞函式來產生頻繁的區域性最小值
特點: 極小值的位置是有規律的
用來檢測在解有規律的一種情況,演算法的實用性。 這個主要的為了檢測演算法的什麼能力???還是隻單單的說明一種情況?
3.Griewangk 函式
(1)影象
(2)函式解釋隨著量變而改變,函式的真個資料分佈中存在大量區域性極值.。檢測演算法跳出區域性的能力
(3)全域性最小值 f(0) = 0
4.Sum Squares函式
(1)影象
(2) 連續的,凸狀,單峰的函式,沒有區域性極小值
這個可以用來檢測演算法的收斂的能力,但是它又比Ackley函式更加圓滑
(3)
5.Sphere函式
5.Sphere函式
(1)影象
(2)有唯一一個全域性最小值,是由 d 個定義域相同的自變數 取最小值時,求平方和得到。
(3)
6.Quartic函式
(1)影象
(2)該函式是一個偶次多項式,當自變數為正無窮或負無窮時,函式值極限值等於無窮。當 取正數時,函式值將趨向於正無窮,因此函式有一個全域性最小值。同樣的,如果 取負數時,函式值將趨向於負無窮,該函式有一個全域性最大值。在這兩種情況下,該函式不可能有其他區域性極大值或區域性極小值。
(3)
7. Schwefel's problem 12函式
(1)影象
(2)該函式由 Schwefel 提出,被認為是較為經典的測試函式。該函式自變數具有上位性,因此其梯度方向不會沿著軸線方向變化,具有較高的尋優難度。
什麼是上位效應?_百度知道
https://zhidao.baidu.com/question/25171602.html
(3)
8. Schwefel's problem 22函式
(1)影象
(2)該函式也由 Schwefel 提出,是連續的、平滑多峰函式。當自變數趨近於無窮大時,函式會形成大量區域性極值區域。且全域性最優值位於定義域域的界限。
(3)
9.Alpine函式
(1)影象
(2)Alpine 函式是一種經典的多模態最小化測試函式。當在定義域內趨於無窮大時,該函式沿著自變數方向會產生大量可微的區域性極值,具有較高的尋優難度。
(3)
10 Step函式
(1)影象
(2)它由一系列水平線段組成,且其中間有跳躍。因此,有時也稱為階梯函式。該函式在定義域內趨近於無窮時,會在給定的間隔上出現不同的階躍現象,並且在每個階躍間會產生大量區域性極值,具有較高的尋優難度
(3)當X = 0 時,取得全域性最有解f(X) = 0
感想:
之前的只是知道又這樣,那樣的測試函式,但是為什麼會生一個測試函式,為什麼這種測試函式就是一個標準?每種測試函式的目的和意圖是什麼? 你怎麼為自己的演算法,選擇合適的測試函式? 測試函式的選擇應該時時特定的情景的吧,有沒有一種規定什麼方面演算法應該用什麼樣的測試函式,而不是依照那種我在這個測試函式上表現的好,然後就OK了???
相關推薦
測試函式: Ackely,Rastrigin,Griewangk,SumSquartes,Sphere,Quartic,Schwefel' Problem 12等
參考:《基於群智慧優化理論的聚類改進方法及應用研究》1.Ackely函式(1)函式的圖形(2)測試函式的意義: 一個多維度的點在使用梯度方法尋優的時候,往往是有多個方向的。該函式:檢測一個演算法的全域性收斂速度。 維度增加的時候,它的方向梯度,前進的方向是各
python自動化測試開發:當frame/iframe沒有可用的id或者name屬性時,多表單(frame/iframe)如何進行切換
在設計自動化測試指令碼時,經常會有多表單(frame/iframe)需要切換,否則無法定位到表單上的元素,在python中使用switch_to.frame()方法,具體用法如下 1、switch_to.frame()預設直接調取表單的id活name屬性。 示例: dr
有n個整數,使前面各數順序向後移m個位置,最後m個數變成前面m個數。寫一函式:實現以上功能,在主函式中輸入n個數和輸出調整後的n個數。
import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc = new Scann
【轉】自動化測試框架: pytest&allure ,提高自動化健壯性和穩定性
序 在之前,我寫過一個系列“從零開始搭建一個簡單的ui自動化測試框架(pytest+selenium+allure)”,在這個系列裡,主要介紹瞭如何從零開始去搭建一個可用的自動化工程框架,但是還缺乏了一些細節的補充,例如對於自動化測試而言,如何提高其測試的穩定性? 本篇文章,將會和讀者一起探討這個
建立和測試觸發器:向SC表插入資料時,檢查插入資料的課程號是否存在於Course表中(建立之前刪除Cno的外來鍵約束,比較外來鍵約束和觸發器之間的不同)
alter table SC Drop constraint FK_SC--刪除外來鍵約束 CREATE TRIGGER trig_insert ON SC--在SC表中建立trig_insert觸發器 AFTER INSERT--insert為觸發事件,after則為觸發的時機
javascript中常見的函式封裝 :判斷是否是手機,判斷是否是微信,獲取url地址?後面的具體引數值,毫秒格式化時間,手機端px、rem尺寸轉換等
// 判斷是否是手機 function plat_is_mobile(){ var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var
PTA 陣列迴圈左移 (20 分) 本題要求實現一個對陣列進行迴圈左移的簡單函式:一個數組a中存有n(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向左移m(≥0)個位置,即將a中的
陣列迴圈左移 (20 分) 本題要求實現一個對陣列進行迴圈左移的簡單函式:一個數組a中存有n(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向左移m(≥0)個位置,即將a中的資料由(a0a1⋯an−1)變換為(am⋯an−
【c】檔案操作函式:fprintf,fread,fwrite,fseek,ftell,fopen,fclose,fflush以及獲取檔案長度示例
Date: 2018.9.20 1、參考 2、 fprintf 3、fread 作用:從一個檔案流中讀取資料。 Read block of data from stream Reads an ar
劍指off:在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣一個二維陣列和一個整數,判斷陣列中是否含有該整數
題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路: 從左下角x開始尋找,x為此列最大數字,此行最小數字。如果目
解析Cloudsim中,獲取虛擬機器遷移之前的時間的函式:getTimesBeforeVmMigration()
public static List<Double> getTimesBeforeVmMigration(List<Vm> vms) { //獲取虛擬機器遷移之前的時間。引數:虛擬機器列表。返回:虛擬機器遷移之前的時間列表
"兩步走方法"解析損失函式:mean square error,cross entropy,softmax,SVM
本文試圖將四類最基礎也最常用的損失函式進行統一歸納,以明白各自的區別,加深對他們的記憶和理解。 本文會從兩個步驟分析損失函式,第一個是從輸入到模型的輸出,第二個是從模型的輸出到損失函式的計算。 第一個步奏,從輸入到模型的輸出。我先解釋一下什麼是模型的輸出。比如當我們訓練好了一個迴歸模型,
Python:函式:關鍵字引數誤區----正確答案:尋找函式申明中,可變引數(*args)後的引數(沒有可變引數*args,就沒有關鍵字引數)
何為一般關鍵字引數? 在定義函式時,函式體形參列表中,可變引數(*args)後不帶預設值的引數,為呼叫函式時必須賦值的關鍵字引數,即一般的關鍵字引數。 經典誤區(例) 函式體 def getValue(position1, default1 = "預設", *
Python: random模組的隨即取樣函式:choice(),choices(),sample()
choice(seq): 從seq序列中(可以是列表,元組,字串)隨機取一個元素返回 choices(population, weights=None, *, cum_weights=None, k=1):從population中進行K次隨機選取,每次選取一個元素(注意會出
VC支援檔案拖拽功能函式:DragAcceptFiles,DragQueryFile和DragFinish
一 VC支援檔案拖拽功能的三個函式:DragAcceptFiles,DragQueryFile和DragFinish。 1.DragAcceptFiles 確定視窗是否接收檔案拖拽。 void DragAcceptFiles(HWND hWnd,BOOL fAc
php常用函式:trim,ltrim,rtrim,str_replace
trim trim去除字串首尾處的空白字元(或者其它字元) trim(string $str[,string $charlist])返回字串 trim(待處理的字串,可選引數(過濾字元也可由charlist引數指定,一般要列出所有希望過濾的字元)) 此函式返
ACMNO.41C語言-數字調序 有n個整數,使前面各數順序向後移m個位置,最後m個數變成前面m個數,見圖。寫一函式:實現以上功能,在主函式中輸入n個數和輸出調整後的n個數
題目描述 有n個整數,使前面各數順序向後移m個位置,最後m個數變成前面m個數,見圖。 寫一函式:實現以上功能,在主函式中輸入n個數和輸出調整後的n個數。 輸入 輸入資料的個數n n個整數 移動的位置m 輸出 移動後的n個數 樣例輸入 10 1 2 3 4
ZeroMQ介面函式之 :zmq_z85_encode – 使用Z85演算法對一個二進位制祕鑰進行加密,輸出可列印的文字
zmq_z85_encode(3) ØMQ Manual - ØMQ/4.1.0 Name zmq_z85_encode – 使用Z85演算法對一個二進位制祕鑰進行加密,輸出可列印的文字 Synopsis char *zmq_z85_encode (char *dest, u
YTUOJ——函式:寫一函式,使輸入的一個字串按反序存放,在主函式中輸入輸出反序後的字串
題目描述 寫一函式,使輸入的一個字串按反序存放,在主函式中輸入輸出反序後的字串。 輸入 一行字元 輸出 逆序後的字串 樣例輸入 123456abcdef 樣例輸出 fedcba65
動態記憶體申請函式:【malloc】【 free】,【calloc 】,【realloc】
為什麼存在動態記憶體分配? 區域性變數在棧區。 動態記憶體開闢在堆區。 全域性變數在靜態區。 我們已經掌握的記憶體開闢方式有: int val = 20; //在棧空間上開闢四個位元組 char arr[10] = {0}; //在棧空
Python3_map()函式:執行後出現 map object at ,
1. 安裝Python3.7 2.安裝Pycharm,在執行時出現:map object at ,<0x02629E50> 原因:python3裡面,map()的返回值已經不再是list,而是iterators, 所以想要使用,只用將iterator 轉換成list 即可, 比如