シーズン3第2回は、「JijModelingの内部で動く E-Graph / egglog の話」をテーマにトークしました!
数理最適化モデラー「JijModeling」には、人間が書いたモデルから特別な構造を持つ制約を自動で見つけ出し、ソルバーの専用APIを呼んで高速に解く「制約検出」という機能があります。その裏側で動いているのが E-Graph(Equality Graph)と egglog という技術です。今回は、JijModelingの開発をリードする石井さんと、今年4月に入社しこの領域の理論整備を進めるKoryさんを迎え、かなり踏み込んだ技術トークをお届けします。
◆このエピソードでわかること
・JijModelingにおける E-Graph の使いどころ(制約検出と数式出力)
・SOS1制約を自動検出できるようにしたことで得られた、劇的な速度向上
・E-Graph とは何か — Union Find を一般化した「等しさ」を扱うデータ構造
・定理自動証明の道具が、この10年でプログラム最適化に応用されるようになった流れ
・Rust実装 egg が生んだ「リビルドは最後に一度でいい」という発見
・「標準形」で済ませられない理由と、E-Graph が選ばれた背景
・egglog の下地にあるデータログ — 規則でデータを補完するという考え方
・E-Graph を使って JijModeling をさらに速くしていく、これからの展望
などなど、書き換え規則を順序に依存せず扱えるという E-Graph の嬉しさから、存在量化や関数記号が入ると一瞬で決定不能になるという理論的な難しさまで、開発の現場と研究の両面からトークしました。
◆今回の出演
MC:ソフトウェア開発チーム マネージャー Yuya
ゲスト:ソフトウェア開発チーム 石井(JijModeling開発リードエンジニア)
ゲスト:ソフトウェア開発チーム Kory(シニアソフトウェアエンジニア)
JijModeling:https://pypi.org/project/jijmodeling/
JijModeling 日本語ドキュメント:https://jij-inc-jijmodeling-tutorials-ja.readthedocs-hosted.com/ja/
関連論文:(URL)
- Optimizing Optimizations, Declaratively: Optimizing the Higher-Order Functions in Mathematical Optimization with egglog
- EGRAPHS2026での発表のストリーミングアーカイブは こちら
- Optimizing Optimizations: Case Study on Detecting Specific Types of Mathematical Optimization Constraints with E-Graphs in JijModeling
ACM の egg 紹介記事
- Technical Perspectiveegg: ‘Ridiculously’ Fast andExtensible Equality Saturation
番組へのご意見・ご質問は、ハッシュタグ「#JIJBase」をつけてXへお寄せください!
HP:https://www.j-ij.com/ja
X:https://x.com/Jij_Inc_JP
YouTube:https://www.youtube.com/@jijinc.3680