• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 74,  comments - 33,  trackbacks - 0
            A*(A-Star)算法是一種靜態路網中求解最短路最有效的方法。
              公式表示為: f(n)=g(n)+h(n),
              其中f(n) 是節點n從初始點到目標點的估價函數,
              g(n) 是在狀態空間中從初始節點到n節點的實際代價,
              h(n)是從n到目標節點最佳路徑的估計代價。
              保證找到最短路徑(最優解的)條件,關鍵在于估價函數h(n)的選?。?br />
              估價值h(n)<= n到目標節點的距離實際值,這種情況下,搜索的點數多,搜索范圍大,效率低。但能得到最優解。
              如果 估價值>實際值, 搜索的點數少,搜索范圍小,效率高,但不能保證得到最優解。
              估價值與實際值越接近,估價函數取得就越好。
              例如對于幾何路網來說,可以取兩節點間歐幾理德距離(直線距離)做為估價值,即f=g(n)+sqrt((dx-nx)*(dx-nx)+(dy-ny)*(dy-ny));這樣估價函數f在g值一定的情況下,會或多或少的受估價值h的制約,節點距目標點近,h值小,f值相對就小,能保證最短路的搜索向終點的方向進行。明顯優于Dijstra算法的毫無無方向的向四周搜索。
              conditions of heuristic
              Optimistic (must be less than or equal to the real cost)
              As close to the real cost as possible
              主要搜索過程:
              創建兩個表,OPEN表保存所有已生成而未考察的節點,CLOSED表中記錄已訪問過的節點。
              遍歷當前節點的各個節點,將n節點放入CLOSE中,取n節點的子節點X,->算X的估價值->
              While(OPEN!=NULL)
              {
              從OPEN表中取估價值f最小的節點n;
              if(n節點==目標節點) break;
              else
              {
              if(X in OPEN) 比較兩個X的估價值f //注意是同一個節點的兩個不同路徑的估價值
              if( X的估價值小于OPEN表的估價值 )
              更新OPEN表中的估價值; //取最小路徑的估價值
              if(X in CLOSE) 比較兩個X的估價值 //注意是同一個節點的兩個不同路徑的估價值
              if( X的估價值小于CLOSE表的估價值 )
              更新CLOSE表中的估價值; 把X節點放入OPEN //取最小路徑的估價值
              if(X not in both)
              求X的估價值;
              并將X插入OPEN表中; //還沒有排序
              }
              將n節點插入CLOSE表中;
              按照估價值將OPEN表中的節點排序; //實際上是比較OPEN表內節點f的大小,從最小路徑的節點向下進行。
              啟發式搜索其實有很多的算法,比如:局部擇優搜索法、最好優先搜索法等等。當然A*也是。這些算法都使用了啟發函數,但在具體的選取最佳搜索節點時的策略不同。象局
              部擇優搜索法,就是在搜索的過程中選取“最佳節點”后舍棄其他的兄弟節點,父親節點,而一直得搜索下去。這種搜索的結果很明顯,由于舍棄了其他的節點,可能也把最好的
              節點都舍棄了,因為求解的最佳節點只是在該階段的最佳并不一定是全局的最佳。最好優先就聰明多了,他在搜索時,便沒有舍棄節點(除非該節點是死節點),在每一步的估價
              中都把當前的節點和以前的節點的估價值比較得到一個“最佳的節點”。這樣可以有效的防止“最佳節點”的丟失。那么A*算法又是一種什么樣的算法呢?其實A*算法也是一種最
              好優先的算法。只不過要加上一些約束條件罷了。由于在一些問題求解時,我們希望能夠求解出狀態空間搜索的最短路徑,也就是用最快的方法求解問題,A*就是干這種事情的!
              我們先下個定義,如果一個估價函數可以找出最短的路徑,我們稱之為可采納性。A*算法是一個可采納的最好優先算法。A*算法的估價函數可表示為:
              f'(n) = g'(n) + h'(n)
              這里,f'(n)是估價函數,g'(n)是起點到終點的最短路徑值,h'(n)是n到目標的最斷路經的啟發值。由于這個f'(n)其實是無法預先知道的,所以我們用前面的估價函數f(n)做
              近似。g(n)代替g'(n),但 g(n)>=g'(n)才可(大多數情況下都是滿足的,可以不用考慮),h(n)代替h'(n),但h(n)<=h'(n)才可(這一點特別的重要)。可以證明應用這樣的估價
              函數是可以找到最短路徑的,也就是可采納的。我們說應用這種估價函數的最好優先算法就是A*算法。哈。你懂了嗎?肯定沒懂。接著看。
              舉一個例子,其實廣度優先算法就是A*算法的特例。其中g(n)是節點所在的層數,h(n)=0,這種h(n)肯定小于h'(n),所以由前述可知廣度優先算法是一種可采納的。實際也是
              。當然它是一種最臭的A*算法。
              再說一個問題,就是有關h(n)啟發函數的信息性。h(n)的信息性通俗點說其實就是在估計一個節點的值時的約束條件,如果信息越多或約束條件越多則排除的節點就越多,估價函
              數越好或說這個算法越好。這就是為什么廣度優先算法的那么臭的原因了,誰叫它的h(n)=0,一點啟發信息都沒有。但在游戲開發中由于實時性的問題,h(n)的信息越多,它的計
              算量就越大,耗費的時間就越多。就應該適當的減小h(n)的信息,即減小約束條件。但算法的準確性就差了,這里就有一個平衡的問題。
              }
            今天做了一個游戲模擬題,看著題牛X的我問pip說:能不能用A*,誰知道他更猛。500個點不值得用。。。。。。無語,結果我的處女A*無疾而終,只好寫了個普搜水過去了。。。。。,搞了一個pip推薦的dp無語還是腦殘,居然那么就才想到。。。。。。。。。
            posted on 2009-04-16 22:44 KNIGHT 閱讀(201) 評論(0)  編輯 收藏 引用
            <2008年12月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(8)

            隨筆檔案

            文章檔案

            Friends

            OJ

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久久91精品国产一区二区三区| 国产精品久久久久久久| 一本综合久久国产二区| 亚洲国产美女精品久久久久∴| 亚洲AV无码久久精品色欲| 久久中文娱乐网| 久久久久久久波多野结衣高潮| a高清免费毛片久久| 久久久无码精品午夜| 久久久一本精品99久久精品88| 91久久福利国产成人精品| 久久综合88熟人妻| 久久综合久久综合亚洲| 国产91久久精品一区二区| 2021久久精品免费观看| 久久久久免费视频| 办公室久久精品| 久久久久久综合一区中文字幕 | 久久亚洲美女精品国产精品| 免费一级欧美大片久久网 | 热RE99久久精品国产66热| 人妻精品久久无码区| 欧美激情一区二区久久久| 欧美久久久久久精选9999| 99精品伊人久久久大香线蕉| 久久丫精品国产亚洲av不卡| 精品国产乱码久久久久久呢| 青青久久精品国产免费看| 天天影视色香欲综合久久| 久久国产高清一区二区三区| 精品久久久久久无码人妻热| 久久国产乱子精品免费女| 国产成人精品久久二区二区| 2021精品国产综合久久| 91久久精一区二区三区大全| AAA级久久久精品无码片| 精品国产VA久久久久久久冰| 国产精品久久久福利| 国内精品久久久久影院免费| a级成人毛片久久| 精品久久久久久国产免费了|