SAKANA TREEQUEST × FUGU · 技術検証

AB-MCTS × Fugu で
機械部品を約85%軽量化。

片持ち梁ブラケットの軽量化設計 · 2026-06 · fugu × 12ステップ(全試行 制約クリア)

Sakana AI のOSS探索アルゴリズム AB-MCTS(TreeQuest) と LLM Fugu を、 機械設計の最適化問題に当てた小実験。設計案の生成はLLM、良し悪しの採点は材料力学ソルバが担当します。

01 — Overview

何をして、どうなったか

鋼製ブラケットの断面寸法を、制約(壊れない・しなりすぎない)を満たしたまま最も軽く探索した。

0
軽量化率
基準比
0
最適質量
基準 6.97 kg から
12/12
制約クリア
全試行が応力・たわみ合格
1.00
制約利用率
応力もたわみも限界まで使用
02 — How it works

仕組み:生成はLLM、採点は物理

点数をLLMに付けさせないのがポイント。Fugu には毎回「どの制約がどれだけ効いているか」だけを返し、次の一手を考えさせる。

AB-MCTS = 司令塔 explore / refine を Thompson Sampling で采配 Fugu = 設計エンジニア役 次の断面寸法 b, h, t を提案 材料力学ソルバ = 審判 応力・たわみ・質量を厳密計算して採点 親設計+物理結果 寸法 {b, h, t} スコアを返す(反復)
TreeQuest の使い方はこれだけ
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]
03 — The problem

解いた問題

壁から突き出た腕の先に荷重がかかる片持ち梁ブラケット。断面(矩形中空)の b・h・t を決める。

P = 2000 N L = 500 mm
項目値役割
長さ L500 mm固定
先端荷重 P2000 N固定
材料鋼 (E=205 GPa)固定
許容曲げ応力≤ 150 MPa制約①(壊れない)
許容たわみ≤ 1.0 mm制約②(しなりすぎない)
設計変数b, h, t外形幅・高さ・肉厚
たわみは 1/I(I は h³ で効く)に比例するので「背を高く・肉を薄く」が軽くなる。 だが高くすると応力の腕も伸びる——応力とたわみのトレードオフを見極める必要がある、地味に悩ましい問題。
04 — The math

計算の中身(材料力学)

採点ソルバが各案に回している式。単位を [N, mm, MPa] に統一し、換算を式の中で完結させている——だから途中で単位変換が要らない。

単位系の取り決め = 換算を式に閉じ込める鍵
1 MPa = 1 N/mm² → 応力はそのまま MPa で出る
E = 205 GPa = 2.05×10⁵ N/mm²
ρ = 7850 kg/m³ = 7.85×10⁻⁶ kg/mm³
力 N・長さ mm → モーメントは N·mm
最適解 16.25 × 121.95 × t1.0 mm を、数値と単位こみで解く
①断面諸量(矩形中空 RHS)。内寸 bi=b−2t=16.25−2(1.0)=14.25 mm、hi=119.95 mm
A = b·h − bi·hi = 16.25·121.95 − 14.25·119.95 = 272.4 mm²
I = b·h³ − bi·hi³12 = 16.25·121.95³ − 14.25·119.95³12 = 4.07×10⁵ mm⁴
②曲げモーメント(固定端): M = P·L = 2000 N × 500 mm = 1.00×10⁶ N·mm
③曲げ応力(縁端距離 c = h/2 = 60.98 mm): σ = M·cI = 1.00×10⁶ N·mm × 60.98 mm4.07×10⁵ mm⁴ = 150.0 N/mm² = 150.0 MPa (N·mm·mm ÷ mm⁴ = N/mm² = MPa) ✅ ≤ 150
④先端たわみ: δ = P·L³3·E·I = 2000 N × (500 mm)³3 × 2.05×10⁵ N/mm² × 4.07×10⁵ mm⁴ = 2.50×10¹¹2.50×10¹¹ = 1.00 mm  (N·mm³ ÷ (N/mm²·mm⁴) = mm) ✅ ≤ 1.0
⑤質量: m = ρ·A·L = 7.85×10⁻⁶ kg/mm³ × 272.4 mm² × 500 mm = 1.069 kg  (kg/mm³ × mm² × mm = kg)
⑥軽量化率: (m基準 − m最適) ÷ m基準 = (6.971 − 1.069) ÷ 6.971 = 84.7 %
基準 vs 最適(まったく同じ式で計算)
量基準 60×100×6最適 16×122×1.0
断面積 A1776 mm²272 mm²
断面二次モーメント I2.27×10⁶ mm⁴4.07×10⁵ mm⁴
曲げ応力 σ(≤150)22.0 MPa150.0 MPa
先端たわみ δ(≤1.0)0.179 mm1.000 mm
質量 m6.971 kg1.069 kg
基準は応力もたわみも限界の2割以下=過剰設計。最適解は両方を 1.00 まで使い切り、質量だけを削った。
05 — Result

結果:断面はこう変わった

ずんぐりした箱(基準)から、薄く背の高い断面へ。実寸比で描画。

基準 60×100 t6 6.97 kg 最適 16×122 t1.0 1.07 kg →
質量 [kg](短いほど軽い)
基準設計6.97
最適解1.07
約 5.9 kg 削減(84.7%減)。強度・剛性は許容内をキープ。
06 — Inside the search

探索の中身

基準は制約に対して余裕がありすぎ(材料の無駄)。最適解は両制約をちょうど使い切る。

制約の利用率(1.00 = 許容限界)
基準 / 応力0.15
基準 / たわみ0.18
最適 / 応力1.00
最適 / たわみ1.00
基準は応力もたわみも限界の2割以下しか使っていない=過剰設計。探索はここを削った。
①広げる(explore)序盤に色々な断面を試す。最初の好手は 10×130×1.0 → 1.084 kg。
②磨く(refine)AB-MCTS が好手を深掘り。16×122×1.0 → 1.069 kg に改善(depth 1〜2)。
③収束12 試行すべてが制約合格。約25分(fugu, effort=high)。
07 — Honesty

正直な限界

これは実用設計ツールではない。Sakana の発想を自分の土俵で動かして理解するための最小実験。

やったこと

  • 線形の曲げ・たわみで質量最小化
  • 採点は決定論的な物理ソルバ(LLMの自己評価バイアスを排除)
  • 全試行で制約充足を保証

やっていないこと

  • 座屈・局部座屈は未考慮(t=1mm 薄肉は現実には溶接性・座屈で要検討)
  • 単一断面・単一荷重ケース/製造性・コストは未考慮
  • LLM出力は非決定的で毎回同じ解には収束しない
08 — Why it matters

なぜ作ったか