Network programming 在netlogo中双向终止随机定向链接
问候, 我对netlogo非常陌生,对netlogo中的GIS和网络功能非常感兴趣 目前,我已经构建了一个有向图网络。 我想实现一个函数来终止两个方向上的定向链接路径 我已经找到了在两个方向上杀死一个链接的方法,如果你知道哪一个是要杀死的2节点的链接。下面是代码(由Seth Tisue在一个问题线程中提供): 我想在两个方向上消除一个随机链接。我假设我需要使用“ask-one-of-links[die]”和代码的另一部分来终止相应的链接的另一个方向 我想我的问题是“其中之一”的机制是如何工作的,这样我就可以先存储这个随机链接,然后使用上面的第一个代码消除两个方向。 作为一个旁侧,我也对NETLogo如何使用变量而感到困惑,这与普通C++程序(我的基本是C++编码)完全不同。我为我的网络和GIS shapefile做了很多导入工作,目前我还没有使用netlogo引擎作为我的计算引擎(对我来说是一种浪费) 如何将简单的“x=1+1”存储到netlogo中的全局变量中?Network programming 在netlogo中双向终止随机定向链接,network-programming,netlogo,Network Programming,Netlogo,问候, 我对netlogo非常陌生,对netlogo中的GIS和网络功能非常感兴趣 目前,我已经构建了一个有向图网络。 我想实现一个函数来终止两个方向上的定向链接路径 我已经找到了在两个方向上杀死一个链接的方法,如果你知道哪一个是要杀死的2节点的链接。下面是代码(由Seth Tisue在一个问题线程中提供): 我想在两个方向上消除一个随机链接。我假设我需要使用“ask-one-of-links[die]”和代码的另一部分来终止相应的链接的另一个方向 我想我的问题是“其中之一”的机制是如何工作的,
如果这个问题对大多数人来说太简单,我真的很抱歉。全局变量应该在程序开始时声明:
globals [
my-global-link; this will be my global variable
my-another-one-link; another one
]
要“存储”随机链接,请按如下方式使用:
to do-something
set my-global-link one-of links
end
对于局部变量(在过程中),只需先使用let do declare:
to do-something
let tmp-global-link one-of links
end
就像一般的stackoverflow惯例一样,如果你有两个问题,请分别提问。这是为了使stackoverflow成为程序员有用的资源,这样标题和问答就可以一起轻松找到
globals [x tonode fromnode]
to setup
clear-all
create-turtles 20
[ setxy random-xcor random-ycor]
repeat 100
[ ask one-of turtles
[ create-link-to one-of other turtles ; will not be created if already link
]
]
set x 1 + 1
end
to kill-link
ask one-of links
[ set fromnode end1
set tonode end2
die
]
ask tonode
[ if out-link-neighbor? fromnode
[ ask out-link-to fromnode [die]
]
]
end
要了解NetLogo中的变量,请参阅如何
终止链接let dead1 dead1 ask(link set dead1 dead2)[die]end的链接let dead2[[out link to other end]of end2]中的一个链接let dead2](链接集dead1 dead2)[die]end
,感谢JenB和Seth Tisue!我是stackoverflow的新手,将来我会坚持每个线程一个问题。至于“杀死一个链接(如果它存在的话,包括倒数链接)”的方式,我个人认为JenB版本更容易阅读,而Seth Tisue版本则可能更短。然而,这两种方法都有效!再次感谢!谢谢你的评论,虽然这不是我想要的,但无论如何,我还是要感谢你花时间来帮助我!
globals [x tonode fromnode]
to setup
clear-all
create-turtles 20
[ setxy random-xcor random-ycor]
repeat 100
[ ask one-of turtles
[ create-link-to one-of other turtles ; will not be created if already link
]
]
set x 1 + 1
end
to kill-link
ask one-of links
[ set fromnode end1
set tonode end2
die
]
ask tonode
[ if out-link-neighbor? fromnode
[ ask out-link-to fromnode [die]
]
]
end