當前位置:成語大全網 - 漢語詞典 - 反向搜索法和爬山法的例子有哪些?

反向搜索法和爬山法的例子有哪些?

反向搜索

計算機科學術語

科普中國|本詞條由《科普中國》詞條寫作與應用項目評審。

評審專家姚遠

反向搜索是從目標狀態開始的搜索,通常與正向搜索同時進行(雙向搜索)。如果新擴展的狀態在前向搜索期間出現在反向搜索中,則通過連接兩個搜索路徑找到壹個解(通常是具有最少搜索步驟的解)。如果反向搜索中新擴展的狀態已經出現在正向搜索中,也是最優解,如上所述。反向搜索不僅是壹種技術,也是壹種思維,廣泛應用於計算機軟件、互聯網技術、電信技術、工業通用技術、貿易經濟等領域。

中文名

反向搜索

外國名字

向後搜索

親戚

向前搜索

科目

計算機技術

自然

逆向思維

人工智能的例子,互聯網應用的例子,鐵路運輸的例子,互聯網貿易的例子,計算機軟件的例子,TA說參考資料的例子。

人工智能的例子

在人工智能中,雙向產生式系統是同時應用正向和反向搜索方法的產生式系統。在該系統中,狀態描述和目標描述被合並到壹個數據庫中,其中狀態描述應用F規則,目標描述應用B規則。[1]例如,智能機器人具有自動解決問題的能力,以便制定行動計劃。它可以用壹組特殊的產生式規則在狀態空間中搜索解。為了得到操作序列,我們可以從當前狀態集出發,進行正向搜索,或者從目標狀態集出發進行反向搜索,或者根據目標狀態與當前狀態的差異選擇合適的操作(手段-目的分析)。[2]

互聯網應用的例子

搜索引擎優化(SEO)的主要工作是通過了解各種搜索引擎如何抓取互聯網頁面,如何對其進行索引,如何確定其對某個特定關鍵詞的搜索結果的排名,從而優化SEO頁面,從而改變自己的網站,向搜索結果排名靠前的網站學習,從而提高搜索引擎的排名,從而增加網站的訪問量,最終提高網站的銷售能力或宣傳能力,從而達到SEO的目的。這個試圖弄清楚搜索引擎的過程就是壹個反向搜索的過程。

鐵路運輸的例子

逆向路徑搜索算法是鐵路運輸系統中的壹種重要算法。該算法利用站點地圖與二叉樹的相似性,通過站點信息建立二叉樹模型。但該算法搜索二叉樹的過程與傳統二叉樹搜索算法相反,是目標子搜索根節點。這種反向搜索可以快速有效地完成所有路徑的搜索,而無需遍歷搜索。即,在車站地圖中完成任意壹對車站按鈕之間的基本路線和變更路線的搜索。為了滿足壹些特殊要求(解決列車追蹤問題),這種搜索還可以完成任意壹對站設備之間的基本進路和變更進路搜索。

例如,互聯網貿易

建立網絡目標市場反向搜索模型的思路是,首先分析某壹具體產品的原理、功能和用途,考慮其主要技術規格、價格等因素,確定該產品的樣本特征;基於以上對產品樣本特征的分析,推斷出有效市場;制定壹套檢索步驟,檢索需要該產品的商務網站,從而找到需要該產品的企業、公司等客戶。

計算機軟件的例子

反向搜索系統,從輸入子串中檢查給定列表中的壹個或幾個單詞是否存在的系統。字列表存儲在存儲器陣列中,該存儲器陣列包括用於存儲子字的每個存儲單元的比較器。壹串分子。每個子串被多次加載到比較寄存器中,每次滾動壹個子字。在每個存儲單元中,它同時與輸入的子串進行比較。每個存儲單元的壹個邏輯電路檢測串的子字與列表字的子字的連續匹配。只要列表中的壹個完整單詞匹配,就為這個單詞設置壹個信號。設置壹個匹配信號列表,優先級編碼器可以用來輸出其中壹個匹配字的地址(位置)。[3] 1.登山方法介紹

爬山法是壹種優化算法,壹般從壹個隨機解開始,然後逐漸找到壹個最優解(局部最優)。假設問題有多個參數,我們可以在通過爬山壹步壹步獲得最優解的過程中,依次增加或減少壹個參數的值壹個單位。比如壹個問題的求解需要用到x1,x2,x3三個整數參數。壹開始這三個參數設置為(2,2,-2),x1增加/減少1得到兩個解(1,2,-2),(3)。將x2增加/減少1得到兩個解(2,3,-2),(2,1,-2);X3增加/減少1,得到兩個解(2,2,-1),(2,2,-3),從而得到壹個解集:

(2,2,-2), (1, 2,-2), (3, 2,-2), (2,3,-2), (2,1,-2), (2,2,-1), (2,2,-3)

從上述解集中尋找最優解,然後基於上述方法構造另壹個解集,再尋找最優解。這樣,直到上壹個最優解與下壹個最優解相同時,“爬坡”才會結束。

二、Python例子

設方程y = x1+x2-x3,其中x1為區間[-2,5]內的整數,x2為區間[2,6]內的整數,x3為區間[-5,2]內的整數。使用爬山法,找到使y值最小的解。

代碼如下:

隨機導入

定義評估(x1,x2,x3):

返回x1+x2-x3

if__name__== '__main__ ':

x_range = [ [-2,5],[2,6],[-5,2] ]

best _ sol =[random . randint(x _ range[0][0],x_range[0][1]),

random . randint(x _ range[1][0],x_range[1][1]),

random.randint(x_range[2][0],x_range[2][1])]

雖然正確:

best _ evaluate = evaluate(best _ sol[0],best_sol[1],best_sol[2])

當前最佳值=最佳評估值

sols = [best_sol]

對於xrange(len(best_sol))中的I:

if best _ sol[I]& gt;x_range[i][0]:

sols . append(best _ sol[0:I]+[best _ sol[I]-1]+best _ sol[I+1:])

if best _ sol[I]& lt;x_range[i][1]:

sols . append(best _ sol[0:I]+[best _ sol[I]+1]+best _ sol[I+1:])

打印溶膠

對於溶膠中的s:

el = evaluate(s[0],s[1],s[2])

如果el & lt最佳評估:

best_sol = s

best_evaluate = el

如果最佳評估==當前最佳值:

破裂

打印“最佳解決方案:”、當前最佳值、最佳解決方案

操作的結果如下:

[[0, 5, 1], [-1, 5, 1], [1, 5, 1], [0, 4, 1], [0, 6, 1], [0, 5, 0], [0, 5, 2]]

[[-1, 5, 1], [-2, 5, 1], [0, 5, 1], [-1, 4, 1], [-1, 6, 1], [-1, 5, 0], [-1, 5, 2]]

[[-2, 5, 1], [-1, 5, 1], [-2, 4, 1], [-2, 6, 1], [-2, 5, 0], [-2, 5, 2]]

[[-2, 4, 1], [-1, 4, 1], [-2, 3, 1], [-2, 5, 1], [-2, 4, 0], [-2, 4, 2]]

[[-2, 3, 1], [-1, 3, 1], [-2, 2, 1], [-2, 4, 1], [-2, 3, 0], [-2, 3, 2]]

[[-2, 2, 1], [-1, 2, 1], [-2, 3, 1], [-2, 2, 0], [-2, 2, 2]]

[[-2, 2, 2], [-1, 2, 2], [-2, 3, 2], [-2, 2, 1]]

最佳解:-2 [-2,2,2]

可以看出最優解是-2,x1,x2,x3對應的值分別是-2,2,2。

第三,如何找到全局最優

爬山法得到的最優解可能是局部最優解。如果要得到壹個更好的解,就要多次使用爬山算法(從不同的初始解開始),從多個局部最優解中尋找最優解,這個最優解也可能是全局最優解。

另外,模擬退火算法也是壹種試圖尋找全局最優解的算法。

用Python實現Kmeans++算法的壹個例子

1,來自Kmeans,Kmeans是壹個非常基礎的聚類算法,采用的是叠代的思想,這裏就不說它的原理了。下面說說matlab中如何使用kmeans算法。創建七個二維

Python中的映射、歸約和過濾分析

1.讓我們來看看什麽是可叠代對象。以內置的max函數為例,看它的Doc: Print Max。_ _ Doc _ Max(可叠代[,key = func])-Value Max (a,b,c,...[,key = func])-valuewithsingleiteraparameter。

Python中的Numpy簡介

1,什麽是Numpy很簡單。Numpy是Python的科學計算庫,提供了矩陣運算的功能。它通常與Scipy和matplotlib壹起使用。事實上,list已經提供了壹個類似矩陣的