我希望为一个真实的word制造过程建立一个多agent仿真模型,以评估一些调度规则。与实际的制造事件日志相比,仿真需要生成事件日志来评估调度规则的时间效果。
如何将“当前仿真时间”融入这种多agent、消息传递的密集仿真中?
背景:
经典的离散事件模拟(它很好地处理时间推进)不能在这里应用,因为系统中的代理代表相对复杂的行为和路由要求,再加上调度规则要求它们经常通信。这和其他复杂的过程也排除了集中式调度方法。
在制造科学中,有成千上万的论文使用多智能体仿真来解决一些与制造相关的问题。然而,我还没有找到一篇论文来描述这些模拟的内部工作原理或实现细节。
不幸的是,在系统中使用最短的离散时间步长可能是不可行的,因为处理时间的范围在0.1s到24小时之间。有一种可能性,我的模拟将被用于什么-如果在一个项目的评估后,所以模拟需要运行的速度尽可能快-没有选择的夜间模拟运行。
问题规模约为500个资源和1000-10000个产品代理,其中大多数已经完成,没有参与任何进一步的沟通或资源占用。
因此,对于通信来说,新的事件可以触发一个代理在它原来的‘下一次’事件到达之前做一些事情。例如,代理当前在持续一个小时的资源上被阻塞。但是,另一个更高优先级的代理立即需要该资源,并要求第一个代理释放该资源。
在某种意义上,我需要一种方法来创建一个经典的消息传递代理-模拟和离散事件仿真的混合。
我考虑了一个中介代理,它涉及到每条消息-一个消息路由器和时间执行器,它发送消息和计时器滴答事件。此外,中介代理为各个代理保存下一个事件时间列表。不过,我觉得应该有一个更好的方法来解决我的问题,因为这个概念给调解人带来了巨大的压力。
更新
它花了一段时间,但似乎我设法创建了一个迷你框架,并将DES和Agent的概念结合在一起。我确信这并不新鲜,但至少是独一无二的:如果您感兴趣的话,可以使用http://code.google.com/p/tidra-framework/。
发布于 2009-06-25 12:01:59
这个问题听起来似乎应该通过并行离散事件模拟来解决--您计划实现的中介代理(“参与每条消息”、“发送消息和计时器滴答事件”)现在似乎正在执行离散事件模拟器的工作。您可以通过并行使用更多这样的模拟器,使这个比例达到所需的问题大小,然后使用同步算法来维护因果关系等(例如,请参阅这本书获取详细信息)。当然,这需要相当大的努力,您最好先尝试一下顺序算法。
增强通过事件相互通信的逻辑过程(= agent)的经典DES的一种很好的方法是融合用于描述离散事件系统(如DEVS )的其他形式的一些思想。在DEVS中,每个实体可以指定其处于某种状态的持续时间(例如,代理阻塞资源),并且只会被传入消息中断(然后相应地更改其状态,例如释放资源的代理)。
顺便说一句,你认为这些代理太复杂,不能用离散事件模拟来处理?如果您认为每个代理都是一个逻辑过程,那么从模拟的角度来看,它到底有多复杂并不重要--或者我在这里是不是出了什么问题?
https://stackoverflow.com/questions/1041343
复制相似问题