Insight Edgeのデータサイエンティストのki_ieです。数理最適化の専門家として、これまでさまざまな課題を数理最適化問題としてモデリングしてきました。 モデリングはアルゴリズム設計と比べて注目を集めることが少ないようですが、実際には技術的な知見・調査を要求する骨の折れるタスクです。
このタスクを賢いLLMが手伝ってくれたら嬉しいですね! 昨年の記事 では ChatGPT の OpenAI o1 にどれだけ数理最適化問題のモデリングを任せられるか試してみました。今回の記事では最新の ChatGPT モデルである GPT-5 Thinking を使って同様の実験を行い、どこまで使えるものになったのかを確認します。
数理最適化に詳しい方は、準備的な内容をスキップして 前回のおさらいと今回の狙い から読み始めていただければと思います。
数理最適化問題とは
数理最適化問題と混合整数計画問題の基礎知識がある方はこの節はスキップしましょう(面白いことは一つも書いてありません)!
このセクションは 昨年の記事 と全く同じ内容です。
数理最適化問題とその実行可能解・最適解
数理最適化問題とは「変数・制約・目的関数」が与えられたときに、 「制約を守るなかで最も目的関数を小さく(または大きく)する決定変数を選ぶ」 という問題です。
数理最適化問題は、一般に以下の形で表現できます:
数理最適化問題
- 変数 : $x \in D \ \ (\subseteq \mathbb{R}^n)$
- 変数 $x$ は $D$ の中から選べる
- 制約 : $g_i(x) \leq b_i \ \ (i \in I)$
- $x$ は $g_i(x) ≤ b_i$ がすべての $i \in I$ について成り立つように選ぶ
- 目的関数(最小化) : $\min f(x)$
- 上記ルールを守ったうえで $f(x)$ を最小化したい。
上手に $D$, $g_i$, $f$ を設計してやることで、配送計画から証券ポートフォリオの最適化まで幅広い問題が 数理最適化問題として表現できることが知られています。 たとえばコンビニの店長の立場でおにぎりの仕入れ量を適正化する問題を単純化すれば、以下のような最適化問題としてモデル化できます:
例: おにぎりの仕入れ量の適正化
- 変数: おにぎりの仕入れ量 $x \in \mathbb{Z}_+$
- 制約: おにぎりが店から溢れない $x \leq 100$
- 目的関数: $\max f(x)$
- $f(x)$ : おにぎり $x$ を仕入れたときの期待利益
$D$ の要素で制約をすべて守るものはその問題の実行可能解と呼ばれます。 実行可能解のうち目的関数を最小にするものは数理最適化問題の最適解(または解)と呼ばれます。 数理最適化問題で課題をモデリングする目的は、最適解を得ることにあります。 たとえばおにぎりの仕入れ量の適正化の文脈では最も利益があがる仕入れ量が $70$ であれば、$x=70$ が最適解です。 これが計算で求められれば、このコンビニでは利益を最大化する仕入れの意思決定ができるようになってハッピーです。
一方、問題によっては最適解を求めることが極めて難しいことがあります。 おにぎりの仕入れ量の適正化問題は$x=0, 1, 2 \cdots 100$ を全探索すれば簡単に最適解が求まりますが、 もっと複雑な問題ではそうはいかないこともしばしばあるのです。 そのような場合は「目的関数値の良い」実行可能解が求まったらそれでよしとすることが実務上は一般的です。 おにぎりの仕入れ量の問題で言えば、$x=68, 71$ といった解が見つかって、$x=70$ が見つけられなかったら、 $x=68, 71$ をとりあえずの答えとして採用するというイメージです。 この場合でも、あてずっぽうで仕入れ量を決定するコンビニよりは利益を大きくできるわけです。
混合整数計画問題
数理最適化問題の中でも特別に重要な問題クラスとして、混合整数計画(MIP; Mixed Integer Programming)問題があります。 これは実行可能領域 $D$ を$\mathbb{R}^n \times \mathbb{Z}^m$ として、制約・目的関数を線形なものに限定したものです。
混合整数計画問題
- 変数 : $x \in \mathbb{R}^n \times \mathbb{Z}^m$
- 制約 : $a_i^\top x \leq b_i \ \ (i \in I)$
- $a_i^\top$ を行ベクトルとして集めた行列を$A$, $b_i$ を集めたベクトルを $b$ としたら、まとめて $Ax ≤ b$ と書ける。
- 目的関数(最小化) : $\min c^ \top x$
変数に別途上下限を許す場合も、等号制約を許す場合もある。いずれもここで示した形に容易に変形できる
この問題クラスの重要性を説明するために、まず数理最適化を利用した課題解決の一般的な流れを説明します。 さまざまなタイプの数理最適化問題に対して、最適解または最適解ではないにせよ目的関数値の良い実行可能解を求めてくれるプログラムが作られています。これらのプログラムはよく「ソルバー」とよばれます。数理最適化の考え方とソルバーを利用して現実の課題を解くときの流れは以下のようになります。
- 課題の整理
- 課題を数理最適化問題としてモデル化
- 数理最適化問題をソルバーで求解する
- 得られた最適解(または目的関数値の良い実行可能解)を現実世界で採用する
課題を数理最適化問題に落とし込むことにも技術的な難しさがありますが、 その数理最適化問題を解くソルバーを設計・実装することもまた大変に難しいことです。 そのため、できれば既存のソルバーを用いて求解できるような範囲でモデル化をしたいというのが数理最適化エンジニアの本音です。
MIPによるモデリングはこの観点で大変すぐれています。MIPは多様な問題を表現でき、さらに優れたソルバーが存在するからです。 MIPは制約・目的関数が線形に限定されているため一見すると限られた表現力しかないように見えますが、0, 1の値しかとらないバイナリ変数を巧みに使うことで複雑な論理関係を表現でき、幅広い問題を表現可能です。表現できる問題の幅広さゆえ、学術的にも深く研究され、ソルバーの研究が積み重ねられてきました。その結果、優れた商用・OSSのソルバーが存在するのです。
このような背景から、MIPによるモデリングは数理最適化の実務においてなくてはならない基本技術となっています。
LLMに混合整数計画問題をモデリングさせたいモチベーション
このセクションは 昨年の記事 と全く同じ内容です。
課題のMIPモデリングというのはなかなか骨の折れる作業です。 論理的に正しいというだけではなくソルバーにとって解きやすいモデルを作ることが求められるため、 難しい課題の場合は最適化モデルの試行錯誤・調査の1サイクルだけで数日かかってしまう、ということも稀ではありません。
この作業、なるべくサボりたいですね。性能向上の著しいLLMに手伝ってもらえれば、 まるごと作業代替とはならなくとも効率化できるのではないか?というのが、本記事で検証したいポイントです。
数理最適化エンジニアとして確認したい具体的なポイントは以下の3つです。
- 有名問題をモデル化できるか / 有名定石を利用できるか?
- 有名問題に簡単な要件を追加してもモデル化がうまくいくか?
- 複雑な要件を上手にモデル化できるか?
LLM に 1. ができたら、数理最適化初心者/学習者にはLLMによる補助が有用だと考えられるでしょう。 数理最適化問題のモデリングにはさまざまな「定石」が登場します。 例えば、0/1変数 $x, y \in \{0, 1 \}$ の論理積をMIPの枠組みで考えたいときには、補助変数 $z \in \{0, 1 \}$ を導入して 制約 $z ≤ x, z ≤ y, x+y-1≤z$ を加えれば $z$ は $x, y$ の論理積(AND)となる、というテクニックがあります。 知っていれば簡単に使えるテクニックですが、自分で思いつくのは難しいです。 初心者がこれをLLMに教えてもらえるなら、学習効率は上がりそうですね。 ある程度経験のある数理最適化エンジニアにとっても、モデル化方法の検討がつかないときのサーベイの代替として LLMに聞くというのが有用になるかもしれません。
2.ができたら、実務的なモデリングの補助としても使えそうです。 実際の問題は有名定石単体で解けないケースのほうが多く、 そのような場合定石を組み合わせたり、自分でテクニックを作ってモデル化する必要があります。 ここまでLLMがやってくれるなら、実務的なモデリングの補助として十分有用でしょう。
3.は、ここまでできたらモデリングの初手はLLMとの対話になりそうですね。 これで毎回完璧な答えが出てきたら私達は冷や飯を食わされることになりそうですが…どこまでできるか見てみましょう。
前回のおさらいと今回の狙い
昨年の記事では o1-mini に3つの難易度のモデリングタスクを実施させました。その結果、当時のLLMは以下のレベルの能力を持つとわかりました。
- 有名問題をモデル化できるか / 有名定石を利用できるか? ▶ できる
- 有名問題に簡単な要件を追加してもモデル化がうまくいくか? ▶ ちょっとできる
- 複雑な要件を上手にモデル化できるか? ▶ できない
難易度 1 の実験では、 LLM に有名な数理最適化問題 (巡回セールスマン問題とクラス分け問題) の要件を日本語で与え、正しくモデリングができるかを確認しました。いずれについても o1-mini で問題のないモデリングが得られたため、今回は追加実験をしません。詳細が気になる方は、昨年の記事 を参照してください。有名問題は正解の数理モデルをLLMが知識として知っているので、これはモデリング能力の証明というより知識の再生能力が示されたと考えたほうがいいかもしれません。
有名問題に簡単な要件を追加した難易度 2 の実験では、大筋は良いものの多少のツッコミどころがあるという出力で、 有名問題と有名手法の簡単なパッチワークではモデル化できない課題を扱う難易度 3 の実験では全く歯が立たない、という結果でした。
今回の記事では最新の GPT-5 Thinking を用いてレベル2, レベル3のタスクを再度試み、どの程度レベルが上っているのかを確認します。
LLM に数理最適化問題をモデリングさせる
2. 有名問題に簡単な要件を追加してもモデル化がうまくいくか?
「1. 有名問題をモデル化できるか / 有名定石を利用できるか?」はスキップするので 2. からナンバリングを始めています。
巡回セールスマン問題 + α
巡回セールスマン問題に追加要件を加えた問題を GPT-5 Thinking に投げて、モデリングが正しくできるか見ていきます。太字部分 が通常の巡回セールスマン問題にはない追加要件です。
次の課題を混合整数計画問題としてモデル化してください。
「10個の都市をすべて回って出発地点に返ってくる必要がある。移動時間を最短化したい。 ただし、特定の3都市を先に訪問し、残りの7都市を後に訪問したい。 」
結果は「パラメタ」「決定変数」「制約」「目的関数」の4セクションに分けてください。
結果は次の通りです(主結果の前後のテキストの削除とフォーマット修正は出力後編集):
パラメタ
- 都市集合:$ V = \{1, \dots, 10\} $
- 出発・到着の仮想ノード:$ 0 $(都市数に含めない)
- 先行訪問集合:$ A \subset V,\ |A| = 3 $
- 後行訪問集合:$ B = V \setminus A,\ |B| = 7 $
- 移動時間(または距離):$ c_{ij} \ge 0 \quad (i, j \in V \cup \{0\},\ i \ne j) $
- 都市数:$ n = |V| = 10 $
決定変数
- 経路採用:$ x_{ij} \in \{0,1\} \quad (i, j \in V \cup \{0\},\ i \ne j) $
$ x_{ij} = 1 $ なら弧 $ i \to j $ を通る- 訪問順序指標:$ u_i \in \{1, \dots, n\} \quad (i \in V) $
制約
- 出発点・終点 $$ \sum_{j \in V} x_{0j} = 1, \qquad \sum_{i \in V} x_{i0} = 1$$
- 各都市の入次数・出次数 $$ \sum_{\substack{j \in V \cup \{0\} \\ j \ne i}} x_{ij} = 1 \quad (\forall i \in V), \qquad \sum_{\substack{j \in V \cup \{0\} \\ j \ne i}} x_{ji} = 1 \quad (\forall i \in V)$$
- 部分巡回消去(MTZ制約) $$ u_i - u_j + n\,x_{ij} \le n - 1 \quad (\forall i, j \in V,\ i \ne j)$$
- 先行訪問制約(3都市を必ず先に訪問) $$ u_i \le u_j - 1 \quad (\forall i \in A,\ \forall j \in B)$$
- 変数の領域 $$ x_{ij} \in \{0,1\} \ (i \ne j), \quad u_i \in \{1, \dots, n\}$$
目的関数
$$\min \sum_{i \in V \cup \{0\}} \sum_{\substack{j \in V \cup \{0\} \\ j \ne i}} c_{ij} \, x_{ij}$$
ほぼ完璧です。前回の記事では地点 1 を出発点と固定したモデルを出力してしまいましたが、今回は仮想的な始点 $0$ を導入することで 出発地点の自由度を保っています。巡回セールスマン問題では、ぐるっと一周するという性質から出発地点を好きに再解釈できるため、出発地点を固定してかまわないのですが、この問題では「先行訪問集合」が定義されているため、出発地点を固定してしまうと問題があります。この点に気づいて対応できているのは素晴らしいです。 (前回の記事では「固定しちゃってるけどまあ固定した問題としては正しいかな」と思って見過ごしていたのですが、冷静に考えると入力された課題文には忠実ではないわけで、指摘するべきでした!前回記事読者のみなさま、失礼しました。)
その他の面も問題なさそうです。o1-mini で少し怪しい記述になっていた $u_i$ の値域(整数vs連続)についても、今回は整数変数として揺らぎなく書かれています。個人的には連続変数と書いてくれたほうが「わかっている」感が出せてると思いますが、 モデリングとしては問題ないでしょう。
問題を指摘するとすれば「変数の領域」で値域が繰り返し書かれているのは記述として気になりますね。 また「先行訪問制約」の記述が冗長なのは効率が悪い記述で、 $u_i \leq |A| (i \in A)$ などと効率的に書いてほしいものです。間違いとは言えませんが、人手での修正が必要ですね。
総合評価としては「人力の確認と修正が入る前提であれば、有用な出力を出せている」という前回と同様の結果だと思いますが、 より一貫した、修正もしやすい良いモデルになっていると思います。 特に仮想的な始点を導入できているのは素晴らしいです。これは仕事で使えるツール感が出ていますね。
クラス分け問題 + α
有名なクラス分け問題に追加要件(太字部分)を入れた次の発展編も解かせてみましょう。 GPT-5 Thinking へ次の質問を投げます。LLM に喧嘩を防いでもらいましょう。
次の課題を混合整数計画問題としてモデル化してください。
「120人の学生を3つのクラスに分けたい。3つのクラスの人数は等しくしたうえで、クラス間の成績のばらつきを最小に抑えたい。 ただし、何対かの喧嘩をしてしまう生徒ペアがあるため、それらのペアの生徒は必ず別のクラスにしてほしい。 」
結果は「パラメタ」「決定変数」「制約」「目的関数」の4セクションに分けてください。
次の結果が返ってきました(主結果の前後のテキストの削除とフォーマット修正は出力後編集):
パラメタ
- 学生集合 $I={1,\dots,120}$
- クラス集合 $C={1,2,3}$
- 成績 $s_i \in \mathbb{R}$(各学生 (i) の既知のスコア)
- 喧嘩ペア集合 $\mathcal{A} \subseteq \{(i,j)\in I\times I \mid i<j\}$
- 各クラスの定員 $Q=40$(固定)
- 全体平均 $\bar{s}=\frac{1}{120}\sum_{i\in I} s_i$(定数)
決定変数
- $x_{ic}\in {0,1}$: 学生 $(i)$ をクラス $(c)$ に割り当てるなら1
- $u_c \in \mathbb{R}$: クラス $(c)$ の平均成績
- $z \ge 0$: クラス平均の最大偏差の上限
制約
- 各学生はちょうど1クラス
$\sum_{c\in C} x_{ic}=1 \quad \forall i\in I$- 各クラスの人数は等しい
$\sum_{i\in I} x_{ic}=Q \quad \forall c\in C$- 喧嘩ペアは同一クラス禁止
$x_{ic}+x_{jc}\le 1 \quad \forall (i,j)\in \mathcal{A},\ \forall c\in C$- クラス平均の定義
$Q u_c=\sum_{i\in I} s_i x_{ic} \quad \forall c\in C$- クラス平均の偏差を $(z)$ で抑制
$u_c-\bar{s}\le z,\quad \bar{s}-u_c \le z \quad \forall c\in C$目的関数
- クラス間の成績ばらつき(クラス平均の最大偏差)を最小化
$\min\ z$
完璧です。この問題については前回もほぼ問題ない答えでしたが、重箱の隅をつつくような指摘はできました。今回は文句無しに完璧です。
3. 複雑な要件を上手にモデル化できるか?
ここまで、有名問題に毛が生えた程度の問題であれば GPT-5 Thinking はそれなりに正しくモデル化してくれることがわかりました。 最後にしっかりと複雑な要件を与えて、モデル化できるか見てみます。
GPT-5 Thinking へ次の質問を投げます。
次の課題を混合整数計画問題としてモデル化してください。
「拠点にある一台の車を使ってすべての店舗を回って拠点に戻る計画を立てたい。
拠点と各店舗にはそれぞれタイムウィンドウが設定されている。
各店舗のタイムウィンドウは最大3つであり、作業開始時間がいずれかのタイムウィンドウに入っていれば許されるものとする。
拠点のタイムウィンドウは1つであるが、出発時刻・帰還時刻のいずれもここに収まる必要がある。
巡回中のいずれかのタイミングで1度だけ拠点への報告業務を行うため、ここで一定の時間を使う必要がある。
報告業務はいずれかの地点での作業終了直後に行うものとする。
報告業務を行うことができるタイムウィンドウは1つ指定されているものとする。
各店舗での作業時間・地点間の移動時間・報告業務の時間はパラメタで与えられる。」
結果は「パラメタ」「決定変数」「制約」「目的関数」の4セクションに分けてください。
結果は次の通りです (主結果の前後のテキストの削除とフォーマット修正は出力後編集):
パラメタ
- ノード集合:
- 拠点出発 $0$
- 店舗集合 $N=\{1,\dots,n\}$
- 拠点帰着 $n{+}1$
- 許可アーク集合 $A=\{(i,j)\mid i\in\{0\}\cup N,\ j\in N\cup\{n{+}1\},\ i\neq j\}$。
- 走行時間(対称でなくてよい):$\tau_{ij}\ge 0$ for $(i,j)\in A$。
- 作業時間:$s_i\ge 0$ for $i\in N$。拠点は $s_0=s_{n+1}=0$。
- 店舗タイムウィンドウ(高々3本):店舗 $i\in N$ に対し区間集合 $K_i$($|K_i|\le 3$)と各区間 $[a_{ik},\,b_{ik}]$。
- 拠点タイムウィンドウ(1本):$[a_0,\,b_0]$(出発時刻 $t_0$ と帰還時刻 $t_{n+1}$ の双方がこの範囲)。
- 報告業務:
- 所要時間 $r\ge 0$
- 実施可能タイムウィンドウ $[a^R,\,b^R]$(開始時刻がこの範囲)。
- ビッグ M:
- 時間緩和用 $M := (b_0-a_0)+s_{\max}+\tau_{\max}+r$($s_{\max}=\max_i s_i,\ \tau_{\max}=\max_{(i,j)\in A}\tau_{ij}$)
- 報告窓用 $M_R := (b_0-a_0)+s_{\max}$
決定変数
- ルーティング:$x_{ij}\in\{0,1\}$ for $(i,j)\in A$(アーク使用なら1)。
- 到着(作業開始)時刻:$t_i\in\mathbb{R}_{\ge 0}$ for $i\in\{0\}\cup N\cup\{n{+}1\}$。
- 窓選択:$w_{ik}\in\{0,1\}$ for $i\in N,\ k\in K_i$(店舗で採用する窓を1本選択)。
- 報告実施場所選択:$y_i\in\{0,1\}$ for $i\in N$(店舗 $i$ の作業直後に報告を行うなら1)。実施は1回のみ。
制約
(1) 流れ・訪問制約(単一車両で全店舗1回訪問)
- $\sum_{j\in N\cup\{n{+}1\}} x_{0j}=1,$
- $\sum_{i\in \{0\}\cup N} x_{i,n{+}1}=1,$
- $\sum_{j\in N\cup\{n{+}1\}} x_{ij}=1\ \ (\forall i\in N),$
- $\sum_{i\in \{0\}\cup N} x_{ij}=1\ \ (\forall j\in N)$
(2) 時間伝播(作業・報告・移動を含む)
- $t_j \ge t_i + s_i + \tau_{ij} + r\,y_i - M\,(1-x_{ij})\ \ \ (\forall (i,j)\in A)$。
($s_0=s_{n+1}=0$。 報告は店舗でのみ起こり $y_i$ は $i\in N$ のみ。 )(3) タイムウィンドウ
拠点:
- $a_0 \le t_0 \le b_0,\ \ a_0 \le t_{n+1} \le b_0$。
店舗(窓の選択と整合):
- $\sum_{k\in K_i} w_{ik}=1$
- $t_i \ge \sum_{k\in K_i} a_{ik}w_{ik} (\forall i\in N)$
- $t_i \le \sum_{k\in K_i} b_{ik}w_{ik}\ (\forall i\in N)$。
(4) 報告業務は1回のみ・直後開始・報告窓内
- $\sum_{i\in N} y_i = 1$,
- $t_i + s_i \ge a^R - M_R(1-y_i),\ \ t_i + s_i \le b^R + M_R(1-y_i)\ \ (\forall i\in N)$。
(作業終了直後に開始するので開始時刻は $t_i+s_i$。)(5) 自己ループ禁止
- $x_{ii}=0\ \ (\forall i\in N)$。
目的関数
帰還時刻の最小化(最短完了):
- $\min\ t_{n+1}$。
(距離最小化を望む場合は $\min \sum_{(i,j)\in A}\tau_{ij}x_{ij}$ に置換可能。)
おお、これは…!なんだかぱっとみは良さそうですね!各セクションを見ていきましょう。
パラメタセクションでは、 $K_i$ が区間の集合のように書いてあります。これは制約(3)の $k \in K_i$ などでみられる $K_i$ を添え字の集合と見る立場と異なり、形式的には問題がありますね。その他は大きな問題はないように見えます。big-M の具体的な値に問題がないかは、実際に制約で登場するところで確認しましょう。
制約セクションは(1)〜(5)までに分かれて記述されています。わかりやすくていいですね。
(1), (2) ではサイクル除去を含めた巡回セールスマン問題の制約が書かれています。MTZとは少し違う形式ですが、 (2) があることでサイクル除去まで対応できているのですね。厳密には $s_i + \tau_{ij} + r=0$ となるケースでサイクルが除去できなかったり、計算効率の観点から $u$ を導入する普通の MTZ 制約を入れるという考え方もありえると思いますが、問題があるとしても修復可能なものだと思っていいでしょう。 big-M として登場した $M$ の値も、う〜ん多分これは正しいですね。すごい。(2) の最後の括弧の補足部分は蛇足ですが、これは無視すればいいでしょう。
(3) はタイムウィンドウに関しての制約です。拠点に関するものは正しいですね。店舗に関するものは、$w_ik$ を一つ選ぶということはいいのですが、$t_i \leq ...$ の制約は明確におかしいですね($w_ik = 0$ のときに過剰に強い制約)。 $t_i \geq ...$ のほうも、登場する時刻の値がすべて非負という前提がなければ同様におかしいモデリングです。簡単に修正可能ですが、ミスではありますね。
(4) 報告に関する要件を記述しています。$M_R$ の具体的値の正しさは後回しにしましょう。このモデリングの方針は正しいですね! これができるなら (3) でも同じ手法を使ってほしかったですが、こういうミスって人間もしちゃいますね。(4) で正解を出してきたので許せます。 $M_R$ の値は、報告タイムウィンドウが拠点タイムウィンドウに含まれるという前提のもとでは問題はない気がしますが、すこしゆるい評価になっている気がします。これは些末な問題で、ちゃんと計算すれば修正可能です。
(5) は (1) にまとめてもいいでしょう。問題ありません。
これは素晴らしい進化です。前回の実験では「それっぽい数式を出力するが、そもそも変数とパラメタの区別すら曖昧な論理的に読めないもの」が出力されていました。今回のものは、多少ミスはあるものの修正可能であり、最適化モデリングをするうえでの「一歩目」としては利用可能なレベルのものです。
まとめ
まとめです。
- 有名問題をモデル化できるか / 有名定石を利用できるか? ▶ できる
- 有名問題に簡単な要件を追加してもモデル化がうまくいくか? ▶ 概ねできる
- 複雑な要件を上手にモデル化できるか? ▶ 間違えはするが、意味のある出力を出せる
GPT-5 Thinking は有名問題と有名定石の簡単な組み合わせにとどまらず、 複雑な要件について、多少のミスを含みながらも論理的に考えることができるようです。
MIPモデリングに関して、 GPT-5 Thinking は以下の3つの使い方ができそうです:
- 数理最適化初心者が簡単なモデルを作りたいとき・学習したいとき
- 簡単なモデルは作ってくれる
- ただし正誤判断は自分でできる必要があるため、 教科書で基本的な勉強をしたうえで利用する
- 中級者~上級者レベルの人のモデリング補助
- LLMの知識の幅は圧倒的。調査・検討をしたいときに「ダメもとで聞いてみる」のには意味がありそう
- たとえば、定石をしらない問題がでてきたときに(枝葉の要件を削って)モデル化させてみて、良さそうなものを使う and/or 出典を調べて調査する、など
- NEW! 複雑なモデリングの補助
- 複雑な要件を与えても、検討可能な意味のあるモデルを出力できる
- 場合によってはモデリングの「一歩目」をLLMに任せて、あとは人間が修正する、という使い方ができそう
LLMを使って面白いモデルを書いていきましょう!