【问题标题】:Moving downhill a patch variable while maintaining a global direction在保持全局方向的同时下坡移动补丁变量
【发布时间】:2021-05-04 15:49:04
【问题描述】:

我正在一个具有不同土地覆盖类型的景观中构建一个分散模型:城市、森林、住宅等。这些土地覆盖类型中的每一种都有一个运动阻力斑块变量,它们存在于斑块簇中:

urban - 4 + random-float 1.0

住宅 - 9 + random-float 1.0

森林 - 1 + 随机浮点 1.0。

我希望我的海龟将阻力值从一个森林斑块群向下移动到另一个。然而,我遇到的问题是,因为阻力值不是以梯度分布的,如果其邻居的阻力相同,海龟将保持原地不动,或者如果该方向的阻力较低,则海龟会向后远离森林斑块.

模型库中大多数使用下坡/上坡功能的模型都有山等梯度景观,但我的是随机分布的。

我怎样才能让我的海龟在下坡的同时保持朝向森林斑块的全局方向,这样它们就不会向后移动?

谢谢!

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    在我看来,这更像是一个建模问题,而不是一个 Netlogo 问题。 如果海龟已经访问了该集群中的所有森林斑块,您希望它们如何移动?

    两个想法:

    • 他们移动到所有相邻补丁中阻力最小的补丁,这些补丁更接近他们的目的地,例如与min-one-of
        face destination   ; destination is a patch
                           ; could be a global variable set in setup
        let candidates (patch-set patch-right-and-ahead 30 1
                                  patch-left-and-ahead 30 1 
                                  patch-ahead 1)
        move-to min-one-of candidates [value]  ; turtle moves to the candidate patch with the smallest "value"
    
    • 或者,如果他们了解整个景观,他们可以使用路径搜索算法(例如 A*)来最小化路径上的阻​​力总和。

    【讨论】:

    • 嗨@Lena,谢谢你的回复!我希望海龟移动到其邻居斑块的最低阻力,同时保持全球目的地朝向森林斑块。他们只会知道他们的邻近地区,而不是整个景观。有没有办法在使用 min-one-of 函数的同时确保保持全局方向?
    • 非常感谢@Lena :) 效果很好!
    猜你喜欢
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多