我正在为海龟构建一个决策函数,如何分配资金以达到两个参数的某个比例。为此,海龟在其他海龟中找到最成功的比例,并尝试以导致其比例与最佳比例之间差异最小的比例分配资金。
从数学上讲,通过最小化计算自身比率和最佳比率之间差异的函数,这似乎相对容易实现。由于它是一个比率,因此区间自然是 [0,1]。
我想知道如何实现这一点?我可以计算一个值列表并找到最小值min
但这似乎有点笨拙。不幸的是,鉴于我的搜索词,Netlogo文档没有多大帮助。我认为这是一个相当标准的问题,所以我错过了一个标准解决方案吗?
- bestRatio_t-1:A/B
- ownRatio_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
,看看哪个最小。
否则,由于我相信此函数中只有一个最小值,因此您可以使用二叉搜索或梯度下降来查找该最小值。
在许多情况下,另一个非常简单且实际上非常现实的策略是随机采样。只需在一堆随机点上评估函数并取最小的点。