来自多代理系统(使用JADE用Java开发)的学术背景,我只是在外围意识到Actor并发范例。现在,我开始探索Scala,我不禁为Agent和Actor方法之间的相似之处所震惊。
我很想在下一个研究项目中使用Scala的Actor库,而不是简单地调用JADE库,因为这将迫使我更深入地了解该语言。此外,JADE专注于根据行为定义一切都不适合我的问题。
我缺少的高度自治的Actor和Agent之间在本质上有什么不同吗?
最佳答案
是的,有差异。对于非常简单的代理,参与者和代理可能是同一回事。但是,通过“自治代理”,通常至少假设一个假设,例如“信念-愿望-意图”模型,其中,代理内部对自己发现的环境进行抽象建模,并且代理它与之交互,以便可以制定有关如何与该环境交互以实现其目标的计划。
尽管一个参与者肯定可以拥有所有这些,但是单个代理也可能由多个参与者组成,共同行动以处理BDI框架的不同部分。对于所有意图而言,参与者都是调度单元。如果您的代理程序本质上是线性和单线程的,则适合它们。如果他们在内部进行并行工作,则每个代理都需要多个参与者。
那么, Actor 和代理人有什么共同点?
代理人比 Actor 还有什么?
Actor 比经纪人还拥有什么?
关于scala - 将高度自治的参与者视为代理人是否合理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1161179/