タグ付けされた質問 「optimization」

このタグは、関数の(制約付きまたは制約なし)最小化または最大化のメソッドに関する質問を対象としています。

17
Python用の高品質な非線形プログラミングソルバーはありますか?
解決すべきいくつかの挑戦的な非凸のグローバル最適化問題があります。現在、MATLABのOptimization Toolbox(特にfmincon()algorithm ='sqp'を使用)を使用していますが、これは非常に効果的です。ただし、私のコードのほとんどはPythonで作成されているため、Pythonでも最適化を行いたいと考えています。競合できるPythonバインディングを備えたNLPソルバーはありfmincon()ますか?ちがいない 非線形等式および不等式の制約を処理できる ユーザーがヤコビアンを提供する必要はありません。 グローバルな最適化を保証していなくても構いません(保証fmincon()しません)。私は、困難な問題や、それよりもわずかに遅い場合でも、ローカル最適にロバストに収束するものを探していfmincon()ます。 OpenOptで利用できるソルバーをいくつか試しましたが、MATLABのソルバーより劣っていfmincon/sqpます。 強調するために、私はすでに扱いやすい定式化と優れたソルバーを持っています。私の目標は、ワークフローをより合理化するために、単に言語を変更することです。 Geoffは、問題のいくつかの特性が関連している可能性があると指摘しています。彼らです: 10-400の決定変数 4〜100の多項式等式制約(1〜8の範囲の多項式次数) 決定変数の数の約2倍に等しい合理的な不等式制約の数 目的関数は決定変数の1つです 不等式制約のヤコビアンと同様に、等式制約のヤコビアンは密です。

3
BFGS vs.共役勾配法
最適化のためにBFGSと共役勾配を選択する際に考慮すべきことは何ですか?これらの変数に適合させようとしている関数は指数関数です。ただし、実際の目的関数には、とりわけ統合が含まれており、それが役立つ場合は非常にコストがかかります。

8
制約付き最適化のためのソフトウェアパッケージ?
いくつかの変数(具体的にはボックス化された制約)の境界がわかっている制約付き最適化問題を解決しようとしています。 arg分あなたはf(u 、x )arg⁡minuf(u,x) \arg \min_u f(u,x) の対象 A ≤ D (U 、X )≤ Bc (u 、x )= 0c(u,x)=0 c(u,x) = 0 ≤ D(U 、X )≤ Ba≤d(u,x)≤b a \le d(u,x) \le b ここで、あなたはuuは設計変数のベクトル、バツxxは状態変数のベクトル、c (u 、x )c(u,x)c(u,x)は等式制約(通常はPDE)です。下限および上限の制約aaaおよびbbbは、空間的に可変です。 この形式のシステムを処理できるパッケージはどれですか?

3
最適化において非凸性が問題になるのはなぜですか?
一般に非凸最適化について何かを読み始めたとき、私は非常に驚きました、そして、私はこのような声明を見ました: 重要な多くの実用的な問題は非凸であり、ほとんどの非凸の問題は、妥当な時間内に正確に解決するのが不可能ではないにしても困難です。(ソース) または 一般に、極小値を見つけるのはNP困難であり、多くのアルゴリズムは点でスタックする可能性があります。(ソース) 私は毎日、非凸最適化のようなものをやっています-すなわち、分子幾何学の緩和。私はそれを、トリッキーで遅く、行き詰まりやすいものとは決して考えませんでした。このコンテキストでは、明らかに多次元の非凸面(> 1000自由度)があります。FIREなどの最急降下および動的消光から派生した主に1次の手法を使用します。これは数百ステップで局所的な最小値(DOFの数未満)に収束します。確率的ノイズを追加すると、それは地獄のように堅牢でなければならないことを期待しています。(グローバル最適化は別の話です) これらの最適化手法を停滞させるか、ゆっくりと収束させるために、ポテンシャルエネルギーサーフェスがどのように見えるかを想像することはできません。例えば、非常に病理学的なPES(ただし、非凸性によるものではない)は、このらせんですが、それほど大きな問題ではありません。病理学的な非凸PESの実例を挙げていただけますか? それで、私は上記の引用と議論したくありません。むしろ、私はここで何かを見逃していると感じています。おそらくコンテキスト。

3
いくつかの最適化問題がタイムステップと同等であることはよく知られていますか?
y0y0y_0β∈Rβ∈R\beta \in \mathbb Ryyyuuu12∥y−y0∥2+β2∥u∥212‖y−y0‖2+β2‖u‖2\begin{equation} \frac{1}{2} \| y - y_0 \|^2 + \frac{\beta}{2} \| u \|^2 \end{equation}Ay=u.Ay=u.\begin{equation} Ay = u. \end{equation}y,y0,u∈Rny,y0,u∈Rn y, y_0, u \in \mathbb R^n A∈Rn×nA∈Rn×n A \in \mathbb R^{n \times n} ラグランジアンを形成し、静止点を探し、制御を削除すると、1次条件 によってPremultiplying第一方程式および第二に、我々は、正規方程式を書くことができる これらを微分方程式の後方オイラー近似の単一ステップとして解釈することができます uuuATλAy=y0−y=1βλATλ=y0−yAy=1βλ\begin{align*} A^T \lambda &= y_0 - y \\ Ay &= \frac{1}{\beta} \lambda \end{align*}AAAATATA^T(I+βAAT)λ(I+βATA)y=βAy0=y0(I+βAAT)λ=βAy0(I+βATA)y=y0\begin{align} (I ...

3
GPUでの制約のない非線形最適化問題の解決
GPU(CUDA)で制約のない非線形最適化問題を解決しようとしています。 目的関数は滑らかな非線形関数であり、その勾配は分析的に計算するのに比較的安価であるため、数値近似に煩わされる必要はありません。 ほとんどの場合、さまざまな理由でfp32数学演算を使用してこの問題を解決したいので、どの非線形最適化方法が丸め誤差に対してより堅牢であり、パフォーマンスが優れていますか?(共役共役/準ニュートン/信頼領域など)、GPUでBFGSを試して良い結果を得た人はいますか ところで、必要に応じてヘッセ行列は、私の場合は比較的小さい(通常は64x64未満)が、これらの小規模な最適化問題の数千を同時に解決する必要がある。

5
評価にコストがかかる、滑らかで境界のある非凸2D関数のグローバルな最小値を見つける
私は最小値を見つけたいと思う有界の非凸2次元関数を持っています。機能は非常にスムーズです。評価にはコストがかかります。許容誤差は、各軸の関数のドメインの約3%です。 NLOPTライブラリでDIRECTアルゴリズムの実装を実行しようとしましたが、必要な精度に必要な関数評価の量に関してブルートフォース検索よりも大幅な改善は見られず、いくつかの外れ値がありました。 他にどのグローバル最適化ソルバーを検討すべきですか?

3

6
線形プログラムに
仮に 分Av e c(U)Uの対象 i 、j≤ 最大{ Ui 、k、Uk 、j} 、i 、j 、k = 1 、… 、nminAvec(U)subject to Ui,j≤max{Ui,k,Uk,j},i,j,k=1,…,n\begin{align*} \min A &\mathrm{vec}(U) \\ &\text{subject to } U_{i,j} \leq \max\{U_{i,k}, U_{k,j}\}, \quad i,j,k = 1, \ldots, n \end{align*} ここで、は対称n × n行列であり、v e c(U )はUをn 2エントリの1次元ベクトルに再整形します。うんUUn × nn×nn\times nv e c(U)vec(U)\mathrm{vec}(U)うんUUn2n2n^2 上記のプログラムの中で問題を引き起こす部分はです。(非負の対称行列の解を制限するのは簡単なようです。)最大{ ...

3
科学プログラミングコンテスト
私は定期的にいわゆる「プログラミングコンテスト」に参加します。このコンテストでは、限られた時間内に独自のコードと問題解決スキルで困難なアルゴリズムの問​​題を解決します。それらがどのように見えるかの参考例については、Google Code JamやACM-ICPCなどのコンテストを検索してください。 (プログラミングコンテストの内容がわかっている場合は、次の段落をスキップできます) これらのコンテストでは、個人またはチームで、物理的なサイトまたはオンラインで競争できます。目標は、コンテストが終了する前にできるだけ多くの問題を解決することです。各問題は、実行時間、使用メモリなど、ソリューションが満たさなければならない特定の制約に関連付けられています。問題の難易度は、「明らかな解決方法」から「高度な知識やひび割れへの多大な工夫」にまで及びます。もちろん、主な目標は楽しみを持つことですが、場合によっては、成功するとGoogleのような一流企業の採用担当者とのインタビューでさえ、賞金、名誉、忍耐につながる可能性があります。 (上の段落をスキップした場合は、スキップを停止してください。ここに私の質問が来るので) プログラミングコンテストを通じて、アルゴリズム、コンピュータサイエンス全般、そして問題解決スキルのコーディングと開発に関して、全体的な意味の感覚に真の関心を抱くことができました。科学計算でも同様にしたいと思います。 質問: 純粋にアルゴリズム的な種類と同じような流れで、数値解析、最適化などに焦点を当てた競争はありますか? グーグルを試してみましたが、一目で見つかりませんでした… 補遺: Project Eulerをチェックアウトするよう提案されましたが、それは私が探していたものではありません。私が望んでいるのは、pdeの解法を使って創造的になる、数値最適化の問題を解決するなど、より「汚れた」種類の数値を練習する場です。比較のために、Kaggleは、定期的に開催されるさまざまなコンテストでデータマイニング、機械学習などを練習できるサイトです。私はそのようなものが欲しいのですが、数値スキームなどを実装して創造的にするために。

4
一連のポイントから最も散乱するポイントを選択する
ポイントのセットからポイントのサブセットを選択する(効率的な)アルゴリズムはありますか()、ほとんどの領域を(サイズすべての可能なサブセットに対して)「カバー」しますか?N M &lt; N MMMMNNNM&lt;NM&lt;NM < NMMM ポイントは2D平面にあると仮定します。 素朴なアルゴリズムは単純ですが、時間の複雑さの点では法外です。 for each subset of N points sum distance between each pair of points in the subset remember subset with the maximum sum より効率的な、または近似的な方法を探しています。 例、これはいくつかのランダムな点を持つ平面です: 以下のために、私はこのような点を選択期待します:M=5M=5M=5 選択したポイント(赤)が平面全体に散在していることに注意してください。 この問題に関連する記事「視覚的な追跡のための空間的に分散されたキーポイントの効率的な選択」を見つけました。ただし、これはポイントが重み付けされていることを前提としています。

5
非常に高価な目的関数を持つ問題の並列最適化アルゴリズム
10〜20個の変数の関数を最適化しています。悪いニュースは、各関数の評価が高価で、約30分のシリアル計算であるということです。幸いなことに、数十の計算ノードを自由に使用できるクラスターがあります。 したがって、質問:その計算能力をすべて効率的に使用できる最適化アルゴリズムはありますか? スペクトルの片側には徹底的な検索があります。検索空間全体を細かいグリッドに分割し、各グリッド点で関数を個別に計算します。これは確かに非常に並列計算ですが、アルゴリズムは恐ろしく非効率的です。 スペクトルの反対側には、準ニュートンアルゴリズムがあります。以前の履歴に基づいて、パラメータの次の推定値をインテリジェントに更新します。これは効率的なアルゴリズムですが、並列化する方法がわかりません。「以前の履歴に基づいたパラメーターの推定」という概念は、シリアル計算のように聞こえます。 二次アルゴリズムは中間のどこかにあるように見えます。値の束を並列に計算することで初期の「代理モデル」を構築できますが、残りの反復が並列化可能かどうかはわかりません。 クラスター上でどのような種類のグラジエントフリー最適化方法がうまく機能するかについての提案はありますか?また、現在利用可能な最適化アルゴリズムの並列実装はありますか?

1
BFGSアップデートの直感的な動機
私は数値分析調査クラスを教えており、最適化の背景/直感が限られている学生のためのBFGS法の動機付けを求めています! JのK(→ X K - → Xのk - 1)= F (→ X K)- F (→ Xのk - 1)∥ Jk− Jk − 1∥2あちこち‖Jk−Jk−1‖あちこち2\|J_k-J_{k-1}\|^2_{\textrm{Fro}}Jk(x⃗ k− x⃗ k − 1)= f(x⃗ k)− f(x⃗ k − 1)Jk(バツ→k−バツ→k−1)=f(バツ→k)−f(バツ→k−1)J_k(\vec x_k-\vec x_{k-1})=f(\vec x_k)-f(\vec x_{k-1}) BFGSアップデートの派生は、はるかに複雑で曖昧なようです!特に、更新がランク2であるか、特定の形式をとるべきであるとアプリオリに仮定したくない。BroydenのようなBFGS Hessianの更新には、変則的に見える短い動機がありますか?

4
数値最適化手法のテスト:Rosenbrockと実際のテスト関数
導関数なしのオプティマイザには、主に2種類のテスト関数があるようです。 Rosenbrock関数 ff。のようなワンライナー 、開始点付き 補間器を使用した実データ点のセット 10d Rosenbrockを実際の10d問題と比較することは可能ですか? さまざまな方法で比較することができます。局所的な最小値の構造を記述する か、Rosenbrockおよびいくつかの実際の問題に対してオプティマイザABCを実行します。 しかし、これらは両方とも難しいようです。 (たぶん、理論家と実験者はまったく異なる2つの文化なので、キメラを求めていますか?) こちらもご覧ください: scicomp.SEの質問:アルゴリズム/ルーチンをテストするための優れたデータセット/テスト問題はどこで入手できますか? フッカー、「ヒューリスティックのテスト:すべてが間違っています」は痛烈です:「競争に重点を置いていることは、どのアルゴリズムが優れているが理由ではないことを教えてくれます。」 (2014年9月に追加された): 以下のプロットは、10個のランダムな開始点から8Dに14のテスト機能に3つのDFOアルゴリズムを比較:BOBYQA PRAXIS SBPLXをからNLOpt 14 N次元のテスト機能、パイソンを下gist.github このからのMatlab A.によってHedar ×各機能のバウンディングボックス内の10一様乱数startpoints。××\times ××\times たとえば、Ackleyでは、最上行にSBPLXが最適であり、PRAXISがひどいことを示しています。Schwefelでは、右下のパネルにSBPLXが5番目のランダムな開始点で最小値を見つけていることが示されています。 全体として、BOBYQAは1で最高であり、PRAXISは5で、SBPLX(〜Nelder-Mead with restarts)は13のテスト機能のうち7つで、Powersumは最高です。YMMV!特に、ジョンソン氏は、「グローバル最適化では、関数値(ftol)またはパラメーター許容値(xtol)を使用しないことをお勧めします。」 結論:1頭の馬や1つのテスト機能にすべてのお金をかけないでください。

4
厳密な正の制約を持つ線形計画法の実行可能性の問題
線形制約のシステムがあるAx≤bAx≤b{\bf Ax} \leq {\bf b}。これらの制約を満たす厳密に正のベクトルを見つけたいです。つまり、すべてのコンポーネントにはが必要です。LPソルバーを使用して、このような厳密に正のベクトルを見つける(またはが存在しないことを確認 する)にはどうすればよいですか?LPでは常に等式を許可する必要があるため、単純に別の制約システムを導入することはできませんが、目的関数を変更してLPソルバーを数回使用できます。スラック変数メソッドを使用する必要があると思いますが、その方法はわかりません。x i &gt; 0 x i x x x x i &gt; 0x&gt;0x&gt;0{\bf x} > 0xi&gt;0xi&gt;0x_i > 0xixix_ixx{\bf x}xx{\bf x}xx{\bf x}xi&gt;0xi&gt;0x_i > 0

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.