線形プログラムのすべての最適解を取得するための良い方法 (できれば JuMP を使用) があるかどうか疑問に思っていました (複数の最適解がある場合)。
例
2 つの確率分布間の統計的距離 (コルモゴロフ距離) を最小化します。
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 の最小距離を持ち、これら 2 つのソリューションの任意の凸結合が最適です。
これらすべての最適な極値 (最適な部分空間にまたがる点) を見つける良い方法があるかどうか疑問に思っていましたか?
なぜこれに興味があるのですか?最大のBhattacharyya 係数(凹関数)を与える点は、静的距離の最適部分空間の中間のどこかにあります。
これまでのところ、最適な P,Q のペア (私が示した例を参照) を見つけようとしました和。確かなことはほとんどわかりませんが、ある程度は機能しているようです。