コラム・特集

10.3  シミュレーション言語

IEハンドブック
第13部 IE技術者の定量的方法論

第10章 コンピュータ・シミュレーション

10.3 シミュレーション言語

シミュレーションは,分析用ツールとして広範囲な分野に利用されており,シミュレーション用に設計されたプログラミング言語が多数開発されている シャノンはシミュレーション研究に,そのような専用言語を使う利点を次のように述べている。

1.プログラミング作業の軽減
2.概念の説明やモデルの定式化が容易
3.研究の伝達やドクメンテーションの補佐
4.モデルの追加や修正の柔軟性
5.シミュレーション時に必要な機能の用意

エムショフゃシッソンはシミュレーションに必要な機能をリストしている

1.確率変数の発生
2.シミュレート時のクロックの管理
3.アウトプット・データの収集と記録
4.アウトプット・データの要約と統計分析
5.エラー状況の発見と報告
6.報告書の作成

この節ではモデリング・アプローチを基にして,よく利用されているシミュレーション言語の特徴を比較する。

轍系言語
ここで検討する主要なプロセス中心の言語は,GPSSとQ-GERTである。また,事象中心の言語はSIMSCRIPTである。

GPSS
GPSS(General Purpose Simulation System)は, 離散系システムをモデル化するためのプロセス中心のシミュレーション言語である。たくさんの方言が存在するが,その中でGPSS/360はもっとも普及し利用された言語である。GPSS Vは GPSS/360の上位版であり,それゆえにGPSS/360で書かれたプログラムはGPSS Vと互換性がある。シュリバー著『GPSSを利用したシミュレーション』は,GPSSを学ぶのに優れた本である。

GPSSの特に優れた点はモデル化の単純性にある G PSSモデルは,標準のプロックを使ってシステムの論理構造を定義するブロック・ダイアグラムを作成することにより構成される CPSSのシミュレーションにおいて, ダイナミックなエンティティはブロックからプロックヘ 順々に動くトランザクションとして表わされる GPSSのプログラムはGPSSプロックの機能的演算を学び,対象のシステムをプロックを使って論理的に構成することにより書くことができる。

GPSSの プロセッサーはブロック・ダイアグラムで書かれたプログラムを解釈 し実行する。この言語は計算能力に制約があり,浮動小数や実数計算はできない 従って,シミュレーションのクロックは整数値である。これはシステムの状態の変化が,整数値ごとにしか起こらないことを意味する。例えば,単一窓口を持つ待ち行列問題で,時間の単位を分とする場合,顧客の到着やサービス時間は分単位でなければならない。整数値のクロックで生ずる。その他の問題として,単位時間があまり長いとたくさんな事象が同時併行的に発生するので,それを上手に交通整理することが要求される GPSSは,各トランザクションに「優先度」と呼ばれる特別な属性をつけることによって, この問題を解決している。

GPSSには48種類のブロックが存在する。各プロックはその意味が理解できるよう独特な図形を使って表わされる。あるトランザクションがブロックに入っ てくると, それに関連のある事象サブルーチンが実行される。これはシステムの状態を変えるかトランザクションの流れを変更する。

Q-GERT
プリッカーによって開発されたQ-GERTは,ネットワークを中心にしたシミュレーション言語である「GERT」 はGraphical Evaluation and Review Techniqueの頭文字からとり,「Q」は待ち行列 システム(Qeuing System)が モデル化できることを示唆する。

プランチが処理時間や遅延のアクティビティを表わすネットワークにより構成される。ノードはブランチを分割したり,標識,意思決定,待ち等をモデル化するのに使われる Q-ERTネットワークはノー ドとブランチから構成される。ネットワーク全体の流れは「トランザクション」といわれるエンティティである 様々なタイプのノードがQ-GERTには含まれている。そして複雑な待ち行列システムやプロジェクト管理システムがモデル化できる。

SIMSCRIPT
シミュレーション言語のSIMSCRIPTは シンクタンクのランド会社で初めて開発された SIMSCRIPT Ⅱ は5つのレベルに分けられる。

レベル1 プログラミングを知らない人にプログラミ ングの概念を教えるように設計された簡単な教育用言語

レベル2 FORTRANを使用

レベル3 ALGOLや PL/1を使用

レベル4 エンティティ,属性,そして集合概念を使ってモデル化

レベル5 時間の進行,事象処理,サンプル発生,シミュレーションで発生したデータの蓄積と分析

プログラミングやシミュレーション言語としてSIMSCRIPTがもっともアピールした点は,英語の文章表現ができ,用語上の制約がないことである。SIMSCRIPTで書かれたプログラムは読むのが易しく,自然にドクメント化され る。

連続系言語
特定の目的を持った連続系システム・シミュレーション言語は1950年代に開発されたけれども,その構造や機能のほとんどは最近になって標準化された。初期のものはプロック中心であり,その結果,連続系モデルはアナログ ・コンピュータの場合と類似したプロック・ダイアグラムを使っていたが,最近のものは方程式中心になり, FORTRANスタイルの言語になっている。この中で,CSMP Ⅲ,DYNAMO,GASP Ⅳがよく使われている。

離散系・連続系の混合型言語
離散系・連続系の混合型言語を開発するために多くの研究がなされているけれども,その中でGASP Ⅳ(General Activity Simulation Program)はよく利用 されている言語である。 最近開発されたSLAM(Simulation Language for Alternative Modeling)はGAS PⅣをベースにしている。そして新しい周辺装置の追加により,プロセス中心のアプローチも可能である。

シミュレーション言語の選択
シミュレーション言語は, しばしば言語面の比較ではなく利用可能性をもとに選択される。しかしながら,シミュレーションを頻繁に使用することが予想されるならば,利用可能な言語と想されるモデル化の要求に対する総合的な評価が必要となる。これに関してシャノンはレビューを書き,そのような評価をするための手順を図示している。 図表13.10.6はシミュレーション言語を比較する際に考慮すべき重要な要因を要約したものである。

 本コラムは絶版となっている「IEハンドブック(サルベンティ編・日本能率協会訳・1986)」をアーカイブとして掲載するものです。このハンドブックの各章は多くの事例と理論を通して生産性向上に対するアイデアを提供するべく専門家によって執筆されています。基盤をなしているIEの考え方・原則はインダストリアル・エンジニアリングにかかわるすべてのひとに有用でしょう。

関連記事一覧

2019ものづくり公開セミナーガイド

B2Bデジタルマーケティングセミナー

ものづくり人材育成ソリューション

マーケティング分野オンラインセミナー