はじめに
今回も、応用情報技術者試験の過去問を解いていきます。
今回のテーマは 線形計画法(Linear Programming) です。
線形計画法は、「限られた資源をどのように配分すれば、利益を最大にできるか」といった問題を解くための手法です。
工場の生産計画、在庫管理、輸送計画、予算配分など、実務でも幅広く使われています。
今回の問題では、
- 制約条件の作り方
- 目的関数の考え方
- 最大値の求め方
を整理していきます。
問題
製品X、Yを1台製造するのに必要な部品数は、表のとおりである。
また、製品1台当たりの利益がX、Yともに1万円のとき、利益は最大何万円になるか。
ここで、
- 部品A:120個まで
- 部品B:60個まで
使えるものとする。
部品使用数一覧
| 部品 | 製品X | 製品Y |
|---|---|---|
| A | 3個 | 2個 |
| B | 1個 | 2個 |
選択肢
| 選択肢 | 利益(万円) |
|---|---|
| ア | 30 |
| イ | 40 |
| ウ | 45 |
| エ | 60 |
解答
正解は「ウ:45万円」です。
解説
この問題は、典型的な 線形計画法 の問題です。
まず、製品XとYの生産台数を変数として表します。
- 製品Xを 台
- 製品Yを 台
とします。
部品Aの制約条件
製品Xを1台作るには、部品Aを3個使用します。
製品Yを1台作るには、部品Aを2個使用します。
部品Aは120個までしか使えないので、
となります。
部品Bの制約条件
製品Xを1台作るには、部品Bを1個使用します。
製品Yを1台作るには、部品Bを2個使用します。
部品Bは60個までなので、
となります。
また、生産台数なので、
です。
利益を表す式
製品X、Yともに、1台当たりの利益は1万円です。
したがって、利益 は、
と表せます。
この を最大にする と を求めればよいことになります。
交点を求める
線形計画法では、実行可能領域の頂点を調べることで最大値や最小値を求められます。
今回、重要なのは次の2本の直線です。
この連立方程式を解きます。
上の式から下の式を引くと、
したがって、
です。
これを
に代入すると、
となります。
したがって、
- 製品X:30台
- 製品Y:15台
を作る場合が候補になります。
利益を計算する
製品Xを30台、製品Yを15台作るので、
合計45台です。
1台当たりの利益は1万円なので、
となります。
したがって、
最大利益は45万円です。
本当に最大か確認する
線形計画法では、実行可能領域の頂点を比較すると分かりやすいです。
今回の主な頂点は次のとおりです。
| Xの生産台数 | Yの生産台数 | 利益 |
|---|---|---|
| 0 | 0 | 0万円 |
| 0 | 30 | 30万円 |
| 30 | 15 | 45万円 |
| 40 | 0 | 40万円 |
最も利益が大きいのは、
X=30台、Y=15台の45万円
です。
よって正解は、
ウ:45万円
となります。
なぜ「40万円」を選びやすいのか
この問題では、「イ:40万円」という選択肢に引っかかりやすいです。
製品Xだけを作る場合を考えると、
部品Aは120個あり、Xは1台につき3個使うので、
となります。
そのため、
「Xを40台作れば40万円だから、これが最大では?」
と考えてしまう可能性があります。
しかし、Xだけを作るよりも、XとYを組み合わせた方が部品を効率よく使えます。
実際に、
- X:30台
- Y:15台
とすると、
部品Aは、
部品Bは、
となり、部品A・Bをどちらもぴったり使い切れます。
そして利益は45万円です。
このように、線形計画法では「1種類だけを最大まで作る」のではなく、複数の製品をどう組み合わせるかが重要です。
問題の用語解説
線形計画法とは
線形計画法とは、複数の制約条件のもとで、目的となる値を最大化または最小化する手法です。
英語では、
Linear Programming
と呼ばれます。
代表的な例として、
- 利益の最大化
- コストの最小化
- 生産量の最適化
- 輸送量の最適化
- 資源配分の最適化
などがあります。
制約条件とは
制約条件とは、
「この範囲を超えてはいけない」
という条件です。
今回なら、
- 部品Aは120個まで
- 部品Bは60個まで
という条件が制約条件です。
数式にすると、
となります。
目的関数とは
目的関数とは、
「何を最大化、または最小化したいのか」
を表す式です。
今回の目的は利益を最大化することなので、
が目的関数です。
線形計画法では、
制約条件の中で目的関数を最も良い値にする
ことを考えます。
実行可能領域とは
すべての制約条件を満たす範囲を、
実行可能領域
と呼びます。
今回なら、
さらに、
をすべて満たす範囲です。
線形計画問題では、最適解が存在する場合、実行可能領域の頂点の少なくとも一つに最適解があります。
そのため、試験問題では「頂点を調べる」という方法が非常に有効です。
体系的位置づけ
この問題は、応用情報技術者試験のシラバス上では、
ストラテジ系
に位置づけられます。
大まかには、
ストラテジ系
→ 企業活動
→ 業務分析・データ利活用
→ OR・IE
→ 線形計画法
という流れです。
ORは、
Operations Research
の略です。
日本語では「オペレーションズリサーチ」と呼ばれます。
企業活動の中で、限られた資源をどう使えば最も効率がよいかを、数理的に考える分野です。
線形計画法は、その代表的な手法の一つです。
今回の問題の重要ポイント
① 文章から制約条件を作る
最も重要なのは、問題文を数式に変換することです。
例えば、
「Xは部品Aを3個、Yは2個使用し、合計120個まで」
なら、
となります。
数字だけを見るのではなく、
「1台につき何個必要なのか」
と
「全部で何個まで使えるのか」
を整理することが重要です。
② 目的関数を確認する
何を最大化するのかも重要です。
今回はXもYも利益が同じなので、
でした。
もしXが1台2万円、Yが1台3万円なら、
となります。
つまり、利益が違えば目的関数も変わります。
③ 頂点を確認する
線形計画法の基本的な問題では、
実行可能領域の頂点を確認する
という考え方が非常に重要です。
今回なら、
- (0, 30)
- (30, 15)
- (40, 0)
などを比較します。
その結果、
のとき利益が最大になります。
④ 1種類だけ作るとは限らない
今回の問題で特に覚えておきたいポイントです。
製品Xだけなら40台作れます。
しかし、それが最適解ではありません。
XとYを組み合わせることで、部品AとBをより効率的に使い切ることができ、45万円まで利益を増やせます。
線形計画法では、
「一つを最大にする」のではなく、「全体として最適な組み合わせを探す」
という考え方が重要です。
まとめ
今回の問題の正解は、
ウ:45万円
です。
製品Xを30台、製品Yを15台作ることで、
- 部品A:120個
- 部品B:60個
をちょうど使い切ることができます。
そして、
となるため、最大利益は45万円です。
今回のポイントは、
- 変数を置く
- 制約条件を式にする
- 目的関数を作る
- 実行可能領域の頂点を調べる
- 利益を比較する
という流れです。
線形計画法は、一見すると難しそうですが、問題文を一つずつ数式に変換していけば解きやすくなります。
特に、
「限られた資源の中で、どの組み合わせが最も得か」
と考えるとイメージしやすいでしょう。


コメント