问题标签 [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 投票
2 回答
152 浏览

message-queue - 大规模分布式元胞自动机的本地、低容量消息传递

我正在使用大规模分布式元胞自动机开发模拟。单元模拟分布在节点之间,并使用 ZooKeeper 进行协调。持久性数据存储在 Riak 中。元胞自动机本身是用 Python 编写的。

如果一个单元可以将少量(例如每秒几到几十个)消息(可能是键值对)传递给它的直接邻居(曼哈顿社区),这对我的模拟将非常方便。然而,对于数百万个单元格的模拟,天真的方法最终会产生数百万个小邮箱,每个单元格一个,并且缓慢地将消息涓涓细流到每个盒子中。这让 ZooKeeper 或 RabbitMQ 屈服了!有人推荐我 DDS,但它似乎非常企业化,而且我找不到任何 Python 绑定。

我是分布式系统开发的新手——这实际上只是一个爱好项目,看看我能走多远。我不禁觉得我走错了路,为每个小单元的邮箱转向了一个单一的消息总线。一个细胞很容易确定它的邻居和它在世界上的位置,所以看起来消息传递应该容易受到某种分块的影响。然而,这个区域演员的设计以及它如何与单个细胞进行交流却让我无法理解。我看到单元如何通过消息总线将消息传递给块,但是块如何将消息传递回单元?

我是否正在接近这个问题的真正解决方案?分布式节点将少量消息传递给其邻居的正确方法是什么?

0 投票
2 回答
9249 浏览

c++ - C++ 新手,“EXC_BAD_ACCESS”错误我不明白

我正在尝试将二维元胞自动机从处理转换为 openFrameworks (C++)。我为细胞和生命游戏功能编写了类。应用程序成功构建但立即崩溃并出现以下错误:线程 1:程序收到信号:“EXC_BAD_ACCESS”。

这是我的人生游戏的标题

这是实现:

该错误显示在 vector.h 文件、GoL 头文件以及我在 GoL 实现中调用 init() 方法的位置。任何帮助深表感谢。

0 投票
1 回答
858 浏览

c++ - 在开放框架中使用 C++ 向量的生命细胞自动机游戏

我正在用 C++(openFrameworks)构建一个生命 CA 游戏。由于我是 C++ 新手,我想知道是否有人可以让我知道我是否在以下代码中正确设置了向量。CA 没有绘制到屏幕上,我不确定这是否是我设置矢量的结果。我必须使用一维向量,因为我打算将数据发送到仅处理一维结构的纯数据。

0 投票
1 回答
75 浏览

java - 如何避免线程在元胞自动机中竞争相同的像素

我正在编写一个随机元胞自动机,其中有 Cells(定义为一组像素)在网格上播放。网格在主程序中,我有一个 Cell 对象的类和一个继承 Thread 的类,用于 Cell 行为的随机计算。我的问题是,当两个细胞接触时,它们可以同时随机获取网格的相同像素,或者一个可以在另一个不知道的情况下获取它。因此,它会导致一些错误,其中像素不属于 Cell 但 Cell 仍将其识别为“自身”。

我的问题是:如何同步(或“优先化”?)线程,以便它们不会同时修改相同的公共组件?

谢谢你。

0 投票
2 回答
241 浏览

prolog - Prolog - writing a rule for finding the top cell

I'm new to Prolog and I wanted to write a program that can do some computations on a cellular space. First of all, I've defined the cellular space by some facts:

cell(X,Y,Z) means a cell in position (X,Y) and the value Z. And for finding the top cell of another cell, I've wrote this rule:

Finally I've tested my code by some queries:

What is the cause of this error?

0 投票
1 回答
1288 浏览

java - Graphics2D:设置颜色时出现空指针异常

我想通过从 60 个元素的一维数组中获取 1 或 0 来显示 10x10 像素的白色或黑色矩形。我对一维数组的不同更新元素重复相同的操作 6 次。(实现元胞自动机)。

问题:当我想在 600x600 的窗口上显示结果时出现问题。该g2.setColor(Color)行抛出一个NullPointerException. 我找不到发生此错误的原因。

0 投票
2 回答
258 浏览

c++ - 元胞自动机不制造新细胞

我正在尝试制作一个能够创建各种细胞自动机的程序,例如康威的生命游戏和其他一切。

图形实现已经完美运行,所以我不会浪费你的时间(尤其是它使用 Allegro 库),但是计算单元格的函数不能正常工作。

这就是我目前所拥有的。(代码是有序的,我只是用评论来打破它,让你明白一切)

预定义:

图形结构:

两个预定义的结构:一个活的和一个死的测试单元的 RGB 代码。

检查结构变量和常量结构的颜色相等性的函数。

主要功能。它得到两个结构数组(第一个是当前轮次,第二个是发生计数的地方;在轮次循环中,计数后,b数组将被复制到一个数组中);启动时,它对每个结构执行以下步骤:计数,它在其附近有多少活细胞(如果它是活细胞,它从 -1 开始以避免将自己算作邻居,否则它定期从 0 开始),那么如果它本身不是一个活的测试单元(而是其他任何东西)并且有 5 个邻居,它就成为一个活的测试单元;如果它自己是一个活的测试细胞并且有 2 个邻居,它就变成了一个死细胞。

问题是,当计数开始时,每个活细胞在第一轮立即死亡,有时它们就消失了,即使没有变成死细胞(显然是更深的红色),并且几乎每个“计数器”都会发生这种情况== XY”检查。

我已经得到了一些提示,但我不知道为什么它不起作用。它有逻辑故障吗?因为我看不到错误,即使它在那里。

编辑:

被替换为

arrb[i][j] = arra[i][j];

被添加。现在一切都保持原样。

0 投票
1 回答
88 浏览

c++ - Called function clears changes of previous one

I'm working on a cellular automaton where changes happen in every rounds. Obviously, I made a loop for it - basically it works, fortunately, but if I want to add another type of cells to the map, the whole thing doesn't work! I mean, one type of cells works, but the other doesn't do anything: The game begins and e.g. in this example, the Conway-automaton starts growing, but the red test-cells are just staying without any changes.

These are the two functions (with predefined things):

and this is the loop itself:

Can you tell me what is wrong with it? Or maybe the problem is not in the loop?

0 投票
1 回答
63 浏览

c++ - 调用函数清除前一个的更改

我正在研究一个细胞自动机,每轮都会发生变化。显然,我为它做了一个循环——基本上它可以工作,幸运的是,但如果我想在地图上添加另一种类型的单元格,一种类型的单元格可以工作,但另一种不做任何事情:游戏开始,例如在这个例子中,康威自动机开始增长,但红色的测试单元只是保持不变。

这是循环的内容:

正如我所提到的,在这个例子中,康威细胞生长,但测试细胞只是留下来。如何让它们同时工作?

(我使用 Allegro 库,所以如果有解决这个问题的方法,请随时与我分享!)

0 投票
1 回答
194 浏览

java - 我的人生游戏一直在消亡

我正在尝试为康威的生活游戏编写代码,但它一直在消失。我不知道我应该写什么,而不是像代码一样进行所有计算,它应该只存储代码所说的内容然后进行更改。为了澄清,我不希望我的代码对一个单元格做出一个决定并对其进行更改,然后转到下一个单元格,但我希望它做出决定转到下一个单元格并在我的代码末尾希望它一次更改所有单元格。

这是创建世界的按钮:

这是制作下一代的按钮:

这是对细胞应该是什么样子以及它们是否活着的解释。

我将不胜感激任何形式的帮助,如果我的问题有什么问题,请尽管问,我会尝试以其他方式解释。