简单来说,“多智能体计算”是什么?

7
我最近遇到了“多智能体计算”这个术语,但我不太明白它是什么。我读了一本关于它的书,但它并没有回答什么是代理的基本问题。
有没有人可以指点一下,提供一些明确简洁的参考资料,回答这个问题而不带任何胡说八道/营销言辞?我想知道这是否是我应该熟悉的东西,还是一些我可以忽略的垃圾,因为我实在分辨不清。
8个回答

7
简单来说,多智能体研究试图设计由自主智能体组成的系统。也就是说,你身边有一堆机器人/人类/软件智能体,每个智能体都可以采取自己的行动,但只能“看到”周围的东西,那么如何让系统按照你想要的方式运行呢?
例如,
给定一堆具有有限感知能力的机器人,如何让它们监视一个领域的敌人?如何找到该领域中的所有地雷?
给定一群人,如何让他们最大化最不幸福的人的幸福感?而不剥夺他们的自由。
给定一组人,如何设置会议时间以最大程度地提高他们的幸福感?而不泄露他们的私人信息?
这些问题中的一些可能看起来很容易解决,但实际上并非如此。
多智能体研究将博弈论、经济学、人工智能甚至生物学的技术混合在一起,以回答这些问题。
如果您想了解更多细节,我正在编写一本名为《多智能体系统基础》的免费教材,网址为http://www.multiagent.com

5
"代理"是软件设计中的另一个抽象概念。作为一种粗略的层次结构;机器码、汇编语言、机器无关语言、子程序、过程、抽象数据类型、对象,最后是代理。
随着互联和分布在计算中变得越来越重要,需要具有与其他系统(具有不同利益)合作和达成协议能力的系统变得明显;这就是代理的作用。代理独立行动,代表您的最佳利益在其环境中。
其他代理的例子:
- 太空船控制,在没有时间进行船-地面指令传递时做出快速决策(例如NASA的深空1号) - 空中交通管制(系统覆盖飞行员;大多数商业航班都采用此方法,并挽救了生命)
多代理系统与以下相关:
- 经济学 - 博弈论 - 逻辑学 - 哲学 - 社会科学
我认为代理是不能被忽视的。在Google学术上搜索“多智能体”可以找到200万次点击,在CiteSeer上还有更多相关内容;这是计算机科学中一个快速发展的分支。

5
一个多智能体系统是从人工智能中借鉴的概念。它几乎像一个虚拟世界,你有能够观察、通信和反应的代理。举个例子,你可能有一个内存分配代理,你必须向它请求内存,它会决定是否给你。或者你可能有一个监视 Web 服务器并在其挂起时重新启动的代理。多智能体系统背后的主要目标是在不同部分之间建立更类似 Smalltalk 的通信系统,以使所有东西一起工作,而不是来自中央程序的更多自上而下的指令。

4
多智能体计算有几个关键方面,其中分布和独立性是其中之一。
多智能体不一定在不同的机器上,它们可以像@Kyle所说的那样,是单个芯片或机器上的多个进程,但它们没有明确的集中式指导。它们可能会协同行动,因此它们有一定的同步规则-例如,在汇总结果之前分别完成各自的工作。
一般来说,将其分割为单独的代理的原因是允许不同的优先级指导每个代理的操作和反应。也许使用经济模型来划分共同资源,或者因为不同的功能在物理上分离,因此不需要紧密地相互交互。
广泛的概括:它是可以忽略的吗?嗯,它并不是什么特别的东西,所以这有点像“我可以忽略快速排序的概念吗?”如果您不了解快速排序是什么,那么您不会因为大部分生活都不受影响而成为一名开发人员。如果您对不同的架构和模型有更多的了解,则将拥有更多的知识可以在新的和不可预测的地方部署。
十年前,“多智能体系统”(MAS)是学术文献中无处不在的短语之一。如今它已经不那么普遍了,但其中一些想法在某些地方确实非常有用。但在其他情况下则完全没有必要。所以我希望这很清楚;)

2
曾经很难找到关于软件代理的好材料,主要是因为人们对其市场潜力的看法。但现在这种热度已经降低,因此互联网上有关软件代理的信噪比得到了提高。
以下是一篇开源软件代理项目的博客文章,介绍了软件代理。术语“多代理系统”只是指一个系统中有多个软件代理运行、通信和委派子任务给彼此。

2
根据Jennings和Wooldridge这两位顶尖的多智能体研究人员,代理是一个对其环境具有反应性、主动性和社交性的对象。也就是说,代理是一种软件,可以实时地对其环境做出适合自己目标的反应。它是主动的,这意味着它不仅仅等待被要求执行任务,如果它看到有机会做一些对其目标有益的事情,它就会去做。它是社交的,也就是说它可以与其他代理进行通信,虽然在实现自己的目标时并不一定需要这些功能,但如果情况出现,它应该能够做到这些。因此,多智能体系统只是分布式系统中的这些代理的集合,它们都可以相互通信并尝试实现自己的个人目标,通常会导致整个系统目标的实现。

2
很难准确描述多智能体计算的含义,因为代理的定义通常非常模糊,充斥着营销术语等。根据我所熟悉的制造系统研究,我将尝试解释它是什么以及它可以用于哪些方面。
现代制造业中一个“未解决”的问题是调度。当问题的定义是静态的时,可以找到最优解,但实际上,人们不会按时上班,制造资源会出现故障,计算机也会出现故障等等。需求一直在变化,需要不同的产品(即大规模定制的产品 - 生产的一辆汽车有空调,下一辆没有......)。这些都导致以下结论:a)制造非常复杂,b)像提前一周安排时间表这样的静态方法行不通。所以想法是:我们为什么不能拥有代表系统部分的智能程序,让它们自己解决这个问题?这些程序称为代理。它们应该相互通信和协商,并确保任务按时完成。通过使用代理,我们希望降低控制系统的复杂性,使其更易管理,实现更好的人机交互,使其更加健壮、 less error prone,并且非常重要的是:使控制系统去中心化。
简而言之,代理只是一个概念,但每个人都可以直观地理解它。仍然需要编写代码,但是编写方式不同,比OOP更高一层抽象。

0

您可以在这里找到关于代理的白皮书集中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接