こんにちは!タカモリです。 まだまだ私も未熟なものですから自分の知識を向上させていく為にも更に今後お勉強してまいります。

というわけでIPAの試験。基本情報技術者試験!10月分受けます! そこで、今僕が勉強している基本情報技術者試験で理解が薄い箇所などについてをブログにてアウトプットしていきたいと思います。

今回は線形計画法です

線形計画法

コンピュータサイエンスというわけではないのですが、試験では主にストラテジ?ですかね。そのあたりでこの言葉に出会うと思いますが、僕自身は当初全く意味がわかっておりませんでした。

Wikiによると・・・ 線型計画法(せんけいけいかくほう、LP; linear programming)は、数理計画法において、いくつかの1次不等式および1次等式を満たす変数の値の中で、ある1次式を最大化または最小化する値を求める方法である。線形計画法の対象となる最適化問題を線型計画問題という。 詳細はコチラから

まぁ。。。読んでもわかりませんわ笑 試験を解いていると「この条件の場合、この数値はどうなるか?」を求める問題が多いように思います。

基本情報技術者試験ではこのような内容で出題されています。 ※以下引用 表は,製品A,Bを生産するのに必要な製品1単位当たりの原料使用量及び設備使用時間と,それぞれの制約条件を示している。製品1単位当たりの利益が,製品Aが5万円,製品Bが4万円であるとき,1日の最大利益は何万円か。

製品A 製品B 制約条件
原料(kg/製品) 2 4 1日あたり合計16kgまで使用可能
設備(時間/製品) 3 2 1日当たり延べ12時間まで使用可能

過去問を解くたび、こういう問題を見る度に吐き気が襲い、やる気がなくなるのは私だけではないはず(多分な)

とは言いながらも僕も繰り返しやってきましたので、なんとなくイメージは掴めるようになりました。 過去問を見れば答えが載ってはいるのですが、僕なりの言葉でアウトプットしていきたいと思います。

上の問題の場合、問われているのは製品1単位当たりの利益が、製品Aが5万円、製品Bが4万円の時の1日の最大の利益です。そしてテーブルの中には必要な材料数とその条件が書かれているわけですね。

これを回答する為には、3つの方法が考えられます。

  1. 製品Aをひたすら作り続けて、余った材料でBを作る
  2. 製品Bをひたすら作り続けて、余った材料でAを作る
  3. 製品AとBの材料を良い感じに使ってマックスの利益を出す。

1.2なら簡単そうですよね。これが答えなら僕でも対して難しくはないとは思うのですが。。 絶対に3です!世の中そう甘くはないですよね。(もしかしたら裏をかいた問題もあるのかも)

というわけで3番目のパターンを考えていきます。

原料が16kg使えて、製品Aに2kg。製品Bに4kgそれぞれ使いますよね。そして設備が12時間使えて製品Aに3時間。製品Bに2時間それぞれ使うので、これは以下のような連立方程式になりそうです。

① 2A + 4B <= 16 ② 3A + 2B <= 12

まず、Aは一体なんなのかというのを求めていきます。上の4Bを移項して 2A = 16 - 4B ↓ 2Aの2で両辺を割ります。 A = 8 - 2B 出ました。そして今度はこれを使ってBを出します。

3(8 - 2B) + 2B = 12 ↓ 24 - 6B + 2B = 12 ↓ -4B = -12 B = 3 となります。

まだAが出ていないので、最後にAを出すために、A = 8 - 2Bの式にB = 3 を代入します。 A = 2ですね!

この計算で原料と設備をマックスまで使用した時の製品Aと製品Bの生産量が出ます。 5(万) × 2(個) + 4(万) × 3 = 22万円です。 ちなみに最初に戻りますが、

  1. 製品Aをひたすら作り続けて、余った材料でBを作る
  2. 製品Bをひたすら作り続けて、余った材料でAを作る
  3. 製品AとBの材料を良い感じに使ってマックスの利益を出す。

今回は3番のみを計算しましたが、1.2で計算した場合はそれぞれ 1が20万円。2が16万円となります。

ほらね!世間は甘くないんですよ!!

というわけで今回は線形計画法でした。今後もどんどんアウトプットしていくぜ!アバよ!✋