技能一覧 › 大学数学 最適化・線形計画法

単体法

辞書(またはシンプレックス表)を作り、被約費用の符号で入る変数を、最小比テストで出る変数を決めてピボットをくり返せる。最適性の判定までたどり、線形計画問題の最適値と最適解を求められる

前提

この技能までの道筋(50 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 三角形の角の大きさ (算数 平面図形)
  2. 対頂角と平行線の同位角・錯角 (中学数学 平面図形)
  3. 三角形の外角と角の組み合わせ (中学数学 平面図形)
  4. 小数の四則計算 (算数 計算と数のきまり)
  5. 分数のたし算・ひき算 (算数 計算と数のきまり)
  6. 分数のかけ算・わり算 (算数 計算と数のきまり)
  7. 小数と分数のまじった計算 (算数 計算と数のきまり)
  8. 逆算(□ を求める) (算数 計算と数のきまり)
  9. 正負の数の加法・減法 (中学数学 数と式)
  10. 四則の混じった計算の順序 (算数 計算と数のきまり)
  11. 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
  12. 分配法則を使った計算のくふう (算数 計算と数のきまり)
  13. 文字式の計算(同類項・分配法則) (中学数学 数と式)
  14. 1 次方程式の解き方 (中学数学 方程式)
  15. 二等辺三角形の角 (中学数学 平面図形)
  16. 平行四辺形と特別な四角形の性質 (中学数学 平面図形)
  17. 三角形・四角形の面積 (算数 平面図形)
  18. 約数の見つけ方 (算数 整数の性質)
  19. 素因数分解と約数の個数 (算数 整数の性質)
  20. 平方根の意味と根号の簡単化 (中学数学 数と式)
  21. 三平方の定理 (中学数学 相似と三平方の定理)
  22. 乗法公式による展開 (中学数学 数と式)
  23. 折り返した図形の角と長さ (中学数学 平面図形)
  24. 三平方の定理と平面図形 (中学数学 相似と三平方の定理)
  25. 最大公約数と最小公倍数 (算数 整数の性質)
  26. 比の性質と簡単な比 (算数 割合と比)
  27. 相似な三角形と長さの比 (算数 平面図形)
  28. 三角形の相似条件と対応する辺の長さ (中学数学 相似と三平方の定理)
  29. 平行線と線分の比 (中学数学 相似と三平方の定理)
  30. 2点間の距離と内分点・外分点 (数学II 図形と方程式)
  31. 比例・反比例の式とグラフ (中学数学 関数)
  32. 関数 の式と変域 (中学数学 関数)
  33. 因数分解 (中学数学 数と式)
  34. 平方完成と 2 次関数のグラフ (数学I 2次関数)
  35. 円の方程式 (数学II 図形と方程式)
  36. 連立方程式の解き方(加減法・代入法) (中学数学 方程式)
  37. 1 次関数の式の求め方 (中学数学 関数)
  38. 直線の方程式 (数学II 図形と方程式)
  39. 不等式の表す領域 (数学II 図形と方程式)
  40. 点と直線の距離 (数学II 図形と方程式)
  41. 2 次不等式 (数学I 2次関数)
  42. 円と直線の位置関係と弦の長さ (数学II 図形と方程式)
  43. 2直線の平行・垂直 (数学II 図形と方程式)
  44. 円の接線 (数学II 図形と方程式)
  45. 領域における最大・最小 (数学II 図形と方程式)
  46. ベクトルの演算と成分 (数学C ベクトル)
  47. 行列の和・積と 2 次の逆行列 (大学数学 線形代数)
  48. 線形計画問題の定式化と標準形 (大学数学 最適化・線形計画法)
  49. 掃き出し法と連立 1 次方程式 (大学数学 線形代数)
  50. 端点(基底解)の列挙による最適解 (大学数学 最適化・線形計画法)

説明

単体法(シンプレックス法)は、線形計画問題の最適解を、実行可能領域の端点(基底解)を隣へ隣へとたどって求める方法です。端点をすべて列挙する方法では、変数や制約が増えると調べる端点の数が急に増えます。単体法では、目的関数の値が良くなる方向の隣の端点にだけ移り、それ以上良くならないことを確かめたところで止まります。そのため、大きな問題でも少ない手間で最適値と最適解が得られます。

なぜそうしてよいのか

最大化問題 (制約は 、、)を考えます。各制約にスラック変数 を入れて等式 にします。このように、一部の変数(基底変数)と を、残りの変数(非基底変数)の 1 次式で表したものを辞書と呼びます。非基底変数をすべて 0 にすると、基底変数の値は定数項そのものになります。これは制約のいくつかを等号にした連立 1 次方程式の解、つまり基底解です。定数項がすべて 以上なら、この基底解は実行可能で、実行可能領域の端点になります。

辞書の の式に現れる非基底変数の係数を被約費用と呼びます。ある非基底変数の被約費用が正なら、その変数を 0 から増やすと が増えます。ただし増やすにつれて、その変数の係数が負である行の基底変数が減っていきます。 を下回らない範囲でしか増やせないので、増やせる上限は各行の「定数項 ÷ 係数の絶対値」の最小値です(最小比テスト)。上限に達したとき 0 になった基底変数を非基底側に移し、増やした変数を基底側に移します。これがピボットです。辞書を作り直すと、隣の端点の辞書が得られます。

すべての被約費用が 以下になったとします。非基底変数はどれも 以上なので、どの実行可能解でも ( の式の定数項)が成り立ちます。いまの基底解はこの値をちょうど達成しているので、最適解です。一方、被約費用が正の変数について、その変数の係数が負の行が 1 つもないことがあります。このときはその変数をいくらでも増やせて となり、問題は非有界(最適解なし)です。

手順

  1. スラック変数 を入れて、初期辞書 、 を作る(すべての であることを確認する)

  2. の式で係数(被約費用)が正の非基底変数を 1 つ選び、入る変数とする(係数が最大のものを選ぶのが普通)。正の係数がなければ最適なので終了する

  3. 最小比テストを行う。入る変数の係数が負である行だけについて「定数項 ÷ 係数の絶対値」を計算し、最小になる行の基底変数を出る変数とする。該当する行がなければ非有界として終了する

  4. ピボットを行う。出る変数の行を入る変数について解き、それを他のすべての行と の式に代入して、新しい辞書を作る

  5. 手順 2 に戻ってくり返す。終了したら非基底変数を 0 とおき、各行の定数項から最適解を、 の定数項から最適値を読み取る

例題

、、、 のもとで、 を最大化する。単体法を用いて、最大値と、そのときの を順に組 で求めよ。

例題の解答

手順 1:スラック変数 を入れて、初期辞書を作る。

定数項はすべて 以上なので、これは端点 を表している。

手順 2(1 回目):被約費用は と で、どちらも正である。係数が最大の を入る変数にする。
手順 3: の係数が負の行は 3 本とも該当する。比は の行が 、 の行が 、 の行が で、最小は である。よって が出る変数になる。
手順 4: の行を解いて とし、他の式に代入する。

この辞書は端点 、 を表している。

手順 2(2 回目): の被約費用が なので、 を入る変数にする。
手順 3: の係数が負の行は の行と の行である。比は の行が 、 の行が で、最小は である。よって が出る変数になる。
手順 4: の行を解いて とし、代入する。

手順 5: の式の被約費用は と で、どちらも 以下なので最適である。非基底変数を とおくと、、、 となる。(実際、 だから、どの実行可能解でも が成り立つ。)

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題