我有三个值 X、Y 和 Z。这些值的值范围介于 0 和 1 之间(包括 0 和 1)。当我调用函数 f(X,Y,Z) 时,它返回一个值 V(0 到 1 之间的值)。我的目标是选择 X,Y,Z 使返回值 V 尽可能接近 1。
选择过程应该是自动化的,并且 X、Y、Z 的正确值是未知的。
由于我的用例,可以将 Y 和 Z 设置为 1(值 1 对输出没有任何影响)并搜索 X 的最佳值。之后我可以用该值替换 X 并执行相同的操作对于 Y。对于 Z 的程序相同。
如何找到“函数的最大值”?是否有某种“梯度下降”或爬山算法或类似的东西?整个模块是用 perl 编写的,所以也许有一个 perl 包可以解决这个问题?