Multithreading 多代理系统和分布式计算之间的区别是什么

Multithreading 多代理系统和分布式计算之间的区别是什么,multithreading,parallel-processing,multiprocessing,distributed-computing,multi-agent,Multithreading,Parallel Processing,Multiprocessing,Distributed Computing,Multi Agent,我很好奇分布式和多代理系统之间的区别。我看到了许多基本的相似之处,我的头脑很混乱 相似之处: 1-有多个处理单元 2-两者都用于计算和模拟应用 3-处理单元交互 4-处理单元共同工作,成为强大的机器 5-单元具有自己的特性,如自己的特定时钟、自己的特定处理器速度、自己的内存等 那么有什么区别呢 这是一个抽象和目的的问题。多智能体系统采用基于复杂(即智能)组件的强大高层抽象,这些组件通常不存在于仅为在不同机器上拆分简单算法而创建的常规分布式系统中。可用于解决单个代理或单片系统难以解决或不可能解决的

我很好奇分布式和多代理系统之间的区别。我看到了许多基本的相似之处,我的头脑很混乱

相似之处:

1-有多个处理单元

2-两者都用于计算和模拟应用

3-处理单元交互

4-处理单元共同工作,成为强大的机器

5-单元具有自己的特性,如自己的特定时钟、自己的特定处理器速度、自己的内存等


那么有什么区别呢

这是一个抽象和目的的问题。多智能体系统采用基于复杂(即智能)组件的强大高层抽象,这些组件通常不存在于仅为在不同机器上拆分简单算法而创建的常规分布式系统中。可用于解决单个代理或单片系统难以解决或不可能解决的问题。分布式计算可以用来解决那些需要解决的问题。当然,它们有相似之处,但如果你仔细观察它们的抽象,它们可以形成深刻的对比,利用不同的算法和数据结构。

当我想到分布式计算时,负载被分配到多个部分,无论是多线程还是多台计算机。在分布式计算中,每个部分都是并行的,也就是说它们几乎是相同的。收集和总结其他部分结果的最后计算部分可能与其他部分不同


顾名思义,多代理系统具有多个代理,它们协同工作以实现一个目标。与分布式计算不同,多代理系统可以在一台计算机上工作,但肯定会有多个代理。这些代理可能是收集器代理、报告器代理、计算代理等。

在我看来,关键是(智能)代理的定义。S.Russel和P.Norvig在其“人工智能:现代方法”中定义:

代理是任何可以被视为通过传感器感知环境并通过执行器作用于环境的东西

因此,多智能体系统将由一组感知环境并对其采取行动的智能体组成,但在某种程度上保持独立和分散,对环境有局部看法

分布式系统(通常)定义为执行分布式计算的节点的集合,这些节点连接在一起以提高处理能力


在某种程度上,MAS是一个分布式系统,但它具有一些独特的特性。这取决于系统的使用和具体实现,但在某种程度上,这些定义有点重叠。

这个问题有点老了,但我仍将尝试一下

我们可以从定义开始

分布式系统[1]:

我们将分布式系统定义为这样一个系统:位于联网计算机上的硬件或软件组件仅通过传递消息进行通信并协调其动作。这个简单的定义涵盖了可以有效部署联网计算机的整个系统范围

多智能体系统[2]:

多智能体系统是指包含多个自治实体的系统,这些自治实体要么具有不同的信息,要么具有不同的兴趣,要么两者兼而有之

因此,从根本上说,“分布式”与系统的体系结构有关,而“多代理”则与系统中采用的特定问题解决方法有关

由于是分布式的,一个系统由多台联网的计算机组成。另一方面,多代理系统可以存在于网络环境中,也可以存在于单个非网络计算机上

参考资料

[1] G.Couloris,J.Dollimore,T.Kindberg,G.Blair,《分布式系统概念与设计》(第五版),2012年,Addison-Wesley


[2] Y.Shoham,K.Leyton Brown,《多智能体系统:算法博弈论和逻辑基础》(第1.1版),2010年,剑桥大学出版社。

你能举个例子吗?和