作為 Tera計算 系列擴充模組的 EIQAI,是一套從根本革新物流中心傳統分析手法 EIQ分析(E=出貨地點、I=品項、Q=數量)的系統。
本軟體於系統內部嵌入了 Microsoft.ML(ML.NET)的進階已訓練模型,開發為不僅限於靜態統計過往數據、更可對未來物流量波動執行高精度 AI預測 的 Windows 表單應用程式。
本系統最大的目的在於從極少的輸入資訊實現廣泛的物流模擬,並生成詳細的 EIQ矩陣。
使用者僅需指定「出貨地點數」與「品項數」這區區 2 個輸入參數,系統即可於內部一括對 EIQ 分析所需的 162 項變數進行 AI預測。
具體而言,從散裝數量與行數等基本指標,到出貨地點等級(E1-E5)與品項等級(I1-I5),乃至行數、散裝數、箱數、棧板數、容積、重量之各 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 列數據列格式。| 出貨日 | 等級 | 出貨地點數 | 出貨次數 | 散裝數 | 箱數換算 | 棧板換算 | 容積換算 | 重量換算 |
|---|---|---|---|---|---|---|---|---|
| 全數據平均 | GPLE_A1 | E1 | Σ行數01-05 | Σ散裝數01-05 | Σ箱數01-05 | Σ棧板01-05 | Σ容積01-05 | Σ重量01-05 |
| 全數據平均 | GPLE_A2 | E2 | Σ行數06-10 | Σ散裝數06-10 | Σ箱數06-10 | Σ棧板06-10 | Σ容積06-10 | Σ重量06-10 |
| 全數據平均 | GPLE_B | E3 | Σ行數11-15 | Σ散裝數11-15 | Σ箱數11-15 | Σ棧板11-15 | Σ容積11-15 | Σ重量11-15 |
| 全數據平均 | GPLE_C | E4 | Σ行數16-20 | Σ散裝數16-20 | Σ箱數16-20 | Σ棧板16-20 | Σ容積16-20 | Σ重量16-20 |
| 全數據平均 | GPLE_D | E5 | Σ行數21-25 | Σ散裝數21-25 | Σ箱數21-25 | Σ棧板21-25 | Σ容積21-25 | Σ重量21-25 |
| 計 | ΣE | Σ全 | Σ全 | Σ全 | Σ全 | Σ全 | Σ全 |
將經 AI預測 的數據從傳統按品項等級(I)觀點重新跨項目集計的程序:
AI預測傳統計算品項Dgv 設定 9 列數據列。| 出貨日 | 等級 | 品項數 | 出貨次數 | 散裝數 | 箱數換算 | 棧板換算 | 容積換算 | 重量換算 |
|---|---|---|---|---|---|---|---|---|
| 全數據平均 | GPLI_A1 | I1 | Σ行數 col1 | Σ散裝數 col1 | Σ箱數 col1 | Σ棧板 col1 | Σ容積 col1 | Σ重量 col1 |
| 全數據平均 | GPLI_A2 | I2 | Σ行數 col2 | Σ散裝數 col2 | Σ箱數 col2 | Σ棧板 col2 | Σ容積 col2 | Σ重量 col2 |
| 全數據平均 | GPLI_B | I3 | Σ行數 col3 | Σ散裝數 col3 | Σ箱數 col3 | Σ棧板 col3 | Σ容積 col3 | Σ重量 col3 |
| 全數據平均 | GPLI_C | I4 | Σ行數 col4 | Σ散裝數 col4 | Σ箱數 col4 | Σ棧板 col4 | Σ容積 col4 | Σ重量 col4 |
| 全數據平均 | GPLI_D | I5 | Σ行數 col5 | Σ散裝數 col5 | Σ箱數 col5 | Σ棧板 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) |