- 博客(100)
- 资源 (6)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Unity人工智能之不断自我进化的五人足球赛
本文基于我前面发的两篇文章,需要对ML-Agents有一定的了解,详情请见:Unity强化学习之ML-Agents的使用、ML-Agents命令及配置大全。我前面的相关文章有:ML-Agents案例之CrawlerML-Agents案例之推箱子游戏ML-Agents案例之跳墙游戏ML-Agents案例之食物收集者ML-Agents案例之双人足球本案例为本文根据双人足球基础之上尝试改进的五人足球。本案例使用了Unity的ML-Agents组件开发而成,这里使用了多智能体强化学习的算法MA-POC
2021-11-24 22:03:59
6019
12
原创 C/C++服务器基础(网络、协议、数据库)
包含Socket通信、Select和IOCP管理模型、文件异步、多线程、libuv使用、protobuf、TCP、UDP、Websocket、mysql、redis、Json和Base64编码解码、HTTP等
2024-07-08 10:29:00
1004
原创 protobuf的环境搭建及使用
(2)google::protobuf::Reflection 反射对象, 通过它 + FieldDescriptor, 能set/get filed对象的值;2: 每一个Message对象,可以通过统一的对象工厂来构建, 根据协议生成了代码后,只要传入Message的名字,就能构建出对应的Message的类的实例;(1)google::protobuf::Descriptor 描述对象,是Message所有Filed的一个集合,它又包含了。g: 在使用自动生成的代码反序列化(解码),生成数据对象使用;
2024-07-08 10:25:03
788
原创 服务器的Select管理模型和IOCP管理模型
1: IOCP: 是windows针对高性能服务器做的IO的管理模式,又叫完成端口;Linux平台有类似的机制叫epoll。用于监听所有Socket,在服务器监听连接端口的同时,能够接收所有客户端传过来的数据。1>提交一个监听请求,使用完成端口来等待这个请求到来;2>请求来了后,处理,继续提交请求;2>请求完成后,处理完后继续提交;1>提交一个读取数据的请求。1>提交一个发送数据的请求;2>请求完成后,继续处理;
2024-07-08 10:09:08
217
原创 Socket通信编程的最简单版本
Socket上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议栈进行交互的接口。这两个部分的代码实现了客户端和服务器的最简单通信,先运行服务器程序监听端口,再打开客户端程序,客户端程序会与服务器建立TCP连接,并发送“Hello”字符串,服务器收到后会回复一个“Hello”给客户端。App通过Socket发送和接收数据,主要提供了TCP Socket和UDP Socket来收发数据,基于Socket对象操作系统提供了一系列接口来收发数据。
2024-07-02 17:40:09
359
原创 Unity在非继承自MonoBehaviour的脚本启动协程
在Unity中,协程通常是通过MonoBehaviour的StartCoroutine方法来启动的。很多时候,我们写逻辑层代码的时候也希望能够调用协程,例如网络通讯等功能,这就需要一个中介来帮你做这件事。这个中介通常是一个继承自MonoBehaviour的管理类,它可以提供启动和管理协程的方法。这个脚本使用时会自动生成一个空物体并完成挂载。
2024-06-22 00:04:36
310
原创 强化学习中的自我博弈(self-play)
但随着训练的进行,探索奖励应当逐渐衰减为0。第二是对手抽样,智能体在面对过强或过弱的对手时,训练都会难以取得成效,因此环境中需要存储对手不同时期的训练版本,让较弱的一方有机会获胜,较弱的一方策略提升的同时会反过来促进较强一方变得更强。为了判断智能体的强弱,使自我博弈使用水平相近的智能体进行对抗训练,根据ML-Agents中的做法,较好的解决方式是引入ELO评级系统,这是一种计算零和游戏中两个玩家之间相对水平的方法。也就是说,对方的智能体在己方训练的时候相当于环境的一部分,对手的策略也极大影响了自身的策略。
2024-06-21 23:47:13
754
原创 Unity客户端的Http通讯实战
可以看到Http发起Get请求非常简单,把对应的参数包含在url中,把API-Key包含在请求头中即可,最后调用JsonConvert.DeserializeObject将得到的Json字符串转换成对象即可。这里以常用的Json格式数据为例,Unity中的对象数据转化为Json就是序列化的过程,反过来就是反序列化。如果要发送一个DELETE请求,不需要上传任何数据体(Body),因为DELETE请求通常不包含请求体。在Http协议中,客户端发送的请求有Get、Post、Put、Delete等。
2024-06-21 23:23:32
433
原创 多智能体强化学习算法MA-POCA
它在集中式训练,分布式执行的AC框架上提出了两个改进点:一是针对数量不确定的智能体组合,使用了注意力机制的特殊神经网络结构,可以处理不定量输入,并且代替了现有的COMA算法全耦合的吸收状态。但是,当单个代理的当前行为导致智能体本身的行为终止(例如自我牺牲)时,它已被排除在环境之外,它不能再观察到队伍获得奖励时的环境状态,也不再能够获得小组后来可能获得的奖励。它是经典的的中心化训练和非中心化执行的算法,即在训练的时候,Critic不仅需要知道该智能体的动作信息,还需要知道其他智能体的动作信息,才能做出评判。
2024-06-20 21:40:07
1097
原创 数据结构与算法:python栈和队列的用法
python的栈和队列其实都算作一个数组,栈从最后一个元素开始推出,队列从第一个元素开始推出。由于从第一个元素删除需要挪动数组,所以可以采用双向链表代替,时间复杂度大大降低。
2023-12-07 13:33:37
190
原创 数据结构与算法数组篇:O(1)插入删除元素
遇到需要逐个遍历判断并删除集合内元素的情况,可以逆序进行遍历,这样就能避免删除后元素减少而越界。注意del函数比较耗时,所以有更好的办法最好不用。
2023-12-07 13:27:38
189
原创 游戏配置表的导入使用
其中把第一行的Tables\改成自己存放Excel文件的文件夹,Data\改成存放Json文件的文件夹即可,第二行是复制Json文件的命令。在DataManager单例初始化后,调用Load函数读取json文件,就能使用配置表了。那么程序怎么把把这张配置表导入使用?生成的Json文件如下。
2023-12-03 21:49:20
495
原创 URP渲染管线简介
URP的设计目标是在保持高性能的同时,提供更多的渲染功能和自定义选项。与普通项目相比,会多出Presets文件夹,里面包含着一些设置,包括本色,声音,法线,贴图等设置。全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,主光源和附加光源在一次Pass中可以一起着色。URP:全局只有主光源和附加光源,主光源只支持平行光,附加光源数量有限制,一次Pass可以计算多个光源。可编程渲染管线:渲染策略是可以供程序员定制的,可以定制的有:光照计算和光源,深度测试,摄像机光照烘焙,后期处理策略等等。
2023-11-12 19:00:01
646
原创 Protobuf简介
优点:性能好效率高(存储和转化)、预生成代码(无需编写解析代码)、多语言支持(开源社区)、兼容性好。就能下载对应版本的Protobuf工具到该项目文件夹中,以后可以复制该文件夹到其他项目中使用。在项目中引用对应的头文件即可使用自己定义的协议。protobuf的数据要经过序列化转换为二进制数据才能在网上传输,对方收到后进行反序列化还原。反序列化:将序列化之后的数据转化为序列化之前的数据结构或对象。序列化:将数据结构和对象转换成能够存储和传输的格式。特点:语言无关,平台无关,高效,扩展性好。
2023-11-10 11:27:32
146
原创 致即将步入社会的朋友们
在漫漫的学习之路上,我偶有所感,综合某位大佬的话,我对目标与结果、努力与成就、自律与行动产生了更高的认识,在这里和大家分享
2022-11-19 18:29:40
416
2
原创 强化学习科研知识必备(数据库、期刊、会议、牛人)
本文为收集了网上资料整理而成,不一定完全正确,但具有一定的参考意义,能够为初入科研的小白指引道路。
2022-07-26 12:25:12
3242
1
原创 强化学习PPO代码讲解
查看代码对于算法的理解直观重要,这使得你的知识不止停留在概念的层面,而是深入到应用层面。代码采用了简单易懂的强化学习库PARL,对新手十分友好。
2022-05-14 12:40:42
7041
8
原创 强化学习入门级实践教学
参考视频:https://www.bilibili.com/video/BV1yv411i7xd代码下载:https://github.com/PaddlePaddle/PARL可以先阅读我的文章强化学习纲要,本文针对强化学习的入门级讲解。代码主要参考强化学习算法框架库:PARL资料推荐书籍:《Reinforcement Learning: An Introduction》视频:David Silver经典强化学习公开课、UC Berkeley CS285、斯坦福CS234经典论文:
2022-03-20 21:22:56
3821
5
原创 AI球球大作战:Go-Bigger多智能体决策智能挑战赛
比赛网页:https://www.datafountain.cn/competitions/549repo:https://github.com/opendilab/Gobigger-Explore/入门篇赛题说明本次竞赛采用 Go-Bigger 作为游戏环境。Go-Bigger 是一款多人组队竞技游戏。更多细节请参考 Go-Bigger 文档。在游戏中,每支竞赛参赛队伍控制游戏中一支队伍(每支队伍由多个玩家组成)。竞赛参赛队伍需要通过提交智能体的方式,来对游戏中的某个队伍及其所包含的玩家进行控制,
2022-03-14 23:15:50
1765
3
原创 强化学习之stable_baseline3详细说明和各项功能的使用
stable-baseline3是一个非常受欢迎的深度强化学习工具包,能够快速完成强化学习算法的搭建和评估,提供预训练的智能体,包括保存和录制视频等等,是一个功能非常强大的库。详情可以查看官网:https://stable-baselines3.readthedocs.io/en/master/
2022-02-24 16:02:15
26641
6
python编程从入门到实践Django项目完整版
2021-01-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人