请阐述状态空间的一般搜索过程。OPEN表与CLOSED表的作用是什么? 什么是图搜索过程?其中,重排open表意味着什么?重排的原则...

C++ A* \u7b97\u6cd5\u5b9e\u73b0\u4e2d\uff0c\u600e\u6837\u4fbf\u6377\u5730\u5b9e\u73b0\u201c\u641c\u7d22\u8282\u70b9\u5728OPEN\u8868\u548cCLOSED\u8868\u4e4b\u95f4 \u5207\u6362\u201d\uff1f

\u4f60\u662f\u5728\u7528A*\u7b97\u6cd5\u505a\u516b\u6570\u7801\u95ee\u9898\u4e48\u3002
\u6bd4\u5982\u4f60\u8981\u5728open\u8868\u4e2d\u5220\u9664\u4e00\u4e2a\u8282\u70b9\uff0c\u7136\u540e\u653e\u5230close\u8868\u4e2d\uff0c\u4f60\u53ef\u4ee5\u53cd\u8fc7\u6765\u505a\uff0c
\u5148\u627e\u5230\u8fd9\u4e2a\u7ed3\u70b9\uff0c\u5728close\u8868\u4e2d\u63d2\u5165\uff0c\u7136\u540e\u518d\u5728open\u8868\u4e2d\u5220\u9664

\u6211\u628a\u6211\u5199\u7684windows\u4e0b\u7684\u4ee3\u7801\u8d34\u8fc7\u6765\u4f60\u770b\u770b\uff0c\u987a\u4fbf\u8bf4\u4e00\u53e5\uff0copen\u8868\u548cclose\u8868\u90fd\u8981\u7ecf\u5e38\u505a\u5220\u9664\u8282\u70b9\u7684\u64cd\u4f5c\uff0c\u6240\u4ee5\u7528vector\uff08\u7ebf\u6027\u8868\uff09\u5176\u5b9e\u6027\u80fd\u4e0d\u597d\uff0c\u6211\u7528\u7684List\u3002

\u3010\u56fe\u641c\u7d22\u8fc7\u7a0b\u3011\u662f\uff1a\u4e00\u79cd\u5728\u56fe\u4e2d\u5bfb\u627e\u8def\u5f84\u7684\u65b9\u6cd5\uff08\u628a\u521d\u59cb\u8282\u70b9\u548c\u76ee\u6807\u8282\u70b9\u5206\u522b\u770b\u4f5c\u521d\u59cb\u6570\u636e\u5e93\u548c\u6ee1\u8db3\u7ec8\u6b62\u6761\u4ef6\u7684\u6570\u636e\u5e93\uff0c\u7136\u540e\u6c42\u5f97\u628a\u4e00\u4e2a\u6570\u636e\u5e93\u53d8\u6362\u4e3a\u53e6\u4e00\u4e2a\u6570\u636e\u5e93\u7684\u89c4\u5219\u5e8f\u5217\u95ee\u9898\u7b49\u4ef7\u4e3a\u6c42\u56fe\u4e2d\u7684\u4e00\u6761\u8def\u5f84\u7684\u95ee\u9898\u3002\uff09
\u3010\u91cd\u6392OPEN\u8868\u3011\u662f\u6309\u7167\u67d0\u4e2a\u8bd5\u63a2\u503c\uff08\u6216\u51c6\u5219\u3001\u542f\u53d1\u4fe1\u606f\u7b49\uff09\u91cd\u65b0\u5bf9\u672a\u6269\u5c55\u7684\u8282\u70b9\u8fdb\u884c\u6392\u5e8f\uff0c
\u5b83\u5c06\u51b3\u5b9a\u8be5\u56fe\u7684\u641c\u7d22\u8fc7\u7a0b\u662f\u65e0\u4fe1\u606f\u641c\u7d22\u8fd8\u662f\u542f\u53d1\u5f0f\u641c\u7d22\u3002

状态空间的一般搜索过程
OPEN表:用于存放刚生成的节点

CLOSE表:用于存放将要扩展或已扩展的节点

1) 把初始节点S0放入OPEN表,并建立只含S0的图,记为G

OPEN:=S0,G:=G0(G0=S0)

2) 检查OPEN表是否为空,若为空则问题无解,退出

LOOP:IF(OPEN)=() THEN EXIT(FAIL)

3) 把OPEN表的第一个节点取出放入CLOSE表,记该节点为节点n

N:=FIRST(OPEN), REMOVE(n,OPEN), ADD(n,CLOSE)

4) 观察节点n是否为目标节点,若是,则求得问题的解,退出

IF GOAL(n) THEN EXIT(SUCCESS)

5) 扩展节点n,生成一组子节点。把其中不是节点n先辈的那些子节点记作集合M,并把这些节点作为节点n的子节点加入G中。

EXPAND(n)-->M(mi), G:=ADD(mi,G)

针对M中子节点的不同情况,分别进行如下处理

对于那些未曾在G中出现过的M成员设置一个指向父节点(n)的指针,并把它放入OPEN表

对于那些先前已在G中出现过的M成员,确定是否要修改指向父节点的指针

对于那些先前已在G中出现,并且已经扩展了的M成员,确定是否需要修改其后继结点指向父节点的指针

6) 按某种搜索策略对OPEN表中的节点进行排序

7) 转第2步

不止

  • 鐘舵佺┖闂存悳绱闂瀛樺湪涓庤妭鐐瑰悧
    绛旓細瀛樺湪銆鐘舵佺┖闂鎼滅储闂瀛樺湪涓庤妭鐐癸紝鑺傜偣Sk琛ㄧず鐘舵侊紝鐘舵佷箣闂寸殑杩炴帴閲囩敤鏈夊悜寮(Arc)锛屽姬涓婃爣浠ユ搷浣滄暟OK鏉ヨ〃绀虹姸鎬佷箣闂寸殑杞崲鍏崇郴锛岀姸鎬佺┖闂存悳绱㈡槸鎵惧埌涓鏉′粠鍒濆鐘舵佸埌鏈缁堢姸鎬佺殑涓鏉℃渶浼樿矾寰勶紝鍙互褰掔粨涓洪殣寮忓浘鐨勬悳绱㈤棶棰橈紝鍥句腑鐨勮妭鐐瑰氨鏄湪鎼滅储杩囩▼涓殑鐘舵併
  • 鍥炴函娉曞湪闂鐨勮В绌洪棿鏍戜腑,鎸変粈涔堢瓥鐣ヤ粠鏍硅妭鐐瑰嚭鍙鎼滅储瑙g┖闂存爲
    绛旓細鍥炴函娉曞湪闂鐨勮В绌洪棿鏍戜腑锛屾寜娣卞害浼樺厛绛栫暐锛屼粠鏍圭粨鐐瑰嚭鍙鎼滅储瑙g┖闂存爲銆傚洖婧硶瀵逛换涓瑙g殑鐢熸垚锛涓鑸閮介噰鐢ㄩ愭鎵╁ぇ瑙g殑鏂瑰紡銆傛瘡鍓嶈繘涓姝ワ紝閮借瘯鍥惧湪褰撳墠閮ㄥ垎瑙g殑鍩虹涓婃墿澶ц閮ㄥ垎瑙c傚畠鍦ㄩ棶棰樼殑鐘舵佺┖闂鏍戜腑锛屼粠寮濮嬬粨鐐癸紙鏍圭粨鐐癸級鍑哄彂锛屼互娣卞害浼樺厛鎼滅储鏁翠釜鐘舵佺┖闂淬傝繖涓紑濮嬬粨鐐规垚涓烘椿缁撶偣锛屽悓鏃朵篃鎴愪负...
  • 鍚彂寮鎼滅储绠楁硶瀹氫箟
    绛旓細鍚彂寮忔悳绱㈢畻娉曟槸涓绉嶅湪鐘舵佺┖闂鎺㈢储杩囩▼涓紝閫氳繃璇勪及姣忎釜鎼滅储鑺傜偣鐨勪环鍊硷紝浠ュ鎵炬渶浣宠矾寰勮嚦鐩爣鐨勬柟娉曘傝繖绉嶇瓥鐣ユ棬鍦ㄥ噺灏戞棤鎰忎箟鐨勬悳绱璺緞锛屼粠鑰屾彁鍗囨晥鐜囥傛牳蹇冨湪浜庡鑺傜偣浣嶇疆鐨勪及浠凤紝杩欐槸鍐冲畾鎼滅储鎬ц兘鐨勫叧閿洜绱犮備及浠峰湪鍚彂寮忔悳绱腑閫氬父閫氳繃浼颁环鍑芥暟鏉ヨ〃绀猴紝渚嬪f(n)锛屽畠鐢变袱閮ㄥ垎缁勬垚锛歡(n)鍜宧(n)銆俧(...
  • 鍒嗘敮闄愮晫鏄粈涔堟剰鎬濆晩?
    绛旓細瀵规瘡涓瓙闂搴旂敤鍚屾牱鐨勫鐞嗘柟寮忥紝纭畾瀹冪殑鍙瑙g┖闂达紝骞舵妸姣忎釜鍙瑙g┖闂翠綔涓轰竴涓妭鐐广傚浜庢瘡涓妭鐐癸紝浼拌瀹冪殑鐩爣鍑芥暟鍊肩殑涓婄晫锛屼綔涓鸿鑺傜偣鐨勪竴涓睘鎬с傛寜鐓т竴瀹氱殑绛栫暐閫夋嫨涓涓妭鐐逛綔涓烘墿灞曠殑瀵硅薄锛屽鍏跺垎鏀苟璁$畻鍏剁洰鏍囧嚱鏁板肩殑涓婄晫锛岀劧鍚庡皢瀛愰棶棰樺姞鍏ュ緟鎼滅储鐨勭姸鎬佺┖闂锛屼互渚胯繘琛屽悗缁悳绱傝繖涓杩囩▼閲嶅...
  • 浜哄伐鏅烘収鎼滃鎶鏈鏂?
    绛旓細鍦ㄩ棶棰樻眰瑙h繃绋嬩腑锛屼汉浠墍闈复鐨勫ぇ澶氭暟鐜板疄闂寰寰娌℃湁纭畾鎬х殑婕旂畻娉曪紝閫氬父闇瑕佺敤鎼滅储婕旂畻娉曟潵瑙e喅銆傜洰鏍囧拰杈惧埌鐩爣鐨勪竴缁勬柟娉曠О涓洪棶棰橈紝鎼滃灏辨槸鐮旂┒杩欎簺鏂规硶鑳藉鍋氫粈涔鐨勮繃绋銆傞棶棰樻眰瑙涓鑸闇瑕佽冭檻涓や釜鍩烘湰闂锛氶鍏堟槸浣跨敤鍚堥傜殑鐘舵佺┖闂琛ㄧず闂锛屽叾娆℃槸娴嬭瘯璇ョ姸鎬佺┖闂翠腑鐩爣鐘舵佹槸鍚﹀嚭鐜般1 浠涔堟槸鍚彂...
  • 浠庡師鐐瑰嚭鍙,閬嶅巻50涓偣,鍐嶅洖鍒板師鐐圭殑鏈鐭矾寰,姹俶atlab绋嬪簭
    绛旓細g(n) 鏄湪鐘舵佺┖闂涓粠鍒濆鑺傜偣鍒皀鑺傜偣鐨勫疄闄呬唬浠凤紝h(n)鏄粠n鍒扮洰鏍囪妭鐐规渶浣宠矾寰勭殑浼拌浠d环銆備繚璇佹壘鍒版渶鐭矾寰勶紙鏈浼樿В鐨勶級鏉′欢锛屽叧閿湪浜庝及浠峰嚱鏁癶(n)鐨勯夊彇锛氫及浠峰糷(n)<= n鍒扮洰鏍囪妭鐐圭殑璺濈瀹為檯鍊硷紝杩欑鎯呭喌涓嬶紝鎼滅储鐨勭偣鏁板锛屾悳绱㈣寖鍥村ぇ锛屾晥鐜囦綆銆備絾鑳藉緱鍒版渶浼樿В銆傚鏋 浼颁环鍊>瀹為檯鍊, ...
  • C绋嬪簭鐨勫姩鎬佽鍒掓槸鍟ユ剰鎬
    绛旓細搂1.2闃舵涓鐘舵 闃舵:灏嗘墍缁欓棶棰鐨勮繃绋,鎸夋椂闂存垨绌洪棿鐗瑰緛鍒嗚В鎴愯嫢骞茬浉浜掕仈绯荤殑闃舵,浠ヤ究鎸夋搴忓幓姹傛瘡闃舵鐨勮В銆傚父鐢ㄥ瓧姣峩琛ㄧず闃舵鍙橀噺銆俒1] 闃舵鏄棶棰樼殑灞炴с傚闃舵鍐崇瓥闂涓氬父瀛樺湪鐫鑻ュ共涓樁娈,濡備笂闈㈢殑渚嬪瓙,灏辨湁A銆丅銆丆銆丏杩欏洓涓樁娈点傚湪涓鑸鎯呭喌涓,闃舵鏄拰鏃堕棿鏈夊叧鐨;浣嗘槸鍦ㄥ緢澶氶棶棰(鎴戠殑鎰熻,鐗瑰埆...
  • java鍥炴函娉曞浣曟墽琛
    绛旓細鍦ㄥ洖婧硶涓紝鏀惧純褰撳墠鍊欓夎В锛屽鎵句笅涓涓欓夎В鐨杩囩▼绉颁负鍥炴函銆傛墿澶у綋鍓嶅欓夎В鐨勮妯★紝浠ョ户缁瘯鎺㈢殑杩囩▼绉颁负鍚戝墠璇曟帰銆 1銆佸洖婧硶鐨勪竴鑸鎻忚堪 鍙敤鍥炴函娉曟眰瑙g殑闂P锛岄氬父瑕佽兘琛ㄨ揪涓猴細瀵逛簬宸茬煡鐨勭敱n鍏冪粍锛坸1锛寈2锛屸︼紝xn锛夌粍鎴愮殑涓涓鐘舵佺┖闂E={锛坸1锛寈2锛屸︼紝xn锛夆垼xi鈭圫i 锛宨=1锛2锛屸︼紝...
  • (鍥) 鍥炴函娉(璇曟帰绠楁硶)
    绛旓細锛1锛夐棶棰樻鏋 锛2锛 閫掑綊鐨勭畻娉曟鏋 鍥炴函娉曟槸瀵硅В绌洪棿鐨娣卞害浼樺厛鎼滅储锛屽湪涓鑸鎯呭喌涓嬩娇鐢ㄩ掑綊鍑芥暟鏉ュ疄鐜板洖婧硶姣旇緝绠鍗曪紝鍏朵腑i涓烘悳绱㈢殑娣卞害锛屾鏋跺涓嬶細锛3锛夐潪閫掑綊鍥炴函妗嗘灦锛堥掑綊杞潪閫掑綊锛岃繖閲屽彲浠ュ弬鑰冩爲鐨勯亶鍘嗭紝鎴栬呯湅涓婄瘒鍗氬鈥斺旈掑綊绠楁硶浠嬬粛锛夌敤鍥炴函娉曡В棰樼殑涓涓樉钁楃壒寰佹槸鍦鎼滅储杩囩▼涓姩鎬佷骇鐢熼棶棰...
  • 鐘舵佺┖闂存悳绱鐨勪紭缂虹偣
    绛旓細灏嗙洿鎺ュ奖鍝嶅埌鏅鸿兘绯荤粺鐨勬ц兘涓庢帹鐞嗘晥鐜囥 鐘舵佺┖闂存悳绱鐨勪紭缂虹偣鏄皢鐩存帴褰卞搷鍒版櫤鑳界郴缁熺殑鎬ц兘涓庢帹鐞嗘晥鐜囷紝鐘舵佺┖闂存悳绱㈢殑鐮旂┒鐒︾偣鍦ㄤ簬璁捐楂樻晥鐨勬悳绱绠楁硶锛屼互闄嶄綆鎼滅储浠d环骞惰В鍐崇粍鍚堢垎鐐搁棶棰樸傜姸鎬佺┖闂存悳绱㈠氨鏄湪瑙d竴涓棶棰樻椂锛屾壘鍒颁竴鏉¤В棰鐨勮繃绋鍙互浠庢眰瑙g殑寮濮嬪埌闂鐨勭粨鏋溿傛槸灏嗛棶棰樻眰瑙h繃绋嬭〃鐜颁负浠庡垵濮...
  • 扩展阅读:扫一扫题目出答案 ... 深度优先搜索的过程 ... 基于状态空间搜索算法 ... 怎么偷偷访问别人空间 ... 私密空间一键恢复 ... 请描述问题的状态空间 ... 人工智能状态空间图 ... 状态空间表示法 ... 状态空间搜索法是谁发明的 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网