问题标签 [agents]

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 回答
101 浏览

paradigms - 代理软件的高粒度自适应社会?

我在想我们的社会如何通过一群自由的人来激励行为,使这些人的工作满足整个社会的要求。例如,人们通过工作、赚钱并用这些钱来获得他人贡献的公平份额。它在大多数情况下都有效……但是您需要警察来防止人们偷窃等,这使人们可以不公平地分享他人的贡献而无需做出贡献。

马文·明斯基有一本书《思想社会》,它可能沿着这些方向发展了一些想法。他们是神经网络中关于紧急行为、元胞自动机等的较早的想法。最近还有关于合作代理等的工作。

然而,我认为没有人设计过一个大型的高粒度代理系统,旨在作为一个整体系统工作和发展(即警察等稳态的不同角色)。你知道这些方面的任何工作吗?

0 投票
1 回答
1281 浏览

scala - 将高度自治的行为者视为代理人是否合理?

来自多代理系统(使用JADE在 Java 中开发)的学术背景,我只是外围地了解 Actor 并发范式。现在我已经开始探索 Scala,我不禁被 Agent 和 Actor 方法之间的相似性所震惊。

我很想在我的下一个研究项目中使用 Scala 的 Actor 库,而不是简单地调用 JADE 库,因为这将迫使我更深入地掌握该语言。此外,JADE 专注于根据行为定义一切,这对我的问题不是很合适。

高度自治的 Actor 和我缺少的 Agent 之间有什么根本不同吗?

0 投票
1 回答
3227 浏览

clojure - Clojure 的“发送”和“发送”函数在向代理分派操作方面有什么区别?

Clojure API 将这两个函数描述为:

(send af & args) - 向代理发送动作。立即返回代理。随后,在来自线程池的线程中,代理的状态将设置为以下值:(应用 action-fn state-of-agent args)

(send-off af & args) - 向代理发送一个潜在的阻塞动作。立即返回代理。随后,在单独的线程中,代理的状态将设置为:(应用 action-fn state-of-agent args)

唯一明显的区别是当一个动作可能阻塞时应该使用发送。有人可以更详细地解释这种功能差异吗?

0 投票
1 回答
2008 浏览

c# - 在 C# 中构建代理

C# 或 C++ 中有没有类似 JADEX 或 JADE 的东西?我正在做一个关于代理的项目,到目前为止,我找不到像 JADEX 这样的东西来用 C# 构建 BDI 代理。我发现的 C# 中的任何内容都是用于进行代理模拟而不是构建代理。

0 投票
3 回答
1133 浏览

java - 最适合与 JADE 一起使用的数据库包

我正在使用 JADE(Java 代理开发框架)并且需要设置一个数据库后端。有没有人对哪个数据库系统可以很好地与框架配合使用有任何建议?

0 投票
1 回答
948 浏览

ip-address - 在 JADE 的主容器中注册的代理的 IP 地址?

我有一个网站在其后端运行着一个 JADE 主容器。多台机器可以注册到这个主容器。那么,我想知道 JADE API 是否支持获取当前在 Main 容器中注册的所有代理的 IP 地址?我最终必须在网站上显示这些信息。

谢谢...

0 投票
2 回答
998 浏览

user-interface - 如何在 JADE 中读取文本文件

我被困在将 Jave 文本文件读取代码放入 JADE GUI 中。请协助。即显示使用简单的代码。我是 Jade 新手,但在 Java 编码方面经验丰富。

0 投票
1 回答
1637 浏览

java - JADE (Java) - 更改代理容器

有没有办法将代理重新分配到不同的容器,或者我必须创建一个新容器,然后在新容器中创建代理的所有新实例?

我做了很多搜索,似乎找不到任何关于容器重新分配的内容。

在此先感谢您的任何信息!

0 投票
1 回答
5627 浏览

scala - Clojure 的代理与 Scala 的演员相比如何?

我在 Scala(这里的源代码)(Scala 2.8 RC7)和 Clojure(这里的源代码)(Clojure 1.1)中编写了一个环形网络拓扑的模拟,用于比较 Actor 和 Agent。

当我将网络中的节点数量从 100 增加到 1000000 时,Scala 版本显示几乎恒定的消息交换率,而 Clojure 版本显示消息交换率随着节点数量的增加而降低。同样在单次运行期间,Clojure 版本中的消息速率会随着时间的推移而降低。

所以我很好奇 Scala 的 Actor 与 Clojure 的 Agent 相比如何?代理是否天生就比 Actor 的并发性低,或者代码编写效率低(自动装箱?)?

PS:我注意到 Scala 版本中的内存使用量随着节点数量的增加而增加很多(100 万个节点 > 500 MB),而 Clojure 版本使用的内存要少得多(100 万个节点约 100 MB)。

编辑:

这两个版本都在同一个 JVM 上运行,所有 JVM 参数以及 Actor 和 Agent 配置参数都设置为默认值。在我的机器上,Scala 版本始终为 100 到 100 万个节点提供大约 5000 条消息/秒的消息速率,而 Clojure 版本从 100 个节点的 60000 条消息/秒开始,对于 100 万个节点降低到 200 条消息/秒。

编辑 2

原来我的 Clojure 版本写得很低效。我将nodes集合的类型从更改listvector,现在它显示了一致的行为:100 个节点为 100000 消息/秒,100000 个节点为 80000 消息/秒。所以 Clojure 代理似乎比 Scala Actors 更快。我也更新了链接的来源。

0 投票
1 回答
604 浏览

asynchronous - unbounded_buffer、_CrtSetDbgFlag 和内存泄漏

我正在尝试使用其中一项新功能 - 异步代理库。我刚刚添加了一个

unbounded_buffer m_myDataBuffer; 到我的 C++ 类,仅此而已 - 还没有代理运行。

为了在我的应用程序中启用内存泄漏检测,我使用:

但是在关闭我的应用程序窗口后(我使用的是简单的 Win 32 GUI 应用程序)Visual Studio 显示了一堆内存泄漏:

在我注释掉之后泄漏就消失了

或者在我注释掉之后

unbounded_buffer 有什么特别之处吗?即使不使用,我也必须释放它?还是我需要以某种特殊方式设置 _CrtSetDbgFlag?_CrtSetDbgFlag 是内存泄漏的原因,还是在这种情况下以某种方式创建错误检测并且没有真正的内存泄漏?我在这里想念什么?

我 100% 确定这些泄漏不是来自我的代码,因为我也有

在我的 stdafx.h 中,所以我的代码中的内存泄漏具有文件名和行。但是那些 unbounded_buffer 没有这样的信息,所以我猜这意味着它们来自代理库。