Netlogo:以有计划的方式移动海龟并可视化他们的路径

时间:2017-12-05 10:25:57

标签: netlogo

我需要一些关于硕士论文中关键主题的帮助。

想象一下两种类型的海龟,海龟车和海龟。 因此,龟车被放置在世界的特定区域,龟屋随意放置。

主要目标是让龟车访问所有房屋并返回起始位置。

案例研究的例子: 2辆汽车和5个房子

想象一下,我定义了以下路由向量: 路线:[0 2 3 1 4,5 5 6 5 6]

在第一部分随机放置房屋进行访问,然后分别进行访问的汽车,即汽车5访问房屋0 2和1,汽车6访问房屋3和4。

我使用每只海龟的ID,具体取决于使用的海龟总数。 也就是说,使用给定的路线矢量,我的汽车可以自动被查看访问他们各自的房屋(按照他们插入矢量的顺序,如上所述)。

我的问题是,了解矢量路线后,如何让汽车选择去哪里并返回起点。

如果有人可以帮助我,我真的很感激。

1 个答案:

答案 0 :(得分:2)

以下是一些代码,用于获取输入路径矢量并为每辆车创建路线。汽车和房屋的配对取自NetLogo: How to filter a list using a criterion which refers on a corresponding list?。这是具有最清晰解释的形式,如果您可以从该答案构建filter版本,那将更加优雅。

globals [ route-vector ]
breed [cars car]
cars-own [ route ]

to setup
  clear-all
  set route-vector [ 5 10 15 20 25 0 1 2 0 1 ]
  create-turtles 3 [ setxy random-xcor random-ycor ]
  make-routes
  reset-ticks
end

to make-routes
  let houses sublist route-vector 0 (length route-vector / 2 )
  let carlist sublist route-vector (length route-vector / 2 ) (length route-vector)
  ask cars [ set route [] ]
  (foreach carlist houses
    [ [the-car the-house] ->
      ask cars with [who = the-car] [ set route lput the-house route ]
    ]
  )
end

请另外询问有关使用路线变量实际沿路径移动的问题。但是,请尝试自己动手,以便显示代码并描述需要修复的内容。