• 基于神经网络和遗传算法的unity开发框架


    资源下载地址:https://download.csdn.net/download/sheziqiong/85910518
    资源下载地址:https://download.csdn.net/download/sheziqiong/85910518

    基于神经网络和遗传算法的 unity 开发框架

    这是一条祖传的神经网络

    基于神经网络和遗传算法的 unity 开发框架,可以轻易的应用到各种不同类型的游戏中

    后续任务:

    1.降低使用门槛,完善各类 API,制作各类 demo

    2.扩展遗传算法,添加可配置的遗传参数,包括交换概率,突变概率,筛选方式,交叉方式,突变方式等

    3…

    完成第一个 demo,坦克扫雷

    在这里插入图片描述

    参考书籍:游戏编程中的人工智能技术(详细的介绍了神经网络和遗传算法在游戏领域的应用,虽然有点老,但不失为一本很好的入门书籍)

    EasyAIFrame 使用说明

    使用介绍:

    1.管理类

    1.1 预制体

    在这里插入图片描述

    将 AIManager 拖拽到场景中,构建自己的游戏管理类,如 demo 中的 TanksManager 脚本

    1.2 使用代码开始遗传进程

    在这里插入图片描述


    1.3 一些回调

    在这里插入图片描述


    直接设置

    在这里插入图片描述

    2.实体类

    2.1 创建自己的实体

    在这里插入图片描述


    创建自己的游戏实体类,并继承自 Entity 类
    同时需要实现一些方法
    在这里插入图片描述

    2.2 实体的配置与应用

    关键函数是 SetInputs 和 GetOutPuts

    需要在这两个函数中配置游戏对象的输入和输出,输入可以认为是智能判断自身处境的条件,输入即是智能判断的结果

    在这里插入图片描述


    以 demo 中的坦克为例,我设置了 4 个输入和 2 个输出

    4 个输入分别为当前 tank 的速度,旋转,最近的地雷方位(让智能能够辨识最近的地雷在哪),最近的 tank 方位(防止多辆 tank 互相挤在一堆)

    2 个输出为 tank 的目标速度和位移,用于控制 tank 做出下一步动作

    2.3 行为奖励

    判断哪些行为是正确的,哪些是错误的,主要是通过分数加减的形式

    在达成正确行为时可以增加实体的分数

    以 demo 为例:

    奖励机制为当 tank 吃到一个地雷时就增加它的分数

    惩罚机制为当两个 tank 互相碰撞时就减少他们的分数

    在这里插入图片描述

    3.参数配置

    遗传参数的配置,选中管理类预制体,打开下图窗口即可编辑遗传和神经网络的相关参数,这里设置的输入参数和输出参数必须和实际相等

    在这里插入图片描述

    4.高级扩展,自定义选择,变异和交叉策略

    如果你对与遗传算法有一定的了解,可以根据需要改变以上三中策略

    打开 GeneticAlgorithm.GeneticOpetation 脚本

    在这里插入图片描述


    可以看到这三种策略的方法是用委托绑定的,实现你自己的策略函数,直接修改委托的绑定对象,即可生效

    在这里插入图片描述


    资源下载地址:https://download.csdn.net/download/sheziqiong/85910518
    资源下载地址:https://download.csdn.net/download/sheziqiong/85910518

  • 相关阅读:
    PyTorch JIT和TorchScript,一个API提升推理性能50%
    JS VUE 用 canvas 给图片加水印
    kafka命令行
    重新理解 RocketMQ Commit Log 存储协议
    C语言操作符(按位与 ,按位或,按位异或,整形提升)
    卷土重来?东山再起?不,C语言一直是王者
    使用spark-submit工具提交Spark作业
    Leetcode_729_我的日程安排表1_线段树/思维
    表格与表单
    什么是分布式软件系统
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/125622382