色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

路徑規(guī)劃算法實現(xiàn)原理

新機(jī)器視覺 ? 來源:CSDN-寫B(tài)ug那些事 ? 2023-09-06 15:36 ? 次閱讀

前言

算法原理:參考路徑規(guī)劃算法學(xué)習(xí)Day1

此方法會結(jié)合網(wǎng)絡(luò)占用法-柵格法來進(jìn)行實現(xiàn)

提示:

本文會用matlab實現(xiàn)Dijkstra算法,并且會分享一些函數(shù)用法的鏈接,也是本人學(xué)習(xí)得來,供大家參考,批評指正。

1、Dijkstra算法

1.1、地圖創(chuàng)建

總所周知:柵格法生成地圖常規(guī)是的自己一個一個打,這樣既麻煩還浪費時間。

這里介紹幾種方法:

way1:在命令框中碼:map=rand(k)>0.7 %k代表多少維地圖

way2:在matlab中安裝Robotics Toolbox工具箱 里有專門的函數(shù)makemap可以幫助我們生成一張地圖

1.2、matlab實現(xiàn)

function path=DJS(Map,origin,destination)
cmap = [1 1 1; ...white
    0 0 0; ...black
    0 1 0; ...green
    1 1 0; ...yellow
    1 0 0; ...red
    0 0 1; ...blue
    0 1 1];
  colormap(cmap);%map visualization 


[rows, cols]=size(Map);
logical_map = logical(Map);
map=zeros(rows, cols);
map(~logical_map)=1;%free
map(logical_map)=2;%obstacle
%定義一個變量node_cost_list來保存鄰居以及它們到起始格的路程
%node_cost_list來保存這些信息,初始化為 Inf,表示從沒有訪問過。一旦有值,就說明是鄰居,賦值的大小就表示該點跟起始點的路程。一旦變成紅色,就把它的值再改回 Inf。
node_cost_list = Inf(rows, cols);
node_cost_list(origin(1),origin(2))=0;% set the node_cost of the origin node zero
%定義變量parent_list來保存路徑
parent_list=zeros(rows, cols);% create parent_list
destination_index=sub2ind(size(Map),destination(1),destination(2));
origin_index=sub2ind(size(Map),origin(1),origin(2));


plan_success=false;
while true
  map(origin(1),origin(2))=3;
      map(destination(1),destination(2))=4;


      image(0.5,0.5,map);
      grid on;
      set(gca,'xtick',1:1:rows);
      set(gca,'ytick',1:1:cols);
      axis image;
      drawnow;
      %找出距離最小的節(jié)點     
      %搜索中心與起始點的路程min_node,搜索中心的索引坐標(biāo):current_node,
      [min_node,current_node]=min(node_cost_list(:));
      if(min_node == inf || current_node == destination_index)
        plan_success=true;
        break;
      end
      node_cost_list(current_node) = inf;%當(dāng)前搜索中心這個位置賦值為 Inf,表示它已經(jīng)當(dāng)過搜索中心了。min函數(shù)就不會再找這個位置
      map(current_node) = 5;
      [i,j]=ind2sub(size(Map),current_node);
      for k = 0:3 % four direction
        if(k == 0)
          adjacent_node = [i-1,j];
           elseif (k == 1)
          adjacent_node = [i+1,j];
          elseif (k == 2)
            adjacent_node = [i,j-1];
          elseif(k == 3)
          adjacent_node = [i,j+1];
        end
        if((adjacent_node(1)>0 && adjacent_node(1)<=rows) && (adjacent_node(2)>0 &&adjacent_node(2)<=cols))
 ? ? ? ? ? ? ? ? ? ?if(map(adjacent_node(1),adjacent_node(2)) ~= 2 && map(adjacent_node(1),adjacent_node(2)) ~= 5)
 ? ? ? ? ? ? ? ? ? ? ? if(node_cost_list(adjacent_node(1),adjacent_node(2)) > min_node + 1)
             node_cost_list(adjacent_node(1),adjacent_node(2)) = min_node + 1;
             if(map(adjacent_node(1),adjacent_node(2)) == 3)
               parent_list(adjacent_node(1),adjacent_node(2)) = 0;%如果相鄰節(jié)點是原點,則將父節(jié)點設(shè)置為0。
             else
               parent_list(adjacent_node(1),adjacent_node(2))=current_node;%否則設(shè)置當(dāng)前節(jié)點為父節(jié)點
             end
             map(adjacent_node(1),adjacent_node(2)) = 6;
            end
          end
        end
      end
end


if(plan_success)
 path=[];
 node=destination_index;
 while parent_list(node)~=0
  path=[parent_list(node),path];
  node=parent_list(node);
 end
 for k = 2:size(path,2)
  map(path(k)) = 7;
  image(0.5,0.5,map);
  grid on;
  set(gca,'xtick',1:1:rows);
  set(gca,'ytick',1:1:cols);
  axis image;
  drawnow;
 end
else
  path=[];
end
end

1.3、20*20地圖

1.4、50*50地圖

gif太大無法上傳,后面我會完善。

主要就是想對比一下,可以讓大家看到迪杰斯特拉算法的缺點

2、A*(Astar)算法

2.1、原理

A*(A-Star)算法是一種靜態(tài)路網(wǎng)中求解最短路徑最有效的直接搜索方法,也是解決許多搜索問題的有效算法。

算法中的距離估算值與實際值越接近,最終搜索速度越快。

公式表示為:f(n)=g(n)+h(n)。

其中:

f(n) :是從初始狀態(tài)經(jīng)由狀態(tài)n到目標(biāo)狀態(tài)的代價估計,

g(n):是在狀態(tài)空間中從初始狀態(tài)到狀態(tài)n的實際代價,

h(n):是從狀態(tài)n到目標(biāo)狀態(tài)的最佳路徑的估計代價。

對于路徑搜索問題,狀態(tài)就是圖中的節(jié)點,代價就是距離

h(n)的選取保證找到最短路徑(最優(yōu)解的)條件,關(guān)鍵在于估價函數(shù)f(n)的選?。ɑ蛘哒fh(n)的選?。?。

我們以d(n)表達(dá)狀態(tài)n到目標(biāo)狀態(tài)的距離,那么h(n)的選取大致有如下三種情況:

如果h(n)< d(n)到目標(biāo)狀態(tài)的實際距離,這種情況下,搜索的點數(shù)多,搜索范圍大,效率低。但能得到最優(yōu)解。

如果h(n)=d(n),即距離估計h(n)等于最短距離,那么搜索將嚴(yán)格沿著最短路徑進(jìn)行, 此時的搜索效率是最高的。

如果 h(n)>d(n),搜索的點數(shù)少,搜索范圍小,效率高,但不能保證得到最優(yōu)解。

A* 算法是在迪杰斯特拉算法的基礎(chǔ)上進(jìn)行改進(jìn)的一種算法。

與之不同的是,A算法是一種啟發(fā)式搜索,不會像dijkstra算法一樣對整個地圖都進(jìn)行遍歷,A算法是有方向的遍歷。

2.2、啟發(fā)式搜索

啟發(fā)式搜索(Heuristically Search)又稱為有信息搜索(Informed Search)。

它是利用問題擁有的啟發(fā)信息來引導(dǎo)搜索,達(dá)到減少搜索范圍、降低問題復(fù)雜度的目的。

這種利用啟發(fā)信息的搜索過程稱為啟發(fā)式搜索。

這種搜索方式優(yōu)點是搜索快,提高了效率,缺點就是得到的解有可能是次優(yōu)解也有可能什么都得不到。

一句話就是犧牲了精度得到了效率。

3、總結(jié)

Dijkstra與A* 對比

相同點:

兩者都是以尋找最短路徑為目的的算法。

不同點:

Dijkstra算法遍歷的時候是對4周平等對待,沒有區(qū)分的盲目進(jìn)行遍歷。

A* 算法是在迪杰斯特拉算法的基礎(chǔ)上進(jìn)行改進(jìn)的一種算法。

與之不同的是,A* 算法是一種啟發(fā)式搜索,不會像dijkstra算法一樣對整個地圖都進(jìn)行遍歷,A* 算法是有方向的遍歷。

它會對周圍各點進(jìn)行評估,然后再進(jìn)行搜索。

后續(xù)程序依舊是基于柵格進(jìn)行,用matlab實現(xiàn)

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    185

    文章

    2977

    瀏覽量

    230645
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4620

    瀏覽量

    93047
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4338

    瀏覽量

    62739
  • 路徑規(guī)劃
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    15332

原文標(biāo)題:路徑規(guī)劃算法學(xué)習(xí)

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于過Python+matplotlib數(shù)據(jù)可視化路徑規(guī)劃算法實現(xiàn)

    Astar潛在地搜索圖中一個很大的區(qū)域。和Dijkstra一樣,Astar能用于搜索最短路徑。和BFS一樣,Astar能用啟發(fā)式函數(shù)引導(dǎo)它自己。在簡單的情況中,它和BFS一樣快。
    的頭像 發(fā)表于 11-09 15:03 ?1676次閱讀
    基于過Python+matplotlib數(shù)據(jù)可視化<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃算法</b><b class='flag-5'>實現(xiàn)</b>

    智能清潔機(jī)器人

    ;                 潔機(jī)器人路徑規(guī)劃算法,實現(xiàn)
    發(fā)表于 11-08 22:30

    動態(tài)規(guī)劃算法。

    動態(tài)規(guī)劃算法資料。
    發(fā)表于 08-30 20:44

    LCS的動態(tài)規(guī)劃算法

    LCS的動態(tài)規(guī)劃算法(自底向上)
    發(fā)表于 05-25 15:06

    你知道有哪幾種常見的車輛路徑規(guī)劃算法嗎?

    如何去提高汽車的主動安全性和交通安全性?從算法上解讀自動駕駛是如何實現(xiàn)的?有哪幾種常見的車輛路徑規(guī)劃算法?
    發(fā)表于 06-17 10:56

    基于插值A(chǔ)算法路徑規(guī)劃

    提出一個基于插值的路徑規(guī)劃算法-插值 A*。此算法可以在每個柵格路徑代價不一致的情況下生成一條平滑路徑。由于大多數(shù)基于柵格
    發(fā)表于 03-03 14:59 ?16次下載

    基于實時交通信息的動態(tài)路徑規(guī)劃算法性能比較_黃西洲

    基于實時交通信息的動態(tài)路徑規(guī)劃算法性能比較_黃西洲
    發(fā)表于 03-16 10:04 ?0次下載

    基于路徑跟蹤方法的路徑規(guī)劃算法

    為解決拖掛式移動機(jī)器人系統(tǒng)路徑規(guī)劃算法精準(zhǔn)性低、穩(wěn)定性差和無法考慮系統(tǒng)間安全性等的問題,提出一種基于路徑跟蹤方法的路徑規(guī)劃算法。該
    發(fā)表于 12-04 14:18 ?6次下載
    基于<b class='flag-5'>路徑</b>跟蹤方法的<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃算法</b>

    如何使用蟻群算法及博弈論進(jìn)行多Agent路徑規(guī)劃算法實現(xiàn)資料說明

    針對多 Agent 路徑規(guī)劃問題,提出了一個兩階段的路徑規(guī)劃算法。首先,利用改進(jìn)的蟻群算法來為每個Agent
    發(fā)表于 04-26 16:24 ?10次下載
    如何使用蟻群<b class='flag-5'>算法</b>及博弈論進(jìn)行多Agent<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃算法</b>的<b class='flag-5'>實現(xiàn)</b>資料說明

    自動駕駛汽車四種常用的路徑規(guī)劃算法解析

    自動駕駛汽車的路徑規(guī)劃算法最早源于機(jī)器人的路徑規(guī)劃研究,但是就工況而言卻比機(jī)器人的路徑規(guī)劃復(fù)雜得
    發(fā)表于 03-08 17:29 ?1.7w次閱讀

    水下航行器自主巡航的路徑規(guī)劃算法實現(xiàn)

    路徑規(guī)劃算法是自主水下航行器(AUV)完成水下自主巡航的核心算法之一。分別綜述了基于環(huán)境建模和路徑搜索兩類AUⅣ路徑
    發(fā)表于 04-09 16:01 ?8次下載
    水下航行器自主巡航的<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃算法</b><b class='flag-5'>實現(xiàn)</b>

    嵌入式GIS中最優(yōu)路徑規(guī)劃算法研究與實現(xiàn)

    嵌入式GIS中最優(yōu)路徑規(guī)劃算法研究與實現(xiàn)(嵌入式開發(fā)項目經(jīng)理)-嵌入式GIS中最優(yōu)路徑規(guī)劃算法研究與實現(xiàn)
    發(fā)表于 07-30 12:49 ?4次下載
    嵌入式GIS中最優(yōu)<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃算法</b>研究與<b class='flag-5'>實現(xiàn)</b>

    A星路徑規(guī)劃算法完整代碼資料匯總

    A星路徑規(guī)劃算法完整代碼資料匯總
    發(fā)表于 12-03 17:16 ?11次下載

    機(jī)器人基于搜索和基于采樣的路徑規(guī)劃算法

    基于搜索的路徑規(guī)劃算法已經(jīng)較為成熟且得到了廣泛應(yīng)用,常常被用于游戲中人物和移動機(jī)器人的路徑規(guī)劃
    發(fā)表于 10-13 14:23 ?396次閱讀
    機(jī)器人基于搜索和基于采樣的<b class='flag-5'>路徑</b><b class='flag-5'>規(guī)劃算法</b>

    全局路徑規(guī)劃RRT算法原理

    通往目的地的安全和無碰撞的路徑。 路徑規(guī)劃問題可以分為兩個方面: (一)全局路徑規(guī)劃:全局路徑
    的頭像 發(fā)表于 11-24 15:57 ?1092次閱讀
    主站蜘蛛池模板: 日本aaaa| 伊人大香人妻在线播放| 免费在线视频一区| 男女床上黄色| 欧美亚洲曰韩一本道| 日韩欧美视频一区二区| 我年轻漂亮的继坶2中字在线播放| 无人区大片中文字幕在线| 亚洲欧洲一级| 777EY_卡通动漫_1页| 啊…嗯啊好深男男高h文| 国产成人免费网站在线观看 | 人妻插B视频一区二区三区| 丝袜足控免费网站xx91| 亚洲性夜夜夜色综合网| 97综合久久| 国产成人在线视频| 久久99re热在线播放7| 男女车车的车车网站W98免费| 色爱AV综合区| 野花日本手机观看大全免费3| 99国产精品偷窥熟女精品视频| 国产69精品久久久熟女| 九色91精品国产网站| 欧美精品高潮呻吟AV久久| 午夜婷婷一夜七次郎| 18av 在线| 国产精品2020观看久久| 久久re视频这里精品09首页| 欧美日韩另类在线观看视频| 亚洲 欧美 国产在线视频| 91麻精品国产91久久久久| 国产成人精品123区免费视频 | 91久久精一区二区三区大全| 国产AV午夜精品一区二区入口| 久久re热在线视频精99| 日韩精品久久久久影院| 一本道本线中文无码| 草柳最新地址| 久久久久九九| 翁熄性放纵交换300章|