2025年KBS SCI1區TOP,新穎獎勵與ε-貪婪衰減Q-learning算法+局部移動機器人路徑規劃,深度解析+性能實測

目錄

    • 1.摘要
    • 2.新穎獎勵與ε-貪婪衰減Q-learning算法
    • 3.結果展示
    • 4.參考文獻
    • 5.代碼獲取
    • 6.算法輔導·應用定制·讀者交流


1.摘要

路徑規劃是移動機器人的核心任務,需要在高效導航的同時規避障礙。本文提出了一種改進Q-learning算法——定制化獎勵與ε-貪婪衰減Q-learning(TRE-QL),該方法通過對重復訪問狀態進行懲罰,引導智能體探索新路徑;并設計了基于累計獎勵動態調整的ε-貪婪衰減策略,實現了從探索到利用的平滑過渡,保證學習過程的穩定性。

2.新穎獎勵與ε-貪婪衰減Q-learning算法

Q-learning用于移動機器人路徑規劃,通過試錯學習在未知環境中更新Q表,逐步形成最優策略,該方法能引導機器人以最短無障礙路徑到達目標,并在迭代中收斂,實現高效導航與避障。

環境建模

Environment modeling using grid discretization

在Q-learning路徑規劃中,環境常通過網格離散化建模,將空間劃分為空閑單元與障礙單元,機器人在網格中選擇動作并判斷位置是否合法,從而實現路徑搜索。
L(st,at)=lt,lt∈{E,lt=eO,lt=oL(s_t,a_t)=l_t,\quad l_t\in \begin{cases} E, & l_t=e \\ O, & l_t=o & \end{cases} L(st?,at?)=lt?,lt?{E,O,?lt?=elt?=o??

環境網格化離散化為Q-learning路徑規劃提供狀態–動作框架,簡化Q表更新并顯著壓縮狀態空間,從而降低計算復雜度并加快收斂。該方法在室內或結構化環境中尤為適用,能高效支持實時路徑規劃。網格大小決定精度與效率的平衡:小網格提高路徑精度但計算代價大,大網格則降低負荷但精度不足。

動作空間

在網格化環境中,機器人動作空間采用4鄰域運動,每次移動一個單元格,該有限離散動作集簡化了Q-learning,實現高效路徑搜索與Q表更新。

TRE-QL算法通過優化獎勵函數與引入動態ε-貪婪衰減機制,有效緩解了傳統Q-learning在探索—開發平衡中的局限性。實驗表明,當障礙密度超過10%時,固定 ε 值往往導致收斂失敗或陷入次優路徑。TRE-QL 根據累計獎勵自適應調整探索率,實現從探索到利用的平滑過渡,避免過早收斂并穩定智能體行為,從而在復雜環境中提升學習效率和收斂性能,顯著增強了Q-learning在受限環境下的魯棒性。

獎勵函數

在強化學習中,獎勵函數是智能體學習的核心反饋機制,直接決定其策略能否收斂至最優。傳統Q-learning常通過獎勵目標、懲罰碰撞的方式定義獎勵函數:
r={?r1collisionr2gettarget?r3other?statesr= \begin{cases} -r_1 & \mathrm{collision} \\ r_2 & \mathrm{get~target} \\ -r_3 & \text{other states} & \end{cases} r=?????r1?r2??r3??collisionget?targetother?states??

傳統Q-learning獎勵函數設定為:到達目標得正獎勵 +r2+r_2+r2?,碰撞受懲罰 ?r1-r_1?r1?,其他非目標狀態為?r3-r_3?r3?,且滿足r2>r3>r1r_2>r_3>r_1r2?>r3?>r1?,以突出先到達目標、再避障優先級。但該設計缺乏對重復訪問狀態的懲罰,易導致智能體在狀態間振蕩、學習效率降低。為此,本文提出優化離散獎勵函數:在單次回合內若狀態被重復訪問,則施加動態懲罰鼓勵探索新路徑、提升收斂速度與學習效率。
P(e)=C×KeP(e)=C\times K^e P(e)=C×Ke

在TRE-QL中,若累計獎勵Tcumulative>TthresholdT_\mathrm{cumulative}>T_\mathrm{threshold}Tcumulative?>Tthreshold?,則引入與成功經驗次數 eee 相關的動態懲罰機制,其中常數CCCKKK控制懲罰的初始強度與衰減速率。由此,TRE-QL獎勵函數在傳統設計基礎上引入狀態重復訪問懲罰與動態調節項,更好地平衡目標達成與探索效率,實現更快、更穩定的收斂。
r={?r1collisionr2gettarget?r4=?P(e)revisit?same?state?more?than?once?r3other?statesr= \begin{cases} -r_1 & \mathrm{collision} \\ r_2 & \mathrm{get~target} \\ -r_4=-P(e) & \text{revisit same state more than once} \\ -r_3 & \text{other states} & \end{cases} r=?????r1?r2??r4?=?P(e)?r3??collisionget?targetrevisit?same?state?more?than?onceother?states??

動作選擇策略

為避免智能體過早收斂,TRE-QL引入自適應ε-貪婪衰減機制,其核心思想是在學習初期保持足夠探索,隨后依據累計獎勵動態調整探索率,使智能體平滑過渡到利用階段。若ε下降過快,會導致過早利用并陷入次優;若下降過慢,則會延遲收斂。自適應衰減通過累計獎勵與閾值比較來調控ε,若獎勵超過閾值,則以衰減因子更新ε:
?t+1=?t×CdifRcumulative>Tthreshold\epsilon_{t+1}=\epsilon_{t}\times C_{d}\quad\mathrm{if}\quad R_{\text{cumulative}}>T_{\mathrm{threshold}} ?t+1?=?t?×Cd?ifRcumulative?>Tthreshold?

3.結果展示

論文仿真

4.參考文獻

[1] Ben-Akka M, Tanougast C, Diou C. Novel design of reward and epsilon-greedy decay strategy tailored for Q-learning in optimizing local mobile robot path planning[J]. Knowledge-Based Systems, 2025: 113836.

5.代碼獲取

xx

6.算法輔導·應用定制·讀者交流

xx

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96689.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96689.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96689.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

運行npm run命令報錯“error:0308010C:digital envelope routines::unsupported”

下載的前后端分離架構的開源項目,運行“npm run serve”命令啟動前端服務時報錯“error:0308010C:digital envelope routines::unsupported”,這個錯誤通常是由于Node.js版本與項目依賴不兼容導致的,特別是在Node.js v17版本中,百…

AI計算提效關鍵。自適應彈性加速,基于存算架構做浮點運算

一、自適應彈性加速是提升芯片能效比的有力手段自適應彈性加速技術是現代芯片設計中提升能效比的關鍵路徑之一。它摒棄了傳統芯片在設計時采用的靜態、固化的資源分配與功能設定模式,通過引入動態調整機制,使得芯片能夠根據實時的應用需求和負載變化&…

Spring Boot測試陷阱:失敗測試為何“傳染”其他用例?

一個測試失敗,為何“傳染”其他測試?——Spring Boot 單元測試獨立性與泛型陷阱實戰解析 🚩 問題背景 在日常開發中,我們常會遇到這樣的場景: 正在開發新功能 A,寫了一個 testFeatureA() 測試方法&#xff…

Web開發中的CGI:通用網關接口詳解

一、CGI的設計意圖:解決Web的"靜態"困境 在CGI出現之前,Web服務器只能做一件事:返回預先寫好的靜態文件(HTML、圖片等)。每個用戶看到的內容都是一模一樣的。 設計意圖很簡單但卻革命性: 讓Web服…

在 SSMS 中查找和打開已保存的查詢文件

在 SSMS 中查找和打開已保存的查詢文件 在 SQL Server Management Studio (SSMS) 中,您可以輕松地查找并打開已保存的查詢文件(通常以 .sql 擴展名保存)。SSMS 提供了直觀的界面支持直接打開這些文件,無需額外工具。以下是詳細步驟…

Protues使用說明及Protues與Keil聯合仿真實現點亮小燈和流水燈

目錄 1Protues介紹及新建工程 1.1進入軟件 1.2文件創建 1.3默認選項 1.5設計面板 1.6添加元器件 1.7終端模式 1.8激勵源模式 1.9探針模式 1.10儀表 1.11二維直線 1.12字符 2 Protues電路原理圖仿真 2.1 220V交流電轉5V直流電穩壓電路仿真原理圖 2.1.1 仿真原理圖…

Linux PCI 子系統:工作原理與實現機制深度分析

Linux PCI 子系統:工作原理與實現機制深度分析 1. Linux PCI 子系統基礎概念 1.1 PCI/PCIe 基礎概念回顧 總線拓撲: PCI/PCIe 系統是一個樹形結構。CPU 連接到 Root Complex (RC),RC 連接至 PCIe 交換機 (Switch) 和 PCIe 端點設備 (Endpoint…

RabbitMQ 全面指南:架構解析與案例實戰

目錄一、RabbitMQ 簡介1.1 什么是 RabbitMQ1.2 RabbitMQ 的核心組件1.3 RabbitMQ 的應用場景二、環境搭建2.1 安裝 RabbitMQ2.2 安裝 Erlang2.3 配置 RabbitMQ三、RabbitMQ 核心概念與工作原理3.1 消息模型3.2 交換機類型3.3 隊列特性3.4 消息確認機制四、Spring Boot 集成 Rab…

6.2 el-menu

一、 <el-menu>: 菜單組件&#xff0c;定義了側邊欄內部的具體導航項、層級結構和交互行為。<el-container><!-- 側邊欄容器 --><el-aside width"200px"><!-- 菜單內容 --><el-menu default-active"1" class"el-men…

Windows 筆記本實現僅關屏仍工作:一種更便捷的 “偽熄屏” 方案

在使用 Windows 筆記本作為臨時服務器或需要后臺持續運行程序時&#xff0c;我們常面臨一個需求&#xff1a;關閉屏幕以節省電量或減少光污染&#xff0c;同時保持系統正常工作。然而&#xff0c;網絡上流傳的諸多方法往往存在局限&#xff0c;要么無法兼顧 “熄屏” 與 “工作…

Linux應急響應一般思路(二)

進程排查進程(Process)是計算機中的程序關于某數據集合上的一次運行活動&#xff0c;是系統進行資源分配和調度的基本單位&#xff0c;是操作系統結構的基礎無論是在Windows系統還是Linux系統中&#xff0c;主機在感染惡意程序后&#xff0c;惡意程序都會啟動相應的進程&#x…

基于 SkyWalking + Elasticsearch + Grafana 的可落地調用鏈監控方案

這個方案成熟穩定、社區活躍、部署相對簡單,非常適合中小型團隊作為第一代調用鏈系統落地。 一、核心組件選型與角色 組件 版本建議 角色 優點 Apache SkyWalking v9.x+ 核心平臺 (采集、分析、存儲、UI) 國產優秀,Java Agent無侵入接入,功能全面,性能損耗低 Elasticsearc…

APP逆向——某站device-id參數

免責聲明本博客所涉及的 爬蟲技術、逆向分析方法 僅用于 學習、研究和技術交流。文中所有示例代碼、工具和方法&#xff0c;均不得用于以下行為&#xff1a;未經授權的數據采集侵犯他人知識產權干擾或破壞正常業務系統任何違反國家法律法規的行為因讀者將本教程內容用于 非法用…

C/C++數據結構之循環鏈表

概述循環鏈表本質上也是一個單向或雙向鏈表&#xff0c;但其最后一個節點的指針并不指向NULL&#xff0c;而是指向鏈表的第一個節點&#xff0c;從而形成一個閉合的環。這種結構使得在遍歷鏈表時&#xff0c;可以從任意一個節點開始&#xff0c;并最終回到起始點。音樂播放軟件…

Mongodb的教程

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言 一、mongodb是什么&#xff1f; 二、mongodb的下載與安裝教程 三、mongodb的常見操作 總結 前言 在當今數據驅動的世界中&#xff0c;數據庫技術是構建高效…

MySQL視圖有什么用?一文讀懂虛擬表的六大核心價值

引言 在數據庫開發中&#xff0c;你是否遇到過這樣的困境&#xff1a;業務人員需要查看復雜關聯數據卻難以理解多表JOIN&#xff0c;或需要限制某些用戶只能訪問特定字段&#xff1f;MySQL視圖正是為此設計的"數據透視鏡"。本文將通過官方定義、典型場景和最佳實踐&a…

ubuntu24.04 frps服務器端自動啟動設置【2025-08-20】

Ubuntu 24.04采用systemd作為默認的init系統&#xff0c;我們可以通過創建systemd服務單元文件來實現開機自啟動。以下是具體實施步驟&#xff1a;創建服務文件使用文本編輯器創建服務配置文件&#xff1a;sudo nano /etc/systemd/system/frps.service編寫服務配置內容在文件中…

數據結構與算法-字符串、數組和廣義表(String Array List)

3 字符串、數組和廣義表&#xff08;String Array List&#xff09; 3.1 字符串&#xff08;String&#xff09; 3.1.1 串的順序存儲 a. 定長順序&#xff1a; #define MAXLEN 255 // 串的定長順序存儲結構 typedef struct {char ch[MAXLEN 1]; // 字符串數據&#xff0c;…

【網絡運維】Shell 腳本編程:if 條件語句

Shell 腳本編程&#xff1a;if 條件語句 if 條件語句概述 if 條件語句是 Linux Shell 腳本編程中最基礎且使用頻率最高的控制結構之一&#xff0c;其語義類似于自然語言中的“如果…那么…”。熟練掌握 if 語句的用法&#xff0c;是成為一名合格運維工程師的基本要求。 if 語句…

浮點型的位結構和表示的值

位結構float 各部分的含義 符號位&#xff1a; 為 0 表示正數&#xff0c;為 1 表示負數。 指數部分&#xff1a; 指數部分是一個移碼。指數部分有 8 位&#xff0c;首先當成無符號整型&#xff0c;則值域是 [0, 255] .因為是移碼&#xff0c;所以 移碼值 無符號整型值 - 127 …