我有称为“订单”的代理商 在这些代理中,有许多设备作为属性。根据每个设备的使用年限,一定数量的设备会根据随机泊松过程而损坏。例如:
订单具有以下属性:
我找到了几种方法,以列表方式使用过滤器来实现此目的:
ask orders [
let broken-list n-values amount-installed [random-poisson order-age]
set broken-list filter [s -> s >= average-lifespan] broken-list
set broken-this-year length broken-list
set amount-installed amount-installed - broken-this-year
set amount-broken amount-broken + broken-this-year
]
我发现实现此目标的另一种方法是使用while循环方法:
ask orders [
while [amount-checked < amount-installed] [
if random-poisson order-age >= average-lifespan [
set broken-this-year broken-this-year + 1
]
set amount-checked amount-checked + 1
]
set amount-installed amount-installed - broken-this-year
set amount-broken amount-broken + broken-this-year
]
因此,应该有许多已安装的设备出现故障,而许多设备仍在工作。但是,每个订单都包含数千个设备,并且在我的模型中有数百个订单。因此,此过程要花很长时间才能达到计算机死机的程度。必须有一种无需使用循环方法即可获得相同结果的方法。有谁知道更好的方法来解决这个问题?