2023年IEEE TITS SCI2區TOP,增強回溯搜索算法EBSA+多無人機輔助商業包裹遞送系統飛行規劃,深度解析+性能實測

目錄

    • 1.摘要
    • 2.回溯搜索算法BSA原理
    • 3.模型定義
    • 4.增強回溯搜索算法EBSA
    • 5.結果展示
    • 6.參考文獻
    • 7.算法輔導·應用定制·讀者交流


1.摘要

利用無人機進行商業包裹投遞可以顯著推動物流行業的轉型升級,這得益于節省了人力資源成本,而無人機正在成為智能交通運輸系統的新組成部分。然而,由于電池容量有限,無人機的飛行距離通常受到限制。為應對這一挑戰,本文設計了一種多無人機協作的商業包裹投遞系統,該系統通過廣義服務網絡(GSN)支持長距離投遞。GSN 的每個節點都配備有充電樁,為無人機提供充電服務。考慮到每個節點充電樁數量有限以及無人機電池容量有限,為了確保系統的高效運行,將無人機的飛行規劃問題轉化為一個基于優先級編碼機制的大規模優化問題。為解決這一問題,本文提出了一種增強回溯搜索算法(EBSA),該算法受到所研究飛行規劃問題特點的啟發,并針對回溯搜索算法易陷入局部最優的弱點,增強了其逃逸能力,其核心組件是設計了綜合學習機制和局部逃逸算子。

2.回溯搜索算法BSA原理

【智能算法】回溯搜索算法(BSA)原理及實現

3.模型定義

多無人機輔助商業包裹投遞系統

多無人機輔助商業包裹遞送系統

圖中展示了多無人機協作的商業包裹投遞系統,該系統包括一個倉庫、三架無人機、三個投遞取貨站(DPS)和11個服務站(SS)。倉庫和DPS配備有限數量的充電樁,而每個SS則提供充電服務,所有設施共同構成了一個包含15個節點的廣義服務網絡(GSN),這一網絡使無人機能夠執行長距離投遞任務。

以無人機1為例,其飛行規劃(FP)分為三個階段:

  • 階段1:無人機1從倉庫起飛,達到設定高度后進入恒速飛行狀態;
  • 階段2:無人機1從SS 1飛行至SS 11,并在SS 1、SS 2、SS 7和SS 11充電;
  • 階段3:無人機1從SS 11起飛,并完成投遞任務后降落在DPS 1。

盡管GSN支持長距離投遞,但充電樁數量的限制給系統帶來了挑戰。SS7為無人機1和無人機2提供充電服務,這使得無人機2的飛行規劃可能會影響到無人機1的任務。隨著無人機數量的增加,SS7的充電樁壓力加大,進而影響整個系統的運行效率。

飛行規劃數學模型

首先做出以下五個假設:

  • 所有用于執行投遞任務的無人機完全相同,且電池在倉庫已完全充電;
  • 每架無人機執行獨立任務,不與飛行中的其他障礙物發生碰撞;
  • 無人機有三種飛行狀態,起飛、著陸和正常飛行。無人機的起飛和著陸是垂直進行的,分別從起飛點和著陸點開始。無人機以恒定的速度和高度從一個節點飛行到另一個節點;
  • 影響無人機能量消耗的因素包括起飛、著陸、充電和正常飛行;
  • 影響無人機運行時間的因素包括起飛、著陸、正常飛行、充電及等待時間;
  • 未考慮包裹重量對無人機性能的影響。

充電函數

GSN中的每個節點都可以為無人機提供充電服務,無人機的充電速度通常遵循慢-快-慢的規則,充電函數定義為:
E=E01+exp?(6?t/5)E=\frac{E_0}{1+\exp(6-t/5)} E=1+exp(6?t/5)E0??

其中,ttt是充電時間,E0E_0E0?是電池的總能量容量,EEE是電池的剩余能量。為了計算充電時間,計算方式:
t=30?5ln?(E0E?1)t=30-5\ln\left(\frac{E_0}{E}-1\right) t=30?5ln(EE0???1)
Ec,k,iE_{c,k,i}Ec,k,i?Er,k,iE_{r,k,i}Er,k,i? 分別為無人機kkk在節點iii的當前電量和所需電量,充電時間:
tc,k,i=5ln?(E0Ec,k,i?1)?5ln?(E0Er,k,i?1),k∈[1,n]t_{c,k,i}=5\ln(\frac{E_0}{E_{c,k,i}}-1)-5\ln(\frac{E_0}{E_{r,k,i}}-1),\quad k\in[1,n] tc,k,i?=5ln(Ec,k,i?E0???1)?5ln(Er,k,i?E0???1),k[1,n]
無人機k從倉庫到DPS的FP

連接圖

為了描述GSN中節點之間的空間關系,每個節點都有一個編號。設np為倉庫數量,ns為服務站數量,nd為投遞取貨站數量,Sn為所有節點的編號序列。Sn可表示為:
Sn=[1,2,…,np,np+1,np+2,…,np+ns,np+ns+1,np+ns+2,…,np+ns+nd]\begin{aligned} S_{\mathrm{n}}=[1,2,\ldots,n_{\mathrm{p}},n_{\mathrm{p}}+1,n_{\mathrm{p}}+2,\ldots,n_{\mathrm{p}}+n_{\mathrm{s}},n_{\mathrm{p}} & +n_\mathrm{s}+1,n_\mathrm{p}+n_\mathrm{s}+2,\ldots,n_\mathrm{p}+n_\mathrm{s}+n_\mathrm{d}] \end{aligned} Sn?=[1,2,,np?,np?+1,np?+2,,np?+ns?,np??+ns?+1,np?+ns?+2,,np?+ns?+nd?]?

倉庫的節點編號為1到np;服務站的節點編號為np + 1到np + ns;投遞取貨站的節點編號為np + ns + 1到np + ns + nd,每個節點都有唯一的編號。設m為GSN中節點的總數,m滿足m = np + ns + nd。為了衡量GSN中兩個節點的空間關系,定義連接距離Dc為:
Dc=(1?θ)×Lmax?D_{\mathfrak{c}}=(1-\theta)\times L_{\max} Dc?=(1?θ)×Lmax?

其中,θ\thetaθ為連接因子,Lmax為無人機的最大飛行范圍。如果兩個節點之間的距離小于Dc,則這兩個節點是連接的(無需充電即可飛行);否則,兩個節點不可連接(沒有充電的情況下無人機無法飛行)。

充電樁狀態圖

在GSN中,每個節點配備有限數量的充電樁為無人機提供充電服務。設nc為某個節點的充電樁數量。使用充電樁的規則如下:所有需要充電的無人機按到達順序排隊。當排隊的無人機數量超過nc時,一些無人機必須等待空閑的充電樁。為描述充電樁的狀態,設計了充電樁狀態圖:
Si,j=[ts,i,jte,i,j],i∈[1,ns+nd+np],j∈[1,nc]S_{i,j}=[t_{\mathrm{s},i,j}t_{\mathrm{e},i,j}],\quad i\in[1,n_\mathrm{s}+n_\mathrm{d}+n_\mathrm{p}],j\in[1,n_\mathrm{c}] Si,j?=[ts,i,j?te,i,j?],i[1,ns?+nd?+np?],j[1,nc?]

目標函數

無人機kkk的FP可以用GSN中的一個節點序列來表示。設λk\lambda_kλk?表示無人機kkk的FP所對應的序列的節點數,lkl_klk?表示λk\lambda_kλk?中的節點數。λk\lambda_kλk?表示為:
λk=[λk,1,λk,2,…,λk,lk],lk≥3,λk,p∈Sn,p∈[1,lk].\begin{aligned} \lambda_{k} & =[\lambda_{k,1},\lambda_{k,2},\ldots,\lambda_{k,l_{k}}],\quad l_{k}\geq3, \\ \lambda_{k,p} & \in S_{\mathrm{n}},\quad p\in[1,l_{k}]. \end{aligned} λk?λk,p??=[λk,1?,λk,2?,,λk,lk??],lk?3,Sn?,p[1,lk?].?

td,kt_{d,k}td,k? 表示無人機k在包裹投遞過程中的旅行時間。td,kt_{d,k}td,k? 可以表示為:
td,k=ttl,k+ttf,k+ttc,k+ttw,kt_{d,k}=t_{tl,k}+t_{tf,k}+t_{tc,k}+t_{tw,k} td,k?=ttl,k?+ttf,k?+ttc,k?+ttw,k?

FP問題的目標函數可以定義為:
min?Tatt=f(λ1,λ2,…,λn)=1n∑k=1ntd,k.\min T_{att}=f(\lambda_1,\lambda_2,\ldots,\lambda_n)=\frac{1}{n}\sum_{k=1}^nt_{d,k}. minTatt?=f(λ1?,λ2?,,λn?)=n1?k=1n?td,k?.

4.增強回溯搜索算法EBSA

綜合學習機制

第一種學習策略與BSA的相同;第二種策略通過隨機交換信息來改進解,并引導無人機朝著全局最優解前進;第三種策略通過使用種群信息來提高算法的整體性能,結合了種群均值和局部信息。
Mw=?4×(?5×xi+(1??5)×xj)+(1??4)×1N∑i=1NxiM_w=\phi_4\times(\phi_5\times x_i+(1-\phi_5)\times x_j)+(1-\phi_4)\times\frac{1}{N}\sum_{i=1}^Nx_i Mw?=?4?×(?5?×xi?+(1??5?)×xj?)+(1??4?)×N1?i=1N?xi?
xi=xi+?6×(x??Mw)x_i=x_i+\phi_6\times(x^*-M_w) xi?=xi?+?6?×(x??Mw?)

局部逃逸算子

利用標準正態分布的隨機數,隨機替換解 x?x^{*}x? 中部分模塊的元素。設 γ?\gamma^{*}γ? 表示在 x?x^{*}x? 中被選中模塊的數量:
γ?=?n×?7?\gamma^*=\lceil n\times\phi_7\rceil γ?=?n×?7??
被選中模塊內被替換的元素數量用hs?h_s^*hs??表示:
hs?=?m×?8?,s∈[1,γ?]h_s^*=\lceil m\times\phi_8\rceil,\quad s\in[1,\gamma^*] hs??=?m×?8??,s[1,γ?]

其中,hs?h_s^*hs??是第sss個被選中模塊中被替換元素的數量,?8\phi_8?8?是[0,1]之間的隨機數。令xe,s,j?x_{e,s,j}^*xe,s,j??表示第sss個被選中
模塊中第jjj個被選中的元素,則局部逃逸算子的定義為:
xe,s,j?=μ×xe,s,j?,j∈[1,hs?]x_{e,s,j}^*=\mu\times x_{e,s,j}^*,\quad j\in[1,h_s^*] xe,s,j??=μ×xe,s,j??,j[1,hs??]

EBSA偽代碼

5.結果展示

論文仿真

6.參考文獻

[1] Zhang Y, Zhou G, Hang P, et al. An enhanced backtracking search algorithm for the flight planning of a multi-drones-assisted commercial parcel delivery system[J]. IEEE Transactions on Intelligent Transportation Systems, 2023, 24(10): 11396-11409.

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

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

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

相關文章

window wsl 環境下編譯openharmony,HarmonyOS 三方庫 FFmpeg

1.wsl 創建 C:\Users\Administrator>wsl --list --online 以下是可安裝的有效分發的列表。 使默認分發用 “*” 表示。 使用 wsl --install -d <Distro> 安裝。 NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling Ub…

Kubernetes服務暴露與負載均衡深度探析

目錄 Kubernetes服務基礎 服務類型與適用場景 服務發現與DNS 負載均衡機制 kube-proxy IPVS Ingress控制器 Ingress與服務暴露 Ingress資源 Ingress控制器 負載均衡策略與配置 服務配置 Ingress配置 IPVS配置 高可用性設計 服務冗余 Ingress控制器高可用 負載…

探索飛算 JavaAI 進階:解鎖高效Java開發的新維度

前引&#xff1a;在當今快速迭代的軟件開發領域&#xff0c;Java作為企業級應用的基石&#xff0c;持續推動著技術創新。隨著性能需求的提升&#xff0c;“飛算JAVA”應運而生&#xff0c;它融合了現代優化理念&#xff0c;為開發者提供了一套簡潔、高效的解決方案。本文將深入…

Java大廠面試故事:謝飛機的互聯網醫療系統技術面試(Spring Boot、MyBatis、Kafka、Spring Security、AI等)

Java大廠面試故事&#xff1a;謝飛機的互聯網醫療系統技術面試&#xff08;Spring Boot、MyBatis、Kafka、Spring Security、AI等&#xff09;本文以互聯網醫療場景為主線&#xff0c;模擬Java大廠真實面試流程&#xff0c;由嚴肅面試官與"水貨"程序員謝飛機展開有趣…

Deekseek 學習筆記

目錄 比較全的微調筆記&#xff0c;推薦&#xff1a; ds 硬件gpu測試網站&#xff1a; 比較全的微調筆記&#xff0c;推薦&#xff1a; 零基礎入門&#xff1a;DeepSeek微調教程來了&#xff01;_deepseek微調訓練-CSDN博客 r1微調筆記&#xff1a; https://zhuanlan.zhihu…

aksk前端簽名實現

需求&#xff1a; 頁面和后臺使用aksk進行簽名校驗&#xff0c;普通JSON參數簽名沒問題&#xff0c;但使用formData上傳文件時簽名總是無法通過后臺校驗 關鍵點&#xff1a; 1、瀏覽器在傳遞formData格式數據時會自動隨機boundary&#xff0c;這樣頁面無法在請求發起前拿到隨機…

基于物聯網的智能體重秤設計與實現

標題:基于物聯網的智能體重秤設計與實現內容:1.摘要 隨著物聯網技術的飛速發展&#xff0c;智能設備在人們日常生活中的應用越來越廣泛。本研究的目的是設計并實現一款基于物聯網的智能體重秤&#xff0c;以滿足人們對健康數據實時監測和管理的需求。方法上&#xff0c;采用高精…

安全領域的 AI 采用:主要用例和需避免的錯誤

作者&#xff1a;來自 Elastic Elastic Security Team 安全領域的 AI 采用&#xff1a;主要用例和需避免的錯誤 人工智能&#xff08;artificial intelligence - AI&#xff09;在安全領域的廣泛應用呈現出一種矛盾。一方面&#xff0c;它幫助安全專家大規模應對高級威脅&…

Element-Plus-全局自動引入圖標組件,無需每次import

效果圖配置如下1、核心代碼修改main.js/ts//main.js // 全局注冊圖標組件 import * as ElementPlusIconsVue from element-plus/icons-vue for (const [key, component] of Object.entries(ElementPlusIconsVue)) {app.component(key, component) } app.use(ElementPlusIconsVu…

日歷插件-FullCalendar的詳細使用

一、介紹FullCalendar 是一個功能強大、高度可定制的 JavaScript 日歷組件&#xff0c;用于在網頁中顯示和管理日歷事件。它支持多種視圖&#xff08;月、周、日等&#xff09;&#xff0c;可以輕松集成各種框架&#xff0c;并提供豐富的事件處理功能。二、實操案例具體代碼如下…

【A題解題思路】2025APMCM亞太杯中文賽A題解題思路+可運行代碼參考(無償分享)

注&#xff1a;該內容由“數模加油站”原創&#xff0c;無償分享&#xff0c;可以領取參考但不要利用該內容倒賣&#xff0c;謝謝&#xff01;A 題 農業灌溉系統優化問題1思路框架&#xff1a;1.1 研究背景與問題意義土壤濕度是農業生產中影響作物根系水分供應的關鍵環境指標。…

【JAVA】面向對象三大特性之繼承

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄前言一、繼承的概念和使用細則1.1 繼承的基本使用和含義1.2 關于子類訪問父類成員的問題1.3 super關鍵的引出1.4 super調用父類當中指定的構造方法1.5 關于super和th…

基于深度學習的自動調制識別網絡(持續更新)

基于卷積神經網絡架構 CNN 參考文獻 T.J. O’Shea, J. Corgan, T.C. Clancy, Convolutional radio modulation recognition networks, in: Proc. Int. Conf. Eng. Appl. Neural Netw., Springer, 2016, pp. 213–226. MCNet 參考文獻 T. Huynh-The, C.-H. Hua, Q.-V. Pha…

Java進階---并發編程

一.線程復習1.什么是線程&#xff0c;進程進程是操作系統分配資源的基本單位線程是進程中的一個執行單元(一個獨立執行的任務)&#xff0c;是cpu執行的最小單元2.Java中如何創建線程1.繼承Thread類&#xff0c;重寫run()&#xff0c;直接創建子類的對象2.類實現Runnable接口&am…

小車循跡功能的實現(第六天)

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;開發者-削好皮的Pineapple! &#x1f468;?&#x1f4bb; hello 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 削好皮的Pineapple! 原創 &#x1f468;?&#x1f4…

C++ auto與 for循環

一、數組 #include <iostream> #include <vector> using namespace std; int main() {int vec[6] {1,2,3};for (auto num : vec) { /* num 是 int */ cout << "Hello, world!" << num <<endl;}return 0; }二、STL容器與迭代器 for 循…

【RK3568+PG2L50H開發板實驗例程】FPGA部分 | ROM、RAM、FIFO 的使用

本原創文章由深圳市小眼睛科技有限公司創作&#xff0c;版權歸本公司所有&#xff0c;如需轉載&#xff0c;需授權并注明出處&#xff08;www.meyesemi.com) 1.實驗簡介 實驗目的&#xff1a; 掌握紫光平臺的 RAM、ROM、FIFO IP 的使用 實驗環境&#xff1a; Window11 PDS2022…

力扣-21.合并兩個有序鏈表

題目鏈接 21.合并兩個有序鏈表 class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode p1 list1;ListNode p2 list2;ListNode p new ListNode(0);ListNode cur p;while (p1 ! null && p2 ! null) {if (p1.val > p2.val) …

MoE混合專家模型:千億參數的高效推理引擎與架構革命

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 從稀疏激活到多模態協同的智能計算范式 &#x1f9e9; 一、核心思想與…

【論文筆記】BlockGaussian:巧妙解決大規模場景重建中的偽影問題

論文地址&#xff1a;https://arxiv.org/pdf/2504.09048 大規模場景的重建方法不僅僅對于高空航拍數據有效&#xff0c;而且對于地面大中場景也有增強效果&#xff0c;故專門來學習一下這一方向的知識。感謝作者大佬們的great work。 Abstract 三維高斯潑濺&#xff08;3DGS…