課題解決 事例紹介

ExcelVBA+シミュレーション(活用事例4選)

課題 最適解が1つではなく、変更も多いので、コンピュータ処理が難しい。
対処法 シミュレーションシステムで一定の解を出した上で、人が介入できるようにすることで、柔軟に一定水準以上の結果を出せる。
事例 人員配置シミュレーション(工場・旅館)/荷物積込シミュレーション(運送)/座席指定シミュレーション(招待客指定席)/機械配置シミュレーション(工場)

全自動にできない業務の解決方法

解が1つとは限らないケース

コンピュータを使った課題解決方法というと、「ボタンを押したら結果が出る」的なイメージが持たれているようです。

しかし、世の中には答えが1つとは限らないものも少なくありません。身近なところでは、シフト勤務表の作成業務などが、これに当たります。

単に、「曜日毎に勤務できるスタッフの一覧」情報を基に自動的なシフト勤務表を作るだけであれば、「ボタンを押したら勤務表が出る」でよいのですが、実際には、

  • 期の途中で急な変更が生じる
  • 一定の資格を持つ人との組合わせが必要
  • できるだけ、全スタッフの割当てを均一にする(もしくは、社員を優先にする等の別ルール)
  • 過去に遡って、特定スタッフに負荷が集中しないようにする必要

といった諸事情の考慮が必要になるため、どうしても人が一定の介入をする必要があります。

 

最適解ではなく、現実解を求める

こうしたケースでは、諸事情(制約条件)の範囲で何ができるかを実際にやってみて(Simulation)、その結果に対して人が一定の判断・操作を通じて調整することで、複数ある解の中から、より現実的な解を求めることができます。

先のシフト勤務のケースでは、”制約条件”として

  • 主任が1人、資格Aと資格Bを持つ人がそれぞれ2人以上必要
  • ライン間の人員交換は可能だが、工場間は不可
  • 夜勤は連続してはいけない
  • 連続勤務日数は最大6日とする

といった条件の下に計算をさせることは可能ですが、期の途中で再計算するときは過去分も考慮して夜勤や連続勤務数を計算しなければなりませんし、実際にはどうしても資格Aを持つ人が足りない場合は、「夜勤連続」のルールを外して割り当てる、といった柔軟な対応が求められます。

このようなケースでは、Simulation(シミュレーション)技法が、役立ちます。

 

用語解説:シミュレーションとは

SimCityに見る、シミュレーションの身近な例

かつて、SimCity(シム・シティ)というゲームが一斉を風靡したことがありますが、これは自分が市長となって街を発展させるという方針に基づき、宅地開発や交通網の整備などを行い、時系列とともに人口が増えていくのを見て喜ぶ・・・といった趣向のものでした。街(City)をシミュレーション(Simulation)するから、SimCityなんですね。

このように、シミュレーション技法は、多くの場合未来予測をコンピュータ上で「実際にやってみる」シーンで多く使われます。当然、やってみないと分からないからやってみるのであって、最適解が1つあるわけではない前提です。SimCityでも、せっかく作った街が、台風やゴジラの被害で破壊されるといったアクシデントが一定割合で生じるため、計画通りにはいきません。

シミュレーションの意味

シミュレーションは、日本語では「模擬実験」などと訳され、計算ではなくやってみるのが特徴です。これまでも、「自動車の衝突時の影響を、実際に衝突させて計測する」「建物が地震の際にどのように揺れるか、実物を揺らして確認する」「チェーン店の特定店舗のみ、価格を変えて影響を調査する」といった事が行われており、これをコンピュータ上で行うのが、コンピュータ・シミュレーションです。詳細な解説は、こちらをどうぞ。

先に挙げたシフト勤務も、計画通りに行かない点では同じなので、シミュレーション技法が活用できます。

以下に、実際に手がけた活用例をご紹介します。

 

事例1:人員配置シミュレーション(工場・旅館)

工場や旅館など、24時間×365日稼働する施設において、限られた人員をどのように割り当てるかは、重要な課題です。コンビニやファミレス以上に、特定の資格の人が必要であったり、夜勤を最大何日にするかなど、制約条件が多いのも特徴です。

こうしたケースでは、まず制約条件を具体的に棚卸しし、この条件に抵触しない範囲で乱数による割当てを何通りか行います。

更に望ましい条件になるよう、「より適した解」を求めて調整を行い、結果を表示します。

シフト勤務表はだいたい月末に翌月分を作る運用となりますが、1~2週間も使っていれば、有給の申請もあれば突然病欠するケースもあり、調整が必要になってきます。そんな時は、直接欠勤者分の箇所を空欄にした上で再計算すれば、指定日以降のみを同様に制約条件を回避しながら、解を求めます。

まれに条件内では計算できない事がありますが、そんな時は、手作業で割当てを行います(例:夜間連続勤務の条件をはずして、爾後振り返る運用)。

このように、制約条件がうまく整理できれば、これを回避できる解を出すことが可能です。

 

事例2:荷物積込シミュレーション(運送)

一定の広さの倉庫などの中に、様々なサイズの荷物(貨物)を格納するにあたって、できるだけ多く格納したいニーズがあります。例えば、月あたりの賃料が固定なのに対して、できるだけ多くの荷物を格納できれば、荷物1つ当たりの保管料は抑えられます。1つのエリアにより多くを積み込めれば、物流コストを削減できます。

従来こうした割り付けは、長年勤めた担当者の「勘と経験」が主流でしたが、当事者が定年で辞めた後は、後任者がExcelで見よう見まねで手作業の割り付け作業を行うケースが多い様です。

シミュレーションでは、縦横奥行きなどのサイズをもとに、各エリアに収納できる最大値を制約条件として設定しておき、これを超えない範囲で個別の荷物の収納を計算します。その際、何段以上重ねてはいけないという縛りがあれば、それも制約条件に加えます。

その後、乱数を使って一定の割り付けを行った後、何度かこれをやり直し、前後比較しながら「より最適な割当ての組合わせ」があれば、置き換えて行きます。

待つこと数分で、機械的な割り付けだったものが、シミュレータの試行錯誤を反映した「より最適な解」になっています。

このように、毎回サイズが異なる荷物が対象でも、個別に計算しながら徐々に最適解に近づけることが可能です。また、「この程度なら、無理に押し込める」といった担当者の経験を反映させることも可能です。

 

事例3:座席指定シミュレーション(招待客指定席)

消費財を扱う企業や、代理店を通じた物販を行う企業では、顧客を対象にイベントを開催して招待するケースがよくあります。

以下の例では、代理店をコンサートに招待した場合の席の割り付けを自動で行っています。

背景としては、代理店同士は本来競合関係にあるため、近隣の席に座らせたくないというニーズがある一方、グループで申し込んできた場合は隣通しに座らせたいという制約条件があります。

招待客は、部署毎に管理されているので、同一部署内の招待客は隣同士にしないようにしています。

細かい動きは端折りますが、予め招待客(当選者)リストを作っておき、後でどの部署が招待したか分かるよう、色を付けておきます。

以下が実際にシミュレーションで割り付けた結果ですが、部署=色が適当に分散しているのが分かります。これも、細かい条件を変えながら何度でもやり直しが効くので、より適切と思えるものを採用することができます。

更に、実際に招待された人が、自分がどの席に座ればよいか分かるよう、別途一覧表を作っています(細部は省略しましたが、座席番号と招待客のNoが連動されています)。

この手のシミュレーションの場合、会場が毎回同じとは限らないため、変更時に容易に短時間で対応できる必要があります。上記のシミュレーションシステムでは、Excelで会場のテンプレート(ひな形)を作っておき、すげ替えることで、どんな会場でも数日で新規登録ができるようになっています。Excel以外で同様のことをやろうとすると、会場の定義で手間取るので、まさにExcelならではの柔軟性、ということになります。

 

事例4:機械配置シミュレーション(工場)

工場の目的は、投入した原材料を基に、効率よく目的物を生産することです。途中でどのような加工をするかは、1つの方法に縛られません。このため、途中で設備を入れ替えても、同じ製品を作ることができます。

機械を製造する側からすると、顧客である工場で作っている目的物に対して、自社の複数の製品が対象候補となり得ます。例えば、大型の設備で大量に安く作る組合わせもあれば、中型機を組み合わせて複数の製品ラインを同時に作れるようにする組合わせもあります。

いずれも、一定の性質をもった製品を、一定量製造する制約条件があります。

その上で、実際の加工機械の並び順と加工内容を数値化し、選択可能な件数分算出します。

これを、人が見てわかりやすい形式に纏めると、このようになります。

最終的には、実際の機器類の型番や性能を明記した上で、図示します(ここまで、自動です)。

この例では、従来ベテラン社員が1件2週間かけて作成していた配置図が、新人でもほぼ自動で30分程度で作れるようになりました。

 

その他の応用

これまでにご紹介した以外にも、「指定された場所の近くにいるどのトラックをアサインすれば、効率よく目的地まで指定された荷物を運べるか」「経営計画の各数値をどのように設定したら、10年後に目標利益/売上を達成できるか」「将来の金利動向により、今回の投資がどのような結果になるか」・・・と言ったテーマが、シミュレーション技法が適したものとなります(いずれも、過去に経験したものです)。

当社がお手伝いできること

シミュレーション技法は、自社ならではの制約条件の下で、一定水準以上の解を柔軟に求めるのに適しています。「自社ならでは」が特徴のため、残念ながら汎用的なクラウドサービスやパッケージものを使う事は困難です。

スクラッチ開発(0から作り上げる)の場合、通常ですと数百万~数千万円のコストがかかりがちですが、当社は長年Excelを使ってお手軽にシミュレーション機能を実現して来ました。

自社で抱えている課題の解決にシミュレーションが適しているのか、そもそも実現できるのか、といったところから、匿名でのご相談を受付けていますので、よろしければご利用下さい。