Skip to the content.

最終更新日:2026年8月2日

まず結論

線形計画法とは、限られた資源の中で、利益を最大にしたり、費用を最小にしたりする組合せを求める方法です。

基本情報技術者試験では、次の言葉が出てきたら線形計画法を考えます。

利益を最大にする
費用を最小にする
使える時間に上限がある
材料に上限がある
最適な生産量を求める

覚える一文はこれです。

限られた資源の中で、利益最大・費用最小を求めるのが線形計画法。

直感的な説明

工場では、作りたい製品が複数あっても、使える時間や材料には限りがあります。

製品Aは利益が高い
でも材料を多く使う

製品Bは利益は少し低い
でも短時間で作れる

製品Cは材料を多く使う
でも時間はあまりかからない

このとき、

Aを何個作るか
Bを何個作るか
Cを何個作るか

を決めて、全体の利益が最大になる組合せを探します。

つまり、線形計画法は、

限られた時間・材料・人員を、どこへどれだけ配分すると一番よいか

を考える方法です。

定義・仕組み

線形計画法では、主に次の3つを決めます。

  1. 変数
  2. 目的関数
  3. 制約条件

変数

変数は、決めたい数量です。

例えば、製品A・B・Cの生産量を次のように置きます。

x:製品Aの生産量
y:製品Bの生産量
z:製品Cの生産量

目的関数

目的関数は、最大化または最小化したいものです。

例えば、1個当たりの利益が次のとおりだとします。

製品A:8千円
製品B:5千円
製品C:5千円

全体の利益は、

8x + 5y + 5z

です。

したがって、目的は次のようになります。

8x + 5y + 5z を最大化する

制約条件

制約条件は、守らなければならない上限や下限です。

製造時間が次のように必要だとします。

製品A:2時間
製品B:3時間
製品C:1時間

月に使える製造時間が240時間なら、

2x + 3y + z ≤ 240

です。

原料使用量が次のとおりだとします。

製品A:2kg
製品B:1kg
製品C:2kg

使える原料が150kgなら、

2x + y + 2z ≤ 150

です。

また、生産量が負になることはないため、

x ≥ 0
y ≥ 0
z ≥ 0

という条件も必要です。

線形であるとは

目的関数と制約条件が、変数の1次式で表されることがポイントです。

8x + 5y
2x + 3y ≤ 240

のように、変数同士の掛け算や2乗が含まれません。

xy
x²

のような項がある場合は、通常の線形計画法とは異なります。

このテーマは、基本情報技術者試験の経営工学やORに関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。

科目Aでどう出る?

科目Aでは、問題文の内容から適切な手法を選ぶ形で出題されます。

線形計画法を選ぶ手掛かり

限られた資源
最適な組合せ
利益最大
費用最小
生産量
配分

これらがそろっていれば、線形計画法を考えます。

似た手法との切り分け

手法 主な目的
移動平均法 時系列データを平滑化して傾向を見る
最小二乗法 データに最も合う直線や曲線を求める
線形計画法 制約の中で最適な組合せを求める
定量発注法 在庫が減ったときに一定量を発注する

試験では、次のように判断できます。

売上や需要の変動を滑らかにする
→ 移動平均法

点の集まりから回帰直線を求める
→ 最小二乗法

時間や材料に上限があり、利益を最大化
→ 線形計画法

在庫を一定量ずつ補充する
→ 定量発注法

問題文を式にする

線形計画法の問題では、次の順番で整理します。

1. 何を決めるか
2. 何を最大・最小にするか
3. 何に上限・下限があるか

例えば、

何を決めるか
→ 各製品の生産量

何を最大化するか
→ 利益

何に上限があるか
→ 製造時間と原料

と読めれば、式へ変換しやすくなります。

どんな場面で使う?

線形計画法は、資源配分を決める場面で使われます。

代表例は次のとおりです。

  • 製品ごとの生産量を決める
  • 人員の配置を決める
  • 輸送量を決める
  • 広告予算の配分を決める
  • 原材料の配合を決める
  • 費用を最小にする購入計画を立てる

生産計画

工場では、限られた機械時間や材料を、どの製品へ配分するかを決めます。

利益最大
→ どの製品を何個作るか

輸送計画

複数の倉庫から複数の店舗へ商品を送る場合に、輸送費が最小になる配送量を求めます。

費用最小
→ どこからどこへ何個送るか

人員配置

必要人数や勤務時間の条件を満たしながら、人件費が最小になる配置を求めます。

必要人数を確保
かつ
人件費を最小化

グラフで考える基本

変数が2つの場合は、グラフで考えられます。

例えば、

2x + 3y ≤ 240
2x + y ≤ 150
x ≥ 0
y ≥ 0

という制約があるとします。

各不等式を満たす範囲を重ねると、すべての条件を満たす領域ができます。

この範囲を 実行可能領域 といいます。

制約条件をすべて満たす範囲
→ 実行可能領域

線形計画法では、目的関数の最大値や最小値は、通常、この実行可能領域の頂点で求まります。

そのため、2変数の問題では、頂点を調べる方法がよく使われます。

科目Bでどう使う?

科目Bでは、変数、条件式、最大値探索の考え方につながります。

例えば、複数の生産量候補を調べる場合は、次のように考えます。

すべての候補について
    制約条件を満たすか確認する
    満たすなら利益を計算する
    最大利益を更新する

Pythonで単純に探索すると、次のようになります。

best_profit = -1
best_plan = None

for x in range(121):
    for y in range(81):
        for z in range(241):
            time_used = 2 * x + 3 * y + z
            material_used = 2 * x + y + 2 * z

            if time_used <= 240 and material_used <= 150:
                profit = 8 * x + 5 * y + 5 * z

                if profit > best_profit:
                    best_profit = profit
                    best_plan = (x, y, z)

print(best_profit, best_plan)

本来の線形計画法では、すべての組合せを総当たりしなくても効率よく解けます。

ただし、科目Bでは、

制約条件を満たすか
目的値を計算する
最大値を更新する

という流れを理解しておくと役立ちます。

よくある誤解・混同

最大値を求める問題ならすべて線形計画法

違います。

最大化・最小化に加えて、制約条件の中で複数の変数の組合せを決めることがポイントです。

単に最大値を探す
→ 必ずしも線形計画法ではない

資源制約の中で最適配分を求める
→ 線形計画法

移動平均法と同じ

移動平均法は、時系列データの変動を滑らかにする方法です。

需要予測や傾向把握
→ 移動平均法

生産量の最適化
→ 線形計画法

最小二乗法と同じ

最小二乗法は、観測データに最もよく合う直線や曲線を求める方法です。

回帰直線を求める
→ 最小二乗法

制約の中で利益最大
→ 線形計画法

定量発注法と同じ

定量発注法は、在庫が一定水準まで減ったときに、毎回決まった量を発注する方式です。

発注タイミングと発注量
→ 定量発注法

複数製品の最適な生産量
→ 線形計画法

3つ以上の製品はグラフで解けない

2変数なら平面グラフで表せますが、3変数以上では図示が難しくなります。

それでも、考え方は同じです。

目的関数
制約条件
非負条件

を整理して最適解を求めます。

制約条件は等式でなければならない

上限や下限は、不等式で表します。

最大240時間
→ ≤ 240

最低100個
→ ≥ 100

まとめ(試験直前用)

  • 線形計画法は、制約の中で最適な組合せを求める方法
  • 利益最大化や費用最小化に使う
  • 決めたい数量を変数にする
  • 最大・最小にしたい式が目的関数
  • 時間・材料・人員などの上限が制約条件
  • 変数は通常0以上
  • 目的関数と制約条件は1次式で表す
  • 2変数なら実行可能領域をグラフで考えられる
  • 移動平均法は平滑化、最小二乗法は回帰、定量発注法は在庫補充
  • 「限られた資源をどう配分するか」が判断の決め手

目的関数を決め、制約条件の中で最もよい組合せを探す。

© 2024-2026 stemtazoo. All rights reserved.