問題を式にする — 目的関数と制約
文章から意思決定変数・目的関数・制約を切り出し、係数と右辺の意味を数字で固める。
例題を自然言語から拾う
製品 A と製品 B を 1 日でどれだけ作るかを決めたい。A は 1 ロットあたり利益 3 万円、B は 1 ロットあたり利益 5 万円。切断工程は A が 2 時間、B が 1 時間使い、合計 16 時間まで。仕上工程は A が 1 時間、B が 2 時間使い、合計 14 時間まで。
ここから、何を決めるか・何を最大化するか・どんな上限があるか を切り出します。
まず変数を置く
分析者が選べる量だけを変数にします。
x= 製品 A のロット数y= 製品 B のロット数
変数が決まると、以後の文章は「x と y を使ってどう書くか」に変わります。
理解チェック 1 — 目的関数の係数
目的関数の係数は、1 ロット増やしたときの効果です。
Q1. 目的関数 z = c_x x + c_y y の係数 c_x を入力してください(製品 A の利益は 3 万円)。
A を 1 ロット増やしたときの利益は 3 万円なので、c_x = 3。
Q2. 同じ目的関数の c_y を入力してください(製品 B の利益は 5 万円)。
B を 1 ロット増やしたときの利益は 5 万円なので、c_y = 5。
目的関数と制約を書く
A は 1 ロットで 3 万円、B は 1 ロットで 5 万円なので、合計利益と工程制約は次の式で書けます。
maximize z = 3x + 5y2x + y ≤ 16(切断工程)x + 2y ≤ 14(仕上工程)x ≥ 0, y ≥ 0
| 文章 | 式 | 意味 |
|---|---|---|
| 切断工程は 16 時間まで | 2x + y ≤ 16 | A は 2 時間、B は 1 時間を消費 |
| 仕上工程は 14 時間まで | x + 2y ≤ 14 | A は 1 時間、B は 2 時間を消費 |
| 負の生産量は取れない | x ≥ 0, y ≥ 0 | 第 1 象限だけを考える |
理解チェック 2 — 制約を文章から式へ
切断工程(A: 2 時間、B: 1 時間、合計 16 時間まで)と仕上工程(A: 1 時間、B: 2 時間、合計 14 時間まで)を a x + b y ≤ r の形に写します。
Q1. 切断工程の a を入力してください(A の係数)。
A は 1 ロットで 2 時間使うので a = 2。合計すると 2x + y ≤ 16 になります。
Q2. 仕上工程を a x + b y ≤ r の形にしたときの b を入力してください。
B は 1 ロットで 2 時間使うので b = 2。合計すると x + 2y ≤ 14。
線形と非線形の境界
線形計画法では、変数は一次式の中にだけ現れます。
| 式 | 線形? | 理由 |
|---|---|---|
3x + 5y | はい | 係数が定数で、変数どうしを掛けていない |
2x + y ≤ 16 | はい | 不等式でも左辺は一次式 |
x² + y | いいえ | 二乗が入っている |
xy ≤ 10 | いいえ | 変数どうしが掛け合わさっている |
理解チェック 3 — 式に数を入れて読む
式を立てたら、実際に数を入れて読み取れるようにしておきます。
Q1. 計画 (x, y) = (4, 5) のとき、目的値 z = 3x + 5y はいくつでしょうか。
3×4 + 5×5 = 12 + 25 = 37。目的関数は候補の計画を採点する式です。
定式化の完成形
maximize z = 3x + 5y
subject to 2x + y ≤ 16
x + 2y ≤ 14
x ≥ 0, y ≥ 0
ここまで書けたら、次は「この式が平面上でどんな形を作るか」を見ます。
第 2 章のまとめ
- 最初に決めるのは、分析者が選べる量=意思決定変数。
- 目的関数は「何を良くしたいか」、制約は「何が上限か」を表す。
- 線形とは、変数が一次式にだけ現れること。