從初始節點s到目標節點g :
s節點有相鄰的節點:
f(n)=g(n)+h(n)
g(n)是移動代價 h(n)是估計成本
第一步:
計算s節點相鄰所有節點的f(n) 取最小的f(n)的節點作為下乙個節點
假設s 下面是a,b節點
fa(n)=ga(n)+ha(n) 其中g是實際路徑(一般來講是指路徑上的值) h是估計路徑(一般來講是指的標記在節點上的值)
fb(n)=gb(n)+hb(n)
這個時候假設fa(n)a節點
第二步:
假設a節點下面有兩個節點 乙個是c節點,乙個是d節點
fc(n)=gc(n)(這裡指的是到這個節點,路徑上的和相加的值)+hc(n)(指的是c節點上的值)
fd(n)=gd(n)(這裡指的是到這個節點,路徑上的和相加的值)+hc(n)(指的是d節點上的值)
假設fc(n)c節點
第三步:
假設c和d節點連線的g節點 是目標節點
計算s->a->c->g的實際路徑 如果實際路徑大於fd(n)
就要繼續計算一下s->a->d->g的路徑,來決定最小的路徑是什麼
特點:引入估計值(節點上的估計函式來進行搜尋,從而可以加快搜尋的速度)
舉個例子:
Camshift演算法研究
根據獲得的色彩直方圖將原始影象轉化成色彩概率分布影象,這個過程就被稱作 back projection 在opencv 中的直方圖函式中,包含back projection 的函式,函式原型是 void cvcalcbackproject iplimage img,cvarr backproject...
Diff演算法研究
在unix linux的世界裡面,如果我們需要比較兩個檔案,就會用乙個比較的命令 diff。而這個diff的原理是什麼呢?在diff裡面,我們比較的兩個檔案叫做old和new,而一般是按行來比較。這裡我們可以抽象成乙個字串的比較,比如 old abcdefger new abdefereger 那麼...
KMP 演算法研究
定義 1 next 0 1 意義 任何串的第乙個字元的模式值規定為 1。2 next j 1 意義 模式串 t中下標為 j的字元,如果與首字元 相同,且 j的前面的 1 k個字元與開頭的 1 k個字元不等 或者相等但 t k t j 1 k 如 t abcabcad 則next 6 1 因t 3 t...