我想知道是否有一种很好的方法(最好使用 JuMP)来获得线性程序的所有最优解(如果有多个最优解)。
一个例子
最小化两个概率分布之间的统计距离(Kolmogorov 距离)。
min sum_{i=1}^{4} |P[i] - Q[i]| over free variable Q
P = [0.25,0.25,0.25,0.25]
sum_i P[i] = 1
Q[1] + Q[4] = 1
sum_i Q[i] = 1 -> Q[2],Q[3] = 0
请注意,我们可以将优化表述为线性程序,目标变为
min S >= sum_i S[i]
S[i] >= P[i]-Q[i]
S[i] >= Q[i]-P[i]
这个问题没有唯一解,而是最优解的子空间由
Q1 = [0.75,0,0,0.25]
Q2 = [0.25,0,0,0.75]
两者的最小距离都是 0.5,这两个解的任何凸组合都是最优的。
我想知道是否有一种很好的方法可以找到所有这些最佳极值点(跨越最佳子空间的点)?
为什么我对此感兴趣;给出最大Bhattacharyya 系数(凹函数)的点位于静态距离的最佳子空间的中间某处。
到目前为止,我已经尝试通过在和。它似乎在某种程度上起作用,尽管我很难确定。