很抱歉发了这么长的帖子。我是基于智能体建模的新手。因此,如果我的问题听起来很愚蠢,请提前接受我的道歉。我正在尝试模拟一个场景,在这个场景中,框架(即智能体)决定哪种作物应该在不同类型的田地中收获,以增加利润。农民代理有一个预算,即每个时间步在农业上可以花费的钱的数量等于100美元。
农场主经营着一个农场,该农场被细分为9个农田,这些农田排列在3x3的蜂窝网格中。每个字段的大小都相同。水的可用性在空间上随田块的不同而变化,等级为1(最干燥)、2(中等)或3(最湿)。水的可用性在田野中变化的方式(即随机变化)。农民必须在三种作物中选择一种。作为初始参数设置,作物具有以下特征:
Yield Price Costs Minimum Water Req.
Crop 1 300 20 15 3
Crop 2 200 12 10 2
Crop 3 100 7 5 1
每种作物都需要一定量的水才能生长。只有当作物种植在至少满足作物最低需水量的田地上时,才能实现作物产量。现在的问题是,我在Netlogo中找不到任何计算作物、田地和水需求的排列或组合来计算预期利润的函数。任何帮助都将不胜感激。
发布于 2019-11-25 01:35:02
我相信你描述了一个线性规划问题。
用于解决单纯形线性规划问题的有用函数位于NumAnal扩展中,该扩展不与NetLogo捆绑在一起,但您可以获得如下所示:
在NetLogo中的Tools / Extensions下...您可以找到NumAnal,可能没有绿色复选标记。选择它。在右边,您有安装它的按钮,然后有一个按钮将它添加到您的代码中。当您单击这些命令时,它现在应该会得到一个绿色的复选标记,并且您的代码中应该有一个新的行"extensions numanal ",并且您现在可以使用这些命令,并带有"numanal:“前缀,例如,numanal:simplex。
它的文档位于安装它的文件夹中。但是它在哪里呢?遗憾的是,下载扩展的文档是,而不是最新的。https://ccl.northwestern.edu/netlogo/docs/extensions.html#where-extensions-are-located
在按修改日期进行详尽搜索后,我实际上在Windows10笔记本电脑上找到了这个文件夹: c:\Users\condor\AppData\Roaming\NetLogo\6.1\extensions (注意"\Roaming\“)。
该文件夹有一个README.md文本文件,一个名为"NumAnal-v3.4.0“的pdf文档解释了如何使用它,还有一个包含代码的examples文件夹。它有点太密集了。
这里有一个链接,指向如何描述线性规划问题的基础知识,这超出了StackOverflow的范围。你可以通过谷歌找到帮助。
这里有一个8分钟的视频(截至2019年11月24日),它可能会帮助你找出这是不是你需要的。
单纯形算法说明(如何解线性规划) https://www.youtube.com/watch?v=RO5477EKlXE
https://stackoverflow.com/questions/59015503
复制相似问题