具有两个参数的(黑匣子)系统的最佳搜索算法。模糊逻辑?

时间:2013-11-05 12:20:22

标签: algorithm search

功能未知的系统f(x,y)= z,x和y是输入,z是产量或输出。

X:是实数,范围从(1.01到2.99),步骤0.01 Y:是整数,范围从(1到100) Z:实数代表产量,越多越好。

更改x和y值会产生不同的Z值(X和Y有一些未知的相关性),但我们总是得到相同的Z和相同的X和Y.

任务:找到最佳的X和Y组合,以获得输出(Z)上可能的最佳产量。例如:X = 2.23,Y = 87可能得到最佳可能的收率Z = 5.15。

除了暴力之外还有其他算法可以搜索最佳的X和Y吗?

编辑:

- 是否有算法学习(发现某种偏见)X和Y之间的相关性?所以检查下一组 根据第一次经验,数据将具有系统优势 - 可以在这里应用模糊逻辑吗?

3 个答案:

答案 0 :(得分:2)

除非您知道某些更多关于该函数的内容,否则不可能比检查每个值做得更好。

考虑这样的事情:(仅将x作为参数 - 在3D中绘图有点困难 - 但同样适用于2个参数)(假设z的值越高越好)

如上所述,没有办法预测功能是否会跳跃,或者它会发生在哪里。

或者连续性可能会少得多:

如果您只想要z的合适值,则不一定是最佳值:

你可以检查几个值(随机地,沿着一些增量,例如检查1.1,1.2,1.3等,或者用其他方法),并希望得到z的正确值。 / p>

但是,由于上面显示的情况,我们无法保证 - 您可能最终得到的价值远远超过最优价值。

答案 1 :(得分:0)

如果没有关于功能f的任何其他信息,例如smooth function,只有蛮力才能找到解决方案。它将是100%正确的解决方案。

任何其他尝试并不比随机选择X和Y更好,因为不会给予任何保证。

因此,如果您找到解决方案的时间比其有效性更重要,那么最佳解决方案是随机选择X和Y.

答案 2 :(得分:0)

首先,只有200 * 100可能值,蛮力将获得快速100%准确的答案。我认为没有理由进一步优化它(除非这是在紧密的循环中完成的,或者可能在以后需要更高的尺度)

但是,如果您的问题可能会扩大,并且由于我们正在讨论“可能最大”(而不是最大限度)值,一种方法可能是在某些点采样数据,并执行 {{3在这个范围内估算数据的行为

假设它背后有一些理性(可能会或可能不会) - 你会得到一条与你的数据非常接近的曲线。
之后 - 使用通用方法(派生词)来找到局部最大值(并从中得到全局最大值)。

虽然这不是100%准确,但它会让你接近最大值,假设数据分离背后有理性。