Upgrade to Pro — share decks privately, control downloads, hide ads and more …

最適化数学についてー線形計画ー

yujikawa
September 20, 2017

 最適化数学についてー線形計画ー

線形計画法についての勉強会資料

yujikawa

September 20, 2017
Tweet

More Decks by yujikawa

Other Decks in Technology

Transcript

  1. 線形計画とは 問題P0:次の形の最適化問題を考える 11 1 + 12 2 ⋯ + 1

    ≤ 1 21 1 + 22 2 ⋯ + 2 ≤ 2 ⋮ 1 1 + 2 2 ⋯ + ≤ 1 ≥ 0, 2 ≥ 0 ⋯ ≥ 0 = 1 1 + 2 2 + ⋯ + → 特徴② 1 , 2 ⋯ はすべて非負 特徴① 個の制約条件は 1 , 2 ⋯ の 1次式の不等式 (制約不等式) 特徴③ 最大化する関数は 1 , 2 ⋯ の1次関数 (目的関数) 線形計画の 標準形という
  2. この3つの特徴を持つ問題を 線形計画 線形計画を解く手法が 線形計画法 線形計画とは 特徴② 1 , 2 ⋯

    はすべて非負 特徴① 個の制約条件は 1 , 2 ⋯ の 1次式の不等式 (制約不等式) 特徴③ 最大化する関数は 1 , 2 ⋯ の1次関数 (目的関数)
  3. 線形計画とは- 例題 - 2種類の商品A,Bを作るのに2台の機械1 , 2 を使う。商品Aを1個作るのに機械1 を2分、機械2 を4分使う必要がある。一方商品Bを1個作るのに機械1 を8分、機械2

    を4分使う必要がある。商 品をA,Bを作る利益は一つあたりそれぞれ29円、45円である。1時間あたりで利益を最大にするに はどのように計画すればよいでしょうか? 1 2 商品A 29円/個 2分 4分 1 2 商品B 45円/個 8分 4分
  4. 線形計画とは- 例題 - 1 2 商品A 29円/個 2分 4分 1

    2 商品B 45円/個 8分 4分 時間の制約条件 ቊ 2 + 8 ≤ 60 4 + 4 ≤ 60 ≥ 0, ≥ 0 利益を求める関数 = 29 + 45 → 1時間(60分)のうちに商品Aを x個、商品Bをy個作るとすると・・
  5. 線形計画の基本定理 n次元多面体の頂点ではn個の境界面が交わっている。可能領域の各境界面は条 件のm+n個の不等式で不等号を等式に置き換えたもののどれかである 問題P0のある最適解( 1 ∗, 2 ∗ ⋯ ∗

    )において、m+n個の不等式のうちn個が等号で成立する + 3 = 9 2 + = 8 個 ቊ + 3 ≤ 9 2 + ≤ 8 個ሼ ≥ 0, ≥ 0 この例だとn=2 下記の2式 x+3y=9と2x+y=8
  6. スラック変数-例題- 次の線形計画を等式の制約条件に書き直せ。 ቊ 2 + 8 ≤ 60 4 +

    4 ≤ 60 ≥ 0, ≥ 0 = 29 + 45 → ቊ 2 + 8 + λ1 = 60 4 + 4 + λ2 = 60 ≥ 0, ≥ 0, λ1 ≥ 0, λ2 ≥ 0 = 29 + 45 →
  7. スラック変数-境界面- + 3 = 9 2 + = 8 ቊ

    + 3 + λ1 = 9 2 + + λ2 = 8 ≥ 0, ≥ 0 λ1 ≥ 0, λ2 ≥ 0 n次元空間の可能領域のi番目の境界面でλ = 0である。 λ2 = 0 λ1 = 0
  8. スラック変数 問題P1:問題P0にスラック変数を使う 11 1 + 12 2 ⋯ + 1

    + λ1 = 1 21 1 + 22 2 ⋯ + 2 + λ2 = 2 ⋮ 1 1 + 2 2 ⋯ + + λ = 1 ≥ 0, 2 ≥ 0 ⋯ ≥ 0 λ1 ≥ 0, λ2 ≥ 0 ⋯ λ ≥ 0 = 1 1 + 2 2 + ⋯ + → 問題P1のある最適解( 1 ∗, 2 ∗ ⋯ ∗, λ1 ∗, λ2 ∗ ⋯ λ ∗ )において、 m+n個の値1 ∗, 2 ∗ ⋯ ∗, λ1 ∗, λ2 ∗ ⋯ λ ∗ のうちn個は0である
  9. スラック変数-例- (0, ∗, 0, λ2 ∗ ) 2 + =

    8 λ2 = 0 λ1 = 0 (0,0, λ1 ∗, λ2 ∗ ) (∗, 0, λ1 ∗, 0) (∗, ∗, 0,0) ቊ + 3 + λ1 = 9 2 + + λ2 = 8 ≥ 0, ≥ 0 λ1 ≥ 0, λ2 ≥ 0 各点のときの各値を次のように表現する(∗, ∗, λ1 ∗, λ2 ∗) 下記の例ではn=2、m=2である。m+n=4の値のうち2つは0になる。
  10. 問題P1の解き方 1. m+n個の変数1 , … , λ1 , … λ

    のうちからn個選んで0とおいてできる連立1次 方程式を残りのm個の変数について解く 2. その解がすべて非負かどうか調べる 3. そうであれば目的関数の値を計算する 4. これをすべての可能性について行い、 の値が最大になるものを選ぶ しかし、m+n個の変数を選んで0とする方法はm+n個が大きくなるにつれ、現実的 に難しい。なるべく早く最適解に到達する方法として考えられた方法がシンプレック ス法である。
  11. シンプレックス法-その①- シンプレックス法の原理を例題を使ってやってみよう。スラック変数を導入した下記 の式を解いてみる。説明のために, , λ1 , λ2 をそれぞれ1 , 2

    , 3 , 4 とします。 ቊ 2 + 8 + λ1 = 60 4 + 4 + λ2 = 60 ≥ 0, ≥ 0, λ1 ≥ 0, λ2 ≥ 0 = 29 + 45 → ቊ 21 + 82 + 3 = 60 41 + 42 + 4 = 60 1 ≥ 0, 2 ≥ 0, 3 ≥ 0, 4 ≥ 0 = 291 + 452 →
  12. シンプレックス法-その②- 1 , 2 , 3 , 4 のうちから2つ選んで左辺に移し、右辺を残りの変数で表す。例えば 3

    , 4 を選べば次のように書ける。 3 = 60 − 21 − 82 ⋯ (1) 4 = 60 − 41 − 42 ⋯ (2) = 291 + 452 ⋯ (3) 右辺の変数をすべて0と置くと、次の解を得る。 1 = 0, 2 = 0, 3 = 60, 4 = 60 この解はすべて非負であるが、最適解ではない。(1)と(2)で1 , 2 を少しだけ増やしても 3 , 4 は正のままであるが、(3)よりの値が増加するからである。(まだ最大値ではない) そこで3 , 4 が非負である限り、できるだけ大きく1 , 2 を増やすことを考える。
  13. シンプレックス法-その③- まず1 を増やすことを考える。( 2 = 0 とする) 3 = 60

    − 21 ⋯ (1) 4 = 60 − 41 ⋯ (2) = 291 ⋯ (3) (1)によれば 1 が増えれば3 が減り、非負を保つ限界は1 = 30, 3 = 0となる。 (2)によれば1 = 15, 4 = 0となる。 したがって1 は最大で 1 = 15まで増やせる。 その結果(3)は∆ = 29 × 15 = 435だけ増加する。
  14. シンプレックス法-その④- 3 = 60 − 82 ⋯ (1) 4 =

    60 − 42 ⋯ (2) = 452 ⋯ (3) 次に2 を増やすことを考える。( 1 = 0 とする) (1)によれば非負を保つ限界は2 = 7.5, 3 = 0となる。 (2)によれば2 = 15, 4 = 0となる。 したがって2 は最大で 2 = 7.5まで増やせる。 その結果(3)は∆ = 45 × 7.5 = 337.5だけ増加する。
  15. シンプレックス法-その⑤- 以上により1 を増やしたほうがの値がより増加する。そして1 を限度いっぱいに 増やすと(2)の左辺の4 が0になる。そこで(2)の左辺4 を右辺に移し、右辺の1 を 左辺に移す 3

    = 60 − 21 − 82 ⋯ (1) 1 = 15 − 2 − 1 4 4 ⋯ (2) = 291 + 452 ⋯ (3) 3 = 30 − 62 + 1 2 4 ⋯ (4) 1 = 15 − 2 − 1 4 4 ⋯ (5) = 435 + 162 − 7.254 ⋯ (6) (2)を(1)と(3)に代入
  16. シンプレックス法-その⑤- 右辺の変数をすべて0と置くと 3 = 30 − 62 + 1 2

    4 ⋯ (4) 1 = 15 − 2 − 1 4 4 ⋯ (5) = 435 + 162 − 7.254 ⋯ (6) 1 = 15, 2 = 0, 3 = 30, 4 = 0 しかし、これも最適解ではない。(4),(5)で2 を少しだけ増やしても1 , 3 は正のままであるが (6)が増加するからである。
  17. シンプレックス法-その⑥- そこで2 を増やす( 4 = 0とする) 3 = 30 −

    62 ⋯ (4) 1 = 15 − 2 ⋯ (5) = 435 + 162 ⋯ (6) (4)によれば非負を保つ限界は2 = 5, 3 = 0となる。 (5)によれば2 = 15, 1 = 0となる。 したがって2 は最大で 2 = 5まで増やせる。 そして∆ = 16 × 5 = 80だけ増加し、その結果左辺の3 は0になる。
  18. シンプレックス法-その⑦- 次に(4)の左辺の3 を右辺に移し、右辺の2 を左辺に移す。すると(4)は 3 = 30 − 62 +

    1 2 4 ⋯ (4) 1 = 15 − 2 − 1 4 4 ⋯ (5) = 435 + 162 − 7.254 ⋯ (6) 2 = 5 − 1 6 3 + 1 12 4 ⋯ (7) 1 = 10 + 1 6 3 − 1 3 4 ⋯ (8) = 515 − 2.6673 − 5.9174 ⋯ (9) (7)を(5)と(6)に代入
  19. シンプレックス法-その⑧- 右辺の変数をすべて0と置くと、次の解を得る。 2 = 5 − 1 6 3 +

    1 12 4 ⋯ (7) 1 = 10 + 1 6 3 − 1 3 4 ⋯ (8) = 515 − 2.6673 − 5.9174 ⋯ (9) 1 = 10, 2 = 5, 3 = 0, 4 = 0 これは最適解である。(9)の3 ,4 の係数が負のため。少しでも3 , 4 を0から増やす との値が減ってしまうためである。したがって最大値は = 515である
  20. シンプレックス法-幾何学的解釈- = 0 λ2 = 0 λ1 = 0 =

    0 A C B D E 15 7.5 15 30 ①原点(0,0)を考える。 そこからx軸またはy軸に沿って移動するとfは増加する ため原点は最適解ではない。 ②原点からx軸に沿って移動することを考える。 可能領域の範囲内で移動できるのは点Bまで、そしてf は435だけ増加する。 ③原点からy軸に沿って移動することを考える。 可能領域の範囲内で移動できるのは点Cまで、そしてf は337.5だけ増加する。 ②と③よりx軸に沿って移動するほうが増加量が多いた め原点からx軸方向に移動する。 ④点Bからλ2 = 0軸に沿って移動することを考える。 可能領域の範囲内で移動できるのは点Eまで、そしてf は80だけ増加する。(この後はどこ移動しても減少) ቊ 2 + 8 + λ1 = 60 4 + 4 + λ2 = 60 ≥ 0, ≥ 0, λ1 ≥ 0, λ2 ≥ 0 = 29 + 45 → 最適解