NetLogo:可以一次性按多个标准选择补丁吗?

时间:2016-07-14 22:23:51

标签: netlogo

这个问题更具理论性和实用性。我的补丁包含变量timber_valueharvest_cost

请在NetLogo中找到一种如何选择具有最大木材价值和最低收获成本的补丁的方法。即在同一时间? 我想这可以通过添加变量differencedifference = timber_value - harvest_cost)来解决,只需按ask max-one-of patches [difference]选择补丁。

但是,我想知道是否有另一种方法同时考虑两个变量(timber_value和harvest_cost)?

我无法找到比描述更好的方式......

感谢您的分享知识和讨论!

1 个答案:

答案 0 :(得分:2)

一般来说,答案是否定的,但这与NetLogo无关。要查看问题,请为这两个属性创建有序的值对。假设你得到[2 1]和[1 2]。你想如何比较它们?也就是说,您可以获得最大的木材价值补丁,然后是收获成本最低的补丁。

patches-own [x y]

to test
  ca
  ask patches [
    set x random-float 1
    set y random-float 1
  ]
  show map [[list x y] of ?] 
    sublist
    sort-by compare patches
    0 10
end

to-report compare [#p1 #p2]
  let _x1 [x] of #p1
  let _x2 [x] of #p2
  let _y1 [y] of #p1
  let _y2 [y] of #p2
  report (_x1 < _x2) or (_x1 = _x2 and _y1 < _y2)
end

另一方面,在这种情况下,您最好按总利润排序。由于这只是一个实数,因此不会出现这些排序问题。