NetLogo:可以 select 一次按多个标准打补丁吗?

NetLogo: possible to select a patch by multiple criteria at one time step?

这个问题偏理论,偏实际。我的补丁有变量 timber_valueharvest_cost

请问,在 NetLogo 中是否有一种方法可以select 一块具有最大木材价值和最小采伐成本的补丁 'ask' 即同时? 我想这可以通过添加变量 difference (difference = timber_value - harvest_cost) 和 select 补丁 ask max-one-of patches [difference].

来解决

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

我真的想不出比描述的更好的方法...

感谢您分享知识和讨论!

一般来说答案是否定的,但这与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

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