MAOP概述

前面提到了MAOP是一种面向多agent的编程技术,在我们实践开展前,对这项技术做一个简单的介绍学习。

首先介绍下多agent系统把,我们的编程技术就是为了能够让这个系统能运转起来而存在的。多Agent系统可以简称MAS(可能是more-agents哈哈我没去查

1、多agent系统

MAS的应用建模是一个重要方面,主要的应用场景有两个:

1)模拟:在这种情况模型有助于描述和模拟现有的复杂系统,分析他们的属性。

2)工程化:更加倾向于系统和应用的设计和开发。

 采用MAS构建一个复杂的系统,可以举一个例子,现在有一个智慧城市,里面有很多台自治的无人驾驶小汽车土豆快跑,他们的目的是为了搭载乘客到目的地,小车都会根据人类的用户偏好选择策略。每个小车在城市里面的物理环境、或者收集到的信息是小车的上下文,也就是环境信息维度。

就像现实世界一样,环境是大规模和分布式的。我们每个人只能察觉到我们周围一小块的区域(除非你有千里眼,是superman当我没说)。我们对周围的环境是短视的,但是我们的社会还是能运转起来,我的意思是我们不必让每个agent都全视全知,这样在计算资源和效率上有一个平衡。

一个多Agent系统会涉及多个Agent,那么像人一样,我们之间会相互沟通,有自己的语言。在MAS中他们也有自己的语言称呼为ACL(Agent Communication Language)

那么我们设计了这样的一个系统,我们会思考,这显然还不够,这些小车会之间能够交流,这里的交流只是交换信息,我们每个个体在做我们自己的事情的时候都会遇到冲突。这个时候我们应该选取策略。对于一个制作者来说,除非你是对某个个体有特别的情怀,比如说对某个agent,你设计的特别漂亮哈哈哈,那一般我们都会考虑整体的效率最高。

上一篇文章中的结尾部分有提到过,这个面向多Agent的编程和我们学习的面向对象的编程有什么区别呢?似乎这个Agent就是一个对象嘛。在上面的介绍描述中提到了一个比较重要的概念就是Agent是自治的,他是会自己去完成任务的,比方说,多agent系统就是有很多个智能小车在自主接单,而面向对象的编程我们可能会写死他们的行为,每个对象是机械的,统一接受相对应的输入,然后做出规定好的策略,比方这些车子没有了智能,都是统一的中心控制调度,或许你会给小车写一个在城市里面自动巡航,然后在有人有需求的时候最近的车子过去接送。这两者感觉就多agent高级一点哈哈哈,但是咱们还是严谨严谨。

2、面向多Agent的编程

面向多Agent的编程是一种对MAS进行编程的方法,它提倡使用头等编程抽象,这些抽象涉及多Agent系统的三个维度,三个维度就是先前文章介绍过的Agent维度、环境维度、和组织维度。每个维度都定义了一组概念和头等抽象,捕捉MAS的不同关注点。

Agent维度对概念和编程抽象进行分组,以便对参与系统的Agent进行定义和编程。Agent的概念是关键抽象,用于对决策实体进行编程。这些实体能够通过对事件的反应提供局部的灵活性和动态性。(怎么说呢,这个维度就是让编程更像人,有规则的约束,但是人也有可能不遵守。群体向着共同的目标去移动。

环境维度为分布式资源的定义和编程提供了概念和头等抽象,以及在agent之间共享的与现实世界的链接。

组织维度收集了所有必要的概念,这些概念参与了共享环境中互动的Agent之间的关系、联合任务、和政策定义和编程。

(这边对于上面的三个概念,目前可以简单的理解成为你现在需要构建一个小世界,你有一个创造他们的神笔,但是需要你使用特定的语言来描述他们,agent维度就是你对你创建实体的描述,环境维度是对环境的描述,组织维度就是你对这个世界的法则、各个实体的行为的描述。 

下面是MAOP对于几个维度的概念图,可以看看了解一下。

关于这些概念介绍需要结合实际来探究,后面将结合一些实际的例子深化理解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亚里士多没有德775

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值