1 Star 0 Fork 0

zr/元胞自动机

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.py 1.18 KB
一键复制 编辑 原始数据 按行查看 历史
tendoumaya 提交于 2021-05-18 19:50 . heatmap for cellmap
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
import seaborn as sns
class cell: #元胞类
def __init__(self,U:float):
self.utility=[U] #创建元胞效用值列表,该列表长度随时间增加
self.N_utility=-0.5+1/(1+np.exp(-U)) #将N_utility初始化到0至0.5之间
def minmaxU(self): #效用表最后一位代表现状,使用表中最大值和最小值进行归一
if (max(self.utility)-min(self.utility))==0:
pass
else:
self.N_utility=(self.utility[-1]-min(self.utility))/(max(self.utility)-min(self.utility))
class cellmap: #元胞列表类
def __init__(self,N:int):
self.box=pd.DataFrame(np.zeros([N,N],dtype=float)).applymap(lambda x:cell(x)) #创建元胞表
self.T=(self.box.applymap(lambda x:x.N_utility).to_numpy()).sum() #初始化温度,定义温度等于从1到N对((ui-ui,min)/(ui,max-ui,min))求和
def temperature(self): #温度计算函数
self.box.applymap(lambda x:x.minmaxU()) #归一
self.T = (self.box.applymap(lambda x: x.N_utility).to_numpy()).sum()
def plot(self): #热图绘制
return sns.heatmap(self.box.applymap(lambda x: x.N_utility))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/tendoumaya/cellular-automata.git
git@gitee.com:tendoumaya/cellular-automata.git
tendoumaya
cellular-automata
元胞自动机
master

搜索帮助