資源簡介
1.提供了幾個A*算法的參考博文;
2.采用Matlab實現A*算法;
3.本程序有plot_map函數,每次尋找都會動態繪制close節點和open節點,直觀展示尋路過程
代碼片段和文件信息
function?path=AStar(obstaclemap)
%{
Astar算法思路
1.將起始點放在Openlist中
2.重復以下過程:
??
??首先判斷是否到達目標點,或無路徑
????>>如果終點已加入到Openlist中,則已找到路徑(此時起始點就是目標點,無需再找)
????>>Openlist為空,無路徑
??a.按照Openlist中的第三列(代價函數F)進行排序,查找F值最小的節點
??b.把這個F值最小的節點移到Closelist中作為?當前節點
??c.對當前節點周圍的8個相鄰節點:
????>>如果它不可達,忽略它
????>>如果它在Closelist中,忽略它
????>>如果它不在Openlist中,加放Openlist,并把當前節點設置為它的父節點,記錄該節點的F值
????>>如果它已經在Openlist中,檢查經當前節點到達那里是否更好(用G或F值判斷),
?????????>如果更好,則將當前節點設置為其父節點,并更新FG值;如果不好,則不作處理
3.保存路徑
%}
%用于存儲路徑
path=[];
%OpenList
open=[];
%CloseList
close=[];
%findFlag用于判斷while循環是否結束
findFlag=false;
%================1.將起始點放在Openlist中======================
%open變量每一行??[節點坐標,代價值F=G+H代價值G父節點坐標]
open?=[map.start(1)?map.start(2)??0+h(map.startmap.goal)??0??map.start(1)??map.start(2)];
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4013??2019-03-26?21:58??A_star算法Matlab實現\AStar.m
?????文件???????1697??2019-03-26?21:59??A_star算法Matlab實現\FindList.m
?????文件????????344??2019-03-26?22:01??A_star算法Matlab實現\GetBoundary.m
?????文件????????599??2019-03-26?22:02??A_star算法Matlab實現\GetObstacle.m
?????文件????????319??2019-03-26?22:03??A_star算法Matlab實現\GetPath.m
?????文件????????139??2019-03-26?22:03??A_star算法Matlab實現\h.m
?????文件????????238??2019-03-26?22:04??A_star算法Matlab實現\isObstacle.m
?????文件????????478??2019-03-26?22:05??A_star算法Matlab實現\isopen.m
?????文件????????304??2019-03-26?22:05??A_star算法Matlab實現\MotionModel.m
?????文件????????705??2019-03-26?21:55??A_star算法Matlab實現\pathfinding.m
?????文件????????777??2019-03-26?22:06??A_star算法Matlab實現\plot_map.m
?????目錄??????????0??2019-03-26?22:17??A_star算法Matlab實現
-----------?---------??----------?-----??----
?????????????????9613????????????????????12
- 上一篇:雷達matlab仿真
- 下一篇:Matlab下輸出SVG圖的工具包plot2svg
評論
共有 條評論