问题标签 [artificial-life]
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.
open-source - 多功能3D人工生命引擎?
研究涌现,建立一个开发框架来快速测试新想法是非常有用的。带有物理碰撞的 3d 会很好,开源将是一大优势。为此,“breve”看起来很有希望,但我想知道是否有人使用过它或知道任何其他合适的引擎?
c++ - 生命模拟的有效方法
在阅读了很多关于人工生命(我觉得非常有趣的主题)的文章以及关于 SO 的几个问题之后,我开始考虑设计一个(非常、非常、非常)简单的模拟器的想法。甚至不需要图形。如果我忽略了一个问题,请随时向我指出。
就像我说的,这几乎不会是模拟人生级别的模拟。我相信它几乎不会达到“可接受的免费软件”水平,它只是一种学习练习,可以在休息时保持我的技能。基本前提是创造了一个普通人。没有名字、身高或类似的东西(就像我说的,很简单),它会收到的唯一真实的东西是“关联”和通用“使用”、“拾取”和“看”能力的列表。
我的第一个问题是关于协会的。SO推荐什么作为处理此类事情的有效方法?我在考虑一个多图,相对容易地设置键是它想要的(食物、饮食、休息等),而另一位(对不起,我的想法已经失效)是它与该需求相关联的。
例如,假设我们有一台冰箱。冰箱里有食物(只是一个通用的基础对象)。最初,这个人并没有将冰箱与食物联系起来,但它确实将食物与饥饿联系起来。因此,当它的饥饿感增加时,它开始任意寻找食物。如果没有食物触手可及,它会“使用”物体来寻找食物。由于它与食物没有已知的关联,它会随意使用事物(可能是寻找最近的物体并向外扩展)。一旦它使用/打开冰箱,它就会看到食物,建立冰箱包含食物的连接(阅读:插入“食物,冰箱”对)。
现在,我意识到这将比看起来要复杂得多,我准备把它敲出来。问题是,多图是否适合(可能)呈指数级扩展的关联列表?如果不是,那会是什么?
我的第二个问题可能要容易得多。简而言之,通用对象/项目接口是否适用于大多数项目?换句话说,一个通用的“使用”接口是否适用于我的意图?我不认为我解释得很好。
无论如何,任何意见表示赞赏。
artificial-intelligence - 神经网络“育种”
我刚刚观看了一个涵盖“Polyworld”(在此处找到)的 Google 技术谈话视频,他们谈到了将两个神经网络一起培育以形成后代。我的问题是,如何组合两个神经网络?它们看起来如此不同,以至于任何将它们结合起来的尝试都只会形成第三个完全不相关的网络。也许我遗漏了一些东西,但我没有看到一个很好的方法来获取两个独立神经网络的积极方面并将它们组合成一个单独的神经网络。如果有人能详细说明这个过程,我将不胜感激。
algorithm - 仿生软件
我想知道是否有人知道任何利用生物学的软件技术?例如,在机器人世界中,有很多,但软件呢?
artificial-intelligence - 软件程序智能化的标准
只是出于好奇,假设存在软件生命形式。你将如何发现他/她?你判断某物/某人是否聪明的标准是什么?
在我看来,一旦你设定了正确的目标,创建这样的软件应该很简单(不仅仅是遵循一种天真的“模仿人类->通过图灵测试”的方式)。
发布答案时,请尝试寻找反例。我真的很难发明任何我自己同意的一致的东西。
c# - XNA 2D 视野
我正在 XNA 中开发基于植绒的 2D 游戏。我已经实现了 Craig Reynold 的植绒技术,现在我想动态地为该组分配一个领导者,以引导它朝着目标前进。
为此,我想找到一个前面没有任何其他代理的游戏代理并使其成为领导者,但我不确定这方面的数学。
目前我有:
agentContext.ViewAngle 是一个弧度值,我尝试使用它来尝试获得正确的效果,但这主要导致所有代理都被分配为领导者。
谁能指出我正确的方向来检测一个实体是否在另一个实体的“锥形”视图中?
javascript - 如何防止javascript堆栈溢出?
我一直在用 javascript/jquery 构建Conway's Life,以便在浏览器Here中运行它。Chrome、Firefox 和 Opera 或 Safari 执行此操作的速度非常快,因此最好不要为此使用 IE。不过IE9还可以。在生成新一代生命的同时,我存储了前几代,以便能够回顾历史。这工作正常,直到内存填满的某个点,这使得浏览器(选项卡)崩溃。
所以我的问题是:如何检测内存何时填满?我将每一代的数组存储在一个形成世代历史的数组中。这会占用大量内存,这会在几千代后使浏览器崩溃,具体取决于可用内存。我知道javascript无法检查可用内存量但必须有办法......
python - python中的深度优先算法不起作用
我有一些我决定用 Python 做的项目。简而言之:我有清单。它们每个都有列表,有时是一个元素,有时更多。它看起来像这样:
关键是将 numpy 数组中的值与此规则中的值(规则表的元素)进行比较。我们将一些 [x][y] 点与第一个元素进行比较(例如,第一个元素中的 1),然后,如果为真,则将数组中的值 [x-1][j] 与列表中的第二个值,依此类推。五个第一次比较必须为真才能更改 [x][y] 点的值。我是这样写的(主要函数是 SimulateLoop,顺序切换,因为simulate2函数是在第二个函数之后编写的):
数据类:
NumPy 数组是 World 类的对象。规则是如上所述的列表,由从另一个程序(GPL 许可证)获得的函数解析。
老实说,它似乎工作正常,但事实并非如此。我正在尝试其他可能性,但没有运气。它正在工作,解释器不会返回任何错误,但数组中的值会以某种方式改变错误。规则很好,因为它是由我从中获得解析器的程序提供的(GPL 许可证)。
也许它会有所帮助 - 它是 Perrier's Loop,修改过的 Langton's loop(人造生命)。
将非常感谢您的帮助!)
java - 植绒行为问题
昨天我遇到了 Craig Reynolds 的Boids,随后我想我会尝试用 Java 实现一个简单的 2D 版本。我根据康拉德·帕克的笔记整理了一个相当基本的设置。
但是,我得到了一些相当奇怪(在我看来)的行为。目前,我的身体相当快地移动到粗糙的网格或格子中,然后当场开始抽搐。我的意思是它们会四处移动并且非常频繁地旋转。
目前,我已经实现:
- 结盟
- 凝聚
- 分离
- 限速
最初,我的 boids 随机分布在屏幕区域(与 Parker 的方法略有不同),它们的速度都指向屏幕区域的中心(请注意,随机初始化的速度给出相同的结果)。改变速度限制值只会改变物体进入这个模式的速度,而不是模式的形成。
在我看来,这可能是:
- 我正在使用的参数的结果(现在我的代码如 Parker 的伪代码中所述;我还没有尝试过由 Reynolds 描述的角度和半径定义的影响区域。)
- 我需要实施但不知道的东西。
- 我做错了什么。
预期的行为将更像是在 Reynolds 的 boids 页面上的小程序中发生的事情的二维版本,尽管现在我还没有实现任何方法来将 boids 保持在屏幕上。
有没有人遇到过这个?关于原因和/或如何解决它的任何想法?如果有帮助,我可以发布相关行为的 .gif 文件。
ruby - 在 Ruby 中编写“类似 Excel”的影响网络的最佳方法是什么?
我有一个节点网络,每个节点都会影响其他一些节点的状态(想象一个 Excel 电子表格,其单元格值通过公式取决于其他单元格)。
我想知道在 Ruby 中实现这个的最干净的方法是什么?
当然,我可以每个节点有一个进程,但是如果节点数量增加,它将如何执行?而且,我确信有相应的库,但我找不到最新的库。
谢谢你的帮助 !
更新:听起来 EventMachine 可能会完成这项工作......但它似乎更适合少数“节点”