情報I / コンピュータとプログラミング 5 / 6

モデル化とシミュレーション

現実の問題をそのまま実験するのが難しいとき、コンピュータの中に「模型」を作って試す方法があります。対象の本質だけを取り出して単純化したものをモデル、モデルを使った模擬実験をシミュレーションと呼びます。天気予報も渋滞予測も感染症の流行予測も、この方法で行われています。

モデル化とは

モデル化とは、現実の複雑な対象から、目的に必要な要素だけを抜き出して単純に表現することです。地図は「土地の高低や建物の細部」を省略して位置関係だけを表したモデルですし、電車の路線図は駅のつながりだけを取り出したモデルです。目的に応じて何を残し何を省くかが変わるのがモデル化の本質です。

モデルの分類

モデルは表現の形式によって、物理モデル(実物を縮小・拡大した模型など)、図的モデル(路線図・フローチャートなど)、数式モデル(数理モデル)(数式で関係を表したもの)に分けられます。

また、対象の特性によって次のようにも分類されます。

・静的モデル / 動的モデル:時間の経過を考えないか、考えるか。
・確定的モデル / 確率的モデル:結果が一つに決まるか、サイコロのような偶然の要素(乱数)を含むか。

例 「最初に5,000円持っていて、毎月2,000円ずつ貯金する」という状況は、x か月後の貯金額 y 円を y = 2000x + 5000 という数式モデルで表せます。x=12を代入すれば、1年後の貯金額は 2000×12+5000 = 29,000円と予測できます。これは時間を含むので動的モデル、偶然の要素がないので確定的モデルです。

シミュレーションの手順

シミュレーションは一般に、①目的を決める → ②モデル化する → ③シミュレーションを実行する → ④結果を評価する → ⑤モデルを修正して繰り返す、という手順で行います。モデルは現実を単純化したものなので、結果が現実と合っているかを検証し、モデルを改善していくことが不可欠です。

乱数を使ったシミュレーション

偶然の要素を含む現象は、コンピュータが生成する乱数を使って再現します。乱数を大量に使って近似解を求める方法はモンテカルロ法と呼ばれます。有名な例が円周率の推定です。1×1の正方形の中にランダムに点を打ち、原点から距離1以内(四分円の内側)に入った点の割合を4倍すると、円周率πの近似値が得られます。点の数を増やすほど精度が上がります。ほかにも、レジの行列がどれくらい伸びるかを到着客数の乱数で調べる待ち行列のシミュレーションは、コンビニのレジ台数や病院の窓口数を決める際に実際に使われています。

ポイント
  • モデル化=目的に必要な要素だけを取り出して単純化すること。
  • 分類の軸は「物理・図的・数式」「静的・動的」「確定的・確率的」。
  • シミュレーションの利点: 危険な実験・費用のかかる実験・現実には不可能な実験を安全に何度でも試せる。
  • 偶然を含む現象は乱数で再現する(モンテカルロ法)。
  • モデルは単純化ゆえに現実とズレる。検証と改善のサイクルが重要。

練習問題

  1. サイコロの出目によって進むすごろくのシミュレーションは、確定的モデルと確率的モデルのどちらか答えなさい。
  2. 「最初に5,000円持っていて毎月2,000円貯金する」モデル y = 2000x + 5000 を使い、18か月後の貯金額を求めなさい。
  3. 実物で実験せずコンピュータでシミュレーションを行う利点を2つ挙げなさい。

解答・解説

  1. 解答:確率的モデル
    解説:サイコロの出目という偶然(乱数)の要素を含むため。同じ条件で実行しても毎回結果が変わりうる。
  2. 解答:41,000円
    解説:x=18を代入して 2000×18+5000 = 36000+5000 = 41000円。
  3. 解答:(例)①危険な実験や災害のような再現不可能な事象も安全に試せる。②実物を作るより費用や時間がかからず、条件を変えて何度でも繰り返せる。
    解説:他に「時間を早送りして長期間の変化を短時間で調べられる」なども正解。

続きは無料アカウントで読めます

このレッスンの続きと、AIに教えて学ぶ機能が使えます。登録は無料です。

無料でアカウントを作る ログイン

このレッスンの質問と回答

読み込み中...