You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NetLogo如何让turtle移动到唯一patch目标床位 避免分配冲突

现有代码异常原因
  • 核心冲突来自NetLogo的ask语句执行规则:同批次ask patients执行时,所有患者的读取操作会先统一完成,再统一执行写入操作。多名距离同一床位最近的患者会同时读取到该床位assigned = false的状态,同步设置自身target为该床位,后续执行写入床位assigned属性时,只有最后执行写入的患者会成功覆盖值,其余患者的target与床位实际assigned归属不匹配。
  • 你当前仅添加了归属不一致的日志输出逻辑,没有补充清空target重新选择的分支,自然不会自动修正分配错误。
现有代码快速修复

直接修改go-to-bed过程,补充归属校验失败后的重置逻辑,同时筛选床位时优先过滤已分配床位:

更优的双向绑定分配方案

避免让患者个体自主抢床,改为全局串行分配逻辑,完全消除冲突,同时天然支持床位释放后自动分配给等候患者:

  1. 调整go过程,先执行全局床位分配,再执行患者移动:
  1. 简化go-to-bed过程,仅保留移动逻辑:

该方案的优势:

  • 完全避免多患者抢同一张床的冲突,分配逻辑全局可控
  • 患者数量超过床位时,无空闲床位的情况下等候患者不会分配target,原地等待即可
  • 床位释放(assigned设为false)后下一个tick会自动分配给等候的患者,无需额外监听逻辑

内容的提问来源于stack exchange,提问作者Pablo Olmos de Aguilera C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:45:06