Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Netlogo 求区间上函数的(局部)极小值_Netlogo - Fatal编程技术网

Netlogo 求区间上函数的(局部)极小值

Netlogo 求区间上函数的(局部)极小值,netlogo,Netlogo,我正在为海龟们建立一个决策函数,如何分配资金以达到两个参数的一定比例。为了做到这一点,海龟们在其他海龟中找到了最成功的比率,并尝试以一个使他们的比率与最佳比率之间的差异最小的比率来分配他们的资金 从数学上讲,通过最小化计算自有比率和最佳比率之间差异的函数,这似乎相对容易实现。由于它是一个比率,因此区间自然为[0,1] 我想知道如何实现这一点?我可以用min计算一系列值并找到最小值,但这似乎有点笨拙。不幸的是,Netlogo文档对我的搜索条件帮助不大。我认为这是一个相当标准的问题,那么我是否缺少一

我正在为海龟们建立一个决策函数,如何分配资金以达到两个参数的一定比例。为了做到这一点,海龟们在其他海龟中找到了最成功的比率,并尝试以一个使他们的比率与最佳比率之间的差异最小的比率来分配他们的资金

从数学上讲,通过最小化计算自有比率和最佳比率之间差异的函数,这似乎相对容易实现。由于它是一个比率,因此区间自然为[0,1]

我想知道如何实现这一点?我可以用
min
计算一系列值并找到最小值,但这似乎有点笨拙。不幸的是,Netlogo文档对我的搜索条件帮助不大。我认为这是一个相当标准的问题,那么我是否缺少一个标准的解决方案

  • 最佳比率t-1:a/b
  • 拥有率\u t-1:c/d
  • 每蜱虫a、b、c、d的生长量:g
  • 生长分数:f

最小化为区间[0,1]定义的
g(f)=a/b-(a+(g*f))/(b+(g*(1-f))
应该得到最佳分数f,我认为?

在这种情况下,你实际上可以解析地求解最小值。取函数的导数,用代数方法求0。这会告诉你
f
根据你的参数,哪里有最大值或最小值(但不是它是什么)。然后,您只需在该点,在
f=0,在
f=1,计算您的
f
,看看哪个最小

否则,因为我相信这个函数中只有一个极小值,所以可以使用或来找到那个极小值


对于许多情况,另一个非常简单且实际上相当现实的策略就是随机抽样。只需在一组随机点上计算函数,然后取最小值。

我认为要做的是这里的最小函数。类似于让目标海龟用最小值(我的腹肌比率-最佳比率)攻击其他海龟。不过要小心,吃点像“如果目标是乌龟!”没有人只是为了让最佳比率海龟不尝试目标本身(除非你想要),你必须提供数学(函数和约束,以及最佳比率的算法)。如上所述,听起来乌龟应该模仿表现最好的乌龟。好吧,很抱歉不准确。我加上了数学题。