Netlogo 如何选择特定链接并使其消亡
我正试着让一个运送者从交货时收集金属片,然后把它放在切割机上。切割机将金属板切割成两个物体中的一个,并将其输出,由载体收集。创建和破坏下面这样的链接是模拟运送者运送、放下和收集物品的最佳方法吗?如果是这样,我如何选择要终止的特定链接?我已经用“X X”标记了NetLogo预期2个输入的位置,因为我不确定在那里写什么。干杯Netlogo 如何选择特定链接并使其消亡,netlogo,Netlogo,我正试着让一个运送者从交货时收集金属片,然后把它放在切割机上。切割机将金属板切割成两个物体中的一个,并将其输出,由载体收集。创建和破坏下面这样的链接是模拟运送者运送、放下和收集物品的最佳方法吗?如果是这样,我如何选择要终止的特定链接?我已经用“X X”标记了NetLogo预期2个输入的位置,因为我不确定在那里写什么。干杯 globals[ metal-sheets cutter-closest-free-carrier s-welder-closest-free-carrier
globals[
metal-sheets
cutter-closest-free-carrier
s-welder-closest-free-carrier
p-welder-closest-free-carrier
skeletons
standard-skeletons
]
breed[carriers carrier]
breed[cars car]
cars-own [
body; standard, prestige
]
这并不能回答你的问题,因为我认为你已经陷入了一场真正的时间纠葛。整个事情需要重新组织,这将导致一个完全不同的问题 此代码使切割机在一个过程中找到板材、交付板材等。这意味着这一切都发生在同一时间。然而,它只向前移动了0.1。你需要以一种完全不同的方式来思考这个过程 在一个时间步中会发生什么?一些切割工找到并切割床单。已经有板材的其他切割机向输送点移动。其他的切割工也在运送他们的床单。这些都需要不同的程序。交付板材的切割器是连接模具所在的切割器,但您不必识别它们(您所拥有的X X),因为只有交付板材的切割器才会执行该程序 查看名为Shepherds的NetLog0模型库模型中的
go
过程。它的结构与您在这里需要的结构相似
to cut
let free-carriers carriers with [laden = false]
let cutter patches with [machine-type = "cutter"]
let delivery patches with [area = "delivery"]
set cutter-closest-free-carrier nobody
ask cutter [
if status = "import" [
set cutter-closest-free-carrier min-one-of free-carriers[distance myself]] ]
if cutter-closest-free-carrier != nobody[
ask cutter-closest-free-carrier [
set target delivery
face one-of delivery
fd 0.01
set metal-sheets cars-here
if any? metal-sheets [
create-link-to one-of metal-sheets [tie]
set laden true
set target cutter
face one-of cutter
fd 0.01
ask cutter[
set metal-sheets cars-here
if any? metal-sheets [
ask link X X [die]
set status "pending"
create-link-to one-of metal-sheets [tie]]
]
]
]
]
end