这个问题更具理论性和实用性。我的补丁包含变量timber_value
和harvest_cost
。
请在NetLogo中找到一种如何选择具有最大木材价值和最低收获成本的补丁的方法。即在同一时间?
我想这可以通过添加变量difference
(difference = timber_value - harvest_cost
)来解决,只需按ask max-one-of patches [difference]
选择补丁。
但是,我想知道是否有另一种方法同时考虑两个变量(timber_value和harvest_cost)?
我无法找到比描述更好的方式......
感谢您的分享知识和讨论!
答案 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
另一方面,在这种情况下,您最好按总利润排序。由于这只是一个实数,因此不会出现这些排序问题。