ただの備忘記録

忘れないように記録を残します。忘れるから記録に残してます。そして、その記録が役立つといいかな。

最適セールス・ミックスのリニア・プログラミング解法

2020年05月03日 | メモ

工業簿記・原価計算で、最適セールス・ミックスの線形計画法(リニア・プログラミング)を考えるときに正確なグラフを描くのが良いとされています。
しかし、最低でも3つの直線を描くのに正確なグラフを描くのは結構大変です。
でも、心配はありません。グラフの傾きは数式から分かるので、直線の順番と交点の位置が分かるだけで充分なのです。

2つの条件式の間に最適セールス・ミックスがあることを前提にして、グラフを描かなくても解けるようになる手順を解説します。
また、最適セールス・ミックスの条件が変化した場合の攻略法も合わせて紹介します。


★最適セールス・ミックスを求める

例題を使って最適セースル・ミックスとグラフを作ってみましょう。

【問題文①】

製品Xは貢献利益1200円で販売個数はxです。
製品Yは貢献利益1500円で販売個数をyとします。

製造工程の制約条件として以下の2つがあります。

条件①:材料の制限
 製品Xを1つ作るのに1.5kg、製品Yを1つ作るのに1.2kgの材料を使います。調達できる材料は7200kgが上限です。
 この条件において材料1kgあたりの貢献利益が高い製品は製品Yです。

条件②:作業時間の制限
 製品Xを1つ作るのに2時間、製品Yを1つ作るのに4時間かかります。共通の作業時間は12000時間が上限です。
 この条件において作業時間1時間あたりの貢献利益が高い製品は製品Xです。

【条件式】

問題文から、以下の2つの条件式①②と最適セールス・ミックスの最適解MaxZを求める式を示します。

①1.5x+1.2y≦7200
②2x+4y≦12000
ⓏMaxZ=Max(1200x+1500y)

xの範囲は4100≧x≧0、yの範囲は4000≧y≧0ですが、これらは後ほど考えます。(範囲式)

Ⓩを最適解、①②のように未知数が2つ以上あるものを条件式、x軸またはy軸に平行な直線を範囲式と呼び名を定義しておきます。

【グラフと解き方】

まずは基本のグラフを描きます。

このグラフは2つの条件式がどちらの直線なのか確認するためのものです。

2つの条件式をyで解くための形にして、条件式の傾斜を調べます。

①y≦-1.5/1.2x+6000 (1.5/1.2=1.25)
②y≦-2/4x+3000 (2/4=0.5)

傾きは一旦分数で記述しておきます。(注記:分数の表記ですが、2/4xは2/4が分数を表し、xは分母ではなく分数に掛かっています)
傾きを考える場合、()内の様にマイナスを省略すると、数字の大きさ=傾きの大きさと捉えやすくなります。

直線の傾きは0に近いほどx軸と並行に近付きます。マイナスなので直線は右下に向かいます。
そして、2つのグラフは必ず交差します。

傾きが大きいのは条件式①の方なので、x軸上で左にある直線だと判断できます。
また、y軸上の交点でも判断ができます。x=0のときを考えます。
条件式①ではx=0のときy=6000です。条件式②はx=0のときy=3000なので、条件式①はy軸上では上にあることが分かります。

このように傾きやx軸・y軸上の点からグラフ上の2つの直線の条件式を付き合わせます。
実際には傾きを調べた後で、グラフに①②と表記します。

次に最適セールス・ミックスであるMaxZの直線がどこに入るか考えます。
簿記検定の問題では①と②の間に来ますので、それを確認します。
もし、その間にない場合は、残っているxとyの範囲を示す直線(範囲式)の上に交点があります。

最適解MaxZの式もyで解いて傾きを出します。
Ⓩy=-1200/1500x+MaxZ (1200/1500=0.8)

3つの式から傾きを順に並べると①1.25>Ⓩ0.8>②0.5となります。
最適セールス・ミックスが①と②の交点にあることが確認できました。

後は①と②の連立方程式を解いて交点の販売個数xとyを求めます。
MaxZも同じ交点を通りますので、上記で求めたxとyを代入して最大の貢献利益を算出します。

①y≦-1.5/1.2x+6000
②y≦-2/4x+3000

x=4000, y=1000

MaxZ=1200円×4000個+1500円×1000個=630万円

簡単にまとめますと、条件式から3つの直線の傾きを比較し、MaxZの傾きが2つの間にあれば、連立方程式を解いて、最適セールス・ミックスの販売数、貢献利益を算出します。
手順を覚えたらグラフを描かなくても解くことができます。


★最適セールス・ミックスが変化する場合の解き方

下のグラフでは前項にあった範囲式の2つの直線を描き加えています。
ⓧx≦4100
ⓨy≦4000
この範囲式による緑の直線の位置が、最初の2つの条件式①②よりも上または右から始まる場合、その条件は無視してかまいません。線で囲まれた一番内側(原点に近い側)が最適セールス・ミックスの範囲ですので、その外にⓧやⓨがある場合は点aは直線②のy軸上、点cは直線①のx軸上になります。

上記グラフの点bが前項で解答した最適セールス・ミックスの交点です。

【問題文②】

問題分①にさらに条件が付け加えられます。
製品Yの値下げが必要になりました。いくらまで貢献利益が下がると最適セールス・ミックスが変化するでしょうか。

【条件式】

製品Yを値下げするということは、製品Yの販売個数を減らして製品Xを多く売るべきという判断になります。
その結果、最適セールス・ミックスが点bから点aまたは点cに移動します。

値下げの金額を求めないといけないので、値下げ後の金額をBとしてⓏの条件式を作り直します。

ⓏMaxZ=Max(1200x+By) (1200/B)

Bが小さくなるということは分母が小さくなるため、Ⓩの傾きは大きくなって、直線①に傾きが近付きます。
また、yの販売個数が減るということからも点bより下にある点cに最適セールス・ミックスが移動することが分かります。

【解法①:点bと点cの最適セールス・ミックスを求める】

点bから点cに最適セールス・ミックスが変化することが分かったので、点bと点cの販売個数を計算します。
点bでは①と②の連立方程式、点cでは①とⓧの連立方程式を解きます。

点b
①y≦-1.5/1.2x+6000
②y≦-2/4x+3000
x=4000, y=1000
答えは前項で出ています。

点c
①y≦-1.5/1.2x+6000
ⓧx≦4100
x=4100, y=875

次にⓏの式を使って点bと点cの貢献利益を求めます。

点bの貢献利益=1000B+480万円
点cの貢献利益=875B+492万円

点bの貢献利益<点cの貢献利益となるので

1000B+480万円<875B+492万円

B<960

となり、製品Yの貢献利益が960円未満になると最適セールス・ミックスが点cに変化することになります。
※製品Yの価格が960円のときは点bと点cではⓏの貢献利益が同じなので、解答時には注意してください。

【解法②:傾きから算出】

製品Yの貢献利益が下がると、Ⓩの傾きは徐々に大きくなって直線①に近付きます。最適解が同額になったところで一瞬2つの直線が重なるはずです。

ⓏMaxZ=Max(1200x+By) (1200/B)
①y≦-1.5/1.2x+6000 (1.5/1.2)

この一瞬同じになる傾きを求めると良いので、Ⓩと①の傾きだけを取り出して式を作ります。

1200/B>1.5/1.2

それぞれの傾きを分数のまま持ってきても構いません。
Ⓩの傾きが①の傾きより大きくなるときのBを求めます。

分母を掛け合わせます。不等式の左右を入れ替えているので、符号は逆になります。

1.5B<1200×1.2

B<960

となります。


手順をまとめてみます。

★最適セールス・ミックスを求める

条件式①と②、最適セールス・ミックスⓏの3つの式を用意します。
3つの式の傾きを計算します。
条件式①と②の間にⓏの傾きがあることを確認して、連立方程式を解きます。
条件式①と②の交点であるxとyが最適セールス・ミックスの個数です。

★最適セールス・ミックスが変化する場合の解き方①

Ⓩの傾きの変化から、最適セールス・ミックスが移動する交点を考える。
移動前と移動後の2つの交点のxとyを算出する。
2つの交点における貢献利益(MaxZ)を算出する。
2つの式から貢献利益が変化する金額を算出する。

★最適セールス・ミックスが変化する場合の解き方②

Ⓩの傾きが変化すると、他の条件式と同じ傾きになる。
2つの条件式の傾きが同じときの条件を算出する。

手順を理解するとグラフは必要ありませんが、確認のためにグラフ描いておくと安心できます。
そのため正確なグラフは必要ありません。
これでかなりのスピードアップが図れるかと思います。