慣例,yy完趁頭腦尚熱就動手;
需求?文案?今天天氣不錯,早上有bug,中午有雨,下午還是有bug。
工具:python
模型:yy篇的ai模型
成品:通用庫,中介軟體模式
難點:1·神經元的構建,因為它將會模仿人體神經元,延伸到物件的各個細節末端,對於大多數構建模式來說,這是***個惡夢;
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)在 不帶 各種期待下誕生。
使用反應式spring webflux
org.springframework.bootgroupid spring boot starter webfluxartifactid dependency 下面新建乙個簡單的controller,乙個使用get,乙個使用post。該controller使用到了乙個簡單的值物件user,它裡面僅...
反應式系統設計宣言
在老大的指引下,去看了下反應式宣言,然後就毫不猶豫簽署了這個宣言,儘管宣言的最終版本定格在 2014 年,但仍然有很多技術人員在不斷地參與進來。那,究竟什麼是反應式宣言呢?是大家約定,用反應式方式去構建反應式系統的約定。反應式系統有如下特質 即時響應性 不論什麼響應都要快,正常響應要快,錯誤響應也要...
關係資料構建反應式的spring驅動程式
先說說什麼是響應式 響應式程式設計或反應式程式設計 英語 reactive programming 是一種面向資料流和變化傳播的程式設計正規化,直白的說就是 將變化的值通過資料流進行傳播。反應式架構文章 webflux定點推送 全推送靈活websocket運用 推 webflux前後端分離 資料響應...