②”max-plus代数による鉄道ダイヤ”を利用した”N対N配車問題の解法”など
無料でも、アカウントの過去会話を覚えていてきちんとそっち寄りの話題に合わせてくれるのが嬉しい。私のChatGPTは物流と数学に特化させてるのでね。(生成AIによって使い分けてる)
さて、ペトリネットでイベントグラフというのを作る。
というか、人間はイメージだけすれば、これを描かなくても良い。
丸が事象であったり場所であったり。線はイベントだ。(ANDとかORとか表現できる)
丸の中にはトークンと呼ばれる●が描かれている場合があって(上の図では無いが)、そこが出発点になる。
(ここまでは6年前に勉強したけど、描いても計算が大変だと思って止めた)
これができれば、後は計算である。ここまで確認できた。(嬉しい)
なんと、配車も動的スケジュールも解決出来るらしい。
今までに、GNNで実現できるのは確認してたけど、機械学習ってXAIもあるけど計算結果を説明しないといけないから躊躇してた。
そりゃ、いい。
恐ろしい事に、生成AIがあるとペトリネットは自分で考える図ではなくて、正確にイメージが伝わっているかどうかを確認するための手段でしか無い。
問題はここからだ。自動的に計算ができないとならない。
## 変数定義
### 時間パラメータ
- τₛ: 停車時間(各駅共通と仮定)
- τᵢⱼ: 駅i から駅j への移動時間
- hᵢⱼ: 電車i と電車j の最小追従時間
### 状態変数
x_i^k(n): n回目の運行でのi番目の電車の駅kからの出発時刻
## システム方程式
### 物理的制約(移動時間)
x_1^B(n) = max(x_1^A(n-1) + τₛ + τAB)
x_1^C(n) = max(x_1^B(n) + τₛ + τBC)
x_1^A(n) = max(x_1^C(n) + τₛ + τCA)
### 追従制約
x_2^k(n) = max(x_2^k(n-1) + τₛ + τₖₖ₊₁, x_1^k(n) + h₁₂)
x_3^k(n) = max(x_3^k(n-1) + τₛ + τₖₖ₊₁, x_2^k(n) + h₂₃)
### 行列形式
```
⎡x_1^A(n)⎤ ⎡e ε ε τAB ε ε ε ε ε ⎤ ⎡x_1^A(n-1)⎤
⎢x_1^B(n)⎥ ⎢ε e ε ε τBC ε ε ε ε ⎥ ⎢x_1^B(n-1)⎥
⎢x_1^C(n)⎥ ⎢ε ε e ε ε τCA ε ε ε ⎥ ⎢x_1^C(n-1)⎥
⎢x_2^A(n)⎥ = ⎢h₁₂ ε ε e ε ε τAB ε ε ⎥ ⊗ ⎢x_2^A(n-1)⎥
⎢x_2^B(n)⎥ ⎢ε h₁₂ ε ε e ε ε τBC ε ⎥ ⎢x_2^B(n-1)⎥
⎢x_2^C(n)⎥ ⎢ε ε h₁₂ ε ε e ε ε τCA⎥ ⎢x_2^C(n-1)⎥
⎢x_3^A(n)⎥ ⎢ε ε ε h₂₃ ε ε e ε ε ⎥ ⎢x_3^A(n-1)⎥
⎢x_3^B(n)⎥ ⎢ε ε ε ε h₂₃ ε ε e ε ⎥ ⎢x_3^B(n-1)⎥
⎣x_3^C(n)⎦ ⎣ε ε ε ε ε h₂₃ ε ε e ⎦ ⎣x_3^C(n-1)⎦
```
ここで:
- e はmax-plus代数での0要素
- ε はmax-plus代数での -∞要素
- ⊗ はmax-plus行列積
凄い!
Max Plus演算は実際に計算ができない生成AIがあるので要注意!
(⊗と従来の四則演算でこんがらがるらしい)
Gemini 2.0 Flash Thinkingは出来た。
ChatGpt o3-miniは更に凄かった。現在、最強かも。
因みに今はClaude Sonnet 3.5使用中。数式を作るまでは出来る。
これが出来るという事は… 凄いぞ。
現実的にはN=50くらいらしい。
まとめ
おそらく、以下の様な問題が組合せ最適を使わずに解ける。
いわゆる、物流問題全部だ。実際には全制約を入れるのは無理だろうから簡略化したモデルになるだろうが。
・1箇所を出発してN箇所に発送する配車
(まぁ、これは人でも解けるから)
・N箇所を出発してN箇所に発送する配車
・1箇所出発で複数回数、発地に戻ってくる配車
・発送したい荷物が計画通りに揃ってくれていない場合のリカバリー
(これは特に通過型センターの作業計画に便利である)
これらの問題は過去実績が多量にあれば、GNNでも解ける。
グラフ理論による方法でも不可能ではないんだけど、計算の枝刈りを考えないとすぐにパンクするし、流量条件を追加するのが難しそうだった。これならばいけそうだ。一昔前は理論は分かっても、自分でPythonを書けないので実現するのは不可能だった。生成AIのお陰でロジックの基本と、重要なキーワードを分かっておけばいい。一通り読んだから、こっち戻るか。