or-1 オペレーションズリサーチの概要

-- Views

April 12, 22

スライド概要

オペレーションズリサーチ
URL: https://www.kkaneko.jp/cc/or/index.html

--------------------
YouTube の動画
https://youtu.be/a8us7gTPNC8

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

1. オペレーションズリサーチの 概要 URL: https://www.kkaneko.jp/cc/or/index.html 金子邦彦 1

2.

オペレーションリサーチとは オペレーションズリサーチとは、データ等の根拠に 基づいて意思決定を行える技術 意思決定 ◆ 在庫は,何個置いておくか ◆ 受付には,何人用意するか ◆ たくさんある作業のうち,何を, いつ行ったら良いのか ◆ どの道を通るのか •2

3.

15回の計画 1 オペレーションズリサーチの概要 9 資金計画と投資効率 2 配送計画、リードタイム 10 線形計画法を Excel で解く 3 作業リスト、PERT図 11 一次式 4 モンテカルロシミュレーション 12 中間まとめ 5 ランダムウオーク 13 囚人のジレンマ 6 待ち行列シミュレーション 14 経路の探索 7 正規分布 15 総合演習 8 ゲーム理論 3

4.

在庫の管理法を決める 在庫とは: 取引などに備えて,品物を倉庫に置くこと このような問題を解きます ◆ 在庫が場所をとる ◆ 在庫が古くなる,傷む ◆ 在庫がなくて,仕事が進まない •4

5.

待ち行列 待ち行列とは: あるサービスを受けるために, 待っている人などの行列 いつも3人待ち レジ 待ち行列 シミュレーションの例 レジを2つ, 行列も2つに増やすと 平均0.6人ずつに! •5

6.

線形計画法 • 線形計画法とは:線形の制約のもとで,ある線形 式の値を最大化(あるいは最小化)すること (例)限られた材料で,なるべく多くの製品を作る. 材料: たまご 100個. ごはん 50杯 レシピ: たまご ご飯 100 ゆでたまご1個 = たまご1個 たまごご飯1杯 = たまご1個 + ごはん1杯 50 0 50 100 ゆでたまご •6

7.

ネットワーク計画 • ネットワーク計画は,路線網,通信網,道路網の ように,何かを網目のようにつないでネットワー クを作るとき,なるべく良いネットワークになる ように計画すること A店: 100個 Xさん: 20個欲しい B店: 50個 Yさん: 80個欲しい A店 B店 合計 Xさん 20 0 20 Yさん 30 50 80 合計 50 50 100 •7

8.

ゲーム理論 • ゲーム理論とは: ゲームの参加者の行動を見極 めて,できるだけ自分の得点が高くなるような駆 け引き ◆ 宿題が100ページ出た! ◆ 仲間2人で50ページずつに分けて,家に持って帰る ◆ 2人ともが宿題を終えれば,賞金が出る ただし,互いに連絡しあうことはできない. ◆ 仲間が信頼できない場合:自分もさぼってしまいたい誘惑 協力,競争,駆け引き •8

9.

日程計画 • 日程計画では,やるべき作業(タスク)の順序を 付け,どの作業列が,全体の遅れに影響を及ぼす のか(クリティカルパス)を見極める •9

10.

オペレーションズリサーチの様々な手法 • 線形計画法,整数線形計画法 • プロジェクトスケジュール • 待ち行列 • ゲーム理論 • 在庫管理 • このような手法も • ネットワーク流量、決定木、階層的分析法 • 動的計画法 • マルコフモデル,マルコフ連鎖 • 非線形計画法 • 信頼性に関するモデル 10

11.

ここまでのまとめ • オペレーションズリサーチは、社会のさまざまな 局面で,合理的な意思決定を行うのに役立つ • 「確かに正しく意思決定をした」ことの根拠を得 る •11

12.

1-1. 乱数 (オペレーションズリサーチ) URL: https://www.kkaneko.jp/cc/or/index.html 金子邦彦 12

13.

乱数 • コンピュータには,ランダムな数(乱数)を発生 する機能がある 13

14.

乱数の範囲の調整 2 1 0 1 0 -1 元の乱数は 0 か ら 1 の範囲とす る 2倍すると,範 囲は 0 から 2 2倍して,1引く と,範囲は -1 から 1 14

15.

Excel を起動する.起動したら「空白のブッ ク」を選ぶ 15

16.

次のように操作して,新しく空白のブックを 作る 「ファイル」を クリック 「新規」 をクリック 空白のブック 16

17.

-1 以上 1 未満の乱数の式 「=RAND() * 2 - 1」をセル A1 に書く A1に式「=RAND() * 2 - 1 」 17

18.

セル A1 の式を, A2 から A10 に「コピー&貼り付け」する. 右クリックメニューが便利 実行のたびに、違う値になる (乱数なので、ランダムな値) 18

19.

まとめ • コンピュータには,ランダムな数(乱数)を発生 する機能がある 19

20.

1-2. 確率を変えながら行う シミュレーションの例 (オペレーションズリサーチ) URL: https://www.kkaneko.jp/cc/or/index.html 金子邦彦 20

21.

シミュレーションの目的 • シミュレーションは,現実を模倣すること • さまざまな実験を行うことも可能 • ある行動を実行する前に、前もって、データを 使っていろいろなことを確かめておくことなどに 役立つ 21

22.

シミュレーションにおけるイベントの例 ◆ イベント1 自動販売機は、10円玉が3枚増える(+3) ◆ イベント2 自動販売機は、10円玉が2枚減る(-2) 22

23.

今から行うシミュレーション ◆ 商品は 30円 ◆ 硬貨は 10円玉、50円玉だけが使える ある人は10円玉×3枚で買い物 自動販売機は、10円玉が3枚増える(+3) ある人は50円玉×1枚で買い物(おつり20円 を受け取る) 自動販売機は、10円玉が2枚減る(-2) 15人が買い物を終えたとき、10円玉は何枚増えるか(減るか) 23

24.

Excel を起動する.起動したら「空白のブッ ク」を選ぶ 24

25.

セル 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

26.

セル A2 に式「=IF(RAND() < A$1, 3, -2) 」 を書く 26

27.

セル A2 の式を,A3 から A16 に「コピー &貼り付け」する. 右クリックメニューが便利 27

28.

今度は,セル A2 の式を,B2 から K16 に 「コピー&貼り付け」する.右クリックメ ニューが便利 ※ 乱数なので,実行のたびに違った値になる 28

29.

セル A17 に式「=SUM(A2:A16) 」を書く 15人が買い物を終えたとき、 10円玉は何枚増えるか(減るか) 29

30.

セル A17 の式を,B17 から K17 に「コ ピー&貼り付け」する. 右クリックメニューが便利 30

31.

セル A17 から K17 までのエリア を,マウス でドラッグして(範囲選択),折れ線グラフを 選ぶ 挿入タブ マウスでドラッグ (範囲選択) プルダウンメニュー 折れ線グラフが 得られる 31

32.

できた折れ線グラフを使い、次のことを確認 ポイント シミュレーションなので、数式を 考えずに済んでいる。 <数式の例> 3 p - 2 (1 – p ) = 0 を解くと, p = 0.4 10円玉を使う人が、全体の4 0%のときは、 自動販売機の10円玉が増えもせ ず、減りもしなさそうだ! ※ 数式を解くのが難しい場合 でも、シミュレーションに より、結論を得ることができる 32

33.

1-3. ランダムな到着 (オペレーションズリサーチ) URL: https://www.kkaneko.jp/cc/or/index.html 金子邦彦 33

34.

• シミュレーションは,仮説の検証に役立つ 例えば, スーパーのレジなどの待ち行列. 意外と,私の寸前に,別の人が並ぶことがある. 私の運が悪いのか? → No このことをシミュレーションで確認 34

35.

ランダムな客の到着 ◆ 客が1時間(60分)の間に、12人来そう! というとき 5分 5分 5分 上の図のように、5分ごとに1人ずつ来ることは、 まずあり得ません 35

36.

ランダムな客の到着 ◆ 客が1時間(60分)の間に、12人来そう! というとき 客は60分の間に、ランダムにやってきます 36

37.

次のように操作して, 新しく空白のブックを作る 「ファイル」を クリック 「新規」 をクリック 空白のブック 37

38.

0 以上 60 未満の乱数の式 「=TRUNC( RAND() * 60 )」をセル A1 に 書く A1に式「=TRUNC( RAND() * 60 )」 38

39.

客が12人来るという状況をシミュレーション したいので, A1 の式を A2 から A12 に「コピー&貼り付 け」する. 右クリックメニューが便利 実行のたびに違う値になる (乱数なので、ランダムな値) 39

40.

「値」を.B列に「コピー&貼り付け」したい ②右クリック メニューで 「コピー」 ①まず,A1からA12を ドラッグして,範囲選択 ③セルB1を 右クリックして, 「形式を選択して貼り付け」 「値の貼り付け」の下に ある「値」のアイコンを選ぶ 40

41.

B列の値を並べ替えたい ② リボンで「データ」→「並べ替え」 ①まず,B1からB12を ドラッグして,範囲選択 41

42.

もし,警告表示が出たら 「並べ替え」をクリック ③「最優先されるキー」 を「列B」に設定して 「OK」 42

43.

B列が,左のようになることを確認 次に,セル C2 に次の式を入れる =B2-B1 これは,到着間隔を求める式 C2の式を, C3 から C12 に 「コピー&貼り付け」する. 右クリックメニューが便利 43

44.

C列が,左のようになることを確認 次のことを確認 60分の間に 12人 平均で5分間隔 間隔はばらばら 0,1,2分のような小さな値も,けっ こう多い 44