ユニット 9 / 9

Python による最適化、データ処理、検証、セキュリティ

利益:

  • AI を活用した Python コードを使用して最適化およびデータ処理タスクを自動化する機能
  • AI で生成されたコードを単体チェック、テスト、エッジ ケースで検証する機能
  • 機密の本番データを保護し、責任ある AI 使用原則を強制する機能

インダストリアル エンジニアリングでは、反復計算、データ クリーニング、および最適化モデルが Python で自動化されると、速度と再現性の両方が得られます。 AI は、このコードを記述するための最も強力なアクセラレータです。pandas によるデータ処理、PuLP/SciPy による最適化、matplotlib による視覚化により、数分でコードの下書きが作成されます。しかし、AI コードは本質的に、「機能しているように見える」ことと「正確である」ことの違いを保証するものではありません。このユニットでは、AI を活用したエンジニアリングの自動化、コードを検証する規律、および機密の本番データを保護する原則を組み合わせます。この単元は、前のすべての単元に対する「自信を持って適用する」レイヤーです。

なぜコードを書くのか?再現性と監査可能性

Excel で手動で計算すると、6 か月後には「その数字はどこから来たのか?」ということになります。質問に答えることができません。一方、コードでは、入力、ステップ、出力が明確かつ再現可能に保たれます。コードで工学計算を行うことの 3 つの利点: (1) 同じ入力で常に同じ結果が得られる、(2) 各ステップが表示され確認可能になる、(3) 入力が変更されたときに結果が自動的に更新される。

# EOQ 計算を検証可能な関数に変える import mathdef eoq(annual_demand, order_cost,holding_cost): """経済的な注文数量。単位は一貫している必要があります:annual_demand [items/year]、order_cost [TL/order]、holding_cost [TL/個/年]。""" if Annual_demand <= 0 orholding_cost <= 0: raise ValueError("需要と保有コストは正でなければなりません") return math.sqrt((2 * Annual_demand * order_cost) /holding_cost)# 既知の結果によるテスト (検証):# D=3600, S=120, H=8 -> ~328,6assert abs(eoq(3600, 120, 8) - 328.63) < 0.1print(round(eoq(3600, 120, 8), 1)) #328.6

ここのアサート行は重要です。既知の結果に対してテストします。 AI が作成するすべての計算関数に少なくとも 1 つの「既知の結果テスト」を追加することで、コードが実際に正しく計算されることを証明します。

AI を使用してコードを生成する正しい方法

AI にコードを記述する際の不確実性が少なければ少ないほど、出力の信頼性は高くなります。

役割: あなたは、Python とインダストリアル エンジニアリング データ分析の専門家です。タスク: CSV 内の毎日の生産データ (日付、生産、障害、ダウンタイム分) を処理し、毎日の廃棄率とおおよその OEE コンポーネントを計算する関数を作成します。要件: - パンダを使用し、列名を検証します (欠落している場合は理解できるエラーを表示します)。 - 廃棄率 = 不良 / 生成;ゼロ除算から保護します。- 既知の結果を含むテスト (アサート) を関数に追加します。- 単位と仮定を docstring に書き込みます。ルール: ネットワーク/ファイル システムに書き込む隠しプロセスを追加しないでください。ただ計算をしてください。不明な点にはコメントを付けてください。

弱いプロンプト / 強いプロンプト

弱いプロンプト:

生産効率を計算するコードを作成します。

「収量」は未定義で、データ スキーマもテストもありません。たとえ出力が機能したとしても、何を計算するのかは不明です。

強力なプロンプト:

次の図の CSV の OEE を計算します: 列 [計画時間、実行時間、理想サイクル、生産、品質]。可用性 = 作業/計画、パフォーマンス = (理想サイクル × 生産)/実行、品質 = 品質/生産。 OEE はこれら 3 つの製品です。各コンポーネントを個別に返し、ゼロによる除算を処理し、既知の値を使用したアサート テストを追加します。

2 番目のプロンプトでは、それぞれの式と図が明確に示されています。 AIが「歩留まり」を誤って解釈する可能性を排除し、テストによる検証を義務付ける。

コード検証チェックリスト

本番環境の意思決定で AI コードを使用する前に、次の手順を実行してください。

ステップ

何を確認するか

単位・サイズ

入出力単位は一致していますか?

既知の結果テスト

手で計算した例が正しく示されていますか?

エッジケース

ゼロ、負、空のデータ、単一行は何をするのでしょうか?

算術クロスチェック

結果は小さなサンプルでも明らかですか?

目に見えない副作用

コードはデータを削除/送信しますか?

注意: AI は、「機能するが間違っている」コードを生成することがあります。たとえば、無駄率を間違って/合計ではなく間違って/生成したり、パーセンテージとレートを混同したりするなどです。コードがエラーなく動作するからといって、それが正しいとは限りません。必ず既知の結果を使用してテストしてください。

セキュリティとデータプライバシー

生産データは、生産能力、コスト、顧客の要求、サプライヤーの価格などの企業秘密です。これらを衝動的に AI サービスに組み込むと、重大なリスクが生じます。

  • データの匿名化: 実際の顧客/サプライヤー名の代わりにコードを使用します。精度コストをサンプル値に置き換えます。
  • 企業ポリシーに従ってください: 会社が承認した AI ツールとデータ分類ルールを使用します。
  • コードをリクエストし、データをローカルで実行する: AI にコードを作成させますが、実際のデータを使用して独自の環境でコードを実行します。これにより、機密データが外部に流出することはなくなります。
  • 出力を確認します。AI コードが予期しない場所 (ネットワーク呼び出し、外部 API) にデータを送信していないかどうかを確認します。
ヒント: 「AI にコードを記述させ、データをローカルで処理させる」という原則により、プライバシーが保護され、AI による偽の数値の生成が防止されます。実際のソルバー/ライブラリが計算を行い、AI はスケルトンを構築するだけです。

ミニケース: 機能するがコードが間違っている

工場では、産業エンジニアの Mert が AI に月次 OEE レポートを作成するスクリプトを作成させます。コードはスムーズに実行され、92% という優れた OEE が得られます。しかし、Merc が既知の日 (OEE が 78% であるはずの手作業で計算した日) に対してテストすると、コードは 92% を返します。調査の結果、AI がパフォーマンス コンポーネントを誤って設定していることがわかりました (理想的なサイクルではなく平均的なサイクルを使用)。修正すると、値は現実と一致します。コードはエラーがなくても間違った結果を生成していました。教訓: 既知の結果を伴うテストがなければ、不正確な OEE は何か月も経営上の決定を下すことになっていたでしょう。

よくある間違い

  • 「動作している = 正しい」と考える: エラーを出さないコードを正しいものとして受け入れます。既知の結果でテストしていない。
  • エッジケースのスキップ: ゼロ除算、空のデータ、負の入力などの状況を試行せずに公開します。
  • 機密データの貼り付け:実際のコスト/顧客データを匿名化せずに AI に送信します。
  • AI をソルバーと間違える: AI が「結果はこうです」と言う最適化出力を実際のソルバー出力として使用します。
  • 監査可能性の喪失: 前提条件や単位を文書化せずにコードを共有する。

要約すると

  • このコードにより、エンジニアリング アカウントに再現性と監査可能性が追加されます。 AI はこのコードを高速化します。
  • 各 AI 計算関数に結果がわかっているアサートを追加することで、正しさを証明します。
  • ユニット、エッジケース、および算術クロスチェックリストを通過させずに、本番環境の意思決定でコードを使用しないでください。
  • 「動作するコード」とは、正しいコードを意味するものではありません。問題なく動作し、正しく計算されない可能性があります。
  • 機密の生産データを匿名化し、企業ポリシーに準拠します。コードを AI に出力しますが、データはローカルで処理します。

アプリケーションタスク

エンジニアリング計算 (EOQ、安全在庫、OEE、または標準時間) を選択します。この計算を行う AI に Python 関数を記述します。 docstring 内の単位と、アサート テストによる既知の結果を強制します。重要な検証: 少なくとも 3 つのエッジ ケース (ゼロ、負、null) で関数を試し、手動で計算した例と比較します。コードがエラーなしで実行された場合でも、結果が正しいことを既知の値を使用して証明します。次に、「データ プライバシー」の観点からコードを調べます。データを送信するプロセスがあるかどうかを調べます。最後に、この単元の検証チェックリストを独自のワークフローに適合させて、チェックリストを作成します。

モジュール試験

1. リーン製造では、AI を使用してバリュー ストリーム マップ (VSM) を作成しました。提案を実行する前の最善のステップは何ですか?

  • A) 現場 (現場) の観察と実際のサイクル/滞留時間で AI ブループリントを検証する ✔
  • B) AI が最新モデルであるため、地図をボードに直接貼り付ける
  • C) 地図の色とボックスの形状を修正するだけ
  • D) 廃棄物の種類の順序を変更して公開する

説明: AI は、提供された情報に基づいて妥当な VSM スケッチを生成しますが、実際のプロセス時間と無駄を観察することはできません。リーンの基本原則は「現場」です。バリュー ストリームは現場での観察と測定によって検証されるべきですが、その後、改善の意思決定の基礎として使用される必要があります。

2. 需要予測モデルの精度を評価するための一連の指標は、この目的に直接対応しますか?

  • A) Cp と Cpk
  • B) MAPE、MAE、RMSE ✔
  • C) OEE と MTBF
  • D) タクトタイムとWIP

説明: MAPE (平均絶対パーセント誤差)、MAE、および RMSE は、予測誤差を測定するメトリックです。予測と実際の需要を比較することで、モデルの精度を評価できます。 Cp/Cpk はプロセス能力、OEE は設備効率の指標です。

3. リオーダーポイント (ROP) の計算では、AI が値を提供します。結果を安全に使用するには、まず何をすべきでしょうか?

  • A) 結果を切り上げてERPに直接入力します。
  • B) AI に「本当にそうですか?」と尋ねます。そして「はい」という答えに満足してください
  • C) 使用した式、入力値、単位を印刷し、手動またはコードを使用して計算を再現します ✔
  • D) 安全在庫を完全にリセットする

説明: これは、ROP = 平均需要 × リードタイム + 安全在庫という公式で機能します。 AI が使用する計算式と入力 (需要率、リードタイム、安全在庫) を明示的に出力し、手動またはコードで再計算することで、AI が与える結果を検証する必要があります。そうしないと、単位エラーや算術エラーに気付かなくなります。

4. 最短処理時間 (SPT) ルールは通常、ジョブのスケジューリングにおいて何を改善しますか?

  • A) セットアップ時間のみをリセットします。
  • B) マシンの数を物理的に増やす
  • C) エネルギー消費量を確実に半分に削減
  • D) 平均フロー時間と平均レイテンシが短縮される傾向があります ✔

説明: SPT (最短処理時間) ルールは、短いジョブを前倒しすることで、平均フロー時間と平均待ち時間を短縮する傾向があります。しかし、彼は長い仕事を常に延期することがあります。納期が重要な場合は、EDD などのルールがより適切です。ルールの選択は目的に応じて正当化される必要があります。

5. SPC で Cpk 値が Cp よりも大幅に低い場合は何を意味しますか?

  • A) プロセス平均が公差中心からずれています (センタリングの問題) ✔
  • B) プロセスの分散はゼロです
  • C) サンプル数が多いことを示す
  • D) 管理図が不要であることを証明する

説明: Cp は、公差幅に対するプロセスの広がりの比率を考慮した熟練度指数であり、Cpk は、公差中心に対する平均のシフトも考慮した十分性指数です。 Cpk が Cp より低い場合、プロセスが中心から外れている (平均がターゲットから離れている) ことを示します。スプレッドは同じでもセンタリングに問題があります。

6. 時間学習の標準時間を計算する際には、AI が提供する計算式を使用します。標準時刻を正しく取得できるのは次のうちどれですか?

  • A) 標準時間 = 観測時間、マージン、テンポは考慮されていません。
  • B)標準時=通常時×(1+シェア率)。通常時間 = 観察時間 × ペース ✔
  • C) 標準時間 = 観測時間 ÷ マシン数
  • D) 標準時間は常に最も速いオペレーターの時間です

解説:標準時=通常時×(1+シェア率)で計算します。通常タイムは観測時間×テンポ(レーティング)で求められます。共有(休憩、個人、遅延)を追加することは必須です。 AIは計算式を与えることができますが、テンポとシェアの値は実際の観察と会社の方針によって検証する必要があります。

7. AIは、配車ルート(VRP)の問題に対して「最良の」解決策を提供したと述べた。最も正確な評価はどれですか?

  • A) AI が「最適」と判断したため、ドライバーにルートを直接送信します。
  • B) 容量、時間枠、コストの制約に対してソリューションを検証する ✔
  • C) 停車駅の数を減らして公開するだけ
  • D) マップを視覚化し、制約を無視する

説明: AI は、制約 (車両定員、時間枠、運転時間) を誤ってモデル化したり、次善のソリューションを「最適」として提示したりする可能性があります。解決;容量、時間枠、総距離/コストの制約に照らしてチェックし、可能であれば再現してソルバーと比較する必要があります。

8. OEE (総合設備効率) は、どの 3 つの要素から構成されるのですか?

  • A) 需要、在庫、コスト
  • B) Cp、Cpk、シグマ
  • C) 使いやすさ、性能、品質 ✔
  • D) タクト、サイクル、納期

説明: OEE = 可用性 × パフォーマンス × 品質。可用性はダウンタイムを反映し、パフォーマンスは速度損失を反映し、品質は欠陥のある製品を反映します。 AI が OEE 値を与える場合、これら 3 つのコンポーネントが個別に計算され乗算されるようにする必要があります。

9. 離散イベント シミュレーションの出力を解釈する際に最も重要な検証ステップは何ですか?

  • A) 実際のデータを使用して入力分布と仮定を検証する ✔
  • B) 作業時間を短縮し、単一条件で判断する
  • C) グラフィックスのカラーパレットの改善
  • D) ランダムシードを非表示にして結果を再現不可能にする

説明: シミュレーションの出力は、入力の仮定と同程度の精度しかありません。分布、到着間隔、サービス時間、シナリオパラメータを実際のデータと比較し検証する必要があります。さらに、モデルが正しく確立されているかどうかを確認する必要があります (検証)。それ以外の場合は、「ゴミが入ったらゴミが出ます」。

10. AI が生成した Python 最適化スクリプトを運用上の意思決定で使用する前に必須なのはどれですか?

  • A) コードはエラーなしで動作するため、結果を直接適用します。
  • B) 既知の結果を使用したテスト、ユニットチェックとエッジケースによる検証、およびデータの機密性の保護 ✔
  • C) 変数名を短くし、コメントを削除する
  • D) すべての運用データを含むスクリプトを公共サービスにアップロードする

説明: AI コードには、誤った単位変換、誤った制約、またはエッジ ケースでの誤った結果が含まれる可能性があります。コード;結果がわかっている小規模なテスト入力は、単位/サイズの制御とエッジ ケースによって検証する必要があり、機密の本番データを許可なく外部サービスに送信しないでください。結果は工学的判断によって確認されます。