我正在尝试使运输工具从交货时收集钣金并将其放在切割机上。切割机会将金属板切割成两个主体之一,并将其输出以由载体收集。创建和销毁链接(例如下面的链接)是模拟承载,下放和收集物品的最佳方法的最佳方法吗?如果是这样,我该如何选择要死的特定链接?我已经用“ X X”标记了NetLogo期望2个输入的位置,因为我不确定在那里要写什么。干杯
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
]
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
这不会回答您的问题,因为我认为您在这里确实对时机产生了纠结。整个事情都需要重新组织,这将导致一个完全不同的问题。
此代码使切纸器可以在一个过程中找到并传送纸张等。这意味着所有这些都发生在相同的滴答中。但是,它仅向前移动0.1。您需要以完全不同的方式来考虑流程。
在一个时间步中会发生什么?一些切割工找到并切割了一张纸。其他已经有单页纸的切纸器移向输出点。其他裁切器将其纸张送出。这些都需要是不同的过程。传递其工作的裁纸器是链接死的地方,但是您不必识别它们(您的身份为X X),因为只有进行分娩的裁纸器才可以执行该过程。
[看一下NetLog0模型库模型Shepherds中的go
过程。它的结构与您在此处所需的结构相似。