![見出し画像](https://assets.st-note.com/production/uploads/images/173615712/rectangle_large_type_2_7d698a3d180badd2f764d35040d7c96a.png?width=1200)
Photo by
clean_roses987
①ロジスティクスエンジニアリング Mathematicaでダイナミックグラフ描画
生成AIによるコーディング、トロピカル演算、Max-Plus演算と来たのでそろそろGNNの入口であるダイナミックグラフを描画させてみよう。問題は描画そのものだった。
どうやって描こう?(自分の手で描く選択肢は1mmも無い)
最近、ダイナミックグラフを生成AIに作ってもらっているが、どうもマーメイドでは形が崩れたりして不満な事が多い。
自分の過去記事で閃いた。
Mathematicaか… 早速テスト
ダイナミックグラフを綺麗に書いてくれるツールを探しています。
マーメイドでは思った通りの形にならないケースがあるので
Mathematicaを試したいです。
A_1→B_1で、→にt=1
A_2→B_2で、→にt=2 …
と続けてt=5まで並べてという
情報が埋め込まれているダイナミックグラフを描いてください。
全然分からないでしょ(笑) でも生成AIには伝わってる。
(* 複数のグラフを生成する関数 *)
makeGraph[i_] := Graph[{
Subscript["A", i] -> Subscript["B", i]
},
EdgeLabels -> {(Subscript["A", i] -> Subscript["B", i]) -> StringJoin["t=", ToString[i]]},
VertexLabels -> "Name",
VertexSize -> Large,
VertexStyle -> White,
EdgeStyle -> Directive[Black, Thick],
EdgeLabelStyle -> Directive[Red, 12],
GraphLayout -> "LayeredDrawing"
]
(* 5つのグラフを生成して横に並べる *)
Grid[{
Table[makeGraph[i], {i, 1, 5}]
},
Spacings -> {2, 1}
]
ビンゴ!これですよ。
AやBの間で破線を付けたっかたらそう言えばいいだろう。
Mathematicaの良いところは、データを増やしていくと勝手に位置を綺麗に置き換えてくれるところだ。Python系ツールでは自分で座標を指定しないとならない。
![](https://assets.st-note.com/img/1738978562-VxdQrU0q5aj1ECHIiOeGJRLZ.png?width=1200)
これなんて、座標は指定していない。
懐かしいな、これを描いた当時は生成AIがまだそこまで頭が良くなかったから自分で考えながらコードを書いたもんだ。
(見た目は同じかもしれないけど、これはダイナミックグラフではない)
![](https://assets.st-note.com/img/1738979054-EOWbAZo9e7GgF5IUujP0R21k.png)