當前位置:首頁 » 操作系統 » 搜索演算法

搜索演算法

發布時間: 2022-01-08 06:45:10

A. 運動估計的搜索演算法

匹配誤差函數,可以用各種優化方法進行最小化,這就需要我們開發出高效的運動搜索演算法,
主要的幾種演算法歸納如下: 為當前幀的一個給定塊確定最優位移矢量的全局搜索演算法方法是:在一個預先定義的搜索區域
內,把它與參考幀中所有的候選塊進行比較,並且尋找具有最小匹配誤差的一個。這兩個塊之間的
位移就是所估計的 MV,這樣做帶來的結果必然導致極大的計算量。
選擇搜索區域一般是關於當前塊對稱的,左邊和右邊各有 Rx 個像素,上邊和下邊各有 Ry個像素。
如果已知在水平和垂直方向運動的動態范圍是相同的,那麼 Rx=Ry=R。估計的精度是由搜索的步長決定的,步長是相鄰兩個候選塊在水平或者垂直方向上的距離。通常,沿著兩個方向使用相同的步長。在最簡單的情況下,步長是一個像素,稱為整數像素精度搜索,該種演算法也稱為無損搜索演算法。 由於在窮盡塊匹配演算法中搜索相應塊的步長不一定是整數,一般來說,為了實現 1/K像素步長,對參考幀必須進行 K倍內插。根據實驗證明,與整像素精度搜索相比,半像素精度搜索在估計精度上有很大提高,特別是對於低清晰度視頻。
但是,應用分數像素步長,搜索演算法的復雜性大大增加,例如,使用半像素搜索,搜索點的總數比整數像素精度搜索大四倍以上。
那麼,如何確定適合運動估計的搜索步長,對於視頻編碼的幀間編碼來說,即使得預測誤差最小化。 快速搜索演算法和全局搜索演算法相比,雖然只能得到次最佳的匹配結果,但在減少運算量方面效果顯著。
1) 二維對數搜索法
這種演算法的基本思路是採用大菱形搜索模式和小菱形搜索模式,步驟如圖 6.4.20 所示,從相應於零位移的位置開始搜索,每一步試驗菱形排列的五個搜索點。下一步,把中心移到前一步找到的最佳匹配點並重復菱形搜索。當最佳匹配點是中心點或是在最大搜索區域的邊界上時,就減小搜索步長(菱形的半徑) 。否則步長保持不變。當步長減小到一個像素時就到達了最後一步,並且在這最
後一步檢驗九個搜索點。初始搜索步長一般設為最大搜索區域的一半。
其後這類演算法在搜索模式上又做了比較多的改進,在搜索模式上採用了矩形模式,還有六邊形模式、十字形模式等等。
2) 三步搜索法
這種搜索的步長從等於或者略大於最大搜索范圍的一半開始。第一步,在起始點和周圍八個 「1」標出的點上計算匹配誤差,如果最小匹配誤差在起始點出現,則認為沒有運動;第二步,以第一步中匹配誤差最小的點(圖中起始點箭頭指向的「1」)為中心,計算以「2」標出的 8個點處的匹配誤差。注意,在每一步中搜索步長搜都比上一步長減少一半,以得到更准確的估計;在第三步以後就能得到最終的估計結果,這時從搜索點到中心點的距離為一個像素。
但是,上述一些快速演算法更適合用於估計運動幅度比較大的場合,對於部分運動幅度小的場合,它們容易落入局部最小值而導致匹配精度很差,已經有很多各種各樣的視頻流證明了這一點。
現在,針對這一缺點,國內外諸多專家學者也提出了相應的應對措施,特別是針對H.264編碼標准要求的一些快速演算法的改進,並取得卓越的效果。例如[7]中提到的基於全局最小值具有自適應性的快速演算法,這種演算法通過在每一搜索步驟選擇多個搜索結果,基於這些搜索結果之間的匹配誤差的不同得到的最佳搜索點,因而可以很好地解決落入局部最小值的問題。
[8]中提到一種適用於H.264的基於自適應搜索范圍的快速運動估計演算法,經過實驗證明對於如salesman等中小運動序列,其速度可接近全局搜索演算法的400倍,接近三步搜索演算法的4倍;而對於大運動序列,如table tennis,該演算法則會自動調節搜索點數以適應復雜的運動。當從總體上考察速度方面的性能時,可以看到,該演算法平均速度是全局搜索演算法的287.4倍,三步搜索的2.8倍。 分級搜索演算法的基本思想是從最低解析度開始逐級精度的進行不斷優化的運動搜索策略,首先取得兩個原始圖象幀的金子塔表示,從上到下解析度逐級變細,從頂端開始,選擇一個尺寸比較大的數據塊進行一個比較粗略的運動搜索過程,對在此基礎上進行亞抽樣(即通過降低數據塊尺寸(或提高抽樣解析度)和減少搜索范圍的辦法)進行到下一個較細的級來細化運動矢量,而一個新的搜索過程可以在上一級搜索到的最優運動矢量周圍進行。在亞抽樣的過程中也有著不同的抽樣方式和抽樣濾波器。這種方法的優點是運算量的下降比例比較大,而且搜索的比較全面。
缺點是由於亞抽樣或者濾波器的採用而使內存的需求增加,另外如果場景細節過多可能會容易落入局部最小點。 由於物體的運動千變萬化,很難用一種簡單的模型去描述,也很難用一種單一的演算法來搜索最佳運動矢量,因此實際上大多採用多種搜索演算法相組合的辦法,可以在很大程度上提高預測的有效性和魯棒性。
事實上,在運動估計時也並不是單一使用上述某一類搜索演算法,而是根據各類演算法的優點靈活組合採納。在運動幅度比較大的情況下可以採用自適應的菱形搜索法和六邊形搜索法,這樣可以大大節省碼率而圖象質量並未有所下降。在運動圖象非常復雜的情況下,採用全局搜索法在比特數相對來說增加不多的情況下使得圖象質量得到保證。 H.264 編碼標准草案推薦使用 1/4分數像素精度搜索。[6]中提到在整像素搜索時採用非對稱十字型多層次六邊形格點運動搜索演算法,然後採用鑽石搜索模型來進行分數像素精度運動估計。
解碼器要求傳送的比特數最小化,而復雜的模型需要更多的比特數來傳輸運動矢量,而且易受雜訊影響。因此,在提高視頻的編碼效率的技術中,運動補償精度的提高和比特數最小化是相互矛盾的,這就需要我們在運動估計的准確性和表示運動所用的比特數之間作出折中的選擇。它的效果與選用的運動模型是密切相關的。

B. 什麼是A搜索演算法

A*搜索演算法,俗稱A星演算法,作為啟發式搜索演算法中的一種,這是一種在圖形平面上,有多個節點的路徑,求出最低通過成本的演算法。常用於游戲中的NPC的移動計算,或線上游戲的BOT的移動計算上。該演算法像Dijkstra演算法一樣,可以找到一條最短路徑;也像BFS一樣,進行啟發式的搜索。

C. 搜索演算法的運算原理

搜索演算法實際上是根據初始條件和擴展規則構造一棵「解答樹」並尋找符合目標狀態的節點的過程。所有的搜索演算法從最終的演算法實現上來看,都可以劃分成兩個部分——控制結構(擴展節點的方式)和產生系統(擴展節點),而所有的演算法優化和改進主要都是通過修改其控制結構來完成的。其實,在這樣的思考過程中,我們已經不知不覺地將一個具體的問題抽象成了一個圖論的模型——樹,即搜索演算法的使用第一步在於搜索樹的建立。
由圖一可以知道,這樣形成的一棵樹叫搜索樹。初始狀態對應著根結點,目標狀態對應著目標結點。排在前的結點叫父結點,其後的結點叫子結點,同一層中的結點是兄弟結點,由父結點產生子結點叫擴展。完成搜索的過程就是找到一條從根結點到目標結點的路徑,找出一個最優的解。這種搜索演算法的實現類似於圖或樹的遍歷,通常可以有兩種不同的實現方法,即深度優先搜索(DFS——Depth First search)和廣度優先搜索(BFS——Breadth First Search)。

D. 搜索引擎演算法都有哪些

這個的話一般來說都不是很清楚,
但如果是一些大體的演算法 如下: 谷歌PR值演算法:(1-d)+d/(pr(t)/pr(y)+……pr(tn)/pr(yn)+……)
D代表0.85 而pr(t)是指友情鏈接的對方網站的PR值 pr(y)是指友情鏈接的對方網站的導出友情鏈接的數量

E. 二分搜索演算法

#include <stdio.h>

#include <stdlib.h>

int a[100]={1,2,3,5,12,12,12,15,29,55};//數組中的數(由小到大)

int k;

void found(int &x,int &y,int k) //在x與y之間,要找k

{

if(x>y)return;

int m=x+(y-x)/2;

if(a[m]==k)x=y=m;

else if(a[m]>k)found(x,y=m-1,k);//找左邊

else found(x=m+1,y,k);//找右邊

}

int main()

{ int i=0,j=9;

scanf("%d",&k);//輸入要找的數字k

found(i,j,k);//從數組a[0]到a[9]中找k

if(i==j)printf("a[%d]==%d ",i,k);

else printf("a[%d]==%d a[%d]==%d, k==%d ",j,a[j],i,a[i],k);

return 0;

}

F. 請問什麼是搜索演算法

搜索演算法是利用計算機的高性能來有目的的窮舉一個問題的部分或所有的可能情況,從而求出問題的解
的一種方法。搜索過程實際上是根據初始條件和擴展規則構造一棵解答樹並尋找符合目標狀態的節點的過程。
所有的搜索演算法從其最終的演算法實現上來看,都可以劃分成兩個部分——控制結構和產生系統,而所有的算
法的優化和改進主要都是通過修改其控制結構來完成的。

G. 百度搜索引擎的演算法是怎樣的

網路基礎演算法分析:鏈接流行度核心演算法+網路推廣+框計算+開放平台
1.【鏈接流行度】和大多數關鍵詞搜索引擎一樣,頁面URL地址鏈接的流行程度為核心的基礎核心演算法;
2.【網路推廣】起先叫做網路競價,後改為網路推廣,包括關鍵詞競價演算法和網盟推廣演算法兩部分;
3.【框計算】語義分析、行為分析、智能人機交互、海量基礎演算法等。
網路收錄流程
1.【頁面的收錄】搜索蜘蛛程序>收錄的頁面鏈接>現新的鏈接並爬行>的頁面及內容合格>錄快照並分類存儲>立頁面基本數據(頁面URL、頁面關鍵詞、頁面標題描述、收錄來源、收錄時間、內容簡述、頁面權重、更新周期);
2.【網路免費產品】網路、網路文庫、網路貼吧、網路知道、網路空間等網路自身免費產品的頁面收錄;
3.【網路開放平台】主要是站長提供的結構化數據(網站與網路的深度合作,如汽車網站的參數數據、網路知道介面等)和開發者提交的各種應用(開發者加入網路開發者中心並提交相關應用通過審核);
4.【網路競價推廣】網站主開通網路推廣賬戶>付費並通過網站審核>輯關鍵詞廣告及推廣計劃>交網路推廣後台;
5.【網路網盟推廣】網站主開通網路推廣賬戶>付費並通過網站審核>輯網盟廣告及推廣計劃>交網路推廣後台;網路聯盟廣告合作夥伴站長參與網盟推廣並審核通過》預留廣告位並做好網盟介面。
網路檢索流程
搜索需求>義分析>據庫檢索>名顯示反饋
1.【網路搜索頁面的檢索】用戶輸入關鍵詞並檢索>架算(語義分析及分詞判斷、行為分析、智能人機交互、海量基礎演算法)>計算結果(開放平台的數據、傳統搜索結果、網路推廣結果、網路自身產品結果)>計算結果排名。
2.【網路網盟頁面的推薦】用戶訪問網路網盟某合作網站頁面>盟演算法根據用戶瀏覽器大量有價值的搜索Cookis計算並推薦廣告>戶被有質量的廣告吸引並點擊>盟推廣後台引導用戶進入參與網盟推廣的網站相應頁面。

H. 常見的搜索演算法有哪幾種

  • 廣度優先搜索(BFS)

  • 深度優先搜索(DFS)

  • 爬山法(Hill Climbing)

  • 最佳優先演算法(Best-first search strategy)

  • 回溯法 (Backtracking)

  • 分支限界演算法(Branch-and-bound Search Algorithm)

I. 搜索引擎核心演算法是什麼

搜索引擎核心演算法是獲得網站網頁資料,建立資料庫並提供查詢的系統。

索引擎的資料庫是依靠一個叫「網路機器人(crawlers)」或叫「網路蜘蛛(Spider)」的軟體,它通過網路上的各種鏈接自動獲取大量的網頁信息內容,並按照一定的規則進行分析和組織。谷歌和網路是典型的搜索引擎系統。

為了更好地服務於web搜索,搜索引擎分析和排序規則也就是說,搜索引擎演算法正在發生變化。由於互聯網上無數的網站頁面,搜索引擎蜘蛛無法將所有網頁下載並保存到伺服器上。

因此,許多搜索引擎蜘蛛只抓取那些重要的頁面,而評估爬行重要性的主要依據是鏈接寬度(以及外部鏈接的數量和質量)。



(9)搜索演算法擴展閱讀:

搜索引擎核心演算法的優化:

1、在搜索前,根據條件降低搜索規模。

2、廣度優先搜索中,被處理過的節點,充分釋放空間。

3、給據問題的約束條件進行剪枝。

4、利用回溯演算法進行優化:回溯和深度優先是相似的,區別在於當一個節點被擴展時,不是所有的子節點都被擴展,而是只有一個子節點被擴展。所以它是盲的,但佔用的內存更少。

J. 什麼是路徑搜索演算法

舉個例子你大概就明白了,假設從上海東方明珠電視塔到北京天安門有N條線路,可以上海-天津-北京,上海-南京-北京,上海-廣州-西藏-北京等等等,選擇一條需要的線路這就是路徑搜索,用來實現該選擇的演算法是路徑搜索演算法,可以選擇最短路徑,關鍵路徑,如果有費用(權值)就可以選擇最便宜路徑(權最小),如果有路徑需用時(飛機、火車,有些地方只有單一交通工具)就可以選擇時間最短路徑
用於計算機中的路徑搜索就比較廣泛了,但大體就是根據上述情況變化來得

熱點內容
如何改變vivo手機賬戶密碼 發布:2024-05-19 10:56:07 瀏覽:376
sql的length函數 發布:2024-05-19 10:55:15 瀏覽:545
資料庫管理系統設計報告 發布:2024-05-19 10:49:50 瀏覽:684
linux怎麼將驅動編譯進內核 發布:2024-05-19 10:23:47 瀏覽:768
c語言讀程序題 發布:2024-05-19 10:13:52 瀏覽:675
新的安卓手機怎麼樣下載微信 發布:2024-05-19 10:05:06 瀏覽:879
加9的演算法 發布:2024-05-19 10:04:15 瀏覽:264
新名圖配置怎麼樣 發布:2024-05-19 09:31:30 瀏覽:95
php獲取子節點 發布:2024-05-19 09:21:18 瀏覽:160
php生成html 發布:2024-05-19 09:20:24 瀏覽:795