線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:679
推到 Plurk!
推到 Facebook!

A*演算法疑問

尚未結案
ksam123
一般會員


發表:6
回覆:3
積分:1
註冊:2004-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-26 22:10:20 IP:218.168.xxx.xxx 未訂閱
搜索過程中設置兩個表:OPEN和CLOSED。OPEN表保存了所有已生成而未考察的節點,CLOSED表中記錄已訪問過的節點。演算法中有一步是根據估價函數重排OPEN表。這樣迴圈中的每一步只考慮OPEN表中狀態最好的節點。具體搜索過程如下: 1)初始狀態: OPEN=[A5]; CLOSED=[]; 2)估算A5,取得搜有子節點,並放入OPEN表中; OPEN=[B4, C4, D6]; CLOSED=[A5] 3)估算B4,取得搜有子節點,並放入OPEN表中; OPEN=[C4, E5, F5, D6]; CLOSED=[B4, A5] 4)估算C4;取得搜有子節點,並放入OPEN表中; OPEN=[H3, G4, E5, F5, D6] CLOSED=[C4, B4, A5] 5)估算H3,取得搜有子節點,並放入OPEN表中; OPEN=[O2, P3, G4, E5, F5, D6]; CLOSED=H3C4, B4, A5] 6)估算O2,取得搜有子節點,並放入OPEN表中; OPEN=[P3, G4, E5, F5, D6]; CLOSED=[O2, H3, C4, B 4,A5] 7)估算P3,已得到解; 請問以上程式是說所設的2個表(OPEN CLOSED) 適用哪種方法設?是堆疊嗎? 在BCB裡要如何實現阿?
pkdemon
初階會員


發表:2
回覆:51
積分:25
註冊:2004-09-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-27 09:33:03 IP:211.22.xxx.xxx 未訂閱
ksam123 你好, 就你的問題看來,close的表似乎只是紀錄節點,open的表除了紀錄節點外還加了sort,你的節點應該有自己的class來紀錄屬性,可以利用那個class來宣告close和open,而open的sort方面可以自己寫個method來進行排列 以上,小弟小小見解多多指教
系統時間:2024-06-19 5:24:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!