合同会社小村ソフト
第 2 章

問題を式にする — 目的関数と制約

文章から意思決定変数・目的関数・制約を切り出し、係数と右辺の意味を数字で固める。

例題を自然言語から拾う

製品 A と製品 B を 1 日でどれだけ作るかを決めたい。A は 1 ロットあたり利益 3 万円、B は 1 ロットあたり利益 5 万円。切断工程は A が 2 時間、B が 1 時間使い、合計 16 時間まで。仕上工程は A が 1 時間、B が 2 時間使い、合計 14 時間まで。

ここから、何を決めるか・何を最大化するか・どんな上限があるか を切り出します。

まず変数を置く

分析者が選べる量だけを変数にします。

  • x = 製品 A のロット数
  • y = 製品 B のロット数

変数が決まると、以後の文章は「xy を使ってどう書くか」に変わります。

理解チェック 1 — 目的関数の係数

目的関数の係数は、1 ロット増やしたときの効果です。

Q1. 目的関数 z = c_x x + c_y y の係数 c_x を入力してください(製品 A の利益は 3 万円)。

Q2. 同じ目的関数の c_y を入力してください(製品 B の利益は 5 万円)。

目的関数と制約を書く

A は 1 ロットで 3 万円、B は 1 ロットで 5 万円なので、合計利益と工程制約は次の式で書けます。

  • maximize z = 3x + 5y
  • 2x + y ≤ 16(切断工程)
  • x + 2y ≤ 14(仕上工程)
  • x ≥ 0, y ≥ 0
文章意味
切断工程は 16 時間まで2x + y ≤ 16A は 2 時間、B は 1 時間を消費
仕上工程は 14 時間までx + 2y ≤ 14A は 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 の係数)。

Q2. 仕上工程を a x + b y ≤ r の形にしたときの b を入力してください。

線形と非線形の境界

線形計画法では、変数は一次式の中にだけ現れます。

線形?理由
3x + 5yはい係数が定数で、変数どうしを掛けていない
2x + y ≤ 16はい不等式でも左辺は一次式
x² + yいいえ二乗が入っている
xy ≤ 10いいえ変数どうしが掛け合わさっている

理解チェック 3 — 式に数を入れて読む

式を立てたら、実際に数を入れて読み取れるようにしておきます。

Q1. 計画 (x, y) = (4, 5) のとき、目的値 z = 3x + 5y はいくつでしょうか。

万円

定式化の完成形

maximize   z = 3x + 5y
subject to 2x +  y ≤ 16
           x  + 2y ≤ 14
           x ≥ 0, y ≥ 0

ここまで書けたら、次は「この式が平面上でどんな形を作るか」を見ます。

第 2 章のまとめ

  • 最初に決めるのは、分析者が選べる量=意思決定変数。
  • 目的関数は「何を良くしたいか」、制約は「何が上限か」を表す。
  • 線形とは、変数が一次式にだけ現れること。