晶格模型的不和谐混合

LatticeModelMashup的Python项目详细描述


简单规则

终极格子模型怪物混搭

这个应用程序一开始是试图可视化不同的格子模型,并看看当你把它们混合在一起时会发生什么。它目前非常面向视觉,不过我打算稍后添加一些分析。

开始

它是使用python 3和qt5构建的,因此您将需要这两者。如果克隆包并运行setup.py,则应安装所有内容,然后可以从主文件夹运行python3\uuu init\uuu.py。您也可以运行pip3 install latticemodelmashup,然后在终端中键入latticemash,尽管我还没有测试过这一点。

为了方便快速测试,有几个键盘快捷键:

  • e开始动态运行。长度由右下角的"框架"决定。
  • esc中断当前运行,如果没有运行,则关闭应用程序。(关门很麻烦。)
  • q清除屏幕并添加一些由覆盖范围决定的噪音。
  • 1打开和关闭随机噪声引擎
  • 2打开和关闭生命发动机
  • z前进一帧
  • b使用细胞自动机绘制背景
  • wasd控制"覆盖"即清除scren和"beta"时添加的噪音量,这决定了运行模拟时的噪音量。
  • xc控制它将在的最大fps。顶部给出的两个fps值是两个主发动机的当前性能,实际fps始终限制在这三个值中的最低值。
  • alt将焦点从文本框中取出,以便您在编辑某个内容后可以再次使用键盘快捷键。

关于更新规则的说明:当前允许使用以下类型的规则,

< Buff行情>

a<;=nb<;=b

其中a和b是一个细胞可以拥有并存活的最大和最小邻域数(nb)。所以如果a=1和b=8,细胞将一直存活。康威的标准规则是,细胞与两个或三个邻居共存。

< Buff行情>

C<;=P<;=D

其中c和d是在空细胞周围产生(p-"父母")新细胞的细胞数。康威P=3。

因此,标准的conway规则是'2,3,3;'。

自由父母(c=1,2)导致爆炸性增长。无界父母(d=6,7,8)与正常死亡规则相结合时,会导致种群剧烈振荡。

规则也可以是链式的,例如2,2,3,5;2,3,2,3;2,4,3,5;2,3,4,5;是一个非常小的组合,在四帧循环中每帧都会产生不同的更新规则。在开始时,将其与良好的噪音混合。

关闭ising模型(1)将导致确定性运行,如果开始时没有噪音,则对称运行。

字母"ub,lb,rb,wb,db"的小区域应该是屏幕的一种绘图方式——线条代表边缘。不管怎样,这里是你控制边界条件的地方。1表示边界是固定的,0表示固定的,而-1表示边界是不可见的(因此ub和db像lb和rb一样包裹,而wb('wolfbound')只绘制而不交互)。

关于型号

应用程序当前基于以下型号:

  • [X]伊辛模型在不受康威干扰的情况下具有良好的长期特性,该模型被生命引擎所掩盖,并且只倾向于充当(非常昂贵的)随机噪声发生器。关闭Conway(2)and打开beta(d)并让它运行一段时间以查看ising的工作情况。
  • [X]Conway的GOL实际上,引擎是他们所谓的"生活型"引擎,可以接受几乎任意的规则集。规则被输入到左边的绿色框中。下面是一些建议。 Conway style life
  • [X]可以在屏幕上绘制Wolfram风格的细胞自动机(B),还提供了一个滚动条,可以清除所有单元格或在整个单元格上绘制。目前,二维自动机和其他模型之间没有有意义的交互作用,这在很大程度上是审美的。让我们看看结果如何。 高级规则使生命形式更发达
  • []Potts模型实际上在那里,或者曾经在那里,但已经被弃用。这是一个很好的版本,有更多的状态,但目前模型只有两个状态,所以这是不活跃的。可能会把它带回来。

版本1中的功能

  • 伊辛模型
  • 具有时变规则的类生命自动机
  • "wolfram"二维自动绘制器
  • 顶部、侧面和滚动条上的任意边界条件
  • 颜色!
  • 基本的录音功能(使gif非常麻烦)

版本2中的功能
  • 无需重新启动即可动态更新设置
  • 精美的材质球图形
  • 更快的发动机,更好地相互集成
  • 分析引擎,因此您可以自动描述不同的更新规则
  • 易于交互,可以在画布上绘制不同的初始条件
  • 对导出视频/GIF的良好支持

计划的功能:

  • 最炫的图形
  • 自动怪物搜寻器(寻找具有不同更新规则的重复模式)
  • 更多的模特!包括:
  • []囚犯困境
  • []伊甸园模型

这里您可以在后台看到‘wolfram’油漆工

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在Microsoft Office Word或Excel文档中查找突出显示的文本   Java反射:获取方法返回参数的类型   java根据从字符串解析的日期对ArrayList<String>进行排序   不带IDE JSONObject的json JAVA   Selenium检查属性是否包含java中字符串的一部分   java Hibernate在使用@PostConstruct时找不到绑定到线程的会话   java频繁访问对象属性会带来成本吗?   java如何使用spring boot从json更新数据   Android Studio中的java适当边距布局   java spring引导无法在spring测试类中注入spring服务   java在插入排序中删除重复项   如何在JAVA中重写异常类方法   java Guava缓存内存泄漏   多线程处理三个必须并行执行的任务completableFuture,如果其中任何一个在java中引发异常,则全部取消