問題タブ [nonlinear-optimization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Microsoft Excel の Solver 機能 (GRG Nonlinear) を C# でエミュレートするにはどうすればよいですか?
制約のある非線形最適化の問題があります。ソルバー アドインを使用して Microsoft Excel で解決できますが、C# で再現するのに問題があります。
私の問題は、次のスプレッドシートに示されています。私は古典的なA x = b問題を解いていますが、 xのすべての成分が非負でなければならないという警告があります。したがって、標準の線形代数を使用する代わりに、非負の制約を持つソルバーを使用して、差の二乗和を最小化し、妥当な解を得ます。Microsoft Solver FoundationまたはSolver SDKを使用して、これを C# で複製しようとしました。ただし、MSFでは目標を定義する方法がわからず、Solver SDKでは常にステータスが「最適」であり、ローカルではないすべて0のソリューションが返されるため、どこにも行けないようです。最小。
Solver SDK のコードは次のとおりです。
Microsoft Solver Foundation のコードはありません。ゴール関数を 1 行で記述できるとは思えず、Solver SDK のようにデリゲートを使用できないためです。
optimization - CUDA におけるグローバル最適化のための費用関数計算
パラメータ( )を使用して関数を最適化しようとしています(最小値を見つけるなど)。すべての は特定の範囲 (たとえば ) にバインドされており、いずれかのパラメーターがこの範囲を離れると、関数は非常に高速に無限大になります。ただし、大きくなる可能性があり ( から約 まで)、その値の計算には長い時間がかかります。n
Xn
Xi
-200
200
n
20
60-70
関数の詳細はあまり重要ではないと思いますが、ここにいくつかを示します。これは、20-30
小さな関数 (すべて異なる) の加重和で構成されており、逆関数の符号の下の内積の和で構成されています。正弦関数 ( arcsin
、arccos
、arctan
など)。のようなものarcsin(X1 . X2) + arcsin(X4 . X7) + ...
。
関数には一般に多くの極小値があるため、(単純な) 共役勾配や準ニュートンなどのアプローチは役に立ちません。ドメイン全体を力ずくで検索するのは遅すぎます。
私の最初のアイデアは、遺伝的アルゴリズムと組み合わせてある種の大規模な並列化を使用することでした。これは、関数のドメイン内のさまざまな場所で多くの検索を実行し、検索の一部が極小値に達したかどうかを定期的にチェックします。はいの場合、それらを比較し、最小のものを除くすべての結果を破棄し、適度に小さい値が見つかるまで検索を続けます。
私の2つの質問は次のとおりです。
1) この問題を CUDA または同様の技術で実装することは可能ですか? CUDA はこのような関数の値を十分に高速に計算できますか?
2) マルチコア PC (12 コア以上) で問題を実装する方が良い/速いですか?
c++ - C++ WITH 制約の逐次非線形最適化ライブラリ
制約付きの逐次非線形最適化のための c++ の適切なライブラリはありますか?
不等式の制約および/または上限と下限を探しています。
これにはすでにスタックオーバーフローの質問がありますが、すべてに制約があるわけではありません。
私はNLoptを知っていますが、私の特定の問題ではうまくいきません。他にもありますか?
他の誰かがlpOptに興味を持っている場合、私は最終的に私が探していた解決策を見つけました
haskell - haskel の逐次非線形最適化のためのライブラリ?
Haskell で記述されている、または Haskell から簡単に呼び出すことができる、上限と下限、および不等式制約を使用した逐次非線形最適化用のライブラリはありますか?
c# - C# での Extreme Optimization を使用したリスク パリティ ポートフォリオの最適化
Extreme Optimization ルーチンを使用して、C# でリスク パリティ ポートフォリオを作成しようとしています。
私は主にそれらを購入する前に気に入るかどうかを試しています (私は学生なのでお金が逼迫しています)。
私のアイデアは、リスク・パリティと呼ばれるこの新しい種類のポートフォリオ最適化を実装することでした。基本的に、ポートフォリオを多様化するためには、その各コンポーネントに均等なリスクを与える必要があると言っています.
np1.Solve() を実行すると null エラーが発生しますが、その理由がわかりません。それ以外はエクストリームオプティマイゼーションで計算されていると思っていました。
1. 私は何を間違っていますか?
2. 私が知らないこの最適化を行うためのより高速な方法はありますか?
3. EO ライブラリを知らないが、これを C# の何かで実装できる場合は、これをどのように解決するかについてコメントを残していただけますか?
ちなみに、ポートフォリオ構築の詳細は距離関数のコメントにあるので、興味のある方はどうぞ。
よろしく、
エドゥアルド
cuda - GPU で並列に実行される多くの最適化ジョブ用の既存のライブラリはありますか?
nVidia Geforce で多数 (数千) の小さな最適化ジョブを実行しようとしています。
小さなジョブとは、3 ~ 6 次元で、それぞれ約 1000 データ ポイントが入力されることを意味します。基本的には曲線フィッティングを目的としているため、最小化する目的関数は、連続 (自明ではない) 分析関数の二乗和であり、その一次導関数を分析的に計算できます。各次元は、下限と上限の間に制限されます。
これらのジョブの唯一の共通点は、異なる 1000 個のデータ ポイントを取得する元のデータ シリーズです。
これは、CPU で 1 つずつ実行することで、GPU で現在よりもはるかに高速になると思われるため、リアルタイムの監視に使用できます。
ただし、私が見た GPU ライブラリは、GPU で (より高速に) 単一の関数評価を計算することにのみ焦点を当てています。
nvidia CUDA フォーラムで私の特定の質問に関するスレッドがあり、より多くのユーザーがこれを探していましたが、フォーラムはしばらくの間ダウンしています。既存の C ライブラリ (例: levmar) を CUDA 言語に移植することについて言及していましたが、これは失われました...
GPU で多くの最適化を並行して実行する既存のライブラリを知っていますか?
ありがとう!
matlab - Solving some type of Mixed Integer Programming in Matlab
I have a rather complicated optimisation problem I want to solve in matlab, I posted it on math.stackexchange.com since it supports LaTeX maths display,
I would really appreciate it if anyone can give me some suggestions on that.
r - Rでの最適化-非線形制約のある非線形効用関数
β
関数を最大化するためのベクトルを見つけようとしています
(a)の対象
(b)のすべての要素は β
非負である必要があります。
はβ, μ
長さ15のベクトルでありM
、15x15の共分散行列です(μ
およびM
が与えられます)。
Stefan TheusslのCRANページにリストされているオプティマイザーのどれが私の場合に最も適しているかについてのアドバイスはありますか?
c++ - Matlab fmincons と ipopt のような C++ の NLP ソルバーとの間のパフォーマンスのギャップは何ですか?
いくつかの高次元 NLP (非線形プログラミング) を含むリアルタイム アプリケーション用のアルゴリズムを作成しようとしています。
実装の前に、アルゴリズムのタイミングを計って、リアルタイム アプリケーションで実現可能かどうかを確認する必要があるため、Matlab の組み込み fmincons をベースラインとして使用します。
経験が示すように、matlab アルゴリズムは C++ の対応するアルゴリズムよりも遅いものから非常に遅いものまで変化する傾向があるため、この特定のケースでどのようなパフォーマンスの向上が期待できるかを見積もりたいと思いますか?
私の仕事は主にリアルタイム アプリケーションに関連しているため、NLP (非線形プログラミング) を使用することはめったにありません。同僚に尋ねたところ、最初に ipopt を試すことを勧められました。その Web サイトをググったところ、Matlab に対するベンチマークはありませんでした。 、アルゴリズムの詳細に関するトピックはあまりありません(少なくともMatlabでは、アルゴリズムの詳細を確認することは難しくありません)ので、基本的に精度/堅牢性/最適性などについてはほとんどわかりません。
したがって、NLP の C++ 実装に関するここでのヘルプは非常に役立ちます。事前に感謝します。
ms-solver-foundation - チャップマン・リチャーズ方程式を解く
3 つのパラメーターで Chapman-Richards を解く方法を見つける必要があります。方程式は
F=a(1-EXP(-bt)) power c
これは非線形の問題です。目標はエラーを最小限に抑えることであり、制約は 3 つの変数が >= 0.0001 でなければならないことです。現在の実装では、Excel と Solver プラグイン (GRG 非線形法) を使用しています。しかし今は、Excel を使用せずにこれらすべてを実装する必要があります。
私の質問は次のとおりです。1. MS Solver Foundation を使用してこの問題を解決することは可能ですか? 私はいくつかのドキュメントを読んで、MS Solver Foundation が Nelder Mead Solver またはハイブリッド ローカル検索ソルバーのいずれかを使用して非線形問題を解決していることを理解しています。これらの方法を使用して特定の問題を解決できるかどうかは誰にもわかりませんか? また、Excel の Solver アドインの GRG 非線形法を使用した場合と同じ結果になりますか?
そうでない場合、Excel ソルバーの GRG 非線形メソッドを実装することは可能ですか?
これを実装する他の方法はありますか?
事前にご返信いただきありがとうございます。カー
補遺: 申し訳ありませんが、t が時間変数であることを忘れていました。a、b、および c は、ソルバーによって変更できるパラメーターです。