1. 程式人生 > >測試函式: Ackely,Rastrigin,Griewangk,SumSquartes,Sphere,Quartic,Schwefel' Problem 12等

測試函式: 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了???

相關推薦

測試函式 AckelyRastriginGriewangkSumSquartesSphereQuarticSchwefel' 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中的資料由(a​0​​a​1​​⋯a​n−1​​)變換為(a​m​​⋯a​n−

【c】檔案操作函式fprintffreadfwritefseekftellfopenfclosefflush以及獲取檔案長度示例

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 errorcross entropysoftmaxSVM

本文試圖將四類最基礎也最常用的損失函式進行統一歸納,以明白各自的區別,加深對他們的記憶和理解。 本文會從兩個步驟分析損失函式,第一個是從輸入到模型的輸出,第二個是從模型的輸出到損失函式的計算。 第一個步奏,從輸入到模型的輸出。我先解釋一下什麼是模型的輸出。比如當我們訓練好了一個迴歸模型,

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支援檔案拖拽功能函式DragAcceptFilesDragQueryFile和DragFinish

一  VC支援檔案拖拽功能的三個函式:DragAcceptFiles,DragQueryFile和DragFinish。 1.DragAcceptFiles 確定視窗是否接收檔案拖拽。 void DragAcceptFiles(HWND hWnd,BOOL fAc

php常用函式trimltrimrtrimstr_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 即可, 比如