Netlogo:运行时创建小世界网络

2023-12-29

我正在尝试生成一个小世界类型的网络(https://en.wikipedia.org/wiki/Small-world_network https://en.wikipedia.org/wiki/Small-world_network)在我创建的 Netlogo 模型中自始至终模型本身;人们在模型运行时会相互了解。

我知道如何在 Netlogo 中生成小世界模型setup。但是如何生成一个小世界网络在旅途中?

我在设置过程中生成小世界的代码如下。

breed [interlinks interlink] ;links between different breeds
breed [intralinks intralink] ; links between same breeds

to set_sw_network
  ask turtles[
    let max-who 1 + max [who] of turtles
    let sorted sort ([who] of turtles)
    foreach sorted [ x ->
      ask turtle x [
        let i 1
        repeat same_degree + dif_degree [
          ifelse [breed] of self = [breed] of turtle (( x + i ) mod max-who)
            [create-intralink-with turtle (( x + i ) mod max-who)]
            [create-interlink-with turtle (( x + i) mod max-who)]
          set i i + 1
        ]
      ]
    ]
      repeat round (rewire_prop * number_of_members) [    ;rewire_prop is a slider 0 - 1 with steps of 0.1
        ask one-of turtles [
          ask one-of my-links [die]
          create-intralink-with one-of other turtles with [link-with self = nobody]
        ]
      ]
  ]
end

但是,我一开始就对创造一个小世界不感兴趣。我有兴趣在整个模型中创建一个具有小世界属性的网络。目前,我的模型中确实有这个 on the go create-link 功能,但我不知道如何调整它,因此它会产生一个小世界类型的网络:

to select_interaction:
  ommitted code: sorts pre-existing links and interacts with them
  if count my-links < my_degree
  [
    repeat number_of_interactions_per_meeting
    [
      let a select_turtle  ;delivers a turtle with link to self = nobody
      if a != nobody
      [
        ifelse [breed] of a = [breed] of myself
        [
          create-intralink-with a
          [
            set color cyan
            interact
          ]
        ]
        [
          create-interlink-with a
          [
            set color orange + 2
            interact
          ]
        ]
      ]
   ]
  ]
end

目前,我的策略是为每只海龟提供一个基于给定社交网络的分布的 my_ Degree 变量。但问题仍然存在,如果这是一个好的策略,那么小世界网络的正确分布是什么?

该策略的伪代码:

to setup-turtles
  If preferential attachment: set my_degree random-poisson 'mean'
  If small world: set my_degree ????? 'mean'
end

任何见解都会很棒。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Netlogo:运行时创建小世界网络 的相关文章

  • p2p0是android中WIFI DIRECT的无线接口吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我打印 Android 设备中的所有接口时 03 10 19 50 15 484 I System out 22415 lo 03 10
  • C# NetworkStream - 在读取时区分关闭套接字和 0 字节数组

    已解决 该问题基于错误的假设 在使用 TCP 时 我遇到了 NetworkStream Read 在两种不同情况下返回值 0 的问题 我很难区分 一些背景知识 我有一个有效的客户端 服务器解决方案 使用长度前缀消息通过 TCP 进行通信 然
  • AlamoFire 在后台会话中下载

    我在新应用程序中使用 Alamofire 基于 Alamofire 的下载管理器示例 我需要一些有关使用后台会话下载文件的说明 我需要重写 SessionDelegate 才能使其正常工作吗 要不就backgroundCompletionH
  • nfq_get_payload 如何构造其返回数据?

    首先 我尝试从 Netfilter 队列有效负载的有效负载中获取源地址和目标端口 使用 nfq get payload 函数检索有效负载 下面的问题提出了同样的问题并得到了正确的答案 如何从 iptables 队列中的数据包中提取源端口号和
  • 不调用bind()的情况下监听()

    我尝试了以下方法 int sockfd socket listen sockfd 10 accept sockfd 没有一个调用失败 并且程序开始阻塞 就像我调用了bind 一样 在这种情况下会发生什么 由于没有本地地址或端口 是否永远无法
  • 当网络上的所有计算机都具有相同的公共IP地址时,如何向特定计算机发送UDP数据包? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 这就是问题 它非常简单 理解 我家里有 2 台电脑 它们都有相同的公共 IP 地址 例如 1 2 3 4 我在咖啡馆有一台计算机 不同的网络 因此它具
  • 可以或应该同时运行的 Promise 数量是否有限制?

    令人惊讶的是 谷歌无法返回这个问题的结果 我想知道在排队并等待下一个完成之前可以或应该并行运行多少个承诺 我想这可能取决于用户的互联网 但我认为值得一问 如果它基于用户的 ISP 连接类型 是否有办法在启动队列之前测试发送的理想承诺数量 另
  • 是否可以在不使用 WMI 的情况下获取网络适配器的 PnPDeviceId?

    我一直在尝试使用 p invoke setupapi 调用获取给定网络适配器的 PnPDeviceId 但没有成功 我不情愿地决定使用 WMI 如下所示 public static string GetPnpDeviceId string
  • 西格网络速度

    这个库对于获取 cpu ram 和其他人员来说非常棒 但是 我不知道如何获得网络速度 这意味着 在一段时间内发送和接收了多少数据 有办法给我这些数据吗 这可能是我正在寻找的东西吗 Tcp stat sigar getTcp stat get
  • 套接字编程中的选择函数

    谁能告诉我它的用途和应用selectc 中套接字编程的函数 The select 当您必须处理多个事件源时 函数允许您实现事件驱动的设计模式 假设您想编写一个程序来响应来自多个事件源的事件 例如网络 通过套接字 用户输入 通过标准输入 其他
  • Web 服务器可以处理多少个套接字连接?

    假设我要获得共享 虚拟或专用托管 我在某处读到服务器 计算机一次只能处理 64 000 个 TCP 连接 这是真的吗 无论带宽如何 任何类型的托管可以处理多少个 我假设 HTTP 通过 TCP 工作 这是否意味着只有 64 000 个用户可
  • accept() 创建一个新套接字是什么意思?

    我的问题基于以下理解 套接字由 ip port 定义 服务器和客户端都有自己的套接字 Socket连接由五组server ip server port client ip client port protocol定义 套接字描述符是标识套接
  • 客户端使用高端口号

    为什么客户端会结束连接 使用高端口号 临时端口 而应用程序 监听通常较小的端口号 谢谢你的优点 卡蒂克 巴拉古鲁 服务器侦听固定端口号 以便客户端知道连接到哪里 客户端不需要使用固定端口号 因为没有人发起与它们的连接 事实上 如果同一台计算
  • 如何从 iOS 应用程序检测不安全的 wifi 网络

    我想检测我的应用程序中是否存在不安全的 wifi 网络 是否有任何公共 iOS API 可以实现相同的目的 没有记录的 API 可以获取该信息 如果您的应用程序需要通过网络发送和接收敏感数据 您通常应该假设没有安全连接
  • 序列化是通过套接字发送数据的最佳选择吗?

    有人告诉我 序列化不是通过套接字发送数据的最佳方法 但他们说他们在一本书上读过一次 并且不确定更好的方法 因为他们以前没有真正做过网络 那么序列化是最好的方法还是有更好的方法 如果这有很大的不同的话 这也是一个游戏 通过搜索有关通过它发送对
  • Selector.close() 是否关闭所有客户端套接字?

    我是 nio 套接字的新手 我已经使用 nio 套接字编写了一个服务器 现在我正在尝试编写关闭钩子以确保通过清理资源正常退出 我的问题是Selector close 方法关闭所有客户端套接字 如果没有 请告诉我如何访问所有客户端套接字 而无
  • 如何使用 netlogo 生成 0.3 < X < 0.7 范围内的数字

    正如标题所示 希望生成 0 3 我目前使用 while 循环来检查随机浮点数是否在该范围内 我想知道是否有更好的方法来做到这一点 0 3 random float 0 4会给你 0 3 如果你真的不想要 0 3 我想你总是可以循环那个 我不
  • 乌龟接触时如何杀死它们?

    我似乎无法让乌龟在相互接触时死去 只有当他们在同一个补丁上时我才能杀死他们 有这样的功能吗 to killturtles if contact die end 没有 但假设你的乌龟是圆形的或圆形的 ask other turtles in
  • 使用列表与代理集

    代理列表和代理集是 NetLogo 中两种不同的数据类型 并且可以使用以下命令进行转换 turtle set and sort 该文档指出 您可以使用列表来表示代理的有序集合 使用集合来表示无序集合 看来可用于列表的匿名过程使得列表比代理集
  • Clang 5.0 上的 vsprintf 和 vsnprintf [-Wformat-nonliteral] 警告

    我有这段代码 static void err doit int errnoflag int level const char fmt va list ap int errno save unsigned long n char buf MA

随机推荐