Author:盒子先生

2020.10.26

知乎主页:https://www.zhihu.com/people/he-zi-xian-sheng-30

First Step:

对于rcrs来说,其实一共有六种智能体:AT、FB、PF、AmbulanceCentre、FireStation、PoliceOffice。对于无中心策略来说,一般只考虑前三种智能体的策略,对于有中心策略,需要考虑到六种智能体(救援智能体+中心智能体)。我们校队目前采用的是无中心策略。

为了对平台有个整体认识,首先需要读读下面代码:

Roborescue新手入门

其中,think函数中表示了每类智能体的思考过程,即代码调用过程。

然后,需要弄明白几乎每个类的入口参数含义,包含了什么数据,以及如何加入自己的数据、如何对其中预计算

Roborescue新手入门

然后需要学学怎么重写自己的文件,这里可以参考平台手册,以及自己读读config文件:

Roborescue新手入门

明白文件的调用流程。

最后翻翻其它文件夹下的代码,比如log日志存在哪了之类的,不要只看src里的代码。

Second Step:

知道了平台的大致运行流程,我们就可以仔细看看核心代码部分。

Roborescue新手入门

三个文件夹分别表示:算法部分、中心智能体决策部分、救援智能体决策部分。

其中,算法部分只提供了简单的A*路径规划,可以在此基础上改进路径规划算法。也需要增加其它算法,比如分区算法Kmeans(将整个地图划分成不同区块,将智能体分配到不同区域)、找到获取的外边缘凸包算法(找到外边缘从外到内灭火可以很大程度抑制火势的扩张)。

中心智能体决策部分暂时不管,校赛跑的命令其实是没有开的。(-1表示挂在挂载所有智能体,0表示不挂载)

救援智能体决策部分 FB > PF > AT:

如何最高效的灭火是整个比赛的关键,需要综合考虑到火势的扩张、距离加油站(避难所等)的距离、火区中心或是周边,当然,还要考虑到FB去往火区是需要消耗时间的,如何预估火区的走向从而抑制扩散也是需要考虑的问题。重点修改SearchForFire、Buildingdetector.

PF部分需要查看一些论文,可以尝试给不同街道分等级,主干道优先清障(清一条路还是全清完等需要考虑),次干道怎么分配人手。

AT如何分配人手,何时以世界为单位救援,何时以分区为单位。

相关文章:

  • 2021-10-06
  • 2022-01-07
  • 2021-08-24
  • 2021-07-16
  • 2021-10-22
  • 2021-04-03
  • 2021-05-18
  • 2021-04-23
猜你喜欢
  • 2021-12-31
  • 2021-12-04
  • 2021-12-06
  • 2021-11-18
  • 2021-08-13
  • 2021-10-06
  • 2021-12-13
相关资源
相似解决方案