反应式AI,动手

惯例,YY完趁头脑尚热就动手;

需求?文案?今天天气不错,早上有bug,中午有雨,下午还是有bug。


工具:python

模型:YY篇的AI模型

成品:通用库,中间件模式

难点:

  1·神经元的构建,因为它将会模仿人体神经元,延伸到对象的各个细节末端,对于大多数构建模式来说,这是TMD个恶梦;

  2·大脑到底怎么处理这些信号,也就是处理模式;

  3·既然要做成中间件,那么就不得依赖于具体项目或者项目具体,甚至要提供通用扩展,对于游戏AI这种东西,同样是个恶梦。

纠结成果:

  1·python有个东西,叫装饰器,可以让神经和对象的结合变得轻松无节操,甚至可以让神经元掌控到一个具体对象属性的变更,这会引起开发语言依赖,无视吧;

  2·这一点见仁见智,不过从这套东西考虑,处理模式俺也是推荐静态方式,俺一共实现了三套处理模式,按顺序是 情绪、个性、习惯,具体下述;

  3·解决办法有两个关键:基本库不对控制对象做任何处理,只提供对象处理扩展;一切处理过程只使用配置信号。


经过一段说长不长说短不短的时间的折腾,终于连库连配置工具连测试一起吐出来了,配置工具用python Tkinter,不为别的,就为即时不懂编码的人使用时各种简便;

资源请恕俺自珍,毕竟各人有各人的实现,仅放一些简陋的伪代码做参考:

大脑:

class Brain:
    def input(self, func):
        """
        信号输入端用的装饰器
        """

    def output(self, *o):
        """
        信号输出处理
        """

    def signal_setter(self, func):
        """
        输入信号设置装饰器
        """

    def reflection_signal_setter(self, func):
        """
        输出信号设置装饰器
        """

处理过程:

处理过程根据俺个人的理解和划分,分成了三部分:

  1·情绪,主要处理复数输入基于权重作出复数输出的处理;

  2·个性,主要基于状态机、行为树等,甚至是更简单的反映模式的自定义脚本处理,作为根据项目进行细节扩展的工具;

  3·习惯,出入信号一对一原始处理,简单直接暴力。

经过这三部处理后,只要输入输出信号安排得当,即时没有个性处理或者个性处理只使用一些简单的默认脚本,也会为对象带来丰富多彩的行动;

然后是意义不大纯骗稿费的伪代码:

class Mood:
    def run(self, entity, signals):
        """
        return reflect-signals
        """
        # 基于权重的处理过程
        for weight, signal in self.moods:
            do something

class Character:
    def run(self, entity, signals):
        """
        return reflect-signals
        """
        # 基于个性脚本的处理
        self.character_script(entity, signals)

class Habit:
    def run(self, entity, signals):
        """
        return reflect-signals
        """
        # 基于习惯列表的简单处理
        self.habit.get(signals)


最后,在上面的基础上,俺塞进去了一个巨大的加分项:学习能力。

在这个AI模式里,俺给学习作出一个定义:

        在对象(obj)生命周期内,根据大脑(brain)天生(配置)的学习能力和学习机制,通过对于输入信号(signal)的处理的过程中的积累,对象的大脑(brain)可以增加自然界中存在(全体配置内存在)但其本身并不具备的反应信号(reflection signal)。

这样定义下来,其实就是个很简单的东西而已:

class Learn:
    def _machine(self, signals):
        """
        学习机制
        """

    def add_refliction(self, rf_signal):
        """
        习得输出信号
        """

    def run(self, signals):
        """
        把习得的输出信号反映到信号处理过程
        """

加入了这种学习模式,就造成了一种结果:起码,默认上,所有的反应信号,对于各种不同对象,都是可用的,节操掉一地了。


小结,它有什么优缺点,有多强悍多孱弱:

  ·静态AI,对cpu友好,更不需要线程支持,但是,如果输入点太少,这AI就会极度懒散;

  ·在足够的输入输出信号支持下,灵活性高,可以说这货在扩展和惊喜方面非常有料,但是,理解成本也高,于是不得不提供编辑器;

  ·对程序员来说,使用方便,但是,对无论是否程序员来说,要掌握好它,会比学会漂移难。



最后,神经型反应式AI(Neuronalreaction AI, NR)在 不带 各种期待下诞生。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值