MADDPG-建立自己的游戏环境(simple_world_comm场景)

simple_world_comm场景

simple_world_comm环境,大小为(-1,1)的二维平面,包含四种类型的实体(森林(forests),食物(food),地标(landmark),智能体(adversaries和good-agent)),1个地标(landma,黑色),2个森林(forests,大的绿色),2个食物(food,蓝色),6个智能体,4个捕食者(adversaries,粉红色),2个猎物(good_agent,小的绿色)。

各类实体的属性

  • 捕食者:刚体,可移动,最大速度默认为1,加速度为3,阻尼速度为0.25,其中有一个领导者(颜色相较更深);
  • 猎物:刚体,可移动,最大速度默认为1.3,加速度为4,阻尼速度为0.25;
  • 食物:刚体,不可移动;
  • 森林:非刚体,不可移动;
  • 地标:刚体,不可移动;

任务

  • 捕食者:阻拦猎物靠近食物(捕食者之间相互合作)
  • 猎物:在捕食者的围捕下,依靠森林和障碍物,力求靠近食物
  • 森林:智能体一旦进入森林(包括adversaries和good-agent),敌方则无法获得森林内的智能体位置坐标,除非智能体位于同一片森林中;
  • 地标:障碍物

奖励

捕食者:4个,相互合作,通过阻碍猎物靠近食物获取奖励,速度比猎物慢,数量比猎物多
猎物:2个,在捕食者的阻碍下,依靠环境靠近食物,速度快,数量少。

观测

捕食者:自身速度(二维,x和y两个方向);
自身位置(二维,x和y两个方向);
所有实体与自己的相对位置(实体位置-自身位置,20维,地标(10),智能体(10))
猎物的速度(4)
自身是否处于森林中(2,False True)
交流

`EXTRA_CFLAGS += -Wall -DMODULE -D__KERNEL__ -I$(OS_LIB_PATH)/include -I$(TVDSP_COMM_DIR)` 是 `Makefile` 中的一行代码,用于设置内核模块编译时的额外 C 语言编译器标志。下面是对这行代码各部分的详细解析: - `EXTRA_CFLAGS`:这是一个 `Makefile` 变量,通常用于添加额外的 C 语言编译器标志。`+=` 表示在原有的 `EXTRA_CFLAGS` 变量值基础上追加新的标志。 - `-Wall`:这是一个编译器选项,用于开启所有常见的编译警告。开启此选项后,编译器会在编译过程中对代码中可能存在的问题发出警告,有助于开发者发现潜在的错误。 - `-DMODULE`:这是一个预处理器定义选项,等同于在代码中使用 `#define MODULE`。在编译内核模块时,通常需要定义这个宏,以告知编译器当前编译的是一个内核模块,而不是内核本身。 - `-D__KERNEL__`:同样是预处理器定义选项,等同于 `#define __KERNEL__`。这个宏用于告诉编译器当前代码是在内核环境中编译的,会影响一些头文件的包含和代码的编译方式。 - `-I$(OS_LIB_PATH)/include`:`-I` 是编译器选项,用于指定头文件的搜索路径。`$(OS_LIB_PATH)` 是一个 `Makefile` 变量,代表某个路径。这部分代码的作用是将 `$(OS_LIB_PATH)/include` 目录添加到编译器的头文件搜索路径中,这样编译器在查找头文件时会搜索该目录。 - `-I$(TVDSP_COMM_DIR)`:与 `-I$(OS_LIB_PATH)/include` 类似,将 `$(TVDSP_COMM_DIR)` 目录添加到编译器的头文件搜索路径中。 以下是一个简单的 `Makefile` 示例,展示了 `EXTRA_CFLAGS` 的使用: ```makefile EXTRA_CFLAGS += -Wall -DMODULE -D__KERNEL__ -I$(OS_LIB_PATH)/include -I$(TVDSP_COMM_DIR) obj-m := my_module.o KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: $(MAKE) -C $(KDIR) M=$(PWD) modules ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值