290 Views
April 12, 22
スライド概要
オペレーションズリサーチ
URL: https://www.kkaneko.jp/cc/or/index.html
--------------------
YouTube の動画
https://youtu.be/a8us7gTPNC8
金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko
1. オペレーションズリサーチの 概要 URL: https://www.kkaneko.jp/cc/or/index.html 金子邦彦 1
オペレーションリサーチとは オペレーションズリサーチとは、データ等の根拠に 基づいて意思決定を行える技術 意思決定 ◆ 在庫は,何個置いておくか ◆ 受付には,何人用意するか ◆ たくさんある作業のうち,何を, いつ行ったら良いのか ◆ どの道を通るのか •2
15回の計画 1 オペレーションズリサーチの概要 9 資金計画と投資効率 2 配送計画、リードタイム 10 線形計画法を Excel で解く 3 作業リスト、PERT図 11 一次式 4 モンテカルロシミュレーション 12 中間まとめ 5 ランダムウオーク 13 囚人のジレンマ 6 待ち行列シミュレーション 14 経路の探索 7 正規分布 15 総合演習 8 ゲーム理論 3
在庫の管理法を決める 在庫とは: 取引などに備えて,品物を倉庫に置くこと このような問題を解きます ◆ 在庫が場所をとる ◆ 在庫が古くなる,傷む ◆ 在庫がなくて,仕事が進まない •4
待ち行列 待ち行列とは: あるサービスを受けるために, 待っている人などの行列 いつも3人待ち レジ 待ち行列 シミュレーションの例 レジを2つ, 行列も2つに増やすと 平均0.6人ずつに! •5
線形計画法 • 線形計画法とは:線形の制約のもとで,ある線形 式の値を最大化(あるいは最小化)すること (例)限られた材料で,なるべく多くの製品を作る. 材料: たまご 100個. ごはん 50杯 レシピ: たまご ご飯 100 ゆでたまご1個 = たまご1個 たまごご飯1杯 = たまご1個 + ごはん1杯 50 0 50 100 ゆでたまご •6
ネットワーク計画 • ネットワーク計画は,路線網,通信網,道路網の ように,何かを網目のようにつないでネットワー クを作るとき,なるべく良いネットワークになる ように計画すること A店: 100個 Xさん: 20個欲しい B店: 50個 Yさん: 80個欲しい A店 B店 合計 Xさん 20 0 20 Yさん 30 50 80 合計 50 50 100 •7
ゲーム理論 • ゲーム理論とは: ゲームの参加者の行動を見極 めて,できるだけ自分の得点が高くなるような駆 け引き ◆ 宿題が100ページ出た! ◆ 仲間2人で50ページずつに分けて,家に持って帰る ◆ 2人ともが宿題を終えれば,賞金が出る ただし,互いに連絡しあうことはできない. ◆ 仲間が信頼できない場合:自分もさぼってしまいたい誘惑 協力,競争,駆け引き •8
日程計画 • 日程計画では,やるべき作業(タスク)の順序を 付け,どの作業列が,全体の遅れに影響を及ぼす のか(クリティカルパス)を見極める •9
オペレーションズリサーチの様々な手法 • 線形計画法,整数線形計画法 • プロジェクトスケジュール • 待ち行列 • ゲーム理論 • 在庫管理 • このような手法も • ネットワーク流量、決定木、階層的分析法 • 動的計画法 • マルコフモデル,マルコフ連鎖 • 非線形計画法 • 信頼性に関するモデル 10
ここまでのまとめ • オペレーションズリサーチは、社会のさまざまな 局面で,合理的な意思決定を行うのに役立つ • 「確かに正しく意思決定をした」ことの根拠を得 る •11
1-1. 乱数 (オペレーションズリサーチ) URL: https://www.kkaneko.jp/cc/or/index.html 金子邦彦 12
乱数 • コンピュータには,ランダムな数(乱数)を発生 する機能がある 13
乱数の範囲の調整 2 1 0 1 0 -1 元の乱数は 0 か ら 1 の範囲とす る 2倍すると,範 囲は 0 から 2 2倍して,1引く と,範囲は -1 から 1 14
Excel を起動する.起動したら「空白のブッ ク」を選ぶ 15
次のように操作して,新しく空白のブックを 作る 「ファイル」を クリック 「新規」 をクリック 空白のブック 16
-1 以上 1 未満の乱数の式 「=RAND() * 2 - 1」をセル A1 に書く A1に式「=RAND() * 2 - 1 」 17
セル A1 の式を, A2 から A10 に「コピー&貼り付け」する. 右クリックメニューが便利 実行のたびに、違う値になる (乱数なので、ランダムな値) 18
まとめ • コンピュータには,ランダムな数(乱数)を発生 する機能がある 19
1-2. 確率を変えながら行う シミュレーションの例 (オペレーションズリサーチ) URL: https://www.kkaneko.jp/cc/or/index.html 金子邦彦 20
シミュレーションの目的 • シミュレーションは,現実を模倣すること • さまざまな実験を行うことも可能 • ある行動を実行する前に、前もって、データを 使っていろいろなことを確かめておくことなどに 役立つ 21
シミュレーションにおけるイベントの例 ◆ イベント1 自動販売機は、10円玉が3枚増える(+3) ◆ イベント2 自動販売機は、10円玉が2枚減る(-2) 22
今から行うシミュレーション ◆ 商品は 30円 ◆ 硬貨は 10円玉、50円玉だけが使える ある人は10円玉×3枚で買い物 自動販売機は、10円玉が3枚増える(+3) ある人は50円玉×1枚で買い物(おつり20円 を受け取る) 自動販売機は、10円玉が2枚減る(-2) 15人が買い物を終えたとき、10円玉は何枚増えるか(減るか) 23
Excel を起動する.起動したら「空白のブッ ク」を選ぶ 24
セル A1からK1 に 値 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1 を書く 10円玉を使う人の確率を 0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 100% の11パターン設定している 25
セル A2 に式「=IF(RAND() < A$1, 3, -2) 」 を書く 26
セル A2 の式を,A3 から A16 に「コピー &貼り付け」する. 右クリックメニューが便利 27
今度は,セル A2 の式を,B2 から K16 に 「コピー&貼り付け」する.右クリックメ ニューが便利 ※ 乱数なので,実行のたびに違った値になる 28
セル A17 に式「=SUM(A2:A16) 」を書く 15人が買い物を終えたとき、 10円玉は何枚増えるか(減るか) 29
セル A17 の式を,B17 から K17 に「コ ピー&貼り付け」する. 右クリックメニューが便利 30
セル A17 から K17 までのエリア を,マウス でドラッグして(範囲選択),折れ線グラフを 選ぶ 挿入タブ マウスでドラッグ (範囲選択) プルダウンメニュー 折れ線グラフが 得られる 31
できた折れ線グラフを使い、次のことを確認 ポイント シミュレーションなので、数式を 考えずに済んでいる。 <数式の例> 3 p - 2 (1 – p ) = 0 を解くと, p = 0.4 10円玉を使う人が、全体の4 0%のときは、 自動販売機の10円玉が増えもせ ず、減りもしなさそうだ! ※ 数式を解くのが難しい場合 でも、シミュレーションに より、結論を得ることができる 32
1-3. ランダムな到着 (オペレーションズリサーチ) URL: https://www.kkaneko.jp/cc/or/index.html 金子邦彦 33
• シミュレーションは,仮説の検証に役立つ 例えば, スーパーのレジなどの待ち行列. 意外と,私の寸前に,別の人が並ぶことがある. 私の運が悪いのか? → No このことをシミュレーションで確認 34
ランダムな客の到着 ◆ 客が1時間(60分)の間に、12人来そう! というとき 5分 5分 5分 上の図のように、5分ごとに1人ずつ来ることは、 まずあり得ません 35
ランダムな客の到着 ◆ 客が1時間(60分)の間に、12人来そう! というとき 客は60分の間に、ランダムにやってきます 36
次のように操作して, 新しく空白のブックを作る 「ファイル」を クリック 「新規」 をクリック 空白のブック 37
0 以上 60 未満の乱数の式 「=TRUNC( RAND() * 60 )」をセル A1 に 書く A1に式「=TRUNC( RAND() * 60 )」 38
客が12人来るという状況をシミュレーション したいので, A1 の式を A2 から A12 に「コピー&貼り付 け」する. 右クリックメニューが便利 実行のたびに違う値になる (乱数なので、ランダムな値) 39
「値」を.B列に「コピー&貼り付け」したい ②右クリック メニューで 「コピー」 ①まず,A1からA12を ドラッグして,範囲選択 ③セルB1を 右クリックして, 「形式を選択して貼り付け」 「値の貼り付け」の下に ある「値」のアイコンを選ぶ 40
B列の値を並べ替えたい ② リボンで「データ」→「並べ替え」 ①まず,B1からB12を ドラッグして,範囲選択 41
もし,警告表示が出たら 「並べ替え」をクリック ③「最優先されるキー」 を「列B」に設定して 「OK」 42
B列が,左のようになることを確認 次に,セル C2 に次の式を入れる =B2-B1 これは,到着間隔を求める式 C2の式を, C3 から C12 に 「コピー&貼り付け」する. 右クリックメニューが便利 43
C列が,左のようになることを確認 次のことを確認 60分の間に 12人 平均で5分間隔 間隔はばらばら 0,1,2分のような小さな値も,けっ こう多い 44