隨機搜索法
⑴ 通過變異操作,使遺傳演算法具有局部的隨機搜索能力.為什麼
變異操作產生新個體,使種群多樣化程度增加,進化方向變多,相當於搜索的方向增加、搜索空間變大。
⑵ 隨機輸入一組數組元素值,使一個數組有序。然後隨機輸入一個數,用折半查找法在數組中查找,如在數組中
#include <iostream>
#include <math.h>
#include <fstream>
#include<math.h>
#include<string.h>
using namespace std;
int main() {
int s[15];
for(int i=0;i<15;i++){
cin>>s[i];
}
for(int i=0;i<14;i++)
{
for(int k=i;k<15;k++)
{
if(s[i]>s[k])
{
int temp=s[i];
s[i]=s[k];
s[k]=temp;
}
}
}
int num;
cout<<"輸入一個想找的數";
cin>>num;
int low=0;
int hight=14;
int mid;
while(low<=hight)
{
mid=(low+hight)/2;
if(num==s[mid])
{
cout<<"找到了位於"<< "s["<<mid<<"]";
return 0;
}
else if(num>s[mid])
{
low=mid+1;
}
else if(num<s[mid])
{
hight=mid-1;
}
}
cout<<"沒有找到";
return 0;
}
⑶ 計算機中的順序查詢,隨機查詢,直接查詢什麼意思
計算機中的順序查詢是指:是按照序列原有順序對數組進行遍歷比較查詢的基本查找演算法。對於任意一個序列以及一個給定的元素,將給定元素與序列中元素依次比較,直到找出與給定關鍵字相同的元素,或者將序列中的元素與其都比較完為止。
計算機中的隨機查詢是指:從數據中隨機抽出一個數字跟5比較,比如第一次隨機抽到了4跟5比較,然後再隨機抽一個3跟5比較,不斷的隨機抽然後比較,最終找到結果。
計算機中的直接查詢是指:基於啟發式方法的只利用目標函數值信息的無約束優化方法,如坐標輪換法、鮑威爾法,稱為直接搜索法。因為直接搜索法既不需要計算也不要逼近導數,他們常常被描述成「導數無關」。
(3)隨機搜索法擴展閱讀:
直接查詢法一般被分為三類,許多在應用文獻中提到的新方法都是這三種方法的基本原理的改進版本。分為:模式搜索法、單純形法、搜索方向集適應法。
模式搜索法(Pattern search)用一系列的點模式考慮目標函數的行為的試探位移來刻劃。所有都依賴於有理格。試探位移由當前迭代鄰近網格的點訪問的系統策略組成。在戴維森的 ANL 5990[2]延期的序言中,他描述了最基礎的一種模式搜索演算法,由於這么簡單而沒有歸類。
單純形搜索法(Simplex search)由指導搜索的簡單策略刻劃。第一個單純形方法是在 1962 年由 Spendley et al.[3]在論文中提出的。他們是由於早期的直接搜索法在任何地方都需要 2n 到 2n 個目標估值完成疊代改進的搜索的事實。
搜索方向集適應法,最後一個經典方法的家族包括 Rosenbrock 和 Powell 的方法,稱作搜索方向集適應法(Methods with adaptive sets of search directions)。這些演算法試圖利用在搜索過程中獲得的函數曲率的信息構造方向來加速搜索。
⑷ 網路內容隨機搜索
有這樣的原因是搜索引擎搜集了你曾經搜索的關鍵字,只要把瀏覽器打開反跟蹤就行了。或者使用帶有無痕上網模式的瀏覽器。360 UC等都有無痕模式。
⑸ 概率搜索演算法有哪些,除了遺傳演算法和蟻群
遺傳算抄法(Genetic Algorithm,GA)是由Holland J.H.於20世紀襲70年代提出的一種優化方法,其最優解的搜索過程模擬達爾文的進化論和「適者生存」的思想。
蟻群演算法(Ant Colony Optimization, ACO),是一種用來在圖中尋找優化路徑的機率型演算法。
兩種演算法從概念上都屬於隨機優化演算法,遺傳演算法是進化演算法,主要通過選擇、變異和交叉運算元,其中每個基因是由二進制串組成;蟻群演算法是基於圖論的演算法,通過信息素選擇交換信息。
⑹ Matlab 簡單的隨機搜索方法
句話的寫法可以用: A=[23,44,52,99];A(ceil(rand*4)) 其實沒必要過於糾結用一句,先抽下標的做法可讀性更好。 關於ceil(rand*4)抽樣的均勻性,可以用下面語句很簡單地進行驗證: hist(ceil(rand(1000000,1)*4))
⑺ 什麼是隨機選取法
目前有三種: 1. 隨機選取法:根據狀態空間的控制指標,由計算機隨機的抽取一道試題放入試題庫,此過程不斷重復,直到組卷完畢,或已無法從題庫中抽取滿足控制指標的試題為止。該方法結構簡單,對於單道題的抽取運行速度較快,但是對於整個組卷過程來說組捲成功率低,即使組捲成功,花費時間也令人難以忍受。尤其是當題庫中各狀態類型平均出題量較低時,組卷往往以失敗而告終。 2. 回溯試探法:這是將隨機選取法產生的每一狀態類型紀錄下來,當搜索失敗時釋放上次紀錄的狀態類型,然後再依據一定的規律(正是這種規律破壞了選取試題的隨機性)變換一種新的狀態類型進行試探,通過不斷的回溯試探直到試卷生成完畢或退回出發點為止,這種有條件的深度優先演算法,對於狀態類型和出題量都較少的題庫系統而言,組捲成功率較好,但是在實際到一個應用時發現這種演算法對內存的佔用量很大,程序結構相對比較復雜,而且選取試題缺乏隨機性,組卷時間長,後兩點是用戶無法接受的,因此它也不是一種很好的用來自動組卷的演算法。 3. 遺傳演算法:是一種並行的、能夠有效優化的演算法,以morgan的基因理論及eldridge 與gould間斷平衡理論為依據,同時融合了mayr的邊緣物種形成理論和bertalanffv一般系統理論的一些思想,模擬達爾文的自然界遺傳學:繼承(基因遺傳)、進化(基因突變)優勝劣汰(優的基因大量被遺傳復制,劣的基因較少被遺傳復制)。其實質就是一種把自然界有機體的優勝劣汰的自然選擇、適者生存的進化機制與同一群體中個體與個體間的隨機信息交換機制相結合的搜索演算法。
⑻ 請問關於禁忌搜索演算法
禁忌(TabuSearch)演算法是一種亞啟發式(meta-heuristic)隨機搜索演算法[1],它從一個初始可行解出發,選擇專一系列的屬特定搜索方向(移動)作為試探,選擇實現讓特定的目標函數值變化最多的移動。為了避免陷入局部最優解,TS搜索中採用了一種靈活的「記憶」技術,對已經進行的優化過程進行記錄和選擇,指導下一步的搜索方向,這就是Tabu表的建立。Tabu表中保存了最近若干次迭代過程中所實現的移動的反方向移動,凡是處於Tabu表中的移動,在當前迭代過程中是不允許實現的,這樣可以避免演算法重新訪問在最近若干次迭代過程中已經訪問過的解群,從而防止了循環,幫助演算法擺脫局部最優解。另外,為了盡可能不錯過產生最優解的「移動」,TS搜索還採用「釋放准則」的策略。
⑼ 可以採取什麼方式來實現對變長記錄文件進行隨機檢索
為變長記錄文件建立一張索引表,索引表中記錄每一個變長記錄項的地址。因為檢索索引表是對定長文件進行檢索,就可以實現隨機檢索。
⑽ matlab隨機方向搜索法的模板程序 求大神幫助
你是不是想用指數來作為橫坐標表示函數圖像?
你可以試一下semilogx或者semilogy這兩個繪圖函數,用法與plot相同,舉個例子:
x=-1000:1000;
y=log(x);
plot(x,y);
set(gca,'XTickLabel',{'10^-3' '10^-1' '10^1' '10^3' '10^5'})
繪圖結果是圖1。
x=-1000:1000;
y=log(x);
plot(x,y);
semilogx(x,y)