跳到主要内容

Links

图标

link

说明

要点

理解"网络"就是Link种群集合

  • 一个Link网络的"节点"对应Agent个体,连边即为Link个体(它的两端是Agent个体)
  • 系统并不存在一个具体的"网络"对象
  • 网络的"节点"不是具体的对象,只是代表连接几何关系的交汇位置,Agent个体只是占据网络中的这个位置
  • 网络的连边是具体的Link对象,Ends内置属性[start_agent_object, end_agent_object]格式记录了其两个端点的Agent个体对象
  • Link具备了"网络"的完整信息:所有节点和连边

与其他对象的关系

  • 如果一个Agent个体是网络的某个节点,那么如果销毁该Agent(即调用其Die方法)时,网络的节点也将随之消失,与该节点连接的所有Link个体也将消亡,这些网络关系的变化都会体现在网络视图
  • 删除网络节点(即调用某Link种群观察者行为RemoveNode,传入目标Agent个体对象)时,不会影响原本作为该节点的Agent个体本身的存在(比如它仍然在世界视窗中),但与之相关的Link个体将会消亡,这些网络关系的变化都会体现在网络视图
  • 显然,当模型中不存在Link组件时,相关的逻辑(如创建Link等)将触发运行报错
  • 可以在“技术说明”章节的说明表中获得依赖Link实体的内置属性内置行为的相关详细信息

Link对象的设置方法

Links001

方向性设置

  • 可选择Link是单向还是双向
  • 当Link为双向时,Ends内置属性(格式为[start_agent_object, end_agent_object])的起点与终点顺序无实际意义

可重复性设置

  • 设置为False(默认,不可重复)时,两个Agent个体间的相同方向、相同实例种群的Link只能有唯一的一条,如果在建模中再次创建,系统会忽略
例子:不可重复Link

假设模型有1个名为LK1的单向的、不可重复的Link实例对象

  • 如果一个A->B的单向Link已经存在,我们可以创建一个反向的,即B->A的单向Link,此时2个Agent之间有2个单向关系,都属于LK1种群
  • 但是如果用户再次创建A->B的LK1连接,系统将忽略
  • 设置为True时可以重复,意味着方向性质完全相同的Link可以有多条,允许用户在建模中多次创建相同断点的关系
例子:可重复Link

假设模型有1个名为LK2的双向的、可重复的Link实例对象

  • 如果有一个A与B间的双向Link已经存在,我们可以再次创建A与B间的双向Link,此时A与B间的LK2连接有2个

除非您对Link使用熟练,否则不建议使用可重复设置

个体属性设置

Links002

设置方法与Agent个体属性设置类似

案例

模型案例

User个体随机与他人创建Link从而形成一个网络

所以你可以多试几次得到不同形状的网络