Sakana AI のOSS探索アルゴリズム AB-MCTS(TreeQuest) と LLM Fugu を、 機械設計の最適化問題に当てた小実験。設計案の生成はLLM、良し悪しの採点は材料力学ソルバが担当します。
鋼製ブラケットの断面寸法を、制約(壊れない・しなりすぎない)を満たしたまま最も軽く探索した。
点数をLLMに付けさせないのがポイント。Fugu には毎回「どの制約がどれだけ効いているか」だけを返し、次の一手を考えさせる。
algo = tq.ABMCTSA(); search = algo.init_tree()
for _ in range(budget):
search = algo.step(search, {"fugu": generate}) # generate内でFuguを呼び物理採点
best, score = tq.top_k(search, algo, k=1)[0]壁から突き出た腕の先に荷重がかかる片持ち梁ブラケット。断面(矩形中空)の b・h・t を決める。
| 項目 | 値 | 役割 |
|---|---|---|
| 長さ L | 500 mm | 固定 |
| 先端荷重 P | 2000 N | 固定 |
| 材料 | 鋼 (E=205 GPa) | 固定 |
| 許容曲げ応力 | ≤ 150 MPa | 制約①(壊れない) |
| 許容たわみ | ≤ 1.0 mm | 制約②(しなりすぎない) |
| 設計変数 | b, h, t | 外形幅・高さ・肉厚 |
採点ソルバが各案に回している式。単位を [N, mm, MPa] に統一し、換算を式の中で完結させている——だから途中で単位変換が要らない。
| 量 | 基準 60×100×6 | 最適 16×122×1.0 |
|---|---|---|
| 断面積 A | 1776 mm² | 272 mm² |
| 断面二次モーメント I | 2.27×10⁶ mm⁴ | 4.07×10⁵ mm⁴ |
| 曲げ応力 σ(≤150) | 22.0 MPa | 150.0 MPa |
| 先端たわみ δ(≤1.0) | 0.179 mm | 1.000 mm |
| 質量 m | 6.971 kg | 1.069 kg |
ずんぐりした箱(基準)から、薄く背の高い断面へ。実寸比で描画。
基準は制約に対して余裕がありすぎ(材料の無駄)。最適解は両制約をちょうど使い切る。
これは実用設計ツールではない。Sakana の発想を自分の土俵で動かして理解するための最小実験。