Rnの関数/nの最小値を見つけるアルゴリズムがあります。そして、私は制約多様体を持っています。それは、特異な立方体の画像の形で与えられます。特異な立方体の内部空間をRnに、さらに重要なことにその逆にマッピングすることは非常に簡単であり、すべての座標に適用されたunar関数from_R_to_01を使用して実行できます。
したがって、私がやりたいのは、あるアリティのターゲット関数Fを取得し、同じアリティの別の関数を作成することです。これは、その座標がRnから制約マニフォールドManにマップされることを除いて、同じFになります。したがって、最小化アルゴリズムにそれを与え、Rnで座標のペアを取得し、それらを同じ多様体にマップして「実世界」の座標を取得できます。したがって、非線形計画法のタスクを制約のない最適化に減らします。
さて、質問に戻りましょう。このコードは2つのarの場合に機能します。
minn_man2(F, Man) ->
OnRn = fun (X, Y) -> # this is the limiting part
OnMan = Man( from_R_to_01( X ), from_R_to_01( Y ) ),
apply( F, OnMan )
end,
[X | [ Y | []]] = minn( OnRn ),
Man( from_R_to_01( X ), from_R_to_01( Y ) ).
どうすればもっと一般的にできますか?最も難しい部分は、Fsのアリティの無名関数を作成することです。これを行う方法がまったくわかりません。