问题标签 [cellular-automata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1194 浏览

multithreading - 多线程会影响康威的生命游戏克隆吗?

我一直在实现这个小游戏的想法,它(不知何故?)类似于康威的生命游戏:

0)您有一个彩色点矩阵(RGB 值) 1)如果相邻单元格的 X 值低于您的 Y,则将 Y = 0 放在该单元格上(其中 X 和 Y 为红色 || 绿色 || 蓝色)2 ) 红色击败绿色击败蓝色击败红色

我现在正在做的只是逐个单元格地检查是否满足上述规则。但是,这种行为并不是我想要的,因为有时第一行的单元格比最后一行的单元格具有优势。

多线程可以防止这种情况(例如,启动两个线程,一个在第一个单元格中启动,另一个在最后一个单元格中启动)?请原谅我对并发的无知,但我觉得这是开始使用它的好方法。

0 投票
1 回答
905 浏览

optimization - OpenGL ES 2.0 中元胞自动机的纹理格式

我需要一些快速的建议。

我想在 GPU 上模拟一个元胞自动机(来自A Simple, Efficient Method for Realistic Animation of Clouds )。但是,我仅限于不支持任何位运算的 OpenGL ES 2.0 着色器(在 WebGL 中)。

由于此元胞自动机中的每个单元都代表一个布尔值,因此每个单元存储 1 位将是理想的。那么在 OpenGL 的纹理格式中表示这些数据的最有效方法是什么?有什么技巧还是我应该坚持使用直接的 RGBA 纹理?

编辑:这是我到目前为止的想法......

目前我正在考虑使用普通的 GL_RGBA8、GL_RGBA4 或 GL_RGB5_A1:

  • 可能我可以选择 GL_RGBA8,并尝试使用浮点运算提取原始位。例如x*255.0,给出一个近似整数值。但是,提取单个位有点麻烦(即除以 2 并四舍五入几次)。我也对精度问题保持警惕。

  • 如果我选择 GL_RGBA4,我可以为每个组件存储 1.0 或 0.0,但我也可以尝试与之前使用 GL_RGBA8 相同的技巧。在这种情况下,它只是x*15.0. 不确定它是否会更快或看不到,因为提取位的操作应该更少,但每次纹理读取的信息更少。

  • 使用 GL_RGB5_A1 我可以尝试看看是否可以将我的单元格与一些附加信息打包在一起,例如每个体素的颜色,其中 alpha 通道存储 1 位单元格状态。

0 投票
9 回答
1479 浏览

java - 生命游戏:如何让“实体”并行进化?

好吧,标题不清楚,这就是我的意思。

我正在编写某种游戏(比如生活游戏)。例如,有动物(每个动物都是一个类的 Java 实例)。

所有这些动物都在一张地图上,所有这个“世界在每“转”一次。

这些动物每回合都能做出动作。例子:狼杀羊

但是,我对在状态之间进行这些进化的“方式”有疑问,因为结果将取决于我在动物中循环的顺序。

例子 :

  • 狼先:狼杀羊(羊死了,所以没有动作)
  • 羊先:羊吃了一些草,然后(狼的转身)狼杀了羊

我怎么解决这个问题 ?

多线程?(但我会有很多动物,比如 1000 只甚至更多......)。有没有一种算法,一种“方法”来做到这一点?

谢谢

0 投票
1 回答
4447 浏览

matlab - Matlab中的元胞自动机

我目前正在自学 matlab,并且我对 1980 年代早期在 Wolfram 的 Life1D 和 Conway 的 Game of Life 等旧程序中展示的元胞自动机感兴趣。是否有任何可用代码可以在 matlab 中以某种形式生成 Wolfram 的 Life1D?我在网上搜索过,但没有找到任何东西。谢谢。

0 投票
2 回答
3288 浏览

simulation - 落沙模拟

我正在尝试重新创建一个“落沙”模拟,类似于那些正在做同样事情的各种网络玩具——我失败得很厉害。我不确定从哪里开始。我正在尝试使用元胞自动机来模拟沙粒的行为,但我无法弄清楚如何让我更新“世界”的方向变得无关紧要......

例如,我想要的粒子类型之一是植物。当植物与水接触时,植物会将水粒子变成另一个植物粒子。但是这里的问题是,如果我从上到下和从左到右更新游戏世界,那么放置在水粒子海中间的植物粒子将立即导致所有水粒子在右边和下面那个新的植物粒子变成植物。这不是我所期望的行为。=(

0 投票
1 回答
3340 浏览

c - 实现元胞自动机?“规则 110”

我想知道如何使用 55 行和 14 个单元格的规则 110。然后我必须在 LED 矩阵显示器中显示它。

无论如何我的问题是,我怎样才能实现这样的自动机?

我真的不知道从哪里开始,有人可以说明我该如何解决这个问题吗?

我必须遵循特定的方法吗?

谢谢

--使用的程序是-> C

编辑

那有意义吗 ??org 代表原创

0 投票
2 回答
4891 浏览

c# - 元胞自动机实现

有人知道如何用 Java 或 C# 实现元胞自动机吗?

0 投票
2 回答
3673 浏览

html - 在 HTML5+CSS3 中实现图灵完备的规则 110 是如何工作的?

今天早上,我在纯 HTML5 + CSS3(无 javascript)中遇到了以下规则 110 的实现。您按顺序按制表符和空格键来运行自动机。

http://elilies.com/rule110-full.html

我查看了源代码,但我真的无法弄清楚它是如何跟踪状态的。按下选项卡时,我认为 :focus 选择器会起作用,但我不确定按下空格时会发生什么。

0 投票
3 回答
329 浏览

terminology - 康威生命游戏的定义/元胞自动机

这实际上不是一个编程问题,而是编程社区可以帮助我解决的一个问题。

我需要写一个简短的句子,强调元胞自动机/康威的生活游戏对普通公众的影响或目的,以激发我对它的改编的兴趣。

我写了这个,这样对吗,我能说得更好吗?

尽管它的名字,康威的生命游戏不是游戏,而是显示混沌理论中出现的数学模型。

我知道这有点错误,但我不是科学家或数学家!

请帮忙。

谢谢

0 投票
1 回答
248 浏览

recursion - 递归函数的网络模拟是什么?

这是来自 Wolfram 科学会议的一个雄心勃勃的问题:是否存在递归函数的网络模拟之类的东西?也许是一种迭代的“map-reduce”模式?如果我们在迭代中加入交互,事情就会变得复杂:大量交互实体的连续迭代会产生非常复杂的结果。如果有一种方法可以查看定义复杂系统的无数交互的后果,那就太好了。我们能否在包含嵌套传播循环的连接节点的迭代网络中找到递归函数的对应物?

分布式计算的基本模式之一是 Map-Reduce:它可以在元胞自动机 (CA) 和神经网络 (NN) 中找到。NN 中的神经元通过它们的突触收集信息(减少)并将其发送给其他神经元(映射)。CA 中的单元行为类似,它们从邻居那里收集信息(减少),应用转换规则(减少),然后再次将结果提供给他们的邻居。因此 >if< 有一个递归函数的网络模拟,那么 Map-Reduce 肯定是其中的一个重要部分。存在什么样的迭代“map-reduce”模式?某些类型的“map-reduce”模式是否会导致某些类型的流甚至漩涡或漩涡?我们可以为 map-reduce 模式制定一个演算吗?