Scala 将高度自治的参与者视为代理人是否合理?

Scala 将高度自治的参与者视为代理人是否合理?,scala,artificial-intelligence,actor,agents,agents-jade,Scala,Artificial Intelligence,Actor,Agents,Agents Jade,来自mutli代理系统(使用Java开发)的学术背景,我只对Actor并发范例有所了解。现在我已经开始探索Scala,我不禁被代理和演员方法之间的相似性所震撼 我很想在下一个研究项目中使用Scala的Actor库,而不是简单地调用JADE库,因为这会迫使我更深入地掌握该语言。此外,JADE专注于从行为的角度定义一切,这对我的问题不太合适 一个高度自治的演员和一个我所缺少的代理人之间有什么本质上的区别吗?是的,有区别。对于非常简单的代理,演员和代理可能是同一件事。然而,通过“自治代理”,一个,或者

来自mutli代理系统(使用Java开发)的学术背景,我只对Actor并发范例有所了解。现在我已经开始探索Scala,我不禁被代理和演员方法之间的相似性所震撼

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


一个高度自治的演员和一个我所缺少的代理人之间有什么本质上的区别吗?

是的,有区别。对于非常简单的代理,演员和代理可能是同一件事。然而,通过“自治代理”,一个,或者至少,我,通常会假设一些东西,例如,信念-欲望-意图模型,代理在内部对它所处的环境和与之交互的代理进行抽象建模,以便它可以制定如何与该环境交互以实现其目标的计划

虽然参与者可以肯定拥有所有这些,但单个代理也可以由多个参与者组成,共同处理BDI框架的不同部分。参与者实际上是一个调度单元。如果您的代理本质上是线性的和单线程的,那么它们是合适的。如果它们在内部执行并行工作,则需要为每个代理指定多个参与者

那么,演员和经纪人有什么共同点呢

  • 他们都通过传递信息进行交流

  • 它们(通常)都有一个内部状态——即使在执行状态中是隐式的

  • 他们都不希望与其他行为者/代理人分享国家

  • 预计这两个项目都将独立于其他参与者/代理人安排

除了演员,特工还有什么

  • 代理通常遵循指示代理行为的模型,例如BDI,而参与者通常不遵循。不过,在这方面,反应性代理与参与者类似

  • 代理可以有多个内部调度单元。然而,在这方面,不这样做的代理人与行为者相似

演员比经纪人还有什么

  • 我想不出什么,尽管Scala演员可以共享状态

我绝对不同意将BDI和自治代理等同起来。BDI只是一类代理的一种可能架构。有些代理架构具有明确的环境模型,这些模型不是BDI,例如部分可观察环境中的反射代理。我相信您答案的第二部分是有价值的。参与者不是代理,就像线程不是代理一样。然而,为了实现创建自治代理的目标,可以使用这两种方法。举个例子,JADE的代理位于Java线程之上。谢谢你的帮助。啊,我看到你在我写评论的时候更新了你的答案。。。我认为你的新答案很好地回答了我的问题。对不起,我根本无意将自治代理等同于BDI。我只是想以BDI为例。我不完全确定如何重新表述我的答案,但我已经改进了一点。