我想解决以下问题:
x * = argmin f(max_ {j = 1,...,J} g_j(x)),
其中f
和g_j
是已知的平滑函数,而x
是标量。我还有f
和g_j
的分析梯度。是否可以使用fminunc
(使用牛顿方法)或MatLab中的其他求解器来找到解决方案?显然max_{j=1,...,J} g_j(x)
是不可区分的(除非k
对所有g_k(x) >= g_j(x)
都j
,但它是不可微分的。因此,我无法直接使用fminunc
,因为它请求目标函数的渐变。如果我可以使用fminunc
,我将如何处理?
例如,请考虑f(x) = x
,J=1,2
,g_1(x) = (x-1)^2
,g_j(x) = (x+1)^2
。然后max g_1, g_2
是g_1
和g_2
的上方信封。最低限度位于x=0
。
注意:函数fminimax
接近我想要的。 fminimax
解决了
x * = argmin max_ {j = 1,...,J} g_j(x)。