非線形計画法の解法:逐次線形計画法(逐次線形計画法)

来源:コーネル大学計算最適化オープン教科書: SLP

目次

1 はじめに

2. 理論と方法

2.1 質問フォーム

2.1.1 NLP 問題形式

2.1.2 SLP質問フォーム

2.2 ステップ境界

2.3 完全な SLP アルゴリズム

3. ケース

3.1 例1

3.2 例2

4.アプリケーション

1 はじめに

逐次線形計画法 (SLP) は逐次線形計画法とも呼ばれ、非線形計画法 (NLP) の問題を解くために使用される数学的計画法です。SLP は、テイラー級数展開を通じて NLP を一連の線形計画問題である線形計画法 (LP) に変換することができ、LP はシンプレックス法またはソルバーによって解くことができます。SLP は最初に近似プログラミングと呼ばれ、1961 年に Shell Oil Company の R. Griffith と R. Stewart によって開発されました。SLP は、通常高価な NLP ソルバーを使用したり、高次の情報を使用したりせずに、NLP 問題を解決できます。SLP は、必ずしも最速の NLP 解決アルゴリズムではありません。1994 年の 79 個の設計問題のセットでは、そのパフォーマンスは、漸近線が移動する凸近似法と同様であり、CONLIN (デュアル オプティマイザーに基づく凸近似) よりも優れています。不完全に。ただし、LP ソルバーを使用するだけで済みます。LP ソルバーはコスト効率が高く、現在でも使用されています。

2. 理論と方法

2.1 質問フォーム

2.1.1 NLP 問題形式

一般的な NLP 問題は次の形式になります。x=\left [ x_{1},x_{2},..., x_{n}\right ]これは決定変数、f(x) は最小化する必要がある目的関数、g(x) と h(x) は制約、x の値には上限と上限があります。下限。

2.1.2 SLP質問フォーム

NLP 問題のすべての制約と目的関数は、x^{a}その時点で 1 次テイラー展開に置き換えられ、SLP 問題に変換されます。これには、SLP アルゴリズムが機能するために、NLP 問題の関数が微分可能である必要があります。SLP 問題を解くと新しい解が得られますx^{a+1}が、これは NLP では実行不可能な解である可能性がありますが、反復回数が増えるにつれて実行不可能の程度は減少します。

NLP の最適解が実行可能領域の頂点であれば、SLP は収束します。しかし、一般に、SLP は超基本変数を考慮しないため、収束するという保証はありません。そのため、多くの超基本変数を含む問題や最適解が頂点にない問題ではうまく機能しません。

超基本変数 (超基本変数) は、線形計画法における概念であり、最適解における変数の状態を記述するために使用されます。線形計画問題の最適解では、一部の変数はゼロ以外の値をとり、基本変数と呼ばれますが、他の変数はゼロの値をとり、非基本変数と呼ばれます。超基本変数は、非基本変数の中で潜在的な最適化の機会を持つ変数です。言い換えれば、超基本変数は、目的関数の値を改善するために値を変更できる非基本変数の 1 つです。超基本変数を基本変数のセットに移動することで、より良い解決策を見つけることができます。

超基本的な変数の問題の収束を達成するために、ステップ境界法が導入されます。 

2.2 ステップ境界

ある点での 1 次テイラー展開x^{a}と元の非線形関数との誤差はx^{a}、ある点からx^{k}離れるにつれて増加するため、SLP 探索領域に上限と下限を設定する必要があります。またはステップ境界、つまり\alpha <xx^{a}<\betaステップ サイズの限界が大きすぎる場合、SLP は現在の最適解を中心に長時間変動します。ステップ サイズの限界が小さすぎる場合、SLP は NLP の最適解を見つけることができない可能性があります。SLP アルゴリズムは単純であるため、SLP におけるほとんどの改善は、ステップ サイズの境界を調整するためのより優れたヒューリスティックと新しいアルゴリズムの開発にありました。ステップ境界を更新するための簡単なアルゴリズムを次に示します。

  • x^{a}計算: まず古い解とx^{a+1}新しい解を仮定して 2 つの変数 q と r を計算します。次に、q は NLP 問題の 2 つの解の目標値の減少を表し、r は SLP 問題の 2 つの解の目標値の減少を表します

  • 更新: q/r 比に基づいてステップ境界のサイズを更新します。 の場合q/r=1、SLP 問題は NLP 問題を完全に反映しています。Q/Rたとえば、それが 1 に近い場合は0.75\leq q/r\leq 1.25、ステップ サイズの境界を増やします。Q/Rたとえば 1 だけオフセットが大きい場合は、q/r\leq 0.25、q/r\geq 1.25ステップ境界を減らします。これが負の場合、NLP のx^{a+1}比率がx^{a}悪化していることを意味します。これを拒否し、ステップ サイズ境界を減らし、 x^{a+1}SLP にはより小さいステップ サイズ境界を持つx^{a}解を使用します。

2.3 完全な SLP アルゴリズム

3. ケース

3.1 例1

与えられた問題をグラフで表すと以下のようになります。斜線部分が実行可能領域で、停止条件は上記(3)と(4)に設定されています。

 まず、非線形項の勾配を計算し、g(x1,x2) を標準形式で書きます。勾配は [-0.5x1+1,-1]、[-0.5x1,-1] と書きます。データ上では、間違っていると思います。ただし、これはあくまで処理の一例であるため、元のデータの計算結果については後述する。h(x1,x2) は一次関数なので、展開する必要はありません。前に紹介したステップ境界メソッドを使用して境界を更新します。初期境界は 16 に設定され、初期点は です。x_{1}=1、x_{2}=5

  • 初めて繰り返す

まず点 (1,5) での勾配を計算します。f 関数は [6,2]、g 関数は [-0.5,-1]、ステップ境界制約を追加して、点 (1,5) で次の結果を取得します。 ) SLPモデル

この SLP モデルを解いて最適解を取得しf^{*}=2.5,x_{1}^{*}=0,x_{2}^{*}=3.25、q=4.25-12=-7.75、r=2.5-12=-9.5 を計算します。したがって、q/r=0.815、この点を考慮して、ステップ境界は 32 に増加します。

  • 2回目を繰り返す

前の反復プロセスと同じように、点 (0,3.25) での勾配を計算します。f 関数は [4.25,1]、g 関数は [1,-1]、ステップ境界は 32 です。

 この SLP モデルを解くと最適解が得られます: f^{*}=4,x_{1}^{*}=0,x_{2}^{*}=3、その後、q=-0.062、r=1.5、q/r=-0.041 を計算し、この点を拒否し、ステップ サイズの境界を 16 に減らします。

  • 3 回目の繰り返し

その後の反復では、見つかった新しい解は常に拒否され、ステップ サイズの境界は縮小し続けることがわかります。これは、最初に選択されたステップ サイズの境界が大きすぎるため、問題は最終的に 20 回の反復後に終了してしまうためです。グラフは、ステップ サイズ 16 と 0.5 のそれぞれの解の履歴を示しています。

3.2 例2

 例 1 では、最適解は固定点にあるため、SLP は反復後に収束します。例 2 では、最適解は頂点にありません。次の問題が与えられた場合、例 1 と同じプロセスに従い、最初の次の式を使用して勾配を計算します。次数テイラー展開代わりに、最初のステップ境界は 16 で、初期点は (1,5) です。

  • 最初の反復: SLP 最適解 -3.714、NLP は 7.739、(4.375,5.428)、q/r=0.022、受信、ステップ サイズ境界が 8 に減少

  •  2 番目の反復: SLP 最適解 -10.060、NLP は 11.420、q/r=-0.579、拒否、ステップ サイズ境界は 4 に減少

  

  •   3 回目の反復: SLP 最適解 -8.965、NLP は 8.040、q/r=-0.057、拒否、ステップ境界は 2 に減少

  •  4 回目の反復: SLP 最適解 -3.857、NLP は 0.623、q/r=49.704、(3.663,3.428)、受け入れられ、ステップ サイズ境界が 1 に減少
  • 5 回目の反復: SLP 最適解 -0.093、NLP は 1.412、q/r=0.209、(2.663, 4.139)、受け入れられ、ステップ サイズ境界が 0.5 に減少
  • 6 回目の反復: SLP の最適解は 0.128、NLP の最適解は 0.0551 (3.163, 3.724) であり、後続の反復では 0.0551 より良い解はありません。

SLP では、ステップ境界と更新方法が非常に重要であり、結果に直接影響するため、ヒューリスティック手法など、より効果的な更新方法の開発に多くの文献が費やされています。

4. アプリケーション

  • ハイブリッド再生可能エネルギー システム運用計画: Vaccari 氏らは 2019 年に SLP を使用して、電力と熱の負荷要件を満たし、運用コストを最小限に抑えるための短期運用計画を作成しました。すべてのデバイスには NLP の問題があります。
  • 最適パワーフロー (OPF): Mhanna と Mancarella 2021 は、最適パワーフロー問題 (非凸および非線形) を解決するための SLP アルゴリズムを開発しました。
  • 障害物回避と軌道計画: Plessen らは 2017 年に、空間ベースの問題定式化と SLP を使用して計画軌道を継続的に改善することにより、自動運転車の軌道計画と障害物回避の問題に取り組みました。

おすすめ

転載: blog.csdn.net/weixin_45526117/article/details/131089011