Tera計算シリーズの拡張モジュールである EIQAI は、物流センターにおける伝統的な分析手法である EIQ分析(E=出荷先、I=アイテム、Q=数量)を根本から革新するシステムです。
本ソフトウェアは、Microsoft.ML(ML.NET)の高度な学習済みモデルをシステム内部に組み込んでおり、過去のデータを静的に集計するにとどまらず、将来の物量変動に対する高精度な AI予測 を実行するWindows フォームアプリケーションとして開発されました。
このシステムの最大の目的は、極めて少ない入力情報から広範な物流シミュレーションを実現し、詳細な EIQマトリクス を生成することです。
ユーザーは「出荷先数」と「アイテム数」という、たった 2 つの入力パラメータを指定するだけで、システムが内部で EIQ分析に必要な 162 項目もの変数を一括で AI予測 します。
具体的には、バラ数量や行数といった基本指標から、出荷先ランク(E1-E5)やアイテムランク(I1-I5)、さらには行数・バラ数・ケース・PL・容積・重量の各
25 ランク別数値までを瞬時に算出します。
そして、これらの膨大な予測結果を直感的に理解できるよう、EIQマトリクス表や従来計算表として画面上に可視化し、物流拠点の設計やキャパシティ計画を強力に支援します。
本システムは、高いパフォーマンスとセキュアなローカル環境での動作を実現するため、以下の技術構成を採用しています。
| フレームワーク | .NET Framework 4.8 / Windows Forms (VB.NET) |
| AI/ML ライブラリ | Microsoft.ML (ML.NET 6.0 Preview) |
| データベース | Microsoft Access (.accdb) ─ 起動時に自動最適化 (JRO.JetEngine) |
| モデル形式 | 学習済み ITransformer (.zip) ─ 162 個の AI予測 モデルを一括読込 |
| データ保存先 | Tera計算Data\EIQ分析AI化 フォルダ(ドライブ A〜F を自動検出) |
| Excel 出力 | EPPlusFree ライブラリ対応 |
予測結果_yyyyMMdd_HHmmss.csv) として外部に出力し、二次利用を可能にします。| 開発会社 | 物流技術研究所 |
| 著作権 | 寺本敏幸 |
Tera計算 EIQAI において、ユーザーがアプリケーションを起動してから EIQマトリクス が描画され、誤差検証が行われるまでの全体的な処理の繋がり(フロー)は以下の通りです。
アプリケーションが起動する際の初期化プロセスです。
ファイル確認() を呼び出し、データの保存先ドライブを走査します。MLContext(seed:=0) を初期化し、AI予測 の準備を整えます。出力フィールド名リスト初期化() を実行し、以下のフィールドを定義します:
学習済モデル読込() を通じて、フォルダ内の全 .zip ファイルを ITransformer 形式としてメモリ上に展開します。AI予測EIQマトリクス表Dgv初期化() を呼び出し、7 列 × 5 行の EIQマトリクス 表のヘッダー枠組みを設定します。ユーザーの入力情報をトリガーとして、実際に AI予測 を走らせるコアプロセスです。
InputData(出荷先数, アイテム数)オブジェクトを作成します。CreatePredictionEngine を経て Predict メソッドを一斉に実行します。Dictionary(Of String, Single) 形式のデータ構造に格納します。予測結果表示() を呼び出して DataTable に変換し、予測結果を示す DataGridView(Dgv)にバインドして画面表示します。算出された予測データを、視覚的な EIQマトリクス へと再構築するプロセスです。
| GPLEランク | GPLI_A1 | GPLI_A2 | GPLI_B | GPLI_C | GPLI_D | 横計 |
|---|---|---|---|---|---|---|
| GPLE_A1 | XX01 | XX02 | XX03 | XX04 | XX05 | Σ行 |
| GPLE_A2 | XX06 | XX07 | XX08 | XX09 | XX10 | Σ行 |
| GPLE_B | XX11 | XX12 | XX13 | XX14 | XX15 | Σ行 |
| GPLE_C | XX16 | XX17 | XX18 | XX19 | XX20 | Σ行 |
| GPLE_D | XX21 | XX22 | XX23 | XX24 | XX25 | Σ行 |
| 縦計 | Σ列 | Σ列 | Σ列 | Σ列 | Σ列 | 総計 |
AI予測 されたデータを、従来の出荷先ランク別(E)の視点で横断的に集計し直すプロセスです。
AI予測従来計算出荷先Dgv に対して 9 列のデータ列をフォーマット設定します。| 出荷日 | ランク | 出荷先数 | 出荷回数 | バラ数 | ケース換算 | PL換算 | 容積換算 | 重量換算 |
|---|---|---|---|---|---|---|---|---|
| 全データ平均 | GPLE_A1 | E1 | Σ行数01-05 | Σバラ数01-05 | Σケース01-05 | ΣPL01-05 | Σ容積01-05 | Σ重量01-05 |
| 全データ平均 | GPLE_A2 | E2 | Σ行数06-10 | Σバラ数06-10 | Σケース06-10 | ΣPL06-10 | Σ容積06-10 | Σ重量06-10 |
| 全データ平均 | GPLE_B | E3 | Σ行数11-15 | Σバラ数11-15 | Σケース11-15 | ΣPL11-15 | Σ容積11-15 | Σ重量11-15 |
| 全データ平均 | GPLE_C | E4 | Σ行数16-20 | Σバラ数16-20 | Σケース16-20 | ΣPL16-20 | Σ容積16-20 | Σ重量16-20 |
| 全データ平均 | GPLE_D | E5 | Σ行数21-25 | Σバラ数21-25 | Σケース21-25 | ΣPL21-25 | Σ容積21-25 | Σ重量21-25 |
| 計 | ΣE | Σ全 | Σ全 | Σ全 | Σ全 | Σ全 | Σ全 |
AI予測 されたデータを、従来のアイテムランク別(I)の視点で横断的に集計し直すプロセスです。
AI予測従来計算アイテムDgv に対して 9 列のデータ列を設定します。| 出荷日 | ランク | アイテム数 | 出荷回数 | バラ数 | ケース換算 | PL換算 | 容積換算 | 重量換算 |
|---|---|---|---|---|---|---|---|---|
| 全データ平均 | GPLI_A1 | I1 | Σ行数 col1 | Σバラ数 col1 | Σケース col1 | ΣPL col1 | Σ容積 col1 | Σ重量 col1 |
| 全データ平均 | GPLI_A2 | I2 | Σ行数 col2 | Σバラ数 col2 | Σケース col2 | ΣPL col2 | Σ容積 col2 | Σ重量 col2 |
| 全データ平均 | GPLI_B | I3 | Σ行数 col3 | Σバラ数 col3 | Σケース col3 | ΣPL col3 | Σ容積 col3 | Σ重量 col3 |
| 全データ平均 | GPLI_C | I4 | Σ行数 col4 | Σバラ数 col4 | Σケース col4 | ΣPL col4 | Σ容積 col4 | Σ重量 col4 |
| 全データ平均 | GPLI_D | I5 | Σ行数 col5 | Σバラ数 col5 | Σケース col5 | ΣPL col5 | Σ容積 col5 | Σ重量 col5 |
| 縦計 | ΣI | Σ全 | Σ全 | Σ全 | Σ全 | Σ全 | Σ全 |
EIQマトリクス の表示内容を動的に切り替える UI 処理です。
matrixActive = True の条件下でのみ動作するよう制御されています。AI予測EIQマトリクス表() を再実行してマトリクス表を更新します。予測されたデータを外部へ連携するための出力処理です。
予測結果_yyyyMMdd_HHmmss.csv のタイムスタンプ形式で自動生成されます。比較開始() メソッドが走り、続いて 誤差表示() が実行されることで、予測値と実績値の差異が評価されます。本システム(Tera計算 EIQAI)内で取り扱われるデータの構造一覧です。
| クラス名 | 用途 | 主なフィールド |
|---|---|---|
| ModelData | 学習データ構造 | モデル連番, 出荷先数, アイテム数, バラ数量, 行数, E1-E5, I1-I5, 行数01-25 等 |
| InputData | 予測入力 | 出荷先数, アイテム数 |
| SinglePrediction | 予測出力 | Score |
画面上に配置されている主要な UI コントロール群とその役割の一覧です。
| コントロール | 説明 |
|---|---|
| 出荷先数Tb | 出荷先数入力テキストボックス |
| アイテム数Tb | アイテム数入力テキストボックス |
| コントロール | 説明 |
|---|---|
| 学習済モデル読込Bt | モデル再読込 |
| 予測実行Bt | AI予測 実行 |
| EIQマトリクス表実行Bt | マトリクス表・従来計算表の生成 |
| 結果エクスポートBt | CSV出力 |
| 比較開始Bt | 予測と実計算比較 |
| 閉じるBt | フォームを閉じる |
| コントロール | プレフィックス |
|---|---|
| 抽出_出庫回数Rb | 行数 |
| 抽出_バラRb | バラ数 |
| 抽出_ケースRb | ケース |
| 抽出_PLRb | PL |
| 抽出_容積Rb | 容積 |
| 抽出_重量Rb | 重量 |
| コントロール | 説明 |
|---|---|
| 予測結果Dgv | 全予測結果一覧(項目名 / 予測値) |
| AI予測EIQマトリクス表Dgv | 5×5 EIQマトリクス 表 + 横計/縦計 |
| AI予測従来計算出荷先Dgv | 従来計算E(出荷先ランク別集計) |
| AI予測従来計算アイテムDgv | 従来計算I(アイテムランク別集計) |
| AI予測EIQマトリクス表_複写Dgv | 実計算との比較のための複写 |
| 実計算Dgv | 実計算の表示 |
| 誤差Dgv | AI予測 と実計算との差異を%表示 |
| コントロール | 対応値 |
|---|---|
| 抽出E_A1Tb 〜 抽出E_DTb | E1 〜 E5 |
| 抽出E_計Tb | E1〜E5 の合計 |
| 抽出I_A1Tb 〜 抽出I_DTb | I1 〜 I5 |
| 抽出I_計Tb | I1〜I5 の合計 |
内部処理を補助するための関数群です。
| 関数 | 説明 |
|---|---|
ToRoundedString(s) | 文字列を数値変換し四捨五入して整数文字列を返す |
ToLongOrZero(s) | 文字列を Long に変換(失敗時は 0) |