在任何逻辑中添加和删除代理的问题

问题描述

我是 anylogic 的新手,在使用 add_agent() 创建新代理时遇到了问题。我正在模拟一个有消费者、供应商和产品作为代理的在线商店。每个产品都属于一个供应商,消费者在这段时间内购买它们。当每个供应商的产品数量低于预定义阈值或消费者需求超过可用产品时,我尝试使用 add_Product()(来自主要代理)添加新产品。问题在于,在每个供应商中,分配给产品的索引是重复的(root.Products[5],root.Products[5]),有时甚至会生成索引 -1(root.Products[-1])。因此,当我想删除产品(对销售产品进行建模)时,索引为 -1 的产品不会被删除。你知道我的错在哪里吗?

解决方法

避免依赖自动索引来引用群体中的代理。最好在您的代理类型中添加一个整数类型的参数,并为其分配一个值,以便您以后想要删除它时可以“识别”它。

如果您向 Product 添加参数“myIndex”,您可以使用 add_Product(6) 创建一个新的 Product,其中 6 是您以后可以通过其找到该产品的索引。

查看有关参数、代理创建等的帮助以了解更多