こんにちは!しゅんです!
このブログでは経営工学を勉強している現役理系大学生のぼくが、経営工学に関することを色々話していきます!
ぼくが経営工学を勉強している中で感じたことや、興味深かったことを皆さんと共有出来たら良いなと思っています。
そもそも経営工学とは何なのでしょうか。Wikipediaによると
経営工学(けいえいこうがく、英: engineering management)は、人・材料・装置・情報・エネルギーを総合したシステムの設計・改善・確立に関する活動である。そのシステムから得られる結果を明示し、予測し、評価するために、工学的な分析・設計の原理・方法とともに、数学、物理および社会科学の専門知識と経験を利用する。
引用元 : 経営工学 – Wikipedia
長々と書いてありますが、要は経営、経済の課題を理系的な観点から解決する学問です。
今回の記事はオペレーションズ・リサーチについて話していきたいと思います!
経営工学に興味を持っている人はぜひ今回の記事を読んでみてください!!!
経営工学についての別の記事もあるのでぜひこちらも読んでみてください!
オペレーションズ・リサーチってなに?
そもそもオペレーションズ・リサーチとはどういう学問なのか疑問に思う人も多いと思います。
簡単に説明すると、様々な問題を数式を使って解決する学問です。
オペレーションズ・リサーチではまずいろいろな現実問題をどうやって数式で表すのかを考えるところから始まります。長いのでここからはORと略します。
このことをモデル化と呼びます。
どんな問題を解きたいのか、その問題を解くうえで必要な情報はなにか、その問題を解く際にどんな条件が存在するかなどを考え、それらを数式で表すにはどうすれば良いかを考えます。
ぼくが大学で受けた授業ではORの典型問題をいくつか勉強し、それらを数式で表す方法や解く方法を学びました。
必要な情報が少ない場合は手計算でも解くことができますが、現実の問題は解くために必要な情報が非常に多いので手計算で答えを出すのは厳しいです。
そこで登場するのがプログラミングです。ということで問題を数式で表したら、今度はそれをプログラミングでどう記述するかを考えます。
ここまで読んできたら分かるようにORではがっつり数学を使います。
それでは次にORの典型問題をいくつか見ていきましょう。
オペレーションズ・リサーチの典型問題
ナップザック問題
ナップザック問題を簡単に説明すると、どの荷物を持っていけば一番ハッピーになるかを求める問題です。
荷物1つ1つに重さと持っていけたときの嬉しさが数値で与えられて、ナップザックの容量も決められています。そのような条件でどの荷物の組み合わせを持っていけば一番ハッピーになるかを計算します。
日常生活で例えてみると、旅行に行くときに持っていきたい物が多すぎて選ばないといけないような状況ですね。
持っていきたいものが5個くらいであればなんとなく最適解が分かってしまいますが、それが100個とか1000個とかになるとさすがにプログラミングで解く必要がありますね笑
輸送問題
輸送問題は複数の工場(供給地)から複数の店(需要地)に製品を輸送する問題です。
各工場から各店に製品を輸送する際にそれぞれコストがかかってしまいます。そこでどの工場からどの店にどれだけ輸送すれば一番輸送コストが少なくなるかを求めるのがこの輸送問題です。
例えばこの問題の応用として、工場と店の間に中継地点を置くことも考えられます。
中継地点は置いた方がコストが少なくなるか、置くならどこに置くか、何個設置するかなども計算で解くことができます。
このような輸送問題は現実世界でもよくある問題だと思うので直観的にわかりやすいのかなと思います。
最短経路問題
最短経路問題は出発地点から目的地まで最短で行くための経路を求める問題です。
各経路には所要時間が設定されており、目的地までの所要時間は通った経路の所要時間の合計で計算します。
これを応用して各地点で留まる時間を設定するのも面白いかもしれませんね。(例:電車の待ち時間など)
この最短経路問題は電車の路線案内のアプリとかで使われていそうですね。所要時間のところを所要金額にすれば最短経路ではなく最小金額経路を求めることもできますね。
オペレーションズ・リサーチはどこが難しい?
ここまでORの話をいろいろしてきましたが、ここ最近ぼくがORを勉強していて難しいと感じている所を話したいと思います。
今のところぼくは2つの部分で難しいなって感じています。
モデル化が難しい!
ある問題を数式で記述することをモデル化と言いますが、これが難しいです。
特に条件式を数式で表すのに非常に時間を費やしてしまいます。
もちろんすぐに数式で表せる制約条件もあるんですけど、細かい条件を加えるとどうすれば良いのか悩んでしまいます。
説明されたときには理解できるけどこれをどうやって思いつけば良いか分からない現象に陥ってしまいます笑
プログラミングが難しい!
やっとのことで問題を数式で記述することができてもこれをプログラミングするのがまた難しいです。
これも授業で解説されて理解できるけど最初から自分でやるのは無理だろってなってしまいます。
ORの問題をプログラミングで記述するのによく使われる手法などもあるんですけど、それらを1つずつ覚えていかないといけないですよね…頑張ります。
おわりに
ここまでぼくがORで躓いている所を話してきましたが、問題が解けるとやはり楽しいと思います。
この前数独を自動的に解くプログラムを作ったんですけど、完璧にできたときにものすごくうれしくてこれで何でもできるじゃんって思ってしまいました笑
こんな感じでこれからもぼくはORに打ちのめされながら勉強していきたいと思っています。
もしORの典型問題に興味があったら是非調べてみてください!色々なサイトで問題の解き方が書かれています。
最後まで読んでくれてありがとうございました!
この記事が役に立ったら幸いです。