Multi-UAV Task Assignment Benchmark

多无人机任务分配算法测试基准

Introduction

A benchmark for multi-UAV task assignment is presented in order to evaluate different algorithms. An extended Team Orienteering Problem is modeled for a kind of multi-UAV task assignment problem. Three intelligent algorithms, i.e., Genetic Algorithm, Ant Colony Optimization and Particle Swarm Optimization are implemented to solve the problem. A series of experiments with different settings are conducted to evaluate three algorithms. The modeled problem and the evaluation results constitute a benchmark, which can be used to evaluate other algorithms used for multi-UAV task assignment problems.

Please refer to the paper to see more detail.

Xiao, K., Lu, J., Nie, Y., Ma, L., Wang, X., Wang, G.: A Benchmark for Multi-UAV Task Assignment of an Extended Team Orienteering Problem. arXiv preprint

Usage

1. Algorithm input and output

Algorithm input includes vehicle number (scalar), speeds of vehicles ($n\times1$ array), target number (scalar $n$), targets ($(n+1)\times4$ array, the first line is depot, the first column is x position, the second column is y position, the third column is reward and the forth column is time consumption to finish the mission), time limit (scalar). The code below is the initialization of the class GA in ga.py.

def __init__(self, vehicle_num, vehicles_speed, target_num, targets, time_lim)

There should be a function called run() in the algorithm class, and the function should return task assignment plan(array, e.g. [[28, 19, 11], [25, 22, 7, 16, 17, 23], [21, 26, 12, 9, 6, 3], [5, 15, 1], [18, 20, 29]], each subset is a vehicle path) and computational time usage (scalar).

2. Evaluate

You can replace one algorithm below with another algorithm in evaluate.py, and then python evaluate.py. If you don't want to evaluate three algorithm together, you should modify the code properly( this is easy).

ga = GA(vehicle_num,env.vehicles_speed,target_num,env.targets,env.time_lim)

aco = ACO(vehicle_num,target_num,env.vehicles_speed,env.targets,env.time_lim)

pso = PSO(vehicle_num,target_num ,env.targets,env.vehicles_speed,env.time_lim)

ga_result=p.apply_async(ga.run)

aco_result=p.apply_async(aco.run)

pso_result=p.apply_async(pso.run)

p.close()

p.join()

ga_task_assignmet = ga_result.get()[0]

env.run(ga_task_assignmet,'GA',i+1,j+1)

re_ga[i].append((env.total_reward,ga_result.get()[1]))

env.reset()

aco_task_assignmet = aco_result.get()[0]

env.run(aco_task_assignmet,'ACO',i+1,j+1)

re_aco[i].append((env.total_reward,aco_result.get()[1]))

env.reset()

pso_task_assignmet = pso_result.get()[0]

env.run(pso_task_assignmet,'PSO',i+1,j+1)

re_pso[i].append((env.total_reward,pso_result.get()[1]))

3. About reinforcement learning

In Env() in evaluate.py, function step is used for reinforcement learning. Because this is still being developed, we cannot supply a demo. If your algorithm is reinforcement learning, you can try to train it with Env(). Your pull request and issue are welcome.

无人机任务分配 matlab,Multi-UAV Task Assignment Benchmark相关推荐

  1. ICDE-2020 论文简析:空间众包中的预测任务分配 : 一种数据驱动的方法 Predictive Task Assignment in Spatial Crowdsourcing

    ICDE-2020 论文简析:空间众包中的预测任务分配:一种数据驱动的方法 Predictive Task Assignment in Spatial Crowdsourcing: A Data-dr ...

  2. ICDE2020|Predictive Task Assignment in Spatial Crowdsourcing: A Data-driven Approach

    Motivation ----------------------------------------------------------------------------------------- ...

  3. 多无人机任务分配与路径规划算法学习(一)

    本文是阅读"多无人机任务分配与路径规划算法研究_丁家如"文献的学习记录. 记录的第一部分是有关任务分配的知识,各种模型的建立就放到下次来写. 一.多无人机任务分配的本质 目前阅读的 ...

  4. 【无人机】基于蒙特卡洛算法实现无人机任务分配模型附matlab代码

    1 简介 注意:所谓的实时分配指的是实时分配用户位置-根据实时分配的位置更新无人机的位置进而优化最优的分配任务 ​ 2 部分代码 clcclose allclear alldisp('无人机优化模型' ...

  5. matlab cuda的.cu文件应该放在那里_无人机基于Matlab/Simulink的模型开发(连载一)

    "一切可以被控制的对象,都需要被数学量化" 这是笔者从事多年研发工作得出的道理,无论是车辆控制,机器人控制,飞机控制,还是无人机控制,所有和机械运动相关的控制,如果不能被很好的数学 ...

  6. matlab做信号实验需要安装那些模块_无人机基于Matlab/Simulink的模型开发(连载一)...

    "一切可以被控制的对象,都需要被数学量化" 这是笔者从事多年研发工作得出的道理,无论是车辆控制,机器人控制,飞机控制,还是无人机控制,所有和机械运动相关的控制,如果不能被很好的数学 ...

  7. 多无人机(UAV)协同任务分配

    一.协同任务规划的功能与结构 多无人机协同任务规划即是根据一组特定条件的约束,以实现某个准则函数的最优或次优为目标,将某项作战任务分解成一些子任务并分配给多无人机系统中的各个无人机分别去完成的过程. ...

  8. 基于自适应遗传算法的异构多无人机协同任务分配

    基于自适应遗传算法的异构多无人机协同任务分配 Cooperative Task Assignment of a Heterogeneous Multi-UAV System Using an Adap ...

  9. 综述笔记-多无人机多目标任务分配1

    最近要确定开题方向,因此多在看相关的论文,为了提高学习效率,通过笔记形式总结下来,也希望和趣味相投的同学一起探讨,共同进步.(内容设计学者论文,侵权望告知删除). 大目录 选题依据 研究设计方案 目前 ...

最新文章

  1. 【Matlab】怎么判断两个字符串相等?
  2. Linux第二周学习笔记(5)
  3. boost::math::relative_difference相关用法的测试程序
  4. DCMTK:测试衍生图像FG类
  5. 去IOE:去掉“IE”就Ok?
  6. 计算机技术是双证,计算机技术在职研究生单证可以转双证吗
  7. 【转】android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler...
  8. Spring Boot 2.x基础教程:Swagger静态文档的生成
  9. pyqt5 点击开始执行_《快速掌握PyQt5》第一章 PyQt5的起点
  10. 接口框架 python+unittest+request+HTMLTestRunner
  11. PHP error_reporting的使用
  12. embed预览pdf_09.html使用iframe、embed查看pdf不显示(未解决),使用pdf.js预览pdf
  13. JAVA远程session访问,访问独立SESSION服务器
  14. 关于c中的%x及其它格式化符
  15. (17)-- 网页的foot制作
  16. C语言判断一个密码是不是安全的
  17. 2021肥西实验高级中学高考成绩查询,高三年级召开2021年合肥市第二次教学质量检测成绩分析会...
  18. 如何用手机预览PS、XD、sketch的设计稿
  19. 常见html的标题含义(1)
  20. XXL-Job执行器部署

热门文章

  1. 野火指南者移植hal+rtthread+lvgl
  2. Windows 消息大全
  3. 看视频可以倍速播放的(主流播放器都可以)
  4. 计算机怎么一键到桌面快捷键,关于添加一键返回桌面快捷键在win10电脑中的技巧...
  5. 第二讲:线性结构-Go语言实现
  6. python图像音频处理-通过图像傅里叶变换判断相位和幅度的重要性
  7. mysql 危险字符_PHP过滤指定字符串,过滤危险字符
  8. 投影仪显示无法连接服务器失败怎么办,电脑和投影仪连不上怎么办
  9. Django 使用不同配置文件的三种方式
  10. unity3D-learning:UI背包系统